IyAtKi0gdGV4dCAtKi0KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMy5wcmUzIC0+IFY1LjcuMy5wcmU0Cgpjb21taXQgODY0YWJiNWJhMWViMzI0ZTQyMzE1N2RiNWZiMTcyM2Y4NTU5NzNiMgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMjMgMTU6MDc6NDEgMjAxNCAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMy5wcmU0Cgpjb21taXQgNWZjOGY5OWM5Zjc3ZGRhZGVlYWNlZGFlN2YwNmZlYTE3NjdkNGE5ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMjMgMTU6MDI6MTkgMjAxNCAtMDcwMAoKICAgIGZpeCBDKysgc3R5bGUgY29tbWVudAoKY29tbWl0IDU0YTRhOTBhNTUyOWVhNThhZGQ5ZTZhZjZhN2U4YWQwNjU0NDA4MjgKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDIzIDE0OjQ5OjQxIDIwMTQgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4zLnByZTQKCmNvbW1pdCBjMGQ2NjgyNmI3MWYwNTQwM2YzNmM3ZjgyMzRmZjhmN2VjYmQxNTkwCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIEp1bCAyMiAwNjo0OToyOCAyMDE0IC0wNzAwCgogICAgV2hlbiBlbmxhcmdpbmcgYSBsYXJnZV9mZF9zZXQsIHVzZSBGRF9aRVJPIGlmIHBvc3NpYmxlCiAgICAKICAgIFRoZSBtb3N0IGNvbW1vbiBjYXNlIG9mIGNyZWF0aW5nIGEgbGFyZ2VfZmRfc2V0IG9uIFVOSVgKICAgIGlzIHRvIGNyZWF0ZSBpdCB3aXRoIHNpemUgemVybywgYW5kIHRoZW4gaW1tZWRpYXRlbHkgZW5sYXJnZQogICAgaXQgdG8gc2l6ZSBGRF9TRVRTSVpFLiAgSW5zdGVhZCBvZiBsb29waW5nIGFuZCBjYWxsaW5nCiAgICBGRF9DTFIoKSwgd2UgY2FuIG9wdGltaXplIHRoaXMgY29tbW9uIGNhc2Ugd2l0aCB0aGUgT1MncwogICAgRkRfWkVSTy4KCmNvbW1pdCBkY2FkMzFhZWI0NDIzNjlhNmZiNTJmNGRjN2Q0Zjc4MWJjNTYwMDZjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAxNyAyMzo0MDoxMyAyMDE0ICswMjAwCgogICAgU29sYXJpcyBkb2VzIG5vdCBsaWtlICJncmVwIC1FIiBvciAiaWYgISIuCiAgICBQcm9wYWdhdGUgY29uZmlndXJlcyBFR1JFUCB0byBtYW4vTWFrZWZpbGUuaW4gYW5kIGFsc28gdXNlZCBjb25maWd1cmVkIFNFRC4KCmNvbW1pdCBhNTFjYmVkZjdkMWQ0MjQzNDJhYjVjYTNhNGI2NzIxN2EzNjQ0MDlhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAxNSAyMTo0NTo1NCAyMDE0ICswMjAwCgogICAgc25tcG5ldHN0YXQvaWYuYzogcHJvcGVybHkgZGV0ZWN0IHNubXAgZXhjZXB0aW9ucwoKY29tbWl0IGVlZTkyNTE5ZjM4ZTkzN2YyMjdiZWE3NzAxZGRiMTE1N2M4YmNjY2MKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgSnVsIDE1IDA3OjI3OjE4IDIwMTQgLTA3MDAKCiAgICBDbG9zZSBwaXBlcyB3aGVuIGZyZWVpbmcgY29uZmlnIGFuZCBraWxsIGNoaWxkIHByb2Nlc3Mgb24gZXJyb3IKICAgIAogICAgV2hlbiBmcmVlaW5nIHRoZSBjb25maWcsIGNsb3NlIHRoZSBwaXBlcyBjb3JyZXNwb25kaW5nIHRvIHRoYXQKICAgIGNvbmZpZywgc28gdGhleSBkb24ndCBnZXQgbGVha2VkLiAgQWxzbywgaWYgd2UgaGF2ZSBhbiBlcnJvciwKICAgIHNlbmQgYSBTSUdLSUxMIHRvIHRoZSBjaGlsZCBwcm9jZXNzIGluIGNhc2UgaXQgaXMgYmxvY2tlZCBhbmQKICAgIHdvbid0IGRpZSBqdXN0IGJlY2F1c2Ugd2UgY2xvc2VkIHRoZSBwaXBlcyB0byBpdC4KCmNvbW1pdCA4NDMxZjkxMzU1NGUwY2NjYzQ4YmVkY2UxZmQ0YThhMjg4YjZjMjdkCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIEp1bCAxNSAwNzoxOTozMyAyMDE0IC0wNzAwCgogICAgSWYgdGhlIGFzcCBsb29rdXAgcmV0dXJucyBOVUxMLCBkb24ndCB0cnkgdG8gdXNlIGl0CiAgICAKICAgIElmIHRoZXJlIGlzIG5vIGNvcnJlc3BvbmRpbmcgYXNwLCB3ZSBzZXQgdGhlIHJlc3VsdCBwcm9wZXJseQogICAgYnV0IHN0aWxsIGZhbGwgdGhyb3VnaCBhbmQgYXR0ZW1wdCB0byB1c2UgaXQuICBJbnN0ZWFkLCBqdXN0CiAgICBjb250aW51ZS4KCmNvbW1pdCAxNDZmYTM4NGQ4YjA1ZTFlNWEyYzY3Zjg4ZDBlY2EwYTMwNGZhMWYwCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgTW9uIEp1bCAxNCAxNToyNjoxNCAyMDE0IC0wNzAwCgogICAgRml4IGRlcGVuZGVuY2llcyBmb3IgYXV0by1nZW5lcmF0ZWQgbWFuIHBhZ2VzCiAgICAKICAgIEFsc28gbWFrZSBzdXJlIHRoYXQgdGhlIGF1dG8tZ2VuZXJhdGVkIC5zbyBmaWxlcyBhcmUgbGlzdGVkCiAgICBpbiB0aGUgcmlnaHQgTWFrZWZpbGUgdmFyaWFibGVzLCBhbmQgdXBkYXRlIHRoZSB2YXJpYWJsZXMKICAgIHRvIGluY2x1ZGUgdGhlIG9uZXMgdGhhdCBoYWQgYmVlbiBsZWZ0IG91dCBhbHJlYWR5LgoKY29tbWl0IDQ0MzE3MjhjZjdhMDk1MGFlZDI5M2Q0OGMwMmU2OTAwMGY1YjgzZTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gSnVsIDEzIDAzOjA3OjIxIDIwMTQgLTA3MDAKCiAgICBBSVg6IEZpeCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzCiAgICAKICAgIEF2b2lkIHRoYXQgdGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QsIGFib3V0CiAgICB1bnVzZWQgdmFyaWFibGVzIG9yIGZ1bmN0aW9ucywgYWJvdXQgbWlzc2luZyBmdW5jdGlvbiBwcm90b3R5cGVzCiAgICBhbmQgYWxzbyBhdm9pZCB0aGF0IHRoZSBjb21waWxlciBjb21wbGFpbnMgdGhhdCB0aGUgdHlwZSBvZiB0aGUKICAgIHRoaXJkIGFyZ3VtZW50IG9mIG1udGN0bCgpIGlzIHdyb25nLgoKY29tbWl0IDQyYTY1ZjExZTNlZDU2OTYzZjc4YTVjMTU2MWVkZDY3NjU4Y2NkMDAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gSnVsIDEzIDA5OjQ3OjI2IDIwMTQgKzAyMDAKCiAgICBSZW1vdmUgQzk5IGxlbmd0aCBzcGVjaWZpZXIgJ3onIGFuZCB1c2UgYSBjYXN0IGluc3RlYWQKICAgIAogICAgU2VlIGFsc28gY29tbWl0IGI0ZWFiMTExMzllYjEyMmM5YWQzYzEzYWI4Yjk0NTNlMDRlNDY4NDIuCgpjb21taXQgMzVkMGY1OWNkZDg4OTRiOGZiYmFkNjUzNzBiNWUzMDFlMzc3YTM3ZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKdWwgMTEgMjE6MjY6MzMgMjAxNCArMDIwMAoKICAgIFVwZGF0ZWQgRE9DUy1JRi1NSUIgcmVmZXJlbmNlCgpjb21taXQgN2E0ZDJlYTJiM2UxNjNmZGQ5OGYwNjdhZTQ0MGZhYTMxNTJjODBjNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKdWwgMTEgMjE6MjU6MjcgMjAxNCArMDIwMAoKICAgIFVwZGF0ZWQgSUFOQSBtaWJzCgpjb21taXQgMDFiM2I2NjQ2NDEzYzE0YTA1MDc0MjcyNmI5N2NmMzA4YjhmZTA5YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgOSAyMzo1MToyNyAyMDE0ICswMjAwCgogICAgQWRkIFJGQyA3MjU3IHZwbHMgbWlicwoKY29tbWl0IGIwYmUxZDhhZDJjY2JjYWEyOWZmYzdjZjg4NGQwMjQzOGM0YzE2NjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDkgMjM6NTA6MjEgMjAxNCArMDIwMAoKICAgIGFkanVzdCBkZWJ1ZyB0b2tlbiBmb3IgbmV0c25tcF9zb2NrYWRkcl9pbjZfMgoKY29tbWl0IDk5MjBlOWU3NjdiMTBmMDI5YWI0YjAyMGU4MjU5Njc2ZDFhMzJiMmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSnVsIDggMTA6MjU6MjIgMjAxNCArMDIwMAoKICAgIEFJWDogU3VwcHJlc3MgYSBjb25maWd1cmUgd2FybmluZwogICAgCiAgICBBdm9pZCB0aGF0IHRoZSAnc29ydCcgY29tbWFuZCBjb21wbGFpbnMgZHVyaW5nIHRoZSBjb25maWd1cmUgcHJvY2VzcwogICAgdGhhdCBpdHMgaW5wdXQgaXMgbm90IHRlcm1pbmF0ZWQgYnkgYSBuZXdsaW5lLiBTZWUgYWxzbyBjb21taXQKICAgIGE2M2UzODFkOWMxYzljODcyMTBiZjJiMDIyZTNkNmFjNzFkMjdhN2UuCgpjb21taXQgYjRlYWIxMTEzOWViMTIyYzlhZDNjMTNhYjhiOTQ1M2UwNGU0Njg0MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBKdWwgNyAxNDowNDo0NSAyMDE0IC0wNzAwCgogICAgQUlYOiBGaXggYSBmZXcgY29tcGlsZXIgd2FybmluZ3MKICAgIAogICAgQXZvaWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbXBpbGVyIHdhcm5pbmdzIGFyZSByZXBvcnRlZDoKICAgIC0gQXNzaWdubWVudCBkaXNjYXJkcyBjb25zdC4KICAgIC0gVW51c2VkIGxvY2FsIHZhcmlhYmxlLgogICAgLSBNaXNtYXRjaCBiZXR3ZWVuIGZvcm1hdCBzdHJpbmcgYW5kIGFyZ3VtZW50IGxpc3QuCiAgICAKICAgIEFsc28gY29ycmVjdCB0aGUgaW5kZW50YXRpb24gb2YgdHdvIFNvbGFyaXMtc3BlY2lmaWMgY29kZSBzdGF0ZW1lbnRzLgoKY29tbWl0IDBkZDI3ODNiNzQ3ZmI5NmQ3NDk3OGUxMWM4MmE1MDRjMGRmMWQ1NTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gSnVsIDYgMTE6MTI6MzAgMjAxNCArMDIwMAoKICAgIEhQIFVYLCBDUFUgc3RhdGlzdGljczogRml4IGFuIGludmFsaWQgcG9pbnRlciBkZXJlZmVyZW5jZQogICAgCiAgICBTZWUgYWxzbyBjb21taXQgMDAzNDU4MWRlYjNlNjc2ZDMyODgyNGM4NzYzN2FhY2EzMTg1MGM2YS4KCmNvbW1pdCBkYmQ1OTMxMzJmNzE5Y2MzZDliYjUwMTdlYzhiYzVjOGNiYjA2M2I3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAzIDIzOjIzOjI5IDIwMTQgKzAyMDAKCiAgICBUMDcxY29tMnNlYzZfc2ltcGxlOiB1c2UgcHJpdmF0ZSBob3N0IHRvIGNoZWNrIGlwdjYgYWRkcmVzcyByZXNvbHV0aW9uIHRvIG1ha2Ugc3VyZSB3ZSBnZXQgdGhlIGV4cGVjdGVkIHJlc3VsdAoKY29tbWl0IDAwMzQ1ODFkZWIzZTY3NmQzMjg4MjRjODc2MzdhYWNhMzE4NTBjNmEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDMwIDIyOjA4OjM0IDIwMTQgKzAyMDAKCiAgICBCVUcgI2EyNTUxOiBmaXggbm9uLXNlcXVlbnRpYWwgY3B1IG51bWJlcnMgb24gSFAtVVguCiAgICBUaGFua3MgdG8gRGF2ZSBPbGtlci4KCmNvbW1pdCBiMGY0OWJhMjFmYjgxMGVmY2IwOTkyZjAxYzRmYzVmZDMwY2Y2OWFmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1biAyNiAyMTo0Mjo0OCAyMDE0ICswMjAwCgogICAgY3B1X3BzdGF0LmM6IGZpeCBtaXNzaW5nIGJyZWFrKHMpIGluIHN3aXRjaCBzdGF0ZW1lbnQKCmNvbW1pdCBhNjNlMzgxZDljMWM5Yzg3MjEwYmYyYjAyMmUzZDZhYzcxZDI3YTdlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEp1biAyMCAxMDo1NzozOSAyMDE0ICswMjAwCgogICAgUmVjZW50IHBhdGNoIGZyb20gQmFydCAoRGlzcGxheSBtb2R1bGUgbmFtZXMgc29ydGVkKSBtYWtlIGNvbmZpZ3VyZSBsb3NlIGFsbCBtb2R1bGUgbmFtZXMgb24gU29sYXJpcyA4IGFuZCAxMC4KICAgIFRoaXMgY2hhbmdlcyB0aGUgd2F5IHRoZSBzb3J0aW5nIGlzIGRvbmUuCgpjb21taXQgNjBjZjZhMDZmZjczYWU3ZDRmMjQ1NGYyZWY0MGM1NmZjZDM5NGJmYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMTggMjI6MTk6MzIgMjAxNCArMDIwMAoKICAgIG1ha2UgdGVzdDogYmFpbCBvdXQgaWYgbmV0c3RhdCBub3QgZm91bmQuCgpjb21taXQgYzEwZjJhY2JmY2MzODM0Y2Q5Mzg2NDFkYzFhMmM3MmFjYTdmNzg0NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdW4gMTAgMTY6MDY6NTkgMjAxNCArMDIwMAoKICAgIEZpeCBzdHVwaWQgYnVnIGluIHBrZy1uZyBwYXRjaAoKY29tbWl0IGUyZGE1NDg5YzNiYjgyOTc2MjYwNGM5ZDQxZjA4Y2IzYWVkZmQ4YTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDIgMTU6NDE6NTYgMjAxNCArMDIwMAoKICAgIFBBVENIICNhMTI4MzogUmVjb2duaXplIE9yYWNsZSBBQ0ZTIGZpbGUgc3lzdGVtIChUaGFua3MgSm9obiBIYXhieSkKCmNvbW1pdCA1NGMyY2MyNjU1YzFiNmM1NDg1ZDk5NDQxYWVkMmFjMTY5ZWVlNWY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1biAyIDE1OjI2OjAwIDIwMTQgKzAyMDAKCiAgICBJbnN0YWxsIFNOTVAtVFNNLU1JQiBhbmQgU05NUC1UTFMtVE0tTUlCCgpjb21taXQgY2UzMDkxY2JjNDhiYzQwNWM2ZWIxYWY3ZGRhZWIzNzBlZDc4NjQ3MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMiAxNToyMzoyNCAyMDE0ICswMjAwCgogICAgQlVHICNhMjUzNzogU3VwcG9ydCAqQlNEIHBrZy1uZwoKY29tbWl0IDQ5ZTRlNDliMTJhYWUwZDhmNzU3MjgzOTM2NWQ0NmNmOTMyYmZlYzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDIgMTU6MTg6NDYgMjAxNCArMDIwMAoKICAgIEZpeCBGcmVlQlNEIHN5c3RlbSBkZWZpbmUgY2hhaW4KCmNvbW1pdCAzYzVlNzEyNGIzNWZkNmFjYTQyODRlYWMzNjVkNzRiNjk4MTA3ODVhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEp1biAxIDExOjI3OjI1IDIwMTQgKzAyMDAKCiAgICBDSEFOR0VTOiBCVUc6IDEyNjcgc25tcGxpYjogcmVnaXN0ZXJfbWliX2NvbnRleHQoKSBmaXggZm9yIHJlYWQtb25seSB2YXJpYWJsZXMKICAgIAogICAgVGhpcyBpcyBhIHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgYSBwYXRjaCBmcm9tIEhhcnNoYSBTaGl2YW5uYS4KCmNvbW1pdCA1NmVjYzQzM2IwOWU5ODVmMWZkZDc4NmFhZTYwYjA2MWZmYWMwMzgyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEp1biAxIDExOjEyOjQ3IDIwMTQgKzAyMDAKCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuYzogRml4IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgYzljZjhmZDg2OWYzNzkxYTU4YTcxYjhhNjNmNWQ2MWQ2NzI5MWZhZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdW4gMSAxMDowOToyOCAyMDE0ICswMjAwCgogICAgY29uZmlndXJlOiBEaXNwbGF5IG1vZHVsZXMgbmFtZXMgc29ydGVkCgpjb21taXQgMjdhMTYwNTRkNjU2ZWIxMGFiZDAzMmRiYWM2OGViYmMyNmM3NjAwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBKdW4gMSAwOToyMjo1MiAyMDE0ICswMjAwCgogICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXg6IFJld29yayBuZXRsaW5rIGJ1ZmZlciBhbGlnbm1lbnQKICAgIAogICAgQmFzZWQgb24gYSBwYXRjaCBmcm9tIEpvc2h1YSBIb2tlLiBTZWUgYWxzbwogICAgaHR0cHM6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9idWdzLzI1NDcvLgoKY29tbWl0IGJkMTNmMDA0ZjZkYzE2ZGJlNTZlYTUzODE2NjI0OTU3NDVkOTM3ZTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgTWF5IDMxIDIwOjE2OjIwIDIwMTQgKzAyMDAKCiAgICBXaW5kb3dzOiA2NC1iaXQgZml4IGZvciBidWlsZC1iaW5hcnkucGwKCmNvbW1pdCAxZmE0ZGExYzZjZjk2NzYwNjMzM2Y3ZTc3ZTQwOGI3ZjUxZWY2MjU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE1heSAzMCAxNzo0MjowNyAyMDE0ICswMjAwCgogICAgV2luZG93czogU3VwcHJlc3MgVmlzdWFsIFN0dWRpbyAyMDEzIHdhcm5pbmdzIGFib3V0IHN0cnRvdWxsKCkKCmNvbW1pdCBiMzFhZWRlOWM4YjYzNDYxYjUwOTJlMTZkNjI2YTY3NmIxNzJmOGFhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAyMiAyMzowNToxOSAyMDE0ICswMjAwCgogICAgUEFUQ0ggIzEyNzc6IEZpeCBpZnNwZWVkIGZvciBTb2xhcmlzIHpvbmVzLiBUaGFua3MgdG8gbGlqbwoKY29tbWl0IDg2OWY3ODU1NDFhMWVhM2I0Mjc4MTQ1ODY3YjE1MmJlYzUwZDNlYjAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXByIDMwIDE0OjUyOjMxIDIwMTQgKzAyMDAKCiAgICB3aW5FeHRETEw6IFRyYW5zbGF0ZSBTbm1wRXh0ZW5zaW9uUXVlcnkoKSBQRFUgdHlwZSBjb3JyZWN0bHkKCmNvbW1pdCBlMDEwN2MyNmIzYTBlMzBhZTgzMjM1YmIyMjVmZWI3OGExYTE1NjM4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEFwciAzMCAxNTozODo1NSAyMDE0ICswMjAwCgogICAgV2luZG93czogU2lsZW5jZSBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAzYTlmODc1NDIzY2NhYThiYWVlN2UxNjRiYjhhNzVkZDhlMGI3MzQzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSA2IDA2OjI3OjEwIDIwMTQgKzAyMDAKCiAgICBQQVRDSCAjMTI3OTogTW9kaWZpZWQgcGF0Y2ggZnJvbSBNb2hhbiBmb3IgY29yZWR1bXAgYWZ0ZXIgY2FsbGluZwogICAgZnJlZSB3aXRoIGEgYmFkIHJlZ2V4LgoKY29tbWl0IDUxMzAyYmE1NzI4NWQ0ZDQ3OTkyZWQxNWE0NjA1ODAxMTJhM2U5MjQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDYgMDY6MjE6MjQgMjAxNCArMDIwMAoKICAgIEJVRyAjMjUyMTogQUlYOiBkb250IGRpZSB3aGVuIENQVSBpcyBkeW5hbWljYWxseSBhZGRlZCB0byBzeXN0ZW0uCgpjb21taXQgMTMxYzkzYmE5MmU0NmRkZGVjNGViM2E4MjA4YWI1YTNjMTAyNjUwOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgNiAwNjoyMDoyOCAyMDE0ICswMjAwCgogICAgQ29tcGxhaW4gYWJvdXQgLUQgb3B0aW9uIGlmIGRlYnVnZ2luZyBpcyBkaXNhYmxlZC4KCmNvbW1pdCA5NmE3YTZhODY4OTVmZGJmODkxNzk5ZTM3NjliMjdhN2U1NGFmMDg0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE1heSA2IDA2OjE5OjQyIDIwMTQgKzAyMDAKCiAgICBzbm1wdHJhcGQuODogYWRkIHNvbWUgbWlzc2luZyBmb3JtYXQgdG9rZW5zIHRvIG1hbiBwYWdlLgoKY29tbWl0IDgwYmU5MDdiZTlmNGYxZGY2YTE0NzBmZWFmYWE5MTZiOWM5YzQ5OTEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXByIDI3IDE1OjI1OjMwIDIwMTQgKzAyMDAKCiAgICBGaXggYnVnIDIzMTMgZm9yIGNyb3NzIGNvbXBpbGF0aW9uLgoKY29tbWl0IDlhZTU5ODE1MzBmZDJiZGQ5ZjJhNWM4NmI3ZDY5OTRiODczMDMzZDcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXByIDI2IDIyOjM2OjI2IDIwMTQgKzAyMDAKCiAgICBQcmVwYXJlIGZvciBGcmVlQlNEIDExIGFuZCAxMgoKY29tbWl0IGUzMmY3MGIxMmY1N2QyNmQ2OWQ0OTFmMWM3NDJiMDEzMmFjYTc2NjAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXByIDI2IDIxOjQyOjIxIDIwMTQgKzAyMDAKCiAgICBGaXggYSBjb3VwbGUgb2Ygc3RydWN0IHNpemVzIHRvIGJldHRlciBtYXRjaCBkZWNsYXJhdGlvbi4KCmNvbW1pdCA3Y2MyZGViNWQ5MTVkMjU3MjMyODMxN2QzNzAxZDM1ZDg2MWQzZDkyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEFwciAyNiAyMTozNDoyNiAyMDE0ICswMjAwCgogICAgVXNlIGluZXRfcHRvbiBvbnBsYWNlIG9mIGluZXRfYXRvbiB0byBoZWxwIHBvcnRhYmlsaXR5LgoKY29tbWl0IGEwODdmYzlmMTY0MDIzZGU0MTRiMDliZmQzNzQ3YzcyZjFiY2EwN2YKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXByIDI2IDIxOjMwOjU0IDIwMTQgKzAyMDAKCiAgICBVcGRhdGUgdG8gY3VycmVudCBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCIGFuZCBjdXJyZW50IFJGQ3MuCgpjb21taXQgODU3MDM3YThkMjQ1N2FjOWFhMmE1MjUxMDk1NzY0Nzk3MWE0NjYzNApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBcHIgMjYgMjE6Mjg6MDAgMjAxNCArMDIwMAoKICAgIFByZXBhcmUgZm9yIEZyZWVCU0QgMTEgYW5kIDEyLgoKY29tbWl0IGI5OTMwODQxN2Q0YmU3ZTEzOWY2MTAzZDQ0ZjExYjU1NDMzYTZiZjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWFyIDE2IDA4OjA0OjE1IDIwMTQgKzAxMDAKCiAgICBCZXR0ZXIgZG9jdW1lbnRhdGlvbiBmb3IgdHJhcCBsb2dnaW5nIGZvcm1hdHMuCgpjb21taXQgYTZlNGViMjZmNWMwNGQxNTc2MWNlYWY5MjQ1ODBlMGM0MGY3MmRmZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBNYXIgOSAwODo0Njo1NyAyMDE0ICswMTAwCgogICAgc3dydW5fKjogU2ltcGxpZnkgY29tbWl0IGRhMDBiYTEKCmNvbW1pdCAzN2FmNzkyM2I4MzJmMmVjODA4MzdmYTI4ZWRjYWM4ZWIwYzdlOGVhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE1hciA5IDA4OjM0OjEyIDIwMTQgKzAxMDAKCiAgICBzd3J1bl8qOiBSZXN0b3JlIGJ1ZmZlciBvdmVyZmxvdyBwcmV2ZW50aW9uIGNvZGUgdGhhdCB3YXMgcmVtb3ZlZCBpbiBkYTAwYmExCgpjb21taXQgZjQzNmNlMjhmZGEzZWRjNzAxMGNkODZlY2YzYzM4NmM1YWY1MjE5NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgOCAxNDowNzo1NyAyMDE0ICswMTAwCgogICAgdXRpbF9mdW5jOiBmaXggc2tpcHBpbmcgb2YgZGlnaXRzIHdoaWNoIHdvdWxkIHJ1biBvbmUgdG9vIGZhcgoKY29tbWl0IGRhMDBiYTE0MmQ2YjUwNDI1NTg4OWYwOWViOWY3ZDIyMmVmNDBhZGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDggMTQ6MDQ6MTkgMjAxNCArMDEwMAoKICAgIHN3cnVuXyo6IHNucHJpbnQgbWF5IGhhdmUgc2V0IGEgdG9vIGxvbmcgc3RyaW5nIGxlbmd0aC4gRml4IGl0IGlmIG5lZWRlZC4KCmNvbW1pdCAzYjIwMmViMDVlYzRlNWY2ZjhmNTRiYzhhY2I0MzczNzNlNmI1ZDAzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciA4IDE0OjAyOjE4IDIwMTQgKzAxMDAKCiAgICBzd2luc3RfYXB0OiBlbnN1cmUgcm9vbSBmb3Igc3RyaW5nIHRlcm1pbmF0b3IKCmNvbW1pdCA4YTY2ODE0ZWRhZDVhMjhmZGJjODY0NWZiMGUxNDQ1OWJmOTE1ZGEwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciA4IDE0OjAwOjI4IDIwMTQgKzAxMDAKCiAgICBtdGFfc2VuZG1haWw6IGlzc3BhY2UgY2Fubm90IHRha2UgYSBjaGFyIGFyZ3VtZW50Cgpjb21taXQgM2U3MzRmYjNiZGRmMTFiOTliNmJhN2RkY2IzMGFlOTMyZDhiYTNiMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgOCAxMzo1ODowNyAyMDE0ICswMTAwCgogICAgZXhwRXhwcmVzc2lvbkNvbmYsIGV4cFZhbHVlOiBpc3NwYWNlIGNhbm5vdCB0YWtlIGEgY2hhciBhcmd1bWVudC4KCmNvbW1pdCA3NmU4ZDZkMTAwMzIwNjI5ZDhhMjNiZTRiMDEyODYxOTYwMGM5MTlkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgNiAwOToyMTo1MSAyMDE0ICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxMjc1OiBmcm9tIFZpbGlhbSBQw7rEjWlrOiBmaXhlZCBQZXJsIHRyYXAgaGFuZGxlciB3aGVuIHByb2Nlc3NpbmcgdHJhcCB3aXRoIGVtcHR5IGNvbW11bml0eSBzdHJpbmcuCgpjb21taXQgNWQwNmE1ZmJiNWVkM2NhMmI1ODIwZThlZjJkNWI1Yjg4YjlkN2RmOApBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIE1vbiBGZWIgMyAxMTo1ODowMyAyMDE0IC0wODAwCgogICAgQWxsb3cgdGhlIG5vZGVtYXAgdG8gY29udGFpbiBtdWx0aXBsZSBub2RlcyBmb3IgbWlicyBsaWtlIElGLU1JQgogICAgCiAgICBJbiB0aGUgSUYtTUlCLCAiaW50ZXJmYWNlcyIgYW5kICJpZk1JQk9iamVjdHMiIGJvdGggY29udGFpbgogICAgc2lnbmlmaWNhbnQgc3VidHJlZXMuICBBbGxvdyBub2RlbWFwIHRvIGNvbnRhaW4gYSBjb21tYS1zZXBhcmF0ZWQKICAgIGxpc3Qgb2Ygbm9kZXMsIHRvIGhhbmRsZSBNSUJzIGxpa2UgdGhpcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMy5wcmUyIC0+IFY1LjcuMy5wcmUzCgpjb21taXQgNTQxNjZjZjZjN2E5OGJmOGU1ZDBkYmFiZjliNWU1YTI1NWM0YzQyMQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMjUgMTI6NDU6MTQgMjAxNCAtMDgwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMy5wcmUzCgpjb21taXQgM2Q0ZTNhNjZiZDA5N2UzNzIwZmU1ZGUyZjJlMDU3NDFiMzMwNjMwNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMjUgMTE6NDI6MTUgMjAxNCAtMDgwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjMucHJlMwoKY29tbWl0IGExZmQ2NDcxNmY2Nzk0YzU1YzM0ZDc3ZTYxODIxMDIzOGE3M2JmYTEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDE5IDE1OjIxOjU3IDIwMTQgLTA4MDAKCiAgICBidWcgZml4IGZyb20gZmVubmVyOiBmaXggSUNNUCBtaWIgdGFibGUgaGFuZGxpbmcgb24gbGludXgKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjMucHJlMSAtPiBWNS43LjMucHJlMgoKY29tbWl0IGJmMGExYzM3ZDhiOGM2NDRlODM3MDQxZDA5MGFhYmU4ZmQ4MTMxZTgKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDI1IDA3OjQ5OjA0IDIwMTQgLTA4MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjMucHJlMgoKY29tbWl0IGRlY2ZkOGQ3OWI1NGQyOThkZWQ5NzQzOWVmYjcxMGU4ZjZiYTUyNGMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDI1IDA3OjMzOjUyIDIwMTQgLTA4MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4zLnByZTIKCmNvbW1pdCA4YWVjY2VmMzliYmFlYjhiODAyNWE2OGVjNDc2MWJjODJlYzlhZWFhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEZlYiAyNSAwNzoyNzo0NyAyMDE0IC0wODAwCgogICAgTkVXUzogc25tcGQ6IHBhdGNoIDI1MjU6IGZyb20gUnlhbiBTdGVpbm1ldHo6IEZpeCBhcmd1bWVudCBsZW5ndGggcGFyc2luZyBvZiB0aGUgaG9zdCByZXNvdXJjZXMgbWliCgpjb21taXQgYjIyMmU3YTNlZWY1OWNiYjY4YTQ1MzQ3NmNiMzY0MzQyYzc0ZTY0MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMTkgMjI6MjY6MDggMjAxNCArMDEwMAoKICAgIEZpeCBzcGVsaW5nIGVycm9yCgpjb21taXQgZjhmY2IzYmMzODE4OGNjYmU5YmFjZWU1OGQ2ZmQyYjk4M2QwOTkyNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMTkgMjI6MjQ6MjYgMjAxNCArMDEwMAoKICAgIEZpeCBzcGVsaW5nIGVycm9yCgpjb21taXQgZDIxNGQ3MGM0NTI0ZTYyZmNjYWYxMDgzYWJjNWJhMWE0MzlhNDYzZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMTkgMjI6MjE6NTUgMjAxNCArMDEwMAoKICAgIHNubXBzdGF0dXM6IGRldGVjdCBTTk1QIGV4Y2VwdGlvbiByZXNwb25zZXMuCgpjb21taXQgYmY3NWVjNjY5NjVkMTU3Y2IwNDQyZjdkZmY1NjU2Zjk5Y2Q3MDYzNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBGZWIgMTkgMjI6MjA6MDUgMjAxNCArMDEwMAoKICAgIEZpeCB0ZXN0IGZvciBjb20yc2VjNiBhY2Nlc3MuCgpjb21taXQgNjU2N2EzN2ZhMzAxYjhmYTFiNjgwMDlkNWEwYjNhM2NiZmI5ZThmMQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgMTcgMjE6NDk6MTMgMjAxNCArMDEwMAoKICAgIHRlc3RpbmcvTWFrZWZpbGUuaW46IG1ha2Ugc3VyZSAnJCcgc3Vydml2ZXMgZm9yIHBlcmwgdGVzdC4KCmNvbW1pdCAwNWI1NTFiYzMzMTE4NWVkYTFjMDgxZDMxMzhkMGFjNjI1YjA3ZDZhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiAxNyAyMTozNjo0OCAyMDE0ICswMTAwCgogICAgRml4IHNvbWUgbWFuIHBhZ2Ugc3BlbGxpbmdzLgoKY29tbWl0IDhiMDU1NWQ5NWNiYzIzOGNiZTk4MzY0MzliODgwNzBjODBhOWNhNWUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDE3IDIxOjM1OjI4IDIwMTQgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogZml4IGNhbGwgb2YgbWVtY3B5IHdpdGggb3ZlcmxhcHBpbmcgYXJlYXMuCgpjb21taXQgM2M2YTdhNmM5NDc0MjQ4MjRlNzI0ZTI5NDQ4M2E3ZWNkNzBkOWQ0MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgMTcgMjE6MzM6NDcgMjAxNCArMDEwMAoKICAgIHJvdXRlX2lvY3RsLmM6IHNldCBwcm9wZXIgbWFzayBiZWZvcmUgU0lPQ0RFTFJULgoKY29tbWl0IGY5OWVmNWNlZjIwM2VhMzc4NTUzYTJhYjQ5MjVmY2Q4NjllN2Y1YTMKQXV0aG9yOiBCaWxsIEZlbm5lciA8ZmVubmVyQGdtYWlsLmNvbT4KRGF0ZTogICBUdWUgRmViIDExIDA4OjQ3OjUxIDIwMTQgLTA4MDAKCiAgICBEYXZpZCBKYXJ2aWUncyBwYXRjaCBmb3IgYnVnIDI1MDcKCmNvbW1pdCBkNzBmMmU5MWUyYzcyNThlNzY4ZTMyYjY4M2Q4MTRhOTQxNTY0YWMxCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgTW9uIEZlYiAzIDExOjU4OjAzIDIwMTQgLTA4MDAKCiAgICBBbGxvdyB0aGUgbm9kZW1hcCB0byBjb250YWluIG11bHRpcGxlIG5vZGVzIGZvciBtaWJzIGxpa2UgSUYtTUlCCiAgICAKICAgIEluIHRoZSBJRi1NSUIsICJpbnRlcmZhY2VzIiBhbmQgImlmTUlCT2JqZWN0cyIgYm90aCBjb250YWluCiAgICBzaWduaWZpY2FudCBzdWJ0cmVlcy4gIEFsbG93IG5vZGVtYXAgdG8gY29udGFpbiBhIGNvbW1hLXNlcGFyYXRlZAogICAgbGlzdCBvZiBub2RlcywgdG8gaGFuZGxlIE1JQnMgbGlrZSB0aGlzLgoKY29tbWl0IDk4NzgxYWUzZGE0M2I3YjE1ODNlY2RlM2UyMWJiNjUyNWEyYzBiODAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDI3IDIyOjI0OjE4IDIwMTQgKzAxMDAKCiAgICByb3V0ZV9pb2N0bC5jOiBGaXggc2V0dGluZyB0aGUgbmV0bWFzayB3aGVuIGNyZWF0aW5nIHJvdXRlIHRocm91Z2gKICAgIGluZXRDaWRyUm91dGVUYWJsZSBhbmQgaXBDaWRyUm91dGVUYWJsZS4KCmNvbW1pdCAyZTk0Nzc3NjkzZjE4NTM0NzlkZWQ2NzBiZTMwN2VjZTcxMzhmZWI1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAyNyAyMjoxMzowNSAyMDE0ICswMTAwCgogICAgRml4IGNvbXBpbGUgZm9yIFNvbGFyaXMgd2l0aG91dCBJUHY2LgoKY29tbWl0IDhmNjk5MWEyMTE0ZmQyMWJhNTUxOWVlOTU3NmJlYjA4MmY2MDNkZWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDIzIDE2OjMwOjQ2IDIwMTQgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogc2VhcmNoIGlmTmFtZSBhbmQgaWZBbGlhcyB3aGVuIGxvb2tpbmcgZm9yIGludGVyZmFjZQogICAgbmFtZSBmcm9tIC1DSSBvcHRpb24uCgpjb21taXQgNGEzNjAxMDQ2NTljMTY5Y2UyMzIyNTZlMTM4ZDkzOGQ5NGU0MzVmOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMjMgMTY6Mjg6MzIgMjAxNCArMDEwMAoKICAgIGxvZ21hdGNoOiBmaXggb3V0LW9mLWJvdW5kcyBhY2Nlc3MuIFRoYW5rcyB0byBnY2Mgb3IgY2xhbmcKICAgIHdpdGggLWZzYW5pdGl6ZT1hZGRyZXNzIChyZWNvbW1lbmRlZCEpCgpjb21taXQgZWVmMmY2NGI0NjM1N2IzNTNjNzk1MDRiYzU5MzUzNWViZTc0MjFlNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMjMgMTY6Mjc6MDcgMjAxNCArMDEwMAoKICAgIGNwdV9saW51eDogc3VwcG9ydCBzeXN0ZW1zIHdpdGggbW9yZSB0aGFuIDEwMCBjcHVzLgoKY29tbWl0IDNiZDY4M2M5NmQ2YTg4NjRmYmQ4MDc4NTc0YWVlOGNkNDMxY2UzMDIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE1IDE4OjM2OjAxIDIwMTQgKzAxMDAKCiAgICBVcGRhdGUgb3B0aW9ucyBsaXN0cyBpbiBtYW51YWwgcGFnZXMgYW5kIGNvbW1hbmRzIGhlbHAuCgpjb21taXQgYTVlZmU4ZGYxN2RkYzRmNjY5M2M3ZGE5YTUyYzQwMWY0ZGIyYmU2MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTUgMTg6Mjg6MjQgMjAxNCArMDEwMAoKICAgIHRlc3QgVDAyNzogbWFrZSBzdXJlIGl0IHdvcmtzIGFsc28gd2hlbiBjb25maWd1cmVkIHdpdGggLS13aXRoLWRlZmF1bHQtc25tcC12ZXJzaW9uICE9IDMuCgpjb21taXQgNTdkMTA4MjkwMGY5YWM5MzE0NDQzMTZhNmY5NWYxOWVkYTA2OTA3NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTUgMTg6MjY6MjQgMjAxNCArMDEwMAoKICAgIGNwdV9saW51eDogcmVtb3ZlIHJlZHVuZGFudCBjYXN0cy4KCmNvbW1pdCA5ZjRjNTcyNjE0MDkxNDA0ZGVjYmEwZDRlZjFhNGNiYWY5ZmM1YmQyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gOSAxMzozNToyNyAyMDE0ICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIG1vbml0b3JpbmcgYmFzZWQgb24gbm9uLWRlbHRhIHRyaWdnZXIuCiAgICAKICAgIHNubXBkIGNyYXNoZWQgd2l0IGZvbGxvd2luZyBzbm1wZC5jb25mOgogICAgICAgIG1vbml0b3IgLXMgLUQgLXIgMTAgLWUgTE9HTUFUQ0ggLW8gbG9nTWF0Y2hDdXJyZW50Q291bnQgIkxvZyBNYXRjaCIgIT0gbG9nTWF0Y2hDdXJyZW50Q291bnQKICAgICAgICBsb2dtYXRjaCBMb2dpbkZhaWx1cmUxIC92YXIvbG9nL3NlY3VyZSAxMCBzdTogLipmYWlsLioKICAgIAogICAgVGhlIHJlYXNvbiB3YXMgdW5pdGlhbGl6ZWQgdmFyaWFibGUgc3lzVVRfdmFyIGluIG10ZVRyaWdnZXJfcnVuKCksIGl0IHdhcwogICAgZmlsbGVkIG9ubHkgaWYgdGhlIHRyaWdnZXIgd2FzIGRlbHRhLXZhbHVlZCwgd2hpbGUgaXRzIHZhbHVlIHdhcyB1c2VkIGZvciBhbGwKICAgIHRyaWdnZXJzLgogICAgCiAgICBXaXRoIHRoaXMgcGF0Y2gsIHN5c1VUX3ZhciBpcyBmaWxsZWQgZm9yIGFsbCBjb2RlIGJyYW5jaGVzIHdoZXJlIGl0IGlzIG5lZWRlZC4KCmNvbW1pdCBjNzUxMmFmZTU2NDNlY2FhZTk3NDVhYzE5OWI4MzljM2FhZDg0NTdiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyOSAxNzozNDo1MSAyMDEzICswMTAwCgogICAgUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMKCmNvbW1pdCBjOTFmODQwZDgzOTgxZjY2MGI3NTI3NGRiY2MzODdjYjVjNWY5OWFmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyOSAxNzoyOToyNiAyMDEzICswMTAwCgogICAgUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMKCmNvbW1pdCAyZGQ3ZGJhNzZkMWQwYjRmODY2ODM0ZTBmZDYwMTQ4YzI4MWExNTNjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyOSAxNzoyNTowNSAyMDEzICswMTAwCgogICAgUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMKCmNvbW1pdCA1OTE0MzFmNzk5MWY4M2QyMzg1YWRiYzVhMjJjNGE4OTU3NmJjMzEzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyOSAxNzoyMTo1NiAyMDEzICswMTAwCgogICAgUmVnZW5lcmF0ZSBjb25maWd1cmUgdXNpbmcgdGhlIHJpZ2h0IGF1dG9jb25mIHZlcnNpb24KCmNvbW1pdCA4NWJiNGI1YzlmNDg5Njg3NjcxNWNiMWYxNGY0ZjFiNTgyZDIyM2JkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyOSAxNzoxMjowMyAyMDEzICswMTAwCgogICAgUmVnZW5lcmF0ZSBkZXBlbmRlbmNpZXMKCmNvbW1pdCBkMjU1Y2E0MjZkMWUzZDRiYzQ4YjhmM2RiOTM3NDM1Nzg4OTM0YzQyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAyOSAxMjozNTozMCAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEF2b2lkIGR1cGxpY2F0ZSBhbmQgdHJhaWxpbmcgc3BhY2VzIGluIHRoZSBkZXBlbmRlbmN5IGZpbGVzLgoKY29tbWl0IGQxNWNkMmI5NzQzY2NjYjUwMmRlYWZkMTQzYWRlMGFhOTBjZjMxZTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDIxIDA5OjA1OjEzIDIwMTMgKzAyMDAKCiAgICBNaW5HVzogQnVpbGQgZml4CiAgICAKICAgIEFwcGFyZW50bHkgd2l0aCByZWNlbnQgTWluR1cgaGVhZGVyIGZpbGVzIDx3aW5zb2NrMi5oPiBzaG91bGQgYmUKICAgIGluY2x1ZGVkIGluc3RlYWQgb2YgPHdpbnNvY2suaD4uIE1vZGlmeSA8bmV0LXNubXAvdHlwZXMuaD4gYWNjb3JkaW5nbHkuCgpjb21taXQgN2JhMjNlNTcwNzY0OTllZjhlZWIyMzg4NTM4MzQ3M2NjZjQ0NzM2NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBEZWMgMTUgMTA6NTg6MjUgMjAxMyArMDEwMAoKICAgIFdpbjMyOiBiYXRjaCBidWlsZDogQ2hlY2sgd2hldGhlciBQZXJsIGFyY2hpdGVjdHVyZSBtYXRjaGVzIHRhcmdldCBhcmNoaXRlY3R1cmUKICAgIAogICAgQnVpbGRpbmcgdGhlIFBlcmwgbW9kdWxlcyBmYWlscyBpbiBhIHN1YnRsZSB3YXkgaWYgZS5nLiBhIDMyLWJpdCBQZXJsCiAgICBpbnRlcnByZXRlciBpcyBwcmVzZW50IGluICVQQVRIJSBhbmQgYSA2NC1iaXQgQyBjb21waWxlciBvciB2aWNlIHZlcnNhLgogICAgSGVuY2UgY2hlY2sgd2hldGhlciBQZXJsIGludGVycHJldGVyIGFuZCBDIGNvbXBpbGVyIHRhcmdldCBhcmNoaXRlY3R1cmUKICAgIG1hdGNoIGJlZm9yZSBzdGFydGluZyBhIGJ1aWxkLgoKY29tbWl0IDZiNzA2YzUzZDRjZjc1MWU0OTVhYWI2NmZlMzlmZDUxYzMyY2U5MzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gRGVjIDE1IDEwOjA2OjIxIDIwMTMgKzAxMDAKCiAgICBXaW4zMjogVmlzdWFsIFN0dWRpbyAyMDEzIGJ1aWxkIGZpeAogICAgCiAgICBBcHBhcmVudGx5IFZpc3VhbCBTdHVkaW8gMjAxMyBkb2VzIG5vdCBzdXBwb3J0IGdvdG8gPHR5cGVkZWYgbmFtZT4uCiAgICBIZW5jZSByZW5hbWUgdGhlIFVJTlQgbGFiZWwuIEZvciBjb25zaXN0ZW5jeSByZWFzb25zLCBhbHNvIHJlbmFtZQogICAgdGhlIE9DVCBsYWJlbC4KCmNvbW1pdCAxM2M4NTkwZTM4MjY5YTkyNjVlYWQ1Yzg1ZjA1Yzg4OTRlODZkODRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIERlYyAxNSAwOTozMTo0NCAyMDEzICswMTAwCgogICAgUmVtb3ZlIHRoZSBORVRTTk1QX0RPTlRXQUlUIC8gTkVUU05NUF9OT1NJR05BTCBhbGlhc2VzIGZvciBzZW5kdG8vc2VuZG1zZyBmbGFncwogICAgCiAgICBOb3RlOiB0aGlzIHBhdGNoIGlzIGEgbW9yZSBlbGFib3JhdGUgdmVyc2lvbiBvZiB0aGUgVjUtNy1wYXRjaGVzIGNvbW1pdAogICAgODlhNTA0ZmUzMzFlMDlhNTRmNmIwMWMyODc3Y2YwMjI5MDA3MDVhOCAoMjAxMS0xMi0xOSkuCgpjb21taXQgZTBlYWQyZDU0ZWJmNDM1MzNlNTYyYzM0MDJlMTIxODhjZmRjMDc5ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBEZWMgMTQgMTg6NTQ6MDEgMjAxMyArMDEwMAoKICAgIHdpbjMyL2J1aWxkLnBsOiBBZGQgc3VwcG9ydCBmb3IgdGhlIFZpc3VhbCBTdHVkaW8gMjAxMyBjb21tYW5kLWxpbmUgZW52aXJvbm1lbnQKCmNvbW1pdCA4ODg2MDk1YTk5MDkwMjkzYjA2YTA3MTllN2I4NjhmMWVkYzE0OTMzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IERlYyAxNCAxODoyOTowMSAyMDEzICswMTAwCgogICAgbGliYWdlbnQ6IFdpbjMyIGJ1aWxkIGZpeCAoc2VlIGFsc28gY29tbWl0IDAxNzIzYzYpCgpjb21taXQgNWYzMmI0YWFhOGJjZDIyZWJhOWM2NDkyMjNmZTA4MGQ1NDc5YmM4ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBEZWMgMTQgMTc6MTc6MzAgMjAxMyArMDEwMAoKICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oOiBBZGQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjIgLT4gVjUuNy4zLnByZTEKCmNvbW1pdCBkMDExN2FkZWU4NGVmY2I1OGE1ZTQxODNmN2Q3Y2M2ZTcwMGYwMjY0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyA1IDIzOjMzOjUxIDIwMTMgLTA4MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjMucHJlMQoKY29tbWl0IGIxZGJkYThiYmNjYTgyMzc3NjY0ZGNhOWNiNmJiMDZmOWNlNjM3YTIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDUgMjM6MzM6MzcgMjAxMyAtMDgwMAoKICAgIFJlcGxhY2UgLy8gY29tbWVudHMgd2l0aCAvKiBjb21tZW50cwoKY29tbWl0IDllZTM5NmNlYzE4MTE1MTJmYmNiMjQ0OTBiM2JlMGI5NzBmNjlmZmIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDUgMjM6MDY6MTMgMjAxMyAtMDgwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjMucHJlMQoKY29tbWl0IDZjMzkyZmVkNmNkNWQ3YTMyZWQxMGM4MTcwYWVkODUxY2VlNzc5ODUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDUgMjM6MDQ6MjUgMjAxMyAtMDgwMAoKICAgIGluY3JlbWVudCB0aGUgcmV2aXNpb24KCmNvbW1pdCBmNTQwM2U3NTY3ZWIwNzFiZWQ4ZGFkYmEzOGEyY2RhNjAzMzJiOGZjCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgU3VuIERlYyAxIDE4OjI0OjEyIDIwMTMgLTA4MDAKCiAgICBEb24ndCBzZXQgdGhlIGlmaW5kZXggd2hlbiBzZW5kaW5nIGEgbm9ybWFsIHJlcGx5LgogICAgCiAgICBTZXR0aW5nIHRoZSBpZmluZGV4IGluIHRoZSBJUF9QS1RJTkZPIHJlc3VsdHMgaW4gc2V0dGluZwogICAgdGhlIHNvdXJjZSBhZGRyZXNzIHRvbyAoaWdub3JpbmcgdGhlIHNvdXJjZSBhZGRyZXNzIHRoYXQKICAgIHdlIGFsc28gc3VwcGx5KS4gIFRoZSBzZXF1ZW5jZSBoZXJlIGlzIHRoYXQgd2Ugc2VuZCB3aXRoCiAgICBubyBpbnRlcmZhY2Ugc3BlY2lmaWVkIGJ1dCB0aGUgcmVxdWVzdCdzIGRlc3RpbmF0aW9uCiAgICBzcGVjaWZpZWQgYXMgb3VyIHNvdXJjZS4gIElmIHdlIGdldCBFSU5WQUwsIGl0J3MgYmVjYXVzZQogICAgdGhlIHJlcXVlc3QncyBkZXN0aW5hdGlvbiB3YXMgYSBicm9hZGNhc3QgYWRkcmVzcyB3aGljaAogICAgaXMgYW4gaW52YWxpZCBzb3VyY2UgYWRkcmVzcywgc28gd2UgdHJ5IGFnYWluIHdpdGggdGhlCiAgICBpbmNvbWluZyBpbnRlcmZhY2UncyBpZl9pbmRleCBhbmQgc3BlY2lmeSB0aGUgc291cmNlCiAgICBhcyBJTkFERFJfQU5ZLgogICAgCiAgICBJZiB3ZSBzdXBwbHkgdGhlIGlmaW5kZXggaW4gdGhlIGZpcnN0IGNhbGwsIGEgcmVwbHkgZnJvbQogICAgYSBtdWx0aS1ob21lZCBhZ2VudCBtYXkgY29tZSBmcm9tIGEgZGlmZmVyZW50IHNvdXJjZSBhZGRyZXNzCiAgICB0aGFuIHRoZSByZXF1ZXN0IHdhcyBzZW50IHRvLCBwb3RlbnRpYWxseSBjb25mdXNpbmcgYSBtYW5hZ2VyLgogICAgVGhpcyBidWcgd2FzIGZpcnN0IGludHJvZHVjZWQgaW4gU1ZOIHIxNzg1NSBhbmQgd2FzIGZpeGVkCiAgICBpbiBTVk4gcjE5NzY3OyBhbHNvIHNlZSB0aGUgbWFpbGluZyBsaXN0IHRocmVhZAogICAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9tYWlsYXJjaGl2ZS9mb3J1bS5waHA/dGhyZWFkX25hbWU9QUFOTGtUaW0zN0g3TTdCYTAxMExtZGsxWUdZS3dQVGtEeVJLb0RyNzZ1cURUJTQwbWFpbC5nbWFpbC5jb20mZm9ydW1fbmFtZT1uZXQtc25tcC1jb2RlcnMKCmNvbW1pdCAxNDRhMTMyMDhiNGZhNmYwYTFjZDk3MWY0MWE3Mjc5NzE2YjI3ZWVlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAyOSAwODowNzoyOCAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQ6IGZpeGluZyB0aGUgc3RhdHMgb3V0cHV0IGJyb2tlIHRoZSBjb25uIG91dHB1dCA6LSguIEZpeGVkLgoKY29tbWl0IGY0ZTVlZTZmMzk2MzBiNzNmOGFkOTk0NmM5OTBlOTY5MDU4MGQ3Y2YKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgTm92IDI3IDAxOjEyOjAwIDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdGVzdHMgZm9yIGFzbl9yZWFsbG9jX3JidWlsZF8qaW50KiBhbmQgdGVzdHMgZm9yIG9wYXF1ZSB1bnNpZ25lZCA2NC1iaXQgdHlwZXMuCgpjb21taXQgMjBlNGIzNzkzMmE5ZTljYzU2YjM2MGEyMzZlOWQ4MTgwNzkzYTI5NwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBOb3YgMjcgMDA6NTQ6NTggMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgdGhlIHR5cGUgY2hlY2sgZm9yIG9wYXF1ZSB2YXJpYWJsZXMgd2hlbiBkZWNvZGluZyBjb3VudGVyNjQgdmFsdWVzLgogICAgCiAgICBUaGFua3MgdG8gcmtqQHNvZnRob21lLm5ldCBmb3IgcmVwb3J0aW5nIHRoaXMgaXNzdWUuCgpjb21taXQgNmU3NmNiYmIyYTA3ODNmMjJmNThmYjdkMzIzZTlmNzIxN2NjNjA0YQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBOb3YgMjcgMDE6MDE6MDQgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIGZhaWx1cmUgdG8gdHJpZ2dlciBzaWduIGV4dGVuc2lvbiBkdWUgdG8gb3ZlcmxvbmcgdHlwZXMKICAgIAogICAgSW4gYXNuX3JlYWxsb2NfcmJ1aWxkX3NpZ25lZF9pbnQ2NCB0aGUgYWxnb3JpdGhtIGFzc3VtZXMgdGhhdCBzaGlmdGluZwogICAgdmFsdWVzIGdyZWF0ZXIgdGhhbiAweDdmZmZmZmZmIHJpZ2h0IGlzIGFuIGFyaXRobWV0aWMgc2hpZnQgdGhhdCB3aWxsCiAgICBzaGlmdCBpbiAxJ3MuIE9uIGhvc3RzIHdoZXJlIGxvbmcgaXMgbW9yZSB0aGFuIDMyIGJpdHMgdGhlIHVzZSBvZiBsb25nCiAgICBmb3IgJ2xvdycgYW5kICdoaWdoJyBtYWtlcyB0aGlzIGFzc3VtcHRpb24gZmFsc2UuCiAgICAKICAgIFRoYW5rcyB0byBya2pAc29mdGhvbWUubmV0IGZvciByZXBvcnRpbmcgdGhpcyBpc3N1ZS4KCmNvbW1pdCA0YTRiNzhlNjNkZDY4ODg5MmI3Mzk5YjU4NGUyNmUwNDdkMzY3NTAxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyNyAyMjoxNjo0NCAyMDEzICswMTAwCgogICAgQWRkaXRpb25hbCBmaXggZm9yIGRhcndpbjEzCgpjb21taXQgOTFiZDVkNGM1ZjQxYjU0YzQ2MjQyODgzZGI5MmFhNGU0OTQ1NTI5NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMjcgMjI6MTM6MDMgMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBmaXggdHJ1bmNhdGVkIHN0YXRpc3RpY3Mgd2hlbiB1c2luZyAtdjEKCmNvbW1pdCAwY2IxNGQ0ZTVjMzlhMDdjNzg0NzQ4ODFlNmM3M2ZhNjE3NTA3YmRiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyNyAyMjowNjo1OCAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQ6IGZpeCBzdGF0aXN0aWNzIGZvciBpcHY2Cgpjb21taXQgMmQ0ZGVmZTc3YmRlYmJiYzFhNzczZWI4ZDQ4NDk4YjZmMjU1OGYyMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBOb3YgNSAwNjo0OTozNSAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFVzZSAwIGZvciB0aGUgaWdub3JlZCBudW12YXJzIGFyZ3VtZW50IHRvIG5ldHNubXBfcmVnaXN0ZXJfbWliCiAgICAKICAgIFRoZSBudW12YXJzIGFyZ3VtZW50IG9mIG5ldHNubXBfcmVnaXN0ZXJfbWliIGlzIGlnbm9yZWQgaWYgdGhlIHZhcgogICAgYXJndW1lbnQgaXMgTlVMTC4gSW4gb3JkZXIgdG8gdW5pZnkgdGhpcyB1c2Ugb2YgaXQgd2l0aCBhbGwgb3RoZXIgb25lcywKICAgIGNoYW5nZSBpdCBmcm9tIDEgdG8gMAoKY29tbWl0IGI5OTMzZTYxODNiMTcxNWM5MGQ3Y2Y2ZGZhYzE4OTEwMDA3OTZiY2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTm92IDIyIDIzOjA0OjA4IDIwMTMgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNvbWUgdW51c2VkIGluY2x1ZGVzCgpjb21taXQgYTc4MzA3MDM4YmYwYjQ4NTllMTFiZDg2Y2EzMDQ5YzMzOWFiZTEyNgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMjMgMDk6NDk6MDEgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgYSBtaXNzaW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCgpjb21taXQgZDhkNjA3OGIzZTY1YjViYTEzMWRmODQyZDkyYzc3NDM3MzdmZjk1NQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBOb3YgMTkgMDg6MDY6MzQgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1hcmsgcmVnaXN0ZXJfc2lnbmFsIGFuZCB1bnJlZ2lzdGVyX3NpZ25hbCBhcyB1bnVzZWQuCgpjb21taXQgYmYwODNmNWI2OWNjYjk1ZmY3MGUyYTI4YTdjNjRmZWM3ZDdlNDIyZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTggMjI6NDE6MjggMjAxMyArMDEwMAoKICAgIFBhdGNoIGExMjcwOiBtYW4gcGFnZSBmaXh1cHMgKHRobmtzIEFsZWtzYW5kcnMgU2F2ZWxqZXZzKQoKY29tbWl0IDYyYTYzNGNlNjcxYzM4YWRlOTc5MTcwNzcwMzllMzRhZTNkOTI3MzQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gTm92IDMgMTY6MDI6MzkgMjAxMyAtMDgwMAoKICAgIFdpbjMyOiBVbmJyZWFrIHRoZSBidWlsZCAoc2VlIGFsc28gY29tbWl0IDI1M2Y5MDc0MykKCmNvbW1pdCBhODEzYjUxMTEyNTVmNzVmZWY2OTQ0Y2VkZDY0OGRiZjhjMzRhOWFkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE5vdiAxMSAxNzo1NDo0NCAyMDEzICswMTAwCgogICAgV2luMzI6IHBlcmw6IEF2b2lkIHRyYW5zcG9ydCBpbml0aWFsaXphdGlvbiBmYWlsdXJlIGluIFBlcmwgU05NUCBhZ2VudHMKICAgIAogICAgQXZvaWQgdGhhdCB0aGUgZm9sbG93aW5nbiBtZXNzYWdlIGlzIHByaW50ZWQgZHVyaW5nIHN0YXJ0dXAgb2YgYSBQZXJsIFNOTVAKICAgIGFnZW50OgogICAgCiAgICBuZXRzbm1wX2Fzc2VydCBzICE9ICgtMSkgZmFpbGVkIC4uXC4uXHNubXBsaWJcdHJhbnNwb3J0c1xzbm1wVURQQmFzZURvbWFpbi5jOjQ4NAogICAgCiAgICBTZWUgYWxzbyBjb21taXQgMzZhN2RlNzIzMGZiYmJiNTJjYzM3Y2JiZWQyODFlYjU1OTQwNGJlOS4KCmNvbW1pdCBhMmEzYTFhYTY3ZmYzOGRhYThmMTM5NTE4YWJiMzU0ODQ3NWVkNTkxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiA4IDIyOjMyOjI5IDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogZml4IHVzYWdlIG1lc3NhZ2UgdG8gYmUgY2xvc2VyIHRvIHJlYWxpdHkuIEZpeCBoYW5kbGluZyBvZiAtQ3AgYW5kIC1DZiBvcHRpb25zIHdpdGggbmV3IHRhYmxlcy4KCmNvbW1pdCA3Mjc3NDAwMTAyZGZjYTkyMWVhYzBiZDljZWY4NmIzMmY1OTgwMDNkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiA4IDIyOjMwOjE0IDIwMTMgKzAxMDAKCiAgICBDbGVhbiB1cCBzbm1wbmV0c3RhdCBtYW4gcGFnZSwgcmVtb3Zpbmcgc29tZSBsZWZ0IG92ZXIgY3J1ZnQgbWFuCiAgICBvcmlnaW5hbCBic2QgbmV0c3RhdCBwYWdlLgoKY29tbWl0IGViMDM3OWRiMzg1M2ZhZDEzOGY5MmY0NzkyYTgwMzQxNzdkOTYyOWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDQgMjI6MDk6NTUgMjAxMyArMDEwMAoKICAgIEZpeCBsZW5ndGggb2YgZGVmYXVsdCByb3V0ZXIgYWRkZHJlc3MgdXNpbmcgc3lzY3RsLgoKY29tbWl0IDhmYTQ2ZjI5NjEzYzE3OTJjNGExNDQzMjk0NDI3M2I2ZDc0ZTNmM2MKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDQgMjI6MDc6NTYgMjAxMyArMDEwMAoKICAgIEZpeCBoYW5kbGluZyBvZiBjb21tYW5kIG5hbWVzIHdpdGggYmxhbmtzIG9uIExpbnV4LgoKY29tbWl0IDZmY2IzODFkY2Q0NjBiNzk1NTYzMzllYjM2ZmJlNTc5YmY0OWRjMDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDQgMjI6MDU6NTYgMjAxMyArMDEwMAoKICAgIEFkZCBMSVNQLU1JQiB0byByZmNsaXN0LgoKY29tbWl0IDFjNTEwNDc0MTA3MDIxOWYxMzgwMGQ3NmFmZDU3YTBkNjM2YzI0M2IKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDQgMjE6NTQ6MzYgMjAxMyArMDEwMAoKICAgIEZpeCBwYWdpbmcgc3RhdGlzdGljcyBmb3IgT3BlbkJTRCA1LjQKCmNvbW1pdCAyZjU3YjgwNGU4M2I4Zjg5Yjg5Njk2MzdmODNkODg4NjAxMDgzOGZmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAzMCAyMTozNTozMyAyMDEzICswMTAwCgogICAgQWRkIGRhcndpbjEzIHN1cHBvcnQgZmlsZQoKY29tbWl0IDgyM2Q1MWY3OWI4NGUxMzU5M2U1YjFhYzliNDA3NjM0YzU0MzQ2ZjQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIxIDIwOjQ5OjUzIDIwMTMgKzAyMDAKCiAgICBGaXggbWFrZSBpbnN0YWxsIGluIG1hbiBkaXJlY3RvcnkgZm9yIFNvbGFyaXMgY2F1c2VkIGJ5IFZQQVRIIG9kZGl0eS4KCmNvbW1pdCBjNTc1MjA0YTAyMDU5MTk5NDI4Y2UxMzViYzEyZWNiMzg1ZTM2NzYzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMSAyMDo0NzozMSAyMDEzICswMjAwCgogICAgQ2hhbmdlIGFuIG9jY3VycmVuY2VvZiBzcHJpbnRmIHRvIHNucHJpbnRmLgoKY29tbWl0IGEyYmRhOTk0MDE5MjgwMjc4YmVkZWQ3OTE3Yzg3N2ZjYjQ0ODg3M2QKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIxIDIwOjQ2OjMwIDIwMTMgKzAyMDAKCiAgICBCZXR0ZXIgd29yZGluZyBmb3Igc3RhdGlzdGljIGVudHJ5LgoKY29tbWl0IDY2NDRiMDVkM2NmMzQxMjNjZWRhNzRiN2I4NGYxNjk0NDM1OWU3Y2EKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIxIDIwOjQ1OjE1IDIwMTMgKzAyMDAKCiAgICBGaXggd2FybmluZ3MgZm9yIGxpYm5sMS4KCmNvbW1pdCA5NDA4MTZlMDE5MTcxYTA0MTRlZTAwYTQ2Y2RhNGNlNjBiYzAxZjcxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IE9jdCA1IDExOjA1OjEyIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTI2NTogRml4IGEgYnVmZmVyIG92ZXJmbG93IGluIGR1bXBfcmVhbGxvY19vaWRfdG9faW5ldGFkZHJlc3MoKQoKY29tbWl0IDA5OTJlY2Y4ZmM1ZDg3ODM3MDA2ZDRiYzNhODY4MWU1NzM2ZTM1NzMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgT2N0IDE3IDA3OjE2OjIzIDIwMTMgKzAyMDAKCiAgICBwYXNzX3BlcnNpc3Q6IHphcCBwb3NzaWJsZSBDUiBhdCBlbmQgb2YgbGluZS4KCmNvbW1pdCBlYjg4ZTAyNGI0YzI2Nzk5NGRlNDA0MDFlOGI3ZDc3ZTMyZGVjNmNmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCAxNSAyMTozMzo1NiAyMDEzICswMjAwCgogICAgTWFpbnRhaW4gYnl0ZSBvcmRlciBmb3IgSVB2NiBwb3J0IG51bWJlcnMgaW4gdHJhbnNwb3J0IGRhdGEgKHByb2JsZW0gc3VyZmFjZWQgaW4gc25tcFRhcmdldEFkZHJFbnRyeSkKCmNvbW1pdCBmMmU1N2I4ZTYzOGExZmNkYzg1ZmQwZmQyZjY1NTJhMzNmY2FiM2Y4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCAxNSAyMToxNzoyMSAyMDEzICswMjAwCgogICAgc25tcG5ldHN0YXQ6IGJldHRlciBoYW5kbGluZyBvZiBzbm1wIGV4Y2VwdGlvbnMuCgpjb21taXQgZTAyODAyOTRlN2U2YmViZDYyZmJhYjk5MjhiMWI1ZjAxYjczNWU3MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgMTUgMjE6MTU6MzkgMjAxMyArMDIwMAoKICAgIEZpeCBESVNQTEFZLUhJTlQgZm9yIG5lZ2F0aXZlIHZhbHVlcyBhbmQgaGludCAiZC1uIi4KCmNvbW1pdCAxYWJiNWEwOTRkMjc1MTRiODE0N2IxMTI4ZGIyY2RkY2IxNzAzYmI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE5vdiAyIDE0OjQ1OjQyIDIwMTIgKzAxMDAKCiAgICBVc2UgTkVUU05NUF9QUkl6IHRvIHByaW50IHNpemVfdCB2YWx1ZXMgaW4gX3Nlc3NfcmVhZAoKY29tbWl0IGFjYjcyNTg5YWNiMzAxOGU0NDNmNWUzZjY1NGRkMDNmN2MyNjMxNmEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDEgMTg6NDE6NTEgMjAxMyArMDIwMAoKICAgIEFkZCBmb3Jnb3R0ZW4gaWNtcE91dEVjaG9zIHRvIGljbXBNc2dUYWJsZS4KCmNvbW1pdCAyNTNmOTA3NDM5MTUxMDIzYTkyYTNhYzQzYTlmMzE3ZTNhNGUxN2ZhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAzMCAyMjoxMzo0MyAyMDEzICswMjAwCgogICAgU29sYXJpczogc3VwcG9ydCBpY21wTXNnU3RhdHNUYWJsZQoKY29tbWl0IDZlZTkxZjA2YjViZDBlMGNiZDJiNjlmM2RhZTBiZjYxNDFjYzk1NTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDMwIDA2OjU5OjEwIDIwMTMgKzAyMDAKCiAgICBTb2xhcmlzIHN1cHBvcnQgZm9yIElQLUZPUldBUkQtTUlCCgpjb21taXQgNGViZGYzZmIwNDQ1ZjkwNjdlY2IzODM5NGMyZGYyYmQzYjczODE4MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMzAgMDY6NTQ6MjggMjAxMyArMDIwMAoKICAgIFByb3Blcmx5IGhhbmRsZSB0aGUgJ2InIGRpc3BsYXkgaGludC4KCmNvbW1pdCA3ZjJlZGJmNjgzNDhjYWJlYWY5OTVhYWJhMWIyYTc4OTNkMThjNWU3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIEF1ZyAzMCAwODo1MDowOSAyMDEzICswMjAwCgogICAgUmVtb3ZlIHNvbWUgY29tbWVudGVkIG91dCBkZWZpbmVzCgpjb21taXQgNDM1ZWUxZjQwMjNjYjAwMjI0NWMzYTU2ZGJlYWJhMzdhM2QzZWRiZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBTZXAgMjggMTQ6MjY6MTAgMjAxMyArMDIwMAoKICAgIFBhdGNoIGExMjU5IChidWcgYTI0NTYpOiBwcm9ibGVtcyB3aXRoIGlwQ2lkclJvdXRlVGFibGUgb24gNjQtYml0IGJpZ2VuZGlhbiBtYWNoaW5lcy4gVGhhbmtzIHRvIENocmlzdG9waGVyIFd1LgoKY29tbWl0IDlhNmY1NjYzOTJhM2NmMTJkYWI0ODhhNzZkNjlmYzg3M2RiZWMyYWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gQXVnIDI1IDEwOjE4OjUzIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZW5hbWUgbWVtZHVwKCkgaW50byBuZXRzbm1wX21lbWR1cCgpCiAgICAKICAgIFJlbmFtZSB0aGUgZnVuY3Rpb24gbWVtZHVwKCkgZGVmaW5lZCBpbiBsaWJuZXRzbm1wLnNvIGludG8KICAgIG5ldHNubXBfbWVtZHVwKCkuIFRoaXMgYXZvaWRzIGNvbmZsaWN0cyB3aXRoIG1lbWR1cCgpIGZ1bmN0aW9ucwogICAgZGVmaW5lZCBpbiBvdGhlciBsaWJyYXJpZXMgdGhhdCBkZWZpbmUgYSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lCiAgICBuYW1lLiBBcyBhbiBleGFtcGxlLCBpZiBXSU5TIG5hbWUgcmVzb2x1dGlvbiBoYXMgYmVlbiBlbmFibGVkIHZpYQogICAgL2V0Yy9uc3N3aXRjaC5jb25mIHRoZW4gcGVyZm9ybWluZyBhIGhvc3QgbmFtZSBsb29rdXAgY2FuIHRyaWdnZXIKICAgIGEgY3Jhc2ggaW4gdGhlIFNBTUJBIFdJTlMgbmFtZSBsb29rdXAgbGlicmFyeSBiZWNhdXNlIGNhbGxzIHRvCiAgICBtZW1kdXAoKSBmcm9tIHRoYXQgbGlicmFyeSBnZXQgcmVkaXJlY3RlZCB0byB0aGUgaW5jb21wYXRpYmxlCiAgICBOZXQtU05NUCBtZW1kdXAoKSBmdW5jdGlvbi4gU2VlIGFsc28KICAgIGh0dHBzOi8vYnVnemlsbGEucmVkaGF0LmNvbS9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDc4MCBmb3IgdGhlIGRldGFpbHMuCiAgICBUaGlzIHBhdGNoIGludGVudGlvbmFsbHkgY2hhbmdlcyB0aGUgTmV0LVNOTVAgQUJJLgoKY29tbWl0IDNkZGU0MTk5ODYyNWZlMGUyNDExOWEyZTFmNDUwOWJhM2JhMmZkOWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDUgMjA6Mjc6MjIgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IExpbnV4OiBCVUc6IDIyMzg6IEFkZCBsaWJubDMgc3VwcG9ydAoKY29tbWl0IGEzNzk1N2JlZTlmNzlkYjE5YmJhOTNmMTFmYWEwMzc5MjFkNmU1ODQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDIzIDIyOjI0OjE1IDIwMTMgKzAyMDAKCiAgICByb3V0ZV9zeXNjdGwuYzogRml4IGZvciBsaW5rbG9jYWwgcm91dGVzIG9uIEZyZWVCU0QgMTAKCmNvbW1pdCBkOWE3ZjlmYzY3OTQ1NWIwZmEzMjhmYmFlNjdlYzJlZTI5MDZiOTRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAxOTo0Mjo1MSAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IEF1dG9tYXRlIGJ1aWxkaW5nIHRoZSBpbnN0YWxsZXIKCmNvbW1pdCBlYjFhMTY0MTUwMGQ2YmNmMzlmOWI4NDdhMmMwNmM5ZWRhMGM4OGM0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAxOTozMjozMSAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIGFuIGluc3RhbGxlciB3aXRob3V0IGFkbWluaXN0cmF0aXZlIHByaXZpbGVnZXMKCmNvbW1pdCBhOTc3N2VjOWFmYjM3Y2E2NDQyMTY2MDc5YmQ1YjJlMDM0OWJlM2UzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAxODozNTo1NSAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBGaXggT3BlblNTTCB2ZXJzaW9uIGNoZWNrCgpjb21taXQgNWNiMmNjN2FiMjBiMjkwYTZjNzQ1ODVmOTg1ZjljOTEyY2RlYzhjZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMTA6MjU6MDAgMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogUmVtb3ZlIE1TVkMgcmVkaXN0cmlidXRhYmxlIGZpbGVzIGZyb20gdGhlIGluc3RhbGxlcgoKY29tbWl0IDE3ODEyMDA2MWVjZTQ4Y2NkOTdhM2FlMzZiODgwZGE2YjEwOTUyMDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDA5OjUwOjE4IDIwMTMgKzAyMDAKCiAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5iYXQ6IEdlbmVyYWxpemUKCmNvbW1pdCA4NWExYzUwMjZmMTBmZjE0M2Y0MzdmMDAzODk0YTZjNGFhMTg3YTk2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAxODo0MzowNSAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IEZpeCB4NjQgZGV0ZWN0aW9uCgpjb21taXQgYTBjMmE3YWI0Mjk5NzQzM2U3MDdjMTBmOGFjZjYxZjkxMjQ0MmY3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMTc6Mjg6NTQgMjAxMyArMDIwMAoKICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBFeGFtaW5lIHR3byBsb2NhdGlvbnMgZm9yIE1pbkdXIGJpbiBkaXIKCmNvbW1pdCBjZjEwMDZlNjdmOWM3N2ZiZGE5NGQ0NTIxZTc4ZjAwOThjOGEwZTE5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAxMDoxMToxMyAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IEZpeCBTU0wgYnVpbGQKCmNvbW1pdCBiNDdmMTM2YmVhOGVmNTQ2OGEyMGQ5NDUyYjEyMzE4ZGI2YzM0OWViCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAxNzowNTozNyAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IEFkZCBXU0RLIHN1cHBvcnQKCmNvbW1pdCAwZTE4YTIwNmFhYTQ5MGZkZWIyYzcwYTBlNmU1MmM5MWViNWYzZWQ5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCAyMiAwOTo0ODowNiAyMDEzICswMjAwCgogICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uCgpjb21taXQgODVkZjAyYjgzNjMyMGNjNDVlNWQyZGI0NTQ4M2JjNTA4NjMxNDQ2YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBTZXAgMjIgMTA6MDI6MjEgMjAxMyArMDIwMAoKICAgIHdpbjMyL0NvbmZpZ3VyZTogRml4IGJ1aWxkIHdpdGhvdXQgT3BlblNTTAoKY29tbWl0IDNmOWFkYjk4N2I1YmY1ZDJkMDk1Y2ZkNmVhMmRhOWNkODFkMWJlYzQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDIyIDA5OjE1OjQxIDIwMTMgKzAyMDAKCiAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogV2luMzIgYnVpbGQgZml4Cgpjb21taXQgYTZlMTg1MWZiZTc0N2NmMTVlZDA3NTgwNzc4MWNlODlhMzRlOTZjMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgMjEgMTk6NTU6MDIgMjAxMyArMDIwMAoKICAgIFJlc3RvcmUgIkNIQU5HRVM6IFdpbjMyOiBwZXJsOiBCVUc6IDI0ODg6IEF2b2lkICJGcmVlIHRvIHdyb25nIHBvb2wiIGVycm9yIgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGIyNzI1OTY0YmRlOTIxYjYyODVlM2E1OWE1MTI1NTJjYWUwYTBjYTUuCgpjb21taXQgYjI3MjU5NjRiZGU5MjFiNjI4NWUzYTU5YTUxMjU1MmNhZTBhMGNhNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgMjEgMTk6NDk6NTggMjAxMyArMDIwMAoKICAgIFJldmVydCAiQ0hBTkdFUzogV2luMzI6IHBlcmw6IEJVRzogMjQ4ODogQXZvaWQgIkZyZWUgdG8gd3JvbmcgcG9vbCIgZXJyb3IiCiAgICAKICAgIFRoaXMgcGF0Y2ggaXMgbm90IGFwcHJvcHJpYXRlIGZvciB0aGUgdjUuNCBicmFuY2guCgpjb21taXQgNjQ1MzcxN2Y2YWM2NjViZjUzMjc0NGE4NmNkYjg5OGFhZjgzZDZiZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgMjEgMTk6MzQ6MjUgMjAxMyArMDIwMAoKICAgIEFkZCByZXByb2R1Y2VyIGZvciBidWcgMjQ4OAoKY29tbWl0IDBkMGE0NjI5NzAyZWI5ZjlmZTk5NTZjMWJhYzRiNDQ1NjEwZmYzYzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDMxIDE3OjIxOjIyIDIwMTMgKzAyMDAKCiAgICBTaW1wbGlmeSBzbm1wVGFyZ2V0QWRkcl9yb3dTdGF0dXNDaGVjaygpCgpjb21taXQgNGI4N2UzY2I0ZDM2NzlhYjYwYzM1M2JhNGZmMzAxZjY4NDJiODRiYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgMjEgMTY6Mzc6MDkgMjAxMyArMDIwMAoKICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2OGV4ZWNmaXhfc2ltcGxlOiBTaW1wbGlmeQoKY29tbWl0IDY1Yzg4ZTJlY2Y1ZGU5MzY1YzgzYzQ2ZWYzYmI0Y2Q4OWNkYzQ0ZTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gU2VwIDE1IDExOjExOjQzIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogcGVybDogQlVHOiAyNDg4OiBBdm9pZCAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcgoKY29tbWl0IDFhNDg1NWRhNGIxZGQ2OTNhMmIwMzc3YjkxZTljMzNlM2M3ZjJhNGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgU2VwIDIxIDE3OjExOjQ1IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBCVUc6IDI0MDI6IEFkZCBzdXBwb3J0IGZvciBTTk1QdjMgdHJhcHMKCmNvbW1pdCAzZDA1MTU2OTNmNmEwZDI5ZDM5ZGQwYzg2OGQzNzhjNzRiYzRmODdjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCAyMSAwOToxNjozMyAyMDEzICswMjAwCgogICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY4ZXhlY2ZpeF9zaW1wbGU6IFBvcnQgdG8gTWluR1cgYW5kIEZyZWVCU0QKCmNvbW1pdCA1YjZlNDMxZDlmNjYzYTNjMzI3ZDcxZGFjOTUzOTJjZmQ4NmIzMjkxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCAyMSAwOTowMzo1OSAyMDEzICswMjAwCgogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA5ZjJlOGZjOGQ5YTI2ZjU3YWIwODlhYmEzZDFhZTI2YjNlOGYyZDU0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAxNyAyMjozMDozOCAyMDEzICswMjAwCgogICAgRml4IGRlcGVuZGVuY3kgZm9yIEZyZWVCU0QxMAoKY29tbWl0IGE1MDZlZmRkMWRiODI0YTllZWVlMDNkMDAyMWM5MGZhZjNiNjI5MjQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDE3IDIyOjI5OjM0IDIwMTMgKzAyMDAKCiAgICBzbm1wZGYgbWFuIHBhZ2U6IGZpeCBmb3JtYXR0aW5nIG9mIC1DaC8tQ0ggb3B0aW9ucwoKY29tbWl0IGEyZTk3YmViZmM1MjE3MGY5ZWMxMDM2ZDI0YWE4NGY1OWNmMmU1MDgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDE3IDIyOjI3OjQ5IDIwMTMgKzAyMDAKCiAgICBVcGRhdGUgdGhlIEJTRCBtdWx0aS1jcHUgY291bnRlcnMgY29kZSB0byB3b3JrIHdpdGhvdXQgY29uZmlndXJlIGhlbHAuCgpjb21taXQgYzg1ZDY0ZDU0YjA2ODc5YTNhNjkxZGFkZmZjMDNiZmIxZjU5MDk2ZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBTZXAgMTcgMDY6Mzc6MTggMjAxMyArMDIwMAoKICAgIE9ubHkgdGVzdCB0aGUgZXhlY2ZpeCBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSBpZiBpdCBpcyBlbmFibGVkCgpjb21taXQgZWQ4YjY5N2NlYTA2NzlkZTdiZTViM2Y1ZDQ2OTEzNGUxY2RhZWQ1NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgNyAxMDoyNzowMiAyMDEzICswMjAwCgogICAgbTQvYWNfYWRkX3NlYXJjaF9wYXRoLm00OiBGaXggYSBjb21tZW50Cgpjb21taXQgZjc3OWM1ZTk0Njc4ODU4NTJmMTZjNTU0MWEzODAxMTFmOWVhZDA2MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBTZXAgNyAyMDoyODoyOSAyMDEzICswMjAwCgogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfYXB0LmM6IEZpeCBjb21waWxlciB3YXJuaW5ncwogICAgCiAgICBSZW1vdmUgdGhlIHVudXNlZCB2YXJpYWJsZSAncmMnIGFuZCBmaXggYSBmb3JtYXQgc3RyaW5nLgoKY29tbWl0IGM2NDM5NjI3ZDA5ZjUwM2ZkYzhjZmEzMmQ4ODRlODM0NzM4MzE3NTQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWFyIDggMDA6MTM6MDUgMjAxMSArMDAwMAoKICAgIGFsbG93IGZvciB2MmMgU0VUIHN1cHBvcnQgdGVzdGluZwogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA1Y2JkNTQzNDFhMmE3OWJmODUzNzM3N2QxMTM3MjQ4M2YwODY0N2FkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCAxNCAxNDoyODoyMSAyMDEzICswMjAwCgogICAgcmVncmVzc2lvbiB0ZXN0czogQWRkIGEgdGVzdCBmb3IgdGhlIGV4ZWNmaXggY29uZmlndXJhdGlvbiBkaXJlY3RpdmUKCmNvbW1pdCAxYzc1NjM0OWU0ZDMxZDM5ZWMyZmM1M2M2NDQwYWU1M2IzYjAzZGYwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IFNlcCA3IDIwOjI4OjU2IDIwMTMgKzAyMDAKCiAgICBzbm1wZDogdWNkLXNubXA6IEZpeCBhIHBvdGVudGlhbCBjcmFzaCBpbiBmaXhFeGVjRXJyb3IoKQogICAgCiAgICBEbyBub3QgaW50ZXJwcmV0IGEgY29tbWFuZCBzcGVjaWZpZWQgdmlhIHRoZSBleGVjZml4IGNvbmZpZ3VyYXRpb24KICAgIGRpcmVjdGl2ZSBhcyBhIHByaW50ZigpIGZvcm1hdCBzdHJpbmcuCgpjb21taXQgOGIxNDBkMDk2NWUxMWY1OTIxNzY4YmYwNWQwYzJiMTk0MWMwZDMzNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMzEgMTc6MTA6NTUgMjAxMyArMDIwMAoKICAgIFNOTVAtVEFSR0VULU1JQjogRGVjbGFyZSBsb2NhbCB2YXJpYWJsZXMgYXQgZmlsZSBzY29wZSBzdGF0aWMKICAgIAogICAgQWxzbywgZGVjbGFyZSB0aG9zZSB2YXJpYWJsZXMgY29uc3QgdGhhdCBhcmUgbm90IG1vZGlmaWVkLgoKY29tbWl0IDdiODJjNjFlNzUzZTE1N2M0Yjg2OTgyMTkwMDZmMmY4M2RmNTI4MDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDMxIDE2OjUxOjE1IDIwMTMgKzAyMDAKCiAgICBTTk1QLVRBUkdFVC1NSUI6IEVsaW1pbmF0ZSB0d28gc3VwZXJmbHVvdXMgY2FzdHMKCmNvbW1pdCBkYmNmNDdkZDRmZTUyNjJhZDBmYWQ3Yzk3NzQ1MjA5NTg5NTQwYzQwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMTEgMTA6MjE6MzIgMjAxMyArMDIwMAoKICAgIFJld29yZCB0aGUgaW5jbHVkZUZpbGUgc2VhcmNoIHByb2Nlc3MgdG8gZml0IHRoZSBpbXBsZW1lbnRhdGlvbi4KCmNvbW1pdCA4NTA3MzA4NWQ2N2VkNjZhYjc0NjExYzhlNWY4MTAxOTI0OTFiYTY4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCA5IDIyOjI2OjIzIDIwMTMgKzAyMDAKCiAgICBQYXRjaCBhMTI2MzogTWFrZSBkYXRhYmFzZSBuYW1lIGNvbmZpZ3VyYWJsZSBmb3IgdHJhcGQgc3FsIGxvZ2dpbmcuCiAgICBUaGFua3MgdG8gUm9iaW4gU29uZWZvcnMuCgpjb21taXQgN2U3MjU4ZWY4YjMyZjk3NDA0OGYzZmQwOThhOWRhNTI2ZGEyZTYxMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgOSAyMjoxNzoxNSAyMDEzICswMjAwCgogICAgUGF0Y2ggYTEyNjI6IEZpeCBtZW1vcnkgZXJyb3IgY2F1c2VkIGJ5IGNvbmZ1c2luZyBzaXplIG9mIHBvaW50ZXIKICAgIHdpdGggc2l1emUgb2YgcG9pbnRlZCBhcmVhLiBUaGFua3MgdG8gUm9iaW4gU29uZWZvcnMuCgpjb21taXQgNTg2ZTA3YjhkZTUxYjA1NDAwZDU4MmZhY2Q5MWQ0NDEwZGQzNzcwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMzEgMTc6MDk6NTkgMjAxMyArMDIwMAoKICAgIHNubXBkOiBDb25zdGlmeSBhIGZldyBhcmd1bWVudHMgb2YgTUlCIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMKICAgIAogICAgTm90ZTogdGhpcyBwYXRjaCBkb2VzIG5vdCBjaGFuZ2UgdGhlIEFCSS4KCmNvbW1pdCA0NGMzNjcxZGQ5M2ZlMGYwODI5OWU2MWQwYTQyMmZkMDcyYjQ5MGU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIFNlcCA4IDA3OjM1OjQ2IDIwMTMgKzAyMDAKCiAgICBSdW4gYXV0b3JlY29uZgoKY29tbWl0IDYyZGFkZWZhMWIyNjg4YzAyNzkyZTlmZDJkM2ZjMzFjNzllZDExYzMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgU2VwIDYgMTE6NTQ6MTMgMjAxMyArMDIwMAoKICAgIHN3cnVuX2RhcndpbjogRml4IGJ1ZmZlciBvdmVycnVuIHdoZW4gY29sbGVjdGluZyBoclNXUnVuUGFyYW1ldGVycwoKY29tbWl0IDFlMDUyNmY4NWVkNjE1NjdjYTZlYTUzYjU2NmM3NzI5OTIxMTFjOWUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDQgMjI6MzA6NDAgMjAxMyArMDIwMAoKICAgIEFkZCBhIGNvdXBsZSBvZiBjb250cmlidXRvcnMgdG8gUkVBRE1FCgpjb21taXQgZWRjNjA4ZWJkNWQwMjE5ODYzYmM1ZjY1NmQxNzdiMWQ1NjEwNDhjMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgNCAyMTo1OToxOCAyMDEzICswMjAwCgogICAgRml4IGEgcHJpbnRmIGZvcm1hdCB3YXJuaW5nLgoKY29tbWl0IGZiMjRmNzMzY2IzMTZjMzVjY2ZkYzU5ZjQ4N2I2NWUwY2Q5NzRjNjgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDQgMjE6NTQ6MjcgMjAxMyArMDIwMAoKICAgIHNubXBuZXRzdGF0OiBJbmRlbnQgSUNNUCBoaXN0b2dyYW0gZm9yIHJlYWRhYmlsaXR5LgoKY29tbWl0IGY3OTQzYTVkNThhNmY5NTNjNzlmYjU1YWI4OTdjODQ5MjI4ZWRiOGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDQgMjE6NDU6MTkgMjAxMyArMDIwMAoKICAgIFJlY29nbml6ZSB6ZnMgZmlsZSBzeXN0ZW1zCgpjb21taXQgYWI0MzcwYmFmNWNjYzE0NmY4ZDFjODM5YmIwZjQxOWVlMzdlNzFjMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMiAyMToyMToyNSAyMDEzICswMjAwCgogICAgUGF0Y2ggYTEyNjEgKEJpbGwgRmVubmVyKTogRml4IGNyYXNoIHdoZW4gbWliLWluZGV4ZXMgYXJlIG5vdCBhbGwgcmVhZGFibGUKCmNvbW1pdCBjNmNhYTMwMDdmNjBmNmNkZWFhMTM0MTUyNzU4NjQ1YTczYTdmZTY0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAyIDE5OjM5OjE0IDIwMTMgKzAyMDAKCiAgICBzbm1wbmV0c3RhdDogUHJvcGVyIHRlc3RzIGZvciB2Mi92MyBleGNlcHRpb24gcmVzdWx0cyAoQnVnIGEyNDc3KQoKY29tbWl0IDM5NDIwYmQ0MGI3YTFiYTcyMGE5Y2JiOTIyNjRkM2Y5Y2MwYTdlMmYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDIxIDIyOjA4OjQxIDIwMTMgKzAyMDAKCiAgICBQQVRDSCBhMTI2MDogU3VwcG9ydCBtdWx0aS1jcHUgdXNhZ2UgZm9yIEZyZWUvTmV0L09wZW4tQlNELgogICAgVGhhbmtzIHRvIFBhYmxvIENhcmJvbmkgZm9yIGZpcnN0IHN0YWIgYXQgdGhpcy4KCmNvbW1pdCA2MjMwNWNkMDI4ZDhhYmY0MzAxMjFlOTAwOGFjYzhmMGQxODcxZTFjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAyMSAyMjowODo0MSAyMDEzICswMjAwCgogICAgUEFUQ0ggYTEyNjA6IFN1cHBvcnQgbXVsdGktY3B1IHVzYWdlIGZvciBGcmVlL05ldC9PcGVuLUJTRC4KICAgIFRoYW5rcyB0byBQYWJsbyBDYXJib25pIGZvciBmaXJzdCBzdGFiIGF0IHRoaXMuCgpjb21taXQgY2MyZmU2YmRlNmEzYzI4YjNjMWFkMTY1YzliYTNmYzFkNTgzYzI1MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBBdWcgMjUgMDg6MjM6NDMgMjAxMyArMDIwMAoKICAgIElQLU1JQjogRml4IERveHlnZW4gaGVhZGVyIG9mIG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbigpCgpjb21taXQgOTYzMDJhZjdmYzMxMDhjMjA4MjI3NDMyZjBmMGI3NWYzZTdiOTA2ZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBBdWcgMjggMTA6NTk6MDUgMjAxMyArMDIwMAoKICAgIENvcnJlY3QgY29udmVyc2lvbiBmYWN0b3IgZnJvbSBtaWNyb3NlY29uZHMgdG8gY2VudGlzZWNvbmRzLgoKY29tbWl0IGU4Y2Y3NjZlMDgzODM0YWY3ZmRmZWQ4NzdkYmU4ODEwYmYwMGE0ZWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDE5IDIyOjE3OjExIDIwMTMgKzAyMDAKCiAgICBGaXggbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9wcmVmaXhfbGVuIHRvIHRha2UgYW4gYXJndW1lbnQgaW4gbmV0d29yayBieXRlIG9yZGVyIGFzIGRva3VtZW50ZXQKCmNvbW1pdCBhMGM1OWEzYjQ1OGU4YThkZmIwNTlhNjI3OTJkMjVhNGM1YzlmYzllCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAxOSAyMjoxNDoxNSAyMDEzICswMjAwCgogICAgRml4IG5ldHNubXBfaXBhZGRyZXNzX2lwdjRfcHJlZml4X2xlbiB0byB0YWtlIGFuIGFyZ3VtZW50IGluIG5ldHdvcmsgYnl0ZSBvcmRlciBhcyBkb2t1bWVudGV0Cgpjb21taXQgNjZiOWJmYmE0ZWFlODQ5NDRhYmY0ZTZkMDc0ODk0YWNkMDUxM2M2YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgMTkgMjI6MTI6NTcgMjAxMyArMDIwMAoKICAgIEZpeCBuZXRzbm1wX2lwYWRkcmVzc19pcHY0X3ByZWZpeF9sZW4gdG8gdGFrZSBhbiBhcmd1bWVudCBpbiBuZXR3b3JrIGJ5dGUgb3JkZXIgYXMgZG9rdW1lbnRldAoKY29tbWl0IGVjOTZiMzVkNTA2MGMwOWI5ZjUzZDRkZWM3M2ZiNzk2NWMyYWMxNDUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDE5IDIyOjExOjM2IDIwMTMgKzAyMDAKCiAgICBGaXggbmV0c25tcF9pcGFkZHJlc3NfaXB2NF9wcmVmaXhfbGVuIHRvIHRha2UgYW4gYXJndW1lbnQgaW4gbmV0d29yayBieXRlIG9yZGVyIGFzIGRva3VtZW50ZXQKCmNvbW1pdCBiMjdiNDdiNTc5ODQ2OWU5YWI1YmQ0YjUxYWMzOWQ0M2ZjZDk1NjA4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEF1ZyAxNyAxMDoxMjoxNCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBzdXJlIFRlc3Q6Okhhcm5lc3MgaXMgb2YgYXQgbGVhc3QgdmVyc2lvbiAxLjIxCiAgICAKICAgIFRlc3Q6Okhhcm5lc3MgMS4yMSBpcyB0aGUgZmlyc3QgdmVyc2lvbiB0aGF0IGltcGxlbWVudHMgVEFQIHYxMiB3aGljaCBhbGxvd3MKICAgIHB1dHRpbmcgdGhlIGhlYWRlciAoMS4uTikgYWZ0ZXIgdGhlIHRlc3RzIGFuZCBzaW5jZSBvdXIgdGVzdHMgdXRpbGl6ZSB0aGF0CiAgICB3ZSBzaG91bGQgbWFrZSBzdXJlIHRoYXQgdGhlIHRlc3QgcnVubmVyIHN1cHBvcnRzIGl0LgoKY29tbWl0IDE0ZjhkNGFkNmYwNmQwOWQ4NzA5NmRkNjgxMzdhMTI1YTAzOWM1NjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDI5IDE3OjQyOjU0IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBBSVg6IE1ha2UgdWRwLW1pYiBidWlsZAoKY29tbWl0IDM4ZDc3YzdjMjBhM2U3OTc5YzA5YzUxNDRmODY5MzRlZDQ2NTQwZGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDI5IDE3OjM5OjM4IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBBSVg6IE1ha2UgdGNwLW1pYiBidWlsZAoKY29tbWl0IDU4ZmQyM2I3MTEwYzkzZWU0OTZmZmFmZTg2ODUzOWMyYWY4NTQzYmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgQXVnIDE2IDEwOjM5OjAzIDIwMTMgKzAyMDAKCiAgICBXaW4zMjogQnVpbGQgZml4OiBFeHBvcnQgc2tpcF93aGl0ZV9jb25zdCgpLCBza2lwX25vdF93aGl0ZV9jb25zdCgpIGFuZCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpCgpjb21taXQgMGFiOWNkMTY1NWQ0NmY5NjhkYzEyYmQ2NzE0YWMxN2I5YmNlNWU3MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBBdWcgMTYgMDg6Mjg6MDggMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXAtdXNtLWRoLW9iamVjdHMtbWliOiBBdm9pZCB0cmlnZ2VyaW5nIGFuIGFzc2VydCBzdGF0ZW1lbnQgaW4gbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKQogICAgCiAgICBUaGUgY2FjaGUgdGltZW91dCBmb3Igc25tcC11c20tZGgtb2JqZWN0cy1taWIgaXMgLTEuIEFueSBjYWNoZSB0aW1lb3V0CiAgICB2YWx1ZSA8IDAgZGlzYWJsZXMgY2FjaGluZy4gSG93ZXZlciwgc3RyaWN0bHkgbmVnYXRpdmUgdmFsdWVzIHRyaWdnZXIKICAgIHRoZSBhc3NlcnQgc3RhdGVtZW50IGluIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCkuIEF2b2lkIHRyaWdnZXJpbmcgdGhhdAogICAgYXNzZXJ0IHN0YXRlbWVudC4KCmNvbW1pdCAxZmE1ODRiMjIyYzU2NzI0Mzc4ZjVjODU5OTNlZWVlNjUxNTI2MGFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyAxNiAxMDowMjo0NyAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRml4IE5FVFNOTVBfRkRfU0VUX0JZVEVTKCkKICAgIAogICAgVGhpcyBwYXRjaCBhdm9pZHMgdGhhdCB1bml0IHRlc3QgVDAwOWxhcmdlX2ZkX3NldF9jbGliIGNyYXNoZXMgb24gQUlYLgoKY29tbWl0IDk1YWMxOTBiNTI2ZGJhNTIwNTYzNzQxMWE4OTJiNTJiOWVkNmI5NGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gSnVsIDIxIDE3OjE2OjQyIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBCVUc6IDI0NzY6IHNubXBkIGZhaWxzIHRvIHN0YXJ0IG9uIEFJWAogICAgCiAgICBPbiBhbiBBSVggc3lzdGVtIHRoZXJlIGlzIG5vIDxrdm0uaD4gaGVhZGVyIGZpbGUgbm9yIGRvIHRoZSAvZGV2L2RtZW0KICAgIG9yIC9kZXYvZHJ1bSBkZXZpY2VzIGV4aXN0IGFuZCBoZW5jZSBETUVNX0xPQyBpcyBub3QgZGVmaW5lZC4gQXZvaWQKICAgIHRoYXQgaW5pdF9rbWVtKCkgZmFpbHMgaW4gdGhhdCBjYXNlLgoKY29tbWl0IDUwNDgxYjc2OWUyOWZjNWNlNmIxZTQwY2U1NjgxODViYjA4OTg0NTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgQXVnIDE2IDA3OjIyOjAyIDIwMTMgKzAyMDAKCiAgICBzbm1wZDogUmVmYWN0b3IgaW5pdF9rbWVtKCkKICAgIAogICAgVGhpcyBwYXRjaCBkb2VzIG5vdCBjaGFuZ2UgYW55IGZ1bmN0aW9uYWxpdHkuCgpjb21taXQgY2Q3ZWY3YmUzOTEwMzVkOWRmMDVlZGM2YWM5ZTZmMzUxOWI0NmY4YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBBdWcgMTQgMjM6Mzg6MjEgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJlIG1vcmUgcm9idXN0IGlmIGNsb2NrX2dldHRpbWUgZmFpbHMuCiAgICAKICAgIE9uIFJIRUwzIGl0IHNlZW1zIGNsb2NrX2dldHRpbWUoQ0xPQ0tfTU9OT1RPTklDLCApIGFsd2F5cyByZXR1cm5zIEVJTlZBTCBidXQKICAgIGl0IHdvcmtzIGZvciB0aGUgb3RoZXIgY2xvY2tzLgogICAgCiAgICBGdXJ0aGVyLCB0aGUgb2xkIGNvZGUgd2hpY2ggcmV0dXJuZWQgYSBjb25zdGFudCB7IDAsIDAgfSBjYXVzZWQgdGhlIHRlc3Qgc3VpdGUKICAgIHRvIGdldCBzdHVjayBpbiBhIGxvb3AgaWYgbm8gcmVzcG9uc2UgYXJyaXZlZCAtIHRodXMgdGhpcyBjb2RlIGhhdmUgdGhlCiAgICBhZHZhbnRhZ2Ugb2Ygd29ya2luZyBsZXNzIGJhZC4KCmNvbW1pdCA5ZDcxZmVlYTI3MWY5MWNjOWI3YWRlZTY2MTNhZjE5ZWJhN2VjNmNkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMTQgMTU6NTY6NTYgMjAxMyArMDIwMAoKICAgIEZpeGVkIHJldHVybiB2YWx1ZSBvbiBlcnJvci4KCmNvbW1pdCA5NjIxZjRjZGM1YTE5Y2VlNGUxMWJmMjcwOTRhYmYzMzM5ZGRjMzBlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMTQgMTU6NDg6MzkgMjAxMyArMDIwMAoKICAgIFJlbW92aW5nIHVzZWxlc3MgY2hlY2ssIGVudHJ5LT5kX25hbWUgaXMgYXJyYXkgYW5kIGNhbid0IGJlIE5VTEwuCgpjb21taXQgZTQxYzJmNTc0YzI1ZDhkZDI3M2YyNDA2ZWVlYWMxOWJjMmFlMTZkYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDEyIDE0OjMwOjUxIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBwYXJzaW5nIG9mIHNlcXVlbmNlcy4KICAgIAogICAgRG9uJ3Qgb3ZlcndyaXRlICdkYXRhJyB2YXJpYWJsZSwgaXQncyB1c2VkIHdoZW4gcGFyc2luZyBidWxrIHJlc3BvbnNlcy4KCmNvbW1pdCAzOTAzMDMwNTlmYmQ5OGIxZWU3NjIxZGRkNGFkNGMxMWQxMDBmZmY5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEp1bCAyOCAyMToyODoxNCAyMDEzICswMjAwCgogICAgUmV2ZXJ0IDc4ZGFjNmUzNzk0M2QxYWQ5OTg0MTg5ODgwNmVhNjBiMGVlZGU2MzYgYW5kIHJlc29sdmUgYTI0NzggaW4gYSB3YXkgdGhhdCBhdm9pZHMgdHJ1bmNhdGluZyBzbm1wVGFyZ2V0QWRkclRpbWVvdXQuCgpjb21taXQgZTU5ZDVkYjZkNmU3MmQxMzQ1OTFiYmFhYTZmYWE1OWIyOTMzODE5MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKdWwgMjggMjE6MTc6NTggMjAxMyArMDIwMAoKICAgIENoZWNrIHRoYXQgdGhlIHRpbWVvdXQgdmFsdWUgaXMgaW4gcmFuZ2UuCgpjb21taXQgNGVjYjM2YTdhYmEzYWIwZWZhODkzNTE2NTBjZTA1M2ViY2Y0OGI2YQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBKdWwgMjkgMjE6NTQ6MjUgMjAxMyArMDIwMAoKICAgIENoZWNrIHRoYXQgc25tcFRhcmdldEFkZHJUaW1lb3V0IGhhbmRsZXMgc2V0dGluZyBwcm9wZXJseQoKY29tbWl0IDFhZTg1YjY3MmViMDdkMGMwMWE1NGUwNmQzZGRkNGY0ZGM1OGZmMmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSnVsIDI4IDEwOjQzOjE3IDIwMTMgKzAyMDAKCiAgICBBZGQgc29tZSBtb3JlIHRlc3RzIGZvciBzbm1wVGFyZ2V0QWRkcgogICAgKGNoZXJyeSBwaWNrZWQgZnJvbSBjb21taXQgNmUxM2ViYjg1ZTQ0MDQ5ODQ2ZWFlN2Y2MGUwNTAzNzVmOWFjZjU4ZSkKICAgIFNhbml0aXplZAoKY29tbWl0IDZhNWEwNDdjYmMxMWQ2MmRmMDRhOTY2NjkwOGY3NjUyYjIxN2MxYWEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgQXVnIDEgMjM6MTk6MzQgMjAxMyArMDIwMAoKICAgIFJlaW5zdGF0ZSB0aGUgY2hlY2sgZm9yIGNyZWF0aW9uIG9mIGVudHJpZXMgd2l0aCBlbWJlZGRlZCBOVUwncyBpbiB0aGUgbmFtZQoKY29tbWl0IDUzM2JiODBhNWE0MzA1YjM1ZGJiNzk3NDQ0YmQ1OTZkN2Q1OTk1MWMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgQXVnIDEgMjI6NTU6NDUgMjAxMyArMDIwMAoKICAgIFNhbml0aXplLgogICAgCiAgICBDaGFuZ2UgdG8gdXNlIFNOTVB2MyBzaW5jZSB0aGF0IGlzIHdyaXRlYWJsZSBpbiBWNS02LXBhdGNoZXMuCiAgICBDaGFuZ2UgdG8gY2hlY2sgdmFsdWVzIG9uIGluZGV4ICdBJwogICAgUmVtb3ZlIHRoZSBjaGVjayBmb3IgZW1iZWRkZWQgTlVMIGluIGluZGljZXMuCgpjb21taXQgYjI0YmY0NjIyMGFhYWY1Nzk0ZTk0MGY1ZDQ2NzNkYjcxMzM5ZjljMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBKdWwgMjAgMTI6Mzk6NTkgMjAxMyArMDIwMAoKICAgIEFkZCB0ZXN0cyBmb3Igc25tcFRhcmdldEFkZHIKICAgIChjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IDcxZjMxOWNkMjM0NDVjNmUyMmE2MGExYTg1ZjMxYzJiNjkwNGIzZmIpCgpjb21taXQgNmUxM2ViYjg1ZTQ0MDQ5ODQ2ZWFlN2Y2MGUwNTAzNzVmOWFjZjU4ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKdWwgMjggMTA6NDM6MTcgMjAxMyArMDIwMAoKICAgIEFkZCBzb21lIG1vcmUgdGVzdHMgZm9yIHNubXBUYXJnZXRBZGRyCgpjb21taXQgMDc2OWY0MjBkOGY0Mjc5OTNiMTM0MGZkYjdlY2IzYmMwNDlkM2Y2YwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBKdWwgMjUgMDg6MTU6MzIgMjAxMyArMDIwMAoKICAgIEZpcnN0IHNob3Qgb24gaGFuZGxpbmcgY2VydGlmaWNhdGVzIHdpdGggZW1iZWRkZWQgbnVsIGNoYXJhY3RlcnMKCmNvbW1pdCBkODMzYjBjOGJlNTA5YmZhM2I4MDAxYWU2ZjU1MjI4OWNlOTU2N2QwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEp1bCAyMCAxMjo0MTo0MCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIE5VTCBjaGFyYWN0ZXJzIGluIHRoZSBpbmRpY2VzIGZvciBzbm1wVGFyZ2V0QWRkclRhYmxlCgpjb21taXQgNzFmMzE5Y2QyMzQ0NWM2ZTIyYTYwYTFhODVmMzFjMmI2OTA0YjNmYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBKdWwgMjAgMTI6Mzk6NTkgMjAxMyArMDIwMAoKICAgIEFkZCB0ZXN0cyBmb3Igc25tcFRhcmdldEFkZHIKCmNvbW1pdCBlYTM5ZTM2NzY2NjViN2U4Y2M1ZGZlYjViYmJjZDBhZDQzNGFkOTEyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IEp1bCAxOCAwMTozNjoyNiAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSB0aGUgZGF0YSBhcmd1bWVudCB0byByZWFkX2NvbmZpZ19zYXZlX29jdGV0X3N0cmluZyBhY2NlcHQgY29uc3RhbnQgdmFsdWVzCgpjb21taXQgNzhkYWM2ZTM3OTQzZDFhZDk5ODQxODk4ODA2ZWE2MGIwZWVkZTYzNgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMjIgMTI6Mzk6MDAgMjAxMyAtMDcwMAoKICAgIGZpeCBidWcgbnVtYmVyICNhMjQ3ODogZml4IG1pYiByZXByZXNlbnRhdGlvbiBvZiB0aW1lb3V0IHZhbHVlcwoKY29tbWl0IGE3ZTNiYzhkZGJlMzg3ZWJmNmYzZjZiMDUwZTI5OTI5NTZiZDJlNjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDExIDIwOjE0OjQ3IDIwMTMgKzAyMDAKCiAgICBGaXhlcyBmb3IgbWVtb3J5IHN0YXRpc3RpY3MgZnJvbSAqQlNECgpjb21taXQgOWRiZTEyNDAzY2VhYWZlNjE3ZjdkNDk5OTMzMTZhMjQ5ZmNiYjk5YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMTEgMjA6MTM6MzYgMjAxMyArMDIwMAoKICAgIEZpeCBhIG1pc3NpbmcgbmV3ZmlsZSBpbiBhIGRlYnVnIG1lc3NhZ2UKCmNvbW1pdCAwNDFkZWVkZjgxNTM3YmM2MTY5Mjk4NzUzZjlkY2EzZjZjZDYxYTM1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAxMSAyMDoxMjoxMiAyMDEzICswMjAwCgogICAgTWFrZSBzdXJlIHdlIGRvbid0IG1ha2UgSVB2NiBtYXNrIGxvbmdlciB0aGVuIDEyOAoKY29tbWl0IGM2N2M3ODk0MDMzOWZhZWFiNDJiMWIxYTBhNmJlNmNkNmRmZTJlMjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSnVsIDExIDIwOjA2OjMxIDIwMTMgKzAyMDAKCiAgICBJbXBsYW1lbnQgaXBBZGRyZXNzVGFibGUgZm9yICpCU0QKCmNvbW1pdCBiMTgxZTQzYTZkMWY1NjdiZmQxMDcxN2E3N2RmMTg0OGUzYmIwZjQzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCAxMSAyMDowNTowOCAyMDEzICswMjAwCgogICAgTWFyayBPUyB0aHJlYWRzIGFzIHN1Y2guCgpjb21taXQgZTM2YTVjYzVmMjAyNzJhZmZmNDIyOGU3ZTQzOTFkZDVlNmMwNjNiMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgMTEgMjA6MDM6MzYgMjAxMyArMDIwMAoKICAgIEZpYyBzb21lIG1hbiBwYWdlIGNyb3NzIHJlZmVyZW5jZXMKCmNvbW1pdCBlY2Y4NjgyZDg2NGQyZjA4NTI1MDc4NTQzODU4ZDM2MWIzYWRjYTVjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMTAgMTA6NDc6MzMgMjAxMyArMDIwMAoKICAgIExvd2VyIGltcG9ydGFuY2Ugb2YgZGVidWdnaW5nIG1lc3NhZ2VzLCB0aGV5IHNwYW0gc3lzbG9nLgoKY29tbWl0IGVmOTYzMDYzZGU0OTQ4NWJkOTFjMTI5ZTA1M2YwNmQwNzQ0NDgzZTEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCA0IDExOjM0OjI1IDIwMTMgKzAyMDAKCiAgICBGaXhlZCBzaXplIG9mIG5ldGxpbmsgbWVzc2FnZS4KICAgIAogICAgUHJldmVudGluZyBrZXJuZWwgdG8gbG9nICduZXRsaW5rOiAxMiBieXRlcyBsZWZ0b3ZlciBhZnRlciBwYXJzaW5nIGF0dHJpYnV0ZXMuJyBtZXNzYWdlLgoKY29tbWl0IDJlMGQxMDg3MzEzYjBmYTA4M2UyYjFjYTQ4OTVmYmYyNDhkNjNjYTkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgSnVsIDQgMjI6MDQ6MTIgMjAxMyArMDIwMAoKICAgIFJ1biBhdXRvcmVjb25mCgpjb21taXQgYzdmYmE3OGUxMjI1MjU0YTBmNjU2MDVmMzgxYWVkZDdkOGEyMTJjYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBKdWwgNCAyMTo0NzowOSAyMDEzICswMjAwCgogICAgUnVuIGF1dG9yZWNvbmYKCmNvbW1pdCA1NzFiZDQwN2Y4YmU5Yzk0Y2M1NTJkNGQzYjdmNWI2YjA5ODRkMjM3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IEp1bCA0IDIxOjM5OjU5IDIwMTMgKzAyMDAKCiAgICBSdW4gYXV0b3JlY29uZgoKY29tbWl0IDhhYTUwZWRiYTdhMmQ5NjZkOGRmYzdmZjRkN2M3OGVmZGRlOGM1YmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgSnVsIDQgMDg6NTM6NTYgMjAxMyArMDIwMAoKICAgIFVzZSBBQ19MSU5LX0lGRUxTRSBpbnN0ZWFkIG9mIEFDX1RSWV9MSU5LIGFzIHRoZSBsYXR0ZXIgaXMgZGVwcmVjYXRlZAoKY29tbWl0IDU5YzZhZTM0NjI1ZWUwNGFjZTM4MjRlYzQwNDYxM2UwYjUxZGMxYjAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUdWUgSnVsIDIgMTc6NDA6NTQgMjAxMyArMDIwMAoKICAgIFVzZSB0aGUgY3BwIGFuZCBsaW5rZXIgZmxhZ3MgZnJvbSBteXNxbF9jb25maWcgd2hlbiBjaGVja2luZyBmb3IgbXlzcWwgaGVhZGVycy4KCmNvbW1pdCBmODljZmNhZmRhZTIxZmFiNTBhNzBiZGRmMTU4ZmZkOWU0ZTAwMWQyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIEp1bCAyIDE3OjM5OjI1IDIwMTMgKzAyMDAKCiAgICBVc2UgdGhlIG91dHB1dCBvZiBteXNxbF9jb25maWcgLS1pbmNsdWRlIGluc3RyZWFkIG9mIHRoZSBvdXRwdXQgb2YgbXlzcWxfY29uZmlnIC0tY2ZsYWdzIGl0byBmaW5kIGluY2x1ZGUgZmlsZXMuCiAgICAKICAgIEFjY29yZGluZyB0byB0aGUgbXlzcWxfY29uZmlnIG1hbiBwYWdlLCAtLWluY2x1ZGUgaXMgcmVjb21tZW5kZWQgZm9yIGdyZWF0ZXIKICAgIHBvcnRhYmlsaXR5IHNpbmNlIC0tY2ZsYWdzIG1pZ2h0IGNvbnRhaW4gY29tcGlsZXIgZmxhZ3MgZm9yIHRoZSBjb21waWxlciB0aGF0CiAgICB3YXMgdXNlZCB0byBidWlsZCBsaWJteXNxbGNsaWVudCB3aGljaCBtaWdodCBjbGFzaCB3aXRoIHRoZSBvbmVzIHVzZWQgdG8KICAgIGJ1aWxkIHRoZSBhcHBsaWNhdGlvbi4KCmNvbW1pdCA2OGE2YTFjYTZkYzRjYTg5MDFiYWNhYjU5ODMyNmFmNzNiNDQ0NjU0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIEp1bCAyIDE3OjMwOjI5IDIwMTMgKzAyMDAKCiAgICBPbmx5IGNoZWNrIGZvciBteXNxbC9teXNxbC5oIG9uY2UuIFJlbW92ZSBIQVZFX01ZU1FMX01ZU1FMX0ggc2luY2Ugbm90aGluZyB1c2VzIGl0LgoKY29tbWl0IGFkODdiYjYwOGIzMDU1NjdhM2M1ZWFmMDQ2YjdjOThlYTNlNGJkZDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCA0IDExOjMwOjA0IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMjQ3MjogZnJvbSBTdW5pbDogZG9uJ3QgdXNlIEhCS1QgYXMgaGVhcnRiZWF0IGludGVydmFsIGluIFNDVFAtTUlCOjpzY3RwQXNzb2NUYWJsZS4KCmNvbW1pdCA0YzRhNDI4MWZkNWIyYzYxNTZjNTEyMGY5YTJlOGI3MDhmNDY2Y2NkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKdWwgNCAxMTowODo0OCAyMDEzICswMjAwCgogICAgaW5jbHVkZURpciBpcyBub3QgcHJlZGljdGFibGUgd2l0aCByZWxhdGl2ZSBwYXRocwoKY29tbWl0IDc5ZThkZDJhMzcyYTIwZWU5N2RlMWM3MTA3YjU5YWQ0YWFmODlhMzYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEp1bCA0IDEwOjQ3OjI5IDIwMTMgKzAyMDAKCiAgICBVcGRhdGUgY29uZmlndXJhdGlvbiBkb2N1bWVudGF0aW9uIHdpdGggaW5jbHVkZUZpbGUgYW5kIGluY2x1ZGVEaXIuCgpjb21taXQgZTBlODA0NDgyYmVjNzBmNGM0MTZhMzVmY2IzMjNhNDE2OTk2NWM1ZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKdWwgMyAxNTowODoxNCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogQlVHOiAyNDcwOiBBY2NlcHQgNjU1MzUgYXMgYSB2YWxpZCBJUHY2IHBvcnQgbnVtYmVyCgpjb21taXQgZGQzMzJhMDM1ZTg1M2M3MmE4MzI3NDg0NjliYWI3Yjg4MmUyN2I3YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMiAwNzowMDo1MSAyMDEzICswMjAwCgogICAgQlVHIGEjMjQ2MzogRml4IGNvbmZpZ3VyZSB0byByZXNwZWN0IGRhdGEgZnJvbSBteXNxbF9jb25maWcuCgpjb21taXQgNDA4Y2M5NzMyYzM0NjExMWZjMWZkYTIzZTEzNmQ2MDg4M2NkYjdlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDEgMTQ6MjU6NDEgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogY29ycmVjdGx5IHJlcG9ydCBlcnJvciB3aGVuIHBhcnNpbmcgbWFsZm9ybWVkIE9JRC4KCmNvbW1pdCA5YTJiZmM4Zjk1ZDZlOTI2ZGNiZjE2ZmY0NGI1M2IyN2UzOGM4NDM3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMSAxMzo1NDozOCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBGaXhlZCByZXR1cm5pbmcgb2YgZW1wdHkgc3RyaW5ncy4KICAgIAogICAgVmFyYmluZCB0eXBlIChTTk1QX05PU1VDSE9CSkVDVCBldGMuKSBzaG91bGQgYmUgdXNlZCB0byBkZXRlY3QgZXJyb3JzIGluc3RlYWQgb2YgbGVuZ3RoIG9mIHRoZSB2YXJpYWJsZSAtIGl0IGNhbiBiZSBlbXB0eSBzdHJpbmcuCgpjb21taXQgMWEwZjA3NTc0YTgwZDFkNmE2Nzg4Y2FlYjM5MWExZDJmZWY5NTcxMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSnVuIDI4IDEwOjM3OjQ2IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogc2hvdyBMaW51eCBrZXJuZWwgdGhyZWFkcyBpbiBoclNXUnVuVGFibGUuCgpjb21taXQgMjY1OWMwZjZiZDg2ZjAxNzE4NjlkMzRmZjhhN2Q0ODE5NGVhNGIzMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTWF5IDIxIDA5OjEzOjQxIDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkZWQgYnRyZnMgc3VwcG9ydCB0byBockZTVGFibGUKCmNvbW1pdCBhODQwMzlkMGExZDZmNTUwYjQ3M2QyOTU5MjEwMTBkODBlMThkODNmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1biAyNSAxNDo1NToyNiAyMDEzICswMjAwCgogICAgc25tcF9zdHJjYXQ6IGRvbnQgdGVzdCAqYnVmIGJlZm9yZSB3ZSBoYXZlIHRyaWVkIHJlYWxsb2MKCmNvbW1pdCA1NTUzZWY0MzYyZDUyNGEwODhiNTE5ZTEzNTU2MTU4ZTVkNjI1ZWM0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEp1biAzIDAyOjQ4OjA2IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgcHJpbnRmKCIlcyIsIE5VTEwpIGFzIHRoYXQgaXMgdW5kZWZpbmVkIGJlaGF2aW91ci4KCmNvbW1pdCA4OTQxNmU3OWY1YzUwNTY4ZTk5YzA3ZmFiMDZhOWFlOWY5NzZiYmVmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIEp1biAyNCAyMjoyMjowMyAyMDEzICswMjAwCgogICAgQlVHOiBBMjQ0MTogQ29ycmVjdCBjb21tZW50Cgpjb21taXQgMWEzYWU2NDc3YjgxNjNhMWI0M2I4MzRhYmIzMGIxZjAzMTQ1YWI2MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMjA6Mjc6MzQgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IEhPU1QtUkVTT1VSQ0VTLU1JQiwgaHJTV1J1biB0YWJsZTogUGFyc2UgL3Byb2MvPHBpZD4vc3RhdCBjb3JyZWN0bHkgb24gTGludXgKICAgIAogICAgVGhpcyBpc3N1ZSB3YXMgcmVwb3J0ZWQgYnkgVmluY2VudCBCZXJuYXQgPHZpbmNlbnQuYmVybmF0QGRhaWx5bW90aW9uLmNvbT4uCiAgICBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjU3Ly4KCmNvbW1pdCBmOTJmZmU5MTdhMzAwYzQxZWJlMDdlMjRjNjQxODg1NWU3NTlmOTM4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxOTozNzowMyAyMDEzICswMjAwCgogICAgc25tcHRyYXBkOiBGaXggYSBkb3VibGUgZnJlZSBpbiBhbiBlcnJvciBwYXRoCiAgICAKICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KCmNvbW1pdCBjNWYzYTFkOGJiNTgwNDc5OWI2MDJkMjc2OWIwMzFkNmZhZjVmMGVkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxNzo1MTo0MyAyMDEzICswMjAwCgogICAgc25tcGxpYjogaGV4X3RvX2JpbmFyeTIoKTogUmV0dXJuIC0xIGlmIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxzCgpjb21taXQgZjhmMDhlMWQ2ZDNlYzgxOTRmYWJkNmFiMDAyYWI5MTdhZmJhOTFhMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTc6MTM6MDEgMjAxMyArMDIwMAoKICAgIHNubXBsaWI6IFNpbXBsaWZ5IHRoZSBjb2RlIGZvciBkZWxldGluZyBhIHJlcXVlc3QgZnJvbSB0aGUgcmVxdWVzdCBsaXN0CiAgICAKICAgIFRoZSBnb2FsIGlzIChob3BlZnVsbHkpIHRoYXQgdGhlIG5ldyBpbXBsZW1lbnRhdGlvbiBkb2VzIG5vdCBjb25mdXNlCiAgICBDb3Zlcml0eSBhbnltb3JlLiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KCmNvbW1pdCBlZjZkNWM3YTAzMTMyNDdhNmM5NDczMjYxNzc3ZTk2M2Y3YTQ5NTI5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxNDo0ODoyMiAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogc25tcF9zdHJjYXQoKTogQ2hlY2sgKmJ1ZiBiZWZvcmUgdXNpbmcgaXQKICAgIAogICAgRGV0ZWN0ZWQgYnkgQ292ZXJpdHkuIFNlZSBhbHNvIGh0dHA6Ly9zb3VyY2Vmb3JnZS5uZXQvcC9uZXQtc25tcC9wYXRjaGVzLzEyNTEvLgoKY29tbWl0IDI1NjZiODNlYmViMGUzNGVlYTkwNzkyOGM1NGMyYjRlNzRmZjM3ZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE0OjIzOjMzIDIwMTMgKzAyMDAKCiAgICBoclNXSW5zdGFsbGVkIHRhYmxlOiBDaGVjayBzdGF0KCkgcmV0dXJuIHZhbHVlICgyLzIpCiAgICAKICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KCmNvbW1pdCA0OWNmZTRkODQwYzU4ZTEyMDJmYTI3MWZiZTc2MGJkNzUyNmE4M2E4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxNDoyMzowMyAyMDEzICswMjAwCgogICAgaHJTV0luc3RhbGxlZCB0YWJsZTogQ2hlY2sgc3RhdCgpIHJldHVybiB2YWx1ZSAoMS8yKQogICAgCiAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8uCgpjb21taXQgNWRmNTQ2MjYzOWYyNDNkNTkyOWZhOWJhMTRkMjBiMzcxMWY3Y2FjZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MjE6MTggMjAxMyArMDIwMAoKICAgIHVjZC1zbm1wOiBmaW5kX2RldmljZSgpOiBSZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlCiAgICAKICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLwoKY29tbWl0IDEzY2UxOTk2YTgyZTBiNDU4YjI2YWUzOWFiZjIwMTJkYjU5YzhhNTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSnVuIDIyIDE0OjIwOjE1IDIwMTMgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBfaW5zZXJ0X25zZmlsZSgpOiBDaGVjayBzdGF0KCkgcmV0dXJuIHZhbHVlCiAgICAKICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KCmNvbW1pdCA4MWEwZDg1OTE2M2Y4ZDU0OTA4NTI1YjUyMjQzMjk1ZDdiNDE0NTUwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEp1biAyMiAxNDowNzozNyAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRml4IGEgYmFkIGZyZWUoKQogICAgCiAgICBEZXRlY3RlZCBieSBDb3Zlcml0eS4gU2VlIGFsc28gaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9wL25ldC1zbm1wL3BhdGNoZXMvMTI1MS8uCgpjb21taXQgZDM0YzgzZTkzNDI0MTlhZWVjZmY1ZmZkN2RlYWI4Mzk4N2RiZWJjYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBKdW4gMjIgMTQ6MDA6MzkgMjAxMyArMDIwMAoKICAgIGV0aGVybGlrZS1taWIsIHJtb24tbWliOiBGaXggbWFsbG9jKC4uLikgPCAwIHRlc3RzCiAgICAKICAgIERldGVjdGVkIGJ5IENvdmVyaXR5LiBTZWUgYWxzbyBodHRwOi8vc291cmNlZm9yZ2UubmV0L3AvbmV0LXNubXAvcGF0Y2hlcy8xMjUxLy4KCmNvbW1pdCA0M2M0NDAxNzZiM2U0ZjljZTk5NWU0ODJlYzY5NzViYTBjODU5YmYzCkF1dGhvcjogTWljaGFlbCBTaGN3YXJjeiA8TWljaGFlbC5TaGN3YXJjekBjb21wYXNzLWVvcy5jb20+CkRhdGU6ICAgU2F0IEp1biAyMiAxMjo0NjowNCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBGaXggYSBkb3VibGUgZnJlZSBhdCBleGl0CiAgICAKICAgIEEgcXVvdGUgZnJvbSBhIG1lc3NhZ2UgZnJvbSBNaWNoYWVsIFNoY3dhcmN6OgogICAgCiAgICBJIGFtIHJ1bm5pbmcgbmV0LXNubXAgNS43LjIgYW5kIGl0IGxvb2tzIGxpa2UgdGhlcmUgaXMgYSBkb3VibGUKICAgIGZyZWUgcHJvYmxlbSBpbiBzbm1wdHJhcGQsIGluIGZyZWVfdHJhcGRfYWRkcmVzcygpIGFuZAogICAgcGFyc2VfdHJhcGRfYWRkcmVzcygpLiBJIGdldCBhIFNJR0FCT1JUIG9uIHRoZSBzZWNvbmQgU0lHSFVQCiAgICAobG9va3MgbGlrZSBpdCBkb2VzIGEgZG91YmxlIGZyZWUgb24gdGhlIGZpcnN0IFNJR0hVUCBhbmQgb24KICAgIHRoZSBzZWNvbmQgaXQgY3Jhc2hlcykuCiAgICAKICAgIEkgaGF2ZSB0aGlzIHNubXB0cmFwZC5jb25mIGNvbmZpZ3VyYXRpb246CiAgICAgIHNubXBUcmFwZEFkZHIgdWRwOjE2Mix1ZHA2OjE2MgogICAgICBhdXRoQ29tbXVuaXR5IGxvZyxleGVjdXRlLG5ldCBwdWJsaWMKICAgIAogICAgQW5kIHRoaXMgaXMgdGhlIGJhY2stdHJhY2UgZnJvbSBnZGI6CiAgICAqKiogZ2xpYmMgZGV0ZWN0ZWQgKioqIC9vcHQvY29tcGFzcy9iaW4vc25tcHRyYXBkOiBmcmVlKCk6IGludmFsaWQgbmV4dCBzaXplIChmYXN0KTogMHgwODBjMTdhOCAqKioKICAgID09PT09PT0gQmFja3RyYWNlOiA9PT09PT09PT0KICAgIC9saWIvbGliYy5zby42WzB4ZjcyMDQ4NDVdCiAgICAvbGliL2xpYmMuc28uNihjZnJlZSsweDljKVsweGY3MjA2NmVjXQogICAgL29wdC9jb21wYXNzL2Jpbi9zbm1wdHJhcGQoZnJlZV90cmFwZF9hZGRyZXNzKzB4MmEpWzB4ODA0YTZiYV0KICAgIC91c3IvbGliL2xpYm5ldHNubXAuc28uMzAoZnJlZV9jb25maWcrMHgzMilbMHhmNzRhZTRjMl0KICAgIC9vcHQvY29tcGFzcy9iaW4vc25tcHRyYXBkWzB4ODA0YTU1N10KICAgIC9vcHQvY29tcGFzcy9iaW4vc25tcHRyYXBkWzB4ODA0YmZhOV0KICAgIC9saWIvbGliYy5zby42KF9fbGliY19zdGFydF9tYWluKzB4ZTUpWzB4ZjcxYjA0NTVdCiAgICAKICAgIEkgaGF2ZSBhIHBhdGNoIHRoYXQgZml4ZXMgdGhpcyBpc3N1ZSwgaGVyZSBpcyB0aGUgZGlmZjoKICAgIEBAIC00NDYsNiArNDQ2LDcgQEAgZnJlZV90cmFwZF9hZGRyZXNzKHZvaWQpCiAgICB7CiAgICAgICAgIGlmIChkZWZhdWx0X3BvcnQgIT0gZGRlZmF1bHRfcG9ydCkgewogICAgICAgICAgICBmcmVlKGRlZmF1bHRfcG9ydCk7CiAgICArICAgICAgIGRlZmF1bHRfcG9ydCA9IGRkZWZhdWx0X3BvcnQ7CiAgICAgICAgIH0KICAgIH0KCmNvbW1pdCAyZGI1NDg1ZmMxY2NjZTM5ZWZhNjlhMzc3YmI4ZDZmNjIzMWViMGIyCkF1dGhvcjogRXJpYyBTLiBSYXltb25kIDxlc3JAdGh5cnN1cy5jb20+CkRhdGU6ICAgRnJpIEp1biAyMSAxMDo0NzozMiAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogZnJvbSAiRXJpYyBTLiBSYXltb25kIjogQ29ycmVjdCBtYW4gcGFnZSBtYXJrdXAgcHJvYmxlbQogICAgQW1iaWd1b3VzIG9yIGludmFsaWQgYmFja3NsYXNoLiAgVGhpcyBkb2Vzbid0IGNhdXNlIGdyb2ZmIGEgcHJvYmxlbS4KICAgIGJ1dCBpdCBjb25mdXNlcyBkb2NsaWZ0ZXIgYW5kIG1heSBjb25mdXNlIG9sZGVyIHRyb2ZmIGltcGxlbWVudGF0aW9ucy4KCmNvbW1pdCBkNjc3MTQ2NGYxNmRjNmZlNjRkZDI0YzA4YWY0YmU3MjU4ODVhZGFkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIEp1biAxOCAyMzo0NToyOCAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogYXBwczogU3RvcCBhZ2VudHh0cmFwIGZyb20gYWNjZXNzaW5nIHRoZSBwZXJzaXN0ZW50IGNvbmZpZ3VyYXRpb24KICAgIFRoaXMgaXMgbmVlZGVkIHRvIHByZXZlbnQgbW9hbmluZyBhYm91dCBub3QgYmVlaW5nIGFsbG93ZWQgdG8gd3JpdGUgdGhvc2UKICAgIGZpbGVzIGR1ZSB0byBiYWQgcGVybWlzc2lvbnMuCgpjb21taXQgMTRhYzVkNWQyYzRkOWYzYTc5OWQ0MDFjYzFlNDAzYThhMjkyZDQyNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMTIgMjI6Mzc6MjMgMjAxMyArMDIwMAoKICAgIERhcndpbiBmaXhlczogVURQIGFuZCBUQ1AgdGFibGVzLCBtZW1vcnkgZGF0YSwgYW5kIHNvbWUgZXJyb3IgY2hlY2tpbmcuCgpjb21taXQgYmFiZDMxZDEwNDllMjMzYzQ1NGYxY2JkODhiYmE3NWYyZjQwNzgxZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMTIgMjI6MjU6MTkgMjAxMyArMDIwMAoKICAgIEZpeCBzb21lIG1hbiBwYWdlcyByZWZlcmVuY2VzIHRvIG90aGVyIHBhZ2VzCgpjb21taXQgYmRlZmNlMDZhMWVhMWMxNDMwODAyNzE0ZmM4MzdiNTU4ZTFhNjc1YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMTIgMjI6MjM6NTcgMjAxMyArMDIwMAoKICAgIFVwZGF0ZWQgRU5USVRZLU1JQiBpbiByZmMgNjkzMwoKY29tbWl0IGRmODYzYTUzNDhhYWJmNzFiYmNhN2JmZWZjZjhiZWI4YmI5ZTc3NjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDEyIDIyOjE3OjQ2IDIwMTMgKzAyMDAKCiAgICBGaXggQnVnICMyNDI3OiBDYW5ub3QgcmVzb2x2ZSBJUHY2IG9ubHkgaG9zdG5hbWVzLCBieSBhY2NlcHRpbmcgYSBsaXN0CiAgICBvZiB0cmFuc3BvcnQgZG9tYWlucy4KCmNvbW1pdCBkYTFmZWYzODI1OTFmZjQ1ZGM5MmViM2I5NWE2YmZlZmY5ZWNmYTRmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXkgMjEgMDk6MTM6NDEgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGRlZCBidHJmcyBzdXBwb3J0IHRvIGhyRlNUYWJsZQoKY29tbWl0IDkzMWM4N2EwNWY1ZjY2Mjg5NjEzZmVkNzdhYzc4ODQ0YjYxY2I3OWYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDE1IDIwOjE4OjE0IDIwMTMgKzAyMDAKCiAgICBCVUcgMjQ1ODogRml4IG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gb2YgYXV0b19ubGlzdCBzdHJ1Y3R1cmUgKFRoYW5rcyBSeWFuIFN0ZWlubWV0eikKCmNvbW1pdCA5MTA0ZTJhM2YxOTU1MDZhNDc3MzM5ODNkOGNiYTM4ZWQ1OTJhOTg4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1heSAxNSAyMDoxMzowNSAyMDEzICswMjAwCgogICAgUEFUQ0ggMTI1MzogRml4IHBhcnNpbmcgb2YgREVGVkFMIEJJVFMgKFRoYW5rcyBNaWtlKQoKY29tbWl0IDg1NWU1NGUzNDVjNTVlYTIyYjdlN2FjMTJhMjQ5ZDc0MDlmYmIzMDkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDE1IDIwOjExOjI5IDIwMTMgKzAyMDAKCiAgICByZmNsaXN0OiBhZGQgUkZDIDY5NDUKCmNvbW1pdCAzNjUyN2NkOGNjYTY1MDcxM2M4NWUwMzI4YzBjMmExY2QwOTVjMzU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE1heSAxMiAxMDowNDowOCAyMDEzICswMjAwCgogICAgV2luZG93cywgVmlzdWFsIFN0dWRpbzogVW5icmVhayBjb21waWxhdGlvbiB3aXRoIHRoZSBXaW5kb3dzIFhQIFBsYXRmb3JtIFNESwogICAgCiAgICBUaGlzIHdhcyByZXBvcnRlZCBieSBXaW0gRGV2b3MKCmNvbW1pdCA1MTdhNTUxMjEwMmQzMzk0ODljOWE3MGVhOGQwODdhMGUxMDAzNWE5CkF1dGhvcjogV2ltIERldm9zIDxXaW0uRGV2b3NAbWV1Y2NpLXNvbHV0aW9ucy5jb20+CkRhdGU6ICAgU3VuIE1heSAxMiAwOTo0MDo1MyAyMDEzICswMjAwCgogICAgV2luZG93czogVW5icmVhayB0aGUgVmlzdWFsIFN0dWRpbyBidWlsZAogICAgCiAgICAic3RhdGljIE5FVFNOTVBfSU5MSU5FIiB0cmlnZ2VycyB0aGUgZXJyb3IgbWVzc2FnZSAiZXJyb3IgQzIxNTk6IG1vcmUKICAgIHRoYW4gb25lIHN0b3JhZ2UgY2xhc3Mgc3BlY2lmaWVkIiwgc28gdXNlIE5FVFNOTVBfU1RBVElDX0lOTElORSBpbnN0ZWFkLgoKY29tbWl0IDRkZjAyZjk2N2QwYjlkMTZjYTEyYjU4MjE1ZTk4MzViYzlmMzkxY2EKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTWF5IDQgMTQ6NTQ6NDggMjAxMyArMDIwMAoKICAgIFJlbW92ZSBjb21waWxlciB3YXJuaW5nIGFib3V0IG1pc3NpbmcgcHJvdG90eXBlCgpjb21taXQgMThkYWZhNThkODEyMTk2MWIwNThkNmQ0MTY3MDdkZjFkNmEwNDJhYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBNYXkgNCAxNDo1MzoxMCAyMDEzICswMjAwCgogICAgUmVtb3ZlIG9uZSBjb3B5IG9mIHRoZSBsaW51eF9zdGF0ZXMgYXJyYXkuIE1ha2UgdGhlIHdob2xlIHRoaW5nIGNvbnN0LgoKY29tbWl0IDAyYWQ4MWVhMmRlMmQ0Njg3Nzk0MDU3ZTJlODEwNGE2NTIzOTI1NGQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWF5IDMgMDg6MDg6MDEgMjAxMyArMDIwMAoKICAgIFJldmVydCB0aGUgZnVuY3Rpb25hbCBjaGFuZ2VzIGZyb20gJ0ZpeCBtaXhpbmcgb2YgY29kZSBhbmQgZGVjbGFyYXRpb25zJ1sxXQogICAgaW4gb3JkZXIgdG8gbm90IHVzZSB2YXJpYWJsZXMgYmVmb3JlIHRoZXkgYXJlIHNldCBhbmQgbm90IGluY3JlYXNlIHRoZQogICAgcHJvYmFiaWxpdHkgZm9yIG1lbW9yeSBsZWFrcy4KICAgIAogICAgMSkgcmV2IGVlZmMyNWNhNjcwNWEyZDFhOGY1MjE2MDc2ZjQzOWUwZDNlM2VmNzYKCmNvbW1pdCA0ZmQwNTI1ZDZhNjVhY2ZlYTNkN2I0MzFjOTc4OTNkYzQ3OTI3ZGE4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1heSAyIDIyOjQ1OjUxIDIwMTMgKzAyMDAKCiAgICBhdXRvY29uZgoKY29tbWl0IDU1ZGRkODI5NWFlNjVlNDdmMjIwZjQ4MDc3OTRmYmFjOWI2OWYwZmEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWF5IDIgMjI6MjA6NDYgMjAxMyArMDIwMAoKICAgIHRlc3Rpbmc6IERvY3VtZW50IHdoeSB3ZSBza2lwIHRlc3RzCgpjb21taXQgZWVmYzI1Y2E2NzA1YTJkMWE4ZjUyMTYwNzZmNDM5ZTBkM2UzZWY3NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMiAyMjoxMzo0MiAyMDEzICswMjAwCgogICAgRml4IG1peGluZyBvZiBjb2RlIGFuZCBkZWNsYXJhdGlvbnMuCgpjb21taXQgYjk0YjczNGRkMzUzYmNmNzkzYzhiNjVhMjczYTEzODdiZmQyNTZlYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMiAyMjoxMjoxMSAyMDEzICswMjAwCgogICAgRGFyd2luOiBzdXBwb3J0IDY0LWJpdCBjb3VudGVycyBmb3IgZGlza2lvIHRhYmxlCgpjb21taXQgOGQ4NDFjMWQ5YjFiNGVlYzI2NGQ2ODJhYzEyNjAzMmFhMDhmMmU4MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXkgMiAyMjowOToxNyAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogU3VwcG9ydCBuZXcgTUlCIHN0cnVjdHVyZXMgYW5kIE1GRCByZXdyaXRlcyB1bmRlciBEYXJ3aW4KCmNvbW1pdCAyNzY0MGZjZmIyMDUyNmJlZjJmNmViNDBjMmE1NDU2NmRmYzZjNGM2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciAyNyAxMDo1ODoyOSAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IENvcnJlY3QgdGhlIHNpemUgb2Ygb2YgdGhlIEVYQU1QTEVJUEFERFJFU1MgdmFsdWUgb24gTDY0IGhvc3RzCgpjb21taXQgZWJiZTJhMzk5MGVmNmRjYmRjYjk5YTM5YWRkNDY1Mzk4MzU0YzM0YwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBBcHIgMjMgMDc6MjU6MjEgMjAxMyArMDIwMAoKICAgIGJ1aWxkaW5nOiBNYWtlIC0tZW5hYmxlLW1pbmltYWxpc3QgY29tcGlsYXRpb24gd29yayBhZ2FpbgoKY29tbWl0IDRiZDdkNzNiMWZlNjBiYjUzNmJmMzllYjRhMzg1OTZlODk2NWMzZjMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIyIDIyOjI1OjM4IDIwMTMgKzAyMDAKCiAgICB0eXBlY2FzdCB0byBzaWxlbmNlIHdhcm5pbmcgZm9yIGZvcm1hdAoKY29tbWl0IGRiMDcxZDBhNmY0ODc0MjE3NjliNjlmMjJjY2YwOWNjMjQyZDk0NTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIyIDIyOjIzOjUyIDIwMTMgKzAyMDAKCiAgICBPbmx5IGRlY2xhcmUgSFJQX21heG5hbWVzIHdoZW4gbmVlZGVkCgpjb21taXQgZmFmMDBjZTNiMGZlYjRkMzdmYWJlZjZkNDEzNWUzNjgwM2IwMDM3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjIgMjI6MjI6MjQgMjAxMyArMDIwMAoKICAgIGlwLmM6IGZpeCBpbmNvbnNpc3RlbnMgZGVjbGFyYXRpb25zIG9mIGlwX21vZHVsZV9vaWRfbGVuCgpjb21taXQgN2Y2YjU5NTMzY2RmYTA2NDUwYWVlNDE1NzAyMjNiMWNkZDJjYTZiOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjIgMjI6MTk6NDQgMjAxMyArMDIwMAoKICAgIFJlY292ZXIgZnJvbSBmYWlsdXJlcyBpbiBsaWJwY2kKCmNvbW1pdCA0MDkzOGE2MjYxOTU5MGI0ZWEwNzFhZTg1YmFhMmY0MmEwYjdmY2IyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjIgMTU6MDA6MDAgMjAxMyArMDIwMAoKICAgIENoZWNrIGlmICdhc25fcGFyc2VfKiAnIGFjdHVhbGx5IHN1Y2NlZWRlZC4KICAgIAogICAgSWYgbm90LCBkaXNjYXJkIHRoZSBwYWNrZXQgaW5zdGVhZCBvZiB1c2luZyB3cm9uZyBkYXRhLgoKY29tbWl0IGFhNGZiOTQ5MDEyZDdjMDIyYTQzNjk5MmFjMjAzYzA2NWZkNzQyMGEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMiAxNDo1ODo0MSAyMDEzICswMjAwCgogICAgSW50ZWdlciB2YWx1ZXMgZW5jb2RlZCBpbiBCRVIgbXVzdCBoYXZlIGF0IGxlYXN0IG9uZSBjaGFyYWN0ZXIuCiAgICAKICAgIElmIGFzbl9sZW5ndGggPT0gMCwgd2Ugd291bGQgcmVhZCB0aGUgZmlyc3QgYnl0ZSBvZiB0aGUgbmV4dCB2YXJiaW5kIG9uIG5leHQgbGluZToKICAgICAgICBpZiAoKmJ1ZnAgJiAweDgwKQogICAgLT4gcmVhZGluZyBwYXN0IHRoZSBidWZmZXIgaWYgdGhlcmUgaXMgbm8gc3VjaCB2YXJpYWJsZSAtPiBzaWdzZWd2LgoKY29tbWl0IGY2ZWVkNmUyMzg0Y2JmODU3NzY4ZjBlZThjNjYwMmViN2NkMmYwM2EKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gQXByIDIyIDA4OjE4OjU0IDIwMTMgKzAyMDAKCiAgICBSZWdlbmVyYXRlIGNvbmZpZ3VyZQoKY29tbWl0IGE1ODdkMTFmYjY3ZmFkM2FmMjQ1MTdhNDA4YWJjMzcwMDU2NWVkZjUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gQXByIDIyIDA4OjE4OjM1IDIwMTMgKzAyMDAKCiAgICBSZWdlbmVyYXRlIGNvbmZpZ3VyZQoKY29tbWl0IGNlM2M5MjE0MTI4YjFjZGJlYmQyOTc1ZGEwZjM2YTU1ZTI1ODRmYTAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gQXByIDIyIDA4OjE2OjAyIDIwMTMgKzAyMDAKCiAgICBSZXBvcnQgdGhlIHJlc3VsdCBvZiB0aGUgUE9TSVggc2hlbGwgdGVzdCwgbm90IGEgY29uc3RhbnQgeWVzCgpjb21taXQgMGM4NzBmNzRiMmU0MzM3YjRiZjNiN2YxMWY1NWIxMmU4MGRmNDlmZgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBBcHIgMjIgMDg6MDA6MzIgMjAxMyArMDIwMAoKICAgIENoYW5nZSB0aGUgY2hlY2sgb2YgcGVybCBzaGVsbCBkZXRlY3Rpb24gdG8gd29yayB3aXRoIEFJWCBzaCBhcyB3ZWxsCgpjb21taXQgNWYwODE5ZjEwMmQxY2RlMzg5OWQwODcwOGM5YzEyNjI2ODg5OTMxOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBBcHIgMSAwNzozODowOSAyMDEzICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2UgdXBkYXRlLWNvbnRyb2xsZWQgY2hhbmdlcyB0cmlnZ2VyIHBlcmlvZGljIHNhdmVzLiBUaGFua3MgdG8gQ2xhdXMgS2xlaW4gZm9yIG5vdGljaW5nIHRoYXQgdGhpcyB3YXMgbWlzc2luZy4KCmNvbW1pdCBhOGZmMjY4ODNkNjM4NjFkODc2OTg1ZGRlODlmMzg5MTU3N2Q2MDI2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAzMSAxMzozMzowMiAyMDEzICswMjAwCgogICAgc25tcGQ6IE1ha2UgdGhlIHVwZGF0ZSBoYW5kbGVyIGNhbGwgYW55IGNoaWxkIGhhbmRsZXJzCgpjb21taXQgMmJjNjJiOTcyYTJiZDBiOTFkZGQ0ZjdjMTFkNDdkYmU1YmY2ZmYwMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMzEgMTM6MzI6MjkgMjAxMyArMDIwMAoKICAgIHNubXBkOiBEbyBub3QgbGVhayBtZW1vcnkgaWYgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHMuCgpjb21taXQgYWU5MTQ4YjUxYjliMDIyNzBmZGRiYjc0MTExYmEyYzAyYThlYTY3YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBcHIgMTYgMjI6MDM6MDAgMjAxMyArMDIwMAoKICAgIGV4dGVuZC5jOiBmaXggbWlzc2luZyBzZW1pY29sb24gYW5kIHdhcm5pbmcKCmNvbW1pdCA0NjQyMmQxN2RmZGI0MTZlYjI0YWQ3ZGI3NDUzZWM0NzNkYjIwODIwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBcHIgMTYgMTM6NDg6MjYgMjAxMyArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBjcmFzaCBpbiBVQ0QtU05NUC1NSUI6OmV4dFRhYmxlCiAgICAKICAgIHNubXBkIGNyYXNoZWQgd2hlbiB0aGUgY29tbWFuZCB0byBleGVjdXRlIGhhZCBubyBhcmd1bWVudHMsIGkuZS4gZXh0ZW5kLT5hcmdzIHdhcyBOVUxMLgoKY29tbWl0IDhiNTdiZGIwYTA5NDcyYTE2ZDNhZjY5ZmQyYjEzNzRjMDllNmEzYWQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDggMjA6MzY6MzUgMjAxMyArMDIwMAoKICAgIHJlcnVuIGF1dG9oZWFkZXIvYXV0b2NvbmYKCmNvbW1pdCA5YTllYTI1N2U2ZWI0NzgwMGQzNGYxYTg2ZWMwYTJhNmU5MDg1ZjMxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciA4IDIwOjM1OjI0IDIwMTMgKzAyMDAKCiAgICByZXJ1biBhdXRvaGVhZGVyL2F1dG9jb25mCgpjb21taXQgNTlhMzIxNDM5OGJjZWIyMmM0OGQ1OGMwZmU5YzU1MmIyZTFlY2I4YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgOCAyMDozMTo0OSAyMDEzICswMjAwCgogICAgcmVydW4gYXV0b2hlYWRlci9hdXRvY29uZgoKY29tbWl0IGU0ZDcyZGIxMWQzZmI3YTQ0NDI1MDk3YjVlYzI2YjlmOTE3YTljODIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDggMTk6MTQ6MDQgMjAxMyArMDIwMAoKICAgIHNubXBrc206IGhhbmRsZSBkZXByZWNhdGVkIGtyYjVfYXV0aF9jb25fZ2V0e2xvY2FsLHJlbW90ZX1zdWJrZXkKCmNvbW1pdCA5OWZmOTUzNjczZjczNjE0NDYzYWNlMTIxMGM0YWMwNzNhMWYyYTgxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciA4IDE5OjA1OjQ3IDIwMTMgKzAyMDAKCiAgICBzbm1wa3NtOiBmaXggc29tZSBjb25zdCBjYXN0IHdhcm5pbmdzCgpjb21taXQgY2YwZDRlZjIyNGJhZDAwMDk5NTM3MDQ4M2E1Yzk4ZGMxNzgzOWE0MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBcHIgNSAyMjowNTozMyAyMDEzICswMjAwCgogICAgSW5pdGlhbGl6ZSBhIGNvdXBsZSBvZiB2YXJpYWJsZXMgdG8gcGxlYXNlIGNsYW5nCgpjb21taXQgNzFmNTllOWU2Yzk4ZThkYmZhYjFmZmIwZDFlNDY4YzEyZTNkOTJjZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBcHIgNSAyMTozODo0NCAyMDEzICswMjAwCgogICAgTWFrZSBzdXJlIHNubXBrc20gaW5jbHVkZXMgY29tX2Vyci5oICh3aGVyZXZlciBpdCBpcykgdG8gZGVjbGFyZSBlcnJvcl9tZXNzYWdlCgpjb21taXQgOGMwMWY2NDcyOGE0MzY1NmRjM2FjNWZiZWZkZjhlY2VjOGRhMTUwNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBcHIgNSAyMToxMzozMCAyMDEzICswMjAwCgogICAgTWlub3IgZml4IHRvIGlubGluZSB0byBhbGxvdyBjb21waWxhdGlvbiB3aXRoIGNsYW5nCgpjb21taXQgMmRiMTJmNjg4ZTFmMmVlZWJiNTg5ZWM3M2RhODJlYjg5N2YzNGJkMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBNYXIgMTggMDg6NTQ6NDkgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBsb2NhbCB0cnV0aHZhbHVlIGhhbmRsZXIgY2FsbCBhbnkgc3ViaGFuZGxlcnMgaXQgbWlnaHQgaGF2ZS4gVGhhbmtzIHRvIENsYXVzIEtsZWluIGZvciBub3RpY2luZyB0aGlzIHByb2JsZW0uCgpjb21taXQgOTA1MTJhMzJiZDFjMmJlNWQxN2IyM2YxMDk1NjI3ODM5NWRlMzc1NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBNYXIgMTkgMjI6Mjg6MzQgMjAxMyArMDEwMAoKICAgIFBhdGNoIDEyNTAgZnJvbSBzdGhlbjogaW5jbHVkZSA8c3lzL3Byb2MuaD4gaW4gc3dydW5fa2luZm8uYyBmb3IgT3BlbkJTRCA1LjMKCmNvbW1pdCAzOTE5MzYwMGVjMzhkZWI1MTM3OWExMDk2NDhkNjllN2U5MDAxNzAyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA3IDIxOjQ0OjU5IDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogcHJvdG90eXBlIHJvdXRlNnByCgpjb21taXQgYWNjZTgyOTZkYzViNjhkMjEyZjc0MDRlZGMyYWZkYjhiMDI4MTdjMApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgNyAyMTozOToxNiAyMDEzICswMTAwCgogICAgY2xlYW4gdGFicyB0cCBzcGFjZXMKCmNvbW1pdCA0MDJiZGFlOTZhNmQ3OWIzYjYzYjY3MjYxYjM3YTg0N2FiNDgxN2UzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE1hciA3IDIxOjM3OjQzIDIwMTMgKzAxMDAKCiAgICBzbm1wbmV0c3RhdDogZmFsbCBiYWNrIHRvIGlwdjRSb3V0ZVRhYmxlIChUaGFua3MgdG8gZmVubmVyKQoKY29tbWl0IGU2OTE3ZTM3MmEwNmRkZDc3NjFiMzEwM2IzMjliY2Y2OTZlOTNhMWYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDcgMjE6Mjk6NDQgMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBzaG93IEFTIGluIHJvdXRpbmcgdGFibGUgaWYgYXZhaWxhYmxlIChUaGFua3MgdG8gZmVubmVyKQoKY29tbWl0IDllYjhkMGY5MDdlZDhkNzhkZTkwZGNmNjYyM2MzMzA2MDk5M2YyYTAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDcgMjE6Mjg6MjYgMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBlYXJseSBkZXRlY3QgaWYgd2Ugd2FudCBpcHY0IHJvdXRlIHRhYmxlIChUaGFua3MgdG8gZmVubmVyKQoKY29tbWl0IDQwODM3MzRlZjdmNGJlYWYxYjlhMTMyNTczOGJhMTg1ZWI3Y2M3MTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDcgMjE6MjU6NTMgMjAxMyArMDEwMAoKICAgIEZpeCBtaXNwbGFjZWQgbmV3bGluZXMgaW4gZXJyb3IgbWVzc2FnZXMKCmNvbW1pdCA1YjBlZDNiNzZmNmU0NjY5ZjIzOGI1YzgyY2QzY2M2Y2I2Y2FhNWNkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciA1IDE3OjE2OjI2IDIwMTMgKzAxMDAKCiAgICBVbml0IHRlc3QgVDAxNDogRml4IGEgQ3lnd2luIGJ1aWxkIHdhcm5pbmcKCmNvbW1pdCAxMDZhZDI0NTBmMmI3ODg0OGYyOTJhZDAzNDQ1YTk3YzdmODdlNmY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciA1IDE3OjE3OjA1IDIwMTMgKzAxMDAKCiAgICBVbml0IHRlc3QgVDAxNDogSW5pdGlhbGl6ZSB2YXJpYWJsZXMgcHJvcGVybHkKCmNvbW1pdCBhN2RlYTU3MzQ4NTkzMTU2MTA1MWEyMDE5MDI3ZDdlZDA5ZDE1NTY1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA0IDIyOjM1OjA2IDIwMTMgKzAxMDAKCiAgICByZmNsaXN0OiBhZGQgRzk5OHggbWlicwoKY29tbWl0IDQ2MDRjZjYxZTdjZjZlYTY0ZTc4MmY0YTNkNzJkNGZiMDI0YzFmOWIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDQgMjI6MjM6MjMgMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0IC1DczogY29uc2lzdGVudCBmaWVsZCB3aWR0aHMgZm9yIHN0YXRpc3RpY3MuIERvY3VtZW50CiAgICBzbm1wbmV0c3RhdCAtQ3NzIHZhcmlhbnQuCgpjb21taXQgNGFhOTIxNTdjZTU1ZDFlNTI4ZDdkZTUyNDkxZDNlYjcwMjA4NjllNwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNCAyMjoxNzoxOSAyMDEzICswMTAwCgogICAgc25tcG5ldHN0YXQuMTogcmVtb3ZlIGludmFsaWQgcmVmZXJlbmNlcyB0byByb3V0aW5nIHN0YXRpc3RpY3Mgb3V0cHV0LgoKY29tbWl0IDc1MWY0YTZjN2ZjODlhNWNmMmIyODc5ZjZmOTE1YjMxNDY2YTA0YjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDQgMjI6MTQ6MjkgMjAxMyArMDEwMAoKICAgIHNubXBuZXRzdGF0OiBmYWxsIGJhY2sgZmlyc3QgdG8gaXBDaWRyUm91dGVUYWJsZS4gVGhhbmtzIHRvCiAgICBCaWxsIEZlbm5lciBmb3IgaW5pdGlhbCBwYXRjaCBmb3IgdGhpcy4KCmNvbW1pdCA5M2M4NmU2ZTFjZjMwMWJkMjY5ZmRmZmI1ZTlhYWFjZThhYTE5M2Y0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIEphbiAzIDA3OjIxOjAzIDIwMTIgKzAxMDAKCiAgICBEbyBub3QgbGVhayBtZW1vcnkgb24gZXJyb3IKICAgIAogICAgSWYgYWxsb2NhdGlvbiBvZiBpaW5mbyBmYWlscyB0aGVuIHRhYmxlX2luZm8gaXMgbGVha2VkLgogICAgRGVhbGxvY2F0ZSB0YWJsZV9pbmZvIGluIHRoaXMgY2FzZS4KCmNvbW1pdCAzNmE3ZGU3MjMwZmJiYmI1MmNjMzdjYmJlZDI4MWViNTU5NDA0YmU5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyNSAyMDo0MDowOSAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogV2luZG93czogQWRkIG11bHRpaG9taW5nIHN1cHBvcnQKICAgIAogICAgT24gV2luZG93cyBWaXN0YSAvIFdpbmRvd3MgU2VydmVyIDIwMDggYW5kIGxhdGVyIGl0IGlzIHBvc3NpYmxlIHRvIGFkZAogICAgbXVsdGlob21pbmcgc3VwcG9ydCBieSB1c2luZyB0aGUgSVBfUEtUSU5GTyBzb2NrZXQgb3B0aW9uLgogICAgCiAgICBDb25mbGljdHM6CiAgICAJc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMKCmNvbW1pdCA3YmJhYmFiMjM2MmRhYTZkNzZhZDczMDMzYjNmMzJiMmNiYTcyNTNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAyMiAxODo1NTo0NyAyMDEzICswMTAwCgogICAgUmV3b3JrIElQX1BLVElORk8gLyBJUF9SRUNWRFNUQUREUiBkZXRlY3Rpb24KICAgIAogICAgRGV0ZWN0IElQX1BLVElORk8gLyBJUF9SRUNWRFNUQUREUiBzdXBwb3J0IGR1cmluZyB0aGUgY29uZmlndXJlCiAgICBwaGFzZSBpbnN0ZWFkIG9mIHJlcGVhdGluZyB0aGUgZm9sbG93aW5nIHRlc3QgaW4gZWlnaHQgZGlmZmVyZW50CiAgICBwbGFjZXM6CiAgICAKICAgICAjaWYgKGRlZmluZWQobGludXgpICYmIGRlZmluZWQoSVBfUEtUSU5GTykpIFwKICAgICAgICAgfHwgZGVmaW5lZChJUF9SRUNWRFNUQUREUikgJiYgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19DT05UUk9MIFwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgSEFWRV9TVFJVQ1RfTVNHSERSX01TR19GTEFHUwogICAgIC4uLgogICAgICNlbmRpZgogICAgCiAgICBUd28gc2lkZS1lZmZlY3RzIG9mIHRoaXMgcGF0Y2ggYXJlOgogICAgKiBJUF9QS1RJTkZPIHN1cHBvcnQgaXMgZW5hYmxlZCBvbiBDeWd3aW4uCiAgICAqIHNldHNvY2tvcHQoSVBfUkVDVkRTVEFERFIpIGlzIG5vIGxvbmdlciBpbnZva2VkIG9uIFdpbmRvd3Mgd2hlbgogICAgICBidWlsdCB3aXRoIFZpc3VhbCBTdHVkaW8gb3IgTWluR1ctZ2NjLgoKY29tbWl0IDFhMTk2YWQ5ZjE1MTc4NjhiOTNhNmJlYzkzYTBjZmUxZDI5ZTI4M2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgRmViIDIzIDE0OjAzOjI5IDIwMTMgKzAxMDAKCiAgICBUZXN0aW5nOiBNYWtlIHVuaXQgdGVzdCBUMDE0IG1vcmUgcm9idXN0Cgpjb21taXQgOWJlMjJhYWFmODM5MzcxM2ZiYzM5MDI1ZjcwMjExMWY1MGYxZTRlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBGZWIgMjMgMTE6MDM6MjAgMjAxMyArMDEwMAoKICAgIFdpbmRvd3M6IEF2b2lkIGNvbGxpc2lvbnMgd2l0aCB0aGUgV2luZG93cyBWaXN0YSBvciBsYXRlciBTREsKCmNvbW1pdCAwYjZiZmVmMmNhOWFlOWUxYzJiZWFmZTcwMDEwMGZhZTVmNmY0YzFhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEZlYiAyMyAxMToyMDoyMyAyMDEzICswMTAwCgogICAgaW5ldF9udG9wKCkgLyBpbmV0X3B0b24oKTogQ29udmVydCBwcm90b3R5cGVzIGZyb20gSyZSIHRvIEFOU0kgQwoKY29tbWl0IDJiYjUxZDcxZWVjNGU3ODk5ODJjMmE3NDExODZkY2U2ZGYyMzg1NDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIxIDIwOjU5OjI1IDIwMTMgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHRpbWUgbmVlZGVkIHRvIHJ1biB0aGUgcmVncmVzc2lvbiB0ZXN0cyAod2FzIGVubGFyZ2VkIGJ5IGNvbW1pdCBiM2Q1ZWQ4NykKCmNvbW1pdCBjZjY0MGNjZDY4ZTk2MzY4MDViNzUwNzk5MjhjNzI3N2ZhMjYwODNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMSAxMTo1NTowMyAyMDEzICswMDAwCgogICAgVW5pdCB0ZXN0IFQwMTQ6IEFjY2VwdCAibG9jYWxob3N0LmxvY2FsZG9tYWluIiB0b28KCmNvbW1pdCBiZGE0MzU3Mzc1YWQyOTljZjE4NDc1NzllMWExYmMzYzYxMTg5NWMzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMSAxNjowNzo0MSAyMDEzICswMTAwCgogICAgUmVncmVzc2lvbiB0ZXN0IFQwNjA6IEVzY2FwZSBiYWNrc2xhc2hlcyBwYXNzZWQgdG8gQ09ORklHVFJBUEQKCmNvbW1pdCA2YjVkNzg0ZjRkNmQwMDAzOTAwMTRkMTIwZjE1YjkzNzM2MmY4YzA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMSAyMDozMzowMiAyMDEzICswMTAwCgogICAgUHl0aG9uIGJpbmRpbmdzOiBGaXggYSByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCA2ZDI1OGVmYTJhY2NhZGZjY2M1MGQ4NmJkNDYzNzk3NDU0NDljYTRhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMSAxNToyNzoxOSAyMDEzICswMTAwCgogICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCgpjb21taXQgMmMyZTFmNDE2MzkzZDQ4NWY5YWM5MGM4N2Y3MjA2NWM2NjhiNzMyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjEgMTU6NDg6MzQgMjAxMyArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAxYmM3OTlkZTZjYWIwMTBiMjVjMGM0ZDNmNTE1NWI1ZmJhZjUyN2YwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMSAyMDowNToxNCAyMDEzICswMTAwCgogICAgUHl0aG9uIGJpbmRpbmdzOiBGaXggdGhlIG91dC1vZi1ib3VuZHMgd3JpdGUKICAgIAogICAgU2VlIGFsc28gY29tbWl0IDIzNDE1OGI4ZTg0Y2MyMDRjYmFjOTZlNmU5YmU2OTU5NjM1NDA0YjgKCmNvbW1pdCA0ZjRlYWViOTIwYWQxNWM5MjljNjY3ODJjYzBhNjQyOTEyY2FiZDA2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTcgMTI6MjQ6MjYgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogZml4ZWQgSVBBRERSRVNTIHNpemUgb24gNjRiaXQgc3lzdGVtcy4KCmNvbW1pdCA0ODZmMTFkZGVlOWYxYzJkZDgwNTY0NDllOTAzMWUyNGI4NjQ2ODcyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBGZWIgMjEgMTA6MDY6MTIgMjAxMyArMDEwMAoKICAgIEFkZGVkIElFVEYgQlNEIGxpY2Vuc2UgZm9yIE1JQiBmaWxlcy4KICAgIAogICAgTUlCcyBpbmNsdWRlZCBpbiBOZXQtU05NUCB0YWtlbiBmcm9tIElFVEYgRG9jdW1lbnRzIGFyZSBjb25zaWRlcmVkCiAgICBDb2RlIENvbXBvbmVudHMgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBJRVRGIFRydXN0IExpY2Vuc2UgUG9saWN5LCBhcyBmb3VuZAogICAgaGVyZToKICAgIAogICAgaHR0cDovL3RydXN0ZWUuaWV0Zi5vcmcvbGljZW5zZS1pbmZvLwoKY29tbWl0IGQyNGVmYjA0Nzc4ZDg3MGVmYTI3Mzk0OTM5NDlkYjY1ZjNmZGQ0ZjMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDEyIDIwOjQ0OjQ2IDIwMTMgKzAxMDAKCiAgICBTb2xhcmlzOiBGaXggZmV0Y2hpbmcgb2YgbGFyZ2UgY2h1bmtzIG9mIGRhdGEgKGxhcmdlciB0aGFuIG9uZSBidWZmZXIpCiAgICBUaGlzIGZpeGVzIHByb2JsZW0gd2l0aCBtYW55IGludGVyZmFjZXMsIGJ1dCBjb3VsZCBhbHNvIGZpeCBvdGhlciBsYXJnZSB0YWJsZXMuCgpjb21taXQgNDUwMDFmZDk4YzcyOWRmOWZmMDUzNjI3YzQxNmFiNWYyZTRjNjBmMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgMTIgMjA6Mzk6NTAgMjAxMyArMDEwMAoKICAgIEZpeCBidWcgMjI4NiwyNDM5OiBCb3VuZCBidWZmZXJzaXplIGZvciBzd3J1biBkYXRhIG9uIEZyZWVCU0QKCmNvbW1pdCA5YmQwNDEzYmZiZGNkODQ1NDEzYzEzNWJiZmY4NzcxZmE3MTMwODA5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgMTEgMTE6NTc6MDEgMjAxMyArMDEwMAoKICAgIEV4cGxpY2l0bHkgZW51bWVyYXRlIGNvbmZpZ3VyYXRpb24gZmlsZXMuCiAgICAKICAgIFRoZSBnZW5lcmljIGNvbmYgYW5kIGxvY2FsLmNvbmYgZXh0ZW5zaW9ucyB3ZXJlIGludGVycHJldGVkIGFzIG15LnNubXAuY29uZiBhbmQgbXkub3RoZXIuc25tcC5sb2NhbC5jb25mIGJ5IHNvbWUgY3VzdG9tZXJzLgoKY29tbWl0IDBiZGQwOTg4OWQwODExZjg2NGRmMTMxYjg0NGYyMGIwMDM5MjA2MmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRmViIDcgMDA6MDU6MDMgMjAxMyArMDEwMAoKICAgIHNubXBfY2xpZW50LmM6Om5ldHNubXBfcXVlcnlfd2FsazogaGFuZGxlIFNOTVB2MiBleGNlcHRpb24gcmVzdWx0cwoKY29tbWl0IDg2NGI0YWNhOGRmYTQ4MGE3OGI3NDVmYWUyMDkxZWRjNTM3M2EwYzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDYgMTY6MDA6NTQgMjAxMyArMDEwMAoKICAgIHNubXB0cmFwZDogQWRkIC1YIG9wdGlvbiB0byBkaXNhYmxlIEFnZW50WAoKY29tbWl0IDExMmYzZDRmYTUzNmIyYzUzMWQwNzgwNjc2MTk4OTE1YTFmNTgxNzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRmViIDYgMTU6NTk6NTMgMjAxMyArMDEwMAoKICAgIHJmY2xpc3Q6IEFkZCBSQlJJREdFLU1JQgoKY29tbWl0IGMwYTY1NDk1OTc5NDdmMjljMzZlZmFkYjA0OTI3ZmY2OTAxODllYmEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDMwIDE1OjUzOjE1IDIwMTMgKzAxMDAKCiAgICBSVU5URVNUUzogZG9uJ3QgdHJhcCBvbiBTSUdDSExELiBJdCBjb25mdXNlcyBkYXNoLCBta3NoIGFuZCBtYXliZSBvdGhlciBzaGVsbHMuCiAgICAoZGFzaCBpcyAvYmluL3NoIG9uIFVidW50dSkKCmNvbW1pdCBiOTVhYzM4NmU2YzIzNTZhMWVjMjlmMWM0MDliMmVjM2U5MDE1OWMzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAyOSAwODo1OTowMSAyMDEzICswMTAwCgogICAgcmZjbGlzdDogYWRkIFRFRC1NSUIKCmNvbW1pdCAyM2JkZjZkMjZmNDMzN2QwN2VhNmU5OTAxYTc3MzhkMTE4NmQxNmQ0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAyOSAwODo1ODowNyAyMDEzICswMTAwCgogICAgc25tcGRmOiBhZGQgLUNIIGFzIGFsdGVybmF0aXZlIHRvIC1DaAoKY29tbWl0IDQwMjU4ZTljMDYwYWVjYWM2NTU1YWVkZmYzZTcwYmRlN2QyYWI4NDYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDI4IDE3OjA1OjA4IDIwMTMgKzAxMDAKCiAgICBUMDcyY29tMnNlY3VuaXhfc2ltcGxlOiBhd2sgc3RyaW5nIGluZGljZXMgc3RhcnQgYXQgMSEKICAgIEZpeCB0ZXN0IHRvIHdvcmsgd2l0aCBtYXdrIChkZWZhdWx0IGZvciBEZWJpYW4vVWJ1bnR1KQoKY29tbWl0IGUzN2YyYjZiZGZmYTdhZmFhMWRjMGI4YWVlNTY1YTRkYTgyZDZmZTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDI1IDE2OjI0OjEwIDIwMTMgKzAxMDAKCiAgICBzbm1wZGY6IEFkZCAtQ2ggKGh1bWFuIHVuaXRzKSBvcHRpb24KCmNvbW1pdCA3YTQwN2FkMzQ1MDVlZDRkYmFhMmU4NGUwNmExZGJmNDhjM2M3N2U1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyNSAxNToyODo0MyAyMDEzICswMTAwCgogICAgc25tcGRmOiBIYW5kbGUgU05NUCAodjJjL3YzKSBleGNlcHRpb25zCgpjb21taXQgYzczOWNiMzg3NWZiNWQ0Y2FkNDEzODY2MWNjMGE0MTcxMzg0YzM0MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjUgMTA6MTQ6MDIgMjAxMyArMDEwMAoKICAgIEFwcGx5IHBhdGNoIzEyNDY6IEZpeCBwYXNzaW5nIGEgU0VUIG9mIGEgc3RyaW5nIHRvIG5vdCBjdXQgaXQgYXQKICAgIGZvdXIgY2hhcmFjdGVycyB0byBhIHBhc3MvcGFzc19wZXJzaXN0IGhlbHBlci4KCmNvbW1pdCAyMzQxNThiOGU4NGNjMjA0Y2JhYzk2ZTZlOWJlNjk1OTYzNTQwNGI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTcgMTI6MjQ6MjYgMjAxMyArMDEwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogZml4ZWQgSVBBRERSRVNTIHNpemUgb24gNjRiaXQgc3lzdGVtcy4KCmNvbW1pdCA5ZTBhMGUzNWQ4ZDFiMzZmYTQ3Y2VjOTM4ZDZjODc0ZGUwMDcxYmI2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKYW4gOSAyMjozNzo0NyAyMDEzICswMDAwCgogICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAxMjM5OiBGaXggbWVtb3J5IGxlYWsKCmNvbW1pdCA1NTYwNWVlMzQ1MmFlZjVhYWJlNGVkMTVhODMzNzRhOTc3MjhlNjRhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gOSAwOToyNjo1NiAyMDEzICswMTAwCgogICAgRml4ZWQgbWVtb3J5IGxlYWsgb24gZmFpbGVkIHJlYWxsb2MuCgpjb21taXQgYTMyY2E5M2E5YjkxNjc0YThjMWU4OWUxYTM4M2E3NjEzNmI4YWMzOApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgSmFuIDggMTY6NDI6NTQgMjAxMyArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxMjQwOiBGaXggZGVhbGxvY2F0aW9uIG9mIGludGVnZXIgaW5kZXhlcwoKY29tbWl0IDg3NjgxZjBmYjI4NWEwMjE2MzZlMDZhNmYyMzUxZDc2NDA5ZWViYzgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSmFuIDUgMTU6MDY6MTIgMjAxMyArMDEwMAoKICAgIEF2b2lkIHVzaW5nICJsb2NhbCIgc2luY2UgU29sYXJpcycgL2Jpbi9zaCBkb2VzIG5vdCB1bmRlcnN0YW5kIGl0Cgpjb21taXQgNTliNGQ0MGYzOTcwYmE4MmYzZGYyYTM5OTk3MTI1NGIwNDgyNzQ0MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNCAxODowMDo1MyAyMDEzICswMTAwCgogICAgQ0hBTkdFUzogV2luZG93czogTWFrZSB3aW5FeHRETEwgd29yayBvbiA2NC1iaXQgV2luZG93cyBzeXN0ZW1zCgpjb21taXQgMzk1OTcxMDYwMzhmNmUxYzVlZDQ5YjNmY2UwMDIxYTZjNTllYzFmZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNCAxODowNTozOCAyMDEzICswMTAwCgogICAgd2luRXh0RExMOiBBZGQgbW9yZSBkZWJ1Z2dpbmcKCmNvbW1pdCA4NWNlOTA2MjkxMWQzMWI0MmUwYzFlMTM1YWJkM2JkYTgxM2UzMDAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA0IDE4OjAyOjMwIDIwMTMgKzAxMDAKCiAgICB3aW5FeHRETEw6IEludm9rZSBTbm1wRXh0ZW5zaW9uQ2xvc2UoKSBiZWZvcmUgdW5sb2FkaW5nIGFuIGV4dGVuc2lvbiBhZ2VudAoKY29tbWl0IDdlMDMxMjI5NTQzNTc5ZDM3YjAwNjI5NmUyZjQ0NTQ4MmQwNTEyY2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgSmFuIDUgMTM6MDQ6MDIgMjAxMyArMDEwMAoKICAgIHdpbkV4dERMTDogUmVtb3ZlIHNvdXJjZSBmaWxlIHdpbjMyL01nbXRBcGktd2luRXh0RExMLmgKCmNvbW1pdCAyZTg5NjI0ZTU1ZTczNTU3ODYyNTk0ZjFmNTI1ZjlkZmZjODI3OTg2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiA0IDIyOjI2OjQ3IDIwMTMgKzAxMDAKCiAgICBTb2xhcmlzIC9iaW4vc2ggZG9lcyBub3QgdW5kZXJzdGFuZCAnbG9jYWwnIGJ1aWx0aW4uCgpjb21taXQgNjI1N2RlYTQ4MjdlODVjN2FmODQ1YWU5Y2RlZDQ4ZDQ0YWE3YmIzZApBdXRob3I6IEphbiBQb2tvcm7vvoPvvb0gPGpwb2tvcm55QHJlZGhhdC5jb20+CkRhdGU6ICAgVGh1IERlYyAyMCAxNDo0NTo0NSAyMDEyICswMTAwCgogICAgRml4IGNvbW1lbnQgdHlwb3MgaW4gZXhhbXBsZS5jCiAgICAKICAgIFBhdGNoIGZyb20gUG9rb3Ju776D7729IDxqcG9rb3JueSBhdCByZWRoYXQuY29tPgoKY29tbWl0IDlkZmM0NGM5MWQ3YTI5YTRjNDNmNzc5MDg1ZGRlMzRjNWZlNmQ1YWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDMgMTA6MzA6MjcgMjAxMyArMDEwMAoKICAgIE1pbkdXLCB0ZXN0IGhhcm5lc3M6IEZpeCBhIGxvZyBtZXNzYWdlCgpjb21taXQgMWQwOTljN2I5MTllZjI1ZWZhMDNjMTRhYTc3Y2NiZWM4ZTViYjAwOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gMyAxMDoyNDo0OCAyMDEzICswMTAwCgogICAgYXBwcy9hZ2VudHh0cmFwLmMsIFdpbmRvd3M6IEZpeCB1c2FnZSB0ZXh0Cgpjb21taXQgZjAyMWU2ZmQ0YmMyYWNiNmZmYWMzMzlkM2YzOGU0YzE1YmI1YmQ3ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMSAxNzo1MzoxNiAyMDEzICswMTAwCgogICAgTWluR1c6IFVwZGF0ZSB0ZXN0IGhhcm5lc3MuIEluc3RhbGxhdGlvbiBvZiBwc2xpc3QuZXhlIGlzIG5vdyByZXF1aXJlZC4KCmNvbW1pdCA0YmMzYzA1NDdlMGIzM2VlYTcxZjNjMWEwOWVmZGQ1OTY5ZDdlMjc4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIERlYyAzMSAxNzoyNDozMyAyMDEyICswMTAwCgogICAgdWNkLXNubXAvZGxtb2Q6IEVuYWJsZSBpbiBNU1ZDIGJhdGNoIGJ1aWxkCgpjb21taXQgZTllZmIyMDA5NTQ2OGU2NDE1N2I4NGYxOGI2Y2NkOTkxZTEwODJlMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMSAxNTowNDozNyAyMDEzICswMTAwCgogICAgV2luZG93czogTGluayB3aXRoIHNubXBhcGkubGliIGFuZCBtZ210YXBpLmxpYiBldmVuIGlmIG5vdCB1c2luZyB0aGUgcGxhdGZvcm0gU0RLCgpjb21taXQgOTAwYWFlOGVhNjkzZmI4NDBkNTc1MjZmYjY3MWQyMTVmODY1YmVkYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMSAwMTozMzowMSAyMDEzIC0wODAwCgogICAgdWNkLXNubXAvZGxtb2Q6IEZpeCBhbiBNU1ZDIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAzNjNlM2ZhMWE0M2NhNjIyM2ZlM2IwODA4ZTY2Mjk1YjNkOTM4NmI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxIDAxOjI3OjQyIDIwMTMgLTA4MDAKCiAgICB1Y2Qtc25tcC9kbG1vZDogQWRkIGRsbW9kLmMgdG8gTVNWQyBwcm9qZWN0Cgpjb21taXQgZTM1NDJjMDRhODQ2MTc4NTc2ODhhYjhlODcxOGNkYzRjNmE2OGNmNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMSAwOToxNDozMyAyMDEzICswMTAwCgogICAgdWNkLXNubXAvZGxtb2Q6IFJlbW92ZSBtb3JlIHN1cGVyZmx1b3VzIGNhc3RzCgpjb21taXQgMWUzYjBhZTJiMDJjZjFmYWNjYWQ0ODk2YmMzYmRiZWExZGI0YTY4ZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBEZWMgMzEgMTM6MTk6MzYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IFBvcnRlZCB1Y2Qtc25tcC9kbG1vZCB0byBNaW5HVyAvIE1TVkMKCmNvbW1pdCA5ODZmYjliODVlMTM4M2I4MWVhZWE0MGQyY2I3YzE0NDkyZGRiZGFjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIERlYyAzMSAxMjozMjo1NiAyMDEyICswMTAwCgogICAgTWluR1c6IEF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIE1pbkdXJ3Mga2lsbC5leGUgYW5kIHRoZSBTeXNJbnRlcm5hbHMgcHNraWxsLmV4ZSAoYmFja3BvcnQgY29tbWl0IDliNDI3YjM1M2YxY2ViOGZlODdlNmZjOGVkM2I2Y2ZhYjNjZTdmMjApCgpjb21taXQgNzk4YjczY2Y1OWUzNjg3ZjY1YmQ1NGE3YThhYzI5ZmUyNDk4YzY5ZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMTcgMTM6MDU6NTMgMjAwOSArMDAwMAoKICAgIFVuYnJlYWsgdGhlIE1pbkdXIGJ1aWxkIGZvciB0aGUgNS40IGJyYW5jaCAtIHRpbWVyYWRkKCkgaXMgbm90IEFOU0kgQwogICAgCiAgICBSZW1vdmUgRElGRlRJTUVWQUwoKSBiZWNhdXNlIGl0J3MgYnVnZ3k6IGluICJkaWZmLnR2X3VzZWMgPiAxMDAwMDAwTCIgdGhlICI+IgogICAgc2hvdWxkIGhhdmUgYmVlbiAiPj0iIGluc3RlYWQuCiAgICAKICAgIFRoaXMgaXMgYSBwYXJ0aWFsIGJhY2twb3J0IG9mIGNvbW1pdCA4NTg1MDljOWUxOTk4ZjZkMjZlOTBjYjYyMmU0YjE3ZWIyNDg4YTRmLgoKY29tbWl0IDFlNTU2Y2M3NzQwYzA2MzY3ZmYzMzYxYWE5NmJmNDUzMzljMmU4YTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gRGVjIDMwIDE3OjU5OjQ0IDIwMTIgKzAxMDAKCiAgICB1Y2Qtc25tcC9kbG1vZDogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCgpjb21taXQgNTFkZmE2ZTY3ZmQ4NDg3Yjg4ODJjMTYzMmU4MTExOTVkOTQ5NmU0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBEZWMgMzAgMTA6NDI6MTYgMjAxMiArMDEwMAoKICAgIHVjZC1zbm1wL2RsbW9kOiBNZW50aW9uIGxpYnJhcnkgcGF0aCBpbiBlcnJvciBtZXNzYWdlcwoKY29tbWl0IDAyYTM1N2Q2Yjk1MzhhNDg4OTYzNjg5MDBiYmI1OTNkYmI0ZGMzNzQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gRGVjIDMwIDEwOjQwOjU1IDIwMTIgKzAxMDAKCiAgICB1Y2Qtc25tcC9kbG1vZDogUmVtb3ZlIGEgc3VwZXJmbHVvdXMgaW5pdGlhbGl6ZXIKCmNvbW1pdCBlZjc0ODg0NWIxNGMwOTUwNDllZDU0ODAzZWE3NGNmNDU3ZWZkMTg5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIERlYyAzMCAwOTo1NzozOCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogV2luZG93czogRml4IGVudmlyb25tZW50IHNlcGFyYXRvciBpbiBzbm1wZC9zbm1wdHJhcGQvc25tcHRyYW5zbGF0ZSBoZWxwIHRleHQuIFJlcG9ydGVkIGJ5IEphc29uIE1jQ29sbHVtIDxqbWNjb2xsdW1AY29tdGVjaGVmZGF0YS5jb20+LgoKY29tbWl0IGJjMGFiYWU1NWRkODY3ZGJiZjRlNDJlNjdhMzYyMzQwODhjOTM3NzEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDIgMDk6MjU6MzMgMjAxMyAtMDgwMAoKICAgIGNvcHlyaWdodCB1cGRhdGUKCmNvbW1pdCA0MDg2YWY5NWIyOThmMWNmMTMwZDA4ZGViN2UwOTAwNThiMzIxYWY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMCAwNzozNzoxNCAyMDEyICswMTAwCgogICAgRml4IHRoZSBNSUIgbmFtZXMgdG8gYWN0dWFsbHkgd29yawoKY29tbWl0IDc5NTI3NGZjMjFlMWJhMDNlZmJlOWI2MDQyYzZhMzUxM2Q4OWRlYmYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIwIDA3OjI0OjQ3IDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCBhbmQgdmFsdWUgY2hlY2tpbmcgZm9yIGlwRGVmYXVsdFRUTCwgaXB2NklwRGVmYXVsdEhvcExpbWl0Cgpjb21taXQgNDM5ZDUwYzY3OWU5ZjA5YjEwNmJmZGY2NGY4Y2M3NjY0MTllMTM0NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjAgMDc6MjQ6MTYgMjAxMiArMDEwMAoKICAgIEZpeCBpY21wTXNnU3RhdHNUYWJsZSBmb3IgU29sYXJpcwoKY29tbWl0IDAwN2E3ZDI0YmM1ZjI3OTM5MmZkMGVjNDM2MTQ3N2NkOGYxNGU1YWYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDE5IDIyOjE0OjA2IDIwMTIgKzAxMDAKCiAgICBnaXQgaWdub3JlIHRpbGRlIGZpbGVzCgpjb21taXQgYWZmMDJmMjRlMTk4YTI5MjMxMjczZDQ5NDgyMGRkNmUzNTQxNTVjYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBEZWMgMTcgMjI6NDQ6MTggMjAxMiArMDEwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlci9hdXRvY29uZgoKY29tbWl0IDljZmQ2ODBmMmYyZjQ1Y2Y3NmNkNDIxNjY5M2I4NjJmYWEyN2NiYzEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRGVjIDE3IDIyOjQyOjAwIDIwMTIgKzAxMDAKCiAgICBDb25maWcgY2hlY2sgZm9yIEJTRCB1ZHBzdGF0LnVkcHNfaXBhY2tldHMKCmNvbW1pdCA1M2MyZmRkNWI2NjAyMTE0NGFkMjY1MzliNTNiZTljMTU5M2I0ODg0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIERlYyAxNyAyMjoyNzowMyAyMDEyICswMTAwCgogICAgQWRkIFNEIHN1cHBvcnQgZm9yIGlwLWZvcndhcmQtbWliCgpjb21taXQgY2E3YjE3YTQxZDRkMTZiZDI3YWFjZjkyMTE2YmVhMzU2MmVlZWEzNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRGVjIDE3IDEyOjQwOjMyIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogdXNlIGNhY2hlIGZvciBkc2tUYWJsZSB0byBzcGVlZCBpdCB1cC4KICAgIAogICAgVUNELVNOTVA6OmRza1RhYmxlIHdhcyBzbG93IG9uIE5GUyBtb3VudHMuIE5vdyBpdCB1c2VzIGZzeXMgY2FjaGUKICAgIHRvIHJlbG9hZCBtb3VudHMgZXZlcnkgNSBzZWNvbmRzLgoKY29tbWl0IDBiNzE4MTg0ZTA3MGQyNTc0YzA5YjE4ZjU2ODk1MGE4YzlmZjc2NTkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDE2IDIwOjU3OjI5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBhcHBzOiBTdG9wIHVzaW5nIHNubXBfcGVycm9yIHdoZW4gbG9nZ2luZyBhZnRlciBmdW5jdGlvbnMgdGhhdCBkb24ndCBzZXQgc25tcF9lcnJuby4KCmNvbW1pdCA3ZWRjZTBjMzExYTdkZDU0MjhlMGVkYjcwMWRhYmU5ZGM3OWQwOTY3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAxNSAxMjo0MDoxMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgdGhlIC13aXRob3V0IG9wdGlvbnMgdG8gcnBtYnVpbGQgd29yawoKY29tbWl0IGM2MDM3NTQ4ZmI0YjQ3OTk2MzMwZmUxYmMxZTgyNjVhY2VhNWRkNTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRGVjIDEwIDAwOjQxOjQyIDIwMTIgKzAxMDAKCiAgICBUaGUgcHJvcGVyIHJvdXRlciBmaWxlcyBmb3IgQlNECgpjb21taXQgMmIzNTllNDUwOTg2YmI4NzQ0YmJmZjIxZTBjYWI0OTNhY2FjZWE5OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBEZWMgOSAyMzowMjowMiAyMDEyICswMTAwCgogICAgU3VwcG9ydCBmb3IgaXBTeXN0ZW1TdGF0c1RhYmxlIGZvciAqQlNELiBNb3N0IG9mIHRoZSBjb2RlIGJ5IEdhcnJldHQKICAgIENvb3Blci4gUGFydGlhbGx5IGZ1bmRlZCBieSBDaXNjbyBJcm9ucG9ydC4KCmNvbW1pdCA5YTA0NDEyOGU4YjMzMTc5NjIyMTE2NjM1ODc2OWViMDUzNWRmYzFmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIERlYyA5IDIyOjM2OjIxIDIwMTIgKzAxMDAKCiAgICBTdXBwb3J0IGZvciBpcE5ldFRvTWVkaWFUYWJsZSBmb3IgKkJTRC4gTW9zdCBvZiB0aGUgY29kZSBieSBHYXJyZXR0IENvb3Blci4KICAgIFBhcnRpYWxseSBmdW5kZWQgYnkgQ2lzY28gSXJvbnBvcnQuCgpjb21taXQgZjljYjI5OGRkMjBlZjZkNGJjNjgzY2UwNjdmMjMzMDczN2JlNGUwOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBEZWMgOSAyMjoxNzoyMiAyMDEyICswMTAwCgogICAgU3VwcG9ydCBmb3IgaXBEZWZhdWx0Um91dGVyVGFibGUgZm9yICpCU0QuIE1vc3Qgb2YgdGhlIGNvZGUgYnkgR2FycmV0dAogICAgQ29vcGVyLiBQYXJ0aWFsbHkgZnVuZGVkIGJ5IENpc2NvIElyb25wb3J0LgoKY29tbWl0IDFkZWU0MTU2MmM1NGUwYjU0YjMwMWEzNzgzOGIzYmE2NTA5ZGNjMzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gRGVjIDkgMjE6NTQ6MTQgMjAxMiArMDEwMAoKICAgIFN1cHBvcnQgZm9yIGlwU3lzdGVtU3RhdHNUYWJsZSBmb3IgKkJTRC4gTW9zdCBvZiB0aGUgY29kZSBieSBHYXJyZXR0IENvb3Blci4KICAgIFBhcnRpYWxseSBmdW5kZWQgYnkgQ2lzY28gSXJvbnBvcnQuCgpjb21taXQgM2RiYWJjOTcwNjhiNmM2OTBiM2ZkZjk3YjVhYjNhZTBkOWVhYjI4YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBEZWMgOSAyMTo0Nzo0NSAyMDEyICswMTAwCgogICAgQ2hhbmdlIHNvbWUgZGVidWcgb3V0cHV0IGludG8gZXJyb3IgbG9nZ2luZy4gRmFpbHVyZSB0byBleHBhbmQgMzIgdG8gNjQKICAgIElTIGFuIGVycm9yLgoKY29tbWl0IDkwNzM2MGUwOWZmZjMzOTBkNjI2OWY4Y2I0NzQwYmRiY2Q5NTgxNjYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gRGVjIDkgMjE6NDU6NDQgMjAxMiArMDEwMAoKICAgIEZpeCBzb21lIGxhYmVscyBmb3IgbmV0c3RhdCBpY21wIG91dHB1dC4KCmNvbW1pdCA5ZjJmMDU0MDVjN2JiNDk5ZWJlMDgzOWIwZDc5YmEyNWM2MWMwZjU1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIERlYyA3IDA5OjQ5OjUxIDIwMTIgKzAxMDAKCiAgICBSdW5uaW5nIGF1dG9jb25mCgpjb21taXQgZDI3ZjM2NDUyNTgzZDI5MWYyNTVlZjA5MGUyYWVhZWFmMzlhOWUwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBEZWMgNyAwOTo0OTowMiAyMDEyICswMTAwCgogICAgUnVubmluZyBhdXRvY29uZgoKY29tbWl0IDU2MzUyYzJlYmU5NTQxZjZhYmY5ZDJiOWViYzQ3MDVkODE4ZDg5YjgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRGVjIDcgMDk6NDg6MjEgMjAxMiArMDEwMAoKICAgIFJ1bm5pbmcgYXV0b2NvbmYKCmNvbW1pdCAzOTc5MjNlMGFhZTEzODVhMGFmM2E4MDNlNjBlYmU4MTI0Zjk2MWQyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIERlYyA3IDA5OjI2OjIxIDIwMTIgKzAxMDAKCiAgICBGaXhlcyBmb3IgY29uZmlndXJlIG9mIGtzbSBtb2R1bGUuIFByZXZpb3VzbHkga3NtIGhhZCB0byBiZSB0aGUKICAgIGZpcnN0IHNlY3VyaXR5IG1vZHVsZSBpbiBsaXN0IHRvIGJlIGluY2x1ZGVkLgoKY29tbWl0IDQzMGQxMGQyOTZiOGQ4Yzk4YTNhYWZkMjdhOGM2ZmY0ZjY0MDgxMTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgRGVjIDcgMDk6MjQ6MzkgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsaW5nIHdoaWNoIGhhcyBwcmV2ZW50ZWQga3NtIG1vZHVsZSBmcm9tIGNvbXBpbGluZyBmb3IgbWFueSB5ZWFycyA6LSgKICAgIEFsc28gc29tZSBmaXhlcyB0byBzdXBwb3J0IEhlaW1kYWwgS2VyYmVyb3MuIFRoaXMgc3VwcG9ydHMgRnJlZS9OZXRCU0QuCgpjb21taXQgYmZmODMyYWIyNDhlMDg2MjhiZTQ2ZWJmNzYxMTE5MTFlN2YzOWU1MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBEZWMgNyAwOToxNzoyMiAyMDEyICswMTAwCgogICAgQWRhcHQgZm9yIGxvbmdlciBsaW5lcyBmcm9tIC9wcm9jL25ldC90Y3A2LiBBbmQgaXNzdWUgYW4gZXJyb3IgaWYKICAgIGl0IGhhcHBlbnMgdG8gZmFpbCBhZ2Fpbi4gUGF0Y2ggZnJvbSBidWcgIzI0MjUgKFRoYW5rcyBaaGl4dSBMaXUpCgpjb21taXQgOTY4N2U0ZDUwNzgxYmEwMTY4NDE2ZjE1YzRmMmQ5ZmM4MzcxMDUwYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBEZWMgNyAwOToxNTo0OCAyMDEyICswMTAwCgogICAgaWNtcCBzdXBwb3J0IGZpbGVzIGZvciAqQlNEIChleGNlcHROZXRCU0QpCgpjb21taXQgZjIxNWJhMWUzN2E4YzNlMDc2OTU4ZWZkODNjMGY1ZDM5M2ExNGMyMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBEZWMgNyAwOToxMzoyNCAyMDEyICswMTAwCgogICAgU3VwcG9ydCBmb3IgaWNtcFN0YXRzVGFibGUvaWNtcE1zZ1N0YXRzVGFibGUgZm9yICpCU0QgYW5kIFNvbGFyaXMKCmNvbW1pdCBhN2I3YzNjMGMzYmUzZjZjZjJkMDlmNjQ3MGQzZmEwODYxNTNkMDM2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAzMCAxNTozNTozMyAyMDEyICswMTAwCgogICAgU2h1ZmZsZSBpbiBwcmVwYXJhdGlvbiBmb3IgYnJvYWRlciBzdXBwb3J0IGZvciBpY21wU3RhdHMvaWNtcE1zZ1N0YXRzCgpjb21taXQgYmQyOTZhYzE4NDIzNTAzZWRhOGVmZmViODZhZmIxOWUwMDE0Mzg4OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMzAgMTU6MzQ6NTIgMjAxMiArMDEwMAoKICAgIFNodWZmbGUgaW4gcHJlcGFyYXRpb24gZm9yIGJyb2FkZXIgc3VwcG9ydCBmb3IgaWNtcFN0YXRzL2ljbXBNc2dTdGF0cwoKY29tbWl0IDJlMjNlYTBmMjkzYmI4ZTljZWFmNTYzNmRiN2I3ZDA3ZjZkNjJjN2EKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTm92IDIwIDIzOjMzOjU4IDIwMTIgKzAxMDAKCiAgICBBZGQgbWlzc2luZyBzc0lPUmF3U2VudC9yZWNlaXZlZCBmb3IgU29sYXJpcy4KCmNvbW1pdCA1OWVlYmM0MWE5NDM1ODExMDczZmVjNTBkNzZkZDZhZWY5ZGQ1OGE3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE5vdiAyMCAyMzozMjo1MyAyMDEyICswMTAwCgogICAgQWRkIHNvbWUgZXJyb3IgY2hlY2tpbmcgdG8gZ2l0dG9vbHMKCmNvbW1pdCA4MGIxODM3NTgyNjY1MzYyNmMyZDcwNDUxYzJiNTRhMWM1MGEzY2U2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE5vdiAxMyAxMzo1NTo0NyAyMDEyICswMTAwCgogICAgUmVtZW1iZXIgdG8gaW5pdCB0aGUgc3lzdGVtc3RhdHMgcHJvdmlkZXIKCmNvbW1pdCA3NDNjYjY2NzE4OTA0OTc5ZjU1ODk1NDcyNTAxNTg0YzMwYzY2ZjEwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDk6MTUgMjAxMiArMDEwMAoKICAgIEZpeGVkIGNyYXNoIHdoZW4gTUQ1IGFuZC9vciBTSEEtMSBoYXNoIGlzIG5vdCBzdXBwb3J0ZWQgYnkgT3BlblNTTC4KCmNvbW1pdCAxODk4Y2ZjNzFiZGIzZjRhMTY4NWM2ZDIxYjU0ZGQxYTM0ODI1OTFjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxMiAxNTo0ODoxNSAyMDEyICswMTAwCgogICAgT3BlbkJTRCA1LjIgc3VwcG9ydC4KCmNvbW1pdCBkZDUzZmZiYWZlYjMxY2RlNjE2YTg5OTQ5ZTcwZTNkNWZlMGNjMWIzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDY6NDMgMjAxMiArMDEwMAoKICAgIEZhbGwgYmFjayB0byBTSEEtMSBpZiBNRDUgaXMgbm90IGF2YWlsYWJsZS4KICAgIAogICAgT24gcGFyYW5vaWQgc3lzdGVtcyB3aGVyZSBNRDUgaXMgZGlzYWJsZWQgdXNlIFNIQS0xIGluc3RlYWQgb2YgTUQ1IGFuZCBkb24ndCBjcmFzaC4KCmNvbW1pdCBlYThmNzRjODFmODJjMTA1YjlmYzAxOTY1YWRjZTE0YjBkODE4NmRhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAxMiAxNTo0NjozNCAyMDEyICswMTAwCgogICAgRml4IE5ldEJTRCBtZW1vcnkgZGF0YSB0eXBpbmcKCmNvbW1pdCBkZGUzYTM1YmFhZWI2ODNjZjE0NDFhMTZhMTU0NDFmOGI0NTZjNTIwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDU6MjcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGNyYXNoIHdoZW4gTUQ1IGhhc2ggaXMgbm90IHN1cHBvcnRlZCBieSBPcGVuU1NMLgoKY29tbWl0IGI3N2I2N2Q4ZDYyOWY3ODU2MzllNDAyZmE0ZmJlZTZjY2ZlMThmYTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDEyIDE1OjQ0OjQ5IDIwMTIgKzAxMDAKCiAgICBLZXJuZWwgcHJvY2Vzc2VzIGluIERyYWdvbkZseSwgYW5kIGZpeGVkIGNwdSB1c2FnZSBkYXRhCgpjb21taXQgZDZjNjIwMTJjODA4MmZjODg2Zjc0N2UwZTJjOWJiOGE2YzY2YzY2MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTIgMTU6NDE6NTUgMjAxMiArMDEwMAoKICAgIERpc2tpbyBmb3IgT3BlbkJTRCwgYW5kIHNvbWUgY2xlYW4tdXAgZm9yIEZyZWVCU0QvRHJhZ29uRmx5Cgpjb21taXQgNGE1ZTBmNGM5NWZiNmNkMTIzYTQ5MDE3ODczNzZlNDQ3ZDMzMmMwMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDkgMTQ6MjM6NDggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IGFkZGVkIHNpbWZzIChPcGVuVlogZmlsZXN5c3RlbSkgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZS4KCmNvbW1pdCAyYTBjZDM1YWNmMzMyNWE2ZmRjMGExMDQyM2Y1NGNiOGI1Y2U1MjJiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBTZXAgMTMgMTU6MjU6NTIgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBpbmZpbml0ZSBsb29wIHdoZW4gU0lHVEVNIGFycml2ZXMgaW4gbWlkZGxlIG9mIGludGVybmFsIHF1ZXJ5IHByb2Nlc3NpbmcuCiAgICAKICAgIFdoZW4gc25tcGQgc3RhcnRzIGludGVybmFsIHF1ZXJ5LCBlLmcuIGZvciAnbW9uaXRvcicgY29uZmlnIG9wdGlvbnMsIGl0IGNhbGxzCiAgICBuZXRzbm1wX3F1ZXJ5X3dhbGsoKS4gVGhpcyBmdW5jdGlvbiBsb29wcyB1bnRpbCBlaXRoZXIgZXJyb3Igb2NjdXJzIG9yIHRoZQogICAgaW50ZXJuYWwgcmVxdWVzdCBpcyBwcm9jZXNzZWQuIEFuZCBpZiBTSUdURVJNIGNvbWVzIHRvIHRoaXMgbG9vcCwgdGhlIHJlcXVlc3QKICAgIGlzIG5vdCBtYXJrZWQgYXMgZmFpbGVkLgogICAgCiAgICBQYXRjaCBvcmlnaW5hbGx5IGZyb20gTWFzYWhpcm8gTWF0c3V5YSwgbW1hdHN1eWEgW2F0XSByZWRoYXQuY29tCgpjb21taXQgYmM0NDljMGY4NWFlOWZhMDhhYzRmY2U2NzI4MmY0OGViN2FiMTk4NApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDEwIDEzOjI1OjM4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdmFsdWUgb2YgVUNELVNOTVAtTUlCOjpleHRDb21tYW5kIHRvIGNvbnRhaW4gZnVsbCBjb21tYW5kIGxpbmUuCiAgICAKICAgIE1JQiBkZXNjcmlwdGlvbiBvZiBVQ0QtU05NUC1NSUI6OmV4dENvbW1hbmQgc3VnZ2VzdHMgaXQgc2hvdWxkIGNvbnRhaWwgZnVsbCBjb21tYW5kIGxpbmUuCiAgICBBbHNvIGluIE5ldC1TTk1QIDUuMy4yLjIsIHdob2xlIGNvbW1hbmQgbGluZSB3YXMgc2hvd24uCgpjb21taXQgYTM5NzhmMmNjMjA1NmM5N2E0YzNmMzM4ZjcwOWEyMDI5MWFlZDQ3MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTIgMDY6NDg6MzcgMjAxMiArMDEwMAoKICAgIFByb3BlciBoYW5kbGluZyBvZiBjb25maWd1cmUtZ2VuZXJhdGVkIHNubXBjb25mCgpjb21taXQgMGY0Njk5MjkyNGRlNWE0YWIwNzYzYThkNDRhMWNlY2U0YTk5MWQ4MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgNSAyMToxNjozNyAyMDEyICswMTAwCgogICAgUGF0Y2ggZm9yIE9wZW5CU0QgNS4yIChQYXRjaCAzNTU5NDIwKQoKY29tbWl0IDllZDBiMmUwYWMwYzhlNTQ5YjhmOWE1ODQ1ZTlkMWZhYWNhYjczYzUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDUgMjA6MDg6NDEgMjAxMiArMDEwMAoKICAgIHJmYzY3NzkKCmNvbW1pdCBhZWY3NmNhMGNiYTJjYTU2ZjZhYTFkYjVjNWI1OGE1NDkzOWYzODliCkF1dGhvcjogcXFzaGthIDxxcXNoa2FAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMzEgMjA6MDA6MDQgMjAxMiArMDEwMAoKICAgIEFnZW50WCwgSVBYOiBSZXN0b3JlIGRlZmF1bHQgcG9ydCAoYnVnICMzNTgyMjgzKS4KICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCA3YjllMDM0NDFjM2RjM2EwNzY3MGVkMDFmNWQwNDc5MWE4MmM3NTBjLgoKY29tbWl0IGQ3ZDk4ZTVhYTllZThjYTc5MThiNzY3NTA0M2Q0NzljZjc3YjgzYzQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDEgMTA6MzM6MDYgMjAxMSArMDIwMAoKICAgIC5naXRpZ25vcmU6IEFkZCBsb2NhbC9zbm1wY29uZgoKY29tbWl0IDcxZDgzYmE0MTE3YTJjZmI3ODc0ZTkxODMyZTQ1OTczZGE0MmVlOTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDEgMTA6MzQ6MzAgMjAxMSArMDIwMAoKICAgIFdpbjMyLCBNU1ZDOiBNYWtlIGJ1aWxkLmJhdCB3b3JrIGFnYWluIG5vdyB0aGF0IEVOVl9TRVBBUkFUT1IgaXMgY29uZmlndXJhYmxlCgpjb21taXQgNWU1MDAwODI3MjhmNDUzNTk1ZjUwMjRkMjQxMjA4YzUxZjA4ZDIyYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMjkgMTg6MTI6NDEgMjAxMiArMDEwMAoKICAgIFJFQURNRS53aW4zMjogUmVtb3ZlIHJlZmVyZW5jZSB0byB0aGUgbm8gbG9uZ2VyIHN1cHBvcnRlZCBDeWd3aW4gY29tcGlsZXIgb3B0aW9uIC0tbW5vLWN5Z3dpbgoKY29tbWl0IDFhMzZkZWUxNjViOGJkN2RmM2VmNjk0YjdjM2YyNjIxYTU0NDlkYWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgQXVnIDMwIDIwOjU0OjAwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZCwgc25tcHRyYXBkIGFuZCBhcHBzOiBNYWtlIEVOVl9TRVBBUkFUT1JfQ0hBUiBjb25maWd1cmFibGUKCmNvbW1pdCAwZTFjYTQ1YTZmOGQ4YWNmNDRhYTIxYTAwOWE5ZTUxMTkyZTg0NzgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE9jdCAyOCAxMDoxMToyMiAyMDEyIC0wNzAwCgogICAgc25tcG5ldHN0YXQ6IEZpeCBNU1ZDIGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgNGE2ZDAzNzhhMzkxNjU3MWNlNzYwNGM0YTNkNTRhOGM5NmE4ZjgwNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBPY3QgMjggMDk6NTQ6MTIgMjAxMiAtMDcwMAoKICAgIFdpbmRvd3M6IFZpc3VhbCBTdHVkaW8gNiBidWlsZCBmaXggZm9yIHN0cmxjYXQoKQoKY29tbWl0IDQxYjQ4YTYzNzA5NTJiZjRiMTJkMzRmYjA1ZWM1NWZiMDcwMmU4Y2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTdW4gT2N0IDI4IDE0OjM3OjUyIDIwMTIgKzAxMDAKCiAgICBXaW5kb3dzOiBNYWtlIHNubXBuZXRzdGF0IGJ1aWxkIGFnYWluCgpjb21taXQgMjQ1MWY4MjY0Nzk4ODFhNDkyNmZjZjg4ODU1ZjU4MjU4NWViODEzYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBPY3QgMjggMTA6MjM6MTcgMjAxMiArMDEwMAoKICAgIHdpbjMyL2J1aWxkLnBsOiBSZWR1Y2UgY29kZSByZWR1bmRhbmN5Cgpjb21taXQgNmU5OTM4ODY4M2E2Yzg1NDAzNWYwNDJhOWQwN2MwNzIzMTE3ZThhNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBPY3QgMjggMDk6NDE6MjAgMjAxMiArMDEwMAoKICAgIFdpbmRvd3MsIGJhdGNoIGJ1aWxkOiBSZW1vdmUgdGhlIG9ic29sZXRlIHZhcmlhYmxlICJTU0wiCgpjb21taXQgNzU0NGFkYzVhMWM3Njg4OWU0YTllZDUxZTk2ZDIyZDAyZmQ1Njk1ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMjIgMTU6MzU6MDQgMjAxMiArMDAwMAoKICAgIE5FV1M6IFdpbmRvd3M6IFBvcnQgYmF0Y2ggYnVpbGQgaW5mcmFzdHJ1Y3R1cmUgdG8gVmlzdWFsIFN0dWRpbyAyMDEwIGFuZCBsYXRlcgogICAgCiAgICBGcm9tIFZpc3VhbCBTdHVkaW8gMjAxMCBvbiBpdCBpcyBubyBsb25nZXIgcG9zc2libGUgdG8gc3BlY2lmeQogICAgaW5jbHVkZSBvciBsaWJyYXJ5IGRpcmVjdG9yaWVzIGdsb2JhbGx5IC0gdGhlc2UgaGF2ZSB0byBiZSBzcGVjaWZpZWQKICAgIHBlciBwcm9qZWN0LiBIZW5jZSB0d28gYWRkaXRpb25hbCBtZW51IGVudHJpZXMgaW4gYnVpbGQuYmF0IHRoYXQKICAgIGFsbG93IHRvIHNwZWNpZnkgdGhlc2UgZGlyZWN0b3JpZXMuCgpjb21taXQgMWI4YTc5YzFjMmViMTNmOGIyMDdjMTJhYTZlNzFhMjlmZjAwMzk2ZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMjIgMTk6MTA6MDcgMjAxMiArMDAwMAoKICAgIHdpbjMyL0NvbmZpZ3VyZTogRmFjdG9yIG91dCBjb21tb24gY29kZQoKY29tbWl0IDJhZjdhNzNiMGNhOGNkYmQzNmE3ZjE5ZGQ4ZTU1NzY0Yzg0OTg1NTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgT2N0IDI3IDE4OjI3OjQyIDIwMTIgKzAyMDAKCiAgICBXaW5kb3dzOiBNYWtlIHNubXBuZXRzdGF0IGJ1aWxkIGFnYWluIChzZWUgYWxzbyBjb21taXQgYWE1OTEyYjg5ODZjZGU3NDA5MGJhMTViZTE5NjQyNjMwOWExZTFmMCkKCmNvbW1pdCBmYTk4YjRjYmQ2ZGMxNWFhOTI2MTY2ZWVmMDRkNWJjOGRmYmFhYWQ2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE9jdCAyNiAwNzo1NjowNiAyMDEyICswMjAwCgogICAgQ29wZSB3aXRoIGFkZGl0aW9uYWwgc3RhdGlzdGljcyBpbiAvcHJvYy9uZXQvc2N0cC9zbm1wIGluIFJINgoKY29tbWl0IDU0MjkwYmVkZTMzODE2NGNhNjVhM2VlZDIyNGZhNTA0MGQ3ZGQ4NTcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgT2N0IDI2IDA3OjUwOjExIDIwMTIgKzAyMDAKCiAgICBCZXR0ZXIgY2xlYW51cCBvZiAiZXhlYyIgY29uZmlnIHRvIGF2b2lkIGNyYXNoIGR1cmluZyByZWxvYWQgb2YgY29uZmlnCgpjb21taXQgODJhYTI0NjY3MTE5NGYwNGJlNTJjNjIxZTlmODNkMGZhYmQyNGZhNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMjQgMTU6MzA6MTEgMjAxMiArMDIwMAoKICAgIERvbid0IG1peCBjb2RlIGFuZCBkZWNsYXJhdGlvbnMhCgpjb21taXQgNGU5ZWE4NDU1OTJmZmY4YjJhYWU1ZDMxOGRjYWJmNDFmOTU3MDYzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMjQgMTU6MjU6MzUgMjAxMiArMDIwMAoKICAgIERvbid0IG1peCBjb2RlIGFuZCBkZWNsYXJhdGlvbnMhCgpjb21taXQgMjFkNWM2Nzg1ZTkxNmI1MTAxNDQwZWQxYTRmNzFiNDFiYTJlYjgwOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMjQgMDk6Mjc6MjMgMjAxMiArMDIwMAoKICAgIFJlbWVtYmVyIHRvIGZyZWUgdGhlIGRlc2NyaXB0aW9uIChpZiBzYXZlZCkgZHVyaW5nIHVubG9hZF9hbGxfbWlicwogICAgKHBhdGNoIDM1NjU5MjIpCgpjb21taXQgMmI5OTQwY2E1NmZjOGQzZDYxMGVmZDJlYmE5YWU0ZWJiNzQxZTY3MQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMjQgMDY6NDE6NDYgMjAxMiArMDIwMAoKICAgIENsZWFuIHVwIGRpc2tpbyBjb25maWcgYmVmb3JlIHJlbG9hZGluZy4KCmNvbW1pdCBmNzc2OGZiNjQzYmUyODJkNjM1Mjg5YjU3Zjg4YTA3ZDA3MDQ4N2IwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE9jdCAyMyAxMTo0ODozMSAyMDEyICswMjAwCgogICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0eC5jOiBFbGltaW5hdGUgZGVhZCBjb2RlIChzZWUgYWxzbyBjb21taXQgYWE1OTEyYjgpCgpjb21taXQgNjRjNTZmMjdjNWVkNDMyY2U4ZGU0NGUyNTc5Y2EwYzgwNmE1MTdlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMjIgMTc6NDU6MTkgMjAxMiArMDAwMAoKICAgIGJ1aWxkLnBsOiBFbGltaW5hdGUgYSB0ZW1wb3JhcnkgdmFyaWFibGUKCmNvbW1pdCAzMGE1ZDAxM2E4MGU5ZmQ1MGI4ZmQwZjcwZmZkOTZmZjI2YjZlNDU0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMiAyMDoyOTowOSAyMDEyICswMjAwCgogICAgVXBkYXRlIHRvIGN1cnJlbnQgSUFOQSB2ZXJzaW9uCgpjb21taXQgZjQwZDQ0MDY4OTA2N2VmNmM0ZGE3ZGRhZGZiMzczYTQ1MjE5N2ZiZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMjIgMTk6NDc6MDYgMjAxMiArMDIwMAoKICAgIHdpbjMyL0NvbmZpZ3VyZTogU3RyaXAgdHJhaWxpbmcgd2hpdGVzcGFjZQoKY29tbWl0IGQzNGUwNTc3NzljYjMyZTk0MzI0MDg5ZGM0NjI1NjM4MzA5Y2ZlODkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDIyIDE4OjM2OjU5IDIwMTIgKzAyMDAKCiAgICB3aW4zMi9idWlsZC5wbDogU3RyaXAgdHJhaWxpbmcgd2hpdGVzcGFjZQoKY29tbWl0IDMwZGFlZjE4NjAzOTdmMDQ1YzQwNTVjZDYxZDY2M2QyOTBkZDQ3ZjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDIyIDE4OjMyOjM4IDIwMTIgKzAyMDAKCiAgICBGaXggTVNZUyBraWxsL3Bza2lsbCBjb25mdXNpb24KCmNvbW1pdCAxNGJlOTEzMmI5MTE1OGIwNTEyMDcxMGIxZmY2YTRiMmFjY2M1MzFkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMiAxODoxMDo0NCAyMDEyICswMjAwCgogICAgRml4IG5ldDAvbmV0eCBjb25mdXNpb24KCmNvbW1pdCA4MTA3YTYzNTJkZjI0Nzg2NjA5OTRlZjEwM2Q1MjgwMWE2NjA3Y2M5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMiAxNzowMzo0NyAyMDEyICswMjAwCgogICAgRml4IHNwZWxpbmcgZXJyb3JzCgpjb21taXQgYWE1OTEyYjg5ODZjZGU3NDA5MGJhMTViZTE5NjQyNjMwOWExZTFmMApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjIgMTY6NTg6NTAgMjAxMiArMDIwMAoKICAgIEltcGxlbWVudCB0aGUgbW9kZXJuIElQIHZlcnNpb24gYWdub3N0aWMgdGFibGUgaW4gc25tcG5ldHN0YXQuCiAgICBJZiB0aGUgbW9kZXJuIHRhYmxlIGlzIG5vdCBhdmFpbGFibGUgKG9yIHRoZSAtQ0wgb3B0aW9uIGlzIHVzZWQpCiAgICBmYWxsIGJhY2sgdG8gdGhlIGxlZ2FjeSB0YWJsZXMuCgpjb21taXQgMWEzNGQyMjQ5ZWYwZDIyMTVlNTg4NmY5YjNjOTdlY2ZhN2ViNTE5MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjIgMTY6Mzk6NDEgMjAxMiArMDIwMAoKICAgIFBpY2sgdXAgaWZEZXNjciBmcm9tIGlmWFRhYmxlIHdoZW4gYXZhaWxhYmxlLCBhbmQgdXNlIHRoYXQgYXMgdGhlIG5hbWUuCiAgICBWZXJ5IHVzZWZ1bCBpZiBwY2ktdXRpbHMgd2VyZSBhdmFsYWJsZSB3aGVuIGNvbXBpbGluZyB0aGUgYWdlbnQgYXMgdGhlCiAgICBuYW1lIG90aGVyd2lzZSB3aWxsIGJlIHRoZSB2ZXJ5IG9ic2N1cmUgY2hpcCBuYW1lCgpjb21taXQgYjRjYWY1NDNjZmY3ZGJhOGY5YWNjYTJiOWVhODhjOWI3OWRjMzllZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjIgMTY6MzI6MTIgMjAxMiArMDIwMAoKICAgIFBpY2sgdXAgSEMgb2N0ZXRzIGFuZCBNY2FzdE9jdGV0cyBmcm9tIC9wcm9jL25ldC9uZXRzdGF0IG9mIGN1cnJlbnQgUkhFTDYKICAgIGFuZCBGZWRvcmEga2VybmVscy4KCmNvbW1pdCBjNjU1ZmNlNzg0NTMyYTUyM2Y3ZGI1ODJkMGNkMDdkZWU0YWQ3YWM1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyMiAxNjoyNTo1OSAyMDEyICswMjAwCgogICAgVHJ5IHRvIGJldHRlciBjbGFzc2lmeSBMaW51eCBrZXJuZWwgdGhyZWFkcyBhcyBoclNXUnVuVHlwZT1PcwoKY29tbWl0IGUxYThjOTVjYTU1ZjU2OTU4NWM4OGUxNzRhNDNmNmQ0MTI5YzQzOWQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDIwIDA5OjU5OjQxIDIwMTIgKzAyMDAKCiAgICBDb3JyZWN0IHRoZSBuZXN0aW5nIG9yZGVyIG9mIHRoZSBkb3h5Z2VuIGVuZCBzZWN0aW9uIGNvbW1lbnQgYW5kIHRoZSBmZWF0dXJlIHJlbW92YWwgZW5kaWYuCgpjb21taXQgZjY3YWRmMmEzN2E4YzE4MmVhY2JjZmU1MmQ1Yjc4OTE5MWE2NTkyOQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgOSAxNjozMjo0NyAyMDEyIC0wNzAwCgogICAgcmVtb3ZlIHJlbGVhc2UgcmVxdWlyZW1lbnRzCgpjb21taXQgM2U1NDMzMDM5M2NjYzg2NTI1ZWQ2ZmI5YTBmYzE5YzA2ODMwNjYxMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVAcmVkaGF0LmNvbT4KRGF0ZTogICBUdWUgT2N0IDkgMDY6MzQ6MTAgMjAxMiAtMDcwMAoKICAgIGZpeCBkb3VibGUtbmVnYXRpdmUgdHlwbwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMi5yYzMgLT4gVjUuNy4yCgpjb21taXQgNTA1NGI1NzA2MTlkZjBhODE5NThhMDQ1YmVmMTM1YjIwMjA1ZjAzNgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgOSAxNToyNjowNSAyMDEyIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yCgpjb21taXQgNTZhNzk3ZmYzZTcxZGM4ODY0NjdkMTdjZTAyNWIwMjM3YzhjMWNjMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgOSAxNDo0MjoyMyAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMgoKY29tbWl0IDA4MTNmOGI2MmRmMGU4NDQwZmZlZjE2MWNlMTM0ZmY5NDU1ZTdkZTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5lQHJlZGhhdC5jb20+CkRhdGU6ICAgVHVlIE9jdCA5IDA2OjMzOjU4IDIwMTIgLTA3MDAKCiAgICBmaXggZG91YmxlLW5lZ2F0aXZlIHR5cG8KICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgYTZhODg5Mjc1MzQ2ODRlMjc1Y2NmMGU3ODA1MTMwOTRhNzNmYzZiYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBPY3QgOSAwNjozMToyMSAyMDEyIC0wNzAwCgogICAgQUlYIG5ldC1zbm1wNS43LjEgaHJTV1J1blBhdGggbm90IGNvbXBsZXRlCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDU4YTRkODgzOTAyMWY3NzJjMzVhNzMyYmQwOTZkMWUyOTBkYzBhNjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDkgMDY6MzA6NTcgMjAxMiAtMDcwMAoKICAgIEFJWCBuZXQtc25tcDUuNy4xIGhyU1dSdW5QYXRoIG5vdCBjb21wbGV0ZQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2MjZlYWJlYzRlYTk4ZTUzNTkwODk3OTA4NTg0NzlhNTlhMjZjZGNiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIFNlcCAzMCAyMzozMDoyOCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTW92ZSB0aGUgY2hlY2sgdGhhdCB0aGUgcGR1IHZhcmlhYmxlIGlzIG5vbi1OVUxMIHRvIGJlZm9yZSB0aGUgZmlyc3QgZGVyZWZlcmVuY2Ugb2YgaXQuCgpjb21taXQgNjhhYWI1NzJjMmQyNzQ2YjUxYTk1ZWJhMTEwNTY4YzM4YjA1MDgwOApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjUgMTk6MDc6NDIgMjAxMiAtMDcwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS03LXBhdGNoZXMKCmNvbW1pdCAwYTQxNTMzYjFiNDlmMDBkNzM1N2EzZDJiZWE1ZGZhNzVlOGVkY2Q3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIFNlcCAyNCAwMDowNzoxOSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3QgY2FzZXMgZm9yIHNubXBfc2VydmljZQoKY29tbWl0IGE2MWI0OGQ3OGUxMWQ5NDVkZWY0NmZkZTBmN2Q1NWY3OTE5YzMzNWEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gU2VwIDIzIDA3OjUzOjA5IDIwMTIgKzAyMDAKCiAgICBQcmVmZXIgY29weV9ud29yZF9jb25zdCBvdmVyIGNvcHlfbndvcmQoTkVUU05NUF9SRU1PVkVfQ09OU1QKCmNvbW1pdCA5YmZmYzU0MTNkMGQ4ODIzOThiMDZmNDEwOWFjODA3YWYyZjc4MzQ3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIFNlcCAyMyAwMDoyOTo0NCAyMDEyICswMjAwCgogICAgU2ltcGxpZnkgbG9nZ2luZyB0aHJvdWdoIHRoZSB1c2Ugb2YgbmV0c25tcF9jb25maWdfZXJyb3IKCmNvbW1pdCBkMDlkNTNhMGZhNmRmNjNiMjFlNmYxMjczMWJlZTUxYTM2MjRlODVlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IFNlcCAyMiAyMTozMDowOCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGNyYXNoIG9uIGluY29tcGxldGUgY29uZmlndXJhdGlvbiB0b2tlbnMuCgpjb21taXQgMDJkY2U2ZjQzYjk5Zjg1OTQxNjI3OTI4YzFhNTAyMmQ2NzI1ZDEyNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBTZXAgMjIgMjE6Mjg6NTEgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCB0cnVuY2F0ZSBzaW5nbGUgZGVmYXVsdCB0cmFuc3BvcnQgZG9tYWlucwoKY29tbWl0IDIxMWUzYzcwNjI1OTY1NDQxYjJhMDI5YTYxMTM4MDI5NzQ2NzNjNDMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgU2VwIDIyIDExOjIzOjE5IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEbyBub3QgY3Jhc2ggZnJvbSBlbXB0eSB2YWx1ZXMgaW4gLS10b2tlbj12YWx1ZSBhcmd1bWVudHMKCmNvbW1pdCBhZjNkMmQ5NzNiMWU4ZTI5ZDIwNWQ4YTA3YWNkODJiMWY4NTQ4MTllCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IFNlcCAyMiAxMDozMDoxNiAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIHRoZSBzeW1ib2wgTkVUU05NUF9QUklvIHRvIGhlbHAgaW4gcHJpbnRpbmcgb2lkIHZhbHVlcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMi5yYzIgLT4gVjUuNy4yLnJjMwoKY29tbWl0IDhiNDUyOTIzMDFmMDM0OWZmYjY5ZDRmZDg1OTVmMmQ1YjE5OWU2YjYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI1IDE5OjM1OjM5IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucmMzCgpjb21taXQgMGNiZmZiNTY1ZTYyYWVmOTM3ZmM3MDBkOGQzYzNiOGM2NWRkZmE2NQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjUgMTk6MDc6NDAgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucmMzCgpjb21taXQgNDA1MDU5NzFhZGQ2YTNiNmY1OTU0Y2ZiZGU1MzI3NDliZmJjYjE2YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTcgMTM6MzQ6MzcgMjAxMiAtMDcwMAoKICAgIGZpeCBmb3IgaGlkZGVuIENNU0dfeHh4IG1hY3JvcyBvbiBBSVgKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNjBmMGE5ZTk4M2FiODI3YzgyNGUzOTdkNjJhZWZmNDhhNjBmMDEzMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBTZXAgMTcgMTM6MzE6MTIgMjAxMiAtMDcwMAoKICAgIEZpeCBwc3RhdCBtZW1vcnkgbGVhayBvbiBocHV4IDExaQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAxM2JkNGQ1NmJhYTk4ODYwMThhMDA0NzdlMzIxNGViZTAyNzA1ZmZlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxNyAxMzozMTowNCAyMDEyIC0wNzAwCgogICAgRml4IHBzdGF0IG1lbW9yeSBsZWFrIG9uIGhwdXggMTFpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDA4MDU0MjA4MTNkZTE1NmM3ZmM1MTQyNTM0ZmI0MjBhMGZjYzM1NzIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjI4OjU5IDIwMTIgLTA3MDAKCiAgICBmaXhlcyBBVCBjb2RlIG9uIGhwdXggMTFpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGJkYjNiMTQ2MzgwZGIxMzE2Y2FiZDU4YjcwNDQzNmU3ZWVjZGQ5ZjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjI4OjUwIDIwMTIgLTA3MDAKCiAgICBmaXhlcyBBVCBjb2RlIG9uIGhwdXggMTFpCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGU5MzZjZjgxMGE0NzM3OTE1NmQ5MTNhNzE0ZTM4MTYxODFhMGQzZGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gU2VwIDE3IDEzOjI1OjIwIDIwMTIgLTA3MDAKCiAgICBmaXhlcyBkaXNBdmFpbCBvbiBGcmVlQlNEIHVmcwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2MDhhYjU3ODg3ZTU1NjZlNjM1MDlhM2Y3ZTVkMGEzZTI4OTJmNGE3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIFNlcCAxNyAxMzoyNTowMiAyMDEyIC0wNzAwCgogICAgZml4ZXMgZGlzQXZhaWwgb24gRnJlZUJTRCB1ZnMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjIucmMxIC0+IFY1LjcuMi5yYzIKCmNvbW1pdCAwN2Y5MTQ1NjRlMDk3MjI0ZDY3NzUxNWMyZjVmZDFmM2MwYzllYjQyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IFNlcCAxIDA5OjU0OjQyIDIwMTIgLTA3MDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNy1wYXRjaGVzCgpjb21taXQgYWVlMjE3YzA3ZWE5ZjM0YTMyMjY4ZTk2NmM3ZWNlZjAzNmVjNGE5NgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBTZXAgMSAwOTo1NDozOCAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5yYzIKCmNvbW1pdCAxMTliMGQzY2YxMmM5N2NhM2M3NGQ2ZDFlNzIzMTk2NzBhODM3OGFhCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IFNlcCAxIDA5OjUxOjA4IDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTYwNDczOiBmcm9tIGZlbm5lcjogSGFuZGxlIFRpbWVUaWNrcyB3aGVuIHByZXR0eS1wcmludGluZyBPSUQKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgYzk0YzYyZWEwZWRjZWJiZmJiNzNmYWI2ZWNkZGM2NzlmNzY5NGRhYgpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBTZXAgMSAwOTo1MTowOCAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzU2MDQ3MzogZnJvbSBmZW5uZXI6IEhhbmRsZSBUaW1lVGlja3Mgd2hlbiBwcmV0dHktcHJpbnRpbmcgT0lECiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDZkN2Y5ZWIwZGVjZGI5NjgyODM2ZmZkMDNmMTk3NDIxOTdhZDg3ZGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDI5IDIxOjE0OjQ2IDIwMTIgKzAyMDAKCiAgICBGaXggcG9zc2libGUgbWVtb3J5IG92ZXJydW4gaW4gZnN5c19nZXRmc3N0YXRzLmMgKHBhdGNoIDM1NTk0MTcpCgpjb21taXQgZjIzNWVlOGIzMmVlZDFkZTNmMWU0MjAyZWY0NWI2Mzc3ZmJjZTE2MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMjkgMjE6MDc6MTQgMjAxMiArMDIwMAoKICAgIEZpeCBmb3IgaHJTdG9yYWdlVGFibGUgb24gQUlYIChidWcgMzU1NzE1OSkKCmNvbW1pdCA3OGNjOWQ1Y2NkODZiMTcwNjIyYWFjNTQzYzM0NWMwMjA3NTVjNzhhCkF1dGhvcjogc3RoZW4gPHN0aGVuMjM5MzRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjggMTc6MTg6MDkgMjAxMiAtMDcwMAoKICAgIGFkZCBtaXNzaW5nIHByb2Nlc3Mgc3RhdHVzIHZhbHVlcyB1bmRlciBuZXQvb3Blbi1ic2QKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNGVmOWRjZDgwYjBiZGExZTE4YjdlMzQ5YTA4YmMwZjIyYTdlNzU1ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjggMTc6MTY6MzcgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IE9wZW5CU0Q6IFBBVENIIDM1NTk0MTQ6IGZyb20gbmJhOiBzdXBwb3J0IE9wZW5CU0QgZm9yIGhyX3N3aW5zdAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAwYjU2OWZjY2VhOTQxNGM1MGNmZDZiMGU4M2UxODMxYmExMjkxY2UyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNzoxNDo0NSAyMDEyIC0wNzAwCgogICAgYWRkIG1pc3NpbmcgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIHVuZGVyIG5ldC9vcGVuLWJzZAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAxZDNjN2JlN2ZhN2EzOGZkM2ZjMzk3MjBiYjVjYjcwZjhiZDcxMTYwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNzoxNDoyMiAyMDEyIC0wNzAwCgogICAgYWRkIG1pc3NpbmcgcHJvY2VzcyBzdGF0dXMgdmFsdWVzIHVuZGVyIG5ldC9vcGVuLWJzZAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBmZjQzODQzM2FjYTA5NmJiYmVhMjlkZDMwZGZkNWM1NTIzNzYxYTcyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNjo1MDo0NiAyMDEyIC0wNzAwCgogICAgRml4IHJlYWwgbWVtb3J5IHJlcG9ydGluZyBvbiBCU0Qgc3lzdGVtcwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBjNDI5YTRmMzk4NGRhZTc5MWUzMDdkZjcwMjI1MWY5NmVmMDQ3ZDg4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAyOCAxNjo0OToxMCAyMDEyIC0wNzAwCgogICAgRml4IHJlYWwgbWVtb3J5IHJlcG9ydGluZyBvbiBCU0Qgc3lzdGVtcwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA0MWQ5ODBjMDE1NTY0ZGI3ZjIyZjc2MzE5MGY2MWFjMGQ1NmJhM2IyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEF1ZyAyNCAxNDozNTo1MyAyMDEyICswMDAwCgogICAgV2luZG93czogVW5icmVhayBETEwgYnVpbGQKCmNvbW1pdCAyNzkzOTIzYmZlMmIwMjZmY2FlYWY1MzhhZTUwM2YxMDVjYjMxNWJjCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAzIDIyOjI2OjIwIDIwMTEgKzAwMDAKCiAgICBhZGRlZCBtaXNzaW5nIFRMU1RDUCBtZW50aW9uIGluIHRoZSBoZWxwIG91dHB1dAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4yLnByZTMgLT4gVjUuNy4yLnJjMQoKY29tbWl0IDllYzVjNTk5NzgwMjUxZGNkMzE1NWY5YWM5ODA2ZWNlN2VkNmJhMjIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgQXVnIDExIDEyOjAwOjM3IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucmMxCgpjb21taXQgMzM1OGI2NWIxMWUyYzBlZTcxMmY2MDlmMDIwNzEyNjBmNzVmOWJiMwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBBdWcgMTEgMTE6Mzk6MzggMjAxMiAtMDcwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS03LXBhdGNoZXMKCmNvbW1pdCA0ODQ5YTQzMGRhYWZiOTFjN2E2MWJmYmJjMTdmOTI5OWU1OGZjZjY0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEF1ZyAxMSAxMTozOTozNSAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5yYzEKCmNvbW1pdCAxYmMyNjg0MjhlODI5ODUyYzllZjBhNzk1NTJjYTQwNDVhZGQyOGEzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDIyOjQyOjUyIDIwMTIgKzAyMDAKCiAgICBNYWtlIHN1cmUgd2UgaGF2ZSBhbiBpbml0aWFsaXplZCBrdm0gc3RydWN0dXJlIHdoZW4gcXVlcnlpbmcgcHJvYyB0YWJsZSBvbiBCU0QuCgpjb21taXQgN2U2N2M1MDM4YjZhYWJmZGExOTM5ZWE4MWQ5NDBiMjQwMDBjZmI1MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTQ6Mjc6MDggMjAxMiArMDIwMAoKICAgIFJlbW92ZWQgZXJyb3IgbWVzc2FnZSB3aGVuIGZpbGUgY2Fubm90IGJlIG9wZW5lZC4KICAgIAogICAgVGhpcyBzaG91bGQgYmUgaGFuZGxlZCBieSBjYWxsZXIsIG5vdCBpbiB0aGUgZnVuY3Rpb24uIFRoZXJlIGlzIG9ubHkgb25lIGNhbGxlciBub3csIHVkcF9lbmRwb2ludF9saW51eC5jLgoKY29tbWl0IDU5YjBkZTBiOGZhNzNlYjQwMzAwNmNlZTc1ZmY4NjUxZTE1ODVlMjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyA5IDE0OjIzOjE0IDIwMTIgKzAyMDAKCiAgICBGaXggY29tcGlsYXRpb24gZXJyb3JzIGludHJvZHVjZWQgYnkgY29tbWl0IGY5NWRmNjM0MWIxZDA2MjQ5NDQzZTUxNmI1OWE0M2NkZmEzZDQ3NzcuCiAgICAKICAgIFRoaXMgaXMgZW1iYXJhc3NpbmcsIEkgY29tcGlsZWQgdGhlIHNvdXJjZXMgd2l0aG91dCAtLWVuYWJsZS1pcHY2LiBTb3JyeSBmb3IgaW5jb252ZW5pZW5jZS4KCmNvbW1pdCA1ZDdlZGFkZDQ3NjE2ODBiNjZkMWRmM2JmZGU3Y2E1YjE2Y2E1YTE2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgOSAxMjo0NjozNSAyMDEyICswMjAwCgogICAgRml4IGNvbXBpbGF0aW9uIGVycm9yIGludHJvZHVjZWQgYnkgY29tbWl0IGY5NWRmNjM0MWIxZDA2MjQ5NDQzZTUxNmI1OWE0M2NkZmEzZDQ3NzcuCgpjb21taXQgNDNjOTdiYmFhZjIxMWY0YzdmN2M3MDRjZmNiOTAxZGZiZjgzNDg3NApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTI6MzA6MDkgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBMb3dlcmVkIHNldmVyaXR5IG9mICdFcnJvciBleHBhbmRpbmcgWFhYIHRvIDY0Yml0cycgbWVzc2FnZXMuCgpjb21taXQgOGU1Y2YyYTcyYTQ2Y2Q0ODNkMjJlNjI5MGE2YzhjNGMyNmFmNmFkMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTI6MjU6NDggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHJlbW92ZWQgY291bnRlci02NCBlcnJvciBtZXNzYWdlcy4KICAgIAogICAgVGhlc2UgbWVzc2FnZXMgZG8gbm90IHNheSBlbnl0aGluZyB1c2VmdWwsIGNhbGxlciBzaG91bGQgY2hlY2sgdGhlaXIgcmV0dXJuIHZhbHVlIGFuZCByZXBvcnQgaXQuCgpjb21taXQgZjk1ZGY2MzQxYjFkMDYyNDk0NDNlNTE2YjU5YTQzY2RmYTNkNDc3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTI6MDE6MjUgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiByZW1vdmVkIGVycm9yIGxvZyBtZXNzYWdlcyB3aGVuIElQdjYgaXMgZGlzYWJsZWQuCgpjb21taXQgMThkYWNlOGU0YTM2YjA4M2Q2ZWY3MTc3MzVjNjNlN2Y0MDIyNGRiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDkgMTA6NDE6NDUgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IGFkZGVkIENWRlMgKENlbnRyYVZpc2lvbiBGaWxlIFN5c3RlbSkgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZS4KCmNvbW1pdCA5MGY0MzFiNDVkMjE1MDY0MjdiYzBiZDFkNGVlNjllMGI4ZWEzMGJjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyA4IDIzOjEwOjUwIDIwMTIgKzAyMDAKCiAgICBVcGRhdGUgdG8gY3VycmVudCBNSUIgdmVyc2lvbnMKCmNvbW1pdCA5ZTdhMGI5ZTU4MGQzYjFlYTYxOThhNzQxNGM4MTZjMjNiMTIzYjEwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyA4IDIyOjI3OjE2IDIwMTIgKzAyMDAKCiAgICBVc2UgYSB3cmtpbmcgYXdrIGZvciBTb2xhcmlzCgpjb21taXQgMGUzOTIyYWUyMWU0YjdlYzUzODg2N2FmZDIyY2U3NGQ3NDFlMGYxYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgOCAyMjoxNzozNCAyMDEyICswMjAwCgogICAgZml4IHByb3RvdHlwZSBmb3Iga2xvb2t1cAoKY29tbWl0IGEyMjEwOTcxMWE2ZDFlYzE0YjZhM2YxY2FjMjIxZDcwMjYzZjEwNGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgQXVnIDggMjI6MDg6MTMgMjAxMiArMDIwMAoKICAgIGZpeCBwcm90b3R5cGVzIGZvciBrbG9va3VwCgpjb21taXQgYWMwNjI5NzJjNTg1MTc0Zjk1ZDdiYTg3YWE1ZWM1NGM0MmZkZWM1NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgOCAyMjowMDoyNiAyMDEyICswMjAwCgogICAgZml4IHByb3RvdHlwZXMgZm9yIGtsb29rdXAKCmNvbW1pdCA3Y2RkOGViZWY5NTA3ZmU3NjYxMDdjYTlmZWUwNTRjNDRjYzBiYWM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEF1ZyA1IDA4OjEzOjU5IDIwMTIgKzAwMDAKCiAgICBNYWtlIHNubXBfYWxhcm1fcmVzZXQoKSB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4gRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgMzdiYTdlMi4KCmNvbW1pdCAwMjNmNjFlYTc4M2JmY2M1M2ZlOTBhYTY2NTQ1YzVhZWEyZGI4MDYxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEF1ZyA4IDE2OjI2OjU0IDIwMTIgKzAwMDAKCiAgICBGaXggYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IGNvbW1pdCAwMjg2MTRlY2YyZDY3Mzk4Njk5ZGMzYmQ3ODQwMjlmMzM2MGYyZTEzCgpjb21taXQgY2Q4MjA5NDlhMTQ5MWFmMTAzYTg1NTVmNmJkYWUwNDg1MWYzZDI4NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgOCAxNjoxNjo0MyAyMDEyICswMDAwCgogICAgVW5kbyBidWlsZCBicmVha2FnZSBjYXVzZWQgYnkgY29tbWl0IDM3YmE3ZTIwYTUyMWZiZjA0NThhMGM3N2VlYTJlNWUzNmJkN2VjMGEKCmNvbW1pdCBmMTQzMDA4Y2NjNTdlYTEwY2JiODhhYjM1NTQ4MjJiMTdiNjI3MGFhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEF1ZyA1IDA4OjQ1OjQyIDIwMTIgKzAwMDAKCiAgICBNYWtlIGdldF9leGVjX291dHB1dCgpIHdvcmsgb24gYmlnIGVuZGlhbiBzeXN0ZW1zLgogICAgCiAgICBVbmRvIEFQSSBicmVha2FnZSBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA3Mzc0Yjg0ZmU0YzJlZjg0OTdmZGUzZGFlODBhNjlhYTg5ZWJhMTljLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy4yLnByZTIgLT4gVjUuNy4yLnByZTMKCmNvbW1pdCA4NDMyMmUwZGMyYTg5NzQ2NDY1NDJkOTg4MWJjMDFiNDNkYzNhMTJkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxNjoyNDowNyAyMDEyIC0wNzAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNy4yLnByZTMKCmNvbW1pdCA4ZmVjN2E4MWQ2MTMzYTVmMDVlZDM0YTVhZjk4MDZhZjVkMTI4MjIzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxNTo1Nzo1NiAyMDEyIC0wNzAwCgogICAgZml4IHRoZSBhc3NlcnQgY2hlY2sgdG8gYWxsb3cgZm9yIHNvbWUga25vd24gYXNzZXJ0cwoKY29tbWl0IGRmZGU2ZDJkZGQ1MTljOGMyYWUxNzg4Nzc0ZmRmOTBkOGJlYTAyYjEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDMwIDEwOjA4OjI0IDIwMTIgLTA3MDAKCiAgICBpbmNsdWRlIGVycm5vLmggYW5kIGRvbid0IHVzZSBjb250aW51ZSBvdXRzaWRlIGEgbG9vcAoKY29tbWl0IDdjZmZlMDIyMmNkOThhMjFlMzBmNDRjM2RmOWYwZDkwYmYwOTZmZTkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDE0OjEzOjUwIDIwMTIgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4yLnByZTMKCmNvbW1pdCAyMmFmN2ZkNDY3NzZhOGRiMjM2MmU4OGFjYjFiNjliMTY1YzAzNGI2CkF1dGhvcjogYmxlbnR6IDxibGVudHpAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6NTI6NDAgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGFpeDogUEFUQ0ggMzQwMzQzMzogZnJvbSBibGVudHo6IElzc3VlcyB3aXRoIGhyU1dSdW5OYW1lIGFuZCBQYXJhbWV0ZXJzIG9uIEFJWAogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA1MTZiOWY4Mjc1YjhkYjAzY2RjNDEwNzhlNjVjMjE3MDMwOWEzZjhiCkF1dGhvcjogSnVsaWVuIFBpbm9uIDxqcGlub25AdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6MjU6MzEgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IHBlcmw6IFBBVENIIDM0MTI5Mzk6IGZyb20ganBpbm9uOiBSZXBhaXIgdGttaWIKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgOGYyMzBmNDAxYzY0ZDgyMjg4M2FjNDQ0NjI0YTJjMmZkNzEyOGQ4ZQpBdXRob3I6IEhhcnNoYSBTaGl2YW5uYSA8bmFhbnVoc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxMzoyMjoxMSAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzU1Mjc0NTogZnJvbSBuYWFudWhzOiBmaXggdG8gc3VwcG9ydCAzMiBjaGFycyBmb3IgVkFDTSBuYW1lcyBhcyBwZXIgUkZDLTI1NzUKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgMzQwMDhkMzJhZWY0M2Q4YmJlMTAwMGZiOWJmOTQ2NDJjMDUxNGY2ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6MjA6MzEgMjAxMiAtMDcwMAoKICAgIGZpeCB0aGUgYWdlbnR4IHBpbmcgcGF0Y2ggc28gaXQgd29ya3Mgd2l0aCB0aGUgbmV3ZXIgYWxhcm0gc3RydWN0dXJlIG5hbWVzCgpjb21taXQgOTYyNjc2Mzk0ZDNmZTU1N2VhZDkxMDU3YjRkNzgwMjI2ZGMwZDZiMwpBdXRob3I6IE1pam8gU2FmcmFkaW4gPG1pam9zQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDMxIDEyOjQ4OjAxIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQxNDA1MTogZnJvbSBtaWpvczogc25tcC1icmlkZ2UtbWliOiBmaXggZm9yIGRvdDFkQmFzZVRhYmxlCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IDM3YmE3ZTIwYTUyMWZiZjA0NThhMGM3N2VlYTJlNWUzNmJkN2VjMGEKQXV0aG9yOiBWaW5jZW50IEJlcm5hdCA8dmJlcm5hdEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxMjoyNzoyOCAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0ODE2ODY6IGZyb20gdmJlcm5hdDogRG9udCBwaW5nIG1hc3RlciBhZ2VudCB1bmxlc3MgdGhlcmUgaXMgbm8gaW5jb21pbmcgdHJhZmZpYwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCAyYmU1ZmVhZGIwNTQwODQ2ZTBlM2FkYTI3ZWZiOTc4OTRhNGNiZDUyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAwNzoyOToxNyAyMDEyIC0wNzAwCgogICAgYWRkZWQgYSBkYXJ3aW4gMTIgdmVyc2lvbgoKY29tbWl0IDFmOWJjZDIxZTdjMmQ1ZWZmYjYyYWEwMWI3Yjg3ZTQzZGM4NjIxNGMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEp1bCAzMSAxNDo0MzoyNyAyMDEyICswMjAwCgogICAgRml4ZWQgU0NUUC1NSUI6OnNjdHBBc3NvY1ByaW1Qcm9jZXNzLCB0aGUgbGlzdCBvZiBwcm9jZXNzZXMgd2FzIG5vdCBpbml0aWFsaXplZC4KCmNvbW1pdCA0OGJlNWU4OWFhMDRhZGIwZGY3ZTA5NGIyZmU0NjMwMTU0MjlmYzk4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKdWwgMzEgMTM6NDg6MzEgMjAxMiArMDIwMAoKICAgIEFkZGVkIGxvZyBtZXNzYWdlIHdoZW4gaXBUYWJsZSBtaXNzZXMgc29tZSBpbnRlcmZhY2VzLgoKY29tbWl0IDc1MjNmMGYwMWJhNGRiNjVhYzE2NDdhMjMyMjhjZjA2YzBiNzJhMDMKQXV0aG9yOiBNYXJpdXN6IENlaWVyIDxtY2VpZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMzAgMTA6MTk6MzMgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDM1MzY2OTI6IGZyb20gbWNlaWVyOiBjcmVhdGUgYSB1bml0IHRlc3QgZm9yIHJlYWRfY29uZmlnIEFQSXMKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgYzA3YjhkOWIzNzcwYjYxNWM4ZTE2MmRiZGY3NjQzODA1ZjM3MmQ3NQpBdXRob3I6IE1hcml1c3ogQ2VpZXIgPG1jZWllckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAzMCAxMDoxODo0MiAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzUzNjY5MjogZnJvbSBtY2VpZXI6IEZpeCBmb3IgY2FsbGJhY2sgY2FsbGluZyB3aGVuIHVucmVnaXN0ZXJpbmcgY29uZmlnIGhhbmRsZXIKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNWMyNDI0ZjA3ZDg1YzBjNGY3OWQ2YzVmYWY2NGQ3ZjNlZTg2MTcyNgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMzAgMTA6MDg6NDIgMjAxMiAtMDcwMAoKICAgIGRvbid0IGR1cGxpY2F0ZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGRlZgoKY29tbWl0IDczNzRiODRmZTRjMmVmODQ5N2ZkZTNkYWU4MGE2OWFhODllYmExOWMKQXV0aG9yOiBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMzAgMDk6NDE6MTcgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzODM5NzA6IGZyb20geWFiZXJhdW5leWE6IEZpeCBjb21waWxlIGVycm9yIG9uIEZyZWVCU0QgOS54L1BPU0lYaWZ5IGF1dG9fbmxpc3QsIGV0YwogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCA2NzBkOTZlNzg2NTkwZmRkMzBhMTZhMzMwMGMwZWQ1YmQ2ZTUzMjE0CkF1dGhvcjogTWFyayBSdXNrIDx1c2VyX2lkPTM0OTg5NUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEp1bCAyOSAyMzozOToyMiAyMDEyIC0wNzAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0MjQ5MzM6IGZyb20gdXNlcl9pZD0zNDk4OTU6IFVzZSBORVRTTk1QX0RTX0FHRU5UX0FHRU5UWF9USU1FT1VUIGZvciB0aGUgZGVmYXVsdCB0aW1lb3V0CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGYxZWFlYzE1ZWY2MDNiOGNlNTQyOTMyZmZkYmQ4Nzg4YzNkMWFjYzUKQXV0aG9yOiBEYW5pZWwgSG9iaSA8aG9iaWRAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKdWwgMjkgMjM6Mjg6MDEgMjAxMiAtMDcwMAoKICAgIENIQU5HRVM6IGFnZW50OiBQQVRDSCAzNTMwNzk0OiBmcm9tIGhvYmlkOiBwYXNzL3Bhc3NfcGVyc2lzdDogdW5yZWdpc3RlciBNSUIgd2l0aCBjb3JyZWN0IHByaW9yaXR5CiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGQ3ODNhZDk5MGU5MTRjMGVlMWM5OGQwYTkzYTQyOWViMmIyZjQ5OTcKQXV0aG9yOiBEb3VnIE1hbmxleSA8dGVra2FtYW5lbmRsZXNzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSnVsIDI5IDIzOjI1OjQwIDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTI2NTk5OiBmcm9tIHRla2thbWFuZW5kbGVzczogQSBidWdneSBTTk1QdjMgYWdlbnQgY2FuIGNhdXNlIGEgbmV0LXNubXAgY2xpZW50IHRvIGhhbmcKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZTk4NTE1MjBjMThkN2VkMTcyNDA0YTM3ZGMwZGM3YTEzNmJmYWVkZApBdXRob3I6IERhbmllbCBFdmVycyA8ZGFuaWVsLWV2ZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSnVsIDI5IDIzOjE0OjE5IDIwMTIgLTA3MDAKCiAgICBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzNTQ4MjU3OiBmcm9tIGRhbmllbC1ldmVyczogZml4IGZvciByZWN1cnNpdmUgcHRocmVhZCBtdXRleGVzCiAgICAKICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKY29tbWl0IGU3YTM3Njc4YzJiNzM1OWFmZDQ0YTMwN2U4MjRjMWY3ZDdhMGM4N2QKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSnVsIDI5IDIxOjM1OjM1IDIwMTIgLTA3MDAKCiAgICBORVdTOiBvc3g6IHBhdGNoOiAzNTE0MDQ5IGZyb20gdHdvYml0cy1naXRodWI6IGZpeCBjb21waWxhdGlvbiBvbiBkYXJ3aW4xMQoKY29tbWl0IDEyMjE0MjZhYmFkMTViOWIyZmNlZThmMWUzMmFiNTJlZjI2OTI5NTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1bCAyNyAxNDoxODoyNCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogUEFUQ0hFUzogMzUyOTU0MTogRG9uJ3QgcmVmZXIgdG8gaW50ZXJuYWwgJ215JyB2YXJpYWJsZXMgZnJvbSBleHRlcm5hbCBzY3JpcHRzCiAgICAKICAgIEZpeCBwcm92aWRlZCBieSBMZXp6IEdpbGVzCgpjb21taXQgOWMwNmMyMjAyZGMwNTY3MDNjODA5NTlhMGVjYTlhNzE2ODRjMjhkZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVsIDI3IDEzOjI5OjMwIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0hFUzogMzUzNjQyMDogRW5zdXJlIHNuZC9yY3YgbWVtb3J5IGJ1ZmZlcnMgYXJlIHN1aXRhYmx5IGFsaWduZWQKICAgIAogICAgUGF0Y2ggcHJvdmlkZWQgYnkgVHlsZXIgT2xtc3RlYWQKCmNvbW1pdCA4OWI4MmM1NWY5ZWZkMmU4YWI4YzZkNjVmYTU2N2M1YjFmYWMxODQzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdWwgMjcgMTM6MTQ6MDcgMjAxMiArMDEwMAoKICAgICJJZGxlIiBwcm9jZXNzZXMgKGkuZS4gaW4gdGhlIHByb2Nlc3Mgb2YgYmVpbmcgY3JlYXRlZCkgYXJlIHByb2JhYmx5CiAgICBiZXN0IHJlZ2FyZGVkIGFzICJ3YWl0aW5nIGZvciBhbiBldmVudCIgdG8gYmVjb21lIHJ1bm5hYmxlIC0gaS5lLiAnbm90UnVubmFibGUoMyknCiAgICBUaGF0IGV2ZW50IGJlaW5nIHRoZSBjb21wbGV0aW9uIG9mIHRoZSBjcmVhdGlvbiBwcm9jZXNzLgogICAgICAgSXQncyBhcmd1YWJsZSB3aGV0aGVyIG9yIG5vdCB0aGV5IGFyZSBzdHJpY3RseSAibG9hZGVkIiwgYnV0CiAgICB0aGlzIGZlZWxzIGxlc3MgbWlzbGVhZGluZyB0aGFuIHJlcG9ydGluZyB0aGVtIGFzICdpbnZhbGlkKDQpJwoKY29tbWl0IDZlNzgwYTViZjBkNjRiZjQ3ZGZiZjQ3OWFlN2Y1NmMxMGZmODE2NmUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1bCAyNyAxMjo1Nzo1NCAyMDEyICswMTAwCgogICAgQ2xhcmlmeSBtZWFuaW5nIG9mIGhyU1dSdW5TdGF0dXMgJ2ludmFsaWQoNCknCiAgICBFbnN1cmUgYXJjaGl0ZWN0dXJlLXNwZWNpZmljIGFsdGVybmF0aXZlcyBkb24ndCBjb25mdXNlIGNvZGUgc3ludGF4Cgpjb21taXQgOTliMzUzZjcyNTNhNWJiMzhiODZmMzFjMjcwOGUxNmIzNGE0NmNlNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVsIDI3IDEyOjUwOjUxIDIwMTIgKzAxMDAKCiAgICBBZGRpdGlvbmFsIHBhdGNoIGZyb20gUGF0Y2ggSUQgIzM1NDMwMDAKCmNvbW1pdCBkMGUwM2ZlNGEyMzY5NDVkYWY0MmFmN2E0NzA5NGU2ODZmOWJkYjllCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdWwgMjcgMTI6NDE6MDIgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNTQzMDAwOiBWYXJpb3VzIGZpeGVzIHRvIFJtb24gY29kZQogICAgU3VwcGxpZWQgYnkgUGF0cmljayBSaXR0ZXIKCmNvbW1pdCA2NjMyYTJiOWI5ZmFkMWEwYjBkNmJhZWRmMmEyYjM5MWY1ZDRlOTE0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMjYgMTQ6Mzk6NDIgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IEJVRzogMzUxNzAzMDogRW5zdXJlIGxhcmdlIHRhYmxlcyBhcmUgd2Fsa2VkIHByb3Blcmx5Cgpjb21taXQgYjhkMTY2MDRkYmIyZjgwZWJlMjg1MjMyMmFhODMzNjFhMDMyMzc5NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDE0OjE5OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBhcHBzOiBCVUc6IDM1Mjk3Njg6IEJlIG1vcmUgY2FyZWZ1bCB3aGVuIHN0cmlwcGluZyBvZmYgbnVtZXJpYyBzdWZmaXhlcwoKY29tbWl0IDBiM2FkNDRlYzRjMWI5ZjQxZGMzZWY3MGU2YTM4YTUzZWYyNjhhZGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMzozNDoxMCAyMDEyICswMTAwCgogICAgRml4IGNvbW1lbnRzIGRlc2NyaWJpbmcgRnJlZUJTRCByZWxhdGlvbnNoaXBzCgpjb21taXQgOGNmN2E4OTE4N2E5OTZmYWZmMDQwNDE0OTg2ZmZhNWQ3OGQ1NjgzZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDEzOjIxOjU2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBidWlsZDogQlVHOiAzNTMyMjM0OiBGaXggdHlwbyBpbiBsaWJ0b29sIHNjcmlwdAogICAgKGFkZHJlc3NlZCBwcm9wZXJseSBpbiBsaWJ0b29sIDIuNC4yKQoKY29tbWl0IDQyNThkODUyY2E3YjZhZWFlOTNhZDczMDY0ZDQzYWE4MDdlYjYxMDQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMzoxNjoyMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogZG9jOiBCVUc6IDM1MzUyNjk6IERvY3VtZW50IHVzZSBvZiBbc25tcF0gZm9yIGNsaWVudC1zaWRlIHRvb2xzLgoKY29tbWl0IDI2ZWQ0MGNiZDA3Y2YyNzFhOWNmYzQ1MTdkOTY0Nzc0NzEyYWQ3N2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMjo1Nzo1NiAyMDEyICswMTAwCgogICAgU3VwcG9ydCBsb2NhbCByb2xsdXAgb2YgcGF0Y2hlcyB3aXRob3V0IGZpcnN0IHN5bmNocm9uaXNpbmcgd2l0aCBleHRlbmFsIHJlcG8uCgpjb21taXQgOTA0YzQ0MmQ2MGM1Yjk5YWFjZDdmNjAzMDdjMjg2ODRlZmFlODU0YwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDEyOjUzOjM3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IEJVRzogMzUzNTk2NzogRml4IG1lbW9yeSBsZWFrIC0gc25tcF97c2Vzc199ZXJyb3IgYWxsb2NhdGVzIHRoZSBvdXRwdXQgYnVmZmVyCgpjb21taXQgNTk3ZWNkYTY4ZWUyYjU4MGI2NjYyODg5NzdiMDRhYTEzMzIwNzUxNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgSnVsIDI2IDEyOjE3OjE0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM1NDA2MjE6IGRpc3Q6IEFkZCBtaXNzaW5nIFByb3ZpZGVzOiB0byBuZXQtc25tcC1wZXJsbW9kcyBSUE0gc3BlYwoKY29tbWl0IDQzZDViYTIyNGMzZjI5ZmQ4ZTdmZDFkMDYwYTE3MDQ1YWFkN2VmZjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMToyNTo0MyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogQlVHOiAzNTQxMDEyOiBGaXggaGFuZGxpbmcgb2YgZ2V0dGFibGUgY29sdW1ucwoKY29tbWl0IGJjMjkzYWNhZDhkMzQ4N2NkZGVmM2M3MGNlYTc0MzY4ZjM0ZDkzNTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IEp1bCAyNiAxMToyMDoyMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzU0Mzg2NDogUmVtb3ZlIGV4dHJhbmVvdXMgZnVuY3Rpb24gdHlwZQogICAgKGFuZCBmaXggYSByZWxhdGVkIHR5cG8pCgpjb21taXQgMDI4NjE0ZWNmMmQ2NzM5ODY5OWRjM2JkNzg0MDI5ZjMzNjBmMmUxMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSnVsIDI0IDE1OjM3OjE2IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgc25tcGQgZXhpdGluZyBzaG9ydGx5IGFmdGVyIHN0YXJ0IGR1ZSB0byBpbmNvbWluZyBzaWduYWwuCgpjb21taXQgNGQzODg5NWY0NTlhMWRmMjRmNjhjNGE2MGU0Y2FmNmE3NzhkOGMxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVuIDI3IDA5OjM1OjQ0IDIwMTIgLTA0MDAKCiAgICBDSEFOR0VTOiBzbm1wZDogcmVtb3ZlZCBsaW1pdCBvZiAnZXhlYycgYW5kICdzaCcgZW50cmllcyBpbiBzbm1wZC5jb25mCiAgICAKICAgIFVzZSBkeW5hbWljIChyZSlhbGxvY2F0aW9uIGluc3RlYWQuCgpjb21taXQgZGNlZWFjYzk5OGZlMjMyMjg4MmU3ZWVkZWMwYTcxYTc5ZGM0OTRhYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgSnVsIDI0IDA5OjAwOjIzIDIwMTIgKzAxMDAKCiAgICBEb24ndCBiZSBzdXJwcmlzZWQgaWYgdGhlcmUgYXJlIG5vIGNoYW5nZXMgdG8gdmFyaW91cyBmaWxlcwoKY29tbWl0IDU2YzNjMDc4MzM2Y2JmMWJmMDlmZDFiMDEwNzhhOTAzMDcxNzYxM2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSnVsIDExIDA4OjQ3OjEzIDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHIDM1NDIzMDc6IENvcnJlY3Qgc3lzT1JJRCBmb3Igc25tcE1QRFN0YXRzLiBUaGFua3MgdG8gRGF2ZSBWdWNpY2ggZm9yIHJlcG9ydGluZyB0aGlzLgoKY29tbWl0IDYxZWNlZGMwODNmODgxZGI4YTlhNTBkNTBiZGVlZDM2NjI0ZWQzMDcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSnVsIDExIDAwOjIxOjI3IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHIDM1NDIxODg6IENvcnJlY3Qgc3lzT1JEZXNjciBmb3Igc25tcFVzbU1JQi4gVGhhbmtzIHRvIERhdmUgVnVjaWNoIGZvciByZXBvcnRpbmcgdGhpcy4KCmNvbW1pdCAyZjllZGU0MTlmNDBlODQ4YTI0MjUzODkyODhjYWMwZTIzMzFiOTkyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBKdWwgMTkgMTc6MTA6NTIgMjAxMiArMDEwMAoKICAgIEZpeCBleGFtcGxlICdyc3luYycgY29tbWFuZCBmb3IgZnVsbCByZWxlYXNlcwoKY29tbWl0IDZkZDc4ODRkOTllNzU2ZTJmMjJiNjg4ODIzY2UxYjFkNTI2YWQxNjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIEp1bCAxOCAxNTo1OTo1OSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yCgpjb21taXQgOTc2Njk2YTEyOGU1N2I1MTJiZjdhZDQwMGQwMDIzNjhiNGE5YTg3MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDE0OjM0OjMxIDIwMTIgKzAxMDAKCiAgICBWNS02LXBhdGNoZXMgb3V0IG9mIFJlbGVhc2UgQ2FuZGlkYXRlCgpjb21taXQgNTdjNTY4ZDNkMzk4MTcyYzU1NDFmYjMxYmI3NWQxOGZjY2UyZTI2ZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDE0OjM0OjE1IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yCgpjb21taXQgNzNkOTA2YmM3Yzk4NTA2ZmEyYjRkNmQyOTBmN2IzYmViYTJlNGEwZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDExOjEyOjU4IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIKCmNvbW1pdCA0MmI1YWZiM2NkNmQwNmFkYjQyNmYxZGJhYTk4MzU4ZjJiMmU4YTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMTA6NDY6NDcgMjAxMiArMDEwMAoKICAgIFY1LTUtcGF0Y2hlcyBvdXQgb2YgUmVsZWFzZSBDYW5kaWRhdGUKCmNvbW1pdCA4YmQ0NDBjNDNlMzY1YTBiNzdkNDdmNTgyY2FkZTlmOTdjN2JmY2U3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMTA6NDY6MjggMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIKCmNvbW1pdCA2ZTA4NTVhMzE1NzE5ODQ5OTQxMWFjNTJiNDZkNWYzMmFhZDViOWZhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBKdWwgMTggMDk6NTE6MzIgMjAxMiArMDEwMAoKICAgIEFkZCBtaXNzaW5nIHJldHVybiB0eXBlIGluIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCgpjb21taXQgMDdkODI1ZThiYjM1ZWVhOWFjNmIxY2I4MmNiYjIzNGZlNjZiMWFiNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgSnVsIDE4IDA5OjUxOjMyIDIwMTIgKzAxMDAKCiAgICBBZGQgbWlzc2luZyByZXR1cm4gdHlwZSBpbiBmdW5jdGlvbiBkZWNsYXJhdGlvbgoKY29tbWl0IDVkYjcwMDM2ZWY2NzU2MzU2NDdlNWI3YzcyNTM0NTY4Mzg4MzY2NDcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDExIDE0OjU1OjM4IDIwMTIgLTA3MDAKCiAgICBkb24ndCB1c2UgLS1yZWJhc2UKCmNvbW1pdCBkNGMxNTQ5NTkzY2UyYzJjYWViOThlNWY4YWJmZDdhNWFlNWEwMjczCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdW4gMjcgMDk6MzU6NDQgMjAxMiAtMDQwMAoKICAgIENIQU5HRVM6IHNubXBkOiByZW1vdmVkIGxpbWl0IG9mICdleGVjJyBhbmQgJ3NoJyBlbnRyaWVzIGluIHNubXBkLmNvbmYKICAgIAogICAgVXNlIGR5bmFtaWMgKHJlKWFsbG9jYXRpb24gaW5zdGVhZC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMi5wcmUxIC0+IFY1LjcuMi5wcmUyCgpjb21taXQgZmZjZTQ5ZmIxYWI0YTc4ZDRmMjk0N2JlMDZkNjIwZjE0MjQ1MjhmZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKdWwgMTEgMTc6MTI6MzEgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucHJlMgoKY29tbWl0IGJkN2M3Mjk3MTg3ODE4ZTVlZWY3MzI3NjY3ZTRhODFmNmM5ZmM4OWIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDExIDE0OjU1OjM4IDIwMTIgLTA3MDAKCiAgICBkb24ndCB1c2UgLS1yZWJhc2UKCmNvbW1pdCBhNzE1MzEyZTJjZTQ5ZDRkYTkzZmMxNDBjYzM5ZmMxMDBiMGI3OTc4CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEp1bCAxMSAxNTo0NzoyMiAyMDEyIC0wNzAwCgogICAgdXBkYXRlZCBmb3IgdGhlIHByZXZpb3VzIDUuNy4yLnByZTEgcmVsZWFzZQoKY29tbWl0IDE3Mjc3Njg5YjYyOWY0NTg2ZDVkNzE0ZDg3Y2U2YmMxMWY4ODc2NjgKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSnVsIDExIDE0OjU1OjM4IDIwMTIgLTA3MDAKCiAgICBkb24ndCB1c2UgLS1yZWJhc2UKCmNvbW1pdCA2Nzg2ZmZjNzZmYWNmNzQ2YWZiNmFmMjUxNThmNzk0MDY1NmFiMzljCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEp1bCAxMSAwODo0NzoxMyAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRyAzNTQyMzA3OiBDb3JyZWN0IHN5c09SSUQgZm9yIHNubXBNUERTdGF0cy4gVGhhbmtzIHRvIERhdmUgVnVjaWNoIGZvciByZXBvcnRpbmcgdGhpcy4KCmNvbW1pdCBmMGUzNWQ2MWY5MjU4ZGM2MDhkYTliZjcxOGFmMTQ1N2E4NTlmYTE5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEp1bCAxMSAwMDoyMToyNyAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRyAzNTQyMTg4OiBDb3JyZWN0IHN5c09SRGVzY3IgZm9yIHNubXBVc21NSUIuIFRoYW5rcyB0byBEYXZlIFZ1Y2ljaCBmb3IgcmVwb3J0aW5nIHRoaXMuCgpjb21taXQgNTIwNmQyNWQ0Y2I5NGQ0YjBkZDMzMWE1YTQxMTNkNGQ4Nzc4MmM0MgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdWwgMiAxMjoxNDozOSAyMDEyIC0wNzAwCgogICAgYmV0dGVyIGRlc2NyaXB0aW9uIG9mIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IGY5Mjg1MzI4MTQ3N2VlNzI0YTUxYTk5NjdmMzdkM2YxZGQxYjBmN2UKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVsIDIgMTI6MDk6NTAgMjAxMiAtMDcwMAoKICAgIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbnMgY2F1c2luZyBhIHByb2JsZW0KCmNvbW1pdCA1YmUyNzM2ODc1MTY5MWZjMWFiNTVmZTYyYjQxMDZkOGQ5OWI4NzA0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEp1bCAyIDEyOjA2OjU4IDIwMTIgLTA3MDAKCiAgICBhZnRlciBwdWxsaW5nIGFsbCB0aGUgYnJhbmNoZXMsIHN3aXRjaCBiYWNrIHRvIHRoZSBpbml0aWFsIG9uZQoKY29tbWl0IDgyNTk2YTY5ZjVjZTUzZDVhNmYwYWY0MjE1Yzk4ZDYxODRkYWI0ZDQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxNDowNDo1MCAyMDEyICswMTAwCgogICAgVW5waWNrIG1lcmdlIGNvbmZsaWN0LgogICAgKE5vdCBzdXJlIHdoeSB0aGlzIHdhc24ndCBmbGFnZ2VkIHVwIGVhcmxpZXIgLSBvciBtYXliZSBJIGp1c3QgbWlzc2VkIGl0ISkKICAgIChjaGVycnkgcGlja2VkIGZyb20gY29tbWl0IGIwNWJkNzhmOWYyMzRiYjU3YTAwYjU0YzViZmIxZGUzMmEwOWY0YTQpCgpjb21taXQgNmEwNzVhZTQ5NGM3NmI4MmVlYTk2MzI3Y2Y1MjQyZGYwNDg3NDNkYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDE0OjIxOjA4IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMzCgpjb21taXQgYTM3ZTdlMDI5NDUxNDdiZmU2Y2FkYjk1NzE3MDZjNmIyZWM3NDNiZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDE0OjE3OjQyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMzCgpjb21taXQgYjA1YmQ3OGY5ZjIzNGJiNTdhMDBiNTRjNWJmYjFkZTMyYTA5ZjRhNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDE0OjA0OjUwIDIwMTIgKzAxMDAKCiAgICBVbnBpY2sgbWVyZ2UgY29uZmxpY3QuCiAgICAoTm90IHN1cmUgd2h5IHRoaXMgd2Fzbid0IGZsYWdnZWQgdXAgZWFybGllciAtIG9yIG1heWJlIEkganVzdCBtaXNzZWQgaXQhKQoKY29tbWl0IDRkMTU3NDJjNzUwYTk2YTRkYmIzZGE4NzQ3NDFhZTE1MjQ4OWY4ZDUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzo1ODowNyAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGY2YjVlMzM3NmVkM2E4ZTllYWY3NGI3ZDY4MjJiM2E3NjU3NzJlZTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEp1biAyMiAxMzo1Nzo1NiAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzMKCmNvbW1pdCA1Y2ZiMDgxMTEyN2E2NTNkZmYwZjRlNTNhZDYwMjllMjI5OGE2YzYyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mjg6MzcgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBlNzJlMjA1ZmRjZWY3ODdlZjg0MGM4YzkyOGVkMjczNTFhNjk1NDRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6NTg6MDcgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCBmNzlhNTRmMjQ3MjUwOGIxNjdkOTc3ZjM2N2MzODY0YjU2MjFlODlkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6NDI6NTMgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzMKCmNvbW1pdCA1NmVmNWYwZGI1MWNmZDU1MjI2ZjgyZjk0ZjNmM2QyNDUwZTRmZWI1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mzk6MzIgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzMKCmNvbW1pdCBhZjFkMDBhYjAyNDYyNzVkYWRiNWYwY2QzYTIzYTc3ZDVmNTU5OGNkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mjg6MzcgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBmMTg3NzZkNjNhNTE2MDIwMzE3ZTU4ODc1YWIyNDM1MmQ1ZGI4NjUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTM6Mjg6MjYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS41LjIucmMzCgpjb21taXQgZmUxMDc3OTRlNzQwMGQyMzllOGFmM2RhOGI0YTNmYmVmMDZiNWRhOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEzOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgMGY4NGZiY2Y3MTk5NWJkZGFmYWI1MDBkODdjOWM1YTZmNDYxYTczNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBGcmkgSnVuIDIyIDEyOjI5OjM0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ3OTc0MDogRml4IGhyU1dSdW5QZXJmIHN0YXRpc3RpY3MKCmNvbW1pdCAxZTNiYjYwNjBiZTYxNTZkM2ZmMzE2YzVhN2U0ZmQ3ZjA1ZTM3Y2ZmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBKdW4gMjIgMTI6MTE6NTYgMjAxMiArMDEwMAoKICAgIE5FV1M6IHNubXBkOiBCVUc6IDM1MzIwOTA6IEZpeCBoaWdoIGlmSW5kZXggdmFsdWVzIGNyYXNoaW5nIGhyRGV2aWNlRGVzY3IKCmNvbW1pdCBlODY2M2ZhYzhiODg2NjMyODI2Njk3MjZhMDhmMTZkYjE2YjVmNGRiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKdW4gMTggMTM6MzA6MjUgMjAxMiArMDIwMAoKICAgIFJldmVydCAiQ0hOQUdFUzogc25tcGQ6IGZpeGVkIHNubXBkIGV4aXRpbmcgc2hvcnRseSBhZnRlciBzdGFydCBkdWUgdG8gaW5jb21pbmcgc2lnbmFsLiIKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBiMTFhNGU5M2Y1MGQ4YTU0NGY4MzVmMzc2YzNhNGI4YzA2NDFhMzFhLAogICAgd2UncmUgaW4gUkMtcGhhc2UgYW5kIGNvZGUgaXMgZnJvemVuCiAgICAKICAgIChzb3JyeSBmb3Igbm9pc2UpCgpjb21taXQgYjExYTRlOTNmNTBkOGE1NDRmODM1ZjM3NmMzYTRiOGMwNjQxYTMxYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDExIDE2OjI2OjA5IDIwMTIgKzAyMDAKCiAgICBDSE5BR0VTOiBzbm1wZDogZml4ZWQgc25tcGQgZXhpdGluZyBzaG9ydGx5IGFmdGVyIHN0YXJ0IGR1ZSB0byBpbmNvbWluZyBzaWduYWwuCgpjb21taXQgYTU3MDIzOGQ1OGViNWE5OTZiNTZmMDFhMjdhMThkZjZmMzdkMGY2MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSnVuIDExIDE0OjIwOjI1IDIwMTIgKzAyMDAKCiAgICBNb3JlIHByZWNpc2VseSBkZXNjcmliZSAtYyBvcHRpb24uCgpjb21taXQgNDhjYzM5ZjFhYTBmYTZjZTk1NWVmNzZiMjVkYjhmOWRjYTA2YjgwZApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwOToyNzoxMCAyMDEyIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4yLnByZTEKCmNvbW1pdCA4MTAxODVhZTBiMGNkMmFkNGQ0MjRhMWJhNzc1ZWY1Y2VhZjUwZjAzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA5OjI0OjE5IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucHJlMQoKY29tbWl0IDYyNzE0NzFlMDEyODJmMzY3NTcyNGVhZjEzNThjZWIwZTk1ZGRkNGUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6NDAgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucHJlMQoKY29tbWl0IGZjYjc4MmFhODg5MzEzNGM3NDE0YTkyNmQ5MjY4NTk0ZjcyNWI5MTUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6MTggMjAxMiAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMi5wcmUxCgpjb21taXQgZTNiY2Q4N2M3MmZjZWE3NzA2ZTg2OGI1YWNlNzUyOTYwOTNmNzQ5NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA5OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGQ4MTNjZTJlZWVmYzY4MjI5Y2ZjYWYyMDYwMzI0NGNkZDZkMDlkM2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxNDowNzo1MiAyMDEyICswMTAwCgogICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKCmNvbW1pdCBmYTdiZDU4MWUzNzgzNjg1ZGIzOWM5YjRlYWY4NDdiZTVhYzg2ZmQzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTM6MTAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCAwNzM5ZTIzODJkMzExNDZhY2EzMjA1MjQ0Y2Y3MDc4OGI0MGE0MjhkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTE6NDUgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBkOWExNTQ0NWFhNzRmNTMxNmJmYzcxMWMxNTU4NDY3ODcyYzI5NThjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTA6MTIgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBiY2FiZDJjOTU0MmRiZWJkMWQzMTliNDQ5NDQxM2JkY2NhMDY2MTRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCBiNDczODk4YzBjNWFjOWViNDdjN2MwNWEzZjc0NWU0ZmYyYTc2YWFhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MjggMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMyCgpjb21taXQgMTMxNDI5ZTcwNjJmYmFhNjViODJhZmZlZDFmYjkyZGYyYzBjYzgxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgMWM4MTEwYjMzYjgxMDVjYTYxOTA5NDVhMzVmZTdhZTkwMzI1MmQ2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIxOjM4IDIwMTIgKzAxMDAKCiAgICBBdm9pZCBwZXJsIHZlcnNpb25pbmcgcHJvYmxlbXMgd2hlbiBzZXR0aW5nIHVwIHRoZSBidWlsZCBlbnZpcm9ubWVudAoKY29tbWl0IDUwOGVjZTE2ZTZmNmY0OTU2MmRhMjA0NzkyYWUwNjQ0MjY5OTk0ZDEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzoyMDo1OCAyMDEyICswMTAwCgogICAgRml4IGhhbmRsaW5nIG9mIGRpc3QvcmVsZWFzZSBtZXJnZQoKY29tbWl0IDViOGE4NTQ3YjFhNDdkMmY1YjIwN2Y0OGYyNDk2ZTQyNDFkOTAyYzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMToxMDo0OCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDZjMzI5MTRiZjI4ZDY5NWRmMzQ5ZGNhMjY5ZTQ4OGI1MDE3MDAzMTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNzoyMiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDlmNWE4MmE1YWZkYmIzZGFlYjJmZDQzN2EzMDlmMGI4ZDM1N2NmNGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNTozOSAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDM5MjAzZjI5NDc3YTNiZWRmMDEyZDQxMTM1ZDhhYmQ2YmNhZDA4YjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo1NDoyNyAyMDEyICswMTAwCgogICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDE3ZTc5ZWYwZmFkNzk2MDljNWJhMmZlYjRlOGI5ZWI1ZDdkYjY4ODYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IDU4MjFiZTViYmI0MDE4ZGVkMjgyZmJiYmQ0ODMwY2YyZWVhZGQ5ZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NTo1OSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzIKCmNvbW1pdCAzZjIxMTFkZTY3MzNhMDRlMTJkOTEwZDMwNmEzNGQ2NzFlMDA4NzYyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBjY2Y4ZmYyYzRkYjYwMTIyZDQxMzAyZTRhZWI3MDBlMGI4NjgxMDVmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgMjggMTA6MTg6NDMgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM1MjY1OTk6IERvbid0IGhhbmcgb24gcmV0cmllZCBmYWlsaW5nIFNOTVB2MyByZXNwb25zZXMKCmNvbW1pdCBjODFjODQ4Mzk5MDkxMWY0NzQzNWQzMDA1MjU1ZDkxYzM3YWI5MmIyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxNDowOToyNiAyMDEyICswMjAwCgogICAgRml4IEJTRCB0aGF0IGRvd25ub3QgYWx3YXlzIGxpa2UgSVBfU0VORFNSQ0FERFIgLSBzbyByZXRyeSB3aXRob3V0Cgpjb21taXQgZmZjZTFmMmRjMmY4YjMxYWJkMDFmOTNiMjZkYTc4ZjQ3MjZhMWU2NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDM6NTggMjAxMiArMDIwMAoKICAgIEZpeCBPUyBtaXNzaW5nIE1TR19ET05UV0FJVCAoQUlYKS4gQmFja3BvcnQgZnJvbSA1LjcKCmNvbW1pdCBjNTc1MjE2ODUwMTg1YjU2NDU0ZGFkMDI1M2UzMTY0OTc5ZTEzNTEzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxMzo1NjowMSAyMDEyICswMjAwCgogICAgRml4IG1pc3NpbmcgaW5jbHVkZS4gRml4ZXMgU0lHU0VHViBvbiBGcmVlQlNEOSB4NjQKCmNvbW1pdCA1ODA1ODc4NzQ5YzA4MDYyZGViZjBhOWQ3OThkMDhmYjkxNmNhYTJkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1heSAyNyAwNjoyMzoxOSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGRlYnVnIHRhZwoKY29tbWl0IGQxYTQyYmJjYzdiMTQ3MzBjOWE2ZDk5YzRmMDQ3MDk3ODQzYTU0OWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWF5IDI1IDA5OjAyOjI3IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUnVuIGxpYnRvb2wgLS1tb2RlPWZpbmlzaCBvbiB0aGUgcmlnaHQgZGlyZWN0b3J5Cgpjb21taXQgMWZiZjMzNzExYTE5ZWFjOTczOWFkMjNmNmY2MjUxZWFjYzQxZjFjNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWF5IDIyIDE0OjU0OjQ1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0g6IDM1MjU5OTg6IERvbid0IHVzZSBhbiB1bmluaXRpYWxpc2VkIHZhbHVlIGluIGVycm9yIG1lc3NhZ2UKCmNvbW1pdCAzMmMxNjg2YjY3ZGM4NWM0YTE4OTU3NjM2MzA2NTYwOWRmZWQ1ZTYxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTI6NTYgMjAxMiArMDEwMAoKICAgIEF0dGVtcHQgdG8gbWFyayByZWxlYXNlLWNhbmRpZGF0ZSBicmFuY2hlcyBhcyBzdWNoLgogICAgT21pdCBmaW5hbC1yZWxlYXNlLW9ubHkgc3RlcHMgd2hlbiBwcmVwYXJpbmcgcHJlTi9yY04gcmVsZWFzZXMKICAgIChSZWxpZXMgb24gYSB0d2VhayB0byB0aGUgTWFrZXJlbGVhc2UgcGVybCBtb2R1bGVzKQoKY29tbWl0IDRjNTYzM2YxNjAzZTRiZDAzZWQwNWMzN2Q3ODJlYzg5MTE3NTljNDcKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBmcmVlc25tcC5jb20+CkRhdGU6ICAgTW9uIE1heSAxNCAxMTo0MDowNiAyMDEyIC0wNDAwCgogICAgTkVXUzogc25tcDogQlVHOiAzNTI2NTQ5OiBDVkUtMjAxMi0yMTQxIEFycmF5IGluZGV4IGVycm9yIGxlYWRpbmcgdG8gY3Jhc2gKCmNvbW1pdCA2NWRkODNjMjI1NWVlNThlZGJmMGUyNTg2M2U1NWI1OGE0MTEzNjc5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDozMDo0MiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMQoKY29tbWl0IGFjNGJjNjVlMjkwOWYzYmQ4NWYzMmYwNGI1MDRmYTY1ZDJmNjQ1NTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjI4OjA2IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMxCgpjb21taXQgYjc0OTk0ODY0MTk1MTE5ZWRiNmUxOWM4NTE0N2ZhYzAwYmNiOTNlMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6MTM6NDYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMxCgpjb21taXQgOTEzNTAwOTJjNDZlNjZkMDZkNzQxNDNmNDgxNjQ3M2RiNGQyNTE2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTk6NTY6MzMgMjAxMiArMDEwMAoKICAgIE1hcmsgdmVyc2lvbi1zcGVjaWZpYyBjaGFuZ2VzIF9iZWZvcmVfIHB1c2hpbmcgdG8gY2VudHJhbCByZXBvc2l0b3J5Cgpjb21taXQgNzI0MWFjY2Q3MGI4MmQwZmNkNDRkNWE1MjM4YjJlZTk0NDU5MDBkYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NTM6MTcgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCA3Yzc5NmExNWExZDFiYjg1ZmVlYTk0MGJkNGUzNTE2ODc3OTIwOTE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MDo0OSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDA3ZTI2OGJmYjY0YjBlYzY0NWIzZjdlODcyNjY5ODRmOTIxN2NmMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjQ0OjM3IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMxCgpjb21taXQgMTZlYWFmNmMzYmExNDU5NmNhOWVmYWY0YjExNGYxYjcwOWY0MmI2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6Mjk6MDMgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCBjNzI5NDY5ZWYxMjE1NDkzMGNmOWQxNTk2N2UxNjE4NmZiNDQ1ZjMwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyNzoyMCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzEKCmNvbW1pdCAxNDI1NzFkM2NlYTA4ZjBjMDcyZDI0YzFkMzlhNDNjNzQ0NmY4Y2U3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCBlYmE4NmI2ZjdhZmYyNjFlZTBlNjEzMzRkZjcwZGU3MTU2ZTVjM2NiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCA1YzBmNjRkNmRiMmI1OTNmN2NjMGVkMmQ0ZjU1YjdjNTkyYjc3NGE4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoyNToxNSAyMDEyICswMjAwCgogICAgT25seSBvdXRwdXQgY3B1IHdhcm5pbmdzIG9uY2UuCgpjb21taXQgZWU1OGU0ODI3YjlmYTE2ZTY2MzVjYTAwM2U4YTRmMTFkY2I1ZmI3YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTc6NDIgMjAxMiArMDIwMAoKICAgIEZpeCBzcGVsaW5nIGluIGVycm9ybWVzc2FnZS4KCmNvbW1pdCAwM2Y0ODVkZjIyZjIwZTE0OWNmYWU5NGM1N2NiODJmZWVjYjVkNzRiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMjoxMSAyMDEyICswMjAwCgogICAgTm90IGFsbCBMaW51eGVzIHVzZSBycG0gKGRlYmlhbi91YnVudHUgY29tZXMgdG8gbWluZCkKCmNvbW1pdCA5MzA4MzgyMjRmNzgxNjk2YmQzNTIyNWYyMjU2OTM0NzQxNmYxYjE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMDoxNSAyMDEyICswMjAwCgogICAgQ2hlY2sgbmVlZCBmb3IgLWxtIHRvIHVzZSByb3VuZC9leHAKCmNvbW1pdCBhMDYwOWNmMWYzYTY5MTdkMjYzNzI1NzMyMjQ4Y2Q5MzdhNDVhZDk0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDA4OjQwOjQ0IDIwMTIgKzAyMDAKCiAgICBSZW1vdmUgbGltaXRhdGlvbiBvbiBjb25maWd1cmF0aW9uIGxpbmUgbGVuZ3RoLgoKY29tbWl0IDMwNTk3MzMzOGE2M2FlNTRjNWUwMmE4NjI2ZmJlOWE4MDY0ZGNiN2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDA6MzI6MTkgMjAxMiArMDIwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMuCgpjb21taXQgY2NhYjRlOWQzZWQ0MjRjMzlkMGRjMjdiZTYzZmE3NmM3NDYxZWE4MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwMDoxNToyMiAyMDEyICswMjAwCgogICAgSW50ZXJuYWxpemUgdGhlIG5hbWUgYW5kIGxpbmUgbnVtYmVyIG9mIHRoZSBjdXJyZXQgY29uZmlndXJhdGlvbiBmaWxlCgpjb21taXQgY2Y4NzRhZDdiOWRhZjRmY2MwZDQ2Y2RkMDM0NDc0YjQ3ODAwNTM0MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBBcHIgNiAyMTo0NzoyOCAyMDEyICswMjAwCgogICAgUmVwbGFjZSAjaWYgKEEpIEIgI2Vsc2UgQiAjZW5kaWYgd2l0aCBCLgoKY29tbWl0IGVmOWVhNjQxYmMyOTBlZWM1MDY4NWI2MDUxOWIzMWJlZThiMTRhNjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjA0OjA2IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IDM1YWJhMTk1OWRlMTE5ZjFmYjg5MjAzYzM3MTA5YWE2ZjBlMjFjNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjAwOjQwIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IGU0MWZiYWZmMThhYzkwOTVjZjRhNzM5YTA2ZWMzOWExYTZjY2ZkYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIwOjM1OjM1IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTIKCmNvbW1pdCAxMzdmZTU4MmQ2Y2M1NjExNDMwZGFiNDZlZjE0NGVmZDg0Y2ZjODAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBBcHIgNiAyMDo0Njo1NiAyMDEyICswMTAwCgogICAgUmV2ZXJ0IGNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCiAgICAoc25tcF9zdG9yZV9uZWVkZWQoKSBBUEkgaXMgbm90IGF2YWlsYWJsZSBpbiA1Lls0NV0ueCkKCmNvbW1pdCAyYjdlNjQyODhjMDFhOGEwNjIwMjZjNTIxY2EzMWE1ZTg4NWYzMGNjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjoxMjoxMiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCA3ZTk1ZDgwYjY5ODA1MTI1OTY0NWMwNzRhNTNmZmQyNjRhNmZhOTE2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjowNjo1NiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAxYTliN2I3YzAyZTJkZWVmZTk5NGQ1OTVhN2NjMWRkMmZmYmVlZTFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNTo1MToyMCAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggJ3JlY2VudCcgaGVhZGVyIHNodWZmbGluZwogICAgQmFja3BvcnQgb2YgYzUzZDhjMzUyNWY1OTBmMjIxM2QzNWIwZGE5NDEyMzg2MmYzZTM2NiBmcm9tIFY1LTUtcGF0Y2hlcwogICAgKFBhdGNoICMzMzYzMzA4IC0gb21pdHRpbmcgdHdlYWtzIHRvIGNvbmZpZ3VyZSkKCmNvbW1pdCAzZDlkZGI0MWUyNjNiYzFhNzhmOWY5NDQwYjhkNGFkNGY4NmM4MmUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDozNjoxOCAyMDEyICswMTAwCgogICAgRml4IHR5cG8KICAgIEJhY2twb3J0IG9mIDViNzAyYjAyNGI2MDE3NmQ3ZjU2OTliOTJlNTVkYTUwYThkZWFlNzEgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAwZDM1YzYwOTU2NGI2NmExZmZlODE1NTZkMzdhZGYwNTAzYzM4OWNlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDoxNTowOCAyMDEyICswMTAwCgogICAgUHJvdmlkZSBtaXNzaW5nIGRlZmluaXRpb24gb2YgTkVUU05NUF9QUklvCiAgICAodXNlZCBpbiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMpCgpjb21taXQgYTc5MTQxYTQxOTk1M2QwMTBhNjk4OWU4Yjg4ZjRkZjEyNzM5NGQzOApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDk6MTk6MjYgMjAxMiArMDEwMAoKICAgIEhlYWRlciBmaWRkbGluZyBmb3IgRnJlZUJTRCxPcGVuQlNELERyYWdvbmZseQogICAgQmFja3BvcnQgb2YgZjdiMGRlMTUxODAwMmM2ZThmOWI5NGVmM2RlYjg4ODJlMWU5MzM4ZSBmcm9tIFY1LTctcGF0Y2hlcwoKY29tbWl0IGFkZjc0YmY3NTNkMzk3MDM1N2FmZDYzMzgwMzI1NjI0MWQ5YzdiODcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDA4OjIwOjQ2IDIwMTIgKzAxMDAKCiAgICBGaXggSVB2NiBUQ1AgJiBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQgKGluY2x1ZGluZyBPcGVuQlNEKQogICAgQmFja3BvcnQgb2YgY29tbWl0cyA1Y2QxNTczNjI1NDcxYzA1ODNlOTA4N2FlYzY4MDJiNzcxNTdkNWEyCiAgICAgIGFuZCA1MGQ3M2YwZDU2ZmUyMmM1OTA1MzBiM2UzMDVkNDFkY2RhYzNjZTAwIGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgZDk1NTVhY2I5ZjQ3YzNhYThmZGU0YmMyMGE0NGQ3Y2E2MTgxYThhOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBNYXIgMjUgMTg6NDg6MTIgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIGRhbmdsaW5nIHBvaW50ZXJzIChiYXNlZCBvbiBwYXRjaCAzNTAzMjU5KQoKY29tbWl0IDgyYThiNDdlZTk2ZTVkMjlhMmI3YWMzY2EwMDcyMmQ3MzdkNWI0NzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMxOjU2IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IDljYThkOTM5YWIzOTMzMDZhMWQwZjE0NmM5Y2I3MGVhMGNiMTlkNDkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMwOjM4IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGNlY2Q0ODY5ZGViNjhmM2Q0YzcxZTc2OGQ1YjQwZGQ1NzY0NDY5MjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjI5OjMxIDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGExYTQ1MTNiZDNlNGU2MTQyMDBmNmRiNWEwMmY2MWQ2YzhlZWZiMzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyOCAwOTo0Nzo0NSAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzIChiYWNrcG9ydCBvZiBnaXQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgOWJkYmNjYTEyMmMzN2RhMzA0ZmM2YWE2OTM5NzI5NDc1ZjkwZjVmZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjMwOjQ5IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2stcG9ydCBvZiBHSVQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjQxOjI0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ5NTY5NzogU3RvcmUgcGVyc2lzdGVudCBzbm1wVGFyZ2V0IHRhYmxlIGNoYW5nZXMKCmNvbW1pdCAxZjc1ZjM3N2QwZGIwMTc1NGMwYzE2MWRjNDQzNzMwODFiZWVmNTIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MTQ6MDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFBBVENIRVM6IDM0ODkzODc6IEluc3RhbGwgRnJlZUJTRCAxMCBoZWFkZXIgZmlsZSAocGx1cyBvdGhlciBtaXNzaW5nIHZlcnNpb25zKQoKY29tbWl0IDNkNzJjOWU3OGYyYWQ4MTdjOWQxZDgyOTc3MzI3YmJiMjBkNjNhYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMTowNjozMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzNDg3ODY3OiBEb24ndCBza2lwIG1pc3NpbmcgaWZYVGFibGUgZW50cmllcyAoaWZDb25uZWN0b3JQcmVzZW50IEZBTFNFKQoKY29tbWl0IDEyOTA2NTc4YWIzMGNmNzc2ZDA4MGMwZWYzMDI1YjMwMzM0ZDc2NTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE2OjE3OjQ1IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEZpeCBldmVuIG1vcmUgbWVtb3J5IGxlYWtzCgpjb21taXQgY2NmZDVjYTZmZTEwMzEzZDYxODFkMjRiYmIxNzk3ODI1YTk3ZGExMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NTE6MTYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogRWxpbWluYXRlIGR1cGxpY2F0ZSBjb2RlCgpjb21taXQgOWZkYTI2Njg3MjJmMDhkZGJmZGQ2N2EyMjM5ZDhiMDIxZGI2NGE4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NDg6NDYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogV3JpdGUgYSBsb29wIGFzIGEgbG9vcAoKY29tbWl0IGNiYzE4ZWI3NjNiYTZkZjY5ZWY3MDY2OGE1NGQ3NWJmMzVlNzk1MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjI0OjA4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggbW9yZSBtZW1vcnkgbGVha3MKCmNvbW1pdCBjNzcyNTE5MjQ3OGFlYzAxOGZiNGFlZmE2MDk0NmUwNGE0MDZjMDBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MzoyNCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgcmVhZGluZyBmcmVlZCBtZW1vcnkgd2hlbiBkZWxldGluZyBhIHJvdyBmcm9tIGEgdGFibGUKCmNvbW1pdCBhNmJlNzM5NTY2ZjMxMGQ3NDQxZmQ3ZjU0OTg5ZTM5NDQ2ZjdhMTQzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MjoyOCAyMDEyICswMjAwCgogICAgRXh0ZW5kIERJU01BTi1QSU5HLU1JQiB0ZXN0Cgpjb21taXQgOGE5YjU3MjkxNDUzY2I4YWVjMjhlNzY2YzU5NDcwMWVkMTljNGZjNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMjYgMjE6MDM6NDEgMjAxMiArMDIwMAoKICAgIEZpeCBmb3IgRHJhZ29uRmx5IDMKCmNvbW1pdCBlNWM5YTMyZjc5ZWFjMmU4NTUyN2M5Y2YwNTA4N2NkYWU5YjM1YTZjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAyNiAyMDo1OTo1MyAyMDEyICswMjAwCgogICAgRHJhZ29uRmx5IG5lZWRzIF9LRVJORUxfU1RSVUNUVVJFUyB0byBjb21waWxlIGlwdjYgY29kZQoKY29tbWl0IGNkNDNiYzA5YTM5YmQ5N2ZmNWU3MTlhMmNlMjMyY2U0MjQ2MDBhNjUKQXV0aG9yOiBEYXZpZCBJbWhvZmYgPGRpbWhvZmZAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6NDc6MTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIIDM1MTA0NTQ6IEFsbG93IHRoZSB1c2Ugb2YgMC4wLjAuMC8wIGFzIGFsaWFzIGZvciBkZWZhdWx0Cgpjb21taXQgZTJmYzE1ZjllNWE2ZTNlMzZiZTVmNDg5NjAxY2JmNmJmNzMxOTE3ZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MjE6MzggMjAxMiArMDEwMAoKICAgIEZpeCBUQ1Agc3RhdGUgdmFsdWVzIGZvciBEcmFnb25GbHkKCmNvbW1pdCA0MzJmZTNkZGY1NGYyYzk4ZjkzNjk1OTQ2OWNiOWIwMTRkNTk5ZjA2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNToxMDo1MiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBwZXJsIHRvIGRvIHBhc3NfcGVyc2lzdCB0ZXN0Cgpjb21taXQgMzdkMjc3MGNmNTBjOTgwMjNlZWJhOTBlMjVkMzcyYmZmNzMxNmFkYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlci5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTowNjo0MCAyMDEyICswMTAwCgogICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQoKY29tbWl0IDg2YTk0OGQ4NjkxZTg4MWQ1NTU5MWRjYWJkZGMyNzM5Y2U3MmIzMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQG5iYS1saW51eC5zYi5zdGF0c2JpYmxpb3Rla2V0LmRrPgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDE6MzcgMjAxMiArMDEwMAoKICAgIFByb3Blcmx5IGZpbmQgcGFzcyBoZWxwZXJzIGZvciB0ZXN0aW5nLgoKY29tbWl0IGZlMjZhM2M0ZjI5ZjA0NmJmNjVlZDUyZTlkOTQwNTRiNjc1ZmJjNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjA0OjQyIDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IExpbWl0IHNvdXJjZSBjb2RlIGxpbmVzIHRvIDgwIGNvbHVtbnMKCmNvbW1pdCA3NDViYWZjZGNjOWM4ZTg0NjE2ZDRlMjc0ZGIyYTM4NGJmMjM0ZGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwODo1NTowNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5nIGltcGxlbWVudGF0aW9uIGluZGVwZW5kZW50IG9mIG50cGQgY2xvY2sganVtcHMKCmNvbW1pdCBkYTY5MjVlNjc2M2NhZGJlMDJmNGE4YmJmZTY4YTM2MmU1MzVhZDVlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMDozODozNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1NGRpc21hbnBpbmdtaWJfc2ltcGxlCgpjb21taXQgZmE2MDZkZDdjYTZhZmY5MzA4ZDRlOGIwMWJiY2RlMTQ4ZjQ0MTI3MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6NDk6MjEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZ2luZyBsb2NhbCBpbnRlcmZhY2UgYWRkcmVzc2VzIHdvcmsKCmNvbW1pdCA2MTdhODNiYTc5OTU3NWM4NGM2NmY2YjFjNDgwZWY2MzMxNjFhNjRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjoyODo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IGEgc29ja2V0IGxlYWsgdHJpZ2dlcmVkIGJ5IHBpbmdpbmcgYSByZW1vdGUgaG9zdAoKY29tbWl0IDYyNWY1NWMyNzJlYzYyODFlMzhkOGUzMGViNTNmZDUxNTE2YjAwYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjU0OjU1IDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdmFyaWFibGUgaW50byBhIHN0YWNrIHZhcmlhYmxlCgpjb21taXQgYjQ4ZjE5YWQ0YjRhYTY4YzNlMTZlMmE3MmRmMzdiOWMwY2QzNmM0YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6MjQ6MDcgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogQWRkIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMKCmNvbW1pdCBkNzRjYjM5NjYxNzU4OTI1NjJmNWUzYTliMTY4M2FjYmEyYzIyZTA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0NToxOCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IHNldmVyYWwgbWVtb3J5IGxlYWtzCgpjb21taXQgMGIxYTc3Njc0Njc4Y2M5YTE1YmUzZTc3MDBkM2NlZjY1MGVkMDJjNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTI6MDA6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvIG5vdCBzZW5kIHRoZSBjb250ZW50cyBvZiB0aGUgc3RhY2sgb3ZlciB0aGUgbmV0d29yawoKY29tbWl0IDEzOTAyM2NkM2FiNTE2MzFjYzEwZTI4NjZkNzFhYmNmOTlhZTRjMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjU2OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBEb24ndCBjYWxsIGV4aXQoKSB1cG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUKCmNvbW1pdCAxNjliNmFhYTdiNjE4MjdjYzFhZDBiM2FlZWFlM2E3MjI5ZGQyNWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1MzoyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IElQdjYgc29ja2V0IGxlYWsgaW4gZXJyb3IgcGF0aHMKCmNvbW1pdCBhMGJlMzJhZDA1M2E3MWZhOTYxMzRkNTVlNTQyYmIwN2Q0ZjAyOTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0Mzo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgdGhhdCBob3N0IG5hbWUgcmVzb2x1dGlvbiBmYWlsdXJlIGNhdXNlcyBhIGNyYXNoCgpjb21taXQgYmY5YmZmNjQ1NTY3ODdkNzY2ZWUyZWYyZDU3OGFmYjkyMDcxOWYzYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTE6NTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgcHJpbnRmKCkgc3RhdGVtZW50cyBpbnRvIHNubXBfbG9nKCkgYW5kIERFQlVHTVNHKCktc3RhdGVtZW50cy4KCmNvbW1pdCA1ZDc0YzAxMjQ1NTIzYTlkOGRiMWVkYTI3ZDFlZmFlMmViYzEwNGZiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODo0MDowMiAyMDEyICswMTAwCgogICAgTmV3IE1JQjogVlJSUFYzLU1JQgoKY29tbWl0IDViMzhmMDYyYjk5YjZlZjM2NzA4ZTJjN2RlNDk2NWEzMTkyNjEyZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjM0OjQ4IDIwMTIgKzAxMDAKCiAgICBGb3Igc2FmZXR5LCBzaXplb2YgdGhlIHJpZ2h0IHZhcmlhYmxlIGluIG1lbWNweQoKY29tbWl0IGU1ZjgyNzgyZGEwNWVmYTdjMGU2ZGMyYmY1YTQxZWUxMTg2OGY0NjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXggZm9yIGhyU1dSdW4gZGF0YSBmb3IgRnJlZUJTRAoKY29tbWl0IDgzMjc1NjVlODIzMjcwZDEwYTQ1MDQ1NjhlZGJlNWI1YWUzMjNhNTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMxOjU0IDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCB2YXJpYWJsZXMgZm9yIE9wZW5CU0QvTmV0QlNECgpjb21taXQgMTcwZjZmMDI3YmY0ZjkxNzRiNzA3MzUzMGRhNGQwN2Y0MDBiYmE1OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6Mjg6NTggMjAxMiArMDEwMAoKICAgIE1vdmUgZGVjbGFyYXRpb25zIGluIGZyb250IG9mIHN0YXRlbWVudHMKCmNvbW1pdCBkYmI0NTczYjY5ZmFlODVjZGM5MzFiMjg5MmI1Y2U0ZTViMTZiMzIxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyMzozNiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBrZXJuZWxfbmV0YnNkIGZvciBOZXRCU0Q2Cgpjb21taXQgZjExNjgxZjE1YWFkN2Q5YTUyZmEyOTgxMmVjYmI1MDdmMWI3ZmUyNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjM2OjM4IDIwMTIgKzAwMDAKCiAgICBDaGVjayBmb3Igb2xkIHRhcmJhbGxzIChhbmQgdW5wYWNrZWQgZGlzdHJpYnV0aW9ucykgYmVmb3JlIHN0YXJ0aW5nLgogICAgVGhlc2UgY2FuIGNvbmZ1c2Ugc3RlcHMgc3VjaCBhcyAibWFrZSBkZXBlbmRjaGVjayIsIHRoYXQgZG8gYSAnZmluZCcKICAgIG9uIHRoZSBjdXJyZW50IHRyZWUsIGFuZCB3b3VsZCBkZXNjZW5kIGludG8gc3VjaCB1bnBhY2tlZCBzb3VyY2UgdHJlZXMuCgpjb21taXQgNDcwZGNkNGI2YzNmZjExZmYwYTM1MzJhNzM0MGE1NmNmZmQ2OTA5OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjMyOjEzIDIwMTIgKzAwMDAKCiAgICBEb24ndCBydW4gIm1ha2UgZG9jczsgbWFrZSBtYW5jcCIgaWYgdGhlcmUncyBubyBNYWtlZmlsZSBwcmVzZW50Cgpjb21taXQgYzlhYzQyMDM0M2UxNmRmMmI3MDY1ZjViZjI3OTBkZjQ0ZTI0N2ZiYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjI2OjEwIDIwMTIgKzAwMDAKCiAgICBBbGxvdyBkaXN0cmlidXRpb24gYXMgcGFydCBvZiBub3JtYWwgTmV0LVNOTVAgcGFja2FnZXMuCgpjb21taXQgNTk5OWY2MGM1NzcyM2YyM2YzYzI1NGFmNTdmZGIxMGFmMzAxYThlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTggMTk6MDM6MDggMjAxMiArMDEwMAoKICAgIFJlZ2VuZXJhdGUKCmNvbW1pdCAyNzVkMjA0MDM2YTYwN2UzZGY1MGU4NDQ3ZDRiYzc1NWU5ZGIwMmZkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEF1ZyAyOCAyMToyOTowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIC0tZGlzYWJsZS1hcHBsaWNhdGlvbnMvLS1kaXNhYmxlLWFnZW50IHRvZ2V0aGVyIHdpdGggLS1lbmFibGUtbWluaW1hbGlzdAoKY29tbWl0IGJkY2NjODc1NzEwMjk1YWFjZjUwZjcxZWIxYzFkMmVlOTdmMzM2ZmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDIwOjEwOjU4IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgZGVjbGFyZSB0aGUgbG9jYWwgdmFyaWFibGVzIGZvciBvcGFxdWVfc3BlY2lhbF90eXBlcyB1bmxlc3MgdGhhdCBvcHRpb24gaXMgc2V0LgoKY29tbWl0IGI4MGE2N2RhMDUyYWRjYTFiNWE2NDRkYjgzYTc4MmUxNWMyMjM3YzMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDE5OjUwOjAzIDIwMTIgKzAxMDAKCiAgICBDaGVjayB0aGF0IHRoZSBkYXRhIGV4aXN0IGJlZm9yZSB0cnlpbmcgdG8gcmVhZCBpdAoKY29tbWl0IGVmYWU4NmJiYTU5NjI0OTFkNDJiNzdiOTM1MTkxYTNlYjI1ZGQ5MzkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgTWFyIDE0IDAxOjA1OjMzIDIwMTIgKzAxMDAKCiAgICBQYXJ0aWFsbHkgcmV2ZXJ0ICJNZXJnZSByZW1vdGUgYnJhbmNoICdvcmlnaW4vVjUtNy1wYXRjaGVzJyBpbnRvIFY1LTctcGF0Y2hlcyIKICAgIAogICAgQ29tbWl0IGQzNWExODYwMjE3ZTcyM2U0Zjg2NmRkOThlZjY2MjE2NjU5MzRjNGEgYWNjaWRlbnRhbGx5IHJldmVydGVkCiAgICAKICAgIDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAgKGhyaF9zdG9yYWdlIGlzIGEgcHJvcGVyIHJlcGxhY2VtZW50IGZvciBocl9zdG9yYWdlKQogICAgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMiAoQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzKQogICAgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YyAoUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUpCiAgICAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiIChwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZykKICAgIAogICAgYW5kIHBhcnQgb2YKICAgIAogICAgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYiAoQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcykKICAgIAogICAgVGhpcyByZXZlcnRzIHRob3NlIHJldmVydHMuCgpjb21taXQgYWFlZGQ1OWNjMmRhNzAxNTI3ZGMyZDI2MWQ0ZTlmODVmMTZlNzUwNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTEgMjA6NTc6MzggMjAxMiArMDEwMAoKICAgIEFsbG93IG1ha2UgdGVzdCB3aGVyZSB0aGUgc291cmNlIHBhdGggY29udGFpbnMgdGhlIHN0cmluZyBOZXQtU05NUCB0byBzdWNjZWVkLgoKY29tbWl0IDRiOTRkNzk2OTE4YTRlZWFlNjhhYjIxYWE1M2Q0NDRhOGI1YzI5MjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgTWFyIDkgMDg6MDQ6NTkgMjAxMiArMDEwMAoKICAgIFVuYnJlYWsgY29tcGlsYXRpb24gb24gRnJlZUJTRCA0Cgpjb21taXQgMTBmZTZiODMzMjRhZDM3ZDE4YjkzN2NjOGM2ZGU5NGRlNTM0ZDAzNQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTM6MDQ6MDcgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgZTExMjJlZGMxYTVmZTc5NzZiMDY1MDQ0MTM0ZDM5ZTdkYjU5ODVlYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6NDM6MTkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgYTYxM2QzYTgzNDkxMjIwNmQxYmE1OTcxZTQ0MWEzZWE2YjM2YWYyMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6MzM6MDMgMjAxMiArMDAwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5wcmUxCgpjb21taXQgMGVmMzRlNjUxOWRmY2I4MmM5N2RmODQyNzU0N2MwOGRjZjgxZTY5YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDggMTA6MTE6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBzbm1wZCAnLWQnIG9wdGlvbi4KICAgIAogICAgTm93IGl0IGR1bXBzIHBhY2tldHMgYWdhaW4uCgpjb21taXQgOGU2OTc0MmYxNDNlNGZjMTExOTZlNWIyZWQ2NmM4ZjdmNTNmZDAyZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MjEgMjAxMiArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMQoKY29tbWl0IGM0ZTAwYjhjM2UxMDEwY2RjYWI1ZTZjMDJkNjBkNzVkZjljNmRjZjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciA2IDA5OjI0OjA1IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IDM5NDkwMTA0YTNhYjU4MjM1YWFjZTJmOWQ4NzFjMjY2ZGM0NDg1ZWUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCA0YTJlNWJjZDU2Y2QyYWZiMzZlYjE1ZDc1NGUyZmVlODg4ZGQ1MGMwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA1IDIwOjU5OjM4IDIwMTIgKzAxMDAKCiAgICBocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZQoKY29tbWl0IGNlODU4MzI5MzJjY2Q5MTZjNDIzMTkxMTRjNDA4ODVhNDY2YTlkMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDUgMjA6NTY6NDAgMjAxMiArMDEwMAoKICAgIE1vcmUgZml4ZXMgZm9yIFNvbGFyaXMgc2gKCmNvbW1pdCAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDE1OjA4OjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MgaW5zdGVhZCBvZiAwLjAuMC4wLiBNYWtlcyB0ZXN0IFQxNjBzbm1wbmV0c3RhdCBwYXNzIGFnYWluLiBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhLgoKY29tbWl0IDUxODkxN2U5ZjM5ZjdhOWQzYzNiZjNhODY1ZThhYzBlMzAyNmQ2MDAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTQ6MDQ6NTQgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KCmNvbW1pdCAyNjUxOTA5Y2NjZWFiZmNmYWRhZjk0MmMwMjQ1MGUyOGZlODM3ZGM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE5vdiA5IDEyOjA0OjA0IDIwMTAgKzAwMDAKCiAgICBQYXNzZXMgbm93IG9uIE1pbkdXIHRvby4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk2NTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTQxZjExNWU0MDMwNGM5NDFiYTE3ZDY3ZTI0NzEwNzIyZDkwNzQxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMzozOToxNyAyMDEyICswMTAwCgogICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC13IGFuZCAtcSBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZS4KCmNvbW1pdCA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjIwIDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6IFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlIGlmIGl0IGlzbid0IG5lZWRlZC4KCmNvbW1pdCA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjIyOjMxIDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6IEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtcSBhbmQgLXcgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMnIGRlZmF1bHQgcGF0aCBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlc2Ugb3B0aW9ucy4KCmNvbW1pdCAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjM5IDIwMTIgKzAxMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDQ0YWEyNjU4OTFjZDU2M2Y3ZjQxMTRlZjI1ZGNmN2FhZjNiMTRlOWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCBkYWU0ZTE2YmU4NjExNzg2MWY2M2QxYTJmOTgxYWQzNjE0MThmNWM2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgMjhmNjIyNmYyZTIyOGI4Y2EyNDg0ODk3MzVmODY1MDJiMmNjZTBhMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDQwMDIyYTY5Nzk1ODI1OWNjZmJiM2ZlZDQ0ZWIzYzQ3MmY1ZTgzN2UKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWFyIDQgMTA6Mzc6NDEgMjAxMiArMDEwMAoKICAgIFNvbGFyaXMgc2ggZG9lcyBub3QgdW5kZXJzdGFuZCAidGVzdCAtZSIKCmNvbW1pdCA3NzNhZjBjNDJlMDc3YmViZGFlY2YxYzBjYWYzOTMyODVhNzY4OGYxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE3OjE5OjMwIDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCBuc3JvbGx1cCBjb21wbGljYXRpb25zCgpjb21taXQgZWU3MTA0OWMzZTIxYzFkMGUzNDI0Mjk3MTM2NjUyYmJlMGUzOWQ4NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMyAxNjo0OTo0MSAyMDEyICswMTAwCgogICAgbWliZ3JvdXAvaWNtcC5jOiBhZGp1c3QgaWZkZWZzIHRvIG1ha2UgaXQgY29tcGlsZSBvbiBCU0QncwoKY29tbWl0IGNlOTYwMDM2MWU2NjVkZGUxN2FmOWQ4YWIxNmQ3Y2U4NWRjMDU2NDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzk6NTUgMjAxMiArMDEwMAoKICAgIGRvdDNTdGF0c1RhYmxlIGhhcyBidWdzIDotKAoKY29tbWl0IGRmZmFjZjZmYTA3NTVlMTcwMGNiYWMyNWI4NDQxODVhYmQ4MDdhMGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzg6MTAgMjAxMiArMDEwMAoKICAgIHBhc3NwZXJzaXN0IHRlc3QgbmVlZHMgL3Vzci9iaW4vcGVybAoKY29tbWl0IDg3MjY5OTVjN2E4YWVmNjc0YzRmMTY0YjE4NzFjMzdiYmRjZGFkNTAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzY6NTggMjAxMiArMDEwMAoKICAgIGdyZXAgLXcgZmFpbHMgd2l0aCBPcGVuQlNEIGFuZCBTb2xhcmlzIDEwLTY0Cgpjb21taXQgMWViNDc0NWIyM2NjM2E4Mzk4NjRlN2Y2ZWEyODM1NWIwNTY2ZWI2NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNTo0OSAyMDEyICswMTAwCgogICAgU29sYXJpcyBuZWVkcyAvdXNyL3hwZzQvYmluL2dyZXAgdG8gdW5kZXJzdGFuZCAtcQoKY29tbWl0IDk5NTRiNGI3NDFmZDhjNjNkNjEyOGJkMDUyNzI5OGM4ZTRlOTg5ZmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzQ6NDUgMjAxMiArMDEwMAoKICAgIE1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBwcm9wZXIgc3JjZGlyIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcwoKY29tbWl0IDc4MzY5MDAyYmUyNzExZjBhYTg3NmI2NGE0ZTEwYjA5MGNjMjQxY2QKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzM6MzEgMjAxMiArMDEwMAoKICAgIE5vdCBhbGwgbWFrZSB2ZXJzaW9ucyBkZWZpbmUgJChSTSkKCmNvbW1pdCA5NDI0NWIyOWEzY2RhODk0NzVjNmVhYjVkOTQ5M2M2NjU3ZmYzOGUzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjI0OjI0IDIwMTIgKzAxMDAKCiAgICBNYWtlIGF1dG9jb25mIDIuNjggaGFwcHkKCmNvbW1pdCA0NGFjZDZjMjg1ZmI1NjE0YjRjOTYxMWIxYWJkZWNhOWRkMjhlNGJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjEyOjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggc3BlbGxpbmcgb2YgbWliIG1vZHVsZSBmc3lzX2dldGZzc3RhdHMKCmNvbW1pdCAxZmExZmVlMzY5M2Y2N2I4MjAyMjM4MDZiM2Q3M2FmZDRjNTBlYzE4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAyIDAxOjM3OjIwIDIwMTIgKzAxMDAKCiAgICBTaWxlbmNlIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCA5MzI2M2I5OGE1ZGIzNDRjZjJjNGQ0ODljNDM5NzFlN2IyOWNkYjAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMzozNzoyMCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA1YTE3NTQyOGI5NzNkMmVhODU1M2UyOWZlY2Y5NGNmMTU2NmFhODU4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0ODoxOCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCAzNjQyNzZhMWM1YWE2NmNhYTIzZWI1YjdmMTExZmRlYjVhZjcxZmE3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0NToxMCAyMDEyICswMDAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA3MzU5ODM0MDE3MmVmZjc1NzI5YTZkNTcxOTJiODE3MWQ1YmJmMDBlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0Mjo1NiAyMDEyICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5wcmUxCgpjb21taXQgZjMyMTQ0MDI2NzJjYTE5OWZkNTMxZTY2MTIyYmY5NmM0ZDlhNGViNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6MzkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgMmU3NGFjYjZmMTllNDcyOWNlZGUwYWI0M2U5MzE5NjFjYjIzYWFlYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwOToxODozOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IERvIG5vdCBpbnN0YWxsIHRoZSB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgdGhhdCB3ZXJlIHJlbW92ZWQgaW4gNS43Cgpjb21taXQgYjcxMDk2NDZiOTVhNzA3MTNkMWFkOTkxZDQxYmNjZDU3YzBiYjNlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwODo0ODo0OCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIGludHJvZHVjZWQgaW4gNS42Cgpjb21taXQgNDMyY2JiN2E1NTAxYWI5MGQ2NmQwYTgzZTczMWU3MzQzYmMwNGIzNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBGZWIgMjUgMTA6MTM6MTUgMjAxMiArMDEwMAoKICAgIENvcnJlY3QgdHlwb3MKCmNvbW1pdCA2YTZjOWJiYzc1ODRmMTk2YTExODVjYzE5MzUyMDRmMTIwNjgxMWVkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEZlYiAyOSAwODo1NTozNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzCgpjb21taXQgZDUxNWUyYTZlNGMyYTFjNGQ4NDczNGNjN2IyZDBiMmZjNWE4OTRhZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjU2OjIxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ4NzkxOTogRml4IGNvbXBpbGF0aW9uIHdoZW4gY2FjaGluZyBpcyBkaXNhYmxlZAoKY29tbWl0IGFmODM2OGVkODg5OGE3OGQwODY4YjQ3YWY0NmJjOWRiMDdkMWM3NjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNTo1MDo1NiAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQxNDc3MzogRW5jb2RlIGludGVnZXIgdmFsdWUgdXNpbmcgQVNOX0lOVEVHRVIKCmNvbW1pdCAxOWUyNzE1ODA3ZmUwNmZkMGJhZWRmODgxNjUwMTFhZWU5MzNlNzU1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTQ6MDU6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IG1hbjogQlVHUzogMzQ5MDcwODogQ2xhcmlmeSB1c2Ugb2YgY29tbW9uIGNvbW1hbmQtbGluZSBvcHRpb25zCgpjb21taXQgNjVmNzk2MmY5MzJjOWI3NWM1YmJiYjA0N2QxZTI2YWU2MDk3OGU1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEyOjIzOjM0IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ4OTYzMTogRml4IGluY29ycmVjdCBoYW5kbGluZyBvZiBVQ0QgbW9uaXRvcmluZyBmbGFnCgpjb21taXQgYWMxNjYwNTFiNmEwOTJkZDRhNTk0MzI2ZWM4NWUyZjY5OWI2MjU0NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDExOjU3OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBCVUdTOiAzNDc0NTkwOiBEb24ndCBtYXRjaCB1bmRlcnNjb3JlcyB3aXRoaW4gdGhlIHNvdXJjZSByb290IGZpbGVuYW1lCgpjb21taXQgODc5YmY3MDc5ZDM0ZmE0NmY2ZmNmNTRhMDFjODUwMGJlYWVjZTU5YQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjQ0OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ2MDM2NDogRml4IHVzZSBvZiBibG9jayBmYWN0b3Igd2hlbiBkZXRlY3RpbmcgZXJyb3IgY29uZGl0aW9ucwoKY29tbWl0IDAzNGYxYzU3MmY2ODNlYTQyODU4MzA3NDQ3MWU1ZDVkMTNiNTE4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDoyMjoyMCAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHVzaW5nIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IDM2NDIzZTIxMGJmYjY1ZWYxMjFjNmE2NmFlYzQzOGM3YzIzN2QzZGYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDowMzoyNSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDU0MTY4OiBjb25maWd1cmU6IEZpeCBidWlsZGluZyB3aXRoIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IGVlZDBiY2JjNDNmZWExODI1OWYwZjYzYjIwODFiNmQxMDUzNWEwNTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAwOToyNzoxMSAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgYmFieS1zdGVwcyB3aGVuIGNvbXBpbGVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0LgogICAgSW5zcGlyZWQgYnkgYnVnICMzNDU0MTY4Cgpjb21taXQgZWM2YTIzMDMwZTVhMjA3MmMxOWMxOGMxZDljMTI0Mzg3ZGE1NmI3YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTg6NDI6NTggMjAxMiArMDAwMAoKICAgIEFkZCAtbHJ0IHRvIE5FVFNOTVBMSUJTIHN1Y2ggdGhhdCBjbG9ja19nZXR0aW1lKCkgY2FuIGJlIGZvdW5kCgpjb21taXQgZjEzMzIwNTAwMjk0YmIyNDBmNjNjNmRkN2QyZTlhMjIwOGViNzQwZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE2OjUyOjUxIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbXBpbGVkIHVzaW5nIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IGM0Mjc2YjYyMzJjMjkxNDVjMDM5ODg0ZTZiNWE2YjZkYTRiOTM4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNTo1NDo0NSAyMDEyICswMDAwCgogICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0IChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKCmNvbW1pdCAwMWM5MzBlZGNjMjU3MDBkNmI1ZmIwMzc2ZjU1YTI2NDI1ZTEzZmIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTU6MTc6MjIgMjAxMiArMDAwMAoKICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAogICAgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQoKY29tbWl0IDk0ODRkODMyMDNjNGUyZDgyMDQxNmJlNjY1ZmE4MzNhYTcwNDQ0ZDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDI0IDE0OjAwOjMyIDIwMTIgKzAxMDAKCiAgICBSZXdvcmsgY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMuCgpjb21taXQgMmI3ZjEzNDk1MjI4NjM1ZDgxNmU1OGIyMTc0ZGMxMjRkZDBjZjM5ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjQgMDc6NDM6MjIgMjAxMiAtMDgwMAoKICAgIHNldCBNRVJHRV9BVVRPRURJVCBiZWZvcmUgbWVyZ2luZyB0byBhdm9pZCB0aGUgZnV0dXJlIGdpdCAxLjcuMTAgZm9yY2VkIG1zZwoKY29tbWl0IGUxYjkxMGIwYmU5MzQzNTg2YWU5ZWRiYTZmNDYwNDBhZjMxNWZjZGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjI3OjU0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogaW5pdF9hZ2VudCgpICsgaW5pdF9rbWVtKCk6IFJldHVybiBhbiBlcnJvciB2YWx1ZSBpbnN0ZWFkIG9mIGludm9raW5nIGV4aXQoKSBpZiBhY2Nlc3MgdG8ga2VybmVsIHZpcnR1YWwgbWVtb3J5IGlzIGRlbmllZAoKY29tbWl0IDQ2M2VlZDIxMjBmOWQxOTFiYzIyNjczNDk2YTQ5ZTgxNzQ2NjRlNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjAzOjMxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgc3ltYm9sIE5FVFNOTVBfRVhJVF9PTl9CQURfS0xSRUFECgpjb21taXQgYzM2YWI3MWE0ZTA5NmYxNmNjNWE1NTUzM2YwODBjOWE5NDAwOTkxNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDg6NTM6NTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IHNubXBkICsgYXBwczogU2VuZGluZyBVRFAgcGFja2V0cyB3b3JrcyBhZ2FpbiBmb3Igbm9uLXJvb3QgdXNlcnMKCmNvbW1pdCBlZGViZGRiYTkzMGY4YjE0NzJmYTBiZDIwZmM0MTNlZjhjZjQ2NGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyMSAxMTozMTo0NiAyMDEyICswMTAwCgogICAgdGVzdGluZy9SVU5URVNUUzogRml4IGEgYmFzaGlzbQoKY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDIwIDE2OjU4OjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgJWxkIHZlcnN1cyB0aW1lX3Qgb24gc3lzdGVtcyB3aGVyZSB0aW1lX3QgaXMgYSBzeW5vbnltIGZvciBsb25nIGxvbmcgaW5zdGVhZCBvZiBsb25nLgoKY29tbWl0IGQ4OTc4ZWNjODIxMWJlN2MxZTc5MDVmMWUyMTViYjA2ZGVkMjY2YjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgRmViIDIxIDEyOjMyOjI1IDIwMTIgKzAxMDAKCiAgICBGaXggc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMgZmlsZSBoZWFkZXIKCmNvbW1pdCBhYTc2NmQxOTZlNTI4N2Y2Y2E3OWI1OGEzNDViMDI0MjYwYWJhMzU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyMCAxNzowNzoxMyAyMDEyICswMTAwCgogICAgSUYtTUlCOiBkbyBub3QgdHJpZ2dlciB1bmRlZmluZWQgYmVoYXZpb3IgKD4+IDMyIG9mIGEgMzItYml0IHZhcmlhYmxlKSB3aGVuIHVwZGF0aW5nIGEgY291bnRlciBhbmQgaWZpX2lwYWNrZXRzIGlzIGEgMzItYml0IHZhcmlhYmxlCgpjb21taXQgYzNmYjZkZDllNmI5OWU5NTQyNDkzMTg4OTg3ODcxZmM1MDE3Y2IzYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDk6NDU6NDUgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgb24gc3lzdGVtcyB3aGVyZSBtb2RlX3QgaXMgdW5zaWduZWQKCmNvbW1pdCBmOGEzZWYwZDNkNGU1MzAyNzk5MDAxMDEwNDliOGRlOThhNDRhNmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjQ4OjUyIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliICsgc25tcGQgKyBzbm1wd2FsazogQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0IG5lZWRzIHJlbGF0aXZlIHRpbWUKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHN1cmUgdGhhdCB0aGUgcmFuZ2Ugb2YgdGhlIFNOTVB2MyB2YXJpYWJsZSBzbm1wRW5naW5lVGltZSBpcyAwLi4yMTQ3NDgzNjQ3IG9uIGFsbCBzdXBwb3J0ZWQgc3lzdGVtcyBpbnN0ZWFkIG9mIDAuLjQyOTQ5NjcyIG9uIHNvbWUgc3lzdGVtcyAoaS5lLiB3cmFwYXJvdW5kIGFmdGVyIDQ5NyBkYXlzKQogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygpLCBuZXRzbm1wX3NldF9tb25vdG9uaWNfbWFya2VyKCksIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCksIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQogICAgQ0hBTkdFUzogc25tcGxpYjogRGVwcmVjYXRlIGF0aW1lX2RpZmYoKSwgYXRpbWVfbmV3TWFya2VyKCksIGF0aW1lX3JlYWR5KCksIGF0aW1lX3NldE1hcmtlcigpLCBtYXJrZXJfdHRpY2tzKCksIG5ldHNubXBfbWFya2VyX3VwdGltZSgpLCBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKCksIHRpbWV2YWxfdHRpY2tzKCksIHVhdGltZV9kaWZmKCksIHVhdGltZV9oZGlmZigpIGFuZCB1YXRpbWVfcmVhZHkoKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIHN0cnVjdCB0aW1ldmFsIG1lbWJlcnMgb2YgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIGEgd2FsbCBjbG9jayB0aW1lIGJ1dCB0aGF0IGRvIG5vdyBjb250YWluIGEgbW9ub3RvbmljIGNsb2NrIHZhbHVlCgpjb21taXQgYzE5NzYwZjMzMzNjOTJmYWM1ZDUwZTk3NjhjZGY5MzkyMThiYzQ4NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBGZWIgMTUgMDk6NDU6MDMgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcHYzLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgoKY29tbWl0IGE2ZGIyMzk5NDVlMTk1ZGU1YTkwZmExODM3MDBiMjdhNmVjYjI4ZDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDcgMDA6MTE6MTQgMjAxMiArMDEwMAoKICAgIEZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBmcm9tIHJlY2VudCBkZWNsYXJhdGlvbnMgcGF0Y2gKCmNvbW1pdCAwZmJiYjlhOWUyOTA2YTdhZjk1Njk1NzA2MWQ0ODU4NzQ0NjJhZWE5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjQzOjA0IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgbWl4IGRlY2xhcmF0aW9ucyBhbmQgc3RhdGVtZW50cwoKY29tbWl0IGYzMDhkNWJhZmIwNWQ3OGVkNDAzMGM0ZWNmZjMyNGI2Y2JkYTY4MGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAoKICAgIEZpeCB0d28gY29tcGlsZXIgd2FybmluZ3MgaW4gYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMKCmNvbW1pdCA0NmYwZmMxYjdmYzI2YTIyNTc2M2JjNjVjY2E1MjBhMWM1OWYwMjUxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjU0OjMyIDIwMTIgKzAxMDAKCiAgICBzZW5kbXNnIGRvZXMgbm90IGxpa2UgSVBfU0VORFNSQ0FERFIgaWYgYWRkciBpcyBJTkFERFJfQU5ZCgpjb21taXQgZGViYWM0OThmZTg0MTAxMTAxMDdhMmZlNjRmOGFmYjc0OGVkYWEwNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMTY6NDg6MDkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGFkZGVkIE9DRlMyIChPcmFjbGUgQ2x1c3RlciBGUykgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZQoKY29tbWl0IGZhZmM5OWNkODllNzNlYzdlMDBiZjczNjBkMGI0ZmE2MTk0NGE0ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTg6MzQgMjAxMiArMDEwMAoKICAgIFNpbXBsaWZ5IGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCgpjb21taXQgN2FmMjAxM2RlOGJmMWIzNzljMDc2ZGI0ZTEwNDUwOGUxNzg3NGQzZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo1NTo1OCAyMDEyICswMTAwCgogICAgRml4IG9yZGVyIG9mIGZlYXR1cmUgI2lmbmRlZiBhbmQgRG94eWdlbiBjb21tZW50IGJsb2NrCgpjb21taXQgYmJkNjdmNjM1MzBmNWVmMGJmYzk0OGZjNThkZmU2YTkzZjhmODY3OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQyYTY2YWVmZjI1YjllOWVmNjM1YTQwNGFkMmY1MjEyZjllOGNmMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDc6NTQgMjAxMiArMDEwMAoKICAgIFJlbmFtZSB0d28gZnVuY3Rpb24gYXJndW1lbnRzCgpjb21taXQgM2ZlNzJiM2I5OWI3ZTRiMmI5ODIzNjNkZmM0ZjJkOGQxM2Y0MDU5MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMzo0OToyMiAyMDEyICswMTAwCgogICAgQ29udmVydCBzbm1wX3NlbGVjdF9pbmZvKCkgZG9jdW1lbnRhdGlvbiB0byBEb3h5Z2VuIGZvcm1hdAoKY29tbWl0IGU5ZGIyNjZhZTQ4ZDA1YTdhNmNiNWQ3MWI0YmRlYTdhZDgwOGVmNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTc6NTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfbmV4dF9hbGFybV90aW1lKCkKCmNvbW1pdCBkMDgwNDRjYjllNTcwMmZiZjU0OWUxNDQyNWY0Mjc5NDI1OWQ4YTIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDA5OjM4OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQoKY29tbWl0IGEwNWMyN2MyNzExY2I0MTU4MmEzYjRjMzFlMzhiMGU5MzUzMGI2MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NTE6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQKCmNvbW1pdCA5MTBkN2IwZDk5MTgzNjA5Yjk1MjliMDRjM2YyOTMzMGViNjYxMDIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjM4OjEyIDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSBieSBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKQoKY29tbWl0IDQzYTgzZjZjNmE5NmNjMjMxNmI3MGVlY2FjZjEyN2ViNjkxM2M3YTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTk6MTUgMjAxMiArMDEwMAoKICAgIFVzZSB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBpbnN0ZWFkIG9mIG1lbWNweSgpIGZvciBjb3B5aW5nIHN0cnVjdCB0aW1ldmFsCgpjb21taXQgMmZlNTc5ZWZiMWNiM2E3NGY4MjgwM2NhMzIzOTI4ZjZiOGU0YjVjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxNDowNDowMiAyMDEyICswMTAwCgogICAgTWFrZSBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgYnVpbGQgYWdhaW4gb24gbm9uLUxpbnV4IHN5c3RlbXMuCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCAzNDVhMWU0MjU0ODEyY2I5ZWRjMWQyNzQ0OTFiNzY2ODFhOWRiYTFlLgoKY29tbWl0IDg4MWRlNmFiNzM1NTI3N2E1YzExNmEwMDhmYmU1MTMyOTNiMDUwMzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDMgMTA6MDg6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIFJtb24gTUlCIGltcGxlbWVudGF0aW9uCgpjb21taXQgNDYyOTkzM2MwZDNiM2Y5ZjRiYTU4MzUzNGY3OWEzN2ZiOTYzMzgxNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAyMDowNTozMSAyMDEyICswMDAwCgogICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgZTliNWEzZGVlNmY5YWZhYjhiOTBhMjkzOTIwNDA2MzJiMDc1YWQ3YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNjo1Njo1NSAyMDEyICswMTAwCgogICAgVXNlIFNOTVBfTUlOKCkgaW5zdGVhZCBvZiBtaW4oKQoKY29tbWl0IGFlNDUyYzc3YjQxMTEzOWQ2YjU4MDBmZmNmODhkNDhlOWI0NzkyYTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTU6MjM6MzggMjAxMiArMDEwMAoKICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgYzdkMTFmYTAwZjk5OTVkZGI5ZmUzZDQ5OTRhM2U5NzkwZGEyZTE4OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToxODo0MCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2NyBwYXJ0aWFsbHkuCgpjb21taXQgMDBmZDYyNzIwZWM0NTRmNWE2OTBkZTRmZWJhMDgyMjNjZmIyYzNmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNDo0ODo0NCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBBdm9pZCBjcmFzaCBkdXJpbmcgc2h1dGRvd24gZHVlIHRvIGludm9raW5nIHBlcmxfZGVzdHJ1Y3QoTlVMTCkKCmNvbW1pdCBkOWUyMjlkODFhYmVhZjE5MWVmMmNjYjA3Nzg0Mjg4NWMyMzBkNjIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ3OjQxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgYSBzdXBlcmZsdW91cyBkZWNsYXJhdGlvbgoKY29tbWl0IDFlMmUyYWY2Y2FlODMwZjM4MWU4N2EyNDRkMDI5ZWI4NmJmM2ZjY2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTM6MjA6MzcgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsOiBBZGQgZXJyb3IgY2hlY2tpbmcKCmNvbW1pdCAyNDFhMTQxZTMxZjE2ODRmYzZjZjcwY2M0YTAwY2NlNjM2ZmQzNTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDExOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBNYWtlIGNvbmZpZ3VyZS10aW1lIEVWUF9NRF9DVFhfY3JlYXRlKCkgZGV0ZWN0aW9uIHdvcmsgb24gdGhlIDUuNCBicmFuY2guCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwLgoKY29tbWl0IDZkOWQxNGZlYWFhMmQwZmVjNjhiNGQxNTg5NDRkMzJjYjA0ZmYxYmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6MTI6MDAgMjAxMiArMDEwMAoKICAgIFJldmVydCB0aGUgY2hhbmdlcyB0aGF0IGJyZWFrIHRoZSBidWlsZCBvbiB0aGUgNS40IGJyYW5jaCBmcm9tIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgoKY29tbWl0IDhhYmU0OWUzMGM5N2M4OTgzZTgzYjQ1YTM1YzcxNmZlOTFmNjZiZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgRmViIDEgMTE6NTY6NTggMjAxMiArMDEwMAoKICAgIEZpeCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIHRoZSBESVNNQU4gTUlCIGltcGxlbWVudGF0aW9ucy4KCmNvbW1pdCBmOWZiMGE1MzMzNzVlMTRkYzM3MDAyNWEwYjJmYmM3NjFiZjI3YmU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDA5OjU2OjAyIDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZyIgYmVjYXVzZSBpdCdzIHdyb25nLgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMuCgpjb21taXQgY2E0YTRmZTI1ZWZkMjcxNGY4ZjE5NjFiOTc4NTY2MTY1NjNmNDJjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMDoyMTo0OSAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogQWRkIHB5dGhvbi9idWlsZAoKY29tbWl0IDEzYWRhNTY1NThiNDRlMjhkMTM1NWMwZGNlMWQ5MjFmMzc0NmQ1NDgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTo1Mzo0OSAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIiIC0gdGhlcmUgKmlzKiBORVRTTk1QX1BSSW8gaW4gVjUtNisgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkLgoKY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgMmZiOTliZTlhYTg2YTZjYTM0OWI4NmQ0ZWY4YmM3MjZlZDlmMmE4MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU4OjM1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBlNWMzNTU4OWUwYmY0MTZiZmQwMzZiZDQ2OGY0MmFhZWFiMjVlNzg4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTU6NTYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1MToyNiAyMDEyICswMTAwCgogICAgRml4ZWQgZXJyb3IgaGFuZGxpbmcgaW4gaW5pdF9pY21wKCkuCgpjb21taXQgYzMwMzU0OWE1OWZhOGMyZjIwYTlkOGJmMWU5ODVmYmM4YWJkZTZhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjQ2OjI5IDIwMTIgKzAxMDAKCiAgICBSZXdvcmtlZCBfcmVnaXN0ZXJfZXh0ZW5kKCkgZXJyb3IgaGFuZGxpbmcuCgpjb21taXQgOWMyMGUyN2E3MDI2ZmMwMzBkYTNiMzI4YjlhMmUxYjRmMzY2NzBjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjIxOjI4IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAyMmZkMGJmYzJkZjBlMWY2MDIwZGMzYzUwYTc1M2RkZjI4YTQ1OTljCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjA6MjIgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDVkNjFlNTdiYWY1ODBjNzgyNTJjMGFiYjAwOThjMDdiYjA1YWYxN2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToxNzowNSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgM2MzZWVhZTgwZDc5NmYyNzU5N2M5MDFlN2ZmMjA0NmM3NjllZjRiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA4OjA5IDIwMTIgKzAxMDAKCiAgICBNYXJrIHJvd3JlcV9jdHggYXMgZnJlZWQgc28gbmV4dCBpdGVyYXRpb24gYWxsb2NhdGVzIG5ldyBvbmUgaW5zdGVhZCBvZiByZXVzaW5nIHRoZSBmcmVlZCBvbmUuCgpjb21taXQgYWY5YWJkNTNjMjMzN2M5MGE2OTFhN2IwNDRmZjNmOTdjMTAwMzE2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA1OjEwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBjZjk0NjVmNTQxODFlNjJlMjFhOWIxMDIxOTEzMTEwN2EzZDJlYmY2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDQ6MDYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDc4NzFmMmIwOWI4YjUyZjM0YTllNTc3ODQyNjY0NTkwNTMxNjViY2IKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowMjo1MCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgN2EzN2YzM2QzMTBjOTU5ODYwN2JjMzIzZDliZGJmOTFhYWY3MmM5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAwOjUxIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzZTQ1ZjcwMjYyNDllNDUzNTBlZGFhYzg1MzM3NDIzYWEwZTk1ZDhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6MTM6MTggMjAxMiArMDEwMAoKICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgoKY29tbWl0IDYxOTM2NzYyZTY0MWMxOGRiNzVhYTUxMjVhMzNlNzc2YzY3N2FkYzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxMToxMzozOSAyMDEyICswMTAwCgogICAgRml4ZWQgZnJlZWluZyByZWdpbmZvIHR3aWNlIG9uIGVycm9yIGluIGEgdGVtcGxhdGUgYW5kIGFsbCBpdHMgaW5zdGFuY2VzLgoKY29tbWl0IDQ5NjQzNzQzMDQxNWZiYWZlYjFjY2Q0Nzc0ZjFjYTAwZDYyN2VhMWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjA0OjEzIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MgaW50cm9kdWNlZCBvbiBWNS42IGJyYW5jaAoKY29tbWl0IDViNGEyNGNkY2VlMWJjM2Q4MjYzM2NjYWZlYjk2ZmNlOTUzNDljNTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIyOjI3IDIwMTIgKzAxMDAKCiAgICB1bml0IHRlc3RzOiBmaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IGNiZjFjOTFiYWY3MTkxYmU1ZmEyN2Q4MWJjZjg3MTQzMzFhMmMxMmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjQyIDIwMTIgKzAxMDAKCiAgICBVc2Ugc25tcFRhcmdldFBhcmFtVGFibGVfZGlzcG9zZSgpIHRvIGZyZWUgYSBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QuCiAgICAKICAgIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYuCgpjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6MzEgMjAxMiArMDEwMAoKICAgIEhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDNhNzZiNDNlMTFmZmZhZGE2MzJmY2NiODQ4YWI1MDBlODc2YWQ0OGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE2OjIxOjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IEF2b2lkIHRoYXQgYW4gU05NUCBzZXQgd2l0aCBVc2VFbnVtcyBlbmFibGVkIGNhdXNlcyBhIHNlZ21lbnRhdGlvbiBmYXVsdAoKY29tbWl0IDg0ZGVjOWZhOTJiMGFhMmQ1OGViNzAyMDMzMGY0Zjk4ZTUxNTQzMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjM4OjIxIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggbW9zdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDM4Y2YyMThjM2YxYTcyNzc4NmUyMjdhNWQzZmIxODZmZDBmMWExNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDo1MDoxMyAyMDEyICswMTAwCgogICAgRml4IGEgdHlwbwoKY29tbWl0IDQ1NDEyMjI0NDEyMmJmZGI2ZjY3Y2FiMzEyNTZkN2I0NjM3MmU5ZTEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozMDoxOCAyMDEyICswMTAwCgogICAgRnJlZSB0bVN0YXRlUmVmIG9uIGVycm9ycy4KCmNvbW1pdCAwMTE5MDIyZGFhNTljNzNiZmVjMGRhMjM4NmQwNjI4ZjE0ZTZkYWI3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MDk6MTIgMjAxMiArMDEwMAoKICAgIEZyZWUgZmluZ2VycHJpbnQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgpjb21taXQgMGU4NGNkMzAzYTA4MjY3ZGVjNzhmNmQ4MWM5YmIwN2UzZDgzYTExZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ4OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjNkYzg0NmE3OTQ5Y2U2OTdiM2UyOGM1NDNkYzExMDVlNjNhMjI1MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjA4OjI4IDIwMTIgKzAxMDAKCiAgICBGcmVlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50LgoKY29tbWl0IGNlMWYyODRhNjNlYjgxNjQ0YjNlMzI2MDZjYmUzOWI2N2UxZGZmMmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozNzowOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDdlMjE0MTNjYTZmMmVmZDdhM2FmYjYyYzYyYjY0NDg4MWI4YmQxZTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzo0NjozMCAyMDEyICswMTAwCgogICAgUHJvcGVybHkgYWxsb2NhdGUgYW5kIGZyZWUgZW5naW5lSUQuCgpjb21taXQgMzRjOTYyODgyNjA3YzM2MzhhMmZhMjVhMmFjNTMxNDkyZDcxYzc4NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjM3OjI1IDIwMTIgKzAxMDAKCiAgICBGcmVlIGxvY2FsbHkgYWxsb2NhdGVkIHRtU3RhdGVSZWYuCgpjb21taXQgZjU3YWU1MzFkYzU2NThhYmNkNjViMTYyNzYxNTUyNTIzOGQxNmQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjIwOjI0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTM2YmM1NzU1NmMzMTQxNTYxZWE0YTE5NDgxMGIxNjI5MGE2OTFlZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjE1OjQ3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBpZiB0aGUgZnVuY3Rpb24gYWN0dWFsbHkgZG9lcyBzb21ldGhpbmcuCgpjb21taXQgYTA3NzdkMzA3ZGJjYWYyMTllZTAxODRhMGZiYWI5ZDRlNWQ2YWEwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjAxOjQ1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOGI5N2E3MWM4ZTc5NTk0MjhlYjRkNGU4ZDkwZTkwOTZkNDNmZjA5ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjU3OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmMxNTA3YzIyMDMwNTQ5YWU2NjBjMGUyMTFmYmRjNWM3NWVjNWM1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUzOjQ3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjVmMmI3YmNkNGZlMDM5MDZhYTFhMTE1YWI2MGE4OWI4YWU5MzNkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUxOjM2IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGVzIG9uIGVycm9yLgoKY29tbWl0IDBlNTJlNGY2NmQ0NDc2NmJlYTM3NDczNTU2Yzc4ZTUyMTliOTU0NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0NTozMyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0MjoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDc0OGRhODRiMWZkNjU0ZTMzOGJjNzAxZThmOWU1ZGEyMjkxODdmMWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTozMjowNCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGViMjE3MTQ2ZmQ1NDAzNmVhNDIwMmJmZWY3OGJiZjc3NGQ3ZTM4MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToyMzoxMCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDliYTM4ZWVjNjYxMzhlYzFmNjEzZWE4ZDA0ZTE1ODEzMGM3MTIxYmMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxODo1NSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGQ5ZDkzOGQzMDE4YzI3ZjUzMjc3YmM1ZTU5NTc4NTAwNDkwYzFkMDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNjozOCAyMDEyICswMTAwCgogICAgQ2xvc2Ugb3BlbiBmaWxlIG9uIGVycm9yLgoKY29tbWl0IGQ1ZTgxN2Q1YmQ1MThkOWFjNmEwZDYwZTBlMTQxZGQ2NGYyN2FkMTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNDoxMiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDJhZTY4ZjA1OWRmOWQ3NGIwNzRkMTJmNTljMTg0NzQ2NmVkNTc2Y2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTowMzoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGEwMGYzZDQ2MTEyMWI1NDVhZWQ3MmFjMTJiMjQzODc5MWRjZmM0YmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNDo1ODozOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDU5ODg0YmI0ZDM1YWQxMzc0N2ZmYTY3MjM0MzZkY2E1ODdhOWFiNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNzowOToxMiAyMDEyICswMTAwCgogICAgSW4gYWJvdmUgY29kZSwgb2xlbmd0aCBpcyBjaGVja2VkLCBzbyBsZXQncyBjaGVjayBpdCBhbHNvIGhlcmUuCgpjb21taXQgYmE1ZDUyOTJiMDQzOTNiMGM3ZDdkN2VkOTYxMjQxOTI5NDE4YzZlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA1OjE0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgZGEyZDZhNzAyOGExM2I5ZWRmM2E1Yzg0MzE0ZDBmMWZlZWY3NjcxNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjQ0OjU2IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCBmODgwNTRhOWI2OWI2ZGUyNzRmN2ExNGE1OWI0NzMyM2U1ZTRlNGM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6Mzc6MzUgMjAxMiArMDEwMAoKICAgIERvbid0IGRlcmVmZXJlbmNlIGNvbnRleHQgaWYgaXQncyBOVUxMLgoKY29tbWl0IDdjNGQ0NTllOGYxZjY1MmNjMjA5OGMzZDRjODFkZTkwYTg0ZWQ3MTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjozMDowOSAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVmZXJlbmNlIE5VTEwuCgpjb21taXQgZmMxOWI3ZjMzYjU4NzkyN2QyYTAxZTcyZDIzZDIxYjliMTY5NmFiMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjI1OjI2IDIwMTIgKzAxMDAKCiAgICBEb24ndCBjbG9zZSBOVUxMIGZpbGUuCgpjb21taXQgNWU5NWNhNjc5MDA3NmI3ODgwNzJhODAxZWU3YzgyOTY5ZDk5NWJjYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjE3OjA5IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTCB3aGVuIGEgdHJhbnNwb3J0IGRvZXMgbm90IGhhdmUgZl9mbXRhZGRyLgoKY29tbWl0IGVlZDZmNWY5YjlhZTU0ZDJjZWFiNjdhZDg1YWRkZTFmNmE4YTIxZDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoxMzoxMyAyMDEyICswMTAwCgogICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgNDFjZGU2OGI1ZmE0YjM4ZDgxNDUwY2Y5MWUwODJjZGZhODI1ZTdjZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEwOjEwIDIwMTIgKzAxMDAKCiAgICBDaGVjayBpZiBhIHJlZ2lzdHJhdGlvbiB3YXMgcmVhbGx5IGZvdW5kLgoKY29tbWl0IDViNzJhNDA4NTM4NzZhMTg2ZWZjYzAwOTBhNGUzMmMyMzViOWMwNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjowMzo1OCAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCB3aGVuIGRpZmZsZW4gaXMgU01VWF9NQVhfUFJJT1JJVFkgKHdoaWNoIGlzIGhpZ2hseSB1bmxpa2VseSwgYnV0Li4uKQoKY29tbWl0IGZhNmE5MTJlNDFjNWQwZmQyYTYzNjg5NGU4NmI2NDI2YzA3Mzc1YWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNTozNzo0NCAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG1pc3NpbmcgdmFsdWUgaW4gc2V0RXZlbnQuCgpjb21taXQgNDEwYjcxZGE0MjUzODlmZWNjMjVkMTRmNDlmMjM3NTM1ODE1NzZhZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjI4OjQxIDIwMTIgKzAxMDAKCiAgICBEZXJlZmVyZW5jZSBlcmVnIG9ubHkgaWYgaXQgaXMgbm90IE5VTEwuCgpjb21taXQgMTg1MjcyZDFhMGI5MTM3NzQxODZmMWI5MTM1YWVhZjYzN2ViZWQ1MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjE3OjIxIDIwMTIgKzAxMDAKCiAgICBBcyBwZXIgYWJvdmUgY29kZSwgdGVtcGxhdGVfdjJwZHUgY2FuIGJlIE5VTEwsIHNvIGNoZWNrIGl0IGJlZm9yZSBkZXJlZmVyZW5jaW5nLgoKY29tbWl0IDQ4ZTVlYWQzZmQyYzJiMzg1ZGY2OTcyYzY3NTI2ZmY2YmRjMzA3NjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDo0MjoyMiAyMDEyICswMTAwCgogICAgVXBkYXRlZCBsYXN0IGZpeCB0byBuZXcgZXJyb3IgcmVwb3J0aW5nIHN0eWxlLgoKY29tbWl0IGYzM2QzMzYxNWQ2ZDg1ZDAwNzM3MjY0NzNjNDE0NmNiY2RmMTFjZWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDozMDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgc2lnc2VndiB3aGVuIGVtcHR5IGNvbmZpZyBsaW5lIGlzIHBhcnNlZC4KCmNvbW1pdCBiNWRmMWVlYjQ3ZWQzNTU5YjZmNGQ5ZWNjY2RiMjQyMTI2ZTZjOTkyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6MTE6NTggMjAxMiArMDEwMAoKICAgIEZpeGVkIChoaWdobHkgdGhlb3JldGljYWwpIHNpZ3NlZ3Ygd2hlbiBzcC0+c2VjdXJpdHlFbmdpbmVJRCBpcyBOVUxMLgoKY29tbWl0IDZmZWVkNjI5YTcxODk5YzExMzA5Njk1OWQ4NTQ5ZGMxMjAxZThmOWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxMzo0MzozNyAyMDEyICswMTAwCgogICAgQWRkZWQgTlVMTCBhbmQgbGVuIGNoZWNrIGp1c3QgaW4gY2FzZSBzb21lb25lIHByb3ZpZGVzIHZhbHVlID0gTlVMTCBhbmQgbm96ZXJvIGxlbiAoLT4gTlVMTCBpcyB0aGVuIGRlcmVmZXJlbmNlZCkuCgpjb21taXQgMzU1YzVhYjI2NGFmMmE2MDIwYTFkOGE5MjNmODBmMTFiOTQyMjk1ZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDEzOjM2OjQxIDIwMTIgKzAxMDAKCiAgICBFeHRlbmQgdGhlIE5VTEwgY2hlY2ssIGkuZS4gcmV0dXJuIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gcmVtb3ZlLgoKY29tbWl0IGRkZDc5NDhhY2FkOTM4Y2Q0Mjk3NDUwNWRkY2E0ZjAzNzIxMTY3MDkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDExOjExOjI5IDIwMTIgLTA4MDAKCiAgICB1cGRhdGUgc3BhcnRhJ3MgY29weXJpZ2h0Cgpjb21taXQgNDEyNTYwODZhN2E1MDQxNDUzNDE5Y2ZkNmU1NjJjN2I1NWM1NmIwYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTA6MzI6MDQgMjAxMiAtMDgwMAoKICAgIHB1bGxlZCBmdWxsIGNvcHkgb2YgZXh0cmFjdG5ld3MgZnJvbSBtYXN0ZXIKCmNvbW1pdCA2MjVhNzBkYmRmZDk5MDJkYTc5ZWZhMjkzZmU2ZDJhYzhjY2YyYjJlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMDoyNDoxOSAyMDEyIC0wODAwCgogICAgdXBkYXRlIHRvIGNoYW5nZSB0byB0aGUgbmV3ZXIgbG9nIGdlbmVyYXRpbmcvcGFyc2luZwoKY29tbWl0IDYyZTMyYjEzMDg5YjI5ZWRjZjI3NmY2MTVkYTY3ZTQ1MDhmZTdiYjUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDA5OjI5OjQyIDIwMTIgLTA4MDAKCiAgICBjb25mbGljdGluZyBtZXJnZSBmcm9tIG1hc3RlciBmb3IgZXh0cmFjdG5ld3MKCmNvbW1pdCA3MDA4NGRhNjFkMmJjYmQyY2YxZWQ4MWJkYzNiZjY3OTRjMmFmZmI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAxMyAxMTo0OToxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1TQ0hFRFVMRVItTUlCOiBIYW5kbGUgMzItY2hhcmFjdGVyIHNjaGVkQ29udGV4dE5hbWUgdmFsdWVzIGNvcnJlY3RseS4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IGIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQuCgpjb21taXQgMDRiZjNlMjg4MTU4ZWU4ODBlZGYyMzdlNDAwN2ZlZTM3ZDIwNDRkZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjM5OjM3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBlbmRsZXNzIGxvb3Agd2hlbiBTU0xfcmVhZCByZXR1cm5zIGVycm9yLgoKY29tbWl0IGMxNTI2ZmNjYzA0NzRjMWRiMThjYWE5ZGJiODMzODUzY2RkZGUzY2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMzoyMSAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGEyN2FhMTlkZjI4MzE1NmMwMzJjODFlYWVlNWUxMTU4NTlkMzhjMTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMTozMiAyMDEyICswMTAwCgogICAgRG9uJ3QgcmVwbGFjZSAncmMnIHZhcmlhYmxlLCBpdCdzIHZhbHVlIGlzIG5lZWRlZCBvdXRzaWRlIHRoZSBsb29wLgoKY29tbWl0IDk4NWRmZjJiMDg3NmQ5NDgzYzQxNGZjY2VhM2VmNmJjNjNlMTQ1NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTowMTozMiAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAyZmQ3ODE4MzE4ZTdhNWRmZTk4ZjUyY2NmNzUwYzJhNjNlODI1ZGVkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MDA6MjIgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMTVmMjExMzBiYTMzZGM5YWZkMTY0ZTUyZGZkNzRjOWNlYzBlOTIzMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjU4OjE0IDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDJhOGE4ZjJhYjdjZDc1ODI2YzVkNDFlYzNjZmQ1Y2UzZTk2MzRjZjMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDozOToyOCAyMDEyICswMTAwCgogICAgcmVtb3ZlIGRlYWQgY29kZSwgJ2NwJyBpcyBhbHdheXMgIT0gTlVMTCBoZXJlLgoKY29tbWl0IDM4ZmQ2Mzc4Y2MzMjc1MTgwZjYzYjhkOWI5YTQwNzJiM2RhYmY4ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDoyNTowNiAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGViZDkyZTE5YjEwYzBhMzhlMTdjZGU0MDc4NjRiNDVjMjZlMTczMjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDowNzo0MyAyMDEyICswMTAwCgogICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBpZiAodmFsdWUpIGNoZWNrIC0gdmFsdWUgaXMgY2hlY2tlZCBmZXcgbGluZXMgYmVmb3JlLgoKY29tbWl0IGM1Y2FjZjVjYWY5NzlkMDE4ZWE2Y2FlMWMwM2I4ZmRmMGIxMThkZmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0NDo0MyAyMDEyICswMTAwCgogICAgUHJldmVudCBkb3VibGUgZnJlZSgpLCAnZGlybmFtZScgaXMgYWxyZWFkeSBmcmVlZCBpbnNpZGUgc2VfYWRkX3BhaXJfdG9fbGlzdCgpIGlmIGl0IGZhaWxzLgoKY29tbWl0IGFjZGNlYjUwZWE2NmQ2YjMyM2M3NGVlMDIxZmI3N2U4MTBlNGU3YWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0MzoxOSAyMDEyICswMTAwCgogICAgUHJldmVudCBtZW1vcnkgbGVhayB3aGVuIG1hbGxvYyBmYWlscy4KCmNvbW1pdCAxNzA1M2UzNGNmZTlhOGFiMzk1ZmI1MGY1YzNmMWRhZmM3MjQ3YWViCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTM6MzI6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRvdWJsZSBmY2xvc2UoKS4KICAgIExpbnV4IG1hbiBwYWdlIGZvciBmY2xvc2UoMykgc2F5czogSW4gZWl0aGVyIGNhc2UgYW55IGZ1cnRoZXIgYWNjZXNzIChpbmNsdWRpbmcgYW5vdGhlciBjYWxsIHRvIGZjbG9zZSgpKSB0byB0aGUgc3RyZWFtIHJlc3VsdHMgaW4gdW5kZWZpbmVkIGJlaGF2aW9yLgoKY29tbWl0IGE2NjQxZWRiOWNiNzRmYzIyMzZiNDJjZTU1NTRmYzMzMjk5NTY1NTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE1OjIyOjM0IDIwMTIgKzAxMDAKCiAgICBNaW5HVzogU2tpcCB0ZXN0IFQwNjUgaWYgbm90IHN0YXJ0ZWQgZnJvbSBpbnNpZGUgYW4gTVNZUyBzaGVsbAoKY29tbWl0IGE4ODNlZjE5ODJmMzAxYjE0ODVkMjI3MzAxNjc0OTI3MzMwZjViNjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMSAxNToxNDo1MyAyMDEyICswMTAwCgogICAgTW92ZWQgZGVidWcgb3B1dHB1dCBiZWZvcmUgcmV0dXJuLgoKY29tbWl0IDQ1NzUxOTY3Mjg3ZDk3NjQwZWZkY2RmOGU3N2U4ZDQ5MDkzOWQ4ZWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE0OjE3OjE4IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHN0cnRvdWxsKCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKCmNvbW1pdCAyYzJmYTQ4MzM2YTRmMWYxNzdjMjk5MWQ2NTE1ZDI5ZjM5NTMzYzQ0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMzo1MDo0NCAyMDEyICswMTAwCgogICAgQ29udmVydCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpIHVuaXQgdGVzdCBpbnRvIGEgTmV0LVNOTVAgdW5pdCB0ZXN0Cgpjb21taXQgMDdjNjY2ZjZjZWEyN2YyYjJhYjliYzA4YWVkMGNiNjEzM2ZlMzc1OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDExIDEzOjE3OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMToKICAgIEZpZGV4IGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCgpjb21taXQgM2I2ODY1NjYyOTZkZDg3YmM0MmI3ZjExNjlkYWFjZGIzYzQ1Y2M1OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMTggMDY6MjU6NTYgMjAxMCArMDAwMAoKICAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMgNi4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGYzYTdkMWIwOTYwOWRhZDY0OWY1OGJiZGI1YjdlMTBkMzliMzk4YzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDExOjA0OjA2IDIwMTAgKzAwMDAKCiAgICBGb2xsb3ctdXAgZm9yIHIxOTQ3NjogZml4ZWQgYSB0eXBvLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMmRlNzNiZDM2NWEzODFiOWMzNTNjYTUyMzA3NjllZWZiMWFjNzFlZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTE6NDI6NDIgMjAxMiArMDEwMAoKICAgIGxvY2FsL3Bhc3N0ZXN0OiBSZW1vdmUgYW4gaW5jb3JyZWN0IFBBVEg9IHN0YXRlbWVudAoKY29tbWl0IDY5OTUxM2YxMjM4ZTBhZGNlMWYxY2VjOThlMGQxNDcyOTNmYzUwNDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDA5OjI1OjUxIDIwMTAgKzAwMDAKCiAgICBORVRTTk1QX1JFTU9WRV9DT05TVCgpLXJlbGF0ZWQgY2xlYW51cC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDYzNThkZWU3MmZiMzQ3ZTI2MDBhMGE3YmQyMWYyMzI3MGQzYTAwZjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEwOjU4OjE1IDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOiBBZGQgYSBjb21tZW50Cgpjb21taXQgNTM5NmJmZTAzMmM4Y2JjNzNjOGZmNWQ0YjA4NWViYWRhOWY1OTg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MzA6MTYgMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgZmViM2FmMjhkY2FlMjIwMTVhZTg2NWEyZTVkZDhjNDE2ZTk5OTFkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MDI6MDggMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgYjdlMWFhMjU1YmFlNGEzNDUzZjllY2E2NDRhODc2NjM0MzUxZjExZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjAgMTk6MzY6MjggMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbiBjaGFyKiBvciBjb25zdCBjaGFyKi4KICAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgogICAgQWxzbywgZml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyAobW9zdGx5IGNoYXIgKiA8PiB1X2NoYXIgKiBtaXNtYXRjaGVzKSBhbmQgcmVtb3ZlZCBzb21lIGNhc3RzLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODM0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKICAgIAogICAgQ29uZmxpY3RzOgogICAgCWFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMKICAgIAlhcHBzL3NubXB0cmFwZC5jCiAgICAJc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYwogICAgCXNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwogICAgCXNubXBsaWIvc3lzdGVtLmMKCmNvbW1pdCBmNDdhMzc1Mjg0OWRiMDc1ZTZmMjA1M2I4NTk1YjdiNzkyZmI2NDYyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE9jdCAxNSAxMDo1NjowOSAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBCdWlsZHMgbm93IGNvcnJlY3RseSB3aXRoIGEgNjQtYml0IGNvbXBpbGVyLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwMmI2MDU2ZGY5NWRhOGI2NzMwMzRlMzljMmM3YzM4NmVkMGYzNjljCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMTo0NDo1MyAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKCmNvbW1pdCBhMTk4NjU4MzJmYzc3ZjRjMDQ4MTQ0ZDkxYTQzMWIxZTk0ZDMyOWYyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMTQgMjM6MTI6MDUgMjAwOSArMDAwMAoKICAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbiBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc3OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjdhM2UyZWNjYjk1ZjljOWQwODA5ZWZjYmRkY2Q4NjZlZTMwNjJkNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxNDoyNzoxNSAyMDEwICswMDAwCgogICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgM2RjZGUyZThhNTk1YTUyN2YwNjE0MmMzYjg1MmRlODQzM2ExY2YyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDI0IDE0OjI3OjU1IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQcmV2ZW50IGdjYyBwZWQtd2FybmluZyBmb3IgTkVUU05NUF9SRU1PVkVfQ09OU1QKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzJlMTUyNWE4NWJkYTUyOTlhM2I5ZjI0MTYxNGY3ZTY1MDlhZWViYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxMzozNToxMSAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IDI5NWY0NzNjODM1NDYyMjFiMmE3MWQ4MTVjNjFlMzNhNjdmOThhZTM6IHJlZmluZSBORVRTTk1QX1JFTU9WRV9DT05TVCgpIGltcGxlbWVudGF0aW9uLgoKY29tbWl0IGNiNDIzYjBhZTllZDAwNTlhYTEwMGRjNGUyZmQ5M2FkMWI5N2ZhZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDYgMTE6NTc6NTEgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBlMmZiMDllMDA5M2UyZjY0OGZlMjYzOGRhMmYzYWYxOGZkYjMyYmYwIC0gaW50cm9kdWNlIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAlhZ2VudC9zbm1wX3BlcmwuYwogICAgCXNubXBsaWIvc25tcF9zZXJ2aWNlLmMKCmNvbW1pdCBhZmMzOTZhYjE2MThhODU5NWEyNTE5ZmJjMjVmN2E0OThlMTc0NDExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAwODo0OTozNCAyMDEyICswMTAwCgogICAgVW5icmVhayBuZXRzbm1wX21rdGVtcCgpIGFuZCBtYWtlX3RlbXAoKS4KICAgIAogICAgVGhlc2Ugd2VyZSBicm9rZW4gYnkgY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkuCiAgICBBbHNvIHJlcGxhY2UgYSBzdHJuY3B5KCkgY2FsbCBieSBhIGNhbGwgdG8gc3RybGNweSgpIGFuZCByZXBsYWNlIHRoZQogICAgbWFrZV90ZW1wZmlsZSgpIGltcGxlbWVudGF0aW9uIGJ5IGEgY2FsbCB0byBuZXRzbm1wX21rdGVtcCgpLgoKY29tbWl0IDIxMDE4NWMxNWQwZDY1ZjBlYTk4YjVlM2MyZTA3NzZmNjIyMmQxNzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDA4OjI3OjQzIDIwMTIgKzAxMDAKCiAgICBGaXggYSBjcmFzaCBkdXJpbmcgc3RhcnR1cCBvZiBzbm1wZCBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkLgogICAgCiAgICBBbHNvLCBtYWtlIHN1cmUgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBjb3B5IG9mIHRoZSBjbGVhbnVwIGNvZGUgaW4gZnVuY3Rpb24KICAgIG1rZGlyaGllcigpLgoKY29tbWl0IDhiYjRlODZhYmNmOThmZjI4NzQ4YWYwYWY4OWM5OGU2NGQ1Y2Q5NjEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSmFuIDExIDA3OjQ3OjEyIDIwMTIgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBvbGRtYXNrIHZhcmlhYmxlLgoKY29tbWl0IDY2ODAxNDdiMTM4ZWMxMTRmODFjNWQxMjhhYzkzNTBjODQ1MGQwODEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDE4OjQ0OjMxIDIwMTIgKzAwMDAKCiAgICBNYWtlIHRlc3QgVDAxNWludDY0X2NsaWIgcGFzcyBvbiA2NC1iaXQgc3lzdGVtcwoKY29tbWl0IDNhYWQxNWFlNTYwYWM4NTdlNzNjOTA3NjRlOTAzZTdjYTAyYjMyOTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTo0MDo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IGZvciBsYXJnZSBPSUQgbmFtZXMKCmNvbW1pdCBmYmExODhlZTgyMDEwYjJmMmQ4Y2EyZTQyNmJhNjU0NDk5YWIzZDBhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MzE6MzMgMjAxMiArMDEwMAoKICAgIGZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBpbiBfX2NvbmNhdF9vaWRfc3RyCgpjb21taXQgMjFkMjVkODZiOGU0OTA0ZDc5OGRjOGM5NmRhZGU5ZTUwNDg0NTdhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjI2OjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBwYXJzaW5nIHBvcnQgbnVtYmVycy4KCmNvbW1pdCBkMzY5MzE4NDFiMmZjMmNlYmM2MzY0YjI5NDkxMjlhMGFkNDJhZDFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MDU6NTEgMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgU3VtRmlsZSBpcyB1c2VkLgoKY29tbWl0IDBlZmRkMDIyZGEwOWFmMWI1ZTE2MTcxZmE3YTJiNTIzYzVkNmVjNTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTowMTo1MyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGJpZyB0ZW1wIGZpbGUgcGF0dGVybiBpcyB1c2VkLgoKY29tbWl0IDU2MGJjNmMwOWI3NTE1NTZlZmQ2YjRjNDQ5NTc1MWIxMDlhOTNmOTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo1OToyNCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93LCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgODI5MWQ3YzViOTJhMzFkZDRmNTgyYjQ5N2Q0YjJhMDg1MzM2N2E1NgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU1OjE2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cuCgpjb21taXQgODhlMWYzNGRlNzMwMDU3NWZhNmRhYjg1N2VjZGRiMjQyYTg3ZGU4MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ4OjU1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYmUxMzc1YTk5MjZlYmUwY2Q1Yjc4YTQwNDVjM2JkMTFjODM2NjRiMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ2OjQ5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIHNlbnNvciBuYW1lIGlzIHRvbyBsb25nLgoKY29tbWl0IDFjYjI0NjI1MzcyMDYyYjE0YzcxZDdkZDUxZTIwZmVmNzczZTI3NDMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo0MTowMCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gYSBDUFUgaGFzIHRvbyBsb25nIG5hbWUuCgpjb21taXQgODRjODA3ZWUwMzI1MWU1NDg1NmU4M2Q2MmQwNmVhMDhiOGRmNTI3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjM2OjUwIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYzMxMGUzOTBiNWRkMDVmMjRiZTdlYjE5MDRjNzRlNDEyNTljOTNkYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjI0OjU0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCgpjb21taXQgNDYwMGQxMTQzNGU4M2I4NjUzY2Y5ZjgxM2EzZDhiNjMwNDU1YjQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjE3OjA4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBwbGF1c2libGUgc3RyaW5nIG92ZXJmbG93IGJlZm9yZSBwYXJzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoxMTowMiAyMDEyICswMTAwCgogICAgR2V0IHJpZCBvZiAoaW5zZWN1cmUpIFNOTVBfTUFYUEFUSCBpbiBta2RpcmhpZXIoKQoKY29tbWl0IDgwMTY4OTBhNDQ1ZjZhN2UyYTg3M2EwNDg3M2Q0ZTI3YjZlZTY0ZTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzo0ODozNCAyMDEyICswMTAwCgogICAgRml4ZWQgd3JvbmcgaW50ZWdlciBzaXplIG9uIDY0IGJpdCBwbGF0Zm9ybS4KCmNvbW1pdCBiYjhmY2JiODc0OTk4MDAwZjk0NWYwNThkMWFhNmZlMTRlOTI1ODk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MzE6MzYgMjAxMiArMDEwMAoKICAgIFNlY3VyZSBta3N0ZW1wKCkgd2l0aCB1bWFzaygpIC0gb24gc29tZSBpbXBsZW1lbnRhdGlvbnMgaXQgZG9lcyBub3Qgc2V0IDA2MDAgcGVybWlzc2lvbnMgYXV0b21hdGljYWxseS4KCmNvbW1pdCAyMDI1MjNjYTcwNGJkNzIyZGMxYWMwZTFlNmIwZTRiNGU1NDI0NDk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MTE6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgJ2MnIGJlZm9yZSBOVUxMIGNoZWNrLgoKY29tbWl0IDczYTUyM2U0NjgyNzdmNmRmMmU5ODQ4OTEzMTNiOGJlOGJjZTE5MjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzowODoyNCAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KCmNvbW1pdCAyZjRlNmFjZDcxNDE4M2YwMTViNzYzNjU3ZjhmMDg0NTkzMzU3ZTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMDozODoxNiAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogSWdub3JlIHBlcmwvKi55bWwgZmlsZXMKCmNvbW1pdCBjMzY1ZDgwYzE2YzJkMTdiMTYwMDExZThjMWY5Y2I5NTg5NTRlOWRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAwODozNDoxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBEbyBub3QgaW52b2tlIHNodXRkb3duX3BlcmwoKSBmcm9tIGluc2lkZSB0aGUgU0lHVEVSTSBoYW5kbGVyIHNpbmNlIHRoYXQgZmFpbHMgaWYgU0lHVEVSTSBpcyByZWNlaXZlZCB3aGlsZSBhIFBlcmwgaGFuZGxlciBpcyBhY3RpdmUuIEJhc2VkIG9uIGEgcGF0Y2ggcG9zdGVkIGJ5IEpvZWwgQXZuaSA8amF2bmlAYXJ1YmFuZXR3b3Jrcy5jb20+Cgpjb21taXQgZDA1OWZiODc4YjE0MzY1OTk5NTNjZWE1YTA3NzQ5OWRkY2RjYmNiNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNzowMzo1NSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDQwNzUyOiBJRi1NSUI6IFJlcG9ydCBpbnRlcmZhY2Ugc3BlZWQgY29ycmVjdGx5IGZvciBFdGhlcm5ldCBpbnRlcmZhY2VzIGlmIG90aGVyIHRoYW4gMTAgTWJwcywgMTAwIE1icHMsIDEgR2JwcywgMi41IEdicHMgb3IgMTAgR2Jwcy4gQWRkIHN1cHBvcnQgZm9yIE5JQ3MgZmFzdGVyIHRoYW4gNjUgR2Jwcy4KCmNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI2OjE3IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMKCmNvbW1pdCBlMzI1ZWNiZmNlNzdmMDBhYzVjZjZmYmQ5NTdmOTU0OTVmNjFjNTliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI1OjEwIDIwMTIgKzAxMDAKCiAgICBTdXBwcmVzcyB1bmludGVyZXN0aW5nIERveHlnZW4gd2FybmluZ3MKCmNvbW1pdCBiZTkxNjFkM2E1ODk4ZTg2Mzc2N2Y5MjY2MTM0ODYxMjZjMmNiZjY3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDEyOjM1OjM5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSBpbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIDY0LWJpdCBudW1iZXJzLgoKY29tbWl0IDg2ZTRjMmJlMDg1MmEwYTEzYjA2MDMwNzU3MjBiMzI2NGVjNzBkZGUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTI6Mjk6MTEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgaXQgZXhwbGljaXQgdGhhdCBNQVhfU1VCSUQgaXMgYW4gdW5zaWduZWQgY29uc3RhbnQKCmNvbW1pdCAzN2UyNzJkOGY3YjcxODBiYTE0MGZhMzg2YTVmZjA1ODk2OGEwOGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE4OjIxOjQ4IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogSUYtTUlCOjppZlR5cGU6IFJlcG9ydCB0eXBlICJpbmZpbmliYW5kICgxOTkpIiBmb3IgSW5maW5pQmFuZCBpbnRlcmZhY2VzIGluc3RlYWQgb2YgdHlwZSAib3RoZXIgKDEpIi4KCmNvbW1pdCAyNjk5MzJmYTMyYzdjZDQ3OTU3NDg5Njk4ZTA5YmVlMzFmNjNiN2FmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjM0OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggYW4gTVNWQyBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMGQxYzIxZjk5OTFkMTMwOWQwNTdlM2U0MDU2ZDU0N2RmN2Q0MGVjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNjowNjozMSAyMDEyICswMTAwCgogICAgTWFrZSBkZWNsYXJhdGlvbiBhbmQgZGVmaW5pdGlvbiBvZiBzdHJsY2F0KCkgY29uc2lzdGVudC4KCmNvbW1pdCAwYzNkNGRiYjBhOWNmNWIzNTlmNzBiMmYxOTkxNTQ5NTU1NGY4NDBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjIzOjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogc25tcGQ6IFJlbW92ZSBkbG1vZAoKY29tbWl0IDg5M2VjYzk3YjU4NzY2MTA0NWJlY2JlMDlhMzIwYzFiY2JjNzFjN2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzY6NTkgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0KCkgdG8gdGhlIE1TVkMgYnVpbGQgaW5mcmFzdHJ1Y3R1cmUuCgpjb21taXQgM2QxMjY0MjJlNjI1NzAyYjlkM2ZhMDY3NmE5N2VjNWNiMjBkOWQxMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNTowMTowNiAyMDEyICswMTAwCgogICAgTWFrZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBjb25zaXN0ZW50IHdpdGggaXRzIC5pbiBmaWxlCgpjb21taXQgYWY1M2I3NmMyZmZhNzUxZTM5NThkMGZjNWQ4Mjc5Zjc4YzJjMWMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDo0Mzo1NSAyMDEyICswMTAwCgogICAgU2tpcCBUMDY2cGFzc19zaW1wbGUgYW5kIFQwNjdwYXNzcGVyc2lzdF9zaW1wbGUgb24gTWluR1cKCmNvbW1pdCAzNWE5MmU2OTNkMTMzYTViMTFlOWU5YjU5OWRiZjQ3ZWRlZjQ5MzNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDA4OjE2OjM2IDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jIGFnYWluLCB3aGljaCB3YXMgYWRkZWQgYWNjaWRlbnRhbGx5IHdoaWxlIHJlc29sdmluZyBtZXJnZSBjb25mbGljdHMgKGNvbW1pdCAxZDc4ZjdkNWI1OGFlZDJiNTJjNGQzODZhN2JhODBhNDQ3MTFiYWNhKQoKY29tbWl0IGE5YjA3M2VhM2I2Y2VkZjcxM2UzMDVlN2IxNWYyOGFlNTdiZmRmMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTc6NDc6MTEgMjAxMiArMDAwMAoKICAgIEZpeCA2NC1iaXQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA3ZTg5MGRhZDk1ZjU2NjA2OWVlMjgwMjE1YTRmZWEzZjBlMmUzOTgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE2OjM4OjUwIDIwMTIgKzAxMDAKCiAgICBBdm9pZCBhIFNJR1NFR1YgaWYgY3AgPT0gTlVMTC4gVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDguCgpjb21taXQgMWY2MjAwY2ZlMWIwYjI3ZWJiMDkzYTE2MDZiNTkyZjllOTY4NGJlOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTo1MzozNCAyMDEyICswMTAwCgogICAgQ29udmVydCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS42Cgpjb21taXQgYzMxMjZiMTQzOTIxZmFiZWFjNDQyMTY2ZWNhNWI1Yjc0MmZkNDJjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTowMjozOSAyMDEyICswMTAwCgogICAgUmVwbGFjZSBtb3N0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjUKCmNvbW1pdCBiMjRlZTdjOTA5NjU3ZGI0M2JkOGM1ZDhjMDEwNTVjYTA4ODNjOWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA4OjQwOjM5IDIwMTIgKzAxMDAKCiAgICBFbGltaW5hdGUgbW9zdCBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBjYWxscwogICAgCiAgICBVc2luZyBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBpcyBlcnJvciBwcm9uZSAtLSBzZWUgYWxzbwogICAgaHR0cDovL3d3dy5ncmF0aXNvZnQudXMvdG9kZC9wYXBlcnMvc3RybGNweS5odG1sLiBIZW5jZSByZXBsYWNlCiAgICBhbGwgaW52b2NhdGlvbnMgb2Ygc3RybmNweSgpIGFuZCBzdHJuY2F0KCkuIFJlcGxhY2UKICAgIHN0cm5jcHkoZHN0LCBzcmMsIG4pIGNhbGxzIGJ5OgogICAgKiBzdHJsY3B5KGRzdCwgc3JjLCBuKSBpZiB0aGUgZ29hbCB3YXMgdG8gYXZvaWQgb3V0cHV0IGJ1ZmZlciBvdmVyZmxvdy4KICAgICogc3ByaW50Zihkc3QsICIlLipzIiwgbiwgc3JjKSB0byBjb3B5IGEgcHJlZml4IG9mIHNyYyB0byBkc3Qgb3IgaWYgc3JjIGlzCiAgICAgICAgbm90ICdcMCctdGVybWluYXRlZC4KICAgICogbWVtY3B5KGRzdCwgc3JjLCBuKSBpZiBzdHJsZW4oc3JjKSA+PSBuIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCiAgICAqIHN0cmNweShkc3QsIHNyYykgaWYgbiA+IHN0cmxlbihzcmMpIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCgpjb21taXQgNmQ5NWJjNDE0OTQ3MjkzMTAwNTQ3NWMzMGE1NDFmZWQ1NTM0ZGEzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMToxOToxNiAyMDEyICswMTAwCgogICAgRml4IHdhcm5pbmdzIHRyaWdnZXJlZCBkdXJpbmcgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgeHMgc291cmNlIGZpbGVzCgpjb21taXQgYmFkMDYwMGY2ZWM5NDRlZjg0NTVlMzI3Y2U3ODRiOWIwN2QyNDdjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoxMyAyMDEyICswMTAwCgogICAgQWRkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzb2NrYWRkcl91bi5zdW5fcGF0aCBzdWNoIHRoYXQgdGhlIGNvbTJzZWMgdGVzdCBpcyBydW4KCmNvbW1pdCA5MmEzMmFjNDg2NmE1ZWRjN2YzNDdkMzc5NDJiZjAyOGRlMDI3NjJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjI5IDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDgzZTRjMGUzMDRmNjE3Y2NhYzY2MTBlZGQ3NGQxNzA2Nzk3YmJmNTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTU6MzcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCBhIHRlc3QgZm9yIHNlX3N0b3JlX2xpc3QoKQoKY29tbWl0IDRmYWU1ODUyMTAzZWMzODkzYWQ0ODhiYzBkOTA1Y2E2OTE0NTk1ZWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTc6MTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IHRoZSBzZV9zdG9yZV9lbnVtX2xpc3QoKSBpbXBsZW1lbnRhdGlvbgoKY29tbWl0IGIzMjIyYmIyNzVmMmYyMzQ2ZTBmZDA0NzhhZmEyZWZiNjAwNzczZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTY6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERlY2xhcmUgInR5cGUiIGFyZ3VtZW50IG9mIHNlX3N0b3JlX2xpc3QoKSAvIHNlX3N0b3JlX3NsaXN0KCkgLyBzZV9zdG9yZV9lbnVtX2xpc3QoKSBjb25zdAoKY29tbWl0IDAyMmY4NDBmYmZjYjBlMjZiMDhmMGU1NTcyODIzMWY2MTE0OTU4MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTk6NTU6NTYgMjAxMiArMDAwMAoKICAgIEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0IHNlbmRpbmcgVURQIGRhdGEKCmNvbW1pdCA2NzJhODA5YzIyOGU5NTUwYjk5Yjg5MTBiZTc1ZDBiMTYxOTg1NDAyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE3OjMzOjA5IDIwMTIgKzAwMDAKCiAgICBGaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDI0ZmYyNjBhZDg5Y2UyYWEzNjFhNTVjN2M3MmU5MTYwMzFkZWZlMzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MTE6MjQgMjAxMiArMDEwMAoKICAgIENoYW5nZSB0aGUgdHlwZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHNubXBfc2V0X3Zhcl92YWx1ZSgpIGFuZCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoKSBmcm9tIHVfY2hhciogdG8gdm9pZCosIGxpa2Ugb24gbW9yZSByZWNlbnQgYnJhbmNoZXMKCmNvbW1pdCBjNmNhNzM3ZmI0NmY5MGE0YmRhNWQ0MzczNGFhYzM0ZTgzN2EwNWY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAxMyAxOTowNzozNyAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGY1MDRjZTJkNzRhNGJjODhmNjhjYzk1MTVmYTcwNTMzNzNjYjE1YjUuCiAgICAoRml4ZWQgbW9zdCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBjb2RlIGluIHRoZSBwZXJsIHN1YmRpcmVjdG9yeS4gTm90ZTogdGhlc2UgY2hhbmdlcyBtYXkgY29udGFpbiBzb21lIHJlYWwgYnVnIGZpeGVzLikKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJcGVybC9BU04vQVNOLnhzCiAgICAJcGVybC9PSUQvT0lELnhzCiAgICAJcGVybC9TTk1QL1NOTVAueHMKICAgIAlwZXJsL2FnZW50L2FnZW50LnhzCgpjb21taXQgZDIxMmRjOTg0ZWMzNGU0ZDIzMDYyNWU0NmU1OGIwYzYyOGE1MGRmNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjo0Njo0OSAyMDEyICswMTAwCgogICAgU05NUC54cyBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgYmFjZWViYjEwZDhjYWY1ZGI2M2NjMzY5MzVmZWQ2NWVlOTMxMDI5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjoyMjo0NCAyMDEyICswMTAwCgogICAgQWRkIGRlY2xhcmF0aW9uIGZvciBzaHV0ZG93bl9zbm1wTm90aWZ5VGFibGUoKQoKY29tbWl0IGY3Zjk2NmFiZDZkMjg0OWIxMzMxMjUyYWZlNWM0NzNlNWM0MGIzMmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTQ6MjQ6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaGVzLgoKY29tbWl0IDMwM2MwMTViY2ZlOWFmMGIxNTRlOTg4MWM3YjRmNDQ5ZTA4ZjMwYmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjI6MDY6MjMgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBkM2ViMmI1Y2VkMjJhODQ4MDA1M2NlNDNhY2Y5NzM5NzI5MDU1NDA0CiAgICAoU3ByaW5rbGUgc29tZSBjb25zdC1uZXNzIHdoZXJlIHJlbGV2YW50IC8gZml4IGZvcm1hdCBzdHJpbmcgbWlzbWF0Y2hlcywKICAgIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaAoKY29tbWl0IGQ5NWI0MDQwNjkxNmJkYTViNDhiNWE2MTMxYmVjMjdiODY2YjBhNzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjE6NTk6MjAgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGEyYTczMTZjMzEwZjBmY2MzNzI4NjczZmEwNDcwNTFjMjNiNzE5NjAKICAgIChUcml2aWFsIHdhcm5pbmcgZml4ZXMsIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwogICAgCWFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYwogICAgCWFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMKICAgIAlhZ2VudC9zbm1wZC5jCiAgICAJc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKCmNvbW1pdCBkODZjNDdmMDAzZmRjMTkyYmNlN2I0NmFjNGYwNmIwOWUzODdjMTJiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoyOTowOCAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvCgpjb21taXQgYmVlNGQ3OWNmNGViN2UwYTQ1Mzk3ZjU5YjUyOThkYTYzM2E4ZTFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTM6MTQ6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyLgoKY29tbWl0IDNkYzBlMDBhMmZkOGUzNGZlMWFlMzNlY2FiZjM2ZTE0NjQ2MGEzMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEyOjQwOjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSAndG9rZW4nIGlzIHVzZWQuCgpjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6Mjg6NTIgMjAxMiArMDEwMAoKICAgIEZpeGVkIG9mZi1ieS1vbmUgbWVtc2V0LgoKY29tbWl0IDBmNTM2OTUwNDRkZDNmMGMzNTA3NzUzZTNmOGMyOWQ5N2U5Njg3MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDMgMjE6Mzg6MjYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFwcHMvc25tcHRscy5jCiAgICAJYXBwcy9zbm1wdHJhcGRfbG9nLmMKICAgIAlzbm1wbGliL2Rpcl91dGlscy5jCiAgICAJc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAJc25tcGxpYi9zbm1wX29wZW5zc2wuYwogICAgCXNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMKCmNvbW1pdCAwMTUzODA1Yzk5YjkxOTczNjU5MzVjNWQxMWFlOWMzZDRiZmFhMGYzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQ4OjQxIDIwMTIgKzAxMDAKCiAgICBGaXggYSBzZXQtYnV0LW5vdC11c2VkIHdhcm5pbmcKCmNvbW1pdCAzZjg4ODVmYmVlOTQwNzc0OGZjMmYwNTczNzI4YTExYmEyYmMwMjNhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBcHIgMjggMDU6NTE6MTMgMjAwOSArMDAwMAoKICAgIFJldHVybiBhIHZhbHVlIGZyb20gc3ByaW50X3JlYWxsb2NfdmFsdWUgZXZlbiBpZiBubyBzdWJ0cmVlIGlzIGxvY2F0ZWQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3NTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGIxZWFhZjMwMjM2OWZkNDU1MmU4ZmVlN2I2YTgwNTA5MWVjMGE5YjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjM4OjUxIDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmaW5kX3NlY19tb2QoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgYWVlNGU4OTVmZTNiZDVmNGE2MWUzNDI3NWJmY2EwMzY4YjU2MDU1NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MzE6MjIgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIHNubXBfc2Vzc190cmFuc3BvcnQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgNWQxZDBhNzQ0YWIzMGM4ZTY0NWMzYjg1MDZjYmJkMmNjZWIzZDI3NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MDQ6NDggMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIG5ldHNubXBfZXh0cmFjdF9pdGVyYXRvcl9jb250ZXh0KCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IDI5OWVhOWE4OWMzZjE3NThhNzc0OGJiOWIzNDExZjYyZjJjNzBmODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjU0OjU1IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmb3BlbigpIHJldHVybiB2YWx1ZSwganVzdCBpbiBjYXNlIG9mIHNvbWUgcmFjZS4KCmNvbW1pdCA5MGYxYWU2NzU3OTE3NDgxNjM2ZWVmNzcxMDBjYWVlYjUzZWRmZTAxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjA2OjU2IDIwMTIgKzAxMDAKCiAgICBBZGQgc3RybGNhdC5jLiBTb3VyY2U6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY2dpL2N2c3dlYi5jZ2kvc3JjL2xpYi9saWJjL3N0cmluZy9zdHJsY2F0LmMuCgpjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTA6NTYgMjAxMiArMDEwMAoKICAgIEFkZGVkIHN0cnJjaHIgcmV0dXJuIHZhbHVlIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgMTk5YTA1MTFmNmViMGVmM2ZmMWQ5ZjkyMmI3OTBhYjY3ZGZkZTAxZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDozMToyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHNtdXg6IHNpbXBsaWZ5IHNtdXhfbGlzdF9kZXRhY2goKQoKY29tbWl0IGQ4ODM1NzNhYTczZTBmNWZjMTg4YWNlZGVlNjQ1MWY5NWRhZTkwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTA6MjM6MDYgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW50cm9kdWNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCA3YjdhM2ViMjUwMDUyN2VhYTE2OTkyODdhNmNhNmZjYzRjYzJlMDhhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBGaXggYSBidWlsZCBlcnJvciBjYXVzZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCgpjb21taXQgMmI2YzExOWZlZDQ4NDhkYTY2NjNjMTFmMGMyY2JkYzI5OTIxYjVjNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NTE6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBuZXRzbm1wX2RzX2dldF9pbnQoKSBlcnJvcnMuCgpjb21taXQgNmNlNTM2MGNhYTRjOWRlNTFhZGU1Nzg3OWU4M2Y5NmJkMDRiNGM1YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NDI6MjMgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBtaXNzaW5nIHZpZXcuCgpjb21taXQgYjNiYzU0YmVkMzE2OTBhODVkZjJhY2ZiZjMyOTZkYTkzYTllODliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6MjM6MTcgMjAxMiArMDEwMAoKICAgIENoZWNrIHNvY2tldCgpIHJlc3VsdC4KICAgIEFsc28gY2xvc2UgdGhlIHNvY2tldCBvbiBlcnJvci4KCmNvbW1pdCA5MjA3NWY1MWNkNDVhMzhjYTM4NzYwYjNmZmU4MmUxNjU1OWU5YzJlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToxODoyNiAyMDEyICswMTAwCgogICAgQ2hlY2sgb3BlbigpIHJlc3VsdC4KCmNvbW1pdCA2NjY1ZDVmZTJmYzU2OWQ2ZmE4NTRkMWQ3OGUzNDdiYmFjNjllMDcwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMjoyMiAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBhNjY0OGM1NDUzZTFlZjhkYWM1N2EzOGVmY2MwMGNjZTUzYmY5ZTRmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMDoyNyAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBkNjhkY2FlMGYxOGQ1NTQ1NzFhZWYzMjE5NDRhNTI5MDU0OGRkZTg2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNjoxMSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBmYjZmODBjMGZlM2JhMzZlNTZmNWI5MTFhNDdlM2Y2ZjMyYmEyNjZlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgZXhpdCBjb2RlIG9mIGVuY29kZV9rZXljaGFuZ2Ugd2l0aCB3cm9uZyBhcmd1bWVudHMuCiAgICBBbHNvIGFkZGVkIGEgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgMzEzMGUyNGZkYzIzMjQ2NGRkN2JiMjE2ZjQ2Y2FmYTJlMGU3NzVhNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDk6NTQgMjAxMiArMDEwMAoKICAgIEFkZGVkIG1pc3NpbmcgYnJlYWsKCmNvbW1pdCAxOGMxMjZhOTU2NWNiNGQ2OWQ3NTEzYjk0NGEyMTA1NTg4MDQ1ZDM1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowNzoyOSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCA2ZDMxYzgyMDcwYTJjNjhmZTNjNTE5ZTlkNTZmYTI3Nzk1NTRkMDFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowMTo1MyAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBkYzZmMGUyZTU0OWI0Y2QwNjFlYmMxOTAwODRiMWZjNzdhNTVmNDBmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMjo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBkYWIzMjg2N2VkMGI5OTMwMWVmZDdiOGQ4NTJhZDEyODhhMTg0YmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMDozMyAyMDEyICswMTAwCgogICAgRml4ZWQgUVVJVEZVTiB1c2FnZS4KCmNvbW1pdCBiMWEyYmNmNjQ2MTVlYjY2YmMyNGQ1YmU0OTUwZTQ1MDEyOTYyMDQ1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxODowMyAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBiMmIxYzg1MWI5NGZlZDM3YzM4NmVhYTFiZmVhZDVjNzc2OTZlM2VmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxNDo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDo1ODo0NiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgZm9yIGZhaWxlZCByZWdpc3Rlcl9taWIuCgpjb21taXQgNTk0OWYwNTVjMTZhZTY1MDYxNWFhZTdhMWZlZTNmMmQ3YjE2ZDk0MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTA6Mjk6NTkgMjAxMiArMDEwMAoKICAgIE1ha2UgTUlCIGZpbGUgcGFyc2luZyBhbmQgZGV0ZWN0aW9uIG1vcmUgc3RyaWN0IC0gTEFCRUwgaXMgcmVxdWlyZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBNSUIgZmlsZXMuCgpjb21taXQgZTRiNjczNjgzYzY4YmE4YjNhYmMwNDBiOTEyNWVjMzA0NjQzY2M3YwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMzowMDoyNCAyMDEyICswMTAwCgogICAgQXNzdW1lIHRoYXQgbGliZGwgbWlnaHQgYmUgaW4gQUdFTlRMSUJTIG9yIFNOTVBMSUJTIHNvIHByZWFkZCB0aGVtLgoKY29tbWl0IGIxM2MxZTU3YmVkYmE3OWI4MDYxMDNjNzRmMTkyMWQ1M2E3MDZiMzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSmFuIDEgMjI6NTU6MDYgMjAxMiArMDEwMAoKICAgIERvIG5vdCByZXF1aXJlIHVjZC1zbm1wL2RsbW9kIHVubGVzcyBpdCB3aWxsIHdvcmsuCgpjb21taXQgMjdkY2VhMGQ1ZjgwMWRmNDk0YWIyY2I1YzVjMGViZTU0ZWIwZGNkMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6NDg6MjkgMjAxMSArMDEwMAoKICAgIEFkanVzdCBwYXRocyBmb3IgdGVzdCByZXN0cnVjdHVyZQoKY29tbWl0IDE0YjYwZTg1YTFiNTcwMGU5M2QxMjZlMmYyOTFkNWM0ODVmMzRlMzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDE0OjE0OjI5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGxtb2QgbW9kdWxlIGZhaWwgcmF0aGVyIHRoYW4gZ2VuZXJhdGUgYSBkdW1teSBtb2R1bGUgaWYgdGhlIGRsb3BlbiBmdW5jdGlvbiBpc24ndCBhdmFpbGFibGUuCgpjb21taXQgOThhOTc1MzhmYzFlOWZmNDZiNjBkNWQ5NjkzNDc0NDQ1NzgzNzhjMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTM6MzU6MTMgMjAxMSArMDEwMAoKICAgIEFkanVzdCB0aGUgcGF0aHMgdG8gc3VwcG9ydCB0ZXN0aW5nIGV2ZW4gaWYgYnVpbGRkaXIgIT0gc3JjZGlyCgpjb21taXQgODhmMGFmM2NmYjkxNmFlNTg2M2NjMjk4NjA3MWQ0MzVmMjBjMzA2NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTE6Mzc6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlcyAncCcgYW5kICdsZW4nLgoKY29tbWl0IDA4MTVhNzUzNmM3NmY3ZTQ4NDI2Mzg2ODNmNjc0ODk0YTFhOGNlMTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDo0Mjo1NCAyMDExICswMDAwCgogICAgUmVwb3J0IHByb2JsZW1zIHdpdGggU2V0VW5kbyBwcm9jZXNzaW5nCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NTQ0MAoKY29tbWl0IGViMmFiMjM3NDJjYTg2YzBiODljY2ZlOTFlYjZlYTM3NGJmM2FjYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDozNzozMSAyMDExICswMDAwCgogICAgQ2hlY2sgZm9yIHRoZSBleHBlY3RlZCBlcnJvciAoRVBJUEUpIG9uIGNsb3N1cmUuCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NzQ0NAoKY29tbWl0IGFhYzEwYmM0ZjA1M2MwMTRmMzgyZDY1OTNmYzMyYWI5NWUwYjFhNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxMjo1OTo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQ2Mzc2NzogSGFuZGxlIHBhcnNpbmcgc3ViaWRlbnRpZmllcnMgPiAyXjMxCgpjb21taXQgYmJjMDJlMzZlOTBjMWFhYjc4OTg1NjJmOTYzZjVjYWRiMjZlMTBiZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgRGVjIDI4IDE3OjE1OjE2IDIwMTEgKzAwMDAKCiAgICBNb3ZlIHBhc3MvcGFzc19wZXJzaXN0IHRlc3RzIHRvIHRoZSBuZXcgbG9jYXRpb24KCmNvbW1pdCAzODk4YzA0ZmQ2Zjg5ODY3MDYyZmRmZWJmMzY4NTdhYjYxOWMwNDUwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTY6NTM6MjQgMjAxMSArMDAwMAoKICAgIEFkZCB0ZXN0cyBmb3IgcGFzcy9wYXNzX3BlcnNpc3QsIHN1cHBsaWVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZDVlZTNmMGExYTYzYmIxNzUyYzc0Y2JjYTU1YWEzZDQwYmY5YmYxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjU4OjUxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzQ0NDogRml4IFNJR19QSVBFIGhhbmRsaW5nCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDJhMTdiMzc0MzBjMTg1Mjk5OGMzNTg4ZTU0N2Q3ZWI2MWMwNmRhNzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAyMTo0NTozOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDQwOiBNb3JlIHJvYnVzdCBoYW5kbGluZyBvZiBBZ2VudFggZXJyb3JzCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGZlNThhMGU1ZjRkNGUyZTJlY2JjYjQ3MzgyYjA4Y2IxZTRkZjM1MmMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODoxNjoyMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQ1Njc3MDogSGFuZGxlIChvYnNvbGV0ZSkgVUludGVnZXIgdHlwZSBwcm9wZXJseQogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAxYmU4Y2YwOGE2N2E5MTg1NWZlZTFlYzRhMmQ4ZTA4N2M3ODEyNDU2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MDQ6MTAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQzNzogTG9nIEFnZW50WCBkaXNjb25uZWN0aW9ucwogICAgKGluIGxpbmUgd2l0aCBjb25uZWN0aW9ucykgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAwNjgwMzcyODkxMDdmYWEyYmEzZjVjZDJmYjAwYzE5NDk0YmI5YTA0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEhhbmRsZSBhbnkgR0VUTkVYVCByZXF1ZXN0IE9JRCwgbm90IGp1c3QgYSBzaW1wbGUgd2Fsay4KCmNvbW1pdCBhNzRmYTUyODk4MzEyM2QzNTVhOGNkY2FhNzdkZDRlYjRiOGM2OTU5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6MDA6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHBhc3M6IFBBVENIRVM6IDM0OTM5NDogQnJpbmcgcGFzc19wZXJzaXN0dGVzdCBzY3JpcHQgaW50byBsaW5lIHdpdGggcGFzc3Rlc3QqCiAgICAoaS5lLiB1c2luZyB0aGUgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgb2YgTkVULVNOTVAtUEFTUy1NSUIpCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGJiZTY0OWViZmE2MWVhMjIzOTkxNzBiMzZiOTlkYjMwYTFkZTgwMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNjo1NDozOCAyMDExICswMDAwCgogICAgUmV3b3JrICJwYXNzdGVzdCIgZXhhbXBsZSB0byBmdWxseSB2YWxpZGF0ZSBHRVRORVhUIHJlcXVlc3RzCiAgICBhbmQgdXNlIGEgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4gIEJhY2twb3J0IG9mIFNWTgogICAgcmV2aXNpb24gMTc2MzIgKHdoaWNoIHVwZGF0ZWQgJ3Bhc3N0ZXN0LnBsJyBidXQgbWlzc2VkICdwYXNzdGVzdCcpCiAgICBDb3JyZWN0IGluIGJyYW5jaGVzIDUuNSBhbmQgYWJvdmUKCmNvbW1pdCA4MmQwNmM3MjQ3YjIyYzhiMDFkNDViZjU1MDQxZDJmMWU2NDI3ZDQ5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6NDU6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NjcxOiBGaXggb3ZlcnJpZGUgaGFuZGxpbmcgb2YgT0lEIHZhbHVlcwogICAgUGF0Y2ggc3VwcGxpZWQgYnkgUGhpbGxpcCBPJ0Rvbm5lbGwKCmNvbW1pdCBiYTRhOWNlNTFjOTYwMGY5ZmRhMTY4ZjFlNmVmZjMyYTFkYjYzY2I5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6MjQ6MjYgMjAxMSArMDAwMAoKICAgIFR3ZWFrIC0tZGlzYWJsZS1zbm1wLXNldCBjaGFuZ2VzCgpjb21taXQgODI3YzhiMjg4MzAxNzFmYWE5YzYxZDUzZWZjYTllYjY2MDA1NjFjMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDExOjI1OjQzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDM0MzM4NDY6IEZpeCBmb3IgdXNlIHdpdGggcHl0aG9uIDIuNAoKY29tbWl0IGY5OGE1NGE5OWNhZjdiNDZiMTAwYTkyMGRiOTQyY2JjYTljNDM5MjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMDoxMDozNiAyMDExICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgMjMwZGYxNGY5NGMzNzM2ZmYzNDM3OWE0ZTI4MWVlYTM1M2I0N2Y4MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBEZWMgMjYgMjM6MzQ6MjMgMjAxMSArMDEwMAoKICAgIERvIG5vdCBhc3NpZ24gdG1TdGF0ZVJlZiB0d2ljZQoKY29tbWl0IGM5NmIzYjRkODUzMGFkNWUwZWZiMDNmMjRkYWI1ZTVmMWE0NjAwMzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE4OjIxIDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IHVzZS1hZnRlci1mcmVlLgoKY29tbWl0IGM1OTc4Yzg5Y2RlMjQ0MGY0ZDIwZGFkYmM5ZDFkZDhkYjU2MmQ1NmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE1OjQ0IDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IGRvdWJsZS1mcmVlLgogICAgCiAgICBuZXRzbm1wX3Rsc3RtQWRkcl9hZGQgdGFrZXMgb3duZXJzaGlwIG9mIGl0J3MgYXJndW1lbnQgc28gY2FsbGluZyBmcmVlIG9uIHRoZQogICAgYXJndW1lbnQgb24gZmFpbHVyZSBpcyBpbmNvcnJlY3QuCgpjb21taXQgYzEzOWNhMTIzYjQ0YmIzYjliNmJmOTIxZTE2MDljYzQ1ZjYzYTY2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjU1OjMwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUyAzNDEwMDU5OiBGaXggc3BhcnNlbHkgYXVnbWVudGluZyB0cmlnZ2VyIHRhYmxlcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNGFlMDIxYjJlNjM4NDQzNzA4MWM1NjIzZjM2MGM4ODk2MzkwMTg4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjk6NTQgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgQmFzZWQgb24gbWliMmMgcGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNmFjY2Y4YzY2MjU0ZmE4YzQ4NzY3ZWQ3ZGVjNzk1ZGRhZmM1MjJlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjc6MTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBhNjE4MjZhZDhjYTU0NjYxZDFkOTA5NzEyNTAzYmQzYThiMzJlZWQwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAyMiAxODozNTo0NiAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgIAogICAgbXlNYXRjaCBpcyB1bnVzZWQgYXMgbm1hdGNoIGlzIHplcm8gYW5kIGFsc28gc2luY2UgcmVnZXhCdWZmZXIgaXMgY3JlYXRlZAogICAgd2l0aCBSRUdfTk9TVUIgc2V0LgoKY29tbWl0IGJhNGZjODBmZTJjZmQ1YTVkODkyMzBkOGYzNzAzZTRmZTAxZTYwMTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyMiAxOToyNDo0MCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0MDIzNzY6IGZyb20gTGVvbmFyZG8gQ2hpcXVpdHRvOiBSZWNvZ25pc2UgUmVpc2VyRlMKICAgIEFsc28gbW92ZSB2YXJpb3VzIEZTVHlwZSBkZWZpbml0aW9ucyB0byB0aGUgYXBwcm9wcmlhdGUgYmxvY2tzCgpjb21taXQgYjVhYzRhMDRkY2Q1NDcwZDA4ZDAzMzIxYWJjZDFlOTgyNjIxZTZlMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgMmIzN2U0ZThmMjUwYTBkODgyMTE5OWE3NGFjM2Y0ZTViN2I3YmFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMxOjUxIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgM2QwODM0NTE1NmM0MTkzMzNkZTk2OWYxM2QyMWZjZWM3ZTE4ZTk0ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMyOjI5IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgY2Q4NTlhZDUxYzRmMThkNWIwZmM2OWRkNjY5ZmNiMDUxYzc5ODk2OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjMzIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBtZW1tb3ZlIHNpemUKCmNvbW1pdCAzMGZmNThkMDlkNGM5ZDU0MzhiYjYyMTA1NGZkN2FkN2EyYTU5N2U0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MDc6MTkgMjAxMSArMDEwMAoKICAgIEZpeGVkIHdyb25nIGxlbmd0aCBvZiBidWZmZXIgd2hlbiBwcmludGluZyBBU05fQklUX1NUUgoKY29tbWl0IDZjMTQ4N2UxZDM2MGQzZDI2MGEzOWNiMWY1YjE1ZGE5NzgzOTUwNTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNTo0NzozNCAyMDExICswMTAwCgogICAgRml4ZWQgcG90ZW50aWFsIGZyZWUgb2YgdW5pbml0aWFsaXplZCBwb2ludGVyIGluIGVycm9yIGNhc2VzCgpjb21taXQgYzc2ZmI5NmY2NWUzM2JhMmZkMjEyYTkyMWU4YzM4NjE1NWVlNWM3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ0OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bml0aWFsaXplZCB2YWx1ZXMgaW4gdWRwVGFibGUKCmNvbW1pdCBjNDQ2MDg2NzliODk3NTExNzZmMjhhMmU1NGQ1MjgyYjQ2ZTJhMDVjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NTY6MTMgMjAxMSArMDEwMAoKICAgIFVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgYW5kIG1hbnVhbCBjbGVhcmluZwoKY29tbWl0IGEwNWM1Zjk1MTM0NjE4MjRlNzkwM2FlOWFlOWE2YzMzODZlMzM4NzkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDo0MDo1MCAyMDExICswMTAwCgogICAgRml4ZWQgcHJpbnRpbmcgb2YgdW5pdGlhbGl6ZWQgdmFyaWFibGUgd2hlbiBzZW5zb3JzX2dldF9sYWJlbCgpIGZhaWxzCgpjb21taXQgZTRhNWVkYzcyMzkzYmQzZGU5YmYxMmJjZWJhOWQ4M2JiZjdkZTcwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjMxOjI1IDIwMTEgKzAxMDAKCiAgICBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZQoKY29tbWl0IGZhZTJlNWI4MzViOGRmMWVhZTQ3ZTRjZWJiNGViNDA0ZDcyODIzNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMToyMSAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bml0aWFsaXplZCBpaWQgaW4gZXJyb3IgY2FzZXMgYW5kIHdpdGggZGVidWcgaW5mbyBlbmFibGVkLgoKY29tbWl0IDlkNThmODFhOTIzOWNmYmNmYzhlYmNlMzY3ZDIxZTliM2RjYjAyOGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMzozMyAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBpbiBlcnJvciBjYXNlcwoKY29tbWl0IDBiYzhjMDhlZGVhZTdhZTA5NWYxMTYyNThjMjBhZTU3NjdkNjA2NTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzoyMDo1MiAyMDExICswMTAwCgogICAgRml4ZWQgcmV0dXJuaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgJ3N0YXR1cycgd2hlbiBzcyA9PSBOVUxMCgpjb21taXQgNzMwNGM1M2NmOGFkZWU4ZWNjZWYxYThmMjY3NTZmYzA3ZjA5ODcyMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTggMjM6MzE6NTMgMjAxMSArMDEwMAoKICAgIE9uIHNvbGFyaXMgMTAgdGVzdCBpbiAvYmluL3NoIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLWUgdGVzdC4gUmVwbGFjZSBpdCB3aXRoIC1mCgpjb21taXQgOGNkM2JlNjBkNjkzYzljMzZmZmI5N2QzZDliY2I0OWMxYjRhYmUzNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMTcgMDg6NTI6MjQgMjAxMSArMDEwMAoKICAgIEF2b2lkIHJlcGV0aXRpb24gb2YgdGhlIGNvbXBsZXggZXhwcmVzc2lvbiBkZXRlcm1pbmluZyBpZiBpdCBpcyBwb3NzaWJsZSB0byBnZXQgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MuCiAgICAKICAgIFRoaXMgYWxzbyBtYWtlcyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbiBwbGF0Zm9ybXMgbGlrZSBTb2xhcmlzIDEwIHRoYXQgZGVmaW5lCiAgICBJUF9SRUNWRFNUQUREUiBidXQgbGFjayBlaXRoZXIgb2YgbXNnaGRyLm1zZ19jb250cm9sIGFuZCBtc2doZHIubXNnX2ZsYWdzLgoKY29tbWl0IDk1M2YyZTNkNDI1ZWRlM2I4NjNhMmU3Y2NiMGI0YmM4NjI5MjhiNTcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDUgMjI6MTM6MDcgMjAxMSArMDEwMAoKICAgIE1vdmUgdGhlIHVzZSBvZiBfc2VuZHRvIGFuZCBfcmVjdmZyb20gYmVsb3cgdGhlaXIgZGVmaW5pdGlvbnMuCgpjb21taXQgNjhhMTE3M2M0NmNmNzc2MDE0MjZjZjM5MWQ5YTg1Mjc5NGYyMDU3ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjAgMjA6MDU6MTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNlcGFyYXRlIG91dCB0aGUgY21lc2cgYnVmZmVyIHNpemUKCmNvbW1pdCA0NjFkZDE2ZjNiMjY0NzMyMmNkY2U2MzYzMDgxY2M0NGJhNWE0OWI1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAyNiAyMTo1MTowMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWVyZ2UgdG9nZXRoZXIgdGhlIExpbnV4IGFuZCAqQlNEIHZlcnNpb24gb2Ygc3JjIHBvcnQgc2VuZGluZy4KCmNvbW1pdCA3YWNjYjY5YmFhMWZjMGI2YTM0MzlkMmU1NDljODZkYTM0NTNiYWQyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOTozMDozMSAyMDExICswMTAwCgogICAgVXNlIGEgYmFyZSBzdHJ1Y3QgaW92ZWMgaW4gaW5zdGVhZCBvZiBhIG9uZSBlbGVtZW50IGFycmF5LgogICAgCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGNoYW5nZSBpcyB0byBtYWtlIF9yZWN2ZnJvbSBtb3JlIHNpbWlsYXIgdG8gX3NlbmR0by4KCmNvbW1pdCAzOTg1MmNkNGM4NWVmMmJmYzc1Y2RlYTI4MjUyNjFlZTkzZTc2OGMyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyOToyMCAyMDExICswMTAwCgogICAgQWRkIGNvbW1lbnQgZGVzY3JpYmluZyB0aGUgcHVycG9zZSBvZiB0aGUgY2FsbCB0byBnZXRzb2NrbmFtZSBhZnRlciBhbG1vc3QgcmVtb3ZpbmcgaXQuCgpjb21taXQgMWIyOTJjYTI3ZWFiNWNhYTczZmVhYWE4M2RjOWMxMmFiYzBmMmU3MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjc6NTkgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZS4KCmNvbW1pdCBiYzg3OTU3MWVjYTk1MjBiYzEzMmY4NDBjM2U2NTlkMzc5MzE0NGQ3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyNTozNiAyMDExICswMTAwCgogICAgSW50cm9kdWNlIHRlbXBvcmFyeSB2YXJpYWJsZXMgdG8gZWFzZSB0aGUgZXh0cmFjdGlvbiBvZiB0aGUgc2VydmVyIGFkZHJlc3MuCgpjb21taXQgYjdlZWE2Y2ZmYmQ4NzI5MzJjZTJjMDRmZWZiNmY0M2RlMzM5ZjM3NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTg6MzMgMjAxMSArMDEwMAoKICAgIFJlbmFtZSB0aGUgY21lc2dwdHIgdmFyaWFibGUgdG8gY20uCiAgICAKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8gaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9mIHRoZSBjb2RlLgoKY29tbWl0IDBhNzQ2MWU3Mjg4MDVjNjJhMWNhYjlkODdiZmM3NGM3OTI3YTlmY2MKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjE1OjIyIDIwMTEgKzAxMDAKCiAgICBGYWN0b3Igb3V0IGEgY29tbW9uIGxvb3AgaW4gcmVjdm1zZyBvcHRpb24gcHJvY2Vzc2luZy4KCmNvbW1pdCBiM2M2MjQ4ZDAyMDFhYjE2MTA4NDBkNmQwZTc0OWIzYjZjNGFkNzkyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxMzo0MyAyMDExICswMTAwCgogICAgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiBMaW51eCBhbmQgQlNEIHJlY3Ztc2cgb3B0aW9uIHBhcnNpbmcgc29tZXdoYXQuCgpjb21taXQgMzU2NDAwZDYyOTBhNDIzYjUyZWJlZWE1YTVlOTc2ZmIxNWJiNzNiNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MDQ6NTYgMjAxMSArMDEwMAoKICAgIFVzZSBDTVNHX0RBVEEgb24gdGhlIHJlc3VsdCBvZiBDTVNHX0ZJUlNUL05FWFRIRFIsIG5vdCBvbiB0aGUgYnVmZmVyLgoKY29tbWl0IDNiMzUxNzA4YzYyZGU0NmFhMWI5MGVkMjMyY2ZkOGM3YzViMDIyMzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTI6MDA6MzIgMjAxMSArMDEwMAoKICAgIFJlbW92ZSBhIGNhc3QKCmNvbW1pdCBkZTkyNTBkOWRhZTk3MjdhNmNjN2Y2NDc2ODhkZGRmMWI4NTk3MTI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDExOjU4OjA0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzcHJpbnRfbWliX29pZCgpIHRyZWF0IE9JRCBjb21wb25lbnRzIGFzIHVuc2lnbmVkIGluc3RlYWQgb2Ygc2lnbmVkIGludGVnZXJzCgpjb21taXQgMGUzM2IzYjZkNTg1NGE0YmFjMTVkNGVhNWUwMTZjNTNkMTYxZDBjZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMDowMjoyOCAyMDExICswMTAwCgogICAgRml4IHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCBiN2U1MGQ1ZjlhNjc1NTk4MmQyYWYzMTkxNDczY2IzNDY0M2JjMDNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDA4OjM3OjIyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZWR1Y2Ugb3ZlcmhlYWQgb2YgY29uZmlnIGZpbGUgcGFyc2luZwoKY29tbWl0IDczYzllZTQyZDI4YWZlMmUxMDdhN2Q2NjE2YjZkMDExODkwYzM2ZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMDk6MDk6NTkgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgM2RiOTc5NjJiMzdlYjEyZDI1NGQ2MWU2YmUyMzRiMDZhMzkxYzhiYgpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFRodSBEZWMgOCAwNzo0Mzo0NSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDM0NTM4Njg6IGZyb20gIkJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPiI6IEZhY3RvciBjb21tb24gY29kZSBpbnRvIHBhc3NfY29tbW9uCiAgICAKICAgIE1vdmUgdGhlIGNvZGUgZm9yIHBvcm1hdHRpbmcgYW5kIHByaW50aW5nIHZhbHVlcyBmcm9tIHBhc3MgYW5kIHBhc3NfcGVyc2lzdAogICAgaW50byBwYXNzX2NvbW1vbi4KCmNvbW1pdCBiNjU2OGM4M2YxNzU2ZTlhNjU0MzRlZGVlZWI0MGQyM2RkYmJiNjUyCkF1dGhvcjogY2NjaGl1IDxjY2NoaXVAc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgNyAxNjoyNToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDUyMDY5OiBGaXggc25tcHRyYXBfb2lkIGRlY2xhcmF0aW9uIGluIG1pYjJjIGdlbmVyYXRlZCBjb2RlCiAgICAKICAgIFRoaXMgYnVnIHdhcyBpbnRyb2R1Y2VkIGNvbnNpZGVyYWJsZSB0aW1lIGFnby4gSXQgZGlkIGFscmVhZHkgZXhpc3QgYXQgdGhlCiAgICB0aW1lIHRoZSA1LjYgYnJhbmNoIHdhcyBjcmVhdGVkIChzZWUgYWxzbyBjb21taXQKICAgIDBlYzA4OGFmYTI3Y2ZkYTRlNmVhNzhhYWU3Y2ZjNTUwNzU2NGVkZGUpLgoKY29tbWl0IGQ0OTRkYjY0YzIwOGI0ZGM2MjgxMzEzMmY4ODYzYmQ1YzFhMzlkNzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzg6MTcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRWxpbWluYXRlIGFuIHVudXNlZCB2YXJpYWJsZSAoTm93KQoKY29tbWl0IDI4ZjI1NjFiYzI5MzVkOGUxY2JmNDZkMjgyMDE1ODE3M2U3YTRjZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzc6MTEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogTW92ZSB0aGUgbWFpbiBsb29wIGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbgoKY29tbWl0IDM5NmUxMjJkZGM0MmE5MTZmMDZhMDI4ODRjMGU4YTI1OGVkYmUyMzgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMDk6MzI6MTYgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYXRjaCBlYWNoIGdldHB3bmFtKCkvZ2V0cHd1aWQoKSBjYWxsIHdpdGggYW4gZW5kcHdlbnQoKSBjYWxsIGFuZCBlYWNoIGdldGdyZW50KCkgY2FsbCB3aXRoIGFuIGVuZGdyZW50KCkgY2FsbC4KCmNvbW1pdCAzZWZlZmJjMDAyNDM5OTc4NmY4YjY4YjFlOTNiMGE4ZmRkZGRjN2RhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjQxOjAxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFJlbW92ZSBzdXBlcmZsdW91cyBjYXN0cwoKY29tbWl0IDdmMDVkYWE4ZTBlMGY1MzNiMGYxMmEzZTFjZjA3NjQxNTE5OTA5ZDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTE6NTg6MzIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ0NDkzOTogQlVHOiAxNzk2ODg2OiBzbm1wbGliOiBBdm9pZCB0aGF0IHNwcmludF9yZWFsbG9jX29jdGV0X3N0cmluZygpIGVtYmVkcyB1bnByaW50YWJsZSBjb250cm9sIGNoYXJhY3RlcnMgb3IgYmluYXJ5IHplcm9lcyBpbiBpdHMgb3V0cHV0LiBUaGlzIGJlaGF2aW9yIGNvdWxkIGNhdXNlIHRydW5jYXRlZCBvdXRwdXQgaW4gc25tcHRyYXBkLgoKY29tbWl0IGRiOGY1NThmZDJmM2I3YzEwOWVhM2ExYzIxMzNiNzViNmY4Y2IyYWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6MDQ6NDEgMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4OiBwYXNzIHVuc2lnbmVkIGNoYXJzIHRvIGlzcHJpbnQoKSBpbnN0ZWFkIG9mIHNpZ25lZCBjaGFycy4KCmNvbW1pdCA4MDBkYzEwMjhlN2UwY2Q4Y2MxNGQ4NGRkMzE3MjNkNDdhYzA3M2RiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjE4OjU4IDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBoaW50IHZhcmlhYmxlCgpjb21taXQgODNlYTRhMDgwYzkwYTc0Yjk3NDNkM2YyNGNmMGQ0YjhhMWU4Yzg0OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjcgMjE6MTY6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlIHFvcwoKY29tbWl0IDdiOWUwMzQ0MWMzZGMzYTA3NjcwZWQwMWY1ZDA0NzkxYTgyYzc1MGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjA0OjAxIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgI2RlZmluZSB2YWwoeCkgX19TVFJJTkcoeCkgYW5kIGNoYW5nZSB2YWwoeCkgaW50byBfX1NUUklORyh4KS4KCmNvbW1pdCAyZjM3OWIwZTRlY2FkZmE0ZTU0MWUzMDA1YzhmYzgyODE4ODJiNzQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNTo1ODo0NyAyMDExICswMTAwCgogICAgRm9sbG93LXVwIGZvciBjb21taXQgMWFhNzA0ZTogdW5icmVhayB0aGUgTVNWQyBidWlsZAoKY29tbWl0IDY0ZWYwZjcxMTI3NjE3ODM3MDI3ZmIyY2ZhZjE3NGI5NWJhNzllMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjE5OjUwIDIwMTEgKzAxMDAKCiAgICBBZGQgU05NUDo6cmVnaXN0ZXJfZGVidWdfdG9rZW5zKCkKCmNvbW1pdCA3YmVhZDljYTkxN2M2NzU2NmQ1ZWQ5OGFiNTA3YmJjMDI4MTYyMTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowODowOCAyMDExICswMTAwCgogICAgQWdlbnRYIHN1YmFnZW50OiBSZWR1Y2UgY29kZSBkdXBsaWNhdGlvbgoKY29tbWl0IDBlZDcxNTQxZjg3ZTdkNzhiYzk5OGVlYmRhMzIxN2M1OWUxZGY4MzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAzOjE5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgRG94eWdlbi1zdHlsZSBmdW5jdGlvbiBoZWFkZXIgZm9yIG5ldHNubXBfcmVnaXN0ZXJfZGVmYXVsdF90YXJnZXQoKSBhbmQgbmV0c25tcF9jbGVhcl9kZWZhdWx0X3RhcmdldCgpLgoKY29tbWl0IDhjMjk3MmI2MWU0MDE2OWI0N2M1MDk4OGI2YWU5ZThjMjg1Zjg0ZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAyOjU0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBGaXggc3BlbGxpbmcgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFNOTVAgbW9kdWxlCgpjb21taXQgNWRmMmJhYzZiZDcxNzc5OTMxMWYwMDFhYzdiNzNkYjg4ZjExYmRkYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6NTk6NTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE9ubHkgdHJhbnNmb3JtIHRoZSBhZGRyZXNzIHRvIHByaW50YWJsZSBmb3JtIHdoZW4gbmVlZGVkLgoKY29tbWl0IDE3MWU4ZDQ4ZDRhZjA0MDEzY2ZmOGZkMjhmNTM0MWEyYWVmMjFkODgKQXV0aG9yOiBNaWpvIFNhZnJhZGluIDxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6ICAgVHVlIE5vdiAyOSAxNjo0OTo0NiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcC1icmlkZ2UtbWliOiBGaXggaW5kZXggaW50ZXJwcmV0YXRpb24uCiAgICAKICAgIFRoaXMgcGF0Y2ggY29ycmVjdHMgYSB3cm9uZyBkYXRhIGludGVycHJldGF0aW9uLgogICAgc25tcC1icmlkZ2UtbWliIG9idGFpbnMgdGhlIGlmaW5kZXggdmFsdWUgZnJvbSB0aGUgc3lzZnMKICAgIGF0dHJpYnV0ZSAnaWZpbmRleCcgVGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzeXNmcyBhdHRyaWJ1dGUKICAgIGlzIGFuIGludGVnZXIsIHdoaWNoIGlzIGhhbmRsZWQgYXMgaGV4IGFuZCBsZWFkcyB0bwogICAgaW5jb3JyZWN0IGRhdGEgZGlzcGxheWVkIHRvIHRoZSB1c2VyLgogICAgCiAgICBlLmcuCiAgICAgICAgJCA+IHNubXB3YWxrIGxvY2FsaG9zdCBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yCiAgICAgICAgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMiA9IElOVEVHRVI6IDU0CiAgICAKICAgIGFjY29yZGluZyB0byB0aGUgc3lzZnMgYXR0cmlidXRlIHRoZSB2YWx1ZSBpcyAzNgogICAgCiAgICAgICAgJCA+IGNhdCAvc3lzL2NsYXNzL25ldC88ZGV2aWNlPi9pZmluZGV4CiAgICAgICAgMzYKICAgIAogICAgU2lnbmVkLW9mZi1ieTogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgoKY29tbWl0IDgyZTM5ZmI2NzA2ZGY5MGVjZjJmYzllMTBhZGEyYjk2MmVlMTk2ZjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAyOSAxMjoyNzo0NiAyMDExICswMDAwCgogICAgRml4IG11bHRpLWxpbmUgY2FzZSB0ZXN0aW5nIG9mIGluY29taW5nIE9JRAoKY29tbWl0IGIxNWRhMWE0NTE2MDYxMTA1YTFlYWM3NDUwY2Y2NTBlYzQ0MjY2YjIKQXV0aG9yOiBOaWtvbGF5IERlbmV2IDxuZGVuZXZAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6Mjk6NDkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFJlc3RvcmUgSVBfUkVDVkRTVEFERFIgZnVuY3Rpb25hbGl0eS4KCmNvbW1pdCA3ZjQ3ZjUyZTQ4MWJhYTlhYWZiNTc4NDI0NGIwZGQyNjUzZTdkY2ZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiAyOCAwODo1MTozOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIFNOTVBfQUxMT0NfVFlQRURFRiB0byBhbGxvY2F0ZSB0cmFuc3BvcnRzIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBzZXBhcmF0ZSBjYWxsIHRvIG1lbXNldC4KCmNvbW1pdCBjZjg2MDM5ZTMwODYyMjVjMzA4NWJiOWFkZjA4OGI4YmE1YmE2OTc5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNTowMjo1OCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIgcGFzcy4KCmNvbW1pdCAxYTg3ZTc2ZTAwZWUzZDVjZDM3YTA3YmZjM2Q4NDQ5MGQzYzJhNGVjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNDo1NTo0MiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMDE0Z2V0aG9zdGJ5YWRkcl9jbGliIHBhc3MKCmNvbW1pdCA4ODY3ZmQxZGNmZTcyYjU5ZDA3MzIyZmYzOGE2OTliNjZlYzRmMzI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAwOTo0NDozOCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSByb2J1c3QgYWdhaW5zdCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlcy4KICAgIAogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBORVRTTk1QX0xBUkdFX0ZEX1pFUk8oKSB1c2UgbWVtc2V0KCkgb24gVW5peCBzeXN0ZW1zIGluc3RlYWQgb2YgYW4gZXhwbGljaXQgbG9vcC4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2Ugc3VyZSB0aGF0IG9uIFVuaXggc3lzdGVtcyBuZXRzbm1wX2xhcmdlX2ZkX2NscigpIGRvZXNuJ3QgdHJ5IHRvIHJlYWQgbWVtb3J5IGl0IGlzbid0IGFsbG93ZWQgdG8gcmVhZCBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9pc19zZXQoKSByZXR1cm4gZmFsc2Ugb24gVW5peCBzeXN0ZW1zIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgQ0hBTkdFUzogV2luZG93czogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBzaHJpbmsgYmVoYXZpb3IgY29ycmVjdC4KCmNvbW1pdCAyM2RiMGNmMDliOGIwZWFiMzdiNzQ5ZWYwYzNjM2YzMDY5MDAyNDVjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAyMSAyMzowMjo1NyAyMDExICswMTAwCgogICAgRml4IGNhc3RpbmcgdHZfdXNlYyB0byBpbnQgd2hpY2ggbWF5IGJlIHRvbyBzaG9ydAoKY29tbWl0IDgwZWU0MDIyZTUzNGU2NGFhZDVhNWYyNzE5Mjg0M2I0MmFjYjg1ZTAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA5OjE0OjAyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDM5MjM0OiBNb3ZlIG5ldHNubXBfcGFzc19zdHJfdG9fZXJybm8gdG8gcGFzc19jb21tb24gYW5kIHJlbmFtZSBpdCB0byBuZXRzbm1wX2ludGVybmFsX3Bhc3Nfc3RyX3RvX2Vycm5vCgpjb21taXQgMGJhYTkyOTZjMDcyYmIzNzM1NzYwYjBkZDk5MmYyZDFkM2NhMjdmYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MDU6MjQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IENvcnJlY3QgdGhlIGRlcGVuZGVuY2llcyBvZiB1Y2Qtc25tcC9wYXNzIGFuZCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QKCmNvbW1pdCAxYWE3MDRlNGEyOTQ0MzBiMjhlMzliNmY5ZTQ2ODNiOGE0OGJjZTA0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwODozNToyMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZhY3RvciBvdXQgYXNjMmJpbiBhbmQgYmluMmFzYy4gQWRkIGEgbmV0c25tcF9pbnRlcm5hbF8gcHJlZml4IHRvIHRoZW0KCmNvbW1pdCBjZGE4ZmU5MTAxM2YxMmNiZjY0YTA3NzVhYmI1NTcyMDAzNWFmOTMxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwMDo1NToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IENhbGwgc25tcF9vaWR0cmVlX2NvbXBhcmUgaW5zdGVhZCBvZiBzbm1wX29pZF9taW5fY29tcGFyZQogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzbm1wX29pZF9taW5fY29tcGFyZSBzaW5jZSBpdCBpcyBpbnRlcm5hbCBhbmQgdW51c2VkCgpjb21taXQgODVmODkzZTJiNjA1ZTY3ZjliZDA0NDNjNzRlMmVkMjY5YWE2ODU2NApBdXRob3I6IE5pa2kgRGVuZXYgPG5pa2lfZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAxNyAyMjo0MjozMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKICAgIAogICAgVGhpcyBodW5rIGZlbGwgb2Ygd2hlbiB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggd2FzIG1lcmdlZC4KCmNvbW1pdCA1YzkxM2U1NDY1NmFlMDA5NmIxZmViNmRhOThiNWZjOWNhODFmMjc2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMzowNyAyMDExICswMTAwCgogICAgRGVmaW5lIHRoZSBmdWxsIE5ldEJTRCBoaWVyYXJjaHkgZG93bndhcmRzCgpjb21taXQgYjg4MTg0MWJkMDQ5M2RkNzFkNjMyNTliZGRlZDQ0OWIwNmYwMmMzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MzA6MzMgMjAxMSArMDEwMAoKICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKCmNvbW1pdCBjYTI5NGNmNzViYmM4ZTkwZGJmNDRlZTQwNDc4OTM1ZTkxZGIxNDg3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxODowMyAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCBjZDMyYzJkZmYwNmI5YjQ1MmNjMThkNTUyZDJmMjIzNDA5MmM4MjljCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNzowOSAyMDExICswMTAwCgogICAgRml4IGZvcm1hdCB3YXJuaW5nCgpjb21taXQgODgzMTM2YzJiMmZhMDczOWY0MzdhOGNmYjY2MTRhY2NjNzZlMjY4ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTU6NTggMjAxMSArMDEwMAoKICAgIE1vcmUgbmVlZHMgZm9yIE5FVFNOTVBfUFJJbyBmb3JtYXQgc3BlY2lmaWVyCgpjb21taXQgYjgwODRhN2NjYzkwOWI2ZDZkYjdjMGU4ZTU5NmQ3ODY3MWY1Njc4YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTQ6MjYgMjAxMSArMDEwMAoKICAgIEZpeCB1c2luZyBjaGFyIGFzIGFycmF5IGluZGV4IChjdHlwZS5oKQoKY29tbWl0IDg0NTI5ZTYzMjBhODlkOTdmMTMxNGFlYmFkODA2MjU1ZDJhMWIxOGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjAwOjU3IDIwMTEgKzAxMDAKCiAgICBGaXggbWlzc2luZyBmb3JtYXQgZm9yIEZyZWVCU0QgNAoKY29tbWl0IDRiZDAzNTI5NTVhMjU1MWJmZTAyMzA4ZGQxMzRiOTEyOGM5OGI5ZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU5OjM2IDIwMTEgKzAxMDAKCiAgICBGaXggcGFyYW50aGVzaXMgcHJvYmxlbQoKY29tbWl0IGZlNjI2OWIxOTAwY2Y0NGRjMjdhMTk5YTc2MWQxNWEwMWMzZjMwOTIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU4OjM0IDIwMTEgKzAxMDAKCiAgICBGaXggc2l6ZV90L2ludCBtaXNtYXRjaGVzCgpjb21taXQgYTRkYjlmOWZjMTNkMjFlY2ZmNDg4ZWI0MTAzNzZlZGRhNmMyODIzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6NDM6MzQgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6Mzc6NDkgMjAxMSArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncwoKY29tbWl0IDI1Y2ZjMTk2MmFlNTc2Y2NiMTU1OGRhMWUzZWY4YjZjMTdmNjNjMTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDExOjI3OjUzIDIwMTEgKzAxMDAKCiAgICBSZWFsbHkgdXAtdG8tZGF0ZSBtaWJzCgpjb21taXQgMGU4NmM3ODFmMzk4OWJmMDIyYzg5OTNhMTE4NjE3Yjc0YTc1NDIwYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTc6MTkgMjAxMSArMDEwMAoKICAgIG1lbW9yeV9saW51eDogZ2V0IFNobWVtIGZyb20gL3Byb2MvbWVtaW5mbyBmb3IgMi42IChvciBuZXdlcikga2VybmVscwoKY29tbWl0IGJmMjY0ZDE1ZGVkN2FjYmJmMmUzODcxYjk4ZmQxZmNlZjQzZDllYzMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE2OjE2IDIwMTEgKzAxMDAKCiAgICBtZW1vcnlfbGludXg6IGNsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDU3ZmY4YTQwYmFlNWQ5YmNhZDE2MDg5MTQyYTljZjMyOGM5ZmExZjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE0OjU3IDIwMTEgKzAxMDAKCiAgICBkaXNtYW4vcGluZywgZGlzbWFuL3RyYWNlcm91dGU6IENsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDhhMjUwMmExNWMzMjE3Yjk1OTM5YTNjODM2MTY3ZDIzMGFjMzVmMDIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjEzOjUzIDIwMTEgKzAxMDAKCiAgICBVcC10by1kYXRlIGxpc3Qgb2YgUkZDcyB3aXQgbWlicwoKY29tbWl0IGRjZGQ3MDIxMTFkOGRhNWY1MzgwNGNmY2YwZGZkYWQ3MzE0NjhiZGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAxNSAxMDo1NzozNCAyMDExICswMDAwCgogICAgRG9uJ3QgdHJ5IHRvIGluc3RhbGwgYW4gZW1wdHkgbGlzdCBvZiBtYW4gcGFnZXMgKE1BTjMpCgpjb21taXQgYmE2MTk4MDRlNTk3OGE4ZGY3NTQ4NDRlZmNjYTUyYjY5YjUwMTVmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTM6MzQ6MjAgMjAxMSArMDEwMAoKICAgIE1pbkdXOiBNYWtlIHN1cmUgdGhhdCB0aGUgYmFja3NsYXNoZXMgaW4gdGhlIHBza2lsbCBtZXNzYWdlIGFyZSBkaXNwbGF5ZWQuCgpjb21taXQgOTIzZWVjYzUwN2Y3NTA0M2I2MGM1ZTY4MDUzYTRmMzk2YWIwYjBkMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTI6MzY6MzggMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4IGZvciBzeXN0ZW1zIHdoZXJlIHVpbnQ2NF90ID0gdW5zaWduZWQgbG9uZyAoZS5nLiBSSEVMIDYuMS94ODZfNjQpCgpjb21taXQgNDM0YmZjMWY3NDU3NTUwYjZmODdkNWJjZDUxMTI3NmIyNzBiNTk2NApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDE0IDExOjIyOjUzIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZnJvbSBNYXJ0aW4gV2lsY2s6IGZpeGVkIHNubXBkIGNyYXNoaW5nIHdpdGggJ3NlbGVjdDogYmFkIGZpbGUgZGVzY3JpcHRvcicuCiAgICAKICAgIE9uIDMyLWJpdCBzeXN0ZW1zLCBzbm1wZCBkaWVzIHdpdGggYWZvcmVtZW50aW9uZWQgbWVzc2FnZSB3aGVuIHVzaW5nIGZpbGUgZGVzY3JpcHRpb25zID4gMzIsIGUuZy4gd2hlbiBoYXZpbmcgPjMyIEFnZW50WCBzdWJhZ2VudHMuCgpjb21taXQgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDE6MjEgMjAxMSArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciBjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKCmNvbW1pdCBlYWNhNzk4M2UzNjU1YWI2OTZmY2M0NDYxY2EwY2VkYmFjNmNlNjlhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxOTowMDoxMiAyMDExICswMTAwCgogICAgTmV0QlNELTY6IE9uZSBtb3JlIGluc3RhbmNlIG9mIHRpbWVzcGVjIHJlcGxhY2luZyB0aW1ldmFsCgpjb21taXQgOGFkNmM1M2ZkZWM1YWRlYWU0ZTUyZjE3NTFlY2VjNGEzNDViYWIwNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTk6MDEgMjAxMSArMDEwMAoKICAgIEZpeCBidWlnICMzNDM2NTI3OiBhcnBfbmV0bGluazogZml4IGR5aW5nIHJlbG9hZCBvZiBjYWNoZQoKY29tbWl0IDM3OGZmZWQwM2JhNzlhODM0NmQ2YzYyNzgxZTJkZGY1Y2U5MmE0NzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE4OjU1OjQzIDIwMTEgKzAxMDAKCiAgICBGaXggYnVnICMzNDM2NTI4OiBzd2luc3RfcGtnaW5mbzogcmVjb3ZlciBmcm9tIE5VTEwgcmV0dXJuIGZyb20gb3BlbmRpcgoKY29tbWl0IGQ3YWQ4ZjVmOWYzZjY3ZjE2ZjY1YzI1MTVkMTFlMTk0ZDJjZGQxMmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBDeWd3aW46IE1ha2UgZGF0ZV9uX3RpbWUoKSBwcm9kdWNlIHRpbWUgem9uZSBpbmZvcm1hdGlvbgoKY29tbWl0IGJhMzVjNTBiMmY0NTliZDljMTFlZDU5Y2M3ZDFiMTYyMTU2NDRmYTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjE3OjA0IDIwMTEgKzAxMDAKCiAgICBSZXBsYWNlIEFDX1RSWV9MSU5LKCkgYnkgQUNfTElOS19JRkVMU0UoKQogICAgCiAgICBOb3RlOiB0aGVzZSBjaGFuZ2VzIGRvIG5vdCBhZmZlY3QgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0LgoKY29tbWl0IGY2MTViZjI0ZjVkMGYyM2NlOTMwMWRhNTU2MTg0ZDY0NjA3NDA0NTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzI6NDkgMjAxMSArMDEwMAoKICAgIEZpcyBCdWcgIzM0MzQ4MjQ6IFNJR1NFR1Ygd2hlbiByZWFkaW5nIGRpc2sgZGlyZWN0aXZlIGFmdGVyIFNJR0hVUAoKY29tbWl0IGE5NGExNzlkOTM0MGY1MWZhN2MyMzQzMTYzMGJjMGZmZDZkNzU5ZTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzA6NTEgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzM2MTY6IGRvbnQgdHJlYXQgRGF0ZUFuZFRpbWUgYXMgYSBzdHJpbmcKCmNvbW1pdCBiMjllNDE2NDUzMWQyNThmZTM0YTZmZTJiOWUxZWM2MGM1NmY5NTQ0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiA3IDAxOjI1OjU3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgZTIyMWU2NWZkYzFjNjhmMTk2ODY1MTcxN2RjYzljY2ZiNjQxNDc4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxNTowNTowMCAyMDExICswMTAwCgogICAgRml4IHdhcm5pbmdzIGFib3V0IGNvbnZlcnRpbmcgc29ja2FkZHJfaW4gKiBpbnRvIHNvY2thZGRyICouCiAgICAKICAgIFRoaXMgaXMgYSBmb2xsb3ctdXAgZm9yIGNvbW1pdCBhMGFmMzg1LgoKY29tbWl0IDJlN2U5ZWRhMGIwZDYyYTc2NDVhOWE4ZjcwZWYzZmI2ZjNkZDY5NDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDMgMTE6MTc6NDggMjAxMSArMDEwMAoKICAgIEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmdzLgoKY29tbWl0IDM0NjJlYmNkZDBiN2MyOThjYjE1YzMwOTk3MzZmNGY5NTIyNTc4NDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDI4IDE2OjA3OjE1IDIwMTEgKzAyMDAKCiAgICBSZW1vdmUgdGhvc2Ugc3VwZXJmbHVvdXMgcGFyZW50aGVzZXMgdGhhdCB0cmlnZ2VyIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCAzZTVmZWRkM2U3ZDFlZjMxNjgzNjA0YmY3M2RjNTZlOTQ0Y2FkMzQ5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBOb3YgMyAwOTo0NToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgYWZ0ZXIgMzAgZGF5cyBvZiB1cHRpbWUuCiAgICAKICAgIEFmdGVyIDMwIGRheXMsIHZhbHVlcyBmcm9tIC9wcm9jL3N0YXQgKG9uIExpbnV4KSBjYW4gZ2V0IGJpZ2dlciB0aGFuIDMyYml0cyBhbmQgc25tcGQgY2FsY3VsYXRpb25zIG1pZ2h0IHJlbmRlciBjb3VudGVycyBsaWtlIHNzQ3B1VXNlciBuZWdhdGl2ZSBvciB6ZXJvLCB3aGlsZSB0aGUgcmVhbCB2YWx1ZSBpcyBoaWdoZXIuIFRoZXJlZm9yZSB0aGUgY291bnRlcnMgc2hvdWxkIGJlIHRyYWNrZWQgYXMgdGhlIGxhcmdlc3QgaW50ZWdlciBhdmFpbGFibGUuCgpjb21taXQgMGZjODIyMWIyNDk4OGM0YWU2MTgwZWQ0MmI4NmI5ODUyZmQ1ODZhZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMiAyMjo1OTowOCAyMDExICswMTAwCgogICAgZHNrSW5kZXggd2FzIG9mZiBieSBvbmUKCmNvbW1pdCBhNWIyODgyOWU2NGQ1ZjNiODdlNGI5YjFlZjhjYzIwNGYzM2E2MWI3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIxOjI1OjA3IDIwMTEgKzAxMDAKCiAgICBTb2xhcmlzIG5lZWRzICRBV0sgdG8gZ2V0IGEgdXNhYmxlIG5hd2sKCmNvbW1pdCAyODAxYTIxMzlmMjcwMjFlMWFiMTVlMzYyZTJkM2Q2MjRmZmFhNDk0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo1NTo1MyAyMDExICswMTAwCgogICAgUGF0Y2ggIzM0MDYzNjQ6IEZpeCB1bnN0YWJsZSBkYXRhIGZvciBOZXRCU0QuCgpjb21taXQgODIxYTU4ZDExMmQ3YWM0OTUxNDllMjYyZDcwNDQxMmJhMjgwMDQzOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMzEgMjI6NDM6NTIgMjAxMSArMDEwMAoKICAgIEZpeCBpcHY2IHN0YXRpc3RpY3MgbG9vcGluZyB0b28gZmFyIHdoZW4gc2Nhbm5pbmcgaW50ZXJmYWNlcy4KICAgIEZpeCBUQ1Agc2Vzc2lvbiB0YWJsZSByZXBlYXRpbmcgZGF0YSBmcm9tIGZpcnN0IGVudHJ5IGZvciBhbGwuCgpjb21taXQgMzQ5NTkxZDAzZTE3YTU1YjQzZWFjYzZhNjg3YjAyZmQ4ZDRlOTUyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBPY3QgMzEgMDg6NTk6MzcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgcGVybCBzdXBwb3J0IHdpdGhvdXQgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzLgoKY29tbWl0IDFlYzcxMTBlNzJiY2UxNTYxZjc0NjUxNzQ1OWQ2ZjA0MzAxNmI2MGUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDMwIDE5OjA1OjMwIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHRoZSBhc24xIHRlc3QgcGFzcyBldmVuIGlmIHN1cHBvcnQgZm9yIG9wYXF1ZSB0eXBlcyBhcmUgcmVtb3ZlZC4KCmNvbW1pdCA2ZDI2OTE4YWY1NWFhMzY2MmE3MjA1NDJkZTc3YmJmMzliMGEzZTkxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAyOSAwODozNDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERpc2FibGUgdGhlIHN1cHBvcnQgZm9yIGludGVnZXI2NCBpbiBwYXNzIHNjcmlwdHMgaWYgY29tcGlsaW5nIHdpdGhvdXQgb3BhcXVlLXNwZWNpYWwtdHlwZXMuCgpjb21taXQgMjliZjY5ZDcwNDI0ZjM1OWQ5Yzg3ZjA3YTk2NGEwOTk0MTU2NDlhNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KICAgIAogICAgVGhpcyBpcyBhIGJhY2twb3J0IG9mIGNvbW1pdCA5ZjY1M2Y3LgoKY29tbWl0IDJjYzk1MDRiOWJiODYyNWI5NGJlNmNkYTdlNjA5OTNkMDU5Y2Q5MjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjAxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0Mjg1MDY6IEZpeCBuZXRzbm1wX2dldGhvc3RieWFkZHIoKQogICAgCiAgICBUaGlzIHBhdGNoIHNob3VsZCBmaXggdGhlIHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgYnkgY29tbWl0IDg1ZDk2YzQgKE1heSAxMywgMjAxMSkuCgpjb21taXQgOWI0MjdiMzUzZjFjZWI4ZmU4N2U2ZmM4ZWQzYjZjZmFiM2NlN2YyMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBPY3QgMjcgMDg6MjA6MDAgMjAxMSArMDIwMAoKICAgIE1pbkdXOiBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBNaW5HVydzIGtpbGwuZXhlIGFuZCB0aGUgU3lzSW50ZXJuYWxzIHBza2lsbC5leGUKCmNvbW1pdCAyYzQ1ZjkyY2ZjYjViMDVlMDQ5MjI2YTVhNzg4M2EwYjEwNjAxMWFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAxMDo0MjoyOSAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHBhc3NpbmcgYSBjb25zdCBwb2ludGVyIHRvIGEgZnVuY3Rpb24gYWNjZXB0aW5nIGEgbm9uLWNvbnN0IHBvaW50ZXIuCgpjb21taXQgMjc1ZDIzZWRmZGViZTA1NzdiMDg0MjFlNGM2YzkzNmFlMzliN2ZkYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MzM6MDkgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzZXQtYnV0LW5vdC11c2VkIHZhcmlhYmxlcwoKY29tbWl0IDQ0OTVlMTdjMDc4YWM2OTk3YTljN2ZhMWE4OGRiMDY0NGU5MTk0OTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMyOjQ2IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0Cgpjb21taXQgMTM5NTJmNmJlZTlmNDA4ODY3YWI2ZDJmZGZkZGU0ZjI4NDA3NDk1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDI2IDE0OjA1OjE2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIFNpZGRoZXNoIFBveWFyZWthcjogcHJvcGVybHkgY2xlYW4gdXAgb2xkIHJlcXVlc3RzIGluIGEgc3ViYWdlbnQgd2hlbiB3ZSByZWNvbm5lY3QgdG8gbWFzdGVyLgogICAgCiAgICBBbiBzbm1wIHN1YmFnZW50IGxpbmtlZCBhZ2FpbnN0IG5ldC1zbm1wLWxpYnMgbWF5IGNyYXNoIGlmIGl0IGhhbmRsZXMgYQogICAgcmVzcG9uc2Ugd2hpY2ggaGFzIG1hZ2ljIHJlZmVycmluZyB0byBhbiBvbGRlciBkaXNjb25uZWN0ZWQgbWFpbiBzZXNzaW9uLiBUaGlzCiAgICBtYXkgaGFwcGVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICBhdHRlbXB0cyB0byBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgb24gcmVjb25uZWN0aW9uIG9mIHRoZSBkaXNjb25uZWN0ZWQgbWFzdGVyCiAgICBzZXNzaW9uLgoKY29tbWl0IGFlMDUyNDcyYjIyNzIwZDA4MzY5ZTg1MTI3ZGIyMTQyNDVkZjJlM2YKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCAyNSAxNjoxNToxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogZml4ZWQgc2VnbWVudGF0aW9uIGZhdWx0IHdoZW4gaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHMuCiAgICAKICAgIFdoZW4gbmV0c25tcF9yZWdpc3Rlcl9oYW5kbGVyIGZhaWxzLCBpdCBmcmVlcyBpdHMgcmVnaW5mbyAtPiBuc2Focl9ERVNUUk9ZIChhbmQgYW55IG90aGVyIGZ1bmN0aW9uKSBtdXN0IG5vdCBkZXJlZmVyZW5jZSBpdC4KCmNvbW1pdCBjMTk5YmY5MWI2MjM5ZjI2YjJhYWIzNGU4NTc1ZTBmMGRmOWNkZTliCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjQgMTQ6MjU6MjggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiB4ZnMsIGpmcyBhbmQgdnhmcyBmaWxlc3lzdGVtcyBhcmUgbm93IHJlY29nbml6ZWQgaW4gaHJTdG9yYWdlVGFibGUKCmNvbW1pdCA3NDdmZGM3MWU2NGQwOWUwODA5MjhlYmJiNGQwNGNiZGUzOTA2Nzk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgNSAxNTo1Nzo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IExvd2VyZWQgc2V2ZXJpdHkgb2YgJ2Vycm9yIGZpbmRpbmcgcm93IGluZGV4IGluIF9pZlhUYWJsZV9jb250YWluZXJfcm93X3Jlc3RvcmUnIG1lc3NhZ2UuCiAgICAKICAgIFRoZSBtZXNzYWdlIGlzIHNob3dzIHVwIHdoZW4gc25tcGQgaXMgc3RhcnRlZCBhbmQgdGhlcmUgaXMgZGlmZmVyZW50IHNldCBvZiBuZXR3b3JrIGludGVyZmFjZXMgdGhhbiBpdCB3YXMgd2hlbiBzbm1wZCB3YXN0IGxhc3Qgc3RvcHBlZC4gVGhpcyBpcyBjb21tb24gb24gcHBwLXNlcnZlcnMgb3IgdmlydHVhbCBob3N0cy4KCmNvbW1pdCAyNTBmNjk4ZTU5ZWFiOWYxZmZkMzMyZmY1OWZkYjcyZWEwZGYwNmZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyMyAwODo1MToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgdGhlIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGNvZGUgd29yayBhZ2FpbgogICAgCiAgICBQcmV2aW91c2x5IHRoZSB0cmFuc3BvcnQgaW5oZXJpdGFuY2UgcHJvY2Vzc2luZyBjb2RlIHJhbiB3aXRoCiAgICBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTkcgc2V0LiBJbiB0aGlzIG1vZGUgdGhlIGZpbGUgbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmgKICAgIGlzIHJlcXVpZXJlZC4gVGhhdCBmaWxlIGlzIGNyZWF0ZWQgZHVyaW5nIHRoZSBmaXJzdCBtYWtlIHJ1biwgYW5kIHRoYXQgaGFwcGVucwogICAgYWZ0ZXIgY29uZmlndXJlIGlzIHJ1bi4KICAgIENoYW5nZSB0aGlzIHRvIHVuZGVmaW5lIE5FVFNOTVBfTUlOSU1BTF9DT0RFLCBlZmZlY3RpdmVseSB0dXJuaW5nIG9mZiBmZWF0dXJlCiAgICBzdXBwb3J0IGR1cmluZyB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBtYWtlIGl0IHdvcmsgYXQgYWxsLgoKY29tbWl0IDZlZjY5MDc2NDIyNDdjNjYzYjliODk2NGI5ZmQ0NGEyMTFkYmNhYTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgT2N0IDIwIDIwOjMwOjU0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDA4Mzk4OiBGaXggYSBtZW1vcnkgbGVhayBpbiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLgogICAgCiAgICBUaGlzIG1lbW9yeSBsZWFrIHdhcyBpbnRyb2R1Y2VkIHZpYSBjb21taXQKICAgIDliZjNkOTZkOTZhOGVjZDRhNWZjMzVjMzI2ZGM5Mzc0NjcwMDJiNmM6IEluaXRpYWwgSEFMCiAgICBpbXBsZW1lbnRhdGlvbiBvZiBGaWxlU3lzdGVtIGluZm9ybWF0aW9uIChNYXJjaCA3LCAyMDA4KS4KCmNvbW1pdCBjZjgyYjg5NGIyMjE3YzI2ZWRjNmYxMzU2MzUxYzkzMjQxNTYwNGUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IE9jdCAxNSAxNDo0NTowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDIzOTE1OiBDaGFuZ2UgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBiYWNrIGZyb20gMCB0byA1CiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCB2aWEgY29tbWl0IDZjYWMwNTAgKE1heSA1LCAyMDExLAogICAgYWRkZWQgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyB0aGUgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBpbgogICAgc25tcGQuY29uZikuCgpjb21taXQgYzExYWRhYTEyOTE1YWJmZWU2MjliYjZjMDI2YzIxZjIxODViMjE2ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjQ6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IGNvbXBpbGluZyB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiB3aXRoIHRoZSBNaW5HVyBnY2MgY29tcGlsZXIgdHJpZ2dlcnMgd2FybmluZ3MgYWJvdXQgInByYWdtYSBjb21tZW50Ii4KCmNvbW1pdCBiMTdhNzJhNzkzNDgzYWVlNGE1YmIyZjJlMmM3ZjRmZDg2OTgxN2U2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyMjoyMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgdGhlIFBBQ0tBR0VfKiBtYWNyb3MgZGVmaW5lZCBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhdXNlIHRyb3VibGUgd2hlbiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIgaW4gYSBwYWNrYWdlIHRoYXQgdXNlcyB0aGUgR05VIGF1dG90b29scy4KCmNvbW1pdCA2NjRkM2FlMTA3ZDc1NDA1MWI4YzQyMjc5ZDQ1OWFhNTdhMWJlMWMzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNjo0NzoxNiAyMDExICswMjAwCgogICAgTWluR1csIGh3X2ZzeXM6IFVzZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmllcnMgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNzdWUgaW50cm9kdWNlZCBpbiBjb21taXQgNzZmZjI1ZC4KCmNvbW1pdCAyMTFkY2I0OTMwNjU2MWUzNWJhM2MyMTNiZTdjZmEyNTdiNDBhOGU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNTo1Mjo0MyAyMDExICswMjAwCgogICAgQXZvaWQgdGhhdCBnY2MgNC42IGNvbXBsYWlucyBhYm91dCBzZXQgYnV0IG5vdCB1c2VkIHZhcmlhYmxlcwoKY29tbWl0IDlmNjUzZjczZTVhYTcwZjBiZWYxMTc0NjMyZTk1NTk0Zjg3ZjY2OWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDEzOjAyOjI1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCgpjb21taXQgNGM4M2I5MjI5YTc0NTRmMzRmNmZmNzVmNjllNjdlNDAzMGM0MTliNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNTo1ODo0NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2V0IHRoZSBycGF0aCBmb3IgbGlicGVybC5zbyBpbiBsaWJuZXRzbm1wbWlicy5zbyBzdWNoIHRoYXQgdGhlIGR5bmFtaWMgbGlua2VyIGNhbiBmaW5kIGxpYnBlcmwuc28gd2l0aG91dCByZXF1aXJpbmcgdGhlIHVzZXIgdG8gbW9kaWZ5IHRoZSBkeW5hbWljIGxpbmtlciBzZXR0aW5ncy4KICAgIAogICAgVGhpcyBjaGFuZ2UgaW4gYWdlbnQvTWFrZWZpbGUuaW4gaXMgbmVjZXNzYXJ5IG9uIHRoZSA1LjUgYnJhbmNoIGFuZAogICAgbGF0ZXIgYnV0IG5vdCBvbiB0aGUgNS40IGJyYW5jaC4gVGhhdCBpcyBiZWNhdXNlIHRoZSA1LjQgYnJhbmNoIHVzZXMKICAgIGFuIG9sZGVyIHZlcnNpb24gb2YgbGlidG9vbCB0aGF0IHByb3BhZ2F0ZXMgdGhlIHJwYXRoIG9mIGRlcGVuZGVudAogICAgbGlicmFyaWVzLiBUaGlzIGlzIGNhbGxlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY3kgdHJhY2tpbmcgaW4gdGhlCiAgICBsaWJ0b29sIG1hbnVhbC4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHByZXNlbnQgaW4gbGlidG9vbCB2ZXJzaW9uIDEKICAgIGJ1dCBub3QgaW4gbGlidG9vbCB2ZXJzaW9uIDIuIEZvciBtb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24gYWJvdXQKICAgIGR5bmFtaWMgbGlicmFyaWVzIGFuZCBycGF0aHMsIHNlZSBhbHNvIHRoZSBkb2N1bWVudCB3aXRoIHRoZSB0aXRsZQogICAgIlJwYXRoSXNzdWUiIG9uIHRoZSBEZWJpYW4gd2lraSAoaHR0cDovL3dpa2kuZGViaWFuLm9yZy9ScGF0aElzc3VlKS4KCmNvbW1pdCA4OTI1YzkxMmQyNjM5NzUyYTg0YmNmZmVlZjFiNzBhODEwMjY0NDliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE0OjIxOjI4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogSE9TVC1SRVNPVVJDRVMtTUlCOiBBZGQgbWlzc2luZyBicmFjZSBpbiBhIGRlYnVnIHN0YXRlbWVudAoKY29tbWl0IDc2ZmYyNWQ5YmY5NzU3OWU3MjEzMTAyMDY1ZmQ1MDk2ZjA0OWE0YzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTQ6MTM6MTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3RvcmFnZVRhYmxlOiBmaXggYnVnIGluIGhhbmRsaW5nIGxhcmdlIGZpbGVzeXN0ZW1zLCB3aGVyZSBsYXJnZSBtZWFucyBhYm92ZSA4IFRCICg9IDIqKjMxICogNDA5NiBieXRlcykuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQKICAgIDcxZDgyOTNmMzg3YTZjZDY2YmIwZGJiMTNjMGY1MDE3NGQyZTY3OGIuCiAgICBGb3IgdGhlIG9yaWdpbmFsIGJ1ZyByZXBvcnQsIHNlZSBhbHNvCiAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyLz9mdW5jPWRldGFpbCZhdGlkPTExMjY5NCZhaWQ9MzQxOTgyNSZncm91cF9pZD0xMjY5NC4KCmNvbW1pdCA4NjYwMzNkYjk5MDRmZmIxMjAzZjI4M2Y4MzgwOTJlNGNmNjhkZTZiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDA3OjMzOjI3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNwdXJpb3VzICNlbmRpZiB0aGF0IHNlZW1zIHRvIGJlIHRoZSByZXN1bHQgb2YgYSBtaXNtZXJnZS4KCmNvbW1pdCAyMGY0ZjMyNjdlZTIwZDU1NzA1YjdhNDM3ODk4NzljMTAzZjk2NjIwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDAwOjA4OjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIG1pc3NpbmcgZW5kIGNvbW1lbnRzIHRvIGZlYXR1cmUgaWZuZGVmcy4KCmNvbW1pdCBlNWRlMmNjNTdiZjMwNGYzMzIwY2FkMDAzNGQyZWEyZDhhZWRjNDM2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA5OjE1OjEwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogTG9nIGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIGlmIGVtYmVkZGVkIHBlcmwgaW5pdGlhbGl6YXRpb24gZmFpbHMKCmNvbW1pdCA1ZWVmOTk5MGRlMjhmNjMxMTFlNmMwOTNiZTBmM2M3YWUyZDUxM2ExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ1OjQ5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBBZGQgYWdlbnQ6OnVwdGltZSgpCgpjb21taXQgNjgxMGVkNDJmOWJjNTYwNzUwZDZkYmZiN2U1MGI2ZTJhYzExODk5YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTE6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IEN5d2luOiBhZ2VudDogSW1wbGVtZW50IGdldF91cHRpbWUoKSBzdWNoIHRoYXQgcXVlcnlpbmcgSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN5c3RlbVVwdGltZSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUuCgpjb21taXQgOTcxNzJiMzExZDIwZjQ0NDFjN2E3ZTkwMDkyYjU5YzFlMGRhOTlmNwpBdXRob3I6IFRob21hcyBKYXJvc2NoIDx0amFyb3NjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ2OjM5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBQQVRDSDogMzQxODY0OTogSE9TVC1SRVNPVVJDRVMtTUlCOiBVc2UgcGNsb3NlKCkgaW5zdGVhZCBvZiBmY2xvc2UoKSB0byBjbG9zZSBhIHBpcGUuCgpjb21taXQgNjU5MTkzN2FkYjg1MDAwYzI3MDY5YzRiZTg0Y2Y0Njg4ODM4ZWJjZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNjoxODowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBkZXBlbmRlbmNpZXMgb24gQEZFQVRVUkVUQVJHU0AgdG8gbWFrZSB0aGUgc3VidGFyZ2V0IHdvcmsgYXMgd2VsbC4KCmNvbW1pdCBiOWM4MDEyZWMwMzViYzA4NGYxNzU4NzZmZWNjMzc1MTk1ZjliZTgxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE0OjAyOjU4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIHRhcmdldCB0byBidWlsZCBhZ2VudHh0cmFwIGZyb20gdGhlIHRvcGxldmVsCgpjb21taXQgOTk1NjQ3YzBjZmUwMDQxMjI2MmNjNTc5N2JkZmFlOWQwMGI3MGM3NgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNTo0NDozNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSB0aGUgdXNlIG9mIC1MIGZsYWdzIGZvciBpbnRlcm5hbCBsaWJyYXJpZXMgYXMgaXQgY29uZnVzZXMgbGlidG9vbC4KCmNvbW1pdCA5M2RjMTIzNWEwZGI1OGZmZDI5NjE3Y2ZmMDBkYzExMjYzNzgwMjAyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDExOjMxOjQ2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBtYWtlIGFwcHMgd29yayBhZ2FpbgogICAgCiAgICBhcHBzIGluY2x1ZGUgc25tcHRyYXBkIGFuZCB0aGF0IHJlcXVpcmUgdGhlIGFnZW50IGxpYnJhcmllcyBhcyB3ZWxsLgoKY29tbWl0IGJhNDE0ODhlZDQ0Y2QyM2MyNTk2M2Q0ZmM1NmM0NzY4NTNiMmFiNTkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTE6Mjk6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBXaGVuIHlvdSBzYXkgbWFrZSBsaWJzIHlvdSBleHBlY3QgYWxsIHRoZSBsaWJzIHRvIGJlIGJ1aWx0LgogICAgCiAgICBUaGlzIGlzIGRlbW9uc3RyYXRlZCBieSB0aGUgc25tcHRyYXBkIHRhcmdldCBhdCB0aGUgdG9wIGxldmVsIHdoaWNoIG9idmlvdXNseQogICAgZXhwZWN0ZWQgYm90aCBsaWJzIHRvIGJlIGJ1aWx0IGFuZCBzbyBmYWlsZWQgdG8gY29tcGlsZSBiZWZvcmUgdGhpcyBwYXRjaC4KCmNvbW1pdCAzMDU3YzczZTA5MzQ3M2JlNDYyNTRiY2RmYjRjYTc4OGU0MzJkMWI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMzAgMDc6MzI6NTIgMjAwOCArMDAwMAoKICAgIE5FV1M6IGJ1aWxkaW5nOiBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluIE1ha2VmaWxlLgogICAgJ21ha2UgLWogPE4+JyBzaG91bGQgd29yayBub3cuCiAgICAKICAgIEJhY2twb3J0IHRoaXMgdG8gVjUtNCBhcyBpdCBpcyBuZWVkZWQgZm9yIGNvcnJlY3Qgb3BlcmF0aW9uIGluIHRoZSBzaW5nbGUKICAgIHRocmVhZGVkIGNhc2Ugb2YgbWFrZSBtaWJsaWIgYXMgd2VsbC4KCmNvbW1pdCA2ZWFlMzQwZmEyYTY0MDg2NTkyOTgyY2M1MjczNWJjMDE0ODdkOTc4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAxIDE5OjMzOjUwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogU2lsZW5jZSBsaWJic2QgMC4zLjAgbmFnZ2luZwogICAgCiAgICBJZiB5b3UgaGF2ZSBsaWJic2QgMC4zLjAgaW5zdGFsbGVkIHRoZW4gdGhlaXIgdmVyc2lvbiBvZiBubGlzdC5oIHdhcm5zIGFuZAogICAgdHJpZXMgdG8gbWFrZSB5b3UgaW5jbHVkZSBic2Qvbmxpc3QuaCBpbnN0ZWFkLiBUaGUgcHJvYmxlbSBpcyB0aGF0IHdlIGRvbid0CiAgICBuZWVkIHRoYXQgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IGFzIHdlIGtub3cgaG93IHRvIGRvIGl0IG91cnNlbGYgc28gaXQgYmVjb21lcwogICAgcHVyZSBuYWdnaW5nLiBUaGlzIHBhdGNoIGFkZHMgYSBkZWZpbmUgdGhhdCBjaGFuZ2VzIHRoZSB3YXJuaW5nIGludG8gYW4KICAgIGVycm9yIGFuZCB0aGVuIGZpZ3VyZXMgb3V0IHRoYXQgdGhlcmUgaXMgbm8gdXNhYmxlIG5saXN0LmggYW5kIGlnbm9yZXMgaXQKICAgIGZvciB0aGUgZnV0dXJlLgoKY29tbWl0IGFjMzhjYjUzMWJlZTUwZWRjOGQ0YzgzNGYzMDA1ZjU5OTJjNzcxZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDE5OjAzOjAyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBFbmFibGUgc2VuZGluZyBTTk1QdjIgdHJhcHMgd2l0aCBhbiBlbXB0eSB2YXJiaW5kIGxpc3QKCmNvbW1pdCBhNzVkZTI5NzE1MjdhYzJkMmU4MTIwMjQyOTg2MDJiYjI0MTJmMzM3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQoKY29tbWl0IDg0OGY2MzAwZWZlMzg0OTJmYjQ1NDQ1MWEwMzBmMGI3ZTZmZjhjOWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCgpjb21taXQgYzEzNzQ0NzNlY2Q4ZWM5ZTAzMTAwMTM4NjFlZTE4YzgzZTVkNmM1YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBTZXAgMzAgMDM6Mjk6MzYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFByb3RlY3QgdGhlIHVzZSBvZiAkT1NUWVBFIHRvIGVuc3VyZSB0aGF0ICd0ZXN0JyBnZXQgZW5vdWdoIHBhcmFtZXRlcnMuCgpjb21taXQgN2U5N2EyMDYzM2E1N2VhZTM5ZDAxNWIyMzMzOTQ2M2MzMmY1Zjg0OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjI6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IENvbnZlcnQgc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jIGludG8gdHdvIHVuaXQgdGVzdHMKCmNvbW1pdCA5YzBkZDk4MTc2NDU3MzQyZmZmYWE1ZTc0ZDgwMmUzMTQ1ZWQ3MGU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAwODo1NjoxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKCmNvbW1pdCA1ZmQyNmU0ZmEzZTAwMGVhOWM4MWMzOGFiOTc1Yjc5NDZlZmUyMTU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAyOCAxNzo0OTo1NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkgZmFpbHVyZSB0cmlnZ2VycyBhIGRvdWJsZSBmcmVlLgogICAgCiAgICBGaXhlcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCB2aWEgY29tbWl0CiAgICBhYTRkNDdjMjYwOWU1MjgxOGM5Y2RmMWE4ZTIyMDVkZTlhMzM1YTBhIChzdm4gcjE5NTE1KS4KCmNvbW1pdCBkMjI1MmQwMTY2OTM4MDczMjZmNzJiNjYxMjM2NDlkZWEwMGFmOTE2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVxdWlyZSBhIHNlbWljb2xvbiBhZnRlciBPSygpLCBPS0YoKSBhbmQgUExBTigpCiAgICAKICAgIEFsc28sIGxldCBPS0YoKSBlbWl0IGEgc2luZ2xlIGxpbmUgb2Ygb3V0cHV0IHN1Y2ggdGhhdCBhbGwgb3V0cHV0IGl0CiAgICBwcm9kdWNlcyBpcyB2aXNpYmxlIGluIHRoZSBvdXRwdXQgb2YgIm1ha2UgdGVzdCIuCgpjb21taXQgMTQyMTkyNGI0ODUyMTQyMTkyYzViYjllOTNkZGJmZWQ2OWU5MDhmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMjEgMjI6MjA6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIHdhaXRpbmcgaW5kZWZpbml0ZWx5IGlmIGEgc2Vzc2lvbiBoYXMgdGltZW91dCB6ZXJvCgpjb21taXQgNWYyN2Y0Zjc0YWUyYmQ1YmFmNTAzY2YzMDZiNGY5YTI4NDFhNTdjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDozMjowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IHJ1bm5lcgoKY29tbWl0IDA5NzAzOTU4Y2M1ZWE4NDU5MjlhZTE5ZWY5ZTA4MDRhZWNhYTUxMmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDEyOjQyOjQxIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBdm9pZCBmYWxzZSBuZWdhdGl2ZSBmb3IgVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlIGNhdXNlZCBieSB0aGUgdGVzdCByZXN1bHQgYmVpbmcgcHJlc2VudCBpbiB0aGUgaGV4IGR1bXAgKCJtb3N0bHlfaGFybWxlc3MiKQoKY29tbWl0IDQzOTMwMDI3OWY2ZjMxNDM4NjM4ZDJmMjIyYzI0YzNjODQxZmE2YWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDExOjE2OjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWljcm8tb3B0aW1pemUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMKICAgIAogICAgVGhpcyBtYWtlcyB0aGUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMgY2FycmllZCBvdXQgYnkgdGhlCiAgICBjb25maWd1cmUgc2NyaXB0IHNsaWdodGx5IGZhc3RlciwgZXNwZWNpYWxseSBvbiB0aG9zZSBzeXN0ZW1zIHdoZXJlCiAgICBmb3JrKCkgaXMgZXhwZW5zaXZlIChDeWd3aW4pLgoKY29tbWl0IGJiYzY4MDAwNGExMzc2MDM4ZGZkYzQxNzJkYmU3YjllMzExZmJhNjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDI2IDEwOjE0OjQ1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0ZXN0IFQxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSBwYXNzCgpjb21taXQgNzBiMDZjZjc4OTIwOGVhYTg5MGJmYmNkNjM4YmRiNzc1ZjgxNzA1NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6NTA6NTcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHRlc3Rpbmc6IHBlcmw6IEZpeCBhbiBpbmNvcnJlY3QgbWVzc2FnZSBwcmludGVkIHdoaWxlIHJ1bm5pbmcgdGhlIFBlcmwgbW9kdWxlIHJlZ3Jlc3Npb24gdGVzdHMKCmNvbW1pdCA3MGJjYzhkZTJkMGZjOTJiYmI4NDgxODIzNjMwZmFiOWJjODdhZjc1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAxNiAxNjoxNDoyNCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE9idGFpbiB0aGUgTVNZUyBwYXRoIGZyb20gdGhlIGVudmlyb25tZW50Cgpjb21taXQgNjI2Mjc1ZTJkMWFjYWZhZTcxNDRhMzNlZDMwMWE0MGY1OTZiMzdiMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMTQgMTM6MTQ6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBzdXBlcmZsdW91cyBsaW5rIGxpYnJhcmllcyBmcm9tIHByb2plY3QgZmlsZXMgKCouZHNwKQoKY29tbWl0IDM4ZmMzY2FhOWVlYjM4MDAyNTRiNGY2YWQ2ZjhmNDc2NGMwZjgzZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDIwIDA5OjM0OjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfY2FsbGJhY2tfYWNjZXB0KCkgcmV0dXJuIC0xIChmYWlsdXJlKSBpbnN0ZWFkIG9mIDAgKFNURElOX0ZJTEVOTykKCmNvbW1pdCA2YzhjN2U4YWNhOGZjMmVlYjUyMDEwYWUzZTlmZWU2ZGQ4M2VmNzgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAxMyAwOTo1ODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIG9ic29sZXRlIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uKCkgZGVjbGFyYXRpb24KCmNvbW1pdCAwODYwZDExZmQ4ZmM1ZGJkYWFhZTIyNjFmYWUyYzA3ZmI5YzJjODJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjU0OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBBdm9pZCB0aGF0IHRoZSB0eXBlZGVmcyBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNvbmZsaWN0IHdpdGggdGhvc2UgaW4gPHN0ZGludC5oPiBmcm9tIHRoZSBtc2ludHR5cGVzIHByb2plY3QKCmNvbW1pdCBmOGEwMzZmNjNmZjY4ZjA4MzQzNjEyMGUwYWJkNDc4YjY5MmEyZjYxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjIxOjA2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBXaGVuIGxpbmtpbmcgd2l0aCBPcGVuU1NMLCBsaW5rIHdpdGggdXNlcjMyLmxpYiB0b28KCmNvbW1pdCA4MzZhMjNlMTBjYTgxMGMzODk5OTAyZDMyNTg3NjE2YTlkMTIwM2RmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEp1bCAxNCAxODozODoxMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogTGluayB3aXRoIHByb3BlciBsaWJlYXkzMiBsaWJyYXJ5Cgpjb21taXQgN2IwN2ZkNmNkZWY0OWVjN2JiMDRiMTY2ZTJhNGZiYjM3YjU4Mjg0MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMToxMDozOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIGFuIGluY29ycmVjdCBjb21tZW50IGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2gKCmNvbW1pdCA5OGY2ZDI5ZDk4MWZmOGU2MDc2MDBjNjNkYWRiMjQwNTM1NjI5ODA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjQ5OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIElTREVGSU5FRCgpIGNoZWNrIGZvciBhbiBleGFjdCBtYXRjaCBpbnN0ZWFkIG9mIGEgcHJlZml4IG1hdGNoCgpjb21taXQgNTJjZDAwMzFhMzFmNjkyZjEzMjYzYTk0YzMzNWQwNmJlMTQ1NDgwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGhvc2UgcmVncmVzc2lvbiB0ZXN0cyBwYXNzIGZvciB3aGljaCBTTk1QQ09ORlBBVEggYW5kL29yIFNOTVBfUEVSU0lTVEVOVF9ESVIgbWF0dGVyCgpjb21taXQgZjVjZDg5YmQzMzU2ZGQ3NGUxNTU2YzBiNTA5NjZhNjQzZjE5MjA4NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IGZyYW1ld29yawoKY29tbWl0IGRlZWRkNTJjODM0YTY0NDg4NTJhMDY3ODU1MzZlMTM4NjU5Njk2OTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiBTdXBwb3J0IHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIHJlY2VudCBTaGluaW5nIExpZ2h0IE9wZW5TU0wgYmluYXJ5IGRpc3RyaWJ1dGlvbnMKCmNvbW1pdCBkNTViZDRlMDU0OWYwM2I2ZmQzMjU2MmMyYWE3ZmUzOTI3MmE5ZWY3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxOSAyMDExIC0wNzAwCgogICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0Cgpjb21taXQgYWMyYWVkM2M5NGJiMmViYjQ3M2FmMGExZTIwZjA1NjFhZDYyOTk1NgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTEgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAoKY29tbWl0IDQwMDc5MjA1OTY3YjhlNWFlZWRiMTlmYTNjYjJlN2IyZjc5ODg1NzcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI3IDIxOjUzOjQ3IDIwMTEgLTA3MDAKCiAgICBtYWtlIGRlcGVuZAoKY29tbWl0IGNmMTRhMjI4NTgzYWZmM2M1YWIyZjBkNDRjMmY0YzBmYTViZDY2YWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgU2VwIDI3IDIxOjUzOjE4IDIwMTEgLTA3MDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEKCmNvbW1pdCAxMDE0ZGQ4ZGZiNDhhNWJkMDUzZjA0NTQxZWI5NzI4ZjBiZTA3ZjQ3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAyNyAyMTo0NTowNCAyMDExIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xCgpjb21taXQgMThkMTE2YmEzODhjMWRjOTQ5NTI4ODg0YmIwMDY5OGYxYmFjYWE5NApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMjcgMjE6MTE6NTIgMjAxMSAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEKCmNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIFNlcCAyNiAyMTo0OToyNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEF2b2lkIHRoYXQgc25tcGQgY3Jhc2hlcyBpZiBzdGFydGVkIG9uIGEgc3lzdGVtIHdpdGggYW5vdGhlciBPcGVuU1NMIGxpYnJhcnkgdmVyc2lvbiB0aGFuIHRoZSBvbmUgaXQgaGFzIGJlZW4gYnVpbHQgd2l0aC4KCmNvbW1pdCBhNWYwNjRkZDgyOTk2ZTJiZTNmMWU5NjE2NzAzYWQwMzk1ZmI1YWJhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IFNlcCAyMiAwNzozMzowMSAyMDExIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnJjMwoKY29tbWl0IDU2OTc5NGZjZWI5OWVlZDdiZTgxN2M2NGY4NWNkOTQ1Y2FmOTk1OTIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgU2VwIDIyIDA3OjIwOjA3IDIwMTEgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMwoKY29tbWl0IGM1NWY2MDhmMTZmMTYwZjVlNzlkYzA1N2Y4ODc4ZGVmNDYyOTczZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IFNlcCAyMiAxMDozNToyNCAyMDExICswMTAwCgogICAgRml4IHRoZSBjb2RlIGZvciBwb3B1bGF0aW5nIHRoZSB0YWJsZV90ZGF0YSBjYWNoZSwKICAgIGFuZCBjbGFyaWZ5IGFyZWFzIG5lZWRpbmcgTUlCLXNwZWNpZmljIGFkZGl0aW9ucy4KCmNvbW1pdCAxMzc2M2NmMmM3MWJmOTNmZWMwOTZlZWUwMDQ4NTdjMTViMmNmZmZmCkF1dGhvcjogU3RldmUgRnJpZWRsIDxzdGV2ZUB1bml4d2l6Lm5ldD4KRGF0ZTogICBUaHUgU2VwIDIyIDEwOjA2OjQ1IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogMzQwOTY5MjogQ2FsY3VsYXRlIGRpc2sgcGVyY2VudGFnZSB1c2FnZSB2aWEgZmxvYXRpbmctcG9pbnQgYXJpdGhtZXRpYwogICAgdG8gYXZvaWQgaW50ZWdlciBhcml0aG1ldGljIGVycm9ycy4KICAgIChDb2RlIGJhc2VkIG9uIHBhdGNoLCByYXRoZXIgdGhhbiBhcHBsaWVkIHZlcmJhdGltKQoKY29tbWl0IGVlMGQzYWRiMDc4MjkxYjc0M2M5ZWNiNzZkMjBiNTkxYjdiMTU5NzIKQXV0aG9yOiBTdGV2ZSBGcmllZGwgPHN0ZXZlQHVuaXh3aXoubmV0PgpEYXRlOiAgIFRodSBTZXAgMjIgMDk6NTg6MzkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiAzNDA5NjkyOiBDYWxjdWxhdGUgZGlzayBwZXJjZW50YWdlIHVzYWdlIHZpYSBmbG9hdGluZy1wb2ludCBhcml0aG1ldGljCiAgICB0byBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93IGVycm9ycy4KICAgIChDb2RlIGJhc2VkIG9uIHRoZSBzdWJtaXR0ZWQgcGF0Y2gsIHJhdGhlciB0aGFuIGFwcGxpZWQgdmVyYmF0aW0pCgpjb21taXQgMzY3ZGExNGZjZGIxNDY1OTJkZTY3YzFkNjk5N2EwOTc3NDI1OTY3MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjIgMDg6MDk6MTcgMjAxMSArMDIwMAoKICAgIFRoZSBvbmx5IGNoYW5nZSBiZXR3ZWVuIFY1LjcucmMxIGFuZCBWNS43LjEucmMyIGlzIHRoZSB2ZXJzaW9uIG51bWJlci4gTWFrZSB0aGlzIGNsZWFyIGluIHRoZSBDaGFuZ2VMb2cgZmlsZS4KCmNvbW1pdCBjMjc2ZWViOGYwNDU1YTA4NzBjNGI0NzhkZGU2NDhlODY1MjlhZGQzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyMSAxMzo1MTo1OCAyMDExIC0wNzAwCgogICAgY2hhbmdlbG9nIHVwZGF0ZQoKY29tbWl0IDYzMDUwODM4NjY2ZjY0NWZjMzA2ZGMyZWU0ZjczZjVlZmNlNjNmZWQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDIxIDEzOjM4OjE4IDIwMTEgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMgoKY29tbWl0IGJiZTJjMTlhMDFlY2VjMDI0Zjc0MWUyZTU0NzAxYWU2MjEyZjRjM2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gU2VwIDQgMTQ6NDQ6MzggMjAxMSArMDIwMAoKICAgIFRoaXMgc2hvdWxkIGhhdmUgZ29uZSBvbmx5IHRvIG1hc3Rlci4KICAgIAogICAgUmV2ZXJ0ICJDSEFOR0VTOiBidWlsZGluZzogQ29ycmVjdCBkZXBlbmRlbmNpZXMgLSBzaW5jZSBiZjc0ZmVhNjlmMjRkYzZlODVmOTA4ZjNmNDFkMTQyNmIyZTA5Njg4IHNubXBjb25mIGlzIGxvY2F0ZWQgaW4gYnVpbGRkaXIsIG5vdCBzcmNkaXIiCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgOWVmYTQ2N2E5NzJiYjZlMWM3ZmJkYWYyZTI3NDI5ZDI5ZjRhYjg5ZS4KCmNvbW1pdCA5ZWZhNDY3YTk3MmJiNmUxYzdmYmRhZjJlMjc0MjlkMjlmNGFiODllCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIFNlcCA0IDE0OjAwOjEyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQ29ycmVjdCBkZXBlbmRlbmNpZXMgLSBzaW5jZSBiZjc0ZmVhNjlmMjRkYzZlODVmOTA4ZjNmNDFkMTQyNmIyZTA5Njg4IHNubXBjb25mIGlzIGxvY2F0ZWQgaW4gYnVpbGRkaXIsIG5vdCBzcmNkaXIKCmNvbW1pdCA3ODM1OTY0ZDM1OTNlNWM2YTFhZTdkZTBiNDExNGI3ZGYxYWUwZmUxCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxOToyMTo1MSAyMDExIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnJjMQoKY29tbWl0IGNiNmEwYzBiZDZmOGMyYzdjZDVmZDg2MDgwZGM2MzI0ZTdmNzM4NTgKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE5OjIwOjM1IDIwMTEgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjEucmMxCgpjb21taXQgZTVmZjJlYjgzYmJiZWQ5MmRhYzc1MWM1YTY2NDNkNzhmODM3Y2Y5YwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTk6MTk6NDYgMjAxMSAtMDcwMAoKICAgIGZpeCBDKysgY29tbWVudAoKY29tbWl0IGNiMWY1Y2ZmYzZmYjUyYzJhNmMwZjdiNDA4YWZlYjQ3ZmNmZTU1ZTQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE5OjA5OjU2IDIwMTEgLTA3MDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMQoKY29tbWl0IDQyMmIwODJhOTU5M2NhOWM2NWFhYzQ0OWU2ZDEyOGE5ZTk3ZTk0ZmIKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE5OjA2OjU2IDIwMTEgLTA3MDAKCiAgICBhZGRlZCA3IGFzIGEgcmMgc2VyaWVzIGJyYW5jaAoKY29tbWl0IDcxYzBkNzY1MDQ5MzcxMDYzMWZhMDhkNWRjNGRhZDUwMWE5YWE3NzEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDE2OjM3OjQxIDIwMTEgLTA3MDAKCiAgICBkZWFsIHByb3Blcmx5IHdpdGggaW52ZXJ0ZWQgZXJyb3IgY2FzZXMKCmNvbW1pdCBjZjRjZjdmMzJhZDU4ZjMyNmZmZWQ1MDQ5NDU4MzIzMTY0OGQ3OWQyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyAyNiAxMTowODowOSAyMDExIC0wNzAwCgogICAgYWRkZWQgLmZ0IGFuZCAuZnQuMSBmb3IgZmVhdHVyZSBmaWxlcwoKY29tbWl0IDQxYjJjZGUxOWQyMjIwOWI0ODMyMDc2MTRlMDI3NDgzYzM3MDY4NzcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDMwIDExOjAzOjE1IDIwMTEgLTA3MDAKCiAgICBhdXRvLWRldGVybWluZSBwYXRjaCBhcmd1bWVudHMgaWYgcG9zc2libGUgZm9yIG5zcGF0Y2h0cnkKCmNvbW1pdCA5NmJiNTg5YzJlNTA1NDg5MGU5ODcwNWFiNWY0MzA4YWU2YTEzMGJiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEF1ZyAzMCAxMDoxMzowNiAyMDExIC0wNzAwCgogICAgbWFrZSBpdCBzbyB0aGUgZ2l0IGNvbW1pdCBsaW5lIGNhbiBiZSBjdXQvcGFzdGUgd2l0aG91dCBsaW5lYnJlYWtzCgpjb21taXQgM2ZlMzZmN2FkNzFjMDhlMTI4NmNlOGU0ODdlOTM1MmUyN2NkOTZjYwpBdXRob3I6IFJvbmFsZCBXYWhsIDxyd2EtY29AdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTA6MTI6MTEgMjAxMSAtMDcwMAoKICAgIENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzOTQ1ODY6IGZyb20gcndhLWNvOiBmaWxlIGRlc2NyaXB0b3IgbGVhayBpbiByZWFkX2NvbmZpZyAoK2ZpeCkKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgNmU1NGM0MTMxYWY3MzFmZjkwNDY3YTc1YmNjODE3Yzk1N2Y4ZjcyYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMzAgMDk6NTU6MTQgMjAxMSAtMDcwMAoKICAgIGRlc2NyaWJlIHRoYXQgbnNyb2xsdXAgbmVlZHMgdG8gYmUgcnVuIG5vdy4KCmNvbW1pdCA4NmVmZWUyMzQzMmNjYjBkMmUwYzczNmQzNGRjMTA1MTEzMGNkYzBmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBBdWcgMzAgMTA6NTI6MzAgMjAxMSArMDEwMAoKICAgIEFwcGFyZW50bHkgSVJJWCBoYXMgYSBkaWZmZXJlbnQgQVBJIGZvciBzdGF0ZnMKCmNvbW1pdCBmN2UyMWYyNjMzMzkwYjdhMjdjNTAyMjdiZWU2ZDg2OTZhZTNmYmNmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAyOSAxNjowMTozMSAyMDExIC0wNzAwCgogICAgZG9uJ3QgcHJvdmlkZSBhIGZlYXR1cmUgd2hlbiB5b3VyIGEgY2hpbGQgb2YgYW5vdGhlciBmZWF0dXJlCgpjb21taXQgY2FjMjNjMGIyNTc0ZTcyODBiZDEyOGM2MjI2ODc1YWQwZjZiNGJmYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBBdWcgMjggMDk6Mzg6MTQgMjAxMSArMDIwMAoKICAgIE1ha2Ugc3VyZSB0aGF0IGZlYXR1cmUtZGV0YWlscy5oIGV4aXN0cyBiZWZvcmUgdHJ5aW5nIHRvIGluY2x1ZGUgaXQKCmNvbW1pdCA3ODFmNGNlMmFjYjM3MTU2MDc5N2Q4YjI5YTg5ZWQwNjc0ZTkzNWY4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEF1ZyAyOCAwOTozNjozNiAyMDExICswMjAwCgogICAgVXNlIHRoZSBmZWF0dXJlIHRhcmdldCBpbnN0ZWFkIG9mIHRoZSB0YXJnZXQgd2hlbiBidWlsZGluZyB0aGUgZmVhdHVyZSBzZXQKCmNvbW1pdCAxMWJmZjQ3MmNhN2IxZmNmZjBjMTYxODdhMWI4YTEzMDkzYmM5MWM0CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAyOSAwMDozMzo1NSAyMDExICswMjAwCgogICAgdGhlIGlyaXg2IGJ1aWxkIG9ubHkgZGVmaW5lcyBpcml4Niwgbm90IGlyaXgKCmNvbW1pdCAzYzczYTE0MDdhMDgxZDQyZWJkZDkxZGZiY2IxZTRmMTUyYjdkZjRhCkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAyOSAwMDowNToxMyAyMDExICswMjAwCgogICAgcmUtYWRkIHNvY2thZGRyX3VuLnN1bl9wYXRoIGNvbmZpZ3VyZSBjaGVjayAobG9zdCBpbiBwcmV2aW91cyBjb21taXQpCgpjb21taXQgMmUzZjAyZTAzYWVkMTI1Mzg0YmE0ZmUzZDgzNDk0ZDQzZjNhMjllOQpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjggMjM6NTM6MzAgMjAxMSArMDIwMAoKICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYyBkb2Vzbid0IGJ1aWxkIG9uIElSSVggeWV0Cgpjb21taXQgZjk1YWEzMTM3N2Q1NzJiMDQ5YjBiMzE2ZGJiMTYzYmY3YWNhOTNkNQpBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjggMjM6MjU6NDAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZyBmaWVsZHMgbXNnX2NvbnRyb2wvbXNnX2ZsYWdzIGluIHN0cnVjdCBtc2doZHIgKGJhY2twb3J0KQoKY29tbWl0IDdmNDdkOTM3NjVhYTM1YTU4Njg3ZWI5YjRmOWY3MDBlNDM0M2UxM2MKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDI2IDExOjExOjM1IDIwMTEgLTA3MDAKCiAgICBhZGRlZCByZXF1aXJlZCBmZWF0dXJlcyBmb3IgbWZkIGhhbmRsaW5nCgpjb21taXQgOWIyZTQyYTZlMDU1MGZiNzg5YzYwN2MzNTIwODgwZDRkYmMwY2YyNApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBBdWcgMjYgMTE6MDg6MDkgMjAxMSAtMDcwMAoKICAgIGFkZGVkIC5mdCBhbmQgLmZ0LjEgZm9yIGZlYXR1cmUgZmlsZXMKCmNvbW1pdCAzM2RjYmY1NmZjMDYyNmEzZTRmMTM1OTA5NWJkMjE3ZDFhNTY3Nzk0CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyAyNiAxMTowNzo1OCAyMDExIC0wNzAwCgogICAgbm9fd3JpdGVfc3VwcG9ydCBzdXBwb3J0ZWQKCmNvbW1pdCA5N2Q0MmVmZDc2OTM3Y2U3ZTRiYzQ4YTcyZWQ1YTExMGU0MjMxMDJkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEF1ZyAyNiAxMDowODo1MSAyMDExIC0wNzAwCgogICAgaGFuZGxlIG5vLXdyaXRlLXN1cHBvcnQgd2l0aCBpZmRlZnMKCmNvbW1pdCBlYThiZWQ3OWU4MWM0MmUzM2NiZjM3Y2E2ZjNjMDNjNTQ5OTg3YjIyCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAyNSAwNjo1NjoyMiAyMDExIC0wNzAwCgogICAgaW1wb3J0IHN0ZGVycgoKY29tbWl0IGZkNmQ4MDRkYzNlNzAzYzQwNTlkYmU3NzUwMDFhM2JlOWI5MzMwOWYKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDI1IDA2OjU1OjM4IDIwMTEgLTA3MDAKCiAgICB1c2UgPj4gdG8gcHJpbnQgdG8gc3RkZXJyCgpjb21taXQgY2VlMDM1OWM2ZmFlMmI4NWQ3YjkzMTg1OWU1MTdkODljZTA3MjJiYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDIzIDIzOjQzOjE5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZDogRG8gbm90IGdlbmVyYXRlIGFuIG91dHB1dCBmaWxlIG9uIGZhaWx1cmUKICAgIAogICAgbWFrZSBzdXBwb3NlcyB0aGF0IG5vIG91dHB1dCBpcyBnZW5lcmF0ZWQgaWYgdGhlIGNvbW1hbmQgZmFpbGVkLiBDaGFuZ2UKICAgIGZlYXR1cmUtcmVtb3ZlIHRvIGZvbGxvdyB0aGF0IHByZXN1bXB0aW9uLgoKY29tbWl0IGZlMzllNzI4OGNhOTMwZDJjOWFhYTgzMDFjYzlkOTVmMGMzOGYzNmIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyMSAyMTo0ODoxNyAyMDExICswMjAwCgogICAgQ29ycmVjdCB0eXBvCgpjb21taXQgMWYwODJhMzFjZDEzOGYxZjVlMjdiZTZkOTBhMWQ1NzkwZGMwZmZlNApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBdWcgMjMgMjM6MzU6NDIgMjAxMSArMDIwMAoKICAgIG1ha2Ugc3VyZSB0aGF0IF9LRVJORUwgaXMgZGVmaW5lZCB0byAxIHNvIHRoYXQgIiNpZiBfS0VSTkVMIiB3b3JrcyBvbiBzeXN0ZW1zIHRoYXQgbmVlZCBpdCAoZS5nLiBJUklYKQoKY29tbWl0IDI2YmIyNDcwYzEwNmY4MzQ0NDJhMmFkYmM3NjExYmYxNjY1N2ZiZGYKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgQXVnIDIzIDIzOjIyOjQ0IDIwMTEgKzAyMDAKCiAgICBtYWtlIHN1cmUgdGhhdCBfS0VSTkVMIGlzIGRlZmluZWQgdG8gMSBzbyB0aGF0ICIjaWYgX0tFUk5FTCIgd29ya3Mgb24gc3lzdGVtcyB0aGF0IG5lZWQgaXQgKGUuZy4gSVJJWCkKCmNvbW1pdCBmYzU1NjBjMDVmODQ4MzIxZGEwY2EwYzJlODcwMDFkNWYyMjk1MTY3CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyAyMiAxODo1NDozMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyBsYWNraW5nIGZpZWxkIG1zZ19mbGFncyBpbiBzdHJ1Y3QgbXNnaGRyIChlLmcuIElSSVgpCgpjb21taXQgOTZlYTJkMWE4ZWJmZmIzNDg2NzNhODY1ZDQ4NmYzMWU2MzVlNjJiZApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMDE6NTE6NDkgMjAxMSArMDIwMAoKICAgIGF1dG9yZWNvbmYKCmNvbW1pdCAxYTI2NDhlYWY3MWNiMDE4OTUxNTk2Njg5YzUxNTg4ZGNhODA2M2M1CkF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIEF1ZyAyMSAwMTo0ODo1NyAyMDExICswMjAwCgogICAgYXV0b3JlY29uZgoKY29tbWl0IDNmMmY2MWIwZTYxM2Q2MTA1ZWNmMmNlYjM5NWRlMGJkZTM3ZjNjZTMKQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gQXVnIDIxIDAxOjQ3OjEzIDIwMTEgKzAyMDAKCiAgICBhdXRvcmVjb25mCgpjb21taXQgYjYyY2IwODY0ZjU3N2JhODU1NzNkMGQyNTBkMTJhMzkzODdjMDdiNApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMDA6NTU6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFpeDogZWxpbWluYXRlIGNvbmZpZ3VyZSB3YXJuaW5nIHJlZ2FyZGluZyBsaWJwZXJmc3RhdC5oIG9uIEFJWCA2LjEgYW5kIHVwCgpjb21taXQgNzFiOTBiNmYyMTc5NDRiNGZmYzE4MzZlNTE2MGQ0MGUzM2I0NDIzZApBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBBdWcgMjEgMDA6NDA6MjggMjAxMSArMDIwMAoKICAgIGZpeCBicm9rZW4gbGluZSB3cmFwCgpjb21taXQgNWI1OTAwYTRmN2RmZWU2ZTFlYzg2OWUzMjMxMGI4MGNhNmZiMjNmZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTI6Mjg6MDcgMjAxMSAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5wcmUyCgpjb21taXQgM2I3ZTJlMzk5NDlmODhkOWM1NmVkNWY5OTQwMjhiOTQ4MTZhYjc1YwpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTI6MjM6MjggMjAxMSAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMS5wcmUyCgpjb21taXQgZWNlNjNiZmU0OTljNjMwYmRhYWU2MjAwNjQ4ZDI5MTgwY2UzYTE3OQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTI6MDM6MTcgMjAxMSAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucHJlMgoKY29tbWl0IDI4YjU0MDcwNTE0NzUzZThkOGFiYjcxOGIyMjRkNjU3YWI3YThhYjgKQXV0aG9yOiBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBBdWcgMTggMTE6NDk6NTYgMjAxMSAtMDcwMAoKICAgIENIQU5HRVM6IEJTRDogUEFUQ0ggMzM4Mzk2NTogZnJvbSB5YWJlcmF1bmV5YTogRml4IGlmLW1pYiBhZ2VudCBjb21waWxlIHdhcm5pbmdzIG9uICpCU0QKICAgIAogICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+Cgpjb21taXQgZjczZTYzNjRiYjM0MDcwNjIyZTlmNDQ4OGNkMDQ4N2QyZmI3NDAyYQpBdXRob3I6IFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgQXVnIDE4IDExOjQ1OjI5IDIwMTEgLTA3MDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzM4OTIyODogZnJvbSB3dWxmMjAwMTogaW5jb21wbGV0ZSBjb21taXQgKHBhdGNoIDMzODY2MzM6IGZpeCBpbnRlZ2VyIG92ZXJmbG93KQogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCmNvbW1pdCBlNmNmODIwNmYwYzY3NjUwMDAxZTM0YjUyNmIzN2Y2NGU0YTU5MjljCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAwOTo0NjozMyAyMDExIC0wNzAwCgogICAgUGF0Y2ggZnJvbSBDbGF1cyBLbGVpbiBvbiAtY29kZXJzIGZvciBmaXhpbmcgbWFuIHBhZ2UgdHlwb3MKCmNvbW1pdCA2YTg0MWQ1NjUxOGE3MjcxOTZlNjZiNTllN2U1YjMzMDRmNTRiMGExCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEF1ZyAxOCAwODozMTowNiAyMDExIC0wNzAwCgogICAgY2hhbmdlZCBjbGllbnRhZGRyIHNvIGl0IHJlZ2lzdGVycyBhcyBwcmUtbWliIHRvIGJlIHBpY2tlZCB1cCBiZWZvcmUgdGhlIHRyYW5zcG9ydHMgZ2V0IGNyZWF0ZWQKCmNvbW1pdCBjMDIxMzFlNWIzNWQyOTY3NTViYWVjOTliZDM2MzIwNWE4NjMwN2RkCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEF1ZyAxNyAwOTozNDowMCAyMDExIC0wNzAwCgogICAgZGV0ZWN0IHJlYWxseSBvbGQgdmVyc2lvbnMgb2YgTG9uZy5wbQoKY29tbWl0IDUwMGQ2ZGUwNmFhNGZmMzMwYWVlNGQ3NDlhNGNjMzc3YmVjODllMDkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDE3IDE4OjExOjQ3IDIwMTEgKzAyMDAKCiAgICBGaXggdGhlIGxvZyBtZXNzYWdlIHRoYXQgcmVwb3J0cyB0aGF0IGdldGhvc3RieWFkZHIoKSBpcyBtaXNzaW5nCgpjb21taXQgNjU4MDU1NmNjN2JkODMzYWY3MzFiNjJjZTFlZDIwMTc1NjRmZTdlYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMTcgMTg6MDg6MDEgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHNubXB0cmFwZDogTWFrZSB0aGUgSVAgYWRkcmVzcyB0byBob3N0bmFtZSBjb252ZXJzaW9uIHdvcmsKCmNvbW1pdCAzY2IzZjFlZGUzODhkODRlMzkyZTFkODE1ZDU5OTRhNGJmMGYxMGY5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIEF1ZyAxNCAwNzo1OToyNSAyMDExICswMjAwCgogICAgV2luZG93cywgYnVpbGQuYmF0OiBSZXN0b3JlIG9yaWdpbmFsIGJ1aWxkIGFuZCBpbnN0YWxsIG9yZGVyLiBBcHBhcmVudGx5IHRoZSBjb3JyZWN0IG5ldHNubXAuZGxsIGlzIHVzZWQgZHVyaW5nIHRoZSBQZXJsIHRlc3RzIGJ5IHNldHRpbmcgUEFUSCBwcm9wZXJseS4KICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBjMWI1YTAzMGQ4ZjA0ODc2Y2Q1YjlhZjAwOGM4NzljYzQ2OGIyMTJmLgoKY29tbWl0IGRhZmY0OWQ5YjMzNjllZmNjODdmMDVkYzg1OTEzNjJlODFhNDVmZGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDE4OjQzOjQ4IDIwMTEgKzAyMDAKCiAgICBXaW5kb3dzOiBNYWtlIHRoZSBQZXJsIGFnZW50IG1vZHVsZSB3b3JrIGFnYWluIHdpdGggdGhlIG9yaWdpbmFsIFNOTVBfRlJFRSgpIGRlZmluaXRpb24uCgpjb21taXQgM2M3M2I0ODM4ZTYwNWIxNTBiYzMxNzMxM2YxNGViMzM0NDQ3MjlmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMTc6Mzg6MjcgMjAxMSArMDIwMAoKICAgIFJldmVydCB0aGUgdHdvIG1vc3QgcmVjZW50IFNOTVBfRlJFRSgpIGNoYW5nZXMgKGNvbW1pdHMgNDdjOGVmMWI4OWM2Y2NiNDI0N2Q5NjMzNDc3OTI1OTA4YzY4YzFhNSBhbmQgN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMCkuCgpjb21taXQgM2U1MGMzZTAwZTlmMzIxZmI3MDhiYzU3OWViNGRjMWEwZjFlN2M0ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMTE6MzE6NDAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBwYXNzX3BlcnNpc3Q6ICBGaXhlcyBhIHJhY2UgY29uZGl0aW9uIGludHJvZHVjZWQgaW4gY29tbWl0IDMxZmEwN2NkOWZmZGU0NmQ0MWQyYjU4MzhjM2ZjNGQwMTU0OGJmYjUuCiAgICAKICAgIFRoZSBmb2xsb3dpbmcgcmFjZSBjb25kaXRpb24gY291bGQgaGFwcGVuOgogICAgLSBBIHN5c3RlbSBjYWxsIGZhaWxzIGFuZCBlcnJubyBpcyBzZXQgYWNjb3JkaW5nbHkgYnkgdGhlIEMgbGlicmFyeS4KICAgIC0gU0lHQ0hMRCBoYW5kbGVyIGludm9rZXMgYSBzeXN0ZW0gY2FsbCB0aGF0IGZhaWxzIGFuZCBoZW5jZSBvdmVyd3JpdGVzIGVycm5vLgogICAgLSBTSUdDSExEIGhhbmRsZXIgbGVhdmVzLgogICAgLSBvcmlnaW5hbCBjb250ZXh0IGNoZWNrcyBlcnJubyBhbmQgZmluZHMgdGhlIHZhbHVlIGZyb20gdGhlIHN5c3RlbSBjYWxsIGludm9rZWQKICAgICAgYnkgdGhlIFNJR0NITEQgaGFuZGxlciBpbnN0ZWFkIG9mIHRoZSBzeXN0ZW0gY2FsbCB0aGF0IGZhaWxlZCBvcmlnaW5hbGx5LgogICAgCiAgICBPdGhlciBmaXhlcyBpbmNsdWRlZCBpbiB0aGlzIHBhdGNoOgogICAgLSBSZW5hbWVkIGRlaW5pdF9wYXNzX3BlcnNpc3QoKSBpbnRvIHNodXRkb3duX3Bhc3NfcGVyc2lzdCgpIHN1Y2ggdGhhdCB0aGlzCiAgICAgIGZ1bmN0aW9uIGdldHMgY2FsbGVkIGR1cmluZyBhZ2VudCBzaHV0ZG93bi4KICAgIC0gTWFkZSBzdXJlIHRoYXQgc2h1dGRvd25fcGFzc19wZXJzaXN0KCkgaXMgY2FsbGVkIGJ5IHRoZSBXaW5kb3dzIHNubXBkLmV4ZSB0b28uCiAgICAtIFdpbmRvd3M6IGF2b2lkIGNhbGxpbmcgQ2xvc2VIYW5kbGUoSU5WQUxJRF9IQU5ETEVfVkFMVUUpLgogICAgLSBXaW5kb3dzOiBhdm9pZCB0aGF0IGNsb3NpbmcgYSBwYXNzX3BlcnNpc3QgcGlwZSB0cmlnZ2VycyBhIGNyYXNoLgogICAgLSBXaW5kb3dzOiBwYXNzX3BlcnNpc3Q6IGNsb3NlIGhhbmRsZXMgb2YgZmluaXNoZWQgcHJvY2Vzc2VzLgogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYwogICAgCXdpbjMyL21pYl9tb2R1bGVfc2h1dGRvd24uaAoKY29tbWl0IGUxNDdlNGI5Njc1NTIwN2RlMWNlMzA5OTBkNjdiNGI3Yzc2ZGQ0ODMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjM5OjE0IDIwMTEgKzAyMDAKCiAgICBVbmJyZWFrIHRoZSBXaW5kb3dzIGJ1aWxkLiBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgMWUxMDAwYTg4MTU5MjFiNWVjMmU3OTk3YjUzNTkyYTU0NGIzZGZjMi4KCmNvbW1pdCBjMWI1YTAzMGQ4ZjA0ODc2Y2Q1YjlhZjAwOGM4NzljYzQ2OGIyMTJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogYnVpbGRpbmcgKGJ1aWxkLmJhdCk6IEluc3RhbGwgbmV0c25tcC5kbGwgYmVmb3JlIHJ1bm5pbmcgdGhlIFBlcmwgcmVncmVzc2lvbiB0ZXN0cyBzdWNoIHRoYXQgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1biB3aXRoIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgbmV0c25tcC5kbGwuCgpjb21taXQgMWU5ZDIwMDNiYWVkMjI3ZjY4YjY4NTI4ZjFlOTdlNmY1ZWE4NmMxYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHBlcmwgKGJ1aWxkLmJhdCk6IFdoZW4gaW5zdGFsbGluZyBkZXZlbG9wbWVudCBmaWxlcywgaW5zdGFsbCB0aGUgUERCIGZpbGVzIHRvby4KCmNvbW1pdCBhOGQ5NDAwN2UzMmQwMzcxMDY5MmM4ZjFiNDE3ZDViZGZlMzY1MGZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogRml4IFBlcmwgcmVncmVzc2lvbiB0ZXN0IGZhaWx1cmVzCiAgICAKICAgIEFsbCBQZXJsIHJlZ3Jlc3Npb24gdGVzdHMgcGFzcyBub3cgb24gTGludXggYW5kIG9uIFdpbmRvd3MgKE1TVkMpLgoKY29tbWl0IGI2ZDBiNDkwMTgxYzZkZjhjMTFlY2YxNTVmMWU2ZWFmMTFiMWVjNTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBQZXJsIHJlZ3Jlc3Npb24gdGVzdHM6IERvbid0IGZhaWwgc2tpcHBlZCB0ZXN0cy4KCmNvbW1pdCBjYTNhY2YyYjA3MDM5ZDk2YTExN2YwOTBmN2VjNzZiNmU4YjU0MWU5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogQWRkIFNOTVA6OmdldGVudigpIGFuZCBTTk1QOjpzZXRlbnYoKS4KCmNvbW1pdCA1Njc1OWU1YWQ1MzdmMDFiNGE1MWU3ZmY5OTk0ZWM0YjU1YzMyMTM1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxNDo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG5ldHNubXBfc2V0ZW52KCkuCgpjb21taXQgOTg0M2U1YmNmNDcyODc3ZTg1YjAzMWI1ZTVkYWZhYTlkNWZjNjNjNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFNhdCBBdWcgMTMgMDg6MTA6MzIgMjAxMSArMDIwMAoKICAgIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6IGRvY3VtZW50IGhvdyB0byB1c2Ugb24gV2luZG93cwoKY29tbWl0IDYwNTc4NjZiNzNhMDIyNzcxZTkwZTk5NjdkZDI1YmRjNzE5MmZiZGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgQXVnIDEzIDA4OjEwOjMyIDIwMTEgKzAyMDAKCiAgICBTZXQgZXhlY3V0ZSBmbGFnIG9uIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Qgc3VjaCB0aGF0IHRoZSBpbnN0cnVjdGlvbnMgaW4gdGhhdCBmaWxlIHdvcmsKCmNvbW1pdCBjMmRhZjU5NDBmMjFhMTNlODk4OWRkMDU1YjE3ZjMxODExMTJmODU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IEF1ZyAxMyAwODoxMDozMiAyMDExICswMjAwCgogICAgLmdpdGlnbm9yZTogRml4IGEgc3VwcHJlc3Npb24gcGF0dGVybgoKY29tbWl0IDFmMGE5MjhhMjkxM2NmYTdmNWNlYWFmNDY5NmM2OWZiZGM2ODc2MjEKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgQXVnIDEyIDA5OjA5OjExIDIwMTEgLTA3MDAKCiAgICBhZGRlZCB0aGUgbWlzc2luZyAtZSBvcHRpb24gdG8gdGhlIGNyZWF0ZVVzZXIgZG9jcwoKY29tbWl0IDFlMTAwMGE4ODE1OTIxYjVlYzJlNzk5N2I1MzU5MmE1NDRiM2RmYzIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgQXVnIDExIDE1OjQ2OjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogTmV0LVNOTVAgUGVybCBtb2R1bGVzIGJ1aWxkIGFnYWluLgoKY29tbWl0IDk3ZDY0MzJmOTVlMWNkY2Y2ZmQ4NWU3Y2ExZDBjNTU1N2ViNmQ5MTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgQXVnIDExIDE4OjE2OjQ0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBwZXJsOiBNYWtlIHN1cmUgdGhhdCB0aGUgY29uc3RhbnQgU05NUF9ERUZBVUxUX1JFVFJJRVMgaXMgcmVjb2duaXplZC4KICAgIAogICAgQ0hBTkdFUzogcGVybDogU05NUCBtb2R1bGU6IEFkZCBjb25zdGFudHMgTkVUU05NUF9DQUxMQkFDS19PUF9SRUNFSVZFRF9NRVNTQUdFIGFuZCBORVRTTk1QX0NBTExCQUNLX09QX1RJTUVEX09VVC4KICAgIAogICAgV2hlbiB0aGUgTmV0LVNOTVAgUGVybCBtb2R1bGVzIGFyZSBidWlsdCBvbiBXaW5kb3dzIHdpdGggTVNWQyBvciBNaW5HVyBpdAogICAgaXMgcG9zc2libGUgdGhhdCBlYWNoIHRoZXNlIGFyZSBsaW5rZWQgd2l0aCBhbm90aGVyIHZlcnNpb24gb2YgdGhlIE1TVkMKICAgIHJ1bnRpbWUgbGlicmFyeSB0aGFuIHRoZSBQZXJsIGludGVycHJldGVyIGl0c2VsZi4gSW4gdGhhdCBjYXNlIHRoZSAiZXJybm8iCiAgICB2YXJpYWJsZSB1c2VkIGluc2lkZSAueHMgc291cmNlIGZpbGVzIGlzIGFub3RoZXIgdmFyaWFibGUgdGhhbiB0aGUgJCEgdmFyaWFibGUKICAgIGluIC5wbSBmaWxlcy4gT3I6IGFzc2lnbm1lbnRzIHRvICJlcnJubyIgaW4gYSAueHMgZmlsZSBkbyBub3QgbW9kaWZ5IHRoZSAiJCEiCiAgICBQZXJsIHZhcmlhYmxlIFRoaXMgcGF0Y2ggYXZvaWRzIHVzaW5nICJlcnJubyIgYnkgbW9kaWZ5aW5nIHRoZSBkaWZmZXJlbnQKICAgIGNvbnN0YW50KCkgZnVuY3Rpb25zIHN1Y2ggdGhhdCB0aGVzZSByZXR1cm4gYSB0d28tZWxlbWVudCBhcnJheSBpbnN0ZWFkIG9mCiAgICByZXR1cm5pbmcgYSBzY2FsYXIgYW5kIHNldHRpbmcgZXJybm8uCgpjb21taXQgNzY5MDg5NGI3Yjg0NjRmMDVjN2M5MDJiZDdjZjc1MWNjMjY5OTc3YQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBBdWcgMTAgMDk6MjY6MzcgMjAxMSAtMDcwMAoKICAgIGRvbid0IGFzc2VydCBvbiBhIGRvdWJsZSBpbml0OyBqdXN0IGRvbid0IGRvIGl0IHR3aWNlCgpjb21taXQgNDdjOGVmMWI4OWM2Y2NiNDI0N2Q5NjMzNDc3OTI1OTA4YzY4YzFhNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMTAgMTY6NDQ6MzYgMjAxMSArMDIwMAoKICAgIFNOTVBfRlJFRSgpOiBjYXN0IGFyZ3VtZW50IHRvICh2b2lkICopIGJlZm9yZSBwYXNzaW5nIGl0IHRvIG5ldHNubXBfZnJlZSgpCgpjb21taXQgMDIyMDM5MmQ4OTlhOWNhYjcwMWY3NGFmMTIwMzBiYjFkNGNjNWUyZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKdWwgMSAxMzowMjoxNSAyMDExICswMjAwCgogICAgLmdpdGlnbm9yZTogSWdub3JlICouZXhlIGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgV2luMzIgYnVpbGQKCmNvbW1pdCAwMzQ0ZGY5MmU0NjJmM2JlYzk5NDYwOGMzMzgxZmNhNTM0OGFiY2RiCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEF1ZyA4IDE1OjEyOjU1IDIwMTEgLTA3MDAKCiAgICBmaXggQysrIGNvbW1lbnRzCgpjb21taXQgMDlhNjYxZDVkYzYwYzczMGZlMDM4NGIwMmVkNjcyODMwZWY3NGUzMApBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBdWcgOCAxNToxMjo1NSAyMDExIC0wNzAwCgogICAgZml4IEMrKyBjb21tZW50cwoKY29tbWl0IDY5Y2I0MmE0ZWEwNTgzY2U2ZjVmZjhmODM4MzUxNmQzNGJjNGMzNDQKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXVnIDggMTU6MTI6NTUgMjAxMSAtMDcwMAoKICAgIGZpeCBDKysgY29tbWVudHMKCmNvbW1pdCA0NDdkZGM2NmQ5MGRkOWU1YzMxMDViMjY4YjZhNjNiZmM1ODBiOTI0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBdWcgOCAyMjowMzo1OCAyMDExICswMTAwCgogICAgRGVmaW5lIF9CSU5EX1RPX0NVUlJFTlRfVkNMSUJTX1ZFUlNJT04gdG9rZW4KICAgIChhcyBwZXIgQWxleCcgYnVpbGQgaW5zdHJ1Y3Rpb25zKQoKY29tbWl0IGIwYTYyZWIxOTc2M2FiNGYwYjc3NjQzMDI0MmE2MTE3Y2NhZTVkZDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEF1ZyA4IDIxOjU5OjE3IDIwMTEgKzAxMDAKCiAgICBEZWZpbmUgX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiB0b2tlbgogICAgKGFzIHBlciBBbGV4JyBidWlsZCBpbnN0cnVjdGlvbnMpCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LjEgLT4gVjUuNy4yLnByZTEKCmNvbW1pdCA4MTAxODVhZTBiMGNkMmFkNGQ0MjRhMWJhNzc1ZWY1Y2VhZjUwZjAzCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IEp1biAyIDA5OjI0OjE5IDIwMTIgLTA3MDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS43LjIucHJlMQoKY29tbWl0IDYyNzE0NzFlMDEyODJmMzY3NTcyNGVhZjEzNThjZWIwZTk1ZGRkNGUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6NDAgMjAxMiAtMDcwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjIucHJlMQoKY29tbWl0IGZjYjc4MmFhODg5MzEzNGM3NDE0YTkyNmQ5MjY4NTk0ZjcyNWI5MTUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDg6MzI6MTggMjAxMiAtMDcwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMi5wcmUxCgpjb21taXQgZTNiY2Q4N2M3MmZjZWE3NzA2ZTg2OGI1YWNlNzUyOTYwOTNmNzQ5NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA5OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGQ4MTNjZTJlZWVmYzY4MjI5Y2ZjYWYyMDYwMzI0NGNkZDZkMDlkM2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxNDowNzo1MiAyMDEyICswMTAwCgogICAgRml4IGRpc3QvcmVsZWFzZSBmb3JtYXQKCmNvbW1pdCBmYTdiZDU4MWUzNzgzNjg1ZGIzOWM5YjRlYWY4NDdiZTVhYzg2ZmQzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTM6MTAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCAwNzM5ZTIzODJkMzExNDZhY2EzMjA1MjQ0Y2Y3MDc4OGI0MGE0MjhkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTE6NDUgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBkOWExNTQ0NWFhNzRmNTMxNmJmYzcxMWMxNTU4NDY3ODcyYzI5NThjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6NTA6MTIgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzIKCmNvbW1pdCBiY2FiZDJjOTU0MmRiZWJkMWQzMTliNDQ5NDQxM2JkY2NhMDY2MTRlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCBiNDczODk4YzBjNWFjOWViNDdjN2MwNWEzZjc0NWU0ZmYyYTc2YWFhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MjggMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMyCgpjb21taXQgMTMxNDI5ZTcwNjJmYmFhNjViODJhZmZlZDFmYjkyZGYyYzBjYzgxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjM4OjM4IDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNi1wYXRjaGVzCgpjb21taXQgMWM4MTEwYjMzYjgxMDVjYTYxOTA5NDVhMzVmZTdhZTkwMzI1MmQ2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIxOjM4IDIwMTIgKzAxMDAKCiAgICBBdm9pZCBwZXJsIHZlcnNpb25pbmcgcHJvYmxlbXMgd2hlbiBzZXR0aW5nIHVwIHRoZSBidWlsZCBlbnZpcm9ubWVudAoKY29tbWl0IDUwOGVjZTE2ZTZmNmY0OTU2MmRhMjA0NzkyYWUwNjQ0MjY5OTk0ZDEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzoyMDo1OCAyMDEyICswMTAwCgogICAgRml4IGhhbmRsaW5nIG9mIGRpc3QvcmVsZWFzZSBtZXJnZQoKY29tbWl0IDViOGE4NTQ3YjFhNDdkMmY1YjIwN2Y0OGYyNDk2ZTQyNDFkOTAyYzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMToxMDo0OCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDZjMzI5MTRiZjI4ZDY5NWRmMzQ5ZGNhMjY5ZTQ4OGI1MDE3MDAzMTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNzoyMiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDlmNWE4MmE1YWZkYmIzZGFlYjJmZDQzN2EzMDlmMGI4ZDM1N2NmNGIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMTowNTozOSAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDM5MjAzZjI5NDc3YTNiZWRmMDEyZDQxMTM1ZDhhYmQ2YmNhZDA4YjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo1NDoyNyAyMDEyICswMTAwCgogICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMgoKY29tbWl0IDE3ZTc5ZWYwZmFkNzk2MDljNWJhMmZlYjRlOGI5ZWI1ZDdkYjY4ODYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IDU4MjFiZTViYmI0MDE4ZGVkMjgyZmJiYmQ0ODMwY2YyZWVhZGQ5ZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NTo1OSAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzIKCmNvbW1pdCAzZjIxMTFkZTY3MzNhMDRlMTJkOTEwZDMwNmEzNGQ2NzFlMDA4NzYyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTA6NDY6MTEgMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS01LXBhdGNoZXMKCmNvbW1pdCBjY2Y4ZmYyYzRkYjYwMTIyZDQxMzAyZTRhZWI3MDBlMGI4NjgxMDVmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgMjggMTA6MTg6NDMgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDM1MjY1OTk6IERvbid0IGhhbmcgb24gcmV0cmllZCBmYWlsaW5nIFNOTVB2MyByZXNwb25zZXMKCmNvbW1pdCBjODFjODQ4Mzk5MDkxMWY0NzQzNWQzMDA1MjU1ZDkxYzM3YWI5MmIyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxNDowOToyNiAyMDEyICswMjAwCgogICAgRml4IEJTRCB0aGF0IGRvd25ub3QgYWx3YXlzIGxpa2UgSVBfU0VORFNSQ0FERFIgLSBzbyByZXRyeSB3aXRob3V0Cgpjb21taXQgZmZjZTFmMmRjMmY4YjMxYWJkMDFmOTNiMjZkYTc4ZjQ3MjZhMWU2NApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXkgMjcgMTQ6MDM6NTggMjAxMiArMDIwMAoKICAgIEZpeCBPUyBtaXNzaW5nIE1TR19ET05UV0FJVCAoQUlYKS4gQmFja3BvcnQgZnJvbSA1LjcKCmNvbW1pdCBjNTc1MjE2ODUwMTg1YjU2NDU0ZGFkMDI1M2UzMTY0OTc5ZTEzNTEzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxMzo1NjowMSAyMDEyICswMjAwCgogICAgRml4IG1pc3NpbmcgaW5jbHVkZS4gRml4ZXMgU0lHU0VHViBvbiBGcmVlQlNEOSB4NjQKCmNvbW1pdCA1ODA1ODc4NzQ5YzA4MDYyZGViZjBhOWQ3OThkMDhmYjkxNmNhYTJkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1heSAyNyAwNjoyMzoxOSAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGRlYnVnIHRhZwoKY29tbWl0IGQxYTQyYmJjYzdiMTQ3MzBjOWE2ZDk5YzRmMDQ3MDk3ODQzYTU0OWIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWF5IDI1IDA5OjAyOjI3IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUnVuIGxpYnRvb2wgLS1tb2RlPWZpbmlzaCBvbiB0aGUgcmlnaHQgZGlyZWN0b3J5Cgpjb21taXQgMWZiZjMzNzExYTE5ZWFjOTczOWFkMjNmNmY2MjUxZWFjYzQxZjFjNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWF5IDIyIDE0OjU0OjQ1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBMaW51eDogUEFUQ0g6IDM1MjU5OTg6IERvbid0IHVzZSBhbiB1bmluaXRpYWxpc2VkIHZhbHVlIGluIGVycm9yIG1lc3NhZ2UKCmNvbW1pdCAzMmMxNjg2YjY3ZGM4NWM0YTE4OTU3NjM2MzA2NTYwOWRmZWQ1ZTYxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTI6NTYgMjAxMiArMDEwMAoKICAgIEF0dGVtcHQgdG8gbWFyayByZWxlYXNlLWNhbmRpZGF0ZSBicmFuY2hlcyBhcyBzdWNoLgogICAgT21pdCBmaW5hbC1yZWxlYXNlLW9ubHkgc3RlcHMgd2hlbiBwcmVwYXJpbmcgcHJlTi9yY04gcmVsZWFzZXMKICAgIChSZWxpZXMgb24gYSB0d2VhayB0byB0aGUgTWFrZXJlbGVhc2UgcGVybCBtb2R1bGVzKQoKY29tbWl0IDRjNTYzM2YxNjAzZTRiZDAzZWQwNWMzN2Q3ODJlYzg5MTE3NTljNDcKQXV0aG9yOiBSb2JlcnQgU3RvcnkgPHJzdG9yeUBmcmVlc25tcC5jb20+CkRhdGU6ICAgTW9uIE1heSAxNCAxMTo0MDowNiAyMDEyIC0wNDAwCgogICAgTkVXUzogc25tcDogQlVHOiAzNTI2NTQ5OiBDVkUtMjAxMi0yMTQxIEFycmF5IGluZGV4IGVycm9yIGxlYWRpbmcgdG8gY3Jhc2gKCmNvbW1pdCA2NWRkODNjMjI1NWVlNThlZGJmMGUyNTg2M2U1NWI1OGE0MTEzNjc5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDozMDo0MiAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMQoKY29tbWl0IGFjNGJjNjVlMjkwOWYzYmQ4NWYzMmYwNGI1MDRmYTY1ZDJmNjQ1NTMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjI4OjA2IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS42LjIucmMxCgpjb21taXQgYjc0OTk0ODY0MTk1MTE5ZWRiNmUxOWM4NTE0N2ZhYzAwYmNiOTNlMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6MTM6NDYgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucmMxCgpjb21taXQgOTEzNTAwOTJjNDZlNjZkMDZkNzQxNDNmNDgxNjQ3M2RiNGQyNTE2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTk6NTY6MzMgMjAxMiArMDEwMAoKICAgIE1hcmsgdmVyc2lvbi1zcGVjaWZpYyBjaGFuZ2VzIF9iZWZvcmVfIHB1c2hpbmcgdG8gY2VudHJhbCByZXBvc2l0b3J5Cgpjb21taXQgNzI0MWFjY2Q3MGI4MmQwZmNkNDRkNWE1MjM4YjJlZTk0NDU5MDBkYgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NTM6MTcgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCA3Yzc5NmExNWExZDFiYjg1ZmVlYTk0MGJkNGUzNTE2ODc3OTIwOTE5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MDo0OSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDA3ZTI2OGJmYjY0YjBlYzY0NWIzZjdlODcyNjY5ODRmOTIxN2NmMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjQ0OjM3IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMxCgpjb21taXQgMTZlYWFmNmMzYmExNDU5NmNhOWVmYWY0YjExNGYxYjcwOWY0MmI2OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6Mjk6MDMgMjAxMiArMDEwMAoKICAgIGRvY3VtZW50YXRpb24gdXBkYXRlIGZvciA1LjUuMi5yYzEKCmNvbW1pdCBjNzI5NDY5ZWYxMjE1NDkzMGNmOWQxNTk2N2UxNjE4NmZiNDQ1ZjMwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyNzoyMCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5yYzEKCmNvbW1pdCAxNDI1NzFkM2NlYTA4ZjBjMDcyZDI0YzFkMzlhNDNjNzQ0NmY4Y2U3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCBlYmE4NmI2ZjdhZmYyNjFlZTBlNjEzMzRkZjcwZGU3MTU2ZTVjM2NiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzowMTowMyAyMDEyICswMTAwCgogICAgV2hlbiBidWlsZGluZyBhIG5ldyByZWxlYXNlLCB0aGUgaW5zdGFsbGVkIHZlcnNpb24gb2YgdGhlIHBlcmwKICAgIG1vZHVsZXMgbWF5IHdlbGwgYmUgZGlmZmVyZW50IHRvIHRoZSB2ZXJzaW9uIGJlaW5nIGJ1aWx0LgogICAgVGhhdCBzaG91bGQgbm90IGJyZWFrIHRoZSBidWlsZC4KCmNvbW1pdCA1YzBmNjRkNmRiMmI1OTNmN2NjMGVkMmQ0ZjU1YjdjNTkyYjc3NGE4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoyNToxNSAyMDEyICswMjAwCgogICAgT25seSBvdXRwdXQgY3B1IHdhcm5pbmdzIG9uY2UuCgpjb21taXQgZWU1OGU0ODI3YjlmYTE2ZTY2MzVjYTAwM2U4YTRmMTFkY2I1ZmI3YQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBBcHIgMjMgMjI6MTc6NDIgMjAxMiArMDIwMAoKICAgIEZpeCBzcGVsaW5nIGluIGVycm9ybWVzc2FnZS4KCmNvbW1pdCAwM2Y0ODVkZjIyZjIwZTE0OWNmYWU5NGM1N2NiODJmZWVjYjVkNzRiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMjoxMSAyMDEyICswMjAwCgogICAgTm90IGFsbCBMaW51eGVzIHVzZSBycG0gKGRlYmlhbi91YnVudHUgY29tZXMgdG8gbWluZCkKCmNvbW1pdCA5MzA4MzgyMjRmNzgxNjk2YmQzNTIyNWYyMjU2OTM0NzQxNmYxYjE2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxMDoxNSAyMDEyICswMjAwCgogICAgQ2hlY2sgbmVlZCBmb3IgLWxtIHRvIHVzZSByb3VuZC9leHAKCmNvbW1pdCBhMDYwOWNmMWYzYTY5MTdkMjYzNzI1NzMyMjQ4Y2Q5MzdhNDVhZDk0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDA4OjQwOjQ0IDIwMTIgKzAyMDAKCiAgICBSZW1vdmUgbGltaXRhdGlvbiBvbiBjb25maWd1cmF0aW9uIGxpbmUgbGVuZ3RoLgoKY29tbWl0IDMwNTk3MzMzOGE2M2FlNTRjNWUwMmE4NjI2ZmJlOWE4MDY0ZGNiN2UKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDA6MzI6MTkgMjAxMiArMDIwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMuCgpjb21taXQgY2NhYjRlOWQzZWQ0MjRjMzlkMGRjMjdiZTYzZmE3NmM3NDYxZWE4MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwMDoxNToyMiAyMDEyICswMjAwCgogICAgSW50ZXJuYWxpemUgdGhlIG5hbWUgYW5kIGxpbmUgbnVtYmVyIG9mIHRoZSBjdXJyZXQgY29uZmlndXJhdGlvbiBmaWxlCgpjb21taXQgY2Y4NzRhZDdiOWRhZjRmY2MwZDQ2Y2RkMDM0NDc0YjQ3ODAwNTM0MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBBcHIgNiAyMTo0NzoyOCAyMDEyICswMjAwCgogICAgUmVwbGFjZSAjaWYgKEEpIEIgI2Vsc2UgQiAjZW5kaWYgd2l0aCBCLgoKY29tbWl0IGVmOWVhNjQxYmMyOTBlZWM1MDY4NWI2MDUxOWIzMWJlZThiMTRhNjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjA0OjA2IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IDM1YWJhMTk1OWRlMTE5ZjFmYjg5MjAzYzM3MTA5YWE2ZjBlMjFjNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIxOjAwOjQwIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMgoKY29tbWl0IGU0MWZiYWZmMThhYzkwOTVjZjRhNzM5YTA2ZWMzOWExYTZjY2ZkYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciA5IDIwOjM1OjM1IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNi4yLnByZTIKCmNvbW1pdCAxMzdmZTU4MmQ2Y2M1NjExNDMwZGFiNDZlZjE0NGVmZDg0Y2ZjODAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIEZyaSBBcHIgNiAyMDo0Njo1NiAyMDEyICswMTAwCgogICAgUmV2ZXJ0IGNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCiAgICAoc25tcF9zdG9yZV9uZWVkZWQoKSBBUEkgaXMgbm90IGF2YWlsYWJsZSBpbiA1Lls0NV0ueCkKCmNvbW1pdCAyYjdlNjQyODhjMDFhOGEwNjIwMjZjNTIxY2EzMWE1ZTg4NWYzMGNjCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjoxMjoxMiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCA3ZTk1ZDgwYjY5ODA1MTI1OTY0NWMwNzRhNTNmZmQyNjRhNmZhOTE2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNjowNjo1NiAyMDEyICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yICdjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKICAgIEJhY2twb3J0IG9mIGVkNjVlY2E2ZTdmOWNmYTczODBhNzhkNTZjMDFlZDMxNDc0NWIxNjkgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAxYTliN2I3YzAyZTJkZWVmZTk5NGQ1OTVhN2NjMWRkMmZmYmVlZTFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxNTo1MToyMCAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggJ3JlY2VudCcgaGVhZGVyIHNodWZmbGluZwogICAgQmFja3BvcnQgb2YgYzUzZDhjMzUyNWY1OTBmMjIxM2QzNWIwZGE5NDEyMzg2MmYzZTM2NiBmcm9tIFY1LTUtcGF0Y2hlcwogICAgKFBhdGNoICMzMzYzMzA4IC0gb21pdHRpbmcgdHdlYWtzIHRvIGNvbmZpZ3VyZSkKCmNvbW1pdCAzZDlkZGI0MWUyNjNiYzFhNzhmOWY5NDQwYjhkNGFkNGY4NmM4MmUxCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDozNjoxOCAyMDEyICswMTAwCgogICAgRml4IHR5cG8KICAgIEJhY2twb3J0IG9mIDViNzAyYjAyNGI2MDE3NmQ3ZjU2OTliOTJlNTVkYTUwYThkZWFlNzEgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCAwZDM1YzYwOTU2NGI2NmExZmZlODE1NTZkMzdhZGYwNTAzYzM4OWNlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAxMDoxNTowOCAyMDEyICswMTAwCgogICAgUHJvdmlkZSBtaXNzaW5nIGRlZmluaXRpb24gb2YgTkVUU05NUF9QUklvCiAgICAodXNlZCBpbiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMpCgpjb21taXQgYTc5MTQxYTQxOTk1M2QwMTBhNjk4OWU4Yjg4ZjRkZjEyNzM5NGQzOApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDk6MTk6MjYgMjAxMiArMDEwMAoKICAgIEhlYWRlciBmaWRkbGluZyBmb3IgRnJlZUJTRCxPcGVuQlNELERyYWdvbmZseQogICAgQmFja3BvcnQgb2YgZjdiMGRlMTUxODAwMmM2ZThmOWI5NGVmM2RlYjg4ODJlMWU5MzM4ZSBmcm9tIFY1LTctcGF0Y2hlcwoKY29tbWl0IGFkZjc0YmY3NTNkMzk3MDM1N2FmZDYzMzgwMzI1NjI0MWQ5YzdiODcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDA4OjIwOjQ2IDIwMTIgKzAxMDAKCiAgICBGaXggSVB2NiBUQ1AgJiBVRFAgdGFibGVzLCAqQlNEIHN1cHBvcnQgKGluY2x1ZGluZyBPcGVuQlNEKQogICAgQmFja3BvcnQgb2YgY29tbWl0cyA1Y2QxNTczNjI1NDcxYzA1ODNlOTA4N2FlYzY4MDJiNzcxNTdkNWEyCiAgICAgIGFuZCA1MGQ3M2YwZDU2ZmUyMmM1OTA1MzBiM2UzMDVkNDFkY2RhYzNjZTAwIGZyb20gVjUtNi1wYXRjaGVzCgpjb21taXQgZDk1NTVhY2I5ZjQ3YzNhYThmZGU0YmMyMGE0NGQ3Y2E2MTgxYThhOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFN1biBNYXIgMjUgMTg6NDg6MTIgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEF2b2lkIGRhbmdsaW5nIHBvaW50ZXJzIChiYXNlZCBvbiBwYXRjaCAzNTAzMjU5KQoKY29tbWl0IDgyYThiNDdlZTk2ZTVkMjlhMmI3YWMzY2EwMDcyMmQ3MzdkNWI0NzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMxOjU2IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IDljYThkOTM5YWIzOTMzMDZhMWQwZjE0NmM5Y2I3MGVhMGNiMTlkNDkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjMwOjM4IDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGNlY2Q0ODY5ZGViNjhmM2Q0YzcxZTc2OGQ1YjQwZGQ1NzY0NDY5MjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDI5IDIyOjI5OjMxIDIwMTIgKzAyMDAKCiAgICBSdW5uaW5nIGF1dG9oZWFkZXIgLyBhdXRvY29uZgoKY29tbWl0IGExYTQ1MTNiZDNlNGU2MTQyMDBmNmRiNWEwMmY2MWQ2YzhlZWZiMzIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIE1hciAyOCAwOTo0Nzo0NSAyMDEyICswMTAwCgogICAgRG94eWdlbi1zdHlsZSBkb2N1bWVudGF0aW9uIGZpeGVzIChiYWNrcG9ydCBvZiBnaXQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgOWJkYmNjYTEyMmMzN2RhMzA0ZmM2YWE2OTM5NzI5NDc1ZjkwZjVmZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjMwOjQ5IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2stcG9ydCBvZiBHSVQgY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEpCgpjb21taXQgMWY0YTgyOWIxODI3NWU0OTU2Y2E5MWU1ZWMzNzBkZjAxNWYwNjEzMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjQxOjI0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ5NTY5NzogU3RvcmUgcGVyc2lzdGVudCBzbm1wVGFyZ2V0IHRhYmxlIGNoYW5nZXMKCmNvbW1pdCAxZjc1ZjM3N2QwZGIwMTc1NGMwYzE2MWRjNDQzNzMwODFiZWVmNTIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6MTQ6MDYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFBBVENIRVM6IDM0ODkzODc6IEluc3RhbGwgRnJlZUJTRCAxMCBoZWFkZXIgZmlsZSAocGx1cyBvdGhlciBtaXNzaW5nIHZlcnNpb25zKQoKY29tbWl0IDNkNzJjOWU3OGYyYWQ4MTdjOWQxZDgyOTc3MzI3YmJiMjBkNjNhYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMTowNjozMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzNDg3ODY3OiBEb24ndCBza2lwIG1pc3NpbmcgaWZYVGFibGUgZW50cmllcyAoaWZDb25uZWN0b3JQcmVzZW50IEZBTFNFKQoKY29tbWl0IDEyOTA2NTc4YWIzMGNmNzc2ZDA4MGMwZWYzMDI1YjMwMzM0ZDc2NTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE2OjE3OjQ1IDIwMTIgKzAyMDAKCiAgICBESVNNQU4tUElORy1NSUI6IEZpeCBldmVuIG1vcmUgbWVtb3J5IGxlYWtzCgpjb21taXQgY2NmZDVjYTZmZTEwMzEzZDYxODFkMjRiYmIxNzk3ODI1YTk3ZGExMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NTE6MTYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogRWxpbWluYXRlIGR1cGxpY2F0ZSBjb2RlCgpjb21taXQgOWZkYTI2Njg3MjJmMDhkZGJmZGQ2N2EyMjM5ZDhiMDIxZGI2NGE4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6NDg6NDYgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogV3JpdGUgYSBsb29wIGFzIGEgbG9vcAoKY29tbWl0IGNiYzE4ZWI3NjNiYTZkZjY5ZWY3MDY2OGE1NGQ3NWJmMzVlNzk1MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDE1OjI0OjA4IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggbW9yZSBtZW1vcnkgbGVha3MKCmNvbW1pdCBjNzcyNTE5MjQ3OGFlYzAxOGZiNGFlZmE2MDk0NmUwNGE0MDZjMDBjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MzoyNCAyMDEyICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgcmVhZGluZyBmcmVlZCBtZW1vcnkgd2hlbiBkZWxldGluZyBhIHJvdyBmcm9tIGEgdGFibGUKCmNvbW1pdCBhNmJlNzM5NTY2ZjMxMGQ3NDQxZmQ3ZjU0OTg5ZTM5NDQ2ZjdhMTQzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxMzo0MjoyOCAyMDEyICswMjAwCgogICAgRXh0ZW5kIERJU01BTi1QSU5HLU1JQiB0ZXN0Cgpjb21taXQgOGE5YjU3MjkxNDUzY2I4YWVjMjhlNzY2YzU5NDcwMWVkMTljNGZjNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgMjYgMjE6MDM6NDEgMjAxMiArMDIwMAoKICAgIEZpeCBmb3IgRHJhZ29uRmx5IDMKCmNvbW1pdCBlNWM5YTMyZjc5ZWFjMmU4NTUyN2M5Y2YwNTA4N2NkYWU5YjM1YTZjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAyNiAyMDo1OTo1MyAyMDEyICswMjAwCgogICAgRHJhZ29uRmx5IG5lZWRzIF9LRVJORUxfU1RSVUNUVVJFUyB0byBjb21waWxlIGlwdjYgY29kZQoKY29tbWl0IGNkNDNiYzA5YTM5YmQ5N2ZmNWU3MTlhMmNlMjMyY2U0MjQ2MDBhNjUKQXV0aG9yOiBEYXZpZCBJbWhvZmYgPGRpbWhvZmZAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6NDc6MTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIIDM1MTA0NTQ6IEFsbG93IHRoZSB1c2Ugb2YgMC4wLjAuMC8wIGFzIGFsaWFzIGZvciBkZWZhdWx0Cgpjb21taXQgZTJmYzE1ZjllNWE2ZTNlMzZiZTVmNDg5NjAxY2JmNmJmNzMxOTE3ZgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MjE6MzggMjAxMiArMDEwMAoKICAgIEZpeCBUQ1Agc3RhdGUgdmFsdWVzIGZvciBEcmFnb25GbHkKCmNvbW1pdCA0MzJmZTNkZGY1NGYyYzk4ZjkzNjk1OTQ2OWNiOWIwMTRkNTk5ZjA2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNToxMDo1MiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBwZXJsIHRvIGRvIHBhc3NfcGVyc2lzdCB0ZXN0Cgpjb21taXQgMzdkMjc3MGNmNTBjOTgwMjNlZWJhOTBlMjVkMzcyYmZmNzMxNmFkYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlci5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTowNjo0MCAyMDEyICswMTAwCgogICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQoKY29tbWl0IDg2YTk0OGQ4NjkxZTg4MWQ1NTU5MWRjYWJkZGMyNzM5Y2U3MmIzMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQG5iYS1saW51eC5zYi5zdGF0c2JpYmxpb3Rla2V0LmRrPgpEYXRlOiAgIFNhdCBNYXIgMjQgMTU6MDE6MzcgMjAxMiArMDEwMAoKICAgIFByb3Blcmx5IGZpbmQgcGFzcyBoZWxwZXJzIGZvciB0ZXN0aW5nLgoKY29tbWl0IGZlMjZhM2M0ZjI5ZjA0NmJmNjVlZDUyZTlkOTQwNTRiNjc1ZmJjNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjA0OjQyIDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IExpbWl0IHNvdXJjZSBjb2RlIGxpbmVzIHRvIDgwIGNvbHVtbnMKCmNvbW1pdCA3NDViYWZjZGNjOWM4ZTg0NjE2ZDRlMjc0ZGIyYTM4NGJmMjM0ZGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE1hciAyMiAwODo1NTowNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5nIGltcGxlbWVudGF0aW9uIGluZGVwZW5kZW50IG9mIG50cGQgY2xvY2sganVtcHMKCmNvbW1pdCBkYTY5MjVlNjc2M2NhZGJlMDJmNGE4YmJmZTY4YTM2MmU1MzVhZDVlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMDozODozNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1NGRpc21hbnBpbmdtaWJfc2ltcGxlCgpjb21taXQgZmE2MDZkZDdjYTZhZmY5MzA4ZDRlOGIwMWJiY2RlMTQ4ZjQ0MTI3MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6NDk6MjEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IE1ha2UgcGluZ2luZyBsb2NhbCBpbnRlcmZhY2UgYWRkcmVzc2VzIHdvcmsKCmNvbW1pdCA2MTdhODNiYTc5OTU3NWM4NGM2NmY2YjFjNDgwZWY2MzMxNjFhNjRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjoyODo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IGEgc29ja2V0IGxlYWsgdHJpZ2dlcmVkIGJ5IHBpbmdpbmcgYSByZW1vdGUgaG9zdAoKY29tbWl0IDYyNWY1NWMyNzJlYzYyODFlMzhkOGUzMGViNTNmZDUxNTE2YjAwYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA5OjU0OjU1IDIwMTIgKzAxMDAKCiAgICBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgYSBkeW5hbWljYWxseSBhbGxvY2F0ZWQgdmFyaWFibGUgaW50byBhIHN0YWNrIHZhcmlhYmxlCgpjb21taXQgYjQ4ZjE5YWQ0YjRhYTY4YzNlMTZlMmE3MmRmMzdiOWMwY2QzNmM0YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTY6MjQ6MDcgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogQWRkIG1vcmUgZGVidWdnaW5nIHN0YXRlbWVudHMKCmNvbW1pdCBkNzRjYjM5NjYxNzU4OTI1NjJmNWUzYTliMTY4M2FjYmEyYzIyZTA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0NToxOCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IHNldmVyYWwgbWVtb3J5IGxlYWtzCgpjb21taXQgMGIxYTc3Njc0Njc4Y2M5YTE1YmUzZTc3MDBkM2NlZjY1MGVkMDJjNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTI6MDA6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvIG5vdCBzZW5kIHRoZSBjb250ZW50cyBvZiB0aGUgc3RhY2sgb3ZlciB0aGUgbmV0d29yawoKY29tbWl0IDEzOTAyM2NkM2FiNTE2MzFjYzEwZTI4NjZkNzFhYmNmOTlhZTRjMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjU2OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBEb24ndCBjYWxsIGV4aXQoKSB1cG9uIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmUKCmNvbW1pdCAxNjliNmFhYTdiNjE4MjdjYzFhZDBiM2FlZWFlM2E3MjI5ZGQyNWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1MzoyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRml4IElQdjYgc29ja2V0IGxlYWsgaW4gZXJyb3IgcGF0aHMKCmNvbW1pdCBhMGJlMzJhZDA1M2E3MWZhOTYxMzRkNTVlNTQyYmIwN2Q0ZjAyOTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMTo0Mzo0NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgdGhhdCBob3N0IG5hbWUgcmVzb2x1dGlvbiBmYWlsdXJlIGNhdXNlcyBhIGNyYXNoCgpjb21taXQgYmY5YmZmNjQ1NTY3ODdkNzY2ZWUyZWYyZDU3OGFmYjkyMDcxOWYzYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTE6NTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IENvbnZlcnQgcHJpbnRmKCkgc3RhdGVtZW50cyBpbnRvIHNubXBfbG9nKCkgYW5kIERFQlVHTVNHKCktc3RhdGVtZW50cy4KCmNvbW1pdCA1ZDc0YzAxMjQ1NTIzYTlkOGRiMWVkYTI3ZDFlZmFlMmViYzEwNGZiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODo0MDowMiAyMDEyICswMTAwCgogICAgTmV3IE1JQjogVlJSUFYzLU1JQgoKY29tbWl0IDViMzhmMDYyYjk5YjZlZjM2NzA4ZTJjN2RlNDk2NWEzMTkyNjEyZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjM0OjQ4IDIwMTIgKzAxMDAKCiAgICBGb3Igc2FmZXR5LCBzaXplb2YgdGhlIHJpZ2h0IHZhcmlhYmxlIGluIG1lbWNweQoKY29tbWl0IGU1ZjgyNzgyZGEwNWVmYTdjMGU2ZGMyYmY1YTQxZWUxMTg2OGY0NjkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXggZm9yIGhyU1dSdW4gZGF0YSBmb3IgRnJlZUJTRAoKY29tbWl0IDgzMjc1NjVlODIzMjcwZDEwYTQ1MDQ1NjhlZGJlNWI1YWUzMjNhNTUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjMxOjU0IDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCB2YXJpYWJsZXMgZm9yIE9wZW5CU0QvTmV0QlNECgpjb21taXQgMTcwZjZmMDI3YmY0ZjkxNzRiNzA3MzUzMGRhNGQwN2Y0MDBiYmE1OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6Mjg6NTggMjAxMiArMDEwMAoKICAgIE1vdmUgZGVjbGFyYXRpb25zIGluIGZyb250IG9mIHN0YXRlbWVudHMKCmNvbW1pdCBkYmI0NTczYjY5ZmFlODVjZGM5MzFiMjg5MmI1Y2U0ZTViMTZiMzIxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyMzozNiAyMDEyICswMTAwCgogICAgUmVxdWlyZSBrZXJuZWxfbmV0YnNkIGZvciBOZXRCU0Q2Cgpjb21taXQgZjExNjgxZjE1YWFkN2Q5YTUyZmEyOTgxMmVjYmI1MDdmMWI3ZmUyNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjM2OjM4IDIwMTIgKzAwMDAKCiAgICBDaGVjayBmb3Igb2xkIHRhcmJhbGxzIChhbmQgdW5wYWNrZWQgZGlzdHJpYnV0aW9ucykgYmVmb3JlIHN0YXJ0aW5nLgogICAgVGhlc2UgY2FuIGNvbmZ1c2Ugc3RlcHMgc3VjaCBhcyAibWFrZSBkZXBlbmRjaGVjayIsIHRoYXQgZG8gYSAnZmluZCcKICAgIG9uIHRoZSBjdXJyZW50IHRyZWUsIGFuZCB3b3VsZCBkZXNjZW5kIGludG8gc3VjaCB1bnBhY2tlZCBzb3VyY2UgdHJlZXMuCgpjb21taXQgNDcwZGNkNGI2YzNmZjExZmYwYTM1MzJhNzM0MGE1NmNmZmQ2OTA5OApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDIxIDEyOjMyOjEzIDIwMTIgKzAwMDAKCiAgICBEb24ndCBydW4gIm1ha2UgZG9jczsgbWFrZSBtYW5jcCIgaWYgdGhlcmUncyBubyBNYWtlZmlsZSBwcmVzZW50Cgpjb21taXQgYzlhYzQyMDM0M2UxNmRmMmI3MDY1ZjViZjI3OTBkZjQ0ZTI0N2ZiYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjI2OjEwIDIwMTIgKzAwMDAKCiAgICBBbGxvdyBkaXN0cmlidXRpb24gYXMgcGFydCBvZiBub3JtYWwgTmV0LVNOTVAgcGFja2FnZXMuCgpjb21taXQgNTk5OWY2MGM1NzcyM2YyM2YzYzI1NGFmNTdmZGIxMGFmMzAxYThlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTggMTk6MDM6MDggMjAxMiArMDEwMAoKICAgIFJlZ2VuZXJhdGUKCmNvbW1pdCAyNzVkMjA0MDM2YTYwN2UzZGY1MGU4NDQ3ZDRiYzc1NWU5ZGIwMmZkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEF1ZyAyOCAyMToyOTowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgaXQgcG9zc2libGUgdG8gdXNlIC0tZGlzYWJsZS1hcHBsaWNhdGlvbnMvLS1kaXNhYmxlLWFnZW50IHRvZ2V0aGVyIHdpdGggLS1lbmFibGUtbWluaW1hbGlzdAoKY29tbWl0IGJkY2NjODc1NzEwMjk1YWFjZjUwZjcxZWIxYzFkMmVlOTdmMzM2ZmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDIwOjEwOjU4IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgZGVjbGFyZSB0aGUgbG9jYWwgdmFyaWFibGVzIGZvciBvcGFxdWVfc3BlY2lhbF90eXBlcyB1bmxlc3MgdGhhdCBvcHRpb24gaXMgc2V0LgoKY29tbWl0IGI4MGE2N2RhMDUyYWRjYTFiNWE2NDRkYjgzYTc4MmUxNWMyMjM3YzMKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDE2IDE5OjUwOjAzIDIwMTIgKzAxMDAKCiAgICBDaGVjayB0aGF0IHRoZSBkYXRhIGV4aXN0IGJlZm9yZSB0cnlpbmcgdG8gcmVhZCBpdAoKY29tbWl0IGVmYWU4NmJiYTU5NjI0OTFkNDJiNzdiOTM1MTkxYTNlYjI1ZGQ5MzkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgTWFyIDE0IDAxOjA1OjMzIDIwMTIgKzAxMDAKCiAgICBQYXJ0aWFsbHkgcmV2ZXJ0ICJNZXJnZSByZW1vdGUgYnJhbmNoICdvcmlnaW4vVjUtNy1wYXRjaGVzJyBpbnRvIFY1LTctcGF0Y2hlcyIKICAgIAogICAgQ29tbWl0IGQzNWExODYwMjE3ZTcyM2U0Zjg2NmRkOThlZjY2MjE2NjU5MzRjNGEgYWNjaWRlbnRhbGx5IHJldmVydGVkCiAgICAKICAgIDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAgKGhyaF9zdG9yYWdlIGlzIGEgcHJvcGVyIHJlcGxhY2VtZW50IGZvciBocl9zdG9yYWdlKQogICAgMGRkMWU1NDU1N2QxYmE0OThiNTVkMDE3YjBhOTNlOGNjZjliZDUyMiAoQ0hBTkdFUzogc25tcGQ6IFVEUC1NSUI6IFJlcG9ydCB0aGUgcHJvcGVyIGFkZHJlc3MgaW4gdWRwTG9jYWxBZGRyZXNzKQogICAgNTExNmQ0ODM3OGVjZjAzZTcyMmYzMDEwYWQ0N2JmMjJhM2ZiY2I4YyAoUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUpCiAgICAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiIChwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZykKICAgIAogICAgYW5kIHBhcnQgb2YKICAgIAogICAgNmU3NGQ2NGY4NWE1OWQ1MGU0NjFkYjRjMzRhYzc2ZjlkZTQ2OGJmYiAoQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcykKICAgIAogICAgVGhpcyByZXZlcnRzIHRob3NlIHJldmVydHMuCgpjb21taXQgYWFlZGQ1OWNjMmRhNzAxNTI3ZGMyZDI2MWQ0ZTlmODVmMTZlNzUwNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBNYXIgMTEgMjA6NTc6MzggMjAxMiArMDEwMAoKICAgIEFsbG93IG1ha2UgdGVzdCB3aGVyZSB0aGUgc291cmNlIHBhdGggY29udGFpbnMgdGhlIHN0cmluZyBOZXQtU05NUCB0byBzdWNjZWVkLgoKY29tbWl0IDRiOTRkNzk2OTE4YTRlZWFlNjhhYjIxYWE1M2Q0NDRhOGI1YzI5MjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgTWFyIDkgMDg6MDQ6NTkgMjAxMiArMDEwMAoKICAgIFVuYnJlYWsgY29tcGlsYXRpb24gb24gRnJlZUJTRCA0Cgpjb21taXQgMTBmZTZiODMzMjRhZDM3ZDE4YjkzN2NjOGM2ZGU5NGRlNTM0ZDAzNQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTM6MDQ6MDcgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgZTExMjJlZGMxYTVmZTc5NzZiMDY1MDQ0MTM0ZDM5ZTdkYjU5ODVlYQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6NDM6MTkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgYTYxM2QzYTgzNDkxMjIwNmQxYmE1OTcxZTQ0MWEzZWE2YjM2YWYyMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDggMTI6MzM6MDMgMjAxMiArMDAwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5wcmUxCgpjb21taXQgMGVmMzRlNjUxOWRmY2I4MmM5N2RmODQyNzU0N2MwOGRjZjgxZTY5YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTWFyIDggMTA6MTE6MzAgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBzbm1wZCAnLWQnIG9wdGlvbi4KICAgIAogICAgTm93IGl0IGR1bXBzIHBhY2tldHMgYWdhaW4uCgpjb21taXQgOGU2OTc0MmYxNDNlNGZjMTExOTZlNWIyZWQ2NmM4ZjdmNTNmZDAyZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MjEgMjAxMiArMDAwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMQoKY29tbWl0IGM0ZTAwYjhjM2UxMDEwY2RjYWI1ZTZjMDJkNjBkNzVkZjljNmRjZjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciA2IDA5OjI0OjA1IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucHJlMQoKY29tbWl0IDM5NDkwMTA0YTNhYjU4MjM1YWFjZTJmOWQ4NzFjMjY2ZGM0NDg1ZWUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCA0YTJlNWJjZDU2Y2QyYWZiMzZlYjE1ZDc1NGUyZmVlODg4ZGQ1MGMwCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciA1IDIwOjU5OjM4IDIwMTIgKzAxMDAKCiAgICBocmhfc3RvcmFnZSBpcyBhIHByb3BlciByZXBsYWNlbWVudCBmb3IgaHJfc3RvcmFnZQoKY29tbWl0IGNlODU4MzI5MzJjY2Q5MTZjNDIzMTkxMTRjNDA4ODVhNDY2YTlkMGUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDUgMjA6NTY6NDAgMjAxMiArMDEwMAoKICAgIE1vcmUgZml4ZXMgZm9yIFNvbGFyaXMgc2gKCmNvbW1pdCAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDE1OjA4OjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MgaW5zdGVhZCBvZiAwLjAuMC4wLiBNYWtlcyB0ZXN0IFQxNjBzbm1wbmV0c3RhdCBwYXNzIGFnYWluLiBGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhLgoKY29tbWl0IDUxODkxN2U5ZjM5ZjdhOWQzYzNiZjNhODY1ZThhYzBlMzAyNmQ2MDAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTQ6MDQ6NTQgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOiBGaXggc291cmNlIGNvZGUgaW5kZW50YXRpb24KCmNvbW1pdCAyNjUxOTA5Y2NjZWFiZmNmYWRhZjk0MmMwMjQ1MGUyOGZlODM3ZGM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE5vdiA5IDEyOjA0OjA0IDIwMTAgKzAwMDAKCiAgICBQYXNzZXMgbm93IG9uIE1pbkdXIHRvby4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk2NTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZTQxZjExNWU0MDMwNGM5NDFiYTE3ZDY3ZTI0NzEwNzIyZDkwNzQxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxMzozOToxNyAyMDEyICswMTAwCgogICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC13IGFuZCAtcSBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZS4KCmNvbW1pdCA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjIwIDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6IFJlZHVjZSBzY29wZSBvZiBwcmVmaXhfdmFsIHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCB3YXJuIGFib3V0IGFuIHVuc2VkIHZhcmlhYmxlIGlmIGl0IGlzbid0IG5lZWRlZC4KCmNvbW1pdCA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjIyOjMxIDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6IEF2b2lkIHVzaW5nIGdyZXAgb3B0aW9ucyAtcSBhbmQgLXcgYmVjYXVzZSBncmVwIGluIFNvbGFyaXMnIGRlZmF1bHQgcGF0aCBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlc2Ugb3B0aW9ucy4KCmNvbW1pdCAxMGY1NjZmNGQ0Y2JiM2UyMDUwMjNjMjM2NjkyODllNGJmZDA4OWNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEwOjQ3OjM5IDIwMTIgKzAxMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogRml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDQ0YWEyNjU4OTFjZDU2M2Y3ZjQxMTRlZjI1ZGNmN2FhZjNiMTRlOWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCBkYWU0ZTE2YmU4NjExNzg2MWY2M2QxYTJmOTgxYWQzNjE0MThmNWM2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgMjhmNjIyNmYyZTIyOGI4Y2EyNDg0ODk3MzVmODY1MDJiMmNjZTBhMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDQwMDIyYTY5Nzk1ODI1OWNjZmJiM2ZlZDQ0ZWIzYzQ3MmY1ZTgzN2UKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWFyIDQgMTA6Mzc6NDEgMjAxMiArMDEwMAoKICAgIFNvbGFyaXMgc2ggZG9lcyBub3QgdW5kZXJzdGFuZCAidGVzdCAtZSIKCmNvbW1pdCA3NzNhZjBjNDJlMDc3YmViZGFlY2YxYzBjYWYzOTMyODVhNzY4OGYxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE3OjE5OjMwIDIwMTIgKzAxMDAKCiAgICBDbGVhbiB1cCBuc3JvbGx1cCBjb21wbGljYXRpb25zCgpjb21taXQgZWU3MTA0OWMzZTIxYzFkMGUzNDI0Mjk3MTM2NjUyYmJlMGUzOWQ4NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMyAxNjo0OTo0MSAyMDEyICswMTAwCgogICAgbWliZ3JvdXAvaWNtcC5jOiBhZGp1c3QgaWZkZWZzIHRvIG1ha2UgaXQgY29tcGlsZSBvbiBCU0QncwoKY29tbWl0IGNlOTYwMDM2MWU2NjVkZGUxN2FmOWQ4YWIxNmQ3Y2U4NWRjMDU2NDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzk6NTUgMjAxMiArMDEwMAoKICAgIGRvdDNTdGF0c1RhYmxlIGhhcyBidWdzIDotKAoKY29tbWl0IGRmZmFjZjZmYTA3NTVlMTcwMGNiYWMyNWI4NDQxODVhYmQ4MDdhMGEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6Mzg6MTAgMjAxMiArMDEwMAoKICAgIHBhc3NwZXJzaXN0IHRlc3QgbmVlZHMgL3Vzci9iaW4vcGVybAoKY29tbWl0IDg3MjY5OTVjN2E4YWVmNjc0YzRmMTY0YjE4NzFjMzdiYmRjZGFkNTAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzY6NTggMjAxMiArMDEwMAoKICAgIGdyZXAgLXcgZmFpbHMgd2l0aCBPcGVuQlNEIGFuZCBTb2xhcmlzIDEwLTY0Cgpjb21taXQgMWViNDc0NWIyM2NjM2E4Mzk4NjRlN2Y2ZWEyODM1NWIwNTY2ZWI2NwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNTo0OSAyMDEyICswMTAwCgogICAgU29sYXJpcyBuZWVkcyAvdXNyL3hwZzQvYmluL2dyZXAgdG8gdW5kZXJzdGFuZCAtcQoKY29tbWl0IDk5NTRiNGI3NDFmZDhjNjNkNjEyOGJkMDUyNzI5OGM4ZTRlOTg5ZmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzQ6NDUgMjAxMiArMDEwMAoKICAgIE1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSBwcm9wZXIgc3JjZGlyIGZvciBvdXQtb2Ytc291cmNlIGJ1aWxkcwoKY29tbWl0IDc4MzY5MDAyYmUyNzExZjBhYTg3NmI2NGE0ZTEwYjA5MGNjMjQxY2QKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MzM6MzEgMjAxMiArMDEwMAoKICAgIE5vdCBhbGwgbWFrZSB2ZXJzaW9ucyBkZWZpbmUgJChSTSkKCmNvbW1pdCA5NDI0NWIyOWEzY2RhODk0NzVjNmVhYjVkOTQ5M2M2NjU3ZmYzOGUzCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjI0OjI0IDIwMTIgKzAxMDAKCiAgICBNYWtlIGF1dG9jb25mIDIuNjggaGFwcHkKCmNvbW1pdCA0NGFjZDZjMjg1ZmI1NjE0YjRjOTYxMWIxYWJkZWNhOWRkMjhlNGJiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjEyOjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggc3BlbGxpbmcgb2YgbWliIG1vZHVsZSBmc3lzX2dldGZzc3RhdHMKCmNvbW1pdCAxZmExZmVlMzY5M2Y2N2I4MjAyMjM4MDZiM2Q3M2FmZDRjNTBlYzE4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIE1hciAyIDAxOjM3OjIwIDIwMTIgKzAxMDAKCiAgICBTaWxlbmNlIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCA5MzI2M2I5OGE1ZGIzNDRjZjJjNGQ0ODljNDM5NzFlN2IyOWNkYjAzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMzozNzoyMCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA1YTE3NTQyOGI5NzNkMmVhODU1M2UyOWZlY2Y5NGNmMTU2NmFhODU4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0ODoxOCAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCAzNjQyNzZhMWM1YWE2NmNhYTIzZWI1YjdmMTExZmRlYjVhZjcxZmE3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMTo0NToxMCAyMDEyICswMDAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCA3MzU5ODM0MDE3MmVmZjc1NzI5YTZkNTcxOTJiODE3MWQ1YmJmMDBlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0Mjo1NiAyMDEyICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjUuMi5wcmUxCgpjb21taXQgZjMyMTQ0MDI2NzJjYTE5OWZkNTMxZTY2MTIyYmY5NmM0ZDlhNGViNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWFyIDEgMTA6NDI6MzkgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjUuMi5wcmUxCgpjb21taXQgMmU3NGFjYjZmMTllNDcyOWNlZGUwYWI0M2U5MzE5NjFjYjIzYWFlYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwOToxODozOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IERvIG5vdCBpbnN0YWxsIHRoZSB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgdGhhdCB3ZXJlIHJlbW92ZWQgaW4gNS43Cgpjb21taXQgYjcxMDk2NDZiOTVhNzA3MTNkMWFkOTkxZDQxYmNjZDU3YzBiYjNlYgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFRodSBNYXIgMSAwODo0ODo0OCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzIGludHJvZHVjZWQgaW4gNS42Cgpjb21taXQgNDMyY2JiN2E1NTAxYWI5MGQ2NmQwYTgzZTczMWU3MzQzYmMwNGIzNwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBGZWIgMjUgMTA6MTM6MTUgMjAxMiArMDEwMAoKICAgIENvcnJlY3QgdHlwb3MKCmNvbW1pdCA2YTZjOWJiYzc1ODRmMTk2YTExODVjYzE5MzUyMDRmMTIwNjgxMWVkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgV2VkIEZlYiAyOSAwODo1NTozNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogQnVnIDMxNTI4NDE6IEluc3RhbGwgdXRpbF9mdW5jcyBzdWJoZWFkZXJzCgpjb21taXQgZDUxNWUyYTZlNGMyYTFjNGQ4NDczNGNjN2IyZDBiMmZjNWE4OTRhZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjU2OjIxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ4NzkxOTogRml4IGNvbXBpbGF0aW9uIHdoZW4gY2FjaGluZyBpcyBkaXNhYmxlZAoKY29tbWl0IGFmODM2OGVkODg5OGE3OGQwODY4YjQ3YWY0NmJjOWRiMDdkMWM3NjQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNTo1MDo1NiAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQxNDc3MzogRW5jb2RlIGludGVnZXIgdmFsdWUgdXNpbmcgQVNOX0lOVEVHRVIKCmNvbW1pdCAxOWUyNzE1ODA3ZmUwNmZkMGJhZWRmODgxNjUwMTFhZWU5MzNlNzU1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTQ6MDU6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IG1hbjogQlVHUzogMzQ5MDcwODogQ2xhcmlmeSB1c2Ugb2YgY29tbW9uIGNvbW1hbmQtbGluZSBvcHRpb25zCgpjb21taXQgNjVmNzk2MmY5MzJjOWI3NWM1YmJiYjA0N2QxZTI2YWU2MDk3OGU1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEyOjIzOjM0IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ4OTYzMTogRml4IGluY29ycmVjdCBoYW5kbGluZyBvZiBVQ0QgbW9uaXRvcmluZyBmbGFnCgpjb21taXQgYWMxNjYwNTFiNmEwOTJkZDRhNTk0MzI2ZWM4NWUyZjY5OWI2MjU0NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDExOjU3OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBCVUdTOiAzNDc0NTkwOiBEb24ndCBtYXRjaCB1bmRlcnNjb3JlcyB3aXRoaW4gdGhlIHNvdXJjZSByb290IGZpbGVuYW1lCgpjb21taXQgODc5YmY3MDc5ZDM0ZmE0NmY2ZmNmNTRhMDFjODUwMGJlYWVjZTU5YQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjQ0OjQxIDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHUzogMzQ2MDM2NDogRml4IHVzZSBvZiBibG9jayBmYWN0b3Igd2hlbiBkZXRlY3RpbmcgZXJyb3IgY29uZGl0aW9ucwoKY29tbWl0IDAzNGYxYzU3MmY2ODNlYTQyODU4MzA3NDQ3MWU1ZDVkMTNiNTE4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDoyMjoyMCAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHVzaW5nIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IDM2NDIzZTIxMGJmYjY1ZWYxMjFjNmE2NmFlYzQzOGM3YzIzN2QzZGYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxMDowMzoyNSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDU0MTY4OiBjb25maWd1cmU6IEZpeCBidWlsZGluZyB3aXRoIC0tZW5hYmxlLXJlYWQtb25seQoKY29tbWl0IGVlZDBiY2JjNDNmZWExODI1OWYwZjYzYjIwODFiNmQxMDUzNWEwNTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAwOToyNzoxMSAyMDEyICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgYmFieS1zdGVwcyB3aGVuIGNvbXBpbGVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0LgogICAgSW5zcGlyZWQgYnkgYnVnICMzNDU0MTY4Cgpjb21taXQgZWM2YTIzMDMwZTVhMjA3MmMxOWMxOGMxZDljMTI0Mzg3ZGE1NmI3YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTg6NDI6NTggMjAxMiArMDAwMAoKICAgIEFkZCAtbHJ0IHRvIE5FVFNOTVBMSUJTIHN1Y2ggdGhhdCBjbG9ja19nZXR0aW1lKCkgY2FuIGJlIGZvdW5kCgpjb21taXQgZjEzMzIwNTAwMjk0YmIyNDBmNjNjNmRkN2QyZTlhMjIwOGViNzQwZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE2OjUyOjUxIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbXBpbGVkIHVzaW5nIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAoKY29tbWl0IGM0Mjc2YjYyMzJjMjkxNDVjMDM5ODg0ZTZiNWE2YjZkYTRiOTM4MzcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNTo1NDo0NSAyMDEyICswMDAwCgogICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0IChpbnNwaXJlZCBieSBwYXRjaCAjMzQyNDkzMCkKCmNvbW1pdCAwMWM5MzBlZGNjMjU3MDBkNmI1ZmIwMzc2ZjU1YTI2NDI1ZTEzZmIwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTU6MTc6MjIgMjAxMiArMDAwMAoKICAgIE9taXQgU0VULXJlbGF0ZWQgY29kZSB3aGVuIGNvbXBpbGluZyB3aXRoIC0tZGlzYWJsZS1zZXQtc3VwcG9ydAogICAgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQoKY29tbWl0IDk0ODRkODMyMDNjNGUyZDgyMDQxNmJlNjY1ZmE4MzNhYTcwNDQ0ZDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDI0IDE0OjAwOjMyIDIwMTIgKzAxMDAKCiAgICBSZXdvcmsgY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMuCgpjb21taXQgMmI3ZjEzNDk1MjI4NjM1ZDgxNmU1OGIyMTc0ZGMxMjRkZDBjZjM5ZgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBGZWIgMjQgMDc6NDM6MjIgMjAxMiAtMDgwMAoKICAgIHNldCBNRVJHRV9BVVRPRURJVCBiZWZvcmUgbWVyZ2luZyB0byBhdm9pZCB0aGUgZnV0dXJlIGdpdCAxLjcuMTAgZm9yY2VkIG1zZwoKY29tbWl0IGUxYjkxMGIwYmU5MzQzNTg2YWU5ZWRiYTZmNDYwNDBhZjMxNWZjZGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjI3OjU0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogaW5pdF9hZ2VudCgpICsgaW5pdF9rbWVtKCk6IFJldHVybiBhbiBlcnJvciB2YWx1ZSBpbnN0ZWFkIG9mIGludm9raW5nIGV4aXQoKSBpZiBhY2Nlc3MgdG8ga2VybmVsIHZpcnR1YWwgbWVtb3J5IGlzIGRlbmllZAoKY29tbWl0IDQ2M2VlZDIxMjBmOWQxOTFiYzIyNjczNDk2YTQ5ZTgxNzQ2NjRlNGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIzIDEwOjAzOjMxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgb2Jzb2xldGUgc3ltYm9sIE5FVFNOTVBfRVhJVF9PTl9CQURfS0xSRUFECgpjb21taXQgYzM2YWI3MWE0ZTA5NmYxNmNjNWE1NTUzM2YwODBjOWE5NDAwOTkxNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDg6NTM6NTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IHNubXBkICsgYXBwczogU2VuZGluZyBVRFAgcGFja2V0cyB3b3JrcyBhZ2FpbiBmb3Igbm9uLXJvb3QgdXNlcnMKCmNvbW1pdCBlZGViZGRiYTkzMGY4YjE0NzJmYTBiZDIwZmM0MTNlZjhjZjQ2NGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEZlYiAyMSAxMTozMTo0NiAyMDEyICswMTAwCgogICAgdGVzdGluZy9SVU5URVNUUzogRml4IGEgYmFzaGlzbQoKY29tbWl0IGI0YTE5NTA1YTA1ODE2ZTk0ZTAxZGU5N2JmOTlhYzM3ZmNkYzZkMjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDIwIDE2OjU4OjQ3IDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgJWxkIHZlcnN1cyB0aW1lX3Qgb24gc3lzdGVtcyB3aGVyZSB0aW1lX3QgaXMgYSBzeW5vbnltIGZvciBsb25nIGxvbmcgaW5zdGVhZCBvZiBsb25nLgoKY29tbWl0IGQ4OTc4ZWNjODIxMWJlN2MxZTc5MDVmMWUyMTViYjA2ZGVkMjY2YjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgRmViIDIxIDEyOjMyOjI1IDIwMTIgKzAxMDAKCiAgICBGaXggc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMgZmlsZSBoZWFkZXIKCmNvbW1pdCBhYTc2NmQxOTZlNTI4N2Y2Y2E3OWI1OGEzNDViMDI0MjYwYWJhMzU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyMCAxNzowNzoxMyAyMDEyICswMTAwCgogICAgSUYtTUlCOiBkbyBub3QgdHJpZ2dlciB1bmRlZmluZWQgYmVoYXZpb3IgKD4+IDMyIG9mIGEgMzItYml0IHZhcmlhYmxlKSB3aGVuIHVwZGF0aW5nIGEgY291bnRlciBhbmQgaWZpX2lwYWNrZXRzIGlzIGEgMzItYml0IHZhcmlhYmxlCgpjb21taXQgYzNmYjZkZDllNmI5OWU5NTQyNDkzMTg4OTg3ODcxZmM1MDE3Y2IzYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMDk6NDU6NDUgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgb24gc3lzdGVtcyB3aGVyZSBtb2RlX3QgaXMgdW5zaWduZWQKCmNvbW1pdCBmOGEzZWYwZDNkNGU1MzAyNzk5MDAxMDEwNDliOGRlOThhNDRhNmZiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjQ4OjUyIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliICsgc25tcGQgKyBzbm1wd2FsazogQXZvaWQgdGhhdCBzeXN0ZW0gY2xvY2sgY2hhbmdlcyAoZS5nLiBieSBudHBkKSBhZmZlY3QgY29kZSB0aGF0IG5lZWRzIHJlbGF0aXZlIHRpbWUKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHN1cmUgdGhhdCB0aGUgcmFuZ2Ugb2YgdGhlIFNOTVB2MyB2YXJpYWJsZSBzbm1wRW5naW5lVGltZSBpcyAwLi4yMTQ3NDgzNjQ3IG9uIGFsbCBzdXBwb3J0ZWQgc3lzdGVtcyBpbnN0ZWFkIG9mIDAuLjQyOTQ5NjcyIG9uIHNvbWUgc3lzdGVtcyAoaS5lLiB3cmFwYXJvdW5kIGFmdGVyIDQ5NyBkYXlzKQogICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG5ldHNubXBfZ2V0X21vbm90b25pY19jbG9jaygpLCBuZXRzbm1wX3NldF9tb25vdG9uaWNfbWFya2VyKCksIG5ldHNubXBfcmVhZHlfbW9ub3RvbmljKCksIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQogICAgQ0hBTkdFUzogc25tcGxpYjogRGVwcmVjYXRlIGF0aW1lX2RpZmYoKSwgYXRpbWVfbmV3TWFya2VyKCksIGF0aW1lX3JlYWR5KCksIGF0aW1lX3NldE1hcmtlcigpLCBtYXJrZXJfdHRpY2tzKCksIG5ldHNubXBfbWFya2VyX3VwdGltZSgpLCBuZXRzbm1wX3RpbWV2YWxfdXB0aW1lKCksIHRpbWV2YWxfdHRpY2tzKCksIHVhdGltZV9kaWZmKCksIHVhdGltZV9oZGlmZigpIGFuZCB1YXRpbWVfcmVhZHkoKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSB0aGUgbmFtZXMgb2YgdGhlIHN0cnVjdCB0aW1ldmFsIG1lbWJlcnMgb2YgZGF0YSBzdHJ1Y3R1cmVzIHRoYXQgd2VyZSB1c2VkIHRvIHN0b3JlIGEgd2FsbCBjbG9jayB0aW1lIGJ1dCB0aGF0IGRvIG5vdyBjb250YWluIGEgbW9ub3RvbmljIGNsb2NrIHZhbHVlCgpjb21taXQgYzE5NzYwZjMzMzNjOTJmYWM1ZDUwZTk3NjhjZGY5MzkyMThiYzQ4NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBGZWIgMTUgMDk6NDU6MDMgMjAxMiArMDEwMAoKICAgIHNubXBsaWIvc25tcHYzLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgoKY29tbWl0IGE2ZGIyMzk5NDVlMTk1ZGU1YTkwZmExODM3MDBiMjdhNmVjYjI4ZDMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgRmViIDcgMDA6MTE6MTQgMjAxMiArMDEwMAoKICAgIEZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBmcm9tIHJlY2VudCBkZWNsYXJhdGlvbnMgcGF0Y2gKCmNvbW1pdCAwZmJiYjlhOWUyOTA2YTdhZjk1Njk1NzA2MWQ0ODU4NzQ0NjJhZWE5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjQzOjA0IDIwMTIgKzAxMDAKCiAgICBEbyBub3QgbWl4IGRlY2xhcmF0aW9ucyBhbmQgc3RhdGVtZW50cwoKY29tbWl0IGYzMDhkNWJhZmIwNWQ3OGVkNDAzMGM0ZWNmZjMyNGI2Y2JkYTY4MGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTU6MjU6MzAgMjAxMiArMDEwMAoKICAgIEZpeCB0d28gY29tcGlsZXIgd2FybmluZ3MgaW4gYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMKCmNvbW1pdCA0NmYwZmMxYjdmYzI2YTIyNTc2M2JjNjVjY2E1MjBhMWM1OWYwMjUxCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEZlYiA2IDIwOjU0OjMyIDIwMTIgKzAxMDAKCiAgICBzZW5kbXNnIGRvZXMgbm90IGxpa2UgSVBfU0VORFNSQ0FERFIgaWYgYWRkciBpcyBJTkFERFJfQU5ZCgpjb21taXQgZGViYWM0OThmZTg0MTAxMTAxMDdhMmZlNjRmOGFmYjc0OGVkYWEwNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMTY6NDg6MDkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IGFkZGVkIE9DRlMyIChPcmFjbGUgQ2x1c3RlciBGUykgdG8gaHJTdG9yYWdlVGFibGUgYW5kIGhyRlNUYWJsZQoKY29tbWl0IGZhZmM5OWNkODllNzNlYzdlMDBiZjczNjBkMGI0ZmE2MTk0NGE0ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTg6MzQgMjAxMiArMDEwMAoKICAgIFNpbXBsaWZ5IGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCgpjb21taXQgN2FmMjAxM2RlOGJmMWIzNzljMDc2ZGI0ZTEwNDUwOGUxNzg3NGQzZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo1NTo1OCAyMDEyICswMTAwCgogICAgRml4IG9yZGVyIG9mIGZlYXR1cmUgI2lmbmRlZiBhbmQgRG94eWdlbiBjb21tZW50IGJsb2NrCgpjb21taXQgYmJkNjdmNjM1MzBmNWVmMGJmYzk0OGZjNThkZmU2YTkzZjhmODY3OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQyYTY2YWVmZjI1YjllOWVmNjM1YTQwNGFkMmY1MjEyZjllOGNmMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDc6NTQgMjAxMiArMDEwMAoKICAgIFJlbmFtZSB0d28gZnVuY3Rpb24gYXJndW1lbnRzCgpjb21taXQgM2ZlNzJiM2I5OWI3ZTRiMmI5ODIzNjNkZmM0ZjJkOGQxM2Y0MDU5MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMzo0OToyMiAyMDEyICswMTAwCgogICAgQ29udmVydCBzbm1wX3NlbGVjdF9pbmZvKCkgZG9jdW1lbnRhdGlvbiB0byBEb3h5Z2VuIGZvcm1hdAoKY29tbWl0IGU5ZGIyNjZhZTQ4ZDA1YTdhNmNiNWQ3MWI0YmRlYTdhZDgwOGVmNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTc6NTcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfbmV4dF9hbGFybV90aW1lKCkKCmNvbW1pdCBkMDgwNDRjYjllNTcwMmZiZjU0OWUxNDQyNWY0Mjc5NDI1OWQ4YTIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDA5OjM4OjA3IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG5ldHNubXBfZ2V0X2FnZW50X3J1bnRpbWUoKQoKY29tbWl0IGEwNWMyN2MyNzExY2I0MTU4MmEzYjRjMzFlMzhiMGU5MzUzMGI2MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NTE6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQKCmNvbW1pdCA5MTBkN2IwZDk5MTgzNjA5Yjk1MjliMDRjM2YyOTMzMGViNjYxMDIxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjM4OjEyIDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSBieSBuZXRzbm1wX2dldF9hZ2VudF91cHRpbWUoKQoKY29tbWl0IDQzYTgzZjZjNmE5NmNjMjMxNmI3MGVlY2FjZjEyN2ViNjkxM2M3YTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTE6MTk6MTUgMjAxMiArMDEwMAoKICAgIFVzZSB0aGUgYXNzaWdubWVudCBvcGVyYXRvciBpbnN0ZWFkIG9mIG1lbWNweSgpIGZvciBjb3B5aW5nIHN0cnVjdCB0aW1ldmFsCgpjb21taXQgMmZlNTc5ZWZiMWNiM2E3NGY4MjgwM2NhMzIzOTI4ZjZiOGU0YjVjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxNDowNDowMiAyMDEyICswMTAwCgogICAgTWFrZSBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgYnVpbGQgYWdhaW4gb24gbm9uLUxpbnV4IHN5c3RlbXMuCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCAzNDVhMWU0MjU0ODEyY2I5ZWRjMWQyNzQ0OTFiNzY2ODFhOWRiYTFlLgoKY29tbWl0IDg4MWRlNmFiNzM1NTI3N2E1YzExNmEwMDhmYmU1MTMyOTNiMDUwMzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgRmViIDMgMTA6MDg6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIFJtb24gTUlCIGltcGxlbWVudGF0aW9uCgpjb21taXQgNDYyOTkzM2MwZDNiM2Y5ZjRiYTU4MzUzNGY3OWEzN2ZiOTYzMzgxNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAyMDowNTozMSAyMDEyICswMDAwCgogICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgZTliNWEzZGVlNmY5YWZhYjhiOTBhMjkzOTIwNDA2MzJiMDc1YWQ3YQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNjo1Njo1NSAyMDEyICswMTAwCgogICAgVXNlIFNOTVBfTUlOKCkgaW5zdGVhZCBvZiBtaW4oKQoKY29tbWl0IGFlNDUyYzc3YjQxMTEzOWQ2YjU4MDBmZmNmODhkNDhlOWI0NzkyYTgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTU6MjM6MzggMjAxMiArMDEwMAoKICAgIFJlc3RvcmUgY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgYzdkMTFmYTAwZjk5OTVkZGI5ZmUzZDQ5OTRhM2U5NzkwZGEyZTE4OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToxODo0MCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2NyBwYXJ0aWFsbHkuCgpjb21taXQgMDBmZDYyNzIwZWM0NTRmNWE2OTBkZTRmZWJhMDgyMjNjZmIyYzNmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNDo0ODo0NCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBBdm9pZCBjcmFzaCBkdXJpbmcgc2h1dGRvd24gZHVlIHRvIGludm9raW5nIHBlcmxfZGVzdHJ1Y3QoTlVMTCkKCmNvbW1pdCBkOWUyMjlkODFhYmVhZjE5MWVmMmNjYjA3Nzg0Mjg4NWMyMzBkNjIyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ3OjQxIDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgYSBzdXBlcmZsdW91cyBkZWNsYXJhdGlvbgoKY29tbWl0IDFlMmUyYWY2Y2FlODMwZjM4MWU4N2EyNDRkMDI5ZWI4NmJmM2ZjY2UKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTM6MjA6MzcgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9leGFtcGxlcy9waW5nbWliLnBsOiBBZGQgZXJyb3IgY2hlY2tpbmcKCmNvbW1pdCAyNDFhMTQxZTMxZjE2ODRmYzZjZjcwY2M0YTAwY2NlNjM2ZmQzNTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDExOjI4OjM3IDIwMTIgKzAxMDAKCiAgICBNYWtlIGNvbmZpZ3VyZS10aW1lIEVWUF9NRF9DVFhfY3JlYXRlKCkgZGV0ZWN0aW9uIHdvcmsgb24gdGhlIDUuNCBicmFuY2guCiAgICAKICAgIFNlZSBhbHNvIGNvbW1pdCA0NmVhYzAyZTlhMjdiZjRmMzA2OGU3OTVjYWI4OTFmMDVhODQ4ODcwLgoKY29tbWl0IDZkOWQxNGZlYWFhMmQwZmVjNjhiNGQxNTg5NDRkMzJjYjA0ZmYxYmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6MTI6MDAgMjAxMiArMDEwMAoKICAgIFJldmVydCB0aGUgY2hhbmdlcyB0aGF0IGJyZWFrIHRoZSBidWlsZCBvbiB0aGUgNS40IGJyYW5jaCBmcm9tIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3LgoKY29tbWl0IDhhYmU0OWUzMGM5N2M4OTgzZTgzYjQ1YTM1YzcxNmZlOTFmNjZiZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgRmViIDEgMTE6NTY6NTggMjAxMiArMDEwMAoKICAgIEZpeCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGluIHRoZSBESVNNQU4gTUlCIGltcGxlbWVudGF0aW9ucy4KCmNvbW1pdCBmOWZiMGE1MzMzNzVlMTRkYzM3MDAyNWEwYjJmYmM3NjFiZjI3YmU2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDA5OjU2OjAyIDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZyIgYmVjYXVzZSBpdCdzIHdyb25nLgogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNmI3OWJjMTI0YTdiN2E4ODVkN2U1MDM1YWIwNmFhM2VjZWY2MTMuCgpjb21taXQgY2E0YTRmZTI1ZWZkMjcxNGY4ZjE5NjFiOTc4NTY2MTY1NjNmNDJjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMDoyMTo0OSAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogQWRkIHB5dGhvbi9idWlsZAoKY29tbWl0IDEzYWRhNTY1NThiNDRlMjhkMTM1NWMwZGNlMWQ5MjFmMzc0NmQ1NDgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTo1Mzo0OSAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIiIC0gdGhlcmUgKmlzKiBORVRTTk1QX1BSSW8gaW4gVjUtNisgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCBhYTUyOGJkMjJjNzQ5M2NhOGQ2N2U2NzhmYmY2MTVjYTBmNjNlYTZkLgoKY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgMmZiOTliZTlhYTg2YTZjYTM0OWI4NmQ0ZWY4YmM3MjZlZDlmMmE4MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjU4OjM1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBlNWMzNTU4OWUwYmY0MTZiZmQwMzZiZDQ2OGY0MmFhZWFiMjVlNzg4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTU6NTYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1MToyNiAyMDEyICswMTAwCgogICAgRml4ZWQgZXJyb3IgaGFuZGxpbmcgaW4gaW5pdF9pY21wKCkuCgpjb21taXQgYzMwMzU0OWE1OWZhOGMyZjIwYTlkOGJmMWU5ODVmYmM4YWJkZTZhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjQ2OjI5IDIwMTIgKzAxMDAKCiAgICBSZXdvcmtlZCBfcmVnaXN0ZXJfZXh0ZW5kKCkgZXJyb3IgaGFuZGxpbmcuCgpjb21taXQgOWMyMGUyN2E3MDI2ZmMwMzBkYTNiMzI4YjlhMmUxYjRmMzY2NzBjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjIxOjI4IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAyMmZkMGJmYzJkZjBlMWY2MDIwZGMzYzUwYTc1M2RkZjI4YTQ1OTljCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjA6MjIgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDVkNjFlNTdiYWY1ODBjNzgyNTJjMGFiYjAwOThjMDdiYjA1YWYxN2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToxNzowNSAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgM2MzZWVhZTgwZDc5NmYyNzU5N2M5MDFlN2ZmMjA0NmM3NjllZjRiOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA4OjA5IDIwMTIgKzAxMDAKCiAgICBNYXJrIHJvd3JlcV9jdHggYXMgZnJlZWQgc28gbmV4dCBpdGVyYXRpb24gYWxsb2NhdGVzIG5ldyBvbmUgaW5zdGVhZCBvZiByZXVzaW5nIHRoZSBmcmVlZCBvbmUuCgpjb21taXQgYWY5YWJkNTNjMjMzN2M5MGE2OTFhN2IwNDRmZjNmOTdjMTAwMzE2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjA1OjEwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCBjZjk0NjVmNTQxODFlNjJlMjFhOWIxMDIxOTEzMTEwN2EzZDJlYmY2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDQ6MDYgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDc4NzFmMmIwOWI4YjUyZjM0YTllNTc3ODQyNjY0NTkwNTMxNjViY2IKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowMjo1MCAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgN2EzN2YzM2QzMTBjOTU5ODYwN2JjMzIzZDliZGJmOTFhYWY3MmM5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAwOjUxIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzZTQ1ZjcwMjYyNDllNDUzNTBlZGFhYzg1MzM3NDIzYWEwZTk1ZDhiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6MTM6MTggMjAxMiArMDEwMAoKICAgIFJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiAtIHRoZXJlIGlzIG5vIE5FVFNOTVBfUFJJbyBpbiBWNS00IG9yIFY1LTUgYnJhbmNoZXMKICAgIAogICAgVGhpcyByZXZlcnRzIGNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiLgoKY29tbWl0IDYxOTM2NzYyZTY0MWMxOGRiNzVhYTUxMjVhMzNlNzc2YzY3N2FkYzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxMToxMzozOSAyMDEyICswMTAwCgogICAgRml4ZWQgZnJlZWluZyByZWdpbmZvIHR3aWNlIG9uIGVycm9yIGluIGEgdGVtcGxhdGUgYW5kIGFsbCBpdHMgaW5zdGFuY2VzLgoKY29tbWl0IDQ5NjQzNzQzMDQxNWZiYWZlYjFjY2Q0Nzc0ZjFjYTAwZDYyN2VhMWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjA0OjEzIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggY29tcGlsZXIgd2FybmluZ3MgaW50cm9kdWNlZCBvbiBWNS42IGJyYW5jaAoKY29tbWl0IDViNGEyNGNkY2VlMWJjM2Q4MjYzM2NjYWZlYjk2ZmNlOTUzNDljNTkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIyOjI3IDIwMTIgKzAxMDAKCiAgICB1bml0IHRlc3RzOiBmaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IGNiZjFjOTFiYWY3MTkxYmU1ZmEyN2Q4MWJjZjg3MTQzMzFhMmMxMmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDIwIDA5OjIwOjQyIDIwMTIgKzAxMDAKCiAgICBVc2Ugc25tcFRhcmdldFBhcmFtVGFibGVfZGlzcG9zZSgpIHRvIGZyZWUgYSBzdHJ1Y3QgdGFyZ2V0UGFyYW1UYWJsZV9zdHJ1Y3QuCiAgICAKICAgIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYuCgpjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6MzEgMjAxMiArMDEwMAoKICAgIEhPU1QtUkVTT1VSQ0VTX01JQjogZml4IGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDNhNzZiNDNlMTFmZmZhZGE2MzJmY2NiODQ4YWI1MDBlODc2YWQ0OGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE2OjIxOjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBweXRob246IEF2b2lkIHRoYXQgYW4gU05NUCBzZXQgd2l0aCBVc2VFbnVtcyBlbmFibGVkIGNhdXNlcyBhIHNlZ21lbnRhdGlvbiBmYXVsdAoKY29tbWl0IDg0ZGVjOWZhOTJiMGFhMmQ1OGViNzAyMDMzMGY0Zjk4ZTUxNTQzMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjM4OjIxIDIwMTIgKzAxMDAKCiAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBGaXggbW9zdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDM4Y2YyMThjM2YxYTcyNzc4NmUyMjdhNWQzZmIxODZmZDBmMWExNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDo1MDoxMyAyMDEyICswMTAwCgogICAgRml4IGEgdHlwbwoKY29tbWl0IDQ1NDEyMjI0NDEyMmJmZGI2ZjY3Y2FiMzEyNTZkN2I0NjM3MmU5ZTEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozMDoxOCAyMDEyICswMTAwCgogICAgRnJlZSB0bVN0YXRlUmVmIG9uIGVycm9ycy4KCmNvbW1pdCAwMTE5MDIyZGFhNTljNzNiZmVjMGRhMjM4NmQwNjI4ZjE0ZTZkYWI3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTQ6MDk6MTIgMjAxMiArMDEwMAoKICAgIEZyZWUgZmluZ2VycHJpbnQgd2hlbiBpdCdzIG5vdCBuZWVkZWQuCgpjb21taXQgMGU4NGNkMzAzYTA4MjY3ZGVjNzhmNmQ4MWM5YmIwN2UzZDgzYTExZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ4OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjNkYzg0NmE3OTQ5Y2U2OTdiM2UyOGM1NDNkYzExMDVlNjNhMjI1MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjA4OjI4IDIwMTIgKzAxMDAKCiAgICBGcmVlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50LgoKY29tbWl0IGNlMWYyODRhNjNlYjgxNjQ0YjNlMzI2MDZjYmUzOWI2N2UxZGZmMmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDozNzowOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDdlMjE0MTNjYTZmMmVmZDdhM2FmYjYyYzYyYjY0NDg4MWI4YmQxZTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxMzo0NjozMCAyMDEyICswMTAwCgogICAgUHJvcGVybHkgYWxsb2NhdGUgYW5kIGZyZWUgZW5naW5lSUQuCgpjb21taXQgMzRjOTYyODgyNjA3YzM2MzhhMmZhMjVhMmFjNTMxNDkyZDcxYzc4NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjM3OjI1IDIwMTIgKzAxMDAKCiAgICBGcmVlIGxvY2FsbHkgYWxsb2NhdGVkIHRtU3RhdGVSZWYuCgpjb21taXQgZjU3YWU1MzFkYzU2NThhYmNkNjViMTYyNzYxNTUyNTIzOGQxNmQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjIwOjI0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTM2YmM1NzU1NmMzMTQxNTYxZWE0YTE5NDgxMGIxNjI5MGE2OTFlZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjE1OjQ3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBpZiB0aGUgZnVuY3Rpb24gYWN0dWFsbHkgZG9lcyBzb21ldGhpbmcuCgpjb21taXQgYTA3NzdkMzA3ZGJjYWYyMTllZTAxODRhMGZiYWI5ZDRlNWQ2YWEwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjAxOjQ1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOGI5N2E3MWM4ZTc5NTk0MjhlYjRkNGU4ZDkwZTkwOTZkNDNmZjA5ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjU3OjI2IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmMxNTA3YzIyMDMwNTQ5YWU2NjBjMGUyMTFmYmRjNWM3NWVjNWM1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUzOjQ3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNjVmMmI3YmNkNGZlMDM5MDZhYTFhMTE1YWI2MGE4OWI4YWU5MzNkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEyOjUxOjM2IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGVzIG9uIGVycm9yLgoKY29tbWl0IDBlNTJlNGY2NmQ0NDc2NmJlYTM3NDczNTU2Yzc4ZTUyMTliOTU0NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0NTozMyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGRiZjI2YTA1YTA0ZWYyNGM0NzM0NmU1YWRkYTQ4ZTMzODQ5OGU3MWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTo0MjoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDc0OGRhODRiMWZkNjU0ZTMzOGJjNzAxZThmOWU1ZGEyMjkxODdmMWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTozMjowNCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGViMjE3MTQ2ZmQ1NDAzNmVhNDIwMmJmZWY3OGJiZjc3NGQ3ZTM4MmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToyMzoxMCAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDliYTM4ZWVjNjYxMzhlYzFmNjEzZWE4ZDA0ZTE1ODEzMGM3MTIxYmMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxODo1NSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGQ5ZDkzOGQzMDE4YzI3ZjUzMjc3YmM1ZTU5NTc4NTAwNDkwYzFkMDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNjozOCAyMDEyICswMTAwCgogICAgQ2xvc2Ugb3BlbiBmaWxlIG9uIGVycm9yLgoKY29tbWl0IGQ1ZTgxN2Q1YmQ1MThkOWFjNmEwZDYwZTBlMTQxZGQ2NGYyN2FkMTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNToxNDoxMiAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDJhZTY4ZjA1OWRmOWQ3NGIwNzRkMTJmNTljMTg0NzQ2NmVkNTc2Y2QKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNTowMzoxNyAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IGEwMGYzZDQ2MTEyMWI1NDVhZWQ3MmFjMTJiMjQzODc5MWRjZmM0YmEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxOCAxNDo1ODozOSAyMDEyICswMTAwCgogICAgRnJlZSBwcmV2aW91c2x5IGFsbG9jYXRlZCBtZW1vcnkgb24gZXJyb3JzLgoKY29tbWl0IDU5ODg0YmI0ZDM1YWQxMzc0N2ZmYTY3MjM0MzZkY2E1ODdhOWFiNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNzowOToxMiAyMDEyICswMTAwCgogICAgSW4gYWJvdmUgY29kZSwgb2xlbmd0aCBpcyBjaGVja2VkLCBzbyBsZXQncyBjaGVjayBpdCBhbHNvIGhlcmUuCgpjb21taXQgYmE1ZDUyOTJiMDQzOTNiMGM3ZDdkN2VkOTYxMjQxOTI5NDE4YzZlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA1OjE0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgZGEyZDZhNzAyOGExM2I5ZWRmM2E1Yzg0MzE0ZDBmMWZlZWY3NjcxNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjQ0OjU2IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCBmODgwNTRhOWI2OWI2ZGUyNzRmN2ExNGE1OWI0NzMyM2U1ZTRlNGM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6Mzc6MzUgMjAxMiArMDEwMAoKICAgIERvbid0IGRlcmVmZXJlbmNlIGNvbnRleHQgaWYgaXQncyBOVUxMLgoKY29tbWl0IDdjNGQ0NTllOGYxZjY1MmNjMjA5OGMzZDRjODFkZTkwYTg0ZWQ3MTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjozMDowOSAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVmZXJlbmNlIE5VTEwuCgpjb21taXQgZmMxOWI3ZjMzYjU4NzkyN2QyYTAxZTcyZDIzZDIxYjliMTY5NmFiMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjI1OjI2IDIwMTIgKzAxMDAKCiAgICBEb24ndCBjbG9zZSBOVUxMIGZpbGUuCgpjb21taXQgNWU5NWNhNjc5MDA3NmI3ODgwNzJhODAxZWU3YzgyOTY5ZDk5NWJjYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjE3OjA5IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTCB3aGVuIGEgdHJhbnNwb3J0IGRvZXMgbm90IGhhdmUgZl9mbXRhZGRyLgoKY29tbWl0IGVlZDZmNWY5YjlhZTU0ZDJjZWFiNjdhZDg1YWRkZTFmNmE4YTIxZDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjoxMzoxMyAyMDEyICswMTAwCgogICAgUHJldmVudCBkZXJlZmVyZW5jaW5nIE5VTEwuCgpjb21taXQgNDFjZGU2OGI1ZmE0YjM4ZDgxNDUwY2Y5MWUwODJjZGZhODI1ZTdjZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEwOjEwIDIwMTIgKzAxMDAKCiAgICBDaGVjayBpZiBhIHJlZ2lzdHJhdGlvbiB3YXMgcmVhbGx5IGZvdW5kLgoKY29tbWl0IDViNzJhNDA4NTM4NzZhMTg2ZWZjYzAwOTBhNGUzMmMyMzViOWMwNWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjowMzo1OCAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVyZWZlcmVuY2UgTlVMTCB3aGVuIGRpZmZsZW4gaXMgU01VWF9NQVhfUFJJT1JJVFkgKHdoaWNoIGlzIGhpZ2hseSB1bmxpa2VseSwgYnV0Li4uKQoKY29tbWl0IGZhNmE5MTJlNDFjNWQwZmQyYTYzNjg5NGU4NmI2NDI2YzA3Mzc1YWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNTozNzo0NCAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG1pc3NpbmcgdmFsdWUgaW4gc2V0RXZlbnQuCgpjb21taXQgNDEwYjcxZGE0MjUzODlmZWNjMjVkMTRmNDlmMjM3NTM1ODE1NzZhZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjI4OjQxIDIwMTIgKzAxMDAKCiAgICBEZXJlZmVyZW5jZSBlcmVnIG9ubHkgaWYgaXQgaXMgbm90IE5VTEwuCgpjb21taXQgMTg1MjcyZDFhMGI5MTM3NzQxODZmMWI5MTM1YWVhZjYzN2ViZWQ1MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjE3OjIxIDIwMTIgKzAxMDAKCiAgICBBcyBwZXIgYWJvdmUgY29kZSwgdGVtcGxhdGVfdjJwZHUgY2FuIGJlIE5VTEwsIHNvIGNoZWNrIGl0IGJlZm9yZSBkZXJlZmVyZW5jaW5nLgoKY29tbWl0IDQ4ZTVlYWQzZmQyYzJiMzg1ZGY2OTcyYzY3NTI2ZmY2YmRjMzA3NjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDo0MjoyMiAyMDEyICswMTAwCgogICAgVXBkYXRlZCBsYXN0IGZpeCB0byBuZXcgZXJyb3IgcmVwb3J0aW5nIHN0eWxlLgoKY29tbWl0IGYzM2QzMzYxNWQ2ZDg1ZDAwNzM3MjY0NzNjNDE0NmNiY2RmMTFjZWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDozMDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgc2lnc2VndiB3aGVuIGVtcHR5IGNvbmZpZyBsaW5lIGlzIHBhcnNlZC4KCmNvbW1pdCBiNWRmMWVlYjQ3ZWQzNTU5YjZmNGQ5ZWNjY2RiMjQyMTI2ZTZjOTkyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTQ6MTE6NTggMjAxMiArMDEwMAoKICAgIEZpeGVkIChoaWdobHkgdGhlb3JldGljYWwpIHNpZ3NlZ3Ygd2hlbiBzcC0+c2VjdXJpdHlFbmdpbmVJRCBpcyBOVUxMLgoKY29tbWl0IDZmZWVkNjI5YTcxODk5YzExMzA5Njk1OWQ4NTQ5ZGMxMjAxZThmOWEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxMzo0MzozNyAyMDEyICswMTAwCgogICAgQWRkZWQgTlVMTCBhbmQgbGVuIGNoZWNrIGp1c3QgaW4gY2FzZSBzb21lb25lIHByb3ZpZGVzIHZhbHVlID0gTlVMTCBhbmQgbm96ZXJvIGxlbiAoLT4gTlVMTCBpcyB0aGVuIGRlcmVmZXJlbmNlZCkuCgpjb21taXQgMzU1YzVhYjI2NGFmMmE2MDIwYTFkOGE5MjNmODBmMTFiOTQyMjk1ZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDEzOjM2OjQxIDIwMTIgKzAxMDAKCiAgICBFeHRlbmQgdGhlIE5VTEwgY2hlY2ssIGkuZS4gcmV0dXJuIGlmIHRoZXJlIGlzIG5vdGhpbmcgdG8gcmVtb3ZlLgoKY29tbWl0IGRkZDc5NDhhY2FkOTM4Y2Q0Mjk3NDUwNWRkY2E0ZjAzNzIxMTY3MDkKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDExOjExOjI5IDIwMTIgLTA4MDAKCiAgICB1cGRhdGUgc3BhcnRhJ3MgY29weXJpZ2h0Cgpjb21taXQgNDEyNTYwODZhN2E1MDQxNDUzNDE5Y2ZkNmU1NjJjN2I1NWM1NmIwYQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTA6MzI6MDQgMjAxMiAtMDgwMAoKICAgIHB1bGxlZCBmdWxsIGNvcHkgb2YgZXh0cmFjdG5ld3MgZnJvbSBtYXN0ZXIKCmNvbW1pdCA2MjVhNzBkYmRmZDk5MDJkYTc5ZWZhMjkzZmU2ZDJhYzhjY2YyYjJlCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMDoyNDoxOSAyMDEyIC0wODAwCgogICAgdXBkYXRlIHRvIGNoYW5nZSB0byB0aGUgbmV3ZXIgbG9nIGdlbmVyYXRpbmcvcGFyc2luZwoKY29tbWl0IDYyZTMyYjEzMDg5YjI5ZWRjZjI3NmY2MTVkYTY3ZTQ1MDhmZTdiYjUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDA5OjI5OjQyIDIwMTIgLTA4MDAKCiAgICBjb25mbGljdGluZyBtZXJnZSBmcm9tIG1hc3RlciBmb3IgZXh0cmFjdG5ld3MKCmNvbW1pdCA3MDA4NGRhNjFkMmJjYmQyY2YxZWQ4MWJkYzNiZjY3OTRjMmFmZmI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAxMyAxMTo0OToxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1TQ0hFRFVMRVItTUlCOiBIYW5kbGUgMzItY2hhcmFjdGVyIHNjaGVkQ29udGV4dE5hbWUgdmFsdWVzIGNvcnJlY3RseS4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IGIzYzQ5ODI1NDJlMGFiMTUxZmIzODg0NzU0Y2RmYmNiNDcyZGE1MmQuCgpjb21taXQgMDRiZjNlMjg4MTU4ZWU4ODBlZGYyMzdlNDAwN2ZlZTM3ZDIwNDRkZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjM5OjM3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBlbmRsZXNzIGxvb3Agd2hlbiBTU0xfcmVhZCByZXR1cm5zIGVycm9yLgoKY29tbWl0IGMxNTI2ZmNjYzA0NzRjMWRiMThjYWE5ZGJiODMzODUzY2RkZGUzY2MKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMzoyMSAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGEyN2FhMTlkZjI4MzE1NmMwMzJjODFlYWVlNWUxMTU4NTlkMzhjMTcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNToxMTozMiAyMDEyICswMTAwCgogICAgRG9uJ3QgcmVwbGFjZSAncmMnIHZhcmlhYmxlLCBpdCdzIHZhbHVlIGlzIG5lZWRlZCBvdXRzaWRlIHRoZSBsb29wLgoKY29tbWl0IDk4NWRmZjJiMDg3NmQ5NDgzYzQxNGZjY2VhM2VmNmJjNjNlMTQ1NjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTowMTozMiAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAyZmQ3ODE4MzE4ZTdhNWRmZTk4ZjUyY2NmNzUwYzJhNjNlODI1ZGVkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6MDA6MjIgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMTVmMjExMzBiYTMzZGM5YWZkMTY0ZTUyZGZkNzRjOWNlYzBlOTIzMgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjU4OjE0IDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDJhOGE4ZjJhYjdjZDc1ODI2YzVkNDFlYzNjZmQ1Y2UzZTk2MzRjZjMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDozOToyOCAyMDEyICswMTAwCgogICAgcmVtb3ZlIGRlYWQgY29kZSwgJ2NwJyBpcyBhbHdheXMgIT0gTlVMTCBoZXJlLgoKY29tbWl0IDM4ZmQ2Mzc4Y2MzMjc1MTgwZjYzYjhkOWI5YTQwNzJiM2RhYmY4ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDoyNTowNiAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvLgoKY29tbWl0IGViZDkyZTE5YjEwYzBhMzhlMTdjZGU0MDc4NjRiNDVjMjZlMTczMjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNDowNzo0MyAyMDEyICswMTAwCgogICAgUmVtb3ZlZCB1bm5lY2Vzc2FyeSBpZiAodmFsdWUpIGNoZWNrIC0gdmFsdWUgaXMgY2hlY2tlZCBmZXcgbGluZXMgYmVmb3JlLgoKY29tbWl0IGM1Y2FjZjVjYWY5NzlkMDE4ZWE2Y2FlMWMwM2I4ZmRmMGIxMThkZmQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0NDo0MyAyMDEyICswMTAwCgogICAgUHJldmVudCBkb3VibGUgZnJlZSgpLCAnZGlybmFtZScgaXMgYWxyZWFkeSBmcmVlZCBpbnNpZGUgc2VfYWRkX3BhaXJfdG9fbGlzdCgpIGlmIGl0IGZhaWxzLgoKY29tbWl0IGFjZGNlYjUwZWE2NmQ2YjMyM2M3NGVlMDIxZmI3N2U4MTBlNGU3YWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzo0MzoxOSAyMDEyICswMTAwCgogICAgUHJldmVudCBtZW1vcnkgbGVhayB3aGVuIG1hbGxvYyBmYWlscy4KCmNvbW1pdCAxNzA1M2UzNGNmZTlhOGFiMzk1ZmI1MGY1YzNmMWRhZmM3MjQ3YWViCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTM6MzI6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRvdWJsZSBmY2xvc2UoKS4KICAgIExpbnV4IG1hbiBwYWdlIGZvciBmY2xvc2UoMykgc2F5czogSW4gZWl0aGVyIGNhc2UgYW55IGZ1cnRoZXIgYWNjZXNzIChpbmNsdWRpbmcgYW5vdGhlciBjYWxsIHRvIGZjbG9zZSgpKSB0byB0aGUgc3RyZWFtIHJlc3VsdHMgaW4gdW5kZWZpbmVkIGJlaGF2aW9yLgoKY29tbWl0IGE2NjQxZWRiOWNiNzRmYzIyMzZiNDJjZTU1NTRmYzMzMjk5NTY1NTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE1OjIyOjM0IDIwMTIgKzAxMDAKCiAgICBNaW5HVzogU2tpcCB0ZXN0IFQwNjUgaWYgbm90IHN0YXJ0ZWQgZnJvbSBpbnNpZGUgYW4gTVNZUyBzaGVsbAoKY29tbWl0IGE4ODNlZjE5ODJmMzAxYjE0ODVkMjI3MzAxNjc0OTI3MzMwZjViNjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiAxMSAxNToxNDo1MyAyMDEyICswMTAwCgogICAgTW92ZWQgZGVidWcgb3B1dHB1dCBiZWZvcmUgcmV0dXJuLgoKY29tbWl0IDQ1NzUxOTY3Mjg3ZDk3NjQwZWZkY2RmOGU3N2U4ZDQ5MDkzOWQ4ZWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDE0OjE3OjE4IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHN0cnRvdWxsKCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKCmNvbW1pdCAyYzJmYTQ4MzM2YTRmMWYxNzdjMjk5MWQ2NTE1ZDI5ZjM5NTMzYzQ0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMzo1MDo0NCAyMDEyICswMTAwCgogICAgQ29udmVydCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpIHVuaXQgdGVzdCBpbnRvIGEgTmV0LVNOTVAgdW5pdCB0ZXN0Cgpjb21taXQgMDdjNjY2ZjZjZWEyN2YyYjJhYjliYzA4YWVkMGNiNjEzM2ZlMzc1OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDExIDEzOjE3OjQ1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMToKICAgIEZpZGV4IGRlcmVmZXJlbmNpbmcga2V5LT5pbmZvIHdoZW4ga2V5IGlzIGtub3duIHRvIGJlIE5VTEwuCgpjb21taXQgM2I2ODY1NjYyOTZkZDg3YmM0MmI3ZjExNjlkYWFjZGIzYzQ1Y2M1OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMTggMDY6MjU6NTYgMjAxMCArMDAwMAoKICAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aG91dCB3YXJuaW5ncyB3aXRoIE1TVkMgNi4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGYzYTdkMWIwOTYwOWRhZDY0OWY1OGJiZGI1YjdlMTBkMzliMzk4YzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDExOjA0OjA2IDIwMTAgKzAwMDAKCiAgICBGb2xsb3ctdXAgZm9yIHIxOTQ3NjogZml4ZWQgYSB0eXBvLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgMmRlNzNiZDM2NWEzODFiOWMzNTNjYTUyMzA3NjllZWZiMWFjNzFlZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTE6NDI6NDIgMjAxMiArMDEwMAoKICAgIGxvY2FsL3Bhc3N0ZXN0OiBSZW1vdmUgYW4gaW5jb3JyZWN0IFBBVEg9IHN0YXRlbWVudAoKY29tbWl0IDY5OTUxM2YxMjM4ZTBhZGNlMWYxY2VjOThlMGQxNDcyOTNmYzUwNDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gT2N0IDE3IDA5OjI1OjUxIDIwMTAgKzAwMDAKCiAgICBORVRTTk1QX1JFTU9WRV9DT05TVCgpLXJlbGF0ZWQgY2xlYW51cC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5NDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDYzNThkZWU3MmZiMzQ3ZTI2MDBhMGE3YmQyMWYyMzI3MGQzYTAwZjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEwOjU4OjE1IDIwMTIgKzAxMDAKCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOiBBZGQgYSBjb21tZW50Cgpjb21taXQgNTM5NmJmZTAzMmM4Y2JjNzNjOGZmNWQ0YjA4NWViYWRhOWY1OTg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MzA6MTYgMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgZmViM2FmMjhkY2FlMjIwMTVhZTg2NWEyZTVkZDhjNDE2ZTk5OTFkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6MDI6MDggMjAxMiArMDEwMAoKICAgIFJlcGxhY2Ugc3RybmNweSgpL3N0cm5jYXQoKSBieSBzdHJsY3B5KCkvc3RybGNhdCgpCgpjb21taXQgYjdlMWFhMjU1YmFlNGEzNDUzZjllY2E2NDRhODc2NjM0MzUxZjExZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBNYXIgMjAgMTk6MzY6MjggMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IGxpYnNubXA6IGNoYW5nZWQgdGhlIHR5cGUgb2YgdGhlIGZvdXJ0aCBhcmd1bWVudCBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgZnJvbSBjb25zdCBjaGFyKiB0byBjb25zdCB2b2lkKiBzdWNoIHRoYXQgbm8gY2FzdCBpcyBuZWNlc3Nhcnkgd2hlbiBwYXNzaW5nIGFub3RoZXIgZGF0YXR5cGUgdGhlbiBjaGFyKiBvciBjb25zdCBjaGFyKi4KICAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgogICAgQWxzbywgZml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyAobW9zdGx5IGNoYXIgKiA8PiB1X2NoYXIgKiBtaXNtYXRjaGVzKSBhbmQgcmVtb3ZlZCBzb21lIGNhc3RzLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODM0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKICAgIAogICAgQ29uZmxpY3RzOgogICAgCWFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMKICAgIAlhcHBzL3NubXB0cmFwZC5jCiAgICAJc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYwogICAgCXNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwogICAgCXNubXBsaWIvc3lzdGVtLmMKCmNvbW1pdCBmNDdhMzc1Mjg0OWRiMDc1ZTZmMjA1M2I4NTk1YjdiNzkyZmI2NDYyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE9jdCAxNSAxMDo1NjowOSAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBCdWlsZHMgbm93IGNvcnJlY3RseSB3aXRoIGEgNjQtYml0IGNvbXBpbGVyLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTQ1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAwMmI2MDU2ZGY5NWRhOGI2NzMwMzRlMzljMmM3YzM4NmVkMGYzNjljCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMTo0NDo1MyAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKCmNvbW1pdCBhMTk4NjU4MzJmYzc3ZjRjMDQ4MTQ0ZDkxYTQzMWIxZTk0ZDMyOWYyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMTQgMjM6MTI6MDUgMjAwOSArMDAwMAoKICAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbiBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc3OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjdhM2UyZWNjYjk1ZjljOWQwODA5ZWZjYmRkY2Q4NjZlZTMwNjJkNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxNDoyNzoxNSAyMDEwICswMDAwCgogICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGRpc2NhcmRpbmcgdGhlIGNvbnN0IHF1YWxpZmllci4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgM2RjZGUyZThhNTk1YTUyN2YwNjE0MmMzYjg1MmRlODQzM2ExY2YyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gSmFuIDI0IDE0OjI3OjU1IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQcmV2ZW50IGdjYyBwZWQtd2FybmluZyBmb3IgTkVUU05NUF9SRU1PVkVfQ09OU1QKICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTgwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYzJlMTUyNWE4NWJkYTUyOTlhM2I5ZjI0MTYxNGY3ZTY1MDlhZWViYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxMzozNToxMSAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IDI5NWY0NzNjODM1NDYyMjFiMmE3MWQ4MTVjNjFlMzNhNjdmOThhZTM6IHJlZmluZSBORVRTTk1QX1JFTU9WRV9DT05TVCgpIGltcGxlbWVudGF0aW9uLgoKY29tbWl0IGNiNDIzYjBhZTllZDAwNTlhYTEwMGRjNGUyZmQ5M2FkMWI5N2ZhZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDYgMTE6NTc6NTEgMjAxMCArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBlMmZiMDllMDA5M2UyZjY0OGZlMjYzOGRhMmYzYWYxOGZkYjMyYmYwIC0gaW50cm9kdWNlIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAlhZ2VudC9zbm1wX3BlcmwuYwogICAgCXNubXBsaWIvc25tcF9zZXJ2aWNlLmMKCmNvbW1pdCBhZmMzOTZhYjE2MThhODU5NWEyNTE5ZmJjMjVmN2E0OThlMTc0NDExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAwODo0OTozNCAyMDEyICswMTAwCgogICAgVW5icmVhayBuZXRzbm1wX21rdGVtcCgpIGFuZCBtYWtlX3RlbXAoKS4KICAgIAogICAgVGhlc2Ugd2VyZSBicm9rZW4gYnkgY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkuCiAgICBBbHNvIHJlcGxhY2UgYSBzdHJuY3B5KCkgY2FsbCBieSBhIGNhbGwgdG8gc3RybGNweSgpIGFuZCByZXBsYWNlIHRoZQogICAgbWFrZV90ZW1wZmlsZSgpIGltcGxlbWVudGF0aW9uIGJ5IGEgY2FsbCB0byBuZXRzbm1wX21rdGVtcCgpLgoKY29tbWl0IDIxMDE4NWMxNWQwZDY1ZjBlYTk4YjVlM2MyZTA3NzZmNjIyMmQxNzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDA4OjI3OjQzIDIwMTIgKzAxMDAKCiAgICBGaXggYSBjcmFzaCBkdXJpbmcgc3RhcnR1cCBvZiBzbm1wZCBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCA4ODUwNjE2ODdkOWNhYTM4NDcwOTc5NjY3ZDdkOGFkNjU2M2NlZGFkLgogICAgCiAgICBBbHNvLCBtYWtlIHN1cmUgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBjb3B5IG9mIHRoZSBjbGVhbnVwIGNvZGUgaW4gZnVuY3Rpb24KICAgIG1rZGlyaGllcigpLgoKY29tbWl0IDhiYjRlODZhYmNmOThmZjI4NzQ4YWYwYWY4OWM5OGU2NGQ1Y2Q5NjEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgSmFuIDExIDA3OjQ3OjEyIDIwMTIgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBvbGRtYXNrIHZhcmlhYmxlLgoKY29tbWl0IDY2ODAxNDdiMTM4ZWMxMTRmODFjNWQxMjhhYzkzNTBjODQ1MGQwODEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDE4OjQ0OjMxIDIwMTIgKzAwMDAKCiAgICBNYWtlIHRlc3QgVDAxNWludDY0X2NsaWIgcGFzcyBvbiA2NC1iaXQgc3lzdGVtcwoKY29tbWl0IDNhYWQxNWFlNTYwYWM4NTdlNzNjOTA3NjRlOTAzZTdjYTAyYjMyOTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTo0MDo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IGZvciBsYXJnZSBPSUQgbmFtZXMKCmNvbW1pdCBmYmExODhlZTgyMDEwYjJmMmQ4Y2EyZTQyNmJhNjU0NDk5YWIzZDBhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MzE6MzMgMjAxMiArMDEwMAoKICAgIGZpeGVkIGJ1ZmZlciBvdmVyZmxvdyBpbiBfX2NvbmNhdF9vaWRfc3RyCgpjb21taXQgMjFkMjVkODZiOGU0OTA0ZDc5OGRjOGM5NmRhZGU5ZTUwNDg0NTdhOApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjI2OjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBwYXJzaW5nIHBvcnQgbnVtYmVycy4KCmNvbW1pdCBkMzY5MzE4NDFiMmZjMmNlYmM2MzY0YjI5NDkxMjlhMGFkNDJhZDFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MDU6NTEgMjAxMiArMDEwMAoKICAgIEZpeGVkIGEgYnVmZmVyIG92ZXJmbG93IHdoZW4gbGFyZ2UgU3VtRmlsZSBpcyB1c2VkLgoKY29tbWl0IDBlZmRkMDIyZGEwOWFmMWI1ZTE2MTcxZmE3YTJiNTIzYzVkNmVjNTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTowMTo1MyAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gdG9vIGJpZyB0ZW1wIGZpbGUgcGF0dGVybiBpcyB1c2VkLgoKY29tbWl0IDU2MGJjNmMwOWI3NTE1NTZlZmQ2YjRjNDQ5NTc1MWIxMDlhOTNmOTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo1OToyNCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93LCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgODI5MWQ3YzViOTJhMzFkZDRmNTgyYjQ5N2Q0YjJhMDg1MzM2N2E1NgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU1OjE2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cuCgpjb21taXQgODhlMWYzNGRlNzMwMDU3NWZhNmRhYjg1N2VjZGRiMjQyYTg3ZGU4MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ4OjU1IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYmUxMzc1YTk5MjZlYmUwY2Q1Yjc4YTQwNDVjM2JkMTFjODM2NjRiMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQ2OjQ5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIHNlbnNvciBuYW1lIGlzIHRvbyBsb25nLgoKY29tbWl0IDFjYjI0NjI1MzcyMDYyYjE0YzcxZDdkZDUxZTIwZmVmNzczZTI3NDMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDo0MTowMCAyMDEyICswMTAwCgogICAgRml4ZWQgYnVmZmVyIG92ZXJmbG93IHdoZW4gYSBDUFUgaGFzIHRvbyBsb25nIG5hbWUuCgpjb21taXQgODRjODA3ZWUwMzI1MWU1NDg1NmU4M2Q2MmQwNmVhMDhiOGRmNTI3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjM2OjUwIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gbG9uZyBpbnRlcmZhY2UgbmFtZXMgYXJlIHVzZWQuCgpjb21taXQgYzMxMGUzOTBiNWRkMDVmMjRiZTdlYjE5MDRjNzRlNDEyNTljOTNkYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjI0OjU0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCgpjb21taXQgNDYwMGQxMTQzNGU4M2I4NjUzY2Y5ZjgxM2EzZDhiNjMwNDU1YjQyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjE3OjA4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBwbGF1c2libGUgc3RyaW5nIG92ZXJmbG93IGJlZm9yZSBwYXJzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNDoxMTowMiAyMDEyICswMTAwCgogICAgR2V0IHJpZCBvZiAoaW5zZWN1cmUpIFNOTVBfTUFYUEFUSCBpbiBta2RpcmhpZXIoKQoKY29tbWl0IDgwMTY4OTBhNDQ1ZjZhN2UyYTg3M2EwNDg3M2Q0ZTI3YjZlZTY0ZTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzo0ODozNCAyMDEyICswMTAwCgogICAgRml4ZWQgd3JvbmcgaW50ZWdlciBzaXplIG9uIDY0IGJpdCBwbGF0Zm9ybS4KCmNvbW1pdCBiYjhmY2JiODc0OTk4MDAwZjk0NWYwNThkMWFhNmZlMTRlOTI1ODk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MzE6MzYgMjAxMiArMDEwMAoKICAgIFNlY3VyZSBta3N0ZW1wKCkgd2l0aCB1bWFzaygpIC0gb24gc29tZSBpbXBsZW1lbnRhdGlvbnMgaXQgZG9lcyBub3Qgc2V0IDA2MDAgcGVybWlzc2lvbnMgYXV0b21hdGljYWxseS4KCmNvbW1pdCAyMDI1MjNjYTcwNGJkNzIyZGMxYWMwZTFlNmIwZTRiNGU1NDI0NDk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTM6MTE6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgJ2MnIGJlZm9yZSBOVUxMIGNoZWNrLgoKY29tbWl0IDczYTUyM2U0NjgyNzdmNmRmMmU5ODQ4OTEzMTNiOGJlOGJjZTE5MjEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzowODoyNCAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KCmNvbW1pdCAyZjRlNmFjZDcxNDE4M2YwMTViNzYzNjU3ZjhmMDg0NTkzMzU3ZTI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAxMDozODoxNiAyMDEyICswMTAwCgogICAgLmdpdGlnbm9yZTogSWdub3JlIHBlcmwvKi55bWwgZmlsZXMKCmNvbW1pdCBjMzY1ZDgwYzE2YzJkMTdiMTYwMDExZThjMWY5Y2I5NTg5NTRlOWRiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAxMCAwODozNDoxNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBEbyBub3QgaW52b2tlIHNodXRkb3duX3BlcmwoKSBmcm9tIGluc2lkZSB0aGUgU0lHVEVSTSBoYW5kbGVyIHNpbmNlIHRoYXQgZmFpbHMgaWYgU0lHVEVSTSBpcyByZWNlaXZlZCB3aGlsZSBhIFBlcmwgaGFuZGxlciBpcyBhY3RpdmUuIEJhc2VkIG9uIGEgcGF0Y2ggcG9zdGVkIGJ5IEpvZWwgQXZuaSA8amF2bmlAYXJ1YmFuZXR3b3Jrcy5jb20+Cgpjb21taXQgZDA1OWZiODc4YjE0MzY1OTk5NTNjZWE1YTA3NzQ5OWRkY2RjYmNiNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNzowMzo1NSAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDQwNzUyOiBJRi1NSUI6IFJlcG9ydCBpbnRlcmZhY2Ugc3BlZWQgY29ycmVjdGx5IGZvciBFdGhlcm5ldCBpbnRlcmZhY2VzIGlmIG90aGVyIHRoYW4gMTAgTWJwcywgMTAwIE1icHMsIDEgR2JwcywgMi41IEdicHMgb3IgMTAgR2Jwcy4gQWRkIHN1cHBvcnQgZm9yIE5JQ3MgZmFzdGVyIHRoYW4gNjUgR2Jwcy4KCmNvbW1pdCBjMDk5MDNhNDJlOWQ5NzMzMWZkOWU0OGVlODMxYTg1YWZkZjljNzBhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI2OjE3IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMKCmNvbW1pdCBlMzI1ZWNiZmNlNzdmMDBhYzVjZjZmYmQ5NTdmOTU0OTVmNjFjNTliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEphbiA5IDEzOjI1OjEwIDIwMTIgKzAxMDAKCiAgICBTdXBwcmVzcyB1bmludGVyZXN0aW5nIERveHlnZW4gd2FybmluZ3MKCmNvbW1pdCBiZTkxNjFkM2E1ODk4ZTg2Mzc2N2Y5MjY2MTM0ODYxMjZjMmNiZjY3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDEyOjM1OjM5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTaW1wbGlmeSBpbXBsZW1lbnRhdGlvbiBvZiBmdW5jdGlvbnMgbWFuaXB1bGF0aW5nIDY0LWJpdCBudW1iZXJzLgoKY29tbWl0IDg2ZTRjMmJlMDg1MmEwYTEzYjA2MDMwNzU3MjBiMzI2NGVjNzBkZGUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTI6Mjk6MTEgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgaXQgZXhwbGljaXQgdGhhdCBNQVhfU1VCSUQgaXMgYW4gdW5zaWduZWQgY29uc3RhbnQKCmNvbW1pdCAzN2UyNzJkOGY3YjcxODBiYTE0MGZhMzg2YTVmZjA1ODk2OGEwOGEyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE4OjIxOjQ4IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogSUYtTUlCOjppZlR5cGU6IFJlcG9ydCB0eXBlICJpbmZpbmliYW5kICgxOTkpIiBmb3IgSW5maW5pQmFuZCBpbnRlcmZhY2VzIGluc3RlYWQgb2YgdHlwZSAib3RoZXIgKDEpIi4KCmNvbW1pdCAyNjk5MzJmYTMyYzdjZDQ3OTU3NDg5Njk4ZTA5YmVlMzFmNjNiN2FmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjM0OjQyIDIwMTIgKzAxMDAKCiAgICBGaXggYW4gTVNWQyBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMGQxYzIxZjk5OTFkMTMwOWQwNTdlM2U0MDU2ZDU0N2RmN2Q0MGVjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNjowNjozMSAyMDEyICswMTAwCgogICAgTWFrZSBkZWNsYXJhdGlvbiBhbmQgZGVmaW5pdGlvbiBvZiBzdHJsY2F0KCkgY29uc2lzdGVudC4KCmNvbW1pdCAwYzNkNGRiYjBhOWNmNWIzNTlmNzBiMmYxOTkxNTQ5NTU1NGY4NDBmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjIzOjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogc25tcGQ6IFJlbW92ZSBkbG1vZAoKY29tbWl0IDg5M2VjYzk3YjU4NzY2MTA0NWJlY2JlMDlhMzIwYzFiY2JjNzFjN2MKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzY6NTkgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0KCkgdG8gdGhlIE1TVkMgYnVpbGQgaW5mcmFzdHJ1Y3R1cmUuCgpjb21taXQgM2QxMjY0MjJlNjI1NzAyYjlkM2ZhMDY3NmE5N2VjNWNiMjBkOWQxMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNTowMTowNiAyMDEyICswMTAwCgogICAgTWFrZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBjb25zaXN0ZW50IHdpdGggaXRzIC5pbiBmaWxlCgpjb21taXQgYWY1M2I3NmMyZmZhNzUxZTM5NThkMGZjNWQ4Mjc5Zjc4YzJjMWMyNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDo0Mzo1NSAyMDEyICswMTAwCgogICAgU2tpcCBUMDY2cGFzc19zaW1wbGUgYW5kIFQwNjdwYXNzcGVyc2lzdF9zaW1wbGUgb24gTWluR1cKCmNvbW1pdCAzNWE5MmU2OTNkMTMzYTViMTFlOWU5YjU5OWRiZjQ3ZWRlZjQ5MzNiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDA4OjE2OjM2IDIwMTIgKzAxMDAKCiAgICBSZW1vdmUgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jIGFnYWluLCB3aGljaCB3YXMgYWRkZWQgYWNjaWRlbnRhbGx5IHdoaWxlIHJlc29sdmluZyBtZXJnZSBjb25mbGljdHMgKGNvbW1pdCAxZDc4ZjdkNWI1OGFlZDJiNTJjNGQzODZhN2JhODBhNDQ3MTFiYWNhKQoKY29tbWl0IGE5YjA3M2VhM2I2Y2VkZjcxM2UzMDVlN2IxNWYyOGFlNTdiZmRmMWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTc6NDc6MTEgMjAxMiArMDAwMAoKICAgIEZpeCA2NC1iaXQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCA3ZTg5MGRhZDk1ZjU2NjA2OWVlMjgwMjE1YTRmZWEzZjBlMmUzOTgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE2OjM4OjUwIDIwMTIgKzAxMDAKCiAgICBBdm9pZCBhIFNJR1NFR1YgaWYgY3AgPT0gTlVMTC4gVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IDA4OWJjYjM2MGFhMjY3OTBhZDJhOGNlZGRmNTgzYjdiYTVkZGZkNDguCgpjb21taXQgMWY2MjAwY2ZlMWIwYjI3ZWJiMDkzYTE2MDZiNTkyZjllOTY4NGJlOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTo1MzozNCAyMDEyICswMTAwCgogICAgQ29udmVydCBzdHJuY3B5KCkgY2FsbHMgaW50cm9kdWNlZCBpbiB2NS42Cgpjb21taXQgYzMxMjZiMTQzOTIxZmFiZWFjNDQyMTY2ZWNhNWI1Yjc0MmZkNDJjMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNTowMjozOSAyMDEyICswMTAwCgogICAgUmVwbGFjZSBtb3N0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjUKCmNvbW1pdCBiMjRlZTdjOTA5NjU3ZGI0M2JkOGM1ZDhjMDEwNTVjYTA4ODNjOWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA4OjQwOjM5IDIwMTIgKzAxMDAKCiAgICBFbGltaW5hdGUgbW9zdCBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBjYWxscwogICAgCiAgICBVc2luZyBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKSBpcyBlcnJvciBwcm9uZSAtLSBzZWUgYWxzbwogICAgaHR0cDovL3d3dy5ncmF0aXNvZnQudXMvdG9kZC9wYXBlcnMvc3RybGNweS5odG1sLiBIZW5jZSByZXBsYWNlCiAgICBhbGwgaW52b2NhdGlvbnMgb2Ygc3RybmNweSgpIGFuZCBzdHJuY2F0KCkuIFJlcGxhY2UKICAgIHN0cm5jcHkoZHN0LCBzcmMsIG4pIGNhbGxzIGJ5OgogICAgKiBzdHJsY3B5KGRzdCwgc3JjLCBuKSBpZiB0aGUgZ29hbCB3YXMgdG8gYXZvaWQgb3V0cHV0IGJ1ZmZlciBvdmVyZmxvdy4KICAgICogc3ByaW50Zihkc3QsICIlLipzIiwgbiwgc3JjKSB0byBjb3B5IGEgcHJlZml4IG9mIHNyYyB0byBkc3Qgb3IgaWYgc3JjIGlzCiAgICAgICAgbm90ICdcMCctdGVybWluYXRlZC4KICAgICogbWVtY3B5KGRzdCwgc3JjLCBuKSBpZiBzdHJsZW4oc3JjKSA+PSBuIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCiAgICAqIHN0cmNweShkc3QsIHNyYykgaWYgbiA+IHN0cmxlbihzcmMpIGFuZCBuIDwgc2l6ZSBvZiBkc3QuCgpjb21taXQgNmQ5NWJjNDE0OTQ3MjkzMTAwNTQ3NWMzMGE1NDFmZWQ1NTM0ZGEzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMToxOToxNiAyMDEyICswMTAwCgogICAgRml4IHdhcm5pbmdzIHRyaWdnZXJlZCBkdXJpbmcgY29tcGlsYXRpb24gb2YgdGhlIFBlcmwgeHMgc291cmNlIGZpbGVzCgpjb21taXQgYmFkMDYwMGY2ZWM5NDRlZjg0NTVlMzI3Y2U3ODRiOWIwN2QyNDdjOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxMDowMDoxMyAyMDEyICswMTAwCgogICAgQWRkIGNvbmZpZ3VyZSB0ZXN0IGZvciBzb2NrYWRkcl91bi5zdW5fcGF0aCBzdWNoIHRoYXQgdGhlIGNvbTJzZWMgdGVzdCBpcyBydW4KCmNvbW1pdCA5MmEzMmFjNDg2NmE1ZWRjN2YzNDdkMzc5NDJiZjAyOGRlMDI3NjJmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjI5IDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDgzZTRjMGUzMDRmNjE3Y2NhYzY2MTBlZGQ3NGQxNzA2Nzk3YmJmNTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTU6MzcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEFkZCBhIHRlc3QgZm9yIHNlX3N0b3JlX2xpc3QoKQoKY29tbWl0IDRmYWU1ODUyMTAzZWMzODkzYWQ0ODhiYzBkOTA1Y2E2OTE0NTk1ZWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTc6MTUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IHRoZSBzZV9zdG9yZV9lbnVtX2xpc3QoKSBpbXBsZW1lbnRhdGlvbgoKY29tbWl0IGIzMjIyYmIyNzVmMmYyMzQ2ZTBmZDA0NzhhZmEyZWZiNjAwNzczZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMDk6MTY6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IERlY2xhcmUgInR5cGUiIGFyZ3VtZW50IG9mIHNlX3N0b3JlX2xpc3QoKSAvIHNlX3N0b3JlX3NsaXN0KCkgLyBzZV9zdG9yZV9lbnVtX2xpc3QoKSBjb25zdAoKY29tbWl0IDAyMmY4NDBmYmZjYjBlMjZiMDhmMGU1NTcyODIzMWY2MTE0OTU4MDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTk6NTU6NTYgMjAxMiArMDAwMAoKICAgIEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0IHNlbmRpbmcgVURQIGRhdGEKCmNvbW1pdCA2NzJhODA5YzIyOGU5NTUwYjk5Yjg5MTBiZTc1ZDBiMTYxOTg1NDAyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE3OjMzOjA5IDIwMTIgKzAwMDAKCiAgICBGaXggYSA2NC1iaXQgY29tcGlsZXIgd2FybmluZwoKY29tbWl0IDI0ZmYyNjBhZDg5Y2UyYWEzNjFhNTVjN2M3MmU5MTYwMzFkZWZlMzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MTE6MjQgMjAxMiArMDEwMAoKICAgIENoYW5nZSB0aGUgdHlwZSBvZiB0aGUgc2Vjb25kIGFyZ3VtZW50IG9mIHNubXBfc2V0X3Zhcl92YWx1ZSgpIGFuZCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoKSBmcm9tIHVfY2hhciogdG8gdm9pZCosIGxpa2Ugb24gbW9yZSByZWNlbnQgYnJhbmNoZXMKCmNvbW1pdCBjNmNhNzM3ZmI0NmY5MGE0YmRhNWQ0MzczNGFhYzM0ZTgzN2EwNWY0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAxMyAxOTowNzozNyAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGY1MDRjZTJkNzRhNGJjODhmNjhjYzk1MTVmYTcwNTMzNzNjYjE1YjUuCiAgICAoRml4ZWQgbW9zdCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIHNvdXJjZSBjb2RlIGluIHRoZSBwZXJsIHN1YmRpcmVjdG9yeS4gTm90ZTogdGhlc2UgY2hhbmdlcyBtYXkgY29udGFpbiBzb21lIHJlYWwgYnVnIGZpeGVzLikKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJcGVybC9BU04vQVNOLnhzCiAgICAJcGVybC9PSUQvT0lELnhzCiAgICAJcGVybC9TTk1QL1NOTVAueHMKICAgIAlwZXJsL2FnZW50L2FnZW50LnhzCgpjb21taXQgZDIxMmRjOTg0ZWMzNGU0ZDIzMDYyNWU0NmU1OGIwYzYyOGE1MGRmNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjo0Njo0OSAyMDEyICswMTAwCgogICAgU05NUC54cyBjb21waWxlciB3YXJuaW5nIGZpeGVzCgpjb21taXQgYmFjZWViYjEwZDhjYWY1ZGI2M2NjMzY5MzVmZWQ2NWVlOTMxMDI5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNjoyMjo0NCAyMDEyICswMTAwCgogICAgQWRkIGRlY2xhcmF0aW9uIGZvciBzaHV0ZG93bl9zbm1wTm90aWZ5VGFibGUoKQoKY29tbWl0IGY3Zjk2NmFiZDZkMjg0OWIxMzMxMjUyYWZlNWM0NzNlNWM0MGIzMmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTQ6MjQ6MzMgMjAxMiArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaGVzLgoKY29tbWl0IDMwM2MwMTViY2ZlOWFmMGIxNTRlOTg4MWM3YjRmNDQ5ZTA4ZjMwYmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjI6MDY6MjMgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGNvbW1pdCBkM2ViMmI1Y2VkMjJhODQ4MDA1M2NlNDNhY2Y5NzM5NzI5MDU1NDA0CiAgICAoU3ByaW5rbGUgc29tZSBjb25zdC1uZXNzIHdoZXJlIHJlbGV2YW50IC8gZml4IGZvcm1hdCBzdHJpbmcgbWlzbWF0Y2hlcywKICAgIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKICAgIAlpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaAoKY29tbWl0IGQ5NWI0MDQwNjkxNmJkYTViNDhiNWE2MTMxYmVjMjdiODY2YjBhNzkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWF5IDYgMjE6NTk6MjAgMjAwOSArMDAwMAoKICAgIEJhY2twb3J0IGEyYTczMTZjMzEwZjBmY2MzNzI4NjczZmEwNDcwNTFjMjNiNzE5NjAKICAgIChUcml2aWFsIHdhcm5pbmcgZml4ZXMsIE5pZWxzIEJhZ2dlc2VuLCBNYXkgMjAwOSkuCiAgICAKICAgIENvbmZsaWN0czoKICAgIAogICAgCWFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwogICAgCWFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiAgICAJYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYwogICAgCWFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMKICAgIAlhZ2VudC9zbm1wZC5jCiAgICAJc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMKCmNvbW1pdCBkODZjNDdmMDAzZmRjMTkyYmNlN2I0NmFjNGYwNmIwOWUzODdjMTJiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoyOTowOCAyMDEyICswMTAwCgogICAgRml4ZWQgYSB0eXBvCgpjb21taXQgYmVlNGQ3OWNmNGViN2UwYTQ1Mzk3ZjU5YjUyOThkYTYzM2E4ZTFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTM6MTQ6NTcgMjAxMiArMDEwMAoKICAgIEZpeGVkIHJlYWRpbmcgcGFzdCBlbmQgb2YgYnVmZmVyLgoKY29tbWl0IDNkYzBlMDBhMmZkOGUzNGZlMWFlMzNlY2FiZjM2ZTE0NjQ2MGEzMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEyOjQwOjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSAndG9rZW4nIGlzIHVzZWQuCgpjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6Mjg6NTIgMjAxMiArMDEwMAoKICAgIEZpeGVkIG9mZi1ieS1vbmUgbWVtc2V0LgoKY29tbWl0IDBmNTM2OTUwNDRkZDNmMGMzNTA3NzUzZTNmOGMyOWQ5N2U5Njg3MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgQXVnIDMgMjE6Mzg6MjYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBwZXJsOiBFbGltaW5hdGUgZGVhZCB2YXJpYWJsZXMKICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYwogICAgCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwogICAgCWFwcHMvc25tcHRscy5jCiAgICAJYXBwcy9zbm1wdHJhcGRfbG9nLmMKICAgIAlzbm1wbGliL2Rpcl91dGlscy5jCiAgICAJc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAJc25tcGxpYi9zbm1wX29wZW5zc2wuYwogICAgCXNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMKCmNvbW1pdCAwMTUzODA1Yzk5YjkxOTczNjU5MzVjNWQxMWFlOWMzZDRiZmFhMGYzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQ4OjQxIDIwMTIgKzAxMDAKCiAgICBGaXggYSBzZXQtYnV0LW5vdC11c2VkIHdhcm5pbmcKCmNvbW1pdCAzZjg4ODVmYmVlOTQwNzc0OGZjMmYwNTczNzI4YTExYmEyYmMwMjNhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBBcHIgMjggMDU6NTE6MTMgMjAwOSArMDAwMAoKICAgIFJldHVybiBhIHZhbHVlIGZyb20gc3ByaW50X3JlYWxsb2NfdmFsdWUgZXZlbiBpZiBubyBzdWJ0cmVlIGlzIGxvY2F0ZWQuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE3NTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IGIxZWFhZjMwMjM2OWZkNDU1MmU4ZmVlN2I2YTgwNTA5MWVjMGE5YjQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDExOjM4OjUxIDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmaW5kX3NlY19tb2QoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgYWVlNGU4OTVmZTNiZDVmNGE2MWUzNDI3NWJmY2EwMzY4YjU2MDU1NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MzE6MjIgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIHNubXBfc2Vzc190cmFuc3BvcnQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgNWQxZDBhNzQ0YWIzMGM4ZTY0NWMzYjg1MDZjYmJkMmNjZWIzZDI3NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6MDQ6NDggMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIG5ldHNubXBfZXh0cmFjdF9pdGVyYXRvcl9jb250ZXh0KCkgcmV0dXJuIHZhbHVlLgoKY29tbWl0IDI5OWVhOWE4OWMzZjE3NThhNzc0OGJiOWIzNDExZjYyZjJjNzBmODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjU0OjU1IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBvZiBmb3BlbigpIHJldHVybiB2YWx1ZSwganVzdCBpbiBjYXNlIG9mIHNvbWUgcmFjZS4KCmNvbW1pdCA5MGYxYWU2NzU3OTE3NDgxNjM2ZWVmNzcxMDBjYWVlYjUzZWRmZTAxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjA2OjU2IDIwMTIgKzAxMDAKCiAgICBBZGQgc3RybGNhdC5jLiBTb3VyY2U6IGh0dHA6Ly93d3cuZnJlZWJzZC5vcmcvY2dpL2N2c3dlYi5jZ2kvc3JjL2xpYi9saWJjL3N0cmluZy9zdHJsY2F0LmMuCgpjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTA6NTYgMjAxMiArMDEwMAoKICAgIEFkZGVkIHN0cnJjaHIgcmV0dXJuIHZhbHVlIGNoZWNrLCBqdXN0IHRvIGJlIHN1cmUuCgpjb21taXQgMTk5YTA1MTFmNmViMGVmM2ZmMWQ5ZjkyMmI3OTBhYjY3ZGZkZTAxZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDozMToyNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHNtdXg6IHNpbXBsaWZ5IHNtdXhfbGlzdF9kZXRhY2goKQoKY29tbWl0IGQ4ODM1NzNhYTczZTBmNWZjMTg4YWNlZGVlNjQ1MWY5NWRhZTkwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTA6MjM6MDYgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW50cm9kdWNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCA3YjdhM2ViMjUwMDUyN2VhYTE2OTkyODdhNmNhNmZjYzRjYzJlMDhhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDA5OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBGaXggYSBidWlsZCBlcnJvciBjYXVzZWQgYnkgY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEuCgpjb21taXQgMmI2YzExOWZlZDQ4NDhkYTY2NjNjMTFmMGMyY2JkYzI5OTIxYjVjNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NTE6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBuZXRzbm1wX2RzX2dldF9pbnQoKSBlcnJvcnMuCgpjb21taXQgNmNlNTM2MGNhYTRjOWRlNTFhZGU1Nzg3OWU4M2Y5NmJkMDRiNGM1YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6NDI6MjMgMjAxMiArMDEwMAoKICAgIENoZWNrIGZvciBtaXNzaW5nIHZpZXcuCgpjb21taXQgYjNiYzU0YmVkMzE2OTBhODVkZjJhY2ZiZjMyOTZkYTkzYTllODliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTU6MjM6MTcgMjAxMiArMDEwMAoKICAgIENoZWNrIHNvY2tldCgpIHJlc3VsdC4KICAgIEFsc28gY2xvc2UgdGhlIHNvY2tldCBvbiBlcnJvci4KCmNvbW1pdCA5MjA3NWY1MWNkNDVhMzhjYTM4NzYwYjNmZmU4MmUxNjU1OWU5YzJlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToxODoyNiAyMDEyICswMTAwCgogICAgQ2hlY2sgb3BlbigpIHJlc3VsdC4KCmNvbW1pdCA2NjY1ZDVmZTJmYzU2OWQ2ZmE4NTRkMWQ3OGUzNDdiYmFjNjllMDcwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMjoyMiAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBhNjY0OGM1NDUzZTFlZjhkYWM1N2EzOGVmY2MwMGNjZTUzYmY5ZTRmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoyMDoyNyAyMDEyICswMTAwCgogICAgRml4ZWQgbWlzc2luZyBicmVhay4KCmNvbW1pdCBkNjhkY2FlMGYxOGQ1NTQ1NzFhZWYzMjE5NDRhNTI5MDU0OGRkZTg2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNjoxMSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBmYjZmODBjMGZlM2JhMzZlNTZmNWI5MTFhNDdlM2Y2ZjMyYmEyNjZlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDoxNDowNyAyMDEyICswMTAwCgogICAgRml4ZWQgZXhpdCBjb2RlIG9mIGVuY29kZV9rZXljaGFuZ2Ugd2l0aCB3cm9uZyBhcmd1bWVudHMuCiAgICBBbHNvIGFkZGVkIGEgY29tbWVudCBmb3IgQ292ZXJpdHkuCgpjb21taXQgMzEzMGUyNGZkYzIzMjQ2NGRkN2JiMjE2ZjQ2Y2FmYTJlMGU3NzVhNgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTQ6MDk6NTQgMjAxMiArMDEwMAoKICAgIEFkZGVkIG1pc3NpbmcgYnJlYWsKCmNvbW1pdCAxOGMxMjZhOTU2NWNiNGQ2OWQ3NTEzYjk0NGEyMTA1NTg4MDQ1ZDM1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowNzoyOSAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCA2ZDMxYzgyMDcwYTJjNjhmZTNjNTE5ZTlkNTZmYTI3Nzk1NTRkMDFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowMTo1MyAyMDEyICswMTAwCgogICAgQWRkZWQgJ2ZhbGx0aHJvdWdoJyBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCBkYzZmMGUyZTU0OWI0Y2QwNjFlYmMxOTAwODRiMWZjNzdhNTVmNDBmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMjo1OSAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBkYWIzMjg2N2VkMGI5OTMwMWVmZDdiOGQ4NTJhZDEyODhhMTg0YmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzozMDozMyAyMDEyICswMTAwCgogICAgRml4ZWQgUVVJVEZVTiB1c2FnZS4KCmNvbW1pdCBiMWEyYmNmNjQ2MTVlYjY2YmMyNGQ1YmU0OTUwZTQ1MDEyOTYyMDQ1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxODowMyAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBiMmIxYzg1MWI5NGZlZDM3YzM4NmVhYTFiZmVhZDVjNzc2OTZlM2VmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMzoxNDo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgd3Jvbmcgb3BlcmF0b3IKCmNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDo1ODo0NiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgZm9yIGZhaWxlZCByZWdpc3Rlcl9taWIuCgpjb21taXQgNTk0OWYwNTVjMTZhZTY1MDYxNWFhZTdhMWZlZTNmMmQ3YjE2ZDk0MApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDMgMTA6Mjk6NTkgMjAxMiArMDEwMAoKICAgIE1ha2UgTUlCIGZpbGUgcGFyc2luZyBhbmQgZGV0ZWN0aW9uIG1vcmUgc3RyaWN0IC0gTEFCRUwgaXMgcmVxdWlyZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBNSUIgZmlsZXMuCgpjb21taXQgZTRiNjczNjgzYzY4YmE4YjNhYmMwNDBiOTEyNWVjMzA0NjQzY2M3YwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMzowMDoyNCAyMDEyICswMTAwCgogICAgQXNzdW1lIHRoYXQgbGliZGwgbWlnaHQgYmUgaW4gQUdFTlRMSUJTIG9yIFNOTVBMSUJTIHNvIHByZWFkZCB0aGVtLgoKY29tbWl0IGIxM2MxZTU3YmVkYmE3OWI4MDYxMDNjNzRmMTkyMWQ1M2E3MDZiMzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gSmFuIDEgMjI6NTU6MDYgMjAxMiArMDEwMAoKICAgIERvIG5vdCByZXF1aXJlIHVjZC1zbm1wL2RsbW9kIHVubGVzcyBpdCB3aWxsIHdvcmsuCgpjb21taXQgMjdkY2VhMGQ1ZjgwMWRmNDk0YWIyY2I1YzVjMGViZTU0ZWIwZGNkMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6NDg6MjkgMjAxMSArMDEwMAoKICAgIEFkanVzdCBwYXRocyBmb3IgdGVzdCByZXN0cnVjdHVyZQoKY29tbWl0IDE0YjYwZTg1YTFiNTcwMGU5M2QxMjZlMmYyOTFkNWM0ODVmMzRlMzYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgRGVjIDMxIDE0OjE0OjI5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgY29uZmlndXJhdGlvbiBvZiB0aGUgZGxtb2QgbW9kdWxlIGZhaWwgcmF0aGVyIHRoYW4gZ2VuZXJhdGUgYSBkdW1teSBtb2R1bGUgaWYgdGhlIGRsb3BlbiBmdW5jdGlvbiBpc24ndCBhdmFpbGFibGUuCgpjb21taXQgOThhOTc1MzhmYzFlOWZmNDZiNjBkNWQ5NjkzNDc0NDQ1NzgzNzhjMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTM6MzU6MTMgMjAxMSArMDEwMAoKICAgIEFkanVzdCB0aGUgcGF0aHMgdG8gc3VwcG9ydCB0ZXN0aW5nIGV2ZW4gaWYgYnVpbGRkaXIgIT0gc3JjZGlyCgpjb21taXQgODhmMGFmM2NmYjkxNmFlNTg2M2NjMjk4NjA3MWQ0MzVmMjBjMzA2NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTE6Mzc6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlcyAncCcgYW5kICdsZW4nLgoKY29tbWl0IDA4MTVhNzUzNmM3NmY3ZTQ4NDI2Mzg2ODNmNjc0ODk0YTFhOGNlMTQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDo0Mjo1NCAyMDExICswMDAwCgogICAgUmVwb3J0IHByb2JsZW1zIHdpdGggU2V0VW5kbyBwcm9jZXNzaW5nCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NTQ0MAoKY29tbWl0IGViMmFiMjM3NDJjYTg2YzBiODljY2ZlOTFlYjZlYTM3NGJmM2FjYzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxNDozNzozMSAyMDExICswMDAwCgogICAgQ2hlY2sgZm9yIHRoZSBleHBlY3RlZCBlcnJvciAoRVBJUEUpIG9uIGNsb3N1cmUuCiAgICBNaXNzZWQgd2hlbiBhcHBseWluZyBwYXRjaCAjMzQ0NzQ0NAoKY29tbWl0IGFhYzEwYmM0ZjA1M2MwMTRmMzgyZDY1OTNmYzMyYWI5NWUwYjFhNTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyOSAxMjo1OTo1MiAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQ2Mzc2NzogSGFuZGxlIHBhcnNpbmcgc3ViaWRlbnRpZmllcnMgPiAyXjMxCgpjb21taXQgYmJjMDJlMzZlOTBjMWFhYjc4OTg1NjJmOTYzZjVjYWRiMjZlMTBiZApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgRGVjIDI4IDE3OjE1OjE2IDIwMTEgKzAwMDAKCiAgICBNb3ZlIHBhc3MvcGFzc19wZXJzaXN0IHRlc3RzIHRvIHRoZSBuZXcgbG9jYXRpb24KCmNvbW1pdCAzODk4YzA0ZmQ2Zjg5ODY3MDYyZmRmZWJmMzY4NTdhYjYxOWMwNDUwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTY6NTM6MjQgMjAxMSArMDAwMAoKICAgIEFkZCB0ZXN0cyBmb3IgcGFzcy9wYXNzX3BlcnNpc3QsIHN1cHBsaWVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZDVlZTNmMGExYTYzYmIxNzUyYzc0Y2JjYTU1YWEzZDQwYmY5YmYxMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjU4OjUxIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzQ0NzQ0NDogRml4IFNJR19QSVBFIGhhbmRsaW5nCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDJhMTdiMzc0MzBjMTg1Mjk5OGMzNTg4ZTU0N2Q3ZWI2MWMwNmRhNzEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAyMTo0NTozOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDQwOiBNb3JlIHJvYnVzdCBoYW5kbGluZyBvZiBBZ2VudFggZXJyb3JzCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGZlNThhMGU1ZjRkNGUyZTJlY2JjYjQ3MzgyYjA4Y2IxZTRkZjM1MmMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODoxNjoyMyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzQ1Njc3MDogSGFuZGxlIChvYnNvbGV0ZSkgVUludGVnZXIgdHlwZSBwcm9wZXJseQogICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAxYmU4Y2YwOGE2N2E5MTg1NWZlZTFlYzRhMmQ4ZTA4N2M3ODEyNDU2CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTg6MDQ6MTAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IGFnZW50eDogUEFUQ0hFUzogMzQ0NTQzNzogTG9nIEFnZW50WCBkaXNjb25uZWN0aW9ucwogICAgKGluIGxpbmUgd2l0aCBjb25uZWN0aW9ucykgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCAwNjgwMzcyODkxMDdmYWEyYmEzZjVjZDJmYjAwYzE5NDk0YmI5YTA0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6Mjc6NDYgMjAxMSArMDAwMAoKICAgIEhhbmRsZSBhbnkgR0VUTkVYVCByZXF1ZXN0IE9JRCwgbm90IGp1c3QgYSBzaW1wbGUgd2Fsay4KCmNvbW1pdCBhNzRmYTUyODk4MzEyM2QzNTVhOGNkY2FhNzdkZDRlYjRiOGM2OTU5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTc6MDA6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHBhc3M6IFBBVENIRVM6IDM0OTM5NDogQnJpbmcgcGFzc19wZXJzaXN0dGVzdCBzY3JpcHQgaW50byBsaW5lIHdpdGggcGFzc3Rlc3QqCiAgICAoaS5lLiB1c2luZyB0aGUgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgb2YgTkVULVNOTVAtUEFTUy1NSUIpCiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IGJiZTY0OWViZmE2MWVhMjIzOTkxNzBiMzZiOTlkYjMwYTFkZTgwMTIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNjo1NDozOCAyMDExICswMDAwCgogICAgUmV3b3JrICJwYXNzdGVzdCIgZXhhbXBsZSB0byBmdWxseSB2YWxpZGF0ZSBHRVRORVhUIHJlcXVlc3RzCiAgICBhbmQgdXNlIGEgbGVnaXRpbWF0ZSBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4gIEJhY2twb3J0IG9mIFNWTgogICAgcmV2aXNpb24gMTc2MzIgKHdoaWNoIHVwZGF0ZWQgJ3Bhc3N0ZXN0LnBsJyBidXQgbWlzc2VkICdwYXNzdGVzdCcpCiAgICBDb3JyZWN0IGluIGJyYW5jaGVzIDUuNSBhbmQgYWJvdmUKCmNvbW1pdCA4MmQwNmM3MjQ3YjIyYzhiMDFkNDViZjU1MDQxZDJmMWU2NDI3ZDQ5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6NDU6MTggMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NjcxOiBGaXggb3ZlcnJpZGUgaGFuZGxpbmcgb2YgT0lEIHZhbHVlcwogICAgUGF0Y2ggc3VwcGxpZWQgYnkgUGhpbGxpcCBPJ0Rvbm5lbGwKCmNvbW1pdCBiYTRhOWNlNTFjOTYwMGY5ZmRhMTY4ZjFlNmVmZjMyYTFkYjYzY2I5CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTM6MjQ6MjYgMjAxMSArMDAwMAoKICAgIFR3ZWFrIC0tZGlzYWJsZS1zbm1wLXNldCBjaGFuZ2VzCgpjb21taXQgODI3YzhiMjg4MzAxNzFmYWE5YzYxZDUzZWZjYTllYjY2MDA1NjFjMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDExOjI1OjQzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDM0MzM4NDY6IEZpeCBmb3IgdXNlIHdpdGggcHl0aG9uIDIuNAoKY29tbWl0IGY5OGE1NGE5OWNhZjdiNDZiMTAwYTkyMGRiOTQyY2JjYTljNDM5MjYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMDoxMDozNiAyMDExICswMDAwCgogICAgU2tpcCBTRVQtYmFzZWQgdGVzdHMgd2hlbiBjb25maWd1cmVkIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgMjMwZGYxNGY5NGMzNzM2ZmYzNDM3OWE0ZTI4MWVlYTM1M2I0N2Y4MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBEZWMgMjYgMjM6MzQ6MjMgMjAxMSArMDEwMAoKICAgIERvIG5vdCBhc3NpZ24gdG1TdGF0ZVJlZiB0d2ljZQoKY29tbWl0IGM5NmIzYjRkODUzMGFkNWUwZWZiMDNmMjRkYWI1ZTVmMWE0NjAwMzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE4OjIxIDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IHVzZS1hZnRlci1mcmVlLgoKY29tbWl0IGM1OTc4Yzg5Y2RlMjQ0MGY0ZDIwZGFkYmM5ZDFkZDhkYjU2MmQ1NmUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDI1IDExOjE1OjQ0IDIwMTEgKzAxMDAKCiAgICBDb3JyZWN0IGRvdWJsZS1mcmVlLgogICAgCiAgICBuZXRzbm1wX3Rsc3RtQWRkcl9hZGQgdGFrZXMgb3duZXJzaGlwIG9mIGl0J3MgYXJndW1lbnQgc28gY2FsbGluZyBmcmVlIG9uIHRoZQogICAgYXJndW1lbnQgb24gZmFpbHVyZSBpcyBpbmNvcnJlY3QuCgpjb21taXQgYzEzOWNhMTIzYjQ0YmIzYjliNmJmOTIxZTE2MDljYzQ1ZjYzYTY2MApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBTYXQgRGVjIDI0IDE2OjU1OjMwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUyAzNDEwMDU5OiBGaXggc3BhcnNlbHkgYXVnbWVudGluZyB0cmlnZ2VyIHRhYmxlcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNGFlMDIxYjJlNjM4NDQzNzA4MWM1NjIzZjM2MGM4ODk2MzkwMTg4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjk6NTQgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgQmFzZWQgb24gbWliMmMgcGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBjNmFjY2Y4YzY2MjU0ZmE4YzQ4NzY3ZWQ3ZGVjNzk1ZGRhZmM1MjJlCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6Mjc6MTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTIDM0MTAwNTA6IFNraXAgYWxyZWFkeS0ncHJvY2Vzc2VkJyB2YXJiaW5kcwogICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBUdXJuZXIKCmNvbW1pdCBhNjE4MjZhZDhjYTU0NjYxZDFkOTA5NzEyNTAzYmQzYThiMzJlZWQwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAyMiAxODozNTo0NiAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgIAogICAgbXlNYXRjaCBpcyB1bnVzZWQgYXMgbm1hdGNoIGlzIHplcm8gYW5kIGFsc28gc2luY2UgcmVnZXhCdWZmZXIgaXMgY3JlYXRlZAogICAgd2l0aCBSRUdfTk9TVUIgc2V0LgoKY29tbWl0IGJhNGZjODBmZTJjZmQ1YTVkODkyMzBkOGYzNzAzZTRmZTAxZTYwMTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IERlYyAyMiAxOToyNDo0MCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIIDM0MDIzNzY6IGZyb20gTGVvbmFyZG8gQ2hpcXVpdHRvOiBSZWNvZ25pc2UgUmVpc2VyRlMKICAgIEFsc28gbW92ZSB2YXJpb3VzIEZTVHlwZSBkZWZpbml0aW9ucyB0byB0aGUgYXBwcm9wcmlhdGUgYmxvY2tzCgpjb21taXQgYjVhYzRhMDRkY2Q1NDcwZDA4ZDAzMzIxYWJjZDFlOTgyNjIxZTZlMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgMmIzN2U0ZThmMjUwYTBkODgyMTE5OWE3NGFjM2Y0ZTViN2I3YmFiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMxOjUxIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgM2QwODM0NTE1NmM0MTkzMzNkZTk2OWYxM2QyMWZjZWM3ZTE4ZTk0ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjMyOjI5IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bnRlcm1pbmF0ZWQgc3RyaW5ncyBhZnRlciBzdHJuY3B5Cgpjb21taXQgY2Q4NTlhZDUxYzRmMThkNWIwZmM2OWRkNjY5ZmNiMDUxYzc5ODk2OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgRGVjIDIyIDE0OjM5OjMzIDIwMTEgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBtZW1tb3ZlIHNpemUKCmNvbW1pdCAzMGZmNThkMDlkNGM5ZDU0MzhiYjYyMTA1NGZkN2FkN2EyYTU5N2U0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MDc6MTkgMjAxMSArMDEwMAoKICAgIEZpeGVkIHdyb25nIGxlbmd0aCBvZiBidWZmZXIgd2hlbiBwcmludGluZyBBU05fQklUX1NUUgoKY29tbWl0IDZjMTQ4N2UxZDM2MGQzZDI2MGEzOWNiMWY1YjE1ZGE5NzgzOTUwNTMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNTo0NzozNCAyMDExICswMTAwCgogICAgRml4ZWQgcG90ZW50aWFsIGZyZWUgb2YgdW5pbml0aWFsaXplZCBwb2ludGVyIGluIGVycm9yIGNhc2VzCgpjb21taXQgYzc2ZmI5NmY2NWUzM2JhMmZkMjEyYTkyMWU4YzM4NjE1NWVlNWM3YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ0OjQ2IDIwMTEgKzAxMDAKCiAgICBGaXhlZCB1bml0aWFsaXplZCB2YWx1ZXMgaW4gdWRwVGFibGUKCmNvbW1pdCBjNDQ2MDg2NzliODk3NTExNzZmMjhhMmU1NGQ1MjgyYjQ2ZTJhMDVjCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6NTY6MTMgMjAxMSArMDEwMAoKICAgIFVzZSBjYWxsb2MgaW5zdGVhZCBvZiBtYWxsb2MgYW5kIG1hbnVhbCBjbGVhcmluZwoKY29tbWl0IGEwNWM1Zjk1MTM0NjE4MjRlNzkwM2FlOWFlOWE2YzMzODZlMzM4NzkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDo0MDo1MCAyMDExICswMTAwCgogICAgRml4ZWQgcHJpbnRpbmcgb2YgdW5pdGlhbGl6ZWQgdmFyaWFibGUgd2hlbiBzZW5zb3JzX2dldF9sYWJlbCgpIGZhaWxzCgpjb21taXQgZTRhNWVkYzcyMzkzYmQzZGU5YmYxMmJjZWJhOWQ4M2JiZjdkZTcwYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjMxOjI1IDIwMTEgKzAxMDAKCiAgICBSZW1vdmVkIHVudXNlZCB2YXJpYWJsZQoKY29tbWl0IGZhZTJlNWI4MzViOGRmMWVhZTQ3ZTRjZWJiNGViNDA0ZDcyODIzNzcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMToyMSAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bml0aWFsaXplZCBpaWQgaW4gZXJyb3IgY2FzZXMgYW5kIHdpdGggZGVidWcgaW5mbyBlbmFibGVkLgoKY29tbWl0IDlkNThmODFhOTIzOWNmYmNmYzhlYmNlMzY3ZDIxZTliM2RjYjAyOGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzozMzozMyAyMDExICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBpbiBlcnJvciBjYXNlcwoKY29tbWl0IDBiYzhjMDhlZGVhZTdhZTA5NWYxMTYyNThjMjBhZTU3NjdkNjA2NTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxMzoyMDo1MiAyMDExICswMTAwCgogICAgRml4ZWQgcmV0dXJuaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgJ3N0YXR1cycgd2hlbiBzcyA9PSBOVUxMCgpjb21taXQgNzMwNGM1M2NmOGFkZWU4ZWNjZWYxYThmMjY3NTZmYzA3ZjA5ODcyMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTggMjM6MzE6NTMgMjAxMSArMDEwMAoKICAgIE9uIHNvbGFyaXMgMTAgdGVzdCBpbiAvYmluL3NoIGRvZXNuJ3Qgc3VwcG9ydCB0aGUgLWUgdGVzdC4gUmVwbGFjZSBpdCB3aXRoIC1mCgpjb21taXQgOGNkM2JlNjBkNjkzYzljMzZmZmI5N2QzZDliY2I0OWMxYjRhYmUzNQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMTcgMDg6NTI6MjQgMjAxMSArMDEwMAoKICAgIEF2b2lkIHJlcGV0aXRpb24gb2YgdGhlIGNvbXBsZXggZXhwcmVzc2lvbiBkZXRlcm1pbmluZyBpZiBpdCBpcyBwb3NzaWJsZSB0byBnZXQgdGhlIGRlc3RpbmF0aW9uIGFkZHJlc3MuCiAgICAKICAgIFRoaXMgYWxzbyBtYWtlcyBpdCBwb3NzaWJsZSB0byBidWlsZCBvbiBwbGF0Zm9ybXMgbGlrZSBTb2xhcmlzIDEwIHRoYXQgZGVmaW5lCiAgICBJUF9SRUNWRFNUQUREUiBidXQgbGFjayBlaXRoZXIgb2YgbXNnaGRyLm1zZ19jb250cm9sIGFuZCBtc2doZHIubXNnX2ZsYWdzLgoKY29tbWl0IDk1M2YyZTNkNDI1ZWRlM2I4NjNhMmU3Y2NiMGI0YmM4NjI5MjhiNTcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDUgMjI6MTM6MDcgMjAxMSArMDEwMAoKICAgIE1vdmUgdGhlIHVzZSBvZiBfc2VuZHRvIGFuZCBfcmVjdmZyb20gYmVsb3cgdGhlaXIgZGVmaW5pdGlvbnMuCgpjb21taXQgNjhhMTE3M2M0NmNmNzc2MDE0MjZjZjM5MWQ5YTg1Mjc5NGYyMDU3ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjAgMjA6MDU6MTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNlcGFyYXRlIG91dCB0aGUgY21lc2cgYnVmZmVyIHNpemUKCmNvbW1pdCA0NjFkZDE2ZjNiMjY0NzMyMmNkY2U2MzYzMDgxY2M0NGJhNWE0OWI1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAyNiAyMTo1MTowMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWVyZ2UgdG9nZXRoZXIgdGhlIExpbnV4IGFuZCAqQlNEIHZlcnNpb24gb2Ygc3JjIHBvcnQgc2VuZGluZy4KCmNvbW1pdCA3YWNjYjY5YmFhMWZjMGI2YTM0MzlkMmU1NDljODZkYTM0NTNiYWQyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOTozMDozMSAyMDExICswMTAwCgogICAgVXNlIGEgYmFyZSBzdHJ1Y3QgaW92ZWMgaW4gaW5zdGVhZCBvZiBhIG9uZSBlbGVtZW50IGFycmF5LgogICAgCiAgICBUaGUgcHVycG9zZSBvZiB0aGlzIGNoYW5nZSBpcyB0byBtYWtlIF9yZWN2ZnJvbSBtb3JlIHNpbWlsYXIgdG8gX3NlbmR0by4KCmNvbW1pdCAzOTg1MmNkNGM4NWVmMmJmYzc1Y2RlYTI4MjUyNjFlZTkzZTc2OGMyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyOToyMCAyMDExICswMTAwCgogICAgQWRkIGNvbW1lbnQgZGVzY3JpYmluZyB0aGUgcHVycG9zZSBvZiB0aGUgY2FsbCB0byBnZXRzb2NrbmFtZSBhZnRlciBhbG1vc3QgcmVtb3ZpbmcgaXQuCgpjb21taXQgMWIyOTJjYTI3ZWFiNWNhYTczZmVhYWE4M2RjOWMxMmFiYzBmMmU3MApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6Mjc6NTkgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZS4KCmNvbW1pdCBiYzg3OTU3MWVjYTk1MjBiYzEzMmY4NDBjM2U2NTlkMzc5MzE0NGQ3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyNTozNiAyMDExICswMTAwCgogICAgSW50cm9kdWNlIHRlbXBvcmFyeSB2YXJpYWJsZXMgdG8gZWFzZSB0aGUgZXh0cmFjdGlvbiBvZiB0aGUgc2VydmVyIGFkZHJlc3MuCgpjb21taXQgYjdlZWE2Y2ZmYmQ4NzI5MzJjZTJjMDRmZWZiNmY0M2RlMzM5ZjM3NApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTg6MzMgMjAxMSArMDEwMAoKICAgIFJlbmFtZSB0aGUgY21lc2dwdHIgdmFyaWFibGUgdG8gY20uCiAgICAKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgaXMgdG8gaW5jcmVhc2UgdGhlIHJlYWRhYmlsaXR5IG9mIHRoZSBjb2RlLgoKY29tbWl0IDBhNzQ2MWU3Mjg4MDVjNjJhMWNhYjlkODdiZmM3NGM3OTI3YTlmY2MKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjE1OjIyIDIwMTEgKzAxMDAKCiAgICBGYWN0b3Igb3V0IGEgY29tbW9uIGxvb3AgaW4gcmVjdm1zZyBvcHRpb24gcHJvY2Vzc2luZy4KCmNvbW1pdCBiM2M2MjQ4ZDAyMDFhYjE2MTA4NDBkNmQwZTc0OWIzYjZjNGFkNzkyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxMzo0MyAyMDExICswMTAwCgogICAgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiBMaW51eCBhbmQgQlNEIHJlY3Ztc2cgb3B0aW9uIHBhcnNpbmcgc29tZXdoYXQuCgpjb21taXQgMzU2NDAwZDYyOTBhNDIzYjUyZWJlZWE1YTVlOTc2ZmIxNWJiNzNiNApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MDQ6NTYgMjAxMSArMDEwMAoKICAgIFVzZSBDTVNHX0RBVEEgb24gdGhlIHJlc3VsdCBvZiBDTVNHX0ZJUlNUL05FWFRIRFIsIG5vdCBvbiB0aGUgYnVmZmVyLgoKY29tbWl0IDNiMzUxNzA4YzYyZGU0NmFhMWI5MGVkMjMyY2ZkOGM3YzViMDIyMzEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTI6MDA6MzIgMjAxMSArMDEwMAoKICAgIFJlbW92ZSBhIGNhc3QKCmNvbW1pdCBkZTkyNTBkOWRhZTk3MjdhNmNjN2Y2NDc2ODhkZGRmMWI4NTk3MTI4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDExOjU4OjA0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTWFrZSBzcHJpbnRfbWliX29pZCgpIHRyZWF0IE9JRCBjb21wb25lbnRzIGFzIHVuc2lnbmVkIGluc3RlYWQgb2Ygc2lnbmVkIGludGVnZXJzCgpjb21taXQgMGUzM2IzYjZkNTg1NGE0YmFjMTVkNGVhNWUwMTZjNTNkMTYxZDBjZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMDowMjoyOCAyMDExICswMTAwCgogICAgRml4IHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MKCmNvbW1pdCBiN2U1MGQ1ZjlhNjc1NTk4MmQyYWYzMTkxNDczY2IzNDY0M2JjMDNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDA4OjM3OjIyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZWR1Y2Ugb3ZlcmhlYWQgb2YgY29uZmlnIGZpbGUgcGFyc2luZwoKY29tbWl0IDczYzllZTQyZDI4YWZlMmUxMDdhN2Q2NjE2YjZkMDExODkwYzM2ZWEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMDk6MDk6NTkgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgM2RiOTc5NjJiMzdlYjEyZDI1NGQ2MWU2YmUyMzRiMDZhMzkxYzhiYgpBdXRob3I6IEJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPgpEYXRlOiAgIFRodSBEZWMgOCAwNzo0Mzo0NSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIIDM0NTM4Njg6IGZyb20gIkJpbGwgRmVubmVyIDxmZW5uZXJAZ21haWwuY29tPiI6IEZhY3RvciBjb21tb24gY29kZSBpbnRvIHBhc3NfY29tbW9uCiAgICAKICAgIE1vdmUgdGhlIGNvZGUgZm9yIHBvcm1hdHRpbmcgYW5kIHByaW50aW5nIHZhbHVlcyBmcm9tIHBhc3MgYW5kIHBhc3NfcGVyc2lzdAogICAgaW50byBwYXNzX2NvbW1vbi4KCmNvbW1pdCBiNjU2OGM4M2YxNzU2ZTlhNjU0MzRlZGVlZWI0MGQyM2RkYmJiNjUyCkF1dGhvcjogY2NjaGl1IDxjY2NoaXVAc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgNyAxNjoyNToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDUyMDY5OiBGaXggc25tcHRyYXBfb2lkIGRlY2xhcmF0aW9uIGluIG1pYjJjIGdlbmVyYXRlZCBjb2RlCiAgICAKICAgIFRoaXMgYnVnIHdhcyBpbnRyb2R1Y2VkIGNvbnNpZGVyYWJsZSB0aW1lIGFnby4gSXQgZGlkIGFscmVhZHkgZXhpc3QgYXQgdGhlCiAgICB0aW1lIHRoZSA1LjYgYnJhbmNoIHdhcyBjcmVhdGVkIChzZWUgYWxzbyBjb21taXQKICAgIDBlYzA4OGFmYTI3Y2ZkYTRlNmVhNzhhYWU3Y2ZjNTUwNzU2NGVkZGUpLgoKY29tbWl0IGQ0OTRkYjY0YzIwOGI0ZGM2MjgxMzEzMmY4ODYzYmQ1YzFhMzlkNzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzg6MTcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogRWxpbWluYXRlIGFuIHVudXNlZCB2YXJpYWJsZSAoTm93KQoKY29tbWl0IDI4ZjI1NjFiYzI5MzVkOGUxY2JmNDZkMjgyMDE1ODE3M2U3YTRjZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6Mzc6MTEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogTW92ZSB0aGUgbWFpbiBsb29wIGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbgoKY29tbWl0IDM5NmUxMjJkZGM0MmE5MTZmMDZhMDI4ODRjMGU4YTI1OGVkYmUyMzgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMDk6MzI6MTYgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYXRjaCBlYWNoIGdldHB3bmFtKCkvZ2V0cHd1aWQoKSBjYWxsIHdpdGggYW4gZW5kcHdlbnQoKSBjYWxsIGFuZCBlYWNoIGdldGdyZW50KCkgY2FsbCB3aXRoIGFuIGVuZGdyZW50KCkgY2FsbC4KCmNvbW1pdCAzZWZlZmJjMDAyNDM5OTc4NmY4YjY4YjFlOTNiMGE4ZmRkZGRjN2RhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjQxOjAxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFJlbW92ZSBzdXBlcmZsdW91cyBjYXN0cwoKY29tbWl0IDdmMDVkYWE4ZTBlMGY1MzNiMGYxMmEzZTFjZjA3NjQxNTE5OTA5ZDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTE6NTg6MzIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEJVRzogMzQ0NDkzOTogQlVHOiAxNzk2ODg2OiBzbm1wbGliOiBBdm9pZCB0aGF0IHNwcmludF9yZWFsbG9jX29jdGV0X3N0cmluZygpIGVtYmVkcyB1bnByaW50YWJsZSBjb250cm9sIGNoYXJhY3RlcnMgb3IgYmluYXJ5IHplcm9lcyBpbiBpdHMgb3V0cHV0LiBUaGlzIGJlaGF2aW9yIGNvdWxkIGNhdXNlIHRydW5jYXRlZCBvdXRwdXQgaW4gc25tcHRyYXBkLgoKY29tbWl0IGRiOGY1NThmZDJmM2I3YzEwOWVhM2ExYzIxMzNiNzViNmY4Y2IyYWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6MDQ6NDEgMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4OiBwYXNzIHVuc2lnbmVkIGNoYXJzIHRvIGlzcHJpbnQoKSBpbnN0ZWFkIG9mIHNpZ25lZCBjaGFycy4KCmNvbW1pdCA4MDBkYzEwMjhlN2UwY2Q4Y2MxNGQ4NGRkMzE3MjNkNDdhYzA3M2RiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IERlYyAxIDEwOjE4OjU4IDIwMTEgKzAxMDAKCiAgICBSZWR1Y2UgdGhlIHNjb3BlIG9mIHRoZSBoaW50IHZhcmlhYmxlCgpjb21taXQgODNlYTRhMDgwYzkwYTc0Yjk3NDNkM2YyNGNmMGQ0YjhhMWU4Yzg0OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBOb3YgMjcgMjE6MTY6NTIgMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIHZhcmlhYmxlIHFvcwoKY29tbWl0IDdiOWUwMzQ0MWMzZGMzYTA3NjcwZWQwMWY1ZDA0NzkxYTgyYzc1MGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjA0OjAxIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgI2RlZmluZSB2YWwoeCkgX19TVFJJTkcoeCkgYW5kIGNoYW5nZSB2YWwoeCkgaW50byBfX1NUUklORyh4KS4KCmNvbW1pdCAyZjM3OWIwZTRlY2FkZmE0ZTU0MWUzMDA1YzhmYzgyODE4ODJiNzQxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNTo1ODo0NyAyMDExICswMTAwCgogICAgRm9sbG93LXVwIGZvciBjb21taXQgMWFhNzA0ZTogdW5icmVhayB0aGUgTVNWQyBidWlsZAoKY29tbWl0IDY0ZWYwZjcxMTI3NjE3ODM3MDI3ZmIyY2ZhZjE3NGI5NWJhNzllMGQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjE5OjUwIDIwMTEgKzAxMDAKCiAgICBBZGQgU05NUDo6cmVnaXN0ZXJfZGVidWdfdG9rZW5zKCkKCmNvbW1pdCA3YmVhZDljYTkxN2M2NzU2NmQ1ZWQ5OGFiNTA3YmJjMDI4MTYyMTdkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE5vdiAzMCAxNDowODowOCAyMDExICswMTAwCgogICAgQWdlbnRYIHN1YmFnZW50OiBSZWR1Y2UgY29kZSBkdXBsaWNhdGlvbgoKY29tbWl0IDBlZDcxNTQxZjg3ZTdkNzhiYzk5OGVlYmRhMzIxN2M1OWUxZGY4MzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAzOjE5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgRG94eWdlbi1zdHlsZSBmdW5jdGlvbiBoZWFkZXIgZm9yIG5ldHNubXBfcmVnaXN0ZXJfZGVmYXVsdF90YXJnZXQoKSBhbmQgbmV0c25tcF9jbGVhcl9kZWZhdWx0X3RhcmdldCgpLgoKY29tbWl0IDhjMjk3MmI2MWU0MDE2OWI0N2M1MDk4OGI2YWU5ZThjMjg1Zjg0ZjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjAyOjU0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBGaXggc3BlbGxpbmcgaW4gdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFNOTVAgbW9kdWxlCgpjb21taXQgNWRmMmJhYzZiZDcxNzc5OTMxMWYwMDFhYzdiNzNkYjg4ZjExYmRkYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6NTk6NTggMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE9ubHkgdHJhbnNmb3JtIHRoZSBhZGRyZXNzIHRvIHByaW50YWJsZSBmb3JtIHdoZW4gbmVlZGVkLgoKY29tbWl0IDE3MWU4ZDQ4ZDRhZjA0MDEzY2ZmOGZkMjhmNTM0MWEyYWVmMjFkODgKQXV0aG9yOiBNaWpvIFNhZnJhZGluIDxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+CkRhdGU6ICAgVHVlIE5vdiAyOSAxNjo0OTo0NiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcC1icmlkZ2UtbWliOiBGaXggaW5kZXggaW50ZXJwcmV0YXRpb24uCiAgICAKICAgIFRoaXMgcGF0Y2ggY29ycmVjdHMgYSB3cm9uZyBkYXRhIGludGVycHJldGF0aW9uLgogICAgc25tcC1icmlkZ2UtbWliIG9idGFpbnMgdGhlIGlmaW5kZXggdmFsdWUgZnJvbSB0aGUgc3lzZnMKICAgIGF0dHJpYnV0ZSAnaWZpbmRleCcgVGhlIHZhbHVlIGdpdmVuIGJ5IHRoZSBzeXNmcyBhdHRyaWJ1dGUKICAgIGlzIGFuIGludGVnZXIsIHdoaWNoIGlzIGhhbmRsZWQgYXMgaGV4IGFuZCBsZWFkcyB0bwogICAgaW5jb3JyZWN0IGRhdGEgZGlzcGxheWVkIHRvIHRoZSB1c2VyLgogICAgCiAgICBlLmcuCiAgICAgICAgJCA+IHNubXB3YWxrIGxvY2FsaG9zdCBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yCiAgICAgICAgQlJJREdFLU1JQjo6ZG90MWRCYXNlUG9ydElmSW5kZXguMiA9IElOVEVHRVI6IDU0CiAgICAKICAgIGFjY29yZGluZyB0byB0aGUgc3lzZnMgYXR0cmlidXRlIHRoZSB2YWx1ZSBpcyAzNgogICAgCiAgICAgICAgJCA+IGNhdCAvc3lzL2NsYXNzL25ldC88ZGV2aWNlPi9pZmluZGV4CiAgICAgICAgMzYKICAgIAogICAgU2lnbmVkLW9mZi1ieTogTWlqbyBTYWZyYWRpbiA8c2FmcmFkaW5AbGludXgudm5ldC5pYm0uY29tPgoKY29tbWl0IDgyZTM5ZmI2NzA2ZGY5MGVjZjJmYzllMTBhZGEyYjk2MmVlMTk2ZjMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAyOSAxMjoyNzo0NiAyMDExICswMDAwCgogICAgRml4IG11bHRpLWxpbmUgY2FzZSB0ZXN0aW5nIG9mIGluY29taW5nIE9JRAoKY29tbWl0IGIxNWRhMWE0NTE2MDYxMTA1YTFlYWM3NDUwY2Y2NTBlYzQ0MjY2YjIKQXV0aG9yOiBOaWtvbGF5IERlbmV2IDxuZGVuZXZAZ21haWwuY29tPgpEYXRlOiAgIFR1ZSBOb3YgMjkgMDg6Mjk6NDkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEZyZWVCU0Q6IFJlc3RvcmUgSVBfUkVDVkRTVEFERFIgZnVuY3Rpb25hbGl0eS4KCmNvbW1pdCA3ZjQ3ZjUyZTQ4MWJhYTlhYWZiNTc4NDI0NGIwZGQyNjUzZTdkY2ZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiAyOCAwODo1MTozOSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIFNOTVBfQUxMT0NfVFlQRURFRiB0byBhbGxvY2F0ZSB0cmFuc3BvcnRzIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBzZXBhcmF0ZSBjYWxsIHRvIG1lbXNldC4KCmNvbW1pdCBjZjg2MDM5ZTMwODYyMjVjMzA4NWJiOWFkZjA4OGI4YmE1YmE2OTc5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNTowMjo1OCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIgcGFzcy4KCmNvbW1pdCAxYTg3ZTc2ZTAwZWUzZDVjZDM3YTA3YmZjM2Q4NDQ5MGQzYzJhNGVjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAxNDo1NTo0MiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdW5pdC10ZXN0cy9UMDE0Z2V0aG9zdGJ5YWRkcl9jbGliIHBhc3MKCmNvbW1pdCA4ODY3ZmQxZGNmZTcyYjU5ZDA3MzIyZmYzOGE2OTliNjZlYzRmMzI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE5vdiAyMiAwOTo0NDozOCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSByb2J1c3QgYWdhaW5zdCBtZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlcy4KICAgIAogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBORVRTTk1QX0xBUkdFX0ZEX1pFUk8oKSB1c2UgbWVtc2V0KCkgb24gVW5peCBzeXN0ZW1zIGluc3RlYWQgb2YgYW4gZXhwbGljaXQgbG9vcC4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2Ugc3VyZSB0aGF0IG9uIFVuaXggc3lzdGVtcyBuZXRzbm1wX2xhcmdlX2ZkX2NscigpIGRvZXNuJ3QgdHJ5IHRvIHJlYWQgbWVtb3J5IGl0IGlzbid0IGFsbG93ZWQgdG8gcmVhZCBpZiB0aGUgZmlyc3QgYXJndW1lbnQgZXF1YWxzIC0xIChhIHZhbHVlIHRoYXQgc2hvdWxkbid0IGJlIHBhc3NlZCBieSB0aGUgY2FsbGVyKS4KICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9sYXJnZV9mZF9pc19zZXQoKSByZXR1cm4gZmFsc2Ugb24gVW5peCBzeXN0ZW1zIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgQ0hBTkdFUzogV2luZG93czogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKSBzaHJpbmsgYmVoYXZpb3IgY29ycmVjdC4KCmNvbW1pdCAyM2RiMGNmMDliOGIwZWFiMzdiNzQ5ZWYwYzNjM2YzMDY5MDAyNDVjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE5vdiAyMSAyMzowMjo1NyAyMDExICswMTAwCgogICAgRml4IGNhc3RpbmcgdHZfdXNlYyB0byBpbnQgd2hpY2ggbWF5IGJlIHRvbyBzaG9ydAoKY29tbWl0IDgwZWU0MDIyZTUzNGU2NGFhZDVhNWYyNzE5Mjg0M2I0MmFjYjg1ZTAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA5OjE0OjAyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDM5MjM0OiBNb3ZlIG5ldHNubXBfcGFzc19zdHJfdG9fZXJybm8gdG8gcGFzc19jb21tb24gYW5kIHJlbmFtZSBpdCB0byBuZXRzbm1wX2ludGVybmFsX3Bhc3Nfc3RyX3RvX2Vycm5vCgpjb21taXQgMGJhYTkyOTZjMDcyYmIzNzM1NzYwYjBkZDk5MmYyZDFkM2NhMjdmYQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MDU6MjQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IENvcnJlY3QgdGhlIGRlcGVuZGVuY2llcyBvZiB1Y2Qtc25tcC9wYXNzIGFuZCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QKCmNvbW1pdCAxYWE3MDRlNGEyOTQ0MzBiMjhlMzliNmY5ZTQ2ODNiOGE0OGJjZTA0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwODozNToyMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZhY3RvciBvdXQgYXNjMmJpbiBhbmQgYmluMmFzYy4gQWRkIGEgbmV0c25tcF9pbnRlcm5hbF8gcHJlZml4IHRvIHRoZW0KCmNvbW1pdCBjZGE4ZmU5MTAxM2YxMmNiZjY0YTA3NzVhYmI1NTcyMDAzNWFmOTMxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwMDo1NToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IENhbGwgc25tcF9vaWR0cmVlX2NvbXBhcmUgaW5zdGVhZCBvZiBzbm1wX29pZF9taW5fY29tcGFyZQogICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSBzbm1wX29pZF9taW5fY29tcGFyZSBzaW5jZSBpdCBpcyBpbnRlcm5hbCBhbmQgdW51c2VkCgpjb21taXQgODVmODkzZTJiNjA1ZTY3ZjliZDA0NDNjNzRlMmVkMjY5YWE2ODU2NApBdXRob3I6IE5pa2kgRGVuZXYgPG5pa2lfZEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAxNyAyMjo0MjozMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKICAgIAogICAgVGhpcyBodW5rIGZlbGwgb2Ygd2hlbiB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggd2FzIG1lcmdlZC4KCmNvbW1pdCA1YzkxM2U1NDY1NmFlMDA5NmIxZmViNmRhOThiNWZjOWNhODFmMjc2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMzowNyAyMDExICswMTAwCgogICAgRGVmaW5lIHRoZSBmdWxsIE5ldEJTRCBoaWVyYXJjaHkgZG93bndhcmRzCgpjb21taXQgYjg4MTg0MWJkMDQ5M2RkNzFkNjMyNTliZGRlZDQ0OWIwNmYwMmMzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MzA6MzMgMjAxMSArMDEwMAoKICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKCmNvbW1pdCBjYTI5NGNmNzViYmM4ZTkwZGJmNDRlZTQwNDc4OTM1ZTkxZGIxNDg3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxODowMyAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCBjZDMyYzJkZmYwNmI5YjQ1MmNjMThkNTUyZDJmMjIzNDA5MmM4MjljCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNzowOSAyMDExICswMTAwCgogICAgRml4IGZvcm1hdCB3YXJuaW5nCgpjb21taXQgODgzMTM2YzJiMmZhMDczOWY0MzdhOGNmYjY2MTRhY2NjNzZlMjY4ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTU6NTggMjAxMSArMDEwMAoKICAgIE1vcmUgbmVlZHMgZm9yIE5FVFNOTVBfUFJJbyBmb3JtYXQgc3BlY2lmaWVyCgpjb21taXQgYjgwODRhN2NjYzkwOWI2ZDZkYjdjMGU4ZTU5NmQ3ODY3MWY1Njc4YgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MTQ6MjYgMjAxMSArMDEwMAoKICAgIEZpeCB1c2luZyBjaGFyIGFzIGFycmF5IGluZGV4IChjdHlwZS5oKQoKY29tbWl0IDg0NTI5ZTYzMjBhODlkOTdmMTMxNGFlYmFkODA2MjU1ZDJhMWIxOGMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjAwOjU3IDIwMTEgKzAxMDAKCiAgICBGaXggbWlzc2luZyBmb3JtYXQgZm9yIEZyZWVCU0QgNAoKY29tbWl0IDRiZDAzNTI5NTVhMjU1MWJmZTAyMzA4ZGQxMzRiOTEyOGM5OGI5ZTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU5OjM2IDIwMTEgKzAxMDAKCiAgICBGaXggcGFyYW50aGVzaXMgcHJvYmxlbQoKY29tbWl0IGZlNjI2OWIxOTAwY2Y0NGRjMjdhMTk5YTc2MWQxNWEwMWMzZjMwOTIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIyOjU4OjM0IDIwMTEgKzAxMDAKCiAgICBGaXggc2l6ZV90L2ludCBtaXNtYXRjaGVzCgpjb21taXQgYTRkYjlmOWZjMTNkMjFlY2ZmNDg4ZWI0MTAzNzZlZGRhNmMyODIzMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6NDM6MzQgMjAxMSArMDEwMAoKICAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzCgpjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTM6Mzc6NDkgMjAxMSArMDEwMAoKICAgIEZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncwoKY29tbWl0IDI1Y2ZjMTk2MmFlNTc2Y2NiMTU1OGRhMWUzZWY4YjZjMTdmNjNjMTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDExOjI3OjUzIDIwMTEgKzAxMDAKCiAgICBSZWFsbHkgdXAtdG8tZGF0ZSBtaWJzCgpjb21taXQgMGU4NmM3ODFmMzk4OWJmMDIyYzg5OTNhMTE4NjE3Yjc0YTc1NDIwYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTc6MTkgMjAxMSArMDEwMAoKICAgIG1lbW9yeV9saW51eDogZ2V0IFNobWVtIGZyb20gL3Byb2MvbWVtaW5mbyBmb3IgMi42IChvciBuZXdlcikga2VybmVscwoKY29tbWl0IGJmMjY0ZDE1ZGVkN2FjYmJmMmUzODcxYjk4ZmQxZmNlZjQzZDllYzMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE2OjE2IDIwMTEgKzAxMDAKCiAgICBtZW1vcnlfbGludXg6IGNsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDU3ZmY4YTQwYmFlNWQ5YmNhZDE2MDg5MTQyYTljZjMyOGM5ZmExZjUKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjE0OjU3IDIwMTEgKzAxMDAKCiAgICBkaXNtYW4vcGluZywgZGlzbWFuL3RyYWNlcm91dGU6IENsb3NlIHNvY2tldHMgaW4gZXJyb3Igc2l0dWF0aW9ucwoKY29tbWl0IDhhMjUwMmExNWMzMjE3Yjk1OTM5YTNjODM2MTY3ZDIzMGFjMzVmMDIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDA5OjEzOjUzIDIwMTEgKzAxMDAKCiAgICBVcC10by1kYXRlIGxpc3Qgb2YgUkZDcyB3aXQgbWlicwoKY29tbWl0IGRjZGQ3MDIxMTFkOGRhNWY1MzgwNGNmY2YwZGZkYWQ3MzE0NjhiZGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE5vdiAxNSAxMDo1NzozNCAyMDExICswMDAwCgogICAgRG9uJ3QgdHJ5IHRvIGluc3RhbGwgYW4gZW1wdHkgbGlzdCBvZiBtYW4gcGFnZXMgKE1BTjMpCgpjb21taXQgYmE2MTk4MDRlNTk3OGE4ZGY3NTQ4NDRlZmNjYTUyYjY5YjUwMTVmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTM6MzQ6MjAgMjAxMSArMDEwMAoKICAgIE1pbkdXOiBNYWtlIHN1cmUgdGhhdCB0aGUgYmFja3NsYXNoZXMgaW4gdGhlIHBza2lsbCBtZXNzYWdlIGFyZSBkaXNwbGF5ZWQuCgpjb21taXQgOTIzZWVjYzUwN2Y3NTA0M2I2MGM1ZTY4MDUzYTRmMzk2YWIwYjBkMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBOb3YgMTQgMTI6MzY6MzggMjAxMSArMDEwMAoKICAgIENvbXBpbGVyIHdhcm5pbmcgZml4IGZvciBzeXN0ZW1zIHdoZXJlIHVpbnQ2NF90ID0gdW5zaWduZWQgbG9uZyAoZS5nLiBSSEVMIDYuMS94ODZfNjQpCgpjb21taXQgNDM0YmZjMWY3NDU3NTUwYjZmODdkNWJjZDUxMTI3NmIyNzBiNTk2NApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDE0IDExOjIyOjUzIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZnJvbSBNYXJ0aW4gV2lsY2s6IGZpeGVkIHNubXBkIGNyYXNoaW5nIHdpdGggJ3NlbGVjdDogYmFkIGZpbGUgZGVzY3JpcHRvcicuCiAgICAKICAgIE9uIDMyLWJpdCBzeXN0ZW1zLCBzbm1wZCBkaWVzIHdpdGggYWZvcmVtZW50aW9uZWQgbWVzc2FnZSB3aGVuIHVzaW5nIGZpbGUgZGVzY3JpcHRpb25zID4gMzIsIGUuZy4gd2hlbiBoYXZpbmcgPjMyIEFnZW50WCBzdWJhZ2VudHMuCgpjb21taXQgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTk6MDE6MjEgMjAxMSArMDEwMAoKICAgIEZyZWVCU0QtOTogRml4IGZvciBjb25zdCdpZnllZCBubGlzdCBhcmd1bWVudHMKCmNvbW1pdCBlYWNhNzk4M2UzNjU1YWI2OTZmY2M0NDYxY2EwY2VkYmFjNmNlNjlhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxOTowMDoxMiAyMDExICswMTAwCgogICAgTmV0QlNELTY6IE9uZSBtb3JlIGluc3RhbmNlIG9mIHRpbWVzcGVjIHJlcGxhY2luZyB0aW1ldmFsCgpjb21taXQgOGFkNmM1M2ZkZWM1YWRlYWU0ZTUyZjE3NTFlY2VjNGEzNDViYWIwNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTk6MDEgMjAxMSArMDEwMAoKICAgIEZpeCBidWlnICMzNDM2NTI3OiBhcnBfbmV0bGluazogZml4IGR5aW5nIHJlbG9hZCBvZiBjYWNoZQoKY29tbWl0IDM3OGZmZWQwM2JhNzlhODM0NmQ2YzYyNzgxZTJkZGY1Y2U5MmE0NzgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE4OjU1OjQzIDIwMTEgKzAxMDAKCiAgICBGaXggYnVnICMzNDM2NTI4OiBzd2luc3RfcGtnaW5mbzogcmVjb3ZlciBmcm9tIE5VTEwgcmV0dXJuIGZyb20gb3BlbmRpcgoKY29tbWl0IGQ3YWQ4ZjVmOWYzZjY3ZjE2ZjY1YzI1MTVkMTFlMTk0ZDJjZGQxMmMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjA0OjQxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBDeWd3aW46IE1ha2UgZGF0ZV9uX3RpbWUoKSBwcm9kdWNlIHRpbWUgem9uZSBpbmZvcm1hdGlvbgoKY29tbWl0IGJhMzVjNTBiMmY0NTliZDljMTFlZDU5Y2M3ZDFiMTYyMTU2NDRmYTMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDEwIDE0OjE3OjA0IDIwMTEgKzAxMDAKCiAgICBSZXBsYWNlIEFDX1RSWV9MSU5LKCkgYnkgQUNfTElOS19JRkVMU0UoKQogICAgCiAgICBOb3RlOiB0aGVzZSBjaGFuZ2VzIGRvIG5vdCBhZmZlY3QgdGhlIGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0LgoKY29tbWl0IGY2MTViZjI0ZjVkMGYyM2NlOTMwMWRhNTU2MTg0ZDY0NjA3NDA0NTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzI6NDkgMjAxMSArMDEwMAoKICAgIEZpcyBCdWcgIzM0MzQ4MjQ6IFNJR1NFR1Ygd2hlbiByZWFkaW5nIGRpc2sgZGlyZWN0aXZlIGFmdGVyIFNJR0hVUAoKY29tbWl0IGE5NGExNzlkOTM0MGY1MWZhN2MyMzQzMTYzMGJjMGZmZDZkNzU5ZTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDkgMjA6MzA6NTEgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzM2MTY6IGRvbnQgdHJlYXQgRGF0ZUFuZFRpbWUgYXMgYSBzdHJpbmcKCmNvbW1pdCBiMjllNDE2NDUzMWQyNThmZTM0YTZmZTJiOWUxZWM2MGM1NmY5NTQ0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE5vdiA3IDAxOjI1OjU3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgZTIyMWU2NWZkYzFjNjhmMTk2ODY1MTcxN2RjYzljY2ZiNjQxNDc4MwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxNTowNTowMCAyMDExICswMTAwCgogICAgRml4IHdhcm5pbmdzIGFib3V0IGNvbnZlcnRpbmcgc29ja2FkZHJfaW4gKiBpbnRvIHNvY2thZGRyICouCiAgICAKICAgIFRoaXMgaXMgYSBmb2xsb3ctdXAgZm9yIGNvbW1pdCBhMGFmMzg1LgoKY29tbWl0IDJlN2U5ZWRhMGIwZDYyYTc2NDVhOWE4ZjcwZWYzZmI2ZjNkZDY5NDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTm92IDMgMTE6MTc6NDggMjAxMSArMDEwMAoKICAgIEZpeCB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdhcm5pbmdzLgoKY29tbWl0IDM0NjJlYmNkZDBiN2MyOThjYjE1YzMwOTk3MzZmNGY5NTIyNTc4NDYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDI4IDE2OjA3OjE1IDIwMTEgKzAyMDAKCiAgICBSZW1vdmUgdGhvc2Ugc3VwZXJmbHVvdXMgcGFyZW50aGVzZXMgdGhhdCB0cmlnZ2VyIGEgY2xhbmcgd2FybmluZy4KCmNvbW1pdCAzZTVmZWRkM2U3ZDFlZjMxNjgzNjA0YmY3M2RjNTZlOTQ0Y2FkMzQ5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBOb3YgMyAwOTo0NToyNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIFVDRC1TTk1QLU1JQjo6c3lzdGVtU3RhdHMgYWZ0ZXIgMzAgZGF5cyBvZiB1cHRpbWUuCiAgICAKICAgIEFmdGVyIDMwIGRheXMsIHZhbHVlcyBmcm9tIC9wcm9jL3N0YXQgKG9uIExpbnV4KSBjYW4gZ2V0IGJpZ2dlciB0aGFuIDMyYml0cyBhbmQgc25tcGQgY2FsY3VsYXRpb25zIG1pZ2h0IHJlbmRlciBjb3VudGVycyBsaWtlIHNzQ3B1VXNlciBuZWdhdGl2ZSBvciB6ZXJvLCB3aGlsZSB0aGUgcmVhbCB2YWx1ZSBpcyBoaWdoZXIuIFRoZXJlZm9yZSB0aGUgY291bnRlcnMgc2hvdWxkIGJlIHRyYWNrZWQgYXMgdGhlIGxhcmdlc3QgaW50ZWdlciBhdmFpbGFibGUuCgpjb21taXQgMGZjODIyMWIyNDk4OGM0YWU2MTgwZWQ0MmI4NmI5ODUyZmQ1ODZhZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMiAyMjo1OTowOCAyMDExICswMTAwCgogICAgZHNrSW5kZXggd2FzIG9mZiBieSBvbmUKCmNvbW1pdCBhNWIyODgyOWU2NGQ1ZjNiODdlNGI5YjFlZjhjYzIwNGYzM2E2MWI3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIxOjI1OjA3IDIwMTEgKzAxMDAKCiAgICBTb2xhcmlzIG5lZWRzICRBV0sgdG8gZ2V0IGEgdXNhYmxlIG5hd2sKCmNvbW1pdCAyODAxYTIxMzlmMjcwMjFlMWFiMTVlMzYyZTJkM2Q2MjRmZmFhNDk0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo1NTo1MyAyMDExICswMTAwCgogICAgUGF0Y2ggIzM0MDYzNjQ6IEZpeCB1bnN0YWJsZSBkYXRhIGZvciBOZXRCU0QuCgpjb21taXQgODIxYTU4ZDExMmQ3YWM0OTUxNDllMjYyZDcwNDQxMmJhMjgwMDQzOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMzEgMjI6NDM6NTIgMjAxMSArMDEwMAoKICAgIEZpeCBpcHY2IHN0YXRpc3RpY3MgbG9vcGluZyB0b28gZmFyIHdoZW4gc2Nhbm5pbmcgaW50ZXJmYWNlcy4KICAgIEZpeCBUQ1Agc2Vzc2lvbiB0YWJsZSByZXBlYXRpbmcgZGF0YSBmcm9tIGZpcnN0IGVudHJ5IGZvciBhbGwuCgpjb21taXQgMzQ5NTkxZDAzZTE3YTU1YjQzZWFjYzZhNjg3YjAyZmQ4ZDRlOTUyOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIE1vbiBPY3QgMzEgMDg6NTk6MzcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgcGVybCBzdXBwb3J0IHdpdGhvdXQgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzLgoKY29tbWl0IDFlYzcxMTBlNzJiY2UxNTYxZjc0NjUxNzQ1OWQ2ZjA0MzAxNmI2MGUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDMwIDE5OjA1OjMwIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIHRoZSBhc24xIHRlc3QgcGFzcyBldmVuIGlmIHN1cHBvcnQgZm9yIG9wYXF1ZSB0eXBlcyBhcmUgcmVtb3ZlZC4KCmNvbW1pdCA2ZDI2OTE4YWY1NWFhMzY2MmE3MjA1NDJkZTc3YmJmMzliMGEzZTkxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAyOSAwODozNDozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERpc2FibGUgdGhlIHN1cHBvcnQgZm9yIGludGVnZXI2NCBpbiBwYXNzIHNjcmlwdHMgaWYgY29tcGlsaW5nIHdpdGhvdXQgb3BhcXVlLXNwZWNpYWwtdHlwZXMuCgpjb21taXQgMjliZjY5ZDcwNDI0ZjM1OWQ5Yzg3ZjA3YTk2NGEwOTk0MTU2NDlhNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KICAgIAogICAgVGhpcyBpcyBhIGJhY2twb3J0IG9mIGNvbW1pdCA5ZjY1M2Y3LgoKY29tbWl0IDJjYzk1MDRiOWJiODYyNWI5NGJlNmNkYTdlNjA5OTNkMDU5Y2Q5MjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjAxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0Mjg1MDY6IEZpeCBuZXRzbm1wX2dldGhvc3RieWFkZHIoKQogICAgCiAgICBUaGlzIHBhdGNoIHNob3VsZCBmaXggdGhlIHJlZ3Jlc3Npb25zIGludHJvZHVjZWQgYnkgY29tbWl0IDg1ZDk2YzQgKE1heSAxMywgMjAxMSkuCgpjb21taXQgOWI0MjdiMzUzZjFjZWI4ZmU4N2U2ZmM4ZWQzYjZjZmFiM2NlN2YyMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBPY3QgMjcgMDg6MjA6MDAgMjAxMSArMDIwMAoKICAgIE1pbkdXOiBBdm9pZCBjb25mdXNpb24gYmV0d2VlbiBNaW5HVydzIGtpbGwuZXhlIGFuZCB0aGUgU3lzSW50ZXJuYWxzIHBza2lsbC5leGUKCmNvbW1pdCAyYzQ1ZjkyY2ZjYjViMDVlMDQ5MjI2YTVhNzg4M2EwYjEwNjAxMWFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAxMDo0MjoyOSAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHBhc3NpbmcgYSBjb25zdCBwb2ludGVyIHRvIGEgZnVuY3Rpb24gYWNjZXB0aW5nIGEgbm9uLWNvbnN0IHBvaW50ZXIuCgpjb21taXQgMjc1ZDIzZWRmZGViZTA1NzdiMDg0MjFlNGM2YzkzNmFlMzliN2ZkYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MzM6MDkgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzZXQtYnV0LW5vdC11c2VkIHZhcmlhYmxlcwoKY29tbWl0IDQ0OTVlMTdjMDc4YWM2OTk3YTljN2ZhMWE4OGRiMDY0NGU5MTk0OTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDA5OjMyOjQ2IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0Cgpjb21taXQgMTM5NTJmNmJlZTlmNDA4ODY3YWI2ZDJmZGZkZGU0ZjI4NDA3NDk1NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDI2IDE0OjA1OjE2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBmcm9tIFNpZGRoZXNoIFBveWFyZWthcjogcHJvcGVybHkgY2xlYW4gdXAgb2xkIHJlcXVlc3RzIGluIGEgc3ViYWdlbnQgd2hlbiB3ZSByZWNvbm5lY3QgdG8gbWFzdGVyLgogICAgCiAgICBBbiBzbm1wIHN1YmFnZW50IGxpbmtlZCBhZ2FpbnN0IG5ldC1zbm1wLWxpYnMgbWF5IGNyYXNoIGlmIGl0IGhhbmRsZXMgYQogICAgcmVzcG9uc2Ugd2hpY2ggaGFzIG1hZ2ljIHJlZmVycmluZyB0byBhbiBvbGRlciBkaXNjb25uZWN0ZWQgbWFpbiBzZXNzaW9uLiBUaGlzCiAgICBtYXkgaGFwcGVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICBhdHRlbXB0cyB0byBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgb24gcmVjb25uZWN0aW9uIG9mIHRoZSBkaXNjb25uZWN0ZWQgbWFzdGVyCiAgICBzZXNzaW9uLgoKY29tbWl0IGFlMDUyNDcyYjIyNzIwZDA4MzY5ZTg1MTI3ZGIyMTQyNDVkZjJlM2YKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIE9jdCAyNSAxNjoxNToxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogcGVybDogZml4ZWQgc2VnbWVudGF0aW9uIGZhdWx0IHdoZW4gaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbHMuCiAgICAKICAgIFdoZW4gbmV0c25tcF9yZWdpc3Rlcl9oYW5kbGVyIGZhaWxzLCBpdCBmcmVlcyBpdHMgcmVnaW5mbyAtPiBuc2Focl9ERVNUUk9ZIChhbmQgYW55IG90aGVyIGZ1bmN0aW9uKSBtdXN0IG5vdCBkZXJlZmVyZW5jZSBpdC4KCmNvbW1pdCBjMTk5YmY5MWI2MjM5ZjI2YjJhYWIzNGU4NTc1ZTBmMGRmOWNkZTliCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBPY3QgMjQgMTQ6MjU6MjggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiB4ZnMsIGpmcyBhbmQgdnhmcyBmaWxlc3lzdGVtcyBhcmUgbm93IHJlY29nbml6ZWQgaW4gaHJTdG9yYWdlVGFibGUKCmNvbW1pdCA3NDdmZGM3MWU2NGQwOWUwODA5MjhlYmJiNGQwNGNiZGUzOTA2Nzk5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgNSAxNTo1Nzo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IExvd2VyZWQgc2V2ZXJpdHkgb2YgJ2Vycm9yIGZpbmRpbmcgcm93IGluZGV4IGluIF9pZlhUYWJsZV9jb250YWluZXJfcm93X3Jlc3RvcmUnIG1lc3NhZ2UuCiAgICAKICAgIFRoZSBtZXNzYWdlIGlzIHNob3dzIHVwIHdoZW4gc25tcGQgaXMgc3RhcnRlZCBhbmQgdGhlcmUgaXMgZGlmZmVyZW50IHNldCBvZiBuZXR3b3JrIGludGVyZmFjZXMgdGhhbiBpdCB3YXMgd2hlbiBzbm1wZCB3YXN0IGxhc3Qgc3RvcHBlZC4gVGhpcyBpcyBjb21tb24gb24gcHBwLXNlcnZlcnMgb3IgdmlydHVhbCBob3N0cy4KCmNvbW1pdCAyNTBmNjk4ZTU5ZWFiOWYxZmZkMzMyZmY1OWZkYjcyZWEwZGYwNmZmCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyMyAwODo1MToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IE1ha2UgdGhlIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGNvZGUgd29yayBhZ2FpbgogICAgCiAgICBQcmV2aW91c2x5IHRoZSB0cmFuc3BvcnQgaW5oZXJpdGFuY2UgcHJvY2Vzc2luZyBjb2RlIHJhbiB3aXRoCiAgICBORVRTTk1QX0ZFQVRVUkVfQ0hFQ0tJTkcgc2V0LiBJbiB0aGlzIG1vZGUgdGhlIGZpbGUgbmV0LXNubXAvZmVhdHVyZS1kZXRhaWxzLmgKICAgIGlzIHJlcXVpZXJlZC4gVGhhdCBmaWxlIGlzIGNyZWF0ZWQgZHVyaW5nIHRoZSBmaXJzdCBtYWtlIHJ1biwgYW5kIHRoYXQgaGFwcGVucwogICAgYWZ0ZXIgY29uZmlndXJlIGlzIHJ1bi4KICAgIENoYW5nZSB0aGlzIHRvIHVuZGVmaW5lIE5FVFNOTVBfTUlOSU1BTF9DT0RFLCBlZmZlY3RpdmVseSB0dXJuaW5nIG9mZiBmZWF0dXJlCiAgICBzdXBwb3J0IGR1cmluZyB0cmFuc3BvcnQgY29uZmlndXJhdGlvbiBpbiBvcmRlciB0byBtYWtlIGl0IHdvcmsgYXQgYWxsLgoKY29tbWl0IDZlZjY5MDc2NDIyNDdjNjYzYjliODk2NGI5ZmQ0NGEyMTFkYmNhYTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgT2N0IDIwIDIwOjMwOjU0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDA4Mzk4OiBGaXggYSBtZW1vcnkgbGVhayBpbiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLgogICAgCiAgICBUaGlzIG1lbW9yeSBsZWFrIHdhcyBpbnRyb2R1Y2VkIHZpYSBjb21taXQKICAgIDliZjNkOTZkOTZhOGVjZDRhNWZjMzVjMzI2ZGM5Mzc0NjcwMDJiNmM6IEluaXRpYWwgSEFMCiAgICBpbXBsZW1lbnRhdGlvbiBvZiBGaWxlU3lzdGVtIGluZm9ybWF0aW9uIChNYXJjaCA3LCAyMDA4KS4KCmNvbW1pdCBjZjgyYjg5NGIyMjE3YzI2ZWRjNmYxMzU2MzUxYzkzMjQxNTYwNGUyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU2F0IE9jdCAxNSAxNDo0NTowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAzNDIzOTE1OiBDaGFuZ2UgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBiYWNrIGZyb20gMCB0byA1CiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCB2aWEgY29tbWl0IDZjYWMwNTAgKE1heSA1LCAyMDExLAogICAgYWRkZWQgc3VwcG9ydCBmb3Igc3BlY2lmeWluZyB0aGUgZGVmYXVsdCBudW1iZXIgb2YgcmV0cmllcyBpbgogICAgc25tcGQuY29uZikuCgpjb21taXQgYzExYWRhYTEyOTE1YWJmZWU2MjliYjZjMDI2YzIxZjIxODViMjE2ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTcgMTA6MjQ6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IGNvbXBpbGluZyB0aGUgaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiB3aXRoIHRoZSBNaW5HVyBnY2MgY29tcGlsZXIgdHJpZ2dlcnMgd2FybmluZ3MgYWJvdXQgInByYWdtYSBjb21tZW50Ii4KCmNvbW1pdCBiMTdhNzJhNzkzNDgzYWVlNGE1YmIyZjJlMmM3ZjRmZDg2OTgxN2U2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyMjoyMCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgdGhlIFBBQ0tBR0VfKiBtYWNyb3MgZGVmaW5lZCBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhdXNlIHRyb3VibGUgd2hlbiBpbmNsdWRpbmcgdGhpcyBoZWFkZXIgaW4gYSBwYWNrYWdlIHRoYXQgdXNlcyB0aGUgR05VIGF1dG90b29scy4KCmNvbW1pdCA2NjRkM2FlMTA3ZDc1NDA1MWI4YzQyMjc5ZDQ1OWFhNTdhMWJlMWMzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNjo0NzoxNiAyMDExICswMjAwCgogICAgTWluR1csIGh3X2ZzeXM6IFVzZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmllcnMgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYW4gaXNzdWUgaW50cm9kdWNlZCBpbiBjb21taXQgNzZmZjI1ZC4KCmNvbW1pdCAyMTFkY2I0OTMwNjU2MWUzNWJhM2MyMTNiZTdjZmEyNTdiNDBhOGU1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxNTo1Mjo0MyAyMDExICswMjAwCgogICAgQXZvaWQgdGhhdCBnY2MgNC42IGNvbXBsYWlucyBhYm91dCBzZXQgYnV0IG5vdCB1c2VkIHZhcmlhYmxlcwoKY29tbWl0IDlmNjUzZjczZTVhYTcwZjBiZWYxMTc0NjMyZTk1NTk0Zjg3ZjY2OWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDEzOjAyOjI1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGRfc3FsOiBBdm9pZCB0aGF0IGEgbGlua2VyIGVycm9yIGlzIHRyaWdnZXJlZCBvbiBzeXN0ZW1zIHdoZXJlIG15X3Byb2duYW1lIGlzIG1pc3NpbmcgaW4gbGlibXlzcWxjbGllbnQgKGUuZy4gRmVkb3JhIDE1IGFuZCAxNikuCgpjb21taXQgNGM4M2I5MjI5YTc0NTRmMzRmNmZmNzVmNjllNjdlNDAzMGM0MTliNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNTo1ODo0NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2V0IHRoZSBycGF0aCBmb3IgbGlicGVybC5zbyBpbiBsaWJuZXRzbm1wbWlicy5zbyBzdWNoIHRoYXQgdGhlIGR5bmFtaWMgbGlua2VyIGNhbiBmaW5kIGxpYnBlcmwuc28gd2l0aG91dCByZXF1aXJpbmcgdGhlIHVzZXIgdG8gbW9kaWZ5IHRoZSBkeW5hbWljIGxpbmtlciBzZXR0aW5ncy4KICAgIAogICAgVGhpcyBjaGFuZ2UgaW4gYWdlbnQvTWFrZWZpbGUuaW4gaXMgbmVjZXNzYXJ5IG9uIHRoZSA1LjUgYnJhbmNoIGFuZAogICAgbGF0ZXIgYnV0IG5vdCBvbiB0aGUgNS40IGJyYW5jaC4gVGhhdCBpcyBiZWNhdXNlIHRoZSA1LjQgYnJhbmNoIHVzZXMKICAgIGFuIG9sZGVyIHZlcnNpb24gb2YgbGlidG9vbCB0aGF0IHByb3BhZ2F0ZXMgdGhlIHJwYXRoIG9mIGRlcGVuZGVudAogICAgbGlicmFyaWVzLiBUaGlzIGlzIGNhbGxlZCBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY3kgdHJhY2tpbmcgaW4gdGhlCiAgICBsaWJ0b29sIG1hbnVhbC4gVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHByZXNlbnQgaW4gbGlidG9vbCB2ZXJzaW9uIDEKICAgIGJ1dCBub3QgaW4gbGlidG9vbCB2ZXJzaW9uIDIuIEZvciBtb3JlIGJhY2tncm91bmQgaW5mb3JtYXRpb24gYWJvdXQKICAgIGR5bmFtaWMgbGlicmFyaWVzIGFuZCBycGF0aHMsIHNlZSBhbHNvIHRoZSBkb2N1bWVudCB3aXRoIHRoZSB0aXRsZQogICAgIlJwYXRoSXNzdWUiIG9uIHRoZSBEZWJpYW4gd2lraSAoaHR0cDovL3dpa2kuZGViaWFuLm9yZy9ScGF0aElzc3VlKS4KCmNvbW1pdCA4OTI1YzkxMmQyNjM5NzUyYTg0YmNmZmVlZjFiNzBhODEwMjY0NDliCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE0OjIxOjI4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogSE9TVC1SRVNPVVJDRVMtTUlCOiBBZGQgbWlzc2luZyBicmFjZSBpbiBhIGRlYnVnIHN0YXRlbWVudAoKY29tbWl0IDc2ZmYyNWQ5YmY5NzU3OWU3MjEzMTAyMDY1ZmQ1MDk2ZjA0OWE0YzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTQ6MTM6MTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3RvcmFnZVRhYmxlOiBmaXggYnVnIGluIGhhbmRsaW5nIGxhcmdlIGZpbGVzeXN0ZW1zLCB3aGVyZSBsYXJnZSBtZWFucyBhYm92ZSA4IFRCICg9IDIqKjMxICogNDA5NiBieXRlcykuCiAgICAKICAgIFRoaXMgcGF0Y2ggZml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQKICAgIDcxZDgyOTNmMzg3YTZjZDY2YmIwZGJiMTNjMGY1MDE3NGQyZTY3OGIuCiAgICBGb3IgdGhlIG9yaWdpbmFsIGJ1ZyByZXBvcnQsIHNlZSBhbHNvCiAgICBodHRwczovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyLz9mdW5jPWRldGFpbCZhdGlkPTExMjY5NCZhaWQ9MzQxOTgyNSZncm91cF9pZD0xMjY5NC4KCmNvbW1pdCA4NjYwMzNkYjk5MDRmZmIxMjAzZjI4M2Y4MzgwOTJlNGNmNjhkZTZiCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDA3OjMzOjI3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNwdXJpb3VzICNlbmRpZiB0aGF0IHNlZW1zIHRvIGJlIHRoZSByZXN1bHQgb2YgYSBtaXNtZXJnZS4KCmNvbW1pdCAyMGY0ZjMyNjdlZTIwZDU1NzA1YjdhNDM3ODk4NzljMTAzZjk2NjIwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE9jdCA2IDAwOjA4OjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIG1pc3NpbmcgZW5kIGNvbW1lbnRzIHRvIGZlYXR1cmUgaWZuZGVmcy4KCmNvbW1pdCBlNWRlMmNjNTdiZjMwNGYzMzIwY2FkMDAzNGQyZWEyZDhhZWRjNDM2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA5OjE1OjEwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogTG9nIGEgbW9yZSBkZXRhaWxlZCBlcnJvciBtZXNzYWdlIGlmIGVtYmVkZGVkIHBlcmwgaW5pdGlhbGl6YXRpb24gZmFpbHMKCmNvbW1pdCA1ZWVmOTk5MGRlMjhmNjMxMTFlNmMwOTNiZTBmM2M3YWUyZDUxM2ExCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ1OjQ5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBBZGQgYWdlbnQ6OnVwdGltZSgpCgpjb21taXQgNjgxMGVkNDJmOWJjNTYwNzUwZDZkYmZiN2U1MGI2ZTJhYzExODk5YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTE6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IEN5d2luOiBhZ2VudDogSW1wbGVtZW50IGdldF91cHRpbWUoKSBzdWNoIHRoYXQgcXVlcnlpbmcgSE9TVC1SRVNPVVJDRVMtTUlCOjpoclN5c3RlbVVwdGltZSByZXR1cm5zIGEgbm9uLXplcm8gdmFsdWUuCgpjb21taXQgOTcxNzJiMzExZDIwZjQ0NDFjN2E3ZTkwMDkyYjU5YzFlMGRhOTlmNwpBdXRob3I6IFRob21hcyBKYXJvc2NoIDx0amFyb3NjaEB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDA4OjQ2OjM5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBQQVRDSDogMzQxODY0OTogSE9TVC1SRVNPVVJDRVMtTUlCOiBVc2UgcGNsb3NlKCkgaW5zdGVhZCBvZiBmY2xvc2UoKSB0byBjbG9zZSBhIHBpcGUuCgpjb21taXQgNjU5MTkzN2FkYjg1MDAwYzI3MDY5YzRiZTg0Y2Y0Njg4ODM4ZWJjZApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNjoxODowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IEFkZCBkZXBlbmRlbmNpZXMgb24gQEZFQVRVUkVUQVJHU0AgdG8gbWFrZSB0aGUgc3VidGFyZ2V0IHdvcmsgYXMgd2VsbC4KCmNvbW1pdCBiOWM4MDEyZWMwMzViYzA4NGYxNzU4NzZmZWNjMzc1MTk1ZjliZTgxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE0OjAyOjU4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIHRhcmdldCB0byBidWlsZCBhZ2VudHh0cmFwIGZyb20gdGhlIHRvcGxldmVsCgpjb21taXQgOTk1NjQ3YzBjZmUwMDQxMjI2MmNjNTc5N2JkZmFlOWQwMGI3MGM3NgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxNTo0NDozNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSB0aGUgdXNlIG9mIC1MIGZsYWdzIGZvciBpbnRlcm5hbCBsaWJyYXJpZXMgYXMgaXQgY29uZnVzZXMgbGlidG9vbC4KCmNvbW1pdCA5M2RjMTIzNWEwZGI1OGZmZDI5NjE3Y2ZmMDBkYzExMjYzNzgwMjAyCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDExOjMxOjQ2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBtYWtlIGFwcHMgd29yayBhZ2FpbgogICAgCiAgICBhcHBzIGluY2x1ZGUgc25tcHRyYXBkIGFuZCB0aGF0IHJlcXVpcmUgdGhlIGFnZW50IGxpYnJhcmllcyBhcyB3ZWxsLgoKY29tbWl0IGJhNDE0ODhlZDQ0Y2QyM2MyNTk2M2Q0ZmM1NmM0NzY4NTNiMmFiNTkKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTE6Mjk6MzMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBXaGVuIHlvdSBzYXkgbWFrZSBsaWJzIHlvdSBleHBlY3QgYWxsIHRoZSBsaWJzIHRvIGJlIGJ1aWx0LgogICAgCiAgICBUaGlzIGlzIGRlbW9uc3RyYXRlZCBieSB0aGUgc25tcHRyYXBkIHRhcmdldCBhdCB0aGUgdG9wIGxldmVsIHdoaWNoIG9idmlvdXNseQogICAgZXhwZWN0ZWQgYm90aCBsaWJzIHRvIGJlIGJ1aWx0IGFuZCBzbyBmYWlsZWQgdG8gY29tcGlsZSBiZWZvcmUgdGhpcyBwYXRjaC4KCmNvbW1pdCAzMDU3YzczZTA5MzQ3M2JlNDYyNTRiY2RmYjRjYTc4OGU0MzJkMWI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBTZXAgMzAgMDc6MzI6NTIgMjAwOCArMDAwMAoKICAgIE5FV1M6IGJ1aWxkaW5nOiBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluIE1ha2VmaWxlLgogICAgJ21ha2UgLWogPE4+JyBzaG91bGQgd29yayBub3cuCiAgICAKICAgIEJhY2twb3J0IHRoaXMgdG8gVjUtNCBhcyBpdCBpcyBuZWVkZWQgZm9yIGNvcnJlY3Qgb3BlcmF0aW9uIGluIHRoZSBzaW5nbGUKICAgIHRocmVhZGVkIGNhc2Ugb2YgbWFrZSBtaWJsaWIgYXMgd2VsbC4KCmNvbW1pdCA2ZWFlMzQwZmEyYTY0MDg2NTkyOTgyY2M1MjczNWJjMDE0ODdkOTc4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE9jdCAxIDE5OjMzOjUwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogU2lsZW5jZSBsaWJic2QgMC4zLjAgbmFnZ2luZwogICAgCiAgICBJZiB5b3UgaGF2ZSBsaWJic2QgMC4zLjAgaW5zdGFsbGVkIHRoZW4gdGhlaXIgdmVyc2lvbiBvZiBubGlzdC5oIHdhcm5zIGFuZAogICAgdHJpZXMgdG8gbWFrZSB5b3UgaW5jbHVkZSBic2Qvbmxpc3QuaCBpbnN0ZWFkLiBUaGUgcHJvYmxlbSBpcyB0aGF0IHdlIGRvbid0CiAgICBuZWVkIHRoYXQgY29tcGF0aWJpbGl0eSBsaWJyYXJ5IGFzIHdlIGtub3cgaG93IHRvIGRvIGl0IG91cnNlbGYgc28gaXQgYmVjb21lcwogICAgcHVyZSBuYWdnaW5nLiBUaGlzIHBhdGNoIGFkZHMgYSBkZWZpbmUgdGhhdCBjaGFuZ2VzIHRoZSB3YXJuaW5nIGludG8gYW4KICAgIGVycm9yIGFuZCB0aGVuIGZpZ3VyZXMgb3V0IHRoYXQgdGhlcmUgaXMgbm8gdXNhYmxlIG5saXN0LmggYW5kIGlnbm9yZXMgaXQKICAgIGZvciB0aGUgZnV0dXJlLgoKY29tbWl0IGFjMzhjYjUzMWJlZTUwZWRjOGQ0YzgzNGYzMDA1ZjU5OTJjNzcxZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDE5OjAzOjAyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBFbmFibGUgc2VuZGluZyBTTk1QdjIgdHJhcHMgd2l0aCBhbiBlbXB0eSB2YXJiaW5kIGxpc3QKCmNvbW1pdCBhNzVkZTI5NzE1MjdhYzJkMmU4MTIwMjQyOTg2MDJiYjI0MTJmMzM3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMDo0MTo0NCAyMDExICswMjAwCgogICAgcGVybC9TTk1QL1NOTVAueHM6IFVwZGF0ZSBlbWFjcyBtb2RlbGluZQoKY29tbWl0IDg0OGY2MzAwZWZlMzg0OTJmYjQ1NDQ1MWEwMzBmMGI3ZTZmZjhjOWQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCgpjb21taXQgYzEzNzQ0NzNlY2Q4ZWM5ZTAzMTAwMTM4NjFlZTE4YzgzZTVkNmM1YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBTZXAgMzAgMDM6Mjk6MzYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFByb3RlY3QgdGhlIHVzZSBvZiAkT1NUWVBFIHRvIGVuc3VyZSB0aGF0ICd0ZXN0JyBnZXQgZW5vdWdoIHBhcmFtZXRlcnMuCgpjb21taXQgN2U5N2EyMDYzM2E1N2VhZTM5ZDAxNWIyMzMzOTQ2M2MzMmY1Zjg0OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTA6MjI6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IENvbnZlcnQgc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jIGludG8gdHdvIHVuaXQgdGVzdHMKCmNvbW1pdCA5YzBkZDk4MTc2NDU3MzQyZmZmYWE1ZTc0ZDgwMmUzMTQ1ZWQ3MGU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAwODo1NjoxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKCmNvbW1pdCA1ZmQyNmU0ZmEzZTAwMGVhOWM4MWMzOGFiOTc1Yjc5NDZlZmUyMTU3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAyOCAxNzo0OTo1NSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkgZmFpbHVyZSB0cmlnZ2VycyBhIGRvdWJsZSBmcmVlLgogICAgCiAgICBGaXhlcyBhIHJlZ3Jlc3Npb24gaW50cm9kdWNlZCB2aWEgY29tbWl0CiAgICBhYTRkNDdjMjYwOWU1MjgxOGM5Y2RmMWE4ZTIyMDVkZTlhMzM1YTBhIChzdm4gcjE5NTE1KS4KCmNvbW1pdCBkMjI1MmQwMTY2OTM4MDczMjZmNzJiNjYxMjM2NDlkZWEwMGFmOTE2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVxdWlyZSBhIHNlbWljb2xvbiBhZnRlciBPSygpLCBPS0YoKSBhbmQgUExBTigpCiAgICAKICAgIEFsc28sIGxldCBPS0YoKSBlbWl0IGEgc2luZ2xlIGxpbmUgb2Ygb3V0cHV0IHN1Y2ggdGhhdCBhbGwgb3V0cHV0IGl0CiAgICBwcm9kdWNlcyBpcyB2aXNpYmxlIGluIHRoZSBvdXRwdXQgb2YgIm1ha2UgdGVzdCIuCgpjb21taXQgMTQyMTkyNGI0ODUyMTQyMTkyYzViYjllOTNkZGJmZWQ2OWU5MDhmYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMjEgMjI6MjA6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIHdhaXRpbmcgaW5kZWZpbml0ZWx5IGlmIGEgc2Vzc2lvbiBoYXMgdGltZW91dCB6ZXJvCgpjb21taXQgNWYyN2Y0Zjc0YWUyYmQ1YmFmNTAzY2YzMDZiNGY5YTI4NDFhNTdjZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDozMjowMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IHJ1bm5lcgoKY29tbWl0IDA5NzAzOTU4Y2M1ZWE4NDU5MjlhZTE5ZWY5ZTA4MDRhZWNhYTUxMmUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDEyOjQyOjQxIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBdm9pZCBmYWxzZSBuZWdhdGl2ZSBmb3IgVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlIGNhdXNlZCBieSB0aGUgdGVzdCByZXN1bHQgYmVpbmcgcHJlc2VudCBpbiB0aGUgaGV4IGR1bXAgKCJtb3N0bHlfaGFybWxlc3MiKQoKY29tbWl0IDQzOTMwMDI3OWY2ZjMxNDM4NjM4ZDJmMjIyYzI0YzNjODQxZmE2YWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDI3IDExOjE2OjMyIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWljcm8tb3B0aW1pemUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMKICAgIAogICAgVGhpcyBtYWtlcyB0aGUgYWdlbnQgbW9kdWxlIGRlcGVuZGVuY3kgYW5hbHlzaXMgY2FycmllZCBvdXQgYnkgdGhlCiAgICBjb25maWd1cmUgc2NyaXB0IHNsaWdodGx5IGZhc3RlciwgZXNwZWNpYWxseSBvbiB0aG9zZSBzeXN0ZW1zIHdoZXJlCiAgICBmb3JrKCkgaXMgZXhwZW5zaXZlIChDeWd3aW4pLgoKY29tbWl0IGJiYzY4MDAwNGExMzc2MDM4ZGZkYzQxNzJkYmU3YjllMzExZmJhNjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDI2IDEwOjE0OjQ1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0ZXN0IFQxMzBzbm1wdjF2YWNtZ2V0X3NpbXBsZSBwYXNzCgpjb21taXQgNzBiMDZjZjc4OTIwOGVhYTg5MGJmYmNkNjM4YmRiNzc1ZjgxNzA1NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6NTA6NTcgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IHRlc3Rpbmc6IHBlcmw6IEZpeCBhbiBpbmNvcnJlY3QgbWVzc2FnZSBwcmludGVkIHdoaWxlIHJ1bm5pbmcgdGhlIFBlcmwgbW9kdWxlIHJlZ3Jlc3Npb24gdGVzdHMKCmNvbW1pdCA3MGJjYzhkZTJkMGZjOTJiYmI4NDgxODIzNjMwZmFiOWJjODdhZjc1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAxNiAxNjoxNDoyNCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE9idGFpbiB0aGUgTVNZUyBwYXRoIGZyb20gdGhlIGVudmlyb25tZW50Cgpjb21taXQgNjI2Mjc1ZTJkMWFjYWZhZTcxNDRhMzNlZDMwMWE0MGY1OTZiMzdiMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBTZXAgMTQgMTM6MTQ6MTcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IFJlbW92ZSBzdXBlcmZsdW91cyBsaW5rIGxpYnJhcmllcyBmcm9tIHByb2plY3QgZmlsZXMgKCouZHNwKQoKY29tbWl0IDM4ZmMzY2FhOWVlYjM4MDAyNTRiNGY2YWQ2ZjhmNDc2NGMwZjgzZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDIwIDA5OjM0OjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfY2FsbGJhY2tfYWNjZXB0KCkgcmV0dXJuIC0xIChmYWlsdXJlKSBpbnN0ZWFkIG9mIDAgKFNURElOX0ZJTEVOTykKCmNvbW1pdCA2YzhjN2U4YWNhOGZjMmVlYjUyMDEwYWUzZTlmZWU2ZGQ4M2VmNzgwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAxMyAwOTo1ODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIG9ic29sZXRlIHNubXBfZ2V0X2ZkX2Zvcl9zZXNzaW9uKCkgZGVjbGFyYXRpb24KCmNvbW1pdCAwODYwZDExZmQ4ZmM1ZGJkYWFhZTIyNjFmYWUyYzA3ZmI5YzJjODJkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjU0OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBBdm9pZCB0aGF0IHRoZSB0eXBlZGVmcyBpbiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNvbmZsaWN0IHdpdGggdGhvc2UgaW4gPHN0ZGludC5oPiBmcm9tIHRoZSBtc2ludHR5cGVzIHByb2plY3QKCmNvbW1pdCBmOGEwMzZmNjNmZjY4ZjA4MzQzNjEyMGUwYWJkNDc4YjY5MmEyZjYxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCA4IDEzOjIxOjA2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBXaGVuIGxpbmtpbmcgd2l0aCBPcGVuU1NMLCBsaW5rIHdpdGggdXNlcjMyLmxpYiB0b28KCmNvbW1pdCA4MzZhMjNlMTBjYTgxMGMzODk5OTAyZDMyNTg3NjE2YTlkMTIwM2RmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEp1bCAxNCAxODozODoxMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogTVNWQzogTGluayB3aXRoIHByb3BlciBsaWJlYXkzMiBsaWJyYXJ5Cgpjb21taXQgN2IwN2ZkNmNkZWY0OWVjN2JiMDRiMTY2ZTJhNGZiYjM3YjU4Mjg0MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMToxMDozOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUmVtb3ZlIGFuIGluY29ycmVjdCBjb21tZW50IGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2gKCmNvbW1pdCA5OGY2ZDI5ZDk4MWZmOGU2MDc2MDBjNjNkYWRiMjQwNTM1NjI5ODA3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjQ5OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBNYWtlIElTREVGSU5FRCgpIGNoZWNrIGZvciBhbiBleGFjdCBtYXRjaCBpbnN0ZWFkIG9mIGEgcHJlZml4IG1hdGNoCgpjb21taXQgNTJjZDAwMzFhMzFmNjkyZjEzMjYzYTk0YzMzNWQwNmJlMTQ1NDgwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IE1ha2UgdGhvc2UgcmVncmVzc2lvbiB0ZXN0cyBwYXNzIGZvciB3aGljaCBTTk1QQ09ORlBBVEggYW5kL29yIFNOTVBfUEVSU0lTVEVOVF9ESVIgbWF0dGVyCgpjb21taXQgZjVjZDg5YmQzMzU2ZGQ3NGUxNTU2YzBiNTA5NjZhNjQzZjE5MjA4NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IEZpeCBhIHJhY2UgY29uZGl0aW9uIGluIHRoZSB0ZXN0IGZyYW1ld29yawoKY29tbWl0IGRlZWRkNTJjODM0YTY0NDg4NTJhMDY3ODU1MzZlMTM4NjU5Njk2OTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6MTI6NTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiBTdXBwb3J0IHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJlIG9mIHJlY2VudCBTaGluaW5nIExpZ2h0IE9wZW5TU0wgYmluYXJ5IGRpc3RyaWJ1dGlvbnMKCmNvbW1pdCBkNTViZDRlMDU0OWYwM2I2ZmQzMjU2MmMyYWE3ZmUzOTI3MmE5ZWY3CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxOSAyMDExIC0wNzAwCgogICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0Cgpjb21taXQgYWMyYWVkM2M5NGJiMmViYjQ3M2FmMGExZTIwZjA1NjFhZDYyOTk1NgpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBTZXAgMjggMDY6NTU6MTEgMjAxMSAtMDcwMAoKICAgIHJlbW92ZSB0aGUgdjUuNyBmcm9tIHRoZSBmcm96ZW4gbGlzdAoKY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gU2VwIDI2IDIxOjQ5OjI3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQXZvaWQgdGhhdCBzbm1wZCBjcmFzaGVzIGlmIHN0YXJ0ZWQgb24gYSBzeXN0ZW0gd2l0aCBhbm90aGVyIE9wZW5TU0wgbGlicmFyeSB2ZXJzaW9uIHRoYW4gdGhlIG9uZSBpdCBoYXMgYmVlbiBidWlsdCB3aXRoLgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcuMSAtPiBWNS43LjIucHJlMgoKY29tbWl0IDgxMDE4NWFlMGIwY2QyYWQ0ZDQyNGExYmE3NzVlZjVjZWFmNTBmMDMKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgSnVuIDIgMDk6MjQ6MTkgMjAxMiAtMDcwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjcuMi5wcmUxCgpjb21taXQgNjI3MTQ3MWUwMTI4MmYzNjc1NzI0ZWFmMTM1OGNlYjBlOTVkZGQ0ZQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwODozMjo0MCAyMDEyIC0wNzAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMi5wcmUxCgpjb21taXQgZmNiNzgyYWE4ODkzMTM0Yzc0MTRhOTI2ZDkyNjg1OTRmNzI1YjkxNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFNhdCBKdW4gMiAwODozMjoxOCAyMDEyIC0wNzAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4yLnByZTEKCmNvbW1pdCBlM2JjZDg3YzcyZmNlYTc3MDZlODY4YjVhY2U3NTI5NjA5M2Y3NDk3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTQ6MDk6NDIgMjAxMiArMDEwMAoKICAgIEZpeCBkaXN0L3JlbGVhc2UgZm9ybWF0Cgpjb21taXQgZDgxM2NlMmVlZWZjNjgyMjljZmNhZjIwNjAzMjQ0Y2RkNmQwOWQzYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDE0OjA3OjUyIDIwMTIgKzAxMDAKCiAgICBGaXggZGlzdC9yZWxlYXNlIGZvcm1hdAoKY29tbWl0IGZhN2JkNTgxZTM3ODM2ODVkYjM5YzliNGVhZjg0N2JlNWFjODZmZDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MzoxMCAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMgoKY29tbWl0IDA3MzllMjM4MmQzMTE0NmFjYTMyMDUyNDRjZjcwNzg4YjQwYTQyOGQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MTo0NSAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnJjMgoKY29tbWl0IGQ5YTE1NDQ1YWE3NGY1MzE2YmZjNzExYzE1NTg0Njc4NzJjMjk1OGMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzo1MDoxMiAyMDEyICswMTAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnJjMgoKY29tbWl0IGJjYWJkMmM5NTQyZGJlYmQxZDMxOWI0NDk0NDEzYmRjY2EwNjYxNGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODozOCAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTYtcGF0Y2hlcwoKY29tbWl0IGI0NzM4OThjMGM1YWM5ZWI0N2M3YzA1YTNmNzQ1ZTRmZjJhNzZhYWEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMzozODoyOCAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzIKCmNvbW1pdCAxMzE0MjllNzA2MmZiYWE2NWI4MmFmZmVkMWZiOTJkZjJjMGNjODEzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6Mzg6MzggMjAxMiArMDEwMAoKICAgIFJlbGVhc2UgQ2FuZGlkYXRlIGZvciBWNS02LXBhdGNoZXMKCmNvbW1pdCAxYzgxMTBiMzNiODEwNWNhNjE5MDk0NWEzNWZlN2FlOTAzMjUyZDY4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXkgMzEgMTM6MjE6MzggMjAxMiArMDEwMAoKICAgIEF2b2lkIHBlcmwgdmVyc2lvbmluZyBwcm9ibGVtcyB3aGVuIHNldHRpbmcgdXAgdGhlIGJ1aWxkIGVudmlyb25tZW50Cgpjb21taXQgNTA4ZWNlMTZlNmY2ZjQ5NTYyZGEyMDQ3OTJhZTA2NDQyNjk5OTRkMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEzOjIwOjU4IDIwMTIgKzAxMDAKCiAgICBGaXggaGFuZGxpbmcgb2YgZGlzdC9yZWxlYXNlIG1lcmdlCgpjb21taXQgNWI4YTg1NDdiMWE0N2QyZjViMjA3ZjQ4ZjI0OTZlNDI0MWQ5MDJjNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjEwOjQ4IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgNmMzMjkxNGJmMjhkNjk1ZGYzNDlkY2EyNjllNDg4YjUwMTcwMDMxNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjA3OjIyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgOWY1YTgyYTVhZmRiYjNkYWViMmZkNDM3YTMwOWYwYjhkMzU3Y2Y0YgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDExOjA1OjM5IDIwMTIgKzAxMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucmMyCgpjb21taXQgMzkyMDNmMjk0NzdhM2JlZGYwMTJkNDExMzVkOGFiZDZiY2FkMDhiMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjU0OjI3IDIwMTIgKzAxMDAKCiAgICBkb2N1bWVudGF0aW9uIHVwZGF0ZSBmb3IgNS41LjIucmMyCgpjb21taXQgMTdlNzllZjBmYWQ3OTYwOWM1YmEyZmViNGU4YjllYjVkN2RiNjg4NgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ2OjExIDIwMTIgKzAxMDAKCiAgICBSZWxlYXNlIENhbmRpZGF0ZSBmb3IgVjUtNS1wYXRjaGVzCgpjb21taXQgNTgyMWJlNWJiYjQwMThkZWQyODJmYmJiZDQ4MzBjZjJlZWFkZDllMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgTWF5IDMxIDEwOjQ1OjU5IDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMgoKY29tbWl0IDNmMjExMWRlNjczM2EwNGUxMmQ5MTBkMzA2YTM0ZDY3MWUwMDg3NjIKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1heSAzMSAxMDo0NjoxMSAyMDEyICswMTAwCgogICAgUmVsZWFzZSBDYW5kaWRhdGUgZm9yIFY1LTUtcGF0Y2hlcwoKY29tbWl0IGNjZjhmZjJjNGRiNjAxMjJkNDEzMDJlNGFlYjcwMGUwYjg2ODEwNWYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSAyOCAxMDoxODo0MyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzUyNjU5OTogRG9uJ3QgaGFuZyBvbiByZXRyaWVkIGZhaWxpbmcgU05NUHYzIHJlc3BvbnNlcwoKY29tbWl0IGM4MWM4NDgzOTkwOTExZjQ3NDM1ZDMwMDUyNTVkOTFjMzdhYjkyYjIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDE0OjA5OjI2IDIwMTIgKzAyMDAKCiAgICBGaXggQlNEIHRoYXQgZG93bm5vdCBhbHdheXMgbGlrZSBJUF9TRU5EU1JDQUREUiAtIHNvIHJldHJ5IHdpdGhvdXQKCmNvbW1pdCBmZmNlMWYyZGMyZjhiMzFhYmQwMWY5M2IyNmRhNzhmNDcyNmExZTY0CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU3VuIE1heSAyNyAxNDowMzo1OCAyMDEyICswMjAwCgogICAgRml4IE9TIG1pc3NpbmcgTVNHX0RPTlRXQUlUIChBSVgpLiBCYWNrcG9ydCBmcm9tIDUuNwoKY29tbWl0IGM1NzUyMTY4NTAxODViNTY0NTRkYWQwMjUzZTMxNjQ5NzllMTM1MTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTdW4gTWF5IDI3IDEzOjU2OjAxIDIwMTIgKzAyMDAKCiAgICBGaXggbWlzc2luZyBpbmNsdWRlLiBGaXhlcyBTSUdTRUdWIG9uIEZyZWVCU0Q5IHg2NAoKY29tbWl0IDU4MDU4Nzg3NDljMDgwNjJkZWJmMGE5ZDc5OGQwOGZiOTE2Y2FhMmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gTWF5IDI3IDA2OjIzOjE5IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQWRkIG1pc3NpbmcgZGVidWcgdGFnCgpjb21taXQgZDFhNDJiYmNjN2IxNDczMGM5YTZkOTljNGYwNDcwOTc4NDNhNTQ5YgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXkgMjUgMDk6MDI6MjcgMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBSdW4gbGlidG9vbCAtLW1vZGU9ZmluaXNoIG9uIHRoZSByaWdodCBkaXJlY3RvcnkKCmNvbW1pdCAxZmJmMzM3MTFhMTllYWM5NzM5YWQyM2Y2ZjYyNTFlYWNjNDFmMWM0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXkgMjIgMTQ6NTQ6NDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IExpbnV4OiBQQVRDSDogMzUyNTk5ODogRG9uJ3QgdXNlIGFuIHVuaW5pdGlhbGlzZWQgdmFsdWUgaW4gZXJyb3IgbWVzc2FnZQoKY29tbWl0IDMyYzE2ODZiNjdkYzg1YzRhMTg5NTc2MzYzMDY1NjA5ZGZlZDVlNjEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1heSAyMiAxNDo1Mjo1NiAyMDEyICswMTAwCgogICAgQXR0ZW1wdCB0byBtYXJrIHJlbGVhc2UtY2FuZGlkYXRlIGJyYW5jaGVzIGFzIHN1Y2guCiAgICBPbWl0IGZpbmFsLXJlbGVhc2Utb25seSBzdGVwcyB3aGVuIHByZXBhcmluZyBwcmVOL3JjTiByZWxlYXNlcwogICAgKFJlbGllcyBvbiBhIHR3ZWFrIHRvIHRoZSBNYWtlcmVsZWFzZSBwZXJsIG1vZHVsZXMpCgpjb21taXQgNGM1NjMzZjE2MDNlNGJkMDNlZDA1YzM3ZDc4MmVjODkxMTc1OWM0NwpBdXRob3I6IFJvYmVydCBTdG9yeSA8cnN0b3J5QGZyZWVzbm1wLmNvbT4KRGF0ZTogICBNb24gTWF5IDE0IDExOjQwOjA2IDIwMTIgLTA0MDAKCiAgICBORVdTOiBzbm1wOiBCVUc6IDM1MjY1NDk6IENWRS0yMDEyLTIxNDEgQXJyYXkgaW5kZXggZXJyb3IgbGVhZGluZyB0byBjcmFzaAoKY29tbWl0IDY1ZGQ4M2MyMjU1ZWU1OGVkYmYwZTI1ODYzZTU1YjU4YTQxMTM2NzkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDIwOjMwOjQyIDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS42LjIucmMxCgpjb21taXQgYWM0YmM2NWUyOTA5ZjNiZDg1ZjMyZjA0YjUwNGZhNjVkMmY2NDU1MwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMjA6Mjg6MDYgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjYuMi5yYzEKCmNvbW1pdCBiNzQ5OTQ4NjQxOTUxMTllZGI2ZTE5Yzg1MTQ3ZmFjMDBiY2I5M2UzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAyMDoxMzo0NiAyMDEyICswMTAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5yYzEKCmNvbW1pdCA5MTM1MDA5MmM0NmU2NmQwNmQ3NDE0M2Y0ODE2NDczZGI0ZDI1MTYwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxOTo1NjozMyAyMDEyICswMTAwCgogICAgTWFyayB2ZXJzaW9uLXNwZWNpZmljIGNoYW5nZXMgX2JlZm9yZV8gcHVzaGluZyB0byBjZW50cmFsIHJlcG9zaXRvcnkKCmNvbW1pdCA3MjQxYWNjZDcwYjgyZDBmY2Q0NGQ1YTUyMzhiMmVlOTQ0NTkwMGRiCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzo1MzoxNyAyMDEyICswMTAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IDdjNzk2YTE1YTFkMWJiODVmZWVhOTQwYmQ0ZTM1MTY4Nzc5MjA5MTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjUwOjQ5IDIwMTIgKzAxMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucmMxCgpjb21taXQgMDdlMjY4YmZiNjRiMGVjNjQ1YjNmN2U4NzI2Njk4NGY5MjE3Y2YxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWF5IDcgMTc6NDQ6MzcgMjAxMiArMDEwMAoKICAgIG1ha2UgZGVwZW5kIGZvciA1LjUuMi5yYzEKCmNvbW1pdCAxNmVhYWY2YzNiYTE0NTk2Y2E5ZWZhZjRiMTE0ZjFiNzA5ZjQyYjY4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXkgNyAxNzoyOTowMyAyMDEyICswMTAwCgogICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUgZm9yIDUuNS4yLnJjMQoKY29tbWl0IGM3Mjk0NjllZjEyMTU0OTMwY2Y5ZDE1OTY3ZTE2MTg2ZmI0NDVmMzAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjI3OjIwIDIwMTIgKzAxMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnJjMQoKY29tbWl0IDE0MjU3MWQzY2VhMDhmMGMwNzJkMjRjMWQzOWE0M2M3NDQ2ZjhjZTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjAxOjAzIDIwMTIgKzAxMDAKCiAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAogICAgbW9kdWxlcyBtYXkgd2VsbCBiZSBkaWZmZXJlbnQgdG8gdGhlIHZlcnNpb24gYmVpbmcgYnVpbHQuCiAgICBUaGF0IHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkLgoKY29tbWl0IGViYTg2YjZmN2FmZjI2MWVlMGU2MTMzNGRmNzBkZTcxNTZlNWMzY2IKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1heSA3IDE3OjAxOjAzIDIwMTIgKzAxMDAKCiAgICBXaGVuIGJ1aWxkaW5nIGEgbmV3IHJlbGVhc2UsIHRoZSBpbnN0YWxsZWQgdmVyc2lvbiBvZiB0aGUgcGVybAogICAgbW9kdWxlcyBtYXkgd2VsbCBiZSBkaWZmZXJlbnQgdG8gdGhlIHZlcnNpb24gYmVpbmcgYnVpbHQuCiAgICBUaGF0IHNob3VsZCBub3QgYnJlYWsgdGhlIGJ1aWxkLgoKY29tbWl0IDVjMGY2NGQ2ZGIyYjU5M2Y3Y2MwZWQyZDRmNTViN2M1OTJiNzc0YTgKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjI1OjE1IDIwMTIgKzAyMDAKCiAgICBPbmx5IG91dHB1dCBjcHUgd2FybmluZ3Mgb25jZS4KCmNvbW1pdCBlZTU4ZTQ4MjdiOWZhMTZlNjYzNWNhMDAzZThhNGYxMWRjYjVmYjdhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEFwciAyMyAyMjoxNzo0MiAyMDEyICswMjAwCgogICAgRml4IHNwZWxpbmcgaW4gZXJyb3JtZXNzYWdlLgoKY29tbWl0IDAzZjQ4NWRmMjJmMjBlMTQ5Y2ZhZTk0YzU3Y2I4MmZlZWNiNWQ3NGIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjEyOjExIDIwMTIgKzAyMDAKCiAgICBOb3QgYWxsIExpbnV4ZXMgdXNlIHJwbSAoZGViaWFuL3VidW50dSBjb21lcyB0byBtaW5kKQoKY29tbWl0IDkzMDgzODIyNGY3ODE2OTZiZDM1MjI1ZjIyNTY5MzQ3NDE2ZjFiMTYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gQXByIDIzIDIyOjEwOjE1IDIwMTIgKzAyMDAKCiAgICBDaGVjayBuZWVkIGZvciAtbG0gdG8gdXNlIHJvdW5kL2V4cAoKY29tbWl0IGEwNjA5Y2YxZjNhNjkxN2QyNjM3MjU3MzIyNDhjZDkzN2E0NWFkOTQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgQXByIDcgMDg6NDA6NDQgMjAxMiArMDIwMAoKICAgIFJlbW92ZSBsaW1pdGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gbGluZSBsZW5ndGguCgpjb21taXQgMzA1OTczMzM4YTYzYWU1NGM1ZTAyYTg2MjZmYmU5YTgwNjRkY2I3ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBBcHIgNyAwMDozMjoxOSAyMDEyICswMjAwCgogICAgUmVkdWNlIHZhcmlhYmxlIHNjb3Blcy4KCmNvbW1pdCBjY2FiNGU5ZDNlZDQyNGMzOWQwZGMyN2JlNjNmYTc2Yzc0NjFlYTgxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEFwciA3IDAwOjE1OjIyIDIwMTIgKzAyMDAKCiAgICBJbnRlcm5hbGl6ZSB0aGUgbmFtZSBhbmQgbGluZSBudW1iZXIgb2YgdGhlIGN1cnJldCBjb25maWd1cmF0aW9uIGZpbGUKCmNvbW1pdCBjZjg3NGFkN2I5ZGFmNGZjYzBkNDZjZGQwMzQ0NzRiNDc4MDA1MzQxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIEFwciA2IDIxOjQ3OjI4IDIwMTIgKzAyMDAKCiAgICBSZXBsYWNlICNpZiAoQSkgQiAjZWxzZSBCICNlbmRpZiB3aXRoIEIuCgpjb21taXQgZWY5ZWE2NDFiYzI5MGVlYzUwNjg1YjYwNTE5YjMxYmVlOGIxNGE2OQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjE6MDQ6MDYgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCgpjb21taXQgMzVhYmExOTU5ZGUxMTlmMWZiODkyMDNjMzcxMDlhYTZmMGUyMWM1NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjE6MDA6NDAgMjAxMiArMDEwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUyCgpjb21taXQgZTQxZmJhZmYxOGFjOTA5NWNmNGE3MzlhMDZlYzM5YTFhNmNjZmRjMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDkgMjA6MzU6MzUgMjAxMiArMDEwMAoKICAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS42LjIucHJlMgoKY29tbWl0IDEzN2ZlNTgyZDZjYzU2MTE0MzBkYWI0NmVmMTQ0ZWZkODRjZmM4MDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgRnJpIEFwciA2IDIwOjQ2OjU2IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgY29tbWl0IDFmNGE4MjliMTgyNzVlNDk1NmNhOTFlNWVjMzcwZGYwMTVmMDYxMzMKICAgIChzbm1wX3N0b3JlX25lZWRlZCgpIEFQSSBpcyBub3QgYXZhaWxhYmxlIGluIDUuWzQ1XS54KQoKY29tbWl0IDJiN2U2NDI4OGMwMWE4YTA2MjAyNmM1MjFjYTMxYTVlODg1ZjMwY2MKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE2OjEyOjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwogICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDdlOTVkODBiNjk4MDUxMjU5NjQ1YzA3NGE1M2ZmZDI2NGE2ZmE5MTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE2OjA2OjU2IDIwMTIgKzAxMDAKCiAgICBGcmVlQlNELTk6IEZpeCBmb3IgJ2NvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwogICAgQmFja3BvcnQgb2YgZWQ2NWVjYTZlN2Y5Y2ZhNzM4MGE3OGQ1NmMwMWVkMzE0NzQ1YjE2OSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDFhOWI3YjdjMDJlMmRlZWZlOTk0ZDU5NWE3Y2MxZGQyZmZiZWVlMWQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDE1OjUxOjIwIDIwMTIgKzAxMDAKCiAgICBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCAncmVjZW50JyBoZWFkZXIgc2h1ZmZsaW5nCiAgICBCYWNrcG9ydCBvZiBjNTNkOGMzNTI1ZjU5MGYyMjEzZDM1YjBkYTk0MTIzODYyZjNlMzY2IGZyb20gVjUtNS1wYXRjaGVzCiAgICAoUGF0Y2ggIzMzNjMzMDggLSBvbWl0dGluZyB0d2Vha3MgdG8gY29uZmlndXJlKQoKY29tbWl0IDNkOWRkYjQxZTI2M2JjMWE3OGY5Zjk0NDBiOGQ0YWQ0Zjg2YzgyZTEKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDEwOjM2OjE4IDIwMTIgKzAxMDAKCiAgICBGaXggdHlwbwogICAgQmFja3BvcnQgb2YgNWI3MDJiMDI0YjYwMTc2ZDdmNTY5OWI5MmU1NWRhNTBhOGRlYWU3MSBmcm9tIFY1LTYtcGF0Y2hlcwoKY29tbWl0IDBkMzVjNjA5NTY0YjY2YTFmZmU4MTU1NmQzN2FkZjA1MDNjMzg5Y2UKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEFwciAyIDEwOjE1OjA4IDIwMTIgKzAxMDAKCiAgICBQcm92aWRlIG1pc3NpbmcgZGVmaW5pdGlvbiBvZiBORVRTTk1QX1BSSW8KICAgICh1c2VkIGluIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYykKCmNvbW1pdCBhNzkxNDFhNDE5OTUzZDAxMGE2OTg5ZThiODhmNGRmMTI3Mzk0ZDM4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBBcHIgMiAwOToxOToyNiAyMDEyICswMTAwCgogICAgSGVhZGVyIGZpZGRsaW5nIGZvciBGcmVlQlNELE9wZW5CU0QsRHJhZ29uZmx5CiAgICBCYWNrcG9ydCBvZiBmN2IwZGUxNTE4MDAyYzZlOGY5Yjk0ZWYzZGViODg4MmUxZTkzMzhlIGZyb20gVjUtNy1wYXRjaGVzCgpjb21taXQgYWRmNzRiZjc1M2QzOTcwMzU3YWZkNjMzODAzMjU2MjQxZDljN2I4NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gQXByIDIgMDg6MjA6NDYgMjAxMiArMDEwMAoKICAgIEZpeCBJUHY2IFRDUCAmIFVEUCB0YWJsZXMsICpCU0Qgc3VwcG9ydCAoaW5jbHVkaW5nIE9wZW5CU0QpCiAgICBCYWNrcG9ydCBvZiBjb21taXRzIDVjZDE1NzM2MjU0NzFjMDU4M2U5MDg3YWVjNjgwMmI3NzE1N2Q1YTIKICAgICAgYW5kIDUwZDczZjBkNTZmZTIyYzU5MDUzMGIzZTMwNWQ0MWRjZGFjM2NlMDAgZnJvbSBWNS02LXBhdGNoZXMKCmNvbW1pdCBkOTU1NWFjYjlmNDdjM2FhOGZkZTRiYzIwYTQ0ZDdjYTYxODFhOGE5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgU3VuIE1hciAyNSAxODo0ODoxMiAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQXZvaWQgZGFuZ2xpbmcgcG9pbnRlcnMgKGJhc2VkIG9uIHBhdGNoIDM1MDMyNTkpCgpjb21taXQgODJhOGI0N2VlOTZlNWQyOWEyYjdhYzNjYTAwNzIyZDczN2Q1YjQ3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6MzE6NTYgMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgOWNhOGQ5MzlhYjM5MzMwNmExZDBmMTQ2YzljYjcwZWEwY2IxOWQ0OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6MzA6MzggMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgY2VjZDQ4NjlkZWI2OGYzZDRjNzFlNzY4ZDViNDBkZDU3NjQ0NjkyNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgMjkgMjI6Mjk6MzEgMjAxMiArMDIwMAoKICAgIFJ1bm5pbmcgYXV0b2hlYWRlciAvIGF1dG9jb25mCgpjb21taXQgYTFhNDUxM2JkM2U0ZTYxNDIwMGY2ZGI1YTAyZjYxZDZjOGVlZmIzMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBXZWQgTWFyIDI4IDA5OjQ3OjQ1IDIwMTIgKzAxMDAKCiAgICBEb3h5Z2VuLXN0eWxlIGRvY3VtZW50YXRpb24gZml4ZXMgKGJhY2twb3J0IG9mIGdpdCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKCmNvbW1pdCA5YmRiY2NhMTIyYzM3ZGEzMDRmYzZhYTY5Mzk3Mjk0NzVmOTBmNWZkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjggMDk6MzA6NDkgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcyAoYmFjay1wb3J0IG9mIEdJVCBjb21taXQgYzA5OTAzYTQyZTlkOTczMzFmZDllNDhlZTgzMWE4NWFmZGY5YzcwYSkKCmNvbW1pdCAxZjRhODI5YjE4Mjc1ZTQ5NTZjYTkxZTVlYzM3MGRmMDE1ZjA2MTMzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjcgMjE6NDE6MjQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDk1Njk3OiBTdG9yZSBwZXJzaXN0ZW50IHNubXBUYXJnZXQgdGFibGUgY2hhbmdlcwoKY29tbWl0IDFmNzVmMzc3ZDBkYjAxNzU0YzBjMTYxZGM0NDM3MzA4MWJlZWY1MjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIE1hciAyNyAyMToxNDowNiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogUEFUQ0hFUzogMzQ4OTM4NzogSW5zdGFsbCBGcmVlQlNEIDEwIGhlYWRlciBmaWxlIChwbHVzIG90aGVyIG1pc3NpbmcgdmVyc2lvbnMpCgpjb21taXQgM2Q3MmM5ZTc4ZjJhZDgxN2M5ZDFkODI5NzczMjdiYmIyMGQ2M2FiOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDI3IDIxOjA2OjMxIDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDM0ODc4Njc6IERvbid0IHNraXAgbWlzc2luZyBpZlhUYWJsZSBlbnRyaWVzIChpZkNvbm5lY3RvclByZXNlbnQgRkFMU0UpCgpjb21taXQgMTI5MDY1NzhhYjMwY2Y3NzZkMDgwYzBlZjMwMjViMzAzMzRkNzY1NQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTY6MTc6NDUgMjAxMiArMDIwMAoKICAgIERJU01BTi1QSU5HLU1JQjogRml4IGV2ZW4gbW9yZSBtZW1vcnkgbGVha3MKCmNvbW1pdCBjY2ZkNWNhNmZlMTAzMTNkNjE4MWQyNGJiYjE3OTc4MjVhOTdkYTEwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNTo1MToxNiAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBFbGltaW5hdGUgZHVwbGljYXRlIGNvZGUKCmNvbW1pdCA5ZmRhMjY2ODcyMmYwOGRkYmZkZDY3YTIyMzlkOGIwMjFkYjY0YTgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciAyNiAxNTo0ODo0NiAyMDEyICswMjAwCgogICAgRElTTUFOLVBJTkctTUlCOiBXcml0ZSBhIGxvb3AgYXMgYSBsb29wCgpjb21taXQgY2JjMThlYjc2M2JhNmRmNjllZjcwNjY4YTU0ZDc1YmYzNWU3OTUwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgMjYgMTU6MjQ6MDggMjAxMiArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IEZpeCBtb3JlIG1lbW9yeSBsZWFrcwoKY29tbWl0IGM3NzI1MTkyNDc4YWVjMDE4ZmI0YWVmYTYwOTQ2ZTA0YTQwNmMwMGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDEzOjQzOjI0IDIwMTIgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCByZWFkaW5nIGZyZWVkIG1lbW9yeSB3aGVuIGRlbGV0aW5nIGEgcm93IGZyb20gYSB0YWJsZQoKY29tbWl0IGE2YmU3Mzk1NjZmMzEwZDc0NDFmZDdmNTQ5ODllMzk0NDZmN2ExNDMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDI2IDEzOjQyOjI4IDIwMTIgKzAyMDAKCiAgICBFeHRlbmQgRElTTUFOLVBJTkctTUlCIHRlc3QKCmNvbW1pdCA4YTliNTcyOTE0NTNjYjhhZWMyOGU3NjZjNTk0NzAxZWQxOWM0ZmM2CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE1hciAyNiAyMTowMzo0MSAyMDEyICswMjAwCgogICAgRml4IGZvciBEcmFnb25GbHkgMwoKY29tbWl0IGU1YzlhMzJmNzllYWMyZTg1NTI3YzljZjA1MDg3Y2RhZTliMzVhNmMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDI2IDIwOjU5OjUzIDIwMTIgKzAyMDAKCiAgICBEcmFnb25GbHkgbmVlZHMgX0tFUk5FTF9TVFJVQ1RVUkVTIHRvIGNvbXBpbGUgaXB2NiBjb2RlCgpjb21taXQgY2Q0M2JjMDlhMzliZDk3ZmY1ZTcxOWEyY2UyMzJjZTQyNDYwMGE2NQpBdXRob3I6IERhdmlkIEltaG9mZiA8ZGltaG9mZkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTo0NzoxNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0ggMzUxMDQ1NDogQWxsb3cgdGhlIHVzZSBvZiAwLjAuMC4wLzAgYXMgYWxpYXMgZm9yIGRlZmF1bHQKCmNvbW1pdCBlMmZjMTVmOWU1YTZlM2UzNmJlNWY0ODk2MDFjYmY2YmY3MzE5MTdmCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyNCAxNToyMTozOCAyMDEyICswMTAwCgogICAgRml4IFRDUCBzdGF0ZSB2YWx1ZXMgZm9yIERyYWdvbkZseQoKY29tbWl0IDQzMmZlM2RkZjU0ZjJjOThmOTM2OTU5NDY5Y2I5YjAxNGQ1OTlmMDYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjEwOjUyIDIwMTIgKzAxMDAKCiAgICBSZXF1aXJlIHBlcmwgdG8gZG8gcGFzc19wZXJzaXN0IHRlc3QKCmNvbW1pdCAzN2QyNzcwY2Y1MGM5ODAyM2VlYmE5MGUyNWQzNzJiZmY3MzE2YWRhCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2VyLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDI0IDE1OjA2OjQwIDIwMTIgKzAxMDAKCiAgICBGaXggVENQIHN0YXRlIHZhbHVlcyBmb3IgRHJhZ29uRmx5Cgpjb21taXQgODZhOTQ4ZDg2OTFlODgxZDU1NTkxZGNhYmRkYzI3MzljZTcyYjMwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAbmJhLWxpbnV4LnNiLnN0YXRzYmlibGlvdGVrZXQuZGs+CkRhdGU6ICAgU2F0IE1hciAyNCAxNTowMTozNyAyMDEyICswMTAwCgogICAgUHJvcGVybHkgZmluZCBwYXNzIGhlbHBlcnMgZm9yIHRlc3RpbmcuCgpjb21taXQgZmUyNmEzYzRmMjlmMDQ2YmY2NWVkNTJlOWQ5NDA1NGI2NzVmYmM0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDk6MDQ6NDIgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogTGltaXQgc291cmNlIGNvZGUgbGluZXMgdG8gODAgY29sdW1ucwoKY29tbWl0IDc0NWJhZmNkY2M5YzhlODQ2MTZkNGUyNzRkYjJhMzg0YmYyMzRkYTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgTWFyIDIyIDA4OjU1OjA1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBNYWtlIHBpbmcgaW1wbGVtZW50YXRpb24gaW5kZXBlbmRlbnQgb2YgbnRwZCBjbG9jayBqdW1wcwoKY29tbWl0IGRhNjkyNWU2NzYzY2FkYmUwMmY0YThiYmZlNjhhMzYyZTUzNWFkNWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDEwOjM4OjM2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTU0ZGlzbWFucGluZ21pYl9zaW1wbGUKCmNvbW1pdCBmYTYwNmRkN2NhNmFmZjkzMDhkNGU4YjAxYmJjZGUxNDhmNDQxMjcxCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjo0OToyMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogTWFrZSBwaW5naW5nIGxvY2FsIGludGVyZmFjZSBhZGRyZXNzZXMgd29yawoKY29tbWl0IDYxN2E4M2JhNzk5NTc1Yzg0YzY2ZjZiMWM0ODBlZjYzMzE2MWE2NGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDE2OjI4OjQ2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggYSBzb2NrZXQgbGVhayB0cmlnZ2VyZWQgYnkgcGluZ2luZyBhIHJlbW90ZSBob3N0Cgpjb21taXQgNjI1ZjU1YzI3MmVjNjI4MWUzOGQ4ZTMwZWI1M2ZkNTE1MTZiMDBhZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBNYXIgMjIgMDk6NTQ6NTUgMjAxMiArMDEwMAoKICAgIERJU01BTi1QSU5HLU1JQjogQ29udmVydCBhIGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB2YXJpYWJsZSBpbnRvIGEgc3RhY2sgdmFyaWFibGUKCmNvbW1pdCBiNDhmMTlhZDRiNGFhNjhjM2UxNmUyYTcyZGYzN2I5YzBjZDM2YzRhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxNjoyNDowNyAyMDEyICswMTAwCgogICAgRElTTUFOLVBJTkctTUlCOiBBZGQgbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKY29tbWl0IGQ3NGNiMzk2NjE3NTg5MjU2MmY1ZTNhOWIxNjgzYWNiYTJjMjJlMDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDExOjQ1OjE4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggc2V2ZXJhbCBtZW1vcnkgbGVha3MKCmNvbW1pdCAwYjFhNzc2NzQ2NzhjYzlhMTViZTNlNzcwMGQzY2VmNjUwZWQwMmM3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIE1hciAyMCAxMjowMDozMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogRG8gbm90IHNlbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzdGFjayBvdmVyIHRoZSBuZXR3b3JrCgpjb21taXQgMTM5MDIzY2QzYWI1MTYzMWNjMTBlMjg2NmQ3MWFiY2Y5OWFlNGMxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBNYXIgMjEgMDg6NTY6MDcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBESVNNQU4tUElORy1NSUI6IERvbid0IGNhbGwgZXhpdCgpIHVwb24gbWVtb3J5IGFsbG9jYXRpb24gZmFpbHVyZQoKY29tbWl0IDE2OWI2YWFhN2I2MTgyN2NjMWFkMGIzYWVlYWUzYTcyMjlkZDI1ZDgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTWFyIDIxIDA4OjUzOjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBGaXggSVB2NiBzb2NrZXQgbGVhayBpbiBlcnJvciBwYXRocwoKY29tbWl0IGEwYmUzMmFkMDUzYTcxZmE5NjEzNGQ1NWU1NDJiYjA3ZDRmMDI5N2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTWFyIDIwIDExOjQzOjQ2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVBJTkctTUlCOiBBdm9pZCB0aGF0IGhvc3QgbmFtZSByZXNvbHV0aW9uIGZhaWx1cmUgY2F1c2VzIGEgY3Jhc2gKCmNvbW1pdCBiZjliZmY2NDU1Njc4N2Q3NjZlZTJlZjJkNTc4YWZiOTIwNzE5ZjNhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE1hciAyMSAwODo1MTo1NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IERJU01BTi1QSU5HLU1JQjogQ29udmVydCBwcmludGYoKSBzdGF0ZW1lbnRzIGludG8gc25tcF9sb2coKSBhbmQgREVCVUdNU0coKS1zdGF0ZW1lbnRzLgoKY29tbWl0IDVkNzRjMDEyNDU1MjNhOWQ4ZGIxZWRhMjdkMWVmYWUyZWJjMTA0ZmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjQwOjAyIDIwMTIgKzAxMDAKCiAgICBOZXcgTUlCOiBWUlJQVjMtTUlCCgpjb21taXQgNWIzOGYwNjJiOTliNmVmMzY3MDhlMmM3ZGU0OTY1YTMxOTI2MTJlOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzQ6NDggMjAxMiArMDEwMAoKICAgIEZvciBzYWZldHksIHNpemVvZiB0aGUgcmlnaHQgdmFyaWFibGUgaW4gbWVtY3B5Cgpjb21taXQgZTVmODI3ODJkYTA1ZWZhN2MwZTZkYzJiZjVhNDFlZTExODY4ZjQ2OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzM6MjEgMjAxMiArMDEwMAoKICAgIEZpeCBmb3IgaHJTV1J1biBkYXRhIGZvciBGcmVlQlNECgpjb21taXQgODMyNzU2NWU4MjMyNzBkMTBhNDUwNDU2OGVkYmU1YjVhZTMyM2E1NQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXIgMjEgMTg6MzE6NTQgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIHZhcmlhYmxlcyBmb3IgT3BlbkJTRC9OZXRCU0QKCmNvbW1pdCAxNzBmNmYwMjdiZjRmOTE3NGI3MDczNTMwZGE0ZDA3ZjQwMGJiYTU4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE1hciAyMSAxODoyODo1OCAyMDEyICswMTAwCgogICAgTW92ZSBkZWNsYXJhdGlvbnMgaW4gZnJvbnQgb2Ygc3RhdGVtZW50cwoKY29tbWl0IGRiYjQ1NzNiNjlmYWU4NWNkYzkzMWIyODkyYjVjZTRlNWIxNmIzMjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTWFyIDIxIDE4OjIzOjM2IDIwMTIgKzAxMDAKCiAgICBSZXF1aXJlIGtlcm5lbF9uZXRic2QgZm9yIE5ldEJTRDYKCmNvbW1pdCBmMTE2ODFmMTVhYWQ3ZDlhNTJmYTI5ODEyZWNiYjUwN2YxYjdmZTI0CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzY6MzggMjAxMiArMDAwMAoKICAgIENoZWNrIGZvciBvbGQgdGFyYmFsbHMgKGFuZCB1bnBhY2tlZCBkaXN0cmlidXRpb25zKSBiZWZvcmUgc3RhcnRpbmcuCiAgICBUaGVzZSBjYW4gY29uZnVzZSBzdGVwcyBzdWNoIGFzICJtYWtlIGRlcGVuZGNoZWNrIiwgdGhhdCBkbyBhICdmaW5kJwogICAgb24gdGhlIGN1cnJlbnQgdHJlZSwgYW5kIHdvdWxkIGRlc2NlbmQgaW50byBzdWNoIHVucGFja2VkIHNvdXJjZSB0cmVlcy4KCmNvbW1pdCA0NzBkY2Q0YjZjM2ZmMTFmZjBhMzUzMmE3MzQwYTU2Y2ZmZDY5MDk4CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBNYXIgMjEgMTI6MzI6MTMgMjAxMiArMDAwMAoKICAgIERvbid0IHJ1biAibWFrZSBkb2NzOyBtYWtlIG1hbmNwIiBpZiB0aGVyZSdzIG5vIE1ha2VmaWxlIHByZXNlbnQKCmNvbW1pdCBjOWFjNDIwMzQzZTE2ZGYyYjcwNjVmNWJmMjc5MGRmNDRlMjQ3ZmJhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgMjAgMTA6MjY6MTAgMjAxMiArMDAwMAoKICAgIEFsbG93IGRpc3RyaWJ1dGlvbiBhcyBwYXJ0IG9mIG5vcm1hbCBOZXQtU05NUCBwYWNrYWdlcy4KCmNvbW1pdCA1OTk5ZjYwYzU3NzIzZjIzZjNjMjU0YWY1N2ZkYjEwYWYzMDFhOGViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAxOCAxOTowMzowOCAyMDEyICswMTAwCgogICAgUmVnZW5lcmF0ZQoKY29tbWl0IDI3NWQyMDQwMzZhNjA3ZTNkZjUwZTg0NDdkNGJjNzU1ZTlkYjAyZmQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gQXVnIDI4IDIxOjI5OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byB1c2UgLS1kaXNhYmxlLWFwcGxpY2F0aW9ucy8tLWRpc2FibGUtYWdlbnQgdG9nZXRoZXIgd2l0aCAtLWVuYWJsZS1taW5pbWFsaXN0Cgpjb21taXQgYmRjY2M4NzU3MTAyOTVhYWNmNTBmNzFlYjFjMWQyZWU5N2YzMzZmZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMjA6MTA6NTggMjAxMiArMDEwMAoKICAgIERvIG5vdCBkZWNsYXJlIHRoZSBsb2NhbCB2YXJpYWJsZXMgZm9yIG9wYXF1ZV9zcGVjaWFsX3R5cGVzIHVubGVzcyB0aGF0IG9wdGlvbiBpcyBzZXQuCgpjb21taXQgYjgwYTY3ZGEwNTJhZGNhMWI1YTY0NGRiODNhNzgyZTE1YzIyMzdjMwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIEZyaSBNYXIgMTYgMTk6NTA6MDMgMjAxMiArMDEwMAoKICAgIENoZWNrIHRoYXQgdGhlIGRhdGEgZXhpc3QgYmVmb3JlIHRyeWluZyB0byByZWFkIGl0Cgpjb21taXQgZWZhZTg2YmJhNTk2MjQ5MWQ0MmI3N2I5MzUxOTFhM2ViMjVkZDkzOQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBNYXIgMTQgMDE6MDU6MzMgMjAxMiArMDEwMAoKICAgIFBhcnRpYWxseSByZXZlcnQgIk1lcmdlIHJlbW90ZSBicmFuY2ggJ29yaWdpbi9WNS03LXBhdGNoZXMnIGludG8gVjUtNy1wYXRjaGVzIgogICAgCiAgICBDb21taXQgZDM1YTE4NjAyMTdlNzIzZTRmODY2ZGQ5OGVmNjYyMTY2NTkzNGM0YSBhY2NpZGVudGFsbHkgcmV2ZXJ0ZWQKICAgIAogICAgNGEyZTViY2Q1NmNkMmFmYjM2ZWIxNWQ3NTRlMmZlZTg4OGRkNTBjMCAoaHJoX3N0b3JhZ2UgaXMgYSBwcm9wZXIgcmVwbGFjZW1lbnQgZm9yIGhyX3N0b3JhZ2UpCiAgICAwZGQxZTU0NTU3ZDFiYTQ5OGI1NWQwMTdiMGE5M2U4Y2NmOWJkNTIyIChDSEFOR0VTOiBzbm1wZDogVURQLU1JQjogUmVwb3J0IHRoZSBwcm9wZXIgYWRkcmVzcyBpbiB1ZHBMb2NhbEFkZHJlc3MpCiAgICA1MTE2ZDQ4Mzc4ZWNmMDNlNzIyZjMwMTBhZDQ3YmYyMmEzZmJjYjhjIChSZWR1Y2Ugc2NvcGUgb2YgcHJlZml4X3ZhbCBzdWNoIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXNuJ3Qgd2FybiBhYm91dCBhbiB1bnNlZCB2YXJpYWJsZSkKICAgIDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IgKHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nKQogICAgCiAgICBhbmQgcGFydCBvZgogICAgCiAgICA2ZTc0ZDY0Zjg1YTU5ZDUwZTQ2MWRiNGMzNGFjNzZmOWRlNDY4YmZiIChBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXEgYW5kIC13IGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzKQogICAgCiAgICBUaGlzIHJldmVydHMgdGhvc2UgcmV2ZXJ0cy4KCmNvbW1pdCBhYWVkZDU5Y2MyZGE3MDE1MjdkYzJkMjYxZDRlOWY4NWYxNmU3NTA0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE1hciAxMSAyMDo1NzozOCAyMDEyICswMTAwCgogICAgQWxsb3cgbWFrZSB0ZXN0IHdoZXJlIHRoZSBzb3VyY2UgcGF0aCBjb250YWlucyB0aGUgc3RyaW5nIE5ldC1TTk1QIHRvIHN1Y2NlZWQuCgpjb21taXQgNGI5NGQ3OTY5MThhNGVlYWU2OGFiMjFhYTUzZDQ0NGE4YjVjMjkyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBNYXIgOSAwODowNDo1OSAyMDEyICswMTAwCgogICAgVW5icmVhayBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDQKCmNvbW1pdCAxMGZlNmI4MzMyNGFkMzdkMThiOTM3Y2M4YzZkZTk0ZGU1MzRkMDM1CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMzowNDowNyAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCBlMTEyMmVkYzFhNWZlNzk3NmIwNjUwNDQxMzRkMzllN2RiNTk4NWVhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMjo0MzoxOSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCBhNjEzZDNhODM0OTEyMjA2ZDFiYTU5NzFlNDQxYTNlYTZiMzZhZjIzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgOCAxMjozMzowMyAyMDEyICswMDAwCgogICAgbWFrZSBkZXBlbmQgZm9yIDUuNi4yLnByZTEKCmNvbW1pdCAwZWYzNGU2NTE5ZGZjYjgyYzk3ZGY4NDI3NTQ3YzA4ZGNmODFlNjlhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBNYXIgOCAxMDoxMTozMCAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIHNubXBkICctZCcgb3B0aW9uLgogICAgCiAgICBOb3cgaXQgZHVtcHMgcGFja2V0cyBhZ2Fpbi4KCmNvbW1pdCA4ZTY5NzQyZjE0M2U0ZmMxMTE5NmU1YjJlZDY2YzhmN2Y1M2ZkMDJmCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBNYXIgNiAwOToyNDoyMSAyMDEyICswMDAwCgogICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjYuMi5wcmUxCgpjb21taXQgYzRlMDBiOGMzZTEwMTBjZGNhYjVlNmMwMmQ2MGQ3NWRmOWM2ZGNmMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTWFyIDYgMDk6MjQ6MDUgMjAxMiArMDAwMAoKICAgIHZlcnNpb24gdXBkYXRlIGZvciA1LjYuMi5wcmUxCgpjb21taXQgMzk0OTAxMDRhM2FiNTgyMzVhYWNlMmY5ZDg3MWMyNjZkYzQ0ODVlZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IDRhMmU1YmNkNTZjZDJhZmIzNmViMTVkNzU0ZTJmZWU4ODhkZDUwYzAKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTWFyIDUgMjA6NTk6MzggMjAxMiArMDEwMAoKICAgIGhyaF9zdG9yYWdlIGlzIGEgcHJvcGVyIHJlcGxhY2VtZW50IGZvciBocl9zdG9yYWdlCgpjb21taXQgY2U4NTgzMjkzMmNjZDkxNmM0MjMxOTExNGM0MDg4NWE0NjZhOWQwZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBNYXIgNSAyMDo1Njo0MCAyMDEyICswMTAwCgogICAgTW9yZSBmaXhlcyBmb3IgU29sYXJpcyBzaAoKY29tbWl0IDBkZDFlNTQ1NTdkMWJhNDk4YjU1ZDAxN2IwYTkzZThjY2Y5YmQ1MjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTU6MDg6MjYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBVRFAtTUlCOiBSZXBvcnQgdGhlIHByb3BlciBhZGRyZXNzIGluIHVkcExvY2FsQWRkcmVzcyBpbnN0ZWFkIG9mIDAuMC4wLjAuIE1ha2VzIHRlc3QgVDE2MHNubXBuZXRzdGF0IHBhc3MgYWdhaW4uIEZpeGVzIGEgYnVnIGludHJvZHVjZWQgaW4gY29tbWl0IGM3NmZiOTZmNjVlMzNiYTJmZDIxMmE5MjFlOGMzODYxNTVlZTVjN2EuCgpjb21taXQgNTE4OTE3ZTlmMzlmN2E5ZDNjM2JmM2E4NjVlOGFjMGUzMDI2ZDYwMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBNYXIgNSAxNDowNDo1NCAyMDEyICswMTAwCgogICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6IEZpeCBzb3VyY2UgY29kZSBpbmRlbnRhdGlvbgoKY29tbWl0IDI2NTE5MDljY2NlYWJmY2ZhZGFmOTQyYzAyNDUwZTI4ZmU4MzdkYzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgTm92IDkgMTI6MDQ6MDQgMjAxMCArMDAwMAoKICAgIFBhc3NlcyBub3cgb24gTWluR1cgdG9vLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTY1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBlNDFmMTE1ZTQwMzA0Yzk0MWJhMTdkNjdlMjQ3MTA3MjJkOTA3NDFiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE1hciA1IDEzOjM5OjE3IDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBBdm9pZCB1c2luZyBncmVwIG9wdGlvbnMgLXcgYW5kIC1xIGJlY2F1c2UgZ3JlcCBpbiBTb2xhcmlzJyBkZWZhdWx0IHBhdGggZG9lc24ndCB1bmRlcnN0YW5kIHRoZXNlLgoKY29tbWl0IDUxMTZkNDgzNzhlY2YwM2U3MjJmMzAxMGFkNDdiZjIyYTNmYmNiOGMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MjAgMjAxMiArMDEwMAoKICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzogUmVkdWNlIHNjb3BlIG9mIHByZWZpeF92YWwgc3VjaCB0aGF0IHRoZSBjb21waWxlciBkb2Vzbid0IHdhcm4gYWJvdXQgYW4gdW5zZWQgdmFyaWFibGUgaWYgaXQgaXNuJ3QgbmVlZGVkLgoKY29tbWl0IDZlNzRkNjRmODVhNTlkNTBlNDYxZGI0YzM0YWM3NmY5ZGU0NjhiZmIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMDk6MjI6MzEgMjAxMiArMDEwMAoKICAgIHRlc3RpbmcvZXZhbF90b29scy5zaDogQXZvaWQgdXNpbmcgZ3JlcCBvcHRpb25zIC1xIGFuZCAtdyBiZWNhdXNlIGdyZXAgaW4gU29sYXJpcycgZGVmYXVsdCBwYXRoIGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGVzZSBvcHRpb25zLgoKY29tbWl0IDEwZjU2NmY0ZDRjYmIzZTIwNTAyM2MyMzY2OTI4OWU0YmZkMDg5Y2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gTWFyIDUgMTA6NDc6MzkgMjAxMiArMDEwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBGaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgNDRhYTI2NTg5MWNkNTYzZjdmNDExNGVmMjVkY2Y3YWFmM2IxNGU5YQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gTWFyIDUgMDk6MDY6NTIgMjAxMiArMDAwMAoKICAgIE1hcmsgdGhlIGNoYW5nZXMgbWFrZSBhcyBwYXJ0IG9mIHRoZSByZWxlYXNlIHByb2Nlc3MgYXMgc3BlY2lmaWMgdG8KICAgIHRoZSBwYXJ0aWN1bGFyIGJyYW5jaCBiZWluZyByZWxlYXNlZC4gIFZlcnNpb24gdGFncywgY2hhbmdlbG9nIGVudHJpZXMKICAgIGFuZCB0aGUgbGlrZSBzaG91bGRuJ3QgcHJvcGFnYXRlIHRvIGxhdGVyIGJyYW5jaGVzLgoKY29tbWl0IGRhZTRlMTZiZTg2MTE3ODYxZjYzZDFhMmY5ODFhZDM2MTQxOGY1YzYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIE1hciA1IDA5OjA2OjUyIDIwMTIgKzAwMDAKCiAgICBNYXJrIHRoZSBjaGFuZ2VzIG1ha2UgYXMgcGFydCBvZiB0aGUgcmVsZWFzZSBwcm9jZXNzIGFzIHNwZWNpZmljIHRvCiAgICB0aGUgcGFydGljdWxhciBicmFuY2ggYmVpbmcgcmVsZWFzZWQuICBWZXJzaW9uIHRhZ3MsIGNoYW5nZWxvZyBlbnRyaWVzCiAgICBhbmQgdGhlIGxpa2Ugc2hvdWxkbid0IHByb3BhZ2F0ZSB0byBsYXRlciBicmFuY2hlcy4KCmNvbW1pdCAyOGY2MjI2ZjJlMjI4YjhjYTI0ODQ4OTczNWY4NjUwMmIyY2NlMGExCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBNYXIgNSAwOTowNjo1MiAyMDEyICswMDAwCgogICAgTWFyayB0aGUgY2hhbmdlcyBtYWtlIGFzIHBhcnQgb2YgdGhlIHJlbGVhc2UgcHJvY2VzcyBhcyBzcGVjaWZpYyB0bwogICAgdGhlIHBhcnRpY3VsYXIgYnJhbmNoIGJlaW5nIHJlbGVhc2VkLiAgVmVyc2lvbiB0YWdzLCBjaGFuZ2Vsb2cgZW50cmllcwogICAgYW5kIHRoZSBsaWtlIHNob3VsZG4ndCBwcm9wYWdhdGUgdG8gbGF0ZXIgYnJhbmNoZXMuCgpjb21taXQgNDAwMjJhNjk3OTU4MjU5Y2NmYmIzZmVkNDRlYjNjNDcyZjVlODM3ZQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBNYXIgNCAxMDozNzo0MSAyMDEyICswMTAwCgogICAgU29sYXJpcyBzaCBkb2VzIG5vdCB1bmRlcnN0YW5kICJ0ZXN0IC1lIgoKY29tbWl0IDc3M2FmMGM0MmUwNzdiZWJkYWVjZjFjMGNhZjM5MzI4NWE3Njg4ZjEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDMgMTc6MTk6MzAgMjAxMiArMDEwMAoKICAgIENsZWFuIHVwIG5zcm9sbHVwIGNvbXBsaWNhdGlvbnMKCmNvbW1pdCBlZTcxMDQ5YzNlMjFjMWQwZTM0MjQyOTcxMzY2NTJiYmUwZTM5ZDg1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAzIDE2OjQ5OjQxIDIwMTIgKzAxMDAKCiAgICBtaWJncm91cC9pY21wLmM6IGFkanVzdCBpZmRlZnMgdG8gbWFrZSBpdCBjb21waWxlIG9uIEJTRCdzCgpjb21taXQgY2U5NjAwMzYxZTY2NWRkZTE3YWY5ZDhhYjE2ZDdjZTg1ZGMwNTY0MwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozOTo1NSAyMDEyICswMTAwCgogICAgZG90M1N0YXRzVGFibGUgaGFzIGJ1Z3MgOi0oCgpjb21taXQgZGZmYWNmNmZhMDc1NWUxNzAwY2JhYzI1Yjg0NDE4NWFiZDgwN2EwYQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozODoxMCAyMDEyICswMTAwCgogICAgcGFzc3BlcnNpc3QgdGVzdCBuZWVkcyAvdXNyL2Jpbi9wZXJsCgpjb21taXQgODcyNjk5NWM3YThhZWY2NzRjNGYxNjRiMTg3MWMzN2JiZGNkYWQ1MApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNjo1OCAyMDEyICswMTAwCgogICAgZ3JlcCAtdyBmYWlscyB3aXRoIE9wZW5CU0QgYW5kIFNvbGFyaXMgMTAtNjQKCmNvbW1pdCAxZWI0NzQ1YjIzY2MzYTgzOTg2NGU3ZjZlYTI4MzU1YjA1NjZlYjY3CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE1hciAyIDIxOjM1OjQ5IDIwMTIgKzAxMDAKCiAgICBTb2xhcmlzIG5lZWRzIC91c3IveHBnNC9iaW4vZ3JlcCB0byB1bmRlcnN0YW5kIC1xCgpjb21taXQgOTk1NGI0Yjc0MWZkOGM2M2Q2MTI4YmQwNTI3Mjk4YzhlNGU5ODlmYwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozNDo0NSAyMDEyICswMTAwCgogICAgTWFrZSBzdXJlIHdlIGhhdmUgdGhlIHByb3BlciBzcmNkaXIgZm9yIG91dC1vZi1zb3VyY2UgYnVpbGRzCgpjb21taXQgNzgzNjkwMDJiZTI3MTFmMGFhODc2YjY0YTRlMTBiMDkwY2MyNDFjZApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBNYXIgMiAyMTozMzozMSAyMDEyICswMTAwCgogICAgTm90IGFsbCBtYWtlIHZlcnNpb25zIGRlZmluZSAkKFJNKQoKY29tbWl0IDk0MjQ1YjI5YTNjZGE4OTQ3NWM2ZWFiNWQ5NDkzYzY2NTdmZjM4ZTMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MjQ6MjQgMjAxMiArMDEwMAoKICAgIE1ha2UgYXV0b2NvbmYgMi42OCBoYXBweQoKY29tbWl0IDQ0YWNkNmMyODVmYjU2MTRiNGM5NjExYjFhYmRlY2E5ZGQyOGU0YmIKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTWFyIDIgMjE6MTI6NDcgMjAxMiArMDEwMAoKICAgIEZpeCBzcGVsbGluZyBvZiBtaWIgbW9kdWxlIGZzeXNfZ2V0ZnNzdGF0cwoKY29tbWl0IDFmYTFmZWUzNjkzZjY3YjgyMDIyMzgwNmIzZDczYWZkNGM1MGVjMTgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBGcmkgTWFyIDIgMDE6Mzc6MjAgMjAxMiArMDEwMAoKICAgIFNpbGVuY2UgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDkzMjYzYjk4YTVkYjM0NGNmMmM0ZDQ4OWM0Mzk3MWU3YjI5Y2RiMDMKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEzOjM3OjIwIDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDVhMTc1NDI4Yjk3M2QyZWE4NTUzZTI5ZmVjZjk0Y2YxNTY2YWE4NTgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ4OjE4IDIwMTIgKzAwMDAKCiAgICB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS41LjIucHJlMQoKY29tbWl0IDM2NDI3NmExYzVhYTY2Y2FhMjNlYjViN2YxMTFmZGViNWFmNzFmYTcKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDExOjQ1OjEwIDIwMTIgKzAwMDAKCiAgICBtYWtlIGRlcGVuZCBmb3IgNS41LjIucHJlMQoKY29tbWl0IDczNTk4MzQwMTcyZWZmNzU3MjlhNmQ1NzE5MmI4MTcxZDViYmYwMGUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVGh1IE1hciAxIDEwOjQyOjU2IDIwMTIgKzAwMDAKCiAgICBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNS4yLnByZTEKCmNvbW1pdCBmMzIxNDQwMjY3MmNhMTk5ZmQ1MzFlNjYxMjJiZjk2YzRkOWE0ZWI3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFRodSBNYXIgMSAxMDo0MjozOSAyMDEyICswMDAwCgogICAgdmVyc2lvbiB1cGRhdGUgZm9yIDUuNS4yLnByZTEKCmNvbW1pdCAyZTc0YWNiNmYxOWU0NzI5Y2VkZTBhYjQzZTkzMTk2MWNiMjNhYWVhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE1hciAxIDA5OjE4OjM5IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogRG8gbm90IGluc3RhbGwgdGhlIHV0aWxfZnVuY3Mgc3ViaGVhZGVycyB0aGF0IHdlcmUgcmVtb3ZlZCBpbiA1LjcKCmNvbW1pdCBiNzEwOTY0NmI5NWE3MDcxM2QxYWQ5OTFkNDFiY2NkNTdjMGJiM2ViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVGh1IE1hciAxIDA4OjQ4OjQ4IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMgaW50cm9kdWNlZCBpbiA1LjYKCmNvbW1pdCA0MzJjYmI3YTU1MDFhYjkwZDY2ZDBhODNlNzMxZTczNDNiYzA0YjM3CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IEZlYiAyNSAxMDoxMzoxNSAyMDEyICswMTAwCgogICAgQ29ycmVjdCB0eXBvcwoKY29tbWl0IDZhNmM5YmJjNzU4NGYxOTZhMTE4NWNjMTkzNTIwNGYxMjA2ODExZWQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBXZWQgRmViIDI5IDA4OjU1OjM1IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBCdWcgMzE1Mjg0MTogSW5zdGFsbCB1dGlsX2Z1bmNzIHN1YmhlYWRlcnMKCmNvbW1pdCBkNTE1ZTJhNmU0YzJhMWM0ZDg0NzM0Y2M3YjJkMGIyZmM1YTg5NGFkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTU6NTY6MjEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDg3OTE5OiBGaXggY29tcGlsYXRpb24gd2hlbiBjYWNoaW5nIGlzIGRpc2FibGVkCgpjb21taXQgYWY4MzY4ZWQ4ODk4YTc4ZDA4NjhiNDdhZjQ2YmM5ZGIwN2QxYzc2NApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDE1OjUwOjU2IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDE0NzczOiBFbmNvZGUgaW50ZWdlciB2YWx1ZSB1c2luZyBBU05fSU5URUdFUgoKY29tbWl0IDE5ZTI3MTU4MDdmZTA2ZmQwYmFlZGY4ODE2NTAxMWFlZTkzM2U3NTUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIEZlYiAyOCAxNDowNTozNCAyMDEyICswMDAwCgogICAgQ0hBTkdFUzogbWFuOiBCVUdTOiAzNDkwNzA4OiBDbGFyaWZ5IHVzZSBvZiBjb21tb24gY29tbWFuZC1saW5lIG9wdGlvbnMKCmNvbW1pdCA2NWY3OTYyZjkzMmM5Yjc1YzViYmJiMDQ3ZDFlMjZhZTYwOTc4ZTUzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTI6MjM6MzQgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDg5NjMxOiBGaXggaW5jb3JyZWN0IGhhbmRsaW5nIG9mIFVDRCBtb25pdG9yaW5nIGZsYWcKCmNvbW1pdCBhYzE2NjA1MWI2YTA5MmRkNGE1OTQzMjZlYzg1ZTJmNjk5YjYyNTQ3CkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTE6NTc6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEJVR1M6IDM0NzQ1OTA6IERvbid0IG1hdGNoIHVuZGVyc2NvcmVzIHdpdGhpbiB0aGUgc291cmNlIHJvb3QgZmlsZW5hbWUKCmNvbW1pdCA4NzliZjcwNzlkMzRmYTQ2ZjZmY2Y1NGEwMWM4NTAwYmVhZWNlNTlhCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBGZWIgMjggMTA6NDQ6NDEgMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAzNDYwMzY0OiBGaXggdXNlIG9mIGJsb2NrIGZhY3RvciB3aGVuIGRldGVjdGluZyBlcnJvciBjb25kaXRpb25zCgpjb21taXQgMDM0ZjFjNTcyZjY4M2VhNDI4NTgzMDc0NDcxZTVkNWQxM2I1MTgzNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjIyOjIwIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgdXNpbmcgLS1lbmFibGUtcmVhZC1vbmx5Cgpjb21taXQgMzY0MjNlMjEwYmZiNjVlZjEyMWM2YTY2YWVjNDM4YzdjMjM3ZDNkZgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDEwOjAzOjI1IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NTQxNjg6IGNvbmZpZ3VyZTogRml4IGJ1aWxkaW5nIHdpdGggLS1lbmFibGUtcmVhZC1vbmx5Cgpjb21taXQgZWVkMGJjYmM0M2ZlYTE4MjU5ZjBmNjNiMjA4MWI2ZDEwNTM1YTA1MgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRmViIDI4IDA5OjI3OjExIDIwMTIgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCBiYWJ5LXN0ZXBzIHdoZW4gY29tcGlsZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQuCiAgICBJbnNwaXJlZCBieSBidWcgIzM0NTQxNjgKCmNvbW1pdCBlYzZhMjMwMzBlNWEyMDcyYzE5YzE4YzFkOWMxMjQzODdkYTU2YjdiCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiAyNyAxODo0Mjo1OCAyMDEyICswMDAwCgogICAgQWRkIC1scnQgdG8gTkVUU05NUExJQlMgc3VjaCB0aGF0IGNsb2NrX2dldHRpbWUoKSBjYW4gYmUgZm91bmQKCmNvbW1pdCBmMTMzMjA1MDAyOTRiYjI0MGY2M2M2ZGQ3ZDJlOWEyMjA4ZWI3NDBkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIE1vbiBGZWIgMjcgMTY6NTI6NTEgMjAxMiArMDAwMAoKICAgIFNraXAgU0VULWJhc2VkIHRlc3RzIHdoZW4gY29tcGlsZWQgdXNpbmcgLS1kaXNhYmxlLXNldC1zdXBwb3J0Cgpjb21taXQgYzQyNzZiNjIzMmMyOTE0NWMwMzk4ODRlNmI1YTZiNmRhNGI5MzgzNwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBNb24gRmViIDI3IDE1OjU0OjQ1IDIwMTIgKzAwMDAKCiAgICBPbWl0IFNFVC1yZWxhdGVkIGNvZGUgd2hlbiBjb21waWxpbmcgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQgKGluc3BpcmVkIGJ5IHBhdGNoICMzNDI0OTMwKQoKY29tbWl0IDAxYzkzMGVkY2MyNTcwMGQ2YjVmYjAzNzZmNTVhMjY0MjVlMTNmYjAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgTW9uIEZlYiAyNyAxNToxNzoyMiAyMDEyICswMDAwCgogICAgT21pdCBTRVQtcmVsYXRlZCBjb2RlIHdoZW4gY29tcGlsaW5nIHdpdGggLS1kaXNhYmxlLXNldC1zdXBwb3J0CiAgICAoaW5zcGlyZWQgYnkgcGF0Y2ggIzM0MjQ5MzApCgpjb21taXQgOTQ4NGQ4MzIwM2M0ZTJkODIwNDE2YmU2NjVmYTgzM2FhNzA0NDRkMgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMjQgMTQ6MDA6MzIgMjAxMiArMDEwMAoKICAgIFJld29yayBjb21taXQgYjRhMTk1MDVhMDU4MTZlOTRlMDFkZTk3YmY5OWFjMzdmY2RjNmQyMy4KCmNvbW1pdCAyYjdmMTM0OTUyMjg2MzVkODE2ZTU4YjIxNzRkYzEyNGRkMGNmMzlmCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEZlYiAyNCAwNzo0MzoyMiAyMDEyIC0wODAwCgogICAgc2V0IE1FUkdFX0FVVE9FRElUIGJlZm9yZSBtZXJnaW5nIHRvIGF2b2lkIHRoZSBmdXR1cmUgZ2l0IDEuNy4xMCBmb3JjZWQgbXNnCgpjb21taXQgZTFiOTEwYjBiZTkzNDM1ODZhZTllZGJhNmY0NjA0MGFmMzE1ZmNkZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6Mjc6NTQgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBpbml0X2FnZW50KCkgKyBpbml0X2ttZW0oKTogUmV0dXJuIGFuIGVycm9yIHZhbHVlIGluc3RlYWQgb2YgaW52b2tpbmcgZXhpdCgpIGlmIGFjY2VzcyB0byBrZXJuZWwgdmlydHVhbCBtZW1vcnkgaXMgZGVuaWVkCgpjb21taXQgNDYzZWVkMjEyMGY5ZDE5MWJjMjI2NzM0OTZhNDllODE3NDY2NGU0YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMjMgMTA6MDM6MzEgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBvYnNvbGV0ZSBzeW1ib2wgTkVUU05NUF9FWElUX09OX0JBRF9LTFJFQUQKCmNvbW1pdCBjMzZhYjcxYTRlMDk2ZjE2Y2M1YTU1NTMzZjA4MGM5YTk0MDA5OTE0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAwODo1Mzo1NiAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogc25tcGQgKyBhcHBzOiBTZW5kaW5nIFVEUCBwYWNrZXRzIHdvcmtzIGFnYWluIGZvciBub24tcm9vdCB1c2VycwoKY29tbWl0IGVkZWJkZGJhOTMwZjhiMTQ3MmZhMGJkMjBmYzQxM2VmOGNmNDY0YTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgRmViIDIxIDExOjMxOjQ2IDIwMTIgKzAxMDAKCiAgICB0ZXN0aW5nL1JVTlRFU1RTOiBGaXggYSBiYXNoaXNtCgpjb21taXQgYjRhMTk1MDVhMDU4MTZlOTRlMDFkZTk3YmY5OWFjMzdmY2RjNmQyMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgMjAgMTY6NTg6NDcgMjAxMiArMDEwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCAlbGQgdmVyc3VzIHRpbWVfdCBvbiBzeXN0ZW1zIHdoZXJlIHRpbWVfdCBpcyBhIHN5bm9ueW0gZm9yIGxvbmcgbG9uZyBpbnN0ZWFkIG9mIGxvbmcuCgpjb21taXQgZDg5NzhlY2M4MjExYmU3YzFlNzkwNWYxZTIxNWJiMDZkZWQyNjZiNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBGZWIgMjEgMTI6MzI6MjUgMjAxMiArMDEwMAoKICAgIEZpeCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYyBmaWxlIGhlYWRlcgoKY29tbWl0IGFhNzY2ZDE5NmU1Mjg3ZjZjYTc5YjU4YTM0NWIwMjQyNjBhYmEzNTQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDIwIDE3OjA3OjEzIDIwMTIgKzAxMDAKCiAgICBJRi1NSUI6IGRvIG5vdCB0cmlnZ2VyIHVuZGVmaW5lZCBiZWhhdmlvciAoPj4gMzIgb2YgYSAzMi1iaXQgdmFyaWFibGUpIHdoZW4gdXBkYXRpbmcgYSBjb3VudGVyIGFuZCBpZmlfaXBhY2tldHMgaXMgYSAzMi1iaXQgdmFyaWFibGUKCmNvbW1pdCBjM2ZiNmRkOWU2Yjk5ZTk1NDI0OTMxODg5ODc4NzFmYzUwMTdjYjNjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyMyAwOTo0NTo0NSAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBvbiBzeXN0ZW1zIHdoZXJlIG1vZGVfdCBpcyB1bnNpZ25lZAoKY29tbWl0IGY4YTNlZjBkM2Q0ZTUzMDI3OTkwMDEwMTA0OWI4ZGU5OGE0NGE2ZmIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6NDg6NTIgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWIgKyBzbm1wZCArIHNubXB3YWxrOiBBdm9pZCB0aGF0IHN5c3RlbSBjbG9jayBjaGFuZ2VzIChlLmcuIGJ5IG50cGQpIGFmZmVjdCBjb2RlIHRoYXQgbmVlZHMgcmVsYXRpdmUgdGltZQogICAgQ0hBTkdFUzogc25tcGQ6IE1ha2Ugc3VyZSB0aGF0IHRoZSByYW5nZSBvZiB0aGUgU05NUHYzIHZhcmlhYmxlIHNubXBFbmdpbmVUaW1lIGlzIDAuLjIxNDc0ODM2NDcgb24gYWxsIHN1cHBvcnRlZCBzeXN0ZW1zIGluc3RlYWQgb2YgMC4uNDI5NDk2NzIgb24gc29tZSBzeXN0ZW1zIChpLmUuIHdyYXBhcm91bmQgYWZ0ZXIgNDk3IGRheXMpCiAgICBDSEFOR0VTOiBzbm1wbGliOiBBZGQgbmV0c25tcF9nZXRfbW9ub3RvbmljX2Nsb2NrKCksIG5ldHNubXBfc2V0X21vbm90b25pY19tYXJrZXIoKSwgbmV0c25tcF9yZWFkeV9tb25vdG9uaWMoKSwgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCiAgICBDSEFOR0VTOiBzbm1wbGliOiBEZXByZWNhdGUgYXRpbWVfZGlmZigpLCBhdGltZV9uZXdNYXJrZXIoKSwgYXRpbWVfcmVhZHkoKSwgYXRpbWVfc2V0TWFya2VyKCksIG1hcmtlcl90dGlja3MoKSwgbmV0c25tcF9tYXJrZXJfdXB0aW1lKCksIG5ldHNubXBfdGltZXZhbF91cHRpbWUoKSwgdGltZXZhbF90dGlja3MoKSwgdWF0aW1lX2RpZmYoKSwgdWF0aW1lX2hkaWZmKCkgYW5kIHVhdGltZV9yZWFkeSgpLgogICAgQ0hBTkdFUzogc25tcGxpYjogQ2hhbmdlIHRoZSBuYW1lcyBvZiB0aGUgc3RydWN0IHRpbWV2YWwgbWVtYmVycyBvZiBkYXRhIHN0cnVjdHVyZXMgdGhhdCB3ZXJlIHVzZWQgdG8gc3RvcmUgYSB3YWxsIGNsb2NrIHRpbWUgYnV0IHRoYXQgZG8gbm93IGNvbnRhaW4gYSBtb25vdG9uaWMgY2xvY2sgdmFsdWUKCmNvbW1pdCBjMTk3NjBmMzMzM2M5MmZhYzVkNTBlOTc2OGNkZjkzOTIxOGJjNDg3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEZlYiAxNSAwOTo0NTowMyAyMDEyICswMTAwCgogICAgc25tcGxpYi9zbm1wdjMuYzogRml4IHNvdXJjZSBjb2RlIGluZGVudGF0aW9uCgpjb21taXQgYTZkYjIzOTk0NWUxOTVkZTVhOTBmYTE4MzcwMGIyN2E2ZWNiMjhkMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBGZWIgNyAwMDoxMToxNCAyMDEyICswMTAwCgogICAgRml4IHBvc3NpYmxlIG1lbW9yeSBsZWFrIGZyb20gcmVjZW50IGRlY2xhcmF0aW9ucyBwYXRjaAoKY29tbWl0IDBmYmJiOWE5ZTI5MDZhN2FmOTU2OTU3MDYxZDQ4NTg3NDQ2MmFlYTkKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NDM6MDQgMjAxMiArMDEwMAoKICAgIERvIG5vdCBtaXggZGVjbGFyYXRpb25zIGFuZCBzdGF0ZW1lbnRzCgpjb21taXQgZjMwOGQ1YmFmYjA1ZDc4ZWQ0MDMwYzRlY2ZmMzI0YjZjYmRhNjgwZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNToyNTozMCAyMDEyICswMTAwCgogICAgRml4IHR3byBjb21waWxlciB3YXJuaW5ncyBpbiBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYwoKY29tbWl0IDQ2ZjBmYzFiN2ZjMjZhMjI1NzYzYmM2NWNjYTUyMGExYzU5ZjAyNTEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gRmViIDYgMjA6NTQ6MzIgMjAxMiArMDEwMAoKICAgIHNlbmRtc2cgZG9lcyBub3QgbGlrZSBJUF9TRU5EU1JDQUREUiBpZiBhZGRyIGlzIElOQUREUl9BTlkKCmNvbW1pdCBkZWJhYzQ5OGZlODQxMDExMDEwN2EyZmU2NGY4YWZiNzQ4ZWRhYTA3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBGZWIgNiAxNjo0ODowOSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogYWRkZWQgT0NGUzIgKE9yYWNsZSBDbHVzdGVyIEZTKSB0byBoclN0b3JhZ2VUYWJsZSBhbmQgaHJGU1RhYmxlCgpjb21taXQgZmFmYzk5Y2Q4OWU3M2VjN2UwMGJmNzM2MGQwYjRmYTYxOTQ0YTRmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxODozNCAyMDEyICswMTAwCgogICAgU2ltcGxpZnkgY2FsY3VsYXRlX3RpbWVfZGlmZigpIGFuZCBjYWxjdWxhdGVfc2VjdGltZV9kaWZmKCkKCmNvbW1pdCA3YWYyMDEzZGU4YmYxYjM3OWMwNzZkYjRlMTA0NTA4ZTE3ODc0ZDNlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE0OjU1OjU4IDIwMTIgKzAxMDAKCiAgICBGaXggb3JkZXIgb2YgZmVhdHVyZSAjaWZuZGVmIGFuZCBEb3h5Z2VuIGNvbW1lbnQgYmxvY2sKCmNvbW1pdCBiYmQ2N2Y2MzUzMGY1ZWYwYmZjOTQ4ZmM1OGRmZTZhOTNmOGY4Njc5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDE1OjI1OjMwIDIwMTIgKzAxMDAKCiAgICBGaXggdHdvIGNvbXBpbGVyIHdhcm5pbmdzIGluIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jCgpjb21taXQgNDJhNjZhZWZmMjViOWU5ZWY2MzVhNDA0YWQyZjUyMTJmOWU4Y2YwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo0Nzo1NCAyMDEyICswMTAwCgogICAgUmVuYW1lIHR3byBmdW5jdGlvbiBhcmd1bWVudHMKCmNvbW1pdCAzZmU3MmIzYjk5YjdlNGIyYjk4MjM2M2RmYzRmMmQ4ZDEzZjQwNTkyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIEZlYiA2IDEzOjQ5OjIyIDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHNubXBfc2VsZWN0X2luZm8oKSBkb2N1bWVudGF0aW9uIHRvIERveHlnZW4gZm9ybWF0Cgpjb21taXQgZTlkYjI2NmFlNDhkMDVhN2E2Y2I1ZDcxYjRiZGVhN2FkODA4ZWY1ZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxNzo1NyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBuZXRzbm1wX2dldF9uZXh0X2FsYXJtX3RpbWUoKQoKY29tbWl0IGQwODA0NGNiOWU1NzAyZmJmNTQ5ZTE0NDI1ZjQyNzk0MjU5ZDhhMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMDk6Mzg6MDcgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBZGQgbmV0c25tcF9nZXRfYWdlbnRfcnVudGltZSgpCgpjb21taXQgYTA1YzI3YzI3MTFjYjQxNTgyYTNiNGMzMWUzOGIwZTkzNTMwYjYyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxNDo1MTozMyAyMDEyICswMTAwCgogICAgRml4IHNwZWxsaW5nIGluIGEgc291cmNlIGNvZGUgY29tbWVudAoKY29tbWl0IDkxMGQ3YjBkOTkxODM2MDliOTUyOWIwNGMzZjI5MzMwZWI2NjEwMjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gRmViIDYgMTQ6Mzg6MTIgMjAxMiArMDEwMAoKICAgIFJlcGxhY2UgbmV0c25tcF90aW1ldmFsX3VwdGltZSgpIGJ5IG5ldHNubXBfZ2V0X2FnZW50X3VwdGltZSgpCgpjb21taXQgNDNhODNmNmM2YTk2Y2MyMzE2YjcwZWVjYWNmMTI3ZWI2OTEzYzdhNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBGZWIgNiAxMToxOToxNSAyMDEyICswMTAwCgogICAgVXNlIHRoZSBhc3NpZ25tZW50IG9wZXJhdG9yIGluc3RlYWQgb2YgbWVtY3B5KCkgZm9yIGNvcHlpbmcgc3RydWN0IHRpbWV2YWwKCmNvbW1pdCAyZmU1NzllZmIxY2IzYTc0ZjgyODAzY2EzMjM5MjhmNmI4ZTRiNWMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEZlYiAzIDE0OjA0OjAyIDIwMTIgKzAxMDAKCiAgICBNYWtlIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyBidWlsZCBhZ2FpbiBvbiBub24tTGludXggc3lzdGVtcy4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IDM0NWExZTQyNTQ4MTJjYjllZGMxZDI3NDQ5MWI3NjY4MWE5ZGJhMWUuCgpjb21taXQgODgxZGU2YWI3MzU1Mjc3YTVjMTE2YTAwOGZiZTUxMzI5M2IwNTAzOQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBGZWIgMyAxMDowODoyMSAyMDEyICswMTAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgUm1vbiBNSUIgaW1wbGVtZW50YXRpb24KCmNvbW1pdCA0NjI5OTMzYzBkM2IzZjlmNGJhNTgzNTM0Zjc5YTM3ZmI5NjMzODE3CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDIwOjA1OjMxIDIwMTIgKzAwMDAKCiAgICBNb3JlIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKCmNvbW1pdCBlOWI1YTNkZWU2ZjlhZmFiOGI5MGEyOTM5MjA0MDYzMmIwNzVhZDdhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE2OjU2OjU1IDIwMTIgKzAxMDAKCiAgICBVc2UgU05NUF9NSU4oKSBpbnN0ZWFkIG9mIG1pbigpCgpjb21taXQgYWU0NTJjNzdiNDExMTM5ZDZiNTgwMGZmY2Y4OGQ0OGU5YjQ3OTJhOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxNToyMzozOCAyMDEyICswMTAwCgogICAgUmVzdG9yZSBjb21taXQgZGJiODc5NWE3ZGY1OTVmMDYwM2YyZWM2MTcwNDc5OWY0YzQ4MjY2Ny4KCmNvbW1pdCBjN2QxMWZhMDBmOTk5NWRkYjlmZTNkNDk5NGEzZTk3OTBkYTJlMTg5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE1OjE4OjQwIDIwMTIgKzAxMDAKCiAgICBSZXN0b3JlIGNvbW1pdCBkYmI4Nzk1YTdkZjU5NWYwNjAzZjJlYzYxNzA0Nzk5ZjRjNDgyNjY3IHBhcnRpYWxseS4KCmNvbW1pdCAwMGZkNjI3MjBlYzQ1NGY1YTY5MGRlNGZlYmEwODIyM2NmYjJjM2Y4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDE0OjQ4OjQ0IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEF2b2lkIGNyYXNoIGR1cmluZyBzaHV0ZG93biBkdWUgdG8gaW52b2tpbmcgcGVybF9kZXN0cnVjdChOVUxMKQoKY29tbWl0IGQ5ZTIyOWQ4MWFiZWFmMTkxZWYyY2NiMDc3ODQyODg1YzIzMGQ2MjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTQ6NDc6NDEgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBhIHN1cGVyZmx1b3VzIGRlY2xhcmF0aW9uCgpjb21taXQgMWUyZTJhZjZjYWU4MzBmMzgxZTg3YTI0NGQwMjllYjg2YmYzZmNjZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMzoyMDozNyAyMDEyICswMTAwCgogICAgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGw6IEFkZCBlcnJvciBjaGVja2luZwoKY29tbWl0IDI0MWExNDFlMzFmMTY4NGZjNmNmNzBjYzRhMDBjY2U2MzZmZDM1MjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMTE6Mjg6MzcgMjAxMiArMDEwMAoKICAgIE1ha2UgY29uZmlndXJlLXRpbWUgRVZQX01EX0NUWF9jcmVhdGUoKSBkZXRlY3Rpb24gd29yayBvbiB0aGUgNS40IGJyYW5jaC4KICAgIAogICAgU2VlIGFsc28gY29tbWl0IDQ2ZWFjMDJlOWEyN2JmNGYzMDY4ZTc5NWNhYjg5MWYwNWE4NDg4NzAuCgpjb21taXQgNmQ5ZDE0ZmVhYWEyZDBmZWM2OGI0ZDE1ODk0NGQzMmNiMDRmZjFiYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBGZWIgMiAxMToxMjowMCAyMDEyICswMTAwCgogICAgUmV2ZXJ0IHRoZSBjaGFuZ2VzIHRoYXQgYnJlYWsgdGhlIGJ1aWxkIG9uIHRoZSA1LjQgYnJhbmNoIGZyb20gY29tbWl0IGRiYjg3OTVhN2RmNTk1ZjA2MDNmMmVjNjE3MDQ3OTlmNGM0ODI2NjcuCgpjb21taXQgOGFiZTQ5ZTMwYzk3Yzg5ODNlODNiNDVhMzVjNzE2ZmU5MWY2NmJlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBGZWIgMSAxMTo1Njo1OCAyMDEyICswMTAwCgogICAgRml4IHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MgaW4gdGhlIERJU01BTiBNSUIgaW1wbGVtZW50YXRpb25zLgoKY29tbWl0IGY5ZmIwYTUzMzM3NWUxNGRjMzcwMDI1YTBiMmZiYzc2MWJmMjdiZTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRmViIDIgMDk6NTY6MDIgMjAxMiArMDEwMAoKICAgIFJldmVydCAiSE9TVC1SRVNPVVJDRVNfTUlCOiBmaXggYSBjb21waWxlciB3YXJuaW5nIiBiZWNhdXNlIGl0J3Mgd3JvbmcuCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgYWE2Yjc5YmMxMjRhN2I3YTg4NWQ3ZTUwMzVhYjA2YWEzZWNlZjYxMy4KCmNvbW1pdCBjYTRhNGZlMjVlZmQyNzE0ZjhmMTk2MWI5Nzg1NjYxNjU2M2Y0MmM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEZlYiAyIDEwOjIxOjQ5IDIwMTIgKzAxMDAKCiAgICAuZ2l0aWdub3JlOiBBZGQgcHl0aG9uL2J1aWxkCgpjb21taXQgMTNhZGE1NjU1OGI0NGUyOGQxMzU1YzBkY2UxZDkyMWYzNzQ2ZDU0OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjUzOjQ5IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIlJldmVydCAiRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzIiIgLSB0aGVyZSAqaXMqIE5FVFNOTVBfUFJJbyBpbiBWNS02KyBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IGFhNTI4YmQyMmM3NDkzY2E4ZDY3ZTY3OGZiZjYxNWNhMGY2M2VhNmQuCgpjb21taXQgYWE1MjhiZDIyYzc0OTNjYThkNjdlNjc4ZmJmNjE1Y2EwZjYzZWE2ZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjEzOjE4IDIwMTIgKzAxMDAKCiAgICBSZXZlcnQgIkZpeCBmb3JtYXQgc3BlY2lmaWVycyB0byBhdm9pZCB3YXJuaW5ncyIgLSB0aGVyZSBpcyBubyBORVRTTk1QX1BSSW8gaW4gVjUtNCBvciBWNS01IGJyYW5jaGVzCiAgICAKICAgIFRoaXMgcmV2ZXJ0cyBjb21taXQgMzkwYzAxMTRjOGVjMGJkYjI3YjA4YjZmNzRlM2Y2ZWYzYTYyOTgxYi4KCmNvbW1pdCAyZmI5OWJlOWFhODZhNmNhMzQ5Yjg2ZDRlZjhiYzcyNmVkOWYyYTgyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTQ6NTg6MzUgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IGU1YzM1NTg5ZTBiZjQxNmJmZDAzNmJkNDY4ZjQyYWFlYWIyNWU3ODgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDo1NTo1NiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgMzQ1YTFlNDI1NDgxMmNiOWVkYzFkMjc0NDkxYjc2NjgxYTlkYmExZQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE0OjUxOjI2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBlcnJvciBoYW5kbGluZyBpbiBpbml0X2ljbXAoKS4KCmNvbW1pdCBjMzAzNTQ5YTU5ZmE4YzJmMjBhOWQ4YmYxZTk4NWZiYzhhYmRlNmE4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6NDY6MjkgMjAxMiArMDEwMAoKICAgIFJld29ya2VkIF9yZWdpc3Rlcl9leHRlbmQoKSBlcnJvciBoYW5kbGluZy4KCmNvbW1pdCA5YzIwZTI3YTcwMjZmYzAzMGRhM2IzMjhiOWEyZTFiNGYzNjY3MGNkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MjE6MjggMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDIyZmQwYmZjMmRmMGUxZjYwMjBkYzNjNTBhNzUzZGRmMjhhNDU5OWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNToyMDoyMiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgNWQ2MWU1N2JhZjU4MGM3ODI1MmMwYWJiMDA5OGMwN2JiMDVhZjE3YwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjE3OjA1IDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCAzYzNlZWFlODBkNzk2ZjI3NTk3YzkwMWU3ZmYyMDQ2Yzc2OWVmNGI4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDg6MDkgMjAxMiArMDEwMAoKICAgIE1hcmsgcm93cmVxX2N0eCBhcyBmcmVlZCBzbyBuZXh0IGl0ZXJhdGlvbiBhbGxvY2F0ZXMgbmV3IG9uZSBpbnN0ZWFkIG9mIHJldXNpbmcgdGhlIGZyZWVkIG9uZS4KCmNvbW1pdCBhZjlhYmQ1M2MyMzM3YzkwYTY5MWE3YjA0NGZmM2Y5N2MxMDAzMTYxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDU6MTAgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IGNmOTQ2NWY1NDE4MWU2MmUyMWE5YjEwMjE5MTMxMTA3YTNkMmViZjYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNTowNDowNiAyMDEyICswMTAwCgogICAgRG9uJ3QgdG91Y2ggcmVnaW5mbyB3aGVuIHJlZ2lzdHJhdGlvbiBmYWlscyAtIGl0IGhhcyBiZWVuIGFscmVhZHkgZnJlZWQuCgpjb21taXQgNzg3MWYyYjA5YjhiNTJmMzRhOWU1Nzc4NDI2NjQ1OTA1MzE2NWJjYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDE1OjAyOjUwIDIwMTIgKzAxMDAKCiAgICBEb24ndCB0b3VjaCByZWdpbmZvIHdoZW4gcmVnaXN0cmF0aW9uIGZhaWxzIC0gaXQgaGFzIGJlZW4gYWxyZWFkeSBmcmVlZC4KCmNvbW1pdCA3YTM3ZjMzZDMxMGM5NTk4NjA3YmMzMjNkOWJkYmY5MWFhZjcyYzk1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBKYW4gMjAgMTU6MDA6NTEgMjAxMiArMDEwMAoKICAgIERvbid0IHRvdWNoIHJlZ2luZm8gd2hlbiByZWdpc3RyYXRpb24gZmFpbHMgLSBpdCBoYXMgYmVlbiBhbHJlYWR5IGZyZWVkLgoKY29tbWl0IDNlNDVmNzAyNjI0OWU0NTM1MGVkYWFjODUzMzc0MjNhYTBlOTVkOGIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIEphbiAyMCAxNDoxMzoxOCAyMDEyICswMTAwCgogICAgUmV2ZXJ0ICJGaXggZm9ybWF0IHNwZWNpZmllcnMgdG8gYXZvaWQgd2FybmluZ3MiIC0gdGhlcmUgaXMgbm8gTkVUU05NUF9QUklvIGluIFY1LTQgb3IgVjUtNSBicmFuY2hlcwogICAgCiAgICBUaGlzIHJldmVydHMgY29tbWl0IDM5MGMwMTE0YzhlYzBiZGIyN2IwOGI2Zjc0ZTNmNmVmM2E2Mjk4MWIuCgpjb21taXQgNjE5MzY3NjJlNjQxYzE4ZGI3NWFhNTEyNWEzM2U3NzZjNjc3YWRjNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgSmFuIDIwIDExOjEzOjM5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBmcmVlaW5nIHJlZ2luZm8gdHdpY2Ugb24gZXJyb3IgaW4gYSB0ZW1wbGF0ZSBhbmQgYWxsIGl0cyBpbnN0YW5jZXMuCgpjb21taXQgNDk2NDM3NDMwNDE1ZmJhZmViMWNjZDQ3NzRmMWNhMDBkNjI3ZWExZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMTE6MDQ6MTMgMjAxMiArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBjb21waWxlciB3YXJuaW5ncyBpbnRyb2R1Y2VkIG9uIFY1LjYgYnJhbmNoCgpjb21taXQgNWI0YTI0Y2RjZWUxYmMzZDgyNjMzY2NhZmViOTZmY2U5NTM0OWM1OQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjI6MjcgMjAxMiArMDEwMAoKICAgIHVuaXQgdGVzdHM6IGZpeCBhIDY0LWJpdCBjb21waWxlciB3YXJuaW5nCgpjb21taXQgY2JmMWM5MWJhZjcxOTFiZTVmYTI3ZDgxYmNmODcxNDMzMWEyYzEyZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gMjAgMDk6MjA6NDIgMjAxMiArMDEwMAoKICAgIFVzZSBzbm1wVGFyZ2V0UGFyYW1UYWJsZV9kaXNwb3NlKCkgdG8gZnJlZSBhIHN0cnVjdCB0YXJnZXRQYXJhbVRhYmxlX3N0cnVjdC4KICAgIAogICAgRml4ZXMgYSBidWcgaW50cm9kdWNlZCBpbiBjb21taXQgZGJmMjZhMDVhMDRlZjI0YzQ3MzQ2ZTVhZGRhNDhlMzM4NDk4ZTcxZi4KCmNvbW1pdCBhYTZiNzliYzEyNGE3YjdhODg1ZDdlNTAzNWFiMDZhYTNlY2VmNjEzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiAyMCAwOToyMDozMSAyMDEyICswMTAwCgogICAgSE9TVC1SRVNPVVJDRVNfTUlCOiBmaXggYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgM2E3NmI0M2UxMWZmZmFkYTYzMmZjY2I4NDhhYjUwMGU4NzZhZDQ4YgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTggMTY6MjE6MDUgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogQXZvaWQgdGhhdCBhbiBTTk1QIHNldCB3aXRoIFVzZUVudW1zIGVuYWJsZWQgY2F1c2VzIGEgc2VnbWVudGF0aW9uIGZhdWx0Cgpjb21taXQgODRkZWM5ZmE5MmIwYWEyZDU4ZWI3MDIwMzMwZjRmOThlNTE1NDMyMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTggMTQ6Mzg6MjEgMjAxMiArMDEwMAoKICAgIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IEZpeCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzCgpjb21taXQgMzhjZjIxOGMzZjFhNzI3Nzg2ZTIyN2E1ZDNmYjE4NmZkMGYxYTE1ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjUwOjEzIDIwMTIgKzAxMDAKCiAgICBGaXggYSB0eXBvCgpjb21taXQgNDU0MTIyMjQ0MTIyYmZkYjZmNjdjYWIzMTI1NmQ3YjQ2MzcyZTllMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjMwOjE4IDIwMTIgKzAxMDAKCiAgICBGcmVlIHRtU3RhdGVSZWYgb24gZXJyb3JzLgoKY29tbWl0IDAxMTkwMjJkYWE1OWM3M2JmZWMwZGEyMzg2ZDA2MjhmMTRlNmRhYjcKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxOSAxNDowOToxMiAyMDEyICswMTAwCgogICAgRnJlZSBmaW5nZXJwcmludCB3aGVuIGl0J3Mgbm90IG5lZWRlZC4KCmNvbW1pdCAwZTg0Y2QzMDNhMDgyNjdkZWM3OGY2ZDgxYzliYjA3ZTNkODNhMTFmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6NDg6MjYgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA2M2RjODQ2YTc5NDljZTY5N2IzZTI4YzU0M2RjMTEwNWU2M2EyMjUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDg6MjggMjAxMiArMDEwMAoKICAgIEZyZWUgY2VydGlmaWNhdGUgZmluZ2VycHJpbnQuCgpjb21taXQgY2UxZjI4NGE2M2ViODE2NDRiM2UzMjYwNmNiZTM5YjY3ZTFkZmYyYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDE0OjM3OjA5IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgN2UyMTQxM2NhNmYyZWZkN2EzYWZiNjJjNjJiNjQ0ODgxYjhiZDFlNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDE5IDEzOjQ2OjMwIDIwMTIgKzAxMDAKCiAgICBQcm9wZXJseSBhbGxvY2F0ZSBhbmQgZnJlZSBlbmdpbmVJRC4KCmNvbW1pdCAzNGM5NjI4ODI2MDdjMzYzOGEyZmEyNWEyYWM1MzE0OTJkNzFjNzg3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6Mzc6MjUgMjAxMiArMDEwMAoKICAgIEZyZWUgbG9jYWxseSBhbGxvY2F0ZWQgdG1TdGF0ZVJlZi4KCmNvbW1pdCBmNTdhZTUzMWRjNTY1OGFiY2Q2NWIxNjI3NjE1NTI1MjM4ZDE2ZDJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MjA6MjQgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA1MzZiYzU3NTU2YzMxNDE1NjFlYTRhMTk0ODEwYjE2MjkwYTY5MWVlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MTU6NDcgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIGlmIHRoZSBmdW5jdGlvbiBhY3R1YWxseSBkb2VzIHNvbWV0aGluZy4KCmNvbW1pdCBhMDc3N2QzMDdkYmNhZjIxOWVlMDE4NGEwZmJhYjlkNGU1ZDZhYTBiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTM6MDE6NDUgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA4Yjk3YTcxYzhlNzk1OTQyOGViNGQ0ZThkOTBlOTA5NmQ0M2ZmMDlmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTc6MjYgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCAyYzE1MDdjMjIwMzA1NDlhZTY2MGMwZTIxMWZiZGM1Yzc1ZWM1YzU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTM6NDcgMjAxMiArMDEwMAoKICAgIEZyZWUgcHJldmlvdXNseSBhbGxvY2F0ZWQgbWVtb3J5IG9uIGVycm9ycy4KCmNvbW1pdCA2NWYyYjdiY2Q0ZmUwMzkwNmFhMWExMTVhYjYwYTg5YjhhZTkzM2Q1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTkgMTI6NTE6MzYgMjAxMiArMDEwMAoKICAgIENsb3NlIG9wZW4gZmlsZXMgb24gZXJyb3IuCgpjb21taXQgMGU1MmU0ZjY2ZDQ0NzY2YmVhMzc0NzM1NTZjNzhlNTIxOWI5NTQ2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQ1OjMzIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZGJmMjZhMDVhMDRlZjI0YzQ3MzQ2ZTVhZGRhNDhlMzM4NDk4ZTcxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjQyOjE3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNzQ4ZGE4NGIxZmQ2NTRlMzM4YmM3MDFlOGY5ZTVkYTIyOTE4N2YxYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjMyOjA0IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZWIyMTcxNDZmZDU0MDM2ZWE0MjAyYmZlZjc4YmJmNzc0ZDdlMzgyZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjIzOjEwIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgOWJhMzhlZWM2NjEzOGVjMWY2MTNlYThkMDRlMTU4MTMwYzcxMjFiYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE4OjU1IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgZDlkOTM4ZDMwMThjMjdmNTMyNzdiYzVlNTk1Nzg1MDA0OTBjMWQwOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE2OjM4IDIwMTIgKzAxMDAKCiAgICBDbG9zZSBvcGVuIGZpbGUgb24gZXJyb3IuCgpjb21taXQgZDVlODE3ZDViZDUxOGQ5YWM2YTBkNjBlMGUxNDFkZDY0ZjI3YWQxOQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjE0OjEyIDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgMmFlNjhmMDU5ZGY5ZDc0YjA3NGQxMmY1OWMxODQ3NDY2ZWQ1NzZjZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE1OjAzOjE3IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgYTAwZjNkNDYxMTIxYjU0NWFlZDcyYWMxMmIyNDM4NzkxZGNmYzRiYQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDE4IDE0OjU4OjM5IDIwMTIgKzAxMDAKCiAgICBGcmVlIHByZXZpb3VzbHkgYWxsb2NhdGVkIG1lbW9yeSBvbiBlcnJvcnMuCgpjb21taXQgNTk4ODRiYjRkMzVhZDEzNzQ3ZmZhNjcyMzQzNmRjYTU4N2E5YWI3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE3OjA5OjEyIDIwMTIgKzAxMDAKCiAgICBJbiBhYm92ZSBjb2RlLCBvbGVuZ3RoIGlzIGNoZWNrZWQsIHNvIGxldCdzIGNoZWNrIGl0IGFsc28gaGVyZS4KCmNvbW1pdCBiYTVkNTI5MmIwNDM5M2IwYzdkN2Q3ZWQ5NjEyNDE5Mjk0MThjNmU0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTc6MDU6MTQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCBkYTJkNmE3MDI4YTEzYjllZGYzYTVjODQzMTRkMGYxZmVlZjc2NzE0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6NDQ6NTYgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMLgoKY29tbWl0IGY4ODA1NGE5YjY5YjZkZTI3NGY3YTE0YTU5YjQ3MzIzZTVlNGU0YzYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNjozNzozNSAyMDEyICswMTAwCgogICAgRG9uJ3QgZGVyZWZlcmVuY2UgY29udGV4dCBpZiBpdCdzIE5VTEwuCgpjb21taXQgN2M0ZDQ1OWU4ZjFmNjUyY2MyMDk4YzNkNGM4MWRlOTBhODRlZDcxMApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjMwOjA5IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZWZlcmVuY2UgTlVMTC4KCmNvbW1pdCBmYzE5YjdmMzNiNTg3OTI3ZDJhMDFlNzJkMjNkMjFiOWIxNjk2YWIzCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MjU6MjYgMjAxMiArMDEwMAoKICAgIERvbid0IGNsb3NlIE5VTEwgZmlsZS4KCmNvbW1pdCA1ZTk1Y2E2NzkwMDc2Yjc4ODA3MmE4MDFlZTdjODI5NjlkOTk1YmNiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTc6MDkgMjAxMiArMDEwMAoKICAgIFByZXZlbnQgZGVyZWZlcmVuY2luZyBOVUxMIHdoZW4gYSB0cmFuc3BvcnQgZG9lcyBub3QgaGF2ZSBmX2ZtdGFkZHIuCgpjb21taXQgZWVkNmY1ZjliOWFlNTRkMmNlYWI2N2FkODVhZGRlMWY2YThhMjFkNQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjEzOjEzIDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRlcmVmZXJlbmNpbmcgTlVMTC4KCmNvbW1pdCA0MWNkZTY4YjVmYTRiMzhkODE0NTBjZjkxZTA4MmNkZmE4MjVlN2NmCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTY6MTA6MTAgMjAxMiArMDEwMAoKICAgIENoZWNrIGlmIGEgcmVnaXN0cmF0aW9uIHdhcyByZWFsbHkgZm91bmQuCgpjb21taXQgNWI3MmE0MDg1Mzg3NmExODZlZmNjMDA5MGE0ZTMyYzIzNWI5YzA1ZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE2OjAzOjU4IDIwMTIgKzAxMDAKCiAgICBEb24ndCBkZXJlZmVyZW5jZSBOVUxMIHdoZW4gZGlmZmxlbiBpcyBTTVVYX01BWF9QUklPUklUWSAod2hpY2ggaXMgaGlnaGx5IHVubGlrZWx5LCBidXQuLi4pCgpjb21taXQgZmE2YTkxMmU0MWM1ZDBmZDJhNjM2ODk0ZTg2YjY0MjZjMDczNzVhYgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE1OjM3OjQ0IDIwMTIgKzAxMDAKCiAgICBDaGVjayBmb3IgbWlzc2luZyB2YWx1ZSBpbiBzZXRFdmVudC4KCmNvbW1pdCA0MTBiNzFkYTQyNTM4OWZlY2MyNWQxNGY0OWYyMzc1MzU4MTU3NmFkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6Mjg6NDEgMjAxMiArMDEwMAoKICAgIERlcmVmZXJlbmNlIGVyZWcgb25seSBpZiBpdCBpcyBub3QgTlVMTC4KCmNvbW1pdCAxODUyNzJkMWEwYjkxMzc3NDE4NmYxYjkxMzVhZWFmNjM3ZWJlZDUyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTU6MTc6MjEgMjAxMiArMDEwMAoKICAgIEFzIHBlciBhYm92ZSBjb2RlLCB0ZW1wbGF0ZV92MnBkdSBjYW4gYmUgTlVMTCwgc28gY2hlY2sgaXQgYmVmb3JlIGRlcmVmZXJlbmNpbmcuCgpjb21taXQgNDhlNWVhZDNmZDJjMmIzODVkZjY5NzJjNjc1MjZmZjZiZGMzMDc2OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjQyOjIyIDIwMTIgKzAxMDAKCiAgICBVcGRhdGVkIGxhc3QgZml4IHRvIG5ldyBlcnJvciByZXBvcnRpbmcgc3R5bGUuCgpjb21taXQgZjMzZDMzNjE1ZDZkODVkMDA3MzcyNjQ3M2M0MTQ2Y2JjZGYxMWNlZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDE0OjMwOjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBzaWdzZWd2IHdoZW4gZW1wdHkgY29uZmlnIGxpbmUgaXMgcGFyc2VkLgoKY29tbWl0IGI1ZGYxZWViNDdlZDM1NTliNmY0ZDllY2NjZGIyNDIxMjZlNmM5OTIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxNyAxNDoxMTo1OCAyMDEyICswMTAwCgogICAgRml4ZWQgKGhpZ2hseSB0aGVvcmV0aWNhbCkgc2lnc2VndiB3aGVuIHNwLT5zZWN1cml0eUVuZ2luZUlEIGlzIE5VTEwuCgpjb21taXQgNmZlZWQ2MjlhNzE4OTljMTEzMDk2OTU5ZDg1NDlkYzEyMDFlOGY5YQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDE3IDEzOjQzOjM3IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBOVUxMIGFuZCBsZW4gY2hlY2sganVzdCBpbiBjYXNlIHNvbWVvbmUgcHJvdmlkZXMgdmFsdWUgPSBOVUxMIGFuZCBub3plcm8gbGVuICgtPiBOVUxMIGlzIHRoZW4gZGVyZWZlcmVuY2VkKS4KCmNvbW1pdCAzNTVjNWFiMjY0YWYyYTYwMjBhMWQ4YTkyM2Y4MGYxMWI5NDIyOTVlCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTcgMTM6MzY6NDEgMjAxMiArMDEwMAoKICAgIEV4dGVuZCB0aGUgTlVMTCBjaGVjaywgaS5lLiByZXR1cm4gaWYgdGhlcmUgaXMgbm90aGluZyB0byByZW1vdmUuCgpjb21taXQgZGRkNzk0OGFjYWQ5MzhjZDQyOTc0NTA1ZGRjYTRmMDM3MjExNjcwOQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMTE6MTE6MjkgMjAxMiAtMDgwMAoKICAgIHVwZGF0ZSBzcGFydGEncyBjb3B5cmlnaHQKCmNvbW1pdCA0MTI1NjA4NmE3YTUwNDE0NTM0MTljZmQ2ZTU2MmM3YjU1YzU2YjBhCkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIEphbiAxNiAxMDozMjowNCAyMDEyIC0wODAwCgogICAgcHVsbGVkIGZ1bGwgY29weSBvZiBleHRyYWN0bmV3cyBmcm9tIG1hc3RlcgoKY29tbWl0IDYyNWE3MGRiZGZkOTkwMmRhNzllZmEyOTNmZTZkMmFjOGNjZjJiMmUKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gSmFuIDE2IDEwOjI0OjE5IDIwMTIgLTA4MDAKCiAgICB1cGRhdGUgdG8gY2hhbmdlIHRvIHRoZSBuZXdlciBsb2cgZ2VuZXJhdGluZy9wYXJzaW5nCgpjb21taXQgNjJlMzJiMTMwODliMjllZGNmMjc2ZjYxNWRhNjdlNDUwOGZlN2JiNQpBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBKYW4gMTYgMDk6Mjk6NDIgMjAxMiAtMDgwMAoKICAgIGNvbmZsaWN0aW5nIG1lcmdlIGZyb20gbWFzdGVyIGZvciBleHRyYWN0bmV3cwoKY29tbWl0IDcwMDg0ZGE2MWQyYmNiZDJjZjFlZDgxYmRjM2JmNjc5NGMyYWZmYjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDEzIDExOjQ5OjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRElTTUFOLVNDSEVEVUxFUi1NSUI6IEhhbmRsZSAzMi1jaGFyYWN0ZXIgc2NoZWRDb250ZXh0TmFtZSB2YWx1ZXMgY29ycmVjdGx5LgogICAgCiAgICBTZWUgYWxzbyBjb21taXQgYjNjNDk4MjU0MmUwYWIxNTFmYjM4ODQ3NTRjZGZiY2I0NzJkYTUyZC4KCmNvbW1pdCAwNGJmM2UyODgxNThlZTg4MGVkZjIzN2U0MDA3ZmVlMzdkMjA0NGRkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTU6Mzk6MzcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGVuZGxlc3MgbG9vcCB3aGVuIFNTTF9yZWFkIHJldHVybnMgZXJyb3IuCgpjb21taXQgYzE1MjZmY2NjMDQ3NGMxZGIxOGNhYTlkYmI4MzM4NTNjZGRkZTNjYwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjEzOjIxIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8uCgpjb21taXQgYTI3YWExOWRmMjgzMTU2YzAzMmM4MWVhZWU1ZTExNTg1OWQzOGMxNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjExOjMyIDIwMTIgKzAxMDAKCiAgICBEb24ndCByZXBsYWNlICdyYycgdmFyaWFibGUsIGl0J3MgdmFsdWUgaXMgbmVlZGVkIG91dHNpZGUgdGhlIGxvb3AuCgpjb21taXQgOTg1ZGZmMmIwODc2ZDk0ODNjNDE0ZmNjZWEzZWY2YmM2M2UxNDU2MQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE1OjAxOjMyIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlLgoKY29tbWl0IDJmZDc4MTgzMThlN2E1ZGZlOThmNTJjY2Y3NTBjMmE2M2U4MjVkZWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxNTowMDoyMiAyMDEyICswMTAwCgogICAgUmVtb3ZlZCBkdXBsaWNhdGUgY29kZS4KCmNvbW1pdCAxNWYyMTEzMGJhMzNkYzlhZmQxNjRlNTJkZmQ3NGM5Y2VjMGU5MjMyCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBKYW4gMTIgMTQ6NTg6MTQgMjAxMiArMDEwMAoKICAgIFJlbW92ZWQgZHVwbGljYXRlIGNvZGUuCgpjb21taXQgMmE4YThmMmFiN2NkNzU4MjZjNWQ0MWVjM2NmZDVjZTNlOTYzNGNmMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjM5OjI4IDIwMTIgKzAxMDAKCiAgICByZW1vdmUgZGVhZCBjb2RlLCAnY3AnIGlzIGFsd2F5cyAhPSBOVUxMIGhlcmUuCgpjb21taXQgMzhmZDYzNzhjYzMyNzUxODBmNjNiOGQ5YjlhNDA3MmIzZGFiZjhlNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjI1OjA2IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8uCgpjb21taXQgZWJkOTJlMTliMTBjMGEzOGUxN2NkZTQwNzg2NGI0NWMyNmUxNzMyNwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDE0OjA3OjQzIDIwMTIgKzAxMDAKCiAgICBSZW1vdmVkIHVubmVjZXNzYXJ5IGlmICh2YWx1ZSkgY2hlY2sgLSB2YWx1ZSBpcyBjaGVja2VkIGZldyBsaW5lcyBiZWZvcmUuCgpjb21taXQgYzVjYWNmNWNhZjk3OWQwMThlYTZjYWUxYzAzYjhmZGYwYjExOGRmZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQ0OjQzIDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IGRvdWJsZSBmcmVlKCksICdkaXJuYW1lJyBpcyBhbHJlYWR5IGZyZWVkIGluc2lkZSBzZV9hZGRfcGFpcl90b19saXN0KCkgaWYgaXQgZmFpbHMuCgpjb21taXQgYWNkY2ViNTBlYTY2ZDZiMzIzYzc0ZWUwMjFmYjc3ZTgxMGU0ZTdhZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgSmFuIDEyIDEzOjQzOjE5IDIwMTIgKzAxMDAKCiAgICBQcmV2ZW50IG1lbW9yeSBsZWFrIHdoZW4gbWFsbG9jIGZhaWxzLgoKY29tbWl0IDE3MDUzZTM0Y2ZlOWE4YWIzOTVmYjUwZjVjM2YxZGFmYzcyNDdhZWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IEphbiAxMiAxMzozMjo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgZG91YmxlIGZjbG9zZSgpLgogICAgTGludXggbWFuIHBhZ2UgZm9yIGZjbG9zZSgzKSBzYXlzOiBJbiBlaXRoZXIgY2FzZSBhbnkgZnVydGhlciBhY2Nlc3MgKGluY2x1ZGluZyBhbm90aGVyIGNhbGwgdG8gZmNsb3NlKCkpIHRvIHRoZSBzdHJlYW0gcmVzdWx0cyBpbiB1bmRlZmluZWQgYmVoYXZpb3IuCgpjb21taXQgYTY2NDFlZGI5Y2I3NGZjMjIzNmI0MmNlNTU1NGZjMzMyOTk1NjU1MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTU6MjI6MzQgMjAxMiArMDEwMAoKICAgIE1pbkdXOiBTa2lwIHRlc3QgVDA2NSBpZiBub3Qgc3RhcnRlZCBmcm9tIGluc2lkZSBhbiBNU1lTIHNoZWxsCgpjb21taXQgYTg4M2VmMTk4MmYzMDFiMTQ4NWQyMjczMDE2NzQ5MjczMzBmNWI2NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDExIDE1OjE0OjUzIDIwMTIgKzAxMDAKCiAgICBNb3ZlZCBkZWJ1ZyBvcHV0cHV0IGJlZm9yZSByZXR1cm4uCgpjb21taXQgNDU3NTE5NjcyODdkOTc2NDBlZmRjZGY4ZTc3ZThkNDkwOTM5ZDhlYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTQ6MTc6MTggMjAxMiArMDEwMAoKICAgIENvbnZlcnQgc3RydG91bGwoKSB1bml0IHRlc3QgaW50byBhIE5ldC1TTk1QIHVuaXQgdGVzdAoKY29tbWl0IDJjMmZhNDgzMzZhNGYxZjE3N2MyOTkxZDY1MTVkMjlmMzk1MzNjNDQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDEzOjUwOjQ0IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nX2NvbnN0KCkgdW5pdCB0ZXN0IGludG8gYSBOZXQtU05NUCB1bml0IHRlc3QKCmNvbW1pdCAwN2M2NjZmNmNlYTI3ZjJiMmFiOWJjMDhhZWQwY2I2MTMzZmUzNzU4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gMTEgMTM6MTc6NDUgMjAxMiArMDEwMAoKICAgIEZpeGVkIGNvbW1pdCA3M2E1MjNlNDY4Mjc3ZjZkZjJlOTg0ODkxMzEzYjhiZThiY2UxOTIxOgogICAgRmlkZXggZGVyZWZlcmVuY2luZyBrZXktPmluZm8gd2hlbiBrZXkgaXMga25vd24gdG8gYmUgTlVMTC4KCmNvbW1pdCAzYjY4NjU2NjI5NmRkODdiYzQyYjdmMTE2OWRhYWNkYjNjNDVjYzU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAxOCAwNjoyNTo1NiAyMDEwICswMDAwCgogICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRob3V0IHdhcm5pbmdzIHdpdGggTVNWQyA2LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0ODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgZjNhN2QxYjA5NjA5ZGFkNjQ5ZjU4YmJkYjViN2UxMGQzOWIzOThjMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBPY3QgMTcgMTE6MDQ6MDYgMjAxMCArMDAwMAoKICAgIEZvbGxvdy11cCBmb3IgcjE5NDc2OiBmaXhlZCBhIHR5cG8uCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTQ3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAyZGU3M2JkMzY1YTM4MWI5YzM1M2NhNTIzMDc2OWVlZmIxYWM3MWVkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMTo0Mjo0MiAyMDEyICswMTAwCgogICAgbG9jYWwvcGFzc3Rlc3Q6IFJlbW92ZSBhbiBpbmNvcnJlY3QgUEFUSD0gc3RhdGVtZW50Cgpjb21taXQgNjk5NTEzZjEyMzhlMGFkY2UxZjFjZWM5OGUwZDE0NzI5M2ZjNTA0NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBPY3QgMTcgMDk6MjU6NTEgMjAxMCArMDAwMAoKICAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCktcmVsYXRlZCBjbGVhbnVwLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk0NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgNjM1OGRlZTcyZmIzNDdlMjYwMGEwYTdiZDIxZjIzMjcwZDNhMDBmNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMTA6NTg6MTUgMjAxMiArMDEwMAoKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6IEFkZCBhIGNvbW1lbnQKCmNvbW1pdCA1Mzk2YmZlMDMyYzhjYmM3M2M4ZmY1ZDRiMDg1ZWJhZGE5ZjU5ODQ2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDozMDoxNiAyMDEyICswMTAwCgogICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKCmNvbW1pdCBmZWIzYWYyOGRjYWUyMjAxNWFlODY1YTJlNWRkOGM0MTZlOTk5MWQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiAxMSAxMDowMjowOCAyMDEyICswMTAwCgogICAgUmVwbGFjZSBzdHJuY3B5KCkvc3RybmNhdCgpIGJ5IHN0cmxjcHkoKS9zdHJsY2F0KCkKCmNvbW1pdCBiN2UxYWEyNTViYWU0YTM0NTNmOWVjYTY0NGE4NzY2MzQzNTFmMTFkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgU2F0IE1hciAyMCAxOTozNjoyOCAyMDEwICswMDAwCgogICAgQ0hBTkdFUzogbGlic25tcDogY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZm91cnRoIGFyZ3VtZW50IG9mIG5ldHNubXBfc2V0X3Jvd19jb2x1bW4oKSBmcm9tIGNvbnN0IGNoYXIqIHRvIGNvbnN0IHZvaWQqIHN1Y2ggdGhhdCBubyBjYXN0IGlzIG5lY2Vzc2FyeSB3aGVuIHBhc3NpbmcgYW5vdGhlciBkYXRhdHlwZSB0aGVuIGNoYXIqIG9yIGNvbnN0IGNoYXIqLgogICAgQ0hBTkdFUzogV2luMzI6IGNoYW5nZWQgaW5fYWRkcl90IGZyb20gdV9pbnQgdG8gdV9sb25nIHN1Y2ggdGhhdCBpdCBtYXRjaGVzIHRoZSBkYXRhdHlwZSBvZiBzb2NrYWRkcl9pbjo6c2luX2FkZHIuCiAgICBBbHNvLCBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIChtb3N0bHkgY2hhciAqIDw+IHVfY2hhciAqIG1pc21hdGNoZXMpIGFuZCByZW1vdmVkIHNvbWUgY2FzdHMuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE4MzQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAogICAgCiAgICBDb25mbGljdHM6CiAgICAJYWdlbnQvYWdlbnRfcmVnaXN0cnkuYwogICAgCWFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgCWFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwogICAgCWFwcHMvc25tcHRyYXBkLmMKICAgIAlzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jCiAgICAJc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiAgICAJc25tcGxpYi9zeXN0ZW0uYwoKY29tbWl0IGY0N2EzNzUyODQ5ZGIwNzVlNmYyMDUzYjg1OTViN2I3OTJmYjY0NjIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgT2N0IDE1IDEwOjU2OjA5IDIwMTAgKzAwMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IEJ1aWxkcyBub3cgY29ycmVjdGx5IHdpdGggYSA2NC1iaXQgY29tcGlsZXIuCiAgICAKICAgIGdpdC1zdm4taWQ6IGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5NDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKY29tbWl0IDAyYjYwNTZkZjk1ZGE4YjY3MzAzNGUzOWMyYzdjMzg2ZWQwZjM2OWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDExOjQ0OjUzIDIwMTIgKzAxMDAKCiAgICBGaXggYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGNhc3RpbmcgYXdheSBjb25zdAoKY29tbWl0IGExOTg2NTgzMmZjNzdmNGMwNDgxNDRkOTFhNDMxYjFlOTRkMzI5ZjIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCAxNCAyMzoxMjowNSAyMDA5ICswMDAwCgogICAgQ0hBTkdFUzogYXBwcywgc25tcGxpYjogUEFUQ0g6IDI4MzU1Nzc6IGlkZW50aWZpZWQgYnkgIkJhcnQgVmFuIEFzc2NoZSI6IFJlcGxhY2UgU05NUF9aRVJPIG9mIGFycmF5cyB3aXRoIGEgbWVtc2V0LgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzc5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCA2N2EzZTJlY2NiOTVmOWM5ZDA4MDllZmNiZGRjZDg2NmVlMzA2MmQ1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDE0OjI3OjE1IDIwMTAgKzAwMDAKCiAgICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxNzk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCAzZGNkZTJlOGE1OTVhNTI3ZjA2MTQyYzNiODUyZGU4NDMzYTFjZjI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFN1biBKYW4gMjQgMTQ6Mjc6NTUgMjAxMCArMDAwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFByZXZlbnQgZ2NjIHBlZC13YXJuaW5nIGZvciBORVRTTk1QX1JFTU9WRV9DT05TVAogICAgCiAgICBnaXQtc3ZuLWlkOiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxODA1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCmNvbW1pdCBjMmUxNTI1YTg1YmRhNTI5OWEzYjlmMjQxNjE0ZjdlNjUwOWFlZWJhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA2IDEzOjM1OjExIDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgMjk1ZjQ3M2M4MzU0NjIyMWIyYTcxZDgxNWM2MWUzM2E2N2Y5OGFlMzogcmVmaW5lIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgaW1wbGVtZW50YXRpb24uCgpjb21taXQgY2I0MjNiMGFlOWVkMDA1OWFhMTAwZGM0ZTJmZDkzYWQxYjk3ZmFmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNiAxMTo1Nzo1MSAyMDEwICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGUyZmIwOWUwMDkzZTJmNjQ4ZmUyNjM4ZGEyZjNhZjE4ZmRiMzJiZjAgLSBpbnRyb2R1Y2UgTkVUU05NUF9SRU1PVkVfQ09OU1QoKS4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCWFnZW50L3NubXBfcGVybC5jCiAgICAJc25tcGxpYi9zbm1wX3NlcnZpY2UuYwoKY29tbWl0IGFmYzM5NmFiMTYxOGE4NTk1YTI1MTlmYmMyNWY3YTQ5OGUxNzQ0MTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDExIDA4OjQ5OjM0IDIwMTIgKzAxMDAKCiAgICBVbmJyZWFrIG5ldHNubXBfbWt0ZW1wKCkgYW5kIG1ha2VfdGVtcCgpLgogICAgCiAgICBUaGVzZSB3ZXJlIGJyb2tlbiBieSBjb21taXQgYmI4ZmNiYjg3NDk5ODAwMGY5NDVmMDU4ZDFhYTZmZTE0ZTkyNTg5OS4KICAgIEFsc28gcmVwbGFjZSBhIHN0cm5jcHkoKSBjYWxsIGJ5IGEgY2FsbCB0byBzdHJsY3B5KCkgYW5kIHJlcGxhY2UgdGhlCiAgICBtYWtlX3RlbXBmaWxlKCkgaW1wbGVtZW50YXRpb24gYnkgYSBjYWxsIHRvIG5ldHNubXBfbWt0ZW1wKCkuCgpjb21taXQgMjEwMTg1YzE1ZDBkNjVmMGVhOThiNWUzYzJlMDc3NmY2MjIyZDE3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDg6Mjc6NDMgMjAxMiArMDEwMAoKICAgIEZpeCBhIGNyYXNoIGR1cmluZyBzdGFydHVwIG9mIHNubXBkIGludHJvZHVjZWQgYnkgY29tbWl0IDg4NTA2MTY4N2Q5Y2FhMzg0NzA5Nzk2NjdkN2Q4YWQ2NTYzY2VkYWQuCiAgICAKICAgIEFsc28sIG1ha2Ugc3VyZSB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGNvcHkgb2YgdGhlIGNsZWFudXAgY29kZSBpbiBmdW5jdGlvbgogICAgbWtkaXJoaWVyKCkuCgpjb21taXQgOGJiNGU4NmFiY2Y5OGZmMjg3NDhhZjBhZjg5Yzk4ZTY0ZDVjZDk2MQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFdlZCBKYW4gMTEgMDc6NDc6MTIgMjAxMiArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIG9sZG1hc2sgdmFyaWFibGUuCgpjb21taXQgNjY4MDE0N2IxMzhlYzExNGY4MWM1ZDEyOGFjOTM1MGM4NDUwZDA4MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTg6NDQ6MzEgMjAxMiArMDAwMAoKICAgIE1ha2UgdGVzdCBUMDE1aW50NjRfY2xpYiBwYXNzIG9uIDY0LWJpdCBzeXN0ZW1zCgpjb21taXQgM2FhZDE1YWU1NjBhYzg1N2U3M2M5MDc2NGU5MDNlN2NhMDJiMzI5NQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjQwOjU5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgZm9yIGxhcmdlIE9JRCBuYW1lcwoKY29tbWl0IGZiYTE4OGVlODIwMTBiMmYyZDhjYTJlNDI2YmE2NTQ0OTlhYjNkMGEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTozMTozMyAyMDEyICswMTAwCgogICAgZml4ZWQgYnVmZmVyIG92ZXJmbG93IGluIF9fY29uY2F0X29pZF9zdHIKCmNvbW1pdCAyMWQyNWQ4NmI4ZTQ5MDRkNzk4ZGM4Yzk2ZGFkZTllNTA0ODQ1N2E4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTU6MjY6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHBhcnNpbmcgcG9ydCBudW1iZXJzLgoKY29tbWl0IGQzNjkzMTg0MWIyZmMyY2ViYzYzNjRiMjk0OTEyOWEwYWQ0MmFkMWQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxNTowNTo1MSAyMDEyICswMTAwCgogICAgRml4ZWQgYSBidWZmZXIgb3ZlcmZsb3cgd2hlbiBsYXJnZSBTdW1GaWxlIGlzIHVzZWQuCgpjb21taXQgMGVmZGQwMjJkYTA5YWYxYjVlMTYxNzFmYTdhMmI1MjNjNWQ2ZWM1OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE1OjAxOjUzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiB0b28gYmlnIHRlbXAgZmlsZSBwYXR0ZXJuIGlzIHVzZWQuCgpjb21taXQgNTYwYmM2YzA5Yjc1MTU1NmVmZDZiNGM0NDk1NzUxYjEwOWE5M2Y5MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjU5OjI0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3csIGp1c3QgdG8gYmUgc3VyZS4KCmNvbW1pdCA4MjkxZDdjNWI5MmEzMWRkNGY1ODJiNDk3ZDRiMmEwODUzMzY3YTU2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NTU6MTYgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdy4KCmNvbW1pdCA4OGUxZjM0ZGU3MzAwNTc1ZmE2ZGFiODU3ZWNkZGIyNDJhODdkZTgwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDg6NTUgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KCmNvbW1pdCBiZTEzNzVhOTkyNmViZTBjZDViNzhhNDA0NWMzYmQxMWM4MzY2NGIxCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6NDY6NDkgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGEgc2Vuc29yIG5hbWUgaXMgdG9vIGxvbmcuCgpjb21taXQgMWNiMjQ2MjUzNzIwNjJiMTRjNzFkN2RkNTFlMjBmZWY3NzNlMjc0MwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjQxOjAwIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBhIENQVSBoYXMgdG9vIGxvbmcgbmFtZS4KCmNvbW1pdCA4NGM4MDdlZTAzMjUxZTU0ODU2ZTgzZDYyZDA2ZWEwOGI4ZGY1MjdhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MzY6NTAgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBsb25nIGludGVyZmFjZSBuYW1lcyBhcmUgdXNlZC4KCmNvbW1pdCBjMzEwZTM5MGI1ZGQwNWYyNGJlN2ViMTkwNGM3NGU0MTI1OWM5M2RiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MjQ6NTQgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIHRvbyBiaWcgdGVtcCBmaWxlIHBhdHRlcm4gaXMgdXNlZC4KCmNvbW1pdCA0NjAwZDExNDM0ZTgzYjg2NTNjZjlmODEzYTNkOGI2MzA0NTViNDJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMTAgMTQ6MTc6MDggMjAxMiArMDEwMAoKICAgIEZpeGVkIHBsYXVzaWJsZSBzdHJpbmcgb3ZlcmZsb3cgYmVmb3JlIHBhcnNpbmcgY29tbWFuZCBsaW5lIG9wdGlvbnMuCgpjb21taXQgODg1MDYxNjg3ZDljYWEzODQ3MDk3OTY2N2Q3ZDhhZDY1NjNjZWRhZApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDE0OjExOjAyIDIwMTIgKzAxMDAKCiAgICBHZXQgcmlkIG9mIChpbnNlY3VyZSkgU05NUF9NQVhQQVRIIGluIG1rZGlyaGllcigpCgpjb21taXQgODAxNjg5MGE0NDVmNmE3ZTJhODczYTA0ODczZDRlMjdiNmVlNjRlMwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjQ4OjM0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBpbnRlZ2VyIHNpemUgb24gNjQgYml0IHBsYXRmb3JtLgoKY29tbWl0IGJiOGZjYmI4NzQ5OTgwMDBmOTQ1ZjA1OGQxYWE2ZmUxNGU5MjU4OTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzozMTozNiAyMDEyICswMTAwCgogICAgU2VjdXJlIG1rc3RlbXAoKSB3aXRoIHVtYXNrKCkgLSBvbiBzb21lIGltcGxlbWVudGF0aW9ucyBpdCBkb2VzIG5vdCBzZXQgMDYwMCBwZXJtaXNzaW9ucyBhdXRvbWF0aWNhbGx5LgoKY29tbWl0IDIwMjUyM2NhNzA0YmQ3MjJkYzFhYzBlMWU2YjBlNGI0ZTU0MjQ0OTUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAxMCAxMzoxMTo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgZGVyZWZlcmVuY2luZyAnYycgYmVmb3JlIE5VTEwgY2hlY2suCgpjb21taXQgNzNhNTIzZTQ2ODI3N2Y2ZGYyZTk4NDg5MTMxM2I4YmU4YmNlMTkyMQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgSmFuIDEwIDEzOjA4OjI0IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIGtleS0+aW5mbyB3aGVuIGtleSBpcyBrbm93biB0byBiZSBOVUxMLgoKY29tbWl0IDJmNGU2YWNkNzE0MTgzZjAxNWI3NjM2NTdmOGYwODQ1OTMzNTdlMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDEwOjM4OjE2IDIwMTIgKzAxMDAKCiAgICAuZ2l0aWdub3JlOiBJZ25vcmUgcGVybC8qLnltbCBmaWxlcwoKY29tbWl0IGMzNjVkODBjMTZjMmQxN2IxNjAwMTFlOGMxZjljYjk1ODk1NGU5ZGIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDEwIDA4OjM0OjE2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wdHJhcGQ6IERvIG5vdCBpbnZva2Ugc2h1dGRvd25fcGVybCgpIGZyb20gaW5zaWRlIHRoZSBTSUdURVJNIGhhbmRsZXIgc2luY2UgdGhhdCBmYWlscyBpZiBTSUdURVJNIGlzIHJlY2VpdmVkIHdoaWxlIGEgUGVybCBoYW5kbGVyIGlzIGFjdGl2ZS4gQmFzZWQgb24gYSBwYXRjaCBwb3N0ZWQgYnkgSm9lbCBBdm5pIDxqYXZuaUBhcnViYW5ldHdvcmtzLmNvbT4KCmNvbW1pdCBkMDU5ZmI4NzhiMTQzNjU5OTk1M2NlYTVhMDc3NDk5ZGRjZGNiY2I1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE3OjAzOjU1IDIwMTIgKzAwMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NDA3NTI6IElGLU1JQjogUmVwb3J0IGludGVyZmFjZSBzcGVlZCBjb3JyZWN0bHkgZm9yIEV0aGVybmV0IGludGVyZmFjZXMgaWYgb3RoZXIgdGhhbiAxMCBNYnBzLCAxMDAgTWJwcywgMSBHYnBzLCAyLjUgR2JwcyBvciAxMCBHYnBzLiBBZGQgc3VwcG9ydCBmb3IgTklDcyBmYXN0ZXIgdGhhbiA2NSBHYnBzLgoKY29tbWl0IGMwOTkwM2E0MmU5ZDk3MzMxZmQ5ZTQ4ZWU4MzFhODVhZmRmOWM3MGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gSmFuIDkgMTM6MjY6MTcgMjAxMiArMDEwMAoKICAgIERveHlnZW4tc3R5bGUgZG9jdW1lbnRhdGlvbiBmaXhlcwoKY29tbWl0IGUzMjVlY2JmY2U3N2YwMGFjNWNmNmZiZDk1N2Y5NTQ5NWY2MWM1OWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gSmFuIDkgMTM6MjU6MTAgMjAxMiArMDEwMAoKICAgIFN1cHByZXNzIHVuaW50ZXJlc3RpbmcgRG94eWdlbiB3YXJuaW5ncwoKY29tbWl0IGJlOTE2MWQzYTU4OThlODYzNzY3ZjkyNjYxMzQ4NjEyNmMyY2JmNjcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTI6MzU6MzkgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFNpbXBsaWZ5IGltcGxlbWVudGF0aW9uIG9mIGZ1bmN0aW9ucyBtYW5pcHVsYXRpbmcgNjQtYml0IG51bWJlcnMuCgpjb21taXQgODZlNGMyYmUwODUyYTBhMTNiMDYwMzA3NTcyMGIzMjY0ZWM3MGRkZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxMjoyOToxMSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBpdCBleHBsaWNpdCB0aGF0IE1BWF9TVUJJRCBpcyBhbiB1bnNpZ25lZCBjb25zdGFudAoKY29tbWl0IDM3ZTI3MmQ4ZjdiNzE4MGJhMTQwZmEzODZhNWZmMDU4OTY4YTA4YTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTg6MjE6NDggMjAxMiArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBJRi1NSUI6OmlmVHlwZTogUmVwb3J0IHR5cGUgImluZmluaWJhbmQgKDE5OSkiIGZvciBJbmZpbmlCYW5kIGludGVyZmFjZXMgaW5zdGVhZCBvZiB0eXBlICJvdGhlciAoMSkiLgoKY29tbWl0IDI2OTkzMmZhMzJjN2NkNDc5NTc0ODk2OThlMDliZWUzMWY2M2I3YWYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTQ6MzQ6NDIgMjAxMiArMDEwMAoKICAgIEZpeCBhbiBNU1ZDIGNvbXBpbGVyIHdhcm5pbmcKCmNvbW1pdCAwZDFjMjFmOTk5MWQxMzA5ZDA1N2UzZTQwNTZkNTQ3ZGY3ZDQwZWNmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE2OjA2OjMxIDIwMTIgKzAxMDAKCiAgICBNYWtlIGRlY2xhcmF0aW9uIGFuZCBkZWZpbml0aW9uIG9mIHN0cmxjYXQoKSBjb25zaXN0ZW50LgoKY29tbWl0IDBjM2Q0ZGJiMGE5Y2Y1YjM1OWY3MGIyZjE5OTE1NDk1NTU0Zjg0MGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMTU6MjM6MTYgMjAxMiArMDEwMAoKICAgIENIQU5HRVM6IFdpbjMyOiBzbm1wZDogUmVtb3ZlIGRsbW9kCgpjb21taXQgODkzZWNjOTdiNTg3NjYxMDQ1YmVjYmUwOWEzMjBjMWJjYmM3MWM3YwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBKYW4gNiAxNDozNjo1OSAyMDEyICswMTAwCgogICAgQWRkIHN0cmxjYXQoKSB0byB0aGUgTVNWQyBidWlsZCBpbmZyYXN0cnVjdHVyZS4KCmNvbW1pdCAzZDEyNjQyMmU2MjU3MDJiOWQzZmEwNjc2YTk3ZWM1Y2IyMGQ5ZDEwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE1OjAxOjA2IDIwMTIgKzAxMDAKCiAgICBNYWtlIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oIGNvbnNpc3RlbnQgd2l0aCBpdHMgLmluIGZpbGUKCmNvbW1pdCBhZjUzYjc2YzJmZmE3NTFlMzk1OGQwZmM1ZDgyNzlmNzhjMmMxYzI2CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIEphbiA2IDE0OjQzOjU1IDIwMTIgKzAxMDAKCiAgICBTa2lwIFQwNjZwYXNzX3NpbXBsZSBhbmQgVDA2N3Bhc3NwZXJzaXN0X3NpbXBsZSBvbiBNaW5HVwoKY29tbWl0IDM1YTkyZTY5M2QxMzNhNWIxMWU5ZTliNTk5ZGJmNDdlZGVmNDkzM2IKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgSmFuIDYgMDg6MTY6MzYgMjAxMiArMDEwMAoKICAgIFJlbW92ZSBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMgYWdhaW4sIHdoaWNoIHdhcyBhZGRlZCBhY2NpZGVudGFsbHkgd2hpbGUgcmVzb2x2aW5nIG1lcmdlIGNvbmZsaWN0cyAoY29tbWl0IDFkNzhmN2Q1YjU4YWVkMmI1MmM0ZDM4NmE3YmE4MGE0NDcxMWJhY2EpCgpjb21taXQgYTliMDczZWEzYjZjZWRmNzEzZTMwNWU3YjE1ZjI4YWU1N2JmZGYxYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAxNzo0NzoxMSAyMDEyICswMDAwCgogICAgRml4IDY0LWJpdCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IDdlODkwZGFkOTVmNTY2MDY5ZWUyODAyMTVhNGZlYTNmMGUyZTM5ODAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTY6Mzg6NTAgMjAxMiArMDEwMAoKICAgIEF2b2lkIGEgU0lHU0VHViBpZiBjcCA9PSBOVUxMLiBUaGlzIGlzIGEgZm9sbG93LXVwIGZvciBjb21taXQgMDg5YmNiMzYwYWEyNjc5MGFkMmE4Y2VkZGY1ODNiN2JhNWRkZmQ0OC4KCmNvbW1pdCAxZjYyMDBjZmUxYjBiMjdlYmIwOTNhMTYwNmI1OTJmOWU5Njg0YmU4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE1OjUzOjM0IDIwMTIgKzAxMDAKCiAgICBDb252ZXJ0IHN0cm5jcHkoKSBjYWxscyBpbnRyb2R1Y2VkIGluIHY1LjYKCmNvbW1pdCBjMzEyNmIxNDM5MjFmYWJlYWM0NDIxNjZlY2E1YjViNzQyZmQ0MmMwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDE1OjAyOjM5IDIwMTIgKzAxMDAKCiAgICBSZXBsYWNlIG1vc3Qgc3RybmNweSgpIGNhbGxzIGludHJvZHVjZWQgaW4gdjUuNQoKY29tbWl0IGIyNGVlN2M5MDk2NTdkYjQzYmQ4YzVkOGMwMTA1NWNhMDg4M2M5Y2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDg6NDA6MzkgMjAxMiArMDEwMAoKICAgIEVsaW1pbmF0ZSBtb3N0IHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGNhbGxzCiAgICAKICAgIFVzaW5nIHN0cm5jcHkoKSBhbmQgc3RybmNhdCgpIGlzIGVycm9yIHByb25lIC0tIHNlZSBhbHNvCiAgICBodHRwOi8vd3d3LmdyYXRpc29mdC51cy90b2RkL3BhcGVycy9zdHJsY3B5Lmh0bWwuIEhlbmNlIHJlcGxhY2UKICAgIGFsbCBpbnZvY2F0aW9ucyBvZiBzdHJuY3B5KCkgYW5kIHN0cm5jYXQoKS4gUmVwbGFjZQogICAgc3RybmNweShkc3QsIHNyYywgbikgY2FsbHMgYnk6CiAgICAqIHN0cmxjcHkoZHN0LCBzcmMsIG4pIGlmIHRoZSBnb2FsIHdhcyB0byBhdm9pZCBvdXRwdXQgYnVmZmVyIG92ZXJmbG93LgogICAgKiBzcHJpbnRmKGRzdCwgIiUuKnMiLCBuLCBzcmMpIHRvIGNvcHkgYSBwcmVmaXggb2Ygc3JjIHRvIGRzdCBvciBpZiBzcmMgaXMKICAgICAgICBub3QgJ1wwJy10ZXJtaW5hdGVkLgogICAgKiBtZW1jcHkoZHN0LCBzcmMsIG4pIGlmIHN0cmxlbihzcmMpID49IG4gYW5kIG4gPCBzaXplIG9mIGRzdC4KICAgICogc3RyY3B5KGRzdCwgc3JjKSBpZiBuID4gc3RybGVuKHNyYykgYW5kIG4gPCBzaXplIG9mIGRzdC4KCmNvbW1pdCA2ZDk1YmM0MTQ5NDcyOTMxMDA1NDc1YzMwYTU0MWZlZDU1MzRkYTM5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDExOjE5OjE2IDIwMTIgKzAxMDAKCiAgICBGaXggd2FybmluZ3MgdHJpZ2dlcmVkIGR1cmluZyBjb21waWxhdGlvbiBvZiB0aGUgUGVybCB4cyBzb3VyY2UgZmlsZXMKCmNvbW1pdCBiYWQwNjAwZjZlYzk0NGVmODQ1NWUzMjdjZTc4NGI5YjA3ZDI0N2M5CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IEphbiA1IDEwOjAwOjEzIDIwMTIgKzAxMDAKCiAgICBBZGQgY29uZmlndXJlIHRlc3QgZm9yIHNvY2thZGRyX3VuLnN1bl9wYXRoIHN1Y2ggdGhhdCB0aGUgY29tMnNlYyB0ZXN0IGlzIHJ1bgoKY29tbWl0IDkyYTMyYWM0ODY2YTVlZGM3ZjM0N2QzNzk0MmJmMDI4ZGUwMjc2MmYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSmFuIDUgMTA6MDA6MjkgMjAxMiArMDEwMAoKICAgIEdldCByaWQgb2YgYSBjb21waWxlciB3YXJuaW5nCgpjb21taXQgODNlNGMwZTMwNGY2MTdjY2FjNjYxMGVkZDc0ZDE3MDY3OTdiYmY1MgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNTozNyAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIGEgdGVzdCBmb3Igc2Vfc3RvcmVfbGlzdCgpCgpjb21taXQgNGZhZTU4NTIxMDNlYzM4OTNhZDQ4OGJjMGQ5MDVjYTY5MTQ1OTVlZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNzoxNSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2ltcGxpZnkgdGhlIHNlX3N0b3JlX2VudW1fbGlzdCgpIGltcGxlbWVudGF0aW9uCgpjb21taXQgYjMyMjJiYjI3NWYyZjIzNDZlMGZkMDQ3OGFmYTJlZmI2MDA3NzNlNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBKYW4gNSAwOToxNjo0NSAyMDEyICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogRGVjbGFyZSAidHlwZSIgYXJndW1lbnQgb2Ygc2Vfc3RvcmVfbGlzdCgpIC8gc2Vfc3RvcmVfc2xpc3QoKSAvIHNlX3N0b3JlX2VudW1fbGlzdCgpIGNvbnN0Cgpjb21taXQgMDIyZjg0MGZiZmNiMGUyNmIwOGYwZTU1NzI4MjMxZjYxMTQ5NTgwMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxOTo1NTo1NiAyMDEyICswMDAwCgogICAgQXZvaWQgdGhhdCBWYWxncmluZCBjb21wbGFpbnMgYWJvdXQgc2VuZGluZyBVRFAgZGF0YQoKY29tbWl0IDY3MmE4MDljMjI4ZTk1NTBiOTliODkxMGJlNzVkMGIxNjE5ODU0MDIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMTc6MzM6MDkgMjAxMiArMDAwMAoKICAgIEZpeCBhIDY0LWJpdCBjb21waWxlciB3YXJuaW5nCgpjb21taXQgMjRmZjI2MGFkODljZTJhYTM2MWE1NWM3YzcyZTkxNjAzMWRlZmUzNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNzoxMToyNCAyMDEyICswMTAwCgogICAgQ2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBzZWNvbmQgYXJndW1lbnQgb2Ygc25tcF9zZXRfdmFyX3ZhbHVlKCkgYW5kIHNubXBfc2V0X3Zhcl90eXBlZF92YWx1ZSgpIGZyb20gdV9jaGFyKiB0byB2b2lkKiwgbGlrZSBvbiBtb3JlIHJlY2VudCBicmFuY2hlcwoKY29tbWl0IGM2Y2E3MzdmYjQ2ZjkwYTRiZGE1ZDQzNzM0YWFjMzRlODM3YTA1ZjQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBTYXQgTWFyIDEzIDE5OjA3OjM3IDIwMTAgKzAwMDAKCiAgICBCYWNrcG9ydCBjb21taXQgZjUwNGNlMmQ3NGE0YmM4OGY2OGNjOTUxNWZhNzA1MzM3M2NiMTViNS4KICAgIChGaXhlZCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGNvZGUgaW4gdGhlIHBlcmwgc3ViZGlyZWN0b3J5LiBOb3RlOiB0aGVzZSBjaGFuZ2VzIG1heSBjb250YWluIHNvbWUgcmVhbCBidWcgZml4ZXMuKQogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlwZXJsL0FTTi9BU04ueHMKICAgIAlwZXJsL09JRC9PSUQueHMKICAgIAlwZXJsL1NOTVAvU05NUC54cwogICAgCXBlcmwvYWdlbnQvYWdlbnQueHMKCmNvbW1pdCBkMjEyZGM5ODRlYzM0ZTRkMjMwNjI1ZTQ2ZTU4YjBjNjI4YTUwZGY1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE2OjQ2OjQ5IDIwMTIgKzAxMDAKCiAgICBTTk1QLnhzIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXMKCmNvbW1pdCBiYWNlZWJiMTBkOGNhZjVkYjYzY2MzNjkzNWZlZDY1ZWU5MzEwMjlkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDE2OjIyOjQ0IDIwMTIgKzAxMDAKCiAgICBBZGQgZGVjbGFyYXRpb24gZm9yIHNodXRkb3duX3NubXBOb3RpZnlUYWJsZSgpCgpjb21taXQgZjdmOTY2YWJkNmQyODQ5YjEzMzEyNTJhZmU1YzQ3M2U1YzQwYjMyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxNDoyNDozMyAyMDEyICswMTAwCgogICAgRml4IGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoZXMuCgpjb21taXQgMzAzYzAxNWJjZmU5YWYwYjE1NGU5ODgxYzdiNGY0NDllMDhmMzBiYgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgNiAyMjowNjoyMyAyMDA5ICswMDAwCgogICAgQmFja3BvcnQgY29tbWl0IGQzZWIyYjVjZWQyMmE4NDgwMDUzY2U0M2FjZjk3Mzk3MjkwNTU0MDQKICAgIChTcHJpbmtsZSBzb21lIGNvbnN0LW5lc3Mgd2hlcmUgcmVsZXZhbnQgLyBmaXggZm9ybWF0IHN0cmluZyBtaXNtYXRjaGVzLAogICAgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KQogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMKICAgIAlhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKICAgIAlhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYwogICAgCWluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAogICAgCWluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3lzT1JUYWJsZS5oCgpjb21taXQgZDk1YjQwNDA2OTE2YmRhNWI0OGI1YTYxMzFiZWMyN2I4NjZiMGE3OQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBNYXkgNiAyMTo1OToyMCAyMDA5ICswMDAwCgogICAgQmFja3BvcnQgYTJhNzMxNmMzMTBmMGZjYzM3Mjg2NzNmYTA0NzA1MWMyM2I3MTk2MAogICAgKFRyaXZpYWwgd2FybmluZyBmaXhlcywgTmllbHMgQmFnZ2VzZW4sIE1heSAyMDA5KS4KICAgIAogICAgQ29uZmxpY3RzOgogICAgCiAgICAJYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKICAgIAlhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKICAgIAlhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYwogICAgCWFnZW50L3NubXBkLmMKICAgIAlzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYwoKY29tbWl0IGQ4NmM0N2YwMDNmZGMxOTJiY2U3YjQ2YWM0ZjA2YjA5ZTM4N2MxMmIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIEphbiA0IDEzOjI5OjA4IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBhIHR5cG8KCmNvbW1pdCBiZWU0ZDc5Y2Y0ZWI3ZTBhNDUzOTdmNTliNTI5OGRhNjMzYThlMWJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMzoxNDo1NyAyMDEyICswMTAwCgogICAgRml4ZWQgcmVhZGluZyBwYXN0IGVuZCBvZiBidWZmZXIuCgpjb21taXQgM2RjMGUwMGEyZmQ4ZTM0ZmUxYWUzM2VjYWJmMzZlMTQ2NDYwYTMxZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTI6NDA6MDcgMjAxMiArMDEwMAoKICAgIEZpeGVkIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGxhcmdlICd0b2tlbicgaXMgdXNlZC4KCmNvbW1pdCBiM2M0OTgyNTQyZTBhYjE1MWZiMzg4NDc1NGNkZmJjYjQ3MmRhNTJkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMjoyODo1MiAyMDEyICswMTAwCgogICAgRml4ZWQgb2ZmLWJ5LW9uZSBtZW1zZXQuCgpjb21taXQgMGY1MzY5NTA0NGRkM2YwYzM1MDc3NTNlM2Y4YzI5ZDk3ZTk2ODcyZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBBdWcgMyAyMTozODoyNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQsIHBlcmw6IEVsaW1pbmF0ZSBkZWFkIHZhcmlhYmxlcwogICAgCiAgICBDb25mbGljdHM6CiAgICAKICAgIAlhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKICAgIAlhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jCiAgICAJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMKICAgIAlhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYwogICAgCWFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jCiAgICAJYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiAgICAJYXBwcy9zbm1wdGxzLmMKICAgIAlhcHBzL3NubXB0cmFwZF9sb2cuYwogICAgCXNubXBsaWIvZGlyX3V0aWxzLmMKICAgIAlzbm1wbGliL3NubXBfY2xpZW50LmMKICAgIAlzbm1wbGliL3NubXBfb3BlbnNzbC5jCiAgICAJc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYwoKY29tbWl0IDAxNTM4MDVjOTliOTE5NzM2NTkzNWM1ZDExYWU5YzNkNGJmYWEwZjMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDk6NDg6NDEgMjAxMiArMDEwMAoKICAgIEZpeCBhIHNldC1idXQtbm90LXVzZWQgd2FybmluZwoKY29tbWl0IDNmODg4NWZiZWU5NDA3NzQ4ZmMyZjA1NzM3MjhhMTFiYTJiYzAyM2EKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEFwciAyOCAwNTo1MToxMyAyMDA5ICswMDAwCgogICAgUmV0dXJuIGEgdmFsdWUgZnJvbSBzcHJpbnRfcmVhbGxvY192YWx1ZSBldmVuIGlmIG5vIHN1YnRyZWUgaXMgbG9jYXRlZC4KICAgIAogICAgZ2l0LXN2bi1pZDogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTc1NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgpjb21taXQgYjFlYWFmMzAyMzY5ZmQ0NTUyZThmZWU3YjZhODA1MDkxZWMwYTliNApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTE6Mzg6NTEgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIGZpbmRfc2VjX21vZCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCBhZWU0ZTg5NWZlM2JkNWY0YTYxZTM0Mjc1YmZjYTAzNjhiNTYwNTU1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTozMToyMiAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2Ygc25tcF9zZXNzX3RyYW5zcG9ydCgpIHJldHVybiB2YWx1ZS4KCmNvbW1pdCA1ZDFkMGE3NDRhYjMwYzhlNjQ1YzNiODUwNmNiYmQyY2NlYjNkMjc1CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMTowNDo0OCAyMDEyICswMTAwCgogICAgQWRkZWQgY2hlY2sgb2YgbmV0c25tcF9leHRyYWN0X2l0ZXJhdG9yX2NvbnRleHQoKSByZXR1cm4gdmFsdWUuCgpjb21taXQgMjk5ZWE5YTg5YzNmMTc1OGE3NzQ4YmI5YjM0MTFmNjJmMmM3MGY4OApBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgSmFuIDQgMTA6NTQ6NTUgMjAxMiArMDEwMAoKICAgIEFkZGVkIGNoZWNrIG9mIGZvcGVuKCkgcmV0dXJuIHZhbHVlLCBqdXN0IGluIGNhc2Ugb2Ygc29tZSByYWNlLgoKY29tbWl0IDkwZjFhZTY3NTc5MTc0ODE2MzZlZWY3NzEwMGNhZWViNTNlZGZlMDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgSmFuIDMgMTA6MDY6NTYgMjAxMiArMDEwMAoKICAgIEFkZCBzdHJsY2F0LmMuIFNvdXJjZTogaHR0cDovL3d3dy5mcmVlYnNkLm9yZy9jZ2kvY3Zzd2ViLmNnaS9zcmMvbGliL2xpYmMvc3RyaW5nL3N0cmxjYXQuYy4KCmNvbW1pdCAwODliY2IzNjBhYTI2NzkwYWQyYThjZWRkZjU4M2I3YmE1ZGRmZDQ4CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBKYW4gNCAxMDo1MDo1NiAyMDEyICswMTAwCgogICAgQWRkZWQgc3RycmNociByZXR1cm4gdmFsdWUgY2hlY2ssIGp1c3QgdG8gYmUgc3VyZS4KCmNvbW1pdCAxOTlhMDUxMWY2ZWIwZWYzZmYxZDlmOTIyYjc5MGFiNjdkZmRlMDFlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIEphbiA0IDEwOjMxOjI2IDIwMTIgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogc211eDogc2ltcGxpZnkgc211eF9saXN0X2RldGFjaCgpCgpjb21taXQgZDg4MzU3M2FhNzNlMGY1ZmMxODhhY2VkZWU2NDUxZjk1ZGFlOTAwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBKYW4gNCAxMDoyMzowNiAyMDEyICswMTAwCgogICAgRml4IGEgY29tcGlsZXIgd2FybmluZyBpbnRyb2R1Y2VkIGJ5IGNvbW1pdCBhODA5ZmU1MDc1YzlmMzc0NzE1ZjdkMWE2ODI5NDlhMDczMDE3MmMxLgoKY29tbWl0IDdiN2EzZWIyNTAwNTI3ZWFhMTY5OTI4N2E2Y2E2ZmNjNGNjMmUwOGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgSmFuIDQgMDk6NDA6MDIgMjAxMiArMDEwMAoKICAgIEZpeCBhIGJ1aWxkIGVycm9yIGNhdXNlZCBieSBjb21taXQgYTgwOWZlNTA3NWM5ZjM3NDcxNWY3ZDFhNjgyOTQ5YTA3MzAxNzJjMS4KCmNvbW1pdCAyYjZjMTE5ZmVkNDg0OGRhNjY2M2MxMWYwYzJjYmRjMjk5MjFiNWM2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNTo1MToxMCAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG5ldHNubXBfZHNfZ2V0X2ludCgpIGVycm9ycy4KCmNvbW1pdCA2Y2U1MzYwY2FhNGM5ZGU1MWFkZTU3ODc5ZTgzZjk2YmQwNGI0YzVhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNTo0MjoyMyAyMDEyICswMTAwCgogICAgQ2hlY2sgZm9yIG1pc3Npbmcgdmlldy4KCmNvbW1pdCBiM2JjNTRiZWQzMTY5MGE4NWRmMmFjZmJmMzI5NmRhOTNhOWU4OWI0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNToyMzoxNyAyMDEyICswMTAwCgogICAgQ2hlY2sgc29ja2V0KCkgcmVzdWx0LgogICAgQWxzbyBjbG9zZSB0aGUgc29ja2V0IG9uIGVycm9yLgoKY29tbWl0IDkyMDc1ZjUxY2Q0NWEzOGNhMzg3NjBiM2ZmZTgyZTE2NTU5ZTljMmUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE1OjE4OjI2IDIwMTIgKzAxMDAKCiAgICBDaGVjayBvcGVuKCkgcmVzdWx0LgoKY29tbWl0IDY2NjVkNWZlMmZjNTY5ZDZmYTg1NGQxZDc4ZTM0N2JiYWM2OWUwNzAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjIyOjIyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBtaXNzaW5nIGJyZWFrLgoKY29tbWl0IGE2NjQ4YzU0NTNlMWVmOGRhYzU3YTM4ZWZjYzAwY2NlNTNiZjllNGYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjIwOjI3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBtaXNzaW5nIGJyZWFrLgoKY29tbWl0IGQ2OGRjYWUwZjE4ZDU1NDU3MWFlZjMyMTk0NGE1MjkwNTQ4ZGRlODYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjE2OjExIDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IGZiNmY4MGMwZmUzYmEzNmU1NmY1YjkxMWE0N2UzZjZmMzJiYTI2NmUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjE0OjA3IDIwMTIgKzAxMDAKCiAgICBGaXhlZCBleGl0IGNvZGUgb2YgZW5jb2RlX2tleWNoYW5nZSB3aXRoIHdyb25nIGFyZ3VtZW50cy4KICAgIEFsc28gYWRkZWQgYSBjb21tZW50IGZvciBDb3Zlcml0eS4KCmNvbW1pdCAzMTMwZTI0ZmRjMjMyNDY0ZGQ3YmIyMTZmNDZjYWZhMmUwZTc3NWE2CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxNDowOTo1NCAyMDEyICswMTAwCgogICAgQWRkZWQgbWlzc2luZyBicmVhawoKY29tbWl0IDE4YzEyNmE5NTY1Y2I0ZDY5ZDc1MTNiOTQ0YTIxMDU1ODgwNDVkMzUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjA3OjI5IDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IDZkMzFjODIwNzBhMmM2OGZlM2M1MTllOWQ1NmZhMjc3OTU1NGQwMWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDE0OjAxOjUzIDIwMTIgKzAxMDAKCiAgICBBZGRlZCAnZmFsbHRocm91Z2gnIGNvbW1lbnQgZm9yIENvdmVyaXR5LgoKY29tbWl0IGRjNmYwZTJlNTQ5YjRjZDA2MWViYzE5MDA4NGIxZmM3N2E1NWY0MGYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjMyOjU5IDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGRhYjMyODY3ZWQwYjk5MzAxZWZkN2I4ZDg1MmFkMTI4OGExODRiZTAKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjMwOjMzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCBRVUlURlVOIHVzYWdlLgoKY29tbWl0IGIxYTJiY2Y2NDYxNWViNjZiYzI0ZDViZTQ5NTBlNDUwMTI5NjIwNDUKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjE4OjAzIDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGIyYjFjODUxYjk0ZmVkMzdjMzg2ZWFhMWJmZWFkNWM3NzY5NmUzZWYKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEzOjE0OjUyIDIwMTIgKzAxMDAKCiAgICBGaXhlZCB3cm9uZyBvcGVyYXRvcgoKY29tbWl0IGE4MDlmZTUwNzVjOWYzNzQ3MTVmN2QxYTY4Mjk0OWEwNzMwMTcyYzEKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIEphbiAzIDEwOjU4OjQ2IDIwMTIgKzAxMDAKCiAgICBBZGRlZCBjaGVjayBmb3IgZmFpbGVkIHJlZ2lzdGVyX21pYi4KCmNvbW1pdCA1OTQ5ZjA1NWMxNmFlNjUwNjE1YWFlN2ExZmVlM2YyZDdiMTZkOTQwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFR1ZSBKYW4gMyAxMDoyOTo1OSAyMDEyICswMTAwCgogICAgTWFrZSBNSUIgZmlsZSBwYXJzaW5nIGFuZCBkZXRlY3Rpb24gbW9yZSBzdHJpY3QgLSBMQUJFTCBpcyByZXF1aXJlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIE1JQiBmaWxlcy4KCmNvbW1pdCBlNGI2NzM2ODNjNjhiYThiM2FiYzA0MGI5MTI1ZWMzMDQ2NDNjYzdjCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIEphbiAxIDIzOjAwOjI0IDIwMTIgKzAxMDAKCiAgICBBc3N1bWUgdGhhdCBsaWJkbCBtaWdodCBiZSBpbiBBR0VOVExJQlMgb3IgU05NUExJQlMgc28gcHJlYWRkIHRoZW0uCgpjb21taXQgYjEzYzFlNTdiZWRiYTc5YjgwNjEwM2M3NGYxOTIxZDUzYTcwNmIzOApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBKYW4gMSAyMjo1NTowNiAyMDEyICswMTAwCgogICAgRG8gbm90IHJlcXVpcmUgdWNkLXNubXAvZGxtb2QgdW5sZXNzIGl0IHdpbGwgd29yay4KCmNvbW1pdCAyN2RjZWEwZDVmODAxZGY0OTRhYjJjYjVjNWMwZWJlNTRlYjBkY2QzCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxNDo0ODoyOSAyMDExICswMTAwCgogICAgQWRqdXN0IHBhdGhzIGZvciB0ZXN0IHJlc3RydWN0dXJlCgpjb21taXQgMTRiNjBlODVhMWI1NzAwZTkzZDEyNmUyZjI5MWQ1YzQ4NWYzNGUzNgpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBEZWMgMzEgMTQ6MTQ6MjkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBkbG1vZCBtb2R1bGUgZmFpbCByYXRoZXIgdGhhbiBnZW5lcmF0ZSBhIGR1bW15IG1vZHVsZSBpZiB0aGUgZGxvcGVuIGZ1bmN0aW9uIGlzbid0IGF2YWlsYWJsZS4KCmNvbW1pdCA5OGE5NzUzOGZjMWU5ZmY0NmI2MGQ1ZDk2OTM0NzQ0NDU3ODM3OGMwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxMzozNToxMyAyMDExICswMTAwCgogICAgQWRqdXN0IHRoZSBwYXRocyB0byBzdXBwb3J0IHRlc3RpbmcgZXZlbiBpZiBidWlsZGRpciAhPSBzcmNkaXIKCmNvbW1pdCA4OGYwYWYzY2ZiOTE2YWU1ODYzY2MyOTg2MDcxZDQzNWYyMGMzMDY0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAzMSAxMTozNzo1MiAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGVzICdwJyBhbmQgJ2xlbicuCgpjb21taXQgMDgxNWE3NTM2Yzc2ZjdlNDg0MjYzODY4M2Y2NzQ4OTRhMWE4Y2UxNApBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDE0OjQyOjU0IDIwMTEgKzAwMDAKCiAgICBSZXBvcnQgcHJvYmxlbXMgd2l0aCBTZXRVbmRvIHByb2Nlc3NpbmcKICAgIE1pc3NlZCB3aGVuIGFwcGx5aW5nIHBhdGNoICMzNDQ1NDQwCgpjb21taXQgZWIyYWIyMzc0MmNhODZjMGI4OWNjZmU5MWViNmVhMzc0YmYzYWNjMQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDE0OjM3OjMxIDIwMTEgKzAwMDAKCiAgICBDaGVjayBmb3IgdGhlIGV4cGVjdGVkIGVycm9yIChFUElQRSkgb24gY2xvc3VyZS4KICAgIE1pc3NlZCB3aGVuIGFwcGx5aW5nIHBhdGNoICMzNDQ3NDQ0Cgpjb21taXQgYWFjMTBiYzRmMDUzYzAxNGYzODJkNjU5M2ZjMzJhYjk1ZTBiMWE1NwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDI5IDEyOjU5OjUyIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzNDYzNzY3OiBIYW5kbGUgcGFyc2luZyBzdWJpZGVudGlmaWVycyA+IDJeMzEKCmNvbW1pdCBiYmMwMmUzNmU5MGMxYWFiNzg5ODU2MmY5NjNmNWNhZGIyNmUxMGJkCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFdlZCBEZWMgMjggMTc6MTU6MTYgMjAxMSArMDAwMAoKICAgIE1vdmUgcGFzcy9wYXNzX3BlcnNpc3QgdGVzdHMgdG8gdGhlIG5ldyBsb2NhdGlvbgoKY29tbWl0IDM4OThjMDRmZDZmODk4NjcwNjJmZGZlYmYzNjg1N2FiNjE5YzA0NTAKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgV2VkIERlYyAyOCAxNjo1MzoyNCAyMDExICswMDAwCgogICAgQWRkIHRlc3RzIGZvciBwYXNzL3Bhc3NfcGVyc2lzdCwgc3VwcGxpZWQgYnkgQmlsbCBGZW5uZXIKCmNvbW1pdCBkNWVlM2YwYTFhNjNiYjE3NTJjNzRjYmNhNTVhYTNkNDBiZjliZjEzCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMjE6NTg6NTEgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzNDQ3NDQ0OiBGaXggU0lHX1BJUEUgaGFuZGxpbmcKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgMmExN2IzNzQzMGMxODUyOTk4YzM1ODhlNTQ3ZDdlYjYxYzA2ZGE3MQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDIxOjQ1OjM4IDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudHg6IFBBVENIRVM6IDM0NDU0NDA6IE1vcmUgcm9idXN0IGhhbmRsaW5nIG9mIEFnZW50WCBlcnJvcnMKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgZmU1OGEwZTVmNGQ0ZTJlMmVjYmNiNDczODJiMDhjYjFlNGRmMzUyYwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE4OjE2OjIzIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzNDU2NzcwOiBIYW5kbGUgKG9ic29sZXRlKSBVSW50ZWdlciB0eXBlIHByb3Blcmx5CiAgICBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDFiZThjZjA4YTY3YTkxODU1ZmVlMWVjNGEyZDhlMDg3Yzc4MTI0NTYKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxODowNDoxMCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogYWdlbnR4OiBQQVRDSEVTOiAzNDQ1NDM3OiBMb2cgQWdlbnRYIGRpc2Nvbm5lY3Rpb25zCiAgICAoaW4gbGluZSB3aXRoIGNvbm5lY3Rpb25zKSBQYXRjaCBwcm92aWRlZCBieSBCaWxsIEZlbm5lcgoKY29tbWl0IDA2ODAzNzI4OTEwN2ZhYTJiYTNmNWNkMmZiMDBjMTk0OTRiYjlhMDQKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNzoyNzo0NiAyMDExICswMDAwCgogICAgSGFuZGxlIGFueSBHRVRORVhUIHJlcXVlc3QgT0lELCBub3QganVzdCBhIHNpbXBsZSB3YWxrLgoKY29tbWl0IGE3NGZhNTI4OTgzMTIzZDM1NWE4Y2RjYWE3N2RkNGViNGI4YzY5NTkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxNzowMDoxOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogcGFzczogUEFUQ0hFUzogMzQ5Mzk0OiBCcmluZyBwYXNzX3BlcnNpc3R0ZXN0IHNjcmlwdCBpbnRvIGxpbmUgd2l0aCBwYXNzdGVzdCoKICAgIChpLmUuIHVzaW5nIHRoZSBsZWdpdGltYXRlIHN0cnVjdHVyZSBvZiBORVQtU05NUC1QQVNTLU1JQikKICAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJpbGwgRmVubmVyCgpjb21taXQgYmJlNjQ5ZWJmYTYxZWEyMjM5OTE3MGIzNmI5OWRiMzBhMWRlODAxMgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDE2OjU0OjM4IDIwMTEgKzAwMDAKCiAgICBSZXdvcmsgInBhc3N0ZXN0IiBleGFtcGxlIHRvIGZ1bGx5IHZhbGlkYXRlIEdFVE5FWFQgcmVxdWVzdHMKICAgIGFuZCB1c2UgYSBsZWdpdGltYXRlIHN0cnVjdHVyZSBmb3Igb3V0cHV0LiAgQmFja3BvcnQgb2YgU1ZOCiAgICByZXZpc2lvbiAxNzYzMiAod2hpY2ggdXBkYXRlZCAncGFzc3Rlc3QucGwnIGJ1dCBtaXNzZWQgJ3Bhc3N0ZXN0JykKICAgIENvcnJlY3QgaW4gYnJhbmNoZXMgNS41IGFuZCBhYm92ZQoKY29tbWl0IDgyZDA2YzcyNDdiMjJjOGIwMWQ0NWJmNTUwNDFkMmYxZTY0MjdkNDkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMzo0NToxOCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDM0NDc2NzE6IEZpeCBvdmVycmlkZSBoYW5kbGluZyBvZiBPSUQgdmFsdWVzCiAgICBQYXRjaCBzdXBwbGllZCBieSBQaGlsbGlwIE8nRG9ubmVsbAoKY29tbWl0IGJhNGE5Y2U1MWM5NjAwZjlmZGExNjhmMWU2ZWZmMzJhMWRiNjNjYjkKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgVHVlIERlYyAyNyAxMzoyNDoyNiAyMDExICswMDAwCgogICAgVHdlYWsgLS1kaXNhYmxlLXNubXAtc2V0IGNoYW5nZXMKCmNvbW1pdCA4MjdjOGIyODgzMDE3MWZhYTljNjFkNTNlZmNhOWViNjYwMDU2MWMyCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFR1ZSBEZWMgMjcgMTE6MjU6NDMgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzQzMzg0NjogRml4IGZvciB1c2Ugd2l0aCBweXRob24gMi40Cgpjb21taXQgZjk4YTU0YTk5Y2FmN2I0NmIxMDBhOTIwZGI5NDJjYmNhOWM0MzkyNgpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgRGVjIDI3IDEwOjEwOjM2IDIwMTEgKzAwMDAKCiAgICBTa2lwIFNFVC1iYXNlZCB0ZXN0cyB3aGVuIGNvbmZpZ3VyZWQgd2l0aCAtLWRpc2FibGUtc2V0LXN1cHBvcnQKCmNvbW1pdCAyMzBkZjE0Zjk0YzM3MzZmZjM0Mzc5YTRlMjgxZWVhMzUzYjQ3ZjgwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIERlYyAyNiAyMzozNDoyMyAyMDExICswMTAwCgogICAgRG8gbm90IGFzc2lnbiB0bVN0YXRlUmVmIHR3aWNlCgpjb21taXQgYzk2YjNiNGQ4NTMwYWQ1ZTBlZmIwM2YyNGRhYjVlNWYxYTQ2MDAzMQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTg6MjEgMjAxMSArMDEwMAoKICAgIENvcnJlY3QgdXNlLWFmdGVyLWZyZWUuCgpjb21taXQgYzU5NzhjODljZGUyNDQwZjRkMjBkYWRiYzlkMWRkOGRiNTYyZDU2ZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMjUgMTE6MTU6NDQgMjAxMSArMDEwMAoKICAgIENvcnJlY3QgZG91YmxlLWZyZWUuCiAgICAKICAgIG5ldHNubXBfdGxzdG1BZGRyX2FkZCB0YWtlcyBvd25lcnNoaXAgb2YgaXQncyBhcmd1bWVudCBzbyBjYWxsaW5nIGZyZWUgb24gdGhlCiAgICBhcmd1bWVudCBvbiBmYWlsdXJlIGlzIGluY29ycmVjdC4KCmNvbW1pdCBjMTM5Y2ExMjNiNDRiYjNiOWI2YmY5MjFlMTYwOWNjNDVmNjNhNjYwCkF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgpEYXRlOiAgIFNhdCBEZWMgMjQgMTY6NTU6MzAgMjAxMSArMDAwMAoKICAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTIDM0MTAwNTk6IEZpeCBzcGFyc2VseSBhdWdtZW50aW5nIHRyaWdnZXIgdGFibGVzCiAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGM0YWUwMjFiMmU2Mzg0NDM3MDgxYzU2MjNmMzYwYzg4OTYzOTAxODgKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjoyOTo1NCAyMDExICswMDAwCgogICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVMgMzQxMDA1MDogU2tpcCBhbHJlYWR5LSdwcm9jZXNzZWQnIHZhcmJpbmRzCiAgICBCYXNlZCBvbiBtaWIyYyBwYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGM2YWNjZjhjNjYyNTRmYThjNDg3NjdlZDdkZWM3OTVkZGFmYzUyMmUKQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CkRhdGU6ICAgU2F0IERlYyAyNCAxNjoyNzoxMSAyMDExICswMDAwCgogICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVMgMzQxMDA1MDogU2tpcCBhbHJlYWR5LSdwcm9jZXNzZWQnIHZhcmJpbmRzCiAgICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIFR1cm5lcgoKY29tbWl0IGE2MTgyNmFkOGNhNTQ2NjFkMWQ5MDk3MTI1MDNiZDNhOGIzMmVlZDAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgRGVjIDIyIDE4OjM1OjQ2IDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlLgogICAgCiAgICBteU1hdGNoIGlzIHVudXNlZCBhcyBubWF0Y2ggaXMgemVybyBhbmQgYWxzbyBzaW5jZSByZWdleEJ1ZmZlciBpcyBjcmVhdGVkCiAgICB3aXRoIFJFR19OT1NVQiBzZXQuCgpjb21taXQgYmE0ZmM4MGZlMmNmZDVhNWQ4OTIzMGQ4ZjM3MDNlNGZlMDFlNjAxOQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUaHUgRGVjIDIyIDE5OjI0OjQwIDIwMTEgKzAwMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMzQwMjM3NjogZnJvbSBMZW9uYXJkbyBDaGlxdWl0dG86IFJlY29nbmlzZSBSZWlzZXJGUwogICAgQWxzbyBtb3ZlIHZhcmlvdXMgRlNUeXBlIGRlZmluaXRpb25zIHRvIHRoZSBhcHByb3ByaWF0ZSBibG9ja3MKCmNvbW1pdCBiNWFjNGEwNGRjZDU0NzBkMDhkMDMzMjFhYmNkMWU5ODI2MjFlNmUwCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6Mzk6NDYgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCAyYjM3ZTRlOGYyNTBhMGQ4ODIxMTk5YTc0YWMzZjRlNWI3YjdiYWJhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MzE6NTEgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCAzZDA4MzQ1MTU2YzQxOTMzM2RlOTY5ZjEzZDIxZmNlYzdlMThlOTRkCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6MzI6MjkgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVudGVybWluYXRlZCBzdHJpbmdzIGFmdGVyIHN0cm5jcHkKCmNvbW1pdCBjZDg1OWFkNTFjNGYxOGQ1YjBmYzY5ZGQ2NjlmY2IwNTFjNzk4OTY5CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFRodSBEZWMgMjIgMTQ6Mzk6MzMgMjAxMSArMDEwMAoKICAgIEZpeGVkIHdyb25nIG1lbW1vdmUgc2l6ZQoKY29tbWl0IDMwZmY1OGQwOWQ0YzlkNTQzOGJiNjIxMDU0ZmQ3YWQ3YTJhNTk3ZTQKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IERlYyAyMiAxNDowNzoxOSAyMDExICswMTAwCgogICAgRml4ZWQgd3JvbmcgbGVuZ3RoIG9mIGJ1ZmZlciB3aGVuIHByaW50aW5nIEFTTl9CSVRfU1RSCgpjb21taXQgNmMxNDg3ZTFkMzYwZDNkMjYwYTM5Y2IxZjViMTVkYTk3ODM5NTA1MwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE1OjQ3OjM0IDIwMTEgKzAxMDAKCiAgICBGaXhlZCBwb3RlbnRpYWwgZnJlZSBvZiB1bmluaXRpYWxpemVkIHBvaW50ZXIgaW4gZXJyb3IgY2FzZXMKCmNvbW1pdCBjNzZmYjk2ZjY1ZTMzYmEyZmQyMTJhOTIxZThjMzg2MTU1ZWU1YzdhCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTU6NDQ6NDYgMjAxMSArMDEwMAoKICAgIEZpeGVkIHVuaXRpYWxpemVkIHZhbHVlcyBpbiB1ZHBUYWJsZQoKY29tbWl0IGM0NDYwODY3OWI4OTc1MTE3NmYyOGEyZTU0ZDUyODJiNDZlMmEwNWMKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyAyMSAxNDo1NjoxMyAyMDExICswMTAwCgogICAgVXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyBhbmQgbWFudWFsIGNsZWFyaW5nCgpjb21taXQgYTA1YzVmOTUxMzQ2MTgyNGU3OTAzYWU5YWU5YTZjMzM4NmUzMzg3OQpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDE0OjQwOjUwIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBwcmludGluZyBvZiB1bml0aWFsaXplZCB2YXJpYWJsZSB3aGVuIHNlbnNvcnNfZ2V0X2xhYmVsKCkgZmFpbHMKCmNvbW1pdCBlNGE1ZWRjNzIzOTNiZDNkZTliZjEyYmNlYmE5ZDgzYmJmN2RlNzBiCkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBEZWMgMjEgMTQ6MzE6MjUgMjAxMSArMDEwMAoKICAgIFJlbW92ZWQgdW51c2VkIHZhcmlhYmxlCgpjb21taXQgZmFlMmU1YjgzNWI4ZGYxZWFlNDdlNGNlYmI0ZWI0MDRkNzI4MjM3NwpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjMxOjIxIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaXRpYWxpemVkIGlpZCBpbiBlcnJvciBjYXNlcyBhbmQgd2l0aCBkZWJ1ZyBpbmZvIGVuYWJsZWQuCgpjb21taXQgOWQ1OGY4MWE5MjM5Y2ZiY2ZjOGViY2UzNjdkMjFlOWIzZGNiMDI4YgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjMzOjMzIDIwMTEgKzAxMDAKCiAgICBGaXhlZCBkZXJlZmVyZW5jaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGluIGVycm9yIGNhc2VzCgpjb21taXQgMGJjOGMwOGVkZWFlN2FlMDk1ZjExNjI1OGMyMGFlNTc2N2Q2MDY1MgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgRGVjIDIxIDEzOjIwOjUyIDIwMTEgKzAxMDAKCiAgICBGaXhlZCByZXR1cm5pbmcgdW5pbml0aWFsaXplZCB2YXJpYWJsZSAnc3RhdHVzJyB3aGVuIHNzID09IE5VTEwKCmNvbW1pdCA3MzA0YzUzY2Y4YWRlZThlY2NlZjFhOGYyNjc1NmZjMDdmMDk4NzIxCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxOCAyMzozMTo1MyAyMDExICswMTAwCgogICAgT24gc29sYXJpcyAxMCB0ZXN0IGluIC9iaW4vc2ggZG9lc24ndCBzdXBwb3J0IHRoZSAtZSB0ZXN0LiBSZXBsYWNlIGl0IHdpdGggLWYKCmNvbW1pdCA4Y2QzYmU2MGQ2OTNjOWMzNmZmYjk3ZDNkOWJjYjQ5YzFiNGFiZTM1CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IERlYyAxNyAwODo1MjoyNCAyMDExICswMTAwCgogICAgQXZvaWQgcmVwZXRpdGlvbiBvZiB0aGUgY29tcGxleCBleHByZXNzaW9uIGRldGVybWluaW5nIGlmIGl0IGlzIHBvc3NpYmxlIHRvIGdldCB0aGUgZGVzdGluYXRpb24gYWRkcmVzcy4KICAgIAogICAgVGhpcyBhbHNvIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uIHBsYXRmb3JtcyBsaWtlIFNvbGFyaXMgMTAgdGhhdCBkZWZpbmUKICAgIElQX1JFQ1ZEU1RBRERSIGJ1dCBsYWNrIGVpdGhlciBvZiBtc2doZHIubXNnX2NvbnRyb2wgYW5kIG1zZ2hkci5tc2dfZmxhZ3MuCgpjb21taXQgOTUzZjJlM2Q0MjVlZGUzYjg2M2EyZTdjY2IwYjRiYzg2MjkyOGI1NwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgNSAyMjoxMzowNyAyMDExICswMTAwCgogICAgTW92ZSB0aGUgdXNlIG9mIF9zZW5kdG8gYW5kIF9yZWN2ZnJvbSBiZWxvdyB0aGVpciBkZWZpbml0aW9ucy4KCmNvbW1pdCA2OGExMTczYzQ2Y2Y3NzYwMTQyNmNmMzkxZDlhODUyNzk0ZjIwNTdlCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE5vdiAyMCAyMDowNToxOCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogU2VwYXJhdGUgb3V0IHRoZSBjbWVzZyBidWZmZXIgc2l6ZQoKY29tbWl0IDQ2MWRkMTZmM2IyNjQ3MzIyY2RjZTYzNjMwODFjYzQ0YmE1YTQ5YjUKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDI2IDIxOjUxOjAxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNZXJnZSB0b2dldGhlciB0aGUgTGludXggYW5kICpCU0QgdmVyc2lvbiBvZiBzcmMgcG9ydCBzZW5kaW5nLgoKY29tbWl0IDdhY2NiNjliYWExZmMwYjZhMzQzOWQyZTU0OWM4NmRhMzQ1M2JhZDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjMwOjMxIDIwMTEgKzAxMDAKCiAgICBVc2UgYSBiYXJlIHN0cnVjdCBpb3ZlYyBpbiBpbnN0ZWFkIG9mIGEgb25lIGVsZW1lbnQgYXJyYXkuCiAgICAKICAgIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2hhbmdlIGlzIHRvIG1ha2UgX3JlY3Zmcm9tIG1vcmUgc2ltaWxhciB0byBfc2VuZHRvLgoKY29tbWl0IDM5ODUyY2Q0Yzg1ZWYyYmZjNzVjZGVhMjgyNTI2MWVlOTNlNzY4YzIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI5OjIwIDIwMTEgKzAxMDAKCiAgICBBZGQgY29tbWVudCBkZXNjcmliaW5nIHRoZSBwdXJwb3NlIG9mIHRoZSBjYWxsIHRvIGdldHNvY2tuYW1lIGFmdGVyIGFsbW9zdCByZW1vdmluZyBpdC4KCmNvbW1pdCAxYjI5MmNhMjdlYWI1Y2FhNzNmZWFhYTgzZGM5YzEyYWJjMGYyZTcwCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToyNzo1OSAyMDExICswMTAwCgogICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlLgoKY29tbWl0IGJjODc5NTcxZWNhOTUyMGJjMTMyZjg0MGMzZTY1OWQzNzkzMTQ0ZDcKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjI1OjM2IDIwMTEgKzAxMDAKCiAgICBJbnRyb2R1Y2UgdGVtcG9yYXJ5IHZhcmlhYmxlcyB0byBlYXNlIHRoZSBleHRyYWN0aW9uIG9mIHRoZSBzZXJ2ZXIgYWRkcmVzcy4KCmNvbW1pdCBiN2VlYTZjZmZiZDg3MjkzMmNlMmMwNGZlZmI2ZjQzZGUzMzlmMzc0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOToxODozMyAyMDExICswMTAwCgogICAgUmVuYW1lIHRoZSBjbWVzZ3B0ciB2YXJpYWJsZSB0byBjbS4KICAgIAogICAgVGhlIHB1cnBvc2Ugb2YgdGhpcyBpcyB0byBpbmNyZWFzZSB0aGUgcmVhZGFiaWxpdHkgb2YgdGhlIGNvZGUuCgpjb21taXQgMGE3NDYxZTcyODgwNWM2MmExY2FiOWQ4N2JmYzc0Yzc5MjdhOWZjYwpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBEZWMgMTEgMTk6MTU6MjIgMjAxMSArMDEwMAoKICAgIEZhY3RvciBvdXQgYSBjb21tb24gbG9vcCBpbiByZWN2bXNnIG9wdGlvbiBwcm9jZXNzaW5nLgoKY29tbWl0IGIzYzYyNDhkMDIwMWFiMTYxMDg0MGQ2ZDBlNzQ5YjNiNmM0YWQ3OTIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gRGVjIDExIDE5OjEzOjQzIDIwMTEgKzAxMDAKCiAgICBVbmlmeSB0aGUgc3RydWN0dXJlIG9mIExpbnV4IGFuZCBCU0QgcmVjdm1zZyBvcHRpb24gcGFyc2luZyBzb21ld2hhdC4KCmNvbW1pdCAzNTY0MDBkNjI5MGE0MjNiNTJlYmVlYTVhNWU5NzZmYjE1YmI3M2I0CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIERlYyAxMSAxOTowNDo1NiAyMDExICswMTAwCgogICAgVXNlIENNU0dfREFUQSBvbiB0aGUgcmVzdWx0IG9mIENNU0dfRklSU1QvTkVYVEhEUiwgbm90IG9uIHRoZSBidWZmZXIuCgpjb21taXQgM2IzNTE3MDhjNjJkZTQ2YWExYjkwZWQyMzJjZmQ4YzdjNWIwMjIzMQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAxMjowMDozMiAyMDExICswMTAwCgogICAgUmVtb3ZlIGEgY2FzdAoKY29tbWl0IGRlOTI1MGQ5ZGFlOTcyN2E2Y2M3ZjY0NzY4OGRkZGYxYjg1OTcxMjgKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMTE6NTg6MDQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBNYWtlIHNwcmludF9taWJfb2lkKCkgdHJlYXQgT0lEIGNvbXBvbmVudHMgYXMgdW5zaWduZWQgaW5zdGVhZCBvZiBzaWduZWQgaW50ZWdlcnMKCmNvbW1pdCAwZTMzYjNiNmQ1ODU0YTRiYWMxNWQ0ZWE1ZTAxNmM1M2QxNjFkMGNkCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IERlYyA4IDEwOjAyOjI4IDIwMTEgKzAxMDAKCiAgICBGaXggcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncwoKY29tbWl0IGI3ZTUwZDVmOWE2NzU1OTgyZDJhZjMxOTE0NzNjYjM0NjQzYmMwM2YKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDggMDg6Mzc6MjIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IFJlZHVjZSBvdmVyaGVhZCBvZiBjb25maWcgZmlsZSBwYXJzaW5nCgpjb21taXQgNzNjOWVlNDJkMjhhZmUyZTEwN2E3ZDY2MTZiNmQwMTE4OTBjMzZlYQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgOCAwOTowOTo1OSAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCAzZGI5Nzk2MmIzN2ViMTJkMjU0ZDYxZTZiZTIzNGIwNmEzOTFjOGJiCkF1dGhvcjogQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+CkRhdGU6ICAgVGh1IERlYyA4IDA3OjQzOjQ1IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzQ1Mzg2ODogZnJvbSAiQmlsbCBGZW5uZXIgPGZlbm5lckBnbWFpbC5jb20+IjogRmFjdG9yIGNvbW1vbiBjb2RlIGludG8gcGFzc19jb21tb24KICAgIAogICAgTW92ZSB0aGUgY29kZSBmb3IgcG9ybWF0dGluZyBhbmQgcHJpbnRpbmcgdmFsdWVzIGZyb20gcGFzcyBhbmQgcGFzc19wZXJzaXN0CiAgICBpbnRvIHBhc3NfY29tbW9uLgoKY29tbWl0IGI2NTY4YzgzZjE3NTZlOWE2NTQzNGVkZWVlYjQwZDIzZGRiYmI2NTIKQXV0aG9yOiBjY2NoaXUgPGNjY2hpdUBzb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIERlYyA3IDE2OjI1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBCVUc6IDM0NTIwNjk6IEZpeCBzbm1wdHJhcF9vaWQgZGVjbGFyYXRpb24gaW4gbWliMmMgZ2VuZXJhdGVkIGNvZGUKICAgIAogICAgVGhpcyBidWcgd2FzIGludHJvZHVjZWQgY29uc2lkZXJhYmxlIHRpbWUgYWdvLiBJdCBkaWQgYWxyZWFkeSBleGlzdCBhdCB0aGUKICAgIHRpbWUgdGhlIDUuNiBicmFuY2ggd2FzIGNyZWF0ZWQgKHNlZSBhbHNvIGNvbW1pdAogICAgMGVjMDg4YWZhMjdjZmRhNGU2ZWE3OGFhZTdjZmM1NTA3NTY0ZWRkZSkuCgpjb21taXQgZDQ5NGRiNjRjMjA4YjRkYzYyODEzMTMyZjg4NjNiZDVjMWEzOWQ3NwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDozODoxNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBFbGltaW5hdGUgYW4gdW51c2VkIHZhcmlhYmxlIChOb3cpCgpjb21taXQgMjhmMjU2MWJjMjkzNWQ4ZTFjYmY0NmQyODIwMTU4MTczZTdhNGNmNApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDozNzoxMSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkOiBNb3ZlIHRoZSBtYWluIGxvb3AgY29kZSBpbnRvIGEgbmV3IGZ1bmN0aW9uCgpjb21taXQgMzk2ZTEyMmRkYzQyYTkxNmYwNmEwMjg4NGMwZThhMjU4ZWRiZTIzOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAwOTozMjoxNiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IE1hdGNoIGVhY2ggZ2V0cHduYW0oKS9nZXRwd3VpZCgpIGNhbGwgd2l0aCBhbiBlbmRwd2VudCgpIGNhbGwgYW5kIGVhY2ggZ2V0Z3JlbnQoKSBjYWxsIHdpdGggYW4gZW5kZ3JlbnQoKSBjYWxsLgoKY29tbWl0IDNlZmVmYmMwMDI0Mzk5Nzg2ZjhiNjhiMWU5M2IwYThmZGRkZGM3ZGEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgRGVjIDEgMTA6NDE6MDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZDogUmVtb3ZlIHN1cGVyZmx1b3VzIGNhc3RzCgpjb21taXQgN2YwNWRhYThlMGUwZjUzM2IwZjEyYTNlMWNmMDc2NDE1MTk5MDlkNgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMTo1ODozMiAyMDExICswMTAwCgogICAgQ0hBTkdFUzogQlVHOiAzNDQ0OTM5OiBCVUc6IDE3OTY4ODY6IHNubXBsaWI6IEF2b2lkIHRoYXQgc3ByaW50X3JlYWxsb2Nfb2N0ZXRfc3RyaW5nKCkgZW1iZWRzIHVucHJpbnRhYmxlIGNvbnRyb2wgY2hhcmFjdGVycyBvciBiaW5hcnkgemVyb2VzIGluIGl0cyBvdXRwdXQuIFRoaXMgYmVoYXZpb3IgY291bGQgY2F1c2UgdHJ1bmNhdGVkIG91dHB1dCBpbiBzbm1wdHJhcGQuCgpjb21taXQgZGI4ZjU1OGZkMmYzYjdjMTA5ZWEzYTFjMjEzM2I3NWI2ZjhjYjJhZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBEZWMgMSAxMDowNDo0MSAyMDExICswMTAwCgogICAgQ29tcGlsZXIgd2FybmluZyBmaXg6IHBhc3MgdW5zaWduZWQgY2hhcnMgdG8gaXNwcmludCgpIGluc3RlYWQgb2Ygc2lnbmVkIGNoYXJzLgoKY29tbWl0IDgwMGRjMTAyOGU3ZTBjZDhjYzE0ZDg0ZGQzMTcyM2Q0N2FjMDczZGIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgRGVjIDEgMTA6MTg6NTggMjAxMSArMDEwMAoKICAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgdGhlIGhpbnQgdmFyaWFibGUKCmNvbW1pdCA4M2VhNGEwODBjOTBhNzRiOTc0M2QzZjI0Y2YwZDRiOGExZThjODQ5CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE5vdiAyNyAyMToxNjo1MiAyMDExICswMTAwCgogICAgUmVkdWNlIHRoZSBzY29wZSBvZiB0aGUgdmFyaWFibGUgcW9zCgpjb21taXQgN2I5ZTAzNDQxYzNkYzNhMDc2NzBlZDAxZjVkMDQ3OTFhODJjNzUwYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDQ6MDEgMjAxMSArMDEwMAoKICAgIFJlbW92ZSAjZGVmaW5lIHZhbCh4KSBfX1NUUklORyh4KSBhbmQgY2hhbmdlIHZhbCh4KSBpbnRvIF9fU1RSSU5HKHgpLgoKY29tbWl0IDJmMzc5YjBlNGVjYWRmYTRlNTQxZTMwMDVjOGZjODI4MTg4MmI3NDEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE1OjU4OjQ3IDIwMTEgKzAxMDAKCiAgICBGb2xsb3ctdXAgZm9yIGNvbW1pdCAxYWE3MDRlOiB1bmJyZWFrIHRoZSBNU1ZDIGJ1aWxkCgpjb21taXQgNjRlZjBmNzExMjc2MTc4MzcwMjdmYjJjZmFmMTc0Yjk1YmE3OWUwZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MTk6NTAgMjAxMSArMDEwMAoKICAgIEFkZCBTTk1QOjpyZWdpc3Rlcl9kZWJ1Z190b2tlbnMoKQoKY29tbWl0IDdiZWFkOWNhOTE3YzY3NTY2ZDVlZDk4YWI1MDdiYmMwMjgxNjIxN2QKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgTm92IDMwIDE0OjA4OjA4IDIwMTEgKzAxMDAKCiAgICBBZ2VudFggc3ViYWdlbnQ6IFJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uCgpjb21taXQgMGVkNzE1NDFmODdlN2Q3OGJjOTk4ZWViZGEzMjE3YzU5ZTFkZjgzMApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDM6MTkgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBEb3h5Z2VuLXN0eWxlIGZ1bmN0aW9uIGhlYWRlciBmb3IgbmV0c25tcF9yZWdpc3Rlcl9kZWZhdWx0X3RhcmdldCgpIGFuZCBuZXRzbm1wX2NsZWFyX2RlZmF1bHRfdGFyZ2V0KCkuCgpjb21taXQgOGMyOTcyYjYxZTQwMTY5YjQ3YzUwOTg4YjZhZTllOGMyODVmODRmOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBOb3YgMzAgMTQ6MDI6NTQgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHBlcmw6IEZpeCBzcGVsbGluZyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvZiB0aGUgU05NUCBtb2R1bGUKCmNvbW1pdCA1ZGYyYmFjNmJkNzE3Nzk5MzExZjAwMWFjN2I3M2RiODhmMTFiZGRhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgVHVlIE5vdiAyOSAwODo1OTo1OCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogT25seSB0cmFuc2Zvcm0gdGhlIGFkZHJlc3MgdG8gcHJpbnRhYmxlIGZvcm0gd2hlbiBuZWVkZWQuCgpjb21taXQgMTcxZThkNDhkNGFmMDQwMTNjZmY4ZmQyOGY1MzQxYTJhZWYyMWQ4OApBdXRob3I6IE1pam8gU2FmcmFkaW4gPHNhZnJhZGluQGxpbnV4LnZuZXQuaWJtLmNvbT4KRGF0ZTogICBUdWUgTm92IDI5IDE2OjQ5OjQ2IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wLWJyaWRnZS1taWI6IEZpeCBpbmRleCBpbnRlcnByZXRhdGlvbi4KICAgIAogICAgVGhpcyBwYXRjaCBjb3JyZWN0cyBhIHdyb25nIGRhdGEgaW50ZXJwcmV0YXRpb24uCiAgICBzbm1wLWJyaWRnZS1taWIgb2J0YWlucyB0aGUgaWZpbmRleCB2YWx1ZSBmcm9tIHRoZSBzeXNmcwogICAgYXR0cmlidXRlICdpZmluZGV4JyBUaGUgdmFsdWUgZ2l2ZW4gYnkgdGhlIHN5c2ZzIGF0dHJpYnV0ZQogICAgaXMgYW4gaW50ZWdlciwgd2hpY2ggaXMgaGFuZGxlZCBhcyBoZXggYW5kIGxlYWRzIHRvCiAgICBpbmNvcnJlY3QgZGF0YSBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIuCiAgICAKICAgIGUuZy4KICAgICAgICAkID4gc25tcHdhbGsgbG9jYWxob3N0IEJSSURHRS1NSUI6OmRvdDFkQmFzZVBvcnRJZkluZGV4LjIKICAgICAgICBCUklER0UtTUlCOjpkb3QxZEJhc2VQb3J0SWZJbmRleC4yID0gSU5URUdFUjogNTQKICAgIAogICAgYWNjb3JkaW5nIHRvIHRoZSBzeXNmcyBhdHRyaWJ1dGUgdGhlIHZhbHVlIGlzIDM2CiAgICAKICAgICAgICAkID4gY2F0IC9zeXMvY2xhc3MvbmV0LzxkZXZpY2U+L2lmaW5kZXgKICAgICAgICAzNgogICAgCiAgICBTaWduZWQtb2ZmLWJ5OiBNaWpvIFNhZnJhZGluIDxzYWZyYWRpbkBsaW51eC52bmV0LmlibS5jb20+Cgpjb21taXQgODJlMzlmYjY3MDZkZjkwZWNmMmZjOWUxMGFkYTJiOTYyZWUxOTZmMwpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTm92IDI5IDEyOjI3OjQ2IDIwMTEgKzAwMDAKCiAgICBGaXggbXVsdGktbGluZSBjYXNlIHRlc3Rpbmcgb2YgaW5jb21pbmcgT0lECgpjb21taXQgYjE1ZGExYTQ1MTYwNjExMDVhMWVhYzc0NTBjZjY1MGVjNDQyNjZiMgpBdXRob3I6IE5pa29sYXkgRGVuZXYgPG5kZW5ldkBnbWFpbC5jb20+CkRhdGU6ICAgVHVlIE5vdiAyOSAwODoyOTo0OSAyMDExICswMTAwCgogICAgQ0hBTkdFUzogRnJlZUJTRDogUmVzdG9yZSBJUF9SRUNWRFNUQUREUiBmdW5jdGlvbmFsaXR5LgoKY29tbWl0IDdmNDdmNTJlNDgxYmFhOWFhZmI1Nzg0MjQ0YjBkZDI2NTNlN2RjZmYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gTm92IDI4IDA4OjUxOjM5IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgU05NUF9BTExPQ19UWVBFREVGIHRvIGFsbG9jYXRlIHRyYW5zcG9ydHMgaW4gb3JkZXIgdG8gYXZvaWQgdGhlIHNlcGFyYXRlIGNhbGwgdG8gbWVtc2V0LgoKY29tbWl0IGNmODYwMzllMzA4NjIyNWMzMDg1YmI5YWRmMDg4YjhiYTViYTY5NzkKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDE1OjAyOjU4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB1bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYiBwYXNzLgoKY29tbWl0IDFhODdlNzZlMDBlZTNkNWNkMzdhMDdiZmMzZDg0NDkwZDNjMmE0ZWMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDE0OjU1OjQyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB1bml0LXRlc3RzL1QwMTRnZXRob3N0YnlhZGRyX2NsaWIgcGFzcwoKY29tbWl0IDg4NjdmZDFkY2ZlNzJiNTlkMDczMjJmZjM4YTY5OWI2NmVjNGYzMjYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgTm92IDIyIDA5OjQ0OjM4IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHJvYnVzdCBhZ2FpbnN0IG1lbW9yeSBhbGxvY2F0aW9uIGZhaWx1cmVzLgogICAgCiAgICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIE5FVFNOTVBfTEFSR0VfRkRfWkVSTygpIHVzZSBtZW1zZXQoKSBvbiBVbml4IHN5c3RlbXMgaW5zdGVhZCBvZiBhbiBleHBsaWNpdCBsb29wLgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBzdXJlIHRoYXQgb24gVW5peCBzeXN0ZW1zIG5ldHNubXBfbGFyZ2VfZmRfY2xyKCkgZG9lc24ndCB0cnkgdG8gcmVhZCBtZW1vcnkgaXQgaXNuJ3QgYWxsb3dlZCB0byByZWFkIGlmIHRoZSBmaXJzdCBhcmd1bWVudCBlcXVhbHMgLTEgKGEgdmFsdWUgdGhhdCBzaG91bGRuJ3QgYmUgcGFzc2VkIGJ5IHRoZSBjYWxsZXIpLgogICAgQ0hBTkdFUzogc25tcGxpYjogTWFrZSBuZXRzbm1wX2xhcmdlX2ZkX2lzX3NldCgpIHJldHVybiBmYWxzZSBvbiBVbml4IHN5c3RlbXMgaWYgdGhlIGZpcnN0IGFyZ3VtZW50IGVxdWFscyAtMSAoYSB2YWx1ZSB0aGF0IHNob3VsZG4ndCBiZSBwYXNzZWQgYnkgdGhlIGNhbGxlcikuCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNYWtlIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIHNocmluayBiZWhhdmlvciBjb3JyZWN0LgoKY29tbWl0IDIzZGIwY2YwOWI4YjBlYWIzN2I3NDllZjBjM2MzZjMwNjkwMDI0NWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gTm92IDIxIDIzOjAyOjU3IDIwMTEgKzAxMDAKCiAgICBGaXggY2FzdGluZyB0dl91c2VjIHRvIGludCB3aGljaCBtYXkgYmUgdG9vIHNob3J0Cgpjb21taXQgODBlZTQwMjJlNTM0ZTY0YWFkNWE1ZjI3MTkyODQzYjQyYWNiODVlMApBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFNhdCBOb3YgMTkgMDk6MTQ6MDIgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MzkyMzQ6IE1vdmUgbmV0c25tcF9wYXNzX3N0cl90b19lcnJubyB0byBwYXNzX2NvbW1vbiBhbmQgcmVuYW1lIGl0IHRvIG5ldHNubXBfaW50ZXJuYWxfcGFzc19zdHJfdG9fZXJybm8KCmNvbW1pdCAwYmFhOTI5NmMwNzJiYjM3MzU3NjBiMGRkOTkyZjJkMWQzY2EyN2ZhCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU2F0IE5vdiAxOSAwOTowNToyNCAyMDExICswMTAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzQzOTIzNDogQ29ycmVjdCB0aGUgZGVwZW5kZW5jaWVzIG9mIHVjZC1zbm1wL3Bhc3MgYW5kIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdAoKY29tbWl0IDFhYTcwNGU0YTI5NDQzMGIyOGUzOWI2ZjllNDY4M2I4YTQ4YmNlMDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDA4OjM1OjIxIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRmFjdG9yIG91dCBhc2MyYmluIGFuZCBiaW4yYXNjLiBBZGQgYSBuZXRzbm1wX2ludGVybmFsXyBwcmVmaXggdG8gdGhlbQoKY29tbWl0IGNkYThmZTkxMDEzZjEyY2JmNjRhMDc3NWFiYjU1NzIwMDM1YWY5MzEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgTm92IDE5IDAwOjU1OjI0IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogQ2FsbCBzbm1wX29pZHRyZWVfY29tcGFyZSBpbnN0ZWFkIG9mIHNubXBfb2lkX21pbl9jb21wYXJlCiAgICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHNubXBfb2lkX21pbl9jb21wYXJlIHNpbmNlIGl0IGlzIGludGVybmFsIGFuZCB1bnVzZWQKCmNvbW1pdCA4NWY4OTNlMmI2MDVlNjdmOWJkMDQ0M2M3NGUyZWQyNjlhYTY4NTY0CkF1dGhvcjogTmlraSBEZW5ldiA8bmlraV9kQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUaHUgTm92IDE3IDIyOjQyOjMyIDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzE3NTY0MDogVXNlIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQgd2hlcmUgYXZhaWxhYmxlICgqQlNEKQogICAgCiAgICBUaGlzIGh1bmsgZmVsbCBvZiB3aGVuIHRoZSByZXN0IG9mIHRoZSBwYXRjaCB3YXMgbWVyZ2VkLgoKY29tbWl0IDVjOTEzZTU0NjU2YWUwMDk2YjFmZWI2ZGE5OGI1ZmM5Y2E4MWYyNzYKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjMzOjA3IDIwMTEgKzAxMDAKCiAgICBEZWZpbmUgdGhlIGZ1bGwgTmV0QlNEIGhpZXJhcmNoeSBkb3dud2FyZHMKCmNvbW1pdCBiODgxODQxYmQwNDkzZGQ3MWQ2MzI1OWJkZGVkNDQ5YjA2ZjAyYzMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzozMDozMyAyMDExICswMTAwCgogICAgRml4IHNpemVfdC9pbnQgbWlzbWF0Y2hlcwoKY29tbWl0IGNhMjk0Y2Y3NWJiYzhlOTBkYmY0NGVlNDA0Nzg5MzVlOTFkYjE0ODcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE4OjAzIDIwMTEgKzAxMDAKCiAgICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKY29tbWl0IGNkMzJjMmRmZjA2YjliNDUyY2MxOGQ1NTJkMmYyMjM0MDkyYzgyOWMKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDE2IDIzOjE3OjA5IDIwMTEgKzAxMDAKCiAgICBGaXggZm9ybWF0IHdhcm5pbmcKCmNvbW1pdCA4ODMxMzZjMmIyZmEwNzM5ZjQzN2E4Y2ZiNjYxNGFjY2M3NmUyNjhlCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNTo1OCAyMDExICswMTAwCgogICAgTW9yZSBuZWVkcyBmb3IgTkVUU05NUF9QUklvIGZvcm1hdCBzcGVjaWZpZXIKCmNvbW1pdCBiODA4NGE3Y2NjOTA5YjZkNmRiN2MwZThlNTk2ZDc4NjcxZjU2NzhiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAyMzoxNDoyNiAyMDExICswMTAwCgogICAgRml4IHVzaW5nIGNoYXIgYXMgYXJyYXkgaW5kZXggKGN0eXBlLmgpCgpjb21taXQgODQ1MjllNjMyMGE4OWQ5N2YxMzE0YWViYWQ4MDYyNTVkMmExYjE4YwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjM6MDA6NTcgMjAxMSArMDEwMAoKICAgIEZpeCBtaXNzaW5nIGZvcm1hdCBmb3IgRnJlZUJTRCA0Cgpjb21taXQgNGJkMDM1Mjk1NWEyNTUxYmZlMDIzMDhkZDEzNGI5MTI4Yzk4YjllOQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTk6MzYgMjAxMSArMDEwMAoKICAgIEZpeCBwYXJhbnRoZXNpcyBwcm9ibGVtCgpjb21taXQgZmU2MjY5YjE5MDBjZjQ0ZGMyN2ExOTlhNzYxZDE1YTAxYzNmMzA5MgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMjI6NTg6MzQgMjAxMSArMDEwMAoKICAgIEZpeCBzaXplX3QvaW50IG1pc21hdGNoZXMKCmNvbW1pdCBhNGRiOWY5ZmMxM2QyMWVjZmY0ODhlYjQxMDM3NmVkZGE2YzI4MjMyCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMzo0MzozNCAyMDExICswMTAwCgogICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMKCmNvbW1pdCAzOTBjMDExNGM4ZWMwYmRiMjdiMDhiNmY3NGUzZjZlZjNhNjI5ODFiCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAxMzozNzo0OSAyMDExICswMTAwCgogICAgRml4IGZvcm1hdCBzcGVjaWZpZXJzIHRvIGF2b2lkIHdhcm5pbmdzCgpjb21taXQgMjVjZmMxOTYyYWU1NzZjY2IxNTU4ZGExZTNlZjhiNmMxN2Y2M2MxNgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMTE6Mjc6NTMgMjAxMSArMDEwMAoKICAgIFJlYWxseSB1cC10by1kYXRlIG1pYnMKCmNvbW1pdCAwZTg2Yzc4MWYzOTg5YmYwMjJjODk5M2ExMTg2MTdiNzRhNzU0MjBjCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAxNiAwOToxNzoxOSAyMDExICswMTAwCgogICAgbWVtb3J5X2xpbnV4OiBnZXQgU2htZW0gZnJvbSAvcHJvYy9tZW1pbmZvIGZvciAyLjYgKG9yIG5ld2VyKSBrZXJuZWxzCgpjb21taXQgYmYyNjRkMTVkZWQ3YWNiYmYyZTM4NzFiOThmZDFmY2VmNDNkOWVjMwpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTY6MTYgMjAxMSArMDEwMAoKICAgIG1lbW9yeV9saW51eDogY2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCgpjb21taXQgNTdmZjhhNDBiYWU1ZDliY2FkMTYwODkxNDJhOWNmMzI4YzlmYTFmNQpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTQ6NTcgMjAxMSArMDEwMAoKICAgIGRpc21hbi9waW5nLCBkaXNtYW4vdHJhY2Vyb3V0ZTogQ2xvc2Ugc29ja2V0cyBpbiBlcnJvciBzaXR1YXRpb25zCgpjb21taXQgOGEyNTAyYTE1YzMyMTdiOTU5MzlhM2M4MzYxNjdkMjMwYWMzNWYwMgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgMTYgMDk6MTM6NTMgMjAxMSArMDEwMAoKICAgIFVwLXRvLWRhdGUgbGlzdCBvZiBSRkNzIHdpdCBtaWJzCgpjb21taXQgZGNkZDcwMjExMWQ4ZGE1ZjUzODA0Y2ZjZjBkZmRhZDczMTQ2OGJkZQpBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KRGF0ZTogICBUdWUgTm92IDE1IDEwOjU3OjM0IDIwMTEgKzAwMDAKCiAgICBEb24ndCB0cnkgdG8gaW5zdGFsbCBhbiBlbXB0eSBsaXN0IG9mIG1hbiBwYWdlcyAoTUFOMykKCmNvbW1pdCBiYTYxOTgwNGU1OTc4YThkZjc1NDg0NGVmY2NhNTJiNjliNTAxNWZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMzozNDoyMCAyMDExICswMTAwCgogICAgTWluR1c6IE1ha2Ugc3VyZSB0aGF0IHRoZSBiYWNrc2xhc2hlcyBpbiB0aGUgcHNraWxsIG1lc3NhZ2UgYXJlIGRpc3BsYXllZC4KCmNvbW1pdCA5MjNlZWNjNTA3Zjc1MDQzYjYwYzVlNjgwNTNhNGYzOTZhYjBiMGQyCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE5vdiAxNCAxMjozNjozOCAyMDExICswMTAwCgogICAgQ29tcGlsZXIgd2FybmluZyBmaXggZm9yIHN5c3RlbXMgd2hlcmUgdWludDY0X3QgPSB1bnNpZ25lZCBsb25nIChlLmcuIFJIRUwgNi4xL3g4Nl82NCkKCmNvbW1pdCA0MzRiZmMxZjc0NTc1NTBiNmY4N2Q1YmNkNTExMjc2YjI3MGI1OTY0CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIE1vbiBOb3YgMTQgMTE6MjI6NTMgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHNubXBkOiBmcm9tIE1hcnRpbiBXaWxjazogZml4ZWQgc25tcGQgY3Jhc2hpbmcgd2l0aCAnc2VsZWN0OiBiYWQgZmlsZSBkZXNjcmlwdG9yJy4KICAgIAogICAgT24gMzItYml0IHN5c3RlbXMsIHNubXBkIGRpZXMgd2l0aCBhZm9yZW1lbnRpb25lZCBtZXNzYWdlIHdoZW4gdXNpbmcgZmlsZSBkZXNjcmlwdGlvbnMgPiAzMiwgZS5nLiB3aGVuIGhhdmluZyA+MzIgQWdlbnRYIHN1YmFnZW50cy4KCmNvbW1pdCBlZDY1ZWNhNmU3ZjljZmE3MzgwYTc4ZDU2YzAxZWQzMTQ3NDViMTY5CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxOTowMToyMSAyMDExICswMTAwCgogICAgRnJlZUJTRC05OiBGaXggZm9yIGNvbnN0J2lmeWVkIG5saXN0IGFyZ3VtZW50cwoKY29tbWl0IGVhY2E3OTgzZTM2NTVhYjY5NmZjYzQ0NjFjYTBjZWRiYWM2Y2U2OWEKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBGcmkgTm92IDExIDE5OjAwOjEyIDIwMTEgKzAxMDAKCiAgICBOZXRCU0QtNjogT25lIG1vcmUgaW5zdGFuY2Ugb2YgdGltZXNwZWMgcmVwbGFjaW5nIHRpbWV2YWwKCmNvbW1pdCA4YWQ2YzUzZmRlYzVhZGVhZTRlNTJmMTc1MWVjZWM0YTM0NWJhYjA1CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgRnJpIE5vdiAxMSAxODo1OTowMSAyMDExICswMTAwCgogICAgRml4IGJ1aWcgIzM0MzY1Mjc6IGFycF9uZXRsaW5rOiBmaXggZHlpbmcgcmVsb2FkIG9mIGNhY2hlCgpjb21taXQgMzc4ZmZlZDAzYmE3OWE4MzQ2ZDZjNjI3ODFlMmRkZjVjZTkyYTQ3OApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIEZyaSBOb3YgMTEgMTg6NTU6NDMgMjAxMSArMDEwMAoKICAgIEZpeCBidWcgIzM0MzY1Mjg6IHN3aW5zdF9wa2dpbmZvOiByZWNvdmVyIGZyb20gTlVMTCByZXR1cm4gZnJvbSBvcGVuZGlyCgpjb21taXQgZDdhZDhmNWY5ZjNmNjdmMTZmNjVjMjUxNWQxMWUxOTRkMmNkZDEyYwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MDQ6NDEgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IEN5Z3dpbjogTWFrZSBkYXRlX25fdGltZSgpIHByb2R1Y2UgdGltZSB6b25lIGluZm9ybWF0aW9uCgpjb21taXQgYmEzNWM1MGIyZjQ1OWJkOWMxMWVkNTljYzdkMWIxNjIxNTY0NGZhMwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMTAgMTQ6MTc6MDQgMjAxMSArMDEwMAoKICAgIFJlcGxhY2UgQUNfVFJZX0xJTksoKSBieSBBQ19MSU5LX0lGRUxTRSgpCiAgICAKICAgIE5vdGU6IHRoZXNlIGNoYW5nZXMgZG8gbm90IGFmZmVjdCB0aGUgZ2VuZXJhdGVkIGNvbmZpZ3VyZSBzY3JpcHQuCgpjb21taXQgZjYxNWJmMjRmNWQwZjIzY2U5MzAxZGE1NTYxODRkNjQ2MDc0MDQ1NgpBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgOSAyMDozMjo0OSAyMDExICswMTAwCgogICAgRmlzIEJ1ZyAjMzQzNDgyNDogU0lHU0VHViB3aGVuIHJlYWRpbmcgZGlzayBkaXJlY3RpdmUgYWZ0ZXIgU0lHSFVQCgpjb21taXQgYTk0YTE3OWQ5MzQwZjUxZmE3YzIzNDMxNjMwYmMwZmZkNmQ3NTllOApBdXRob3I6IE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBOb3YgOSAyMDozMDo1MSAyMDExICswMTAwCgogICAgRml4IGJ1ZyAjMzQzMzYxNjogZG9udCB0cmVhdCBEYXRlQW5kVGltZSBhcyBhIHN0cmluZwoKY29tbWl0IGIyOWU0MTY0NTMxZDI1OGZlMzRhNmZlMmI5ZTFlYzYwYzU2Zjk1NDQKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBNb24gTm92IDcgMDE6MjU6NTcgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCmNvbW1pdCBlMjIxZTY1ZmRjMWM2OGYxOTY4NjUxNzE3ZGNjOWNjZmI2NDE0NzgzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE5vdiAzIDE1OjA1OjAwIDIwMTEgKzAxMDAKCiAgICBGaXggd2FybmluZ3MgYWJvdXQgY29udmVydGluZyBzb2NrYWRkcl9pbiAqIGludG8gc29ja2FkZHIgKi4KICAgIAogICAgVGhpcyBpcyBhIGZvbGxvdy11cCBmb3IgY29tbWl0IGEwYWYzODUuCgpjb21taXQgMmU3ZTllZGEwYjBkNjJhNzY0NWE5YThmNzBlZjNmYjZmM2RkNjk0MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBOb3YgMyAxMToxNzo0OCAyMDExICswMTAwCgogICAgRml4IHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUgd2FybmluZ3MuCgpjb21taXQgMzQ2MmViY2RkMGI3YzI5OGNiMTVjMzA5OTczNmY0Zjk1MjI1Nzg0NgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgMjggMTY6MDc6MTUgMjAxMSArMDIwMAoKICAgIFJlbW92ZSB0aG9zZSBzdXBlcmZsdW91cyBwYXJlbnRoZXNlcyB0aGF0IHRyaWdnZXIgYSBjbGFuZyB3YXJuaW5nLgoKY29tbWl0IDNlNWZlZGQzZTdkMWVmMzE2ODM2MDRiZjczZGM1NmU5NDRjYWQzNDkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVGh1IE5vdiAzIDA5OjQ1OjI3IDIwMTEgKzAxMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBhZnRlciAzMCBkYXlzIG9mIHVwdGltZS4KICAgIAogICAgQWZ0ZXIgMzAgZGF5cywgdmFsdWVzIGZyb20gL3Byb2Mvc3RhdCAob24gTGludXgpIGNhbiBnZXQgYmlnZ2VyIHRoYW4gMzJiaXRzIGFuZCBzbm1wZCBjYWxjdWxhdGlvbnMgbWlnaHQgcmVuZGVyIGNvdW50ZXJzIGxpa2Ugc3NDcHVVc2VyIG5lZ2F0aXZlIG9yIHplcm8sIHdoaWxlIHRoZSByZWFsIHZhbHVlIGlzIGhpZ2hlci4gVGhlcmVmb3JlIHRoZSBjb3VudGVycyBzaG91bGQgYmUgdHJhY2tlZCBhcyB0aGUgbGFyZ2VzdCBpbnRlZ2VyIGF2YWlsYWJsZS4KCmNvbW1pdCAwZmM4MjIxYjI0OTg4YzRhZTYxODBlZDQyYjg2Yjk4NTJmZDU4NmFkCkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE5vdiAyIDIyOjU5OjA4IDIwMTEgKzAxMDAKCiAgICBkc2tJbmRleCB3YXMgb2ZmIGJ5IG9uZQoKY29tbWl0IGE1YjI4ODI5ZTY0ZDVmM2I4N2U0YjliMWVmOGNjMjA0ZjMzYTYxYjcKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgTm92IDIgMjE6MjU6MDcgMjAxMSArMDEwMAoKICAgIFNvbGFyaXMgbmVlZHMgJEFXSyB0byBnZXQgYSB1c2FibGUgbmF3awoKY29tbWl0IDI4MDFhMjEzOWYyNzAyMWUxYWIxNWUzNjJlMmQzZDYyNGZmYWE0OTQKQXV0aG9yOiBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBNb24gT2N0IDMxIDIyOjU1OjUzIDIwMTEgKzAxMDAKCiAgICBQYXRjaCAjMzQwNjM2NDogRml4IHVuc3RhYmxlIGRhdGEgZm9yIE5ldEJTRC4KCmNvbW1pdCA4MjFhNThkMTEyZDdhYzQ5NTE0OWUyNjJkNzA0NDEyYmEyODAwNDM4CkF1dGhvcjogTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAzMSAyMjo0Mzo1MiAyMDExICswMTAwCgogICAgRml4IGlwdjYgc3RhdGlzdGljcyBsb29waW5nIHRvbyBmYXIgd2hlbiBzY2FubmluZyBpbnRlcmZhY2VzLgogICAgRml4IFRDUCBzZXNzaW9uIHRhYmxlIHJlcGVhdGluZyBkYXRhIGZyb20gZmlyc3QgZW50cnkgZm9yIGFsbC4KCmNvbW1pdCAzNDk1OTFkMDNlMTdhNTViNDNlYWNjNmE2ODdiMDJmZDhkNGU5NTI4CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgTW9uIE9jdCAzMSAwODo1OTozNyAyMDExICswMTAwCgogICAgQ0hBTkdFUzogcGVybDogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBwZXJsIHN1cHBvcnQgd2l0aG91dCBzdXBwb3J0IGZvciBvcGFxdWUgdHlwZXMuCgpjb21taXQgMWVjNzExMGU3MmJjZTE1NjFmNzQ2NTE3NDU5ZDZmMDQzMDE2YjYwZQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMzAgMTk6MDU6MzAgMjAxMSArMDEwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIGFzbjEgdGVzdCBwYXNzIGV2ZW4gaWYgc3VwcG9ydCBmb3Igb3BhcXVlIHR5cGVzIGFyZSByZW1vdmVkLgoKY29tbWl0IDZkMjY5MThhZjU1YWEzNjYyYTcyMDU0MmRlNzdiYmYzOWIwYTNlOTEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDI5IDA4OjM0OjMzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogRGlzYWJsZSB0aGUgc3VwcG9ydCBmb3IgaW50ZWdlcjY0IGluIHBhc3Mgc2NyaXB0cyBpZiBjb21waWxpbmcgd2l0aG91dCBvcGFxdWUtc3BlY2lhbC10eXBlcy4KCmNvbW1pdCAyOWJmNjlkNzA0MjRmMzU5ZDljODdmMDdhOTY0YTA5OTQxNTY0OWE1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxMCAxMzowMjoyNSAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcHRyYXBkX3NxbDogQXZvaWQgdGhhdCBhIGxpbmtlciBlcnJvciBpcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aGVyZSBteV9wcm9nbmFtZSBpcyBtaXNzaW5nIGluIGxpYm15c3FsY2xpZW50IChlLmcuIEZlZG9yYSAxNSBhbmQgMTYpLgogICAgCiAgICBUaGlzIGlzIGEgYmFja3BvcnQgb2YgY29tbWl0IDlmNjUzZjcuCgpjb21taXQgMmNjOTUwNGI5YmI4NjI1Yjk0YmU2Y2RhN2U2MDk5M2QwNTljZDkyOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MDE6MjMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzQyODUwNjogRml4IG5ldHNubXBfZ2V0aG9zdGJ5YWRkcigpCiAgICAKICAgIFRoaXMgcGF0Y2ggc2hvdWxkIGZpeCB0aGUgcmVncmVzc2lvbnMgaW50cm9kdWNlZCBieSBjb21taXQgODVkOTZjNCAoTWF5IDEzLCAyMDExKS4KCmNvbW1pdCA5YjQyN2IzNTNmMWNlYjhmZTg3ZTZmYzhlZDNiNmNmYWIzY2U3ZjIwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IE9jdCAyNyAwODoyMDowMCAyMDExICswMjAwCgogICAgTWluR1c6IEF2b2lkIGNvbmZ1c2lvbiBiZXR3ZWVuIE1pbkdXJ3Mga2lsbC5leGUgYW5kIHRoZSBTeXNJbnRlcm5hbHMgcHNraWxsLmV4ZQoKY29tbWl0IDJjNDVmOTJjZmNiNWIwNWUwNDkyMjZhNWE3ODgzYTBiMTA2MDExYWUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDI2IDEwOjQyOjI5IDIwMTEgKzAyMDAKCiAgICBGaXggY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgcGFzc2luZyBhIGNvbnN0IHBvaW50ZXIgdG8gYSBmdW5jdGlvbiBhY2NlcHRpbmcgYSBub24tY29uc3QgcG9pbnRlci4KCmNvbW1pdCAyNzVkMjNlZGZkZWJlMDU3N2IwODQyMWU0YzZjOTM2YWUzOWI3ZmRjCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIE9jdCAyNiAwOTozMzowOSAyMDExICswMjAwCgogICAgRml4IGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHNldC1idXQtbm90LXVzZWQgdmFyaWFibGVzCgpjb21taXQgNDQ5NWUxN2MwNzhhYzY5OTdhOWM3ZmExYTg4ZGIwNjQ0ZTkxOTQ5MQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFdlZCBPY3QgMjYgMDk6MzI6NDYgMjAxMSArMDIwMAoKICAgIEZpeCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjYXN0aW5nIGF3YXkgY29uc3QKCmNvbW1pdCAxMzk1MmY2YmVlOWY0MDg4NjdhYjZkMmZkZmRkZTRmMjg0MDc0OTU3CkF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgpEYXRlOiAgIFdlZCBPY3QgMjYgMTQ6MDU6MTYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IGZyb20gU2lkZGhlc2ggUG95YXJla2FyOiBwcm9wZXJseSBjbGVhbiB1cCBvbGQgcmVxdWVzdHMgaW4gYSBzdWJhZ2VudCB3aGVuIHdlIHJlY29ubmVjdCB0byBtYXN0ZXIuCiAgICAKICAgIEFuIHNubXAgc3ViYWdlbnQgbGlua2VkIGFnYWluc3QgbmV0LXNubXAtbGlicyBtYXkgY3Jhc2ggaWYgaXQgaGFuZGxlcyBhCiAgICByZXNwb25zZSB3aGljaCBoYXMgbWFnaWMgcmVmZXJyaW5nIHRvIGFuIG9sZGVyIGRpc2Nvbm5lY3RlZCBtYWluIHNlc3Npb24uIFRoaXMKICAgIG1heSBoYXBwZW4gd2hlbiB0aGUgc3ViYWdlbnQKICAgIGF0dGVtcHRzIHRvIGNsZWFuIHVwIG9sZCByZXF1ZXN0cyBvbiByZWNvbm5lY3Rpb24gb2YgdGhlIGRpc2Nvbm5lY3RlZCBtYXN0ZXIKICAgIHNlc3Npb24uCgpjb21taXQgYWUwNTI0NzJiMjI3MjBkMDgzNjllODUxMjdkYjIxNDI0NWRmMmUzZgpBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBUdWUgT2N0IDI1IDE2OjE1OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBzZWdtZW50YXRpb24gZmF1bHQgd2hlbiBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlscy4KICAgIAogICAgV2hlbiBuZXRzbm1wX3JlZ2lzdGVyX2hhbmRsZXIgZmFpbHMsIGl0IGZyZWVzIGl0cyByZWdpbmZvIC0+IG5zYWhyX0RFU1RST1kgKGFuZCBhbnkgb3RoZXIgZnVuY3Rpb24pIG11c3Qgbm90IGRlcmVmZXJlbmNlIGl0LgoKY29tbWl0IGMxOTliZjkxYjYyMzlmMjZiMmFhYjM0ZTg1NzVlMGYwZGY5Y2RlOWIKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgTW9uIE9jdCAyNCAxNDoyNToyOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IHhmcywgamZzIGFuZCB2eGZzIGZpbGVzeXN0ZW1zIGFyZSBub3cgcmVjb2duaXplZCBpbiBoclN0b3JhZ2VUYWJsZQoKY29tbWl0IDc0N2ZkYzcxZTY0ZDA5ZTA4MDkyOGViYmI0ZDA0Y2JkZTM5MDY3OTkKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIE9jdCA1IDE1OjU3OjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wZDogTG93ZXJlZCBzZXZlcml0eSBvZiAnZXJyb3IgZmluZGluZyByb3cgaW5kZXggaW4gX2lmWFRhYmxlX2NvbnRhaW5lcl9yb3dfcmVzdG9yZScgbWVzc2FnZS4KICAgIAogICAgVGhlIG1lc3NhZ2UgaXMgc2hvd3MgdXAgd2hlbiBzbm1wZCBpcyBzdGFydGVkIGFuZCB0aGVyZSBpcyBkaWZmZXJlbnQgc2V0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB0aGFuIGl0IHdhcyB3aGVuIHNubXBkIHdhc3QgbGFzdCBzdG9wcGVkLiBUaGlzIGlzIGNvbW1vbiBvbiBwcHAtc2VydmVycyBvciB2aXJ0dWFsIGhvc3RzLgoKY29tbWl0IDI1MGY2OThlNTllYWI5ZjFmZmQzMzJmZjU5ZmRiNzJlYTBkZjA2ZmYKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIzIDA4OjUxOjIzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogTWFrZSB0aGUgdHJhbnNwb3J0IGNvbmZpZ3VyYXRpb24gY29kZSB3b3JrIGFnYWluCiAgICAKICAgIFByZXZpb3VzbHkgdGhlIHRyYW5zcG9ydCBpbmhlcml0YW5jZSBwcm9jZXNzaW5nIGNvZGUgcmFuIHdpdGgKICAgIE5FVFNOTVBfRkVBVFVSRV9DSEVDS0lORyBzZXQuIEluIHRoaXMgbW9kZSB0aGUgZmlsZSBuZXQtc25tcC9mZWF0dXJlLWRldGFpbHMuaAogICAgaXMgcmVxdWllcmVkLiBUaGF0IGZpbGUgaXMgY3JlYXRlZCBkdXJpbmcgdGhlIGZpcnN0IG1ha2UgcnVuLCBhbmQgdGhhdCBoYXBwZW5zCiAgICBhZnRlciBjb25maWd1cmUgaXMgcnVuLgogICAgQ2hhbmdlIHRoaXMgdG8gdW5kZWZpbmUgTkVUU05NUF9NSU5JTUFMX0NPREUsIGVmZmVjdGl2ZWx5IHR1cm5pbmcgb2ZmIGZlYXR1cmUKICAgIHN1cHBvcnQgZHVyaW5nIHRyYW5zcG9ydCBjb25maWd1cmF0aW9uIGluIG9yZGVyIHRvIG1ha2UgaXQgd29yayBhdCBhbGwuCgpjb21taXQgNmVmNjkwNzY0MjI0N2M2NjNiOWI4OTY0YjlmZDQ0YTIxMWRiY2FhNwpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBPY3QgMjAgMjA6MzA6NTQgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDM0MDgzOTg6IEZpeCBhIG1lbW9yeSBsZWFrIGluIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuCiAgICAKICAgIFRoaXMgbWVtb3J5IGxlYWsgd2FzIGludHJvZHVjZWQgdmlhIGNvbW1pdAogICAgOWJmM2Q5NmQ5NmE4ZWNkNGE1ZmMzNWMzMjZkYzkzNzQ2NzAwMmI2YzogSW5pdGlhbCBIQUwKICAgIGltcGxlbWVudGF0aW9uIG9mIEZpbGVTeXN0ZW0gaW5mb3JtYXRpb24gKE1hcmNoIDcsIDIwMDgpLgoKY29tbWl0IGNmODJiODk0YjIyMTdjMjZlZGM2ZjEzNTYzNTFjOTMyNDE1NjA0ZTIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBTYXQgT2N0IDE1IDE0OjQ1OjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDM0MjM5MTU6IENoYW5nZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGJhY2sgZnJvbSAwIHRvIDUKICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIHZpYSBjb21taXQgNmNhYzA1MCAoTWF5IDUsIDIwMTEsCiAgICBhZGRlZCBzdXBwb3J0IGZvciBzcGVjaWZ5aW5nIHRoZSBkZWZhdWx0IG51bWJlciBvZiByZXRyaWVzIGluCiAgICBzbm1wZC5jb25mKS4KCmNvbW1pdCBjMTFhZGFhMTI5MTVhYmZlZTYyOWJiNmMwMjZjMjFmMjE4NWIyMTZlCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgTW9uIE9jdCAxNyAxMDoyNDo0NiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luMzI6IEF2b2lkIHRoYXQgY29tcGlsaW5nIHRoZSBoZWFkZXIgZmlsZSA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IHdpdGggdGhlIE1pbkdXIGdjYyBjb21waWxlciB0cmlnZ2VycyB3YXJuaW5ncyBhYm91dCAicHJhZ21hIGNvbW1lbnQiLgoKY29tbWl0IGIxN2E3MmE3OTM0ODNhZWU0YTViYjJmMmUyYzdmNGZkODY5ODE3ZTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDE3IDEwOjIyOjIwIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW4zMjogQXZvaWQgdGhhdCB0aGUgUEFDS0FHRV8qIG1hY3JvcyBkZWZpbmVkIGluIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2F1c2UgdHJvdWJsZSB3aGVuIGluY2x1ZGluZyB0aGlzIGhlYWRlciBpbiBhIHBhY2thZ2UgdGhhdCB1c2VzIHRoZSBHTlUgYXV0b3Rvb2xzLgoKY29tbWl0IDY2NGQzYWUxMDdkNzU0MDUxYjhjNDIyNzlkNDU5YWE1N2ExYmUxYzMKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDE2OjQ3OjE2IDIwMTEgKzAyMDAKCiAgICBNaW5HVywgaHdfZnN5czogVXNlIHByb3BlciBmb3JtYXQgc3BlY2lmaWVycyBpbiBhIGRlYnVnIHN0YXRlbWVudC4KICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhbiBpc3N1ZSBpbnRyb2R1Y2VkIGluIGNvbW1pdCA3NmZmMjVkLgoKY29tbWl0IDIxMWRjYjQ5MzA2NTYxZTM1YmEzYzIxM2JlN2NmYTI1N2I0MGE4ZTUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBNb24gT2N0IDEwIDE1OjUyOjQzIDIwMTEgKzAyMDAKCiAgICBBdm9pZCB0aGF0IGdjYyA0LjYgY29tcGxhaW5zIGFib3V0IHNldCBidXQgbm90IHVzZWQgdmFyaWFibGVzCgpjb21taXQgOWY2NTNmNzNlNWFhNzBmMGJlZjExNzQ2MzJlOTU1OTRmODdmNjY5ZgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBPY3QgMTAgMTM6MDI6MjUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXB0cmFwZF9zcWw6IEF2b2lkIHRoYXQgYSBsaW5rZXIgZXJyb3IgaXMgdHJpZ2dlcmVkIG9uIHN5c3RlbXMgd2hlcmUgbXlfcHJvZ25hbWUgaXMgbWlzc2luZyBpbiBsaWJteXNxbGNsaWVudCAoZS5nLiBGZWRvcmEgMTUgYW5kIDE2KS4KCmNvbW1pdCA0YzgzYjkyMjlhNzQ1NGYzNGY2ZmY3NWY2OWU2N2U0MDMwYzQxOWI1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIE9jdCA3IDE1OjU4OjQ1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBTZXQgdGhlIHJwYXRoIGZvciBsaWJwZXJsLnNvIGluIGxpYm5ldHNubXBtaWJzLnNvIHN1Y2ggdGhhdCB0aGUgZHluYW1pYyBsaW5rZXIgY2FuIGZpbmQgbGlicGVybC5zbyB3aXRob3V0IHJlcXVpcmluZyB0aGUgdXNlciB0byBtb2RpZnkgdGhlIGR5bmFtaWMgbGlua2VyIHNldHRpbmdzLgogICAgCiAgICBUaGlzIGNoYW5nZSBpbiBhZ2VudC9NYWtlZmlsZS5pbiBpcyBuZWNlc3Nhcnkgb24gdGhlIDUuNSBicmFuY2ggYW5kCiAgICBsYXRlciBidXQgbm90IG9uIHRoZSA1LjQgYnJhbmNoLiBUaGF0IGlzIGJlY2F1c2UgdGhlIDUuNCBicmFuY2ggdXNlcwogICAgYW4gb2xkZXIgdmVyc2lvbiBvZiBsaWJ0b29sIHRoYXQgcHJvcGFnYXRlcyB0aGUgcnBhdGggb2YgZGVwZW5kZW50CiAgICBsaWJyYXJpZXMuIFRoaXMgaXMgY2FsbGVkIGludGVyLWxpYnJhcnkgZGVwZW5kZW5jeSB0cmFja2luZyBpbiB0aGUKICAgIGxpYnRvb2wgbWFudWFsLiBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgcHJlc2VudCBpbiBsaWJ0b29sIHZlcnNpb24gMQogICAgYnV0IG5vdCBpbiBsaWJ0b29sIHZlcnNpb24gMi4gRm9yIG1vcmUgYmFja2dyb3VuZCBpbmZvcm1hdGlvbiBhYm91dAogICAgZHluYW1pYyBsaWJyYXJpZXMgYW5kIHJwYXRocywgc2VlIGFsc28gdGhlIGRvY3VtZW50IHdpdGggdGhlIHRpdGxlCiAgICAiUnBhdGhJc3N1ZSIgb24gdGhlIERlYmlhbiB3aWtpIChodHRwOi8vd2lraS5kZWJpYW4ub3JnL1JwYXRoSXNzdWUpLgoKY29tbWl0IDg5MjVjOTEyZDI2Mzk3NTJhODRiY2ZmZWVmMWI3MGE4MTAyNjQ0OWIKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgT2N0IDcgMTQ6MjE6MjggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBIT1NULVJFU09VUkNFUy1NSUI6IEFkZCBtaXNzaW5nIGJyYWNlIGluIGEgZGVidWcgc3RhdGVtZW50Cgpjb21taXQgNzZmZjI1ZDliZjk3NTc5ZTcyMTMxMDIwNjVmZDUwOTZmMDQ5YTRjNQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBPY3QgNyAxNDoxMzoxOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGQ6IEhPU1QtUkVTT1VSQ0VTLU1JQjo6aHJTdG9yYWdlVGFibGU6IGZpeCBidWcgaW4gaGFuZGxpbmcgbGFyZ2UgZmlsZXN5c3RlbXMsIHdoZXJlIGxhcmdlIG1lYW5zIGFib3ZlIDggVEIgKD0gMioqMzEgKiA0MDk2IGJ5dGVzKS4KICAgIAogICAgVGhpcyBwYXRjaCBmaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIGNvbW1pdAogICAgNzFkODI5M2YzODdhNmNkNjZiYjBkYmIxM2MwZjUwMTc0ZDJlNjc4Yi4KICAgIEZvciB0aGUgb3JpZ2luYWwgYnVnIHJlcG9ydCwgc2VlIGFsc28KICAgIGh0dHBzOi8vc291cmNlZm9yZ2UubmV0L3RyYWNrZXIvP2Z1bmM9ZGV0YWlsJmF0aWQ9MTEyNjk0JmFpZD0zNDE5ODI1Jmdyb3VwX2lkPTEyNjk0LgoKY29tbWl0IDg2NjAzM2RiOTkwNGZmYjEyMDNmMjgzZjgzODA5MmU0Y2Y2OGRlNmIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgT2N0IDYgMDc6MzM6MjcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBSZW1vdmUgc3B1cmlvdXMgI2VuZGlmIHRoYXQgc2VlbXMgdG8gYmUgdGhlIHJlc3VsdCBvZiBhIG1pc21lcmdlLgoKY29tbWl0IDIwZjRmMzI2N2VlMjBkNTU3MDViN2E0Mzc4OTg3OWMxMDNmOTY2MjAKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBUaHUgT2N0IDYgMDA6MDg6NTkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgbWlzc2luZyBlbmQgY29tbWVudHMgdG8gZmVhdHVyZSBpZm5kZWZzLgoKY29tbWl0IGU1ZGUyY2M1N2JmMzA0ZjMzMjBjYWQwMDM0ZDJlYTJkOGFlZGM0MzYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDUgMDk6MTU6MTAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGFnZW50OiBMb2cgYSBtb3JlIGRldGFpbGVkIGVycm9yIG1lc3NhZ2UgaWYgZW1iZWRkZWQgcGVybCBpbml0aWFsaXphdGlvbiBmYWlscwoKY29tbWl0IDVlZWY5OTkwZGUyOGY2MzExMWU2YzA5M2JlMGYzYzdhZTJkNTEzYTEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgT2N0IDUgMDg6NDU6NDkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEFkZCBhZ2VudDo6dXB0aW1lKCkKCmNvbW1pdCA2ODEwZWQ0MmY5YmM1NjA3NTBkNmRiZmI3ZTUwYjZlMmFjMTE4OTljCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgRnJpIFNlcCAzMCAxMTowMToyMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogQ3l3aW46IGFnZW50OiBJbXBsZW1lbnQgZ2V0X3VwdGltZSgpIHN1Y2ggdGhhdCBxdWVyeWluZyBIT1NULVJFU09VUkNFUy1NSUI6OmhyU3lzdGVtVXB0aW1lIHJldHVybnMgYSBub24temVybyB2YWx1ZS4KCmNvbW1pdCA5NzE3MmIzMTFkMjBmNDQ0MWM3YTdlOTAwOTJiNTljMWUwZGE5OWY3CkF1dGhvcjogVGhvbWFzIEphcm9zY2ggPHRqYXJvc2NoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgT2N0IDUgMDg6NDY6MzkgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFBBVENIOiAzNDE4NjQ5OiBIT1NULVJFU09VUkNFUy1NSUI6IFVzZSBwY2xvc2UoKSBpbnN0ZWFkIG9mIGZjbG9zZSgpIHRvIGNsb3NlIGEgcGlwZS4KCmNvbW1pdCA2NTkxOTM3YWRiODUwMDBjMjcwNjljNGJlODRjZjQ2ODg4MzhlYmNkCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE2OjE4OjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogQWRkIGRlcGVuZGVuY2llcyBvbiBARkVBVFVSRVRBUkdTQCB0byBtYWtlIHRoZSBzdWJ0YXJnZXQgd29yayBhcyB3ZWxsLgoKY29tbWl0IGI5YzgwMTJlYzAzNWJjMDg0ZjE3NTg3NmZlY2MzNzUxOTVmOWJlODEKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTQ6MDI6NTggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgdGFyZ2V0IHRvIGJ1aWxkIGFnZW50eHRyYXAgZnJvbSB0aGUgdG9wbGV2ZWwKCmNvbW1pdCA5OTU2NDdjMGNmZTAwNDEyMjYyY2M1Nzk3YmRmYWU5ZDAwYjcwYzc2CkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgU3VuIE9jdCAyIDE1OjQ0OjM2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIHRoZSB1c2Ugb2YgLUwgZmxhZ3MgZm9yIGludGVybmFsIGxpYnJhcmllcyBhcyBpdCBjb25mdXNlcyBsaWJ0b29sLgoKY29tbWl0IDkzZGMxMjM1YTBkYjU4ZmZkMjk2MTdjZmYwMGRjMTEyNjM3ODAyMDIKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTdW4gT2N0IDIgMTE6MzE6NDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIG1ha2UgYXBwcyB3b3JrIGFnYWluCiAgICAKICAgIGFwcHMgaW5jbHVkZSBzbm1wdHJhcGQgYW5kIHRoYXQgcmVxdWlyZSB0aGUgYWdlbnQgbGlicmFyaWVzIGFzIHdlbGwuCgpjb21taXQgYmE0MTQ4OGVkNDRjZDIzYzI1OTYzZDRmYzU2YzQ3Njg1M2IyYWI1OQpBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgpEYXRlOiAgIFN1biBPY3QgMiAxMToyOTozMyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogYnVpbGRpbmc6IFdoZW4geW91IHNheSBtYWtlIGxpYnMgeW91IGV4cGVjdCBhbGwgdGhlIGxpYnMgdG8gYmUgYnVpbHQuCiAgICAKICAgIFRoaXMgaXMgZGVtb25zdHJhdGVkIGJ5IHRoZSBzbm1wdHJhcGQgdGFyZ2V0IGF0IHRoZSB0b3AgbGV2ZWwgd2hpY2ggb2J2aW91c2x5CiAgICBleHBlY3RlZCBib3RoIGxpYnMgdG8gYmUgYnVpbHQgYW5kIHNvIGZhaWxlZCB0byBjb21waWxlIGJlZm9yZSB0aGlzIHBhdGNoLgoKY29tbWl0IDMwNTdjNzNlMDkzNDczYmU0NjI1NGJjZGZiNGNhNzg4ZTQzMmQxYjgKQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgVHVlIFNlcCAzMCAwNzozMjo1MiAyMDA4ICswMDAwCgogICAgTkVXUzogYnVpbGRpbmc6IFBBVENIOiAyMDkxMTU2OiBjb3JyZWN0bHkgZGVjbGFyZSBkZXBlbmRlbmNpZXMgaW4gTWFrZWZpbGUuCiAgICAnbWFrZSAtaiA8Tj4nIHNob3VsZCB3b3JrIG5vdy4KICAgIAogICAgQmFja3BvcnQgdGhpcyB0byBWNS00IGFzIGl0IGlzIG5lZWRlZCBmb3IgY29ycmVjdCBvcGVyYXRpb24gaW4gdGhlIHNpbmdsZQogICAgdGhyZWFkZWQgY2FzZSBvZiBtYWtlIG1pYmxpYiBhcyB3ZWxsLgoKY29tbWl0IDZlYWUzNDBmYTJhNjQwODY1OTI5ODJjYzUyNzM1YmMwMTQ4N2Q5NzgKQXV0aG9yOiBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KRGF0ZTogICBTYXQgT2N0IDEgMTk6MzM6NTAgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBTaWxlbmNlIGxpYmJzZCAwLjMuMCBuYWdnaW5nCiAgICAKICAgIElmIHlvdSBoYXZlIGxpYmJzZCAwLjMuMCBpbnN0YWxsZWQgdGhlbiB0aGVpciB2ZXJzaW9uIG9mIG5saXN0Lmggd2FybnMgYW5kCiAgICB0cmllcyB0byBtYWtlIHlvdSBpbmNsdWRlIGJzZC9ubGlzdC5oIGluc3RlYWQuIFRoZSBwcm9ibGVtIGlzIHRoYXQgd2UgZG9uJ3QKICAgIG5lZWQgdGhhdCBjb21wYXRpYmlsaXR5IGxpYnJhcnkgYXMgd2Uga25vdyBob3cgdG8gZG8gaXQgb3Vyc2VsZiBzbyBpdCBiZWNvbWVzCiAgICBwdXJlIG5hZ2dpbmcuIFRoaXMgcGF0Y2ggYWRkcyBhIGRlZmluZSB0aGF0IGNoYW5nZXMgdGhlIHdhcm5pbmcgaW50byBhbgogICAgZXJyb3IgYW5kIHRoZW4gZmlndXJlcyBvdXQgdGhhdCB0aGVyZSBpcyBubyB1c2FibGUgbmxpc3QuaCBhbmQgaWdub3JlcyBpdAogICAgZm9yIHRoZSBmdXR1cmUuCgpjb21taXQgYWMzOGNiNTMxYmVlNTBlZGM4ZDRjODM0ZjMwMDVmNTk5MmM3NzFkOApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFRodSBTZXAgMjkgMTk6MDM6MDIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHBlcmw6IEVuYWJsZSBzZW5kaW5nIFNOTVB2MiB0cmFwcyB3aXRoIGFuIGVtcHR5IHZhcmJpbmQgbGlzdAoKY29tbWl0IGE3NWRlMjk3MTUyN2FjMmQyZTgxMjAyNDI5ODYwMmJiMjQxMmYzMzcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDMwIDEwOjQxOjQ0IDIwMTEgKzAyMDAKCiAgICBwZXJsL1NOTVAvU05NUC54czogVXBkYXRlIGVtYWNzIG1vZGVsaW5lCgpjb21taXQgODQ4ZjYzMDBlZmUzODQ5MmZiNDU0NDUxYTAzMGYwYjdlNmZmOGM5ZApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIEZyaSBTZXAgMzAgMTA6NDE6NDQgMjAxMSArMDIwMAoKICAgIHBlcmwvU05NUC9TTk1QLnhzOiBVcGRhdGUgZW1hY3MgbW9kZWxpbmUKCmNvbW1pdCBjMTM3NDQ3M2VjZDhlYzllMDMxMDAxMzg2MWVlMThjODNlNWQ2YzViCkF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CkRhdGU6ICAgRnJpIFNlcCAzMCAwMzoyOTozNiAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogUHJvdGVjdCB0aGUgdXNlIG9mICRPU1RZUEUgdG8gZW5zdXJlIHRoYXQgJ3Rlc3QnIGdldCBlbm91Z2ggcGFyYW1ldGVycy4KCmNvbW1pdCA3ZTk3YTIwNjMzYTU3ZWFlMzlkMDE1YjIzMzM5NDYzYzMyZjVmODQ4CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVGh1IFNlcCAyOSAxMDoyMjowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogdGVzdGluZzogQ29udmVydCBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmMgaW50byB0d28gdW5pdCB0ZXN0cwoKY29tbWl0IDljMGRkOTgxNzY0NTczNDJmZmZhYTVlNzRkODAyZTMxNDVlZDcwZTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDA4OjU2OjE3IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGQgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQoKY29tbWl0IDVmZDI2ZTRmYTNlMDAwZWE5YzgxYzM4YWI5NzViNzk0NmVmZTIxNTcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBXZWQgU2VwIDI4IDE3OjQ5OjU1IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBhZ2VudDogQXZvaWQgdGhhdCBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKSBmYWlsdXJlIHRyaWdnZXJzIGEgZG91YmxlIGZyZWUuCiAgICAKICAgIEZpeGVzIGEgcmVncmVzc2lvbiBpbnRyb2R1Y2VkIHZpYSBjb21taXQKICAgIGFhNGQ0N2MyNjA5ZTUyODE4YzljZGYxYThlMjIwNWRlOWEzMzVhMGEgKHN2biByMTk1MTUpLgoKY29tbWl0IGQyMjUyZDAxNjY5MzgwNzMyNmY3MmI2NjEyMzY0OWRlYTAwYWY5MTYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDI5IDEwOjIwOjA4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZXF1aXJlIGEgc2VtaWNvbG9uIGFmdGVyIE9LKCksIE9LRigpIGFuZCBQTEFOKCkKICAgIAogICAgQWxzbywgbGV0IE9LRigpIGVtaXQgYSBzaW5nbGUgbGluZSBvZiBvdXRwdXQgc3VjaCB0aGF0IGFsbCBvdXRwdXQgaXQKICAgIHByb2R1Y2VzIGlzIHZpc2libGUgaW4gdGhlIG91dHB1dCBvZiAibWFrZSB0ZXN0Ii4KCmNvbW1pdCAxNDIxOTI0YjQ4NTIxNDIxOTJjNWJiOWU5M2RkYmZlZDY5ZTkwOGZhCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAyMSAyMjoyMDowOCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogc25tcGxpYjogQXZvaWQgd2FpdGluZyBpbmRlZmluaXRlbHkgaWYgYSBzZXNzaW9uIGhhcyB0aW1lb3V0IHplcm8KCmNvbW1pdCA1ZjI3ZjRmNzRhZTJiZDViYWY1MDNjZjMwNmI0ZjlhMjg0MWE1N2NmCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjMyOjAzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgcnVubmVyCgpjb21taXQgMDk3MDM5NThjYzVlYTg0NTkyOWFlMTllZjllMDgwNGFlY2FhNTEyZQpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjcgMTI6NDI6NDEgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IEF2b2lkIGZhbHNlIG5lZ2F0aXZlIGZvciBUMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUgY2F1c2VkIGJ5IHRoZSB0ZXN0IHJlc3VsdCBiZWluZyBwcmVzZW50IGluIHRoZSBoZXggZHVtcCAoIm1vc3RseV9oYXJtbGVzcyIpCgpjb21taXQgNDM5MzAwMjc5ZjZmMzE0Mzg2MzhkMmYyMjJjMjRjM2M4NDFmYTZhYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjcgMTE6MTY6MzIgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNaWNyby1vcHRpbWl6ZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcwogICAgCiAgICBUaGlzIG1ha2VzIHRoZSBhZ2VudCBtb2R1bGUgZGVwZW5kZW5jeSBhbmFseXNpcyBjYXJyaWVkIG91dCBieSB0aGUKICAgIGNvbmZpZ3VyZSBzY3JpcHQgc2xpZ2h0bHkgZmFzdGVyLCBlc3BlY2lhbGx5IG9uIHRob3NlIHN5c3RlbXMgd2hlcmUKICAgIGZvcmsoKSBpcyBleHBlbnNpdmUgKEN5Z3dpbikuCgpjb21taXQgYmJjNjgwMDA0YTEzNzYwMzhkZmRjNDE3MmRiZTdiOWUzMTFmYmE2OApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBTZXAgMjYgMTA6MTQ6NDUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBNYWtlIHRlc3QgVDEzMHNubXB2MXZhY21nZXRfc2ltcGxlIHBhc3MKCmNvbW1pdCA3MGIwNmNmNzg5MjA4ZWFhODkwYmZiY2Q2MzhiZGI3NzVmODE3MDU0CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCAyMCAwOTo1MDo1NyAyMDExICswMDAwCgogICAgQ0hBTkdFUzogV2luZG93czogdGVzdGluZzogcGVybDogRml4IGFuIGluY29ycmVjdCBtZXNzYWdlIHByaW50ZWQgd2hpbGUgcnVubmluZyB0aGUgUGVybCBtb2R1bGUgcmVncmVzc2lvbiB0ZXN0cwoKY29tbWl0IDcwYmNjOGRlMmQwZmM5MmJiYjg0ODE4MjM2MzBmYWI5YmM4N2FmNzUKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBGcmkgU2VwIDE2IDE2OjE0OjI0IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogT2J0YWluIHRoZSBNU1lTIHBhdGggZnJvbSB0aGUgZW52aXJvbm1lbnQKCmNvbW1pdCA2MjYyNzVlMmQxYWNhZmFlNzE0NGEzM2VkMzAxYTQwZjU5NmIzN2IwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgV2VkIFNlcCAxNCAxMzoxNDoxNyAyMDExICswMjAwCgogICAgQ0hBTkdFUzogV2luZG93czogUmVtb3ZlIHN1cGVyZmx1b3VzIGxpbmsgbGlicmFyaWVzIGZyb20gcHJvamVjdCBmaWxlcyAoKi5kc3ApCgpjb21taXQgMzhmYzNjYWE5ZWViMzgwMDI1NGI0ZjZhZDZmOGY0NzY0YzBmODNkYgpBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgMjAgMDk6MzQ6MDggMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgbmV0c25tcF9jYWxsYmFja19hY2NlcHQoKSByZXR1cm4gLTEgKGZhaWx1cmUpIGluc3RlYWQgb2YgMCAoU1RESU5fRklMRU5PKQoKY29tbWl0IDZjOGM3ZThhY2E4ZmMyZWViNTIwMTBhZTNlOWZlZTZkZDgzZWY3ODAKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDEzIDA5OjU4OjI2IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBzbm1wbGliOiBSZW1vdmUgb2Jzb2xldGUgc25tcF9nZXRfZmRfZm9yX3Nlc3Npb24oKSBkZWNsYXJhdGlvbgoKY29tbWl0IDA4NjBkMTFmZDhmYzVkYmRhYWFlMjI2MWZhZTJjMDdmYjljMmM4MmQKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDggMTM6NTQ6NTUgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IEF2b2lkIHRoYXQgdGhlIHR5cGVkZWZzIGluIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY29uZmxpY3Qgd2l0aCB0aG9zZSBpbiA8c3RkaW50Lmg+IGZyb20gdGhlIG1zaW50dHlwZXMgcHJvamVjdAoKY29tbWl0IGY4YTAzNmY2M2ZmNjhmMDgzNDM2MTIwZTBhYmQ0NzhiNjkyYTJmNjEKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgU2VwIDggMTM6MjE6MDYgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IFdpbmRvd3M6IE1TVkM6IFdoZW4gbGlua2luZyB3aXRoIE9wZW5TU0wsIGxpbmsgd2l0aCB1c2VyMzIubGliIHRvbwoKY29tbWl0IDgzNmEyM2UxMGNhODEwYzM4OTk5MDJkMzI1ODc2MTZhOWQxMjAzZGYKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUaHUgSnVsIDE0IDE4OjM4OjEzIDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBXaW5kb3dzOiBNU1ZDOiBMaW5rIHdpdGggcHJvcGVyIGxpYmVheTMyIGxpYnJhcnkKCmNvbW1pdCA3YjA3ZmQ2Y2RlZjQ5ZWM3YmIwNGIxNjZlMmE0ZmJiMzdiNTgyODQwCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDExOjEwOjM4IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiB0ZXN0aW5nOiBSZW1vdmUgYW4gaW5jb3JyZWN0IGNvbW1lbnQgZnJvbSBzaW1wbGVfZXZhbF90b29scy5zaAoKY29tbWl0IDk4ZjZkMjlkOTgxZmY4ZTYwNzYwMGM2M2RhZGIyNDA1MzU2Mjk4MDcKQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KRGF0ZTogICBUdWUgU2VwIDYgMTA6NDk6MDMgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgSVNERUZJTkVEKCkgY2hlY2sgZm9yIGFuIGV4YWN0IG1hdGNoIGluc3RlYWQgb2YgYSBwcmVmaXggbWF0Y2gKCmNvbW1pdCA1MmNkMDAzMWEzMWY2OTJmMTMyNjNhOTRjMzM1ZDA2YmUxNDU0ODAzCkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogTWFrZSB0aG9zZSByZWdyZXNzaW9uIHRlc3RzIHBhc3MgZm9yIHdoaWNoIFNOTVBDT05GUEFUSCBhbmQvb3IgU05NUF9QRVJTSVNURU5UX0RJUiBtYXR0ZXIKCmNvbW1pdCBmNWNkODliZDMzNTZkZDc0ZTE1NTZjMGI1MDk2NmE2NDNmMTkyMDg1CkF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CkRhdGU6ICAgVHVlIFNlcCA2IDEwOjEyOjU5IDIwMTEgKzAyMDAKCiAgICBDSEFOR0VTOiBNaW5HVzogdGVzdGluZzogRml4IGEgcmFjZSBjb25kaXRpb24gaW4gdGhlIHRlc3QgZnJhbWV3b3JrCgpjb21taXQgZGVlZGQ1MmM4MzRhNjQ0ODg1MmEwNjc4NTUzNmUxMzg2NTk2OTY5NApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIFR1ZSBTZXAgNiAxMDoxMjo1OCAyMDExICswMjAwCgogICAgQ0hBTkdFUzogTWluR1c6IFN1cHBvcnQgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmUgb2YgcmVjZW50IFNoaW5pbmcgTGlnaHQgT3BlblNTTCBiaW5hcnkgZGlzdHJpYnV0aW9ucwoKY29tbWl0IGQ1NWJkNGUwNTQ5ZjAzYjZmZDMyNTYyYzJhYTdmZTM5MjcyYTllZjcKQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KRGF0ZTogICBXZWQgU2VwIDI4IDA2OjU1OjE5IDIwMTEgLTA3MDAKCiAgICByZW1vdmUgdGhlIHY1LjcgZnJvbSB0aGUgZnJvemVuIGxpc3QKCmNvbW1pdCBhYzJhZWQzYzk0YmIyZWJiNDczYWYwYTFlMjBmMDU2MWFkNjI5OTU2CkF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CkRhdGU6ICAgV2VkIFNlcCAyOCAwNjo1NToxMSAyMDExIC0wNzAwCgogICAgcmVtb3ZlIHRoZSB2NS43IGZyb20gdGhlIGZyb3plbiBsaXN0Cgpjb21taXQgNDZlYWMwMmU5YTI3YmY0ZjMwNjhlNzk1Y2FiODkxZjA1YTg0ODg3MApBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgpEYXRlOiAgIE1vbiBTZXAgMjYgMjE6NDk6MjcgMjAxMSArMDIwMAoKICAgIENIQU5HRVM6IHNubXBkOiBBdm9pZCB0aGF0IHNubXBkIGNyYXNoZXMgaWYgc3RhcnRlZCBvbiBhIHN5c3RlbSB3aXRoIGFub3RoZXIgT3BlblNTTCBsaWJyYXJ5IHZlcnNpb24gdGhhbiB0aGUgb25lIGl0IGhhcyBiZWVuIGJ1aWx0IHdpdGguCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnJjMyAtPiBWNS43LjEKCjIwMTEtMDktMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xCgoKMjAxMS0wOS0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnJjMwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5yYzIgLT4gVjUuNy4xLnJjMwoKMjAxMS0wOS0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZTogNS43LjEucmMzCgoKMjAxMS0wOS0yMiAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IGNvbW1pdCAwN2Y2MWEwMmEyNDA5MDk2ZTVjOTYyY2QyMTExMjYzOTZhZDA5ZDJiIE1lcmdlOiBlZTBkM2FkCgogYmRhMzI0YiBBdXRob3I6IERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBUaHUKIFNlcCAyMiAxMDozOTo1OSAyMDExICswMTAwCgoyMDExLTA5LTIyICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IGM1NWY2MDhmMTZmMTYwZjVlNzlkYzA1N2Y4ODc4ZGVmNDYyOTczZTEgQXV0aG9yOiBEYXZlCgogU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBUaHUgU2VwIDIyIDEwOjM1OjI0IDIwMTEKICswMTAwCgoyMDExLTA5LTIyICBTdGV2ZSBGcmllZGwgPHN0ZXZlQHVuaXh3aXoubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IHNubXBkOiAzNDA5NjkyOgoKIENhbGN1bGF0ZSBkaXNrIHBlcmNlbnRhZ2UgdXNhZ2UgdmlhIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMgdG8KIGF2b2lkIGludGVnZXIgYXJpdGhtZXRpYyBlcnJvcnMuICAoQ29kZSBiYXNlZCBvbiBwYXRjaCwgcmF0aGVyIHRoYW4KIGFwcGxpZWQgdmVyYmF0aW0pCgoyMDExLTA5LTIyICBTdGV2ZSBGcmllZGwgPHN0ZXZlQHVuaXh3aXoubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IHNubXBkOiAzNDA5NjkyOgoKIENhbGN1bGF0ZSBkaXNrIHBlcmNlbnRhZ2UgdXNhZ2UgdmlhIGZsb2F0aW5nLXBvaW50IGFyaXRobWV0aWMgdG8KIGF2b2lkIGludGVnZXIgb3ZlcmZsb3cgZXJyb3JzLiAgKENvZGUgYmFzZWQgb24gdGhlIHN1Ym1pdHRlZCBwYXRjaCwKIHJhdGhlciB0aGFuIGFwcGxpZWQgdmVyYmF0aW0pCgoyMDExLTA5LTIyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogQ2hhbmdlTG9nOiBUaGUgb25seSBjaGFuZ2UgYmV0d2VlbiBWNS43LnJjMSBhbmQgVjUuNy4xLnJjMiBpcyB0aGUKCiB2ZXJzaW9uIG51bWJlci4gTWFrZSB0aGlzIGNsZWFyIGluIHRoZSBDaGFuZ2VMb2cgZmlsZS4KCjIwMTEtMDktMjEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IGNoYW5nZWxvZyB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucmMxIC0+IFY1LjcuMS5yYzIKCjIwMTEtMDktMjEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnJjMgoKCjIwMTEtMDktMDQgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgoKICAgKiA6IGNvbW1pdCA0ZDZkZWZkYWU3MmMzNWIxMDgwMDc2MTgwMzEzZDI5MTA1Njg0NzViIE1lcmdlOiBkM2E3NThjCgogM2I3ZmRjNCBBdXRob3I6IE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPiBEYXRlOiAgIFN1bgogU2VwIDQgMTQ6NDY6MDIgMjAxMSArMDIwMAoKMjAxMS0wOS0wNCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CgogICAqIDogY29tbWl0IGJiZTJjMTlhMDFlY2VjMDI0Zjc0MWUyZTU0NzAxYWU2MjEyZjRjM2UgQXV0aG9yOiBNYWdudXMKCiBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPiBEYXRlOiAgIFN1biBTZXAgNCAxNDo0NDozOCAyMDExCiArMDIwMAoKMjAxMS0wOS0wNCAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+CgogICAqIDogY29tbWl0IGQzYTc1OGNmMzAyNTRiODA3MDZhNDNmMTkxYzE1MjM4YjJjYjczYzkgTWVyZ2U6IGMxMDdjZTAKCiAyMjdkYmQ3IEF1dGhvcjogTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+IERhdGU6ICAgU3VuCiBTZXAgNCAxNDowODozNSAyMDExICswMjAwCgoyMDExLTA5LTA0ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckBseXNhdG9yLmxpdS5zZT4KCiAgICogOiBjb21taXQgOWVmYTQ2N2E5NzJiYjZlMWM3ZmJkYWYyZTI3NDI5ZDI5ZjRhYjg5ZSBBdXRob3I6IE1hZ251cwoKIEZyb21yZWlkZSA8bWFnZnJAbHlzYXRvci5saXUuc2U+IERhdGU6ICAgU3VuIFNlcCA0IDE0OjAwOjEyIDIwMTEKICswMjAwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnByZTIgLT4gVjUuNy4xLnJjMQoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQoKIGRlcGVuZCBmb3IgNS43LjEucmMxCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOiBmaXggQysrIGNvbW1lbnQKCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcuMS5yYzEKCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzEwN2NlMDc4NDA5ZDI2NWI5YjIxOGQ0OWYzODE1Yjc5NWRiMWRjMyBNZXJnZTogZWE0YjNiMgoKIDkxNWFhOGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMzAgMTk6MDc6MDcgMjAxMSAtMDcwMAoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQyMmIwODJhOTU5M2NhOWM2NWFhYzQ0OWU2ZDEyOGE5ZTk3ZTk0ZmIgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBBdWcgMzAKIDE5OjA2OjU2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBlYTRiM2IyM2YzNTA1ODNlNTYyNjMyOGI1MzY3ZTZjNjE3MjU1Zjk1IE1lcmdlOiBiY2YzOGI4CgogYjM0ZDVkYyBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAzMCAxNjozODoyNSAyMDExIC0wNzAwCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNzFjMGQ3NjUwNDkzNzEwNjMxZmEwOGQ1ZGM0ZGFkNTAxYTlhYTc3MSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEF1ZyAzMAogMTY6Mzc6NDEgMjAxMSAtMDcwMAoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGIxM2Y0ZDg4ODZiNmE0ZTczYmMwN2RmMmI5MGQxYTYxMTVjZjNkZmMgTWVyZ2U6IGY3ZTIxZjIKCiA2NGU5Nzc4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDMwIDExOjA5OjMwIDIwMTEgLTA3MDAKCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBiNWQyYTQzZjk3YTU5ODU4Yzk0NGViYTIyOTBiNTliOTNjMjMwYTZhIE1lcmdlOiA4NmVmZWUyCgogY2Y0Y2Y3ZiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAzMCAxMTowOToyOSAyMDExIC0wNzAwCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNi1wYXRjaGVzJyBpbnRvCgogVjUtNi1wYXRjaGVzCgoyMDExLTA4LTMwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdXRvLWRldGVybWluZSBwYXRjaCBhcmd1bWVudHMgaWYKCiBwb3NzaWJsZSBmb3IgbnNwYXRjaHRyeQoKMjAxMS0wOC0zMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbWFrZSBpdCBzbyB0aGUgZ2l0IGNvbW1pdCBsaW5lIGNhbgoKIGJlIGN1dC9wYXN0ZSB3aXRob3V0IGxpbmVicmVha3MKCjIwMTEtMDgtMzAgIFJvbmFsZCBXYWhsIDxyd2EtY29AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzOTQ1ODY6IGZyb20KCiByd2EtY286IGZpbGUgZGVzY3JpcHRvciBsZWFrIGluIHJlYWRfY29uZmlnICgrZml4KSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMzAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZGVzY3JpYmUgdGhhdCBuc3JvbGx1cCBuZWVkcyB0byBiZSBydW4gbm93LgoKCjIwMTEtMDgtMzAgIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBjb21taXQgMmI5MmEwYTFlM2EwNjE4YzUxNWViZDkwMjI3MWI5NWMwODkzMWFmYSBNZXJnZTogYTA4NjM0NwoKIDg2ZWZlZTIgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgVHVlCiBBdWcgMzAgMTE6Mjg6MTQgMjAxMSArMDEwMAoKMjAxMS0wOC0zMCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6IEFwcGFyZW50bHkgSVJJWCBoYXMgYQoKIGRpZmZlcmVudCBBUEkgZm9yIHN0YXRmcwoKMjAxMS0wOC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzogZG9uJ3QgcHJvdmlkZSBhIGZlYXR1cmUgd2hlbiB5b3VyIGEKCiBjaGlsZCBvZiBhbm90aGVyIGZlYXR1cmUKCjIwMTEtMDgtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS03LXBhdGNoZXMnIGludG8KCiBWNS03LXBhdGNoZXMKCjIwMTEtMDgtMjggIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQGx5c2F0b3IubGl1LnNlPgoKICAgKiBhcHBzL01ha2VmaWxlLmluOiBVc2UgdGhlIGZlYXR1cmUgdGFyZ2V0IGluc3RlYWQgb2YgdGhlIHRhcmdldAoKIHdoZW4gYnVpbGRpbmcgdGhlIGZlYXR1cmUgc2V0CgoyMDExLTA4LTI5ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oOiB0aGUgaXJpeDYgYnVpbGQgb25seSBkZWZpbmVzCgogaXJpeDYsIG5vdCBpcml4CgoyMDExLTA4LTI5ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogcmUtYWRkIHNvY2thZGRyX3VuLnN1bl9wYXRoCgogY29uZmlndXJlIGNoZWNrIChsb3N0IGluIHByZXZpb3VzIGNvbW1pdCkKCjIwMTEtMDgtMjggIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmg6IAoKIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYyBkb2Vzbid0IGJ1aWxkIG9uIElSSVggeWV0CgoyMDExLTA4LTI4ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYTA4NjM0NzlkODA5NjJjNjUyOTQ3ZGZkZWUxMWJkZDEzNmMwZTAxMyBNZXJnZTogNTI1MDg5MwoKIGY5NWFhMzEgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFN1biBBdWcgMjggMjM6Mzc6MjcgMjAxMSArMDIwMAoKMjAxMS0wOC0yOCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkIGZpeAoKIGZvciBzeXN0ZW1zIGxhY2tpbmcgZmllbGRzIG1zZ19jb250cm9sL21zZ19mbGFncyBpbiBzdHJ1Y3QgbXNnaGRyCiAoYmFja3BvcnQpCgoyMDExLTA4LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOiBhZGRlZCByZXF1aXJlZCBmZWF0dXJlcyBmb3IKCiBtZmQgaGFuZGxpbmcKCjIwMTEtMDgtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAuZ2l0aWdub3JlOiBhZGRlZCAuZnQgYW5kIC5mdC4xIGZvciBmZWF0dXJlIGZpbGVzCgoKMjAxMS0wOC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6IG5vX3dyaXRlX3N1cHBvcnQgc3VwcG9ydGVkCgoKMjAxMS0wOC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzogaGFuZGxlIG5vLXdyaXRlLXN1cHBvcnQgd2l0aAoKIGlmZGVmcwoKMjAxMS0wOC0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDUyNTA4OTMyN2FiYTdkMDFkNjMzYzYzNGM2YjZmMDZkZTQyYWNiYjggTWVyZ2U6IDFiYjIzNGEKCiAwNGZkNzFhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDI1IDA2OjU3OjIxIDIwMTEgLTA3MDAKCjIwMTEtMDgtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBlYThiZWQ3OWU4MWM0MmUzM2NiZjM3Y2E2ZjNjMDNjNTQ5OTg3YjIyIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDI1CiAwNjo1NjoyMiAyMDExIC0wNzAwCgoyMDExLTA4LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OiB1c2UgPj4gdG8gcHJpbnQgdG8gc3RkZXJyCgoKMjAxMS0wOC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtcmVtb3ZlOiBDSEFOR0VTOiBidWlsZDogRG8gbm90IGdlbmVyYXRlCgogYW4gb3V0cHV0IGZpbGUgb24gZmFpbHVyZSBtYWtlIHN1cHBvc2VzIHRoYXQgbm8gb3V0cHV0IGlzIGdlbmVyYXRlZCBpZiB0aGUgY29tbWFuZCBmYWlsZWQuCiBDaGFuZ2UgZmVhdHVyZS1yZW1vdmUgdG8gZm9sbG93IHRoYXQgcHJlc3VtcHRpb24uCgoyMDExLTA4LTIxICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1yZW1vdmU6IENvcnJlY3QgdHlwbwoKCjIwMTEtMDgtMjMgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAxYmIyMzRhNmNjMzZlNmE0ZWZiZTNmYjI5YzQ4MDIxMGRjMmI5YzEzIE1lcmdlOiAzNWE5OGMzCgogMWYwODJhMyBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEF1ZyAyMyAyMzozODowNyAyMDExICswMjAwCgoyMDExLTA4LTIzICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6IG1ha2Ugc3VyZSB0aGF0CgogX0tFUk5FTCBpcyBkZWZpbmVkIHRvIDEgc28gdGhhdCAiI2lmIF9LRVJORUwiIHdvcmtzIG9uIHN5c3RlbXMgdGhhdAogbmVlZCBpdCAoZS5nLiBJUklYKQoKMjAxMS0wOC0yMyAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDM1YTk4YzNkN2M1YTNjNWRmMzU2YWRkOWU4YjgwODI4Nzg5OWI2OWEgTWVyZ2U6IDFmMzdmNTcKCiBhMjdmNzQ0IEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDIzIDIzOjMwOjI3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMjMgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyNmJiMjQ3MGMxMDZmODM0NDQyYTJhZGJjNzYxMWJmMTY2NTdmYmRmIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgQXVnIDIzIDIzOjIyOjQ0CiAyMDExICswMjAwCgoyMDExLTA4LTIyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhdXRvcmVjb25mCgoKMjAxMS0wOC0yMiAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4CgogZm9yIHN5c3RlbXMgbGFja2luZyBmaWVsZCBtc2dfZmxhZ3MgaW4gc3RydWN0IG1zZ2hkciAoZS5nLiBJUklYKQoKMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogYXV0b3JlY29uZgoKCjIwMTEtMDgtMjEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IGF1dG9yZWNvbmYKCgoyMDExLTA4LTIxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBhdXRvcmVjb25mCgoKMjAxMS0wOC0yMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGI2MmNiMDg2NGY1NzdiYTg1NTczZDBkMjUwZDEyYTM5Mzg3YzA3YjQgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBBdWcgMjEgMDA6NTU6MzMKIDIwMTEgKzAyMDAKCjIwMTEtMDgtMjEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA3MWI5MGI2ZjIxNzk0NGI0ZmZjMTgzNmU1MTYwZDQwZTMzYjQ0MjNkIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gQXVnIDIxIDAwOjQwOjI4CiAyMDExICswMjAwCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnByZTEgLT4gVjUuNy4xLnByZTIKCjIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKCiBkZXBlbmQgZm9yIDUuNy4xLnByZTIKCjIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy4xLnByZTIKCgoyMDExLTA4LTE4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMDMwNTM0Nzk2MDRiYzgzZWZiZWE1NzliNDU2MmIxODMxY2VhMWNiNiBNZXJnZTogZjczZTYzNgoKIGQ5NGRmMzkgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgMTggMTE6NTc6NDYgMjAxMSAtMDcwMAoKMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI4YjU0MDcwNTE0NzUzZThkOGFiYjcxOGIyMjRkNjU3YWI3YThhYjggQXV0aG9yOiBHYXJyZXR0CgogQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyAxOAogMTE6NDk6NTYgMjAxMSAtMDcwMAoKMjAxMS0wOC0xOCAgVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IGFnZW50OiBQQVRDSCAzMzg5MjI4OgoKIGZyb20gd3VsZjIwMDE6IGluY29tcGxldGUgY29tbWl0IChwYXRjaCAzMzg2NjMzOiBmaXggaW50ZWdlcgogb3ZlcmZsb3cpIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0xOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6IFBhdGNoIGZyb20gQ2xhdXMgS2xlaW4gb24gLWNvZGVycyBmb3IgZml4aW5nCgogbWFuIHBhZ2UgdHlwb3MKCjIwMTEtMDgtMTggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IGNoYW5nZWQgY2xpZW50YWRkciBzbyBpdCByZWdpc3RlcnMgYXMgcHJlLW1pYgoKIHRvIGJlIHBpY2tlZCB1cCBiZWZvcmUgdGhlIHRyYW5zcG9ydHMgZ2V0IGNyZWF0ZWQKCjIwMTEtMDgtMTcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjMDIxMzFlNWIzNWQyOTY3NTViYWVjOTliZDM2MzIwNWE4NjMwN2RkIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgQXVnIDE3CiAwOTozNDowMCAyMDExIC0wNzAwCgoyMDExLTA4LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zeXN0ZW0uYzogRml4IHRoZSBsb2cgbWVzc2FnZSB0aGF0IHJlcG9ydHMgdGhhdAoKIGdldGhvc3RieWFkZHIoKSBpcyBtaXNzaW5nCgoyMDExLTA4LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMTgyZTFkYzBjM2VhY2ZhNGU5Y2NkYjI4NjAwZmYwZjIzNzAyMTFhZSBNZXJnZTogNDk5Yjc5NgoKIDUxN2I2YjAgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBXZWQgQXVnCiAxNyAxODowOTozMCAyMDExICswMjAwCgoyMDExLTA4LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNjU4MDU1NmNjN2JkODMzYWY3MzFiNjJjZTFlZDIwMTc1NjRmZTdlYiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZyAxNyAxODowODowMSAyMDExICswMjAwCgoyMDExLTA4LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNDk5Yjc5NmNiZDc4MDY1YzMzNTQ3NzkxMzZiZDNkOWQxZjU0OGE1OCBNZXJnZTogMDQxOGZmMAoKIGE5Y2IyNjcgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnCiAxNCAwODowMjozOCAyMDExICswMjAwCgoyMDExLTA4LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgM2NiM2YxZWRlMzg4ZDg0ZTM5MmUxZDgxNWQ1OTk0YTRiZjBmMTBmOSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU3VuIEF1ZyAxNCAwNzo1OToyNSAyMDExICswMjAwCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC54czogV2luZG93czoKCiBNYWtlIHRoZSBQZXJsIGFnZW50IG1vZHVsZSB3b3JrIGFnYWluIHdpdGggdGhlIG9yaWdpbmFsIFNOTVBfRlJFRSgpCiBkZWZpbml0aW9uLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDA0MThmZjBjZGEyMTQxMWE0N2ZhODk3OGMzZTBkMDQzYTE5ZDI0YjYgTWVyZ2U6IDI2YjBhYTMKCiAzYzczYjQ4IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEF1ZwogMTMgMTg6NDI6MDUgMjAxMSArMDIwMAoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBSZXZlcnQgdGhlIHR3byBtb3N0IHJlY2VudAoKIFNOTVBfRlJFRSgpIGNoYW5nZXMgKGNvbW1pdHMKIDQ3YzhlZjFiODljNmNjYjQyNDdkOTYzMzQ3NzkyNTkwOGM2OGMxYTUgYW5kCiA3ZjQyZDBkOTMzMjA0ODQxNTIyNzE0MjdjYzk4MDhjYmRhNDliYmQwKS4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyNmIwYWEzMDEwZmExODJiNjAzOWE4YzJjYWQ4Y2NiNDU3MTY1MmRlIE1lcmdlOiAyZjNkNjA3CgogMGM4ZTFhOSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBBdWcKIDEzIDExOjQzOjIwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAzZTUwYzNlMDBlOWYzMjFmYjcwOGJjNTc5ZWI0ZGMxYTBmMWU3YzRkIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgQXVnIDEzIDExOjMxOjQwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyZjNkNjA3OWRjMzZhYWQ5NTU5ZDkxYzVjMzI0ZTJjZTUzNTU3M2RkIE1lcmdlOiBlMzJhYTk3CgogZmYxNzM0ZCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBBdWcKIDEzIDA5OjA4OjA2IDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBlMTQ3ZTRiOTY3NTUyMDdkZTFjZTMwOTkwZDY3YjRiN2M3NmRkNDgzIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTYXQgQXVnIDEzIDA4OjM5OjE0IDIwMTEgKzAyMDAKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB3aW4zMi9idWlsZC5wbDogQ0hBTkdFUzogV2luZG93czogYnVpbGRpbmcgKGJ1aWxkLmJhdCk6IEluc3RhbGwKCiBuZXRzbm1wLmRsbCBiZWZvcmUgcnVubmluZyB0aGUgUGVybCByZWdyZXNzaW9uIHRlc3RzIHN1Y2ggdGhhdCB0aGUKIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1biB3aXRoIHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgbmV0c25tcC5kbGwuCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogd2luMzIvTWFrZWZpbGUuaW46IENIQU5HRVM6IFdpbmRvd3M6IHBlcmwgKGJ1aWxkLmJhdCk6IFdoZW4KCiBpbnN0YWxsaW5nIGRldmVsb3BtZW50IGZpbGVzLCBpbnN0YWxsIHRoZSBQREIgZmlsZXMgdG9vLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9jb25mLnQsIHBlcmwvU05NUC90L21pYi50LCAKICAgICAgcGVybC9hZ2VudC90ZXN0LnBsOiBDSEFOR0VTOiB0ZXN0aW5nOiBGaXggUGVybCByZWdyZXNzaW9uIHRlc3QKCiBmYWlsdXJlcyBBbGwgUGVybCByZWdyZXNzaW9uIHRlc3RzIHBhc3Mgbm93IG9uIExpbnV4IGFuZCBvbiBXaW5kb3dzIChNU1ZDKS4KCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBwZXJsL1NOTVAvdC9hc3luYy50LCBwZXJsL1NOTVAvdC9idWxrd2Fsay50OiBDSEFOR0VTOiB0ZXN0aW5nOgoKIFBlcmwgcmVncmVzc2lvbiB0ZXN0czogRG9uJ3QgZmFpbCBza2lwcGVkIHRlc3RzLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czogQ0hBTkdFUzogcGVybDogQWRkCgogU05NUDo6Z2V0ZW52KCkgYW5kIFNOTVA6OnNldGVudigpLgoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQWRkIG5ldHNubXBfc2V0ZW52KCkuCgoyMDExLTA4LTEzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDogZG9jdW1lbnQgaG93IHRvCgogdXNlIG9uIFdpbmRvd3MKCjIwMTEtMDgtMTMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0OiBTZXQgZXhlY3V0ZSBmbGFnIG9uIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QKCiBzdWNoIHRoYXQgdGhlIGluc3RydWN0aW9ucyBpbiB0aGF0IGZpbGUgd29yawoKMjAxMS0wOC0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEZpeCBhIHN1cHByZXNzaW9uIHBhdHRlcm4KCgoyMDExLTA4LTEyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZTMyYWE5Nzc0MjIzMmNlZDNhNzJmOGI4NDVhY2U1Y2UzZDUzYjhkZiBNZXJnZTogNGFkZmVjOAoKIDg2ZmJkMzMgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIEZyaSBBdWcgMTIgMDk6MTE6MTQgMjAxMSAtMDcwMAoKMjAxMS0wOC0xMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGE3M2ViNDBlYzI2M2EwZmRmNTNhNzRlNzIwZGRmNDFjNGE3ZWUzZDQgTWVyZ2U6IDc2OTA4OTQKCiAyOTQwZWUzIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBGcmkgQXVnIDEyIDA5OjExOjEzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMTIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAxZjBhOTI4YTI5MTNjZmE3ZjVjZWFhZjQ2OTZjNjlmYmRjNjg3NjIxIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBGcmkgQXVnIDEyCiAwOTowOToxMSAyMDExIC0wNzAwCgoyMDExLTA4LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNGFkZmVjODEyMTZmNmM1YmYyNWM5YWM2YjJiNzQ3OGQxYmU4ZTg0MiBNZXJnZTogMjgxYjg2OQoKIDI5NDBlZTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiAxMSAxODo1NzoyOSAyMDExICswMjAwCgoyMDExLTA4LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMWUxMDAwYTg4MTU5MjFiNWVjMmU3OTk3YjUzNTkyYTU0NGIzZGZjMiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZyAxMSAxNTo0NjozMiAyMDExICswMjAwCgoyMDExLTA4LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMjgxYjg2OTYxYjEwMjY2ZGRmMzg4Mzk0MmQ0ZGMzYjZiOThkMzIyNyBNZXJnZTogZDhkMjI1YwoKIGYxODEwOTkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiAxMSAxODo0NjowNiAyMDExICswMjAwCgoyMDExLTA4LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBNZXJnZSBWNS00LXBhdGNoZXMuCgoKMjAxMS0wOC0xMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYzogZG9uJ3QgYXNzZXJ0IG9uIGEgZG91YmxlCgogaW5pdDsganVzdCBkb24ndCBkbyBpdCB0d2ljZQoKMjAxMS0wOC0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGQ4ZDIyNWNhMzRhOGYyMjc1MjE1M2FjYjc5NDRmOTQzNWY1NjRkMmMgTWVyZ2U6IDA2YjQxODYKCiA0N2M4ZWYxIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZwogMTAgMTg6MDU6MjEgMjAxMSArMDIwMAoKMjAxMS0wOC0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBTTk1QX0ZSRUUoKTogY2FzdCBhcmd1bWVudCB0bwoKICh2b2lkICopIGJlZm9yZSBwYXNzaW5nIGl0IHRvIG5ldHNubXBfZnJlZSgpCgoyMDExLTA4LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMDZiNDE4NjVlYzMwMmMzOTMxYjEwODNkM2ZkZTg5ZjkzNDVlYzA2ZiBNZXJnZTogMTE0MjZmYgoKIGE0ZjZhYzcgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgOSAwNjo0NDo0MSAyMDExIC0wNzAwCgoyMDExLTA4LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMTE0MjZmYjNjNmYzMjc4MjBiOWJiODZhNzZlY2M5ZTJjMzdlNzkzNCBNZXJnZTogMDM0NGRmOQoKIDliZjA2ODEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgOSAwNjo0NDoxMSAyMDExIC0wNzAwCgoyMDExLTA4LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgOWJmMDY4MTIxOGVkZjQzY2RiNWZjNjhmMTcyMTIzYmM0YTJkMDE4OCBNZXJnZTogZjlkYjYxMQoKIGNjYjBlYjYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgQXVnCiA5IDA4OjE5OjMzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkZTdlMzQ4ZWNlMDNkMjM4MGMyYTg4MDZlYmJhZDVkOWI1NDg3NjgyIE1lcmdlOiBkNTM4YmNiCgogY2NiMGViNiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBBdWcKIDkgMDg6MDc6MjIgMjAxMSArMDIwMAoKMjAxMS0wOC0wOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDAyMjAzOTJkODk5YTljYWI3MDFmNzRhZjEyMDMwYmIxZDRjYzVlMmUgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMSAxMzowMjoxNSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUywgTkVXUzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnByZTEKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LjEucHJlMQoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IGZpeCBDKysgY29tbWVudHMKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogZml4IEMrKyBjb21tZW50cwoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBmaXggQysrIGNvbW1lbnRzCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKICAgICAgIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbTogVmVyc2lvbiBudW1iZXIgdXBkYXRlOgoKIDUuNy4xLnByZTEKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS50b3A6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcuMS5wcmUxCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGNmNGNjZTRjMTg5Y2Y0N2Y0YzQ4OWRiNDNiN2ZhNTEwZjg5MDZhMWEgTWVyZ2U6IGRmOTFhOWYKCiA5M2U5N2RjIEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIE1vbgogQXVnIDggMjI6MTU6MjggMjAxMSArMDEwMAoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS02LXBhdGNoZXMnIGludG8KCiBWNS02LXBhdGNoZXMKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIAogICAgICB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOiBEZWZpbmUKCiBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuIChhcyBwZXIgQWxleCcgYnVpbGQKIGluc3RydWN0aW9ucykKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOiBEZWZpbmUKCiBfQklORF9UT19DVVJSRU5UX1ZDTElCU19WRVJTSU9OIHRva2VuIChhcyBwZXIgQWxleCcgYnVpbGQKIGluc3RydWN0aW9ucykKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS00LXBhdGNoZXMnIGludG8KCiBWNS00LXBhdGNoZXMKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkZjE2ZGMyMjIxZTk5M2RkM2M2NjY1MGQ1ZTg3MjU3N2ZmZTZjMDFiIE1lcmdlOiA3MTRiYzgyCgogOGU1YTI4ZCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEzOjU2OjQzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmZmEwNWIwNTFhYzNlMmIxOTcxOTVhOTk4OWNjN2E5MWZlOGQ5MjgyIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDggMTM6NTU6MzgKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4KCiAgICogOiBjb21taXQgNzE0YmM4MmZhMDFlMjFhMzY1NTgyNDk2M2ZhNTRlOWI4MDQyZmZiMCBNZXJnZTogNmZlOGZlNQoKIDNlZjFkYjUgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCiBBdWcgOCAyMToyMTo0NiAyMDExICswMTAwCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IGI0NTE2MDdkY2EwMTVjMTExZTk2ZmRmZWIyZGRiMDY2MWZiNGY3MjQgQXV0aG9yOiBEYXZlCgogU2hpZWxkIDxELlQuU2hpZWxkQGxpdmVycG9vbC5hYy51az4gRGF0ZTogICBNb24gQXVnIDggMjE6MjA6MzIgMjAxMQogKzAxMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA2ZmU4ZmU1Mjk0YTQ1YmM3ZTRlYTM3NTFhMWFkN2FhNDdiNWNhYmIyIE1lcmdlOiAzNjRmOGZmCgogZjY5YWJlMyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMjI6MDI6MzggMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGM5NDgxMzA0NGE0YzRhNjA4ZTk4ZTgwMjIzMDc1YzZmYWYwNGVlMTEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAyMTo1NjoxNSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMzY0ZjhmZmFlYjkwYjRlYjAxNjVmYzg1NTY4OGNkMDYyNjYzMjc5NCBNZXJnZTogMzI4NzI5NQoKIDdhYmI5MjYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMToyNDoyNiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNi1wYXRjaGVzJyBpbnRvCgogVjUtNi1wYXRjaGVzCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBkaXNwbGF5IHRoZSBicmFuY2ggd2UnbGwgY29tbWl0IHRvCgoKMjAxMS0wOC0wOCAgVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMzg2NjMzOgoKIGZyb20gd3VsZjIwMDE6IGZpeCBpbnRlZ2VyIG92ZXJmbG93IGluIGRpc2sgcGVyY2VudCBjYWxjdWxhdGlvbnMgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODRhNzc1ZDA1NTdmZWE5NzU3MGU0MTcxNWEzMTY0OTcwYjRjMDNhMiBNZXJnZTogNmZmZjFjMQoKIGQzNzNjNGYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDIwOjEyOjMyIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM4NzEzOTogZnJvbQoKIHlhYmVyYXVuZXlhOiBBdm9pZCBzZWdmYXVsdCBpZiB0cmFwc2VzcyB0cmFuc3BvcnQgZWxlbWVudCBjYW50IGJlCiBwYXJzZWQgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuc3NmcGF0Y2hhcHBseTogc3BsaXQgdGhlCgogZGlzcGxheWVkIGdpdCBjb21taXQgY29tbWFuZCBpbnRvIG11bHRpcGxlIHNlZ21lbnRzCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMzODY5NjE6CgogTWFrZSBTTk1QIEdFVCB3b3JrIGluIGFuIEFnZW50WCBzdWJhZ2VudCBpZiB3cml0ZSBzdXBwb3J0IGlzCiBkaXNhYmxlZCB2aWEgTkVUU05NUF9OT19XUklURV9TVVBQT1JUIChNYXJrIFJ1c2spLgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeCBhIGNyYXNoIHRoYXQgY291bGQgYmUKCiB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAogZXF1YWwgdG8gLTEuCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNmZmZjFjMWFlNTFiMDZjOWQ4MGZhZjE1MzczYTk2M2QxNzNmMTRlOCBNZXJnZTogODM3YzUyZQoKIDhjYzkwMDQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMDo1ODo1OSAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOGNhN2ZmMWU2OTJjYWVjNDE4NmI3ODhjOWFlMmQyN2JlMjEzMjkwZiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEF1ZyA4IDEwOjMzOjU2CiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYjhmNTI5Y2JhMjdjMDExNGI0Y2I3MzQwY2ZkNDQ5NTA0ZmEwNzUwNiBNZXJnZTogMDgyMmYyZAoKIDU1NmU5MzggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMDowNTozNiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBmaXggZnVuY3Rpb24gbmFtZSB0eXBvCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI5ODgyYTA3OGE5NTlhMGY3OGIwM2UwMTk2OGYxZDE3YjdmNmEyOTkgTWVyZ2U6IDVlOWJkMmYKCiAwNDA5YzBhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTA6MDM6MzQgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlIG9mIHB1bGwvcHVzaAoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1ha2UgbnNwdWxsL25zcHVzaCBjaGVjayBmb3IgYQoKIGNsZWFuIHJlcG8KCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG5ldyBmdW5jdGlvbiAibnNtYWtlYWxsIiB0byB0ZXN0CgogYnVpbGRpbmcgb24gZXZlcnkgYnJhbmNoCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBkZWZhdWx0IHRvIG1lcmdlCgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTctcGF0Y2hlcycgaW50bwoKIFY1LTctcGF0Y2hlcwoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOiBDSEFOR0VTOiBXaW5kb3dzOiBBdm9pZCB0aGF0IGlmCgogdGhlIE5ldC1TTk1QIFBlcmwgbW9kdWxlcyBoYXZlIGJlZW4gYnVpbHQgd2l0aCBhbm90aGVyIHZlcnNpb24gb2YKIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIHRoYW4gQWN0aXZlUGVybCB0aGF0IHVzaW5nIG9uZSBvZiB0aGVzZSBQZXJsCiBtb2R1bGVzIHRyaWdnZXJzIGEgIkZyZWUgdG8gd3JvbmcgcG9vbCIgY3Jhc2guIFRoaXMgcmVncmVzc2lvbiB3YXMKIGNhdXNlZCBieSBjb21taXQgM2IxNGM1OWNmODI3OGQ0MTAyMDdmZjQyZGViZGEyNjM2NDI2YTQ2OCAodGhlCiBuZXRzbm1wX2ZyZWUoKSBpbnRvIFNOTVBfRlJFRSgpIGNoYW5nZXMgaW4gdGhlICoueHMgZmlsZXMpLgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGUxMDk1Mzk5MzA3MDNjYjMwNTJkNTI0MWIxOGFjNmZjMDYyZmFhY2EgTWVyZ2U6IDBjOWI2Y2IKCiBlNDZiMTcwIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAxODozNDoxMSAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogRml4IGEgY3Jhc2ggdGhhdCBjb3VsZCBiZQoKIHRyaWdnZXJlZCBieSBjYWxsaW5nIF9taWJpbmRleF9hZGQoKSB3aXRoIHRoZSBzZWNvbmQgYXJndW1lbnQgbm90CiBlcXVhbCB0byAtMS4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA3ZjQyZDBkOTMzMjA0ODQxNTIyNzE0MjdjYzk4MDhjYmRhNDliYmQwIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDggMDk6NTA6NTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBjOWI2Y2JlOWRiZTJlYzUyMTdhOTViNjc4MWZkN2RjMWY2ZWJkYTcgTWVyZ2U6IGZhNmNlZjUKCiA5NjMzMjBmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAxODoxNDozNiAyMDExICswMjAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTNiODY1NGEyMzJjNTYzYmM5N2NjOTkyNWNkOTg1OTBhMzBjNWJjNSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDE3OjI0OjE4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBmYTZjZWY1Y2E5MWRmM2EwYjAzNDU1YjY4NTU5ZDJiZWUyNDgxMDFjIE1lcmdlOiBmNWZlNTM2CgogOGFkZDBkYSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcKIDcgMTA6MTg6NTQgMjAxMSArMDIwMAoKMjAxMS0wOC0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGEwZGQzY2FmMjU5MjZlNDM0NjU3MThiZjQxN2E0NjRjMmZiMzYzNjYgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBBdWcgNyAxMDoxNzowMSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogMzIgaXMgdG9vIGxpbWl0ZWQgZm9yCgogYmlnZ2VyIHRhYmxlczsgaW5jcmVhc2UgdGhlIG1heCBtc2cgY291bnQgdG8gMTI4CgoyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtYWtlIHJvbGx1cCBhbmQgc3luYyBzdXBwb3J0CgogLS1yZWJhc2UgYW5kIGNoYW5nZSB0aGUgZGVmYXVsdCBiYWNrIHRvIG1lcmdlCgoyMDExLTA4LTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW4zMjogRG9jdW1lbnRlZCBob3cgdG8gdXNlIGJ1aWxkLmJhdCB3aXRoCgogT3BlblNTTCBlbmFibGVkCgoyMDExLTA3LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogUkVBRE1FLndpbjMyOiBDSEFOR0VTOiBXaW5kb3dzOiBSZW1vdmUgb3V0ZGF0ZWQgaW5zdHJ1Y3Rpb25zIGFib3V0CgogZWRpdGluZyB3aW4zMlxsaWJzbm1wX2RsbFxsaWJzbm1wLmRlZiBmcm9tIFJFQURNRS53aW4zMgoKMjAxMS0wNy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIFJFQURNRS53aW4zMjogQ0hBTkdFUzogV2luMzI6IERvY3VtZW50IGhvdyB0byBidWlsZCA2NC1iaXQKCiBleGVjdXRhYmxlcyBmb3IgdGhlIHg2NC9hbWQ2NCBhcmNoaXRlY3R1cmUKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBmNWZlNTM2ZThmZDZjNDhmZTI0M2RlY2QzMWZhYzljZjFjOTJmNGNjIE1lcmdlOiA3ODUwZWExCgogODA5MjhhOCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTU6MTM6MjcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDgwOTI4YTg5MDljZmFiMzdmMDFiMzlhMDcxYTNlOGFkODU5NTYyMjIgTWVyZ2U6IGYxNmEwOTQKCiAwZGJjODY5IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxMzo1NzozMCAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGRiYzg2OWZlYzA3ZDhlOTBkYmQxYzk1NDkzZWU3Y2JjNjIzYzk1YyBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjQwOjMxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQKCiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5kZWYgYW5kIHBlcmwvU05NUC90CgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgODZjMWUyYjk2NzlmZWMyY2Q3OTliYTc2MDA1YzNkNjBlOWQ0NzYzNCBNZXJnZTogYmNkODYzNQoKIGYxNmEwOTQgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDEyOjIwOjUwIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyZjhkNGY1Nzk2Y2JjMWM3ZTk2N2FjZGFhODAxOWIyNGYxNTIwYTM2IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnIDUgMTI6MDI6NTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvcGFyc2UuYzogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzIC0gcmV2ZXJ0IGNvbW1pdAoKIGQyYzQ3NjhiZDJlZmI0ODY2NDQzNGE4MzE0MjVjMmRkYTg1ZDcxMzMgKENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENICiAzMzYyMjMzOiBmcm9tIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZQogbm9pc2UpLgoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmg6IAoKIFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcyBicmFuY2ggLSB3YXMgYnJva2VuIGJ5IGNvbW1pdAogYmY3MTc4YjBiMjI1ODdkNDNkMWE4MGMyNjljZDIxNmJkNTkzMDIxNCAoYWdlbnQ6IGNoYW5nZSB0eXBlIG9mCiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHRvIGxvbmcpCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaDogVW5icmVhayB0aGUgVjUtNC1wYXRjaGVzCgogYnJhbmNoIC0gd2FzIGJyb2tlbiBieSBjb21taXQKIDBlNjg0MmZlMDgwY2VjODUzYjA4Y2QyMzIzMDE1YWJhYmMzODFjZTEgKENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0gKIDMzODM0NDE6IGZyb20gc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZgogZnJlZWQgbWVtb3J5KS4KCjIwMTEtMDgtMDUgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiBtaW5vciBORVdTIHBvbGlzaAoKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBiY2Q4NjM1MDcxMzgyMjk2M2QzNzZlZmY1ODJhOTJmNDNlNDI2ZDZjIE1lcmdlOiA5YzgxMGEzCgogN2EyMGY3MSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTA6Mjg6NTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDNhYTk0OWZiZGZjMWE5NGE4MzQwYWQ4YmFmOGIzMTQ3NTZhMGJiOWQgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcgNSAxMDoyNjoxNSAyMDExICswMjAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOWM4MTBhM2IzN2I2ODU3M2M0MDMzN2UyNDZlMmZhZjI5OWI3N2QzMSBNZXJnZTogNzFjYjJlOAoKIDYxMGQ2M2YgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAxMDo0MjowOCAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgOTQzOTMwZTFlMTI0Mzg1ZmQ5NDczOGI2ZGNkYTM3ZDI5ZGM3YWM3ZiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVGh1IEF1ZyA0IDEwOjQxOjQxCiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNC1wYXRjaGVzJyBpbnRvCgogVjUtNC1wYXRjaGVzCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNGVkY2I4OGRhZThiMmU1OWRjNjgzZTgwZDQxNGZhN2VjZWMzNjg4NSBNZXJnZTogNjVmM2VlZgoKIDJkZDllZDAgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAxMDoyNDoxMSAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBNZXJnZSByZW1vdGUtdHJhY2tpbmcgYnJhbmNoICdvcmlnaW4vVjUtNS1wYXRjaGVzJyBpbnRvCgogVjUtNS1wYXRjaGVzCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYmM1Y2EwM2EwNGFiMTljNjM0YTM0ZDA2MGIwYjE2Yjc0ODRjYjUyMCBNZXJnZTogODhmZGRiNwoKIDkwYzBlNzUgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDE5OjEzOjA3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcHVzbS5jOiBzbm1wdXNtOiBGaXggcmVjZW50bHkKCiBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDExLTA4LTA0ICBTdHVhcnQgSGVuZGVyc29uIDx0MGp3MmZ1MGttZ0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmM6IENIQU5HRVM6IG9wZW5ic2Q6CgogUEFUQ0ggMzM1NzkzMjogZnJvbSB0MGp3MmZ1MGttZzogQ2xlYW5pbmcgaW4gbWVtb3J5X25ldGJzZC5jIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgVmxhZGltaXIgS29uZHJhdGlldiA8d3VsZjIwMDFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jOiBDSEFOR0VTOiBhZ2VudDoKCiBQQVRDSCAzMzg2MTQ3OiBmcm9tIHd1bGYyMDAxOiBmaXggVUNELVNOTVAtTUlCOjpkc2tVc2VkIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQ3M2Q3ZTVjZDRkNDExYmJhMjBlYjg1MzU5ZDg3MjgwNjMzMDFjYmQgTWVyZ2U6IGE0ZThiNjIKCiA4OGZkZGI3IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDk6Mjg6MjIgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDIxMDFiYjJkN2FkNmRiMDM4Yzc1NWFhOTE5M2M4YWNlMGRiZDRmNTggQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgNCAwOToyODowNgogMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIC5naXRpZ25vcmU6IGlnbm9yZSAqLm9yaWcgYW5kICoucmVqCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogaGVscCBvdXRwdXQgZGVzY3JpYmVzIHJlYmFzZSB2cwoKIG1lcmdlIGJldHRlcgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGYxMjZhMTdjNmEzMDYzNDU1YTUxMTk0MGIwMjMwNDdhYmQ5YjQ4ZWUgTWVyZ2U6IGFkNzY1ZjQKCiA3N2E0Nzg0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDk6MjU6MTYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQ1MmUxNzA3ZjIwOWVjNDVlN2M3ZjJhMzA0MGVmNTk1ZmI5ZDFhZjYgTWVyZ2U6IGRjNzU1YTYKCiBiMzcyZTVhIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDk6MjU6MDMgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgU3R1YXJ0IEhlbmRlcnNvbiA8dDBqdzJmdTBrbWdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZDQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2Q1Lmg6IENIQU5HRVM6IG9wZW5ic2Q6IFBBVENICiAgICAgIDMzNTc5Mjc6CgogZnJvbSB0MGp3MmZ1MGttZzogUmVjb2duaXNlIG9wZW5ic2Q1IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZml4IHdoZXJlIGFyZ3VtZW50cyBhcmUgc2V0CgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogc3BsaXQgbnNzZnBhdGNoYXBwbHkgaW50byB0d28KCiBwYXJ0czogYXBwbHkgYW5kIGNvbW1pdGluZwoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogcGF0Y2ggdXNpbmcgLU4KCgoyMDExLTA4LTA0ICBEYXZpZCBBcm5vbGQgPGRqYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwgbWFuL2VuY29kZV9rZXljaGFuZ2UuMS5kZWYsIAogICAgICBtYW4vZml4cHJvYy4xLmRlZiwgbWFuL21pYjJjLmNvbmYuNS5pbiwgbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZiwKICAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgCiAgICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwKICAgICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGNvbmYuMS5kZWYsCiAgICAgIG1hbi9zbm1wZC44LmRlZiwgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWYsIAogICAgICBtYW4vc25tcGRlbHRhLjEuZGVmLCBtYW4vc25tcGRmLjEuZGVmLCBtYW4vc25tcGdldC4xLmRlZiwgCiAgICAgIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgbWFuL3NubXBuZXRzdGF0LjEuZGVmLCBtYW4vc25tcHNldC4xLmRlZiwgCiAgICAgIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCBtYW4vc25tcHRhYmxlLjEuZGVmLCBtYW4vc25tcHRlc3QuMS5kZWYsIAogICAgICBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLCAKICAgICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCBtYW4vc25tcHVzbS4xLmRlZiwgbWFuL3NubXB2YWNtLjEuZGVmLCAKICAgICAgbWFuL3NubXB3YWxrLjEuZGVmOiBDSEFOR0VTOiBtYW46IFBBVENIIDMzMTI4NjE6IGZyb20gZGphOiBNYW4KICAgICAgcGFnZXMKCiBoeXBoZW4tdnMtbWludXMgY2xlYW51cCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRGV0ZWN0IChhbmQgcmVqZWN0KSBPcGVuU1NMCgogMS4wLjAKCjIwMTEtMDgtMDQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogQ29tbWFuZC1saW5lIG9wdGlvbnMgZm9yIHNpbGVudAoKIGluc3RhbGwKCjIwMTEtMDgtMDQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRW5zdXJlIFdpbmRvd3MgcGFja2FnZQoKIHVuaW5zdGFsbHMgY29tcGxldGVseS4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4MWM2M2ZiNWM1ZTRhYmI5YzI5YWNhODliZjlkNjk0NDEwMDg2ZTk3IE1lcmdlOiA0YTY5MjBhCgogZGM3NTVhNiBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA4OjMzOjM0IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6IGFkZGVkIHNwYWNpbmcgdG8gbWF0Y2ggdGhlIGxhdGVyIGJyYW5jaGVzCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogbWFudWFsIG1lcmdlCgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzogcmVtb3ZlZCBhY2NpZGVudGlhbGx5IGR1cGxpY2F0ZWQgY29kZQoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZQoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZQoKCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgogICAgICBmcm9tCgogeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUuaW46IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMjg6IGZyb20geWFiZXJhdW5leWE6CgogQWRkIEZyZWVCU0QgOS54IHRvIHN1cHBvcnRlZCBPU2VzIGxpc3QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKICAgICAgZnJvbQoKIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCiBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzI4OiBmcm9tIHlhYmVyYXVuZXlhOgoKIEFkZCBGcmVlQlNEIDkueCB0byBzdXBwb3J0ZWQgT1NlcyBsaXN0IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CiAgICAgIGZyb20KCiB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgogc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgc25tcGxpYi9rZXl0b29scy5jLAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENIIDMzODM5NTE6IGZyb20geWFiZXJhdW5leWE6IEZpeCAtV3VudXNlZAogY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiBDSEFOR0VTOiBidWlsZGluZzogUEFUQ0ggMzM4Mzk1MTogZnJvbSB5YWJlcmF1bmV5YTogRml4IC1XdW51c2VkCiBjb21waWxlIHdhcm5pbmdzIHdpdGggRnJlZUJTRC9OZXRCU0QgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZTg3OGFiYmRiMTgwOGVmODNlMGE4MDc0NTM2ZmI1NGUxMzIxOWE4YiBNZXJnZTogNDAzZGU0MgoKIDg3OGZiZjQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwNzo1NTowMCAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjUwYWZhMDY4OTJmZDg5N2FjMzFlMzgzNmE3ZmZjOWUyYjRjZjdiOSBNZXJnZTogMmMxNGMxYwoKIDNhZmM1ZTAgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwNzo1MTozMyAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNTc4Y2Q3Y2NlMzUxYWU4ZDkwNGVjM2Q4MGJlOWJhNmQxZDQ4YTcxMiBNZXJnZTogMjU5ODhiZQoKIGYzYmM1NTEgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwNzo1MDo1NiAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhdXRvY29uZgoKCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczogQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENICgogMzM4Mzk0OTogZnJvbSB5YWJlcmF1bmV5YTogRml4IGF1dG9jb25mIHRlc3RzIGZvciBzeXMvbWJ1Zi5oIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogcHJvbXB0IGZvciBwYXRjaCBhbmQgYW4gYXJlYSwgYW5kCgogdXNlIHRoZSBwcm9wZXIgQ0hBTkdFUyBsaW5lIGZvcm1hdAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogVXNlIGZldGNoIC0tYWxsIGFuZCByZWJhc2UgYXMKCiBzdWdnZXN0ZWQgYnkgQmFydCBmb3Igc3BlZWQgaW1wcm92ZW1lbnRzCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZDZhMWE4OWU2ZjY0ODk1MWE5YjgzMTkzMmQzY2MyMzA4MjFmMmQzNyBNZXJnZTogZGNiNzEyZgoKIDg3MmUwMTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDEyOjA2OjE4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA0NDk2OWI0ZTU3YzI3MTk0ZTViZDM1N2JjNDUyNzVmZWI4Njk1ZDIyIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDggMjA6NTI6MjUgMjAxMSArMDIwMAoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOiBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBJbnZva2UKCiBTbm1wVXRpbE9pZEZyZWUoKSBiZWZvcmUgU25tcFV0aWxPaWRDcHkoKS4gSXQncyBub3QgY2xlYXIgeWV0IHdoeQogdGhlIG9yaWdpbmFsIGNvZGUgZGlkIG5vdCBtYWtlIHNubXB3YWxrIHRyaWdnZXIgYSBtZW1vcnkgbGVhay4KCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkY2I3MTJmZmM4NmIzMzU4MzAwMGVmNGFlOWE1MWNlZDI1Y2QxNWJmIE1lcmdlOiBlODVjZmE1CgogOTg2MjNlZiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcKIDQgMTE6MzY6MTcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDhhMDFlYzY0MjNkNDAwYzRhMTNjY2FjNjhhMzc5MWQwMjE4YTA4ODUgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcgNCAxMToxOToxNyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZTg1Y2ZhNTk5YjIzYjc2ZDk3OTEzYzk2YjVkNzAzYmZmNmJhNDk0NCBNZXJnZTogYjA1NmVlNgoKIGUyMWVlZjIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDA4OjQ0OjQzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IENIQU5HRVM6IGFnZW50OgoKIEF2b2lkIHRoYXQgYSBNSUIgd2FsayBvbiB0aGUgaG9zdCByZXNvdXJjZXMgTUlCIHRyaWdnZXJzIGEgY3Jhc2ggb24KIEZlZG9yYSAxNQoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGIwNTZlZTZlYjUzOTA5YWQwNGYxNmVjMjZkMjY5MGQ3YTA4MzE5MmEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBBdWcgNCAwNzo1OTowNCAyMDExICswMjAwCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjYwogICAgICAgZXNzLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MKICAgICAgIC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIGFnZW50L3NubXBfYWdlbnQuYywgCiAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wdGxzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvc25tcHVzbS5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6CgogcGVybDogRWxpbWluYXRlIGRlYWQgdmFyaWFibGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYWU4ZTNlY2QyZGY0Y2YzNzYyNTk0NGFkZWQxZGZlNDczNWQ0NGVlYSBNZXJnZTogNzMxODdjZQoKIDkzMzVlMTkgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFdlZCBBdWcgMyAxNDozNzozNiAyMDExIC0wNzAwCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNzk0ZjlhNjlkN2ViNjQyMjY4MjAwYjBhNGIxOTkxNTFkZWY2NmVkMCBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEF1ZyAzIDE0OjM2OjI1CiAyMDExIC0wNzAwCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgY29tbWVudAoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIuaDogUmVlbmFibGUgSVAtTUlCOjppcERlZmF1bHRSb3V0ZXJUYWJsZQogICAgICBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBBIG5ldyBmdW5jdGlvbjogbnNzZnBhdGNoYXBwbHkKCiB0aGF0IGF1dG8tcHVsbHMgZ2l0IGNvbW1hbmQgbGluZSBpbmZvIGZyb20gU0YKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaTogYWRkZWQgdmFyaWFibGVzIG5hbWVzIHRvCgogdGhlIGdlbmVyYXRlZCBlcnJvciBtZXNzYWdlcy4KCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzogV29yZGluZyBjaGFuZ2VzIHRvCgogaGVscCBkZXNjcmliZSBjb250ZXh0cyBiZXR0ZXIKCjIwMTEtMDgtMDIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LVU2NC5tMmk6IEFkZGVkCgogdGhlIG1pc3NpbmcgVTY0IG0yaSBmaWxlCgoyMDExLTA4LTAzICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6IFJlZW5hYmxlIElQLU1JQjo6aXBEZWZhdWx0Um91dGVyVGFibGUKICAgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA3LTE4ICBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jOiBhZ2VudDogY2hhbmdlCgogdHlwZSBvZiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHRvIGxvbmcgVHlwZSBvZiBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIHZhcmlhYmxlIGlzIGNoYW5nZWQgZnJvbSBpbnQgdG8gbG9uZy4KIFRoaXMgZml4ZXMgdGhlIGJ1ZyB3aXRoIHdyaXRpbmcgdG8gc25tcEVuYWJsZUF1dGhlblRyYXBzIGlmIHNlcnZlcgogaXMgY29tcGlsZWQgZm9yIDY0Yml0IChzbm1wc2V0IHJlcG9ydHMgd3JvbmcgbGVuZ3RoKS4gVGhpcyBidWcgd2FzCiBpbnRyb2R1Y2VkIGEgbG9uZyB0aW1lIGFnbyAoYnkgZmFlZWNkMCBjb21taXQpLiAgQWN0dWFsbHkgdGhpcyBpcyBhICdsZXNzIGVmZm9ydCcgdHlwZSBvZiBmaXggYnV0IEkgd29uZGVyIHdoeSB3ZQogbmVlZCBhIGxvbmcgdG8gc3RvcmUgYW4gSU5URUdFUiBpbiB0aGUgZmlyc3QgcGxhY2U/IFNpZ25lZC1vZmYtYnk6IElseWEgWWFub2sgPHlhbm9rQGVtY3JhZnQuY29tPiBTaWduZWQtb2ZmLWJ5OiBXZXMKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDZhZDdlMjhmZjllNWU0ZWJjMTM1OGVlMzljYzk3OTZhNDRhMWJlZTcgTWVyZ2U6IGYyODMyZTMKCiAxZTE1NGNlIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZwogMyAxOToxNToyNCAyMDExICswMjAwCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNjFiMTc4ZjFlZTg5NTJhYTAzYWEzYjFiYTUxZjRhNjY1NWU0N2YwMSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgV2VkIEF1ZyAzIDE4OjA5OjQ3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6IFdoaXRlc3BhY2Utb25seSBjaGFuZ2U6IGZpeCBpbmRlbnRhdGlvbgoKIG9mIGFuICNpbmNsdWRlIGRpcmVjdGl2ZQoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHBlcmwvTmV0U05NUC54czogQ0hBTkdFUzogUGVybDogUmVtb3ZlIGZpbGUgcGVybC9OZXRTTk1QLnhzCgogYmVjYXVzZSBpdCBicmVha3MgdGhlIFdpbmRvd3MgYnVpbGQuICBUbyBXZXM6IGlmIHlvdSBjYW4gdGVsbCBtZSBob3cgdG8gcmVwcm9kdWNlIHRoZSBwcm9ibGVtIHlvdSBvYnNlcnZlZAogSSdsbCB0cnkgdG8gZmluZCBhIHBvcnRhYmxlIGZpeC4gIFRoaXMgcmV2ZXJ0cyBjb21taXQgZDU0ODcxZjUyOTM2NzVjODA1OGVjY2U4OGZlZDViNjQ2YzgzNjMyMyAoIkFkZGVkCiBhIGJvZ3VzIGVtcHR5IC54cyBmaWxlIGZvciBidW5kbGluZyBvbiBuZXdlciBwZXJsIHRoYXQgd2FudHMKICJzb21ldGhpbmciIikuCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGY0ODliMTk5YWRhYjQ4YjE2MzNlYmNhZjVmZjVhN2MyMmM0Y2I4OSBNZXJnZTogZjRlYWEwMgoKIDcyYTU5YmMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgQXVnCiAyIDEwOjExOjUzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA3ZmNjMGI4MDMyZjhkYTViN2JjMzAwNTlhZjBiYTY1NmVhZTcxMDkxIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDEgMTQ6MTE6MjggMjAxMSArMDIwMAoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYzogRml4IGEgY29tcGlsZXIgd2FybmluZyBpbgoKCiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYwoKMjAxMS0wOC0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBmaWxlIG5hbWVzIGFuZCBwYXR0ZXJucyBmb3Igb3V0cHV0CgogZmlsZXMgZ2VuZXJhdGVkIGR1cmluZyB0aGUgV2luZG93cyBidWlsZAoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IFNvcnQgYWxwaGFiZXRpY2FsbHkKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkIGFwcHMvc3NodG9zbm1wCgoKMjAxMS0wOC0wMSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICAuZ2l0aWdub3JlLCBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYywgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LXhzLmluYzogUmVtb3ZlIHR3byBnZW5lcmF0ZWQgUGVybCBmaWxlcy4KCgoyMDExLTA4LTAyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZjRlYWEwMmQ5YjA3NmE2N2Q3MjcyZGU3ZWVmOGU5ZGZiZjE4OWJiZiBNZXJnZTogNDAxMjVkOAoKIGFkYWRjYjkgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBBdWcgMiAwMDo1Nzo1MSAyMDExICswMjAwCgoyMDExLTA4LTAyICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOiBzdXBwcmVzcyAib2siIHRlc3Qgb3V0cHV0IGluIG5zYgoKCjIwMTEtMDgtMDEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgNDAxMjVkODUzOWNkODlmOTUyZmJjMjQ1ODhjNWU4MWU5Y2Q4MjFmZSBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgMQogMTM6NTg6MzMgMjAxMSArMDIwMAoKMjAxMS0wOC0wMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDVhY2YwZDJjZWIzOTc3OTY0ZWQzOWYwMDMwNzNiYTY0MTM4YzJlYmQgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBKdWwgMzEgMjM6NTc6NDEKIDIwMTEgKzAyMDAKCjIwMTEtMDctMzEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhNzcyMmE4MWY5Y2I3YWE4NjcwZTdjMjM4NjAxMzYyYTMxMDg3YWNjIE1lcmdlOiAyNDJlMTc5CgogYWU5YWM2YyBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFN1biBKdWwKIDMxIDA5OjExOjQ1IDIwMTEgKzAyMDAKCjIwMTEtMDctMzEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NzaHRvc25tcC5jOiBGaXggYW4gaW5jb3JyZWN0IHNvdXJjZSBjb2RlIGNvbW1lbnQ6IHRoZXJlIGlzCgogbm8gcmVxdWlyZW1lbnQgaW4gdGhlIEFOU0kgQyBzdGFuZGFyZCB0aGF0IHN0YWNrIHZhcmlhYmxlcyBzaG91bGQgYmUKIGluaXRpYWxpemVkIHRvIHplcm8uCgoyMDExLTA3LTMxICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMjQyZTE3OTdiMjY5NGEwNjg5ODU2YWUzNmQwNWQzNDEzYWFmOGQ3NyBBdXRob3I6IFRob21hcwoKIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgU3VuIEp1bCAzMSAwMTo0NDowOQogMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc3lzdGVtLmM6IENIQU5HRVM6IGJ1aWxkaW5nOiBidWlsZCBmaXggZm9yIHN5c3RlbXMgbGFja2luZwoKIGdldGFkZHJpbmZvKCkgYW5kIEVBSV9GQUlMIChlLmcuIEhQLVVYIDEwLjIwLzExLjAwKQoKMjAxMS0wNy0zMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDE4ZGY3NTlmMTliOTc1YzQ0OWQwMTBiYjBhMTYyMTE5YmI2ODM2MGQgTWVyZ2U6IDU0YTQ0Y2IKCiA3MDUwNzE4IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgU2F0IEp1bAogMzAgMTY6Mzk6MTMgMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDgyZDczZmIxMWJlM2FlMzFmMzljOWQ2MThkNTM4OGRjOWIxMDA2ZDcgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwgMjkgMjA6NTE6MjcgMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBhdXRvcmVjb25mCgoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBhdXRvcmVjb25mCgoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDEwOWY2Njk0ZDc4OGY0OGViZDlmYzBhMWU5MGM0NWFiYzM3YmVhMjAgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFNhdCBKdWwgMzAgMTQ6MjI6MTkKIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA3ZDgxMDBlZWQ0NTlhMWZmMWEyMGMwNjczNjRmYTZjYjQ3NDkxMzA5IE1lcmdlOiAxMTZjMjRmCgogOWU0N2FjNCBBdXRob3I6IFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogU2F0IEp1bCAzMCAwMDoyMDowMSAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zLCBkaXN0L25zYi1uaWdodGx5LCBkaXN0L25zYi1wYWNrYWdlOiBtaW5vciBuc2IKCiBmaXhlcy9lbmhhbmNlbWVudHMgZnJvbSBteSBvbGQgc3ZuIHRyZWUKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxMTZjMjRmMGY3ZmIzZjk5YmE2NDY3MzBmNjFjNTZkMWFlMjNiYTQxIE1lcmdlOiA5ODJmYjdmCgogNGZjMGI4YiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBKdWwKIDI5IDExOjMxOjIwIDIwMTEgKzAyMDAKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBjNDgxNzNjMDZhOWVhYWRiZjgxZTZiNDk2MmQ1NWVmMGE1NGRiMjUxIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDI5IDEwOjI3OjM5IDIwMTEgKzAyMDAKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBjb25maWd1cmUsIGx0bWFpbi5zaCwgbTQvbGlidG9vbC5tNDogUmVydW4gYXV0b3JlY29uZgoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBTb3J0IGFscGhhYmV0aWNhbGx5CgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBhcHBzL3NzaHRvc25tcAoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9zdG9yYWdlLmM6IEZpeCB0d28gZmlsZW5hbWVzIGluIGhvc3QgbWliCgogc291cmNlIGNvZGUgY29tbWVudHMuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDk4MmZiN2ZkOGJhYjI1YzQzMjJhYTYyYzUwNDM3MDM2Y2UyOTZlM2UgTWVyZ2U6IDFlZGE2NzUKCiAzNDU4MTI4IEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEp1bCAyOCAxNjoyNDowMyAyMDExICswMjAwCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogRml4IHBvdGVudGlhbAoKIHNpZ3NlZ3Ygd2hlbiBhbiBpZlRhYmxlIGVudHJ5IGlzIHJlbW92ZWQgYXMgcmVzdWx0IG9mIGJvdGgKIGludGVyZmFjZV9yZXBsYWNlX29sZCBhbmQgaW50ZXJmYWNlX2ZhZGVvdXQgYXQgdGhlIHNhbWUgdGltZS4KCjIwMTEtMDctMjggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NzaHRvc25tcC5jOiBNYWtlIGFwcHMvc3NodG9zbm1wLmMgYnVpbGQgYWdhaW4gKHdhcyBicm9rZW4gYnkKCiBjb21taXQgNjEyMjQ3Y2RmMTRjMWU3NDVjMzg0Y2VmZTFmM2ZkZTNlNDQ1YjM0NyB0aGF0IGNoYW5nZWQKIE1TR19OT1NJR05BTCBpbnRvIE5FVFNOTVBfTk9TSUdOQUwpCgoyMDExLTA3LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMWVkYTY3NTNiN2ZlN2QzYjNmMjE3YzA5MjU0ZWMwMmQwZWUxZDBjZSBNZXJnZTogZGI4Yjg2MAoKIGEyZjllY2UgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsCiAyOCAxNTozMjoyOCAyMDExICswMjAwCgoyMDExLTA3LTI4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOiAKCiBDSEFOR0VTOiBzbm1wZDogUmVzdG9yZSBzdG9yYWdlIHRhYmxlcyBvbiBMaW51eAoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgaW50ZXJmYWNlX3JlcGxhY2Vfb2xkIG9wdGlvbi4KCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgogaWZUYWJsZSB3aGVuIGFuIGludGVyZmFjZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYWxyZWFkeSBleGlzaW5nIG9uZQogYXBwZWFycy4gIEUuZy4gcmVtb3ZlIG9sZCBwcHAwIGludGVyZmFjZSB3aGVuIG5ldyBwcHAwIHNob3dzIHVwLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQWxsb3cgaWZUYWJsZQoKIGVudHJpZXMgdG8gYmUgZGVsZXRlZCBpbW1lZGlhdGVseSB3aGVuIGFwcHJvcHJpYXRlIGludGVyZmFjZQogZGlzYXBwZWFycyAoaS5lLiBpbnRlcmZhY2VfZmFkZW91dCA9IDAgd29ya3MgYXMgZXhwZWN0ZWQpLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfZmFkZW91dCcgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gc2V0CiBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZDYyYTBlYjkwNzBiNGQ4ZDlmZTJiY2ZkYjRkNTNkMzdlZjgxNGY5YiBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBKdWwgMjgKIDE0OjQ5OjA4IDIwMTEgKzAyMDAKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX3JlcGxhY2Vfb2xkJyBvcHRpb24gdG8gcmVtb3ZlIG9sZCBlbnRyaWVzIGluCiBpZlRhYmxlIHdoZW4gYW4gaW50ZXJmYWNlIHdpdGggdGhlIHNhbWUgbmFtZSBhcyBhbHJlYWR5IGV4aXNpbmcgb25lCiBhcHBlYXJzLiAgRS5nLiByZW1vdmUgb2xkIHBwcDAgaW50ZXJmYWNlIHdoZW4gbmV3IHBwcDAgc2hvd3MgdXAuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBEb2N1bWVudCB0aGUgaW50ZXJmYWNlX2ZhZGVvdXQgb3B0aW9uLgoKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBBbGxvdyBpZlRhYmxlCgogZW50cmllcyB0byBiZSBkZWxldGVkIGltbWVkaWF0ZWx5IHdoZW4gYXBwcm9wcmlhdGUgaW50ZXJmYWNlCiBkaXNhcHBlYXJzIChpLmUuIGludGVyZmFjZV9mYWRlb3V0ID0gMCB3b3JrcyBhcyBleHBlY3RlZCkuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9mYWRlb3V0JyBjb25maWd1cmF0aW9uIG9wdGlvbiB0byBzZXQKIGxpZmV0aW1lIG9mIGlmVGFibGUgZW50cmllcyBvZiByZW1vdmVkIGludGVyZmFjZXMuICBQcmV2aW91cyBsaWZldGltZSB3YXMgaGFyZGNvZGVkIDUgbWludXRlcywgbm93IGl0J3MgY29uZmlndXJhYmxlLgoKMjAxMS0wNy0yOCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhcHBzL3NzaHRvc25tcC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQKICAgICAgZml4CgogZm9yIHN5c3RlbXMgbGFja2luZyBNU0dfRE9OVFdBSVQKCjIwMTEtMDctMjcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzogQ0hBTkdFUzogc25tcGQ6IE1ha2UKCiBUQ1AtTUlCOjp0Y3BDdXJyRXN0YWIgd29yayBhZ2Fpbi4gV2FzIGJyb2tlbiBpbiA1LjcgYnkgdGhlCiBpbnRyb2R1Y3Rpb24gb2YgdGhlICJmZWF0dXJlcyIgZmVhdHVyZS4KCjIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZmI4ODA3NGZiYmMyNjhjN2YwNTA5NDkxNTM1YWVjNWZlY2IwNTY4NCBNZXJnZTogYTc0M2FlNQoKIDM4MjEyNzMgQXV0aG9yOiBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgSnVsIDI3IDE0OjQ3OjI1IDIwMTEgKzAyMDAKCjIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgMzFmYTA3Y2Q5ZmZkZTQ2ZDQxZDJiNTgzOGMzZmM0ZDAxNTQ4YmZiNSBBdXRob3I6IEphbgoKIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjcKIDE0OjQ1OjQ3IDIwMTEgKzAyMDAKCjIwMTEtMDctMjcgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogQ0hBTkdFUzogc25tcGQ6IHJ1biBzaWduYWwgaGFuZGxlcnMgd2hlbiBzZWxlY3QoKQoKIGlzIGludGVycnVwdGVkLiAgVGhpcyBiZWhhdmlvciBpcyBpbmRpY2F0ZWQgaW4gY29tbWVudCBvbiBsaW5lIDEyNDQsIGJ1dCBpdCB3YXMgbm90CiBhY3R1YWxseSBkb25lLgoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDJlOTQ2NmQ3ZjU5ZDY1ZDA1MDI3NzczNWU0ZWQ5ZDMwNzE5ZmY3NTIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwgMjYgMTM6MTA6MDQgMjAxMSArMDIwMAoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDc3MDgyOTY3NjBlYWY1YTgwZDg1NDA3NDZjOWMyNDk4MjZmZDFiZmUgTWVyZ2U6IGVhMTFlNWUKCiBjZDZlMzgyIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bAogMjYgMTY6MjE6NDEgMjAxMSArMDIwMAoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzogQ2xhcmlmeSBhbiBJUHY2IHNvdXJjZSBjb2RlIGNvbW1lbnQKCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBtYW4vbmV0c25tcF9oYW5kbGVyLjM6IFNwZWxsaW5nIGZpeDoKCiBkZWZpbmVkeSAtPiBkZWZpbmVkCgoyMDExLTA3LTI2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zOiBTcGVsbGluZwoKIGZpeDogYWxldmlhdGUgLT4gYWxsZXZpYXRlCgoyMDExLTA3LTI2ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGRkMmM0NzEzMzQ5M2Q1YTAwZGU2YjNjZGJjZmFjN2U5ZDQ0YjZmZmUgTWVyZ2U6IGY5Y2NiYzcKCiBlYTExZTVlIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVHVlIEp1bCAyNiAxNDoyNToyOCAyMDExICswMjAwCgoyMDExLTA3LTI2ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGM1YTg0NjRjNDJhOTRjMjUwZWUyZGZhMmE0NzMxMDlhNzM0MjAzZDggQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUdWUgSnVsIDI2CiAxNDoyNDo1NSAyMDExICswMjAwCgoyMDExLTA3LTI1ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGY5Y2NiYzc3MjY2NjEzNGQxZDE3OGI1MDVhZjlkZGNkZDllZDQyNDQgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gSnVsIDI1CiAxNTowMjoxNSAyMDExICswMjAwCgoyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYjBjMGEzNTVkNWY2MDFhMTFiZTQ5MTRmYmY3MTM3MTZhYmQzMGEyOSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEp1bCAxOQogMTg6MzY6MTEgMjAxMSAtMDcwMAoKMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGMxNGZjMzg2MTRiYWYxMGQ1MTcxMzZmMDQ4MDkwN2I3ZjAzZDhkNzQgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBKdWwgMjAKIDEzOjQ0OjU5IDIwMTEgLTA3MDAKCjIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOiByZW1vdmUgYnJva2VuIHdoaXRlc3BhY2UgbGluZXMgdGhhdAoKIGxlYWRzIHRvIHJlYWRpbmcgY29uZnVzaW9uCgoyMDExLTA3LTIwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZWJkZDIxNmMwNzRiZjQxY2QzYTA4NGJkMTQ2ODljZjAxYzg4N2IzMSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEp1bCAxOQogMTg6MzY6MTEgMjAxMSAtMDcwMAoKMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIC5naXRpZ25vcmU6IHVwZGF0ZWQgZ2l0aWdub3JlIHRvIGlnbm9yZSBhIG51bWJlciBvZiBhdXRvLWdlbmVyYXRlZAoKIGZpbGVzCgoyMDExLTA3LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzogcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQKCiBsZWFkcyB0byByZWFkaW5nIGNvbmZ1c2lvbgoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGRmNWY3MDA1NWNmOWJlMzNmMDVmYjUwYWJlMmY1YTgxZWFjMDkyYWQgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwgMTkgMTE6MDc6MTkgMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGY1OTZmMTgyNDJkY2RmZDZjZjQ5Yzg4ZGExZDgzNmMxNmUyNjBjYWMgTWVyZ2U6IDBmMzA5YjQKCiA3MGRlZTRiIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bAogMTkgMTE6MzM6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOgogICAgICAzMzY5NjgwOgoKIGZyb20gSWx5YSBZYW5vazogY2hhbmdlIHNubXBfZW5hYmxlYXV0aGVudHJhcHMgZnJvbSBpbnQgdG8gbG9uZyBzdWNoCiB0aGF0IG1vZGlmeWluZyB0aGUgY29ycmVzcG9uZGluZyBNSUIgb2JqZWN0IGRvZXMgbm90IG92ZXJ3cml0ZQogbWVtb3J5IGluIDY0LWJpdCBidWlsZHMuCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzM3MDY0NToKCiBmcm9tIEJpbGwgRmVubmVyOiBGaXggQWdlbnRYIHN1YmFnZW50IGZvdXIgYnl0ZSBsZWFrCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzOiBkbwoKIG5vdCBpbnZva2UgSVNSVU5OSU5HKCkgb24gTWluR1cuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzOgoKIGNsZWFudXAgLSByZW1vdmUgY29kZSB0aGF0IGJlY2FtZSBzdXBlcmZsdW91cy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBNaW5HVzogRG8gbm90CgogYXNzdW1lIHRoYXQga2lsbC5leGUgcmVwb3J0cyB2aWEgaXRzIGV4aXQgc3RhdHVzIHdoZXRoZXIgdGhlCiBzaWduYWxsZWQgcHJvY2VzcyBzdGlsbCBleGlzdHMuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBSZW1vdmUgdGhlIGZ1bmN0aW9uIFdBSVRPUkRJRSgpIGZyb20gc2ltcGxlX2V2YWxfdG9vbHMuc2ggc2luY2UgaXQKIGlzIG5ldmVyIGludm9rZWQuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBTaW1wbGlmeSBXQUlURk9SKCkgaW4gc2ltcGxlX2V2YWxfdG9vbHMuc2guIFRoZSBjb2RlIHRoYXQgaGFuZGxlZAogaW52b2NhdGlvbiBvZiBXQUlURk9SKCkgd2l0aCB6ZXJvIG9yIG9uZSBhcmd1bWVudHMgaGFzIGJlZW4gZHJvcHBlZAogc2luY2UgV0FJVEZPUigpIGlzIGFsd2F5cyBpbnZva2VkIHdpdGggdHdvIGFyZ3VtZW50cy4KCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3M6CgogbWlub3Igc2ltcGxpZmljYXRpb24uCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZTogQ0hBTkdFUzoKCiB0ZXN0aW5nOiBTa2lwIHRlc3QgNTkgaWYgU0lHSFVQIGlzIG5vdCBzdXBwb3J0ZWQuIE1ha2VzIHRlc3QgNTkgcGFzcwogb24gTWluR1cuCgoyMDExLTA3LTA2ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogTWluR1cgZml4CgoKMjAxMS0wNy0wNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgZnJhbWV3b3JrCgogcmVmYWN0b3Jpbmc6IEludHJvZHVjZSBXQUlURk9STk9UQ09ORCgpLgoKMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogTWFrZSBTVE9QUFJPRyBzZW5kIFNJR1RFUk0gcmVwZWF0ZWRseS4gVGhpcyBmaXhlcyBhIHJhY2Ugd2hlcmUKIFNJR1RFUk0gY291bGQgYmUgc2VudCBiZWZvcmUgdGhlIFNJR1RFUk0gc2lnbmFsIGhhbmRsZXIgd2FzIHNldCB1cCwKIGVzcGVjaWFsbHkgd2hlbiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3RzIHVuZGVyIFZhbGdyaW5kLgogQ0hBTkdFUzogdGVzdGluZzogTWFrZSB0aGUgU05NUF9WRVJCT1NFPTEgb3V0cHV0IGV2ZW4gbW9yZSB2ZXJib3NlLgoKMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzcwoKIHJlZmFjdG9yaW5nOiBpbnRyb2R1Y2UgRUNIT1NFTkRTSUdURVJNKCkgYW5kIEVDSE9TRU5EU0lHS0lMTCgpCgoyMDExLTA3LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogRml4IGEgYnVnIGluCgogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaCB0aGF0IHdhcyBpbnRyb2R1Y2VkCiBpbiBjb21taXQgOTM4ZDc1Yy4KCjIwMTEtMDctMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBJZ25vcmUgKi5leGUgZmlsZXMgZ2VuZXJhdGVkIGJ5IHRoZSBXaW4zMgoKIGJ1aWxkCgoyMDExLTA3LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogQ0hBTkdFUzogdGVzdGluZzoKCiBUZXN0IG9ubHkgb25jZSBkdXJpbmcgYSB0ZXN0IHdoZXRoZXIgdGhlIHNoZWxsIHN1cHBvcnRzIHN1Yi1zZWNvbmQKIHNsZWVwaW5nIGluc3RlYWQgb2YgcmVwZWF0ZWRseS4KCjIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46IENIQU5HRVM6IHRlc3Rpbmc6IENoYW5nZWQKCiBkZWZhdWx0IHRpbWVvdXQgZnJvbSAxcyB0byAxMHMgd2hlbiB0aGUgcmVncmVzc2lvbiB0ZXN0cyBhcmUgcnVuCiB1bmRlciBWYWxncmluZAoKMjAxMS0wNy0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogQWZ0ZXIgaGF2aW5nIHNlbnQgU0lHVEVSTSB0byBzbm1wZCBvciBzbm1wdHJhcGQsIHdhaXQgdW50aWwgdGhlCiBwcm9jZXNzIGhhcyBzdG9wcGVkIGJlZm9yZSBzZW5kaW5nIFNJR0tJTEwuIFRoaXMgcmFjZSBjb25kaXRpb24gd2FzCiBoaXQgbW9zdCBlYXNpbHkgd2hlbiBydW5uaW5nIHRoZSByZWdyZXNzaW9uIHRlc3RzIHVuZGVyIFZhbGdyaW5kLgogQ0hBTkdFUzogdGVzdGluZzogQ2hlY2sgUElEIGZpbGUgZXhpc3RlbmNlIGFmdGVyIGhhdmluZyByZWFkIGl0CiBpbnN0ZWFkIG9mIGJlZm9yZS4gVGhpcyBmaXhlcyB0aGUgcmFjZSBjb25kaXRpb24gd2hlcmUgdGhlIFBJRCBmaWxlCiBkaXNhcHBlYXJlZCBhZnRlciB0aGUgZXhpc3RlbmNlIGNoZWNrIGFuZCBiZWZvcmUgaXQgd2FzIHJlYWQuCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZpeCBhIGJ1ZyBpbiBhIGRlYnVnIHN0YXRlbWVudAoKIGludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCiB0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgVGhpcyBwYXRjaCBpcyBhIGNvbWJpbmF0aW9uIG9mIHRoZSBmb2xsb3dpbmcgdG8gVjUuNiBTVk4gcGF0Y2hlczogZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMGYzMDliNDkzYzIxZDNjNjkxNDQ4NzUxNGI0MTU2MDc1NGZmY2RmOSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bCAxOSAwODozNzo1MCAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMWI3NDU0YmMyODE1Njg0NzBhMTMwMDQ3NmQyZWRiNGY0MTFlNjAyOSBNZXJnZTogOGQ5ZGNjOAoKIDY5MGVhN2QgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsCiAxOSAwODozMToyOCAyMDExICswMjAwCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzogQ0hBTkdFUzogc25tcHRyYXBkOiBBZGQgbWlzc2luZyBuZXdsaW5lCgogY2hhcmFjdGVyIGluIGEgbG9nIG1lc3NhZ2UKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IEludm9rZSBzaHV0ZG93bl9wZXJsKCkgd2hlbgoKIHNodXR0aW5nIGRvd24KCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6IFNwZWxsaW5nIGZpeDogYnJhbmtldCAtPiBicmFja2V0CgoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUnVuIGF1dG9yZWNvbmYuCgogRml4ZXMgYnVpbGQgYnJlYWthZ2UgY2F1c2VkIGJ5IHBhdGNoCiBkNTg4ZWM4NTNiZDA1MzFmMjEyZmNiZjUxYjk2MmI5NmM2ODI4YjU5IChSUE0gNC45IHN1cHBvcnQpCgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZDYxN2Q4NGY4M2ZhNjllZDlmYTlmOThlZmM0YWZhZjg4MGQxMjFmMiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEp1bCAxNCAxNjo0Mzo0NyAyMDExICswMjAwCgoyMDExLTA3LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBNYWtlCgogbmV0c25tcF9pcHY2X2ZtdGFkZHIoKSBzaG93IHRoZSBJUHY2IHNjb3BlIElECgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogQWRkIHN1cHBvcnQKICAgICAgZm9yCgogSVB2NiBhZGRyZXNzIHNjb3BlIElECgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBSdW4gYXV0b3JlY29uZgoKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhNTY3MjFhM2U3NzU0ZTM4OWRhYTdlOGEzZDU3OTI4OTllZGM5ZGUzIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgSnVsIDE0IDE2OjE4OjMyIDIwMTEgKzAyMDAKCjIwMTEtMDctMTUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA4NDRkNGNlODY3YmYzYWJlN2I3NTM2YzVkYmZiYTQwMTkzN2E4ZDRhIE1lcmdlOiBlZWQwMTk4CgogNjEwMzZhOCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogRnJpIEp1bCAxNSAxNTozMzoxMCAyMDExIC0wNzAwCgoyMDExLTA3LTE1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgODUxYmNmNTNmY2QxM2NkZjBiYTlmMTJlNWQ2MDNlNzNmOGJiOTYxMSBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgRnJpIEp1bCAxNQogMTU6MzI6NDkgMjAxMSAtMDcwMAoKMjAxMS0wNy0xNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBmaXggYSB0eXBvCgoKMjAxMS0wNy0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAbG9jYWxob3N0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IHNubXBsaWI6ICB0d2VhayBwYXRjaCAzMDQ0ODg4IHRvIHJlc3RvcmUKCiBwcm9wZXIgbm9uLWVycm9yIHJldHVybiBkdXJpbmcgbWliIGxvYWRpbmcKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGFkZGVkIDUuNyBwYXRjaGVzIHRvIHRoZSBicmFuY2ggbGlzdCBhbmQgZml4IHRoZSByZWxlYXNlIGZpbGUKCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QKCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9yZWxlYXNlOiBhIGNvcHkgb2YgdGhlIHJlbGVhc2UgZmlsZSBhcHBsaWVkIHRvIHRoZSBvbGRlcgoKIGJyYW5jaGVzCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCA1LjcgcGF0Y2hlcwoKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjNDMxMjMxZThmMGEzOWQxOTUwYmM3MmMzMmUzNDAyZjkwZmE4MDMwIE1lcmdlOiA1NmZlZTQwCgogYTJhYzI0ZCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEp1bCAxMSAxOTozMzoxNyAyMDExIC0wNzAwCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvcHkgb2YgdGhlCgogc2hlbGwtZnVuY3Rpb25zIHRvIHRoZSBvbGRlciBicmFuY2gKCjIwMTEtMDctMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L3JlbGVhc2U6IGEgY29weSBvZiB0aGUgcmVsZWFzZSBmaWxlIGFwcGxpZWQgdG8gdGhlIG9sZGVyCgogYnJhbmNoZXMKCjIwMTEtMDctMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGZvciA1LjcKCgoyMDExLTA3LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcKCgoyMDExLTA3LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IFJldmVydCAiZml4IGR0bHN1ZHAKCiB0cmFuc3BvcnQgYWRkcmVzcyBmb3JtYXQgZnVuY3Rpb24iIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmFiM2E2ZTZmMmZjYzFmZjNlNWYwZmI1ZGM1ZDA1ZTQ5ODgyMGQ4OS4gICAtIGZvciBzb21lIHJlYXNvbiBJIHNhdyAncmMnIGFuZCBteSBicmFpbiBpbnRlcnByZXRlZCBpdCBhcyAgICAncHJlLXJlbGVhc2UnLiBXaGF0IGNhbiBJIHNheSwgaXQgd2FzIGxhdGUuIDotLwoKMjAxMS0wNy0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAbG9jYWxob3N0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBmaXggZHRsc3VkcCB0cmFuc3BvcnQKCiBhZGRyZXNzIGZvcm1hdCBmdW5jdGlvbiAgLSB1cGRhdGUgaXB2NCBmbXRhZGRyIHRvIGhhbmRsZSBzb2NrYWRkciBhbmQgdG8gY2hlY2sgICAgc2l6ZSBiZWZvcmUgYXNzdW1pbmcgZGF0YSBpcyBhZGRyIHBhaXIgIC0gbW92ZSBkdGxzdWRwIGZ1bmN0aW9ucyB0byBleHRyYWN0IGFkZHIocykgdG8gdGxzYmFzZQoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDU2ZmVlNDAxMThiMjFhOWY0ZGMwMmE2ZjI0N2Y3ZGE2ZmM2OWEwMDUgTWVyZ2U6IGQzOTE5NGIKCiA5ZmY0NzE0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgSnVuIDI5IDIzOjE4OjEzIDIwMTEgLTA3MDAKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZml4IHRhZyBwdXNoaW5nCgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBmaXggdGFnIHB1c2hpbmcKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IG1pc2MgcHVibGljYXRpb24gZml4ZXMgZm91bmQgd2hpbGUKCiBwdWJsaXNoaW5nCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBmb3IgNS43LnJjMwoKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6IDUuNy5yYzMKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHJlbW92ZSB1bm5lZWRlZCBjb21tZW50CgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBtaXNjIHB1YmxpY2F0aW9uIGZpeGVzIGZvdW5kIHdoaWxlCgogcHVibGlzaGluZwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHJhbiBhdXRvaGVhZGVyIHRvIGFkZCB0aGUKCiBtaXNzaW5nIHRlbXBsYXRlIGlmZGVmcwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy5yYzIKCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcucmMyCgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDY0YjZjNjhhODQ5MzBhYjAxZTNlMTQ2YzQ5ZjNhYjUzODJlZmRhM2UgTWVyZ2U6IDEyN2VlYzIKCiBkMzkxOTRiIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgSnVuIDI5IDE3OjEyOjQ2IDIwMTEgLTA3MDAKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkZjljZjlhMWUyOTNkMDVhMjQ3ODY2OTRmNjhjMDVhMmJlMTNhOWIzIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVuIDI5CiAxNjozNDoxMSAyMDExIC0wNzAwCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHVzZSBnaXQyY2wgdG8gZ2VuZXJhdGUgdGhlIENoYW5nZUxvZyBmaWxlOwoKIG5lZWRzIG11Y2ggbW9yZSB3b3JrLgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiB1c2UgdGhlIG5ldyBydW4tYXV0b2NvbmYgc2NyaXB0CgoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvcnVuLWF1dG9jb25mOiBBIHNjcmlwdCB0byBpbnZva2UgdGhlIGNvcnJlY3QgdmVyc2lvbiBvZiB0aGUKCiBhdXRvY29uZiB0b29sCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHJlbWFpbmluZyBjb21tYW5kIGxpbmUgY2hhbmdlcyBmb3Igc3ZuIC0+CgogZ2l0CgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IG1ha2UgdGhlIGJyYW5jaCBlY2hvIG91dHB1dCBhbmQgc3ZuIHVwZGF0ZQoKIGNvbnZlcnRlZCB0byBnaXQgZXF1aXZhbGVudHMKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcHVsbCB0aGUgYnJhbmNoIGluZm8gZnJvbSBnaXQKCgoyMDExLTA2LTI5ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOiBUd2VhayBSUE0gaGFuZGxpbmcgdG8gd29yayB3aXRoCiAgICAgIGxpYnJhcnkKCiB2ZXJzaW9uIDQuOQoKMjAxMS0wNi0yOSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkNTg4ZWM4NTNiZDA1MzFmMjEyZmNiZjUxYjk2MmI5NmM2ODI4YjU5IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgV2VkIEp1biAyOQogMTY6MDc6MDAgMjAxMSArMDIwMAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvcmVsZWFzZTogbm90ZWQgdGhhdCB0aGUgbWFzdGVyIGJyYW5jaCBpcyBpbiByYyBzdGF0ZQoKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCA4YjIzYjRjMTM5MjNiOGNhZjRkNGFlZDMyYTQ1MDkzMzkzNGZmNDYxIE1lcmdlOiAxNTM3ODFkCgogNDdmNTA0OCBBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIFR1ZQogSnVuIDI4IDEzOjE0OjUyIDIwMTEgLTA3MDAKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCBhZjhiMjM1MjM0ZjcyOTQ0YTY0OWE3NmYwZDMwY2ZmOTVhYzJlODk1IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4gRGF0ZTogICBUdWUgSnVuIDI4IDEzOjExOjE5IDIwMTEKIC0wNzAwCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiB1c2UgZ2l0IG1lcmdlIHdpdGggdGhlIC0tbG9nCgogb3B0aW9uCgoyMDExLTA2LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMTUzNzgxZGJmYjJhZmMwMDAzYmE0ZTU4ZmZjY2E1MzAwMWU0ODZkNiBNZXJnZTogYjNlODBkZQoKIDNjNWE0MDkgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVuCiAyOCAxOTo0MzoxMyAyMDExICswMjAwCgoyMDExLTA2LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgOWJjODJlNGNhNDgzN2YwMDA3MmRiYTg2Yjk0OTdhMjcxODY5MDlmOSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1biAyOCAxOToxMzozNSAyMDExICswMjAwCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCiAgICogRkFROiBXZSdyZSBub3cgdXNpbmcgZ2l0IQoKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCBiM2U4MGRlOWIwN2QyODJmZjExYWY4YjA2YTkxZDY0Mjc5ZDMyNjFkIE1lcmdlOiBjNGFkMjc4CgogNmE1ZTVhNiBBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIE1vbgogSnVuIDI3IDIxOjM0OjU5IDIwMTEgLTA3MDAKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCAzOGZlODE3N2Q1MzMxMzVhNmNjNjgyNzI0ZjE2YTkxMTEzYmNkN2YzIE1lcmdlOiA3ZDkxN2NmCgogZGQ1OGJhZiBBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIE1vbgogSnVuIDI3IDIxOjM0OjU2IDIwMTEgLTA3MDAKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCA1YzE3N2Y1MTdkMTZmMDU1NDViMjc5ZDE2ZjBlNGZkNTY5NmJlNjUxIE1lcmdlOiBmMGQ2YmYwCgogYzJiY2ViYyBBdXRob3I6IFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PiBEYXRlOiAgIE1vbgogSnVuIDI3IDIxOjM0OjU1IDIwMTEgLTA3MDAKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKICAgKiA6IGNvbW1pdCA5Yzk3Njk1NzJlYjhjMDNiNjk1NTZjMWM1YWFiOWI0ZDU2YzZkMWQzIEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gSnVuIDI3CiAxNDoxMToxNCAyMDExICswMDAwCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGZlYXR1cmUgdG8gbm90IHJvbGwKCiBicmFuY2hlcyBjdXJyZW5seSBpbiByYyBwaGFzZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBuc3JvbGx1cCBmdW5jdGlvbiBmb3IKCiByb2xsaW5nIGJyYW5jaGVzIHVwd2FyZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBjcmVhdGVkIGFuIG5zcGF0Y2hhcHBseSBmdW5jdGlvbgoKIHRvIGFwcGx5IGEgcHJldmlvdXNseSB0ZXN0ZWQgcGF0Y2ggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgbnN0cnlwYXRjaCBmdW5jdGlvbiB0bwoKIHRlc3QgcGF0Y2ggYXBwbGljYXRpb24gYWdhaW5zdCB2YXJpb3VzIGJyYW5jaGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCB2ZXJib3NlIG91dHB1dCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1vcmUgcHJlZml4IGNoYW5nZXMgYW5kIGJldHRlcgoKIHNldHRpbmcgb2YgZGVmYXVsdCB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSBucyBwcmVmaXhlcyBpbnN0ZWFkIG9mIGdlbmVyaWMKCiBzbm1wIHByZWZpeGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiAKCiBNaXNzaW5nIGNoZWNrIGZvciBycG10cy5oIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBUd2VhayBSUE0gaGFuZGxpbmcgdG8gd29yawoKIHdpdGggbGlicmFyeSB2ZXJzaW9uIDQuOSBCYXNlZCBvbiBhIHBhdGNoIGJ5IEphbiBTYWZyYW5layBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6IFByb3ZpZGUgYSBmcmFtZXdvcmsgZm9yIHJlYWRpbmcKCiBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5IChyYXRoZXIgdGhhbiBxdWVyeWluZwogdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwogZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA1MTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNTE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoKIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CiAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwogZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoKIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CiAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwogZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoKIGZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CiAocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwogZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZvbGxvdy11cCBmb3IgcjIwNTExOiByZWFsbHkgdXNlCgogdGhlIHByb3BlciBmb3JtYXQgc3BlY2lmaWNhdGlvbi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGb2xsb3ctdXAgZm9yIHIyMDUxMTogcmVhbGx5IHVzZQoKIHRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CgogaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YKIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRml4IGEgYnVnIGluIGEgZGVidWcgc3RhdGVtZW50CgogaW50cm9kdWNlZCBieSBwYXRjaCAzMzEwMjUwIC8gcjIwNDk0OiB1c2UgJWxkIHRvIHByaW50IGEgdmFsdWUgb2YKIHR5cGUgb2lkIGluc3RlYWQgb2YgJWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDUxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogVXNlICVwIHRvIHByaW50IGEgcG9pbnRlciBpbnN0ZWFkCgogb2YgJWxkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQKCiBvZiAlbGQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IHJ1biBjb3JyZWN0IHZlcnNpb24gb2YgYXV0b2NvbmYgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogcmFuIGF1dG9jb25mIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTA0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xMCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jOiBJbmNsdWRlIHN0ZGxpYi5oIHRvIG1ha2UgZG1hbGxvYyBoYXBweQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTEwICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlczogRml4IGJ1aWxkIG9mIHNubXB1c20KCiB3aGVuIGFkZGl0aW9uYWwgc2VjIG1vZHVsZXMgcmVxdWVzdGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvY2VydF91dGlsLmM6IEluY2x1ZGUgc3Rk54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAj7HniK31gJGL772k9YCMtPWAkpFiLmggdG8gbWFrZSBkbWFsbG9jIGhhcHB5CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTAwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wOSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6IENIQU5HRVM6IEJVRzogMzE1MTg0NTogZml4IG11bHRpcGxlCgogcmVnaXN0cmF0aW9ucyBvZiBzbm1wIHRyYW5zcG9ydCBoYW5kbGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDk5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wOSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6IENIQU5HRVM6IEJVRzogMzE1MTg0NTogZml4IG11bHRpcGxlCgogcmVnaXN0cmF0aW9ucyBvZiBzbm1wIHRyYW5zcG9ydCBoYW5kbGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTA4ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsIAogICAgICBzbm1wbGliL3N5c3RlbS5jOiBtb3JlIGRuc3NlYyB0d2Vha3MgIC0gY3JlYXRlIGFuIGFwcC1nbG9iYWwKICAgICAgdmFsaWRhdG9yIGNvbnRleHQgZm9yIHVzZSB3aXRoIGFsbCAgICB2YWxpZGF0aW9uIHJvdXRpbmVzLiBtYWlubHkKICAgICAgdXNlZnVsIGZvciBsb25nLWxpdmVkIGFwcHMuICAgLSB1c2UgdGhlIGFwcHR5cGUgYXMgdGhlIHZhbGlkYXRvcgogICAgICAnc2NvcGUnLCBhbGxvd2luZyAgICBmb3IgYXBwLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdmFsaWRhdGlvbgogICAgICB2aWEgbGlidmFsJ3MgICAgZG5zdmFsLmNvbmYgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTA3ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6IGFkZCBhIG1heCBkZWZpbmUgZm9yCgogZWFjaCBkZWZhdWx0IHN0b3JlIHR5cGUgICBub3QgYWN0dWFsbHkgdXNlZCwganVzdCBhIGhlbHBmdWwgcmVtaW5kZXIgZm9yIHRob3NlIGFkZGluZyAgIG5ldyBpZHMgd2hvIG1pZ2h0IG5vdCB0aGluayB0byBjaGVjayBORVRTTk1QX0RTX01BWF9TVUJJRFMuICAgICh0aGUgYm9vbCBsaXN0IGlzIHJhcGlkbHkgYXBwcm9hY2hpbmcgdGhlIGN1cnJlbnQgbGltaXQuKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wNyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46IG1lbnRpb24gYnVpbGRkaXIgd2hlbgoKIGNvbXBsYWluaW5nIGFib3V0IG5vdCBiZWluZyBydW4gZnJvbSBzb3VyY2UgdHJlZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDk2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOiBSZXZlcnRlZCByMjAzNjI6IHRoYXQgcGF0Y2ggbWFrZXMgc2Vuc2Ugb24gdGhlCgogdHJ1bmsgYW5kIHRoZSA1LjYgYnJhbmNoIGJ1dCBub3Qgb24gdGhlIDUuNSBub3Igb24gdGhlIDUuNCBicmFuY2guICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ5NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMzEwMjUwOiBmcm9tIGZlbm5lcjogbWlzYyBmaXhlcyBmb3IgZGVidWdnaW5nCiBvdXRwdXQgb2YgYWdlbnR4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvciBkZWJ1Z2dpbmcKIG91dHB1dCBvZiBhZ2VudHggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKIENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMzEwMjUwOiBmcm9tIGZlbm5lcjogbWlzYyBmaXhlcyBmb3IgZGVidWdnaW5nCiBvdXRwdXQgb2YgYWdlbnR4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDk0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVMsIE5FV1M6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDkyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlIGRlcGVuZCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IGZpeGVkIGF1dG9jb25mIHZlcnNpb24gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0OTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDg5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDg3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKCiBkZXBlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBwZXJsL1NOTVAvU05NUC54czogUmVpbnN0YXRlIGFuICJ1bnVzZWQiIGxhYmVsIHRoYXQgaXMgYWN0dWFsbHkKCiBzdGlsbCByZXF1aXJlZC4gIChyZWZlcmVuY2VkIGluIGxpbmUgMjcxMCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IEZpeCB0eXBvIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLCAKICAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIAogICAgICBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgbWFuL25ldHNubXBfc2NhbGFyLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9wZHUuMywgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOiBkb2N1bWVudGF0aW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0ODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlIGRlcGVuZCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTAxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCAKICAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLCAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAogICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0wMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIENIQU5HRVMsIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMDEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogZml4IHhtbCBxdW90aW5nIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3BhcnNlLmM6IGZpeCBub24gZXhpc3RlbnQgbWFsbG9jIG1hY3JvIHRvIHVzZSBjYWxsb2MKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBBcHBsaWVkIHRoZSBpbnRlbnQgb2YgcGF0Y2ggMzA0NDg4OCB0byBhbGxvdyBhcHBsaWNhdGlvbnMKIHRvIHJlYWQgdGhlIGVycm9yIG1lc3NhZ2VzIG9mIGEgTUlCIHBhcnNpbmcgZmFpbHVyZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogCgogQ0hBTkdFUzogc25tcGQ6IFBBVENIIDMwNjY4NjI6IGZyb20gZmhldzogZml4IHRoZSBhZ2VudCBmb3IKIGNvbXBhcmluZyB1bnNpZ25lZCBsYXJnZSBpbmRleGVzIG9mIHRoZSBkaXNrIGFuZCBleHRlbmQgdGFibGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKCiBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguICBmZ2V0cygpIHJldHVybnMgTlVMTCBib3RoIHdoZW4gL3Byb2MvUElEL2NtZGxpbmUgaXMgZW1wdHkgKD0gc3dhcHBlZAogb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKIC9wcm9jL1BJRC9zdGF0dXMgaW4gYm90aCBjYXNlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0zMSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZCBoclNXUnVuUGF0aAoKIG9mIHN3YXBwZWQtb3V0IHByb2Nlc3NlcyBvbiBMaW51eC4gIGZnZXRzKCkgcmV0dXJucyBOVUxMIGJvdGggd2hlbiAvcHJvYy9QSUQvY21kbGluZSBpcyBlbXB0eSAoPSBzd2FwcGVkCiBvdXQpIGFuZCB3aGVuIHRoZSBwcm9jZXNzIGV4aXRlZCBhZnRlciBmb3BlbigpLCBzbyBjaGVjawogL3Byb2MvUElEL3N0YXR1cyBpbiBib3RoIGNhc2VzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTMxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzogQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGhyU1dSdW5QYXRoCgogb2Ygc3dhcHBlZC1vdXQgcHJvY2Vzc2VzIG9uIExpbnV4LiAgZmdldHMoKSByZXR1cm5zIE5VTEwgYm90aCB3aGVuIC9wcm9jL1BJRC9jbWRsaW5lIGlzIGVtcHR5ICg9IHN3YXBwZWQKIG91dCkgYW5kIHdoZW4gdGhlIHByb2Nlc3MgZXhpdGVkIGFmdGVyIGZvcGVuKCksIHNvIGNoZWNrCiAvcHJvYy9QSUQvc3RhdHVzIGluIGJvdGggY2FzZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMzEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgaHJTV1J1blBhdGgKCiBvZiBzd2FwcGVkLW91dCBwcm9jZXNzZXMgb24gTGludXguICBmZ2V0cygpIHJldHVybnMgTlVMTCBib3RoIHdoZW4gL3Byb2MvUElEL2NtZGxpbmUgaXMgZW1wdHkgKD0gc3dhcHBlZAogb3V0KSBhbmQgd2hlbiB0aGUgcHJvY2VzcyBleGl0ZWQgYWZ0ZXIgZm9wZW4oKSwgc28gY2hlY2sKIC9wcm9jL1BJRC9zdGF0dXMgaW4gYm90aCBjYXNlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHVwIHRoZSBhbnRlIGFuZCBydW4gb3RoZXIgdGVzdCBzdWl0ZXMKCiBiZXNpZGVzIGp1c3QgdGhlIGRlZmF1bHQgc2V0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXBkOiBwYXRjaCAzMjk5Mzg0OiBmaXggSU5GT1JNcyBzbwoKIHRoZXkgcmV0cnkgcHJvYmluZyBmb3IgYW4gZW5naW5lSUQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHVzbS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCgogcmV3cml0aW5nIGV4aXN0aW5nIGF1dGhrZXkvcHJpdmtleS9ldGNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOiBBcHBsaWVkIHRoZSBpbnRlbnQKICAgICAgb2YKCiBwYXRjaCAzMjk5Mzg2IHdoaWNoIGZpeGVzIGR1cGxpY2F0ZSBlbnRyaWVzIG9uIGEgU0lHSFVQLiAgVG8gYWNoaWV2ZQogdGhpcyBzb21lIG5ldyBoZWFkZXJfY29tcGxleCBmdW5jdGlvbnMgbmVlZGVkIHRvIGJlIGNyZWF0ZWQgdGhhdAogZGlkbid0IGNoYW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIG9sZGVyIG9uZXMuICBUaGUgbm90aWZpY2F0aW9uIGNvZGUKIG5vdyBjYWxscyB0aGVzZSBuZXdlciBmdW5jdGlvbnMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCgogdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCgogdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCgogdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMyOTkzODQ6IGZpeCBJTkZPUk1zIHNvCgogdGhleSByZXRyeSBwcm9iaW5nIGZvciBhbiBlbmdpbmVJRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQXBwbGllZCAocm91Z2hseSkgcGF0Y2ggMzI5OTM3MCB0byBhdm9pZAoKIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IEFwcGxpZWQgKHJvdWdobHkpIHBhdGNoIDMyOTkzNzAgdG8gYXZvaWQKCiByZXdyaXRpbmcgZXhpc3RpbmcgYXV0aGtleS9wcml2a2V5L2V0Y3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBBcHBsaWVkIChyb3VnaGx5KSBwYXRjaCAzMjk5MzcwIHRvIGF2b2lkCgogcmV3cml0aW5nIGV4aXN0aW5nIGF1dGhrZXkvcHJpdmtleS9ldGNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQXBwbGllZCAocm91Z2hseSkgcGF0Y2ggMzI5OTM3MCB0byBhdm9pZAoKIHJld3JpdGluZyBleGlzdGluZyBhdXRoa2V5L3ByaXZrZXkvZXRjcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmgsIHBlcmwvTWFrZWZpbGUuUEw6CgogTkVXUzogc25tcGQ6IHBhdGNoIDMxMzEzOTc6IGZyb20gdGFrZXZvczogaHVnZSBzcGVlZHVwcyBvZiB0aGUKIFRDUC9VRFAgVGFibGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcGVybC9OZXRTTk1QLnhzOiBBZGRlZCBhIGJvZ3VzIGVtcHR5IC54cyBmaWxlIGZvciBidW5kbGluZyBvbgoKIG5ld2VyIHBlcmwgdGhhdCB3YW50cyAic29tZXRoaW5nIiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOiBDSEFOR0VTOgoKIHNubXBkOiBwYXRjaCAzMzA2NDc2OiBmcm9tIHRpbnlweXJhbWlkczogZml4IG1lbW9yeSBsZWFrIGluIHRoZQogc3dydW4gY29udGFpbmVyIGxvYWRpbmcgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6IENIQU5HRVM6Cgogc25tcGQ6IHBhdGNoIDMzMDY0NzY6IGZyb20gdGlueXB5cmFtaWRzOiBmaXggbWVtb3J5IGxlYWsgaW4gdGhlCiBzd3J1biBjb250YWluZXIgbG9hZGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOiBGb2xsb3ctdXAgZm9yIHIyMDQ0OTogdXNlCgogTkVUU05NUF9QUklvICJ1IiBmb3IgcHJpbnRpbmcgc3ViaWRzIGluc3RlYWQgb2Ygb25seSBORVRTTk1QX1BSSW8uICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogRm9sbG93LXVwIGZvciByMjA0NDk6IHVzZQoKIE5FVFNOTVBfUFJJbyAidSIgZm9yIHByaW50aW5nIHN1YmlkcyBpbnN0ZWFkIG9mIG9ubHkgTkVUU05NUF9QUklvLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IE1pY3Jvc29mdAoKIFZpc3VhbCBTdHVkaW86IExpbmsgd2l0aCBnZGkzMi5saWIgaWYgT3BlblNTTCBoYXMgYmVlbiBlbmFibGVkCiBiZWNhdXNlIGdkaTMyLmxpYiBpcyBhIGRlcGVuZGVuY3kgb2YgT3BlblNTTC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogTWljcm9zb2Z0CgogVmlzdWFsIFN0dWRpbzogTGluayB3aXRoIGdkaTMyLmxpYiBpZiBPcGVuU1NMIGhhcyBiZWVuIGVuYWJsZWQKIGJlY2F1c2UgZ2RpMzIubGliIGlzIGEgZGVwZW5kZW5jeSBvZiBPcGVuU1NMLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBNaWNyb3NvZnQKCiBWaXN1YWwgU3R1ZGlvOiBMaW5rIHdpdGggZ2RpMzIubGliIGlmIE9wZW5TU0wgaGFzIGJlZW4gZW5hYmxlZAogYmVjYXVzZSBnZGkzMi5saWIgaXMgYSBkZXBlbmRlbmN5IG9mIE9wZW5TU0wuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogRm9sbG93LXVwIGZvciByMjA0NDg6IHNpbmNlIHRoZQoKICJvaWQiIHR5cGVkZWYgaGFzIGJlZW4gY2hhbmdlZCBiYWNrIGZyb20gdWludDMyX3QgdG8gdV9sb25nLCBjaGFuZ2UKIE5FVFNOTVBfUFJJbyBmcm9tIE5FVFNOTVBfUFJJMzIgaW50byAibCIuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IEZvbGxvdy11cCBmb3IgcjIwNDQ4OiBzaW5jZSB0aGUKCiAib2lkIiB0eXBlZGVmIGhhcyBiZWVuIGNoYW5nZWQgYmFjayBmcm9tIHVpbnQzMl90IHRvIHVfbG9uZywgY2hhbmdlCiBORVRTTk1QX1BSSW8gZnJvbSBORVRTTk1QX1BSSTMyIGludG8gImwiLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdAoKIHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMgb2YgdHlwZSAnb2lkJy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQ5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOiBDSEFOR0VTOiBzbm1wZDogVXNlIHByb3BlciBmb3JtYXQKCiBzcGVjaWZpZXIgaW4gZGVidWcgc3RhdGVtZW50cyBmb3IgcHJpbnRpbmcgdmFsdWVzIG9mIHR5cGUgJ29pZCcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQ0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzogQ0hBTkdFUzogc25tcGQ6IFVzZSBwcm9wZXIgZm9ybWF0Cgogc3BlY2lmaWVyIGluIGRlYnVnIHN0YXRlbWVudHMgZm9yIHByaW50aW5nIHZhbHVlcyBvZiB0eXBlICdvaWQnLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6IENIQU5HRVM6IHNubXBkOiBVc2UgcHJvcGVyIGZvcm1hdAoKIHNwZWNpZmllciBpbiBkZWJ1ZyBzdGF0ZW1lbnRzIGZvciBwcmludGluZyB2YWx1ZXMgb2YgdHlwZSAnb2lkJy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0NDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZC5oOiByZXZlcnQgT0lEIHR5cGVkZWYgdG8gdV9sb25nIGFzCgogYWdyZWVkIHRvIG9uIC1jb2RlcnMgYW5kIGluIHRoZSBhZG1pbiBtZWV0aW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDogcmV2ZXJ0IE9JRCB0eXBlZGVmIHRvIHVfbG9uZyBhcwoKIGFncmVlZCB0byBvbiAtY29kZXJzIGFuZCBpbiB0aGUgYWRtaW4gbWVldGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3N5c3RlbS5jOiBSZW1lbWJlciB0byByZXR1cm4gaW5mbyBhbHNvIHdpdGhvdXQgRE5TU0VDCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jOiBBZGRlZCBOVUxMLWNoZWNrcwoKIGFmdGVyIG1hbGxvYyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYzogQWRkZWQgTlVMTC1jaGVja3MKCiBhZnRlciBtYWxsb2MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTI0ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmM6IEFkZGVkIE5VTEwtY2hlY2tzCgogYWZ0ZXIgbWFsbG9jIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yNCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2NvbW1vbi5jOiBBZGRlZCBOVUxMLWNoZWNrcwoKIGFmdGVyIG1hbGxvYyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOiBDSEFOR0VTOgoKIGFnZW50OiBCVUc6IDMzMDUxNTc6IEZpeCBpcEFkZHJlc3NQcmVmaXggaGFuZGxpbmcgb2YgSVB2NiBhZGRyZXNzZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6IENIQU5HRVM6CgogYWdlbnQ6IEJVRzogMzMwNTE1NzogRml4IGlwQWRkcmVzc1ByZWZpeCBoYW5kbGluZyBvZiBJUHY2IGFkZHJlc3NlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogQlVHOiAzMjk1NDA3OiBGaXgKCiBoYW5kbGluZyBvZiB2b2lkIHBvaW50ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IEJVRzogMzI5NTQwNzogRml4CgogaGFuZGxpbmcgb2Ygdm9pZCBwb2ludGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeAoKIGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQ0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBCVUc6IDMyOTU0MDc6IEZpeAoKIGhhbmRsaW5nIG9mIHZvaWQgcG9pbnRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOgoKIHNubXBsaWI6IEJVRzogMzI2NDg1MjogUmVjb2duaXNlIG1pc3NpbmcgcmVwb3J0IHR5cGVzCiAoc25tcHtVbmF2YWlsYWJsZSxVbmtub3dufUNvbnRleHRzLHNubXBVbmtub3duUERVSGFuZGxlcnMpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzoKCiBzbm1wbGliOiBCVUc6IDMyNjQ4NTI6IFJlY29nbmlzZSBtaXNzaW5nIHJlcG9ydCB0eXBlcwogKHNubXB7VW5hdmFpbGFibGUsVW5rbm93bn1Db250ZXh0cyxzbm1wVW5rbm93blBEVUhhbmRsZXJzKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQ0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjY0ODUyOiBSZWNvZ25pc2UgbWlzc2luZyByZXBvcnQgdHlwZXMKIChzbm1we1VuYXZhaWxhYmxlLFVua25vd259Q29udGV4dHMsc25tcFVua25vd25QRFVIYW5kbGVycykgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0NDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFNTSERvbWFpbi5jLCBzbm1wbGliL3NubXBTVEREb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDMyMzQ3NTQ6IEVuc3VyZQogICAgICBvbGQKCiBmX2NyZWF0ZV9mcm9tX3RzdHJpbmcgaG9vayBpcyBpbml0aWFsaXplZCB0byBOVUxMIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzoKICAgICAgMzIzNDc1NDoKCiBFbnN1cmUgb2xkIGZfY3JlYXRlX2Zyb21fdHN0cmluZyBob29rIGlzIGluaXRpYWxpemVkIHRvIE5VTEwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTIwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogQlVHOgogICAgICAzMjM0NzU0OgoKIEVuc3VyZSBvbGQgZl9jcmVhdGVfZnJvbV90c3RyaW5nIGhvb2sgaXMgaW5pdGlhbGl6ZWQgdG8gTlVMTCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0yMCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6IENIQU5HRVM6Cgogc25tcGxpYjogQlVHOiAzMjM0NzU0OiBFbnN1cmUgb2xkIGZfY3JlYXRlX2Zyb21fdHN0cmluZyBob29rIGlzCiBpbml0aWFsaXplZCB0byBOVUxMIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDQyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVzZSAjaWZkZWYKCiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiB1c2UgI2lmZGVmCgogcmF0aGVyIHRoYW4gI2lmIGZvciBkZWZpbmUgY2hlY2tzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0NDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogdXNlICNpZmRlZgoKIHJhdGhlciB0aGFuICNpZiBmb3IgZGVmaW5lIGNoZWNrcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVzZSAjaWZkZWYKCiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IHVzZSAjaWZkZWYKCiByYXRoZXIgdGhhbiAjaWYgZm9yIGRlZmluZSBjaGVja3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wX2FwaS4zLmRlZiwgbWFuL3NubXBfc2Vzc19hcGkuMy5kZWY6IENIQU5HRVM6IG1hbjogQlVHOgoKIDMxOTA3MjU6IERvY3VtZW50IHNubXB7LF9zZXNzfXN5bmNoX3Jlc3BvbnNlIGFuZCBzbm1wX2FzeW5jX3NlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOiBDSEFOR0VTOiBtYW46IEJVRzoKCiAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQgc25tcF9hc3luY19zZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmOiAKCiBDSEFOR0VTOiBtYW46IEJVRzogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kCiBzbm1wX2FzeW5jX3NlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0NDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE5ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWY6IAoKIENIQU5HRVM6IG1hbjogQlVHOiAzMTkwNzI1OiBEb2N1bWVudCBzbm1weyxfc2Vzc31zeW5jaF9yZXNwb25zZSBhbmQKIHNubXBfYXN5bmNfc2VuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjogQ0hBTkdFUzogbWFuOiBCVUc6CgogMzE5MDcyNTogRG9jdW1lbnQgc25tcHssX3Nlc3N9c3luY2hfcmVzcG9uc2UgYW5kIHNubXBfYXN5bmNfc2VuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQ0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQoKIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKgogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICAoYWxyZWFkeQogZml4ZWQgaW4gVjUtNS1wYXRjaGVzIGFuZCBWNS00LXBhdGNoZXMgaW4gU1ZOIHJldi4gMjAxMTUsIGR1bm5vIHdoeQogSSBkaWQgbm90IHBhdGNoIHRydW5rKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTkgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQoKIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKgogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICAoYWxyZWFkeQogZml4ZWQgaW4gVjUtNS1wYXRjaGVzIGFuZCBWNS00LXBhdGNoZXMgaW4gU1ZOIHJldi4gMjAxMTUsIGR1bm5vIHdoeQogSSBkaWQgbm90IHBhdGNoIHRydW5rKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NjYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzoKCiAzMTg0Njk3OiBEb24ndCByZWZlcmVuY2UgaW50ZXJuYWwgTUQ1IHdoZW4gaXQncyBleHBsaWNpdGx5IGRpc2FibGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xOSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL3NjYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEJVRzoKCiAzMTg0Njk3OiBEb24ndCByZWZlcmVuY2UgaW50ZXJuYWwgTUQ1IHdoZW4gaXQncyBleHBsaWNpdGx5IGRpc2FibGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE2ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc3lzdGVtLmM6IG1ha2Ugc3VyZSB3ZSBnZXQgdGhlIGhpbnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9SVU5URVNUUzogRm9sbG93LXVwIGZvciByMjA0MzI6IHRlc3RpbmcvUlVOVEVTVFMgd2l0aG91dAoKIGFyZ3VtZW50cyB3b3JrcyBhZ2FpbiBhcyBpdCBzaG91bGQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOiBGb2xsb3ctdXAgZm9yIHIyMDQzMjogdGVzdGluZy9SVU5URVNUUyB3aXRob3V0CgogYXJndW1lbnRzIHdvcmtzIGFnYWluIGFzIGl0IHNob3VsZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBSYW4KCiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMgdGhyb3VnaCBkb3MydW5peC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlOiBGaXhlZCBhIHR5cG8gaW4gYQoKIGNvbW1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzFjb20yc2VjNl9zaW1wbGU6IEZpeGVkIGEgdHlwbyBpbiBhCgogY29tbWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9SVU5URVNUUzogUlVOVEVTVFMgd29ya3MgYWdhaW4gZm9yIHRlc3RzIHdpdGggYSBmb3VyLWRpZ2l0CgogbnVtYmVyLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTE0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9SVU5URVNUUzogUlVOVEVTVFMgd29ya3MgYWdhaW4gZm9yIHRlc3RzIHdpdGggYSBmb3VyLWRpZ2l0CgogbnVtYmVyLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBGaXhlZCBhIHJlY2VudGx5IGludHJvZHVjZWQgYnVnIGluCgogbmV0c25tcF9nZXRhZGRyaW5mbygpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzogRG9jdW1lbnQgdGhhdCB0aGUgdWNkLXNubXAKCiBkaXNraW8gY29kZSBzdGlsbCBoYXMgdG8gYmUgbW9kaWZpZWQgc3VjaCB0aGF0IGRpc2tpb19mcmVlX2NvbmZpZygpCiBnZXRzIGludm9rZWQgdXBvbiBTSUdIVVAuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzogRG9jdW1lbnQgdGhhdCB0aGUgdWNkLXNubXAKCiBkaXNraW8gY29kZSBzdGlsbCBoYXMgdG8gYmUgbW9kaWZpZWQgc3VjaCB0aGF0IGRpc2tpb19mcmVlX2NvbmZpZygpCiBnZXRzIGludm9rZWQgdXBvbiBTSUdIVVAuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBmaXggY2FzdCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2NlcwogICAgICAgcy5jOiBSZXZlcnQgMjA0MjAgIkNIQU5HRVM6IHNubXBkOiBGaXhlZCBtZW1vcnkgbGVhayBpbiBUQ1AtTUlCCgogdGFibGVzIGludHJvZHVjZWQgYnkgcGF0Y2ggIzMwNTM0MzYuIiBSZXZlcnQgMTk3MDggIkNIQU5HRVM6IHNubXBkOgogUEFUQ0g6IDMwNTM0MzY6IGZyb206IHRha2V2b3M6IGZpeDogdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzCiBpbnZhbGlkIG1lbW9yeSBhY2Nlc3MiIHRoZSBidWcgMzA1MzQzNiBpcyBmaXhpbmcgd2FzIGludHJvZHVjZWQgaW4gcjE3NzE5LCBhbmQgZml4ZWQgaW4KIHIxNzg2MS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEzICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCAKICAgICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zeXN0ZW0uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOiBtb3JlIGRucyByZWxhdGVkIHR3ZWFrcyAgLQogICAgICBhZGQgbmV0c25tcF9nZXRob3N0YnlhZGRyICAtIGFsd2F5cyBkZWZpbmUgbmV0c25tcF8qIHZlcnNpb25zOwogICAgICBsb2dvbmNlIGlmIHVuZGVybHlpbmcgICAgZnVuY3Rpb24gaXMgbm90IGF2YWlsYWJsZSAgLSB1c2UgbmV3CiAgICAgIGZ1bmN0aW9ucyBpbiBkaXNtYW4gbWlicyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgc25tcGxpYi9zbm1wdjMuYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOiB1c2UgbmV3IG5ldHNubXAgZG5zCgogZnVuY3Rpb25zIGluIGFwcHMvc25tcGxpYiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmM6IG1vdmUgRE5TU0VDCgogdmFsaWRhdGlvbiBpbnRvIHJlc29sdmVyIHdyYXBwZXIgZnVuY3Rpb25zICAgLSBhbGxvd3Mgb3RoZXIgY29kZSB0byBiZW5lZml0IGZyb20gdmFsaWRhdGlvbiAgIC0gbmV3IG5ldHNubXBfZ2V0aG9zdGJ5bmFtZSwgbmV0c25tcF9nZXRhZGRyaW5mbyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbWliLmM6IEZvbGxvdy11cCBmb3IgcjIwNDE3OiByZXBsYWNlZCBhIG1hbGxvYygpL2ZyZWUoKQoKIHBhaXIgYnkgYSBjYWxsIHRvIHJlYWxsb2MoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbWliLmM6IEZvbGxvdy11cCBmb3IgcjIwNDE3OiByZXBsYWNlZCBhIG1hbGxvYygpL2ZyZWUoKQoKIHBhaXIgYnkgYSBjYWxsIHRvIHJlYWxsb2MoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbWliLmM6IEZvbGxvdy11cCBmb3IgcjIwNDE3OiByZXBsYWNlZCBhIG1hbGxvYygpL2ZyZWUoKQoKIHBhaXIgYnkgYSBjYWxsIHRvIHJlYWxsb2MoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbmV0bGluay5jOiBGaXggZm9yIFJIRUw0CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOiBIZWFkZXIgZmlkZGxpbmcgZm9yIHRoZQoKIGJlbmVmaXQgb2YgUkhFTDQsIFNvbGFyaXMsIE9wZW5CU0QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQyMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2NlcwogICAgICAgcy5jOiBDSEFOR0VTOiBzbm1wZDogRml4ZWQgbWVtb3J5IGxlYWsgaW4gVENQLU1JQiB0YWJsZXMKICAgICAgaW50cm9kdWNlZAoKIGJ5IHBhdGNoICMzMDUzNDM2LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjA0MjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQogICAgICAgY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuYzogQ0hBTkdFUzogc25tcGQ6IEZpeGVkIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIgdGFibGVzCiAgICAgIGludHJvZHVjZWQKCiBieSBwYXRjaCAjMzA1MzQzNi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6IFJldmVydGVkIGFjY2lkZW50YWxseSBjb21taXR0ZWQKCiBjaGFuZ2VzIG9mIHIyMDQxMi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogc25tcF9mcmVlX3Nlc3Npb24oKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDE4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHNubXBfZnJlZV9zZXNzaW9uKCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4KCiBzbm1wX2ZyZWVfc2Vzc2lvbigpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBhIG1lbW9yeSBsZWFrIGluCgogc25tcF9mcmVlX3Nlc3Npb24oKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcwoKIHBhc3QgdGhlIGVuZCBvZiB0aGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcwoKIHBhc3QgdGhlIGVuZCBvZiB0aGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9taWIuYzogQ0hBTkdFUzogc25tcGxpYjogX21pYmluZGV4X2FkZCgpIG5vIGxvbmdlciByZWFkcwoKIHBhc3QgdGhlIGVuZCBvZiB0aGUgZHluYW1pY2FsbHkgYWxsb2NhdGVkIGFycmF5IF9taWJpbmRleGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2xjZF90aW1lLmM6IEF2b2lkIHRoYXQgTVNWQyB0cmlnZ2VycyBhIGNvbXBpbGVyIHdhcm5pbmcgb24KCiB0aGUgY29kZSBpbiBzbm1wbGliL2xjZF90aW1lLmMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmM6IEF2b2lkCgogcmVhZGluZyBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBOZXRUb01lZGlhVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBOZXRUb01lZGlhVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBOZXRUb01lZGlhVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhayBpbgoKIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBOZXRUb01lZGlhVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5CgogbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlmVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeQoKIGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpZlRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkKCiBsZWFrIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaWZUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5CgogbGVhayBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlmVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOiBDSEFOR0VTOiBXaW4zMjogRml4ZWQgYSBtZW1vcnkgbGVhawoKIGluIHRoZSBOZXQtU05NUCAobm9uLXdpbkV4dERMTCkgaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSQogaXBBZGRyVGFibGUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDQxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsKCiBpbiB0aGUgTmV0LVNOTVAgKG5vbi13aW5FeHRETEwpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBNSUItSUkKIGlwQWRkclRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6IENIQU5HRVM6IFdpbjMyOiBGaXhlZCBhIG1lbW9yeSBsZWFrCgogaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgTUlCLUlJCiBpcEFkZHJUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNDEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDogCgogQ0hBTkdFUzogV2luMzI6IEZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIE5ldC1TTk1QIChub24td2luRXh0RExMKQogaW1wbGVtZW50YXRpb24gb2YgdGhlIE1JQi1JSSBpcEFkZHJUYWJsZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiBEb2N1bWVudGF0aW9uIC8gc291cmNlIGNvZGUgY29tbWVudCBzcGVsbGluZyBmaXg6CgogZXhpdGVudCAtPiBleGlzdGVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNDExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZywgc25tcGxpYi9taWIuYzogRG9jdW1lbnRhdGlvbiAvIHNvdXJjZSBjb2RlIGNvbW1lbnQKCiBzcGVsbGluZyBmaXg6IGV4aXRlbnQgLT4gZXhpc3RlbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDQxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2csIHNubXBsaWIvbWliLmM6IERvY3VtZW50YXRpb24gLyBzb3VyY2UgY29kZSBjb21tZW50Cgogc3BlbGxpbmcgZml4OiBleGl0ZW50IC0+IGV4aXN0ZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nLCBzbm1wbGliL21pYi5jOiBEb2N1bWVudGF0aW9uIC8gc291cmNlIGNvZGUgY29tbWVudAoKIHNwZWxsaW5nIGZpeDogZXhpdGVudCAtPiBleGlzdGVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBXaW4zMjogQnVpbGQKCiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMgb25seSBpZiBORVRTTk1QX0VOQUJMRV9JUFY2CiBoYXMgYmVlbiBkZWZpbmVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTEgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBjb25maWd1cmUsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogaW5zdGFsbCB0aGUgYnVpbHQgZmVhdHVyZQoKIGhlYWRlcnMgdG9vIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTExICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjZzbm1wdjNnZXRTSEFBRVNfc2ltcGxlOiBDSEFOR0VTOgoKIHRlc3Rpbmc6IFRlc3RzIDAyNSBhbmQgMDI2IHBhc3Mgb24gTWluR1cgZXZlbiBpZiB3aW5FeHRETEwgaGFzIGJlZW4KIGVuYWJsZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZTogVDA2NSByb2J1c3RuZXNzCgogaW1wcm92ZW1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNDA3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfdm9pZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5oOiBDSEFOR0VTOiBzbm1wZDogdWNkX3NubXAgYnVpbGRzCgogYWdhaW4gb24gTWluR1cgYW5kIEN5Z3dpbi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUuaW46IGluc3RhbGwgdGhlIG5ldC1zbm1wLWZlYXR1cmVzLmggZmlsZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6IEltcHJvdmVkIHRlc3QKCiByb2J1c3RuZXNzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6IENvbXBpbGVyIHdhcm5pbmcgZml4ZXMuICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogTWluR1c6IGF2b2lkIHRoYXQgZ2NjIGNvbXBsYWlucyBhYm91dCBwYXNpbmcKCiBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA0MDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IE1pbkdXOiBhdm9pZCB0aGF0IGdjYyBjb21wbGFpbnMgYWJvdXQgcGFzaW5nCgogYSAoY2hhciAqKSBhcmd1bWVudCB3aGlsZSAodW5zaWduZWQgY2hhciAqKSBpcyBleHBlY3RlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNDAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBNaW5HVzogYXZvaWQgdGhhdCBnY2MgY29tcGxhaW5zIGFib3V0IHBhc2luZwoKIGEgKGNoYXIgKikgYXJndW1lbnQgd2hpbGUgKHVuc2lnbmVkIGNoYXIgKikgaXMgZXhwZWN0ZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogTWluR1c6IGF2b2lkIHRoYXQgZ2NjIGNvbXBsYWlucyBhYm91dCBwYXNpbmcKCiBhIChjaGFyICopIGFyZ3VtZW50IHdoaWxlICh1bnNpZ25lZCBjaGFyICopIGlzIGV4cGVjdGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6IEF2b2lkIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIGlmIHRoZSBsYXN0IGNoYXIKCiBvZiB0aW1lX3N0cmluZyBpcyBpbiB0aGUgcmFuZ2UgMHg4MC4uMHhmZSBhbmQgY2hhciBpcyBhIHNpZ25lZCB0eXBlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDQwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IFJldmVydGVkIHIyMDM4MCBiZWNhdXNlIGl0IGJyZWFrcwoKIGFsbCBzdGF0ZW1lbnRzIHRoYXQgcHJpbnQgYW4gT0lEIHN1Yi1JRCBvbiBhbnkgNjQtYml0IHBsYXRmb3JtLiBUaGUKIGVmZmVjdCBvZiByMjAzODAgb24gYmlnIGVuZGlhbiBhcmNoaXRlY3R1cmVzIHdhcyB0aGF0IGEgIjAiIHdvdWxkIGJlCiBwcmludGVkIGluc3RlYWQgb2YgdGhlIE9JRCBzdWItSUQgKGF0IGxlYXN0IHdpdGggdGhlIExQNjQgYW5kIHRoZQogSUxQNjQgbW9kZWxzKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA0MDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUywgTkVXUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzODUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6IG1ha2UKCiBkZXBlbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzogQysrIC0+IEMgY29tbWVudHMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogTkVXUyB1cGRhdGUgZm9yIDUuNyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmg6IHJldmVydCB0aGUgb2lkIHR5cGVkZWYgcmVzaXppbmcKCiBmcm9tIHIxNzgwOSBiZWNhdXNlIGl0IGJyb2tlIGJhY2t3YXJkcyBjb21wYXQsIGFzIHBvaW50ZWQgb3V0IGJ5CiB1c2VycyBvbiB0aGUgLWNvZGVycyBsaXN0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlOiB1c2UgcHJvcGVyIGF1dG9jb25mIHZlcnNpb24gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLAogICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAogICAgICBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOiBWZXJzaW9uIG51bWJlciB1cGRhdGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUudG9wOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWlicy9VQ0QtU05NUC1NSUIudHh0OiBhZGRlZCBhIG1pc3NpbmcgMCBpbiB0aGUgcmV2aXNpb24gZGF0ZQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6IFVzZSBzeW1ib2xpYwoKIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzogVXNlIHN5bWJvbGljCgogbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOiBVc2Ugc3ltYm9saWMKCiBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6IFVzZSBzeW1ib2xpYwoKIG5hbWVkIGZvciBpZlR5cGUgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzogVXNlIHN5bWJvbGljCgogbmFtZWQgZm9yIGlmVHlwZSB2YWx1ZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjogSUFOQSBoYXMgZml4ZWQgdGhlCgogSUFOQS1JUFBNLU1FVFJJQ1MtUkVHSVNUUlktTUlCIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvcmZjbWlicy5kaWZmOiBJQU5BIGhhcyBmaXhlZCB0aGUKCiBJQU5BLUlQUE0tTUVUUklDUy1SRUdJU1RSWS1NSUIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IGFkZGVkIGEgbmV3IFJFVklTSU9OIGNsYXVzZSB0byBsaXN0IHRoZQoKIGNoYW5nZXMgaW4gdGhlIHRoZSByZWNlbnQgdXBkYXRlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogYWRkZWQgcGluZy90cmFjZXJvdXRlIG1pYnMgbm90ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOiB3ZSBhY3R1YWxseSB3YW50IHRvIHVzZSB0aGUgYmFzZQoKIE9JRCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQsIG5vdCB0aGUgcmVnIE9JRC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzogZml4ZWQgdGhlIHByb3h5IHN1cHBvcnQgdG8gZG8gYQoKIHByb3BlciBPSUQgbGVzcyB0aGFuIE9JRCBjb21wYXJlLiAgV2UgYWN0dWFsbHkgZG9uJ3QgY2FyZSBhYm91dCB0aGUKIGxlbmd0aCBvZiB0aGUgb3JpZ2luYWwgcmVxdWVzdCwgb25seSB0aGF0IGl0IHdhcyBiZWZvcmUgdGhlCiByZWdpc3RlcmVkIHJlYmFzZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6IENIQU5HRVM6IHBhdGNoIDMxNDA4MzM6IGZyb20KCiBqc2FmcmFuZWs6IGZpeCBwcm94eSBHRVRORVhUIHJlcXVlc3RzIFdoZW4gT0lEcyByZXF1ZXN0ZWQgYXJlIGJlbG93CiB0aGUgcHJveHkgcmVxdWVzdCByZW1hcCwgd2UgbmVlZCB0byBub3QgaW5jbHVkZSBhbnkgT0lEcyB0aGF0IG1pZ2h0CiBiZSBpbiB0aGUgc3BhY2UgYmV0d2VlbiB0aGUgb3JpZ2luYWwgT0lEIGFuZCB0aGUgcmVtYXBwZWQgT0lELiAgVGhpcwogcGF0Y2ggZnVkZ2VzIHRoZSByZXF1ZXN0IHNvIHRoYXQgaXQgZml4ZXMgdGhlIHJlcXVlc3QgT0lEIHNvIGl0J3MKIGp1c3QgYmVmb3JlIHRoZSByZW1hcHBlZCBwcm94eSByYW5nZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKICAgICAgTkVXUzoKCiBQQVRDSCAzMTY3MzI1OiBmcm9tIGtyaXN6dG9mb3JvOiBVQ0QtU05NUC9TeXN0ZW1TdGF0czogYWRkIHZhcmlhYmxlcwogdG8gcmVwb3J0IGNwdXN0ZWFsLCBjcHVndWVzdCwgY3B1Z3Vlc3RuaWNlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOiBDSEFOR0VTOiBwYXRjaAoKIDMxODQwMjY6IGZyb20gZWl2bmFlczogQXZvaWQgY29uc3RhbnQgcmVmcmVzaCBvZiBpbnRlcmZhY2UKIHN0YXRpc3RpY3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL3NjYXBpLmMsIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYzogRml4ZWQKICAgICAgc2V2ZXJhbAoKIGNvbXBpbGVyIHdhcm5pbmdzIHJlcG9ydGVkIGJ5IHRoZSBNU1ZDIGNvbXBpbGVyLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9nZXR0aW1lb2ZkYXkuYzogV2luMzIvTVNWQzogRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLiAKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6IENIQU5HRVM6IGFnZW50OiBGaXhlZCBhCgogeWVhci0yMDM4IGJ1ZyBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgaXBSb3V0ZVRhYmxlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOiBGaXgKCiB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuICBUaGVzZSBtb2R1bGVzCiB3b3JrLCBidXQ6IC0gVGhleSBhcmUgTGludXggb25seSAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlCiBwb3B1bGF0ZWQgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290IC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4gLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAogICBiaW5hcnkgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzogRml4Cgogd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLiAgVGhlc2UgbW9kdWxlcwogd29yaywgYnV0OiAtIFRoZXkgYXJlIExpbnV4IG9ubHkgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZQogcG9wdWxhdGVkIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdCAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKICAgYmluYXJ5IChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzYzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmM6IEZpeAoKIHdhcm5pbmdzIGFuZCBkYXRhIGZvcm1hdCBmb3IgRGF0ZUFuZFRpbWUgb2JqZWN0cy4gIFRoZXNlIG1vZHVsZXMKIHdvcmssIGJ1dDogLSBUaGV5IGFyZSBMaW51eCBvbmx5IC0gUm93cyBtdXN0IGJlIGNyZWF0ZWQgd2l0aCByb3dTdGF0dXMgY3JlYXRlQW5kV2FpdCBiZWZvcmUgdGhleSBhcmUKIHBvcHVsYXRlZCAtIEFnZW50IG11c3QgcnVuIGFzIHJvb3QgLSBBZ2VudCBpcyBibG9ja2VkIHdoaWxlIHRlc3RzIHJ1biAtIERhdGEgZm9ybWF0IGZvciBJbmV0QWRkcmVzcyBvYmplY3RzIGlzIHdyb25nLiBJdCBpcyBBU0NJSSwgbm90CiAgIGJpbmFyeSAobWFraW5nIGl0IGVhc2llciB0byB1c2UgZnJvbSB0aGUgY29tbWFuZCBsaW5lLCBidXQgLi4uKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDggIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5jOiBGaXgKCiB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuICBUaGVzZSBtb2R1bGVzCiB3b3JrLCBidXQ6IC0gVGhleSBhcmUgTGludXggb25seSAtIFJvd3MgbXVzdCBiZSBjcmVhdGVkIHdpdGggcm93U3RhdHVzIGNyZWF0ZUFuZFdhaXQgYmVmb3JlIHRoZXkgYXJlCiBwb3B1bGF0ZWQgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290IC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4gLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAogICBiaW5hcnkgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA4ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzogRml4Cgogd2FybmluZ3MgYW5kIGRhdGEgZm9ybWF0IGZvciBEYXRlQW5kVGltZSBvYmplY3RzLiAgVGhlc2UgbW9kdWxlcwogd29yaywgYnV0OiAtIFRoZXkgYXJlIExpbnV4IG9ubHkgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5IGFyZQogcG9wdWxhdGVkIC0gQWdlbnQgbXVzdCBydW4gYXMgcm9vdCAtIEFnZW50IGlzIGJsb2NrZWQgd2hpbGUgdGVzdHMgcnVuIC0gRGF0YSBmb3JtYXQgZm9yIEluZXRBZGRyZXNzIG9iamVjdHMgaXMgd3JvbmcuIEl0IGlzIEFTQ0lJLCBub3QKICAgYmluYXJ5IChtYWtpbmcgaXQgZWFzaWVyIHRvIHVzZSBmcm9tIHRoZSBjb21tYW5kIGxpbmUsIGJ1dCAuLi4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHBlcmwvU05NUC9TTk1QLnhzOiBSZW1vdmVkIGFuIHVudXNlZCBsYWJlbCBmcm9tIHBlcmwvU05NUC9TTk1QLnhzLgogICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBwZXJsL1NOTVAvU05NUC54czogUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KICAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDM2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgcGVybC9TTk1QL1NOTVAueHM6IFJlbW92ZWQgYW4gdW51c2VkIGxhYmVsIGZyb20gcGVybC9TTk1QL1NOTVAueHMuCiAgICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHBlcmwvU05NUC9TTk1QLnhzOiBSZW1vdmVkIGFuIHVudXNlZCBsYWJlbCBmcm9tIHBlcmwvU05NUC9TTk1QLnhzLgogICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmg6IENIQU5HRVM6IHNubXBkOiBEZWNsYXJlIHRoZSBPSUQKCiBhcmd1bWVudCB0eXBlIG9mIE1JQiByZWdpc3RyYXRpb24gZnVuY3Rpb25zIGFzICdjb25zdCBvaWQgKicgaW5zdGVhZAogb2YgJ29pZCAqJyBzaW5jZSB0aGVzZSBmdW5jdGlvbnMgZG8gbm90IG1vZGlmeSB0aGUgT0lELiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOiBVc2UgdGhlIGNvcnJlY3QgZGF0YSB0eXBlIGZvcgoKIHRoZSAnY2FjaGUgZXhwaXJlZCcgdmFyaWFibGU6IGNoYXIgaW5zdGVhZCBvZiBpbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcwoKIGludHJvZHVjZWQgaW4gcjIwMTUxLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogV2luMzI6IGltcHJvdmVkIHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGJ5CgogdXNpbmcgTFBDVFNUUiBpbnN0ZWFkIG9mIExQQ1NUUi4gTm90ZTogdGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQKIFVuaWNvZGUgYnVpbGRzIGFyZSBzdXBwb3J0ZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDM1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogV2luMzI6IGltcHJvdmVkIHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGJ5CgogdXNpbmcgTFBDVFNUUiBpbnN0ZWFkIG9mIExQQ1NUUi4gTm90ZTogdGhpcyBkb2VzIG5vdCBtZWFuIHRoYXQKIFVuaWNvZGUgYnVpbGRzIGFyZSBzdXBwb3J0ZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbmV0bGluay5jOiBBZGQgZmlsZQoKIGZvcmdvdHRlbiBpbiByMjAzNTMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDogUmV2ZXJ0ZWQgYSBjaGFuZ2UgdGhhdCB3YXMKCiBjb21taXR0ZWQgYWNjaWRlbnRhbGx5IGluIHIyMDI3Ni4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBGaXhlZCB0d28gY29tcGlsZXIKCiB3YXJuaW5ncy4gIChCYWNrcG9ydGVkIHIyMDIzNiBmcm9tIHRoZSB0cnVuay4pIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOiBDb21tZW50ZWQgb3V0IGFuIHVudXNlZCBmdW5jdGlvbgoKIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNvbXBsYWluZWQgYWJvdXQgaXQuICAoQmFja3BvcnRlZCByMjAyMzcgZnJvbQogdGhlIHRydW5rLikgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzNTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV8KICAgICAgIGFjY2Vzcy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6IENIQU5HRVM6IHNubXBkOiBQQVRDSCAzMTI1OTY6CgogZnJvbSBmYWJsZWQ4MDogbGlzdGVuIGZvciBuZXRsaW5rIGNoYW5nZSBldmVudHMgZm9yIHRoZSBhcnAtcmVsYXRlZAogdGFibGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oOiBORVdTOiBQQVRDSAoKIDMxOTg3ODE6IGZyb20gZmVubmVyOiBHZXQgZGlzbWFuL3BpbmcgYW5kIGRpc21hbi90cmFjZXJvdXRlIHRvIGF0CiBsZWFzdCBjb21waWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaDogTkVXUzogUEFUQ0gKCiAzMTk4NzgxOiBmcm9tIGZlbm5lcjogR2V0IGRpc21hbi9waW5nIGFuZCBkaXNtYW4vdHJhY2Vyb3V0ZSB0byBhdAogbGVhc3QgY29tcGlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmg6IE5FV1M6IFBBVENICgogMzE5ODc4MTogZnJvbSBmZW5uZXI6IEdldCBkaXNtYW4vcGluZyBhbmQgZGlzbWFuL3RyYWNlcm91dGUgdG8gYXQKIGxlYXN0IGNvbXBpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAzNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oOiBORVdTOiBQQVRDSAoKIDMxOTg3ODE6IGZyb20gZmVubmVyOiBHZXQgZGlzbWFuL3BpbmcgYW5kIGRpc21hbi90cmFjZXJvdXRlIHRvIGF0CiBsZWFzdCBjb21waWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzUyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBORVdTOiBzbm1wbGliOiBhZGQgb3B0aW9uYWwgc3VwcG9ydCBmb3IgbG9jYWwKCiBETlNTRUMgdmFsaWRhdGlvbiBvZiBob3N0bmFtZXMgIC0gb3B0aW9uYWwgYXQgY29uZmlndXJlIHRpbWU6IC0td2l0aC1sb2NhbC1kbnNzZWMtdmFsaWRhdGlvbiAgLSByZXF1aXJlcyBETlNTRUMtVG9vbCB2YWxpZGF0aW9uIGxpYnJhcmllcyAgLSBpbml0aWFsIHN1cHBvcnQsIGZvciBzeXN0ZW1zIHdpdGggZ2V0YWRkcmluZm8uIHN1cHBvcnQgZm9yCiAgICBhZGRpdGlvbmFsIHJlc29sdmVyIGludGVyZmFjZXMgY29taW5nIHNvb24uICAgLSBhbHNvIFRPRE86IGZsYWcgZm9yIGlnbm9yaW5nIHZhbGlkYXRvaW4gZXJyb3JzIChsb2cgJiBjb250aW51ZSkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDM1MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmg6IG1vdmUgdW51c2VkIChhbmQgdG9vIGdlbmVyaWMpCgogdG9rZW4gd2l0aGluIFVDRF9DT01QQVRJQkxFIGlmZGVmICAgLSBNQVhMQUJFTCBjb25mbGljdHMgd2l0aCA8YXJwYS9uYW1lc2VyLmg+ICAgLSBhZGRlZCBORVRTTk1QX01BWExBQkVMIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogdXBkYXRlIGNvbmZpZ3VyZS9NYWtlZmlsZXMKCiBmb3IgRE5TU0VDIGxvY2FsIHZhbGlkYXRpb24gb3B0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDogbWFrZSBkZXBlbmQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMzQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDM0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzNDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzogcmVtb3ZlZCB0aGUKCiBhY2NpZGVudGFsIGJyb2tlbiBmZWF0dXJlIHJlcXVpcmUgbGluZSB0aGF0IGdvdCBoYWxmIGluc2VydGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDogbWFrZSBkZXBlbmQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDMzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAzMzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAoKIGNvbmZpZ3VyYXRpb246IC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTCAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOiBGaXggaW5jb21wbGV0ZSB1bmluc3RhbGwKCiBjb25maWd1cmF0aW9uOiAtIGJyb2tlbiByZW1vdmFsIG9mIE1pY3Jvc29mdCBETEwgLSByZW1vdmUgYXNzb3J0ZWQgbmV3IE1JQnMgYW5kIGhlYWRlciBmaWxlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaTogRml4IGluY29tcGxldGUgdW5pbnN0YWxsCgogY29uZmlndXJhdGlvbjogLSBicm9rZW4gcmVtb3ZhbCBvZiBNaWNyb3NvZnQgRExMIC0gcmVtb3ZlIGFzc29ydGVkIG5ldyBNSUJzIGFuZCBoZWFkZXIgZmlsZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAoKIGNvbmZpZ3VyYXRpb246IC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTCAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEZpeCBpbmNvbXBsZXRlIHVuaW5zdGFsbAoKIGNvbmZpZ3VyYXRpb246IC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTCAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMzM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocwoKIGNvbnRhaW5pbmcgc3BhY2VzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocwoKIGNvbnRhaW5pbmcgc3BhY2VzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzM0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocwoKIGNvbnRhaW5pbmcgc3BhY2VzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA2ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6IFJlcG9ydCBHWmlwIGNvbW1hbmQgY29ycmVjdGx5CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDMzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDYgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDogUmVwb3J0IEdaaXAgY29tbWFuZCBjb3JyZWN0bHkKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMzMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsOiBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jOiBGaXggZm9yIERyYWdvbkZseSBCU0QgKGRvZXMKICAgICAgbm90CgogZGVmaW5lIElQX1NFTkRTUkNBRERSKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jOiBGaXggZm9yIERyYWdvbkZseSBCU0QgKGRvZXMKICAgICAgbm90CgogZGVmaW5lIElQX1NFTkRTUkNBRERSKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzMyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaDogRml4IHNwZWxsaW5nIG9mCgogU09fUkVDVkRTVEFERFIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAzMzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOiBGaXggc3BlbGxpbmcgb2YKCiBTT19SRUNWRFNUQUREUiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXAuY29uZi41LmRlZiwgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzogTkVXUzogYXBwczogYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRpbWVvdXRzCgogYW5kIHJldHJpZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3Rvb2xzLmMsIHRlc3RpbmcvVEVTVENPTkYuc2g6IENIQU5HRVM6IE1pbkdXOiBNYWRlCgogcmVncmVzc2lvbiB0ZXN0IG91dHB1dCBpbmRlcGVuZGVudCBvZiB0aGUgTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQKIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzIHRoYXQgZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlCiBOZXQtU05NUCBiaW5hcmllcyAoTVNWQyBidWlsZCkgaGFkIGJlZW4gaW5zdGFsbGVkIGRvIG5vdyBwYXNzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAzMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL1RFU1RDT05GLnNoOiBDSEFOR0VTOiBNaW5HVzogTWFkZQoKIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkCiBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cyB0aGF0IGZhaWxlZCBwcmV2aW91c2x5IGFmdGVyIHRoZQogTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuIGluc3RhbGxlZCBkbyBub3cgcGFzcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMzI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdG9vbHMuYywgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6IAoKIENIQU5HRVM6IE1pbkdXOiBNYWRlIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlCiBOZXQtU05NUCB2YXJpYWJsZXMgZGVmaW5lZCBpbiB0aGUgV2luZG93cyByZWdpc3RyeS4gU29tZSB0ZXN0cyB0aGF0CiBmYWlsZWQgcHJldmlvdXNseSBhZnRlciB0aGUgTmV0LVNOTVAgYmluYXJpZXMgKE1TVkMgYnVpbGQpIGhhZCBiZWVuCiBpbnN0YWxsZWQgZG8gbm93IHBhc3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDMyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3Rvb2xzLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOiAKCiBDSEFOR0VTOiBNaW5HVzogTWFkZSByZWdyZXNzaW9uIHRlc3Qgb3V0cHV0IGluZGVwZW5kZW50IG9mIHRoZQogTmV0LVNOTVAgdmFyaWFibGVzIGRlZmluZWQgaW4gdGhlIFdpbmRvd3MgcmVnaXN0cnkuIFNvbWUgdGVzdHMgdGhhdAogZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlIE5ldC1TTk1QIGJpbmFyaWVzIChNU1ZDIGJ1aWxkKSBoYWQgYmVlbgogaW5zdGFsbGVkIGRvIG5vdyBwYXNzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyLnNsbiwKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKIFJlbW92ZWQgVmlzdWFsIFN0dWRpbyAyMDA1IHNvbHV0aW9uIGFuZCBwcm9qZWN0IGZpbGVzIGFnYWluIHNpbmNlCiBWaXN1YWwgU3R1ZGlvIDIwMTAgcmVmdXNlcyB0byBsb2FkIHRoZXNlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5pbjogY2xlYW4gdGhlIHBlcmwvcHl0aG9uIGZlYXR1cmUgbGVmdG92ZXJzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBmaXggbWliIG1vZHVsZSBpbnZvY2F0aW9uIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzogZml4IGlmZGVmCgogdHlwbyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBmaXggcGVybC9weXRob24gZmVhdHVyZSBkZXBlbmRlbmNpZXMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOiByZXZlcnRlZCBhdXRvX25saXN0IG1hY3JvIHVzYWdlOyB0aGUgZnVuY3Rpb24KCiBpcyB1c2VkIGluIGhlYWRlcnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IEFkZCBhIC1UIG9wdGlvbiB0byBydW4gJ21ha2UgdGVzdCcKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9NYWtlZmlsZS5pbjogZml4IHRoZSBlbmNvZGVfa2V5Y2hhbmdlIC5mdCBmaWxlbmFtZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgc25tcGxpYi90b29scy5jOiAKCiBmaXggdGhlIGZlYXR1cmVzIHJlcXVpcmVkIGJ5IHRoZSBUcmFwUmVjZWl2ZXIgbW9kdWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluOiBBZGQgdGhlIFRyYXBSZWNlaXZlciB0byB0aGUgbGlzdCBvZiBwZXJsIG1vZHVsZXMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcGVybC9TTk1QL1NOTVAueHM6IHVzZSB0aGUgbmV3ZXIgTmV0LVNOTVAgQVBJcywgcmF0aGVyIHRoYW4gdGhlCgogb2xkZXIgVUNEIG9uZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgcGVybC9TTk1QL1NOTVAueHM6IHJlbW92ZSBTRVQgY29kZSB3aGVuIHVuZGVyIC0tcmVhZC1vbmx5IG1vZGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jOiByZXF1aXJlCgogY2hlY2tfdmJfdWludCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbgogICAgICAgdC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmMsIAogICAgICBweXRob24vbmV0c25tcC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6IGxhc3Qgb2YgdGhlIHBlcmwtdXNlZCBmZWF0dXJlIGZ1bmN0aW9ucwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW4KICAgICAgIHQuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmM6Cgogc3RhcnRlZCB0aGUgZmluYWwgc2V0IG9mIGZ1bmN0aW9uIHJlbW92YWxzIGZvciBmZWF0dXJlcyByZXF1aXJlZCBieQogcGVybC9weXRob24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpOiBhZGRlZCB0aGUKCiBuZXQtc25tcC1mZWF0dXJlcy5oIGhlYWRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBwZXJsL09JRC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvU05NUC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9hZ2VudC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaDogQWRkZWQgcGVybCBmZWF0dXJlCgogcmVxdWlyZW1lbnRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob24sIAogICAgICBwZXJsL0FTTi9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9TTk1QL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAKICAgICAgcGVybC9hZ2VudC9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaCwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaDogaG9wZWZ1bGx5CiAgICAgIHdvcmtpbmcKCiBydWxlcyB0byBhcHBseSBmZWF0dXJlIHJlcXVpcmVtZW50cyB0byBwZXJsIGFuZCBweXRob24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYzogbW9yZSBjaGFuZ2VzIHRvIHJlbW92ZSB1bm5lZWRlZCBmdW5jdGlvbnMKCiBwcmltYXJpbHkgd2hlbiB3cml0ZSBtb2RlIGlzIHR1cm5lZCBvZmYgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOiBjaGFuZ2UgdGhlIHdhbnQgaW52b2NhdGlvbiB0byBvbmx5IGRlZmF1bHQKCiB0byBleGNsdWRlIGV4dGVybmFsIGhvb2tzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOiBzZWFyY2ggdGhyb3VnaCAueHMgZmlsZXMgZm9yCgogZnVuY3Rpb24gaW52b2NhdGlvbnMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6IGZvcmdvdCBhIHNlbWljb2xvbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmM6IGlxdWVyeSBwZHUKICAgICAgc2Vzc2lvbnMKCiBhcmUgb25seSBuZWVkZWQgaW4gd3JpdGUgbW9kZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9NYWtlZmlsZS5pbjogZml4IGZlYXR1cmUgZGV0ZWN0aW9uIG9mIHNvbWV0aW1lcy1idWlsdAoKIGFwcGxpY2F0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzA1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzogdXNlIHRoZSBmZWF0dXJlX3VudXNlZCBtYWNybyBmb3IgbWFraW5nIGFuCgogZW1wdHkgZmlsZSBmb3IgY29uc2lzdGVuY3kgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOCiAgICAgICBUYWJsZS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvc25tcHRscy5jLCAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBBbm90aGVyIHN3ZWVwIGZvciB1bnVzZWQKCiBmdW5jdGlvbnMgd2hlbiByZWFkX29ubHkgbW9kZSBpcyB0dXJuZWQgb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYwogICAgICAgLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOCiAgICAgICBUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLgogICAgICAgYywgc25tcGxpYi9jaGVja192YXJiaW5kLmM6IG1hcmsgYSBzbGV3IG9mIGZ1bmN0aW9ucyBhcyBmZWF0dXJlcwoKIHRoYXQgYXJlIG9ubHkgbmVlZGVkIHdpdGggd3JpdGVfc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMzAyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZTogcnVuIGdyZXAgd2l0aCAtbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDMwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiAKCiBmZWF0dXJpemUgbmV0c25tcF9zb2NrYWRkcl9zaXplIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAzMDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOiByZW1vdmUgYQoKIGZlYXR1cmVfcmVxdWlyZSBub3QgYWN0dWFsbHkgbmVlZGVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOiBtYXJrIFNVQkNPTlRBSU5FUl9GSU5ECgogYXMgYSBmZWF0dXJlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB0c20uYzogdGhlIHJvdyBjcmVhdGlvbiBBUEkgaXMKCiBvbmx5IHVzZWQgaW4gdGhlIFRTTSBpbXBsZW1lbnRhdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdHNtLmM6IHRoZSBuZXdlciBjb250ZXh0IGVuZ2luZUlECgogcHJvYmluZyBpcyBvbmx5IG5lZWRlZCBpZmYgVFNNIGlzIGluIHVzZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6IGZpeCBhbiBpZmRlZiB0eXBvIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IG1vdmVkIGZldGF1cmUgY2hpbGRfb2Ygc3RhdGVtZW50cyB0byB0aGUKCiB0b3Agb2YgdGhlIGZpbGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IG1hcmtlZCBhIGNvdXBsZSBvZiByYXJlbHkgdXNlZCBjb250YWluZXIKCiBmdW5jdGlvbnMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6IHNwbGl0IG91dCB0aGUgcHJlZml4X2luZm8gZmVhdHVyZQogICAgICBpbnRvCgogc3ViLWZlYXR1cmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CiAgICAgICBlcmZhY2UuYzogbWFyayB0aGUgYWNjZXNzb3IgZnVuY3Rpb25zIGFzIHVubmVlZGVkIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmM6IGZpeCBhIGNoaWxkX29mIHN0YXRlbWVudAoKIHdpdGggYSBjb3B5L3Bhc3RlIGVycm9yIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyOTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOiB0aGUgY29udGFpbmVyIHJvdy1yZW1vdmUgaXMgb25seQoKIG5lZWRlZCBpZiB0aGUgdGRhdGEgcmVtb3ZlX3JvdyBpcyBuZWVkZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOCiAgICAgICBUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLgogICAgICAgYzogZmVhdHVyZSBtYXJraW5nIG9mIHVudXNlZCB0ZGF0YSBmdW5jdGlvbnMgICAgCiAgICAgIHRhYmxlX3RkYXRhX2RlbGV0ZV90YWJsZSAgICAgdGFibGVfdGRhdGFfZXh0cmFjdF90YWJsZSAgICAKICAgICAgdGFibGVfdGRhdGFfcmVtb3ZlX3JvdyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmM6IHJlbW92YWwgb2Ygc29tZSByYXJlbHkgdXNlZAoKIAlmdW5jdGlvbnMgdGFibGVfc2V0X211bHRpX2FkZF9kZWZhdWx0X3JvdyAJdGFibGVfZGF0YXNldF91bnJlZ2lzdGVyX2F1dG9fZGF0YV90YWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjg3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBBZGRlZCBhIGRlZmluaXRpb24gdG8gaW5jb3Jwb3JhdGUKCiByZWFkX29ubHkvbm90aWZ5X29ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzogYWRkZWQgYSBtaXNzaW5nIGZlYXR1cmUgZGVmaW5pdGlvbgoKIGxpbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjogYWRkZWQgYmFjayBpbiBtaXNzaW5nIG1pYmdyb3VwIGZlYXR1cmUKCiBkZWZpbml0aW9uIGxpc3QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogSW5jbHVkZSB0aGUgb3JpZ2luYWwgYmFzZSBmbGFncyB0bwoKIGVuc3VyZSAtLXdpdGgtZGVmYXVsdHMgZ2V0cyBwaWNrZWQgdXAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZml4IHVzYWdlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBBZGRlZCBhIC1iIGZsYWcgZm9yIGJhc2UgYXJndW1lbnRzIHRvCgogc3RhcnQgZnJvbSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjgxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBkZWZhdWx0IHRvIGEgbGluZWFyIHNlYWNoIG9mIHNpemUKCiB0ZXN0cywgcmF0aGVyIHRoYW4gZXhwb25lbnRpYWwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzogCgogQ0hBTkdFUzogc25tcGxpYjogR3VhcmQgbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucwogY29uc2lzdGVudGx5LiAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6CiAgICAgIEd1YXJkCgogbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucyBjb25zaXN0ZW50bHkuICBDSEFOR0VTOgogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6CiAgICAgIEd1YXJkCgogbmV0c25tcF91ZHBfcmVjdmZyb20oKSBldGMuIGRlY2xhcmF0aW9ucyBjb25zaXN0ZW50bHkuICBDSEFOR0VTOgogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzI5Mzg0MjogRWxpbWluYXRlCgogcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMKIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUKCiByZWdpc3RyeSBhcmd1bWVudCBsaW1pdCBvZiAxMjcgY2hhcmFjdGVycyAodGhpcyBsaW1pdGF0aW9uIHdhcwogcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMyOTM4NDI6IEVsaW1pbmF0ZQoKIHJlZ2lzdHJ5IGFyZ3VtZW50IGxpbWl0IG9mIDEyNyBjaGFyYWN0ZXJzICh0aGlzIGxpbWl0YXRpb24gd2FzCiByZXBvcnRlZCBieSBTeWx2YWluIERlcnkpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAyNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IENIQU5HRVM6IFdpbjMyOiBQQVRDSDogMzI5Mzg0MjogRWxpbWluYXRlCgogcmVnaXN0cnkgYXJndW1lbnQgbGltaXQgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMKIHJlcG9ydGVkIGJ5IFN5bHZhaW4gRGVyeSkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKCiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cgYmUgdXNlZCBpbiB0aGUgTWluR1cKIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA1LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IENIQU5HRVM6IFdpbjMyOiBoZWFkZXIgZmlsZQoKIDxuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaD4gY2FuIG5vdyBiZSB1c2VkIGluIHRoZSBNaW5HVwogZW52aXJvbm1lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IGhlYWRlciBmaWxlCgogPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYW4gbm93IGJlIHVzZWQgaW4gdGhlIE1pbkdXCiBlbnZpcm9ubWVudC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNS0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUKCiA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGNhbiBub3cgYmUgdXNlZCBpbiB0aGUgTWluR1cKIGVudmlyb25tZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOiBXaW4zMiBETEwgYnVpbGQgZml4ZXMuCgogKEJhY2twb3J0ZWQgcjIwMTg0IGZyb20gdHJ1bmsuKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDI3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDUtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOiBXaW4zMiBETEwgYnVpbGQgZml4ZXMuCgogKEJhY2twb3J0ZWQgcjIwMTg0IGZyb20gdHJ1bmsuKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzogU3BlbGxpbmcgYW5kIGdyYW1tYXIgZml4ZXMgZm9yIHRoZSBzb3VyY2UKCiBjb2RlIGNvbW1lbnRzIGluIHNubXBsaWIvd2luc2VydmljZS5jLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAyNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlCgogY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6IFNwZWxsaW5nIGFuZCBncmFtbWFyIGZpeGVzIGZvciB0aGUgc291cmNlCgogY29kZSBjb21tZW50cyBpbiBzbm1wbGliL3dpbnNlcnZpY2UuYy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMjc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOiBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZQoKIGNvZGUgY29tbWVudHMgaW4gc25tcGxpYi93aW5zZXJ2aWNlLmMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDI3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBORVdTOiBhZGRlZCBub3RlIGFib3V0IHRoZSBuZXcgdGltaW5nIGZ1bmN0aW9uIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBVcGRhdGUgdGhlIG1hbnVhbCBwYWdlIHRvIHJlZmxlY3QgdGhlIG5ldwoKIHRpbWluZyBvcHRpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90b29scy5jOiBiZXR0ZXIgZG9jdW1lbnRhdGlvbiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYzogdXNlIHRoZQoKIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZvciBwYXJzaW5nIGZyZXF1ZW5jaWVzL3RpbWUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QxMDJwZHVfYnVpbGRfY2xpYi5jOiBmaXggcGR1CgogYnVpbGRpbmcgdGVzdHMgdW5kZXIgdmFyaW91cyBkaXNhYmxlZCBtb2RlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliLmM6IGRvbid0IHRyeSB0bwoKIGJ1aWxkIHRoZSBHRVQgcGR1IHVuZGVyIG5vdGlmeV9vbmx5IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzogZml4IGEgYnVnIHdpdGgKCiBuby1zdWZmaXggc3RyaW5ncyBhbmQgdXNlIGEgY29uc3QgaW5wdXQgc3RyaW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3NfY2xpYi5jOgoKIEEgbmV3IHVuaXQgdGVzdCBmb3IgdGhlIHRpbWUgY29udmVyc2lvbiByb3V0aW5lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogdXNlIHRoZQoKIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZ1bmN0aW9uIGZvciBjb21wdXRpbmcgaW50ZXJ2YWwKIHBlcmlvZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOiBBZGRlZCBhCgogbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKCkgZnVuY3Rpb25zIHRvIGNvbnZlcnQsIGUuZy4sIDFoIHRvIDM2MDAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IHJlbW92ZSBjb2RlIHRvIGJ1aWxkL3BhcnNlIEdFVC9ldGMgcmVxdWVzdHMKCiB3aGVuIE5PVElGWV9PTkxZIGlzIHR1cm5lZCBvbi4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogdXBkYXRlIHRoZSBORVdTIHRvIHJlZmxlY3QgdGhlIG5ldyAtLWVuYWJsZS1yZWFkLW9ubHkgYW5kCgogLS1lbmFibGUtbm90aWZ5LW9ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogbWlub3IKCiBpbXByb3ZlbWVudHMgZm9yIHJvbmx5IHZzIHJ3cml0ZSBoYW5kbGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6IHN0aWxsIGVuYWJsZQoKIFJPTkxZIHdoZW4gUldSSVRFIGlzbid0IHBvc3NpYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IGZpeCBHRVQgc3VwcG9ydCB3aGVuIG5vX3dyaXRlIGlzCgogZW5hYmxlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IG1hcmsgYSBmdXR1cmUKCiBtb2RpZmljYXRpb24gbmVlZCBpbiBhIGNvbW1lbnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6IGZpeCBoYW5kbGluZyBvZiBub193cml0ZSBzdXBwb3J0CiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYzogCgogZG9uJ3Qgb3BlbiBhbnkgbGlzdGVuaW5nIHRyYW5zcG9ydHMgd2hlbiBub3RpZnktb25seSBpcyBzcGVjaWZpZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBzZXQgdGhlCgogbm8tbGlzdGVuIGFuZCByZWFkLW9ubHkgZmxhZ3Mgd2hlbiAtLWVuYWJsZS1ub3RpZnktb25seSBpcyBzZXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByYW4gYXV0b2hlYWRlciBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNTSERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6IGltcGxlbWVudCB0aGUKCiBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUIGluIHRoZXNlIHRyYW5zcG9ydHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmU6IHJ1biBhdXRvY29uZiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogbW92ZSB0aGUgcmVhZC1vbmx5IGZsYWcKCiBkZWZpbml0aW9uIGJlbG93IHRoZSBub3RpZnktb25seSwgc2luY2Ugbm90aWZ5LW9ubHkgbmVlZHMgdG8gaW1wbHkKIHJlYWQtb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6IERlZmluZWQgYSBuZXcKCiAtLWVuYWJsZS1ub3RpZnktb25seSBmbGFnIGZvciBidWlsZGluZyBhIHRvb2xzZXQgdGhhdCBvbmx5IGFsbG93cwogZm9yIG5vdGlmaWNhdGlvbnMgd2l0aCBubyByZWFkL3dyaXRlIHN1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI1MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOiBEZWZpbmVkIGEgbmV3CgogLS1uby1saXN0ZW4gZmxhZyB0byByZW1vdmUgbGlzdGVuaW5nIHN1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDogdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seQoKIHVzZWZ1bCB3aGVuIFNFVHMgYXJlIHR1cm5lZCBvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQ4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi5oOiB0aGUgZGlzbWFuIHNjaGVkdWxlIG1pYiBpcyBvbmx5IHVzZWZ1bAoKIHdoZW4gU0VUcyBhcmUgdHVybmVkIG9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZgogICAgICAgYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgYzogZmluaXNoZWQgbm9fd3JpdGUgc3VwcG9ydCBmb3IgY29tbW9uIGluY2x1ZGVkIHRhYmxlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzogQWRkIGJhY2sgaW4KCiAnbmV0c25tcF9zZXRfcm93X2NvbHVtbicgd2hlbiBub193cml0ZSBzdXBwb3J0IGlzIGVuYWJsZWQgVGhpcwogZnVuY3Rpb24gaXMgYSBnZW5lcmljIGRhdGEgbWFuaXB1bGF0aW9uIGZ1bmN0aW9uLCBub3QgU0VUIHNwZWNpZmljIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6IGRvbid0IHVzZSBtYXJrX3Jvd19jb2x1bW5fd3JpdGFibGUKCiB3aGVuIHJlYWQtb25seSBzdXBwb3J0IGlzIGVuYWJsZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOiBmaXggbm9fd3JpdGUgc3VwcG9ydAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzogZml4IG5vX3dyaXRlIHN1cHBvcnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOiBEb24ndCBmcmVlCgogdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQoKIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDI0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6IERvbid0IGZyZWUKCiB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24gaXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAyNDEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOiBEb24ndCBmcmVlCgogdGhlIGlmWFRhYmxlIHJvdyBmb3VuZCBvbiBsb2FkIGZhaWx1cmUgYXMgd2UgZG9uJ3Qgb3duIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzogRG9uJ3QgZnJlZQoKIHRoZSBpZlhUYWJsZSByb3cgZm91bmQgb24gbG9hZCBmYWlsdXJlIGFzIHdlIGRvbid0IG93biBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZ2l0IGJhc2gtc2hlbGwgZnVuY3Rpb25zIHRvIGVuYWJsZQoKIGJyYW5jaCBzd2l0Y2hpbmcgYW5kIGV4dGVybmFsIGJ1aWxkaW5nIFRoZXNlIGxvY2FsIHNoZWxsIGZ1bmN0aW9ucwogKHNubXBjb25maWd1cmUgYW5kIHNubXBtYWtlKSBsZXQgeW91IGNvbmZpZ3VyZSBhbmQgYnVpbGQgdGhlCiBOZXQtU05NUCBzb3VyY2UgY29kZSBpbiBleHRlcm5hbCBkaXJlY3RvcmllcyB0aGF0IGFyZQogYXV0by1jYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBleGlzdGluZyBicmFuY2ggbmFtZSAod2l0aCBhbiBvcHRpb25hbAogc3VmZml4KS4gIFRoaXMgbGV0cyB5b3UgcnVuICdzbm1wbWFrZScgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZQogZGlyZWN0b3J5IGFuZCBoYXZlIGl0IGFjdHVhbGx5IGV4dGVybmFsbHkga2VlcCB0cmFjayBvZiBtb2RpZmllZAogZmlsZXMsIGV0Yywgc28gYnVpbGRpbmcgaW4gbXVsdGlwbGUgYnJhbmNoZXMgY2FuIGJlIGRvbmUgZnJvbSBhCiBzaW5nbGUgZ2l0IGNoZWNrb3V0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDI0MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogY2xlYW4gdXAgdGhlIGl0ZXJhdG9ycwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBmcmVlIHZhcmJpbmRzIGFmdGVyCgogc2VuZGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjM4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOiBDb21tZW50ZWQgb3V0IGFuIHVudXNlZCBmdW5jdGlvbgoKIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNvbXBsYWluZWQgYWJvdXQgaXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBGaXhlZCB0d28gY29tcGlsZXIKCiB3YXJuaW5ncy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzogUmVtb3ZlIHVubmVjZXNzYXJ5IG51bGwgY2hlY2sKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6IE1vdmUgcG9pbnRlciBkZXJlZmVyZW5jZSB0byBhZnRlcgoKIHRoZSBjaGVjayBmb3Igc3VjY2Vzc2Z1bCBhbGxvY2F0aW9uIG9mIHRoZSBwb2ludGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIzICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogUmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOiBSZWR1Y2UgdmFyaWFibGUgc2NvcGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzogUmVkdWNlIHZhcmlhYmxlIHNjb3BlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IG1lbnRpb24gd2hpY2ggbW9kdWxlIGlzIHJlcXVpcmVkIHdoZW4KCiBidWlsZGluZyB0byBnZXQgdGhlIGRlbGl2ZXIgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGRlbGV0ZWQgYW4gdW5uZWVkZWQKCiBkZWJ1Z2dpbmcgc3RhdGVtZW50IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogcHJvcGVybHkgdXBkYXRlIHRoZSBtYXgKCiBjb3VudCBpbiB0aGUgb3V0Z29pbmcgbm90aWZpY2F0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjI1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGJldHRlciBwYWNrZXQgZXN0aW1hdGlvbgoKIHRvIGVuc3VyZSB3ZSBkb24ndCBvdmVycnVuLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIyNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBlc3RpbWF0ZSB0aGUgcGFja2V0IHNpemUKCiBhbmQgYnJlYWsgdGhlIG5vdGlmaWNhdGlvbiB1cCBiYXNlZCBvbiBpdCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IHRyYW5zZm9ybSB0aGUKCiBub3RpZmljYXRpb24gc2VuZGluZyBpbnRvIGEgbGFyZ2VyIGxvb3AgZm9yIGxhdGVyIG11bHRpLW5vdGlmcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBORVdTOiBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IGZlYXR1cmUgbWFya2luZy9zZWxlY3Rpb24KICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogbWVudGlvbiB0aGUgbmV3IGRlbGl2ZXJ5IGJ5IG5vdGlmaWNhdGlvbnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogZG9jdW1lbnQgdGhlIG1pbmltYWxpc3Qgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogZG9jdW1lbnQgdGhlIG5ldyBkZWxpdmVyQnlOb3RpZnkgY29uZmlnCgogdG9rZW5zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogYWxsb3cgcnVuIHRpbWUKCiBtb2RpZmljYXRpb25zIG9mIHRoZSBPSURzIHRvIHVzZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjE3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDogYWRkIGNvbmZpZyBmbGFncyB0byBub3QKCiBpbmNsdWRlIHRoZSBwZXJpb2QgY29uZmlnIGFuZCBtc2cgY291bnQgdmFsdWVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogaW5jbHVkZSB0aGUgcGVyaW9kaWMKCiBjb3VudCwgdGhlIG1lc3NhZ2UgbnVtYmVyIGFuZCB0aGUgbWF4IG1lc3NhZ2UgbnVtYmVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZGVsZXRlZCBkZWJ1Z2dpbmcKCiBjb21tZW50IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBtaWJzL05FVC1TTk1QLVBFUklPRElDLU5PVElGWS1NSUIudHh0OiBNb3ZlIHRoZSBub3RpZmljYXRpb24KCiBkZWZpbml0aW9uIHRvIHdpdGhpbiB0aGUgc3ViLW1pYiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IGRlbGV0ZSBhbiB1bnVzZWQKCiB2YXJpYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMjEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IGxvYWQgdGhlIE1JQiBpbnRvIHRoZQoKIGRlZmF1bHQgc2V0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9ORVQtU05NUC1QRVJJT0RJQy1OT1RJRlktTUlCLnR4dDogQSBuZXcgbWliIHRvIGhvbGQgdGhlCgogcGVyaW9kaWMgbm90aWZ5IG9iamVjdHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBmaWxsIG91dCB0aGUgY29uZmlnIGZyZWUKCiByb3V0aW5lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogcHJvcGVybHkgbW9uaXRvciB0aGUKCiB3aG9sZSBjb250YWluZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IHBhcnNlIHRoZSBjb25mIGZpbGVzIGFuZAoKIGNyZWF0ZSBhbmQgaW5zZXJ0IG9iamVjdHMgaW50byB0aGUgY29udGFpbmVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogZGVmaW5lZCBhIGNvbnRhaW5lciB0bwoKIHN0b3JlIGEgbGlzdCBvZiBkZWxpdmVyIG9iamVjdHMgaW4gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBhZGRlZCBhIG5leHRfcnVuCgogdGltZXN0YW1wIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogYWN0dWFsbHkgc2VuZCBhCgogbm90aWZpY2F0aW9uIHdpdGggdGhlIHJlc3VsdHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBtYWtlIHRoZSB3YWxrIG9uIHRoZQoKIHRlc3Qgb2JqZWN0IGZ1bmN0aW9uLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOiBjcmVhdGUgYSBtYXggcGFja2V0IHNpemUKCiBjb25maWcgdG9rZW4gYW5kIHBhcnNlIGl0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiBtaW5pbWFsIHN0YXJ0aW5nIHRlc3QKCiBvYmplY3QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDIwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IGFkZGVkIGEgZnVuY3Rpb24gdG8KCiBjYWxjdWxhdGUgdGhlIHRpbWUgdW50aWwgdGhlIG5leHQgcnVuIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAyMDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzogcmVtb3ZlIGxlZnQgaW4gdGVtcGxhdGUKCiBsaW5lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTIyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOiB1c2UgYW4gYWxhcm0gY2FsbGJhY2sKCiBwcm90b3R5cGUgZm9yIGV4ZWN1dGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6IGJlZ2lubmluZyB0ZW1wbGF0ZSBjb2RlCgogZm9yIGRlbGl2ZXJ5IG9mIGRhdGEgYnkgbm90aWZpY2F0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6IFJlZHVjZSB2YXJpYWJsZSBzY29wZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMjIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOiBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTk1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0yMiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgd2luMzIvd2luMzIuc2xuOiBBZGRlZCBWaXN1YWwgU3R1ZGlvCgogMjAwNSBwcm9qZWN0IGFuZCBzb2x1dGlvbiBmaWxlIGZvciBidWlsZGluZyB0aGUgTmV0LVNOTVAgbGlicmFyeSBhcwogYSBzdGF0aWMgbGlicmFyeS4gQm90aCB0aGUgV2luMzIgYW5kIHRoZSB4NjQgY29uZmlndXJhdGlvbnMgYXJlCiBpbmNsdWRlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxOTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qOiBNb3JlIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0CiAgICAgIGZpbGUKCiBjbGVhbnVwLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTggIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qOiBDbGVhbmVkIHVwIFdpbjMyIFZTMjAwNSBwcm9qZWN0CgogZmlsZXMgLSByZW1vdmVkIHN1cGVyZmx1b3VzIGxpYnJhcnkgcmVmZXJlbmNlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwKICAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMmRsbC5zbG46IEFkZGVkIHg2NAoKIGNvbmZpZ3VyYXRpb25zLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE4OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTggIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osCiAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLAogICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyZGxsLnNsbjogQWRkZWQKCiB3aW4zMmRsbC1yZWxhdGVkIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0IGFuZCBzb2x1dGlvbiBmaWxlcy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDogV2luMzIgRExMIGJ1aWxkIGZpeGVzLiAKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE3ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZQoKIElQX1JFQ1ZEU1RBRERSIHNvY2tvcHQgd2hlcmUgYXZhaWxhYmxlICgqQlNEKSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE4MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTcgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6IENIQU5HRVM6IHNubXBkOgogICAgICBQQVRDSEVTOgoKIDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0IHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE3ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wZDoKICAgICAgUEFUQ0hFUzoKCiAzMTc1NjQwOiBVc2UgSVBfUkVDVkRTVEFERFIgc29ja29wdCB3aGVyZSBhdmFpbGFibGUgKCpCU0QpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeAoKIGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOgogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4CgogY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6CiAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAzMTgzMDAwOiBGaXgKCiBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggQ0hBTkdFUzogc25tcGxpYjogQlVHUzoKIDMxODI5ODU6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lEIHByZWZpeCBsZW5ndGggZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeAoKIGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOgogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQgcHJlZml4IGxlbmd0aCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE4MzAwMDogRml4CgogY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6CiAzMTgyOTg1OiBGaXggY2FsY3VsYXRpb24gb2YgY29tbW9uIE9JRCBwcmVmaXggbGVuZ3RoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGFwcHMvc25tcHRyYXBkX2RzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOiBDSEFOR0VTOgoKIExpbnV4OiBQQVRDSEVTOiAzMjA1ODExOiBPcHRpb24gdG8gc2tpcCBmZC9sb29wL3JhbSBkZXZpY2VzIGluCiBkaXNrSU9UYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgYXBwcy9zbm1wdHJhcGRfZHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWY6IENIQU5HRVM6CgogTGludXg6IFBBVENIRVM6IDMyMDU4MTE6IE9wdGlvbiB0byBza2lwIGZkL2xvb3AvcmFtIGRldmljZXMgaW4KIGRpc2tJT1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6CgogRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTgwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzogQ0hBTkdFUzogcHl0aG9uOiBQQVRDSEVTOiAzMTg1MDg1OgoKIEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE4MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6IENIQU5HRVM6IHB5dGhvbjogUEFUQ0hFUzogMzE4NTA4NToKCiBGaXggc2VnZmF1bHQgb24gNjQtYml0IHN5c3RlbXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOiBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6CgogRml4IHNlZ2ZhdWx0IG9uIDY0LWJpdCBzeXN0ZW1zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMxNzUzMjM6IEZpeCBoYW5kbGluZyBvZgoKICd3aGlsZSAoZmFsc2UpJyBibG9ja3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mCgogbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgoKIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjA0ODgzOiBGaXggaGFuZGxpbmcgb2YKCiBub24tdGFibGUgb2JqZWN0cyBuYW1lZCBmb29UYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIwNDg4MzogRml4IGhhbmRsaW5nIG9mCgogbm9uLXRhYmxlIG9iamVjdHMgbmFtZWQgZm9vVGFibGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZgoKIG5vbi10YWJsZSBvYmplY3RzIG5hbWVkIGZvb1RhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQKCiBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0CgogZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjOiBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydAoKIGVudW1lcmF0aW9ucyBpbiBub3RpZmljYXRpb24gdmFyYmluZHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taWIyYzogQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMTE0ODQ6IFN1cHBvcnQKCiBlbnVtZXJhdGlvbnMgaW4gbm90aWZpY2F0aW9uIHZhcmJpbmRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmM6IENIQU5HRVM6IG1pYjJjOiBQQVRDSEVTOiAzMjExNDg0OiBTdXBwb3J0CgogZW51bWVyYXRpb25zIGluIG5vdGlmaWNhdGlvbiB2YXJiaW5kcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OiBBZGQgbWlzc2luZyBzeXN0ZW0gb2lkcyB0byBtaWIgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTc2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDogQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6IEFkZCBtaXNzaW5nIHN5c3RlbSBvaWRzIHRvIG1pYiBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZQoKIGNvbHVtbnMgaW4gYnVsayByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSAgc3BlY2lmaWVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUKCiBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwMTc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFwcHMvc25tcHRhYmxlLmM6IEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlCgogY29sdW1ucyBpbiBidWxrIHJlc3BvbnNlIHRoYW4gb3VyIGxvY2FsIE1JQiBmaWxlICBzcGVjaWZpZWQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOiBGaXggZm9yIGdhcmJhZ2Ugb3V0cHV0IHdoZW4gYWdlbnQgcHJlc2VudHMgbW9yZQoKIGNvbHVtbnMgaW4gYnVsayByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSAgc3BlY2lmaWVkLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGZvciBnYXJiYWdlIG91dHB1dCB3aGVuIGFnZW50IHByZXNlbnRzIG1vcmUKCiBjb2x1bW5zIGluIGJ1bGsgcmVzcG9uc2UgdGhhbiBvdXIgbG9jYWwgTUlCIGZpbGUgIHNwZWNpZmllZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgoKICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6IEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4KCiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDE3NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMTIgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOiBGaXggd3JvbmcgbmFtZSBmb3IgY29uZmlnIHRva2VuCgogJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTEyICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjogRml4IHdyb25nIG5hbWUgZm9yIGNvbmZpZyB0b2tlbgoKICdkb05vdFJldGFpbk5vdGlmaWNhdGlvbkxvZ3MnIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0xMiAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6IEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4KCiAnZG9Ob3RSZXRhaW5Ob3RpZmljYXRpb25Mb2dzJyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYzogUmVtb3ZlIGJvZ3VzCgogKExpbnV4KSBkZWZpbmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYzogUmVtb3ZlIGJvZ3VzCgogKExpbnV4KSBkZWZpbmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTczIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYzogUmVtb3ZlIGJvZ3VzCgogKExpbnV4KSBkZWZpbmVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIvc25tcC10Yy5jOiBIQVZFX1RNX1RNX0dNVE9GRiBpcyBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTcyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL3NubXAtdGMuYzogSEFWRV9UTV9UTV9HTVRPRkYgaXMgSEFWRV9TVFJVQ1RfVE1fVE1fR01UT0ZGCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9zbm1wLXRjLmM6IEhBVkVfVE1fVE1fR01UT0ZGIGlzIEhBVkVfU1RSVUNUX1RNX1RNX0dNVE9GRgogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIGNvbmZpZ3VyZSwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IEJpbGwgRmVubmVycyBwYXRjaCB0byBtYWtlCgogRElTTUFOIFBJTkcgYW5kIFRSQUNFUk9VVEUgTUlCUyBjb21waWxlIHVuZGVyIExpbnV4IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmM6IFNvbGFyaXMgc3VwcG9ydCBmb3IKCiBTQ1RQLU1JQiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfc29sYXJpczIuYzogU29sYXJpcyBzdXBwb3J0IGZvcgoKIFNDVFAtTUlCIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19zb2xhcmlzMi5jOiBTb2xhcmlzIHN1cHBvcnQgZm9yCgogU0NUUC1NSUIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDkgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogVFogaXMgb25lIGhvdXIgb2ZmIGlmIEhBVkVfVE1fVE1fR01UT0ZGIGFuZAoKIFNZU1YgKHN1Y2ggaXMgTGludXgpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wOSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBUWiBpcyBvbmUgaG91ciBvZmYgaWYgSEFWRV9UTV9UTV9HTVRPRkYgYW5kCgogU1lTViAoc3VjaCBpcyBMaW51eCkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTA5ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wLXRjLmM6IFRaIGlzIG9uZSBob3VyIG9mZiBpZiBIQVZFX1RNX1RNX0dNVE9GRiBhbmQKCiBTWVNWIChzdWNoIGlzIExpbnV4KSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNC0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogZHRsczoKCiBvdmVyaGF1bCBvZiBkZWJ1ZyAgIC0gZHJhc3RpYyByZWR1Y3Rpb24gaW4gbnVtYmVyIG9mIG1lc3NhZ2VzIGFuZCBtc2cgY29tcGxleGl0eSAgICAgZm9yIGJhc2ljIGR0bHN1ZHAgdG9rZW4gICAtIHByZXZpb3VzIGxldmVsIG9mIGRldGFpbCBhdmFpbGFibGUgYnkgYWRkaW5nIDk6ZHRsc2R1cCB0b2tlbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDE2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGR0bHM6Cgogb3ZlcmhhdWwgb2YgZGVidWcgICAtIGRyYXN0aWMgcmVkdWN0aW9uIGluIG51bWJlciBvZiBtZXNzYWdlcyBhbmQgbXNnIGNvbXBsZXhpdHkgICAgIGZvciBiYXNpYyBkdGxzdWRwIHRva2VuICAgLSBwcmV2aW91cyBsZXZlbCBvZiBkZXRhaWwgYXZhaWxhYmxlIGJ5IGFkZGluZyA5OmR0bHNkdXAgdG9rZW4gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDQtMDEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWI6IGR0bHM6CgogY2xlYW4gdXAgY2xvc2U7IGNhdGNoICdjb25uZWN0Jy8nZGlzY29ubmVjdCcgICBjb25uZWN0ID0gd2UgZ2V0IHN1Y2Nlc3NmdWxseSBkZWNvZGVkIHNubXAgZGF0YSAgIGRpc2Nvbm5lY3QgPSAwIGJ5dGUgcmVhZCwgc3NoIHNodXRkb3duIGZsYWcgc2V0ICAgYWRkIGJpb19jYWNoZSBmbGFncyBmb3IgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZCAgIGNoZWNrIGZvciBudWxsIHB0ciBiZWZvcmUgZGVyZWZlcmVuY2luZyAgIGNsb3NlIGhhbmRsaW5nOiAgIC0gIG9ubHkgc2VuZCBxdWV1ZWQgZGF0YSBpZiB3ZSBnb3QgdG8gY29ubmVjdGVkIHN0YXRlICAgLSAgc2VyaW91c2x5IHJlZHVjZSB0aW1lb3V0IHRvIHdhaXQgZm9yIGp1bmsgcmVhZC4gaSB0aGluayAgICAgIHdlIHNob3VsZG4ndCBldmVuIGJvdGhlciAgIC0gcmV0dXJuIGVhcmx5IGlmIGNhY2hlcCBpcyBOVUxMLCBzbyB3ZSBkb24ndCBoYXZlIHRvIHRlc3QgaXQgICAgIHJlcGVhdGVkbHkgICAtIHVzZSBjb3JyZWN0IG5mZHMgdmFsdWUgaW4gc2VsZWN0IGNhbGwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA0LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOgoKIGNsZWFuIHVwIGNsb3NlOyBjYXRjaCAnY29ubmVjdCcvJ2Rpc2Nvbm5lY3QnICAgY29ubmVjdCA9IHdlIGdldCBzdWNjZXNzZnVsbHkgZGVjb2RlZCBzbm1wIGRhdGEgICBkaXNjb25uZWN0ID0gMCBieXRlIHJlYWQsIHNzaCBzaHV0ZG93biBmbGFnIHNldCAgIGFkZCBiaW9fY2FjaGUgZmxhZ3MgZm9yIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQgICBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcgICBjbG9zZSBoYW5kbGluZzogICAtICBvbmx5IHNlbmQgcXVldWVkIGRhdGEgaWYgd2UgZ290IHRvIGNvbm5lY3RlZCBzdGF0ZSAgIC0gIHNlcmlvdXNseSByZWR1Y2UgdGltZW91dCB0byB3YWl0IGZvciBqdW5rIHJlYWQuIGkgdGhpbmsgICAgICB3ZSBzaG91bGRuJ3QgZXZlbiBib3RoZXIgICAtIHJldHVybiBlYXJseSBpZiBjYWNoZXAgaXMgTlVMTCwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0ZXN0IGl0ICAgICByZXBlYXRlZGx5ICAgLSB1c2UgY29ycmVjdCBuZmRzIHZhbHVlIGluIHNlbGVjdCBjYWxsIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTMxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBtYWtlIHRydW5rIGFuZAoKIHY1LTYtcGF0Y2hlcyBjbG9zZWx5IGFsaWduZWQgICBtb3N0bHkgY2hhbmdlcyBpbiBkZWJ1ZywgY29va2llIHRyYWNraW5nIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0zMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogbWFrZSB0cnVuayBhbmQKCiB2NS02LXBhdGNoZXMgY2xvc2VseSBhbGlnbmVkICAgbW9zdGx5IGNoYW5nZXMgaW4gZGVidWcsIGNvb2tpZSB0cmFja2luZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0zMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzogYWRkIGNvb2tpZSBoYW5kbGluZzsKCiByZW1vdmUgaWZkZWYnZCBjb2RlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogU2ltcGxpZnkgYXJyYXkgcmVzaXppbmcgc29tZXdoYXQKCiBmdXJ0aGVyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI3ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBEbyBub3QgYXNzaWduIG5ld19kYXRhIGlmIHRoZQoKIHZhbHVlIHdvbid0IGJlIHVzZWQuICBSZWR1Y2UgdmFyaWFibGUgc2NvcGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjcgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IEl0IGlzIG5vdCBuZWNlc3NhcnkgdG8gY2xlYXIgYQoKIGNodW5rIG9mIG1lbW9yeSBpZiB0aGUgbmV4dCBhY3Rpb24gb24gaXQgaXMgdG8gZmlsbCBpdCBzbyB1c2UgbWFsbG9jCiBpbnN0ZWFkIG9mIGNhbGxvYy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI3ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDb250YWluZXJCaW5hcnlBcnJheSByZWFsbHkKCiBjYW4ndCBob2xkIGFueXRobmcgYnV0IHBvaW50ZXJzIGFuZCB0aGF0IG1lYW5zIHRoZSBkYXRhX3NpemUgZmllbGQKIGlzIHVubmVjZXNzYXJ5IHNvIEkgcmVtb3ZlZCBpdC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgCiAgICAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgc25tcGxpYi9zbm1wX3NlY21vZC5jLCAKICAgICAgc25tcGxpYi9zbm1wdjMuYzogQWRkIG1pc3NpbmcgaW5jbHVkZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6IFVzZSB0aGUgcmlnaHQgZmVhdHVyZQoKIG1hY3JvIGluIG9yZGVyIHRvIG1ha2UgYnVpbGRzIHdpdGggLS1lbmFibGUtaXB2NgogLS13aXRoLW91dC10cmFuc3BvcnRzPVVEUElQdjYgc3VjY2VlZC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOiBSZW1vdmUgZHVwbGljYXRlIGNvcGllcyBvZgoKIGZ1bmN0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OiB0d2VhayBkZWJ1ZyBtZXNzYWdlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogdXBkYXRlCgogY2VydCB0b2tlbiBoYW5kbGluZyAgLSByZW1vdmUgZGVmWDUwOSBjZXJ0IHRva2VucyAoc2hvdWxkIGhhdmUgYmVlbiByZW1vdmVkIGJlZm9yZSA1LjYpICAtIHdhcm5pbmdzIGZvciBvdXIvdGhlaXIgdG9rZW5zLCByZWNvbW1lbmQgdXNpbmcgbG9jYWwvcGVlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogbWVyZ2UgbmV0c25tcF9kdGxzdWRwNgogICAgICBpbnRvCgogbmV0c25tcF9kdGxzdWRwICAgIHVzZSBhZGRyIHNpemUgdG8gdGVsbCB0aGVtIGFwYXJ0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI1ICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzogbG9nIChvbmNlKSB3YXJuaW5nIHdoZW4gZGVwcmVjYXRlZAoKIGZfY3JlYXRlX2Zyb21fdHN0cmluZyB0cmFuc3BvcnQgZnVuY3Rpb24gdXNlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jOiByZWR1Y2UgY2FzdGluZzsgbWFrZSBzdXJlIHRvCgogZnJlZSB0aGUgcmlnaHQgcG9pbnRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0yNSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogcmVkdWNlIGNhc3RpbmcgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTI0ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6IFJlcGxhY2UgYSB2YXJpYWJsZSB3aXRoIGEKCiBjb25zdGFudC4gTWFrZSBvbmUgbW9yZSBvaWQgY29uc3QuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTUxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ0hBTkdFUzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE4ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZSBkZXBlbmQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTQ1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xOCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbgoKIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDE0NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTggIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxNDMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkZWx0YS4xLmRlZjogRm9ybWF0dGluZyBib3RjaCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkZWx0YS4xLmRlZjogRm9ybWF0dGluZyBib3RjaCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE0MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL01ha2VmaWxlLmluOiBJbnN0YWxsIHJlcXVpcmVkIG1pYnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTQxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIG1pYnMvTWFrZWZpbGUuaW46IEluc3RhbGwgcmVxdWlyZWQgbWlicyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDE0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTcgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtaWJzL3JmY2xpc3Q6IE5ldyBSRkMgbWlicyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE3ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWlicy9yZmNsaXN0OiBOZXcgUkZDIG1pYnMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxNDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDSEFOR0VTLCBORVdTOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDogbWFrZQoKIGRlcGVuZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCAKICAgICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCBwZXJsL2FnZW50L2FnZW50LnBtLCAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAgVmVyc2lvbgoKIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS50b3A6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDEzNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogU3BlbGxpbmcgZml4OiByZWdpbmVyYXRlZCAtPiByZWdlbmVyYXRlZC4gCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYzogU3BlbGxpbmcgZml4OiByZWdpbmVyYXRlZCAtPiByZWdlbmVyYXRlZC4gCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jOiBTaW1wbGlmaWVkIHIxOTU5NCAobGVhay1hdC1leGl0IGZpeCkuIAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEzMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMKCiBpbnRyb2R1Y2VkIGluIHIyMDExMy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTMxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcwoKIGludHJvZHVjZWQgaW4gcjIwMTEzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEzMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENIQU5HRVMsIE5FV1M6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIENoYW5nZUxvZzogdmVyc2lvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOiBtYWtlCgogZGVwZW5kIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgCiAgICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDEyNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLCAKICAgICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CiAgICAgIFZlcnNpb24KCiBudW1iZXIgdXBkYXRlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtMy1wYXRjaGVzQDIwMTI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTWFrZWZpbGUudG9wOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTE0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBGaXggbWFpbiBhZ2VudCBzZWxlY3QgY2FsbCB0byB1c2UgdGhlIHJlbmFtZWQgQVBJCgogcm91dGluZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogRml4IG1haW4gYWdlbnQgc2VsZWN0IGNhbGwgdG8gdXNlIHRoZSByZW5hbWVkIEFQSQoKIHJvdXRpbmUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMyAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiAKCiBCcmluZyB0aGUgbmFtaW5nIG9mIHRoZSBsYXJnZV9mZF9zZXQgc2VsZWN0IGNhbGwgaW50byBsaW5lIHdpdGggdGhlCiByZXN0IG9mIHRoZSBBUEkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDEyMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTMgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCgogQnJpbmcgdGhlIG5hbWluZyBvZiB0aGUgbGFyZ2VfZmRfc2V0IHNlbGVjdCBjYWxsIGludG8gbGluZSB3aXRoIHRoZQogcmVzdCBvZiB0aGUgQVBJLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAoKIEJyaW5nIHRoZSBuYW1pbmcgb2YgdGhlIGxhcmdlX2ZkX3NldCBzZWxlY3QgY2FsbCBpbnRvIGxpbmUgd2l0aCB0aGUKIHJlc3Qgb2YgdGhlIEFQSS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAoKIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBBZGQgdGhlIGZ1bmN0aW9uCiBuZXRzbm1wX2xhcmdlX3NlbGVjdCgpIChwbHVzIHR3ZWFrcyB0byBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwMTIwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMiAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzogQ0hBTkdFUzogc25tcGxpYjogcmVhbGxvYytpbml0CgogaW5zdGVhZCBvZiBjYWxsb2MgIGluc3BpcmVkIGJ5IHBhdGNoIDMxOTU1MzIgZnJvbSBTdGVwaGVuIEhlbW1pbmdlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDExOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6IENIQU5HRVM6IHNubXBsaWI6IHJlYWxsb2MraW5pdAoKIGluc3RlYWQgb2YgY2FsbG9jICBpbnNwaXJlZCBieSBwYXRjaCAzMTk1NTMyIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEyICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDSEFOR0VTOiBzbm1wbGliOiByZWFsbG9jK2luaXQKCiBpbnN0ZWFkIG9mIGNhbGxvYyAgaW5zcGlyZWQgYnkgcGF0Y2ggMzE5NTUzMiBmcm9tIFN0ZXBoZW4gSGVtbWluZ2VyIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEyICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oOgoKIENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUgdGFibGVzIGZyb20KIFN0ZXBoZW4gSGVtbWluZ2VyICBhcHBsaWVkIHBhcnRzIDEtMyBvZiA0IGZyb20gaGltIChtc2dzIHRvIGNvZGVycyBvbiAyLzI4LzExOyBzdWJqZWN0ICBpcC1mb3J3YXJkLW1pYiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHM7IHBhcnQgNCBuZWVkcyBtb3JlIHdvcmsgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEyICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IG9wdGltaXphdGlvbnMgZm9yIGxhcmdlIHJvdXRlCgogdGFibGVzIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgIGFwcGxpZWQgcGFydHMgMS0zIG9mIDQgZnJvbSBoaW0gKG1zZ3MgdG8gY29kZXJzIG9uIDIvMjgvMTE7IHN1YmplY3QgIGlwLWZvcndhcmQtbWliIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50czsgcGFydCA0IG5lZWRzIG1vcmUgd29yayBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTIgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludAogICAgICAgZXJmYWNlLmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogb3B0aW1pemF0aW9ucyBmb3IgbGFyZ2Ugcm91dGUKCiB0YWJsZXMgZnJvbSBTdGVwaGVuIEhlbW1pbmdlciAgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24gMi8yOC8xMTsgc3ViamVjdCAgaXAtZm9yd2FyZC1taWIgcGVyZm9ybWFuY2UgaW1wcm92ZW1lbnRzOyBwYXJ0IDQgbmVlZHMgbW9yZSB3b3JrIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBhZGQgbW9yZQoKIG9wZW5zc2wgZXJyb3IgY2FzZXMgd2hlcmUgd2UgY2hlY2sgZm9yIGxvY2FsIGNlcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTExICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBDSEFOR0VTOiBzbm1wbGliOiBhZGQgbW9yZQoKIG9wZW5zc2wgZXJyb3IgY2FzZXMgd2hlcmUgd2UgY2hlY2sgZm9yIGxvY2FsIGNlcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6IE1pbkdXOiBkc2tUYWJsZTogUmVwb3J0IHplcm8gZm9yCgogdW5pbXBsZW1lbnRlZCBmaWVsZHMgaW5zdGVhZCBvZiByYW5kb20gZGF0YS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzogTWluR1c6IGRza1RhYmxlOiBSZXBvcnQgemVybyBmb3IKCiB1bmltcGxlbWVudGVkIGZpZWxkcyBpbnN0ZWFkIG9mIHJhbmRvbSBkYXRhLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQoKIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKgogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDExNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOiBDSEFOR0VTOiBzbm1wZDogZml4ZWQgcmFjZQoKIGNvbmRpdGlvbiBpbiBoclNXUnVuVGFibGUgVHJlYXQgdGhlIHJlYWRzIGZyb20gL3Byb2MvPHBpZD4vKgogY2FyZWZ1bHksIHByb2Nlc3NlcyBjYW4gZXhpdCBpbiB0aGUgbWlkZGxlIG9mIHByb2Nlc3NpbmcuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDExNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6IENIQU5HRVM6IHNubXBkOiBCdWlsZHMKCiB3aXRoIG1vc3QgcmVjZW50IE1pbkdXIChoYXZpbmcgI2RlZmluZSBsb2NhbHRpbWVfcikuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6IENIQU5HRVM6IHNubXBkOiBCdWlsZHMKCiB3aXRoIG1vc3QgcmVjZW50IE1pbkdXIChoYXZpbmcgI2RlZmluZSBsb2NhbHRpbWVfcikuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTE0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOiBDSEFOR0VTOiBzbm1wbGliOgoKIHJlZmluZSBjZXJ0IGRlYnVnZ2luZzsgcmVtb3ZlIHVudXNlZCBmdW5jdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTEgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYzogQ0hBTkdFUzogc25tcGxpYjoKCiByZWZpbmUgY2VydCBkZWJ1Z2dpbmc7IHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIFJvYmVydCBTdG9yeSA8cnN0b3J5QHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzIwNTc2NTogaGFuZGxlIHJlY29uZmlnCgogZm9yIGNlcnRTZWNOYW1lIHRva2VuIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMjA1NzY1OiBoYW5kbGUgcmVjb25maWcKCiBmb3IgY2VydFNlY05hbWUgdG9rZW4gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDExMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBTcGVsbGluZyBmaXggaW4gYSBzb3VyY2UgY29kZSBjb21tZW50OiBtZXNzZ2VzIC0+CgogbWVzc2FnZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDExMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wZC5jOiBTcGVsbGluZyBmaXggaW4gYSBzb3VyY2UgY29kZSBjb21tZW50OiBtZXNzZ2VzIC0+CgogbWVzc2FnZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNaW5vcgoKIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNaW5vcgoKIHBlcmZvcm1hbmNlIG9wdGltaXphdGlvbiBvZiBuZXRzbm1wX2xhcmdlX2ZkX3NldF9yZXNpemUoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMTAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcGQuYzogQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMjAzODA2OiBBdm9pZCB0aGF0IHRoZSBtYWluCgogYWdlbnQgcHJvY2Vzc2luZyBsb29wIC0gd2hlbiB1c2luZyBtb3JlIHRoYW4gRkRfU0VUU0laRSBmaWxlCiBkZXNjcmlwdG9ycyAtIGNhbiBjYXVzZSBtZW1vcnkgY29ycnVwdGlvbiBieSBpbnZva2luZyBzZWxlY3QoKS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMTA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzIwMzgwNjogQXZvaWQgdGhhdCB0aGUgbWFpbgoKIGFnZW50IHByb2Nlc3NpbmcgbG9vcCAtIHdoZW4gdXNpbmcgbW9yZSB0aGFuIEZEX1NFVFNJWkUgZmlsZQogZGVzY3JpcHRvcnMgLSBjYW4gY2F1c2UgbWVtb3J5IGNvcnJ1cHRpb24gYnkgaW52b2tpbmcgc2VsZWN0KCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMTA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0xMCAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzogCgogQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IEFkZCB0aGUgZnVuY3Rpb24KIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6IAoKIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBBZGQgdGhlIGZ1bmN0aW9uCiBuZXRzbm1wX2xhcmdlX3NlbGVjdCgpLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwOCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYzogCgogRml4ZWQgdHdvIGNvbXBpbGVyIHdhcm5pbmdzIChiYWNrcG9ydGVkIHIyMDA5OCBmcm9tIHRoZSB0cnVuaykuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA5bGFyZ2VfZmRfc2V0X2NsaWIuYzogQWRkZWQgYQoKIG1pbmltYWwgdW5pdCB0ZXN0IGZvciBuZXRzbm1wX2xhcmdlX2ZkX3NldC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAxMDYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwOWxhcmdlX2ZkX3NldF9jbGliLmM6IEFkZGVkIGEKCiBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9sYXJnZV9mZF9zZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWFrZQoKIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIGNsZWFyIGFsbCByZWxldmFudCBmaWxlIGRlc2NyaXB0b3JzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzIwMzgwNjogTWFrZQoKIG5ldHNubXBfbGFyZ2VfZmRfc2V0X3Jlc2l6ZSgpIGNsZWFyIGFsbCByZWxldmFudCBmaWxlIGRlc2NyaXB0b3JzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAxMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAoKIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAoKIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAoKIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjAxMDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzogQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE3ODM4OTogRml4IGluY29uc2lzdGVudAoKIGhhbmRsaW5nIG9mIFRaIG9mZnNldHMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcC10Yy5jOiBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTc4Mzg5OiBGaXggaW5jb25zaXN0ZW50CgogaGFuZGxpbmcgb2YgVFogb2Zmc2V0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDEwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMTAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjogbWFrZQoKIHZhcmlhYmxlIG5hbWVzIG1hdGNoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmM6IAoKIEZpeGVkIHR3byBjb21waWxlciB3YXJuaW5ncy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTEwICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6IGZpeGVkIGluc3RhbGxhdGlvbgoKIHZhcmlhYmxlcyBmb3IgdGhlIG9wdGlvbmFsIFNFVCBwcm9ncmFtcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6IGNobW9kIGEreCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogcHJpbnQgYW4gZXJyb3IgaWYgdGhlIGVuZCBvZgoKIGEgZmlsZSB3YXMgcmVhY2hlZCBhbmQgd2UncmUgbm90IGJhY2sgaW50byB0aGUgc3RhdGUgd2UgY2FuIHdyaXRlOwogb3RoZXJ3aXNlIGEgY2xvc2luZyAjaWZkZWYgaXMgbWlzc2luZy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6IGZpeCBlbmRpZiBjb21tZW50IHRvIG1hdGNoCgogdGhlIG9wZW5pbmcgaWZkZWYgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA5NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogcmVzZXQgdGhlIGNhbndyaXRlIGZsYWcgZm9yCgogZXZlcnkgZmlsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDkzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6IHRlbXBvcmFyaWx5IGxlYXZlIGluCgogaGVhZGVyIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwOTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6IGNoYW5nZSB0aGUgdW5pcXVlIGZpbGUgY2hlY2sgdG8gb25lIHRoYXQKCiBpcyBub3QgaW4gdGhlIG1pYmdyb3VwIGRpcmVjdG9yeSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3JlYWQtb25seS9UMDE0MXNubXB2MmNzZXRmYWlsX3NpbXBsZTogYSB0ZXN0IGZvcgoKIGVuc3VyaW5nIHRoZSBhZ2VudCByZWplY3RzIFNFVCByZXF1ZXN0cyB3aXRoIC0tZW5hYmxlLXJlYWQtb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDkwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZTogYWRkIGJhY2sgaW4gdGhlCgogc3RvcGFnZW50IGNvbW1hbmQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAxcGR1X3R5cGVfY2xpYi5jLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYywgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwM3BkdV9wYXJzZV9jbGliLmM6IHVuaXQgdGVzdHMKICAgICAgd3JpdGVuCgogZm9yIHRoZSByZWFkLW9ubHkgc3VwcG9ydCBjb252ZXJ0ZWQgdG8gd29yayB3aXRoIG9yIHdpdGhvdXQKIHJlYWQtb25seSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZTogZG9uJ3QgcnVuIHRoZQoKIHNldCB0ZXN0IGlmIG5vX3dyaXRlX3N1cHBvcnQgaXMgdHVybmVkIG9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZTogc2tpcCBpZgoKIG5vX3dyaXRlX3N1cHBvcnQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTQxc25tcHYyY3NldF9zaW1wbGU6IEEgbmV3IHRlc3QgdG8KCiBjaGVjayB3aGV0aGVyIFNOTVB2MmMgU0VUcyB0byBzeXNDb250YWN0IHdvcmsgYXMgZXhwZWN0ZWQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YW55Y29uZmlnOiBhbGxvdyBmb3IgdjJjIFNFVCBzdXBwb3J0CgogdGVzdGluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDg0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOiBBbGxvdyBmb3Igc2luZ2xlIHF1b3RlcyBmb3IgdmFjbQoKIGNvbnRleHQgbmFtZSBxdW90aW5nIHRvbyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDgzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZTogZml4IHRoZSBjb25maWd1cmUgdGVzdHMgdG8gaW5jbHVkZSB0aGUgd29yZCB0ZXN0IGluIHRoZQoKIHRlc3QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA4MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6IGZpeCB0aGUgY29uZmlndXJlIHRlc3RzIHRvIGluY2x1ZGUKCiB0aGUgd29yZCB0ZXN0IGluIHRoZSB0ZXN0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczogQWRkZWQgYW4gYW5ub3lpbmdseSBsb25nCgogbGlzdCBvZiBleGNlcHRpb25zIHRoYXQgbmVlZHMgdG8gYmUgYXV0b21hdGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczogQSBxdWljayBwZXJsIHNjcmlwdCB0bwoKIHJlbW92ZSB1bm5lZWRlZCBjb2RlIG1vZHVsZXMgZnJvbSB0aGUgbW9kdWxlcyBkaXJlY3RvcnkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzogbW9yZQoKIGltcHJvdmVtZW50cyAocmVtb3ZlbWVudHMpIGZvciBmZWF0dXJpemF0aW9uIGFuZCByZWFkLW9ubHkgc3VwcG9ydCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDoKCiAzMTk1NTM3OiBNaW5vciBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHNvcnQgb3B0aW1pemF0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOiBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDoKCiAzMTk1NTM3OiBNaW5vciBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHNvcnQgb3B0aW1pemF0aW9uIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA2ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOiBUYWJzIHRvIHNwYWNlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA2ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOiBUYWJzIHRvIHNwYWNlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDYgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOiBDb25maWd1cmUgY2hlY2sgZm9yIGdldGhvc3RuYW1lMgoKIFVzZSBnZXRhZGRyaW5mbyBpZiBhdmFpbGFibGUuIE5vdyB3b3JrcyBmb3IgU29sYXJpcyAoYW5kIFdpbmRvd3M/KSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDYgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOiBDb25maWd1cmUgY2hlY2sgZm9yIGdldGhvc3RuYW1lMgoKIFVzZSBnZXRhZGRyaW5mbyBpZiBhdmFpbGFibGUuIE5vdyB3b3JrcyBmb3IgU29sYXJpcyAoYW5kIFdpbmRvd3M/KSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDc1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNSAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6IEFkZCBkcm9wcGVkIHx8J3MgZnJvbSByMjAwNzIgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA1ICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmM6IENsZWFuIHVwLCBhbmQKCiBjb3NvbGlkYXRlIHJlc3VsdCB0YWJsZSByb3cgY3JlYXRpb24gaW50byBhIG5ldyBmdW5jdGlvbi4gIFNhdmVzIDIwMAogbGluZXMgb2YgY29kZSwgd2l0aCAoaG9wZWZ1bGx5KSBubyBmdW5jdGlvbmFsaXR5IGNoYW5nZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA3MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDUgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYzogQ2xlYW4gdXAsIGFuZAoKIGNvc29saWRhdGUgcmVzdWx0IHRhYmxlIHJvdyBjcmVhdGlvbiBpbnRvIGEgbmV3IGZ1bmN0aW9uLiAgU2F2ZXMgMjAwCiBsaW5lcyBvZiBjb2RlLCB3aXRoIChob3BlZnVsbHkpIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRlc3QuYywgY29uZmlndXJlLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBkb24ndCBidWlsZCBTRVQgcmVsYXRlZCBhcHBzIHdpdGgKCiAtLWVuYWJsZS1yZWFkLW9ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6IGZpeAoKIGlzc3VlcyB3aXRoIGNvbWJpbmluZyAtLWVuYWJsZS1taW5pbWFsaXN0IGFuZCAtLWVuYWJsZS1yZWFkLW9ubHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6IGJldHRlciBvdXRwdXQgZm9yIGZpbmRpbmcKCiBvYmplY3Qgc3ltYm9scy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOiBsYXN0IGNvbW1pdDogY2hhbmdlcyB0byBhbGxvdwoKIHBhcnNpbmcgb2YgZmVhdHVlcnMgZmlsZXMgdG8gZ2V0IGFsbCBtaW5pbWFsaXN0IHRhZ3Mgd2hpY2ggYXJlIHRoZW4KIHByb2Nlc3NlZCBmb3IgcmVtb3ZhbCB0aGlzIGNvbW1pdDogY2hhbmdlZCBjb21tZW50cy93aGl0ZSBzcGFjZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDY5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6IGFkZGVkIG5vX3dyaXRlIHN1cHBvcnQgdG8gZXh0ZW5kLmMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzogQWRkZWQgbWlzc2luZyAjZW5kaWYgY29tbWVudCBmb3IgcmVtb3ZlCgogaWZkZWYgY29kZSBzdXBwb3J0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBNaWtlIEJhZXIgPGJhZXJtQHN1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOiBhZGRlZCBjaGFuZ2VzIHRvIGFsbG93IGNvZGUKCiByZW1vdmFsIGluLXBsYWNlIChpLmUuIGRvZXMgbm90IHJlcXVpcmUgY3JlYXRpbmcgYSBuZXcgZmlsZSkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIE1pa2UgQmFlciA8YmFlcm1Ac3VzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9pZ25vcmUucmVnZXhwOiBhZGRpbmcgYSBpZ25vcmUucmVnZXhwIGZpbGUgdGhhdAoKIGNhbiBiZSB1c2VkIHdpdGggcmVtb3ZlaWZkZWZjb2RlLnBsIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBhZGQgYSBvdXRnb2luZyBsaW5rIHRvIHRoZQoKIHBhcmVudCBtYXJraW5nIHBhZ2UgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBBZGRlZCBhIHdpa2kgb3V0cHV0IG1vZGUKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBOb3RlIHRoYXQgdGhlIG9yZyBvdXRwdXQgaXMgdGhlCgogZGVmYXVsdCBpbiB0aGUgaGVscCBvdXRwdXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA2MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAoKICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbiBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uCiBMaW51eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AyMDA2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAoKICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbiBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uCiBMaW51eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDA2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAoKICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbiBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uCiBMaW51eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA2MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDQgIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmM6IENIQU5HRVM6IHNubXBkOiBmaXhlZAoKICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMiBiaXRzJyBpbiBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzIG9uCiBMaW51eCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiByZWNsYXNzaWZpY2F0aW9uIG9mIHRoZSByZW1haW5pbmcgZmVhdHVyZXMgaW50byBhIGhpZXJhcmNoeSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDYwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6IGRvbid0IGRvdWJsZS1kZWNsYXJlIGNlcnRfdXRpbHMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOiB0aGUKCiBpcGFkZHJlc3NfbGludXggd2FzIGluY29ycmVjdGx5IG1hcmtlZCBhcyBuZWVkaW5nIGNlcnRfZmluZ2VycHJpbnRzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzogcHV0IHRoZSBhZ2VudF9yZWdpc3RyeSBmZWF0dXJlIGluCgogbGlibmV0c25tcGFnZW50LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjogQ0hBTkdFUzogV2luMzI6IERlcHJlY2F0ZWQKCiBsaWJzbm1wLmRlZiAtIGFkZCBORVRTTk1QX0lNUE9SVCB0byBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgaW5zdGVhZCB0bwogZXhwb3J0IGEgZnVuY3Rpb24gZnJvbSBuZXRzbm1wLmRsbC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOiBDSEFOR0VTOiBXaW4zMjogRGVwcmVjYXRlZAoKIGxpYnNubXAuZGVmIC0gYWRkIE5FVFNOTVBfSU1QT1JUIHRvIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpbnN0ZWFkIHRvCiBleHBvcnQgYSBmdW5jdGlvbiBmcm9tIG5ldHNubXAuZGxsLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOiBNb3ZlZCBhIHNvdXJjZSBjb2RlIGNvbW1lbnQKCiBzdWNoIHRoYXQgaXQgaXMgYWdhaW4gaW1tZWRpYXRlbHkgYWJvdmUgdGhlIGZ1bmN0aW9uIGRlY2xhcmF0aW9ucyBpdAogYXBwbGllcyB0by4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOiBBZGRlZCBtaXNzaW5nCiAgICAgIE5FVFNOTVBfSU1QT1JUCgogZGVjbGFyYXRpb25zLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1NCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDogQWRkZWQgbWlzc2luZwogICAgICBORVRTTk1QX0lNUE9SVAoKIGRlY2xhcmF0aW9ucy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwMDU0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZjogCgogUmVtb3ZlZCB0d28gb2Jzb2xldGUgV2luMzIgZmlsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDUzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZjogCgogUmVtb3ZlZCB0d28gb2Jzb2xldGUgV2luMzIgZmlsZXMuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDA1MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IFRyaXZpYWwgY29tbWVudCBmaXg6Cgogc25tcElQdjZCYXNlRG9tYWluLmMgY29udGFpbnMgSVB2NiBiYXNlIHRyYW5zcG9ydCBzdXBwb3J0IGZ1bmN0aW9ucwogaW5zdGVhZCBvZiBJUHY0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA1MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmM6IFRyaXZpYWwgY29tbWVudCBmaXg6Cgogc25tcElQdjZCYXNlRG9tYWluLmMgY29udGFpbnMgSVB2NiBiYXNlIHRyYW5zcG9ydCBzdXBwb3J0IGZ1bmN0aW9ucwogaW5zdGVhZCBvZiBJUHY0LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjAwNTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogd2luMzIvY29uZmlnLmg6IFJlbW92ZWQgYW4gb2Jzb2xldGUgZmlsZS4gIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDUwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMy0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgd2luMzIvc25tcHNtX3NodXRkb3duLmgsIAogICAgICB3aW4zMi9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaDogQnVpbGRzIGFnYWluIHdpdGggVmlzdWFsIFN0dWRpbwoKIGFmdGVyIHRoZSBpbnRyb2R1Y3Rpb24gb2YgdGhlICJmZWF0dXJlIiBmZWF0dXJlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9zbm1wc21faW5pdC5oOiBSZW1vdmVkIGEgbWlzbGVhZGluZyBjb21tZW50LiAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOiBDb3JyZWN0IHRoZSBjaGVjayBvZgoKIHdldGhlciB1c20gc2VjdXJpdHkgaXMgZW5hYmxlZC4gIFJlZ2VuZXJhdGUgY29uZmlndXJlLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUmVnZW5lcmF0ZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jOiBBZGQgbWlzc2luZyBkZXBlbmRlbmNpZXMgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHVzbS5jOiBJZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBmcm9tCgogc25tcF9pbmNyZW1lbnRfc3RhdGlzdGljIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6IFNwbGl0IHRoZSBjb250YWluZXJfY29tcGFyZV9mdW5jdGlvbnMgZmVhdHVyZQoKIGludG8gY29udGFpbmVyX2NvbXBhcmVfbWVtLCBjb250YWluZXJfY29tcGFyZV9sb25nLAogY29udGFpbmVyX2NvbXBhcmVfdWxvbmcsIGNvbnRhaW5lcl9jb21wYXJlX2ludDMyIGFuZAogY29udGFpbmVyX2NvbXBhcmVfdWludDMyIFVuaWZ5IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIGNvbXBhcmUKIGZ1bmN0aW9ucyBmdXJ0aGVyLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9jb250YWluZXIuYzogQ2hhbmdlIHRoZSBzcGVsbGluZyBvZiB0aGUKCiBjb250YWluZXJfY29tcGFyZV9jc3RyaW5nIGZlYXR1cmUgdG8gY29udGFpbmVyX25jb21wYXJlX2NzdHJpbmcgYXMKIHRoYXQgaXMgdGhlIGZ1bmN0aW9uIHRoYXQgaXMgZ3VhcmRlZCBieSB0aGF0IGF0dHJpYnV0ZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwNDIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAzLTAyICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOiBBZGQgdGhlIG1pc3NpbmcgcmVwbGFjZW1lbnQKCiBtYWNybyBmb3Igc25tcF9pbml0X3N0YXRpc3RpY3MgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDA0MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDMtMDIgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6IHNubXBfaW5jcmVtZW50X3N0YXRpc3RpY19ieQoKIHRha2VzIHR3byBhcmd1bWVudHMgc28gbGV0IHRoZSByZXBsYWNlbWVudCBtYWNybyB0YWtlIHR3byBhcmd1bWVudHMKIGFzIHdlbGwuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDQwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jOiBGaXggdHlwbyBpbgoKIHIxOTk5MCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2s6IFJlbW92ZSBsaW5lcyBzdGFydGluZyB3aXRoICNkZWZpbmUKCiBpbiB0aGUgb3V0cHV0IG9mIHRoZSBwcmVwcm9jZXNzb3IgV2hlbiBnY2MgLUUgaXMgY2FsbGVkIHdpdGggLWdnZGIzCiAob3IgLWREKSB0aGVuIGFsbCB0aGUgbWFjcm8gZGVmaW5pdGlvbnMgYXJlIHBhc3NlZCB0aHJvdWdoIHRoZQogcHJlcHJvY2Vzc29yIGFuZCB0aGF0IG1lc3NlcyB1cCBvdXIgcHJvY2Vzc2luZy4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLnJ1bGVzOiBQdXQgdGhlIGdlbmVyYXRlZCBmaWxlIGluIHRoZSBidWlsZCB0cmVlLCBub3QgdGhlCgogc291cmNlIHRyZWUuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmCiAgICAgICBhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS4KICAgICAgIGMsIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KICAgICAgIGM6IG1vdmVkIGEgYnVuY2ggb2YgZmVhdHVyZXMgaW50byB0aGUgbGlibmV0c25tcG1pYnMgZmVhdHVyZSBzZXQuCiAgICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAzNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAKICAgICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0cywgc25tcGxpYi9taWIuYzoKCiBjbGFzc2lmaWVkIGxpYm5ldHNubXBhZ2VudCBmZWF0dXJlcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDM1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgbGlicmFyaWVzCgogKHNubXBsaWIgZmlyc3QpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IG91dHB1dCBjbGVhbnVwIGFuZCBhZGRlZCBhZ2VudC1taWJzCgogYW5kIGxvZ2dpbmcgb3B0aW9ucyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDMzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBhZGQgYSBkZWZhdWx0IHNldCBvZiBhcmd1bWVudHMKCiBjYWxjdWxhdGUgcmVzdWx0aW5nIHNpemVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9kaXJfdXRpbHMuYzogQWRkZWQgYSBtaXNzaW5nIDsgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IHByZWZpeCB0aGUgb3V0cHV0IGZpbGVzIHdpdGggYSBudW1iZXIKCiB0byBpbmRpY2F0ZSBvcmRlciBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBzYXZlIHRoZSByZXN1bHRzIG9mIHRoZSBzeXN0ZW0KCiBleGVjdXRpb25zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGVuYWJsZSBidWlsZGluZyBvZiB0aGUgcmVzdWx0aW5nCgogY29tYmluYXRpb25zIEFkZCBhIC1uIGZsYWcgZm9yIGRyeS1ydW5zIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOiBlbmFibGUgdGhlIC10IHRhZyBmb3IgbGltaXRpbmcgdHlwZXMKICAgICAgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IEFkZGVkIGFyZ3VtZW50IHBhcnNpbmcgYW5kIGFyZ3VtZW50cwoKIGZvciBzZWxlY3RpbmcgYW5kIGxpc3RpbmcgdHlwZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czogZ2VuZXJhdGUgY29uZmlndXJlIHNjcmlwdCBhcmd1bWVudHMKCiBmcm9tIHNwZWNzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGFkZGVkIGEgYnVuY2ggb2YgbmV3IGZlYXR1cmUgb3B0aW9ucwoKIGFuZCBjbGVhbmVkIHVwIGEgYml0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6IGFkZGVkIGEgbmV3IChub3QgeWV0IHdvcmtpbmcpIHNjcmlwdAoKIHRvIHRlc3Qgc2l6aW5nIG9mIHZhcmlvdXMgYXJndW1lbnQgc2V0cyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDIzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBTaW1wbGlmeSB0aGUgY29kZS4gVW5pZnkgc29tZQoKIGRlYnVnIGxvZ3MuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDIyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNiAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBSZWR1Y2UgdGhlIHNjb3BlIG9mIGEgZmV3CgogdmFyaWFibGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOiBSZW1vdmUgc29tZSB1bnVzZWQgaW5jbHVkZXMuIAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAyMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogTWFrZSBpdCBwb3NzaWJsZSB0bwoKIGluaXRpYWxpemUvdW5pbml0aWFsaXplIG1vZHVsZXMgd2l0aCA2NCBjaGFyYWN0ZXIgbmFtZXMgYW5kIG5vdAogc3VmZmVyIHdpbGQgd3JpdGVzLiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogQ29kZSByZXN0cnVjdHVyaW5nIC0gcHV0IHRoZQoKIG1hbmFnZWQgcm91dGluZXMgYmVmb3JlIHRoZSBtYW5hZ21lbnQgY29kZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI2ICBNYWdudXMgRnJvbXJlaWRlIDxtYWdmckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6IAoKIENIQU5HRVM6IGxpYm5ldHNubXBtaWJzOiBNYWtlIGFsbCBmdW5jdGlvbnMgaW4gdGhlIGRsbW9kIG1vZHVsZSB0aGF0CiBkb24ndCBoYXZlIHRvIGJlIHB1YmxpYyBzdGF0aWMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjYgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzogUmVuYW1lIGRlaW5pdF9kbG1vZCB0bwoKIHNodXRkb3duX2RsbW9kIGFzIHRoYXQgaXMgd2hhdCBpdCByZWFsbHkgaXMgYWJvdXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOiBhZGRpbmcgbWluaW1hbGlzdCBpZmRlZnMKCiB0byBuZXQtc25tcC12YWNtIG1pYiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDE1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczogcHJvcGVybHkgaGFuZGxlIHR3aW4gY2hpbGRyZW47CgogYWxzbyBzb3J0IHRoZSBjaGlsZCBsaXN0IGFscGhhYmV0aWNhbGx5LiAgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOiBJIHN1cHBvc2UgbG9nZ2luZyBzaG91bGQgcHJvYmFibHkgZGVmYXVsdAoKIHRvIGJlaW5nIGEgd2FudGVkIG9wdGlvbiA6LSkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IG9yZy1saW5rIHRoZSBmaWxlcyBpbiB0aGUKCiBvdXRwdXQgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgTWFrZWZpbGUucnVsZXMsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgCiAgICAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssIHNubXBsaWIvTWFrZWZpbGUuaW46IG1ha2UgdGhlCgogZmVhdHVyZXMtY2hlY2sgc2NyaXB0IHRyYWNrIHRoZSBmdWxsIHNvdXJjZSBwYXRoIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBjaGFuZ2UgdGhlIGZ1bmN0aW9uIG5hbWVzIHRvCgogbWF0Y2ggdGhhdCBpdCdzIHByaW50aW5nIHRvIG9yZy1tb2RlIGF0IHRoZSBtb21lbnQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi90b29scy5jOiBsYXN0CiAgICAgIG9mCgogdGhlIGZlYXR1cmUgY2xhc3NpZmljYXRpb24gaW4gbGlibmV0c25tcCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmM6IG1ha2UgdGhlCgogdXNtX3N1cHBvcnQgdXRpbGl0aWVzIHNlbGYtZGVjbGFyZSB0aGVtc2VsdmVzIGFzIGNoaWxkcmVuIHRvIG1ha2UKIHN1cmUgdGhleSdyZSBwcm9wZXJseSBpbmNsdWRlZCBkdXJpbmcgZGVwZW5kZW5jeSBvcmRlcmluZyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAKICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgICAgICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9maWxlX3V0aWxzLmMsIAogICAgICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc25tcHVzbS5jOiBzdXBlcnN0cnVjdHVyYWxpemF0aW9uaXppbmcKCiB0aGUgZmVhdHVyZXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwNyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wX2VudW0uYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3N5c3RlbS5jLCAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdG9vbHMuYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiBzaWduaWZpY2FudCBwYXJlbnQvY2hpbGQgZmVhdHVyZSBjbGFzc2lmaWNhdGlvbiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwMDA2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmM6IGNsYXNzaWZ5IGEgZmV3IGNvbXBvbmVudHMKCiBpbnRvIGEgdG9wLWxldmVsIGxpYm5ldHNubXAgY29tcG9uZW50IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL3NjYXBpLmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogc3RydWN0dXJpemUgdGhlIHVzbSBmZWF0dXJlcyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jOiBzdHJ1Y3R1cmUgdGhlIGNvbnRhaW5lciBmZWF0dXJlcyBpbnRvIGEKCiBoaWVyYXJjaHkgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOiBncm91cCB0aGUgbG9nZ2luZyBoYW5kbGVycyB1bmRlciBhIHBhcmVudAoKIGZlYXR1cmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBmaXggdGhlIGV4cGVjdCBhcmd1bWVudCBjb3VudAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDAwMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6IGZpeCB0aGUgbmFtZSBvZiB0aGUgZXhwZWN0ZWQKCiBpbnB1dCBmaWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjAwMDAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOiBhcmd1bWVudCBwYXJzaW5nIGFuZCB1c2FnZSgpCgogb3V0cHV0IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5OTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgc25tcGxpYi9vaWRfc3Rhc2guYzogLQogICAgICBhZGRlZCB0d28gb2lkX3N0YXNoIGZ1bmN0aW9ucyBhcyBpbmRpdmlkdWFsIGZlYXR1cmVzIC0gY2xlYW5lZCB1cAogICAgICBzb21lIHdhcm5pbmdzIGluIHRoZSB0YWJsZV9pdGVyYXRvciBjb2RlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTk4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAgICAoSGF2aW5nIGJyb3VnaHQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgNS41LnggYnJhbmNoICBpbnRvIGxpbmUgd2l0aAogICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCiAgICAgIGJyYW5jaGVzLCByYXRoZXIgIHRoYW4ganVzdCBtb3N0IG9mIHRoZW0hKSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgZGlzdC9tYWtlcmVsZWFzZS54bWw6IEZpeCB0aGUgY29tbWFuZCB0byBjcmVhdGUgYSBuZXcgU1ZOIHRhZyBsaW5lCiAgICAgIChIYXZpbmcgYnJvdWdodCB0aGUgc3RydWN0dXJlIG9mIHRoZSA1LjUueCBicmFuY2ggIGludG8gbGluZSB3aXRoCiAgICAgIHRoZSBvdGhlciBicmFuY2hlcywgdGhlIHByZXZpb3VzICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCoKICAgICAgYnJhbmNoZXMsIHJhdGhlciAgdGhhbiBqdXN0IG1vc3Qgb2YgdGhlbSEpIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbDogRml4IHRoZSBjb21tYW5kIHRvIGNyZWF0ZSBhIG5ldyBTVk4gdGFnIGxpbmUKICAgICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaCAgaW50byBsaW5lIHdpdGgKICAgICAgdGhlIG90aGVyIGJyYW5jaGVzLCB0aGUgcHJldmlvdXMgIGNvbW1hbmQgaXMgbm93IHdyb25nIGZvciAqYWxsKgogICAgICBicmFuY2hlcywgcmF0aGVyICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTk3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAgICAoSGF2aW5nIGJyb3VnaHQgdGhlIHN0cnVjdHVyZSBvZiB0aGUgNS41LnggYnJhbmNoICBpbnRvIGxpbmUgd2l0aAogICAgICB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cyAgY29tbWFuZCBpcyBub3cgd3JvbmcgZm9yICphbGwqCiAgICAgIGJyYW5jaGVzLCByYXRoZXIgIHRoYW4ganVzdCBtb3N0IG9mIHRoZW0hKSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk5NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCAgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6IGRvY3VtZW50YXRpb24KCiB1cGRhdGUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sCiAgICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06IFZlcnNpb24gbnVtYmVyIHVwZGF0ZQogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5OTQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI1ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwKICAgICAgIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbTogVmVyc2lvbiBudW1iZXIgdXBkYXRlCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTUtcGF0Y2hlc0AxOTk5MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAoKIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAoKIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAoKIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk5MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjUgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHYzLmM6IEF2b2lkIGEgcG9zc2libGUgY3Jhc2ggaWYgdGhlIGVuZ2luZUlEIGlzIG5vdAoKIGF2YWlsYWJsZSBvciBzZXQuICBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wdjMuYzogQXZvaWQgYSBwb3NzaWJsZSBjcmFzaCBpZiB0aGUgZW5naW5lSUQgaXMgbm90CgogYXZhaWxhYmxlIG9yIHNldC4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTkxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNSAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmg6IGFkZGluZyBpZmRlZiBjb2RlCgogZm9yIG1pbmltYWxpc3Qgc3VwcG9ydCBvZiBkaWZmbWFuIG1pYiBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTkwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yNCAgTWlrZSBCYWVyIDxiYWVybUBzdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmg6CgogQWRkaW5nIG1pbmltYWxpc3QgaWZkZWZzIHRvIGhvc3QgcmVzb3VyY2UgbWliIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBzbm1wbGliL2RhdGFfbGlzdC5jOiBtYXJrIHRoZQoKIGRhdGFfbGlzdCBmdW5jdGlvbiB0aGF0J3Mgb25seSB1c2VkIGluIHN0YWNoX2NhY2hpbmcgYXMgYSBmZWF0dXJlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOiB3aG9vcHMuICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOiBtb3JlIG1pc3Npbmcgc3Rhc2ggcmVmZXJlbmNlcwogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6IGlmZGVmZWQvZmVhdHVyZWQgb3V0IGEgbWlzc2luZwoKIHN0YXNoX2NhY2hlIHNlY3Rpb24gZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6IG1ha2UgdGhlIHByZWZpeF9pbmZvIG1vcmUKCiBoaWVyYXJjaGljYWwgYW5kIHN1Yi1mZWF0dXJlIHRoZSB1bnVzZWQgb25lIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODQgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlOiBkbyBpbmNsdWRlIHRoZSBwZXJsL3B5dGhvbiBjb2RlCgogd2hlbiBzZWFyY2hpbmcgZm9yIGZpbGVzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTI0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOiBtYWtlIHRoZSBzZW1pLXVzZWQgdGFibGVfdGRhdGEKCiBmdW5jdGlvbnMgY2hpbGRyZW4gb2YgdGFibGVfdGRhdGFfYWxsIGluc3RlYWQgb2YganVzdCB0YWJsZV90ZGF0YSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTgyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTWFnbnVzIEZyb21yZWlkZSA8bWFnZnJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6IENvcnJlY3QgdHlwbyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk4MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE1hZ251cyBGcm9tcmVpZGUgPG1hZ2ZyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDb3JyZWN0IHR5cG8gZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5ODAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6IHByb3BlciBpbmNsdWRlIG9mIHByb3RvdHlwZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZTogY29tcGF0IHNvbWUgZmVhdHVyZSBoZWFkZXIKCiBjaGlja2VuIGFuZCBlZ2cgcHJvYmxlbXMgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3OCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzogSW5jbHVkZSByZXF1aXJlZCBwcm90b3R5cGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc25tcHVzbS5jOiB1bnNpZ25lZCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzYgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKIHVuc2lnbmVkIGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogdW5zaWduZWQganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzUgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6IEVuYWJsZSAocHJvYmFibHkgZm9yZ290dGVuKQoKIGlwQWRkcmVzc1ByZWZpeFRhYmxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBFbmFibGUgKHByb2JhYmx5IGZvcmdvdHRlbikKCiBpcEFkZHJlc3NQcmVmaXhUYWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTc0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3MsCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1yZW1vdmUsIAogICAgICBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGUsIAogICAgICBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDogYWRkZWQgb3RoZXIgbWlzc2luZyAnbmV3JwogICAgICBmaWxlcwoKIG5vdCBpbmNsdWRlZCBpbiB0aGUgbWluaW1hbGlzdCBwYXRjaCBmaWxlIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9mcmVlYnNkNC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYzogTG9hZGluZwoKIElQdjYgZGF0YSBpcyBhIG5vLW5vIHdoZW4gSVB2NiBub3QgZW5hYmxlZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3MiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2ZyZWVic2Q0LmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbmV0YnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jOiBMb2FkaW5nCgogSVB2NiBkYXRhIGlzIGEgbm8tbm8gd2hlbiBJUHY2IG5vdCBlbmFibGVkIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS0zLXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NzEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYXBwcy9zbm1wdGFibGUuYzogRml4IGJ1ZyAzMTE4NjMxOiBzbm1wdGFibGUgc2VnZmF1bHRzIGlmIGluZGV4CgogY29udGFpbnMgOiBjaGFyYWN0ZXIgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3MSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOiBGcmVlQlNEIDggc3VwcG9ydCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMTk5NzAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDguaDogRnJlZUJTRCA4IHN1cHBvcnQgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTcwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMyAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6IEZyZWVCU0QgOCBzdXBwb3J0IGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkOC5oOiBGcmVlQlNEIDggc3VwcG9ydCBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk3MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWZlYXR1cmVzLmg6IGFkZGVkIG1pc3NpbmcKCiBuZXQtc25tcC1mZWF0dXJlcy5oIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgTWFrZWZpbGUudG9wLCBhZ2VudC9NYWtlZmlsZS5pbiwgCiAgICAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywgCiAgICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIAogICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCAKICAgICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjCiAgICAgICBlLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfCiAgICAgICBhY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2ludGVyZmFjZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jCiAgICAgICAsIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9pbnRlcmZhY2UuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZgogICAgICAgYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU04KICAgICAgIFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuCiAgICAgICBjLCBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS4KICAgICAgIGMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsICBhZ2VudC9zbm1wZC5jLAogICAgICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2FnZW50eHRyYXAuYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgCiAgICAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9zcWwuYywgY29uZmlndXJlLCAKICAgICAgY29uZmlndXJlLmFjLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzLAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczIsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHBlcmwvT0lEL09JRC54cywgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBwZXJsL2FnZW50L2FnZW50LnhzLCBzbm1wbGliL01ha2VmaWxlLmluLCAKICAgICAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgCiAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMsIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZGlyX3V0aWxzLmMsCiAgICAgICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9maWxlX3V0aWxzLmMsCiAgICAgIHNubXBsaWIvaW50NjQuYywgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLAogICAgICBzbm1wbGliL21pYi5jLCAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC10Yy5jLAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgc25tcGxpYi9zbm1wX3NlY21vZC5jLAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc25tcGtzbS5jLCAgc25tcGxpYi9zbm1wdHNtLmMsCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgc25tcGxpYi9zeXN0ZW0uYywKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmMsIHNubXBsaWIvdG9vbHMuYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3VjZF9jb21wYXQuYywgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN2YWNtY29uZmlnLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybWF1dGhfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9zaW1wbGUsIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGU6IE5FV1M6CgogcGFja2FnaW5nOiBFbmFibGUgbWljcm8tYW5kLW1hY3JvLWZlYXR1cmUgbWFuYWdlbWVudCB3aXRoaW4KIE5ldC1TTk1QOyB0aGlzIGFkZHMgYSBudW1iZXIgb2YgbmV3IGZsYWdzIHRvIGNvbmZpZ3VyZQogKC0tZW5hYmxlLW1pbmltYWxpc3QgYW5kIC0tZW5hYmxlLXJlYWQtb25seSkuICBUaGVzZSBjaGFuZ2VzIGFyZQogZGVzaWduZWQgdG8gcmVtb3ZlIG11Y2ggb2YgdGhlIGlubGluZSBjb2RlIHRoYXQgaXNuJ3QgYWx3YXlzCiBuZWNlc3Nhcnkgb3IgZGVzaXJlZC4gIFNjcmlwdHMgZXhpc3QgKGFuZCB3aWxsIGJlIGltcHJvdmVkKSB0byBzdGlwCiBvdXQgdW51c2VkIGNvbXBvbmVudHMgZnJvbSB0aGUgY29kZSBlbnRpcmVseSB0byBlbmFibGUgYSBzaG9ydGVyCiByZXZpZXcgcHJvY2VzcyBmb3IgdXBncmFkaW5nIHRvIG5ldyByZWxlYXNlcy4gIFRoaXMgd29yayB3YXMgZG9uZSBieQogV2VzIEhhcmRha2VyIGFuZCBNaWNoYWVsIEJhZXIgZnJvbSBTUEFSVEEsIEluYy4gYnV0IGlzIGJlaW5nIGNoZWNrZWQKIGluIGFzIGEgbGFyZ2UgcGF0Y2ggc2luY2UgY29udmVydGluZyB0aGUgbWljcm8gcGF0Y2hlcyBmcm9tIGdpdCB0bwogc3ZuIHR1cmVuZCBvdXQgdG8gYmUgaW1wb3NzaWJsZSBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTY4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIEZBUTogdXNlIHRoZSB3aWtpIFVSTCBpbnN0ZWFkIG9mIHRoZSB0dXRvcmlhbC01IFVSTCBmb3IgdGhlCgogc25tcHRyYXAgdHV0b3JpYWwgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk2NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6IFJldmVydCBhIGJvZ3VzIGNoYW5nZSB0aGF0IGNyZXB0CgogaW50byB0aGUgY29kZS4gIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTY2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEFHRU5ULnR4dCwgQ0hBTkdFUywgQ09QWUlORywgQ2hhbmdlTG9nLCBDb2RpbmdTdHlsZSwgCiAgICAgIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgSU5TVEFMTCwgTWFrZWZpbGUuYW0sIE1ha2VmaWxlLmluLCAKICAgICAgTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcCwgTkVXUywgUE9SVElORywgUkVBRE1FLCAKICAgICAgUkVBRE1FLlBhbmFzb25pY19BTTNYLnR4dCwgUkVBRE1FLmFnZW50LW1pYnMsIFJFQURNRS5hZ2VudHgsIAogICAgICBSRUFETUUuYWl4LCBSRUFETUUuaHB1eDExLCBSRUFETUUuaXJpeCwgUkVBRE1FLmtyYjUsIFJFQURNRS5vc1gsIAogICAgICBSRUFETUUuc25tcHYzLCBSRUFETUUuc29sYXJpcywgUkVBRE1FLnNxbCwgUkVBRE1FLnRocmVhZCwgCiAgICAgIFJFQURNRS50cnU2NCwgUkVBRE1FLndpbjMyLCBUT0RPLCBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCAKICAgICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCAKICAgICAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgCiAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgCiAgICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9hdXRvbmxpc3QuaCwgCiAgICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCAKICAgICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAKICAgICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvbW9kZV9lbmRfY2FsbC5jLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2dlbmVyaWMuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAKICAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwgCiAgICAgIGFnZW50L20ybS5oLCBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvUkVBRE1FLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUkVBRE1FLnNtdXgsIGFnZW50L21pYmdyb3VwL1Jtb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vUkVBRE1FLCBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuaCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWxfYXBpLmgsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuaCwgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5oLCAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5oLCAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dfYXBpLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3Rlc3RfYWxhcm0uc2gsIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3Rlc3RfaGlzdC5zaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5oLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmgsIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmgsIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsIGFnZW50L21pYmdyb3VwL2Rpc21hbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oLCBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlU2NhbGFycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVNjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFNjYWxhcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFNjYWxhcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwX2VudW0uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL29sZC1ldmVudC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Byb2JlSGlzdG9yeVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2FjYwogICAgICAgZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjCiAgICAgICBlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9nZXQKICAgICAgIC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2dldAogICAgICAgLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfc2V0CiAgICAgICAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9zZXQKICAgICAgIC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9lbnVtcy5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhYwogICAgICAgZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhYwogICAgICAgZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9vaWRzLmgsCiAgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2lvY3RsX2ltcF9jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmgsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL01ha2VmaWxlLmRsbW9kLAogICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY29sdW1ucy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfZW51bXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNtZHMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmYsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmgsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rZXJuZGF0YS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rZXJuZGF0YS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9tYWNoLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X21hY2guaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbmxpc3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbnVsbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9udWxsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BjcC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcHN0YXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcHN0YXQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tbnR0eXBlcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tb3VudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2R5bml4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9udWxsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvZHVtbXlfc2Vuc29ycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMva3N0YXRfc2Vuc29ycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192Mi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9udWxsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fY3lnd2luLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2Rhcndpbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9ubGlzdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9udWxsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLCAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaCwKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RlZnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9pb2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZQogICAgICAgX2RhdGFfYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlCiAgICAgICBfZGF0YV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUKICAgICAgIF9pbnRlcmZhY2UuaCwgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9jb24KICAgICAgIHN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50CiAgICAgICBlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdAogICAgICAgYW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhXwogICAgICAgYWNjZXNzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfCiAgICAgICBhY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXIKICAgICAgIGZhY2UuaCwgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2NvbgogICAgICAgc3RhbnRzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludAogICAgICAgZXJmYWNlLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmgsCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CiAgICAgICBhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdAogICAgICAgYV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfZ2V0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0CiAgICAgICBhX2dldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2VudQogICAgICAgbXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnQKICAgICAgIGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludAogICAgICAgZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfb2lkCiAgICAgICBzLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2dldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2VudW1zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfb2lkcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFuCiAgICAgICB0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmEKICAgICAgIGNlLmgsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9jb25zdGFuCiAgICAgICB0cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hYwogICAgICAgY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYQogICAgICAgY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmEKICAgICAgIGNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VuCiAgICAgICB0LmMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbgogICAgICAgdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWMKICAgICAgIGNlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWMKICAgICAgIGNlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmEKICAgICAgIGNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhCiAgICAgICBjZS5oLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfZGF0YV9hY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX2RhdGFfYWNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9lbnVtcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYgogICAgICAgbGVfaW50ZXJmYWNlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFiCiAgICAgICBsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWIKICAgICAgIGxlX29pZHMuaCwgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUUsIAogICAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY2hlY2tmbnMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfY29sdW1ucy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9lbnVtcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsICBhZ2VudC9taWJncm91cC9taWJkZWZzLmgsCiAgICAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICAgICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmgsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2VzcwogICAgICAgLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzCiAgICAgICAuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9nZXQuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9nZXQuaCwKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9zZXQuYywKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9zZXQuaCwKICAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZW51bXMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMKICAgICAgICwgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmgKICAgICAgICwgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9vaWRzLmgsCiAgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvaW9jdGxfaW1wX2NvbW1vbi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSG9zdE5hbWVUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2ZyZWVic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jLCBhZ2VudC9taWJncm91cC9zbXV4LmgsCiAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eF9nYXRlZC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpCiAgICAgICBmeUZpbHRlclRhYmxlX2NvbnN0YW50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aQogICAgICAgZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGkKICAgICAgIGZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhQYXJhbWV0ZXJzLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0CiAgICAgICBlcnMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXQKICAgICAgIGVycy5oLAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX2FjY2Vzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX2dldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX2dldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX3NldC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kYXRhX3NldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9kb3h5Z2VuLmNvbmYsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2VudW1zLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLCiAgICAgICBleVRhYmxlX2ludGVyZmFjZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VySwogICAgICAgZXlUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcksKICAgICAgIGV5VGFibGVfb2lkcy5oLCBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgsIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVyc181XzUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL01ha2VmaWxlLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9wcml2YXRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ublRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9jb25zdGEKICAgICAgIG50cy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYQogICAgICAgY2Nlc3MuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKICAgICAgIGNjZXNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmCiAgICAgICBhY2UuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmYKICAgICAgIGFjZS5oLCBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfY29uc3RhbnRzLgogICAgICAgaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXMKICAgICAgIHMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS4KICAgICAgIGMsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBoLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsLmgsIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbXNlbnNvcnNNaWIuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9kYXJ3aW43LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2hwdXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2FpeDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9kYXJ3aW43LmgsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3VkcC1taWIuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9wcml2YXRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9zb2xhcmlzMi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2NvbnN0YW50cy4KICAgICAgIGgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2VzCiAgICAgICBzLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2VzCiAgICAgICBzLmgsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuCiAgICAgICBjLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL01JQl9TVEFUU19DQUNIRV9USU1FT1VULmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmgsIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIAogICAgICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuaCwgYWdlbnQvb2JqZWN0X21vbml0b3IuYywgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9wZXJsLmMsIGFnZW50L3NubXBfcGVybC5oLCAKICAgICAgYWdlbnQvc25tcF9wZXJsLnBsLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywgCiAgICAgIGFnZW50L3NubXBkLmgsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmluLCAKICAgICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcF9wZXJsX3RyYXBkLnBsLCAKICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAKICAgICAgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9mZnMuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaCwgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIAogICAgICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsIAogICAgICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguaCwgCiAgICAgIGFwcHMvc25tcHRyYXBkX2RzLmgsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgCiAgICAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBhcHBzL3NubXB0cmFwZF9zcWwuYywgYXBwcy9zbm1wdXNtLmMsIAogICAgICBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zc2h0b3NubXAuYywgY29uZmlnLmd1ZXNzLCAKICAgICAgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMiwgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywKICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWwsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wYXRocywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHMsIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMsIAogICAgICBkaXN0L2F1dG9jb25mLXZlcnNpb24sIGRpc3QvY2hhbmdlbG9nZml4LCBkaXN0L2NoZWNrLWFwaS1jaGFuZ2UsIAogICAgICBkaXN0L2N2c3Nob3csIGRpc3QvY3ZzdXAsIGRpc3QvZXh0cmFjdG5ld3MsIGRpc3QvZmluZC1yZXF1aXJlcywgCiAgICAgIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvREVWRU5WLCAKICAgICAgZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL1JFQURNRSwgCiAgICAgIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9idWlsZHBhY2thZ2Utc29sYXJpcywgCiAgICAgIGRpc3QvbmV0LXNubXAtc29sYXJpcy1idWlsZC9lbGZkZXBlbmQuc2gsIGRpc3QvbmV0LXNubXAuc3BlYywgCiAgICAgIGRpc3QvbnNiLWNvbmZpZywgZGlzdC9uc2ItZnVuY3Rpb25zLCBkaXN0L25zYi1uaWdodGx5LCAKICAgICAgZGlzdC9uc2ItcGFja2FnZSwgZGlzdC9uc2ItcGxhdGZvcm0sIGRpc3QvcGF0bWUsIAogICAgICBkaXN0L3NjaGVtYS1zbm1wdHJhcGQuc3FsLCBkaXN0L3NubXBkLWluaXQuZCwgCiAgICAgIGRpc3Qvc25tcHRyYXBkLWluaXQuZCwgZGlzdC9zdm51cCwgZG9jL3JmYy9hZ2VudHgvcmZjMjc0MS50eHQsIAogICAgICBkb2MvcmZjL21pc2MvcmZjMzUxMi50eHQsIGRvYy9yZmMvbWlzYy9yZmMzNTg0LnR4dCwgCiAgICAgIGRvYy9yZmMvc21pVjIvcmZjMjU3OC50eHQsIGRvYy9yZmMvc21pVjIvcmZjMjU3OS5lcnJhdGEsIAogICAgICBkb2MvcmZjL3NtaVYyL3JmYzI1NzkudHh0LCBkb2MvcmZjL3NtaVYyL3JmYzI1ODAudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjEvcmZjMTE1NS50eHQsIGRvYy9yZmMvc25tcFYxL3JmYzExNTcudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjEvcmZjMTIxMi50eHQsIGRvYy9yZmMvc25tcFYxL3JmYzEyMTMudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMTkwMS50eHQsIGRvYy9yZmMvc25tcFYyL3JmYzE5MDIudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMTkwMy50eHQsIGRvYy9yZmMvc25tcFYyL3JmYzE5MDQudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMTkwNS50eHQsIGRvYy9yZmMvc25tcFYyL3JmYzE5MDYudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMTkwNy50eHQsIGRvYy9yZmMvc25tcFYyL3JmYzE5MDgudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjIvcmZjMjA4OS50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTAuZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMC50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTEudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMi50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTMuZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxMy50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTQuZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNC50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTUuZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNS50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTYudHh0LCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxNy50eHQsIGRvYy9yZmMvc25tcFYzL3JmYzM0MTguZXJyYXRhLCAKICAgICAgZG9jL3JmYy9zbm1wVjMvcmZjMzQxOC50eHQsIGRvdGdkYmluaXQsIGRveHlnZW4uY29uZiwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfc3lzT1JUYWJsZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9zZW5zb3JzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21vZGVfZW5kX2NhbGwuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yb3dfbWVyZ2UuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhcl9ncm91cC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF90b19uZXh0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaCwgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9kZWZhdWx0cm91dGVyLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcHN0YXRzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL25ldC1zbm1wLWRhdGEtYWNjZXNzLWluY2x1ZGVzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3Njb3Blem9uZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L1JFQURNRSwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfaXRlcmF0b3IuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGlyX3V0aWxzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9maWxlX3V0aWxzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9rZXl0b29scy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQWxpYXNEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3VjZF9jb21wYXQuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2lucGlwZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmgsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpNC5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHJhZ29uZmx5LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDYuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q3LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0va2ZyZWVic2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzJtc3ZjLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vc2Y1LmgsCiAgICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi4zLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi40LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi41LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi42LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdW5vcy5oLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zeXN2LmgsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaCwKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL1JFQURNRSwgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9pbmRleC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWFkX2NvbmZpZy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWdpc3RyeS5oLCBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3RyYXAuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oLCBpbmNsdWRlL3VjZC1zbm1wL2F1dG9fbmxpc3QuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL2RzX2FnZW50LmgsIGluY2x1ZGUvdWNkLXNubXAvaGVhZGVyX2NvbXBsZXguaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaCwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9taWIuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWJfbW9kdWxlX2NvbmZpZy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FnZW50LmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCwgCiAgICAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9sb2dnaW5nLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3N0cnVjdC5oLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oLCBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIAogICAgICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1pbmNsdWRlcy5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmgsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oLCAKICAgICAgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgsIGluc3RhbGwtc2gsIGxvY2FsL0ZBUTJIVE1MLCAKICAgICAgbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL1JFQURNRS5taWIyYywgbG9jYWwvVmVyc2lvbi1NdW5nZS5wbCwgCiAgICAgIGxvY2FsL2NvbnZlcnRjb2RlLCBsb2NhbC9maXhwcm9jLCBsb2NhbC9odG1sLWFkZC1oZWFkZXItZm9vdGVyLnBsLAogICAgICAgbG9jYWwvaHRtbC10ZXh0ZmlsZS1maXgucGwsIGxvY2FsL2lwZi1tb2QucGwsIGxvY2FsL21pYjJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1jb3B5Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LXNldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtY29udGV4dC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtY2hhci5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWRlY2wubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWxvbmcubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LW9pZC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1oZWFkZXItYm90dG9tLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWhlYWRlci10b3AubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdmFyYmluZC1zZXR1cC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmMtaW50ZXJuYWwtd2FybmluZy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX2VudW0ubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL20yY190YWJsZV9zYXZlX2RlZmF1bHRzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZG94eWdlbi5tMmMsIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmMsIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYywKICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmksIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmksCiAgICAgICBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zdG9yYWdlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhbGlkYXRlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpLAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yZCwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtcmVhZG1lLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3Mtc2V0Lm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLCAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmksIAogICAgICBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy12YXJiaW5kLXZhbGlkYXRlLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtU3RvcmFnZVR5cGUtZGVwZW5kZW5jaWVzLm0yaSwgCiAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtVGVzdEFuZEluY3ItZ2V0Lm0yaSwgbG9jYWwvbWliMmMtdXBkYXRlLAogICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZiwKICAgICAgbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzX2xvY2FsLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5jb2x1bW5fZGVmaW5lcy5jb25mLCBsb2NhbC9taWIyYy5jb2x1bW5fZW51bXMuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLmNvbHVtbl9zdG9yYWdlLmNvbmYsIGxvY2FsL21pYjJjLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mLCBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5pbnRfd2F0Y2guY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgbG9jYWwvbWliMmMubWZkLmNvbmYsIAogICAgICBsb2NhbC9taWIyYy5ub3RpZnkuY29uZiwgbG9jYWwvbWliMmMub2xkLWFwaS5jb25mLCAKICAgICAgbG9jYWwvbWliMmMucGVybC5jb25mLCBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLnJvdy5jb25mLCBsb2NhbC9taWIyYy5zY2FsYXIuY29uZiwgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZiwgbG9jYWwvcGFzc19wZXJzaXN0dGVzdCwgCiAgICAgIGxvY2FsL3Bhc3N0ZXN0LCBsb2NhbC9wYXNzdGVzdC5wbCwgbG9jYWwvc25tcC11Y2Quc2gsIAogICAgICBsb2NhbC9zbm1wY2hlY2suZGVmLCBsb2NhbC9zbm1wY29uZiwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvYXV0aG9wdHMsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2RlYnVnZ2luZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvbWlicywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvb3V0cHV0LCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9zbm1wY29uZi1jb25maWcsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9hY2wsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9iYXNpY19zZXR1cCwgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2V4dGVuZGluZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL21vbml0b3IsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9vcGVyYXRpb24sIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zbm1wY29uZi1jb25maWcsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW0sIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS90cmFwc2lua3MsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvYXV0aGVudGljYXRpb24sIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZywgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9sb2dnaW5nLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3J1bnRpbWUsIAogICAgICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvc25tcGNvbmYtY29uZmlnLCAKICAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3RyYXBoYW5kbGUsIGxvY2FsL3NubXBkdW1wLnBsLCAKICAgICAgbG9jYWwvdGttaWIsIGxvY2FsL3RyYXB0b2VtYWlsLCBsdG1haW4uc2gsIAogICAgICBtNC9hY19hZGRfc2VhcmNoX3BhdGgubTQsIG00L2FjX21zZ19jYWNoZS5tNCwgCiAgICAgIG00L2FjX21zZ19tb2R1bGVfZGJnLm00LCBtNC9hY19wcm9tcHRfdXNlci5tNCwgbTQvbGlidG9vbC5tNCwgCiAgICAgIG00L2x0b3B0aW9ucy5tNCwgbTQvbHRzdWdhci5tNCwgbTQvbHR2ZXJzaW9uLm00LAogICAgICBtNC9sdH5vYnNvbGV0ZS5tNCwgIG00L25ldHNubXBfYXJnLm00LCBtNC9uZXRzbm1wX3NlYXJjaF9saWJzLm00LAogICAgICBtYWtlZGVwZW5kLmluLCAgbWFrZWZpbGVpbmRlcGVuZC5wbCwgbWFrZW5vc3lzZGVwZW5kLnBsLAogICAgICBtYWtldGFyZ2V0LCAgbWFuL01ha2VmaWxlLmluLCBtYW4vYWRkX21pYmRpci4zLAogICAgICBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCAgbWFuL2NvbmZpZ19hcGkuMy5kZWYsCiAgICAgIG1hbi9kZWZhdWx0X3N0b3JlLjMuYm90LCAgbWFuL2RlZmF1bHRfc3RvcmUuMy50b3AsCiAgICAgIG1hbi9lbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCAgbWFuL2ZpeHByb2MuMS5kZWYsCiAgICAgIG1hbi9nZXRfbW9kdWxlX25vZGUuMywgbWFuL2luaXRfbWliLjMsICBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsCiAgICAgIG1hbi9tYWtlX2luZGV4LnBsLCBtYW4vbWFuX3NlY3Rpb25zLnR4dCwgIG1hbi9taWIyYy11cGRhdGUuMS5kZWYsCiAgICAgIG1hbi9taWIyYy4xLmRlZiwgbWFuL21pYjJjLmNvbmYuNS5pbiwgIG1hbi9taWIyYy5leHRyYWN0LnBsLAogICAgICBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZiwgCiAgICAgIG1hbi9uZXQtc25tcC1jcmVhdGUtdjMtdXNlci4xLmRlZiwgCiAgICAgIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIAogICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAKICAgICAgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9sZWFmLjMsIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc2V0X2RhdGEuMywgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCAKICAgICAgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zLCBtYW4vcGR1X2FwaS4zLmRlZiwgbWFuL3ByaW50X2Rlc2NyaXB0aW9uLjMsCiAgICAgICBtYW4vcHJpbnRfbWliLjMsIG1hbi9wcmludF9vYmppZC4zLCBtYW4vcHJpbnRfdmFsdWUuMywgCiAgICAgIG1hbi9wcmludF92YXJpYWJsZS4zLCBtYW4vcmVhZF9hbGxfbWlicy4zLCBtYW4vcmVhZF9taWIuMywgCiAgICAgIG1hbi9yZWFkX21vZHVsZS4zLCBtYW4vcmVhZF9tb2R1bGVfbm9kZS4zLCBtYW4vcmVhZF9vYmppZC4zLCAKICAgICAgbWFuL3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vc2h1dGRvd25fbWliLjMsIG1hbi9zbm1wLmNvbmYuNS5kZWYsIAogICAgICBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9zbm1wX2FsYXJtLjMuZGVmLCAKICAgICAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLCBtYW4vc25tcF9jb25maWcuNS5kZWYsCiAgICAgICBtYW4vc25tcF9lcnJvci4zLCBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIAogICAgICBtYW4vc25tcF9wZXJyb3IuMywgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCAKICAgICAgbWFuL3NubXBfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZiwgCiAgICAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsIAogICAgICBtYW4vc25tcF9zZXNzX2Vycm9yLjMsIG1hbi9zbm1wX3Nlc3NfaW5pdC4zLCBtYW4vc25tcF9zZXNzX29wZW4uMywKICAgICAgIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsIG1hbi9zbm1wX3Nlc3NfcmVhZC4zLCAKICAgICAgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZXNzX3NlbmQuMywgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfc2Vzc2lvbi4zLCBtYW4vc25tcF9zZXNzX3RpbWVvdXQuMywgCiAgICAgIG1hbi9zbm1wX3NldF9taWJfd2FybmluZ3MuMywgbWFuL3NubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMsIAogICAgICBtYW4vc25tcF90aW1lb3V0LjMsIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmLAogICAgICBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsICBtYW4vc25tcGJ1bGt3YWxrLjEuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgICAgbWFuL3NubXBjb25mLjEuZGVmLCAgbWFuL3NubXBkLjguZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgICAgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAgbWFuL3NubXBkLmludGVybmFsLjUuZGVmLAogICAgICBtYW4vc25tcGRlbHRhLjEuZGVmLCBtYW4vc25tcGRmLjEuZGVmLCAgbWFuL3NubXBnZXQuMS5kZWYsCiAgICAgIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgbWFuL3NubXBpbmZvcm0uMSwgIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwKICAgICAgbWFuL3NubXBzZXQuMS5kZWYsIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCAgbWFuL3NubXB0YWJsZS4xLmRlZiwKICAgICAgbWFuL3NubXB0ZXN0LjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgIG1hbi9zbm1wdHJhcC4xLmRlZiwKICAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmLCAgbWFuL3NubXB1c20uMS5kZWYsCiAgICAgIG1hbi9zbm1wdmFjbS4xLmRlZiwgbWFuL3NubXB3YWxrLjEuZGVmLCAgbWFuL3RrbWliLjEuZGVmLAogICAgICBtYW4vdHJhcHRvZW1haWwuMS5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZiwgCiAgICAgIG1hbi92YXJpYWJsZXMuNS5kZWYsIG1pYnMvQUdFTlRYLU1JQi50eHQsIAogICAgICBtaWJzL0RJU01BTi1FVkVOVC1NSUIudHh0LCBtaWJzL0RJU01BTi1FWFBSRVNTSU9OLU1JQi50eHQsIAogICAgICBtaWJzL0RJU01BTi1OU0xPT0tVUC1NSUIudHh0LCBtaWJzL0RJU01BTi1QSU5HLU1JQi50eHQsIAogICAgICBtaWJzL0RJU01BTi1TQ0hFRFVMRS1NSUIudHh0LCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCwgCiAgICAgIG1pYnMvRElTTUFOLVRSQUNFUk9VVEUtTUlCLnR4dCwgbWlicy9FdGhlckxpa2UtTUlCLnR4dCwgCiAgICAgIG1pYnMvSENOVU0tVEMudHh0LCBtaWJzL0hPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIAogICAgICBtaWJzL0hPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dCwgCiAgICAgIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsIAogICAgICBtaWJzL0lBTkEtTEFOR1VBR0UtTUlCLnR4dCwgbWlicy9JQU5BLVJUUFJPVE8tTUlCLnR4dCwgCiAgICAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL0lGLUlOVkVSVEVELVNUQUNLLU1JQi50eHQsIAogICAgICBtaWJzL0lGLU1JQi50eHQsIG1pYnMvSU5FVC1BRERSRVNTLU1JQi50eHQsIAogICAgICBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dCwgbWlicy9JUC1NSUIudHh0LCAKICAgICAgbWlicy9JUFY2LUZMT1ctTEFCRUwtTUlCLnR4dCwgbWlicy9JUFY2LUlDTVAtTUlCLnR4dCwgCiAgICAgIG1pYnMvSVBWNi1NSUIudHh0LCBtaWJzL0lQVjYtVEMudHh0LCBtaWJzL0lQVjYtVENQLU1JQi50eHQsIAogICAgICBtaWJzL0lQVjYtVURQLU1JQi50eHQsIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0LCBtaWJzL01UQS1NSUIudHh0LCAKICAgICAgbWlicy9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5taWIsIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgCiAgICAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dCwgCiAgICAgIG1pYnMvTkVULVNOTVAtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1NT05JVE9SLU1JQi50eHQsIAogICAgICBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1TWVNURU0tTUlCLnR4dCwgCiAgICAgIG1pYnMvTkVULVNOTVAtVEMudHh0LCBtaWJzL05FVC1TTk1QLVZBQ00tTUlCLnR4dCwgCiAgICAgIG1pYnMvTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0LCBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dCwgCiAgICAgIG1pYnMvUkVBRE1FLm1pYnMsIG1pYnMvUkZDLTEyMTUudHh0LCBtaWJzL1JGQzExNTUtU01JLnR4dCwgCiAgICAgIG1pYnMvUkZDMTIxMy1NSUIudHh0LCBtaWJzL1JNT04tTUlCLnR4dCwgbWlicy9TQ1RQLU1JQi50eHQsIAogICAgICBtaWJzL1NNVVgtTUlCLnR4dCwgbWlicy9TTk1QLUNPTU1VTklUWS1NSUIudHh0LCAKICAgICAgbWlicy9TTk1QLUZSQU1FV09SSy1NSUIudHh0LCBtaWJzL1NOTVAtTVBELU1JQi50eHQsIAogICAgICBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0LCAKICAgICAgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0LCBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCAKICAgICAgbWlicy9TTk1QLVVTTS1BRVMtTUlCLnR4dCwgbWlicy9TTk1QLVVTTS1ESC1PQkpFQ1RTLU1JQi50eHQsIAogICAgICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgbWlicy9TTk1QdjItQ09ORi50eHQsIAogICAgICBtaWJzL1NOTVB2Mi1NSUIudHh0LCBtaWJzL1NOTVB2Mi1TTUkudHh0LCBtaWJzL1NOTVB2Mi1UQy50eHQsIAogICAgICBtaWJzL1NOTVB2Mi1UTS50eHQsIG1pYnMvVENQLU1JQi50eHQsIAogICAgICBtaWJzL1RSQU5TUE9SVC1BRERSRVNTLU1JQi50eHQsIG1pYnMvVFVOTkVMLU1JQi50eHQsIAogICAgICBtaWJzL1VDRC1ERU1PLU1JQi5pbmMsIG1pYnMvVUNELURFTU8tTUlCLnR4dCwgCiAgICAgIG1pYnMvVUNELURJU0tJTy1NSUIuaW5jLCBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dCwgCiAgICAgIG1pYnMvVUNELURMTU9ELU1JQi5pbmMsIG1pYnMvVUNELURMTU9ELU1JQi50eHQsIAogICAgICBtaWJzL1VDRC1JUEZJTFRFUi1NSUIuaW5jLCBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0LCAKICAgICAgbWlicy9VQ0QtSVBGV0FDQy1NSUIuaW5jLCBtaWJzL1VDRC1JUEZXQUNDLU1JQi50eHQsIAogICAgICBtaWJzL1VDRC1TTk1QLU1JQi1PTEQudHh0LCBtaWJzL1VDRC1TTk1QLU1JQi5pbmMsIAogICAgICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIG1pYnMvVURQLU1JQi50eHQsIG1pYnMvaWFuYWxpc3QsIAogICAgICBtaWJzL21ha2VodG1sLnBsLCBtaWJzL21pYmZldGNoLCBtaWJzL25vZGVtYXAsIG1pYnMvcmZjbGlzdCwgCiAgICAgIG1pYnMvcmZjbWlicy5kaWZmLCBtaWJzL3NtaXN0cmlwLCBta2luc3RhbGxkaXJzLCAKICAgICAgbmV0LXNubXAtY29uZmlnLmluLCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbiwgb3YvTWFrZWZpbGUuaW4sIAogICAgICBvdi9SRUFETUUsIG92L1VDRC1Db21wdXRlciwgb3YvVUNELWZpZWxkcywgb3YvYml0bWFwcy9VQ0QuMjAubSwgCiAgICAgIG92L2JpdG1hcHMvVUNELjIwLnAsIG92L2JpdG1hcHMvVUNELjI2Lm0sIG92L2JpdG1hcHMvVUNELjI2LnAsIAogICAgICBvdi9iaXRtYXBzL1VDRC4zMi5tLCBvdi9iaXRtYXBzL1VDRC4zMi5wLCBvdi9iaXRtYXBzL1VDRC4zOC5tLCAKICAgICAgb3YvYml0bWFwcy9VQ0QuMzgucCwgb3YvYml0bWFwcy9VQ0QuNDQubSwgb3YvYml0bWFwcy9VQ0QuNDQucCwgCiAgICAgIG92L2JpdG1hcHMvVUNELjUwLm0sIG92L2JpdG1hcHMvVUNELjUwLnAsIG92L2JpdG1hcHMvVUNELmZpZWxkcywgCiAgICAgIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluLCBwZXJsL0FTTi9BU04ucG0sIAogICAgICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvQVNOL0NoYW5nZXMsIHBlcmwvQVNOL01BTklGRVNULCAKICAgICAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvQVNOL3Rlc3QucGwsIHBlcmwvQW55RGF0YV9TTk1QL0NoYW5nZXMsCiAgICAgICBwZXJsL0FueURhdGFfU05NUC9EQkRfQW55RGF0YS5wYXRjaCwgcGVybC9BbnlEYXRhX1NOTVAvRm9ybWF0LnBtLAogICAgICAgcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTCwgcGVybC9BbnlEYXRhX1NOTVAvTUFOSUZFU1QsIAogICAgICBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTCwgcGVybC9BbnlEYXRhX1NOTVAvUkVBRE1FLCAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy9zY2xpLCAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4LCBwZXJsL0FueURhdGFfU05NUC9uZXRzaCwgCiAgICAgIHBlcmwvTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUubWFrZWZpbGVzLCBwZXJsL01ha2VmaWxlLnN1YnMucGwsIAogICAgICBwZXJsL09JRC9DaGFuZ2VzLCBwZXJsL09JRC9NQU5JRkVTVCwgcGVybC9PSUQvTWFrZWZpbGUuUEwsIAogICAgICBwZXJsL09JRC9PSUQucG0sIHBlcmwvT0lEL09JRC54cywgcGVybC9PSUQvUkVBRE1FLCAKICAgICAgcGVybC9PSUQvdGVzdC5wbCwgcGVybC9PSUQvdHlwZW1hcCwgcGVybC9TTk1QL0JVRywgCiAgICAgIHBlcmwvU05NUC9NQU5JRkVTVCwgcGVybC9TTk1QL01BTklGRVNULlNLSVAsCiAgICAgIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtLAogICAgICBwZXJsL1NOTVAvU05NUC54cywgIHBlcmwvU05NUC9UT0RPLCBwZXJsL1NOTVAvZXhhbXBsZXMvYXN5bmMxLnBsLCAKICAgICAgcGVybC9TTk1QL2V4YW1wbGVzL2FzeW5jMi5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL2J1bGt3YWxrLnBsLCAKICAgICAgcGVybC9TTk1QL2V4YW1wbGVzL2lwZm9yd2FyZC5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL21pYnRyZWUucGwsIAogICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvbWlid2Fsay5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGwsIAogICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvdGFibGV3YWxrLnBsLCBwZXJsL1NOTVAvZXhhbXBsZXMvdGVzdGxlYWsucGwsIAogICAgICBwZXJsL1NOTVAvZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsLCBwZXJsL1NOTVAvaGludHMvaXJpeC5wbCwgCiAgICAgIHBlcmwvU05NUC9oaW50cy9zb2xhcmlzLnBsLCBwZXJsL1NOTVAvcGVybHNubXAuaCwgCiAgICAgIHBlcmwvU05NUC90L1JFQURNRSwgcGVybC9TTk1QL3QvYXN5bmMudCwgcGVybC9TTk1QL3QvYnVsa3dhbGsudCwgCiAgICAgIHBlcmwvU05NUC90L2NvbmYudCwgcGVybC9TTk1QL3QvY29uZnRlc3QuY29uZiwgcGVybC9TTk1QL3QvZ2V0LnQsIAogICAgICBwZXJsL1NOTVAvdC9nZXRuZXh0LnQsIHBlcmwvU05NUC90L21pYi50LCBwZXJsL1NOTVAvdC9taWIudHh0LCAKICAgICAgcGVybC9TTk1QL3QvbWlibG9hZC50LCBwZXJsL1NOTVAvdC9ub3RpZnkudCwKICAgICAgcGVybC9TTk1QL3Qvc2Vzc2lvbi50LCAgcGVybC9TTk1QL3Qvc2V0LnQsCiAgICAgIHBlcmwvU05NUC90L3NubXB0ZXN0LmNvbmYsICBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsLAogICAgICBwZXJsL1NOTVAvdHlwZW1hcCwgIHBlcmwvVHJhcFJlY2VpdmVyL0NoYW5nZXMsCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01BTklGRVNULCAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1JFQURNRSwgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC14cy5pbmMsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9mYWxsYmFjay9jb25zdC1jLmluYywgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL2ZhbGxiYWNrL2NvbnN0LXhzLmluYywgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL3Blcmxfc25tcHRyYXBkLmgsIHBlcmwvVHJhcFJlY2VpdmVyL3BwcG9ydC5oLCAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvdC8xLnQsIHBlcmwvVHJhcFJlY2VpdmVyL3R5cGVtYXAsIAogICAgICBwZXJsL2FnZW50L0NoYW5nZXMsIHBlcmwvYWdlbnQvTUFOSUZFU1QsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIAogICAgICBwZXJsL2FnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAKICAgICAgcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9hZ2VudC54cywgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZ2VuLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbCwgCiAgICAgIHBlcmwvYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG0sIHBlcmwvYWdlbnQvdGVzdC5wbCwgCiAgICAgIHBlcmwvYWdlbnQvdHlwZW1hcCwgcGVybC9kZWZhdWx0X3N0b3JlL0NoYW5nZXMsIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTUFOSUZFU1QsIHBlcmwvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9SRUFETUUsIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUueHMsIHBlcmwvZGVmYXVsdF9zdG9yZS9nZW4sIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbCwgcGVybC9kZWZhdWx0X3N0b3JlL3R5cGVtYXAsIAogICAgICBwZXJsL21ha2UtcGVybC1tYWtlZmlsZXMsIHBlcmwvbWFuYWdlci9JTlNUQUxMLCAKICAgICAgcGVybC9tYW5hZ2VyL01ha2VmaWxlLlBMLCBwZXJsL21hbmFnZXIvZGlzcGxheXRhYmxlLnBtLCAKICAgICAgcGVybC9tYW5hZ2VyL2dldFZhbHVlcy5wbSwgcGVybC9tYW5hZ2VyL21hbmFnZXIucG0sIAogICAgICBwZXJsL21hbmFnZXIvc2V0dXBhdXRoLCBwZXJsL21hbmFnZXIvc2V0dXBkYiwgCiAgICAgIHBlcmwvbWFuYWdlci9zZXR1cHVzZXIsIHBlcmwvbWFuYWdlci9zbm1wdG9zcWwsIHB5dGhvbi9MSUNFTlNFLCAKICAgICAgcHl0aG9uL1JFQURNRSwgcHl0aG9uL25ldHNubXAvX19pbml0X18ucHksIAogICAgICBweXRob24vbmV0c25tcC9jbGllbnQucHksIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsIAogICAgICBweXRob24vbmV0c25tcC90ZXN0cy9fX2luaXRfXy5weSwgcHl0aG9uL25ldHNubXAvdGVzdHMvc25tcGQuY29uZiwKICAgICAgIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHksIHB5dGhvbi9zZXR1cC5weSwgcmVtb3ZlLWZpbGVzLCAKICAgICAgc2Vkc2NyaXB0LmluLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgCiAgICAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAKICAgICAgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvY29udGFpbmVyLmMsIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMsIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9kaXJfdXRpbHMuYywKICAgICAgIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywKICAgICAgc25tcGxpYi9nZXRvcHQuYywgIHNubXBsaWIvaW5ldF9udG9wLmMsIHNubXBsaWIvaW5ldF9wdG9uLmMsCiAgICAgIHNubXBsaWIvaW50NjQuYywgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywKICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYywKICAgICAgc25tcGxpYi9tdF9zdXBwb3J0LmMsICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgICAgIHNubXBsaWIvcGtjcy5jLCAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgICAgIHNubXBsaWIvc25tcC10Yy5jLCAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgICAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCAgc25tcGxpYi9zbm1wX2VudW0uYywKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsICBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgICAgIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdHNtLmMsCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbnByaW50Zi5jLAogICAgICBzbm1wbGliL3N0cmxjcHkuYywgIHNubXBsaWIvc3RydG9rX3IuYywgc25tcGxpYi9zdHJ0b2wuYywKICAgICAgc25tcGxpYi9zdHJ0b3VsLmMsICBzbm1wbGliL3N0cnRvdWxsLmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgICAgIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYywgIHNubXBsaWIvdGV4dF91dGlscy5jLAogICAgICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgCiAgICAgIHNubXBsaWIvdWNkX2NvbXBhdC5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi93aW5waXBlLmMsIAogICAgICBzbm1wbGliL3dpbnNlcnZpY2UuYywgc25tcGxpYi93aW5zZXJ2aWNlLm1jLAogICAgICBzbm1wbGliL3dpbnNlcnZpY2UucmMsICBzbm1wbGliL3dpbnNlcnZpY2VyYy5yYywgc3RhbXAtaCwKICAgICAgc3RhbXAtaC5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbiwgIHRlc3RpbmcvUkVBRE1FLAogICAgICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL1QuYywgdGVzdGluZy9UMi5zaCwgCiAgICAgIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LCAKICAgICAgdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLCB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEtZGVzLCAKICAgICAgdGVzdGluZy9kYXRhLmt1bC1tZDUsIHRlc3RpbmcvZGF0YS5rdWwtc2hhMSwgdGVzdGluZy9ldGltZXRlc3QuYywgCiAgICAgIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLCB0ZXN0aW5nL2V2YWxfb25lc2NyaXB0LnNoLCAKICAgICAgdGVzdGluZy9ldmFsX3N1aXRlLnNoLCB0ZXN0aW5nL2V2YWxfdGVzdGxpc3QsIAogICAgICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jLAogICAgICB0ZXN0aW5nL21pc2N0ZXN0LmMsICB0ZXN0aW5nL3JmYzEyMTMvUkVBRE1FLCB0ZXN0aW5nL3JmYzEyMTMvcnVuLCAKICAgICAgdGVzdGluZy9yZmMxMjEzL3NubXBmdW4uc2gsIHRlc3RpbmcvcmZjMTIxMy90ZXN0X2Z1biwgCiAgICAgIHRlc3RpbmcvcmZjMTIxMy90ZXN0bWliMS5zaCwgdGVzdGluZy9yZmMxMjEzL3Rlc3RtaWIyLnNoLCAKICAgICAgdGVzdGluZy9yZmMxMjEzL3Rlc3RtaWIzLnNoLCB0ZXN0aW5nL3NjYXBpdGVzdC5jLCAKICAgICAgdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaCwgdGVzdGluZy90ZXN0X2t1bC5zaCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9TdjFjb25maWcsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2MmNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCAKICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdhZ2VudCwgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWdiYXNlLCAKICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZCwgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLCAKICAgICAgdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZywgdGVzdGluZy90ZXN0cy9TdmFueWNvbmZpZywgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAwMGNvbmZpZ3VyZSwgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsIHRlc3RpbmcvdGVzdHMvVDAyMjBzbm1wdjNidWxrZ2V0LAogICAgICAgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1hdXRoLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtcHJpdiwgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTd0cmFwZGF1dGh0ZXN0LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDIsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QzLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwKICAgICAgdGVzdGluZy90ZXN0cy9UMDU5dHJhcGR0cmFwaGFuZGxlLCAgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmwsICB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZCwKICAgICAgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAsICB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMWFnZW50eHNldCwgIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsLAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsICB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMnNubXB2M3ZhY21nZXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MnNubXB2M3ZhY21nZXRmYWlsLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHUsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcCwgdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbCwgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCAKICAgICAgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCAKICAgICAgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXMsIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LmNlcnQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2LCB3aW4zMi9Db25maWd1cmUsIAogICAgICB3aW4zMi9FWEFNUExFLmNvbmYud2luMzIsIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIAogICAgICB3aW4zMi9NYWtlZmlsZS5pbiwgd2luMzIvTWdtdEFwaS13aW5FeHRETEwuaCwgCiAgICAgIHdpbjMyL1NubXAtd2luRXh0RExMLmgsIHdpbjMyL2FnZW50X21vZHVsZV9kb3RfY29uZi5oLCAKICAgICAgd2luMzIvYWdlbnRfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL2FnZW50X21vZHVsZV9pbml0cy5oLCAKICAgICAgd2luMzIvYnVpbGQuYmF0LCB3aW4zMi9idWlsZC5wbCwgd2luMzIvY29uZmlnLmgsIAogICAgICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIAogICAgICB3aW4zMi9kaXN0L1JFQURNRS50eHQsIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LmJhdCwgCiAgICAgIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0RldmVsb3Blcl9GQVEuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvRkFRLmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0hlbHBfQ2F2ZWF0cy5odG1sLCAKICAgICAgd2luMzIvZGlzdC9odG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvTmV0LVNOTVAuaGhjLAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL05ldC1TTk1QLmhocCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvc25tcC5jb25mLndpbjMyLmh0bWwsIAogICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL3NubXBkLmNvbmYud2luMzIuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvc25tcHRyYXBkLmNvbmYud2luMzIuaHRtbCwgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL0FkZDJQYXRoLm5zaSwgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL1NldEVuVmFyLm5zaSwgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaSwgd2luMzIvZGlzdC9zY3JpcHRzL2NyZWF0ZS10b2MsIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvbWFuZGlyMmh0bWwsIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvbmV0LXNubXAtcGVybC10ZXN0LnBsLCAKICAgICAgd2luMzIvZGlzdC9zY3JpcHRzL3BvZGRpcjJodG1sLCB3aW4zMi9kaXN0L3NjcmlwdHMvcmVhZG1lMmh0bWwsIAogICAgICB3aW4zMi9kaXN0L3NjcmlwdHMvdHh0Mmh0bWwsIHdpbjMyL2Rpc3QvdG9zb2NrMS5zaCwgCiAgICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsIAogICAgICB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdCwgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kZWYsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsICB3aW4zMi9sb2NhbC9NYWtlZmlsZS5pbiwKICAgICAgd2luMzIvbG9jYWwvbWliMmMuYmF0LCAgd2luMzIvbG9jYWwvc25tcGNvbmYuYmF0LAogICAgICB3aW4zMi9sb2NhbC90cmFwdG9lbWFpbC5iYXQsICB3aW4zMi9taWJfbW9kdWxlX2RvdF9jb25mLmgsCiAgICAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwKICAgICAgd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvYWdlbnRfbW9kdWxlX2NvbmZpZy5oLCAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICAgd2luMzIvbm1ha2VwZXJsLmJhdCwgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsIAogICAgICB3aW4zMi9zbm1wc21faW5pdC5oLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAKICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzJkbGwuZHN3OgoKIEZpeCA1LjUueCBicmFuY2ggc3RydWN0dXJlIChwYXJ0IDIpIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDE5OTY1IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYzogcHJvcGVyIHByb2Nlc3MKCiBzdGF0dXMgdmFsdWVzIGZvciBuZXRic2QgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jOiBwcm9wZXIgcHJvY2VzcwoKIHN0YXR1cyB2YWx1ZXMgZm9yIG5ldGJzZCBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTYyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc2NhcGkuYzogY29uZGl0aW9uYWxpemUgdmFyaWFibGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDE5OTYxIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvc2NhcGkuYzogY29uZGl0aW9uYWxpemUgdmFyaWFibGUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6IHRjcC1taWIvdWRwLW1pYgoKIHN1cHBvcnQgZm9yIHRoZSAqYnNkcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk2MCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaDogdGNwLW1pYi91ZHAtbWliCgogc3VwcG9ydCBmb3IgdGhlICpic2RzIGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgYzogdGNwLW1pYi91ZHAtbWliIHN1cHBvcnQgZm9yIHRoZSAqYnNkcyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTkgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJLmgsIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9vcGVuYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X25ldGJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfb3BlbmJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLgogICAgICAgYzogdGNwLW1pYi91ZHAtbWliIHN1cHBvcnQgZm9yIHRoZSAqYnNkcyBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1OSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2EKICAgICAgIGNjZXNzLmM6IFByb3Blcmx5IGVuZCBkZWJ1ZyBtZXNzYWdlIHdpdGggbmV3bGluZSBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hCiAgICAgICBjY2Vzcy5jOiBQcm9wZXJseSBlbmQgZGVidWcgbWVzc2FnZSB3aXRoIG5ld2xpbmUgZ2l0LXN2bi1pZDoKCgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMTk5NTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6IHJlbW92ZSB2YXIKCiB0aGF0IHNoYWRvd3MgdGhlIHVzZWZ1bCBvbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMTk5NTcgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTAyLTIxICBOaWVscyBCYWdnZXNlbiA8bmJhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6IHJlbW92ZSB2YXIKCiB0aGF0IHNoYWRvd3MgdGhlIHVzZWZ1bCBvbmUgZ2l0LXN2bi1pZDoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1NyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6IG1ham9yIGZpZGRsaW5nIHRvIGdldCB0aGluZ3Mgd29ya2luZwoKIGZvciBvcGVuYnNkIHRvby4gVGhpcyBzaG91bGQgcmVhbGx5IGJlIHJld29ya2VkIHRvIHVzZSB0aGUKIHRjcC1taWIvdWRwLW1pYi9kYXRhX2FjY2VzcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1NiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6IG1ham9yIGZpZGRsaW5nIHRvIGdldCB0aGluZ3Mgd29ya2luZwoKIGZvciBvcGVuYnNkIHRvby4gVGhpcyBzaG91bGQgcmVhbGx5IGJlIHJld29ya2VkIHRvIHVzZSB0aGUKIHRjcC1taWIvdWRwLW1pYi9kYXRhX2FjY2VzcyBnaXQtc3ZuLWlkOgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDE5OTU2IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wMi0yMSAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOiBmaXggdGNwIHN0YXRlcyBmb3IgZHJhZ29uZmx5YnNkCiAgICAgIGdpdC1zdm4taWQ6CgoKIGZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AxOTk1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzogZml4IHRjcCBzdGF0ZXMgZm9yIGRyYWdvbmZseWJzZAogICAgICBnaXQtc3ZuLWlkOgoKCiBmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AxOTk1NSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDItMjEgIE5pZWxzIEJhZ2dlc2VuIDxuYmFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaDogZW5hYmxlIG5ldyB0Y3AvdWRwIG1pYnMgZm9yIHNvbGFyaXMKICAgICAgZ2l0LXN2bi1pZDoKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNyAtPiBWNS43LjEucHJlMQoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IGZpeCBDKysgY29tbWVudHMKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLAogICAgICAgcGVybC9PSUQvT0lELnBtLCBwZXJsL1NOTVAvU05NUC5wbSwgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sIAogICAgICBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOiBWZXJzaW9uIG51bWJlciB1cGRhdGU6CgogNS43LjEucHJlMQoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLnRvcDogdmVyc2lvbiB1cGRhdGUgZm9yIDUuNy4xLnByZTEKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgY2Y0Y2NlNGMxODljZjQ3ZjRjNDg5ZGI0M2I3ZmE1MTBmODkwNmExYSBNZXJnZTogZGY5MWE5ZgoKIDkzZTk3ZGMgQXV0aG9yOiBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uCiBBdWcgOCAyMjoxNToyOCAyMDExICswMTAwCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTYtcGF0Y2hlcycgaW50bwoKIFY1LTYtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCAKICAgICAgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjogRGVmaW5lCgogX0JJTkRfVE9fQ1VSUkVOVF9WQ0xJQlNfVkVSU0lPTiB0b2tlbiAoYXMgcGVyIEFsZXgnIGJ1aWxkCiBpbnN0cnVjdGlvbnMpCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZGYxNmRjMjIyMWU5OTNkZDNjNjY2NTBkNWU4NzI1NzdmZmU2YzAxYiBNZXJnZTogNzE0YmM4MgoKIDhlNWEyOGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBBdWcgOCAxMzo1Njo0MyAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgZmZhMDViMDUxYWMzZTJiMTk3MTk1YTk5ODljYzdhOTFmZThkOTI4MiBBdXRob3I6IFdlcwoKIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEF1ZyA4IDEzOjU1OjM4CiAyMDExIC0wNzAwCgoyMDExLTA4LTA4ICBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+CgogICAqIDogY29tbWl0IDcxNGJjODJmYTAxZTIxYTM2NTU4MjQ5NjNmYTU0ZTliODA0MmZmYjAgTWVyZ2U6IDZmZThmZTUKCiAzZWYxZGI1IEF1dGhvcjogRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPiBEYXRlOiAgIE1vbgogQXVnIDggMjE6MjE6NDYgMjAxMSArMDEwMAoKMjAxMS0wOC0wOCAgRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAbGl2ZXJwb29sLmFjLnVrPgoKICAgKiA6IGNvbW1pdCBiNDUxNjA3ZGNhMDE1YzExMWU5NmZkZmViMmRkYjA2NjFmYjRmNzI0IEF1dGhvcjogRGF2ZQoKIFNoaWVsZCA8RC5ULlNoaWVsZEBsaXZlcnBvb2wuYWMudWs+IERhdGU6ICAgTW9uIEF1ZyA4IDIxOjIwOjMyIDIwMTEKICswMTAwCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNmZlOGZlNTI5NGE0NWJjN2U0ZWEzNzUxYTFhZDdhYTQ3YjVjYWJiMiBNZXJnZTogMzY0ZjhmZgoKIGY2OWFiZTMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnCiA4IDIyOjAyOjM4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBjOTQ4MTMwNDRhNGM0YTYwOGU5OGU4MDIyMzA3NWM2ZmFmMDRlZTExIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBNb24gQXVnIDggMjE6NTY6MTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDM2NGY4ZmZhZWI5MGI0ZWIwMTY1ZmM4NTU2ODhjZDA2MjY2MzI3OTQgTWVyZ2U6IDMyODcyOTUKCiA3YWJiOTI2IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTE6MjQ6MjYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTYtcGF0Y2hlcycgaW50bwoKIFY1LTYtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZGlzcGxheSB0aGUgYnJhbmNoIHdlJ2xsIGNvbW1pdCB0bwoKCjIwMTEtMDgtMDggIFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzM4NjYzMzoKCiBmcm9tIHd1bGYyMDAxOiBmaXggaW50ZWdlciBvdmVyZmxvdyBpbiBkaXNrIHBlcmNlbnQgY2FsY3VsYXRpb25zIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDg0YTc3NWQwNTU3ZmVhOTc1NzBlNDE3MTVhMzE2NDk3MGI0YzAzYTIgTWVyZ2U6IDZmZmYxYzEKCiBkMzczYzRmIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZwogOCAyMDoxMjozMiAyMDExICswMjAwCgoyMDExLTA4LTA4ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzODcxMzk6IGZyb20KCiB5YWJlcmF1bmV5YTogQXZvaWQgc2VnZmF1bHQgaWYgdHJhcHNlc3MgdHJhbnNwb3J0IGVsZW1lbnQgY2FudCBiZQogcGFyc2VkIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbnNzZnBhdGNoYXBwbHk6IHNwbGl0IHRoZQoKIGRpc3BsYXllZCBnaXQgY29tbWl0IGNvbW1hbmQgaW50byBtdWx0aXBsZSBzZWdtZW50cwoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6IENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMzg2OTYxOgoKIE1ha2UgU05NUCBHRVQgd29yayBpbiBhbiBBZ2VudFggc3ViYWdlbnQgaWYgd3JpdGUgc3VwcG9ydCBpcwogZGlzYWJsZWQgdmlhIE5FVFNOTVBfTk9fV1JJVEVfU1VQUE9SVCAoTWFyayBSdXNrKS4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL21pYi5jOiBDSEFOR0VTOiBzbm1wbGliOiBGaXggYSBjcmFzaCB0aGF0IGNvdWxkIGJlCgogdHJpZ2dlcmVkIGJ5IGNhbGxpbmcgX21pYmluZGV4X2FkZCgpIHdpdGggdGhlIHNlY29uZCBhcmd1bWVudCBub3QKIGVxdWFsIHRvIC0xLgoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDZmZmYxYzFhZTUxYjA2YzlkODBmYWYxNTM3M2E5NjNkMTczZjE0ZTggTWVyZ2U6IDgzN2M1MmUKCiA4Y2M5MDA0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTA6NTg6NTkgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDhjYTdmZjFlNjkyY2FlYzQxODZiNzg4YzlhZTJkMjdiZTIxMzI5MGYgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIE1vbiBBdWcgOCAxMDozMzo1NgogMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGI4ZjUyOWNiYTI3YzAxMTRiNGNiNzM0MGNmZDQ0OTUwNGZhMDc1MDYgTWVyZ2U6IDA4MjJmMmQKCiA1NTZlOTM4IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBNb24gQXVnIDggMTA6MDU6MzYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZml4IGZ1bmN0aW9uIG5hbWUgdHlwbwoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyOTg4MmEwNzhhOTU5YTBmNzhiMDNlMDE5NjhmMWQxN2I3ZjZhMjk5IE1lcmdlOiA1ZTliZDJmCgogMDQwOWMwYSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogTW9uIEF1ZyA4IDEwOjAzOjM0IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZSBvZiBwdWxsL3B1c2gKCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBtYWtlIG5zcHVsbC9uc3B1c2ggY2hlY2sgZm9yIGEKCiBjbGVhbiByZXBvCgoyMDExLTA4LTA4ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBuZXcgZnVuY3Rpb24gIm5zbWFrZWFsbCIgdG8gdGVzdAoKIGJ1aWxkaW5nIG9uIGV2ZXJ5IGJyYW5jaAoKMjAxMS0wOC0wOCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogZGVmYXVsdCB0byBtZXJnZQoKCjIwMTEtMDgtMDggIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IE1lcmdlIHJlbW90ZS10cmFja2luZyBicmFuY2ggJ29yaWdpbi9WNS03LXBhdGNoZXMnIGludG8KCiBWNS03LXBhdGNoZXMKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDogQ0hBTkdFUzogV2luZG93czogQXZvaWQgdGhhdCBpZgoKIHRoZSBOZXQtU05NUCBQZXJsIG1vZHVsZXMgaGF2ZSBiZWVuIGJ1aWx0IHdpdGggYW5vdGhlciB2ZXJzaW9uIG9mCiBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyB0aGFuIEFjdGl2ZVBlcmwgdGhhdCB1c2luZyBvbmUgb2YgdGhlc2UgUGVybAogbW9kdWxlcyB0cmlnZ2VycyBhICJGcmVlIHRvIHdyb25nIHBvb2wiIGNyYXNoLiBUaGlzIHJlZ3Jlc3Npb24gd2FzCiBjYXVzZWQgYnkgY29tbWl0IDNiMTRjNTljZjgyNzhkNDEwMjA3ZmY0MmRlYmRhMjYzNjQyNmE0NjggKHRoZQogbmV0c25tcF9mcmVlKCkgaW50byBTTk1QX0ZSRUUoKSBjaGFuZ2VzIGluIHRoZSAqLnhzIGZpbGVzKS4KCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBlMTA5NTM5OTMwNzAzY2IzMDUyZDUyNDFiMThhYzZmYzA2MmZhYWNhIE1lcmdlOiAwYzliNmNiCgogZTQ2YjE3MCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMTg6MzQ6MTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvbWliLmM6IENIQU5HRVM6IHNubXBsaWI6IEZpeCBhIGNyYXNoIHRoYXQgY291bGQgYmUKCiB0cmlnZ2VyZWQgYnkgY2FsbGluZyBfbWliaW5kZXhfYWRkKCkgd2l0aCB0aGUgc2Vjb25kIGFyZ3VtZW50IG5vdAogZXF1YWwgdG8gLTEuCgoyMDExLTA4LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgN2Y0MmQwZDkzMzIwNDg0MTUyMjcxNDI3Y2M5ODA4Y2JkYTQ5YmJkMCBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyA4IDA5OjUwOjUxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAwYzliNmNiZTlkYmUyZWM1MjE3YTk1YjY3ODFmZDdkYzFmNmViZGE3IE1lcmdlOiBmYTZjZWY1CgogOTYzMzIwZiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcKIDggMTg6MTQ6MzYgMjAxMSArMDIwMAoKMjAxMS0wOC0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGEzYjg2NTRhMjMyYzU2M2JjOTdjYzk5MjVjZDk4NTkwYTMwYzViYzUgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIE1vbiBBdWcgOCAxNzoyNDoxOCAyMDExICswMjAwCgoyMDExLTA4LTA3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZmE2Y2VmNWNhOTFkZjNhMGIwMzQ1NWI2ODU1OWQyYmVlMjQ4MTAxYyBNZXJnZTogZjVmZTUzNgoKIDhhZGQwZGEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnCiA3IDEwOjE4OjU0IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBhMGRkM2NhZjI1OTI2ZTQzNDY1NzE4YmY0MTdhNDY0YzJmYjM2MzY2IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gQXVnIDcgMTA6MTc6MDEgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6IDMyIGlzIHRvbyBsaW1pdGVkIGZvcgoKIGJpZ2dlciB0YWJsZXM7IGluY3JlYXNlIHRoZSBtYXggbXNnIGNvdW50IHRvIDEyOAoKMjAxMS0wOC0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogbWFrZSByb2xsdXAgYW5kIHN5bmMgc3VwcG9ydAoKIC0tcmViYXNlIGFuZCBjaGFuZ2UgdGhlIGRlZmF1bHQgYmFjayB0byBtZXJnZQoKMjAxMS0wOC0wNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIFJFQURNRS53aW4zMjogQ0hBTkdFUzogV2luMzI6IERvY3VtZW50ZWQgaG93IHRvIHVzZSBidWlsZC5iYXQgd2l0aAoKIE9wZW5TU0wgZW5hYmxlZAoKMjAxMS0wNy0xNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIFJFQURNRS53aW4zMjogQ0hBTkdFUzogV2luZG93czogUmVtb3ZlIG91dGRhdGVkIGluc3RydWN0aW9ucyBhYm91dAoKIGVkaXRpbmcgd2luMzJcbGlic25tcF9kbGxcbGlic25tcC5kZWYgZnJvbSBSRUFETUUud2luMzIKCjIwMTEtMDctMTUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBSRUFETUUud2luMzI6IENIQU5HRVM6IFdpbjMyOiBEb2N1bWVudCBob3cgdG8gYnVpbGQgNjQtYml0CgogZXhlY3V0YWJsZXMgZm9yIHRoZSB4NjQvYW1kNjQgYXJjaGl0ZWN0dXJlCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZjVmZTUzNmU4ZmQ2YzQ4ZmUyNDNkZWNkMzFmYWM5Y2YxYzkyZjRjYyBNZXJnZTogNzg1MGVhMQoKIDgwOTI4YTggQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDE1OjEzOjI3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4MDkyOGE4OTA5Y2ZhYjM3ZjAxYjM5YTA3MWEzZThhZDg1OTU2MjIyIE1lcmdlOiBmMTZhMDk0CgogMGRiYzg2OSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcKIDUgMTM6NTc6MzAgMjAxMSArMDIwMAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBkYmM4NjlmZWMwN2Q4ZTkwZGJkMWM5NTQ5M2VlN2NiYzYyM2M5NWMgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIEZyaSBBdWcgNSAxMjo0MDozMSAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogQWRkCgogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUuZGVmIGFuZCBwZXJsL1NOTVAvdAoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDg2YzFlMmI5Njc5ZmVjMmNkNzk5YmE3NjAwNWMzZDYwZTlkNDc2MzQgTWVyZ2U6IGJjZDg2MzUKCiBmMTZhMDk0IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZwogNSAxMjoyMDo1MCAyMDExICswMjAwCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMmY4ZDRmNTc5NmNiYzFjN2U5NjdhY2RhYTgwMTliMjRmMTUyMGEzNiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEF1ZyA1IDEyOjAyOjUxIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcyAtIHJldmVydCBjb21taXQKCiBkMmM0NzY4YmQyZWZiNDg2NjQ0MzRhODMxNDI1YzJkZGE4NWQ3MTMzIChDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSAogMzM2MjIzMzogZnJvbSB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUKIG5vaXNlKS4KCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oOiAKCiBVbmJyZWFrIHRoZSBWNS00LXBhdGNoZXMgYnJhbmNoIC0gd2FzIGJyb2tlbiBieSBjb21taXQKIGJmNzE3OGIwYjIyNTg3ZDQzZDFhODBjMjY5Y2QyMTZiZDU5MzAyMTQgKGFnZW50OiBjaGFuZ2UgdHlwZSBvZgogc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nKQoKMjAxMS0wOC0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6IFVuYnJlYWsgdGhlIFY1LTQtcGF0Y2hlcwoKIGJyYW5jaCAtIHdhcyBicm9rZW4gYnkgY29tbWl0CiAwZTY4NDJmZTA4MGNlYzg1M2IwOGNkMjMyMzAxNWFiYWJjMzgxY2UxIChDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENICiAzMzgzNDQxOiBmcm9tIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YKIGZyZWVkIG1lbW9yeSkuCgoyMDExLTA4LTA1ICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogTkVXUzogbWlub3IgTkVXUyBwb2xpc2gKCgoyMDExLTA4LTA1ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYmNkODYzNTA3MTM4MjI5NjNkMzc2ZWZmNTgyYTkyZjQzZTQyNmQ2YyBNZXJnZTogOWM4MTBhMwoKIDdhMjBmNzEgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnCiA1IDEwOjI4OjU1IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAzYWE5NDlmYmRmYzFhOTRhODM0MGFkOGJhZjhiMzE0NzU2YTBiYjlkIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgQXVnIDUgMTA6MjY6MTUgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDljODEwYTNiMzdiNjg1NzNjNDAzMzdlMjQ2ZTJmYWYyOTliNzdkMzEgTWVyZ2U6IDcxY2IyZTgKCiA2MTBkNjNmIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMTA6NDI6MDggMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDk0MzkzMGUxZTEyNDM4NWZkOTQ3MzhiNmRjZGEzN2QyOWRjN2FjN2YgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFRodSBBdWcgNCAxMDo0MTo0MQogMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTQtcGF0Y2hlcycgaW50bwoKIFY1LTQtcGF0Y2hlcwoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDRlZGNiODhkYWU4YjJlNTlkYzY4M2U4MGQ0MTRmYTdlY2VjMzY4ODUgTWVyZ2U6IDY1ZjNlZWYKCiAyZGQ5ZWQwIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMTA6MjQ6MTEgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogTWVyZ2UgcmVtb3RlLXRyYWNraW5nIGJyYW5jaCAnb3JpZ2luL1Y1LTUtcGF0Y2hlcycgaW50bwoKIFY1LTUtcGF0Y2hlcwoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGJjNWNhMDNhMDRhYjE5YzYzNGEzNGQwNjBiMGIxNmI3NDg0Y2I1MjAgTWVyZ2U6IDg4ZmRkYjcKCiA5MGMwZTc1IEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAxOToxMzowNyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYzogc25tcHVzbTogRml4IHJlY2VudGx5CgogaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncwoKMjAxMS0wOC0wNCAgU3R1YXJ0IEhlbmRlcnNvbiA8dDBqdzJmdTBrbWdAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOiBDSEFOR0VTOiBvcGVuYnNkOgoKIFBBVENIIDMzNTc5MzI6IGZyb20gdDBqdzJmdTBrbWc6IENsZWFuaW5nIGluIG1lbW9yeV9uZXRic2QuYyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFZsYWRpbWlyIEtvbmRyYXRpZXYgPHd1bGYyMDAxQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYzogQ0hBTkdFUzogYWdlbnQ6CgogUEFUQ0ggMzM4NjE0NzogZnJvbSB3dWxmMjAwMTogZml4IFVDRC1TTk1QLU1JQjo6ZHNrVXNlZCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0NzNkN2U1Y2Q0ZDQxMWJiYTIwZWI4NTM1OWQ4NzI4MDYzMzAxY2JkIE1lcmdlOiBhNGU4YjYyCgogODhmZGRiNyBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA5OjI4OjIyIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAyMTAxYmIyZDdhZDZkYjAzOGM3NTVhYTkxOTNjOGFjZTBkYmQ0ZjU4IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgQXVnIDQgMDk6Mjg6MDYKIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAuZ2l0aWdub3JlOiBpZ25vcmUgKi5vcmlnIGFuZCAqLnJlagoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGhlbHAgb3V0cHV0IGRlc2NyaWJlcyByZWJhc2UgdnMKCiBtZXJnZSBiZXR0ZXIKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmMTI2YTE3YzZhMzA2MzQ1NWE1MTE5NDBiMDIzMDQ3YWJkOWI0OGVlIE1lcmdlOiBhZDc2NWY0CgogNzdhNDc4NCBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA5OjI1OjE2IDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA0NTJlMTcwN2YyMDllYzQ1ZTdjN2YyYTMwNDBlZjU5NWZiOWQxYWY2IE1lcmdlOiBkYzc1NWE2CgogYjM3MmU1YSBBdXRob3I6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogVGh1IEF1ZyA0IDA5OjI1OjAzIDIwMTEgLTA3MDAKCjIwMTEtMDgtMDQgIFN0dWFydCBIZW5kZXJzb24gPHQwancyZnUwa21nQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2Q0LmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkNS5oOiBDSEFOR0VTOiBvcGVuYnNkOiBQQVRDSAogICAgICAzMzU3OTI3OgoKIGZyb20gdDBqdzJmdTBrbWc6IFJlY29nbmlzZSBvcGVuYnNkNSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGZpeCB3aGVyZSBhcmd1bWVudHMgYXJlIHNldAoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHNwbGl0IG5zc2ZwYXRjaGFwcGx5IGludG8gdHdvCgogcGFydHM6IGFwcGx5IGFuZCBjb21taXRpbmcKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHBhdGNoIHVzaW5nIC1OCgoKMjAxMS0wOC0wNCAgRGF2aWQgQXJub2xkIDxkamFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsIG1hbi9lbmNvZGVfa2V5Y2hhbmdlLjEuZGVmLCAKICAgICAgbWFuL2ZpeHByb2MuMS5kZWYsIG1hbi9taWIyYy5jb25mLjUuaW4sIG1hbi9uZXQtc25tcC1jb25maWcuMS5kZWYsCiAgICAgICBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIAogICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGJ1bGtnZXQuMS5kZWYsCiAgICAgIG1hbi9zbm1wYnVsa3dhbGsuMS5kZWYsICBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBjb25mLjEuZGVmLAogICAgICBtYW4vc25tcGQuOC5kZWYsICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAKICAgICAgbWFuL3NubXBkZWx0YS4xLmRlZiwgbWFuL3NubXBkZi4xLmRlZiwgbWFuL3NubXBnZXQuMS5kZWYsIAogICAgICBtYW4vc25tcGdldG5leHQuMS5kZWYsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwgbWFuL3NubXBzZXQuMS5kZWYsIAogICAgICBtYW4vc25tcHN0YXR1cy4xLmRlZiwgbWFuL3NubXB0YWJsZS4xLmRlZiwgbWFuL3NubXB0ZXN0LjEuZGVmLCAKICAgICAgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsIG1hbi9zbm1wdHJhcC4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwgCiAgICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgbWFuL3NubXB1c20uMS5kZWYsIG1hbi9zbm1wdmFjbS4xLmRlZiwgCiAgICAgIG1hbi9zbm1wd2Fsay4xLmRlZjogQ0hBTkdFUzogbWFuOiBQQVRDSCAzMzEyODYxOiBmcm9tIGRqYTogTWFuCiAgICAgIHBhZ2VzCgogaHlwaGVuLXZzLW1pbnVzIGNsZWFudXAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IERldGVjdCAoYW5kIHJlamVjdCkgT3BlblNTTAoKIDEuMC4wCgoyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IENvbW1hbmQtbGluZSBvcHRpb25zIGZvciBzaWxlbnQKCiBpbnN0YWxsCgoyMDExLTA4LTA0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6IEVuc3VyZSBXaW5kb3dzIHBhY2thZ2UKCiB1bmluc3RhbGxzIGNvbXBsZXRlbHkuCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgODFjNjNmYjVjNWU0YWJiOWMyOWFjYTg5YmY5ZDY5NDQxMDA4NmU5NyBNZXJnZTogNGE2OTIwYQoKIGRjNzU1YTYgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBBdWcgNCAwODozMzozNCAyMDExIC0wNzAwCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOiBhZGRlZCBzcGFjaW5nIHRvIG1hdGNoIHRoZSBsYXRlciBicmFuY2hlcwoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IG1hbnVhbCBtZXJnZQoKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6IHJlbW92ZWQgYWNjaWRlbnRpYWxseSBkdXBsaWNhdGVkIGNvZGUKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2UKCgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBtYW51YWwgbWVyZ2UKCgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3BhcnNlLmM6IENIQU5HRVM6IGxpYm5ldHNubXA6IFBBVENIIDMzNjIyMzM6IGZyb20KCiB5YWJlcmF1bmV5YTogTXV0ZSB1bm5lY2Vzc2FyeSBjYW5ub3QgZmluZCBtb2R1bGUgbm9pc2UgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF92YXJzLmMsIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMwODoKICAgICAgZnJvbQoKIHlhYmVyYXVuZXlhOiBGaXggY29tcGlsYXRpb24gb24gRnJlZUJTRCA5Lnggd2l0aCByZWNlbnQgaGVhZGVyCiBzaHVmZmxpbmcgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhbGxvdyBuc3JvbGx1cCB0byB0YWtlIGEgLS1tZXJnZQoKIGZsYWcgZm9yIG1lcmdpbmcgaW5zdGVhZCBvZiByZWJhc2luZwoKMjAxMS0wOC0wNCAgU2FjaGluIFN1cmVuZHJhbiA8c2FjaGluc3VyZW5kcmFuQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYywgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOiBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIIDMzODM0NDE6IGZyb20KCiBzYWNoaW5zdXJlbmRyYW46IEZpeCBjcmFzaCBvbiA1LjQuNCBkdWUgdG8gYWNjZXNzIG9mIGZyZWVkIG1lbW9yeSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIE1ha2VmaWxlLmluOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzI4OiBmcm9tIHlhYmVyYXVuZXlhOgoKIEFkZCBGcmVlQlNEIDkueCB0byBzdXBwb3J0ZWQgT1NlcyBsaXN0IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLCAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6IENIQU5HRVM6IGZyZWVic2Q6IFBBVENIIDMzNjMzMDg6CiAgICAgIGZyb20KCiB5YWJlcmF1bmV5YTogRml4IGNvbXBpbGF0aW9uIG9uIEZyZWVCU0QgOS54IHdpdGggcmVjZW50IGhlYWRlcgogc2h1ZmZsaW5nIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBNYWtlZmlsZS5pbjogQ0hBTkdFUzogZnJlZWJzZDogUEFUQ0ggMzM2MzMyODogZnJvbSB5YWJlcmF1bmV5YToKCiBBZGQgRnJlZUJTRCA5LnggdG8gc3VwcG9ydGVkIE9TZXMgbGlzdCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIHNubXBsaWIvcGFyc2UuYzogQ0hBTkdFUzogbGlibmV0c25tcDogUEFUQ0ggMzM2MjIzMzogZnJvbQoKIHlhYmVyYXVuZXlhOiBNdXRlIHVubmVjZXNzYXJ5IGNhbm5vdCBmaW5kIG1vZHVsZSBub2lzZSBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOiBDSEFOR0VTOiBmcmVlYnNkOiBQQVRDSCAzMzYzMzA4OgogICAgICBmcm9tCgogeWFiZXJhdW5leWE6IEZpeCBjb21waWxhdGlvbiBvbiBGcmVlQlNEIDkueCB3aXRoIHJlY2VudCBoZWFkZXIKIHNodWZmbGluZyBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFsbG93IG5zcm9sbHVwIHRvIHRha2UgYSAtLW1lcmdlCgogZmxhZyBmb3IgbWVyZ2luZyBpbnN0ZWFkIG9mIHJlYmFzaW5nCgoyMDExLTA4LTA0ICBTYWNoaW4gU3VyZW5kcmFuIDxzYWNoaW5zdXJlbmRyYW5AdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6IENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0ggMzM4MzQ0MTogZnJvbQoKIHNhY2hpbnN1cmVuZHJhbjogRml4IGNyYXNoIG9uIDUuNC40IGR1ZSB0byBhY2Nlc3Mgb2YgZnJlZWQgbWVtb3J5IFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBsaWJuZXRzbm1wOiBQQVRDSCAzMzYyMjMzOiBmcm9tCgogeWFiZXJhdW5leWE6IE11dGUgdW5uZWNlc3NhcnkgY2Fubm90IGZpbmQgbW9kdWxlIG5vaXNlIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWxsb3cgbnNyb2xsdXAgdG8gdGFrZSBhIC0tbWVyZ2UKCiBmbGFnIGZvciBtZXJnaW5nIGluc3RlYWQgb2YgcmViYXNpbmcKCjIwMTEtMDgtMDQgIFNhY2hpbiBTdXJlbmRyYW4gPHNhY2hpbnN1cmVuZHJhbkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXB1c20uYzogQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSCAzMzgzNDQxOiBmcm9tCgogc2FjaGluc3VyZW5kcmFuOiBGaXggY3Jhc2ggb24gNS40LjQgZHVlIHRvIGFjY2VzcyBvZiBmcmVlZCBtZW1vcnkgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgICAgc25tcGxpYi9zY2FwaS5jOgoKIENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSCAzMzgzOTUxOiBmcm9tIHlhYmVyYXVuZXlhOiBGaXggLVd1bnVzZWQKIGNvbXBpbGUgd2FybmluZ3Mgd2l0aCBGcmVlQlNEL05ldEJTRCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIEdhcnJldHQgQ29vcGVyIDx5YWJlcmF1bmV5YUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgc25tcGxpYi9rZXl0b29scy5jLAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogQ0hBTkdFUzogYnVpbGRpbmc6IFBBVENIIDMzODM5NTE6IGZyb20geWFiZXJhdW5leWE6IEZpeCAtV3VudXNlZAogY29tcGlsZSB3YXJuaW5ncyB3aXRoIEZyZWVCU0QvTmV0QlNEIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGU4NzhhYmJkYjE4MDhlZjgzZTBhODA3NDUzNmZiNTRlMTMyMTlhOGIgTWVyZ2U6IDQwM2RlNDIKCiA4NzhmYmY0IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDc6NTU6MDAgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI1MGFmYTA2ODkyZmQ4OTdhYzMxZTM4MzZhN2ZmYzllMmI0Y2Y3YjkgTWVyZ2U6IDJjMTRjMWMKCiAzYWZjNWUwIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDc6NTE6MzMgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDU3OGNkN2NjZTM1MWFlOGQ5MDRlYzNkODBiZTliYTZkMWQ0OGE3MTIgTWVyZ2U6IDI1OTg4YmUKCiBmM2JjNTUxIEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUaHUgQXVnIDQgMDc6NTA6NTYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wNCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogYXV0b2NvbmYKCgoyMDExLTA4LTA0ICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6IENIQU5HRVM6IGJ1aWxkaW5nOiBQQVRDSAoKIDMzODM5NDk6IGZyb20geWFiZXJhdW5leWE6IEZpeCBhdXRvY29uZiB0ZXN0cyBmb3Igc3lzL21idWYuaCBTaWduZWQtb2ZmLWJ5OiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHByb21wdCBmb3IgcGF0Y2ggYW5kIGFuIGFyZWEsIGFuZAoKIHVzZSB0aGUgcHJvcGVyIENIQU5HRVMgbGluZSBmb3JtYXQKCjIwMTEtMDgtMDQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IFVzZSBmZXRjaCAtLWFsbCBhbmQgcmViYXNlIGFzCgogc3VnZ2VzdGVkIGJ5IEJhcnQgZm9yIHNwZWVkIGltcHJvdmVtZW50cwoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGQ2YTFhODllNmY2NDg5NTFhOWI4MzE5MzJkM2NjMjMwODIxZjJkMzcgTWVyZ2U6IGRjYjcxMmYKCiA4NzJlMDEzIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAxMjowNjoxOCAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgNDQ5NjliNGU1N2MyNzE5NGU1YmQzNTdiYzQ1Mjc1ZmViODY5NWQyMiBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCA4IDIwOjUyOjI1IDIwMTEgKzAyMDAKCjIwMTEtMDctMDggIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzogQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogSW52b2tlCgogU25tcFV0aWxPaWRGcmVlKCkgYmVmb3JlIFNubXBVdGlsT2lkQ3B5KCkuIEl0J3Mgbm90IGNsZWFyIHlldCB3aHkKIHRoZSBvcmlnaW5hbCBjb2RlIGRpZCBub3QgbWFrZSBzbm1wd2FsayB0cmlnZ2VyIGEgbWVtb3J5IGxlYWsuCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgZGNiNzEyZmZjODZiMzM1ODMwMDBlZjRhZTlhNTFjZWQyNWNkMTViZiBNZXJnZTogZTg1Y2ZhNQoKIDk4NjIzZWYgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnCiA0IDExOjM2OjE3IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4YTAxZWM2NDIzZDQwMGM0YTEzY2NhYzY4YTM3OTFkMDIxOGEwODg1IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnIDQgMTE6MTk6MTcgMjAxMSArMDIwMAoKMjAxMS0wOC0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGU4NWNmYTU5OWIyM2I3NmQ5NzkxM2M5NmI1ZDcwM2JmZjZiYTQ5NDQgTWVyZ2U6IGIwNTZlZTYKCiBlMjFlZWYyIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEF1ZwogNCAwODo0NDo0MyAyMDExICswMjAwCgoyMDExLTA4LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBDSEFOR0VTOiBhZ2VudDoKCiBBdm9pZCB0aGF0IGEgTUlCIHdhbGsgb24gdGhlIGhvc3QgcmVzb3VyY2VzIE1JQiB0cmlnZ2VycyBhIGNyYXNoIG9uCiBGZWRvcmEgMTUKCjIwMTEtMDgtMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBiMDU2ZWU2ZWI1MzkwOWFkMDRmMTZlYzI2ZDI2OTBkN2EwODMxOTJhIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUaHUgQXVnIDQgMDc6NTk6MDQgMjAxMSArMDIwMAoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kYXRhX2FjY2Vzcy9kb3Qzc3RhdHNfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2MKICAgICAgIGVzcy5jLCBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmMsIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19zdGF0dXMuYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9kYXRhX2FjY2Vzcy9ldGhlcnN0YXRzX2xpbnV4LmMsIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzCiAgICAgICAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIAogICAgICBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcHRscy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgCiAgICAgIHBlcmwvU05NUC9TTk1QLnhzLCBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jLCAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIAogICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3NubXB1c20uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6IENIQU5HRVM6IHNubXBsaWIsIHNubXBkOgoKIHBlcmw6IEVsaW1pbmF0ZSBkZWFkIHZhcmlhYmxlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGFlOGUzZWNkMmRmNGNmMzc2MjU5NDRhZGVkMWRmZTQ3MzVkNDRlZWEgTWVyZ2U6IDczMTg3Y2UKCiA5MzM1ZTE5IEF1dGhvcjogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBXZWQgQXVnIDMgMTQ6Mzc6MzYgMjAxMSAtMDcwMAoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDc5NGY5YTY5ZDdlYjY0MjI2ODIwMGIwYTRiMTk5MTUxZGVmNjZlZDAgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFdlZCBBdWcgMyAxNDozNjoyNQogMjAxMSAtMDcwMAoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb21tZW50CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGNvbW1lbnQKCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhdCBlbmQgb2YgbnNyb2xsdXAgbWVudGlvbiB0aGF0Cgogbm93IHdvdWxkIGJlIGEgZ29vZCB0aW1lIHRvIHJ1biBuc3N5bmMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGEgbmV3IG5zc3luYygpIGZ1bmN0aW9uIGZvcgoKIHB1c2gvcHVsbGluZyBhY3RpdmUgYnJhbmNoZXMKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGF0IGVuZCBvZiBuc3JvbGx1cCBtZW50aW9uIHRoYXQKCiBub3cgd291bGQgYmUgYSBnb29kIHRpbWUgdG8gcnVuIG5zc3luYwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYSBuZXcgbnNzeW5jKCkgZnVuY3Rpb24gZm9yCgogcHVzaC9wdWxsaW5nIGFjdGl2ZSBicmFuY2hlcwoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb21tZW50CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYXQgZW5kIG9mIG5zcm9sbHVwIG1lbnRpb24gdGhhdAoKIG5vdyB3b3VsZCBiZSBhIGdvb2QgdGltZSB0byBydW4gbnNzeW5jCgoyMDExLTA4LTAzICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhIG5ldyBuc3N5bmMoKSBmdW5jdGlvbiBmb3IKCiBwdXNoL3B1bGxpbmcgYWN0aXZlIGJyYW5jaGVzCgoyMDExLTA4LTAzICBHYXJyZXR0IENvb3BlciA8eWFiZXJhdW5leWFAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6IFJlZW5hYmxlIElQLU1JQjo6aXBEZWZhdWx0Um91dGVyVGFibGUKICAgICAgU2lnbmVkLW9mZi1ieTogV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoKMjAxMS0wOC0wMyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogQSBuZXcgZnVuY3Rpb246IG5zc2ZwYXRjaGFwcGx5CgogdGhhdCBhdXRvLXB1bGxzIGdpdCBjb21tYW5kIGxpbmUgaW5mbyBmcm9tIFNGCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtY3R4LWdldC5tMmk6IGFkZGVkIHZhcmlhYmxlcyBuYW1lcyB0bwoKIHRoZSBnZW5lcmF0ZWQgZXJyb3IgbWVzc2FnZXMuCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6IFdvcmRpbmcgY2hhbmdlcyB0bwoKIGhlbHAgZGVzY3JpYmUgY29udGV4dHMgYmV0dGVyCgoyMDExLTA4LTAyICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1VNjQubTJpOiBBZGRlZAoKIHRoZSBtaXNzaW5nIFU2NCBtMmkgZmlsZQoKMjAxMS0wOC0wMyAgR2FycmV0dCBDb29wZXIgPHlhYmVyYXVuZXlhQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi5oOiBSZWVuYWJsZSBJUC1NSUI6OmlwRGVmYXVsdFJvdXRlclRhYmxlCiAgICAgIFNpZ25lZC1vZmYtYnk6IFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IEEgbmV3IGZ1bmN0aW9uOiBuc3NmcGF0Y2hhcHBseQoKIHRoYXQgYXV0by1wdWxscyBnaXQgY29tbWFuZCBsaW5lIGluZm8gZnJvbSBTRgoKMjAxMS0wNy0xOCAgSWx5YSBZYW5vayA8eWFub2tAZW1jcmFmdC5jb20+CgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzogYWdlbnQ6IGNoYW5nZQoKIHR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB0byBsb25nIFR5cGUgb2Ygc25tcF9lbmFibGVhdXRoZW50cmFwcyB2YXJpYWJsZSBpcyBjaGFuZ2VkIGZyb20gaW50IHRvIGxvbmcuCiBUaGlzIGZpeGVzIHRoZSBidWcgd2l0aCB3cml0aW5nIHRvIHNubXBFbmFibGVBdXRoZW5UcmFwcyBpZiBzZXJ2ZXIKIGlzIGNvbXBpbGVkIGZvciA2NGJpdCAoc25tcHNldCByZXBvcnRzIHdyb25nIGxlbmd0aCkuIFRoaXMgYnVnIHdhcwogaW50cm9kdWNlZCBhIGxvbmcgdGltZSBhZ28gKGJ5IGZhZWVjZDAgY29tbWl0KS4gIEFjdHVhbGx5IHRoaXMgaXMgYSAnbGVzcyBlZmZvcnQnIHR5cGUgb2YgZml4IGJ1dCBJIHdvbmRlciB3aHkgd2UKIG5lZWQgYSBsb25nIHRvIHN0b3JlIGFuIElOVEVHRVIgaW4gdGhlIGZpcnN0IHBsYWNlPyBTaWduZWQtb2ZmLWJ5OiBJbHlhIFlhbm9rIDx5YW5va0BlbWNyYWZ0LmNvbT4gU2lnbmVkLW9mZi1ieTogV2VzCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOiBhZGRlZCB2YXJpYWJsZXMgbmFtZXMgdG8KCiB0aGUgZ2VuZXJhdGVkIGVycm9yIG1lc3NhZ2VzLgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOiBXb3JkaW5nIGNoYW5nZXMgdG8KCiBoZWxwIGRlc2NyaWJlIGNvbnRleHRzIGJldHRlcgoKMjAxMS0wOC0wMiAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtVTY0Lm0yaTogQWRkZWQKCiB0aGUgbWlzc2luZyBVNjQgbTJpIGZpbGUKCjIwMTEtMDgtMDMgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA2YWQ3ZTI4ZmY5ZTVlNGViYzEzNThlZTM5Y2M5Nzk2YTQ0YTFiZWU3IE1lcmdlOiBmMjgzMmUzCgogMWUxNTRjZSBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcKIDMgMTk6MTU6MjQgMjAxMSArMDIwMAoKMjAxMS0wOC0wMyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDYxYjE3OGYxZWU4OTUyYWEwM2FhM2IxYmE1MWY0YTY2NTVlNDdmMDEgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFdlZCBBdWcgMyAxODowOTo0NyAyMDExICswMjAwCgoyMDExLTA4LTAzICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOiBXaGl0ZXNwYWNlLW9ubHkgY2hhbmdlOiBmaXggaW5kZW50YXRpb24KCiBvZiBhbiAjaW5jbHVkZSBkaXJlY3RpdmUKCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBwZXJsL05ldFNOTVAueHM6IENIQU5HRVM6IFBlcmw6IFJlbW92ZSBmaWxlIHBlcmwvTmV0U05NUC54cwoKIGJlY2F1c2UgaXQgYnJlYWtzIHRoZSBXaW5kb3dzIGJ1aWxkLiAgVG8gV2VzOiBpZiB5b3UgY2FuIHRlbGwgbWUgaG93IHRvIHJlcHJvZHVjZSB0aGUgcHJvYmxlbSB5b3Ugb2JzZXJ2ZWQKIEknbGwgdHJ5IHRvIGZpbmQgYSBwb3J0YWJsZSBmaXguICBUaGlzIHJldmVydHMgY29tbWl0IGQ1NDg3MWY1MjkzNjc1YzgwNThlY2NlODhmZWQ1YjY0NmM4MzYzMjMgKCJBZGRlZAogYSBib2d1cyBlbXB0eSAueHMgZmlsZSBmb3IgYnVuZGxpbmcgb24gbmV3ZXIgcGVybCB0aGF0IHdhbnRzCiAic29tZXRoaW5nIiIpLgoKMjAxMS0wOC0wMiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBmNDg5YjE5OWFkYWI0OGIxNjMzZWJjYWY1ZmY1YTdjMjJjNGNiODkgTWVyZ2U6IGY0ZWFhMDIKCiA3MmE1OWJjIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEF1ZwogMiAxMDoxMTo1MyAyMDExICswMjAwCgoyMDExLTA4LTAyICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgN2ZjYzBiODAzMmY4ZGE1YjdiYzMwMDU5YWYwYmE2NTZlYWU3MTA5MSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgTW9uIEF1ZyAxIDE0OjExOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDgtMDIgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXQKICAgICAgIGFfYWNjZXNzLmM6IEZpeCBhIGNvbXBpbGVyIHdhcm5pbmcgaW4KCgogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmMKCjIwMTEtMDgtMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgZmlsZSBuYW1lcyBhbmQgcGF0dGVybnMgZm9yIG91dHB1dAoKIGZpbGVzIGdlbmVyYXRlZCBkdXJpbmcgdGhlIFdpbmRvd3MgYnVpbGQKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBTb3J0IGFscGhhYmV0aWNhbGx5CgoKMjAxMS0wNy0yOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIC5naXRpZ25vcmU6IC5naXRpZ25vcmU6IEFkZCBhcHBzL3NzaHRvc25tcAoKCjIwMTEtMDgtMDEgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgLmdpdGlnbm9yZSwgcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmMsIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC14cy5pbmM6IFJlbW92ZSB0d28gZ2VuZXJhdGVkIFBlcmwgZmlsZXMuCgoKMjAxMS0wOC0wMiAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGY0ZWFhMDJkOWIwNzZhNjdkNzI3MmRlN2VlZjhlOWRmYmYxODliYmYgTWVyZ2U6IDQwMTI1ZDgKCiBhZGFkY2I5IEF1dGhvcjogVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6CiBUdWUgQXVnIDIgMDA6NTc6NTEgMjAxMSArMDIwMAoKMjAxMS0wOC0wMiAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczogc3VwcHJlc3MgIm9rIiB0ZXN0IG91dHB1dCBpbiBuc2IKCgoyMDExLTA4LTAxICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDQwMTI1ZDg1MzljZDg5Zjk1MmZiYzI0NTg4YzVlODFlOWNkODIxZmUgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBNb24gQXVnIDEKIDEzOjU4OjMzIDIwMTEgKzAyMDAKCjIwMTEtMDgtMDEgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA1YWNmMGQyY2ViMzk3Nzk2NGVkMzlmMDAzMDczYmE2NDEzOGMyZWJkIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTdW4gSnVsIDMxIDIzOjU3OjQxCiAyMDExICswMjAwCgoyMDExLTA3LTMxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTc3MjJhODFmOWNiN2FhODY3MGU3YzIzODYwMTM2MmEzMTA4N2FjYyBNZXJnZTogMjQyZTE3OQoKIGFlOWFjNmMgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBTdW4gSnVsCiAzMSAwOToxMTo0NSAyMDExICswMjAwCgoyMDExLTA3LTMxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zc2h0b3NubXAuYzogRml4IGFuIGluY29ycmVjdCBzb3VyY2UgY29kZSBjb21tZW50OiB0aGVyZSBpcwoKIG5vIHJlcXVpcmVtZW50IGluIHRoZSBBTlNJIEMgc3RhbmRhcmQgdGhhdCBzdGFjayB2YXJpYWJsZXMgc2hvdWxkIGJlCiBpbml0aWFsaXplZCB0byB6ZXJvLgoKMjAxMS0wNy0zMSAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDI0MmUxNzk3YjI2OTRhMDY4OTg1NmFlMzZkMDVkMzQxM2FhZjhkNzcgQXV0aG9yOiBUaG9tYXMKCiBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFN1biBKdWwgMzEgMDE6NDQ6MDkKIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOiBDSEFOR0VTOiBidWlsZGluZzogYnVpbGQgZml4IGZvciBzeXN0ZW1zIGxhY2tpbmcKCiBnZXRhZGRyaW5mbygpIGFuZCBFQUlfRkFJTCAoZS5nLiBIUC1VWCAxMC4yMC8xMS4wMCkKCjIwMTEtMDctMzAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAxOGRmNzU5ZjE5Yjk3NWM0NDlkMDEwYmIwYTE2MjExOWJiNjgzNjBkIE1lcmdlOiA1NGE0NGNiCgogNzA1MDcxOCBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFNhdCBKdWwKIDMwIDE2OjM5OjEzIDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA4MmQ3M2ZiMTFiZTNhZTMxZjM5YzlkNjE4ZDUzODhkYzliMTAwNmQ3IEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsIDI5IDIwOjUxOjI3IDIwMTEgKzAyMDAKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogYXV0b3JlY29uZgoKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogYXV0b3JlY29uZgoKCjIwMTEtMDctMzAgIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCAxMDlmNjY5NGQ3ODhmNDhlYmQ5ZmMwYTFlOTBjNDVhYmMzN2JlYTIwIEF1dGhvcjogVGhvbWFzCgogQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBTYXQgSnVsIDMwIDE0OjIyOjE5CiAyMDExICswMjAwCgoyMDExLTA3LTMwICBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgN2Q4MTAwZWVkNDU5YTFmZjFhMjBjMDY3MzY0ZmE2Y2I0NzQ5MTMwOSBNZXJnZTogMTE2YzI0ZgoKIDllNDdhYzQgQXV0aG9yOiBUaG9tYXMgQW5kZXJzIDx0YW5kZXJzQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFNhdCBKdWwgMzAgMDA6MjA6MDEgMjAxMSArMDIwMAoKMjAxMS0wNy0zMCAgVGhvbWFzIEFuZGVycyA8dGFuZGVyc0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucywgZGlzdC9uc2ItbmlnaHRseSwgZGlzdC9uc2ItcGFja2FnZTogbWlub3IgbnNiCgogZml4ZXMvZW5oYW5jZW1lbnRzIGZyb20gbXkgb2xkIHN2biB0cmVlCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgMTE2YzI0ZjBmN2ZiM2Y5OWJhNjQ2NzMwZjYxYzU2ZDFhZTIzYmE0MSBNZXJnZTogOTgyZmI3ZgoKIDRmYzBiOGIgQXV0aG9yOiBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBGcmkgSnVsCiAyOSAxMTozMToyMCAyMDExICswMjAwCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYzQ4MTczYzA2YTllYWFkYmY4MWU2YjQ5NjJkNTVlZjBhNTRkYjI1MSBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgRnJpIEp1bCAyOSAxMDoyNzozOSAyMDExICswMjAwCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogY29uZmlndXJlLCBsdG1haW4uc2gsIG00L2xpYnRvb2wubTQ6IFJlcnVuIGF1dG9yZWNvbmYKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogU29ydCBhbHBoYWJldGljYWxseQoKCjIwMTEtMDctMjkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAuZ2l0aWdub3JlOiAuZ2l0aWdub3JlOiBBZGQgYXBwcy9zc2h0b3NubXAKCgoyMDExLTA3LTI5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jOiBGaXggdHdvIGZpbGVuYW1lcyBpbiBob3N0IG1pYgoKIHNvdXJjZSBjb2RlIGNvbW1lbnRzLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCA5ODJmYjdmZDhiYWIyNWM0MzIyYWE2MmM1MDQzNzAzNmNlMjk2ZTNlIE1lcmdlOiAxZWRhNjc1CgogMzQ1ODEyOCBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFRodSBKdWwgMjggMTY6MjQ6MDMgMjAxMSArMDIwMAoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IEZpeCBwb3RlbnRpYWwKCiBzaWdzZWd2IHdoZW4gYW4gaWZUYWJsZSBlbnRyeSBpcyByZW1vdmVkIGFzIHJlc3VsdCBvZiBib3RoCiBpbnRlcmZhY2VfcmVwbGFjZV9vbGQgYW5kIGludGVyZmFjZV9mYWRlb3V0IGF0IHRoZSBzYW1lIHRpbWUuCgoyMDExLTA3LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zc2h0b3NubXAuYzogTWFrZSBhcHBzL3NzaHRvc25tcC5jIGJ1aWxkIGFnYWluICh3YXMgYnJva2VuIGJ5CgogY29tbWl0IDYxMjI0N2NkZjE0YzFlNzQ1YzM4NGNlZmUxZjNmZGUzZTQ0NWIzNDcgdGhhdCBjaGFuZ2VkCiBNU0dfTk9TSUdOQUwgaW50byBORVRTTk1QX05PU0lHTkFMKQoKMjAxMS0wNy0yOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDFlZGE2NzUzYjdmZTdkM2IzZjIxN2MwOTI1NGVjMDJkMGVlMWQwY2UgTWVyZ2U6IGRiOGI4NjAKCiBhMmY5ZWNlIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEp1bAogMjggMTU6MzI6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0yOCAgTmllbHMgQmFnZ2VzZW4gPG5iYUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMTogCgogQ0hBTkdFUzogc25tcGQ6IFJlc3RvcmUgc3RvcmFnZSB0YWJsZXMgb24gTGludXgKCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IERvY3VtZW50IGludGVyZmFjZV9yZXBsYWNlX29sZCBvcHRpb24uCgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfcmVwbGFjZV9vbGQnIG9wdGlvbiB0byByZW1vdmUgb2xkIGVudHJpZXMgaW4KIGlmVGFibGUgd2hlbiBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgc2FtZSBuYW1lIGFzIGFscmVhZHkgZXhpc2luZyBvbmUKIGFwcGVhcnMuICBFLmcuIHJlbW92ZSBvbGQgcHBwMCBpbnRlcmZhY2Ugd2hlbiBuZXcgcHBwMCBzaG93cyB1cC4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6IERvY3VtZW50IHRoZSBpbnRlcmZhY2VfZmFkZW91dCBvcHRpb24uCgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IEFsbG93IGlmVGFibGUKCiBlbnRyaWVzIHRvIGJlIGRlbGV0ZWQgaW1tZWRpYXRlbHkgd2hlbiBhcHByb3ByaWF0ZSBpbnRlcmZhY2UKIGRpc2FwcGVhcnMgKGkuZS4gaW50ZXJmYWNlX2ZhZGVvdXQgPSAwIHdvcmtzIGFzIGV4cGVjdGVkKS4KCjIwMTEtMDctMjggIEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOiBDSEFOR0VTOgoKIHNubXBkOiBhZGRlZCAnaW50ZXJmYWNlX2ZhZGVvdXQnIGNvbmZpZ3VyYXRpb24gb3B0aW9uIHRvIHNldAogbGlmZXRpbWUgb2YgaWZUYWJsZSBlbnRyaWVzIG9mIHJlbW92ZWQgaW50ZXJmYWNlcy4gIFByZXZpb3VzIGxpZmV0aW1lIHdhcyBoYXJkY29kZWQgNSBtaW51dGVzLCBub3cgaXQncyBjb25maWd1cmFibGUuCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGQ2MmEwZWI5MDcwYjRkOGQ5ZmUyYmNmZGI0ZDUzZDM3ZWY4MTRmOWIgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBUaHUgSnVsIDI4CiAxNDo0OTowOCAyMDExICswMjAwCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQ0hBTkdFUzoKCiBzbm1wZDogYWRkZWQgJ2ludGVyZmFjZV9yZXBsYWNlX29sZCcgb3B0aW9uIHRvIHJlbW92ZSBvbGQgZW50cmllcyBpbgogaWZUYWJsZSB3aGVuIGFuIGludGVyZmFjZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYWxyZWFkeSBleGlzaW5nIG9uZQogYXBwZWFycy4gIEUuZy4gcmVtb3ZlIG9sZCBwcHAwIGludGVyZmFjZSB3aGVuIG5ldyBwcHAwIHNob3dzIHVwLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjogRG9jdW1lbnQgdGhlIGludGVyZmFjZV9mYWRlb3V0IG9wdGlvbi4KCgoyMDExLTA3LTI4ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzogQWxsb3cgaWZUYWJsZQoKIGVudHJpZXMgdG8gYmUgZGVsZXRlZCBpbW1lZGlhdGVseSB3aGVuIGFwcHJvcHJpYXRlIGludGVyZmFjZQogZGlzYXBwZWFycyAoaS5lLiBpbnRlcmZhY2VfZmFkZW91dCA9IDAgd29ya3MgYXMgZXhwZWN0ZWQpLgoKMjAxMS0wNy0yOCAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6IENIQU5HRVM6Cgogc25tcGQ6IGFkZGVkICdpbnRlcmZhY2VfZmFkZW91dCcgY29uZmlndXJhdGlvbiBvcHRpb24gdG8gc2V0CiBsaWZldGltZSBvZiBpZlRhYmxlIGVudHJpZXMgb2YgcmVtb3ZlZCBpbnRlcmZhY2VzLiAgUHJldmlvdXMgbGlmZXRpbWUgd2FzIGhhcmRjb2RlZCA1IG1pbnV0ZXMsIG5vdyBpdCdzIGNvbmZpZ3VyYWJsZS4KCjIwMTEtMDctMjggIFRob21hcyBBbmRlcnMgPHRhbmRlcnNAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAgYXBwcy9zc2h0b3NubXAuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzogQ0hBTkdFUzogYnVpbGRpbmc6IGJ1aWxkCiAgICAgIGZpeAoKIGZvciBzeXN0ZW1zIGxhY2tpbmcgTVNHX0RPTlRXQUlUCgoyMDExLTA3LTI3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6IENIQU5HRVM6IHNubXBkOiBNYWtlCgogVENQLU1JQjo6dGNwQ3VyckVzdGFiIHdvcmsgYWdhaW4uIFdhcyBicm9rZW4gaW4gNS43IGJ5IHRoZQogaW50cm9kdWN0aW9uIG9mIHRoZSAiZmVhdHVyZXMiIGZlYXR1cmUuCgoyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGZiODgwNzRmYmJjMjY4YzdmMDUwOTQ5MTUzNWFlYzVmZWNiMDU2ODQgTWVyZ2U6IGE3NDNhZTUKCiAzODIxMjczIEF1dGhvcjogSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOgogV2VkIEp1bCAyNyAxNDo0NzoyNSAyMDExICswMjAwCgoyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDMxZmEwN2NkOWZmZGU0NmQ0MWQyYjU4MzhjM2ZjNGQwMTU0OGJmYjUgQXV0aG9yOiBKYW4KCiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVsIDI3CiAxNDo0NTo0NyAyMDExICswMjAwCgoyMDExLTA3LTI3ICBKYW4gU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L3NubXBkLmM6IENIQU5HRVM6IHNubXBkOiBydW4gc2lnbmFsIGhhbmRsZXJzIHdoZW4gc2VsZWN0KCkKCiBpcyBpbnRlcnJ1cHRlZC4gIFRoaXMgYmVoYXZpb3IgaXMgaW5kaWNhdGVkIGluIGNvbW1lbnQgb24gbGluZSAxMjQ0LCBidXQgaXQgd2FzIG5vdAogYWN0dWFsbHkgZG9uZS4KCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCAyZTk0NjZkN2Y1OWQ2NWQwNTAyNzc3MzVlNGVkOWQzMDcxOWZmNzUyIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsIDI2IDEzOjEwOjA0IDIwMTEgKzAyMDAKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCA3NzA4Mjk2NzYwZWFmNWE4MGQ4NTQwNzQ2YzljMjQ5ODI2ZmQxYmZlIE1lcmdlOiBlYTExZTVlCgogY2Q2ZTM4MiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwKIDI2IDE2OjIxOjQxIDIwMTEgKzAyMDAKCjIwMTEtMDctMjYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6IENsYXJpZnkgYW4gSVB2NiBzb3VyY2UgY29kZSBjb21tZW50CgoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgbWFuL25ldHNubXBfaGFuZGxlci4zOiBTcGVsbGluZyBmaXg6CgogZGVmaW5lZHkgLT4gZGVmaW5lZAoKMjAxMS0wNy0yNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMzogU3BlbGxpbmcKCiBmaXg6IGFsZXZpYXRlIC0+IGFsbGV2aWF0ZQoKMjAxMS0wNy0yNiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBkZDJjNDcxMzM0OTNkNWEwMGRlNmIzY2RiY2ZhYzdlOWQ0NGI2ZmZlIE1lcmdlOiBmOWNjYmM3CgogZWExMWU1ZSBBdXRob3I6IEphbiBTYWZyYW5layA8anNhZnJhbmVrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIFR1ZSBKdWwgMjYgMTQ6MjU6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0yNiAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjNWE4NDY0YzQyYTk0YzI1MGVlMmRmYTJhNDczMTA5YTczNDIwM2Q4IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgVHVlIEp1bCAyNgogMTQ6MjQ6NTUgMjAxMSArMDIwMAoKMjAxMS0wNy0yNSAgSmFuIFNhZnJhbmVrIDxqc2FmcmFuZWtAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBmOWNjYmM3NzI2NjYxMzRkMWQxNzhiNTA1YWY5ZGRjZGQ5ZWQ0MjQ0IEF1dGhvcjogSmFuCgogU2FmcmFuZWsgPGpzYWZyYW5la0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+IERhdGU6ICAgTW9uIEp1bCAyNQogMTU6MDI6MTUgMjAxMSArMDIwMAoKMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGIwYzBhMzU1ZDVmNjAxYTExYmU0OTE0ZmJmNzEzNzE2YWJkMzBhMjkgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMTkKIDE4OjM2OjExIDIwMTEgLTA3MDAKCjIwMTEtMDctMjAgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiA6IGNvbW1pdCBjMTRmYzM4NjE0YmFmMTBkNTE3MTM2ZjA0ODA5MDdiN2YwM2Q4ZDc0IEF1dGhvcjogV2VzCgogSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZTogICBXZWQgSnVsIDIwCiAxMzo0NDo1OSAyMDExIC0wNzAwCgoyMDExLTA3LTE5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzogcmVtb3ZlIGJyb2tlbiB3aGl0ZXNwYWNlIGxpbmVzIHRoYXQKCiBsZWFkcyB0byByZWFkaW5nIGNvbmZ1c2lvbgoKMjAxMS0wNy0yMCAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IGViZGQyMTZjMDc0YmY0MWNkM2EwODRiZDE0Njg5Y2YwMWM4ODdiMzEgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIFR1ZSBKdWwgMTkKIDE4OjM2OjExIDIwMTEgLTA3MDAKCjIwMTEtMDctMTkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiAuZ2l0aWdub3JlOiB1cGRhdGVkIGdpdGlnbm9yZSB0byBpZ25vcmUgYSBudW1iZXIgb2YgYXV0by1nZW5lcmF0ZWQKCiBmaWxlcwoKMjAxMS0wNy0xOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6IHJlbW92ZSBicm9rZW4gd2hpdGVzcGFjZSBsaW5lcyB0aGF0CgogbGVhZHMgdG8gcmVhZGluZyBjb25mdXNpb24KCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBkZjVmNzAwNTVjZjliZTMzZjA1ZmI1MGFiZTJmNWE4MWVhYzA5MmFkIEF1dGhvcjogQmFydCBWYW4KCiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4gRGF0ZTogICBUdWUgSnVsIDE5IDExOjA3OjE5IDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiA6IGNvbW1pdCBmNTk2ZjE4MjQyZGNkZmQ2Y2Y0OWM4OGRhMWQ4MzZjMTZlMjYwY2FjIE1lcmdlOiAwZjMwOWI0CgogNzBkZWU0YiBBdXRob3I6IEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwKIDE5IDExOjMzOjI4IDIwMTEgKzAyMDAKCjIwMTEtMDctMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmM6IENIQU5HRVM6IHNubXBkOiBQQVRDSDoKICAgICAgMzM2OTY4MDoKCiBmcm9tIElseWEgWWFub2s6IGNoYW5nZSBzbm1wX2VuYWJsZWF1dGhlbnRyYXBzIGZyb20gaW50IHRvIGxvbmcgc3VjaAogdGhhdCBtb2RpZnlpbmcgdGhlIGNvcnJlc3BvbmRpbmcgTUlCIG9iamVjdCBkb2VzIG5vdCBvdmVyd3JpdGUKIG1lbW9yeSBpbiA2NC1iaXQgYnVpbGRzLgoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOiBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMzNzA2NDU6CgogZnJvbSBCaWxsIEZlbm5lcjogRml4IEFnZW50WCBzdWJhZ2VudCBmb3VyIGJ5dGUgbGVhawoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzczogZG8KCiBub3QgaW52b2tlIElTUlVOTklORygpIG9uIE1pbkdXLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFRlc3QgaGFybmVzczoKCiBjbGVhbnVwIC0gcmVtb3ZlIGNvZGUgdGhhdCBiZWNhbWUgc3VwZXJmbHVvdXMuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogTWluR1c6IERvIG5vdAoKIGFzc3VtZSB0aGF0IGtpbGwuZXhlIHJlcG9ydHMgdmlhIGl0cyBleGl0IHN0YXR1cyB3aGV0aGVyIHRoZQogc2lnbmFsbGVkIHByb2Nlc3Mgc3RpbGwgZXhpc3RzLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogUmVtb3ZlIHRoZSBmdW5jdGlvbiBXQUlUT1JESUUoKSBmcm9tIHNpbXBsZV9ldmFsX3Rvb2xzLnNoIHNpbmNlIGl0CiBpcyBuZXZlciBpbnZva2VkLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogU2ltcGxpZnkgV0FJVEZPUigpIGluIHNpbXBsZV9ldmFsX3Rvb2xzLnNoLiBUaGUgY29kZSB0aGF0IGhhbmRsZWQKIGludm9jYXRpb24gb2YgV0FJVEZPUigpIHdpdGggemVybyBvciBvbmUgYXJndW1lbnRzIGhhcyBiZWVuIGRyb3BwZWQKIHNpbmNlIFdBSVRGT1IoKSBpcyBhbHdheXMgaW52b2tlZCB3aXRoIHR3byBhcmd1bWVudHMuCgoyMDExLTA3LTA4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDogVGVzdCBoYXJuZXNzOgoKIG1pbm9yIHNpbXBsaWZpY2F0aW9uLgoKMjAxMS0wNy0wOCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGU6IENIQU5HRVM6CgogdGVzdGluZzogU2tpcCB0ZXN0IDU5IGlmIFNJR0hVUCBpcyBub3Qgc3VwcG9ydGVkLiBNYWtlcyB0ZXN0IDU5IHBhc3MKIG9uIE1pbkdXLgoKMjAxMS0wNy0wNiAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IE1pbkdXIGZpeAoKCjIwMTEtMDctMDYgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGZyYW1ld29yawoKIHJlZmFjdG9yaW5nOiBJbnRyb2R1Y2UgV0FJVEZPUk5PVENPTkQoKS4KCjIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIE1ha2UgU1RPUFBST0cgc2VuZCBTSUdURVJNIHJlcGVhdGVkbHkuIFRoaXMgZml4ZXMgYSByYWNlIHdoZXJlCiBTSUdURVJNIGNvdWxkIGJlIHNlbnQgYmVmb3JlIHRoZSBTSUdURVJNIHNpZ25hbCBoYW5kbGVyIHdhcyBzZXQgdXAsCiBlc3BlY2lhbGx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KIENIQU5HRVM6IHRlc3Rpbmc6IE1ha2UgdGhlIFNOTVBfVkVSQk9TRT0xIG91dHB1dCBldmVuIG1vcmUgdmVyYm9zZS4KCjIwMTEtMDctMDUgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBUZXN0IGhhcm5lc3MKCiByZWZhY3RvcmluZzogaW50cm9kdWNlIEVDSE9TRU5EU0lHVEVSTSgpIGFuZCBFQ0hPU0VORFNJR0tJTEwoKQoKMjAxMS0wNy0wNSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IEZpeCBhIGJ1ZyBpbgoKIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2ggdGhhdCB3YXMgaW50cm9kdWNlZAogaW4gY29tbWl0IDkzOGQ3NWMuCgoyMDExLTA3LTAxICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogLmdpdGlnbm9yZTogLmdpdGlnbm9yZTogSWdub3JlICouZXhlIGZpbGVzIGdlbmVyYXRlZCBieSB0aGUgV2luMzIKCiBidWlsZAoKMjAxMS0wNy0wNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6IENIQU5HRVM6IHRlc3Rpbmc6CgogVGVzdCBvbmx5IG9uY2UgZHVyaW5nIGEgdGVzdCB3aGV0aGVyIHRoZSBzaGVsbCBzdXBwb3J0cyBzdWItc2Vjb25kCiBzbGVlcGluZyBpbnN0ZWFkIG9mIHJlcGVhdGVkbHkuCgoyMDExLTA3LTA0ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOiBDSEFOR0VTOiB0ZXN0aW5nOiBDaGFuZ2VkCgogZGVmYXVsdCB0aW1lb3V0IGZyb20gMXMgdG8gMTBzIHdoZW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgYXJlIHJ1bgogdW5kZXIgVmFsZ3JpbmQKCjIwMTEtMDctMDQgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOiBDSEFOR0VTOiB0ZXN0aW5nOgoKIEFmdGVyIGhhdmluZyBzZW50IFNJR1RFUk0gdG8gc25tcGQgb3Igc25tcHRyYXBkLCB3YWl0IHVudGlsIHRoZQogcHJvY2VzcyBoYXMgc3RvcHBlZCBiZWZvcmUgc2VuZGluZyBTSUdLSUxMLiBUaGlzIHJhY2UgY29uZGl0aW9uIHdhcwogaGl0IG1vc3QgZWFzaWx5IHdoZW4gcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0cyB1bmRlciBWYWxncmluZC4KIENIQU5HRVM6IHRlc3Rpbmc6IENoZWNrIFBJRCBmaWxlIGV4aXN0ZW5jZSBhZnRlciBoYXZpbmcgcmVhZCBpdAogaW5zdGVhZCBvZiBiZWZvcmUuIFRoaXMgZml4ZXMgdGhlIHJhY2UgY29uZGl0aW9uIHdoZXJlIHRoZSBQSUQgZmlsZQogZGlzYXBwZWFyZWQgYWZ0ZXIgdGhlIGV4aXN0ZW5jZSBjaGVjayBhbmQgYmVmb3JlIGl0IHdhcyByZWFkLgoKMjAxMS0wNi0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCiBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDMzMTAyNTAgLyByMjA0OTQ6IHVzZSAlbGQgdG8gcHJpbnQgYSB2YWx1ZSBvZgogdHlwZSBvaWQgaW5zdGVhZCBvZiAlZC4gIFRoaXMgcGF0Y2ggaXMgYSBjb21iaW5hdGlvbiBvZiB0aGUgZm9sbG93aW5nIHRvIFY1LjYgU1ZOIHBhdGNoZXM6IGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTExIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZGdpdC1zdm4taWQ6CgogZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEyIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDBmMzA5YjQ5M2MyMWQzYzY5MTQ0ODc1MTRiNDE1NjA3NTRmZmNkZjkgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFR1ZSBKdWwgMTkgMDg6Mzc6NTAgMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IDFiNzQ1NGJjMjgxNTY4NDcwYTEzMDA0NzZkMmVkYjRmNDExZTYwMjkgTWVyZ2U6IDhkOWRjYzgKCiA2OTBlYTdkIEF1dGhvcjogQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVHVlIEp1bAogMTkgMDg6MzE6MjggMjAxMSArMDIwMAoKMjAxMS0wNy0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGFwcHMvc25tcHRyYXBkLmM6IENIQU5HRVM6IHNubXB0cmFwZDogQWRkIG1pc3NpbmcgbmV3bGluZQoKIGNoYXJhY3RlciBpbiBhIGxvZyBtZXNzYWdlCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzogQ0hBTkdFUzogc25tcHRyYXBkOiBJbnZva2Ugc2h1dGRvd25fcGVybCgpIHdoZW4KCiBzaHV0dGluZyBkb3duCgoyMDExLTA3LTE5ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOiBTcGVsbGluZyBmaXg6IGJyYW5rZXQgLT4gYnJhY2tldAoKCjIwMTEtMDctMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46IFJ1biBhdXRvcmVjb25mLgoKIEZpeGVzIGJ1aWxkIGJyZWFrYWdlIGNhdXNlZCBieSBwYXRjaAogZDU4OGVjODUzYmQwNTMxZjIxMmZjYmY1MWI5NjJiOTZjNjgyOGI1OSAoUlBNIDQuOSBzdXBwb3J0KQoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIDogY29tbWl0IGQ2MTdkODRmODNmYTY5ZWQ5ZmE5Zjk4ZWZjNGFmYWY4ODBkMTIxZjIgQXV0aG9yOiBCYXJ0IFZhbgoKIEFzc2NoZSA8YnZhbmFzc2NoZUBhY20ub3JnPiBEYXRlOiAgIFRodSBKdWwgMTQgMTY6NDM6NDcgMjAxMSArMDIwMAoKMjAxMS0wNy0xNCAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzogQ0hBTkdFUzogc25tcGxpYjogTWFrZQoKIG5ldHNubXBfaXB2Nl9mbXRhZGRyKCkgc2hvdyB0aGUgSVB2NiBzY29wZSBJRAoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogQ0hBTkdFUzogV2luMzI6IEFkZCBzdXBwb3J0CiAgICAgIGZvcgoKIElQdjYgYWRkcmVzcyBzY29wZSBJRAoKMjAxMS0wNy0xNyAgQmFydCBWYW4gQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+CgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjogUnVuIGF1dG9yZWNvbmYKCgoyMDExLTA3LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCiAgICogOiBjb21taXQgYTU2NzIxYTNlNzc1NGUzODlkYWE3ZThhM2Q1NzkyODk5ZWRjOWRlMyBBdXRob3I6IEJhcnQgVmFuCgogQXNzY2hlIDxidmFuYXNzY2hlQGFjbS5vcmc+IERhdGU6ICAgVGh1IEp1bCAxNCAxNjoxODozMiAyMDExICswMjAwCgoyMDExLTA3LTE1ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgODQ0ZDRjZTg2N2JmM2FiZTdiNzUzNmM1ZGJmYmE0MDE5MzdhOGQ0YSBNZXJnZTogZWVkMDE5OAoKIDYxMDM2YTggQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIEZyaSBKdWwgMTUgMTU6MzM6MTAgMjAxMSAtMDcwMAoKMjAxMS0wNy0xNSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogY29tbWl0IDg1MWJjZjUzZmNkMTNjZGYwYmE5ZjEyZTVkNjAzZTczZjhiYjk2MTEgQXV0aG9yOiBXZXMKCiBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PiBEYXRlOiAgIEZyaSBKdWwgMTUKIDE1OjMyOjQ5IDIwMTEgLTA3MDAKCjIwMTEtMDctMTQgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzogZml4IGEgdHlwbwoKCjIwMTEtMDctMTMgIFJvYmVydCBTdG9yeSA8cnN0b3J5QGxvY2FsaG9zdD4KCiAgICogc25tcGxpYi9wYXJzZS5jOiBDSEFOR0VTOiBzbm1wbGliOiAgdHdlYWsgcGF0Y2ggMzA0NDg4OCB0byByZXN0b3JlCgogcHJvcGVyIG5vbi1lcnJvciByZXR1cm4gZHVyaW5nIG1pYiBsb2FkaW5nCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBhZGRlZCA1LjcgcGF0Y2hlcyB0byB0aGUgYnJhbmNoIGxpc3QgYW5kIGZpeCB0aGUgcmVsZWFzZSBmaWxlCgoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIDogYWRkZWQgNS43IHBhdGNoZXMgdG8gdGhlIGJyYW5jaCBsaXN0CgoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvcmVsZWFzZTogYSBjb3B5IG9mIHRoZSByZWxlYXNlIGZpbGUgYXBwbGllZCB0byB0aGUgb2xkZXIKCiBicmFuY2hlcwoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgNS43IHBhdGNoZXMKCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogOiBjb21taXQgYzQzMTIzMWU4ZjBhMzlkMTk1MGJjNzJjMzJlMzQwMmY5MGZhODAzMCBNZXJnZTogNTZmZWU0MAoKIGEyYWMyNGQgQXV0aG9yOiBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4gRGF0ZToKIE1vbiBKdWwgMTEgMTk6MzM6MTcgMjAxMSAtMDcwMAoKMjAxMS0wNy0xMSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBjb3B5IG9mIHRoZQoKIHNoZWxsLWZ1bmN0aW9ucyB0byB0aGUgb2xkZXIgYnJhbmNoCgoyMDExLTA3LTExICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogZGlzdC9yZWxlYXNlOiBhIGNvcHkgb2YgdGhlIHJlbGVhc2UgZmlsZSBhcHBsaWVkIHRvIHRoZSBvbGRlcgoKIGJyYW5jaGVzCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS43LnJjMyAtPiBWNS43CgoyMDExLTA3LTAxICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcKCgoyMDExLTA3LTAxICBSb2JlcnQgU3RvcnkgPHJzdG9yeUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6IFJldmVydCAiZml4IGR0bHN1ZHAKCiB0cmFuc3BvcnQgYWRkcmVzcyBmb3JtYXQgZnVuY3Rpb24iIFRoaXMgcmV2ZXJ0cyBjb21taXQgMmFiM2E2ZTZmMmZjYzFmZjNlNWYwZmI1ZGM1ZDA1ZTQ5ODgyMGQ4OS4gICAtIGZvciBzb21lIHJlYXNvbiBJIHNhdyAncmMnIGFuZCBteSBicmFpbiBpbnRlcnByZXRlZCBpdCBhcyAgICAncHJlLXJlbGVhc2UnLiBXaGF0IGNhbiBJIHNheSwgaXQgd2FzIGxhdGUuIDotLwoKMjAxMS0wNy0wMSAgUm9iZXJ0IFN0b3J5IDxyc3RvcnlAbG9jYWxob3N0PgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOiBmaXggZHRsc3VkcCB0cmFuc3BvcnQKCiBhZGRyZXNzIGZvcm1hdCBmdW5jdGlvbiAgLSB1cGRhdGUgaXB2NCBmbXRhZGRyIHRvIGhhbmRsZSBzb2NrYWRkciBhbmQgdG8gY2hlY2sgICAgc2l6ZSBiZWZvcmUgYXNzdW1pbmcgZGF0YSBpcyBhZGRyIHBhaXIgIC0gbW92ZSBkdGxzdWRwIGZ1bmN0aW9ucyB0byBleHRyYWN0IGFkZHIocykgdG8gdGxzYmFzZQoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBmaXggdGFnIHB1c2hpbmcKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjcucmMyIC0+IFY1LjcucmMzCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwKCWRpc3QvbmV0LXNubXAuc3BlYzogVmVyc2lvbiBudW1iZXIgdXBkYXRlOiA1LjcucmMzCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogbWlzYyBwdWJsaWNhdGlvbiBmaXhlcyBmb3VuZCB3aGlsZQoJcHVibGlzaGluZwoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiByYW4gYXV0b2hlYWRlciB0byBhZGQgdGhlCgltaXNzaW5nIHRlbXBsYXRlIGlmZGVmcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5yYzEgLT4gVjUuNy5yYzIKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9tYWtlcmVsZWFzZS54bWw6IHVzZSB0aGUgbmV3IHJ1bi1hdXRvY29uZiBzY3JpcHQKCjIwMTEtMDYtMjkgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGlzdC9ydW4tYXV0b2NvbmY6IEEgc2NyaXB0IHRvIGludm9rZSB0aGUgY29ycmVjdCB2ZXJzaW9uIG9mIHRoZQoJYXV0b2NvbmYgdG9vbAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogcmVtYWluaW5nIGNvbW1hbmQgbGluZSBjaGFuZ2VzIGZvciBzdm4gLT4KCWdpdAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L21ha2VyZWxlYXNlLnhtbDogbWFrZSB0aGUgYnJhbmNoIGVjaG8gb3V0cHV0IGFuZCBzdm4gdXBkYXRlCgljb252ZXJ0ZWQgdG8gZ2l0IGVxdWl2YWxlbnRzCgoyMDExLTA2LTI5ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRpc3QvbWFrZXJlbGVhc2UueG1sOiBwdWxsIHRoZSBicmFuY2ggaW5mbyBmcm9tIGdpdAoKMjAxMS0wNi0yOSAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBkaXN0L3JlbGVhc2U6IG5vdGVkIHRoYXQgdGhlIG1hc3RlciBicmFuY2ggaXMgaW4gcmMgc3RhdGUKCjIwMTEtMDYtMjggIFdlcyBIYXJkYWtlciA8b3BlbnNvdXJjZUBoYXJkYWtlcnMubmV0PgoKCSogRkFROiBNZW50aW9uIHRoZSBHaXQgd2lraSBwYWdlCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogdXNlIGdpdCBtZXJnZSB3aXRoIHRoZSAtLWxvZwoJb3B0aW9uCgoyMDExLTA2LTI4ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YW5hc3NjaGVAYWNtLm9yZz4KCgkqIC5naXRpZ25vcmU6IEFkZCAuZ2l0aWdub3JlCgoyMDExLTA2LTI4ICBXZXMgSGFyZGFrZXIgPG9wZW5zb3VyY2VAaGFyZGFrZXJzLm5ldD4KCgkqIEZBUTogV2UncmUgbm93IHVzaW5nIGdpdCEKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiB1c2UgcmViYXNlIHRvIHB1dCBsb2NhbCBjaGFuZ2VzIGF0Cgl0aGUgdG9wIG9mIHRoZSByZW1vdGUgYnJhbmNoZXMgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMyAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCBhIGZlYXR1cmUgdG8gbm90IHJvbGwKCWJyYW5jaGVzIGN1cnJlbmx5IGluIHJjIHBoYXNlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vdHJ1bmtAMjA1MzIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI3ICBXZXMgSGFyZGFrZXIgPGhhcmRha2VyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGxvY2FsL2dpdHRvb2xzL3NoZWxsLWZ1bmN0aW9uczogYWRkZWQgYSBuc3JvbGx1cCBmdW5jdGlvbiBmb3IKCXJvbGxpbmcgYnJhbmNoZXMgdXB3YXJkLiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUzMSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBjcmVhdGVkIGFuIG5zcGF0Y2hhcHBseSBmdW5jdGlvbgoJdG8gYXBwbHkgYSBwcmV2aW91c2x5IHRlc3RlZCBwYXRjaCBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTMwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IGFkZGVkIGEgbnN0cnlwYXRjaCBmdW5jdGlvbiB0bwoJdGVzdCBwYXRjaCBhcHBsaWNhdGlvbiBhZ2FpbnN0IHZhcmlvdXMgYnJhbmNoZXMgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyOSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjcgIFdlcyBIYXJkYWtlciA8aGFyZGFrZXJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbG9jYWwvZ2l0dG9vbHMvc2hlbGwtZnVuY3Rpb25zOiBhZGRlZCB2ZXJib3NlIG91dHB1dCBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI4IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IG1vcmUgcHJlZml4IGNoYW5nZXMgYW5kIGJldHRlcgoJc2V0dGluZyBvZiBkZWZhdWx0IHZhbHVlcyBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTI3IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNyAgV2VzIEhhcmRha2VyIDxoYXJkYWtlckB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6IHVzZSBucyBwcmVmaXhlcyBpbnN0ZWFkIG9mIGdlbmVyaWMKCXNubXAgcHJlZml4ZXMgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby90cnVua0AyMDUyNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjQgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBDaGFuZ2VMb2c6IHZlcnNpb24gdXBkYXRlIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTI0IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yNCAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiAKCU1pc3NpbmcgY2hlY2sgZm9yIHJwbXRzLmggZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogY29uZmlndXJlOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKCW1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKCW1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsCgltYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsCgltYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsCgltYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCgltYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsCgltYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLAoJbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKCW1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAoJbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCgltYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKCW1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAoJbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAoJbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsIG1hbi9uZXRzbm1wX29sZF9hcGkuMywKCW1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAoJbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAoJbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLAoJbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsCgltYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKCW1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAoJbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAoJbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywKCW1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsCgltYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKCW1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKCW1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywKCW1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdXRpbC4zLAoJbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKCW1hbi9uZXRzbm1wX3dhdGNoZXIuMzogZG9jdW1lbnRhdGlvbiB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTI0ICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCglzbm1wbGliL3NubXBfdmVyc2lvbi5jOiBWZXJzaW9uIG51bWJlciB1cGRhdGUgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MjAgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIzICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCglpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOiBUd2VhayBSUE0gaGFuZGxpbmcgdG8gd29yawoJd2l0aCBsaWJyYXJ5IHZlcnNpb24gNC45IEJhc2VkIG9uIGEgcGF0Y2ggYnkgSmFuIFNhZnJhbmVrIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNC1wYXRjaGVzQDIwNTE5IDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMiAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6IFByb3ZpZGUgYSBmcmFtZXdvcmsgZm9yIHJlYWRpbmcKCVJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkgKHJhdGhlciB0aGFuIHF1ZXJ5aW5nCgl0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCglmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS00LXBhdGNoZXNAMjA1MTggMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIyICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogQ2hhbmdlTG9nOiB2ZXJzaW9uIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBjb25maWd1cmU6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNSAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjIgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvbmV0LXNubXAuc3BlYywKCXNubXBsaWIvc25tcF92ZXJzaW9uLmM6IFZlcnNpb24gbnVtYmVyIHVwZGF0ZSBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTMtcGF0Y2hlc0AyMDUxNCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMjEgIERhdmUgU2hpZWxkIDxkdHMxMkB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oLAoJYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jOiBQcm92aWRlIGEKCWZyYW1ld29yayBmb3IgcmVhZGluZyBSUE0gcGFja2FnZSBpbmZvcm1hdGlvbiBmcm9tIGEgY2FjaGUgZGlyZWN0b3J5CgkocmF0aGVyIHRoYW4gcXVlcnlpbmcgdGhlIFJQTWRiIGRpcmVjdGx5KS4gIE15IGFwb2xvZ2llcyB0byBKZWZmIEpvaG5zb24gZm9yIHRoZSBkZWxheSBpbiBhZGRpbmcgdGhpcwoJZnVuY3Rpb25hbGl0eS4gIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNi1wYXRjaGVzQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0yMSAgRGF2ZSBTaGllbGQgPGR0czEyQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsCglhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6IFByb3ZpZGUgYQoJZnJhbWV3b3JrIGZvciByZWFkaW5nIFJQTSBwYWNrYWdlIGluZm9ybWF0aW9uIGZyb20gYSBjYWNoZSBkaXJlY3RvcnkKCShyYXRoZXIgdGhhbiBxdWVyeWluZyB0aGUgUlBNZGIgZGlyZWN0bHkpLiAgTXkgYXBvbG9naWVzIHRvIEplZmYgSm9obnNvbiBmb3IgdGhlIGRlbGF5IGluIGFkZGluZyB0aGlzCglmdW5jdGlvbmFsaXR5LiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTMgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTIxICBEYXZlIFNoaWVsZCA8ZHRzMTJAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwKCWFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzogUHJvdmlkZSBhCglmcmFtZXdvcmsgZm9yIHJlYWRpbmcgUlBNIHBhY2thZ2UgaW5mb3JtYXRpb24gZnJvbSBhIGNhY2hlIGRpcmVjdG9yeQoJKHJhdGhlciB0aGFuIHF1ZXJ5aW5nIHRoZSBSUE1kYiBkaXJlY3RseSkuICBNeSBhcG9sb2dpZXMgdG8gSmVmZiBKb2huc29uIGZvciB0aGUgZGVsYXkgaW4gYWRkaW5nIHRoaXMKCWZ1bmN0aW9uYWxpdHkuICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL3RydW5rQDIwNTEzIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKMjAxMS0wNi0xOSAgQmFydCBWYW4gQXNzY2hlIDxidmFzc2NoZUB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+CgoJKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzogRm9sbG93LXVwIGZvciByMjA1MTE6IHJlYWxseSB1c2UKCXRoZSBwcm9wZXIgZm9ybWF0IHNwZWNpZmljYXRpb24uICBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTYtcGF0Y2hlc0AyMDUxMiAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTkgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6IEZvbGxvdy11cCBmb3IgcjIwNTExOiByZWFsbHkgdXNlCgl0aGUgcHJvcGVyIGZvcm1hdCBzcGVjaWZpY2F0aW9uLiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTIgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCWludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCgl0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS02LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOiBGaXggYSBidWcgaW4gYSBkZWJ1ZyBzdGF0ZW1lbnQKCWludHJvZHVjZWQgYnkgcGF0Y2ggMzMxMDI1MCAvIHIyMDQ5NDogdXNlICVsZCB0byBwcmludCBhIHZhbHVlIG9mCgl0eXBlIG9pZCBpbnN0ZWFkIG9mICVkLiAgZ2l0LXN2bi1pZDoKCglmaWxlOi8vL2hvbWUvaGFyZGFrZXIvbGliL3NmLWJrdXBzL25ldC1zbm1wLWNvbnZlcnQtc3ZucmVwby9icmFuY2hlcy9WNS01LXBhdGNoZXNAMjA1MTEgMDY4Mjc4MDktYTUyYS0wNDEwLWIzNjYtZDY2NzE4NjI5ZGVkCgoyMDExLTA2LTE3ICBCYXJ0IFZhbiBBc3NjaGUgPGJ2YXNzY2hlQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOiBVc2UgJXAgdG8gcHJpbnQgYSBwb2ludGVyIGluc3RlYWQKCW9mICVsZCBnaXQtc3ZuLWlkOgoKCWZpbGU6Ly8vaG9tZS9oYXJkYWtlci9saWIvc2YtYmt1cHMvbmV0LXNubXAtY29udmVydC1zdm5yZXBvL2JyYW5jaGVzL1Y1LTQtcGF0Y2hlc0AyMDUxMCAwNjgyNzgwOS1hNTJhLTA0MTAtYjM2Ni1kNjY3MTg2MjlkZWQKCjIwMTEtMDYtMTcgIEJhcnQgVmFuIEFzc2NoZSA8YnZhc3NjaGVAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6IFVzZSAlcCB0byBwcmludCBhIHBvaW50ZXIgaW5zdGVhZAoJb2YgJWxkIGdpdC1zdm4taWQ6CgoJZmlsZTovLy9ob21lL2hhcmRha2VyL2xpYi9zZi1ia3Vwcy9uZXQtc25tcC1jb252ZXJ0LXN2bnJlcG8vYnJhbmNoZXMvVjUtNS1wYXRjaGVzQDIwNTEwIDA2ODI3ODA5LWE1MmEtMDQxMC1iMzY2LWQ2NjcxODYyOWRlZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNy5wcmUyIC0+IFY1LjcucmMxCgoyMDExLTA2LTEzIDE2OjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBydW4gY29ycmVjdCB2ZXJzaW9uIG9mIGF1dG9jb25mCgoyMDExLTA2LTEzIDE2OjEwICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTEtMDYtMTMgMTY6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJhbiBhdXRvY29uZgoKMjAxMS0wNi0xMCAwNjowMyAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXM6CgogICBGaXggYnVpbGQgb2Ygc25tcHVzbSB3aGVuIGFkZGl0aW9uYWwgc2VjIG1vZHVsZXMgcmVxdWVzdGVkCgoyMDExLTA2LTA5IDIxOjEzICBuYmEKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIEluY2x1ZGUgc3Rk54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAj7HniK31gJGL772k9YCMtPWAkpFiLmggdG8gbWFrZSBkbWFsbG9jIGhhcHB5CgoyMDExLTA2LTA5IDE0OjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgQ0hBTkdFUzogQlVHOiAzMTUxODQ1OiBmaXggbXVsdGlwbGUgcmVnaXN0cmF0aW9ucyBvZiBzbm1wCiAgIHRyYW5zcG9ydCBoYW5kbGVyCgoyMDExLTA2LTA4IDE2OjM0ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG1vcmUgZG5zc2VjIHR3ZWFrcwogICAKICAgLSBjcmVhdGUgYW4gYXBwLWdsb2JhbCB2YWxpZGF0b3IgY29udGV4dCBmb3IgdXNlIHdpdGggYWxsCiAgIHZhbGlkYXRpb24gcm91dGluZXMuIG1haW5seSB1c2VmdWwgZm9yIGxvbmctbGl2ZWQgYXBwcy4KICAgLSB1c2UgdGhlIGFwcHR5cGUgYXMgdGhlIHZhbGlkYXRvciAnc2NvcGUnLCBhbGxvd2luZwogICBmb3IgYXBwLXNwZWNpZmljIGNvbmZpZ3VyYXRpb24gb2YgdmFsaWRhdGlvbiB2aWEgbGlidmFsJ3MKICAgZG5zdmFsLmNvbmYKCjIwMTEtMDYtMDcgMTY6NDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgYWRkIGEgbWF4IGRlZmluZSBmb3IgZWFjaCBkZWZhdWx0IHN0b3JlIHR5cGUKICAgCiAgIG5vdCBhY3R1YWxseSB1c2VkLCBqdXN0IGEgaGVscGZ1bCByZW1pbmRlciBmb3IgdGhvc2UgYWRkaW5nCiAgIG5ldyBpZHMgd2hvIG1pZ2h0IG5vdCB0aGluayB0byBjaGVjayBORVRTTk1QX0RTX01BWF9TVUJJRFMuCiAgICh0aGUgYm9vbCBsaXN0IGlzIHJhcGlkbHkgYXBwcm9hY2hpbmcgdGhlIGN1cnJlbnQgbGltaXQuKQoKMjAxMS0wNi0wNyAxNjo0NiAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIG1lbnRpb24gYnVpbGRkaXIgd2hlbiBjb21wbGFpbmluZyBhYm91dCBub3QgYmVpbmcgcnVuIGZyb20gc291cmNlCiAgIHRyZWUKCjIwMTEtMDYtMDEgMjI6MjQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMzMTAyNTA6IGZyb20gZmVubmVyOiBtaXNjIGZpeGVzIGZvcgogICBkZWJ1Z2dpbmcgb3V0cHV0IG9mIGFnZW50eAoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42IC0+IFY1LjcucHJlMgoKMjAxMS0wNS0xMCAwMDoyMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDExLTA1LTEwIDAwOjIwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBDKysgLT4gQyBjb21tZW50cwoKMjAxMS0wNS0xMCAwMDoxNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIE5FV1MgdXBkYXRlIGZvciA1LjcKCjIwMTEtMDUtMDkgMjM6MTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWQuaDoKCiAgIHJldmVydCB0aGUgb2lkIHR5cGVkZWYgcmVzaXppbmcgZnJvbSByMTc4MDkgYmVjYXVzZSBpdCBicm9rZQogICBiYWNrd2FyZHMgY29tcGF0LCBhcyBwb2ludGVkIG91dCBieSB1c2VycyBvbiB0aGUgLWNvZGVycyBsaXN0CgoyMDExLTA1LTA5IDIyOjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICB1c2UgcHJvcGVyIGF1dG9jb25mIHZlcnNpb24KCjIwMTEtMDUtMDkgMjI6MzggIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYywgcGVybC9BU04vQVNOLnBtLCAgIAogICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtLCAgICBwZXJsL2FnZW50L2FnZW50LnBtLAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTEtMDUtMDkgMjI6MzggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDExLTA1LTA5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRlZCBhIG1pc3NpbmcgMCBpbiB0aGUgcmV2aXNpb24gZGF0ZQoKMjAxMS0wNS0wOSAyMDo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIFVzZSBzeW1ib2xpYyBuYW1lZCBmb3IgaWZUeXBlIHZhbHVlcwoKMjAxMS0wNS0wOSAyMDo0MyAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgSUFOQSBoYXMgZml4ZWQgdGhlIElBTkEtSVBQTS1NRVRSSUNTLVJFR0lTVFJZLU1JQgoKMjAxMS0wNS0wOSAxNToyNCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgYWRkZWQgYSBuZXcgUkVWSVNJT04gY2xhdXNlIHRvIGxpc3QgdGhlIGNoYW5nZXMgaW4gdGhlIHRoZSByZWNlbnQKICAgdXBkYXRlCgoyMDExLTA1LTA5IDE0OjE5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgcGluZy90cmFjZXJvdXRlIG1pYnMgbm90ZQoKMjAxMS0wNS0wOSAxNDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHdlIGFjdHVhbGx5IHdhbnQgdG8gdXNlIHRoZSBiYXNlIE9JRCBhcyB0aGUgc3RhcnRpbmcgcG9pbnQsIG5vdAogICB0aGUgcmVnIE9JRC4KCjIwMTEtMDUtMDkgMTQ6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXhlZCB0aGUgcHJveHkgc3VwcG9ydCB0byBkbyBhIHByb3BlciBPSUQgbGVzcyB0aGFuIE9JRCBjb21wYXJlLgogICBXZSBhY3R1YWxseSBkb24ndCBjYXJlIGFib3V0IHRoZSBsZW5ndGggb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QsCiAgIG9ubHkKICAgdGhhdCBpdCB3YXMgYmVmb3JlIHRoZSByZWdpc3RlcmVkIHJlYmFzZQoKMjAxMS0wNS0wOSAxNDoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIENIQU5HRVM6IHBhdGNoIDMxNDA4MzM6IGZyb20ganNhZnJhbmVrOiBmaXggcHJveHkgR0VUTkVYVAogICByZXF1ZXN0cwogICBXaGVuIE9JRHMgcmVxdWVzdGVkIGFyZSBiZWxvdyB0aGUgcHJveHkgcmVxdWVzdCByZW1hcCwgd2UgbmVlZCB0bwogICBub3QKICAgaW5jbHVkZSBhbnkgT0lEcyB0aGF0IG1pZ2h0IGJlIGluIHRoZSBzcGFjZSBiZXR3ZWVuIHRoZSBvcmlnaW5hbAogICBPSUQKICAgYW5kIHRoZSByZW1hcHBlZCBPSUQuIFRoaXMgcGF0Y2ggZnVkZ2VzIHRoZSByZXF1ZXN0IHNvIHRoYXQgaXQKICAgZml4ZXMKICAgdGhlIHJlcXVlc3QgT0lEIHNvIGl0J3MganVzdCBiZWZvcmUgdGhlIHJlbWFwcGVkIHByb3h5IHJhbmdlLgoKMjAxMS0wNS0wOSAxNDoxOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIE5FV1M6IFBBVENIIDMxNjczMjU6IGZyb20ga3Jpc3p0b2Zvcm86IFVDRC1TTk1QL1N5c3RlbVN0YXRzOiBhZGQKICAgdmFyaWFibGVzCiAgIHRvIHJlcG9ydCBjcHVzdGVhbCwgY3B1Z3Vlc3QsIGNwdWd1ZXN0bmljZQoKMjAxMS0wNS0wOSAxNDoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgQ0hBTkdFUzogcGF0Y2ggMzE4NDAyNjogZnJvbSBlaXZuYWVzOiBBdm9pZCBjb25zdGFudCByZWZyZXNoIG9mCiAgIGludGVyZmFjZSBzdGF0aXN0aWNzCgoyMDExLTA1LTA5IDEwOjQ0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL3NjYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSB0aGUgTVNWQyBjb21waWxlci4KCjIwMTEtMDUtMDkgMTA6MzUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvZ2V0dGltZW9mZGF5LmM6CgogICBXaW4zMi9NU1ZDOiBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDExLTA1LTA5IDEwOjMzICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBGaXhlZCBhIHllYXItMjAzOCBidWcgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mCiAgIGlwUm91dGVUYWJsZS4KCjIwMTEtMDUtMDggMjA6MDEgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUHJvYmVIaXN0b3J5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ1Jlc3VsdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVByb2JlSGlzdG9yeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVSZXN1bHRzVGFibGUuYzoKCiAgIEZpeCB3YXJuaW5ncyBhbmQgZGF0YSBmb3JtYXQgZm9yIERhdGVBbmRUaW1lIG9iamVjdHMuCiAgIFRoZXNlIG1vZHVsZXMgd29yaywgYnV0OgogICAtIFRoZXkgYXJlIExpbnV4IG9ubHkKICAgLSBSb3dzIG11c3QgYmUgY3JlYXRlZCB3aXRoIHJvd1N0YXR1cyBjcmVhdGVBbmRXYWl0IGJlZm9yZSB0aGV5CiAgIGFyZSBwb3B1bGF0ZWQKICAgLSBBZ2VudCBtdXN0IHJ1biBhcyByb290CiAgIC0gQWdlbnQgaXMgYmxvY2tlZCB3aGlsZSB0ZXN0cyBydW4KICAgLSBEYXRhIGZvcm1hdCBmb3IgSW5ldEFkZHJlc3Mgb2JqZWN0cyBpcyB3cm9uZy4gSXQgaXMgQVNDSUksIG5vdAogICBiaW5hcnkKICAgKG1ha2luZyBpdCBlYXNpZXIgdG8gdXNlIGZyb20gdGhlIGNvbW1hbmQgbGluZSwgYnV0IC4uLikKCjIwMTEtMDUtMDcgMTU6MjIgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUmVtb3ZlZCBhbiB1bnVzZWQgbGFiZWwgZnJvbSBwZXJsL1NOTVAvU05NUC54cy4KCjIwMTEtMDUtMDcgMTQ6NDggIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBEZWNsYXJlIHRoZSBPSUQgYXJndW1lbnQgdHlwZSBvZiBNSUIgcmVnaXN0cmF0aW9uCiAgIGZ1bmN0aW9ucyBhcyAnY29uc3Qgb2lkIConIGluc3RlYWQgb2YgJ29pZCAqJyBzaW5jZSB0aGVzZQogICBmdW5jdGlvbnMgZG8gbm90IG1vZGlmeSB0aGUgT0lELgoKMjAxMS0wNS0wNyAxNDo0NCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBVc2UgdGhlIGNvcnJlY3QgZGF0YSB0eXBlIGZvciB0aGUgJ2NhY2hlIGV4cGlyZWQnIHZhcmlhYmxlOiBjaGFyCiAgIGluc3RlYWQgb2YgaW50LgoKMjAxMS0wNS0wNyAxNDo0MyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIyMDE1MS4KCjIwMTEtMDUtMDcgMTM6MTUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgV2luMzI6IGltcHJvdmVkIHNvdXJjZSBjb2RlIGNvbnNpc3RlbmN5IGJ5IHVzaW5nIExQQ1RTVFIgaW5zdGVhZAogICBvZiBMUENTVFIuIE5vdGU6IHRoaXMgZG9lcyBub3QgbWVhbiB0aGF0IFVuaWNvZGUgYnVpbGRzIGFyZQogICBzdXBwb3J0ZWQuCgoyMDExLTA1LTA3IDEzOjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9uZXRsaW5rLmM6CgogICBBZGQgZmlsZSBmb3Jnb3R0ZW4gaW4gcjIwMzUzCgoyMDExLTA1LTA2IDIzOjMyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0ggMzEyNTk2OiBmcm9tIGZhYmxlZDgwOiBsaXN0ZW4gZm9yIG5ldGxpbmsKICAgY2hhbmdlIGV2ZW50cyBmb3IgdGhlIGFycC1yZWxhdGVkIHRhYmxlcwoKMjAxMS0wNS0wNiAxODozNiAgcnN0b3J5CgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgb3B0aW9uYWwgc3VwcG9ydCBmb3IgbG9jYWwgRE5TU0VDIHZhbGlkYXRpb24KICAgb2YgaG9zdG5hbWVzCiAgIAogICAtIG9wdGlvbmFsIGF0IGNvbmZpZ3VyZSB0aW1lOiAtLXdpdGgtbG9jYWwtZG5zc2VjLXZhbGlkYXRpb24KICAgLSByZXF1aXJlcyBETlNTRUMtVG9vbCB2YWxpZGF0aW9uIGxpYnJhcmllcwogICAtIGluaXRpYWwgc3VwcG9ydCwgZm9yIHN5c3RlbXMgd2l0aCBnZXRhZGRyaW5mby4gc3VwcG9ydCBmb3IKICAgYWRkaXRpb25hbAogICByZXNvbHZlciBpbnRlcmZhY2VzIGNvbWluZyBzb29uLgogICAtIGFsc28gVE9ETzogZmxhZyBmb3IgaWdub3JpbmcgdmFsaWRhdG9pbiBlcnJvcnMgKGxvZyAmIGNvbnRpbnVlKQoKMjAxMS0wNS0wNiAxODozNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oOgoKICAgbW92ZSB1bnVzZWQgKGFuZCB0b28gZ2VuZXJpYykgdG9rZW4gd2l0aGluIFVDRF9DT01QQVRJQkxFIGlmZGVmCiAgIAogICAtIE1BWExBQkVMIGNvbmZsaWN0cyB3aXRoIDxhcnBhL25hbWVzZXIuaD4KICAgLSBhZGRlZCBORVRTTk1QX01BWExBQkVMCgoyMDExLTA1LTA2IDE4OjM2ICByc3RvcnkKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgY29uZmlndXJlL01ha2VmaWxlcyBmb3IgRE5TU0VDIGxvY2FsIHZhbGlkYXRpb24gb3B0aW9uCgoyMDExLTA1LTA2IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgcmVtb3ZlZCB0aGUgYWNjaWRlbnRhbCBicm9rZW4gZmVhdHVyZSByZXF1aXJlIGxpbmUgdGhhdCBnb3QgaGFsZgogICBpbnNlcnRlZAoKMjAxMS0wNS0wNiAxMzo1MCAgZHRzMTIKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgRml4IGluY29tcGxldGUgdW5pbnN0YWxsIGNvbmZpZ3VyYXRpb246CiAgIC0gYnJva2VuIHJlbW92YWwgb2YgTWljcm9zb2Z0IERMTAogICAtIHJlbW92ZSBhc3NvcnRlZCBuZXcgTUlCcyBhbmQgaGVhZGVyIGZpbGVzCgoyMDExLTA1LTA2IDEyOjU4ICBkdHMxMgoKICAgKiB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbDoKCiAgIFN1cHBvcnQgVGFyL0daaXAgY29tbWFuZCBwYXRocyBjb250YWluaW5nIHNwYWNlcwoKMjAxMS0wNS0wNiAxMjo1NyAgZHRzMTIKCiAgICogd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGw6CgogICBSZXBvcnQgR1ppcCBjb21tYW5kIGNvcnJlY3RseQoKMjAxMS0wNS0wNSAyMTo0OCAgbmJhCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBmb3IgRHJhZ29uRmx5IEJTRCAoZG9lcyBub3QgZGVmaW5lIElQX1NFTkRTUkNBRERSKQoKMjAxMS0wNS0wNSAyMDoyOSAgbmJhCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOgoKICAgRml4IHNwZWxsaW5nIG9mIFNPX1JFQ1ZEU1RBRERSCgoyMDExLTA1LTA1IDE4OjU0ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE5FV1M6IGFwcHM6IGFkZCBzbm1wLmNvbmYgdG9rZW5zIGZvciB0aW1lb3V0cyBhbmQgcmV0cmllcwoKMjAxMS0wNS0wNSAwNjowNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIENIQU5HRVM6IE1pbkdXOiBNYWRlIHJlZ3Jlc3Npb24gdGVzdCBvdXRwdXQgaW5kZXBlbmRlbnQgb2YgdGhlCiAgIE5ldC1TTk1QIHZhcmlhYmxlcyBkZWZpbmVkIGluIHRoZSBXaW5kb3dzIHJlZ2lzdHJ5LiBTb21lIHRlc3RzCiAgIHRoYXQgZmFpbGVkIHByZXZpb3VzbHkgYWZ0ZXIgdGhlIE5ldC1TTk1QIGJpbmFyaWVzIChNU1ZDIGJ1aWxkKQogICBoYWQgYmVlbiBpbnN0YWxsZWQgZG8gbm93IHBhc3MuCgoyMDExLTA1LTA1IDA1OjU3ICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwudmNwcm9qLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LnZjcHJvaiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osCiAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAudmNwcm9qLCB3aW4zMi9zbm1wdHJhcGQvc25tcHRyYXBkLnZjcHJvaiwgCiAgICAgICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLnZjcHJvaiwgd2luMzIvc25tcHZhY20vc25tcHZhY20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osIHdpbjMyL3dpbjMyLnNsbiwgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgUmVtb3ZlZCBWaXN1YWwgU3R1ZGlvIDIwMDUgc29sdXRpb24gYW5kIHByb2plY3QgZmlsZXMgYWdhaW4gc2luY2UKICAgVmlzdWFsIFN0dWRpbyAyMDEwIHJlZnVzZXMgdG8gbG9hZCB0aGVzZS4KCjIwMTEtMDUtMDQgMjM6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2xlYW4gdGhlIHBlcmwvcHl0aG9uIGZlYXR1cmUgbGVmdG92ZXJzCgoyMDExLTA1LTA0IDIzOjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGZpeCBtaWIgbW9kdWxlIGludm9jYXRpb24KCjIwMTEtMDUtMDQgMjA6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIGZpeCBpZmRlZiB0eXBvCgoyMDExLTA1LTA0IDIwOjU2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBwZXJsL3B5dGhvbiBmZWF0dXJlIGRlcGVuZGVuY2llcwoKMjAxMS0wNS0wNCAyMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgcmV2ZXJ0ZWQgYXV0b19ubGlzdCBtYWNybyB1c2FnZTsgdGhlIGZ1bmN0aW9uIGlzIHVzZWQgaW4gaGVhZGVycwoKMjAxMS0wNS0wNCAyMDo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBBZGQgYSAtVCBvcHRpb24gdG8gcnVuICdtYWtlIHRlc3QnCgoyMDExLTA1LTA0IDIwOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IHRoZSBlbmNvZGVfa2V5Y2hhbmdlIC5mdCBmaWxlbmFtZQoKMjAxMS0wNS0wNCAxNjoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGZpeCB0aGUgZmVhdHVyZXMgcmVxdWlyZWQgYnkgdGhlIFRyYXBSZWNlaXZlciBtb2R1bGUKCjIwMTEtMDUtMDQgMTY6MjAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkIHRoZSBUcmFwUmVjZWl2ZXIgdG8gdGhlIGxpc3Qgb2YgcGVybCBtb2R1bGVzCgoyMDExLTA1LTA0IDE0OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHVzZSB0aGUgbmV3ZXIgTmV0LVNOTVAgQVBJcywgcmF0aGVyIHRoYW4gdGhlIG9sZGVyIFVDRCBvbmVzCgoyMDExLTA1LTA0IDE0OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSBTRVQgY29kZSB3aGVuIHVuZGVyIC0tcmVhZC1vbmx5IG1vZGUKCjIwMTEtMDUtMDQgMTQ6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHJlcXVpcmUgY2hlY2tfdmJfdWludAoKMjAxMS0wNS0wNCAxNDo0MSAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMsCiAgICAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYywgICAKICAgICAgcHl0aG9uL25ldHNubXAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBsYXN0IG9mIHRoZSBwZXJsLXVzZWQgZmVhdHVyZSBmdW5jdGlvbnMKCjIwMTEtMDUtMDQgMTQ6NDAgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9zdWJhZ2VudC5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKICAgICAgbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgc3RhcnRlZCB0aGUgZmluYWwgc2V0IG9mIGZ1bmN0aW9uIHJlbW92YWxzIGZvciBmZWF0dXJlcyByZXF1aXJlZAogICBieSBwZXJsL3B5dGhvbgoKMjAxMS0wNS0wNCAxNDozOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaToKCiAgIGFkZGVkIHRoZSBuZXQtc25tcC1mZWF0dXJlcy5oIGhlYWRlcgoKMjAxMS0wNS0wNCAxNDozOSAgaGFyZGFrZXIKCiAgICogIHBlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL1NOTVAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL2FnZW50L25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oOgoKICAgQWRkZWQgcGVybCBmZWF0dXJlIHJlcXVpcmVtZW50cwoKMjAxMS0wNS0wNCAxNDozOSAgaGFyZGFrZXIKCiAgICogIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgcGVybC9BU04vbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvT0lEL25ldHNubXAtZmVhdHVyZS1kZWZpbml0aW9ucy5oLCAgIAogICAgICBwZXJsL1NOTVAvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvYWdlbnQvbmV0c25tcC1mZWF0dXJlLWRlZmluaXRpb25zLmgsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9uZXRzbm1wLWZlYXR1cmUtZGVmaW5pdGlvbnMuaDoKCiAgIGhvcGVmdWxseSB3b3JraW5nIHJ1bGVzIHRvIGFwcGx5IGZlYXR1cmUgcmVxdWlyZW1lbnRzIHRvIHBlcmwgYW5kCiAgIHB5dGhvbgoKMjAxMS0wNS0wNCAxNDozOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1vcmUgY2hhbmdlcyB0byByZW1vdmUgdW5uZWVkZWQgZnVuY3Rpb25zIHByaW1hcmlseSB3aGVuIHdyaXRlCiAgIG1vZGUgaXMgdHVybmVkIG9mZgoKMjAxMS0wNS0wNCAxNDozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGNoYW5nZSB0aGUgd2FudCBpbnZvY2F0aW9uIHRvIG9ubHkgZGVmYXVsdCB0byBleGNsdWRlIGV4dGVybmFsCiAgIGhvb2tzCgoyMDExLTA1LTA0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6CgogICBzZWFyY2ggdGhyb3VnaCAueHMgZmlsZXMgZm9yIGZ1bmN0aW9uIGludm9jYXRpb25zCgoyMDExLTA1LTA0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBmb3Jnb3QgYSBzZW1pY29sb24KCjIwMTEtMDUtMDQgMTQ6MzcgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYzoKCiAgIGlxdWVyeSBwZHUgc2Vzc2lvbnMgYXJlIG9ubHkgbmVlZGVkIGluIHdyaXRlIG1vZGUuCgoyMDExLTA1LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IGZlYXR1cmUgZGV0ZWN0aW9uIG9mIHNvbWV0aW1lcy1idWlsdCBhcHBsaWNhdGlvbnMKCjIwMTEtMDUtMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIHVzZSB0aGUgZmVhdHVyZV91bnVzZWQgbWFjcm8gZm9yIG1ha2luZyBhbiBlbXB0eSBmaWxlIGZvcgogICBjb25zaXN0ZW5jeQoKMjAxMS0wNS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBhcHBzL3NubXB0bHMuYywgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBBbm90aGVyIHN3ZWVwIGZvciB1bnVzZWQgZnVuY3Rpb25zIHdoZW4gcmVhZF9vbmx5IG1vZGUgaXMgdHVybmVkCiAgIG9uCgoyMDExLTA1LTA0IDE0OjM0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50U2V0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBtYXJrIGEgc2xldyBvZiBmdW5jdGlvbnMgYXMgZmVhdHVyZXMgdGhhdCBhcmUgb25seSBuZWVkZWQgd2l0aAogICB3cml0ZV9zdXBwb3J0CgoyMDExLTA1LTA0IDE0OjMyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6CgogICBydW4gZ3JlcCB3aXRoIC1uCgoyMDExLTA1LTA0IDE0OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZmVhdHVyaXplIG5ldHNubXBfc29ja2FkZHJfc2l6ZQoKMjAxMS0wNS0wNCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgcmVtb3ZlIGEgZmVhdHVyZV9yZXF1aXJlIG5vdCBhY3R1YWxseSBuZWVkZWQuCgoyMDExLTA1LTA0IDE0OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgbWFyayBTVUJDT05UQUlORVJfRklORCBhcyBhIGZlYXR1cmUKCjIwMTEtMDUtMDQgMTQ6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdHNtLmM6CgogICB0aGUgcm93IGNyZWF0aW9uIEFQSSBpcyBvbmx5IHVzZWQgaW4gdGhlIFRTTSBpbXBsZW1lbnRhdGlvbgoKMjAxMS0wNS0wNCAxNDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIHRoZSBuZXdlciBjb250ZXh0IGVuZ2luZUlEIHByb2JpbmcgaXMgb25seSBuZWVkZWQgaWZmIFRTTSBpcyBpbgogICB1c2UKCjIwMTEtMDUtMDQgMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBmaXggYW4gaWZkZWYgdHlwbwoKMjAxMS0wNS0wNCAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIG1vdmVkIGZldGF1cmUgY2hpbGRfb2Ygc3RhdGVtZW50cyB0byB0aGUgdG9wIG9mIHRoZSBmaWxlCgoyMDExLTA1LTA0IDE0OjMwICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIG1hcmtlZCBhIGNvdXBsZSBvZiByYXJlbHkgdXNlZCBjb250YWluZXIgZnVuY3Rpb25zLgoKMjAxMS0wNS0wNCAxNDoyOSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBzcGxpdCBvdXQgdGhlIHByZWZpeF9pbmZvIGZlYXR1cmUgaW50byBzdWItZmVhdHVyZXMKCjIwMTEtMDUtMDQgMTQ6MjkgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmM6CgogICBtYXJrIHRoZSBhY2Nlc3NvciBmdW5jdGlvbnMgYXMgdW5uZWVkZWQKCjIwMTEtMDUtMDQgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmM6CgogICBmaXggYSBjaGlsZF9vZiBzdGF0ZW1lbnQgd2l0aCBhIGNvcHkvcGFzdGUgZXJyb3IKCjIwMTEtMDUtMDQgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIHRoZSBjb250YWluZXIgcm93LXJlbW92ZSBpcyBvbmx5IG5lZWRlZCBpZiB0aGUgdGRhdGEgcmVtb3ZlX3JvdwogICBpcyBuZWVkZWQKCjIwMTEtMDUtMDQgMTQ6MjggIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBmZWF0dXJlIG1hcmtpbmcgb2YgdW51c2VkIHRkYXRhIGZ1bmN0aW9ucwogICB0YWJsZV90ZGF0YV9kZWxldGVfdGFibGUKICAgdGFibGVfdGRhdGFfZXh0cmFjdF90YWJsZQogICB0YWJsZV90ZGF0YV9yZW1vdmVfcm93CgoyMDExLTA1LTA0IDE0OjI3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmM6CgogICByZW1vdmFsIG9mIHNvbWUgcmFyZWx5IHVzZWQgZnVuY3Rpb25zCiAgIHRhYmxlX3NldF9tdWx0aV9hZGRfZGVmYXVsdF9yb3cKICAgdGFibGVfZGF0YXNldF91bnJlZ2lzdGVyX2F1dG9fZGF0YV90YWJsZQoKMjAxMS0wNS0wNCAxNDoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBBZGRlZCBhIGRlZmluaXRpb24gdG8gaW5jb3Jwb3JhdGUgcmVhZF9vbmx5L25vdGlmeV9vbmx5CgoyMDExLTA1LTA0IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGFkZGVkIGEgbWlzc2luZyBmZWF0dXJlIGRlZmluaXRpb24gbGluZQoKMjAxMS0wNS0wNCAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBhZGRlZCBiYWNrIGluIG1pc3NpbmcgbWliZ3JvdXAgZmVhdHVyZSBkZWZpbml0aW9uIGxpc3QKCjIwMTEtMDUtMDQgMTQ6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgSW5jbHVkZSB0aGUgb3JpZ2luYWwgYmFzZSBmbGFncyB0byBlbnN1cmUgLS13aXRoLWRlZmF1bHRzIGdldHMKICAgcGlja2VkIHVwCgoyMDExLTA1LTA0IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGZpeCB1c2FnZQoKMjAxMS0wNS0wNCAxNDoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBBZGRlZCBhIC1iIGZsYWcgZm9yIGJhc2UgYXJndW1lbnRzIHRvIHN0YXJ0IGZyb20KCjIwMTEtMDUtMDQgMTQ6MjUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgZGVmYXVsdCB0byBhIGxpbmVhciBzZWFjaCBvZiBzaXplIHRlc3RzLCByYXRoZXIgdGhhbiBleHBvbmVudGlhbAoKMjAxMS0wNS0wMyAxODo1NSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBHdWFyZCBuZXRzbm1wX3VkcF9yZWN2ZnJvbSgpIGV0Yy4gZGVjbGFyYXRpb25zCiAgIGNvbnNpc3RlbnRseS4KICAgQ0hBTkdFUzogV2luMzI6IEJ1aWxkcyB3aXRoIFZpc3VhbCBTdHVkaW8gMjAxMC4KCjIwMTEtMDUtMDMgMTU6MjkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAzMjkzODQyOiBFbGltaW5hdGUgcmVnaXN0cnkgYXJndW1lbnQgbGltaXQKICAgb2YgMTI3IGNoYXJhY3RlcnMgKHRoaXMgbGltaXRhdGlvbiB3YXMgcmVwb3J0ZWQgYnkgU3lsdmFpbiBEZXJ5KS4KCjIwMTEtMDUtMDIgMTE6MjIgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogaGVhZGVyIGZpbGUgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBjYW4gbm93CiAgIGJlIHVzZWQgaW4gdGhlIE1pbkdXIGVudmlyb25tZW50LgoKMjAxMS0wNC0yOSAxMToxNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBTcGVsbGluZyBhbmQgZ3JhbW1hciBmaXhlcyBmb3IgdGhlIHNvdXJjZSBjb2RlIGNvbW1lbnRzIGluCiAgIHNubXBsaWIvd2luc2VydmljZS5jLgoKMjAxMS0wNC0yOSAwMDoyMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIG5vdGUgYWJvdXQgdGhlIG5ldyB0aW1pbmcgZnVuY3Rpb24KCjIwMTEtMDQtMjkgMDA6MTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgVXBkYXRlIHRoZSBtYW51YWwgcGFnZSB0byByZWZsZWN0IHRoZSBuZXcgdGltaW5nIG9wdGlvbnMKCjIwMTEtMDQtMjkgMDA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIGJldHRlciBkb2N1bWVudGF0aW9uCgoyMDExLTA0LTI5IDAwOjE0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmM6CgogICB1c2UgdGhlIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZvciBwYXJzaW5nCiAgIGZyZXF1ZW5jaWVzL3RpbWUKCjIwMTEtMDQtMjkgMDA6MTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliLmM6CgogICBmaXggcGR1IGJ1aWxkaW5nIHRlc3RzIHVuZGVyIHZhcmlvdXMgZGlzYWJsZWQgbW9kZXMKCjIwMTEtMDQtMjkgMDA6MTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMnBkdV9idWlsZF9jbGliLmM6CgogICBkb24ndCB0cnkgdG8gYnVpbGQgdGhlIEdFVCBwZHUgdW5kZXIgbm90aWZ5X29ubHkKCjIwMTEtMDQtMjkgMDA6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBmaXggYSBidWcgd2l0aCBuby1zdWZmaXggc3RyaW5ncyBhbmQgdXNlIGEgY29uc3QgaW5wdXQgc3RyaW5nCgoyMDExLTA0LTI5IDAwOjEyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMTBuZXRzbm1wX3N0cmluZ190aW1lX3RvX3NlY3NfY2xpYi5jOgoKICAgQSBuZXcgdW5pdCB0ZXN0IGZvciB0aGUgdGltZSBjb252ZXJzaW9uIHJvdXRpbmUKCjIwMTEtMDQtMjkgMDA6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICB1c2UgdGhlIG5ldHNubXBfc3RyaW5nX3RpbWVfdG9fc2VjcygpIGZ1bmN0aW9uIGZvciBjb21wdXRpbmcKICAgaW50ZXJ2YWwgcGVyaW9kcwoKMjAxMS0wNC0yOSAwMDoxMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEFkZGVkIGEgbmV0c25tcF9zdHJpbmdfdGltZV90b19zZWNzKCkgZnVuY3Rpb25zIHRvIGNvbnZlcnQsIGUuZy4sCiAgIDFoIHRvIDM2MDAKCjIwMTEtMDQtMjkgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSBjb2RlIHRvIGJ1aWxkL3BhcnNlIEdFVC9ldGMgcmVxdWVzdHMgd2hlbiBOT1RJRllfT05MWSBpcwogICB0dXJuZWQgb24uCgoyMDExLTA0LTI3IDIxOjMzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIHRoZSBORVdTIHRvIHJlZmxlY3QgdGhlIG5ldyAtLWVuYWJsZS1yZWFkLW9ubHkgYW5kCiAgIC0tZW5hYmxlLW5vdGlmeS1vbmx5CgoyMDExLTA0LTI3IDIxOjMzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgbWlub3IgaW1wcm92ZW1lbnRzIGZvciByb25seSB2cyByd3JpdGUgaGFuZGxpbmcKCjIwMTEtMDQtMjcgMjE6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICBzdGlsbCBlbmFibGUgUk9OTFkgd2hlbiBSV1JJVEUgaXNuJ3QgcG9zc2libGUKCjIwMTEtMDQtMjcgMjE6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgZml4IEdFVCBzdXBwb3J0IHdoZW4gbm9fd3JpdGUgaXMgZW5hYmxlZAoKMjAxMS0wNC0yNyAyMTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIG1hcmsgYSBmdXR1cmUgbW9kaWZpY2F0aW9uIG5lZWQgaW4gYSBjb21tZW50CgoyMDExLTA0LTI3IDIxOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGZpeCBoYW5kbGluZyBvZiBub193cml0ZSBzdXBwb3J0CgoyMDExLTA0LTI3IDIxOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmM6CgogICBkb24ndCBvcGVuIGFueSBsaXN0ZW5pbmcgdHJhbnNwb3J0cyB3aGVuIG5vdGlmeS1vbmx5IGlzIHNwZWNpZmllZAoKMjAxMS0wNC0yNyAyMTozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIHNldCB0aGUgbm8tbGlzdGVuIGFuZCByZWFkLW9ubHkgZmxhZ3Mgd2hlbiAtLWVuYWJsZS1ub3RpZnktb25seQogICBpcyBzZXQKCjIwMTEtMDQtMjcgMjE6MzAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByYW4gYXV0b2hlYWRlcgoKMjAxMS0wNC0yNyAyMTozMCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgaW1wbGVtZW50IHRoZSBORVRTTk1QX05PX0xJU1RFTl9TVVBQT1JUIGluIHRoZXNlIHRyYW5zcG9ydHMKCjIwMTEtMDQtMjcgMjE6MzAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBhdXRvY29uZgoKMjAxMS0wNC0yNyAyMToyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBtb3ZlIHRoZSByZWFkLW9ubHkgZmxhZyBkZWZpbml0aW9uIGJlbG93IHRoZSBub3RpZnktb25seSwgc2luY2UKICAgbm90aWZ5LW9ubHkgbmVlZHMgdG8gaW1wbHkgcmVhZC1vbmx5CgoyMDExLTA0LTI3IDIxOjI5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgRGVmaW5lZCBhIG5ldyAtLWVuYWJsZS1ub3RpZnktb25seSBmbGFnIGZvciBidWlsZGluZyBhIHRvb2xzZXQKICAgdGhhdCBvbmx5IGFsbG93cyBmb3Igbm90aWZpY2F0aW9ucyB3aXRoIG5vIHJlYWQvd3JpdGUgc3VwcG9ydAoKMjAxMS0wNC0yNyAyMToyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIERlZmluZWQgYSBuZXcgLS1uby1saXN0ZW4gZmxhZyB0byByZW1vdmUgbGlzdGVuaW5nIHN1cHBvcnQKCjIwMTEtMDQtMjcgMjE6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oOgoKICAgdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seSB1c2VmdWwgd2hlbiBTRVRzIGFyZSB0dXJuZWQgb24KCjIwMTEtMDQtMjcgMjE6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi5oOgoKICAgdGhlIGRpc21hbiBzY2hlZHVsZSBtaWIgaXMgb25seSB1c2VmdWwgd2hlbiBTRVRzIGFyZSB0dXJuZWQgb24KCjIwMTEtMDQtMjcgMjE6MjggIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgoKICAgZmluaXNoZWQgbm9fd3JpdGUgc3VwcG9ydCBmb3IgY29tbW9uIGluY2x1ZGVkIHRhYmxlcwoKMjAxMS0wNC0yNyAyMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBBZGQgYmFjayBpbiAnbmV0c25tcF9zZXRfcm93X2NvbHVtbicgd2hlbiBub193cml0ZSBzdXBwb3J0IGlzCiAgIGVuYWJsZWQKICAgVGhpcyBmdW5jdGlvbiBpcyBhIGdlbmVyaWMgZGF0YSBtYW5pcHVsYXRpb24gZnVuY3Rpb24sIG5vdCBTRVQKICAgc3BlY2lmaWMKCjIwMTEtMDQtMjcgMjE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZG9uJ3QgdXNlIG1hcmtfcm93X2NvbHVtbl93cml0YWJsZSB3aGVuIHJlYWQtb25seSBzdXBwb3J0IGlzCiAgIGVuYWJsZWQKCjIwMTEtMDQtMjcgMjE6MjYgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBmaXggbm9fd3JpdGUgc3VwcG9ydAoKMjAxMS0wNC0yNyAyMToyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBmaXggbm9fd3JpdGUgc3VwcG9ydAoKMjAxMS0wNC0yNyAyMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgRG9uJ3QgZnJlZSB0aGUgaWZYVGFibGUgcm93IGZvdW5kIG9uIGxvYWQgZmFpbHVyZSBhcyB3ZSBkb24ndCBvd24KICAgaXQKCjIwMTEtMDQtMjYgMTg6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL2dpdHRvb2xzLCBsb2NhbC9naXR0b29scy9zaGVsbC1mdW5jdGlvbnM6CgogICBnaXQgYmFzaC1zaGVsbCBmdW5jdGlvbnMgdG8gZW5hYmxlIGJyYW5jaCBzd2l0Y2hpbmcgYW5kIGV4dGVybmFsCiAgIGJ1aWxkaW5nCiAgIFRoZXNlIGxvY2FsIHNoZWxsIGZ1bmN0aW9ucyAoc25tcGNvbmZpZ3VyZSBhbmQgc25tcG1ha2UpIGxldCB5b3UKICAgY29uZmlndXJlIGFuZCBidWlsZCB0aGUgTmV0LVNOTVAgc291cmNlIGNvZGUgaW4gZXh0ZXJuYWwKICAgZGlyZWN0b3JpZXMKICAgdGhhdCBhcmUgYXV0by1jYWxjdWxhdGVkIGJhc2VkIG9uIHRoZSBleGlzdGluZyBicmFuY2ggbmFtZSAod2l0aAogICBhbgogICBvcHRpb25hbCBzdWZmaXgpLiBUaGlzIGxldHMgeW91IHJ1biAnc25tcG1ha2UnIGZyb20gd2l0aGluIHRoZQogICBzb3VyY2UKICAgZGlyZWN0b3J5IGFuZCBoYXZlIGl0IGFjdHVhbGx5IGV4dGVybmFsbHkga2VlcCB0cmFjayBvZiBtb2RpZmllZAogICBmaWxlcywgZXRjLCBzbyBidWlsZGluZyBpbiBtdWx0aXBsZSBicmFuY2hlcyBjYW4gYmUgZG9uZSBmcm9tIGEKICAgc2luZ2xlCiAgIGdpdCBjaGVja291dC4KCjIwMTEtMDQtMjUgMjA6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBjbGVhbiB1cCB0aGUgaXRlcmF0b3JzCgoyMDExLTA0LTI1IDIwOjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZnJlZSB2YXJiaW5kcyBhZnRlciBzZW5kaW5nCgoyMDExLTA0LTI1IDE4OjQ4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENvbW1lbnRlZCBvdXQgYW4gdW51c2VkIGZ1bmN0aW9uIGJlY2F1c2UgdGhlIGNvbXBpbGVyIGNvbXBsYWluZWQKICAgYWJvdXQgaXQuCgoyMDExLTA0LTI1IDE4OjQ2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIEZpeGVkIHR3byBjb21waWxlciB3YXJuaW5ncy4KCjIwMTEtMDQtMjMgMTQ6MzEgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IG51bGwgY2hlY2sKCjIwMTEtMDQtMjMgMTQ6MDUgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBNb3ZlIHBvaW50ZXIgZGVyZWZlcmVuY2UgdG8gYWZ0ZXIgdGhlIGNoZWNrIGZvciBzdWNjZXNzZnVsCiAgIGFsbG9jYXRpb24gb2YgdGhlIHBvaW50ZXIKCjIwMTEtMDQtMjMgMDg6MjAgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKCjIwMTEtMDQtMjMgMDg6MTYgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZW1vdmUgYW4gdW51c2VkIHZhcmlhYmxlCgoyMDExLTA0LTIzIDA4OjA2ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCgoyMDExLTA0LTIzIDA3OjU1ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmVkdWNlIHZhcmlhYmxlIHNjb3BlCgoyMDExLTA0LTIyIDE5OjM1ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKCjIwMTEtMDQtMjIgMTk6MzAgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDQtMjIgMTc6MjkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWVudGlvbiB3aGljaCBtb2R1bGUgaXMgcmVxdWlyZWQgd2hlbiBidWlsZGluZyB0byBnZXQgdGhlIGRlbGl2ZXIKICAgc3VwcG9ydAoKMjAxMS0wNC0yMiAxNjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGRlbGV0ZWQgYW4gdW5uZWVkZWQgZGVidWdnaW5nIHN0YXRlbWVudAoKMjAxMS0wNC0yMiAxNjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIHByb3Blcmx5IHVwZGF0ZSB0aGUgbWF4IGNvdW50IGluIHRoZSBvdXRnb2luZyBub3RpZmljYXRpb25zCgoyMDExLTA0LTIyIDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgYmV0dGVyIHBhY2tldCBlc3RpbWF0aW9uIHRvIGVuc3VyZSB3ZSBkb24ndCBvdmVycnVuLgoKMjAxMS0wNC0yMiAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGVzdGltYXRlIHRoZSBwYWNrZXQgc2l6ZSBhbmQgYnJlYWsgdGhlIG5vdGlmaWNhdGlvbiB1cCBiYXNlZCBvbgogICBpdAoKMjAxMS0wNC0yMiAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIHRyYW5zZm9ybSB0aGUgbm90aWZpY2F0aW9uIHNlbmRpbmcgaW50byBhIGxhcmdlciBsb29wIGZvciBsYXRlcgogICBtdWx0aS1ub3RpZnMKCjIwMTEtMDQtMjIgMTY6MzEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBmdXJ0aGVyIGluZm9ybWF0aW9uIGFib3V0IGZlYXR1cmUgbWFya2luZy9zZWxlY3Rpb24KCjIwMTEtMDQtMjIgMTY6MzEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHRoZSBuZXcgZGVsaXZlcnkgYnkgbm90aWZpY2F0aW9ucwoKMjAxMS0wNC0yMiAxNjozMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IHRoZSBtaW5pbWFsaXN0IHN1cHBvcnQKCjIwMTEtMDQtMjIgMTY6MzAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgdGhlIG5ldyBkZWxpdmVyQnlOb3RpZnkgY29uZmlnIHRva2VucwoKMjAxMS0wNC0yMiAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIGFsbG93IHJ1biB0aW1lIG1vZGlmaWNhdGlvbnMgb2YgdGhlIE9JRHMgdG8gdXNlCgoyMDExLTA0LTIyIDE2OjMwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIGFkZCBjb25maWcgZmxhZ3MgdG8gbm90IGluY2x1ZGUgdGhlIHBlcmlvZCBjb25maWcgYW5kIG1zZyBjb3VudAogICB2YWx1ZXMKCjIwMTEtMDQtMjIgMTY6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBpbmNsdWRlIHRoZSBwZXJpb2RpYyBjb3VudCwgdGhlIG1lc3NhZ2UgbnVtYmVyIGFuZCB0aGUgbWF4CiAgIG1lc3NhZ2UgbnVtYmVyCgoyMDExLTA0LTIyIDE2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZGVsZXRlZCBkZWJ1Z2dpbmcgY29tbWVudAoKMjAxMS0wNC0yMiAxNjoyOSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCiAgICAgIG1pYnMvTkVULVNOTVAtUEVSSU9ESUMtTk9USUZZLU1JQi50eHQ6CgogICBNb3ZlIHRoZSBub3RpZmljYXRpb24gZGVmaW5pdGlvbiB0byB3aXRoaW4gdGhlIHN1Yi1taWIKCjIwMTEtMDQtMjIgMTY6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBkZWxldGUgYW4gdW51c2VkIHZhcmlhYmxlCgoyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgbG9hZCB0aGUgTUlCIGludG8gdGhlIGRlZmF1bHQgc2V0CgoyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVBFUklPRElDLU5PVElGWS1NSUIudHh0OgoKICAgQSBuZXcgbWliIHRvIGhvbGQgdGhlIHBlcmlvZGljIG5vdGlmeSBvYmplY3RzCgoyMDExLTA0LTIyIDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZmlsbCBvdXQgdGhlIGNvbmZpZyBmcmVlIHJvdXRpbmUKCjIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBwcm9wZXJseSBtb25pdG9yIHRoZSB3aG9sZSBjb250YWluZXIKCjIwMTEtMDQtMjIgMTY6MjcgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgcGFyc2UgdGhlIGNvbmYgZmlsZXMgYW5kIGNyZWF0ZSBhbmQgaW5zZXJ0IG9iamVjdHMgaW50byB0aGUKICAgY29udGFpbmVyCgoyMDExLTA0LTIyIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jOgoKICAgZGVmaW5lZCBhIGNvbnRhaW5lciB0byBzdG9yZSBhIGxpc3Qgb2YgZGVsaXZlciBvYmplY3RzIGluCgoyMDExLTA0LTIyIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgYWRkZWQgYSBuZXh0X3J1biB0aW1lc3RhbXAKCjIwMTEtMDQtMjIgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBhY3R1YWxseSBzZW5kIGEgbm90aWZpY2F0aW9uIHdpdGggdGhlIHJlc3VsdHMKCjIwMTEtMDQtMjIgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBtYWtlIHRoZSB3YWxrIG9uIHRoZSB0ZXN0IG9iamVjdCBmdW5jdGlvbi4KCjIwMTEtMDQtMjIgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmM6CgogICBjcmVhdGUgYSBtYXggcGFja2V0IHNpemUgY29uZmlnIHRva2VuIGFuZCBwYXJzZSBpdAoKMjAxMS0wNC0yMiAxNjoyNSAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICBtaW5pbWFsIHN0YXJ0aW5nIHRlc3Qgb2JqZWN0CgoyMDExLTA0LTIyIDE2OjI1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuaDoKCiAgIGFkZGVkIGEgZnVuY3Rpb24gdG8gY2FsY3VsYXRlIHRoZSB0aW1lIHVudGlsIHRoZSBuZXh0IHJ1bgoKMjAxMS0wNC0yMiAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVsaXZlci9kZWxpdmVyQnlOb3RpZnkuYzoKCiAgIHJlbW92ZSBsZWZ0IGluIHRlbXBsYXRlIGxpbmUKCjIwMTEtMDQtMjIgMTY6MjUgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kZWxpdmVyL2RlbGl2ZXJCeU5vdGlmeS5oOgoKICAgdXNlIGFuIGFsYXJtIGNhbGxiYWNrIHByb3RvdHlwZSBmb3IgZXhlY3V0ZQoKMjAxMS0wNC0yMiAxNjoyNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIsIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5LmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2RlbGl2ZXIvZGVsaXZlckJ5Tm90aWZ5Lmg6CgogICBiZWdpbm5pbmcgdGVtcGxhdGUgY29kZSBmb3IgZGVsaXZlcnkgb2YgZGF0YSBieSBub3RpZmljYXRpb25zCgoyMDExLTA0LTIyIDA5OjEzICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBSZWR1Y2UgdmFyaWFibGUgc2NvcGUKCjIwMTEtMDQtMjIgMDk6MDcgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJlZHVjZSB2YXJpYWJsZSBzY29wZXMKCjIwMTEtMDQtMjIgMDk6MDMgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTEtMDQtMTkgMDg6MzggIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC52Y3Byb2osIHdpbjMyL3dpbjMyLnNsbjoKCiAgIEFkZGVkIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0IGFuZCBzb2x1dGlvbiBmaWxlIGZvciBidWlsZGluZwogICB0aGUgTmV0LVNOTVAgbGlicmFyeSBhcyBhIHN0YXRpYyBsaWJyYXJ5LiBCb3RoIHRoZSBXaW4zMiBhbmQgdGhlCiAgIHg2NCBjb25maWd1cmF0aW9ucyBhcmUgaW5jbHVkZWQuCgoyMDExLTA0LTE5IDA3OjU3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMS0wNC0xOSAwNzozOSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qOgoKICAgTW9yZSBWaXN1YWwgU3R1ZGlvIDIwMDUgcHJvamVjdCBmaWxlIGNsZWFudXAuCgoyMDExLTA0LTE5IDA2OjU3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9iaW46CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDExLTA0LTE4IDE1OjM0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvajoKCiAgIENsZWFuZWQgdXAgV2luMzIgVlMyMDA1IHByb2plY3QgZmlsZXMgLSByZW1vdmVkIHN1cGVyZmx1b3VzCiAgIGxpYnJhcnkgcmVmZXJlbmNlcy4KCjIwMTEtMDQtMTggMTU6MjUgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAKICAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgQWRkZWQgeDY0IGNvbmZpZ3VyYXRpb25zLgoKMjAxMS0wNC0xOCAxNToxNCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGliOgoKICAgQW5vdGhlciBXaW4zMi1yZWxhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QgdXBkYXRlLgoKMjAxMS0wNC0xOCAxNToxMyAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsudmNwcm9qLCB3aW4zMi9zbm1wZC9zbm1wZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEudmNwcm9qLCB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBzZXQvc25tcHNldC52Y3Byb2osIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUudmNwcm9qLAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC52Y3Byb2osIAogICAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS52Y3Byb2osIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsudmNwcm9qLCB3aW4zMi93aW4zMmRsbC5zbG46CgogICBBZGRlZCB3aW4zMmRsbC1yZWxhdGVkIFZpc3VhbCBTdHVkaW8gMjAwNSBwcm9qZWN0IGFuZCBzb2x1dGlvbgogICBmaWxlcy4KCjIwMTEtMDQtMTggMTM6MzcgIGJ2YXNzY2hlCgogICAqICB3aW4zMiwgd2luMzIvZW5jb2RlX2tleWNoYW5nZSwgd2luMzIvbGliLCB3aW4zMi9saWJhZ2VudCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkLCB3aW4zMi9saWJzbm1wLCB3aW4zMi9saWJzbm1wX2RsbCwgICAKICAgICAgd2luMzIvbGlidWNkbWlicywgd2luMzIvbmV0LXNubXAsIHdpbjMyL25ldHNubXBtaWJzLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa2dldCwgd2luMzIvc25tcGJ1bGt3YWxrLCB3aW4zMi9zbm1wZCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhLCB3aW4zMi9zbm1wZGYsIHdpbjMyL3NubXBnZXQsIHdpbjMyL3NubXBnZXRuZXh0LCAgCiAgICAgICB3aW4zMi9zbm1wbmV0c3RhdCwgd2luMzIvc25tcHNldCwgd2luMzIvc25tcHN0YXR1cywgICAKICAgICAgd2luMzIvc25tcHRhYmxlLCB3aW4zMi9zbm1wdGVzdCwgd2luMzIvc25tcHRyYW5zbGF0ZSwgICAKICAgICAgd2luMzIvc25tcHRyYXAsIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHVzbSwgd2luMzIvc25tcHZhY20sICAgCiAgICAgIHdpbjMyL3NubXB3YWxrOgoKICAgQWRkZWQgKi52Y3Byb2ouKi51c2VyIGFuZCB4NjQgdG8gdGhlIHdpbjMyIFN1YnZlcnNpb24gaWdub3JlCiAgIGxpc3RzLiBSYW4gdGhlc2UgdGhyb3VnaCBMQ19BTEw9QyBzb3J0IC1mdSB0b28uCgoyMDExLTA0LTE4IDEyOjEwICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIFdpbjMyIERMTCBidWlsZCBmaXhlcy4KCjIwMTEtMDQtMTcgMjA6NTYgIGR0czEyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNzU2NDA6IFVzZSBJUF9SRUNWRFNUQUREUiBzb2Nrb3B0CiAgIHdoZXJlIGF2YWlsYWJsZSAoKkJTRCkKCjIwMTEtMDQtMTUgMTM6NDIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIRVM6IDMxODMwMDA6IEZpeCBjYWxjdWxhdGlvbiBvZiBjb21tb24gT0lECiAgIHByZWZpeCBsZW5ndGgKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMzE4Mjk4NTogRml4IGNhbGN1bGF0aW9uIG9mIGNvbW1vbiBPSUQKICAgcHJlZml4IGxlbmd0aAoKMjAxMS0wNC0xNSAxMzoxNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBhcHBzL3NubXB0cmFwZF9kcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogTGludXg6IFBBVENIRVM6IDMyMDU4MTE6IE9wdGlvbiB0byBza2lwIGZkL2xvb3AvcmFtCiAgIGRldmljZXMgaW4gZGlza0lPVGFibGUKCjIwMTEtMDQtMTQgMjE6MzEgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIRVM6IDMxODUwODU6IEZpeCBzZWdmYXVsdCBvbiA2NC1iaXQgc3lzdGVtcwoKMjAxMS0wNC0xNCAyMToxMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzE3NTMyMzogRml4IGhhbmRsaW5nIG9mICd3aGlsZSAoZmFsc2UpJwogICBibG9ja3MKCjIwMTEtMDQtMTQgMjA6NTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIRVM6IDMyMDQ4ODM6IEZpeCBoYW5kbGluZyBvZiBub24tdGFibGUKICAgb2JqZWN0cyBuYW1lZCBmb29UYWJsZQoKMjAxMS0wNC0xNCAyMDo0NCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0hFUzogMzIxMTQ4NDogU3VwcG9ydCBlbnVtZXJhdGlvbnMgaW4KICAgbm90aWZpY2F0aW9uIHZhcmJpbmRzCgoyMDExLTA0LTEyIDIwOjAxICBuYmEKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQWRkIG1pc3Npbmcgc3lzdGVtIG9pZHMgdG8gbWliCgoyMDExLTA0LTEyIDE5OjUzICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCBmb3IgZ2FyYmFnZSBvdXRwdXQgd2hlbiBhZ2VudCBwcmVzZW50cyBtb3JlIGNvbHVtbnMgaW4gYnVsawogICByZXNwb25zZSB0aGFuIG91ciBsb2NhbCBNSUIgZmlsZSBzcGVjaWZpZWQuCgoyMDExLTA0LTEyIDE5OjUwICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIEZpeCB3cm9uZyBuYW1lIGZvciBjb25maWcgdG9rZW4gJ2RvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncycKCjIwMTEtMDQtMDkgMjE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmM6CgogICBSZW1vdmUgYm9ndXMgKExpbnV4KSBkZWZpbmVzCgoyMDExLTA0LTA5IDIxOjU2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBIQVZFX1RNX1RNX0dNVE9GRiBpcyBIQVZFX1NUUlVDVF9UTV9UTV9HTVRPRkYKCjIwMTEtMDQtMDkgMjA6MDggIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsIGNvbmZpZ3VyZSwgCiAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEJpbGwgRmVubmVycyBwYXRjaCB0byBtYWtlIERJU01BTiBQSU5HIGFuZCBUUkFDRVJPVVRFIE1JQlMKICAgY29tcGlsZSB1bmRlciBMaW51eAoKMjAxMS0wNC0wOSAyMDowNCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX3NvbGFyaXMyLmM6CgogICBTb2xhcmlzIHN1cHBvcnQgZm9yIFNDVFAtTUlCCgoyMDExLTA0LTA5IDE5OjUwICBuYmEKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBUWiBpcyBvbmUgaG91ciBvZmYgaWYgSEFWRV9UTV9UTV9HTVRPRkYgYW5kIFNZU1YgKHN1Y2ggaXMgTGludXgpCgoyMDExLTA0LTAxIDAxOjExICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOiBvdmVyaGF1bCBvZiBkZWJ1ZwogICAKICAgLSBkcmFzdGljIHJlZHVjdGlvbiBpbiBudW1iZXIgb2YgbWVzc2FnZXMgYW5kIG1zZyBjb21wbGV4aXR5CiAgIGZvciBiYXNpYyBkdGxzdWRwIHRva2VuCiAgIC0gcHJldmlvdXMgbGV2ZWwgb2YgZGV0YWlsIGF2YWlsYWJsZSBieSBhZGRpbmcgOTpkdGxzZHVwIHRva2VuCgoyMDExLTA0LTAxIDAwOjUzICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBkdGxzOiBjbGVhbiB1cCBjbG9zZTsgY2F0Y2gKICAgJ2Nvbm5lY3QnLydkaXNjb25uZWN0JwogICAKICAgY29ubmVjdCA9IHdlIGdldCBzdWNjZXNzZnVsbHkgZGVjb2RlZCBzbm1wIGRhdGEKICAgZGlzY29ubmVjdCA9IDAgYnl0ZSByZWFkLCBzc2ggc2h1dGRvd24gZmxhZyBzZXQKICAgYWRkIGJpb19jYWNoZSBmbGFncyBmb3IgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZAogICBjaGVjayBmb3IgbnVsbCBwdHIgYmVmb3JlIGRlcmVmZXJlbmNpbmcKICAgY2xvc2UgaGFuZGxpbmc6CiAgIC0gb25seSBzZW5kIHF1ZXVlZCBkYXRhIGlmIHdlIGdvdCB0byBjb25uZWN0ZWQgc3RhdGUKICAgLSBzZXJpb3VzbHkgcmVkdWNlIHRpbWVvdXQgdG8gd2FpdCBmb3IganVuayByZWFkLiBpIHRoaW5rCiAgIHdlIHNob3VsZG4ndCBldmVuIGJvdGhlcgogICAtIHJldHVybiBlYXJseSBpZiBjYWNoZXAgaXMgTlVMTCwgc28gd2UgZG9uJ3QgaGF2ZSB0byB0ZXN0IGl0CiAgIHJlcGVhdGVkbHkKICAgLSB1c2UgY29ycmVjdCBuZmRzIHZhbHVlIGluIHNlbGVjdCBjYWxsCgoyMDExLTAzLTMxIDA1OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtYWtlIHRydW5rIGFuZCB2NS02LXBhdGNoZXMgY2xvc2VseSBhbGlnbmVkCiAgIAogICBtb3N0bHkgY2hhbmdlcyBpbiBkZWJ1ZywgY29va2llIHRyYWNraW5nCgoyMDExLTAzLTI3IDExOjA4ICBtYWdmcgoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIFNpbXBsaWZ5IGFycmF5IHJlc2l6aW5nIHNvbWV3aGF0IGZ1cnRoZXIKCjIwMTEtMDMtMjcgMTA6MjEgIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgRG8gbm90IGFzc2lnbiBuZXdfZGF0YSBpZiB0aGUgdmFsdWUgd29uJ3QgYmUgdXNlZC4KICAgUmVkdWNlIHZhcmlhYmxlIHNjb3Blcy4KCjIwMTEtMDMtMjcgMTA6MTQgIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgSXQgaXMgbm90IG5lY2Vzc2FyeSB0byBjbGVhciBhIGNodW5rIG9mIG1lbW9yeSBpZiB0aGUgbmV4dCBhY3Rpb24KICAgb24gaXQgaXMgdG8KICAgZmlsbCBpdCBzbyB1c2UgbWFsbG9jIGluc3RlYWQgb2YgY2FsbG9jLgoKMjAxMS0wMy0yNyAxMDowOSAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBDb250YWluZXJCaW5hcnlBcnJheSByZWFsbHkgY2FuJ3QgaG9sZCBhbnl0aG5nIGJ1dCBwb2ludGVycyBhbmQKICAgdGhhdCBtZWFucyB0aGUKICAgZGF0YV9zaXplIGZpZWxkIGlzIHVubmVjZXNzYXJ5IHNvIEkgcmVtb3ZlZCBpdC4KCjIwMTEtMDMtMjYgMTk6NTUgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBhcHBzL3NubXB0cmFwZC5jLCAgIAogICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvc25tcF9zZWNtb2QuYywgICAKICAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEFkZCBtaXNzaW5nIGluY2x1ZGUKCjIwMTEtMDMtMjYgMDg6MDcgIG1hZ2ZyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgVXNlIHRoZSByaWdodCBmZWF0dXJlIG1hY3JvIGluIG9yZGVyIHRvIG1ha2UgYnVpbGRzIHdpdGgKICAgLS1lbmFibGUtaXB2NiAtLXdpdGgtb3V0LXRyYW5zcG9ydHM9VURQSVB2NiBzdWNjZWVkLgoKMjAxMS0wMy0yNiAwODowMiAgbWFnZnIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGNvcGllcyBvZiBmdW5jdGlvbnMKCjIwMTEtMDMtMjUgMjA6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgdHdlYWsgZGVidWcgbWVzc2FnZQoKMjAxMS0wMy0yNSAyMDozMiAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogdXBkYXRlIGNlcnQgdG9rZW4gaGFuZGxpbmcKICAgCiAgIC0gcmVtb3ZlIGRlZlg1MDkgY2VydCB0b2tlbnMgKHNob3VsZCBoYXZlIGJlZW4gcmVtb3ZlZCBiZWZvcmUKICAgNS42KQogICAtIHdhcm5pbmdzIGZvciBvdXIvdGhlaXIgdG9rZW5zLCByZWNvbW1lbmQgdXNpbmcgbG9jYWwvcGVlcgoKMjAxMS0wMy0yNSAyMDozMSAgcnN0b3J5CgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICBtZXJnZSBuZXRzbm1wX2R0bHN1ZHA2IGludG8gbmV0c25tcF9kdGxzdWRwCiAgIAogICB1c2UgYWRkciBzaXplIHRvIHRlbGwgdGhlbSBhcGFydAoKMjAxMS0wMy0yNSAyMDozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGxvZyAob25jZSkgd2FybmluZyB3aGVuIGRlcHJlY2F0ZWQgZl9jcmVhdGVfZnJvbV90c3RyaW5nCiAgIHRyYW5zcG9ydCBmdW5jdGlvbiB1c2VkCgoyMDExLTAzLTI1IDIwOjMwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzoKCiAgIHJlZHVjZSBjYXN0aW5nOyBtYWtlIHN1cmUgdG8gZnJlZSB0aGUgcmlnaHQgcG9pbnRlcgoKMjAxMS0wMy0yNSAyMDoyOSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgcmVkdWNlIGNhc3RpbmcKCjIwMTEtMDMtMjQgMDY6MTkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBSZXBsYWNlIGEgdmFyaWFibGUgd2l0aCBhIGNvbnN0YW50LiBNYWtlIG9uZSBtb3JlIG9pZCBjb25zdC4KCjIwMTEtMDMtMTcgMjE6MDkgIG5iYQoKICAgKiBtYW4vc25tcGRlbHRhLjEuZGVmOgoKICAgRm9ybWF0dGluZyBib3RjaAoKMjAxMS0wMy0xNyAyMTowNyAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHJlcXVpcmVkIG1pYnMKCjIwMTEtMDMtMTcgMjE6MDUgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBOZXcgUkZDIG1pYnMKCjIwMTEtMDMtMTUgMTA6MzEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBTcGVsbGluZyBmaXg6IHJlZ2luZXJhdGVkIC0+IHJlZ2VuZXJhdGVkLgoKMjAxMS0wMy0xNSAxMDoxOSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIFNpbXBsaWZpZWQgcjE5NTk0IChsZWFrLWF0LWV4aXQgZml4KS4KCjIwMTEtMDMtMTUgMDk6NTkgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMjAxMTMuCgoyMDExLTAzLTE0IDA5OjMxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4IG1haW4gYWdlbnQgc2VsZWN0IGNhbGwgdG8gdXNlIHRoZSByZW5hbWVkIEFQSSByb3V0aW5lLgoKMjAxMS0wMy0xMyAyMDowOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgQnJpbmcgdGhlIG5hbWluZyBvZiB0aGUgbGFyZ2VfZmRfc2V0IHNlbGVjdCBjYWxsIGludG8KICAgbGluZSB3aXRoIHRoZSByZXN0IG9mIHRoZSBBUEkuCgoyMDExLTAzLTEyIDA2OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiByZWFsbG9jK2luaXQgaW5zdGVhZCBvZiBjYWxsb2MKICAgCiAgIGluc3BpcmVkIGJ5IHBhdGNoIDMxOTU1MzIgZnJvbSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAxMS0wMy0xMiAwNTo0NyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiBvcHRpbWl6YXRpb25zIGZvciBsYXJnZSByb3V0ZSB0YWJsZXMgZnJvbQogICBTdGVwaGVuIEhlbW1pbmdlcgogICAKICAgYXBwbGllZCBwYXJ0cyAxLTMgb2YgNCBmcm9tIGhpbSAobXNncyB0byBjb2RlcnMgb24gMi8yOC8xMTsKICAgc3ViamVjdAogICBpcC1mb3J3YXJkLW1pYiBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHM7IHBhcnQgNCBuZWVkcyBtb3JlIHdvcmsKCjIwMTEtMDMtMTEgMTQ6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZCBtb3JlIG9wZW5zc2wgZXJyb3IgY2FzZXMgd2hlcmUgd2UgY2hlY2sgZm9yCiAgIGxvY2FsIGNlcnQKCjIwMTEtMDMtMTEgMTI6MDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIE1pbkdXOiBkc2tUYWJsZTogUmVwb3J0IHplcm8gZm9yIHVuaW1wbGVtZW50ZWQgZmllbGRzIGluc3RlYWQgb2YKICAgcmFuZG9tIGRhdGEuCgoyMDExLTAzLTExIDA4OjQyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQnVpbGRzIHdpdGggbW9zdCByZWNlbnQgTWluR1cgKGhhdmluZyAjZGVmaW5lCiAgIGxvY2FsdGltZV9yKS4KCjIwMTEtMDMtMTEgMDM6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcmVmaW5lIGNlcnQgZGVidWdnaW5nOyByZW1vdmUgdW51c2VkIGZ1bmN0aW9uCgoyMDExLTAzLTEwIDIxOjIxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMyMDU3NjU6IGhhbmRsZSByZWNvbmZpZyBmb3IgY2VydFNlY05hbWUKICAgdG9rZW4KCjIwMTEtMDMtMTAgMjA6MDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTcGVsbGluZyBmaXggaW4gYSBzb3VyY2UgY29kZSBjb21tZW50OiBtZXNzZ2VzIC0+IG1lc3NhZ2VzLgoKMjAxMS0wMy0xMCAxOTo1NSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBNaW5vciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24KICAgb2YgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkuCgoyMDExLTAzLTEwIDE5OjQ4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMjAzODA2OiBBdm9pZCB0aGF0IHRoZSBtYWluIGFnZW50CiAgIHByb2Nlc3NpbmcgbG9vcCAtIHdoZW4gdXNpbmcgbW9yZSB0aGFuIEZEX1NFVFNJWkUgZmlsZQogICBkZXNjcmlwdG9ycyAtIGNhbiBjYXVzZSBtZW1vcnkgY29ycnVwdGlvbiBieSBpbnZva2luZyBzZWxlY3QoKS4KCjIwMTEtMDMtMTAgMTk6NDMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgc25tcGxpYi9sYXJnZV9mZF9zZXQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMjAzODA2OiBBZGQgdGhlIGZ1bmN0aW9uCiAgIG5ldHNubXBfbGFyZ2Vfc2VsZWN0KCkuCgoyMDExLTAzLTEwIDE4OjU1ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDlsYXJnZV9mZF9zZXRfY2xpYi5jOgoKICAgQWRkZWQgYSBtaW5pbWFsIHVuaXQgdGVzdCBmb3IgbmV0c25tcF9sYXJnZV9mZF9zZXQuCgoyMDExLTAzLTEwIDE4OjUyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDMyMDM4MDY6IE1ha2UKICAgbmV0c25tcF9sYXJnZV9mZF9zZXRfcmVzaXplKCkgY2xlYXIgYWxsIHJlbGV2YW50IGZpbGUKICAgZGVzY3JpcHRvcnMuCgoyMDExLTAzLTEwIDE1OjUxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMxNzgzODk6IEZpeCBpbmNvbnNpc3RlbnQgaGFuZGxpbmcgb2YgVFoKICAgb2Zmc2V0cwoKMjAxMS0wMy0xMCAxNTo0MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlOgoKICAgSWdub3JlIG9iamVjdCBmaWxlcyBhbmQgbGlicmFyaWVzCgoyMDExLTAzLTEwIDE1OjA1ICBkdHMxMgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHM6CgogICBJZ25vcmUgb2JqZWN0IGZpbGVzIGFuZCBsaWJyYXJpZXMKCjIwMTEtMDMtMTAgMTQ6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgbWFrZSB2YXJpYWJsZSBuYW1lcyBtYXRjaAoKMjAxMS0wMy0xMCAxNDoyOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmM6CgogICBGaXhlZCB0d28gY29tcGlsZXIgd2FybmluZ3MuCgoyMDExLTAzLTEwIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIGZpeGVkIGluc3RhbGxhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBvcHRpb25hbCBTRVQgcHJvZ3JhbXMKCjIwMTEtMDMtMDggMDA6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6CgogICBjaG1vZCBhK3gKCjIwMTEtMDMtMDggMDA6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOgoKICAgcHJpbnQgYW4gZXJyb3IgaWYgdGhlIGVuZCBvZiBhIGZpbGUgd2FzIHJlYWNoZWQgYW5kIHdlJ3JlIG5vdAogICBiYWNrCiAgIGludG8gdGhlIHN0YXRlIHdlIGNhbiB3cml0ZTsgb3RoZXJ3aXNlIGEgY2xvc2luZyAjaWZkZWYgaXMKICAgbWlzc2luZy4KCjIwMTEtMDMtMDggMDA6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgZml4IGVuZGlmIGNvbW1lbnQgdG8gbWF0Y2ggdGhlIG9wZW5pbmcgaWZkZWYKCjIwMTEtMDMtMDggMDA6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlaWZkZWZjb2RlLnBsOgoKICAgcmVzZXQgdGhlIGNhbndyaXRlIGZsYWcgZm9yIGV2ZXJ5IGZpbGUKCjIwMTEtMDMtMDggMDA6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6CgogICB0ZW1wb3JhcmlseSBsZWF2ZSBpbiBoZWFkZXIgZmlsZXMKCjIwMTEtMDMtMDggMDA6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgY2hhbmdlIHRoZSB1bmlxdWUgZmlsZSBjaGVjayB0byBvbmUgdGhhdCBpcyBub3QgaW4gdGhlIG1pYmdyb3VwCiAgIGRpcmVjdG9yeQoKMjAxMS0wMy0wOCAwMDoxNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3JlYWQtb25seSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcmVhZC1vbmx5L1QwMTQxc25tcHYyY3NldGZhaWxfc2ltcGxlOgoKICAgYSB0ZXN0IGZvciBlbnN1cmluZyB0aGUgYWdlbnQgcmVqZWN0cyBTRVQgcmVxdWVzdHMgd2l0aAogICAtLWVuYWJsZS1yZWFkLW9ubHkKCjIwMTEtMDMtMDggMDA6MTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNDFzbm1wdjJjc2V0X3NpbXBsZToKCiAgIGFkZCBiYWNrIGluIHRoZSBzdG9wYWdlbnQgY29tbWFuZAoKMjAxMS0wMy0wOCAwMDoxNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDEwMXBkdV90eXBlX2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAycGR1X2J1aWxkX2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMTAzcGR1X3BhcnNlX2NsaWIuYzoKCiAgIHVuaXQgdGVzdHMgd3JpdGVuIGZvciB0aGUgcmVhZC1vbmx5IHN1cHBvcnQgY29udmVydGVkIHRvIHdvcmsKICAgd2l0aCBvciB3aXRob3V0IHJlYWQtb25seQoKMjAxMS0wMy0wOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOgoKICAgZG9uJ3QgcnVuIHRoZSBzZXQgdGVzdCBpZiBub193cml0ZV9zdXBwb3J0IGlzIHR1cm5lZCBvbgoKMjAxMS0wMy0wOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZToKCiAgIHNraXAgaWYgbm9fd3JpdGVfc3VwcG9ydAoKMjAxMS0wMy0wOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0MXNubXB2MmNzZXRfc2ltcGxlOgoKICAgQSBuZXcgdGVzdCB0byBjaGVjayB3aGV0aGVyIFNOTVB2MmMgU0VUcyB0byBzeXNDb250YWN0IHdvcmsgYXMKICAgZXhwZWN0ZWQKCjIwMTEtMDMtMDggMDA6MTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3Zhbnljb25maWc6CgogICBhbGxvdyBmb3IgdjJjIFNFVCBzdXBwb3J0IHRlc3RpbmcKCjIwMTEtMDMtMDggMDA6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgQWxsb3cgZm9yIHNpbmdsZSBxdW90ZXMgZm9yIHZhY20gY29udGV4dCBuYW1lIHF1b3RpbmcgdG9vCgoyMDExLTAzLTA3IDE5OjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBmaXggdGhlIGNvbmZpZ3VyZSB0ZXN0cyB0byBpbmNsdWRlIHRoZSB3b3JkIHRlc3QgaW4gdGhlIHRlc3QKCjIwMTEtMDMtMDcgMTk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIGZpeCB0aGUgY29uZmlndXJlIHRlc3RzIHRvIGluY2x1ZGUgdGhlIHdvcmQgdGVzdCBpbiB0aGUgdGVzdAoKMjAxMS0wMy0wNyAxOToxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9yZW1vdmUtdW5uZWVkZWQtbW9kdWxlczoKCiAgIEFkZGVkIGFuIGFubm95aW5nbHkgbG9uZyBsaXN0IG9mIGV4Y2VwdGlvbnMgdGhhdCBuZWVkcyB0byBiZQogICBhdXRvbWF0ZWQKCjIwMTEtMDMtMDcgMTk6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvcmVtb3ZlLXVubmVlZGVkLW1vZHVsZXM6CgogICBBIHF1aWNrIHBlcmwgc2NyaXB0IHRvIHJlbW92ZSB1bm5lZWRlZCBjb2RlIG1vZHVsZXMgZnJvbSB0aGUKICAgbW9kdWxlcyBkaXJlY3RvcnkKCjIwMTEtMDMtMDcgMTk6MTggIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIG1vcmUgaW1wcm92ZW1lbnRzIChyZW1vdmVtZW50cykgZm9yIGZlYXR1cml6YXRpb24gYW5kIHJlYWQtb25seQogICBzdXBwb3J0CgoyMDExLTAzLTA3IDE3OjE5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAzMTk1NTM3OiBNaW5vciBiaW5hcnlfYXJyYXkgY29udGFpbmVyCiAgIHNvcnQgb3B0aW1pemF0aW9uCgoyMDExLTAzLTA2IDE5OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6CgogICBUYWJzIHRvIHNwYWNlcwoKMjAxMS0wMy0wNiAxMToyOCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIENvbmZpZ3VyZSBjaGVjayBmb3IgZ2V0aG9zdG5hbWUyCiAgIFVzZSBnZXRhZGRyaW5mbyBpZiBhdmFpbGFibGUuIE5vdyB3b3JrcyBmb3IgU29sYXJpcyAoYW5kCiAgIFdpbmRvd3M/KQoKMjAxMS0wMy0wNSAxOToxNiAgbWFnZnIKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgQWRkIGRyb3BwZWQgfHwncyBmcm9tIHIyMDA3MgoKMjAxMS0wMy0wNSAxMjo1MCAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYzoKCiAgIENsZWFuIHVwLCBhbmQgY29zb2xpZGF0ZSByZXN1bHQgdGFibGUgcm93IGNyZWF0aW9uIGludG8gYSBuZXcKICAgZnVuY3Rpb24uCiAgIFNhdmVzIDIwMCBsaW5lcyBvZiBjb2RlLCB3aXRoIChob3BlZnVsbHkpIG5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlCgoyMDExLTAzLTA1IDA2OjE3ICBoYXJkYWtlcgoKICAgKiAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdGVzdC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIGRvbid0IGJ1aWxkIFNFVCByZWxhdGVkIGFwcHMgd2l0aCAtLWVuYWJsZS1yZWFkLW9ubHkKCjIwMTEtMDMtMDUgMDY6MTYgIGhhcmRha2VyCgogICAqICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZml4IGlzc3VlcyB3aXRoIGNvbWJpbmluZyAtLWVuYWJsZS1taW5pbWFsaXN0IGFuZAogICAtLWVuYWJsZS1yZWFkLW9ubHkKCjIwMTEtMDMtMDUgMDY6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmluZC11bnVzZWQtY29kZToKCiAgIGJldHRlciBvdXRwdXQgZm9yIGZpbmRpbmcgb2JqZWN0IHN5bWJvbHMuCgoyMDExLTAzLTA0IDIxOjU2ICBiYWVybQoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKCiAgIGxhc3QgY29tbWl0OiBjaGFuZ2VzIHRvIGFsbG93IHBhcnNpbmcgb2YgZmVhdHVlcnMgZmlsZXMgdG8gZ2V0CiAgIGFsbCBtaW5pbWFsaXN0IHRhZ3Mgd2hpY2ggYXJlIHRoZW4gcHJvY2Vzc2VkIGZvciByZW1vdmFsCiAgIAogICB0aGlzIGNvbW1pdDogY2hhbmdlZCBjb21tZW50cy93aGl0ZSBzcGFjZQoKMjAxMS0wMy0wNCAxOToyNyAgYmFlcm0KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBhZGRlZCBub193cml0ZSBzdXBwb3J0IHRvIGV4dGVuZC5jCgoyMDExLTAzLTA0IDE5OjI2ICBiYWVybQoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBBZGRlZCBtaXNzaW5nICNlbmRpZiBjb21tZW50IGZvciByZW1vdmUgaWZkZWYgY29kZSBzdXBwb3J0CgoyMDExLTAzLTA0IDE5OjI0ICBiYWVybQoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKCiAgIGFkZGVkIGNoYW5nZXMgdG8gYWxsb3cgY29kZSByZW1vdmFsIGluLXBsYWNlCiAgIChpLmUuIGRvZXMgbm90IHJlcXVpcmUgY3JlYXRpbmcgYSBuZXcgZmlsZSkKCjIwMTEtMDMtMDQgMTk6MjMgIGJhZXJtCgogICAqIGxvY2FsL21pbmltYWxpc3QvaWdub3JlLnJlZ2V4cDoKCiAgIGFkZGluZyBhIGlnbm9yZS5yZWdleHAgZmlsZSB0aGF0IGNhbiBiZSB1c2VkIHdpdGgKICAgcmVtb3ZlaWZkZWZjb2RlLnBsCgoyMDExLTAzLTA0IDE5OjIwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBhZGQgYSBvdXRnb2luZyBsaW5rIHRvIHRoZSBwYXJlbnQgbWFya2luZyBwYWdlCgoyMDExLTAzLTA0IDE5OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBBZGRlZCBhIHdpa2kgb3V0cHV0IG1vZGUKCjIwMTEtMDMtMDQgMTk6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIE5vdGUgdGhhdCB0aGUgb3JnIG91dHB1dCBpcyB0aGUgZGVmYXVsdCBpbiB0aGUgaGVscCBvdXRwdXQKCjIwMTEtMDMtMDQgMTU6MDkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCAndHJ1bmNhdGluZyBpbnRlZ2VyIHZhbHVlID4gMzIgYml0cycgaW4KICAgVUNELVNOTVAtTUlCOjpzeXN0ZW1TdGF0cyBvbiBMaW51eAoKMjAxMS0wMy0wNCAxNDo0OSAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZWNsYXNzaWZpY2F0aW9uIG9mIHRoZSByZW1haW5pbmcgZmVhdHVyZXMgaW50byBhIGhpZXJhcmNoeQoKMjAxMS0wMy0wNCAxNDo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGRvbid0IGRvdWJsZS1kZWNsYXJlIGNlcnRfdXRpbHMKCjIwMTEtMDMtMDQgMTQ6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIHRoZSBpcGFkZHJlc3NfbGludXggd2FzIGluY29ycmVjdGx5IG1hcmtlZCBhcyBuZWVkaW5nCiAgIGNlcnRfZmluZ2VycHJpbnRzCgoyMDExLTAzLTA0IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgcHV0IHRoZSBhZ2VudF9yZWdpc3RyeSBmZWF0dXJlIGluIGxpYm5ldHNubXBhZ2VudC4KCjIwMTEtMDMtMDMgMTA6NTYgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQ0hBTkdFUzogV2luMzI6IERlcHJlY2F0ZWQgbGlic25tcC5kZWYgLSBhZGQgTkVUU05NUF9JTVBPUlQgdG8KICAgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGluc3RlYWQgdG8gZXhwb3J0IGEgZnVuY3Rpb24gZnJvbQogICBuZXRzbm1wLmRsbC4KCjIwMTEtMDMtMDMgMTA6NDggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBBZGRlZCBtaXNzaW5nIE5FVFNOTVBfSU1QT1JUIGRlY2xhcmF0aW9ucy4KCjIwMTEtMDMtMDMgMTA6MjQgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZjoKCiAgIFJlbW92ZWQgdHdvIG9ic29sZXRlIFdpbjMyIGZpbGVzLgoKMjAxMS0wMy0wMyAxMDowOSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgVHJpdmlhbCBjb21tZW50IGZpeDogc25tcElQdjZCYXNlRG9tYWluLmMgY29udGFpbnMgSVB2NiBiYXNlCiAgIHRyYW5zcG9ydCBzdXBwb3J0IGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIElQdjQuCgoyMDExLTAzLTAyIDE5OjEwICBidmFzc2NoZQoKICAgKiBzbm1wbGliOgoKICAgQWRkZWQgc25tcHNtX3NodXRkb3duLmggdG8gdGhlIFN1YnZlcnNpb24gaWdub3JlIGxpc3QgYmVjYXVzZQogICBpdCdzIGEgZ2VuZXJhdGVkIGZpbGUuCgoyMDExLTAzLTAyIDE1OjU4ICBidmFzc2NoZQoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgZmlsZS4KCjIwMTEtMDMtMDIgMTU6NTIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwgd2luMzIvc25tcHNtX3NodXRkb3duLmgsICAKICAgICAgIHdpbjMyL3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oOgoKICAgQnVpbGRzIGFnYWluIHdpdGggVmlzdWFsIFN0dWRpbyBhZnRlciB0aGUgaW50cm9kdWN0aW9uIG9mIHRoZQogICAiZmVhdHVyZSIgZmVhdHVyZS4KCjIwMTEtMDMtMDIgMTU6NDggIGJ2YXNzY2hlCgogICAqIHdpbjMyL3NubXBzbV9pbml0Lmg6CgogICBSZW1vdmVkIGEgbWlzbGVhZGluZyBjb21tZW50LgoKMjAxMS0wMy0wMiAwODo0MCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczI6CgogICBDb3JyZWN0IHRoZSBjaGVjayBvZiB3ZXRoZXIgdXNtIHNlY3VyaXR5IGlzIGVuYWJsZWQuCiAgIFJlZ2VuZXJhdGUgY29uZmlndXJlLgoKMjAxMS0wMy0wMiAwODozOSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlZ2VuZXJhdGUKCjIwMTEtMDMtMDIgMDg6MjEgIG1hZ2ZyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEFkZCBtaXNzaW5nIGRlcGVuZGVuY2llcwoKMjAxMS0wMy0wMiAwNzoxOSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBJZ25vcmUgdGhlIHJldHVybiB2YWx1ZSBmcm9tIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpYwoKMjAxMS0wMy0wMiAwNzoxOSAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIFNwbGl0IHRoZSBjb250YWluZXJfY29tcGFyZV9mdW5jdGlvbnMgZmVhdHVyZSBpbnRvCiAgIGNvbnRhaW5lcl9jb21wYXJlX21lbSwKICAgY29udGFpbmVyX2NvbXBhcmVfbG9uZywgY29udGFpbmVyX2NvbXBhcmVfdWxvbmcsCiAgIGNvbnRhaW5lcl9jb21wYXJlX2ludDMyIGFuZAogICBjb250YWluZXJfY29tcGFyZV91aW50MzIKICAgVW5pZnkgdGhlIHN0cnVjdHVyZSBvZiB0aGUgY29tcGFyZSBmdW5jdGlvbnMgZnVydGhlci4KCjIwMTEtMDMtMDIgMDc6MTkgIG1hZ2ZyCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBDaGFuZ2UgdGhlIHNwZWxsaW5nIG9mIHRoZSBjb250YWluZXJfY29tcGFyZV9jc3RyaW5nIGZlYXR1cmUgdG8KICAgY29udGFpbmVyX25jb21wYXJlX2NzdHJpbmcgYXMgdGhhdCBpcyB0aGUgZnVuY3Rpb24gdGhhdCBpcwogICBndWFyZGVkIGJ5IHRoYXQKICAgYXR0cmlidXRlLgoKMjAxMS0wMy0wMiAwNzoxNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBBZGQgdGhlIG1pc3NpbmcgcmVwbGFjZW1lbnQgbWFjcm8gZm9yIHNubXBfaW5pdF9zdGF0aXN0aWNzCgoyMDExLTAzLTAyIDA3OjE2ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIHNubXBfaW5jcmVtZW50X3N0YXRpc3RpY19ieSB0YWtlcyB0d28gYXJndW1lbnRzIHNvIGxldCB0aGUKICAgcmVwbGFjZW1lbnQgbWFjcm8KICAgdGFrZSB0d28gYXJndW1lbnRzIGFzIHdlbGwuCgoyMDExLTAyLTI3IDEzOjU1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6CgogICBGaXggdHlwbyBpbiByMTk5OTAKCjIwMTEtMDItMjYgMTA6NTMgIG1hZ2ZyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1jaGVjazoKCiAgIFJlbW92ZSBsaW5lcyBzdGFydGluZyB3aXRoICNkZWZpbmUgaW4gdGhlIG91dHB1dCBvZiB0aGUKICAgcHJlcHJvY2Vzc29yCiAgIFdoZW4gZ2NjIC1FIGlzIGNhbGxlZCB3aXRoIC1nZ2RiMyAob3IgLWREKSB0aGVuIGFsbCB0aGUgbWFjcm8KICAgZGVmaW5pdGlvbnMgYXJlCiAgIHBhc3NlZCB0aHJvdWdoIHRoZSBwcmVwcm9jZXNzb3IgYW5kIHRoYXQgbWVzc2VzIHVwIG91cgogICBwcm9jZXNzaW5nLgoKMjAxMS0wMi0yNiAxMDo1MiAgbWFnZnIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBQdXQgdGhlIGdlbmVyYXRlZCBmaWxlIGluIHRoZSBidWlsZCB0cmVlLCBub3QgdGhlIHNvdXJjZSB0cmVlLgoKMjAxMS0wMi0yNiAwMToyMyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmM6CgogICBtb3ZlZCBhIGJ1bmNoIG9mIGZlYXR1cmVzIGludG8gdGhlIGxpYm5ldHNubXBtaWJzIGZlYXR1cmUgc2V0LgoKMjAxMS0wMi0yNiAwMToyMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfcm93LmMsICAgCiAgICAgIGFnZW50L3NubXBfYWdlbnQuYywgbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHMsIHNubXBsaWIvbWliLmM6CgogICBjbGFzc2lmaWVkIGxpYm5ldHNubXBhZ2VudCBmZWF0dXJlcwoKMjAxMS0wMi0yNiAwMToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgbGlicmFyaWVzIChzbm1wbGliIGZpcnN0KQoKMjAxMS0wMi0yNiAwMToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBvdXRwdXQgY2xlYW51cCBhbmQgYWRkZWQgYWdlbnQtbWlicyBhbmQgbG9nZ2luZyBvcHRpb25zCgoyMDExLTAyLTI2IDAxOjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGFkZCBhIGRlZmF1bHQgc2V0IG9mIGFyZ3VtZW50cwogICBjYWxjdWxhdGUgcmVzdWx0aW5nIHNpemVzCgoyMDExLTAyLTI2IDAxOjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgQWRkZWQgYSBtaXNzaW5nIDsKCjIwMTEtMDItMjYgMDE6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgcHJlZml4IHRoZSBvdXRwdXQgZmlsZXMgd2l0aCBhIG51bWJlciB0byBpbmRpY2F0ZSBvcmRlcgoKMjAxMS0wMi0yNiAwMToyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBzYXZlIHRoZSByZXN1bHRzIG9mIHRoZSBzeXN0ZW0gZXhlY3V0aW9ucwoKMjAxMS0wMi0yNiAwMToyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9zaXpldGVzdHM6CgogICBlbmFibGUgYnVpbGRpbmcgb2YgdGhlIHJlc3VsdGluZyBjb21iaW5hdGlvbnMKICAgQWRkIGEgLW4gZmxhZyBmb3IgZHJ5LXJ1bnMKCjIwMTEtMDItMjYgMDE6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgZW5hYmxlIHRoZSAtdCB0YWcgZm9yIGxpbWl0aW5nIHR5cGVzCgoyMDExLTAyLTI2IDAxOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIEFkZGVkIGFyZ3VtZW50IHBhcnNpbmcgYW5kIGFyZ3VtZW50cyBmb3Igc2VsZWN0aW5nIGFuZCBsaXN0aW5nCiAgIHR5cGVzCgoyMDExLTAyLTI2IDAxOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGdlbmVyYXRlIGNvbmZpZ3VyZSBzY3JpcHQgYXJndW1lbnRzIGZyb20gc3BlY3MKCjIwMTEtMDItMjYgMDE6MTkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3Qvc2l6ZXRlc3RzOgoKICAgYWRkZWQgYSBidW5jaCBvZiBuZXcgZmVhdHVyZSBvcHRpb25zIGFuZCBjbGVhbmVkIHVwIGEgYml0CgoyMDExLTAyLTI2IDAxOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L3NpemV0ZXN0czoKCiAgIGFkZGVkIGEgbmV3IChub3QgeWV0IHdvcmtpbmcpIHNjcmlwdCB0byB0ZXN0IHNpemluZyBvZiB2YXJpb3VzCiAgIGFyZ3VtZW50IHNldHMKCjIwMTEtMDItMjYgMDA6MjYgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBTaW1wbGlmeSB0aGUgY29kZS4gVW5pZnkgc29tZSBkZWJ1ZyBsb2dzLgoKMjAxMS0wMi0yNiAwMDoxOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIFJlZHVjZSB0aGUgc2NvcGUgb2YgYSBmZXcgdmFyaWFibGVzCgoyMDExLTAyLTI2IDAwOjE2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgUmVtb3ZlIHNvbWUgdW51c2VkIGluY2x1ZGVzLgoKMjAxMS0wMi0yNiAwMDoxNSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gaW5pdGlhbGl6ZS91bmluaXRpYWxpemUgbW9kdWxlcyB3aXRoIDY0CiAgIGNoYXJhY3RlciBuYW1lcyBhbmQgbm90IHN1ZmZlciB3aWxkIHdyaXRlcy4KCjIwMTEtMDItMjYgMDA6MTIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBDb2RlIHJlc3RydWN0dXJpbmcgLSBwdXQgdGhlIG1hbmFnZWQgcm91dGluZXMgYmVmb3JlIHRoZQogICBtYW5hZ21lbnQgY29kZS4KCjIwMTEtMDItMjYgMDA6MTEgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6CgogICBDSEFOR0VTOiBsaWJuZXRzbm1wbWliczogTWFrZSBhbGwgZnVuY3Rpb25zIGluIHRoZSBkbG1vZCBtb2R1bGUKICAgdGhhdCBkb24ndCBoYXZlIHRvIGJlIHB1YmxpYyBzdGF0aWMKCjIwMTEtMDItMjYgMDA6MDcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBSZW5hbWUgZGVpbml0X2RsbW9kIHRvIHNodXRkb3duX2RsbW9kIGFzIHRoYXQgaXMgd2hhdCBpdCByZWFsbHkKICAgaXMgYWJvdXQuCgoyMDExLTAyLTI1IDE4OjI0ICBiYWVybQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOgoKICAgYWRkaW5nIG1pbmltYWxpc3QgaWZkZWZzIHRvIG5ldC1zbm1wLXZhY20gbWliCgoyMDExLTAyLTI1IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBwcm9wZXJseSBoYW5kbGUgdHdpbiBjaGlsZHJlbjsgYWxzbyBzb3J0IHRoZSBjaGlsZCBsaXN0CiAgIGFscGhhYmV0aWNhbGx5LgoKMjAxMS0wMi0yNSAxNjowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEkgc3VwcG9zZSBsb2dnaW5nIHNob3VsZCBwcm9iYWJseSBkZWZhdWx0IHRvIGJlaW5nIGEgd2FudGVkCiAgIG9wdGlvbiA6LSkKCjIwMTEtMDItMjUgMTY6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jczoKCiAgIG9yZy1saW5rIHRoZSBmaWxlcyBpbiB0aGUgb3V0cHV0CgoyMDExLTAyLTI1IDE2OjA4ICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUucnVsZXMsIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgICAKICAgICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLWNoZWNrLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgbWFrZSB0aGUgZmVhdHVyZXMtY2hlY2sgc2NyaXB0IHRyYWNrIHRoZSBmdWxsIHNvdXJjZSBwYXRoCgoyMDExLTAyLTI1IDE2OjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBjaGFuZ2UgdGhlIGZ1bmN0aW9uIG5hbWVzIHRvIG1hdGNoIHRoYXQgaXQncyBwcmludGluZyB0byBvcmctbW9kZQogICBhdCB0aGUgbW9tZW50LgoKMjAxMS0wMi0yNSAxNjowOCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvZmlsZV91dGlscy5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGxhc3Qgb2YgdGhlIGZlYXR1cmUgY2xhc3NpZmljYXRpb24gaW4gbGlibmV0c25tcAoKMjAxMS0wMi0yNSAxNjowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIG1ha2UgdGhlIHVzbV9zdXBwb3J0IHV0aWxpdGllcyBzZWxmLWRlY2xhcmUgdGhlbXNlbHZlcyBhcwogICBjaGlsZHJlbiB0bwogICBtYWtlIHN1cmUgdGhleSdyZSBwcm9wZXJseSBpbmNsdWRlZCBkdXJpbmcgZGVwZW5kZW5jeSBvcmRlcmluZwoKMjAxMS0wMi0yNSAxNjowNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIAogICAgICAgIHNubXBsaWIvY29udGFpbmVyLmMsIHNubXBsaWIvZGF0YV9saXN0LmMsICAgCiAgICAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICBzdXBlcnN0cnVjdHVyYWxpemF0aW9uaXppbmcgdGhlIGZlYXR1cmVzCgoyMDExLTAyLTI1IDE2OjA3ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgCiAgICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvc3lzdGVtLmMsIAogICAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIHNpZ25pZmljYW50IHBhcmVudC9jaGlsZCBmZWF0dXJlIGNsYXNzaWZpY2F0aW9uCgoyMDExLTAyLTI1IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgY2xhc3NpZnkgYSBmZXcgY29tcG9uZW50cyBpbnRvIGEgdG9wLWxldmVsIGxpYm5ldHNubXAgY29tcG9uZW50CgoyMDExLTAyLTI1IDE2OjA2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmM6CgogICBzdHJ1Y3R1cml6ZSB0aGUgdXNtIGZlYXR1cmVzCgoyMDExLTAyLTI1IDE2OjA2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIHN0cnVjdHVyZSB0aGUgY29udGFpbmVyIGZlYXR1cmVzIGludG8gYSBoaWVyYXJjaHkKCjIwMTEtMDItMjUgMTY6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBncm91cCB0aGUgbG9nZ2luZyBoYW5kbGVycyB1bmRlciBhIHBhcmVudCBmZWF0dXJlCgoyMDExLTAyLTI1IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBmaXggdGhlIGV4cGVjdCBhcmd1bWVudCBjb3VudAoKMjAxMS0wMi0yNSAxNjowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLW1ha2Vkb2NzOgoKICAgZml4IHRoZSBuYW1lIG9mIHRoZSBleHBlY3RlZCBpbnB1dCBmaWxlCgoyMDExLTAyLTI1IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtbWFrZWRvY3M6CgogICBhcmd1bWVudCBwYXJzaW5nIGFuZCB1c2FnZSgpIG91dHB1dAoKMjAxMS0wMi0yNSAxNjowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIC0gYWRkZWQgdHdvIG9pZF9zdGFzaCBmdW5jdGlvbnMgYXMgaW5kaXZpZHVhbCBmZWF0dXJlcwogICAtIGNsZWFuZWQgdXAgc29tZSB3YXJuaW5ncyBpbiB0aGUgdGFibGVfaXRlcmF0b3IgY29kZQoKMjAxMS0wMi0yNSAxMjo1NSAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBGaXggdGhlIGNvbW1hbmQgdG8gY3JlYXRlIGEgbmV3IFNWTiB0YWcgbGluZQogICAKICAgKEhhdmluZyBicm91Z2h0IHRoZSBzdHJ1Y3R1cmUgb2YgdGhlIDUuNS54IGJyYW5jaAogICBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgYnJhbmNoZXMsIHRoZSBwcmV2aW91cwogICBjb21tYW5kIGlzIG5vdyB3cm9uZyBmb3IgKmFsbCogYnJhbmNoZXMsIHJhdGhlcgogICB0aGFuIGp1c3QgbW9zdCBvZiB0aGVtISkKCjIwMTEtMDItMjUgMTE6MTAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBBdm9pZCBhIHBvc3NpYmxlIGNyYXNoIGlmIHRoZSBlbmdpbmVJRCBpcyBub3QgYXZhaWxhYmxlIG9yIHNldC4KCjIwMTEtMDItMjUgMDA6NDAgIGJhZXJtCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmg6CgogICBhZGRpbmcgaWZkZWYgY29kZSBmb3IgbWluaW1hbGlzdCBzdXBwb3J0IG9mIGRpZmZtYW4gbWliCgoyMDExLTAyLTI0IDE5OjIxICBiYWVybQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uaDoKCiAgIEFkZGluZyBtaW5pbWFsaXN0IGlmZGVmcyB0byBob3N0IHJlc291cmNlIG1pYgoKMjAxMS0wMi0yNCAwNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgbWFyayB0aGUgZGF0YV9saXN0IGZ1bmN0aW9uIHRoYXQncyBvbmx5IHVzZWQgaW4gc3RhY2hfY2FjaGluZyBhcwogICBhIGZlYXR1cmUKCjIwMTEtMDItMjQgMDU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHdob29wcy4KCjIwMTEtMDItMjQgMDU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIG1vcmUgbWlzc2luZyBzdGFzaCByZWZlcmVuY2VzCgoyMDExLTAyLTI0IDA1OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBpZmRlZmVkL2ZlYXR1cmVkIG91dCBhIG1pc3Npbmcgc3Rhc2hfY2FjaGUgc2VjdGlvbgoKMjAxMS0wMi0yNCAwNTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgbWFrZSB0aGUgcHJlZml4X2luZm8gbW9yZSBoaWVyYXJjaGljYWwgYW5kIHN1Yi1mZWF0dXJlIHRoZSB1bnVzZWQKICAgb25lCgoyMDExLTAyLTI0IDA1OjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taW5pbWFsaXN0L2ZpbmQtdW51c2VkLWNvZGU6CgogICBkbyBpbmNsdWRlIHRoZSBwZXJsL3B5dGhvbiBjb2RlIHdoZW4gc2VhcmNoaW5nIGZvciBmaWxlcwoKMjAxMS0wMi0yNCAwNTo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgbWFrZSB0aGUgc2VtaS11c2VkIHRhYmxlX3RkYXRhIGZ1bmN0aW9ucyBjaGlsZHJlbiBvZgogICB0YWJsZV90ZGF0YV9hbGwKICAgaW5zdGVhZCBvZiBqdXN0IHRhYmxlX3RkYXRhCgoyMDExLTAyLTIzIDIyOjAwICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBDb3JyZWN0IHR5cG8KCjIwMTEtMDItMjMgMjE6NTQgIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENvcnJlY3QgdHlwbwoKMjAxMS0wMi0yMyAyMToxMCAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgcHJvcGVyIGluY2x1ZGUgb2YgcHJvdG90eXBlCgoyMDExLTAyLTIzIDIxOjA3ICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfdHJhbnNwb3J0cywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBjb21wYXQgc29tZSBmZWF0dXJlIGhlYWRlciBjaGlja2VuIGFuZCBlZ2cgcHJvYmxlbXMKCjIwMTEtMDItMjMgMTU6MjcgIG5iYQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIHVuc2lnbmVkIGp1Z2dsaW5nIHRvIHJlbW92ZSB3YXJuaW5ncwoKMjAxMS0wMi0yMyAxNToyMyAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgdW5zaWduZWQganVnZ2xpbmcgdG8gcmVtb3ZlIHdhcm5pbmdzCgoyMDExLTAyLTIzIDE1OjIwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6CgogICBFbmFibGUgKHByb2JhYmx5IGZvcmdvdHRlbikgaXBBZGRyZXNzUHJlZml4VGFibGUKCjIwMTEtMDItMjMgMTQ6MzAgIGhhcmRha2VyCgogICAqICBsb2NhbC9taW5pbWFsaXN0LCBsb2NhbC9taW5pbWFsaXN0L2ZlYXR1cmUtY2hlY2ssICAgCiAgICAgIGxvY2FsL21pbmltYWxpc3QvZmVhdHVyZS1tYWtlZG9jcywgICAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9mZWF0dXJlLXJlbW92ZSwgICAKICAgICAgbG9jYWwvbWluaW1hbGlzdC9maW5kLXVudXNlZC1jb2RlLCAgIAogICAgICBsb2NhbC9taW5pbWFsaXN0L3JlbW92ZWlmZGVmY29kZS5wbDoKCiAgIGFkZGVkIG90aGVyIG1pc3NpbmcgJ25ldycgZmlsZXMgbm90IGluY2x1ZGVkIGluIHRoZSBtaW5pbWFsaXN0CiAgIHBhdGNoIGZpbGUKCjIwMTEtMDItMjMgMDk6NTQgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2ZyZWVic2Q0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYzoKCiAgIExvYWRpbmcgSVB2NiBkYXRhIGlzIGEgbm8tbm8gd2hlbiBJUHY2IG5vdCBlbmFibGVkCgoyMDExLTAyLTIzIDA5OjM2ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCBidWcgMzExODYzMTogc25tcHRhYmxlIHNlZ2ZhdWx0cyBpZiBpbmRleCBjb250YWlucyA6CiAgIGNoYXJhY3RlcgoKMjAxMS0wMi0yMyAwOTozMCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6CgogICBGcmVlQlNEIDggc3VwcG9ydAoKMjAxMS0wMi0yMyAwMTo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1mZWF0dXJlcy5oOgoKICAgYWRkZWQgbWlzc2luZyBuZXQtc25tcC1mZWF0dXJlcy5oCgoyMDExLTAyLTIzIDAwOjAxICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsIGFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgIAogICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFcnJvclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3BlcmZzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLCAKICAgICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvTWFrZWZpbGUuaW4sICAgCiAgICAgIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgIAogICAgICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfc3FsLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAKICAgICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19zZWN1cml0eV9tb2R1bGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wa3NtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdHNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC54cywgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgCiAgICAgICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvY29udGFpbmVyX251bGwuYywgICAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmMsIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYywgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywgICAKICAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHRzbS5jLCBzbm1wbGliL3NubXB1c20uYywgICAKICAgICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90ZXh0X3V0aWxzLmMsICAgCiAgICAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYywgc25tcGxpYi91Y2RfY29tcGF0LmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2M3VzbWNvbmZpZ2Jhc2UsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdmFjbWNvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNGFnZW50eGFnZW50eHRyYXBfc2ltcGxlOgoKICAgTkVXUzogcGFja2FnaW5nOiBFbmFibGUgbWljcm8tYW5kLW1hY3JvLWZlYXR1cmUgbWFuYWdlbWVudCB3aXRoaW4KICAgTmV0LVNOTVA7IHRoaXMgYWRkcyBhIG51bWJlciBvZiBuZXcgZmxhZ3MgdG8gY29uZmlndXJlCiAgICgtLWVuYWJsZS1taW5pbWFsaXN0IGFuZCAtLWVuYWJsZS1yZWFkLW9ubHkpLiBUaGVzZSBjaGFuZ2VzIGFyZQogICBkZXNpZ25lZCB0byByZW1vdmUgbXVjaCBvZiB0aGUgaW5saW5lIGNvZGUgdGhhdCBpc24ndCBhbHdheXMKICAgbmVjZXNzYXJ5IG9yIGRlc2lyZWQuIFNjcmlwdHMgZXhpc3QgKGFuZCB3aWxsIGJlIGltcHJvdmVkKSB0bwogICBzdGlwIG91dCB1bnVzZWQgY29tcG9uZW50cyBmcm9tIHRoZSBjb2RlIGVudGlyZWx5IHRvIGVuYWJsZSBhCiAgIHNob3J0ZXIgcmV2aWV3IHByb2Nlc3MgZm9yIHVwZ3JhZGluZyB0byBuZXcgcmVsZWFzZXMuIFRoaXMgd29yawogICB3YXMgZG9uZSBieSBXZXMgSGFyZGFrZXIgYW5kIE1pY2hhZWwgQmFlciBmcm9tIFNQQVJUQSwgSW5jLiBidXQKICAgaXMgYmVpbmcgY2hlY2tlZCBpbiBhcyBhIGxhcmdlIHBhdGNoIHNpbmNlIGNvbnZlcnRpbmcgdGhlIG1pY3JvCiAgIHBhdGNoZXMgZnJvbSBnaXQgdG8gc3ZuIHR1cmVuZCBvdXQgdG8gYmUgaW1wb3NzaWJsZQoKMjAxMS0wMi0yMiAyMzo1NSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgdXNlIHRoZSB3aWtpIFVSTCBpbnN0ZWFkIG9mIHRoZSB0dXRvcmlhbC01IFVSTCBmb3IgdGhlIHNubXB0cmFwCiAgIHR1dG9yaWFsCgoyMDExLTAyLTIxIDIyOjQwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jOgoKICAgcHJvcGVyIHByb2Nlc3Mgc3RhdHVzIHZhbHVlcyBmb3IgbmV0YnNkCgoyMDExLTAyLTIxIDIyOjM5ICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgY29uZGl0aW9uYWxpemUgdmFyaWFibGUKCjIwMTEtMDItMjEgMjI6MjAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIHRjcC1taWIvdWRwLW1pYiBzdXBwb3J0IGZvciB0aGUgKmJzZHMKCjIwMTEtMDItMjEgMjI6MTYgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2ZyZWVic2Q0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9uZXRic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfZnJlZWJzZDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbmV0YnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmM6CgogICB0Y3AtbWliL3VkcC1taWIgc3VwcG9ydCBmb3IgdGhlICpic2RzCgoyMDExLTAyLTIxIDIyOjA1ICBuYmEKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgUHJvcGVybHkgZW5kIGRlYnVnIG1lc3NhZ2Ugd2l0aCBuZXdsaW5lCgoyMDExLTAyLTIxIDIyOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICByZW1vdmUgdmFyIHRoYXQgc2hhZG93cyB0aGUgdXNlZnVsIG9uZQoKMjAxMS0wMi0yMSAyMjowMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIG1ham9yIGZpZGRsaW5nIHRvIGdldCB0aGluZ3Mgd29ya2luZyBmb3Igb3BlbmJzZCB0b28uIFRoaXMgc2hvdWxkCiAgIHJlYWxseSBiZSByZXdvcmtlZCB0byB1c2UgdGhlIHRjcC1taWIvdWRwLW1pYi9kYXRhX2FjY2VzcwoKMjAxMS0wMi0yMSAyMTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBmaXggdGNwIHN0YXRlcyBmb3IgZHJhZ29uZmx5YnNkCgoyMDExLTAyLTIxIDIxOjU3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIGVuYWJsZSBuZXcgdGNwL3VkcCBtaWJzIGZvciBzb2xhcmlzCgoyMDExLTAyLTIxIDIxOjUzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jOgoKICAgRG8gbm90IHVzZSBjOTkKCjIwMTEtMDItMjEgMTk6MDggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgVXBkYXRlZCBjb21tZW50IGFib3V0IHdoZXJlIG1ha2VyZWxlYXNlIGNvbWVzIGZyb20gKG5vdyBnaXRodWIpCgoyMDExLTAyLTIwIDA5OjI0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMTg1NTI4OiBzaHV0ZG93bl9tYXN0ZXJfYWdlbnQgZG9lc24ndCBjbG9zZQogICBVRFAgc29ja2V0CiAgIChGaXhlcyBhIGJ1ZyBpbnRyb2R1Y2VkIGluIHIxOTUxMS4pCgoyMDExLTAyLTE4IDE0OjQzICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IHNubXBkOiByZXdvcmtlZCBoclN0b3JhZ2VUYWJsZSB0byBzdXBwb3J0IGxhcmdlCiAgIGZpbGVzeXN0ZW1zLgogICAKICAgVGhlIGhyU3RvcmFnZUFsbG9jYXRpb25Vbml0cyBkb2VzIG5vdCByZXBvcnQgcmVhbCBhbGxvY2F0aW9uIHVuaXQKICAgc2l6ZSwKICAgYnV0IHNvbWUgY2FsY3VsYXRlZCB2YWx1ZSBzbyBoclN0b3JhZ2VBbGxvY2F0aW9uVW5pdHMgKgogICBoclN0b3JhZ2VTaXplCiAgIGdpdmVzIHJlYWwgc2l6ZSBvZiB0aGUgZmlsZXN5c3RlbS4KICAgCiAgIFRoaXMgY2FsY3VsYXRpb24gaGFwcGVucyBvbmx5IHdoZW4gaHJTdG9yYWdlU2l6ZSBpcyB0b28gc21hbGwKICAgKDMyYml0cykKICAgZm9yIGZpbGVzeXN0ZW0gc2l6ZSwgZS5nLiBmaWxlc3lzdGVtcyBsYXJnZXIgdGhhbiA4VEIgd2l0aCA0MDk2CiAgIGJ5dGVzCiAgIGJsb2NrIHNpemUuCiAgIAogICBUaGlzIGNhbGN1bGF0aW9uIGNhbiBiZSB0dXJuZWQgb2ZmIGJ5ICdyZWFsU3RvcmFnZVVuaXRzJyBjb25maWcKICAgb3B0aW9uLgoKMjAxMS0wMi0xOCAxNDoyOSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIEFkZCBKRlMgYW5kIFhGUyB0byBsaXN0IG9mIGtub3duIGZpbGVzdXN0ZW1zCgoyMDExLTAyLTE3IDExOjI4ICBqc2FmcmFuZWsKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgRml4ZWQgc25tcC1icmlkZ2UtbWliIGluIHN0YW5kYWxvbmUgKGFnZW50eCkgdmVyc2lvbi4KICAgRG9uJ3QgZGVjbGFyZSBsb2NhbCB2YXJpYWJsZXMgaW5zaWRlIGJsb2NrLiBQYXRjaCBwcm92aWRlZCBieQogICBKZW5zIE9zdGVya2FtcC4KCjIwMTEtMDItMTYgMTQ6NTYgIGpzYWZyYW5lawoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICBGaXhlZCBzbm1wLWJyaWRnZS1taWIgd2hlbiB3b3JraW5nIGluIHRoZSBlbWJlZGRlZCBwZXJsLgoKMjAxMS0wMi0xNiAxMzoxNiAganNhZnJhbmVrCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIEZpeGVkIEdFVE5FWFQgcHJvY2Vzc2luZyBpbiBzbm1wLWJyaWRnZS1taWIuCgoyMDExLTAyLTE1IDIyOjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIFByb3Blcmx5IHNhdmUgZW50cmllcyBmb3IgTmV0QlNEIGFuZCBEcmFnb25GbHkKCjIwMTEtMDItMTUgMjI6MTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYzoKCiAgIHJlbW92ZSByZWR1bmRhbnQgaW5jbHVkZXMKCjIwMTEtMDItMTUgMjE6NDYgIG5iYQoKICAgKiBjb25maWd1cmU6CgogICByZXJ1biBhdXRvaGVhZGVyL2F1dG9jb25mCgoyMDExLTAyLTE1IDIxOjMzICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBpbmNsdWRlIHN5cy90eXBlcy5oIGJlZm9yZSBzeXMvc29ja2V0LmgKCjIwMTEtMDItMTUgMjE6MjYgIG5iYQoKICAgKiBtNC9uZXRzbm1wX3NlYXJjaF9saWJzLm00OgoKICAgVG9vIG11Y2ggcXVvdGluZyBpcyBiYWQKCjIwMTEtMDItMTUgMjE6MTEgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2Lmg6CgogICBGaXggSVB2NiBUQ1AgYW5kIFVEUCB0YWJsZXMsICpCU0Qgc3VwcG9ydAoKMjAxMS0wMi0xNSAyMDo0NSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYzoKCiAgIEtpbGwgY29tcGlsZXIgd2FybmluZ3MKCjIwMTEtMDItMTUgMjA6NDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgRmlsdGVyIElQdjYgZW50cmllcyBmcm9tIElQdjQgdGFibGUKCjIwMTEtMDItMTUgMjA6NDIgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmM6CgogICBQcm9wZXIgdXNlIG9mIGdldHByb2MyIGFuZCBkcmFnb25mbHkgc3VwcG9ydAoKMjAxMS0wMi0xNSAyMDo0MSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19nZXRmc3N0YXRzLmM6CgogICBnZXR2ZnNzdGF0IGlzIG9ubHkgZm9yIE5ldEJTRAoKMjAxMS0wMi0xNSAyMDozOSAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgRGV0ZWN0IG5lZWQgZm9yIC1sa3ZtIGluIHByb3BlciB0aW1lCgoyMDExLTAyLTE1IDE5OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgcmVtb3ZlIHRoZSBzdGF0ZW1lbnQgYWJvdXQgZW5hYmxpbmcgc3RkZXJyIGJ5IGRlZmF1bHQuCgoyMDExLTAyLTE1IDE5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHJlbW92ZSAzIGZ1bmN0aW9ucyB0aGF0IGFzIGZhciBhcyBJIGNhbiB0ZWxsIGhhdmUgcG9zc2libHkgbmV2ZXIKICAgYmVlbiB1c2VkCgoyMDExLTAyLTE0IDE0OjM4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4ZWQgYSBNaW5HVy1zcGVjaWZpYyBjb21waWxlciB3YXJuaW5nLgoKMjAxMS0wMi0xMyAxNjoyOCAgbWFnZnIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBzdGF0aWMgYXBwbGljYXRpb25zIHVzaW5nCiAgIG5ldC1zbm1wLWNvbmZpZyBhbmQgdGhlIC0qbGlicyBmbGFncyBvbmNlIG1vcmUuCgoyMDExLTAyLTEwIDE1OjEzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0hFUzogMzE2NTg3ODogQ2F0Y2ggYnVmZmVyIG92ZXJydW4gb24KICAgNjQtYml0IHN5c3RlbXMKCjIwMTEtMDItMTAgMTU6MDYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDMxNTI0MTI6IEhhbmRsZSAoYW5kIHJlcG9ydCkgcHJvYmxlbXMKICAgcmVhZGluZyAvcHJvYy92bXN0YXQKCjIwMTEtMDItMDkgMDc6MzQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIEJ1aWxkaW5nIERMTCBhbmQgUGVybCBtb2R1bGVzIHdpdGggd2luMzIvYnVpbGQuYmF0IHdvcmtzIGFnYWluLgoKMjAxMS0wMi0wOCAxOTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBSZW1vdmUgdGhlIGZ1bmN0aW9ucyBtYXJrZWQgYXMgZGVwcmVjYXRlZCBhbmQgc2FmZSBmb3IgcmVtb3ZhbCBpbgogICA1LjYuCgoyMDExLTAyLTA4IDE3OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IHBhdGNoIGZyb20gTWFydGluIEJ1Y2s6IGRvbid0IGFsd2F5cyBvcGVuIHN0ZGVycgogICBhcyB0aGUgY2FsbHMgdG8gc25tcF9sb2cgYWxyZWFkeSBkbyB0aGlzIGFuZCBpdCBtZXNzZXMgdXAgdGhlCiAgIGFnZW50IHdoZW4gZW1iZWRkZWQKCjIwMTEtMDItMDggMTc6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXggYSBzdHJsZW4gY2FsY3VsYXRpb24gYXMgcG9pbnRlZCBvdXQgYnkKICAgS29uc3RhbnRpbiBCYXlkYXJvdgoKMjAxMS0wMi0wNyAyMDowNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSAzIG5ldyBTU0ggY29uZmlnIHRva2VucwoKMjAxMS0wMi0wNyAyMDowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYzoKCiAgIENIQU5HRVM6IGxpYm5ldHNubXA6IG1hZGUgdGhlIFNTSCB0cmFuc3BvcnQgY29uZmlndXJhYmxlIGFzIGl0CiAgIHNob3VsZCBiZS4KCjIwMTEtMDItMDcgMjA6MDcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBBZGRlZCBkZWZhdWx0X3N0b3JlIHN0cmluZ3MgZm9yIHNzaDogdXNlcm5hbWUsIHB1YmtleSwgcHJpdmtleQoKMjAxMS0wMi0wNiAwNjozNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgU2ltcGxpZnkgdGhlIGNvbnRyb2wgZmxvdyB0byBhbGxvdyBmb3IgbW9yZSBvcHRpbWl6YXRpb24uCgoyMDExLTAyLTAzIDIyOjQyICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMzE3MTg3ODogVXNpbmcgU05NUHYzIGNvbnRleHQgZG9lcyBub3QKICAgd29yawoKMjAxMS0wMi0wMiAwNzowOSAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEluY2x1ZGUgdGhlIFVTSU5HXyB2YXJpYWJsZXMgZnJvbSB0aGUgYWdlbnQgbGlicmFyeSBhcyB3ZWxsLCBpbgogICBwYXJ0aWN1bGFyIHRoZQogICBVU0lOR19BR0VOVFhfKiB2YXJpYWJsZXMuCgoyMDExLTAyLTAxIDEzOjA3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgRG9uJ3QgY2hlY2sgZm9yIDMyLzY0Yml0IHdyYXAgaW4gY2FsY3VsYXRlZCBlbnRyaWVzLgoKMjAxMS0wMi0wMSAwOTo0MSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCB0aGUgYWdlbnQgd3JpdGluZyAnbG9va3MgbGlrZSBhIDY0Yml0IHdyYXAsCiAgIGJ1dCBwcmV2IT1uZXcnIGluIHN5c2xvZyB3aGVuIGNvbXB1dGluZyBpcFN5c3RlbVN0YXRzCiAgIAogICBXaXRob3V0IHRoZSBtZW1jcHksIHByZXZfdmFscy0+c3RhdHMgYW5kIG5ld192YWxzLT5zdGF0cyBjb3VsZAogICBnZXQgZGlmZmVyZW50LAogICB3aGljaCBjb3VsZCBtdWNoIG11Y2ggbGF0ZXIgKHdoZW4gYSBjb3VudGVyIGdldHMgYmlnZ2VyIHRoYW4gMzIKICAgYml0cykgcmVzdWx0CiAgIGluICdwcmV2IT1uZXcnIG1lc3NhZ2UgaW4gc3lzbG9nLiBUeXBpY2FsbHkgdGhpcyBoYXBwZW5zIGFmdGVyCiAgIGxvbmcgdGltZSBvZgogICB1cHRpbWUgYW5kIGl0IGlzIHZlcnkgaGFyZCB0byByZXByb2R1Y2UuCgoyMDExLTAyLTAxIDA3OjE5ICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUmVtb3ZlIHNvbWUgdW51c2VkIGluY2x1ZGVzCgoyMDExLTAxLTMxIDIyOjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmM6CgogICBhZGRwcm90b3R5cGVzIGFuZCByZW1vdmUgdW51c2VkIHZhcnMKCjIwMTEtMDEtMzEgMjI6MzcgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBjb25zdCBqdWdnbGluZyB0byByZW1vdmUgd2FybmluZ3MKCjIwMTEtMDEtMzEgMjI6MzAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGRpc2tpbyBmb3IgZHJhZ29uZmx5CgoyMDExLTAxLTMxIDIyOjI4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5jOgoKICAgcHJvcGVybHkgbmFtZSBpbml0YWxpemVyIGZ1bmN0aW9uIGZvciBjcHVfa2luZm8KCjIwMTEtMDEtMzAgMTU6MjEgIG1hZ2ZyCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgUmVkdWNlIHRoZSBudW1iZXIgb2YgdXNlZCBpbmNsdWRlIGZpbGVzLgoKMjAxMS0wMS0zMCAwOTozNSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEFkZCBtaXNzaW5nIGZ1bmN0aW9uIGRlY2xhcmF0aW9uCgoyMDExLTAxLTMwIDAxOjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzE1MTg5NzogZmQgbGVhayB3LyAvcHJvYy9wYXJ0aXRpb25zCiAgIHJlYWQgaW4gZGlza2lvCgoyMDExLTAxLTI5IDIzOjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBORVdTOiBzbm1wZDogQlVHOiAzMTY2NTY4OiBoclN5c3RlbVByb2Nlc3NlcyBtaXNzaW5nIGluIDUuNi81LjYuMQoKMjAxMS0wMS0yNyAwOTozNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFmdGVyIHRlbiB5ZWFycyBpbnRlbnNpdmUgdXNlLCBhbiAiZXhwZXJpbWVudGFsIgogICBmZWF0dXJlIGNhbiBwcm9iYWJseSBiZSByZWxlYXNlZCBmb3IgZ2VuZXJhbCB1c2UuCgoyMDExLTAxLTI2IDE2OjUwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBtYWtlIHRoZSBtaWIyYyBmb3JlYWNoIHJhbmdlcyB3b3JrIGFzIGFkdmVydGlzZWQKICAgaW4gdGhlIGNvbW1lbnRzLgoKMjAxMS0wMS0yNiAxNjo0OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI3c25tcHYzRGVmYXVsdHNfc2ltcGxlOgoKICAgYSB0ZXN0IHRvIGVuc3VyZSB2My9VU00gc25tcC5jb25mIHNldHRpbmdzIHdvcmsKCjIwMTEtMDEtMjYgMTY6NDkgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgcmVtb3ZlIHRlc3RvcHRzCgoyMDExLTAxLTI2IDA5OjEyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHJhcmUgcmFjZSBjb25kaXRpb24gd2hlbiBjb3VudGluZyBwcm9jZXNzZXMKICAgZm9yIFVDRC1TTk1QLU1JQjo6cHJUYWJsZQogICAKICAgVGhlIFhYIHByb2Nlc3MgY2FuIGV4aXQgYWZ0ZXIgZm9wZW4oL3Byb2MvWFgvc3RhdHVzKSBhbmQgYmVmb3JlCiAgIGZnZXRzKCkgZnJvbSBpdC4gc25tcGQgc2hvdWxkIGNvbnRpbnVlIHdpdGggb3RoZXIgcHJvY2Vzc2VzIGFuZAogICBub3QgdG8gc3RvcC4KCjIwMTEtMDEtMTkgMTM6NTcgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMToKCiAgIE1ha2UgdXMgY29tcGF0aWJsZSB3aXRoIHJwbS00LjksIHJwbUdldEZpbGVzeXN0ZW1MaXN0IGRvZXMgbm90CiAgIGV4aXN0IGFueW1vcmUsIHNvIHRoZSBjb25maWd1cmUgc2NyaXB0IHNob3VsZCBub3QgY2hlY2sgaXQuCgoyMDExLTAxLTE5IDA2OjMxICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMxOgoKICAgZGlza0lPTEF4IHJlcXVpcmVzIGV4cCB3aGljaCBtYXkgcmVxdWlyZSAtbG0KCjIwMTEtMDEtMTggMjI6MzkgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgYXV0b2hlYWRlcgoKMjAxMS0wMS0xOCAyMjozNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIEZpbmQgcHJvcGVyIGlmLW1pYiBpbnRlcmZhY2UgZm9yIE5ldEJTRAoKMjAxMS0wMS0xOCAyMjozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIHR5cG8KCjIwMTEtMDEtMTggMjI6MzUgIG5iYQoKICAgKiBhY2NvbmZpZy5oOgoKICAgZGVmaW5lIGRyYWdvbmZseWlkCgoyMDExLTAxLTE0IDEzOjI0ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQWRkIElQdjYgc3VwcG9ydCBmb3IgY3JlYXRpbmcgcm93cyBpbiBpcEFkZHJlc3N0YWJsZS4KICAgCiAgIFVzaW5nIFNOTVAgU0VULCBpdCBpcyBub3cgcG9zc2libGUgdG8gY3JlYXRlIGFuZCBkZXN0cm95IElQdjYKICAgYWRkcmVzc2VzIG9uIGFuIGludGVyZmFjZS4KCjIwMTEtMDEtMTQgMTI6MjggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmcm9tIFJvYmVydCBTdG9yeTogZml4ZWQgYWRkaW5nIG5ldyBhZGRyZXNzZXMgdG8KICAgaXBBZGRyZXNzVGFibGUKICAgCiAgIExvbmcgdGltZSBhZ28sIHRoZXJlIHdhcyBhIGJ1Z3JlcG9ydFsxXSByZWdhcmRpbmcgaXBBZGRyZXNzVGFibGUKICAgb24KICAgbmV0LXNubXAtY29kZXJzIGxpc3QgYW5kIHJzdG9yeSdzIGV4cGVyaW1lbnRhbCBwYXRjaCB3aXRob3V0IGFueQogICBmZWVkYmFjay4KICAgTm93IEkndmUgZ290IGZldyBjb21wbGFpbnRzIHRoYXQgU05NUCBTRVQgb24gaXBBZGRyZXNzVGFibGUKICAgcHJvZHVjZXMgdGhlCiAgIHNhbWUgZXJyb3JzIGFuZCBndWVzcyB3aGF0LCB0aGUgcGF0Y2ggZml4ZXMgdGhlbS4KICAgCiAgIFsxXToKICAgaHR0cDovL3NvdXJjZWZvcmdlLm5ldC9tYWlsYXJjaGl2ZS9mb3J1bS5waHA/dGhyZWFkX25hbWU9MjAwNjA5MjAxMzQ5MzUuMzViMzZlZDYlNDBkZXYuZnV0ei5vcmcmZm9ydW1fbmFtZT1uZXQtc25tcC1jb2RlcnMKCjIwMTEtMDEtMTQgMDY6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIHJlbW92ZSBjb21wbGV0ZWx5IHVzZWxlc3MgYW5kIG5vbnNlbnNpY2FsIGNvZGUKCjIwMTEtMDEtMTMgMTc6MjQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGFsbG9jYXRlIHNwYWNlIGZvciBhcnJheSBOVUxMIHRlcm1pbmF0aW9uCgoyMDExLTAxLTEzIDE1OjU2ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIEVuc3VyZSByZWxlYXNlcyBhcmUgaW5zdGFsbGVkIHRvIHRoZSBjb3JyZWN0IHBhdGggd2l0aGluIHRoZQogICAvdGFncyBTVk4gdHJlZQoKMjAxMS0wMS0xMyAxNToxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5jOgoKICAgUmVtb3ZlIEMrKyBjb21tZW50cwoKMjAxMS0wMS0xMyAxMzoxNyAgZHRzMTIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgRml4IGJyb2tlbiBwYXRjaAoKMjAxMS0wMS0xMyAxMjoxNCAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMToKCiAgIENvbmZpZ3VyZSBmaXhlcyBmb3IgRHJhZ29uRmx5IHN1cHBvcnQKCjIwMTEtMDEtMTMgMTI6MDQgIGR0czEyCgogICAqICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kcmFnb25mbHkuaDoKCiAgIENvZGUgZml4ZXMgZm9yIERyYWdvbkZseSBzdXBwb3J0CgoyMDExLTAxLTEzIDExOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jOgoKICAgRml4IHR5cG8KCjIwMTEtMDEtMTIgMjE6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBtZXJnZSBkdXBsaWNhdGVkIHNodXRkb3duIGZ1bmN0aW9ucwoKMjAxMS0wMS0xMiAyMDoxMSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgUmVpbXBsZW1lbnQgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcjIoKSBieSBhZGRpbmcgdGhlIGZsYWcKICAgTkVUU05NUF9JVEVSQVRPUl9PV05TX0lJTkZPIGZvcgogICBuZXRzbm1wX2l0ZXJhdG9yX2luZm8uIFJlbW92ZQogICBuZXRzbm1wX2dldF90YWJsZV9pdGVyYXRvcl9oYW5kbGVyMigpIGJlY2F1c2UgaXQgaXMgbm93CiAgIHN1cGVyZmx1b3VzLgoKMjAxMS0wMS0xMiAxOToyMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBdm9pZCB0aGF0IHRoZSBjb21waWxlciBjb21wbGFpbnMgYWJvdXQgYSBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvcgogICBuZXRzbm1wX2NlcnRzX2FnZW50X2luaXQoKS4KCjIwMTEtMDEtMTIgMTk6MjAgIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0ZXJzLmM6CgogICBHZXQgcmlkIG9mIGEgY29tcGlsZXIgd2FybmluZyBpbgogICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0ZXJzLmMuCgoyMDExLTAxLTEyIDE5OjA0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyAoZm9ybWF0IHNwZWNpZmljYXRpb24gbWlzbWF0Y2gpIHRoYXQgd2FzCiAgIGludHJvZHVjZWQKICAgaW4gcjE5ODA4ICgic25tcGQ6IFBBVENIRVM6IDI5NzUyNTQ6IEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZgogICBjbG9zZWQgc2Vzc2lvbnMiKS4KCjIwMTEtMDEtMTIgMTU6MDMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wOiBwYXRjaDogMzA5NjcyNTogc3lzT1JUYWJsZSByZWdpc3RhdGlvbiBmb3IKICAgbm90aWZpY2F0aW9uIGxvZyBtaWIKICAgCiAgIG9yaWdpbmFsIHBhdGNoIGZpeGVkIHNldmVyYWwgaXNzdWVzLCBvdGhlciBwYXJ0cyBhcHBsaWVkIGVhcmxpZXIKCjIwMTEtMDEtMTEgMTc6MjcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGRvIG5vdCBpbmNsdWRlIGlwdjYgc3RydWN0IGlmIGlwdjYgaXMgbm90IGVuYWJsZWQKCjIwMTEtMDEtMTEgMTY6MDQgIGR0czEyCgogICAqIG92L1VDRC1maWVsZHMsIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluOgoKICAgUmVjb2duaXNlIEFnZW50IE9JRCBmb3IgRHJhZ29uRmx5IHN5c3RlbXMgKGFuZCBnZW5lcmFsIHRpZHlpbmcKICAgdXApCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAKICAgUW46IFNob3VsZCB0aGVzZSBiZSB1cGRhdGVkIHRvIHJlZmVyIHRvIE5ldC1TTk1QIChyYXRoZXIgdGhhbgogICBVQ0QpPwoKMjAxMS0wMS0xMSAxNjowMSAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIG1pYnMvTkVULVNOTVAtVEMudHh0LCAgIAogICAgICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHNlZHNjcmlwdC5pbjoKCiAgIERlZmluZSBBZ2VudCBPSUQgZm9yIERyYWdvbkZseSBzeXN0ZW1zCiAgIChhbmQgZ2VuZXJhbCB0aWR5aW5nIHVwKQogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTU6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBOZXRCU0QgRHJhZ29uRmx5IHN1cHBvcnQgZm9yIFVEUCAmIFRDUCB0YWJsZXMKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDE0OjQxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9raW5mby5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBDSEFOR0VTOiBOZXRCU0Q6IERyYWdvbkZseSBzdXBwb3J0CiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxNDozNiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CgogICBOZXRCU0QvRHJhZ29uRmx5ICdzdHJ1Y3QgaWZuZXQnIHJlcXVpcmVzIEtFUk5FTCwgYnV0IG5vdCBfS0VSTkVMCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQogICAoSSBob3BlIEkndmUgZ290IHRoaXMgb25lIHJpZ2h0ISkKCjIwMTEtMDEtMTEgMTM6MzQgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZyb20gQmlsbCBGZW5uZXI6IGZpeCBzZW5kaW5nIG9mIFVEUCByZXNwb25zZXMKICAgZnJvbSBtdWx0aWhvbWVkIGFnZW50cy4KICAgCiAgIFRyeSB0byBzZW5kIHRoZSByZXNwb25zZSBhcyBpdCB3YXMgYmVmb3JlIE5ldC1TTk1QIDUuNiAoYXNzdW1pbmcKICAgdGhlIGFwcHJvcHJpYXRlIHJlcXVlc3Qgd2FzIHVuaWNhc3QpIGFuZCBvbmx5IGlmIGl0IGZhaWxzIHRyeSB0bwogICBzZXQgaWZfaW5kZXggKHRoZSByZXF1ZXN0IG11c3QgYmUgYnJvYWRjYXN0KS4KCjIwMTEtMDEtMTEgMTM6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFJlYWxseSBoYW5kbGUgc3lzdGVtcyB3aXRoICdzdHJ1Y3QgdGltZXNwZWMgaWZuZXQuaWZfbGFzdGNoYW5nZScKICAgKG1pc3NpbmcgZWxlbWVudCBmcm9tIFNWTiByZXZpc2lvbiAxOTg0MSkKCjIwMTEtMDEtMTEgMTI6MjQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBBZGRpdGlvbmFsIGhlYWRlcnMgd2hlbiB0ZXN0aW5nIGZvciBJUHY2IGhlYWRlcnMKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDEyOjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE1pc3NpbmcgdHlwZSB1bmRlciBkYXJ3aW4KICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTExIDEyOjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIE5ldEJTRCBzdXBwb3J0IGZvciBEaXNrIEkvTyBzdGF0cwogICBbRnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTI6MDEgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdpdGggJ3N0cnVjdCB0aW1lc3BlYyBpZm5ldC5pZl9sYXN0Y2hhbmdlJyAocmF0aGVyCiAgIHRoYW4gc3RydWN0IHRpbWV2YWwpCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAxMToyNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oOgoKICAgUHVsbCBpbiBrZXJuZWxfbmV0YnNkIG1vZHVsZSB3aGVuIHJlcXVpcmVkCiAgIFtCYXNlZCBvbiBmaXggZnJvbSBOZXRCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMTEgMTA6MzYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9uZXRic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX25ldGJzZC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIENIQU5HRVM6IE5ldEJTRDogUmV0cmlldmUgTUlCLUlJIG5ldHdvcmsgc3RhdGlzdGljcyB2aWEgc3lzY3RsCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMSAwNzowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCBmb3IgcGNpX2xvb2t1cF9uYW1lIGFuZCBSSEVMNAoKMjAxMS0wMS0xMCAxNjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBkYXJ3aW4KICAgKFRoZSBwYXRjaCBmcm9tIHRoZSBOZXRCU0QgYXJjaGl2ZSBhcHBlYXJzIHRvIGJlIGVzc2VudGlhbGx5IHRoZQogICBzYW1lIGFzIHRoZSBlcXVpdmFsZW50IGNvZGUgZnJvbSB0aGUgT3BlbkJTRCBwYXRjaCBhcmNoaXZlKQoKMjAxMS0wMS0xMCAxNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgZGFyd2luCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMCAxNDo1NSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmM6CgogICBDSEFOR0VTOiBOZXRCU0Q6IFVwZGF0ZSBtZW1vcnkgYW5kIENQVSBzdGF0aXN0aWNzIGhhbmRsaW5nCiAgIFtGcm9tIE5ldEJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0xMCAxNDoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBGaXggZGl2aWRlLWJ5LXplcm8gZXJyb3IgaW4gQ1BVIHBlcmZvcm1hbmNlIHN0YXRpc3RpY3MKICAgW0Zyb20gTmV0QlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA5IDIyOjU0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9raW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgQ0hBTkdFUzogT3BlbkJTRDogVXBkYXRlIFNXUnVuIGNvZGUgdG8gdXNlIGt2bV9nZXRwcm9jMgogICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA5IDIxOjMwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQ0hBTkdFUzogYnVpbGQ6IE9wZW5CU0Q6IEZpeCBvcmRlciBvZiBoZWFkZXJzIHdoZW4gY2hlY2tpbmcKICAgPG5ldGluZXQvaW5fcGNiLmg+CiAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDkgMTk6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBBbWVuZCBob3cgbXVsdGktQ1BVIHN0YXRpc3RpY3MgYXJlIHJldHJlaXZlZCB1c2luZyBzeXNjdGwgb24KICAgT3BlbkJTRCBzeXN0ZW1zCiAgIChpZiB0aGlzIGJsb2NrIHdhcyBhY3RpdmUsIHdoaWNoIGl0IGlzbid0LCBidXQgdGhhdCdzIG5vdAogICBpbXBvcnRhbnQgcmlnaHQgbm90KQogICBbQmFzZWQgb24gT3BlbkJTRCBwYXRjaCBhcmNoaXZlLCBhbWVuZGVkIChwcm9iYWJseSB3cm9uZ2x5KSBieQogICBEVFNdCgoyMDExLTAxLTA5IDE4OjEzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmM6CgogICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCgoyMDExLTAxLTA5IDE4OjExICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X25ldGJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmM6CgogICBzeXNjdGwgdGFrZXMgYSAnc2l6ZV90JyB2YXJpYWJsZSBmb3IgdGhlIHNpemUgcGFyYW1ldGVyCgoyMDExLTAxLTA4IDA4OjMwICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXM6CgogICBDSEFOR0VTOiBidWlsZGluZzogRml4IC0td2l0aC1zZWN1cml0eS1tb2R1bGVzIGhhbmRsaW5nCiAgIEFsbG93IHJlcGVhdGVkIG1vZHVsZXMgKHRzbSx0c20pIGFzIHdlbGwgYXMgZGVmYWlsdCBtb2R1bGVzICh1c20pCiAgIE1vdmUgdGhlIGdlbmVyYXRpb24gb2YgdGhlIGZpbGVzIGFmdGVyIHRoZSBjaGVja2luZwoKMjAxMS0wMS0wOCAwMDo0NyAgbWFnZnIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVwZGF0ZSBhY2NvbmZpZy5oIHdpdGggY2hhbmdlcyBmcm9tIHIxOTgxOS4KICAgUmVydW4gYXV0b2hlYWRlci4KCjIwMTEtMDEtMDcgMjA6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICBDSEFOR0VTOiBPcGVuQlNEOiBTdXBwb3J0IHVwZGF0aW5nIHRoZSByb3V0aW5nIHRhYmxlCiAgIFtGcm9tIE9wZW5CU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMjA6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBTZXQgJ25leHQnIGZpZWxkIGZvciB1ZHAgZW50cnkgbGlua2VkIGxpc3Qgb24gT3BlbkJTRDQKICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQogICAKICAgVGhpcyBzaG91bGQgcHJvYmFibHkgYmUgc2V0IGluIDxuZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oPgoKMjAxMS0wMS0wNyAyMDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBVc2UgYSBzdWl0YWJsZSBjb25zdGFudCBmb3IgQ1dEIGJ1ZmZlciBzaXplCiAgIFtCYXNlZCBvbiBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDIwOjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBNb3ZlIGdsb2JhbCB2YXJpYWJsZSBpbnRvIHRoZSBtZXRob2Qgd2hlcmUgaXQncyB1c2VkLgogICBbRnJvbSBPcGVuQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDE2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jOgoKICAgSGFuZGxlIHN5c3RlbXMgd2l0aG91dCBJRk1fVE9LRU4KICAgW0Zyb20gT3BlbkJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxNDozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmM6CgogICBVcGRhdGUgcmV0cmlldmFsIG9mIGNhY2hlIHVzYWdlIHN0YXRpc3RpY3Mgb24gRnJlZUJTRAogICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDE0OjIwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW5jcmVhc2UgbWF4aW11bSBzaXplIG9mIGV4ZWN1dGUgb3V0cHV0IGNhY2hlCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2ggYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTQ6MDkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZSBkaXJlY3RpdmVzCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdoZXJlIFJURl9MTElORk8gaXMgbm90IGRlZmluZWQKICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgSW5jbHVkZSB6ZnMgbW91bnQgcG9pbnRzIGZvciBkaXNrIHJlcG9ydHMgdW5kZXIgRnJlZUJTRAogICBbRnJvbSBGcmVlQlNEIHBhdGNoIGFyY2hpdmVdCgoyMDExLTAxLTA3IDEzOjM0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmg6CgogICBQcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUtaW5jbHVzaW9uCiAgIFtGcm9tIEZyZWVCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzoyNCAgZHRzMTIKCiAgICogIHNubXBsaWIvY2FsbGJhY2suYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIva2V5dG9vbHMuYywgIAogICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEluY2x1ZGUgPHVuaXN0ZC5oPgogICBbRnJvbSBCU0QgcGF0Y2hlcyBhcmNoaXZlXQoKMjAxMS0wMS0wNyAxMzoyMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQXZvaWQgY2FsbGJhY2sgcmUtdXNlIG9mIGNsb3NlZCBzZXNzaW9ucy4KICAgKFBhcnQgb2YgcGF0Y2ggIzI5NzUyNTQgLSBzZWUgU1ZOIHJldmlzaW9uIDE5ODA4KQoKMjAxMS0wMS0wNyAxMjo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgRnJlZUJTRCB1c2VzIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG5hbWluZyBzY2hlbWUgZm9yIHN0cnVjdCBpZnJlcQogICBbRnJvbSBGcmVlQlNEIHBhdGNoZXMgYXJjaGl2ZV0KCjIwMTEtMDEtMDcgMTI6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBFbnN1cmUgVENQIHRhYmxlIGluZm9ybWF0aW9uIGlzIGxvYWRlZCBiZWZvcmUgY291bnRpbmcKICAgY29ubmVjdGlvbnMKICAgW0Zyb20gRnJlZUJTRCBwYXRjaCBhcmNoaXZlXQoKMjAxMS0wMS0wNiAxOTozNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIEZpeCBkb2N1bWVudGF0aW9uIGJ1ZyBwb2ludGVkIG91dCBpbiBjcGFuIGJ1ZyAjNTI2MTgKCjIwMTEtMDEtMDYgMTQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI5NzUyNTQ6IEF2b2lkIGNhbGxiYWNrIHJlLXVzZSBvZiBjbG9zZWQKICAgc2Vzc2lvbnMKICAgCiAgIFFuOiBTaG91bGQgdGhpcyBhbHNvIGJlIGFwcGxpZWQgd2hlbiBtYWluIHNlc3Npb24gaXMgTlVMTD8KCjIwMTEtMDEtMDYgMTM6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgRml4IG1pc2xlYWRpbmcgaW5kZW50YXRpb24KICAgCiAgIFFuOiBTaG91bGQgdGhpcyBjYWxsICdzdWJhZ2VudF9zdGFydHVwJyByYXRoZXIgdGhhbgogICAnYWdlbnR4X3Jlb3Blbl9zZXNzaW9uJz8KICAgUW46IFdoeSBkb2Vzbid0IHRoaXMgYXR0ZW1wdCB0byByZS1vcGVuIHRoZSBzZXNzaW9uIGlmIGl0IHdhcwogICBvcmlnaW5hbGx5IE5VTEw/CgoyMDExLTAxLTA2IDEyOjQ2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjk0MTgxMTogSGFuZGxlIHN1Y2Nlc3NmdWwgcmVxdWVzdHMgd2l0aAogICByZXFJRCAwCgoyMDExLTAxLTA2IDA5OjM4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYzoKCiAgIFNwZWxsaW5nIGZpeDogSW5pdGlhbHppZXMgLT4gSW5pdGlhbGl6ZXMuCgoyMDExLTAxLTA2IDA5OjM1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBuZXRzbm1wX2dldF90YWJsZV9pdGVyYXRvcjIoKS4KICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIG5ldHNubXBfcmVnaXN0ZXJfdGFibGVfaXRlcmF0b3IyKCkuCiAgIENIQU5HRVM6IGFnZW50OiBBZGRlZCBuZXRzbm1wX2hhbmRsZXJfb3duc19pdGVyYXRvcl9pbmZvKCkuCiAgIENIQU5HRVM6IGFnZW50OiBGaXhlZCBsZWFrLWF0LWV4aXQgdHJpZ2dlcmVkIGJ5IHNubXBOb3RpZnlUYWJsZS4KICAgQ0hBTkdFUzogYWdlbnQ6IEZpeGVkIGxlYWstYXQtZXhpdCB0cmlnZ2VyZWQgYnkKICAgc25tcFRhcmdldEFkZHJUYWJsZS4KICAgQWxzbywgcmVzdG9yZWQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgb2YKICAgbmV0c25tcF9yZWdpc3Rlcl90YWJsZV9pdGVyYXRvcigpLgoKMjAxMS0wMS0wNiAwNDo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgaW5jbHVkZSBzeXMvc29ja2V0LmggaWYgYXZhaWxhYmxlCgoyMDExLTAxLTA1IDE0OjA2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUdTOiAzMTM0MzIzOiBGaXggY3Jhc2ggd2hlbiBjb21wYXJpbmcgaW52YWxpZAogICBPSURzCgoyMDExLTAxLTA1IDE0OjA0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBCVUdTOiAzMTUxMjU0OiBGaXggY3Jhc2ggd2l0aCBpbnZhbGlkCiAgIHRyYXBoYW5kbGUgZGlyZWN0aXZlCgoyMDExLTAxLTA1IDA5OjU1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICBFeHBhbmQgdGFiIGNoYXJhY3RlcnMKCjIwMTEtMDEtMDQgMjI6MDYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoZWNrIHRoYXQgdGhlIGFyZ3VtZW50IHRvCiAgIG5ldHNubXBfdHJhbnNwb3J0X2NvcHkgaXMgbm9uLU5VTEwKCjIwMTEtMDEtMDQgMTg6MjQgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBDb3B5cmlnaHQgdXBkYXRlIGZvciAyMDExCgoyMDExLTAxLTA0IDEyOjAxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIEZpeCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgdGhlIFdpbjMyIE1JQi1JSQogICBpbXBsZW1lbnRhdGlvbi4KCjIwMTEtMDEtMDMgMTk6NDggIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmM6CgogICBSZW1vdmVkIHR3byB1bnVzZWQgdmFyaWFibGVzLgoKMjAxMS0wMS0wMyAxOTo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgRml4ZWQgYSByZWNlbnRseSBpbnRyb2R1Y2VkIG1pc21hdGNoIGJldHdlZW4gZm9ybWF0IHNwZWNpZmljYXRpb24KICAgYW5kIGFyZ3VtZW50IGxpc3QuCgoyMDExLTAxLTAzIDE5OjQ3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEdldCByaWQgb2YgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncyBieSBhZGRpbmcgdHdvCiAgICNpbmNsdWRlIGRpcmVjdGl2ZXMgYW5kIGNvbW1lbnRpbmcgb3V0IHR3byB1bnVzZWQgZnVuY3Rpb25zLgoKMjAxMS0wMS0wMiAwNTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBkb24ndCBmcmVlIGNhbGxlcnMgcHRyCgoyMDExLTAxLTAyIDA1OjQ4ICByc3RvcnkKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY0xvY2FsQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIGNsZWFuIHVwIFNOTVBfRlJFRSB1c2FnZQoKMjAxMS0wMS0wMiAwNTo0NyAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBkZWJ1ZyB0b2tlbgoKMjAxMS0wMS0wMiAwNTo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgZml4IGZ1bmN0aW9uIG5hbWUgaW4gcHJvdG90eXBlCgoyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwoKMjAxMS0wMS0wMiAwNTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHJlbW92ZSBpbmxpbmUgdmVyc2lvbnMgb2YgY29udGFpbmVyIGZ1bmNzCgoyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGRvbnQgcmV0dXJuIGVtcHR5IGFycmF5CgoyMDExLTAxLTAyIDA1OjQ2ICByc3RvcnkKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZml4IHR5cG9zL2dyYW1tYXIgaW4gbWFuIHBhZ2VzL2NvbW1lbnRzIChubyBjb2RlIGNoYW5nZXMpCgoyMDExLTAxLTAyIDA1OjQ1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgbmV3IHRyYW5zcG9ydCBjb25maWcgdG9rZW5zCiAgIGxvY2FsQ2VydC9wZWVyQ2VydCwKICAgZGVwcmVjYXRlIG91cl9pZGVudGl0eSwgdGhlaXJfaWRlbnRpdHkKCjIwMTEtMDEtMDIgMDU6NDUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXBjbWQuMS5kZWYsICAgCiAgICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIE5FV1M6IHNubXBsaWI6IGludHJvZHVjZSBuZXcgbG9jYWxDZXJ0L3BlZXJDZXJ0LCBkZXByZWNhdGUKICAgc2VydmVyQ2VydCwgY2xpZW50Q2VydCwgZGVmWDUwOVNlcnZlclB1YiwgZGVmWDUwOUNsaWVudFB1YgoKMjAxMS0wMS0wMiAwNTo0NCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCBJUHY2IHN1cHBvcnQgdG8gRFRMU1VEUCB0cmFuc3BvcnQKICAgQ0hBTkdFUzogc25tcGxpYjogdXNlIG5ldyBuZXRzbm1wX3NvY2thZGRyX3N0b3JhZ2UgaW4KICAgbmV0c25tcF9hZGRyX3BhaXIKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIGJhc2VfdHJhbnNwb3J0IHB0ciBmb3IgdHVubmVsZWQgdHJhbnNwb3J0cwoKMjAxMS0wMS0wMiAwNTo0MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBza2lwIG5vbi1BRl9JTkVUIGludGVyZmFjZXMgd2hlbiBsb2FkaW5nIGlwdjQKICAgYWRkcnMKCjIwMTAtMTItMjkgMDE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgTkVXUzogc25tcGQ6IFBhdGNoIDMxNDE0NjI6IGZyb20gZmVubmVyOiBmaXggYWdlbnR4IHN1YmFnZW50CiAgIGlzc3VlcyB3aXRoIG11bHRpcGxlLW9iamVjdCByZXF1ZXN0cwoKMjAxMC0xMi0yOSAwMTozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBORVdTOiBzbm1wZDogUGF0Y2ggZnJvbSBOaWVscyB0byBmaXggVkFDTSBwZXJzaXN0YW50IHN0b3JhZ2UuCgoyMDEwLTEyLTIxIDExOjI5ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIEJyaW5nIGFsbCB2ZXJzaW9ucyBvZiBtYWtlcmVsZWFzZS54bWwgaW50byBsaW5lCgoyMDEwLTEyLTIxIDA2OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oOgoKICAgZml4IGNvbmZpZ3VyaW5nIHdpdGggLS1kaXNhYmxlLWRlYnVnZ2luZwoKMjAxMC0xMi0yMCAyMzoyNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgUGF0Y2ggZnJvbSBNYWdudXMgdG8gZml4IGlmICEgdGVzdHMgb24gc29sYXJpcwoKMjAxMC0xMi0xNCAyMDoxMCAgcnN0b3J5CgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZml4IHR5cG8gaW4gbWFuIHBhZ2UKCjIwMTAtMTItMTAgMTU6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUGF0Y2ggZnJvbSBDbGF1cyBLbGVpbiB0byBmaXggZW5naW5laWQgZ2VuZXJhdGlvbgogICBvbiBvdXRnb2luZyB2MyB0cmFwcyBmcm9tIHRoZSBhZ2VudAoKMjAxMC0xMi0wOCAxMzoxNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBhZGQgbmV3bHkgY3JlYXRlZC9kZXN0cm95ZWQgaW50ZXJmYWNlcyB0bwogICBpcHY2SWZUYWJsZQogICAKICAgVGhlIGxpc3Qgb2YgaW50ZXJmYWNlcyB3YXMgbmV2ZXIgcmVmcmVzaGVkLCBub3cgaXQgaXMgcmVsb2FkZWQKICAgZXZlcnkgdGltZSB0aGUKICAgdGFibGUgaXMgYWNjZXNzZWQuIEkndmUgYWxzbyBmaXhlZCBhIG1lbW9yeSBsZWFrIGFuZCBvcHRpbWl6ZWQKICAgdGhlIGxvYWRpbmcKICAgb2YgdGhlIGxpc3QgYSBiaXQuCgoyMDEwLTEyLTA2IDIzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jOgoKICAgUGF0Y2ggZnJvbSBOaWVscyB0byByZW1vdmUgZXh0cmEgaGVhZGVycyBmcm9tIHRoZSBsaW51eCBkb3Qzc3RhdHMKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMTItMDYgMjI6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIENoZWNrIGZvciB0aGUgbWluaW11bSByZXF1aXJlZCBmdW5jdGlvbiBpbiBPcGVuU1NMIGZvciBEVExTCiAgIHN1cHBvcnQKCjIwMTAtMTItMDYgMTY6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIGNhbGwgbmV0c25tcF9jZXJ0c19hZ2VudF9pbml0IHNvb25lciwgZml4aW5nIHNubXB0cmFwZCAoRClUTFMKICAgc3VwcG9ydAoKMjAxMC0xMi0wNiAxNjoyNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgZml4IGNvbnRleHRFbmdpbmVJRHMgZm9yIG91dGdvaW5nIGluZm9ybXMgZnJvbSBzbm1waW5mb3JtIHRvIGJlCiAgIHRoZSBsb2NhbCBlbmdpbmVJRAoKMjAxMC0xMi0wMSAyMToxOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCBjb25mbGljdGluZyBkZWNsYXJhdGlvbnMKCjIwMTAtMTItMDEgMDE6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgUGF0Y2ggZnJvbSBtYWdmciB0byBmaXggYnVpbGRpbmcgd2l0aG91dCBvcGVuc3NsCgoyMDEwLTEyLTAxIDAxOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgdXNlIG5ldHNubXBfYXNzZXJ0IGluc3RlYWQgb2YgYXNzZXJ0CgoyMDEwLTExLTMwIDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGltcGxlbWVudCBEVExTIGNvb2tpZXMgc2VtaS1wcm9wZXJseSAoc3RhdGUgaXMgc3RpbGwgc2F2ZWQsIHdoaWNoCiAgIHN0aWxsIG5lZWRzIHRvIGNoYW5nZSkKCjIwMTAtMTEtMzAgMjM6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggMzA0OTAyOTogZnJvbSBmZW5uZWM6IGZpeCBhIG1lbW9yeSBsZWFrIHdpdGgKICAgc25tcCBidWxrd2Fsa3MKCjIwMTAtMTEtMzAgMjM6MTYgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1MzQzNjogZnJvbTogdGFrZXZvczogZml4OgogICB0Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MgaW52YWxpZCBtZW1vcnkgYWNjZXNzCgoyMDEwLTExLTMwIDIzOjEyICBoYXJkYWtlcgoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1MzQzNjogZnJvbTogdGFrZXZvczogZml4OgogICB0Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzIGludmFsaWQgbWVtb3J5IGFjY2VzcwoKMjAxMC0xMS0zMCAyMjoxOCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICByZXZlcnRlZCAxOTcwMSAoZXRodG9vbCkgYXMgaXQgYnJva2UgdGhpbmdzCgoyMDEwLTExLTMwIDIxOjA4ICBuYmEKCiAgICogYXBwcy9zbm1wdGxzLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jOgoKICAgdV9pbnQzMl90IGlzIGxlc3MgcG9ydGFibGUgdGhhbiB1aW50MzJfdCAoU29sYXJpcyAxMSkKCjIwMTAtMTEtMzAgMjA6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIGEgY29tcGlsZSB3YXJuaW5nIGFib3V0IGEgbmVzdGVkIGlmIHdpdGhvdXQgYSBibG9jawoKMjAxMC0xMS0zMCAxOTo1NyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBlcnJvciBjaGVjayB0aGUgcmlnaHQgcG9pbnRlciBhZnRlciBhdHRlbXB0aW5nIGFsbG9jYXRpb24KCjIwMTAtMTEtMzAgMDU6NTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIE5FV1M6IGFwcHM6IFBBVENIIDMwNTQ4MTc6IGZyb20gbmlnaHRjb2Rpbmc6IEFkZHMgcGVyLXZhcmlhYmxlCiAgIHRpbWVkIG91dHB1dCBzdXBwb3J0IHRvIHNubXB3YWxrIHVzaW5nIC1DVAoKMjAxMC0xMS0zMCAwNTo1NiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTcwOTA6IGZyb20gc2hlbW1pbmdlcjogbWFrZSBldGh0b29sCiAgIHN1cHBvcnQgb24gbGludXggdXNlIHRoZSBoaWdoIHNwZWVkIHN0cnVjdCBpbmZvIGZvciAxMDBHKy4KCjIwMTAtMTEtMzAgMDU6NDcgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogc25tcGQ6IFBBVENIIDMwNTcwOTM6IGZyb20gc2hlbW1pbmdlcjogYWxsb3cgbGludXggdG8gdXNlCiAgIGxpYnBjaSBmb3IgY3JlYXRpbmcgdXNlZnVsIGlmRGVzY3Igc3RyaW5ncwoKMjAxMC0xMS0zMCAwNDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBDSEFOR0VTOiBQQVRDSCAzMDc0OTE4OiBmcm9tIHdlaXpoZW5nOiBjaGVjayBmb3IgQ09OVEFJTkVSX0lOU0VSVAogICBmYWlsdXJlcyBhbmQgcmVhY3QgYXBwcm9wcmlhdGVseSB0byBhdm9pZCBtZW1vcnkgbGVha3MKCjIwMTAtMTEtMzAgMDQ6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGFkZCBkZWJ1ZyBmb3IgY2VydCBmaW5kIGhpbnQgYXMgc3RyaW5nL2ludAoKMjAxMC0xMS0zMCAwNDozMCAgcnN0b3J5CgogICAqICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGluc3RlYWQgb2YgcmVseWluZyBvbiBORVRTTk1QX0RTX0xJQl9BUFBUWVBFLAogICBicmVhayBvdXQKICAgY2VydCB0YWJsZSBpbml0cyB0byBuZXcgYWdlbnQgY2VydCBpbml0IGZ1bmN0aW9uLCBjYWxsZWQgZnJvbQogICBpbml0X2FnZW50LgoKMjAxMC0xMS0zMCAwNDoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiBlbmZvcmNlIG1heCBsZW5ndGggb24gVExTIHNlY05hbWUgbWFwcwogICBDSEFOR0VTOiBzbm1wZDogYWRkIHByaW9yaXR5IHRvIHNlY25hbWUgZGVidWdnaW5nCgoyMDEwLTExLTI5IDIyOjIwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wZDogYWRkIGRlYnVnIGZvciBzc2wgY2lwaGVycywgY2xhcmlmeSBmaW5nZXJwcmludAogICBtYXRjaCBkZWJ1ZwoKMjAxMC0xMS0yOSAyMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHVzZSBjYWNoZS11bmlxdWUgaWQgaW5zdGVhZCBvZiBoYW5kbGVyIG5hbWUgZm9yCiAgIHNoYXJlZAogICBjYWNoZSByZWxvYWQgcHJvdGVjdGlvbgoKMjAxMC0xMS0xOSAxNToyNSAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmM6CgogICBOaWVscywgTmllbHMsIHlvdSBzaG91bGQga25vdyBiZXR0ZXIgdGhhbiBtYWtpbmcgbGFzdCBtaW51dGUKICAgY2hhbmdlcyB0byBhCiAgIHBhdGNoIGFuZCB0aGVuIGNvbW1pdCBpdCB3aXRob3V0IHRlc3RpbmcgOi0oCgoyMDEwLTExLTE4IDExOjA0ICBidmFzc2NoZQoKICAgKiAgLiwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jOgoKICAgQXBwbGllZCByMTk2ODggb24gdGhlIHRydW5rIHRvbyAoZm9sbG93LXVwIGZvciByMTk2ODUpLgoKMjAxMC0xMS0xOCAwMzo0OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnMuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBkb24ndCBzZWNvbmQtZ3Vlc3MgY2FjaGUgaGFuZGxlcgogICAKICAgKHdhdmVzIGhhbmQpIHRoaXMgaXMgbm90IHRoZSBmdW5jdGlvbiB5b3UgYXJlIGxvb2tpbmcgZm9yLgogICAKICAgbmV0c25tcF9jYWNoZV9pc192YWxpZCgpIGlzIG5vdCBtZWFudCBmb3IgbWliIG1vZHVsZXMKCjIwMTAtMTEtMTcgMTk6NTkgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYzoKCiAgIE1vcmUgcHJvY3Rpb24gYWdhaW5zdCBvdmVyZmxvd2luZyBzbnByaW50ZgoKMjAxMC0xMS0xNyAxOTo1NyAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIERvbnQgdXNlIGZpcnN0IGVsZW1lbnQgb2Ygb2lkIHRvIHNhdmUgaWZJbmRleCAtIGl0IGNhbiBvbmx5IGJlCiAgIDAuLjIKICAgU2Vjb25kIGVsZW1lbnQgaXMgb25seSAwLi4zOSwgc28gd2UgaGF2ZSB0byB1c2UgYSB0aGlyZCBlbGVtZW50LgoKMjAxMC0xMS0xNyAxOTozOSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAKICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMyOgoKICAgVGVzdCBnZXRmc3N0YXQvZ2V0dmZzc3RhdCBpbiB0aW1lIGZvciBtb2R1bGUgc2VsZWN0aW9uCgoyMDEwLTExLTE3IDE5OjM3ICBuYmEKCiAgICogc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBSZW1vdmUgYm9ndXMgdGVzdCBmb3IgZmxhZ3M9PTAgKE9fUkRPTkxZPT0wKS4gTWFrZXMKICAgdWRwRW5kcG9pbnRUYWJsZSB3b3JrIGFnYWluCgoyMDEwLTExLTE3IDA0OjU1ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXggZG91YmxlIGZyZWUgaW4gVExTIGVycm9yIGhhbmRsaW5nCgoyMDEwLTExLTE2IDEwOjM5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGU6CgogICBSZXZlcnRlZCBNaW5HVy1zcGVjaWZpYyBjaGFuZ2VzIGZyb20gcjE5NTQ5IHN1Y2ggdGhhdCB0ZXN0IFQwNjUKICAgcGFzc2VzIGFnYWluIG9uIE1pbkdXLgoKMjAxMC0xMS0xNiAxMDowNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgQ0hBTkdFUzogTGludXg6IGFnZW50OiBpcE5ldFRvUGh5c2ljYWxUYWJsZTogRG8gbm90IGxvZyBhbiBlcnJvcgogICBtZXNzYWdlIGlmIG9uZSBvciBtb3JlIGludGVyZmFjZXMgYXJlIHByZXNlbnQgdGhhdCBkbyBub3QgaGF2ZQogICBzdWNoIGluZm9ybWF0aW9uIChOVURfTk9BUlApLCBlLmcuIHR1bm5lbHMuIFJlcG9ydGVkIGJ5IFN0ZXBoZW4KICAgSGVtbWluZ2VyLiBTZWUgYWxzbyBwYXRjaCAjMzEwNzAwMy4KCjIwMTAtMTEtMTUgMTQ6MTUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgYnVncyBpbiBhc25fcGFyc2VfdW5zaWduZWRfaW50NjQoKSwKICAgYXNuX2J1aWxkX3Vuc2lnbmVkX2ludDY0KCksIGFzbl9wYXJzZV9zaWduZWRfaW50NjQoKSBhbmQKICAgYXNuX2J1aWxkX3NpZ25lZF9pbnQ2NCgpLiBNb3N0IGJ1dCBub3QgYWxsIG9mIHRoZXNlIGJ1Z3Mgd2VyZQogICBzcGVjaWZpYyB0byA2NC1iaXQgc3lzdGVtcy4gRml4ZXMgYnVnICMzMDkzMTk5LgoKMjAxMC0xMS0xNSAxMzozMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA4YXNuMV9jbGliLmM6CgogICBBdm9pZCB0cmlnZ2VyaW5nIHRydW5jYXRpb24gd2FybmluZ3MuCgoyMDEwLTExLTE1IDEzOjE2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDhhc24xX2NsaWIuYzoKCiAgIFJlc3RyaWN0ZWQgYWxsIGNvbnN0YW50cyB0byAzMiBiaXRzLgoKMjAxMC0xMS0xNSAxMjozNSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTY2NS4KCjIwMTAtMTEtMTUgMTI6MzMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZWQgdGhlIGFyZ3VtZW50IHR5cGUgb2YKICAgZGVidWdfcmVnaXN0ZXJfdG9rZW5zKCkgZnJvbSBjaGFyICogaW50byBjb25zdCBjaGFyICouCgoyMDEwLTExLTE1IDEwOjU2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDhhc24xX2NsaWIuYzoKCiAgIEFkZGVkIHVuaXQgdGVzdCBmb3IgQVNOLjEgZW5jb2RpbmcgYW5kIGRlY29kaW5nIChvbmx5IDMyLWJpdCBhbmQKICAgNjQtYml0CiAgIGludGVnZXJzIHNvIGZhcikuCgoyMDEwLTExLTExIDIyOjQ4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgRml4IHIxOTYzNjogVHJhcE9JRCBpcyBub3QgdGhlIGZpcnN0IHZhcmJpbmQgaW4gdGhlIGNvbnZlcnRlZCB2MgogICB0cmFwCgoyMDEwLTExLTExIDA4OjM4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIENsZWFudXA6IFJlbW92ZWQgc3VwZXJmbHVvdXMgcmVmZXJlbmNlcyB0byB0aGUgUE9TSVggdGhyZWFkcwogICBsaWJyYXJ5LgoKMjAxMC0xMS0xMSAwODoyMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgRm9sbG93LXVwIGZvciByMTk2NjA6IFVzZSBwaWRfdCBjb25zaXN0ZW50bHkuCgoyMDEwLTExLTEwIDE2OjM2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEludHJvZHVjZWQgbmV0c25tcF9waWRfdC4KICAgQ0hBTkdFUzogV2luMzI6IEVsaW1pbmF0ZWQgY2FzdHMgYmV0d2VlbiBpbnQgYW5kIEhBTkRMRSBpbgogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgYW5kCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLgoKMjAxMC0xMS0xMCAxNTo0OSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBGb2xsb3ctdXAgZm9yIHIxOTYwNjogY211X2NvbXBhdCByZW1vdmFsLgoKMjAxMC0xMS0xMCAxMjozMSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBCVUc6IDMxMDI5MDQ6IEFsbCBOZXQtU05NUCBDIHNvdXJjZSBmaWxlcyBhcmUgbm93CiAgIGNvbXBpbGVkIHdpdGggLWZuby1zdAogICByaWN0LWFsaWFzaW5nLCBhdCBsZWFzdCBpZiB0aGUgY29uZmlndXJlZCBjb21waWxlciBzdXBwb3J0cyB0aGlzCiAgIGZsYWcuCgoyMDEwLTExLTA5IDEzOjQ3ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVGVzdCBUMDMwIGRvZXMgbm93IHBhc3Mgb24gTWluR1cuCgoyMDEwLTExLTA5IDEzOjQwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgc2ltcGxlX2V2YWxfdG9vbHMuc2g6IFJlbW92ZWQgYSBzdXBlcmZsdW91cyBJU0RFRklORUQgaW52b2NhdGlvbi4KCjIwMTAtMTEtMDkgMTI6MDQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X3NpbXBsZToKCiAgIFBhc3NlcyBub3cgb24gTWluR1cgdG9vLgoKMjAxMC0xMS0wOSAxMTozMSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgRm9sbG93LXVwIGZvciByMTk2NDYuCgoyMDEwLTExLTA5IDExOjMwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IElmIHRoZSBhZ2VudCBoYXMgYmVlbiBhc2tlZCB0byBzdG9wLAogICB3YWl0IHVudGlsIHRoZSBzbm1wZCBwcm9jZXNzIGRpc2FwcGVhcmVkIGJlZm9yZSBwcm9jZWVkaW5nLgoKMjAxMC0xMS0wOSAxMDowMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBhZ2VudDogY29tMnNlYzYgZGlyZWN0aXZlOiBJZiBjb25maWd1cmUgaGFzIG5vdCBmb3VuZAogICBnZXRhZGRyaW5mbygpLCBub24tbnVtZXJpYyBJUHY2IGFkZHJlc3NlcyBkbyBub3cgdHJpZ2dlciBhbiBlcnJvcgogICBtZXNzYWdlLgoKMjAxMC0xMS0wOCAxNTozNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlOgoKICAgQ0hBTkdFUzogdGVzdGluZzogVGVzdCA3MSAoY29tMnNlYzZfc2ltcGxlKSBkb2VzIG5vdyBzdWNjZWVkIGV2ZW4KICAgaWYgSVB2NiBETlMgcmVzb2x1dGlvbiBpcyBub3QgYXZhaWxhYmxlLgoKMjAxMC0xMS0wOCAxNTowMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgTWluR1csIHRlc3Rpbmc6IGNsaWIgdGVzdHMgYnVpbGQgYWdhaW4gd2l0aG91dCB3YXJuaW5ncy4KCjIwMTAtMTEtMDggMTQ6NTIgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgIENIQU5HRVM6IE1pbkdXOiBjb25maWd1cmU6IERldGVjdGlvbiBvZiB0aGUgZnVuY3Rpb25zCiAgIGdhaV9zdHJlcnJvcigpLCBnZXRhZGRyaW5mbygpLCBnZXRob3N0YnluYW1lKCkgYW5kIGdldGhvc3RuYW1lKCkKICAgZG9lcyBub3cgc3VjY2VlZC4KCjIwMTAtMTEtMDggMTQ6NDggIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwN2luZXRfcHRvbl9jbGliLmM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBBZGRlZCBpbmV0X250b3AoKSBhbmQgaW5ldF9wdG9uKCkgdW5pdCB0ZXN0LgoKMjAxMC0xMS0wOCAxNDo0NyAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkOgoKICAgdGVzdGluZzogY2xpYl9idWlsZDogQWRkZWQgI2luY2x1ZGUgZGlyZWN0aXZlcyAoPGFycGEvaW5ldC5oPiBhbmQKICAgPG5ldGluZXQvaXA2Lmg+KS4KCjIwMTAtMTEtMDggMDg6NDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBXaW4zMjogYWdlbnQ6IGVsaW1pbmF0ZWQgY2FzdHMgZnJvbS90byBpbnQgZm9yIHRocmVhZCBoYW5kbGVzLgoKMjAxMC0xMS0wOCAwNzo1OCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBSZW1vdmVkIE5FVFNOTVBfU1RBVElDX0lOTElORSBmcm9tIHRoZSBkZWNsYXJhdGlvbiBvZgogICBfYnVpbGRfY2FjaGVfbmFtZSAtIGF0IGxlYXN0IGdjYyBpcyBiZXR0ZXIgdGhhbiBhIGh1bWFuIGF0CiAgIGRlY2lkaW5nIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW5saW5lZCBhbmQgd2hpY2ggb25lcyBub3QuCgoyMDEwLTExLTA4IDA3OjU2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIG5ldHNubXBfdGFibGVfZGF0YV9jbG9uZV9yb3coKTogQWRkZWQgbWlzc2luZyBmcmVlKCkgc3RhdGVtZW50IGluCiAgIGFuIGVycm9yIHBhdGguCgoyMDEwLTExLTA3IDIxOjE1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyMTE5NzI1OiBGaXggc2tpcE5GU0luSG9zdFJlc291cmNlcwogICBoYW5kbGluZyBvZiBoclN0b3JhZ2VUYWJsZQoKMjAxMC0xMS0wNyAyMToxNCAgbWFnZnIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoZWNrIHRoZSByZXR1cm4gdmFsdWUgb2Ygc3RyZHVwIGluCiAgIG5ldHNubXBfY3JlYXRlX2RhdGFfbGlzdCBhbmQgZmFpbCBpZiBzdHJkdXAgZmFpbHMuCgoyMDEwLTExLTA3IDE5OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMzA5NjcyNTogRG9uJ3QgcmVnaXN0ZXIgdjFUcmFwIGNhbGxiYWNrLAogICBpZiBTTk1QdjEgaXMgbm90IHN1cHBvcnRlZAoKMjAxMC0xMS0wNyAxOTozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDE4NDAyMzA6IERvbid0IGluY2x1ZGUgdGhlIGluZGV4IG9iamVjdCBhcwogICAocHNldWRvLSlhY2Nlc3NpYmxlIGNvbHVtbi4KCjIwMTAtMTEtMDcgMTk6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAzMDk2NzI1OiBJbmNsdWRlIFNOTVB2MSB0cmFwIE9JRHMgaW4KICAgbmxtTG9nTm90aWZpY2F0aW9uSUQgY29sdW1uCgoyMDEwLTExLTA3IDE2OjM1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZvcmNlIGEgOyBhdCB0aGUgZW5kIG9mIHRoZSBzdGF0aWNfYXNzZXJ0CiAgIG1hY3JvLgoKMjAxMC0xMS0wNSAxNTo0MSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgTWFkZSBzdXJlIHRoYXQgcnBtR2V0UGF0aCgpIGNhbiBiZSBmb3VuZCBieSBjb25maWd1cmUuCgoyMDEwLTExLTA1IDE0OjUwICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMToKCiAgIFJlbW92ZWQgc3VwZXJmbHVvdXMgLUkvdXNyL2luY2x1ZGUvcnBtLgoKMjAxMC0xMS0wNSAxMjoxOCAgYnZhc3NjaGUKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczEsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzMjoKCiAgIENIQU5HRVM6IGFnZW50OiBGaW5kIG91dCB3aGV0aGVyIGxpYnJwbSBpcyBhdmFpbGFibGUgYmVmb3JlCiAgIGNvbmZpZ3VyaW5nIHRoZSBhZ2VudCBtb2R1bGVzIGJlY2F1c2UgaG9zdC9kYXRhL2FjY2Vzcy9zd2luc3QKICAgbmVlZHMgc3ltYm9sIEhBVkVfTElCUlBNLiBBcyBhIHJlc3VsdCwgY29uZmlndXJlIGhhcyB0byBiZSBydW4KICAgb25seSBvbmNlIGluc3RlYWQgb2YgdHdpY2UgdG8gZW5hYmxlIHRoZSBoclNXSW5zdGFsbGVkIHRhYmxlIG9uCiAgIHN5c3RlbXMgdGhhdCBoYXZlIGxpYnJwbS4KCjIwMTAtMTEtMDUgMTI6MTEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYzoKCiAgIFN1cHByZXNzIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMTEtMDUgMTA6MDAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IGhvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3JwbTogRml4ZWQgYSBtZW1vcnkgbGVhawogICBpbiBuZXRzbm1fc3dpbnN0X2FyY2hfaW5pdCgpLgoKMjAxMC0xMS0wNSAwOToyMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmM6CgogICBDSEFOR0VTOiBhZ2VudDogaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtOiBQYXNzIGNvcnJlY3QgcGF0aCB0bwogICBycG1kYk9wZW4oKSBzdWNoIHRoYXQgb3BlbmluZyB0aGUgZGF0YWJhc2Ugc3VjY2VlZHMuCiAgIENIQU5HRVM6IGFnZW50OiBob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG06IExvZyBhbiBlcnJvciBtZXNzYWdlCiAgIGlmIHJwbWRiT3BlbigpIGZhaWxzLgoKMjAxMC0xMS0wNSAwODo1MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwT2JqZWN0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jOgoKICAgUm1vbiAvIGRpc21hbiBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0xMS0wNSAwODo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGRlZCBtYWNybyBuZXRzbm1wX3N0YXRpY19hc3NlcnQoKS4KCjIwMTAtMTEtMDUgMDg6NDAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgRm9sbG93LXVwIGZvciByMTk1NjYuCgoyMDEwLTExLTA1IDA4OjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5oOgoKICAgUmVtb3ZlZCBhIChoYXJtbGVzcyA/KSBjaXJjdWxhciByZWZlcmVuY2UuCgoyMDEwLTExLTA0IDEzOjA5ICBkdHMxMgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBMaW51eDogUEFUQ0hFUzogMzA4MzAyNzogRml4IFJQTSBzcGVjIGZpbGUgdG8gc3VwcG9ydAogICBDZW50T1MKCjIwMTAtMTEtMDMgMTM6MjIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMFRsc0lwdjZfc2ltcGxlOgoKICAgc2tpcCB0bHNpcHY2IHRlc3QgaWYgbm90IHRsc3RjcC90Y3BpcHY2IGRvbWFpbnMKCjIwMTAtMTEtMDEgMjM6MDMgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIE5FV1M6IHNubXBsaWI6IFJlbW92ZSB0aGUgc3VwcG9ydCBmb3IgQ01VIGNvbXBhdGliaWxpdHkgc2luY2UKICAgdGhlcmUgaXMgbm8gd2F5IHRvIGVuYWJsZSBpdCBhbmQgbm9ib2R5IGhhdmUgbWlzc2VkIGl0LgoKMjAxMC0xMS0wMSAxNjo1MCAgZHRzMTIKCiAgICogbWFuL3ZhcmlhYmxlcy41LmRlZjoKCiAgIFJld29yayBkZXNjcmlwdGlvbiBvZiBPSUQgbmFtZSBoYW5kbGluZyB0byBiZQogICBub3QgcXVpdGUgc28gaW5jcmVkaWJseSBvdXQgb2YgZGF0ZS4KCjIwMTAtMTEtMDEgMTY6NDcgIGR0czEyCgogICAqIG1hbi9zbm1wZ2V0LjEuZGVmOgoKICAgRG9jdW1lbnQgLUNmIGluIHRoZSB0d28gbWFuIHBhZ2VzIHNlcGFyYXRlbHkuCgoyMDEwLTEwLTI5IDIyOjMxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBudWxsIG91dCBiaW8gcG9pbnRlcnMgYWZ0ZXIgYmVpbmcgZnJlZWQ7IGJhaWwgb24gY29ubmVjdGlvbgogICB3aXRoIG5vIHNzbCBwb2ludGVyCgoyMDEwLTEwLTI5IDE0OjM1ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIFJldmVydGVkIGluY29ycmVjdCBjaGFuZ2VzIGZyb20gcjE5NTc1LgoKMjAxMC0xMC0yOSAxNDoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBGaXhlZCBhIGJ1ZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTUxNS4KCjIwMTAtMTAtMjkgMTQ6MDAgIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgoKICAgUmV2ZXJ0ZWQgdGhlIGluY29ycmVjdCBjaGFuZ2VzIGZyb20gcjE5NTkzLgoKMjAxMC0xMC0yOSAxMzozOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIFJlZHVjZWQgbnVtYmVyIG9mIGxlYWstYXQtZXhpdCBjb21wbGFpbnRzIHRyaWdnZXJlZCBieQogICBzbm1wbGliL2NlcnRfdXRpbC5jLgoKMjAxMC0xMC0yOSAxMzozNyAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jOgoKICAgTW9yZSBsZWFrLWF0LWV4aXQgZml4ZXMuCgoyMDEwLTEwLTI5IDEzOjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmg6CgogICBNb3JlIGxlYWstYXQtZXhpdCBmaXhlcy4KCjIwMTAtMTAtMjkgMTI6MTggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgU3BlbGxpbmcgZml4IGluIGxvZyB0ZXh0czogY29udGFpbnRlciAtPiBjb250YWluZXIuCgoyMDEwLTEwLTI5IDA5OjU4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBSYW4gZmlsbHVwX2VudHJ5X2luZm8oKSB0aHJvdWdoIGluZGVudC4KCjIwMTAtMTAtMjkgMDk6NTYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIE5ldGxpbmsgSVB2NiBwcmVmaXggcHJvY2Vzc2luZzogQWRkZWQgbW9yZSBkZWJ1ZyBzdGF0ZW1lbnRzLgoKMjAxMC0xMC0yOSAwOTo1NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgTWFkZSBhcmd1bWVudCBjaGVja2luZyBvZiBuZXRzbm1wX2hhbmRsZXJfb3duc190YWJsZV9pbmZvKCkgbW9yZQogICBzdHJpY3QuCgoyMDEwLTEwLTI5IDA5OjUyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jTG9jYWxBZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1JlbUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cExvY2FsUG9ydFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Ib3N0TmFtZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtSVBBZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1QcmltSVBBZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5oOgoKICAgTW9yZSBNSUItc3BlY2lmaWMgbGVhay1hdC1leGl0IGZpeGVzLgoKMjAxMC0xMC0yOSAwNzo1NiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jOgoKICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0xMC0yOCAxODozMSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBGaXggY29uc3QgcXVhbGlmaWVyIHdhcm5pbmcKCjIwMTAtMTAtMjggMTc6NTMgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDbGVhbiBvdXQgU29sYXJpcyB3YXJuaW5ncwoKMjAxMC0xMC0yOCAxNzo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgTFZNIGlzIExpbnV4IG9ubHkKCjIwMTAtMTAtMjggMTc6NTEgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEF2b2lkIGNoYXIgc3Vic2NyaXB0cyAoc2lnbmVkIGNoYXJzXCEpCgoyMDEwLTEwLTI4IDE3OjQzICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X3BrZ2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgc25tcGxpYi9zbm1wdHNtLmM6CgogICBjYXN0cyBhbmQgZm9ybWF0IHNwZWNpZmllcnMgaW4gZGVidWcgb3V0cHV0CgoyMDEwLTEwLTI4IDE3OjQxICBuYmEKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBDYXN0IHRvIHNvY2thZGRyIHRvIGF2b2lkIHdhcm5pbmcKCjIwMTAtMTAtMjggMTc6NDAgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgVW50YW5nbGUgcGljbCBmcm9tIGtzdGF0IGFjY2VzcyBzbyBpdCBjb21waWxlcyBvbiB4ODYgU29scmFpcwogICAxMC9PcGVuU29sYXJpcwoKMjAxMC0xMC0yOCAxNToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV0luc3RhbGxlZFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2ludGVyZmFjZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIE1vcmUgbGVhay1hdC1leGl0IGZpeGVzLgoKMjAxMC0xMC0yOCAxNToxMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIG5ldHNubXBfcmVnaXN0ZXJfd2F0Y2hlZF9pbnN0YW5jZTIoKSwKICAgbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NjYWxhcjIoKSwgbmV0c25tcF9jbG9uZV93YXRjaGVyX2luZm8oKQogICBhbmQgbmV0c25tcF9vd25zX3dhdGNoZXJfaW5mbygpLiBTZWUgYWxzbyB0aGUgRG94eWdlbiBjb21tZW50cwogICBmb3IgbW9yZSBpbmZvLgoKMjAxMC0xMC0yOCAxNDowMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICBGaXggbG9naWMgb2YgdGVzdGluZyBmb3Igb3V0LW9mLXJhbmdlIGVudW0gdmFsdWVzLgogICBSZXBvcnRlZCBieSBCb3JpcyBad2VpbXVlbGxlci4KCjIwMTAtMTAtMjggMTI6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgR2V0IHJpZCBvZiBPcGVuU1NMLXJlbGF0ZWQgY29tcGlsYXRpb24gd2FybmluZ3MuIFNob3VsZCB3b3JrIGZvcgogICBib3RoIE9wZW5TU0wgdmVyc2lvbnMgMC45LnggYW5kIDEuMC54LgoKMjAxMC0xMC0yOCAxMTo0NiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIChtaXNtYXRjaCBiZXR3ZWVuIGZvcm1hdCBzcGVjaWZpY2F0aW9uCiAgIGFuZCBhcmd1bWVudCkgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByNjU2Mi4KCjIwMTAtMTAtMjggMTE6NDMgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmM6CgogICBHZXQgcmlkIG9mIHJlY2VudGx5IGludHJvZHVjZWQgbWVtZHVwKCkgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTEwLTI4IDExOjQxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTU1MC4KCjIwMTAtMTAtMjggMTE6MzIgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBSZXZlcnRlZCByMTk1NjUgYmVjYXVzZSBpdCBjYXVzZWQgZ2NjIHRvIHJlcG9ydCBtb3JlIHdhcm5pbmdzCiAgIGluc3RlYWQgb2YgbGVzcy4KCjIwMTAtMTAtMjggMTE6MTggIGJ2YXNzY2hlCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTU2Ni4KCjIwMTAtMTAtMjggMTA6NDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBQYXJ0aWFsbHkgcmV2ZXJ0ZWQgcjE5NTE1OiByZW1vdmVkIHRoZSBuZXdseSBpbnRyb2R1Y2VkIGZ1bmN0aW9ucwogICBhbmQgZGF0YSBtZW1iZXJzIGFnYWluLCBidXQgd2l0aG91dCByZWludHJvZHVjaW5nIHRoZQogICBsZWFrLWF0LWV4aXQuCgoyMDEwLTEwLTI4IDEwOjMyICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgQ2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgZmlyc3QgdHdvIGFyZ3VtZW50cyBzdWNoIHRoYXQgaXQgaXMgbm8KICAgbG9uZ2VyIG5lY2Vzc2FyeSB0byBjYXN0IHRoZXNlIHR3byBhcmd1bWVudHMgKGhhcyBiZWVuIHJldmVydGVkCiAgIHZpYSByMTk1NjgpLgoKMjAxMC0xMC0yOCAwOTo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBGaXhlZCB5ZXQgYW5vdGhlciBjcmFzaCBpbiBuZXRzbm1wX2NhY2hlX3JlbW92ZSgpLgoKMjAxMC0xMC0yOCAwODo0NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIE1hZGUgaXQgZWFzaWVyIHRvIGVuYWJsZSB0aGUgbWVtb3J5IGxlYWsgY2hlY2tlciBidWlsdC1pbiBpbgogICBNU1ZDJ3MgQyBydW50aW1lIGxpYnJhcnkuCgoyMDEwLTEwLTI3IDIwOjM3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIFNpemVvZiBoYXMgdHlwZSBzaXplX3QKCjIwMTAtMTAtMjcgMjA6MzUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBSZW1vdmUgc3VwZXJmbHVvdXMgY2FzdAoKMjAxMC0xMC0yNyAxODo0MCAgbmJhCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIFNwcmlua2xlIHNvbWUgdW5zaWduZWRuZXNzIHNvIHZhcnMgYW5kIHBhcmFtcyBhZ3JlZSBvbiB0eXBlCgoyMDEwLTEwLTI3IDE4OjM4ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIEluaXRpYWxpemUgdmFycyB0aGF0IGdjYyB0aGlua3MgYXJlIHVuaW5pdGlhbGl6ZWQKCjIwMTAtMTAtMjcgMTg6MzYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBBIG1vcmUgbWVhbmluZ2Z1bCB0ZXN0IGZvciBNTERfTElTVEVORVJfUVVFUlkKCjIwMTAtMTAtMjcgMTg6MzUgIG5iYQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIHByb3RvdHlwZXMgYW5kIGluY2x1ZGVzIHdlcmUgbWlzc2luZwoKMjAxMC0xMC0yNyAxODozMyAgbmJhCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB0ZXN0LmM6CgogICBDaGVjayBmZ2V0cyByZXR1cm4KCjIwMTAtMTAtMjUgMjA6NTkgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMzA4ODM2MDogRW5zdXJlIHB5dGhvbiBtb2R1bGVzIGFyZSBidWlsdAogICBhZ2FpbnN0IHRoZSBjb3JyZWN0IGxpYnJhcmllcwoKMjAxMC0xMC0yNSAyMDozNCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDU4MTAxOiBXcml0ZWFibGUgJ2xvbmcnIGluc3RhbmNlcyB3b3JrIG9uCiAgIDY0LWJpdCBzeXN0ZW1zLCBidXQgbm90IHdyaXRhYmxlICdpbnQncwoKMjAxMC0xMC0yNSAxNjowNSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRG9uJ3QgYXR0ZW1wdCB0byBwcm9jZXNzIHVucmVjb2duaXNlZCAiaWdub3JlKiIgZGlyZWN0aXZlcy4KICAgUGFzcyB0aGVzZSB0aHJvdWdoIHRvIHRoZSBhcHByb3ByaWF0ZSByZWdpc3RlcmVkIGNvbmZpZyBoYW5kbGVycwogICAoaWYgYW55KQoKMjAxMC0xMC0yNSAxNTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBGaXggYSBzdHVwaWQgdHlwbwoKMjAxMC0xMC0yNSAxNTozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDYyNTM4OiBGaXggY29tMnNlYyogaGFuZGxpbmcgb2YKICAgbm9uLWRlZmF1bHQgY29udGV4dHMKCjIwMTAtMTAtMjUgMTI6NTQgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZToKCiAgIENIQU5HRVM6IFdpbjMyOiB0ZXN0aW5nOiBBdm9pZCB0aGF0IFQyMDAgZmFpbHMgb24ga25vd24gTWljcm9zb2Z0CiAgIFNOTVAgZXh0ZW5zaW9uIERMTCBidWdzLgoKMjAxMC0xMC0yNSAwODowNiAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIE5FV1M6IExpbnV4OiBzbm1wZCBpcyBhZ2FpbiBzaW5nbGUtdGhyZWFkZWQuCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjk1OTgxMTogZnJvbSBKYW4gU2FmcmFuZWs6IFJlaW1wbGVtZW50CiAgIExpbnV4IE5ldGxpbmsgSVB2NiBwcmVmaXggbGlzdGVuZXIuCgoyMDEwLTEwLTI1IDA3OjE1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgQXZvaWQgdGhhdCB0aGUgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IGNhc3RpbmcgYXdheSB0aGUgJ2NvbnN0JwogICBhdHRyaWJ1dGUgZm9yIHRoZSBmaXJzdCBhcmd1bWVudCBvZiBzc2xjdHhfY2xpZW50X3NldHVwKCkgYW5kCiAgIHNzbGN0eF9zZXJ2ZXJfc2V0dXAoKS4KCjIwMTAtMTAtMjUgMDY6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICBpbmNsdWRlIG5lZWRlZCBwcm90b3R5cGVzCgoyMDEwLTEwLTI1IDA2OjE2ICBuYmEKCiAgICogIGFwcHMvc25tcHRscy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBBZGp1c3QgdHlwZXMgdG8gYmV0dGVyIG1hdGNoIHVzYWdlCgoyMDEwLTEwLTI1IDA2OjE1ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBSZXZlYWwgaGlkZGVuIC1lIGFuZCAtdSBvcHRpb25zCgoyMDEwLTEwLTI1IDA2OjE0ICBuYmEKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGluY2x1ZGUgbmVlZGVkIHByb3RvdHlwZXMKCjIwMTAtMTAtMjUgMDY6MDEgIG5iYQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfZnJlZWJzZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIGluY2x1ZGUgbmVlZGVkIHByb3RvdHlwZXMKCjIwMTAtMTAtMjUgMDY6MDAgIG5iYQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLAogICAgICAgICBhcHBzL3NubXB0cmFwZF9zcWwuYzoKCiAgIGNvbnN0LWp1Z2dsaW5nIC0gd2UgZG9udCBsaWtlIHdhcm5pbmdzCgoyMDEwLTEwLTIzIDExOjU2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIFJlZW5hYmxlZCBjYWNoZSByZW1vdmFsIGFuZCBmcmVlaW5nIC8gbW92ZWQgY2FjaGUgcmVmY291bnQKICAgaW5jcmVtZW50aW5nIHRvIG5ldHNubXBfY2FjaGVfb3duc19jYWNoZSgpIC8gY29udmVydGVkIHRhYnMgdG8KICAgc3BhY2VzLgoKMjAxMC0xMC0yMyAxMTowNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBGaXhlZCBhbm90aGVyIGNyYXNoIGluIG5ldHNubXBfY2FjaGVfcmVtb3ZlKCkuCgoyMDEwLTEwLTIzIDExOjAwICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBSZW1vdmluZyB0aGUgbGFzdCBjYWNoZSB2aWEKICAgbmV0c25tcF9jYWNoZV9yZW1vdmUoKSBkb2VzIG5vIGxvbmdlciB0cmlnZ2VyIGEgY3Jhc2guCgoyMDEwLTEwLTIzIDEwOjU3ICBidmFzc2NoZQoKICAgKiAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWIuYzoKCiAgIFQwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYjogSW50cm9kdWNlZAogICBuZXRzbm1wX2NhY2hlX2NyZWF0ZSgpLgoKMjAxMC0xMC0yMiAxNToyNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBEaXNhYmxlZCBjYWNoZSBkZWFsbG9jYXRpb24gYmVjYXVzZSBpdCBtYWtlcyB0d28gdW5pdCB0ZXN0cyBmYWlsCiAgIC0gdG8gYmUgYW5hbHl6ZWQgZnVydGhlci4KCjIwMTAtMTAtMjIgMTU6MDMgIGJ2YXNzY2hlCgogICAqIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NhZ2VudGxpYi5jOgoKICAgQnVpbGRzIGFnYWluLgoKMjAxMC0xMC0yMiAxNDo0OSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IE1JQi1zcGVjaWZpYyBsZWFrLWF0LWV4aXQgZml4ZXMuCgoyMDEwLTEwLTIyIDE0OjQyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBleGFtcGxlIE1JQjogQWRkZWQgc2h1dGRvd24gZnVuY3Rpb24gdGhhdCBmcmVlcwogICBhbGwgbWVtb3J5IG93bmVkIGJ5IHRoaXMgTUlCIGltcGxlbWVudGF0aW9uLgoKMjAxMC0xMC0yMiAxNDo0MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBBdXRvbWF0aWNhbGx5IGZyZWUgdGhlIHByaXZhdGUgZGF0YSBzdHJ1Y3R1cmUKICAgYWxsb2NhdGVkIGJ5IG5ldHNubXBfY29udGFpbmVyX3RhYmxlX2hhbmRsZXJfZ2V0KCkuCgoyMDEwLTEwLTIyIDE0OjM4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IENvdW50IHRoZSBudW1iZXIgb2YgdXNlcnMgb2YgYSBuZXRzbm1wX2NhY2hlIGRhdGEKICAgc3RydWN0dXJlIGluc3RlYWQgb2YgZHVwbGljYXRpbmcgaXQuCgoyMDEwLTEwLTIyIDE0OjM2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICBDSEFOR0VTOiBhZ2VudDogQWRkZWQgcmVmZXJlbmNlIGNvdW50IGluIHRoZQogICBuZXRzbm1wX2JhYnlfc3RlcHNfbW9kZXMgZGF0YSBzdHJ1Y3R1cmUgYW5kIG1hZGUgc3VyZSB0aGF0IHRoaXMKICAgZGF0YSBzdHJ1Y3R1cmUgaXMgYXV0b21hdGljYWxseSBmcmVlZCB3aGVuIHRoZSBoYW5kbGVyIHRoYXQgb3ducwogICBpdCBpcyB1bnJlZ2lzdGVyZWQuCgoyMDEwLTEwLTIyIDE0OjM0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIG5ldHNubXBfdW5yZWdpc3Rlcl9hdXRvX2RhdGFfdGFibGUoKS4KCjIwMTAtMTAtMjIgMDg6NTEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxOTUxMTogbWFkZSBzdXJlIHRoYXQgY2xlYW5fc3VidHJlZSgpIGRlYWxsb2NhdGVzCiAgIGFsbCBjb250ZXh0IGNhY2hlIG5vZGVzLgoKMjAxMC0xMC0yMiAwODo0OSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBhZ2VudDogbmV0c25tcF9jYWNoZV9mcmVlKCk6IEEgbW9yZSBkZXRhaWxlZCBtZXNzYWdlIGlzCiAgIG5vdyBsb2dnZWQgd2hlbiBhdHRlbXB0aW5nIHRvIGZyZWUgYSBjYWNoZSB0aGF0IGlzIHN0aWxsIGluIHRoZQogICBjYWNoZSBsaXN0LgoKMjAxMC0xMC0yMiAwNjozOSAgYnZhc3NjaGUKCiAgICogbHRtYWluLnNoOgoKICAgUmV2ZXJ0ZWQgbHRtYWluLnNoIGNoYW5nZXMgZnJvbSByMTk1MjIuCgoyMDEwLTEwLTIyIDA2OjM0ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGx0bWFpbi5zaDoKCiAgIFJlZ2VuZXJhdGVkIGF1dG9jb25mL2F1dG9tYWtlL2xpYnRvb2wtZ2VuZXJhdGVkIGZpbGVzIGJ5IHJ1bm5pbmcKICAgYXV0b3JlY29uZiAtZi4KCjIwMTAtMTAtMjEgMDc6NTEgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIFJlYXBwbGllZCByMTg3MjYrcjE4NzY2OiBtYWtlIGxpYnRvb2wgc3VwcG9ydCAtZnN0YWNrLXByb3RlY3RvciouCiAgIFNlZSBhbHNvCiAgIGh0dHA6Ly9ibG9nLmdtYW5lLm9yZy9nbWFuZS5jb21wLmdudS5saWJ0b29sLmJ1Z3MvbW9udGg9MjAxMDA2MDEKICAgZm9yIHRoZSBjb25maXJtYXRpb24gdGhhdCB0aGlzIGlzIGEgbGlidG9vbCBidWcuCgoyMDEwLTEwLTIwIDIwOjE2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBBdm9pZCB0aGF0IG5ldHNubXBfY2hlY2tfZGVmaW5lZG5lc3MoKSB0cmlnZ2VycyBhIGJ1aWxkIGZhaWx1cmUKICAgd2hlbiBjb21waWxlZCBhZ2FpbnN0IG9sZCBWYWxncmluZCBoZWFkZXJzLiBOb3RlOiB0aGUgaW50cm9kdWNlZAogICBjaGVjayBpcyBzdHJpY3RlciB0aGFuIG5lY2Vzc2FyeSAtIFZBTEdSSU5EX1BSSU5URl9CQUNLVFJBQ0UoKQogICB3YXMgaW50cm9kdWNlZCBpbiBWYWxncmluZCAzLjUuMCBvciBiZWZvcmUgKG5vdCBzdXJlIHdoaWNoCiAgIHZlcnNpb24pLgoKMjAxMC0xMC0yMCAxNzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgYWRkZWQgYSBjb21tZW50IGluIGNvZGUgbm90ZSB0aGF0IHRoaXMgcmVxdWlyZXMgYSBmYWlybHkgcmVjZW50CiAgIHZhbGdyaW5kCgoyMDEwLTEwLTIwIDE3OjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICByZXJhbiBhdXRvY29uZiBhZnRlciB1cGRhdGluZyBsaWJ0b29sCgoyMDEwLTEwLTIwIDE2OjU5ICBoYXJkYWtlcgoKICAgKiAgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBpbnN0YWxsLXNoLCBsdG1haW4uc2gsIG00L2xpYnRvb2wubTQsICAgCiAgICAgIG00L2x0b3B0aW9ucy5tNCwgbTQvbHR2ZXJzaW9uLm00LCBtNC9sdH5vYnNvbGV0ZS5tNDoKCiAgIHVwZGF0ZSB0byBsaWJ0b29sIDIuNAoKMjAxMC0xMC0yMCAxNjo1OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBkaXN0L2F1dG9jb25mLXZlcnNpb246CgogICB1cGRhdGVkIHRvIGF1dG9jb25mIDIuNjgKCjIwMTAtMTAtMjAgMTQ6MjYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYywgICAKICAgICAgd2luMzIvbWliX21vZHVsZV9zaHV0ZG93bi5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIHRoZSBmdW5jdGlvbnMgbmV0c25tcF9kdXBsaWNhdGVfdmFyaWFibGUoKQogICBhbmQgbmV0c25tcF9jYWNoZV9oYW5kbGVyX293bnNfY2FjaGUoKS4KICAgQ0hBTkdFUzogYWdlbnQ6IE1lbW9yeSBhbGxvY2F0ZWQgYnkgbmV0c25tcF9yZWdpc3Rlcl9vbGRfYXBpKCkKICAgZm9yIHN0b3JpbmcgU05NUCB2YXJpYWJsZXMgaXMgbm93IGZyZWVkIHdoZW4gdGhlIGFzc29jaWF0ZWQKICAgaGFuZGxlciBpcyB1bnJlZ2lzdGVyZWQuCiAgIENIQU5HRVM6IGFnZW50OiBDYWxsYmFjayBmdW5jdGlvbiBkYXRhIGRlYWxsb2NhdGlvbiBkb2VzIG5vCiAgIGxvbmdlciBmcmVlIHRoZSBtZW1vcnkgYWxsb2NhdGVkIGZvciB0aGUgQWdlbnRYIHNlc3Npb24gLSB0aGUKICAgbWVtb3J5IHRoYXQgd2FzIGFsbG9jYXRlZCBmb3IgQWdlbnRYIHNlc3Npb25zIGlzIG5vdyBkZWFsbG9jYXRlZAogICBqdXN0IGFzIHRoYXQgZm9yIGFueSBvdGhlciBzZXNzaW9uLiBUaGlzIGZpeGVzIGEgbGVhay1hdC1leGl0LgogICBDSEFOR0VTOiBhZ2VudDogTm90aWZ5IGZpbHRlciB0YWJsZTogQ2FsbGJhY2sgZnVuY3Rpb24gZGF0YQogICBkZWFsbG9jYXRpb24gZG9lcyBubyBsb25nZXIgZnJlZSB0aGUgZGF0YSBpbgogICAqICAgICAqc25tcE5vdGlmeUZpbHRlclRhYmxlX2lmX2N0eC5jb250YWluZXIgLSB0aGlzIGlzIG5vdyBkb25lIGJ5ICAKICAgICAgIHNodXRkb3duX3NubXBOb3RpZnlGaWx0ZXJUYWJsZSgpLiAgICBDSEFOR0VTOiBXaW4zMjoKICAgICAgc2h1dGRvd25fc25tcE5vdGlmeUZpbHRlclRhYmxlKCkgYW5kCgogICBzaHV0ZG93bl93aW5FeHRETEwoKSBhcmUgbm93IGludm9rZWQgd2hlbiB0aGUgTmV0LVNOTVAgc2VydmljZSBpcwogICBzdG9wcGVkLgoKMjAxMC0xMC0yMCAxMzo0NyAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA1dGFibGVfZGF0YXNldF9jYWdlbnRsaWIuYzoKCiAgIFVuaXQtdGVzdGluZywgVDAwNXRhYmxlX2RhdGFzZXRfY2FnZW50bGliOiBhZGRlZCBpbml0X2FnZW50KCkgYW5kCiAgIHNodXRkb3duX2FnZW50KCkgY2FsbHMuCgoyMDEwLTEwLTIwIDEzOjEyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIEZpeCBub24tQU5TSSBmdW5jdGlvbiBoZWFkaW5nCgoyMDEwLTEwLTIwIDEyOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIGZpeCBpcENpZHJSb3V0ZVRhYmxlIChtYXNrKSBmb3IgbGl0dGxlIGVuZGlhbiBzeXN0ZW1zCgoyMDEwLTEwLTIwIDEwOjM0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkZWQgc25tcF9zZXNzX3Nlc3Npb25fbG9va3VwKCkuCiAgIENIQU5HRVM6IGFnZW50OiBDYWxsIHNodXRkb3duX21hc3Rlcl9hZ2VudCgpIGFuZCBzaHV0ZG93bl9hZ2VudCgpCiAgIGR1cmluZyBzaHV0ZG93bi4KICAgQ0hBTkdFUzogYWdlbnQ6IFRoZSBmdW5jdGlvbiBjbGVhbl9zdWJ0cmVlKCkgZG9lcyBubyBsb25nZXIKICAgdHJpZ2dlciBkb3VibGUgZnJlZXMgYW5kIGludmFsaWQgbWVtb3J5IHJlYWRzLiBOb3RlOiB0aGlzCiAgIGZ1bmN0aW9uIHdhcyBhbHJlYWR5IHdyb25nIGF0IHRoZSB0aW1lIGl0IHdhcyBpbnRyb2R1Y2VkIChwYXRjaAogICAjNzI0OTI1IC8gcjg1MzEsIEp1bHkgMjAwMykuCiAgIENIQU5HRVM6IGFnZW50OiBSZW1vdmVkIGEgY29tbWVudCBpbiBuZXRzbm1wX2hhbmRsZXJfZnJlZSgpIHRoYXQKICAgaXMgbm93IG9ic29sZXRlIGJlY2F1c2Ugb2YgdGhlIGNsZWFuX3N1YnRyZWUoKSBjaGFuZ2VzLgogICBDSEFOR0VTOiBhZ2VudDogTW9kaWZpZWQgbmV0c25tcF9kZXJlZ2lzdGVyX2FnZW50X25zYXAoKSBzdWNoCiAgIHRoYXQgaXQgbmV2ZXIgZXhhbWluZXMgc2Vzc2lvbnMgdGhhdCBhbHJlYWR5IGhhdmUgYmVlbiBjbG9zZWQuIEl0CiAgIGlzIGZvciB0aGlzIGNoYW5nZSB0aGF0IGl0IHdhcyBuZWNlc3NhcnkgdG8gaW50cm9kdWNlIHRoZSBuZXcKICAgZnVuY3Rpb24gc25tcF9zZXNzX3Nlc3Npb25fbG9va3VwKCkuCgoyMDEwLTEwLTE5IDIzOjQ5ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlOgoKICAgQ0hBTkdFUzogdGVzdGluZzogQWRkIG1pc3NpbmcgcHJlY29uZGl0aW9ucwoKMjAxMC0xMC0xOSAyMjoxMSAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGRvbid0IGRlZmF1bHQgdG8gYXBwbHlpbmcgdG8gNS4yCgoyMDEwLTEwLTE5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYWRkZWQgdGhlIDUuNiBicmFuY2gKCjIwMTAtMTAtMTkgMjE6MTMgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBCVUcgMzA3OTA3MiBmcm9tIERhdmUgQmVhbDogZml4IGJ1ZmZlciBvdmVyZmxvdyBmcm9tIGJhZCB1c2Ugb2YKICAgc3RybmNhdAoKMjAxMC0xMC0xOSAyMDo1NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBQQVRDSDogMzA4NTI5NSBmcm9tIEJpbGwgRmVubmVyOiByZWNvZ25pemUgTElTVEVOIHN0YXRlIGFnYWluCgoyMDEwLTEwLTE5IDIwOjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcnBtLmM6CgogICBGaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMTAtMTkgMjA6MDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYzoKCiAgIEZpeCByZXR1cm5pbmcgZ2FyYmFnZSBpbiBoclNXSW5zdGFsbGVkTmFtZSAoc2VlIHJldiAxOTQ4NCBmb3IKICAgZnVydGhlciBub3RlcykKCjIwMTAtMTAtMTkgMTk6NTggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdW5zYWZlICglKSBkZXZpY2UgbmFtZXMKCjIwMTAtMTAtMTkgMTk6NTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFNvbGFyaXMgZG9lcyBub3QgdXNlIGdldHN0YXQsIHNvIGRvbnQgZGVjbGFyZSBpdAoKMjAxMC0xMC0xOSAxOTo1NiAgbmJhCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgdWRwL3RjcCBjb25mdXNpb24gaW4gZGVidWcgaGFuZGxlCgoyMDEwLTEwLTE5IDE5OjU0ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEFib3J0IGFmdGVyIGJhZCAtQz8gb3B0aW9uCgoyMDEwLTEwLTE5IDE5OjUzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIERlbGV0ZSByZWR1bmRhbnQgZXh0ZXJuIGRlY2xhcmF0aW9ucwoKMjAxMC0xMC0xOSAxODowOCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQXZvaWQgdGhhdCBNU1ZDIDIwMTAgcHJpbnRzIGEgd2FybmluZwogICBtZXNzYWdlIGFib3V0IHJlZGVmaW5pbmcgRUFERFJJTlVTRS4KCjIwMTAtMTAtMTkgMTg6MDUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIENIQU5HRVM6IFdpbjMyOiBBdm9pZCB0aGF0IE1TVkMgcmVwb3J0cyBhIHdhcm5pbmcgbWVzc2FnZSBhYm91dAogICByZWRlZmluaXRpb24gb2YgdGhlIG1hbGxvYygpIG1hY3JvIGR1cmluZyBidWlsZGluZyB0aGUgTmV0LVNOTVAKICAgc291cmNlIGNvZGUuCgoyMDEwLTEwLTE5IDA3OjA0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIENIQU5HRVM6IGFnZW50OiBGYWN0b3Igb3V0IGNvbW1vbiBjb25maWdfYWRkX21pYiBzdGF0bWVudHMKCjIwMTAtMTAtMTggMTQ6MjIgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgTWFyayB0aGUgcHJvcGVyIGhhbmRsZXIgdGhhdCBvd25zIHRoZSB0YWJsZSByZWdpc3RyYXRpb24KICAgaW5mb3JtYXRpb24uCgoyMDEwLTEwLTE4IDEwOjU0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEFkZGVkIGZ1bmN0aW9ucyBuZXRzbm1wX2hhbmRsZXJfb3duc190YWJyZXEoKSwKICAgbmV0c25tcF9yZWdpc3RyYXRpb25fb3duc190YWJyZXEoKSwgbmV0c25tcF9pdGVyYXRvcl9jbG9uZSgpLgogICBFeHBvcnRlZCBuZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX2Nsb25lKCkuCiAgIENIQU5HRVM6IGFnZW50OiBNb2RpZmllZCBuZXRzbm1wX2l0ZXJhdG9yX2RlbGV0ZV90YWJsZSgpIHN1Y2gKICAgdGhhdCBpdCBmcmVlcyB0aGUgdGFibGUgcmVnaXN0cmF0aW9uIGluZm9ybWF0aW9uIHN0b3JlZCBpbiBhCiAgIHRhYmxlIGl0ZXJhdG9yIHRvby4KICAgQ0hBTkdFUzogYWdlbnQ6IE1vZGlmaWVkIG5ldHNubXBfZ2V0X3RhYmxlX2l0ZXJhdG9yX2hhbmRsZXIoKQogICBzdWNoIHRoYXQgdGhlIHRhYmxlIGl0ZXJhdG9yIHBhc3NlZCB0byB0aGlzIGZ1bmN0aW9uIGlzIGZyZWVkCiAgIHdoZW4gdGhlIGFzc29jaWF0ZWQgaGFuZGxlciBpcyBmcmVlZC4KICAgCiAgIFJlc3RvcmVkIHRoZSBiZWhhdmlvciBvZiBuZXRzbm1wX2dldF90YWJsZV9oYW5kbGVyKCkgdG8gdGhhdCBvZgogICByMTk0NDksIHRoYXQgaXMsIG5vdCBzZXR0aW5nIHVwIHRoZSBkYXRhX2ZyZWUgcG9pbnRlciBiZWNhdXNlIG5vdAogICBhbGwgY2FsbGVycyBvZiBuZXRzbm1wX2dldF90YWJsZV9oYW5kbGVyKCkgZXhwZWN0IHRoYXQgdGFibGUKICAgcmVnaXN0cmF0aW9uIGluZm9ybWF0aW9uIGlzIGZyZWVkIHdoZW4gdGhlIGFzc29jaWF0ZWQgaGFuZGxlciBpcwogICBmcmVlZC4KCjIwMTAtMTAtMTggMTA6MzQgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgY2FzdGluZyBhd2F5IGNvbnN0bmVzcy4KCjIwMTAtMTAtMTggMDg6NTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBXaW4zMjogV2hlbiBzbm1wZC5leGUgaXMgc3RhcnRlZCBpbiBhIGNvbW1hbmQgcHJvbXB0CiAgIHdpbmRvdywgdGhlIHNubXBkIHByb2Nlc3Mgbm93IHN0b3BzIHVwb24gdGhlIGZpcnN0IGtleSBwcmVzcy4KICAgVGhpcyBtYWtlcyBpdCBlYXNpZXIgdG8gZGVidWcgc25tcGQuZXhlIGZvciBtZW1vcnkgbGVha3MuCgoyMDEwLTEwLTE4IDA2OjI1ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRob3V0IHdhcm5pbmdzIHdpdGggTVNWQyA2LgoKMjAxMC0xMC0xOCAwNjoxNSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVzZSB0aGUgc2FtZSBhdXRvY29uZiBzeW1ib2wgdG8gZGVjaWRlIGJvdGggaWYKICAgc3RyY2FzZWNtcCBzaG91bGQgYmUgZGVjbGFyZWQgYW5kIGlmIGl0IHNob3VsZCBiZSBkZWZpbmVkLgoKMjAxMC0xMC0xNyAxODoyOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRml4ZWQgYSBkb3VibGUgZnJlZSBhdCBleGl0IHRoYXQgd2FzIHRyaWdnZXJlZCBieQogICBjbGVhbmluZyB1cCB0aGUgZGF0YSBzdHJ1Y3R1cmVzIHVzZWQgZm9yIGVtYmVkZGVkIFBlcmwgc3VwcG9ydC4KICAgQ0hBTkdFUzogc25tcHRyYXBkOiBGaXhlZCBhIGRvdWJsZSBmcmVlIGF0IGV4aXQgdGhhdCB3YXMKICAgdHJpZ2dlcmVkIGJ5IGNsZWFuaW5nIHVwIHRoZSBkYXRhIHN0cnVjdHVyZXMgdXNlZCBmb3IgZW1iZWRkZWQKICAgUGVybCBzdXBwb3J0LgogICAKICAgVmFsZ3JpbmQgcmVwb3J0ZWQgdGhhdCBkb3VibGUgZnJlZSBhcyBmb2xsb3dzOgogICAKICAgSW52YWxpZCByZWFkIG9mIHNpemUgNAogICBhdCAweDU5RDA1MDE6IHBlcmxfZGVzdHJ1Y3QgKGluCiAgIC91c3IvbGliL3Blcmw1LzUuMTIuMS94ODZfNjQtbGludXgtdGhyZWFkLW11bHRpL0NPUkUvbGlicGVybC5zbykKICAgYnkgMHg1NDRERjhFOiBzaHV0ZG93bl9wZXJsIChzbm1wX3BlcmwuYzoxNjYpCiAgIGJ5IDB4NDAzOTY2OiB0ZXJtX2hhbmRsZXIgKHNubXB0cmFwZC5jOjMxOCkKICAgYnkgMHg2RDQzQTVGOiA/Pz8gKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgQWRkcmVzcyAweDc2NjBmODggaXMgNTYgYnl0ZXMgaW5zaWRlIGEgYmxvY2sgb2Ygc2l6ZSAyLDkxMiBmcmVlJ2QKICAgYXQgMHg0QzI2NDk2OiBmcmVlICh2Z19yZXBsYWNlX21hbGxvYy5jOjM2NikKICAgYnkgMHg1NDRERjlBOiBzaHV0ZG93bl9wZXJsIChzbm1wX3BlcmwuYzoxNjcpCiAgIGJ5IDB4NDAzOTY2OiB0ZXJtX2hhbmRsZXIgKHNubXB0cmFwZC5jOjMxOCkKICAgYnkgMHg2RDQzQTVGOiA/Pz8gKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RERBREYyOiBfX3NlbGVjdF9ub2NhbmNlbCAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDQwNEUyMDogbWFpbiAoc25tcHRyYXBkLmM6MTI1OCkKCjIwMTAtMTAtMTcgMTc6MzMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEF2b2lkIHRoYXQgVmFsZ3JpbmQgY29tcGxhaW5zIGFib3V0CiAgIHVuaW5pdGlhbGl6ZWQgZGF0YSBmb3IgdGhlIGJ1ZmZlcnMgcmV0dXJuZWQgYnkKICAgbmV0c25tcF9jYWxsYmFja19yZWN2KCkgYW5kIG5ldHNubXBfY2FsbGJhY2tfaG9va19idWlsZCgpLgoKMjAxMC0xMC0xNyAxNjo1NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IHRhYmxlX2hlbHBlcl9oYW5kbGVyKCksIDY0LWJpdCBhcmNoaXRlY3R1cmVzOgogICBhdm9pZCBwYXNzaW5nIGEgcG9pbnRlciB0byBhIDMyLWJpdCB2YWx1ZSB0byBhIGZ1bmN0aW9uIHRoYXQKICAgZXhwZWN0cyBhIHBvaW50ZXIgdG8gYSA2NC1iaXQgdmFsdWUgKHBhcnNlX29uZV9vaWRfaW5kZXgoKSkuIE5vdAogICBzdXJlIHdoYXQgdGhlIGltcGxpY2F0aW9ucyBvZiB0aGlzIGJ1ZyB3ZXJlLiBJdCBtaWdodCBoYXZlIGNhdXNlZAogICB2ZXJ5IHN0cmFuZ2UgdGFibGUgYmVoYXZpb3Igb24gNjQtYml0IGJpZyBlbmRpYW4gc3lzdGVtcy4KICAgRm91bmQgdGhpcyB2aWEgVmFsZ3JpbmQuCgoyMDEwLTEwLTE3IDE2OjUxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEF2b2lkIHRoYXQgaHJTV1J1blBhdGggY29udGFpbnMgdHJhaWxpbmcgZ2FyYmFnZQogICBjaGFyYWN0ZXJzIG9uIExpbnV4IHN5c3RlbXMuCiAgIEZvdW5kIHRoaXMgYnkgYW5hbHl6aW5nIGEgVmFsZ3JpbmQgY29tcGxhaW50LiBGb3IgYW55b25lIHdobyBpcwogICB3b25kZXJpbmcgd2h5IHRoaXMgcGF0Y2ggbWFrZXMgc2Vuc2UsIGEgcXVvdGUgZnJvbSB0aGUgZ2xpYmMKICAgc25wcmludGYoKSBkb2N1bWVudGF0aW9uCiAgIChodHRwOi8vd3d3LmdudS5vcmcvc29mdHdhcmUvbGliYy9tYW51YWwvaHRtbF9ub2RlL0Zvcm1hdHRlZC1PdXRwdXQtRnVuY3Rpb25zLmh0bWwpOgogICA8cXVvdGU+CiAgIFRoZSByZXR1cm4gdmFsdWUgaXMgdGhlIG51bWJlciBvZiBjaGFyYWN0ZXJzIHdoaWNoIHdvdWxkIGJlCiAgIGdlbmVyYXRlZCBmb3IgdGhlIGdpdmVuIGlucHV0LCBleGNsdWRpbmcgdGhlIHRyYWlsaW5nIG51bGwuIElmCiAgIHRoaXMgdmFsdWUgaXMgZ3JlYXRlciBvciBlcXVhbCB0byBzaXplLCBub3QgYWxsIGNoYXJhY3RlcnMgZnJvbQogICB0aGUgcmVzdWx0IGhhdmUgYmVlbiBzdG9yZWQgaW4gcy4KICAgPC9xdW90ZT4KICAgUGxlYXNlIG5vdGUgdGhhdCB0aGlzIGRpZmZlcnMgZnJvbSB0aGUgc3RhbmRhcmQgYmVoYXZpb3IuIEEgcXVvdGUKICAgZnJvbSBodHRwOi8vb3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwNzkwODc5OS94c2gvc25wcmludGYuaHRtbDoKICAgPHF1b3RlPgogICBSRVRVUk4gVkFMVUUKICAgVXBvbiBzdWNjZXNzZnVsIGNvbXBsZXRpb24sIHRoZXNlIGZ1bmN0aW9ucyByZXR1cm4gdGhlIG51bWJlciBvZgogICBieXRlcyB0cmFuc21pdHRlZCBleGNsdWRpbmcgdGhlIHRlcm1pbmF0aW5nIG51bGwgaW4gdGhlIGNhc2Ugb2YKICAgc3ByaW50ZigpIG9yIHNucHJpbnRmKCkgb3IgYSBuZWdhdGl2ZSB2YWx1ZSBpZiBhbiBvdXRwdXQgZXJyb3IKICAgd2FzIGVuY291bnRlcmVkLgogICA8L3F1b3RlPgoKMjAxMC0xMC0xNyAxNDozMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEl0IGlzIGFnYWluIHBvc3NpYmxlIHRvIHJ1biBhbiBpbmRpdmlkdWFsIHRlc3QKICAgdmlhIHRoZSBzY3JpcHQgdGVzdGluZy9SVU5URVNUUy4KCjIwMTAtMTAtMTcgMTQ6MjggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBBZGRlZCB0aGUgZnVuY3Rpb24gbmV0c25tcF9jaGVja19kZWZpbmVkbmVzcygpLAogICB3aGljaCBoZWxwcyB0byBmaW5kIHRoZSBjYXVzZSBvZiB1bmRlZmluZWQgdmFsdWUgZXJyb3JzIGFzCiAgIHJlcG9ydGVkIGJ5IFZhbGdyaW5kLgoKMjAxMC0xMC0xNyAxNDoyNCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmg6CgogICBSZW1vdmVkIGFuIG9ic29sZXRlIGRlY2xhcmF0aW9uOiB0aGUgZnVuY3Rpb24gYWdlbnR4X2J1aWxkKCkgaGFzCiAgIGJlZW4gcmVtb3ZlZCBhIGxvbmcgdGltZSBhZ28uCgoyMDEwLTEwLTE3IDE0OjA1ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkIGNvbmZpZ3VyZSB0ZXN0IGZvciB0aGUgVmFsZ3JpbmQgaGVhZGVyIGZpbGVzLgoKMjAxMC0xMC0xNyAxMjowMSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDc3OiBtYWRlIHRoZSBpbnNlcnRlZCB0eXBlY2FzdHMgcG9ydGFibGUuCgoyMDEwLTEwLTE3IDExOjA0ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTk0NzY6IGZpeGVkIGEgdHlwby4KCjIwMTAtMTAtMTcgMDk6MzYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgYSBmZXcgY29tcGlsZXIgd2FybmluZ3MgYnkgaW5zZXJ0aW5nIGFwcHJvcHJpYXRlIGNhc3RzLgoKMjAxMC0xMC0xNyAwOToyNSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVRTTk1QX1JFTU9WRV9DT05TVCgpLXJlbGF0ZWQgY2xlYW51cC4KCjIwMTAtMTAtMTcgMDE6NDEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBhZ2VudC9zbm1wZC5jOgoKICAgTkVXUzogc25tcGQ6IFJlbW92ZSB1dGlsX2Z1bmNzL0V4aXQgZnJvbSB0aGUgcmVxdWlyZW1lbnQgc2V0cyBvZgogICB1dGlsX2Z1bmNzIGFuZCBkZWZhdWx0X21vZHVsZXMuCiAgIE5FV1M6IHNubXBkOiBOZXZlciB1c2UgRXhpdCB0byB0ZXJtaW5hdGUgdGhlIGFnZW50LgoKMjAxMC0xMC0xNiAyMjozMiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgc2V0dGluZyBvZiB0aGUgYXJndnJlc3RhcnQqIHZhcmlhYmxlcwogICBvcHRpb25hbCBvbiBVU0lOR19VVElMX0ZVTkNTX1JFU1RBUlRfTU9EVUxFLgogICBORVdTOiBzbm1wZDogUmVtb3ZlIHV0aWxfZnVuY3MvcmVzdGFydCBmcm9tIHRoZSByZXF1aXJlbWVudCBzZXRzCiAgIG9mIHV0aWxfZnVuY3MgYW5kIGRlZmF1bHRfbW9kdWxlcy4KICAgQ0hBTkdFUzogc25tcGQ6IEFkZCB1dGlsX2Z1bmNzL3Jlc3RhcnQgdG8gdGhlIHJlcXVpcmVtZW50IHNldCBvZgogICB1Y2Qtc25tcC92ZXJzaW9uaW5mby4KCjIwMTAtMTAtMTYgMjI6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEV4dGVuZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgZGF0YV9jbG9uZSBhbmQKICAgZGF0YV9mcmVlCgoyMDEwLTEwLTE2IDIyOjAzICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIGl0IHBvc3NpYmxlIHRvIGNvcHkgd2F0Y2hlZCBkYXRhIGl0ZW1zCiAgIHdpdGhvdXQgbWVtb3J5IGxlYWtzLgoKMjAxMC0xMC0xNiAyMjowMSAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBjbXAKCjIwMTAtMTAtMTYgMTk6NDQgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRG8gbm90IGxlYWsgdGhlIGxpbWl0cyBvZiBzY2FsYXJfZ3JvdXAgb2JqZWN0cyBvbgogICBzaHV0ZG93bi4KCjIwMTAtMTAtMTYgMDg6MzcgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQ6CgogICBTcGVsbGluZyBmaXg6IGR1bHBpY2F0ZSAtPiBkdXBsaWNhdGUuCgoyMDEwLTEwLTE2IDA4OjM0ICBidmFzc2NoZQoKICAgKiAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWIuYzoKCiAgIEFkZGVkIG1vcmUgdGVzdCBjb2RlLgoKMjAxMC0xMC0xNiAwODozMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDY1OiBoYW5kbGUgb3V0LW9mLW1lbW9yeSBwcm9wZXJseSAvIHJlbW92ZWQgYQogICBkdXBsaWNhdGUgZnVuY3Rpb24uCgoyMDEwLTEwLTE1IDE5OjE3ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYWdlbnRsaWJfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FnZW50bGliX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NhZ2VudGxpYi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jYWdlbnRsaWIuYywKICAgICAgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA2c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9jbGliLmM6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBJbnRyb2R1Y2VkIG5ldyB0ZXN0IHR5cGUgbmV4dCB0byBjYXBwIGFuZCBjbGliOgogICBjYWdlbnRsaWIuCgoyMDEwLTEwLTE1IDE4OjU2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NsaWIuYzoKCiAgIE5FV1M6IHNubXBsaWI6IEFkZGVkIG5ldHNubXBfbWliX2hhbmRsZXIuZGF0YV9jbG9uZSwgYSBmdW5jdGlvbgogICBwb2ludGVyIHRoYXQgZGVmaW5lcyBob3cgdG8gY2xvbmUgbmV0c25tcF9taWJfaGFuZGxlci5teXZvaWQuCiAgIE11c3QgYmUgZGVmaW5lZCBpZiBhbmQgb25seSBpZiBkYXRhX2ZyZWUgaXMgc2V0LiBUaGUgZnVuY3Rpb24KICAgbmV0c25tcF9oYW5kbGVyX2R1cCgpIGRvZXMgbm93IGNsb25lIE1JQiBoYW5kbGVyIHByaXZhdGUgZGF0YSBpZgogICBkYXRhX2Nsb25lKCkgaXMgc2V0LiBQcmV2aW91c2x5IGFmdGVyIGR1cGxpY2F0aW5nIGEgTUlCIGhhbmRsZXIKICAgYW5kIHVucmVnaXN0ZXJpbmcgb25lIG9mIHRoZSB0d28gTUlCIGhhbmRsZXJzLCB0aGUgcHJpdmF0ZSBkYXRhCiAgIHBvaW50ZXIgKG15dm9pZCkgb2YgdGhlIG90aGVyIGJlY2FtZSBhIGRhbmdsaW5nIHBvaW50ZXIuIE5vdGU6CiAgIGFkZGl0aW9uIG9mIG5ldHNubXBfbWliX2hhbmRsZXIuZGF0YV9jbG9uZSBpcyBhbiBBQkkgY2hhbmdlLgogICBDSEFOR0VTOiB0ZXN0aW5nOiBhZGRlZCBtb3JlIHRlc3QgY2FzZXMgdG8gdGhlIGhhbmRsZXIKICAgcmVnaXN0cmF0aW9uIHRlc3QuCgoyMDEwLTEwLTE1IDE4OjMyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTEwLTE1IDEyOjMwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NsaWIuYzoKCiAgIFJldmVydGVkIHIxOTQ2MCBiZWNhdXNlIGl0IG1ha2VzIHNvbWUgcmVncmVzc2lvbiB0ZXN0cyBmYWlsCiAgIChUMTIwcHJveHlnZXRfc2ltcGxlLCBUMTIxcHJveHlzZXRfc2ltcGxlLAogICBUMTIycHJveHlzZXRmYWlsX3NpbXBsZSwgVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSkuIERpc2FibGVkIHRoZQogICBoYW5kbGVyIGR1cGxpY2F0aW9uIHRlc3QgaW4gVDAwNiBiZWNhdXNlIGl0IHRyaWdnZXJzIGEgY3Jhc2gKICAgd2l0aG91dCByMTk0NjAuCgoyMDEwLTEwLTE1IDExOjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBuZXRzbm1wX2hhbmRsZXJfZHVwKCk6IGZyZWVpbmcgdGhlIGR1cGxpY2F0ZWQKICAgaGFuZGxlciBubyBsb25nZXIgY2F1c2VzIGEgY3Jhc2ggKGRvdWJsZSBmcmVlKSB3aGVuCiAgIGhhbmRsZXItPm15dm9pZCBvZiB0aGUgb3JpZ2luYWwgaGFuZGxlciB3YXMgbm9uLU5VTEwuCgoyMDEwLTEwLTE1IDExOjMyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDZzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2NsaWIuYzoKCiAgIEFkZGVkIGEgdW5pdCB0ZXN0IGZvciBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBhbmQgZGVyZWdpc3RyYXRpb24uCgoyMDEwLTEwLTE1IDEwOjU2ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQnVpbGRzIG5vdyBjb3JyZWN0bHkgd2l0aCBhIDY0LWJpdAogICBjb21waWxlci4KCjIwMTAtMTAtMTUgMDk6NDUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHNubXBfc2h1dGRvd24oKTogYWRkZWQgY2FsbCB0bwogICBuZXRzbm1wX2NlcnRzX3NodXRkb3duKCkuCgoyMDEwLTEwLTE1IDA2OjQ1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5NDUwOiBsZXQgbmV0c25tcF9kZWxldGVfdGFibGVfZGF0YV9zZXQoKSBmcmVlCiAgIGFsbCB0YWJsZV9kYXRhc2V0LXJlbGF0ZWQgbWVtb3J5LgoKMjAxMC0xMC0xNCAyMzoxNSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVyczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBNYWtlIGl0IHBvc3NpYmxlIHRvIHJlZ2VuZXJhdGUgdXNpbmcgYXV0b2NvbmYKICAgMi42OC4KCjIwMTAtMTAtMTQgMjM6MDEgIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBYRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCZSBjb25zdCBjb3JyZWN0IG92ZXIgY2FsbHMgdG8gc3RyKiBmdW5jdGlvbnMuCgoyMDEwLTEwLTE0IDE1OjE5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDV0YWJsZV9kYXRhc2V0X2NsaWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIGZ1bmN0aW9uIG5ldHNubXBfZGVsZXRlX3RhYmxlX2RhdGFfc2V0KCkuCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZGVkIGRlY2xhcmF0aW9uIGZvciB0aGUgZnVuY3Rpb24KICAgbmV0c25tcF90YWJsZV9kYXRhX2RlbGV0ZV90YWJsZSgpIGluIGEgcHVibGljIGFnZW50IGhlYWRlciBmaWxlLgogICBDSEFOR0VTOiBzbm1wbGliOiBGaXhlZCBtZW1vcnkgbGVhayBpbgogICBuZXRzbm1wX3RhYmxlX2RhdGFfZGVsZXRlX3RhYmxlKCkuCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSB1bnJlZ2lzdGVyaW5nIGEKICAgdGFibGUgaGFuZGxlci4KICAgQ0hBTkdFUzogdGVzdGluZzogVW5pdCB0ZXN0cyBjYW4gbm93IGludm9rZSBmdW5jdGlvbnMgZnJvbQogICBsaWJhZ2VudC4KICAgQ0hBTkdFUzogdGVzdGluZzogQWRkZWQgdW5pdCB0ZXN0IGZvciB0YWJsZV9kYXRhc2V0LgoKMjAxMC0xMC0xNCAxNDowNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzoKCiAgIFVuaXQgdGVzdCBUMDAxZGVmYXVsdHN0b3JlX2NsaWIuYzogRml4ZWQgbGVha3MtYXQtZXhpdC4KCjIwMTAtMTAtMTQgMDg6NDMgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfcnVuOgoKICAgQ0hBTkdFUzogdGVzdGluZzogSXQgaXMgbm93IHBvc3NpYmxlIHRvIGFuYWx5emUgdGhlIHVuaXQgdGVzdHMKICAgd2l0aCBWYWxncmluZCBieSBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZXMKICAgU05NUF9TQVZFX1RNUERJUiBhbmQgRFlOQU1JQ19BTkFMWVpFUi4gQW4gZXhhbXBsZTogKGV4cG9ydAogICBTTk1QX1NBVkVfVE1QRElSPXllcyBEWU5BTUlDX0FOQUxZWkVSPSJ2YWxncmluZAogICAtLXRyYWNlLWNoaWxkcmVuPXllcyAtLWxlYWstY2hlY2s9ZnVsbCI7IGNkIHRlc3RpbmcgJiYKICAgLi9SVU5GVUxMVEVTVFMgLWcgdW5pdC10ZXN0cykKCjIwMTAtMTAtMTQgMDg6NDAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBVbml0IHRlc3QgVDAwNHNubXBfZW51bV9jbGliLmM6IGFkZGVkIHRlc3QgaGVhZGVyIC8gYWRkZWQgYSB0ZXN0CiAgIGNhc2UuCgoyMDEwLTEwLTE0IDA4OjM5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIEZpeGVkIGxlYWtzLWF0LWV4aXQgaW4gdW5pdCB0ZXN0IFQwMDJjb250YWluZXJzX2NsaWIuYy4KCjIwMTAtMTAtMTQgMDg6MzggIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwMWRlZmF1bHRzdG9yZV9jbGliLmM6CgogICBGaXhlZCBhIGxlYWstYXQtZXhpdCBpbiB1bml0IHRlc3QgVDAwMWRlZmF1bHRzdG9yZV9jbGliLmMuCgoyMDEwLTEwLTE0IDA4OjM2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4ZWQgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGNhbGxpbmcKICAgc2VfYWRkX3BhaXJfdG9fbGlzdCgpIHdpdGggYSB2YWx1ZSB0aGF0IGFscmVhZHkgZXhpc3RlZCBpbiB0aGUKICAgbGlzdC4KCjIwMTAtMTAtMTQgMDc6MTYgIGJ2YXNzY2hlCgogICAqIHRlc3Rpbmc6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTEwLTE0IDA3OjEyICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAwY29uZmlndXJlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDBjb25maWd1cmVfc2ltcGxlOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIHZhcmlhYmxlICRTTk1QX0JBU0VESVIgaXMgYXZhaWxhYmxlIGluIHRoZQogICBUMDAwY29uZmlndXJlIHRlc3QuCgoyMDEwLTEwLTE0IDA2OjE5ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlbmVyYXRlZAoKMjAxMC0xMC0xNCAwNTozNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgUXVlbGwgd2FybmluZ3MKCjIwMTAtMTAtMTQgMDM6NTAgIHJzdG9yeQoKICAgKiAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4xMC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oLCBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgdGVzdCBmb3Igb3BlbnNzbCBzaGEgMjI0LzI1Ni8zODUvNTEyIHN1cHBvcnQgaW5zdGVhZCBvZgogICBoYXJkY29kaW5nCgoyMDEwLTEwLTE0IDAzOjUwICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIGFkZCBPVVRQVVRFTlZWQVJTIHRvIHNhdmUgaW1wb3J0YW50IGVudmlyb25tZW50IHZhcmlhYmxlczsgd2hlbgogICBTTk1QX1ZFUkJPU0UKICAgaXMgc2V0LCBzYXZlIGVudiB2YXJzIGFuZCBjb21tYW5kIHRvIGluZGl2aWR1YWwgaW52b2tlZCBmaWxlIGZvcgogICBlYWNoIHRlc3Q7CiAgIHNhdmUgZW52IHZhcnMgYW5kIGNvbW1hbmQgZm9yIGVhY2ggU1RBUlRQUk9HCgoyMDEwLTEwLTE0IDAzOjUwICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBhdXRvLWNyZWF0ZSB1c2VyIHNwZWNpZmllZCBTTk1QX1RNUERJUiBhbmQKICAgU05NUF9UTVBfUEVSU0lTVEVOVERJUiB0b287IGRlZmF1bHQgU05NUF9UTVBfUEVSU0lTVEVORElSIGJhc2VkCiAgIG9uIFNOTVBfVE1QRElSCiAgIGZvciB1c2VyIHNwZWNpZmllZCBTTk1QX1RNUERJUgoKMjAxMC0xMC0xNCAwMzo0OSAgcnN0b3J5CgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGNoZWNrIGZvciAvZGV2L2ttZW0gaW5zdGVhZCBvZiBhc3N1bWluZyBpdAogICBleGlzdHMgYW5kIGhhcmRjb2Rpbmcgd2hlbiBpdCBpcyBub3QgdGhlcmUKCjIwMTAtMTAtMTQgMDM6MjggIHJzdG9yeQoKICAgKiAgc25tcGxpYi9zbm1wdHNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHNldCB0cmFuc3BvcnRTZWN1cml0eUxldmVsIGJhc2VkIG9uIHNzbCBzZXNzaW9uIGFsZ29yaXRobXMKCjIwMTAtMTAtMTQgMDM6MjYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBhZGQgbmV0c25tcF9vcGVuc3NsX251bGxfY2hlY2tzCgoyMDEwLTEwLTE0IDAzOjIzICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNsZWFudXAgc3NsL2JpbyBvbiBmYWlsZWQgY29ubmVjdGlvbgoKMjAxMC0xMC0xNCAwMzoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTEwLTE0IDAzOjE4ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyCgoyMDEwLTEwLTE0IDAzOjE2ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwbwoKMjAxMC0xMC0xNCAwMzoxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBjaGVjayBmb3IgbnVsbCBiZWZvcmUgZGVyZWYKCjIwMTAtMTAtMTMgMjA6MTIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IEdlbmVyYXRlIGEgbm9ybWFsICNsaW5lIGRpcmVjdGl2ZSBhcyBwZXIgQzk5CiAgIGluc3RlYWQgb2YgdGhlIGNvbXBpbGVyLXNwZWNpZmljICM8bj4tZGlyZWN0aXZlLgoKMjAxMC0xMC0xMyAxNjo1MyAgaGFyZGFrZXIKCiAgICogZGlzdC9hdXRvY29uZi12ZXJzaW9uLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDBjb25maWd1cmU6CgogICBhZGRlZCBhIGF1dG9jb25mIHZlcnNpb24gY2hlY2tpbmcgdGVzdCB0byBjYXRjaCBkZXZlbG9wZXJzIGFuZAogICBzY3JpcHRzIHRoYXQgZmFpbCB0byB1c2UgdGhlIGNvcnJlY3QgYXV0b2NvbmYgdmVyc2lvbgoKMjAxMC0xMC0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBQYXRjaCBmcm9tIEJpbGwgRmVubmVyIHRvIGZpeCBvbmx5IGluY2x1ZGluZyB0aGUgc2Vzc2lvbl9hcGkuaAogICBmaWxlCgoyMDEwLTEwLTEzIDE2OjI5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBGb2xsb3ctdXAgZm9yIHIxOTQyMTogTWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGFnYWluIHJlcG9ydHMKICAgdGhlIHByb3BlciBmaWxlbmFtZSBhbmQgbGluZSBudW1iZXIgaW5mb3JtYXRpb24gd2hpbGUgY29tcGlsaW5nCiAgIHVuaXQgdGVzdHMuCgoyMDEwLTEwLTEzIDExOjUzICBidmFzc2NoZQoKICAgKiAgd2luMzIvTWFrZWZpbGUtYXBwcy5pbiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBiYXRjaCBidWlsZCB3aXRoIE9wZW5TU0wgZW5hYmxlZCBhbmQKICAgd2l0aCByZWNlbnQgT3BlblNTTCBkZXZlbG9wbWVudCBmaWxlcyB3b3JrcyBhZ2Fpbi4KCjIwMTAtMTAtMTMgMDk6NTggIGJ2YXNzY2hlCgogICAqICBuZXQtc25tcC1jb25maWcuaW4sIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2FwcF9ydW4sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jbGliX3J1bjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogUnVubmluZyB0aGUgdW5pdCB0ZXN0cyBkb2VzIG5vdyB3b3JrIChjZCB0ZXN0aW5nCiAgICYmIC4vUlVORlVMTFRFU1RTIC1nIHVuaXQtdGVzdHMpLgogICBDSEFOR0VTOiBNaW5HVzogUnVubmluZyB0aGUgdW5pdCB0ZXN0cyBkb2VzIG5vdyB3b3JrIChjZCB0ZXN0aW5nCiAgICYmIC4vUlVORlVMTFRFU1RTIC1nIHVuaXQtdGVzdHMpLgoKMjAxMC0xMC0xMyAwODowMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIEZpeGVkIGEgc3BlbGxpbmcgZXJyb3IgaW4gYSBzb3VyY2UgY29kZSBjb21tZW50LgoKMjAxMC0xMC0xMyAwNzo0MyAgYnZhc3NjaGUKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3BlbGxpbmcgZml4ZXMuCgoyMDEwLTEwLTEyIDE0OjAyICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICBBZGRlZCBkZWNsYXJhdGlvbiBmb3Igc2VfY2xlYXJfc2xpc3QoKS4KCjIwMTAtMTAtMTIgMTE6MTIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBBZGRlZCBtb3JlIHRlc3QgY2FzZXMgdG8KICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYy4KICAgVmVyaWZpZWQgd2l0aCBWYWxncmluZCB0aGF0IGV2ZXJ5dGhpbmcgZG9lcyBub3cgd29yayBjb3JyZWN0bHkKICAgYW5kIHRoYXQgdGhlCiAgIHRlc3QgcHJvZ3JhbSBpcyBmcmVlIG9mIGxlYWtzLWF0LWV4aXQuCgoyMDEwLTEwLTEyIDExOjExICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBJbnZva2luZyBzZV9jbGVhcl9zbGlzdCgpIGRvZXMgbm8gbG9uZ2VyIGNyZWF0ZQogICBhIGRhbmdsaW5nIHBvaW50ZXIuCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGxlYWtzLWF0LWV4aXQgdHJpZ2dlcmVkIGJ5IHVzaW5nIHRoZQogICBzbm1wX2VudW0gY29kZS4KICAgQ0hBTkdFUzogc25tcGxpYjogRG9jdW1lbnRlZCBiZWhhdmlvciBvZiBzZV9hZGRfcGFpcigpLAogICBzZV9hZGRfcGFpcl90b19zbGlzdCgpIGFuZCBjbGVhcl9zbm1wX2VudW0oKS4gTWFkZSBzbm1wX2VudW0KICAgZXhhbXBsZSBjb25zaXN0ZW50IHdpdGggdGhlIHJlc3Qgb2YgdGhlIGNvZGUgYnkgYWRkaW5nIHN0cmR1cCgpCiAgIGNhbGxzIGFuZCBhZGRlZCBhIGNhbGwgdG8gc2VfY2xlYXJfYWxsX2xpc3RzKCkuCiAgIENIQU5HRVM6IHNubXBsaWI6IEZpeGVkIGEgbWVtb3J5IGNvcnJ1cHRpb24gcHJvYmxlbSB0cmlnZ2VyZWQgYnkKICAgdGhlICh1bmRvY3VtZW50ZWQpIHNubXBkLmNvbmYgImVudW0iIGtleXdvcmQgaGFuZGxlciAtIHN0b3JpbmcKICAgcG9pbnRlcnMgdG8gc3RyaW5ncyBhbGxvY2F0ZWQgb24gdGhlIHN0YWNrIGluIGEgZ2xvYmFsIGxpc3QgZG9lcwogICBub3Qgd29yay4KICAgQ0hBTkdFUzogc25tcGxpYjoKCjIwMTAtMTAtMTIgMDY6MjcgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL2xpYmhlbHBlcnMsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogUEFUQ0g6IDMwODUxODc6IEJ1aWxkaW5nIHZpYSB0aGUgTWljcm9zb2Z0IFZpc3VhbAogICBTdHVkaW8gcHJvamVjdCBmaWxlICguZHN3Ly5kc3ApIHdvcmtzIGFnYWluLgoKMjAxMC0xMC0xMiAwNTozNSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgdGhlIGV4dGVybiAiQyIgZGVjbGFyYXRpb25zIHRvIGJlCiAgIGNvbnNpc3RlbnQuIFJlbW92ZSBjb21tZW50ZWQgb3V0IGNvZGUuCgoyMDEwLTEwLTExIDIxOjQxICBuYmEKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDEwLTEwLTExIDIxOjM5ICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2FwdC5jLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBTdXBwb3J0IGZvciBoclNXSW5zdGFsbGVkVGFibGUgZm9yIGRwa2cvYXB0LWJhc2VkIHN5c3RlbXMKCjIwMTAtMTAtMTEgMjA6NDYgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIHNvdXJjZXMgZm9yIFNOTVAtVExTLVRNLU1JQgoKMjAxMC0xMC0xMSAyMDo0MiAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQ2hlY2sgZWFybHkgZm9yIHBpY2wuaAoKMjAxMC0xMC0xMSAyMDozMSAgbmJhCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2h3X3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL3NlbnNvcnMuaDoKCiAgIEZpeCB3YXJuaW5ncyBmcm9tIGxtc2Vuc29yTWliCgoyMDEwLTEwLTExIDIwOjMwICBuYmEKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9waWNsZF9zZW5zb3JzLmM6CgogICBGaXggbmV3IHN0eWxlIGxtc2Vuc29yTWliIGZvciBTb2xhcmlzICh3YXMgaXQgZXZlciBjb21waWxlZAogICBiZWZvcmUpCgoyMDEwLTEwLTExIDIwOjI4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBGaXggbG1TZW5zb3JzIGZvciBTb2xhcmlzCgoyMDEwLTEwLTExIDIwOjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmM6CgogICBGaXggYSBTb2xhcmlzIGZpbGUgZGVzY3JpcHRvciBsZWFrCgoyMDEwLTEwLTExIDIwOjI1ICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBNYWtlIC0tZGlzYWJsZS1kZXZlbG9wZXIgd29yawoKMjAxMC0xMC0xMSAxODoyMyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVwZGF0ZSB0aGUgbGVuZ3RoIG9mIHN5c09iamVjdElEIGFzIHdlbGwgYXMgdGhlCiAgIGRhdGEgd2hlbiBpdCBpcyBzZXQgZnJvbSBhIGNvbmZpZ3VyYXRpb24gZmlsZS4KCjIwMTAtMTAtMTEgMTc6NTggIG1hZ2ZyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBmcm9tICJOaWVscyBCYWdnZXNlbiI6IFNvbWUgc3lzdGVtcyBkbyBub3QKICAgc3VwcG9ydCB0aGUgLUUgZmxhZyB0byBncmVwLCB1c2UgYXV0b2NvbmYgdG8gZmluZCB0aGUgcmlnaHQgZWdyZXAKICAgYXQgYWxsIHRpbWVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5SQzMgLT4gVjUuNgoKMjAxMC0xMC0wNyAyMDozMyAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTEwLTA2IDExOjMxICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgRml4IGlwdjYgZ2VuZXJpYyBjYXNlIHNvIHRlc3QgbWF0Y2hlcyB2ZXJpZmljYXRpb24KCjIwMTAtMTAtMDEgMTY6NDQgIGR0czEyCgogICAqIG1hbi92YXJpYWJsZXMuNS5kZWY6CgogICBSZXdvcmsgZGVzY3JpcHRpb24gb2YgT0lEIG5hbWUgaGFuZGxpbmcgdG8gYmUKICAgbm90IHF1aXRlIHNvIGluY3JlZGlibHkgb3V0IG9mIGRhdGUuCgoyMDEwLTA5LTIyIDE0OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBlcmcuLi4gcmVhbGx5IHVzZSB0aGUgcmlnaHQgYXV0b2NvbmYgdmVyc2lvbiBieSBzZXR0aW5nIHRoZSBwYXRoCiAgIHJpZ2h0CgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LnJjMiAtPiBWNS42LnJjMwoKMjAxMC0wOS0yMSAyMzo1MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcmVnZW5lcmF0ZWQgd2l0aCBwcm9wZXIgYXV0b2NvbmYgdmVyc2lvbgoKMjAxMC0wOS0yMSAyMzo0OSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA5LTIxIDIzOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdmVyaWZpZWQgcGF0Y2ggZnJvbSByc3RvcnkgdG8gZml4IGNlcnRpZmljYXRlIGxvYWRpbmcgb2YKICAgaW5jb21wbGV0ZSBjaGFpbnMKCjIwMTAtMDktMjEgMTg6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoIDMwNTgzODg6IGZyb20gY2hyaXNib2x0OiBkb24ndCBwYXJzZQogICBpbmNsdWRlQWxsRGlza3MgaW4gdGhlIG1haW4gc25tcGxpYiByb3V0aW5lcwoKMjAxMC0wOS0yMSAxODowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDMwNjI1MjY6IGZyb20gbWFyaW9nODU6IGZpeCBzZWN1cml0eQogICBlbmdpbmVJRCBzZXR0aW5nIGluIHRoZSB0cmFwc2VzcyBkaXJlY3RpdmUKCjIwMTAtMDktMjEgMTU6MTMgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZWQgV2luMzIgZG9jdW1lbnRhdGlvbi4KCjIwMTAtMDktMjAgMjM6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIFBhdGNoIGZyb20gRnVsa28gSGV3IHRvIGZpeCBwYXRjaCAyOTAwMDc4IHdoaWNoIGJyb2tlIHN5c09iamVjdElECiAgIGxlbmd0aHMKCjIwMTAtMDktMjAgMjE6MzIgIGR0czEyCgogICAqIG1hbi9zbm1wZ2V0LjEuZGVmLCBtYW4vc25tcGdldG5leHQuMS5kZWY6CgogICBEb2N1bWVudCAtQ2YgaW4gdGhlIHR3byBtYW4gcGFnZXMgc2VwYXJhdGVseS4KCjIwMTAtMDktMjAgMjA6MjMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMzA2NzU0MDogZnJvbSBqb3ljZWFubWFjaGluZTogRml4IElQdjQKICAgT0lEIGluZGV4ZXMgb24gNjQtYml0IGJpZy1lbmRpYW4gc3lzdGVtcy4KCjIwMTAtMDktMjAgMTk6MjUgIGJ2YXNzY2hlCgogICAqICBhcHBzL3NubXBuZXRzdGF0L21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsIHdpbjMyL0NvbmZpZ3VyZSwgICAKICAgICAgd2luMzIvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyZGxsLmRzdzoKCiAgIFVuLWJyZWFrIHRoZSBNU1ZDIGJ1aWxkLgoKMjAxMC0wOS0yMCAwOToxOCAgYnZhc3NjaGUKCiAgICogZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMsIG1hbiwgdGVzdGluZywgd2luMzI6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3RzLgoKMjAxMC0wOS0xNyAxMDozNCAgZHRzMTIKCiAgICogIG1hbi9hZ2VudHh0cmFwLjEuZGVmLCBtYW4vbmV0c25tcF9zZXNzX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwgICAKICAgICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBnZXQuMS5kZWYsIG1hbi9zbm1wZ2V0bmV4dC4xLmRlZiwgCiAgICAgICAgbWFuL3NubXBzZXQuMS5kZWYsIG1hbi9zbm1wdHJhcC4xLmRlZiwgbWFuL3NubXB0cmFwZC44LmRlZiwgICAKICAgICAgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgUmVtb3ZlIENNVSBjb3B5cmlnaHQgbm90aWNlIGZyb20gbWFuIHBhZ2VzIHRoYXQgd2VyZSBub3QKICAgaW5oZXJpdGVkIGZyb20gQ01VLVNOTVAgKGFuZCBxdWFsaWZ5IHRoZSBjb3B5cmlnaHQgZm9yCiAgIHRob3NlIHRoYXQgd2VyZSkuCgoyMDEwLTA5LTE3IDA5OjUxICBkdHMxMgoKICAgKiAgbWFuL2RlZmF1bHRfc3RvcmUuMy5ib3QsIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBfYWxhcm0uMy5kZWYsIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgCiAgICAgICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZiwgICAKICAgICAgbWFuL3NubXBkLmludGVybmFsLjUuZGVmLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBVcGRhdGUgbWFuIHBhZ2UgcmVmZXJlbmNlcyB0byByZWZsZWN0IG5ldyBBUEkgZG9jdW1lbnRhdGlvbgogICBzdHJ1Y3R1cmUuCgoyMDEwLTA5LTEwIDA0OjIzICBtYWdmcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgbmV3IHRlc3QqIGVudHJpZXMgZnJvbSB0aGUgdGVzdGluZwogICBNYWtlZmlsZS5pbiB0byB0aGUgdG9wLWxldmVsIE1ha2VmaWxlLmluCgoyMDEwLTA5LTA4IDE1OjQxICBkdHMxMgoKICAgKiAgbWFuL2FnZW50eHRyYXAuMS5kZWYsIG1hbi9kZWZhdWx0X3N0b3JlLjMudG9wLCAgIAogICAgICBtYW4vZW5jb2RlX2tleWNoYW5nZS4xLmRlZiwgbWFuL2ZpeHByb2MuMS5kZWYsICAgCiAgICAgIG1hbi9taWIyYy11cGRhdGUuMS5kZWYsIG1hbi9taWIyYy4xLmRlZiwgbWFuL21pYjJjLmNvbmYuNS5pbiwgICAKICAgICAgbWFuL25ldC1zbm1wLWNvbmZpZy4xLmRlZiwgbWFuL25ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcC1icmlkZ2UtbWliLjEsIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wX2FsYXJtLjMuZGVmLCAKICAgICAgICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwgICAKICAgICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wY29uZi4xLmRlZiwgICAKICAgICAgbWFuL3NubXBkLjguZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmLCAgCiAgICAgICBtYW4vc25tcGQuaW50ZXJuYWwuNS5kZWYsIG1hbi9zbm1wZGVsdGEuMS5kZWYsIG1hbi9zbm1wZGYuMS5kZWYsIAogICAgICAgIG1hbi9zbm1wZ2V0LjEuZGVmLCBtYW4vc25tcGdldG5leHQuMS5kZWYsIG1hbi9zbm1wbmV0c3RhdC4xLmRlZiwKICAgICAgICAgbWFuL3NubXBzZXQuMS5kZWYsIG1hbi9zbm1wc3RhdHVzLjEuZGVmLCBtYW4vc25tcHRhYmxlLjEuZGVmLCAgCiAgICAgICBtYW4vc25tcHRlc3QuMS5kZWYsIG1hbi9zbm1wdHJhbnNsYXRlLjEuZGVmLCBtYW4vc25tcHRyYXAuMS5kZWYsIAogICAgICAgIG1hbi9zbm1wdHJhcGQuOC5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwKICAgICAgbWFuL3NubXB1c20uMS5kZWYsICAgIG1hbi9zbm1wdmFjbS4xLmRlZiwgbWFuL3NubXB3YWxrLjEuZGVmLAogICAgICBtYW4vdGttaWIuMS5kZWYsICAgIG1hbi90cmFwdG9lbWFpbC4xLmRlZiwgbWFuL3ZhcmlhYmxlcy41LmRlZjoKCiAgIFVwZGF0ZSBtYW4gcGFnZSBkYXRlc3RhbXBzIHRvIG1hdGNoIHRoZSBsYXRlc3QgKG5vbi10cml2aWFsKQogICBjb250ZW50IGNoYW5nZS4KICAgU3VwcHJlc3MgZm9yY2luZyBvZiAiQmVya2VsZXkgRGlzdHJpYnV0aW9uIiBmb290ZXIKICAgKEFsbG93cyBOZXQtU05NUCB2ZXJzaW9uIGluZm9ybWF0aW9uIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgbWFuCiAgIHBhZ2UpCgoyMDEwLTA5LTA4IDA1OjM3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZWdlbmVyYXRlZAoKMjAxMC0wOS0wNCAwNjozOCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTM1NiBieQogICBjaGFuZ2luZyB0aGUgcmV0dXJuCiAgIHR5cGUgb2YgbmV0c25tcF90bHNiYXNlX2ZyZWVfdGxzZGF0YSgpIGZyb20gdm9pZCogdG8gdm9pZC4KCjIwMTAtMDktMDQgMDY6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyB0aGF0IHdhcyBpbnRyb2R1Y2VkIGluIHIxOTMyMiAocGF0Y2gKICAgMzA0NDUxMikuCiAgIFRoZSB0aGlyZCBhcmd1bWVudCBwYXNzZWQgdG8gcmVhZF9vYmppZCgpIHdhcyBhbiBpbnQgaW5zdGVhZCBvZgogICBzaXplX3QuCiAgIFRoaXMgY291bGQgaGF2ZSBjYXVzZWQgbWVtb3J5IGNvcnJ1cHRpb24gb24gNjQtYml0IHN5c3RlbXMuCgoyMDEwLTA5LTA0IDAzOjA5ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDktMDQgMDM6MDggIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA5LTA0IDAxOjU3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDktMDQgMDA6NTkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAxMC0wOS0wMyAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB0bHN0Y3AgcGFyc2luZyBvZiBob3N0IG5hbWVzLgoKMjAxMC0wOS0wMyAyMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBjaGVjayB0aGUgcmV0dXJuIGNvZGUgb2YgZmdldHMgYW5kIGZvcGVuIGJlZm9yZSBpbnNlcnRpbmcgdGhlCiAgIHJlc3VsdHMuCgoyMDEwLTA5LTAzIDIyOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFBhdGNoIGZyb20gdGFuZGVycyB0byBmaXggYnJva2VuIGFsYXJtcyBhZnRlciB0aGUgcHJldmlvdXMKICAgcmUtZW50cmFudCBwYXRjaAoKMjAxMC0wOS0wMyAyMjowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBwYXRjaCAzMDU4NjQ1OiBmcm9tIGpvcmlzZXNhdHVybnVzOiBtb2RpZmllZAogICB2ZXJzaW9uIG9mIHRoZSBwYXRjaCB0byB1c2UgTVNHX0RPTlRXQUlUIGZvciB0aGUgdW5peCBkb21haW4KICAgc29ja2V0CgoyMDEwLTA5LTAzIDIxOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDU4MTQwOiBmcm9tIHRha2V2b3M6IGNoZWNrIHRoYXQgaW5vZGUgaXMKICAgbm9uLXplcm8KCjIwMTAtMDktMDMgMjE6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDMwNTM0Mjg6IGZyb20gdGFrZXZvczogZml4CiAgIGdldF9waWRfZnJvbV9pbm9kZSB3aGVuIHRoZSBpbm9kZSBpcyBub3QgZm91bmQuCgoyMDEwLTA5LTAzIDIwOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZW1vdmUgdGhlIGR1cGxpY2F0ZSByZXR1cm4gYmVmb3JlIHRoZSBlcnJvciBjb2RlcyBnZXQgc2V0LgoKMjAxMC0wOS0wMSAxODowNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IExvZyBiZWZvcmUgcmV0dXJuaW5nLgoKMjAxMC0wOS0wMSAwMjo0MyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBUTFMgc2VuZF9ub3RpZnkgb24gY2xvc3VyZSBhbmQgc29tZSBtZW1vcnkgY2xlYW4tdXAgcGF0Y2hlcwoKMjAxMC0wOC0zMSAxNzo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgT25seSBwcmludCB0aGUgc2VjdXJpdHkvY29udGV4dCBFbmdpbmVJRCBtaXNtYXRjaCBub3RlIHVuZGVyIFVTTQoKMjAxMC0wOC0yNSAxNToxMyAgcnN0b3J5CgogICAqIENIQU5HRVM6CgogICByZW1vdmUgcmVmZXJlbmNlIHRvIHJldmVydGVkIHBhdGNoIDMwNDI3NjUKCjIwMTAtMDgtMjUgMTU6MTMgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIG5vdGUgb24gd2hlcmUgdG8gZmluZCBjb250ZW50IHVzZWQgdG8gZ2VuZXJhdGUKICAgbmV0LXNubXAtY29uZmlnLmguaW4KCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICByZXZlcnQgcjE5MzQyLCBwYXRjaCAzMDQyNzY1LCB3aGljaCBicm9rZSBjbGllbnQgdGNwIGRpc2Nvbm5lY3QKICAgaGFuZGxpbmcKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IG1vcmUgY29kZSBicm9rZW4gYnkgJ2NvbXBpbGVyIHdhcm5pbmcgZml4JyBpbiByMTkxNzkKCjIwMTAtMDgtMjUgMDI6NDUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgY2hlY2sgZm9yIGNvbmYgZXJyb3JzIGFmdGVyIGFnZW50IHN0YXJ0dXA7IGVuYWJsZSBsb2dUaW1lc3RhbXA7CiAgIG1ha2Ugc3VyZQogICBhbGwgY2VydCBuYW1lL3RhZ3MgYXJlIHVuaXF1ZQoKMjAxMC0wOC0yNCAyMTowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBmaXggZXJyb3Igc3RyaW5nIHRvIGRpc2N1c3MgdGhlIHJpZ2h0IGZhaWxlZCBvcGVuc3NsIG5ldwogICBpbnZvY2F0aW9uCgoyMDEwLTA4LTI0IDA1OjM3ICBtYWdmcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXB1c206IENvcnJlY3QgaWZkZWZzLCByZW1vdmUgZGVhZCB2YXJpYWJsZXMuCgoyMDEwLTA4LTE5IDIxOjIyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDgtMTkgMjE6MjAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA4LTE5IDIxOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA4LTE5IDIxOjEwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9udG8tcW54Ni5oOgoKICAgLy8gLT4gQyBjb21tZW50cwoKMjAxMC0wOC0xOSAyMDozNiAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAzMDQyNzY1OiBmcm9tIG1laGFmOiBtYWtlCiAgIHNubXBfc3luY2hfcmVzcG9uc2VfY2IoKSByZS1lbnRyYW50CgoyMDEwLTA4LTE5IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHR1cm4gb2ZmIGNvb2tpZSBleGNoYW5nZXMgdW50aWwgYSBjb21wbGV0ZSBjb2RlIHNldCBjYW4gYmUKICAgd3JpdHRlbiB0byBzdXBwb3J0IGl0IGJhc2VkIG9uIHRoZSByZXF1aXJlZCBmdW5jdGlvbiBjYWxsYmFja3MKCjIwMTAtMDgtMTcgMTg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgYWRkIG1pc3NpbmcgY2FsbCB0byBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgYXMgbmVlZGVkCgoyMDEwLTA4LTE3IDE4OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHdoZW4gZGlzcGxheWluZyBhIGJ5dGUgYXMgc2luZ2xlIGRpZ2l0IGhleAogICB2YWx1ZSwgZGVmYXVsdCB0bwogICBwcmVmaXhpbmcgd2l0aCAwIHVubGVzcyB0aGVyZSBpcyBhIHNlcGVyYXRvciBvciBhZGRpdGlvbiBoaW50CiAgIGRhdGEKCjIwMTAtMDgtMTcgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGFuIHVudXNlZCBsYWJlbCB0aGF0IHdhcyB0cmlnZ2VyZWQKICAgd2hlbgogICBjb21waWxpbmcgd2l0aG91dCBTU0wgc3VwcG9ydC4KCjIwMTAtMDgtMTYgMjM6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyNzkwMjQ5OiBmcm9tIHdpbGxwd2lsbHA6IHJlZHVjZSBjYWNoZSB0aW1lCiAgIGZvciB0aGUgaWZ0YWJsZSB0byAzc2Vjb25kcyB0byBpbmNyZWFzZSBhY2N1cmFjeQoKMjAxMC0wOC0xNiAxNjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgQ0hBTkdFUzogcGVybDogcGF0Y2ggMzA0NjM3MTogZnJvbSBjaHJpc3RvcGhiNDogRml4IG1lbW9yeSBsZWFrCiAgIGluIFNOTVB2MSB0cmFwIGhhbmRsaW5nLgoKMjAxMC0wOC0xNiAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjgyNTY1MzogZnJvbSBicnU1Y2U6IGZpeCBzZW5kbWFpbC5jZgogICBwYXJzaW5nIGluIGNlcnRhaW4gY29uZGl0aW9ucwoKMjAxMC0wOC0xNiAxMDoxNiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgQnVpbGQgbmV0c25tcF9hZ2VudF9hcGkuMyBtYW4gcGFnZSBmcm9tIHRlbXBsYXRlCgoyMDEwLTA4LTE2IDA5OjIwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBEb2N1bWVudGF0aW9uIChQcm92aWRlZCBieSBUb21hc3oKICAgTGlzKQoKMjAxMC0wOC0xNiAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogUmUtb3JkZXIgY29kZSB0byBncm91cCByZWxhdGVkCiAgIGZ1bmN0aW9ucyB0b2dldGhlcgoKMjAxMC0wOC0xNiAwNzo0MiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjk5NTA5ODogRml4IGNyZWF0aW9uIG9mIFNOTVB2MyBzZXNzaW9ucwogICB3aXRoIEFQSV9TSU5HTEUKCjIwMTAtMDgtMTQgMTY6MzAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IFJlbW92ZSByZWR1bmRhbnQgdmFyaWFibGVzCgoyMDEwLTA4LTE0IDE2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MDQ5MDA6IERvY3VtZW50YXRpb24gcGx1cyBhc3NvcnRlZAogICBoYW5kbGVyIGNvZGUgZml4ZXMKCjIwMTAtMDgtMTQgMDk6MjggIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgIFJlc3RvcmUgYWdlbnQgQVBJIG1hbiBwYWdlCiAgIERvbid0IHRyeSB0byBleHRyYWN0IG11bHRpcGxlIG1hbiBwYWdlIGxpbmtzIHBlciBsaW5lCiAgICh3aGljaCBydW5zIGludG8gcHJvYmxlbXMgd2l0aCBPUy1zcGVjaWZpYyBsaW5lIGVuZGluZ3MpLgogICBJbnN0ZWFkLCBlbnN1cmUgdGhlIG1hbiBwYWdlIE5BTUUgc2VjdGlvbiBsaXN0cyBvbmUKICAgcm91dGluZSBwZXIgbGluZQoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGJyb2tlbiBNYWtlZmlsZSBhZnRlciBtYW4gcGFnZSBtb3ZlcwoKMjAxMC0wOC0xMyAyMzo1MCAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0LCBtaWJzL3JmY2xpc3Q6CgogICB1cGRhdGVkIFRMUyBNSUIgdG8gY3VycmVudCBjb3B5CgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVwbGFjZWQgUkZDIGNvbW1lbnQgbnVtYmVyCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IHBhdGNoOiAzMDQyNzcwOiBmcm9tIG1laGFmOiBNYWRlIHJ1bl9hbGFybXMoKQogICByZWVudHJhbnQKCjIwMTAtMDgtMTMgMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA0NDUxMjogZnJvbSBwaGlsd2Vic3RlcjogZml4IHN5c29iamVjdGlkCiAgIGRpcmVjdGl2ZS4KCjIwMTAtMDgtMTMgMTk6MDAgIHJzdG9yeQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4OgoKICAgdXNlIDEyNy4wLjAuMSBpbnN0ZWFkIG9mIGxvY2FsaG9zdCBhcyBkZWZhdWx0IFNOTVBfVEVTVF9ERVNUIHNvCiAgIFRMUyB0ZXN0cyB3b3JrCgoyMDEwLTA4LTEzIDE4OjUwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGltcGxlbWVudGVkIGEgZml4IGZvciB0aGUgaXNzdWUgcmVwb3J0ZWQgaW4KICAgcGF0Y2ggIzMwNDI3NzAuIENyZWF0ZWQgYSBzbm1wX3NlbGVjdF9pbmZvX2ZsYWdzIGZ1bmN0aW9uLCBhbmQKICAgc2ltaWxhciwgdGhhdCBhbGxvdyBmb3IgYWxhcm1zIHRvIG5vdCBiZSBydW4uIFRoaXMgaXMgdGhlbiB1c2VkCiAgIGluIHRoZSBzeW5jaF9yZXNwb25zZSBmdW5jdGlvbnMgdG8gYXZvaWQgMTAwJSBDUFUgbG9vcHMKCjIwMTAtMDgtMTMgMTg6NTAgIGhhcmRha2VyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBtYWtlIHNubXB0cmFwZCByZWdpc3RlciB0aGUgY2VydHRvc2VjbmFtZSB0YWJsZSBpbiB0aGUgYWdlbnR4CiAgIHJlZ2lzdHJhdGlvbnMKCjIwMTAtMDgtMTMgMTg6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBtaW5vciB3b3JkaW5nIGFkZGl0aW9ucwoKMjAxMC0wOC0xMyAxNTowNCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9haXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jOgoKICAgQ0hBTkdFUzogYWl4OiBQQVRDSDogMjg4NjU5ODogZnJvbSBleHNuYWZ1OiBIZWFkZXIgZml4ZXMgZm9yCiAgIGNvbXBpbGluZyBvbiBBSVg2CgoyMDEwLTA4LTEzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL250by1xbng2Lmg6CgogICBORVdTOiBwb3J0czogUEFUQ0g6IDI4MzY4OTU6IGZyb20gc2VhbmJvdWRyZWF1OiBzdXBwb3J0IGZvciBRTlg2CgoyMDEwLTA4LTEzIDE0OjMzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9hZ2VudF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbmZpZ19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgJ2VuZm9yY2UgbmV0c25tcCBwcmVmaXhlcwoKMjAxMC0wOC0xMyAxNDoyOSAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjkgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3RyYXBfYXBpLjMuZGVmLCBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3Nlc3NfYXBpLjMuZGVmLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjggIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi9zZXNzaW9uX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9uZXRzbm1wX3BkdV9hcGkuMy5kZWYsIG1hbi9wZHVfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX21pYl9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vY29uZmlnX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjAgIGR0czEyCgogICAqIE1ha2VmaWxlLmluLCBkb3h5Z2VuLmNvbmY6CgogICBEb24ndCBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlIG1hbiBwYWdlcwoKMjAxMC0wOC0xMyAxNDoxOCAgZHRzMTIKCiAgICogIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMywgbWFuL3NubXBfY2xvc2UuMywgbWFuL3NubXBfZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMywgICAKICAgICAgbWFuL3NubXBfcmVhZC4zLCBtYW4vc25tcF9zZWxlY3RfaW5mby4zLCBtYW4vc25tcF9zZW5kLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2Nsb3NlLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfZXJyb3IuMywgbWFuL3NubXBfc2Vzc19pbml0LjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfb3Blbi4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3JlYWQuMywgbWFuL3NubXBfc2Vzc19zZWxlY3RfaW5mby4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3NlbmQuMywgbWFuL3NubXBfc2Vzc19zZXNzaW9uLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfdGltZW91dC4zLCBtYW4vc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsICAgCiAgICAgIG1hbi9zbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zLCBtYW4vc25tcF90aW1lb3V0LjM6CgogICBSZW1vdmUgcmVkdW5kYW50IG1hbiBwYWdlIGxpbmtzCiAgIChTaG91bGQgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHksIGJ1dCBkb24ndCBleGlzdCBhbnkgbW9yZQogICBhbnl3YXkpCgoyMDEwLTA4LTEzIDE0OjEzICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vYWRkX21pYmRpci4zLCBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCAgCiAgICAgICBtYW4vZ2V0X21vZHVsZV9ub2RlLjMsIG1hbi9pbml0X21pYi4zLCBtYW4vaW5pdF9taWJfaW50ZXJuYWxzLjMsIAogICAgICAgIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xlYWYuMywgbWFuL25ldHNubXBfbGlicmFyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAKICAgICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc2V0X2RhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsICAKICAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjMsIG1hbi9wcmludF9kZXNjcmlwdGlvbi4zLCBtYW4vcHJpbnRfbWliLjMsICAKICAgICAgIG1hbi9wcmludF9vYmppZC4zLCBtYW4vcHJpbnRfdmFsdWUuMywgbWFuL3ByaW50X3ZhcmlhYmxlLjMsICAgCiAgICAgIG1hbi9yZWFkX2FsbF9taWJzLjMsIG1hbi9yZWFkX21pYi4zLCBtYW4vcmVhZF9tb2R1bGUuMywgICAKICAgICAgbWFuL3JlYWRfbW9kdWxlX25vZGUuMywgbWFuL3JlYWRfb2JqaWQuMywgbWFuL3NodXRkb3duX21pYi4zOgoKICAgUmVtb3ZlIERveHlnZW4tZ2VuZXJhdGVkIG1hbiBwYWdlcywgYW5kIHRob3NlIGxpbmtpbmcKICAgaW5kaXZpZHVhbCByb3V0aW5lcyB0byB0aGUgYXBwcm9wcmlhdGUgbWFuIHBhZ2UuCiAgIChUaGVzZSBhcmUgYmV0dGVyIGdlbmVyYXRlZCBkeW5hbWljYWxseSkKCjIwMTAtMDgtMTMgMTI6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgUHJvbXB0IGZvciB3aGV0aGVyIHRvIGdlbmVyYXRlIGNhY2hpbmcgY29kZSBvciBub3QuCgoyMDEwLTA4LTEzIDEyOjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgUmV3b3JrIGd1aWRhbmNlIHF1ZXN0aW9ucyB3aGVuIHNlbGVjdGluZyB0aGUgYmVzdCB0YWJsZSBmcmFtZXdvcmsKICAgdG8gdXNlLgogICBFbnN1cmUgdGFibGUgaGFuZGxpbmcgY29kZSBkb2Vzbid0IG92ZXJ3cml0ZSBzY2FsYXIgaGFuZGxpbmcKICAgY29kZS4KICAgQ2hlY2sgdGhhdCB0aGUgc3RhcnRpbmcgcG9pbnQgaXMgc3VpdGFibGUgZm9yIE1mRCBmcmFtZXdvcmsuCgoyMDEwLTA4LTEyIDE1OjQwICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBjb2RlIGJyb2tlbiBieSAnY29tcGlsZXIgd2FybmluZyBmaXgnIGluIHIxOTE3OQoKMjAxMC0wOC0xMiAxNTozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaDoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIGEgZHVwbGljYXRlIHZhbHVlIGNoZWNrCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgYWRkIGEgdGVzdCB3aGVyZSB3ZSBjYW4gdHJ1c3QgYSBDQS1zaWduZWQgY2VydCBhbmQgd2UgZG9uJ3QgdHJ1c3QKICAgdGhlIENBCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgdGVzdCBhIGRpcmVjdGx5IG1hcHBlZCBDQSBjZXJ0aWZpY2F0ZQoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgY2hhbmdlIHRoZSBsYUNvbmZpZyB0byByZWFkLXdyaXRlIHRvIG1hdGNoIHRoZSBwYXRjaAoKMjAxMC0wOC0xMSAyMjowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAyOTMxNDQ2OiBmcm9tIGFobWFrZTogbWFrZSB0aGUgbG9hZCBhdmVyYWdlcwogICB3cml0YWJsZS4KCjIwMTAtMDgtMTEgMDY6NDMgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNDBrZXltYW5hZ2V0ZXN0X2NhcHAuYzoKCiAgIENIQU5HRVM6IFNpbGVuY2Ugc29tZSBjb21waWxhdGlvbiB3YXJuaW5ncyBmcm9tIHRlc3QgY2FzZXMuCgoyMDEwLTA4LTA5IDIxOjA5ICBtYWdmcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IEhhbmRsZSBlbWJlZGRlZCAlJ3MgaW4gdGhlIHJlc3VsdCBtZXNzYWdlLgoKMjAxMC0wOC0wOSAyMTowNyAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBDSEFOR0VTOiBEbyBubyBkb3VibGUgZGVjbGFyZSB0aGUgaW5kZXggdmFsdWVzLgoKMjAxMC0wOC0wNSAxMTo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBVcGRhdGUgImF1dGgqIiB1c2FnZSBtZXNzYWdlIHdpdGggY29udGV4dCBzdXBwb3J0CgoyMDEwLTA4LTAyIDIwOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBGaXggdHdvIHNpbGx5IG1pc3Rha2VzLgoKMjAxMC0wOC0wMiAxNDoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGN0bC5jOgoKICAgQUlYIGZpbGVzeXN0ZW0gdHlwZXMgYXJlIHRhZ2dlZCBhcyBpbnRlZ2Vycywgbm90IHN0cmluZ3MuCgoyMDEwLTA4LTAyIDEzOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgZml4IFBlcmwgc3lzdGVtKCkgY29uZmlndXJlIGNoZWNrIHRvIHdvcmsgcmVsaWFibHkgb24gc3lzdGVtcwogICB0aGF0IGxhY2sKICAgUGVybAoKMjAxMC0wOC0wMiAxMTowOCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IG1hZGUgaXQgcG9zc2libGUgdG8gYW5hbHl6ZSBhbGwgY29kZSBjb3ZlcmVkIGJ5CiAgIHRoZSByZWdyZXNzaW9uIHRlc3RzIHdpdGggYSBkeW5hbWljIGFuYWx5emVyLCBhdCBsZWFzdCBpZiB0aGF0CiAgIGFuYWx5emVyIHN1cHBvcnRzIGZvbGxvd2luZyBjaGlsZCBwcm9jZXNzZXMuIEFuIGV4YW1wbGU6CiAgIAogICBybSAtcmYgL3RtcC9zbm1wLXRlc3QtKgogICBtYWtlIC1zCiAgIFNOTVBfU0FWRV9UTVBESVI9eWVzIERZTkFNSUNfQU5BTFlaRVI9InZhbGdyaW5kCiAgIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tdHJhY2stb3JpZ2lucz15ZXMiIG1ha2UgLXMgdGVzdAogICBncmVwIC1pIHVuaW5pdGlhbGlzZWQgL3RtcC9zbm1wLXRlc3QtKiB8IHhhcmdzIGxlc3MKCjIwMTAtMDgtMDIgMTE6MDIgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYzoKCiAgIEZpeGVkIHRoZSBmb2xsb3dpbmcgdHdvIFZhbGdyaW5kIGNvbXBsYWludHM6CiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkQ3MDJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDk5RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RDdBNDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZFMTQ0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDVFNUUyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NUU2NTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDVFNTY3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1RTI0NzlBOiBfc2Vzc19wcm9jZXNzX3BhY2tldCAoc25tcF9hcGkuYzo1NDQxKQogICBieSAweDVFMjVFMzc6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NjAzNykKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIFVuaW5pdGlhbGlzZWQgdmFsdWUgd2FzIGNyZWF0ZWQgYnkgYSBoZWFwIGFsbG9jYXRpb24KICAgYXQgMHg0QzI3MEE1OiBtYWxsb2MgKHZnX3JlcGxhY2VfbWFsbG9jLmM6MjM2KQogICBieSAweDVFNjU3Mzk6IG5ldHNubXBfdGNwX2FjY2VwdCAoc25tcFRDUERvbWFpbi5jOjgyKQogICBieSAweDVFMjUzODM6IF9zZXNzX3JlYWQgKHNubXBfYXBpLmM6NTc4NikKICAgYnkgMHg1RTI2MURBOiBzbm1wX3Nlc3NfcmVhZDIgKHNubXBfYXBpLmM6NjE0OSkKICAgYnkgMHg1RTI2MjgyOiBzbm1wX3JlYWQyIChzbm1wX2FwaS5jOjU3NDApCiAgIGJ5IDB4NDA0REU0OiBtYWluIChzbm1wZC5jOjEyMjcpCiAgIAogICBDb25kaXRpb25hbCBqdW1wIG9yIG1vdmUgZGVwZW5kcyBvbiB1bmluaXRpYWxpc2VkIHZhbHVlKHMpCiAgIGF0IDB4NkY3QjJFMDogdmZwcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2RkE0RDExOiB2c25wcmludGYgKGluIC9saWI2NC9saWJjLTIuMTEuMi5zbykKICAgYnkgMHg2Rjg1NDEyOiBzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDcwMUY0Mzc6IGluZXRfbnRvYSAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDU2RkEyMTk6IG5ldHNubXBfaXB2NF9mbXRhZGRyIChzbm1wSVB2NEJhc2VEb21haW4uYzoyMTUpCiAgIGJ5IDB4NTcwMTcxNzogbmV0c25tcF90Y3BfZm10YWRkciAoc25tcFRDUERvbWFpbi5jOjcwKQogICBieSAweDU2RjI3RUM6IG5ldHNubXBfdHJhbnNwb3J0X3BlZXJfc3RyaW5nCiAgIChzbm1wX3RyYW5zcG9ydC5jOjIyNCkKICAgYnkgMHg1NkYyOTRGOiBuZXRzbm1wX3RyYW5zcG9ydF9zZW5kIChzbm1wX3RyYW5zcG9ydC5jOjI0OCkKICAgYnkgMHg1NkJDNDg3OiBzbm1wX3Nlc3NfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo1MjA0KQogICBieSAweDU2QkM2NTE6IHNubXBfYXN5bmNfc2VuZCAoc25tcF9hcGkuYzo0OTk4KQogICBieSAweDU2QkM2Nzc6IHNubXBfc2VuZCAoc25tcF9hcGkuYzo0OTg0KQogICBieSAweDU2OTg0NDA6IHNubXBfc3luY2hfcmVzcG9uc2VfY2IgKHNubXBfY2xpZW50LmM6MTAwNikKICAgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgogICBhdCAweDRDMjcwQTU6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMzYpCiAgIGJ5IDB4NTcwMUIzRTogbmV0c25tcF90Y3BfdHJhbnNwb3J0IChzbm1wVENQRG9tYWluLmM6MTYzKQogICBieSAweDU3MDFFNkY6IG5ldHNubXBfdGNwX2NyZWF0ZV90c3RyaW5nIChzbm1wVENQRG9tYWluLmM6MzA1KQogICBieSAweDU2RjM4MDQ6IG5ldHNubXBfdGRvbWFpbl90cmFuc3BvcnRfZnVsbAogICAoc25tcF90cmFuc3BvcnQuYzo2MDEpCiAgIGJ5IDB4NTZGM0FDQzogbmV0c25tcF90cmFuc3BvcnRfb3Blbl9jbGllbnQKICAgKHNubXBfdHJhbnNwb3J0LmM6NjY5KQogICBieSAweDU0MzQ0RjY6IHN1YmFnZW50X29wZW5fbWFzdGVyX3Nlc3Npb24gKHN1YmFnZW50LmM6NzU4KQogICBieSAweDU0MzQ5Qzg6IGFnZW50eF9yZW9wZW5fc2Vzc2lvbiAoc3ViYWdlbnQuYzo4NjkpCiAgIGJ5IDB4NTQzNEQwMDogc3ViYWdlbnRfc3RhcnR1cCAoc3ViYWdlbnQuYzo5OSkKICAgYnkgMHg1NkVBRUI3OiBzbm1wX2NhbGxfY2FsbGJhY2tzIChjYWxsYmFjay5jOjMzOCkKICAgYnkgMHg1NkRFNkZCOiByZWFkX2NvbmZpZ3MgKHJlYWRfY29uZmlnLmM6MTAxOCkKICAgYnkgMHg1NkMyODdFOiBpbml0X3NubXAgKHNubXBfYXBpLmM6ODUwKQogICBieSAweDQwNDc3QjogbWFpbiAoc25tcHRyYXBkLmM6MTA0OCkKCjIwMTAtMDgtMDEgMDY6MTEgIGJ2YXNzY2hlCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBGaXhlZCBzcGVsbGluZyBlcnJvcnMgcmVwb3J0ZWQgYnkgaXNwZWxsIC1sLgoKMjAxMC0wOC0wMSAwNjowMCAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF9lbnVtLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBGaXhlZCBhIHR5cG8gaW4gYSB0ZXh0IHN0cmluZyBpbiBhIHVuaXQgdGVzdDogcmVzdHVyYW50IC0+CiAgIHJlc3RhdXJhbnQuCgoyMDEwLTA4LTAxIDA1OjUzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmg6CgogICBEb2N1bWVudGVkIGJlaGF2aW9yIG9mIHNlX2FkZF9wYWlyX3RvX3NsaXN0KCkuCgoyMDEwLTA3LTMxIDIzOjUwICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjEwLmg6CgogICBGb2xsb3ctdXAgZm9yIHIxOTI2NjogYWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgdG8gc3VwcG9ydCBNYWMgT1MgWAogICAxMC42CiAgIChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQoKMjAxMC0wNy0zMSAyMDozOCAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjM1ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDozMSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA3LTMxIDIwOjI0ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjE2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDctMzEgMjA6MTEgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgY2hhbmdlZCB0aGUgbmFtZSBvZiB0aGUgcmVhZG1lIHNlY3Rpb24gdG8gY2FsbCBvdXQgTkVXUy10b28KCjIwMTAtMDctMzEgMjA6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBtaXNzaW5nIG5ld3MgaXRlbXMKCjIwMTAtMDctMzAgMTM6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0ggMzAzNTMyODogZnJvbTogc3dzOiBjaGVjayB0aGUgcmVzdWx0cyBvZgogICBzZXNzaW9uIGNyZWF0aW9uIGZvciBhIGZhaWx1cmUgY2FzZS4KCjIwMTAtMDctMzAgMTM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IHBhdGNoIDMwMzU1Nzg6IGZyb20gc3dzOiBrZWVwIGVycm9yIGNvZGVzIHVwIHRvCiAgIGRhdGUKCjIwMTAtMDctMjkgMTU6NDggIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFkZCBzdXBwb3J0IGZvciBNYWMgT1MgWCAxMC42IChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQogICAoT24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIE1hYyBPUyBYIDEwLjUKICAgKExlb3BhcmQgLSAiZGFyd2luOSIpKQoKMjAxMC0wNy0yOSAxNTo0NyAgZHRzMTIKCiAgICogIE1ha2VmaWxlLmluLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uOgoKICAgQWRkIHN1cHBvcnQgZm9yIE1hYyBPUyBYIDEwLjYgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCiAgIChPbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgdGhlIHNhbWUgYXMgTWFjIE9TIFggMTAuNQogICAoTGVvcGFyZCAtICJkYXJ3aW45IikpCgoyMDEwLTA3LTI5IDE1OjAzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaDoKCiAgIFByb3ZpZGUgYSBkZWZpbml0aW9uIG9mICd2YV9saXN0JyBmb3IgdmFyYXJncy1iYXNlZCBBUElzCgoyMDEwLTA3LTI5IDE0OjU4ICBkdHMxMgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy5oLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQWRkIHByZWxpbWluYXJ5IHN1cHBvcnQgZm9yIEFJWCA3CiAgIChvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoaXMgaXMgaWRlbnRpY2FsIHRvIEFJWCA2KQoKMjAxMC0wNy0yOSAxNDo1NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIERpc2FibGUgZW1iZWRkZWQgcGVybCBieSBkZWZhdWx0IG9uIGFyY2hpdGVjdXJlcyB3aGVyZQogICB0aGlzIHNlZW1zIHRvIGNhdXNlIHByb2JsZW1zIChIUC1VWCAmIE1hYyBPUyBYKQoKMjAxMC0wNy0yOSAxMToxMyAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgR3VhcmQgYWdhaW5zdCBibGFuayAnaW5jbHVkZSonIGxpbmVzLgogICBIYW5kbGUgcmVsYXRpdmUgJ2luY2x1ZGVGaWxlJyBwYXRocwoKMjAxMC0wNy0yOSAxMDo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldHVybiBhbiBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgY29uZmlnIGZpbGVzIGFyZSBhY3R1YWxseQogICBwcm9jZXNzZWQuCiAgIFJlcG9ydCBwcm9ibGVtcyB3aXRoIGZhaWxpbmcgdG8gaW5jbHVkZSBjb25maWcgZmlsZXMuCgoyMDEwLTA3LTI4IDE0OjQ0ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvcGR1X2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaCwgbWFuL2NvbmZpZ19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vc2Vzc2lvbl9hcGkuMy5kZWYsIG1hbi92YXJiaW5kX2FwaS4zLmRlZiwgIAogICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBCcmluZyBtYW4gcGFnZSBkb2N1bWVudGF0aW9uLCBoZWFkZXIgZmlsZXMgYW5kIFdpbmRvd3MgRExMCiAgIGRlZmluaXRpb25zCiAgIG9mIHRvcC1sZXZlbCBwdWJsaWMgQVBJIGNhbGxzIGludG8gbGluZSB3aXRoIGVhY2ggb3RoZXIuCgoyMDEwLTA3LTI4IDE0OjQwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggbWlzbmFtZWQgY29tbWVudAoKMjAxMC0wNy0yOCAxNDozNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2RlZmF1bHRfbW9kdWxlcy5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIERvbid0IG1peCBTTUl2MSBhbmQgU01JdjIgTUlCcyBpbiB0aGUgbGlzdCBvZiBkZWZhdWx0IE1JQnMgdG8KICAgbG9hZC4KICAgVXNlIG5ld2VyIFNNSXYyIHZlcnNpb25zICh3aGljaCBpbmNsdWRlIHN1aXRhYmxlIGRpc3BsYXkgaGludHMpCiAgIHJhdGhlciB0aGFuIHRoZSBvcmlnaW5hbCBSRkMxMjEzIE1JQiAod2hpY2ggZG9lc24ndCkKCjIwMTAtMDctMjggMTQ6MTAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeCBpbmRlbnRhdGlvbiBmb3IgJ2luY2x1ZGVTZWFyY2gnIHByb2Nlc3NpbmcgY29kZS4KCjIwMTAtMDctMjggMTQ6MDkgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEV4dGVuZCAnaW5jbHVkZScgY29uZmlnIGZpbGUgcHJvY2Vzc2luZyB0byBjb3ZlciB0aHJlZQogICBkaWZmZXJlbnQgbW9kZXMgb2Ygd29ya2luZzoKICAgLSBsb29rIGZvciB0aGUgZmlsZSBvbiB0aGUgY29uZmlnIHNlYXJjaCBwYXRoCiAgIC0gaW5jbHVkZSB0aGUgc3BlY2lmaWVkIGZpbGUgYnkgbmFtZQogICAtIGlvYWQgdGhlIGNvbnRlbnRzIG9mIHRoZSBzcGVjaWZpZWQgZGlyZWN0b3J5CiAgIFVzZSBkaWZmZXJlbnQgY29uZmlnIHRva2VucyB0byBkaXN0aW5ndWlzaCB0aGVzZSBjYXNlcy4KCjIwMTAtMDctMjcgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggMjkxMjUyMDogZnJvbSBsaXN0b206IEZyZWUga21lbSByZWZlcmVuY2VzCiAgIG9uIHNodXRkb3duCgoyMDEwLTA3LTI3IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NNVVgtTUlCLnR4dDoKCiAgIENIQU5HRVM6IG1pYnM6IHBhdGNoIDI5NzQ3MTY6IGZyb20gYnZhc3NjaGU6IGZpeCBpc3N1ZXMgaW4gdGhlCiAgIFNNVVgtTUlCCgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBpbmNsdWRlIHRoZSBuZXcgc2VjdXJpdHktaGVkYWVycyBtb2R1bGUKCjIwMTAtMDctMjcgMDg6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtYnJpZGdlLW1pYjoKCiAgIHJlbW90ZSBkZWJ1Z2dpbmcvcHJvY2Vzc2luZyBzdGRlcnIgb3V0cHV0CgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDMwMjg5MjM6IGZyb20gamVuc286IG5ldyBjb3B5IG9mIHRoZQogICBicmlkZ2UtbWliIHBlcmwgaW1wbGVtZW50YXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfc2VjdXJpdHlfbW9kdWxlcywgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXNlY3VyaXR5LWhlYWRlcnMuaW46CgogICBzZXBhcmF0ZSBvdXQgdGhlIHNlY3VyaXR5IGhlYWRlci9pbml0IGdlbmVyYXRpb24KCjIwMTAtMDctMjcgMDg6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3RyYW5zcG9ydHM6CgogICB0cmFuc3BvcnQgY29uZmlndXJlIHBvcnRpb24KCjIwMTAtMDctMjcgMDg6MzAgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMsICAgCiAgICAgIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi10cmFuc3BvcnQtaGVhZGVycy5pbiwgICAKICAgICAgZGlzdC9nZW5lcmF0aW9uLXNjcmlwdHMvZ2VuLXZhcmlhYmxlcy5pbjoKCiAgIG1vdmUgdHJhbnNwb3J0IGhlYWRlciBnZW5lcmF0aW9uIHRvIGEgc2VwYXJhdGUgZmlsZSBhbmQgY3JlYXRlIGFuCiAgIGV4dGVybmFsIHNlcGFyYXRlIHNjcmlwdCBmb3IgZ2VuZXJhdGluZyBpdAoKMjAxMC0wNy0yNyAwODoxNCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiByZXBvcnQgZ2ZzIGZpbGVzeXN0ZW1zIGluIGhyU3RvcmFnZVRhYmxlIGFuZAogICBockZTVGFibGUuCgoyMDEwLTA3LTI0IDE1OjQyICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBEb24ndCBsb3NlIHRyYWNrIG9mIHdoaWNoIGNvbmZpZyBmaWxlIHdhcyBiZWluZyBwYXJzZWQsCiAgIHdoZW4gcHJvY2Vzc2luZyBhbiBpbmNsdWRlZCBjb25maWcgZmlsZS4KICAgRml4ZXMgYSBidWcgd2l0aCByZXBvcnRpbmcgbGF0ZXIgY29uZmlnIGVycm9ycy4KCjIwMTAtMDctMjQgMTU6MzYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIERvbid0IGxvc2UgdHJhY2sgb2Ygd2hpY2ggY29uZmlnIGZpbGUgaXMgYmVpbmcgcGFyc2VkLAogICB3aGVuIG9wZW5pbmcgYSBuZXcgU05NUCBzZXNzaW9uLgogICBGaXhlcyBhIGJ1ZyB3aXRoIHJlcG9ydGluZyBsYXRlciBjb25maWcgZXJyb3JzLgoKMjAxMC0wNy0yMyAwMzoxMiAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGQgdGhlIFRMUyBtb2R1bGVzIHRvIHRoZSBsaXN0IG9mIHRlc3QgbW9kdWxlcwoKMjAxMC0wNy0yMSAxOToyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jOgoKICAgRml4IHR5cG8gaW4gZG94eWdlbiBjb21tZW50CgoyMDEwLTA3LTIxIDE5OjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIEZpeCB0eXBvIGluIHNwZWVkIGNvbXB1dGF0aW9uCgoyMDEwLTA3LTIxIDE5OjIxICBuYmEKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgSW5jbHVkZSBnZW5lcmF0ZWQgc2VjdXJpdHktaW5jbHVkZXMuaAoKMjAxMC0wNy0yMSAxOToyMCAgbmJhCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oOgoKICAgRml4IGluaXQgZnVuYyBuYW1lIChjb3B5LXBhc3RlIGdsaXRjaCkKCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIFJlbW92ZSBzdXBlcmZsdW91cyBzZW1pY29sb24KCjIwMTAtMDctMjEgMTk6MTggIG5iYQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIE91dCBvZiBvcmRlciBkZWNsYXJhdGlvbgoKMjAxMC0wNy0yMSAxOToxNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBMb2cgZXJyb3Igb24gZmlsZSBvcGVuIGVycm9yCgoyMDEwLTA3LTIxIDE5OjE2ICBuYmEKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgU3BlbGluZyBlcnJvcgoKMjAxMC0wNy0yMSAxODoxMCAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3QsIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmY6CgogICBVcGRhdGUgZm9yIGN1cnJlbnQgUkZDcwoKMjAxMC0wNy0yMSAxODowOCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgQ3VycmVudCB2ZXJzaW9uIGZyb20gSUFOQQoKMjAxMC0wNy0yMSAxODowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcjE3NDk1IGVycm9uZW91c2x5IGRpc2FibGVkIGRpc2tJT0xBeCBmb3IgbGludXgKCjIwMTAtMDctMjAgMTA6MzggIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4ZWQgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyB3aGVuIGdlbmVyYXRpbmcKICAgdGVtcC4gZmlsZSBuYW1lcwoKMjAxMC0wNy0yMCAwNzozMiAganNhZnJhbmVrCgogICAqICBhZ2VudC9zbm1wZC5jLCBhcHBzL2FnZW50eHRyYXAuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkLmMsIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwgICAKICAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIERlc2NyaWJlIC1EIHVzYWdlIGFzIC1EW1RPS0VOXSBpbnN0ZWFkIG9mIC1EIFtUT0tFTl0KCjIwMTAtMDctMTcgMTU6MTAgIHJzdG9yeQoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQ6CgogICB1cGRhdGUgZGlzcGxheSBoaW50IHRvIHNvbWUgbGVzcyBhbWJpZ3VvdXMgKGFuZCB0aGF0IHdvcmtzIHdpdGgKICAgb3VyIGxpYikKCjIwMTAtMDctMTcgMDQ6MTMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IHRlc3RzaW1wbGUgZm9yIGJ1aWxkZGlyIT1zcmNkaXIKCjIwMTAtMDctMTcgMDQ6MTIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgYWRkIHRlc3RzaW1wbGUgdGFyZ2V0CgoyMDEwLTA3LTE2IDE5OjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZWxlYXNlIGl0ZXJhdG9yIHdoZW4gZG9uZSB3aXRoIGl0CgoyMDEwLTA3LTE1IDE4OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeCBpc3N1ZSB3aXRoIFVTTSB1c2luZyBpbmFjdGl2ZSB1c2VycwoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmM6CgogICBkb24ndCB1c2Ugc3RybmR1cCAocG9ydGFiaWxpdHkpCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGluY2x1ZGUgYXBwcm9wcmlhdGUgc3RyaW5nIGhlYWRlcjsgZGVmaW5lIE5BTUVfTUFYIGlmIG5vdCBhbHJlYWR5CiAgIGRlZmluZWQ7CiAgIGRvbid0IHVzZSBzdHJuZHVwIChwb3J0YWJpbGl0eSkKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNoZWNrIHRoYXQgc29tZSBuZXdlciBvcGVuc3NsIG1hY3JvcyBhcmUgZGVmaW5lZCBiZWZvcmUgdXNpbmcKICAgdGhlbTsgaW5jbHVkZQogICBhcHByb3ByaWF0ZSBzdHJpbmcgaGVhZGVyCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3IgZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGRvbid0IGNvbXBpbGUgZHRscyBkb21haW4gaWYgbm8gZHRscyBzdXBwb3J0IGluIG9wZW5zc2wKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgaWZkZWYgcHJvdGVjdGlvbiBmb3IgbGF0ZXIgc2hhIGFsZ29yaXRobXMKCjIwMTAtMDctMTUgMDE6MzQgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBkYXJ3aW4gb3BlbnNzbCBkb2VzIG5vdCBzdXBwb3J0IG1vcmUgcmVjZW50IHNoYSBhbGdvcml0aG1zCgoyMDEwLTA3LTE1IDAxOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgZml4IHR5cG8gaW4gaWZkZWYgdGVzdAoKMjAxMC0wNy0xNSAwMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBpbmNsdWRlZCBmaWxlIG5hbWUKCjIwMTAtMDctMTQgMTU6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgZml4IHRoZSBmaXg6IHB1dCBQUkl6IHNwZWMgaW4gY29ycmVjdCBwbGFjZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBzcGVjaWZ5IFNOTVAgdmVyc2lvbiBvbiBjb21tYW5kbGluZQoKMjAxMC0wNy0xNCAxNTowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlcgoKMjAxMC0wNy0xNCAxNTowMiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgIGFwcHMvc25tcHRscy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBpbmNsdWRlIHNzbC5oIGJlZm9yZSBjZXJ0X3V0aWwuaAoKMjAxMC0wNy0xMyAyMDowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZGVidWcgb3V0cHV0IGZvciBmb3VuZCBjZXJ0CgoyMDEwLTA3LTEzIDE2OjI0ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggdHlwbyBpbiBsb2cgbXNnCgoyMDEwLTA3LTEyIDEwOjI2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDSEFOR0VTOiBXaW4zMiBhbmQgQ3lnd2luOiBtYWRlIHN1cmUgdGhhdCBhY2Nlc3NpbmcgdGhlIG1pYklJCiAgIGludGVyZmFjZXMgdGFibGUgZG9lcyBub3QgdHJpZ2dlciBvdXQtb2YtcmFuZ2UgYXJyYXkgYWNjZXNzZXMKICAgKHdhcyBkZXRlY3RlZCBieSBCb3VuZHNDaGVja2VyKS4KCjIwMTAtMDctMTIgMTA6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4ZWQgYSBkYW5nbGluZy1wb2ludGVyLXJlYWQgdGhhdCB3YXMgaW50cm9kdWNlZCBpbiByMTkwMTguIEluCiAgIHIxOTAxOCB0aGUgdHlwZSBvZiBncm91cFN1YnRyZWVMZW4gd2FzIGNoYW5nZWQgZnJvbSBpbnQgdG8KICAgc2l6ZV90LCB3aGljaCBjaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiB0aGUgbG9vcCAid2hpbGUKICAgKGdyb3VwU3VidHJlZUxlbi0tID4gMCkgLi4uIjogaW5zdGVhZCBvZiBub3QgZXhlY3V0aW5nIHRoZSBsb29wCiAgIGJvZHkgd2hlbiBncm91cFN1YnRyZWVMZW4gd2FzIG5lZ2F0aXZlLCByMTkwMTggY2F1c2VkIHRoZSBib2R5IG9mCiAgIHRoYXQgbG9vcCB0byBiZSBleGVjdXRlZC4gRGV0ZWN0ZWQgYnkgcnVubmluZyBzbm1wZCB1bmRlcgogICBCb3VuZHNDaGVja2VyIHdoaWxlIHBlcmZvcm1pbmcgYSBNSUIgd2Fsay4KCjIwMTAtMDctMTIgMTA6MTIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBSZXZlcnRlZCByMTkwNDcgKHdoaWNoIHdhcyB3cm9uZykgYW5kIGltcGxlbWVudGVkIGEgcHJvcGVyIGZpeAogICBmb3IgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaGVzLgoKMjAxMC0wNy0xMiAxMDowOSAgYnZhc3NjaGUKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBjb21tZW50LgoKMjAxMC0wNy0xMiAxMDowOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oOgoKICAgU3VwcHJlc3NlZCBtb3JlIE1TVkMgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA3LTEyIDA0OjQ1ICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNWYXJzOgoKICAgYWRkIGNvbW1lbnQgd2l0aCBvYmplY3QgbmFtZSBmb3IgbnVtZXJpYyBpZHMKCjIwMTAtMDctMTIgMDQ6NDUgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gZ2V0IHNlcnZlcklkIGZyb20gc25tcFRsc3RtQWRkclRhYmxlIGRhdGE7IHVzZQogICBuZXcgYXBpCiAgIHRvIGNvbmZpZyBzZXJ2aWNlSWQgZm9yIHRyYXAgdHJhbnNwb3J0IHdoZW4gc2VuZGluZyB0cmFwcwoKMjAxMC0wNy0xMSAxMToxOCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zOgoKICAgQ0hBTkdFUzogQlVHOiAzMDI3OTAwOiB3aGVuIGNyb3NzLWNvbXBpbGluZyBpdCBpcyBub3cgYXNzdW1lZAogICB0aGF0IG1lbWNtcCgpIGlzIGF2YWlsYWJsZSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHRoYXQgaXQgaXMgbm90CiAgIGF2YWlsYWJsZS4KCjIwMTAtMDctMTEgMTA6MzAgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgdHJpZ2dlcmVkIGJ5IHIxOTE5Ny4KCjIwMTAtMDctMTAgMjA6MDAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN5bmMgdXAgaGVscCBvdXRwdXQgYW5kIG9wdGlvbnMgcHJvY2Vzc2luZwoKMjAxMC0wNy0wOSAxNToxMyAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlZCBDeWd3aW4gc2VjdGlvbiBpbiBSRUFETUUud2luMzIuCgoyMDEwLTA3LTA5IDE1OjEzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBXaW4zMjogU3VwcHJlc3NlZCAiaW1wbGljaXQgY2FzdCBmcm9tIGludCB0byB1X2NoYXIiCiAgIHdhcm5pbmdzIGdlbmVyYXRlZCBieSBNU1ZDLgoKMjAxMC0wNy0wOSAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIFRlc3Rpbmc6IG1hZGUgdGhlIGRlYnVnIG91dHB1dCB0aGF0IGFwcGVhcnMgaW4gdGhlICJpbnZva2VkIiBmaWxlCiAgIGV2ZW4gbW9yZSB2ZXJib3NlLgoKMjAxMC0wNy0wOSAxNToxMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXMuCgoyMDEwLTA3LTA4IDE5OjMwICBtYXJ6CgogICAqICBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQsICAgCiAgICAgIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGFkZHMgcGVyIGlkZW50aXR5IGNvbmZpZ3VyYXRpb24gZmlsZSBzdXBwb3J0IHNvIGRlZmF1bHRzIGNhbiBiZQogICBjdXN0b21pc2VkIG9uIGNtZGxpbmUgdyAtaSA8aWRlbnRpdHk+IC0gc2VlIG5ldC1zbm1wLWNlcnQuY29uZgogICBmb3IgZXhhbXBsZXMgYW5kIHNvbWUgaGVscCBpbmZvCgoyMDEwLTA3LTA4IDEyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzAwMzk4MTogUHJvdGVjdCBhZ2FpbnN0IGJ1ZmZlciBvdmVyZmxvdwoKMjAxMC0wNy0wOCAxMToxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAzMDE5MjQzOiBSZWdpc3RlciBleGVjRml4IGNvbXBhdGFiaWxpdHkKICAgZGlyZWN0aXZlIGNvcnJlY3RseS4KCjIwMTAtMDctMDcgMTA6MTkgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTBhZ2VudHhnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTFhZ2VudHhzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjFwcm94eXNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMnByb3h5c2V0ZmFpbF9zaW1wbGU6CgogICBDSEFOR0VTOiBDeWd3aW4gYW5kIE1pbkdXOiB0ZXN0cyBUMTEwLCBUMTExLCBUMTEyLCBUMTIwLCBUMTIxIGFuZAogICBUMTIyIGRvIG5vdyBwYXNzIHdoZW4gc25tcGQgaXMgYnVpbHQgd2l0aCB3aW5FeHRETEwgc3VwcG9ydAogICBlbmFibGVkLgoKMjAxMC0wNy0wNiAxODo1OSAgYnZhc3NjaGUKCiAgICogIENoYW5nZUxvZywgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmksICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBNYWRlIHJlZ3Jlc3Npb24gdGVzdHMgZWFzaWVyIHRvIGRlYnVnIGJ5IGluY2x1ZGluZyBvayAvIG5vdCBvawogICBzdGF0dXMgaW4gdGhlICJpbnZva2VkIiBmaWxlLgogICBTcGVsbGluZyBmaXhlczogcmVtZWJlciAtPiByZW1lbWJlcjsgc2VwZXJhdG9yIC0+IHNlcGFyYXRvci4KCjIwMTAtMDctMDYgMTU6MDQgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgVGVzdCBUMDY1IGRvZXMgbm93IHJlYWxseSBwYXNzIG9uIE1pbkdXLgoKMjAxMC0wNy0wNSAxMDowMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGN1cmx5IGJyYWNlcyBzdWNoIHRoYXQgJ3x8JyBhbmQgJyYmJyBhcmUgZXZhbHVhdGVkIGluIHRoZQogICBjb3JyZWN0IG9yZGVyLgoKMjAxMC0wNy0wNCAxMTozNyAgYnZhc3NjaGUKCiAgICogYXBwczoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDctMDQgMTE6MzQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBGYWxsIGJhY2sgZnJvbSBSVU5GVUxMVEVTVFMgdG8gUlVOVEVTVFMgaWYgbmVpdGhlciBUQVA6Okhhcm5lc3MKICAgbm9yIFRlc3Q6Okhhcm5lc3MgaXMgYXZhaWxhYmxlLgoKMjAxMC0wNy0wNCAxMToyMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIHRlc3QgbnVtYmVyIGluIC90bXAvc25tcC10ZXN0cy0kdGVzdG51bSBpcyBzZXQKICAgdG8gc29tZXRoaW5nIG1vcmUgbWVhbmluZ2Z1bCB0aGFuIGp1c3QgIjAiLgoKMjAxMC0wNy0wNCAxMToyMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNwbGl0IGEgbG9uZyBjb21tZW50IGxpbmUuCgoyMDEwLTA3LTA0IDEwOjUyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQnVnIGZpeDogbWFkZSBzdXJlIHRoYXQgc3JjZGlyIGlzIGNvbXB1dGVkIGNvcnJlY3RseSBpZiBgZGlybmFtZQogICAkMGAgPSAuCgoyMDEwLTA3LTAyIDE2OjI3ICBidmFzc2NoZQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgU2ltcGxpZmllZCByMTkxODEgKEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aAogICBub24tZW1wdHkgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cpLgoKMjAxMC0wNy0wMSAxODoxNSAgYnZhc3NjaGUKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZpeGVkIFRMU1RDUC1lbmFibGVkIGJ1aWxkIGZvciBwbGF0Zm9ybXMgd2l0aCBub24tZW1wdHkKICAgJChFWEVFWFQpLCBpLmUuIEN5Z3dpbiBhbmQgTWluR1cuCgoyMDEwLTA3LTAxIDE4OjExICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIEZpeGVkIHlldCBhbm90aGVyIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDctMDEgMTc6NTMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBGaXhlZCB0d28gcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDctMDEgMDA6MTkgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNy0wMSAwMDoxMyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMDEgMDA6MDMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA2LTMwIDIzOjU1ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDEwLTA2LTMwIDIzOjQ4ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3NubXBkLmNvbmY6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDYtMzAgMjM6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWlzc2VkIHR3byB0b2tlbnMgaW4gdGhlIG1hbiBwZ2FlcwoKMjAxMC0wNi0zMCAyMzo0NSAgaGFyZGFrZXIKCiAgICogIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcGQuOC5kZWYsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NpcGhlclRlc3RzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU0NybCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNBZ2VudFRyYXAsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlclNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVHJhcGRVc2VyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1RzbVByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICByZW5hbWUgdGhlIGRlZlg1MDkgdG9rZW5zIHRvIHNvbWV0aGluZyBtb3JlIGZyaWVuZGx5OiBjbGllbnRDZXJ0CiAgIGFuZCBzZXJ2ZXJDZXJ0CgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB0b3AtZmlsZSBjb21tZW50IHVwZGF0ZXMKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkb24ndCBjYWxsIGNlcnRfZmluZCB3aXRoIGEgTlVMTCBhcmd1bWVudAoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFsbG93IGRlZiBjZXJ0cyB0byBiZSBzcGVjaWZpZWQgdXNpbmcgYSBmaWxlbmFtZQoKMjAxMC0wNi0zMCAyMzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBmaXggc3ludGF4IGVycm9yCgoyMDEwLTA2LTMwIDIzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgdHVybiBhIGNvdXBsZSBvZiBub24tY3JpdGljYWwgZXJyb3JzIGludG8gZGVidWcgc3RhdGVtZW50cyBwZXIKICAgZGlzY3Vzc2lvbiB3aXRoIHJzdG9yeQoKMjAxMC0wNi0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBtYWtlIHRoZSByZWdleHAgcGF0dGVybiBtYXRjaCBmb3IgdGVzdHMgdG8gcnVuIGNhc2UgaW5zZW5zaXRpdmUKCjIwMTAtMDYtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIGltcG9ydCBzdGRlcnIgZnJvbSBzeXMsIHBlciBkaXNjdXNzaW9uIG9uIC11c2VycwoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkIGJhY2sgaW4gdGhlIGRlZmF1bHQgcG9ydCBzcGVjaWZpZXIKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBlbmFibGUgcHVsbGluZyB0aGUgcHJpdmF0ZSBrZXkgb3ZlciBodHRwCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbW92ZSBVUkwgY29sbGVjdGlvbiBpbnRvIGEgc3ViIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgYWJpbGl0eSB0byBwdWxsIGEgY2VydCBmcm9tIGEgVVJMCgoyMDEwLTA2LTMwIDIyOjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFyZ3VtZW50IGJ1ZyBpbiB0aGUgaXNfdXJsIGZ1bmN0aW9uCgoyMDEwLTA2LTMwIDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0bHMuYzoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgY29kZQoKMjAxMC0wNi0zMCAyMDoyNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3RHRsc0NOU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3ZHRsc0NOU2Vzc2lvbl9zaW1wbGU6CgogICByZW5hbWUgZmlsZSBmb3IgY29uc2lzdGVuY3kKCjIwMTAtMDYtMzAgMjA6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBzbm1wdGxzIGFwcAoKMjAxMC0wNi0zMCAyMDowMCAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHJlbW92ZSBhY2NpZGVudGFsbHkgY2hlY2tlZCBpbnQgZGVidWcgY29kZQoKMjAxMC0wNi0zMCAxOTo1OSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIGRlZmluZSBPSURzIGJhc2VkIG9uIFNOTVBfVExTX1RNX0JBU0UKCjIwMTAtMDYtMzAgMTk6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgYXV0by10cmFuc2lzdGlvbiBiZXR3ZWVuIG5vdFJlYWR5L25vdEluU2VydmljZQoKMjAxMC0wNi0zMCAxOTo1NyAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBhdXRvLXRyYW5zaXN0aW9uIGJldHdlZW4gbm90UmVhZHkvbm90SW5TZXJ2aWNlOyBhZGQKICAgc25tcF9zdG9yZV9uZWVkZWQgb24gY29tbWl0CgoyMDEwLTA2LTMwIDE5OjU2ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXNlIG5ldyBmaW5nZXJwcmludCBwYXJzZS9idWlsZCBmdW5jdGlvbnM7IHJlbW92ZSBiYWQgbGVuZ3RoCiAgIGNoZWNrOyBhdXRvCiAgIHRyYW5zaXRpb24gYmV0d2VlbiBub3RSZWFkeSBhbmQgbm90SW5TZXJ2aWNlCgoyMDEwLTA2LTMwIDE5OjU1ICByc3RvcnkKCiAgICogbWlicy9UTFNUTS1NSUIudHh0OgoKICAgcmVtb3ZlIHByZS1yZmMgbWliOyBzZWUgU05NUC1UTFMtVE0tTUlCLnR4dCBpbnN0ZWFkCgoyMDEwLTA2LTMwIDE5OjU0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuaCwgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgY29uc29saWRhdGUgbXVsdGlwbGUgZmlsZXMKCjIwMTAtMDYtMzAgMTk6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYWtlIGhhc2ggdHlwZSBwYXJzZSByb3V0aW5lIHB1YmxpYzsgYWRkIHJvdXRpbmVzIHRvIGJ1aWxkL3BhcnNlCiAgIFNubXBUTFNGaW5nZXJwcmludAoKMjAxMC0wNi0zMCAxOTo1MSAgcnN0b3J5CgogICAqICBNYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdGxzLmMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgTkVXUzogc25tcHRsczogbmV3IGFwcCBmb3IgbWFuYWdpbmcgKEQpVExTIGNvbmZpZyB2aWEKICAgU05NUC1UTFMtVE0tTUlCIHRhYmxlcwoKMjAxMC0wNi0zMCAxOTo1MCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmM6CgogICBjYWxsIG5ldyBzbm1wX3N0b3JlX25lZWRlZCgpIGZ1bmN0aW9uIGFmdGVyIGEgY29tbWl0IGluIHRhYmxlcwogICB0aGF0CiAgIGhhdmUgcGVyc2lzdGVudCBzdG9yZQoKMjAxMC0wNi0zMCAxOTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgZXhwZXJpbWVudGFsIHNpbXBsZSBzdGF0ZSBtYWNoaW5lCiAgIE5FV1M6IHNubXBsaWI6IG5ldyBleHBlcmltZW50YWwgcm93IGNyZWF0aW9uIEFQSSB3aGljaCB1c2VzIGEKICAgc3RhdGUgbWFjaGluZQogICB0byB0cnkgcmVhbGx5IGhhcmQgdG8gY3JlYXRlIGEgcm93IGZyb20gYSBnaXZlbiB2YXJiaW5kIGxpc3QKCjIwMTAtMDYtMzAgMTk6NDggIHJzdG9yeQoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGQ6IG5ldyBBUEkgZm9yIGluZGljYXRpbmcgdGhhdCBwZXJzaXN0ZW50IHN0b3JlIG5lZWRzCiAgIHRvIGJlIHNhdmVkIGFmdGVyIHRoZSBjdXJyZW50IHJlcXVlc3QgZmluaXNoZXMgcHJvY2Vzc2luZwoKMjAxMC0wNi0zMCAxOTo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgYWRkIHNvbWUgbmV3IHdyYXBwZXIgbWFjcm9zCgoyMDEwLTA2LTMwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNDTlNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXJTZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNUR0bHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTZUbHNTYW5TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTdkdGxzQ05TZXNzaW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMThUbHNDTlNlc3Npb25fc2ltcGxlOgoKICAgYWRkZWQgY2hlY2tzIGZvciBjaGVja2luZyBkaXJlY3QgcGFzc2luZyBvZiBsb2NhbGhvc3QgdG8gdGhlCiAgIGV4cGVjdGVkIG5hbWUKCjIwMTAtMDYtMzAgMTU6NTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyOgoKICAgY2hlY2sgZm9yIHdpbGRjYXJkIHN1cHBvcnQKCjIwMTAtMDYtMzAgMTU6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc3VwcG9ydCBTQU4gYW5kIENOIHdpbGRjYXJkIG1hdGNoaW5nIHBlciBzcGVjCgoyMDEwLTA2LTMwIDE1OjAwICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDaXBoZXJUZXN0cywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDcmwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzQWdlbnRUcmFwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc05hbWUsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2FuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNUcmFwZFVzZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVmFycywgIAogICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY2lwaGVyVGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzYWdlbnR0cmFwdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NhbnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3RyYXBkdXNlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXgsIAogICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTAxRHRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMlRsc1VzZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExRHRsc1NlcnZlcl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJUbHNTZXJ2ZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNEdGxzU2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTNkdGxzdWRwc2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTRUbHNTYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNHRsc3RjcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxRHRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMlRsc1RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxRHRsc0FnZW50VHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMxZHRsc3VkcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJUbHNBZ2VudFRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMnRsc3RjcGFnZW50dHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFEdGxzQ3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDFkdGxzdWRwY3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJUbHNDcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MnRsc3RjcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxRHRsc0NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MWR0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJUbHNDaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTJ0bHNjaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDBUbHNJcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QyMDB0bHNpcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDBUbHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAwdGxzdGNwcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMUR0bHNQZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFEdGxzVHNtUHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFkdGxzdHNtcHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDJUbHNUc21QcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICBtb3ZlZCB0ZXN0IGZpbGVzIGFyb3VuZCBmb3IgYmV0dGVyIG5hbWluZwoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3B5IGR0bHMgdHJhbnNwb3J0IGFkZHJlc3MgdG8gdGhlIGV4cGVjdGVkIGhvc3RuYW1lCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBzZXQgdGhlIGV4cGVjdGVkIGhvc3RuYW1lIGZyb20gdGhlIHRyYW5zcG9ydCBzdHJpbmcgaWYgcG9zc2libGUKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhIGJpdCBtb3JlIGhlbHAgb3V0cHV0IGJ5IGRlZmF1bHQKCjIwMTAtMDYtMjkgMjI6MjkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgRm9sbG93LXVwIGZvciByMTkxMTY6IG1ha2Ugc3VyZSB3ZSBpbmNsdWRlIGFnZW50IGNvbmZpZwoKMjAxMC0wNi0yOSAyMjoxOCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaDoKCiAgIEFkZCBtaXNzaW5nIGNvbmZpZ19yZXF1aXJlcwoKMjAxMC0wNi0yOSAxNzozMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICByZXdvcmsgdGhlIHNubXBjbWQgbWFudWFsIHBhZ2UgdG8gc2VwYXJhdGUgb3V0IHRoZSBmbGFncyBpbnRvCiAgIHNlY3Rpb25zIGFwcHJvcHJpYXRlIGZvciB0aGVpciB1c2FnZSB0eXBlCgoyMDEwLTA2LTI5IDE2OjUxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBwb2QgZG9jcywgc29tZSBkZWZhdWx0IHZhbCBmaXhlcywgaW5mbyBvdXRwdXQgbm9ybWFsaXplZAoKMjAxMC0wNi0yOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgYWRkZWQgc3NoLmggaW5jbHVkZQoKMjAxMC0wNi0yOSAxNjoyNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICByZW9yZ2FuaXplIHRoZSBtYW51YWwgcGFnZSBhIGJpdCBmb3IgU05NUHYzIGFuZCBUTFMKCjIwMTAtMDYtMjkgMTY6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggZGVmYXVsdCB0bHMgcmVnaXN0cmF0aW9ucwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgZm9yIE5VTEwgdHJhbnNwb3J0cyBhZnRlciBhbiBvcGVuIGZhaWxzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmluZyBsb2dnaW5nIGFyb3VuZCBzbyB0aGF0IG9wZW5zc2wgZXJyb3JzIGFyZSBwcmludGVkIG9uCiAgIGZhaWx1cmVzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0c21wcmVmaXg6CgogICBmaXggc29tZSBub24taW50ZXJhY3RpdmUgaW52b2NhdGlvbiBpc3N1ZXMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZSBzb21lIGNvbW1vbiBjb2RlIGludG8gYSBjb21tb24gZnVuY3Rpb24KCjIwMTAtMDYtMjggMTk6MTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NjaXBoZXJUZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFkdGxzY2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUydGxzY2lwaGVyc19zaW1wbGU6CgogICBjaXBoZXIgc3VpdGUgc2VsZWN0aW9uIGFuZCB0ZXN0cyBmb3IgaXQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9MSUNFTlNFOgoKICAgbGljZW5zZSB1cGRhdGVzCgoyMDEwLTA2LTI4IDE5OjEyICBoYXJkYWtlcgoKICAgKiAgcHl0aG9uL1JFQURNRSwgcHl0aG9uL25ldHNubXAvY2xpZW50LnB5LCAgIAogICAgICBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgU05NUHYzIG92ZXIgVExTIHN1cHBvcnQKCjIwMTAtMDYtMjggMTk6MTIgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBiZXR0ZXIgb3V0cHV0IHNob3dpbmcgdGVzdCB0eXBlcwoKMjAxMC0wNi0yOCAwMDo1NCAgdGFuZGVycwoKICAgKiAgbWFuL21pYl9hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCAgCiAgICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL3NubXBjbWQuMS5kZWYsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IG1hbjogY2xlYW4gdXAgbWFudWFsIHBhZ2VzCiAgIChmcm9tIERlYmlhbiBwYXRjaCA1Nl9tYW5wYWdlKQoKMjAxMC0wNi0yNyAyMzoyOSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBDSEFOR0VTOiBidWlsZDogRG8gbm90IGNhbGwgdmFjbV9zdGFuZGFyZF92aWV3cygpIG9yCiAgIGluaXRfdmFjbV9jb25maWdfdG9rZW5zKCkgaWYgdGhlIGNvcnJlc3BvbmRpbmcgbW9kdWxlIHdhcyBub3QKICAgY29tcGlsZWQKICAgKGZyb20gRGViaWFuIHBhdGNoIDYxX3ZhY21fbWlzc2luZ19kZXBlbmRlbmN5X2NoZWNrKQoKMjAxMC0wNi0yNyAwMzoyMyAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IGFwcCB0YWcgY29tcGxldGlvbnMKCjIwMTAtMDYtMjcgMDA6NTYgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydCwgbG9jYWwvbmV0LXNubXAtY2VydC5jb25mOgoKICAgaGFuZGxlIGNvbmZpZyBmaWxlIHNldHRpbmcgaW50ZXJhY3RpdmUsIHRydWUvZmFsc2UgdmFsdWVzIGhhbmRsZWQKICAgaW4gY29uZmlnCgoyMDEwLTA2LTI2IDIwOjU4ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggc29tZSBidWdzIHcvIHNwYWNlcyBpbiBuYW1lcyBhbmQgYXBwIHRhZyBoZWxwCgoyMDEwLTA2LTI2IDE5OjM4ICBtYXJ6CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvUzMwMHRsc3BlcmwucGwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggdGVzdHMgdG8gdXNlIG5vbi1pbnRlcmFjdGl2ZSAtSQoKMjAxMC0wNi0yNiAxNzo0NiAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBiZXR0ZXIgaW50ZXJhY3RpdmUsID89aGVscCwgPHRhYj4gY29tcGwsIG1vcmUgaGVscCwgU0FOIGxvb3AKICAgZm9ybWF0IGFuZCB0ZXJtaW5hdGlvbiBmaXgsIHRvbGVyYXRlIHNwYWNlcyBpbiBmaWVsZHMgYW5kCiAgIGZpbGVuYW1lcywgbW9yZSBjb21wbGV0ZSBlcnJvciBvdXRwdXQsIGVtYnJ5b25pYyBpbXBvcnQgZnJvbSB1cmwKCjIwMTAtMDYtMjYgMTM6NDggIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgTW9yZSBjb21waWxlciB3YXJuaW5nIGZpeGVzLgoKMjAxMC0wNi0yNiAxMzo0NyAgYnZhc3NjaGUKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZpeGVkIHRoZSBlcnJvcnMgaW4gYWNjb25maWcuaCBhbmQgcmVnZW5lcmF0ZWQKICAgbmV0LXNubXAtY29uZmlnLmguaW4uCgoyMDEwLTA2LTI2IDEzOjQ0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSBTTVVYIE1JQiBpbXBsZW1lbnRhdGlvbi4KCjIwMTAtMDYtMjYgMDA6NDUgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2FudGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEzZHRsc3VkcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0dGxzdGNwc2FuX3NpbXBsZToKCiAgIGZpeGVzIGFuZCB0ZXN0aW5nIGZvciBjaGVja2luZyBTQU4gRE5TIG5hbWVzIGZyb20gdGhlIHNlcnZlcgoKMjAxMC0wNi0yNiAwMDo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzbmFtZXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEydGxzdGNwc2VydmVydGVzdHNfc2ltcGxlOgoKICAgZ2VuZXJpY2l6ZSB0aGUgc2VydmVyIG5hbWUgdGVzdHMKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC90c20tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtQ29uZmlndXJhdGlvblVzZVByZWZpeC5oLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdHNtcHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMWR0bHN0c21wcmVmaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDQwMnRsc3RzbXByZWZpeF9zaW1wbGU6CgogICB1c2VwcmVmaXggc2NhbGFyIHRlc3RpbmcgYW5kIHN1cHBvcnQKCjIwMTAtMDYtMjUgMjM6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHM6CgogICByZW1vdmUgZGVidWdnaW5nIGxpbmVzCgoyMDEwLTA2LTI1IDIzOjAwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzOgoKICAgcHV0IGluIG9ubHkgbWluaW1pYWwgZGVidWcgZmxhZ3MKCjIwMTAtMDYtMjUgMjM6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQxZHRsc3VkcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQydGxzdGNwY3JsX3NpbXBsZToKCiAgIGNvZGUgYW5kIHRlc3QgY2FzZXMgZm9yIENSTCBoYW5kbGluZwoKMjAxMC0wNi0yNSAxNToyNCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZToKCiAgIEFkZGVkIGEgbmV3bGluZSBhdCB0aGUgZW5kIG9mIGVhY2ggbGluZSBwcmludGVkIGJ5IHRoZSBQZXJsCiAgIGludGVycHJldGVyLgoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICByZWR1Y2UgbnVtYmVyIG9mIHJlc2VuZCBhdHRlbXB0cyBhbmQgdGltZW91dAoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICB3YXJuaW5nIGZpeGVzCgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgcmVtb3ZlIGxvZ2ljIHR5cG8gZnJvbSBwcmV2aW91cyBjb21taXQKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwdGxzaXB2Nl9zaW1wbGU6CgogICBJUHY2IGZpeGVzIGZvciBUQ1AKCjIwMTAtMDYtMjUgMTM6MDEgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZXZlcnRpbmcgMTkwOTUsIGl0IGJyZWFrcyB0ZXN0cwoKMjAxMC0wNi0yNSAwOTo0MCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFuc2xhdGU6IGZpeGVkIHByaW50aW5nIG9mIHJhbmdlcyB3aXRoIFVOU0lHTkVECiAgIHR5cGUuCgoyMDEwLTA2LTI0IDIzOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBmdW5jdGlvbiBuYW1lcyBmb3Igc3RhdCBpbmNyZWFzZXMKCjIwMTAtMDYtMjQgMjM6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IGVycm9ycyBpbiBjb21tZW50cwoKMjAxMC0wNi0yNCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb21tZW50cyBmb3IgNS40IGZvciBkdGxzCgoyMDEwLTA2LTI0IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbW1lbnRzIGZvciA1LjMuMgoKMjAxMC0wNi0yNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjbGllbnQgc2lkZSBjb25uZWN0IGNvbW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGNvdW50ZXIgYW5kIGNvbW1lbnQgaW1wcm92ZW1lbnRzCgoyMDEwLTA2LTI0IDIzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHVwZGF0ZSBjb3VudGVyIGNhbGxzIGFuZCBjb21tZW50IHRleHQKCjIwMTAtMDYtMjQgMTk6MDMgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBNb3ZlZCBMRF9MSUJSQVJZX1BBVEggc2V0dXAgZnJvbSBpbmRpdmlkdWFsIHRlc3RzIHNjcmlwdHMgdG8KICAgc2ltcGxlX1RFU1RDT05GLnNoLgoKMjAxMC0wNi0yNCAxOTowMiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgRml4ZWQgYSBjb21tZW50LgoKMjAxMC0wNi0yNCAxNzo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBTaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIGluIHIxOTA4NC4KCjIwMTAtMDYtMjQgMTc6NDcgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNi0yNCAxMjozMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9nczoKCiAgICJ0ZXN0IC1lIiBpc24ndCBwb3J0YWJsZTsgdXNlICJ0ZXN0IC14IiBpbnN0ZWFkIGZvciB0aGUgUGVybAogICBzeXN0ZW0oKQogICBjaGVjawoKMjAxMC0wNi0yMyAxMToxNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgdmFsdWUgb2YgSVAtTUlCOjppcHY2SW50ZXJmYWNlRm9yd2FyZGluZyBvbgogICBMaW51eAogICAKICAgVGhlIHZhbHVlIHdhcyAwIChub3QgZm9yd2FyZGluZykgb3IgMSAoZm9yd2FyZGluZyksIHNob3VsZCBiZSAyCiAgIGFuZCAxCiAgIGluc3RlYWQgLSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeS5mb3J3YXJkaW5nX3Y2IGlzIGJvb2xlYW4sIG5vdAogICBUcnV0aFZhbHVlLgoKMjAxMC0wNi0yMiAyMzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgc3VwcG9ydCBmb3IgY2VydFNlY05hbWUgbWFwcGluZyBmcm9tIGEgbG9jYWwgY2VydCBmaWxlIG5hbWUgYW5kIGEKICAgdGVzdCBmb3IgaXQKCjIwMTAtMDYtMjIgMjI6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbmF0aW9uIHVwZGF0ZSB0byBjbGVhbiB1cCBhbmQgaW5jbHVkZSBUTFMgcGFyYW1ldGVycwoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc3VwcG9ydCBmb3IgcGFzc2luZyBpZGVudGl0aWVzIGFuZCBmdWxsIHdvcmtpbmcgdmVyc2lvbgoKMjAxMC0wNi0yMiAyMjo0NCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TMzAwdGxzcGVybC5wbCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDB0bHN0Y3BwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAxZHRsc3BlcmwudDoKCiAgIHBlcmwgVExTL0RUTFMgdGVzdHMKCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpcnN0IHB0YWNoIG9uIFNOTVAvVExTIGNyZWF0aW5nIGEgbmV3IHNlc3Npb24gZnVuY3Rpb24KCjIwMTAtMDYtMjIgMjI6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZmlyc3Qgd29ya2luZyBzdXBwb3J0IGZvciBhIGRlbGF5ZWQgY2xvc2UoKSB0byBhdHRlbXB0IHRvIHNlbmRpbmcKICAgb3V0c3RhbmRpbmcgcGFja2V0cyBpbiB0aGUgcXVldWU7IHRoaXMgaXMgcmVxdWlyZWQgZm9yIHNubXB0cmFwCiAgIHRvIHdvcmsgYXQgYWxsIHdoZW4gc2VuZGluZyB0cmFwcyAobm90IGluZm9ybXMpIG92ZXIgRFRMUwoKMjAxMC0wNi0yMiAxOTowMyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2g6CgogICBDSEFOR0VTOiBNaW5HVzogdGVzdHMgVDA1OXRyYXBoYW5kbGVfc2ltcGxlIGFuZAogICBUMDY1YWdlbnRleHRlbmRfc2ltcGxlIGRvIG5vdyBwYXNzLgoKMjAxMC0wNi0yMiAxOTowMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgVGhlIHdpZHRoIGFyZ3VtZW50IGZvciAlLipkIG11c3QgaGF2ZSB0eXBlIGludCwgbm90IHNpemVfdC4gVGhpcwogICBidWcgd2FzIGludHJvZHVjZWQgaW4gcjE5MDE0LgoKMjAxMC0wNi0yMiAxODo1NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIE5FV1M6IE1pbkdXOiB0aGUgc25tcGQuY29uZiBrZXl3b3JkIGV4dGVuZCBkb2VzIG5vdyB3b3JrLgogICBORVdTOiBNaW5HVzogdGhlIHNubXB0cmFwZC5jb25mIGtleXdvcmQgdHJhcGhhbmRsZSBkb2VzIG5vdyB3b3JrLgogICBDSEFOR0VTOiBNaW5HVzogcnVuX3NoZWxsX2NvbW1hbmQoKSB3aXRoIGVpdGhlciBpbnB1dCBvciBvdXRwdXQKICAgKGJ1dCBub3QgYm90aCkgZG9lcyBub3cgd29yay4KICAgVGhpcyBkaWQgbm90IHdvcmsgdW50aWwgbm93IGJlY2F1c2Ugb24gTWluR1cgbWtzdGVtcCgpIGdlbmVyYXRlcwogICBhIE1pbkdXLXN0eWxlIHBhdGggKC90bXAvLi4uKSB3aGlsZSBzeXN0ZW0oKSBpbnZva2VzIGNtZC5leGUgYW5kCiAgIGhlbmNlIGV4cGVjdHMgYSBXaW5kb3dzLXN0eWxlIHBhdGggKEM6XC4uLikuCgoyMDEwLTA2LTIyIDE3OjM5ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQWxzbyByZXBvcnQgdGhlIHBvcnQgc3BlY2lmaWNhdGlvbiBpZiBbICRTTk1QX1ZFUkJPU0UgLWd0IDAgXS4KCjIwMTAtMDYtMjIgMTc6MzggIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBSZXBsYWNlZCBhbiBleHBsaWNpdCB0ZXN0IGZvciBNaW5HVyBieSBhIHRlc3Qgb24gSEFWRV9TSUdIVVAuCgoyMDEwLTA2LTIyIDE3OjM2ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3IgU0lHSFVQLgoKMjAxMC0wNi0yMiAxNzozNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFJlcG9ydCB3aGljaCB0ZXN0cyBmYWlsZWQsIGlmIGFueS4KCjIwMTAtMDYtMjIgMDg6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRml4ZWQgYW4gZXJyb3IgaW4gYSBjb21tZW50IGJsb2NrLgoKMjAxMC0wNi0yMSAxOToyNiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIFJlYXJyYW5nZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoaXMgdGVzdCBzdWNoIHRoYXQgaXQgaXMgbm8KICAgbG9uZ2VyIG5lY2Vzc2FyeQogICB0byBpbnZva2Ugc2ltcGxlX2V2YWxfdG9vbHMuc2ggd2hlbiB0aGlzIHNjcmlwdCBpcyBpbnZva2VkIGFzIGEKICAgdHJhcCBoYW5kbGVyCiAgIGJ5IHNubXB0cmFwZC4KCjIwMTAtMDYtMjEgMDg6MDEgIGR0czEyCgogICAqIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmM6CgogICBFbnN1cmUgdGhhdCBmZHNldCBzdHJ1Y3R1cmUgaXMgcmVzaXplZCBzdWZmaWNpZW50bHkKICAgdG8gYWNjb21vZGF0ZSB0aGUgc3BlY2lmaWVkIHNvY2tldCBJRC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBTaGl5YWxlaS4KCjIwMTAtMDYtMjAgMTk6MzIgIGR0czEyCgogICAqICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9wa2NzLmMsICAgCiAgICAgIHNubXBsaWIvc25wcmludGYuYzoKCiAgIEF2b2lkIGR1cGxpY2F0ZSAodW51c2VkKSBzeW1ib2xzLgoKMjAxMC0wNi0yMCAxOTozMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX3NpbXBsZToKCiAgIENvbW1lbnRlZCBvdXQgZGVidWcgY29kZS4KCjIwMTAtMDYtMjAgMTk6MzAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIFJlc3RvcmVkIHN1bW1hcnkgc3VjY2Vzcy9mYWlsdXJlIGNvdW50IHJlcG9ydGluZy4KICAgQWxzbywgbW92ZWQga2lsbC5leGUgdGVzdCBiYWNrIHRvIFJVTlRFU1RTLgoKMjAxMC0wNi0yMCAxOToyOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IGFkZCB0aGUgdGVzdCBuYW1lIHRvIHRoZSBzdGFydCBvZiB0aGUgZmlsZQogICAiaW52b2tlZCIuCgoyMDEwLTA2LTIwIDE5OjI3ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3Rpbmc6IHNraXAgdGhlIHRlc3RzIHRoYXQgcmVxdWlyZSBTSUdIVVAgc2luY2UKICAgTWluR1cgZG9lcyBub3Qgc3VwcG9ydCBTSUdIVVAuCgoyMDEwLTA2LTIwIDE1OjE5ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgY29uZmlndXJlIHRlc3QgdGhhdCBkZXRlY3RzIHdoZXRoZXIgb3Igbm90IFBlcmwncwogICBzeXN0ZW0oKSBmdW5jdGlvbgogICBpbnZva2VzIGEgUE9TSVggc2hlbGwuICJtYWtlIHRlc3QiIGRvZXMgbm93IGZhbGwgYmFjayB0byBSVU5URVNUUwogICBpZiBub3QuCgoyMDEwLTA2LTIwIDE1OjE2ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFsaWFzRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgQnVpbGRzIGFnYWluIG9uIE1pbkdXIC0tIGFkZGVkICNpbmNsdWRlIDxuZXQtc25tcC90eXBlcy5oPiB3aGVyZQogICBuZWNlc3NhcnkuCiAgIE5vdGU6IGFsdGhvdWdoIDxuZXQtc25tcC90eXBlcy5oPiBpcyBpbmNsdWRlZCBpbmRpcmVjdGx5IGZyb20gdGhlCiAgICogICAgICp0cmFuc3BvcnQuaCAgICBoZWFkZXIgZmlsZXMsIHRoZXNlICNpbmNsdWRlIHN0YXRlbWVudHMgYXJlCiAgICAgIG5lY2Vzc2FyeSBiZWNhdXNlIG9mICAgIGEgcGVza3kgICAgY2lyY3VsYXIgZGVwZW5kZW5jZSBiZXR3ZWVuCiAgICAgIDxuZXQtc25tcC90eXBlcy5oPiBhbmQgICAgPG5ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaD4uIAogICAgICAyMDEwLTA2LTIwIDE1OjEyICBidmFzc2NoZQoKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgQ0hBTkdFUzogTWluR1c6IHJlZnVzZSB0byBydW4gdGhlIHJlZ3Jlc3Npb24gdGVzdHMgaWYga2lsbC5leGUKICAgY2Fubm90IGJlIGZvdW5kLgoKMjAxMC0wNi0yMCAxNToxMSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIFNob3J0ZW5lZCB0aGUgc3JjZGlyIHBhdGggYnkgbWFraW5nIHN1cmUgdGhhdCBpdCBkb2VzIG5vdCBjb250YWluCiAgIC8uLgoKMjAxMC0wNi0xOSAxODozMCAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBBZGRlZCBzdXBwb3J0IGZvciBydW5uaW5nIFJVTkZVTExURVNUUyB3aXRoIFRlc3Q6Okhhcm5lc3MgaW4KICAgYW5vdGhlciBkaXJlY3RvcnkgdGhhbiB0aGUgc291cmNlIGRpcmVjdG9yeS4KCjIwMTAtMDYtMTkgMTY6NDEgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgY29tcGxldGUgcmV3cml0ZSBvZiBwYXJhbXMgdG8gdXNlIHRhYmxlX2RhdGFzZXQgaW5zdGVhZCBvZgogICBjcmVhdGUtZGF0YXNldAoKMjAxMC0wNi0xOSAxNjo0MSAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICB1c2UgdGV4dCBmb3IgaGFzaCB0eXBlIGluIHBlcnNpc3RlbnQgc3RvcmUKCjIwMTAtMDYtMTkgMTY6NDAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzCgoyMDEwLTA2LTE5IDE2OjQwICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggbWlzc2luZyBzcGVjaWZpZXIgaW4gZGVidWcKCjIwMTAtMDYtMTkgMTY6MzkgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1c2UgZGVmaW5lIGluc3RlYWQgb2YgY29uc3RhbnQ7IGZpeCBjaGVjayBmb3Igcm93cyB0byBzYXZlCgoyMDEwLTA2LTE5IDE2OjM5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIHJlbW92ZS9maW5kIGZ1bmN0aW9uIGZvciBtYXBzL2FkZHJzL3BhcmFtczsgcmVuYW1lIHBhcmFtcwogICB0YWctPm5hbWU7CiAgIGRlc3Ryb3kgLT4gZnJlZTsgZ3JvdXAgcmVjZW50IHRydXN0IGZ1bmN0aW9ucyB0b2dldGhlciBpbiBzcmM7CiAgIGRvbid0IHN0b3JlCiAgIHBhcmFtcyBmcCBhcyBiaW5hcnk7IGhhbmQgdGV4dCBhcmdzIGZvciBoYXNoIHR5cGUgKGUuZyAtLXNoYTEpCgoyMDEwLTA2LTE4IDE1OjM1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBjb3JyZWN0ZWQgZXJyb3IgaGFuZGxpbmcgaW4gbWliSUkvYXQuCgoyMDEwLTA2LTE4IDA3OjIzICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDYtMTggMDE6NDIgIG1hZ2ZyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIERvIG5vdCBkZWZpbmUgcmV0IHR3aWNlIHdoZW4gTkVUU05NUF9VU0VfSU5URVJOQUxfQ1JZUFRPIGlzIHNldC4KCjIwMTAtMDYtMTggMDE6MzkgIG1hZ2ZyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBDb3JyZWN0ZWQgdHlwby4KCjIwMTAtMDYtMTggMDA6MzEgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBiZXR0ZXIgTkVXUyBhbmQgQ0hBTkdFUyBmaWxlcwoKMjAxMC0wNi0xNyAyMDozOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDYtMTcgMjA6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNi0xNyAxODo1OSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODo1NSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICByZS1lbmFibGUgc29tZSBjb21tYW5kcwoKMjAxMC0wNi0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgZm9yZ290IG1pc3NpbmcgcXVvdGVzIGluIFNFVCBvdXRwdXQKCjIwMTAtMDYtMTcgMTc6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICB0bHMgdGVzdGluZyBjbGVhbnVwCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBmaXhlcyBmb3IgYWRkcmVzcyBwcmludGluZzsgbW9yZSB0byBjb21lCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9zdGx5IHByb3Blcmx5IHNldCByZW1vdGUvbG9jYWwgdHJhbnNwb3J0IHBhcmFtZXRlcnMKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMWR0bHN1ZHBhZ2VudHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMydGxzdGNwYWdlbnR0cmFwdGVzdHNfc2ltcGxlOgoKICAgdGVzdHMgZm9yIGFnZW50cyBzZW5kaW5nIG9mIHRyYXBzIG92ZXIgKEQpVExTCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZToKCiAgIG1vdmUgZXhwb3J0IHN0YXRlbWVudHMgdG8gdGhlIHN1cHBvcnQgZmlsZSBmb3Igc2ltcGxpY2l0eQoKMjAxMC0wNi0xNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHRscyBib290c3RyYXBwaW5nIHRvIHBvc3RfcHJlbWliIHNvIG90aGVyIGNvbmZpZyB0b2tlbnMgY2FuCiAgIHVzZSB0aGUgY2VydCBsb2FkaW5nIHJlc3VsdHMKCjIwMTAtMDYtMTcgMTc6NDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBhZGRlZCBzbm1wX2VudW0gdGVzdHMgcHVsbGVkIGZyb20gdGhlIG1haW4oKSB0ZXN0IGF0IHRoZSBib3R0b20KICAgb2YgdGhlIG9yaWdpbmFsIC5jIGZpbGUKCjIwMTAtMDYtMTcgMTY6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRWxpbWluYXRlICJkaWZmZXIgaW4gc2lnbmVkbmVzcyIgd2FybmluZwoKMjAxMC0wNi0xNyAwMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICByZXZlcnQgVURQIGNoYW5nZXMgZnJvbSByMTg5ODQgc2luY2UgaXQgYnJva2UgdGhlIFVEUCB0cmFuc3BvcnQ7CiAgIHRoZSBzdHJ1Y3QgcHJvYmFibHkgbmVlZHMgdG8gbWF0Y2ggYW5vdGhlciBzdHJ1Y3Qgc29tZXdoZXJlIGVsc2UKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYSBuZXcgS0VZV09SRCBvdXRwdXQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcwoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgdXNlIGNvbmZpZ19hbmRfb3BlbiBmb3Igb3BlbmluZyB0aGUgdHJhbnNwb3J0CgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGV4dHJhIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDEwLTA2LTE2IDIyOjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBleHBsaWNpdGx5IGRlY2xhcmUgdHJ1c3QgY2VydGlmaWNhdGVzIHRvIHRyYW5zcG9ydAoKMjAxMC0wNi0xNiAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNsZWFudXAgc29tZSBsb3N0IG1lbW9yeSBvbiBjbG9zaW5nCgoyMDEwLTA2LTE2IDIxOjU2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHR5cG9zCgoyMDEwLTA2LTE2IDIxOjM0ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIHdhcm5pbmdzIGZyb20KICAgYWdlbnQgY29kZSBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDIwOjE2ICBkdHMxMgoKICAgKiAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgd2FybmluZ3MgZnJvbQogICBsaWJyYXJ5IGNvZGUgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxOTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgb2xkZXIgbm8tbG9uZ2VyLW5lZWRlZC1kdXBsaWNhdGUtY29uZmlnIGVudHJpZXMKCjIwMTAtMDYtMTYgMTk6MTQgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgRml4IHByb2Nlc3Npbmcgb2YgdmlldyBtYXNrcyAobWlzcGxhY2VkIHBhcmVudGhlc2VzKQoKMjAxMC0wNi0xNiAxODo0NSAgZHRzMTIKCiAgICogIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYzoKCiAgIEVsaW1pbmF0ZSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiBmcm9tIGFwcCBjb2RlCiAgIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTc6MjIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHM6CgogICBjaGVjayBmb3IgaW5mb3JtcyBzZW50IG92ZXIgdGxzIHRyYW5zcG9ydHMKCjIwMTAtMDYtMTYgMTc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBvdGhlciB2YWx1c2UgZnJvbSBwYXJlbnQgdGxzYmFzZSBkYXRhCgoyMDEwLTA2LTE2IDE3OjIxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGU6CgogICBhZGRlZCBiYXNpYyB0cmFwIHNlbmRpbmcgYW5kIHJlY2VpdmluZyB0ZXN0cwoKMjAxMC0wNi0xNiAxNzoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgdGVtcCBmaWxlIHRvdWNoZXMKCjIwMTAtMDYtMTYgMTc6MjAgIGhhcmRha2VyCgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGRlZCBhIG5ldyBmdW5jdGlvbiBhbmQgdHJhbnNwb3J0IGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIGZfb3BlbgogICBjYWxsIGhhcyBiZWVuIGNhbGxlZCB5ZXQKCjIwMTAtMDYtMTYgMTc6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdW51c2VkIHZhciB3YXJuaW5nIGNsZWFudXAKCjIwMTAtMDYtMTYgMTc6MTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWRkZWQgdHJ1c3RDZXJ0IGNvbmZpZ3VyYXRpb24gdG9rZW4KCjIwMTAtMDYtMTYgMTc6MTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIG1pbm9yIHR3ZWFrcyBmb3IgdGVzdGluZyBjbGFyaXR5CgoyMDEwLTA2LTE2IDE3OjE4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlOgoKICAgbW92ZWQgY29tcGxleCAoRClUTFMgdG8gYSBzZXBhcmF0ZSBzZWN0aW9uIGFuZCBtYWRlIHRoZSB0cmFuc3BvcnQKICAgdGVzdHMgb25seSB0ZXN0IG1pbmltYWwgc3VwcG9ydAoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZCBtZWNoYW5pc21zIGZvciBzcGVjaWZ5aW5nIGFuZCBleHBlY3RpbmcgdGhlIGhvc3RuYW1lIG9mIHRoZQogICBmYXIgc2lkZQoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIHRlc3RzIGZvciB2ZXJpZnlpbmcgc2VydmVyIGNlcnRpZmljYXRlIGNoZWNrIGZhaWx1cmVzCgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGU6CgogICB0ZXN0aW5nIGZvciBjaGVja2luZyBjbGllbnQgc2lkZSB2ZXJpZmljYXRpb24gb2Ygc2VydmVyCiAgIGNlcnRpZmljYXRlcwoKMjAxMC0wNi0xNiAxNzoxNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBzZXR1cCBmb3IgYSBob3N0bmFtZSBjb25maWcgb3B0aW9uCgoyMDEwLTA2LTE2IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNldHVwIGZvciBhIGhvc3RuYW1lIGNvbmZpZyBvcHRpb24KCjIwMTAtMDYtMTYgMTc6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGVjayB0byBtYWtlIHN1ZXIgc3NsIHBvaW50ZXIgaGFzIGJlZW4gY3JlYXRlZCB2aWEgZl9vcGVuIGNhbGwKCjIwMTAtMDYtMTYgMTU6MDIgIGR0czEyCgogICAqIGFnZW50L3NubXBfcGVybC5oLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGVjbGFyZSAnc2h1dGRvd25fcGVybCcgcHJvcGVybHkuCgoyMDEwLTA2LTE2IDE0OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIEVsaW1pbmF0ZSAic2lnbmVkIGFuZCB1bnNpZ25lZCB0eXBlIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iCiAgIHdhcm5pbmdzIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTQ6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIEVsaW1pbmF0ZSAidW51c2VkIHZhcmlhYmxlIiB3YXJuaW5nCgoyMDEwLTA2LTE2IDE0OjIyICBkdHMxMgoKICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgRWxpbWluYXRlIHZhcmlvdXMgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTE2IDEzOjEzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhcHBzL3NubXB2YWNtLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgc2lnbmVkLXZzLXVuc2lnbmVkIHdhcm5pbmdzIGZyb20gbnVtZXJpYyBzY2FuZgogICBwcm9jZXNzaW5nIFstcGVkYW50aWNdCgoyMDEwLTA2LTE2IDAzOjI4ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdGhlIGdyZWF0IHVuLW5hbWVkIGNvbnRhaW5lciBodW50CgoyMDEwLTA2LTE2IDAzOjI3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBzaGFyZSBjYWNoZSBiZXR3ZWVuIHRhYmxlIGFuZCBjb3VudCBzY2FsYXI7IHdoZW4gcmVhZGluZyBjb25maWcsCiAgIGFkZCB0bwogICBsaWJyYXJ5IGNvbnRhaW5lcnMgZm9yIGFjdGl2ZSByb3dzLCB0YWJsZSBjb250YWluZXJzIGZvciBpbmFjdGl2ZQogICByb3dzOwogICB1c2VyIGNlcnRfdXRpbCBhcGlzIGluc3RlYWQgb2YgZGlyZWN0IGNvbnRhaW5lciBtYW5pcHVsYXRpb247CiAgIHdoZW4KICAgc2F2aW5nIGluYWN0aXZlIG1hcCByb3dzLCBza2lwIGFsbCBidXQgbm9uVm9sYXRpbGUKCjIwMTAtMDYtMTYgMDM6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGRlYnVnIHRva2VuIHR5cG8KCjIwMTAtMDYtMTYgMDM6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYXBpIGZvciBhZGRpbmcgZW50cmllcyB0byB0bHRzbSBhZGRyLCBwYXJhbXMgYW5kIGNlcnQgbWFwCiAgIGNvbnRhaW5lcnM7CiAgIHJlZ2lzdGVyIHNlIHNsaXN0IHBhaXIgZWFybGllciBzbyB0aGV5IGFyZSBhdmFpbGFibGUgZHVyaW5nCiAgIGNvbmZpZyBwYXJzaW5nOwogICBtYWtlIHN1cmUgY29uZmlnIHN0cmluZ3MgYXJlIG51bGwgdGVybWluYXRlZAoKMjAxMC0wNi0xNSAyMTo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgU3VwcHJlc3Mgd2FybmluZ3M6CiAgICdzdHJ1Y3Qgbmxtc2doZHIgZGVmaW5lZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QnIGFuZAogICAnZnVuY3Rpb24gX2xvYWRfdjYgZGVjbGFyZWQgYnV0IG5ldmVyIGRlZmluZWQnCgoyMDEwLTA2LTE1IDIxOjMwICBkdHMxMgoKICAgKiAgYWdlbnQva2VybmVsLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9wa2NzLmMsIHNubXBsaWIvc25wcmludGYuYzoKCiAgIEVsaW1pbmF0ZSAiZW1wdHkgdHJhbnNsYXRpb24gdW5pdCIgd2FybmluZ3MgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTUgMDc6MDcgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwM2NvcHlfbndvcmRfY2xpYi5jOgoKICAgQWRkIHRlc3Qgb2YgY29weV9ud29yZAoKMjAxMC0wNi0xNCAyMTozMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIEVsaW1pbmF0ZSAib3ZlcmZsb3cgaW4gaW1wbGljaXQgY29uc3RhbnQgY29udmVyc2lvbiIgd2FybmluZ3MKICAgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTQgMTU6NTEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBFbGltaW5hdGUgInN0cmluZyBsZW5ndGggZ3JlYXRlciB0aGFuIDUwOSIgd2FybmluZ3MgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTQgMTU6MTkgIGR0czEyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgRWxpbWluYXRlICJpbml0aWFsaXplciBlbGVtZW50IGlzIG5vdCBjb21wdXRhYmxlIiB3YXJuaW5ncwogICBbLXBlZGFudGljXQoKMjAxMC0wNi0xNCAwNToyNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSBjb3VudCBoYW5kbGVycyB0byBjb3VudCBub24tYWN0aXZlIHJvd3MgdG9vCgoyMDEwLTA2LTE0IDA1OjEyICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgb25seSB0d2VhayBzdG9yYWdlVHlwZSBmb3IgYWN0aXZlIHJvd3M7IHJlc2V0IGVudHJ5IGZsYWdzIHdoZW4KICAgcmVtb3ZpbmcgZnJvbQogICBjZXJ0X3V0aWwgbWFwczsgd2hlbiBjcmVhdGVpbmcgcm93cyBmcm9tIGNlcnRfdXRpbCBtYXBzLCBzZXQKICAgc3RyYWdldFR5cGUgdG8KICAgdm9sYXRpbGUgaWYgbm9uVm9sYXRpbGUgZmxhZyBub3Qgc2V0OyBkb250IGZyZWUgY2FjaGUgaW4KICAgY2FjaGVfbG9hZCBvbiBlcnIKCjIwMTAtMDYtMTQgMDU6MTAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgbW92ZSB0bHN0bUFkZHIgdGFibGUgY29uZmlnIHBhcnNpbmcgdG8gY2VydF91dGlsOyBhZGQgY2FjaGUgdG8KICAgbWVyZ2UgY2VydF91dGlsCiAgIGFkZHJzIChhY3RpdmUpIGFuZCBub24tYWN0aXZlIHJvd3M7CgoyMDEwLTA2LTE0IDA1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIG5vblZvbGF0aWxlIGZsYWcgdG8gdGxzdG1BZGRyIHRhYmxlOyBzZXQgY29udGFpbmVyIG5hbWU7IHNraXAKICAgJzB4JyBpbiBmcAoKMjAxMC0wNi0xNCAwNTowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hhbmdlIExPR19FUlIgdG8gTE9HX0lORk8gZm9yIG5vbi1lcnJvciBsb2cgbXNnCgoyMDEwLTA2LTEzIDIxOjAyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbQogICBNZkQtYmFzZWQgTUlCIG1vZHVsZSBjb2RlLCBhbmQgTWZEIHRlbXBsYXRlIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEyIDIxOjMzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tIChub24tTWZEKQogICBNSUIgbW9kdWxlIGNvZGUuIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEyIDEwOjI2ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbSBsaWJyYXJ5LAogICBhcHBzIGFuZCBhZ2VudCBmcmFtZXdvcmsraGVscGVycyBjb2RlLiBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMCAyMDowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIGxvb2t1cCBjZXJ0IGtleXMgZm9yIHRscyBkb21haW5zOyB1c2UgU0VDX01PREVMIGRlZmluZSBpbnN0ZWFkIG9mCiAgIGhhcmRjb2RlZAogICBjb25zdGFudDsgYWRkIFNFQ19NT0RFTF9UU00gdG8gYWxsb3dlZCBzZWMgbW9kZWxzIGZvciBtcE1vZGVsCiAgIFNOTVBfVkVSU0lPTl8zCgoyMDEwLTA2LTEwIDIwOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgZGVmYXVsdCB0byByZWFkT25seS9hY3RpdmUgZm9yIGJhZCBjb25maWcKCjIwMTAtMDYtMTAgMjA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFkZCBkZWJ1Zzsgc3dpdGNoIHRvIFNFQ19NT0RFTF9UU00gYW5kIHdhcm4gaWYgb3RoZXIgc2VjbW9kZSBzZXQsCiAgIGluc3RlYWQKICAgb2Ygc2ltcGx5IGxvZ2dpbmcgdGhhdCBpdCB3b24ndCB3b3JrCgoyMDEwLTA2LTEwIDE5OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjaGVjayBwdHJzIGJlZm9yZSBkZXJlZmVyZW5jZQoKMjAxMC0wNi0xMCAxOTo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgc25tcFRsc3RtQWRkclRhYmxlIGRhdGEgbWFuYWdlbWVudCB0byBjZXJ0X3V0aWw7IGltcGxlbWVudAogICBUQVJHRVRfQUREUgogICBhbmQgVEFSR0VUX1BBUkFNUyBsb29rdXAgaW4gY2VydCBBUEkKCjIwMTAtMDYtMTAgMTk6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1cGRhdGUgc2VjIG1vZGVsIGRlZmluZSBtaXNzZWQgaW4gZWFybGllciBjaGVja2luCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgY29uZmlnIHRyYXBzZXNzIHRyYW5zcG9ydHMgb24gY3JlYXRpb247IHNpbXBsaWZ5IGlmZGVmcyBmb3IKICAgRElTQUJMRV9TTk1QVjEKCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcGtzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhdXRvIHN3aXRjaCB0byB2MyBmb3IgKGQpdGxzIHNlc3Npb25zIGluc3RlYWQgb2YgbG9nZ2luZyB0aGF0CiAgIG90aGVycyB3b250CiAgIHdvcms7IGRlZmluZSBUU00gc2VjIG1vZGVsIHdpdGggb3RoZXIgc2VjIG1vZGVsczsgY29uc2lzdGVudGx5CiAgIHVzZQogICBTTk1QX1NFQ19NT0RFTF8qIGluIHRoZSBjb2RlLCB1c2luZyAjZGVmaW5lcyBmb3IgYmFja3dhcmRzCiAgIGNvbXBhdGliaWxpdHkKICAgdy8qX1NFQ1VSSVRZX01PREVMCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2VydFRvVFNOOiBtb3ZlIG1pYiByZWxhdGVkIHBlcnNpc3RlbmNlIGJhY2sgaW50byBtaWIgbW9kdWxlOwogICBjZXJ0X3V0aWw6IGFkZCB0bHN0bVBhcmFtcyBwZXJzaXN0ZW5jZTsgdXNlIHNsaXN0IGZvciBjZXJ0IG1hcAogICB0eXBlIG5hbWUKICAgbWFwcGluZzsKCjIwMTAtMDYtMTAgMTk6NDUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcgKGNvbnN0KQoKMjAxMC0wNi0xMCAwNDo1OCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQWRkIG1pc3NpbmcgaW5kZW50YXRpb24gb2YgYSBkby13aGlsZSBsb29wIHRvIG1ha2UgdGhlIGNvZGUKICAgcmVhZGFibGUuCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgY29tbWVudCBvdXQga2V5VXNhZ2Ugc28gcHJvcGVyIHNlbGYtc2lnbmVkIGNlcnRzIGFyZSBnZW5lcmF0ZWQKCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc29saWRpZnkgY2VydGlmaWNhdGUgYWNjZXB0YW5jZSBmb3IgdGhlIGNsaWVudCBzaWRlCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGFycmF5IHR5cG8KCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBsb2cgb3BlbnNzbCBlcnJvcnMgb24gYWNjZXB0IGZhaWx1cmUKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlZ2lzdGVyIGRlZmF1bHQgcG9ydHMgZm9yIHRscy9kdGxzCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZG8gcHJvcGVyIFNUT1JFIGxvYWRpbmcgb2YgdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMgcmF0aGVyIHRoYW4gZmlsZQogICBiYXNlZCBsb2FkaW5nCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGRlZCB0d28gbmV3IEFQSXM6IG5ldHNubXBfY2VydF90cnVzdCBhbmQgbmV0c25tcF9jZXJ0X3RydXN0X2NhCgoyMDEwLTA2LTA5IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkZWQgc3RyYWlnaHQgJ3RscycgdHJhbnNwb3J0IG5hbWUKCjIwMTAtMDYtMDkgMjI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYWRkZWQgc3RyYWlnaHQgJ2R0bHMnIHRyYW5zcG9ydCBuYW1lCgoyMDEwLTA2LTA4IDIxOjA1ICBtYWdmcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgYWdlbnRfcmVhZF9jb25maWcuaCBpbiA1LjYgYXMgd2VsbC4gSXQgZGlzYXBwZWFyZWQgaW4KICAgcjE4ODQzLgoKMjAxMC0wNi0wOCAwOToyNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYzoKCiAgIFJlbW92ZSAob3IgYWN0aXZhdGUpIHVudXNlZCB2YXJpYWJsZXMuCiAgIEZpeCBtaXNuYW1lZCBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCjIwMTAtMDYtMDggMDc6MTEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgQVBJIGNoYW5nZXMgZm9yIHByZWxpbWluYXJ5IEhBTF9iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBVQ0QgZGlzawogICBtb2R1bGUuCiAgIChPbWl0dGVkIGZyb20gcmV2aXNpb24gMTg5MzIgY2hlY2tpbikKCjIwMTAtMDYtMDggMDQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBtYWtlZmlsZSBmb3IgbW92ZWQgaGVscGVyIGhlYWRlcnMKCjIwMTAtMDYtMDcgMjA6MTggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFJldmVydGluZyByZXYuIDE3NjE2LCB0aGUgbmVjZXNzYXJ5IGNoZWNrIGlzIGFscmVhZHkgaW4gcmV2LgogICAxNzQxNS4KCjIwMTAtMDYtMDYgMDM6NDUgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGF0aHM6CgogICBDSEFOR0VTOiBidWlsZGluZzogSW4gY2FzZSBleGVjX3ByZWZpeCBpcyB1bnNldCB0aGVuIHNldCBpdCB0bwogICAnJHtwcmVmaXh9JyBpbiBvcmRlciB0byBwaWNrIHVwIG92ZXJyaWRlcyBvZiAkcHJlZml4IGluIG1ha2UKICAgaW5zdGFsbC4KCjIwMTAtMDYtMDQgMDQ6MDYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBkbyBhIGJldHRlciBqb2Igb2YgdmVyaWZ5aW5nIGZpbmdlcnByaW50cyBvZiByZW1vdGUgc2VydmVycwogICBwdWxsaW5nIGZpbmdlcnByaW50cyBmcm9tIGEgbnVtYmVyIG9mIHBvc3NpYmxlIHBsYWNlcwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIGdvIGFoZWFkIGFuZCBsb2cgb3V0cHV0IGZpbGUgZm9yIGVhc2llciBkZWJ1Z2dpbmcgaW4gZXJyb3JzCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCB0eXBvCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICByZW1vdmUgY29tbWVudCBhYm91dCByYW5kb20gYmVpbmcgaW5hZGVxdWF0ZTsgd2UncmUgZG9pbmcgdGhlCiAgIGJlc3Qgd2UgY2FuIGJhc2VkIG9uIHdoYXQgd2UgaGF2ZQoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgYW5vdGhlciB1c2VyIGZvciB0ZXN0aW5nIHNubXBhcHAgZGVmYXVsdCBjZXJ0aWZpY2F0ZQoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBydW4gYSBkZWZhdWx0IHRlc3Qgd2l0aG91dCBhIGxvY2FsIGtleSB0byBlbnN1cmUgdGhlIHNubXBhcHAgdHlwZQogICBpcyBwaWNrZWQgdXAKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYSBzcGVjaWFsIGNhc2UgZm9yIHRoZSBsb2NhbCBpZGVudGl0eSBhbmQgcHVsbCBpdCBmcm9tIGEKICAgZmlsZW5hbWUgb2YgdGhlIGluaXRfc25tcCgpIHJlZ2lzdGVyZWQgdHlwZSBuYW1lCgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgZG9jIHVwZGF0ZQoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTA1dW5peC50OgoKICAgdW5peCBzb2NrZXQgdGVzdAoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwM3VkcDYudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTA0dGNwNi50OgoKICAgaXB2NiB0ZXN0cwoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIG1lbnRpb24gdGVzdCBuYW1lIGlzIElQdjQKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBjaGVjayB0aGF0IHRyYW5zcG9ydCB3YXMgY29uZmlndXJlZAoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGFkZCBzdXBwb3J0IGZvciBuZXQtc25tcC1jb25maWcuaCBjaGVja3MKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL05ldFNOTVBUZXN0VHJhbnNwb3J0LnBtLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBzb21lIGJhc2ljIHRyYW5zcG9ydCBjaGVja2luZyBmb3IgcGVybDogdWRwIGFuZCB0Y3AKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwsIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDAwMWJhc2ljLnQ6CgogICBiYXNpYyB0ZXN0cyBmb3IgcGVybAoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGluZnJhc3RydWN0dXJlIG1vZHVsZSBmb3IgdGVzdGluZyBwZXJsIHN1cHBvcnQKCjIwMTAtMDYtMDMgMTU6NTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgUG9pbnQgTElCe0NVUlJFTlQsQUdFLFJFVklTSU9OfSBkb2N1bWVudGF0aW9uIHRvIHRoZSBjb3JyZWN0CiAgIGZpbGUuCiAgIFdhcm4gYWJvdXQgJ21ha2VkZXBlbmQnIHBpY2tpbmcgdXAgdGVzdGluZyBtb2R1bGUgY29kZS4KICAgRW1waGFzaXMgdXBkYXRlIG9mICdkb3dubG9hZC5odG1sJyBwYWdlCiAgIE1lbnRpb24gdXBkYXRlIG9mIE9mZmljaWFsIFBhdGNoZXMKICAgU3VwcHJlc3MgYnJva2VuIGNvbW1hbmRzCgoyMDEwLTA2LTAzIDE1OjE2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBQcmVsaW1pbmFyeSBIQUxfYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgVUNEIGRpc2sgbW9kdWxlLgogICBFbnN1cmVzIGNvbnNpc3RlbnQgcmVwb3J0aW5nIGJldHdlZW4gVUNEIGFuZCBIb3N0UmVzIEZTeXMgdXNhZ2UKICAgYW5kIGV4dGVuZHMgJ3NraXBORlNJbkhvc3RSZXNvdXJjZXMnIGNvbmZpZyB0byBVQ0QgZGlzayBzdGF0cy4KCjIwMTAtMDYtMDMgMTU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jOgoKICAgRml4IGJyb2tlbiBzaXplIGNhbGN1bGF0aW9ucy4KICAgU3VwcG9ydCA2NC1iaXQgc2l6ZS91c2FnZSB2YWx1ZXMuCgoyMDEwLTA2LTAyIDE0OjUyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSAtLXdpdGgtY2EgaW5zdGVhZCBvZiAtLWNhCgoyMDEwLTA2LTAyIDE0OjUxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSB0aGUgbmV3IC1icmllZiBvcHRpb24gZm9yIGZpbmdlcnByaW50IGNhcHR1cmluZwoKMjAxMC0wNi0wMiAxNDo0MCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IC0td2l0aC1jYSBoYW5kbGluZywgZml4IENBIG5ld2NlcnRzIGJvb2trZWVwaW5nCgoyMDEwLTA2LTAyIDEwOjU3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gcGFyc2luZyBPSURzCiAgIGluIGNvbmZpZyBmaWxlcy4KCjIwMTAtMDYtMDIgMDA6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgY2hlY2sgdGhhdCBDQSBjZXJ0aWZpY2F0ZXMgY3JlYXRlZCBhZnRlciBzbm1wZCBzdGFydHMgYXJlIHN0aWxsCiAgIHVzYWJsZTsgY2hlY2sgYWxsIG91dHB1dCBmaW5nZXJwcmludHMgdG8gZW5zdXJlIHRoZXkgd2VyZQogICBwcm9wZXJseSBjcmVhdGVkCgoyMDEwLTA2LTAyIDAwOjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkIG1pc3NpbmcgZGlyZWN0b3J5IGFuZCBmaWxlIHN1ZmZpeCB0byBjYSBpbnZvY2F0aW9ucwoKMjAxMC0wNi0wMiAwMDoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgY2hlY2sgdGhhdCBjZXJ0aWZpY2F0ZSBvdXRwdXQgZmluZ2VycHJpbnRzIHdlcmUgZm91bmQKCjIwMTAtMDYtMDIgMDA6MjAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICB0d28gbmV3IGZ1bmN0aW9ucyBmb3IgdmFsdWUgY29tcGFyaXNvbiB0ZXN0IG91dHB1dAoKMjAxMC0wNi0wMiAwMDoxNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICByZW1vdmUgbm8tbG9uZ2VyLXVzZWQgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgdG9rZW4gc3BlY2lmaWVyICh3ZQogICByZXF1aXJlIGEgY29weSBvZiB0aGUga2V5KQoKMjAxMC0wNi0wMiAwMDowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICAtIGNoYW5nZWQgJ2ZpbmdlcnByaW50JyB0b2tlbiB0byBtb3JlIGdlbmVyaWMgJ2lkZW50aXR5JyBrZXl3b3JkCiAgIC0gYWRkZWQgdGhlIGFiaWxpdHkgZm9yIG5ldHNubXBfY2VydF9maW5kIHRvIHRyeSBtdWx0aXBsZSB0eXBlcwogICAoRlAgJiBmaWxlKQogICAtIGFuZCBwcm92aWRlIHRlc3Qgc3VpdGUgdGVzdCBmb3IgaXQuCgoyMDEwLTA2LTAxIDIwOjEyICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgUGVybCBleHRlbnNpb24gbW9kdWxlcyBjYW4gbG9hZCB0aGUgTmV0LVNOTVAKICAgRExMcyB3aGlsZSBydW5uaW5nIHRoZSBOZXQtU05NUCByZWdyZXNzaW9uIHRlc3RzLgoKMjAxMC0wNi0wMSAxNjo0NyAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtYWpvciB1cGRhdGUgYnVnIGZpeGVzIGFuZCBmZWF0dXJlcyAtIGludGVyYWN0aXZlIG1vZGUsIHNlcGFyYXRlCiAgIENBIGRpcnMsIGdlbiBjc3IgZnJvbSBjZXJ0LCBmaW5nZXJwcmludCBkaXNwbGF5IC0tYnJpZWYsCiAgIGVsaW1pbmF0ZSBzZWQsIG9wZW5zc2wuY29uZiBvdmVyd3JpdGUgYW5kIHRlbXBsYXRpbmcKCjIwMTAtMDYtMDEgMTQ6NDggIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQuCgoyMDEwLTA2LTAxIDE0OjI1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIElQLU1JQjo6aXBJZlN0YXRzUmVhc21SZXFkcyB2YWx1ZS4KICAgCiAgIEp1c3QgZml4aW5nIGEgc3R1cGlkIHR5cG8uCgoyMDEwLTA1LTMxIDEwOjQzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogZW5hYmxlZCBVbml4IHRyYW5zcG9ydC4KICAgKEZvcndhcmQtcG9ydGVkIHIxODY4NyBmcm9tIHRoZSBWNS41IGJyYW5jaCkuCgoyMDEwLTA1LTMwIDIyOjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZW5hYmxlIHRvIHJ1biB3aXRoIG9sZGVyIFBlcmwgKGUuZy4gUGVybCA1LjAwNDA1IGFzIHNoaXBwZWQgd2l0aAogICBJUklYCiAgIDYuNSkKCjIwMTAtMDUtMzAgMjI6NDkgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBwb2xpc2ggZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0zMCAyMDoxOSAgbWFnZnIKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW4sIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLmluLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEbyBub3QgbGluayB3aXRoIGxpYm5ldHNubXBoZWxwZXJzIGFueSBtb3JlIGFzCiAgIGl0IGlzIGVtcHR5LgoKMjAxMC0wNS0zMCAxOToxOCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgc25tcGxpYi9zbm1wLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgYSB2b2lkIGFyZ3VtZW50IGZvciB0aGUgZGF0YSBhcmd1bWVudCBvZgogICB4ZHVtcC4KCjIwMTAtMDUtMzAgMTk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgQ0hBTkdFUzogQlVHOiAyMDUxNzQyOiBhZGRlZCBtaXNzaW5nIFBFUkxfU1lTX0lOSVQzKCkgY2FsbCAoc2VlCiAgIGFsc28gbWFuIHBlcmxlbWJlZCkuCgoyMDEwLTA1LTMwIDE5OjE2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgKGZyZWUoKSBjYWxsZWQgd2l0aG91dCBiZWluZyBkZWNsYXJlZAogICBmaXJzdCkuCgoyMDEwLTA1LTMwIDE2OjU2ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXBsaWI6IERvIG5vdCByZXF1aXJlIHRoYXQgdGhlIFVEUCB0cmFuc3BvcnQgaXMgaW5jbHVkZWQuCgoyMDEwLTA1LTMwIDEyOjAwICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgZGVwZW5kZW5jaWVzIGJldHdlZW4gdHJhbnNwb3J0cy4gUmVtb3ZlCiAgIHVubmVjZXNzYXJ5IGluY2x1ZGVzLgoKMjAxMC0wNS0zMCAwNjoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9kdW1teS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgbGlibmV0c25tcGhlbHBlcnMgaXMgbm90IGVtcHR5IHN1Y2ggdGhhdCBidWlsZGluZwogICBOZXQtU05NUCBvbiBBSVggYW5kIElSSVggaXMgYWdhaW4gcG9zc2libGUuCgoyMDEwLTA1LTI5IDA5OjUyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4OTAyOiB3b3JrcyBhZ2FpbiB3aXRob3V0IFRBUDo6SGFybmVzcy4KCjIwMTAtMDUtMjggMjM6MjMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IGxvbmctYWdvIGJyb2tlbiB2ZXJib3NpdHkKCjIwMTAtMDUtMjggMjM6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IG1vcmUgcHJldmlvdXNseSBicm9rZW4gb3B0aW9uIHJlbmFtZXM7IGNoYW5nZSAtZCB0bwogICBtYXN0ZXItZGlyZWN0b3J5IGFuZCBhZGQgYXMgYSByZWFsIGFyZ3VtZW50CgoyMDEwLTA1LTI4IDIzOjA1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19zaW1wbGU6CgogICBtb3JlIG1pc3Npbmcgb2xkdWNkIHJlbmFtZXMKCjIwMTAtMDUtMjggMjI6NTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfb2xkdWNkLCAKICAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19zaW1wbGU6CgogICByZW5hbWVkICdvbGR1Y2QnIHRvICdzaW1wbGUnIHRvIHB1dCBhIG1vcmUgcG9zaXRpdmUgc3BpbiBvbiB0aGVtCgoyMDEwLTA1LTI4IDIyOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JFQURNRSwgdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgdGVzdCBzdWl0ZQoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHJldmVydCB1bmludGVudGlvbmFuYWxseSBjb21taXR0ZWQgdGVzdCB0ZXN0CgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgZnJlZSB2YXJpYWJsZXMgYWdhaW4KCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXggd2Fsa3Mgc28gdGhhdCBtdWx0aXBsZSB3YWxrcyB0ZXJtaW5hdGUgcHJvcGVybHkKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBwYXRjaCB0byBoYW5kbGUgdGVzdGluZyBvZiBsb29waW5nIG9mIG11bHRpcGxlIHZhcmJpbmRzIGluIGEgd2FsawoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGluaXRhbCBwYXRjaCB0byBwcmV2ZW50IGxvb3Bpbmcgd2Fsa3MKCjIwMTAtMDUtMjggMjA6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBpbXBsZW1lbnQgY2VydCBsb29rdXAgYnkgZmlsZW5hbWUKCjIwMTAtMDUtMjggMDc6MDIgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIGNvbnN0IGRlY2xhcmF0aW9ucyB0byB0aGUgZGlzYWJsZWQgdmVyc2lvbnMKICAgb2YgdGhlIGRlYnVnZ2luZyBjb2RlIGFzIHdlbGwuCgoyMDEwLTA1LTI4IDAyOjEyICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgYWRkIHBlcnNpc3RlbmNlOyBjaGVjayBmb3IgY29sIG1vZHMgd2hpbGUgcm93IGFjdGl2ZQoKMjAxMC0wNS0yOCAwMjoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBDSEFOR0VTOiBhZ2VudGxpYjogbmV3IGZ1bmN0aW9ucyB0byBtYWtlIHN0YXNoIHB0ciBhbmQgbmV3cm93CiAgIGF2YWlsYWJsZSB0bwogICB0YWJsZV9kYXRhc2V0IGhhbmRsZXJzCiAgIG5vbmV3czogZml4IHR5cG87IHRhYnMgdG8gc3BhY2VzOyB1c2Ugc2l6ZW9mIGluc3RlYWQgb2YgY29uc3RhbnQKCjIwMTAtMDUtMjcgMTg6NTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBXaW4zMiBidWlsZCBmaXhlcy4KCjIwMTAtMDUtMjcgMTg6MjQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgIm1ha2UgdGVzdCIgd2l0aG91dCBUQVA6Okhhcm5lc3MgKHdhcyBicm9rZW4gYnkgcjE4ODAyKS4KCjIwMTAtMDUtMjcgMTU6MTUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAKICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuIE1vc3QgZml4ZXMgaW52b2x2ZWQgYWRkaW5nIHRoZQogICAiY29uc3QiIGtleXdvcmQuCgoyMDEwLTA1LTI3IDEzOjUyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI5NzI1Nzk6IGZpeGVkIGNoZWNraW5nIG9mCiAgIHNubXBUYXJnZXRBZGRyUm93U3RhdHVzIFNFVCByZXF1ZXN0cy4KCjIwMTAtMDUtMjcgMTM6NDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuOgoKICAgcmV2ZXJ0IHBhcnQgb2YgMTg4ODU6IHRlc3QgZmlsZXMgc2hvdWxkIGJlIGFibGUgdG8gYmUgcnVuIGJ5CiAgIHRoZW1zZWx2ZXMgdG9vCgoyMDEwLTA1LTI3IDExOjE5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogY29ycmVjdGx5IGNhbGN1bGF0ZSBpZlhUYWJsZS5pZkhDSW5VY2FzdFBrdHMgb24gMzItYml0CiAgIExpbnV4CiAgIAogICBMaW51eCBkb2VzIG5vdCBwcm92aWRlIHN0YW5kYWxvbmUgY291bnRlciBmb3IgaW5jb21pbmcgdW5pY2FzdAogICBwYWNrZXRzIChpdWNhc3QpCiAgIC0gaXQgcHJvdmlkZXMgY291bnRlciBvZiBhbGwgcGFja2V0cyAoaWFsbCkgKyBzZXBhcmF0ZSBjb3VudGVyCiAgIGZvciB0aGUgbXVsdGljYXN0CiAgIG9uZXMgKGltY2FzdCkuIFByZXZpb3VzIGltcGxlbWVudGF0aW9uIG9mIGlmVGFibGUgcmVhZCB0aGVzZQogICBjb3VudGVycyBhbmQKICAgY2FsY3VsYXRlZCBpdWNhc3QgPSBpYWxsIC0gaW1jYXN0ICpiZWZvcmUqIHRoZXNlIHZhbHVlcyB3ZXJlCiAgIGV4cGFuZGVkIGludG8KICAgNjRiaXRzLiBUaGlzIHByb2R1Y2VkIGVycm9ycyBvbiAzMmJpdCBzeXN0ZW1zIHdoZW4gaWFsbAogICBvdmVyZmxvd2VkIHRvIHplcm8gYW5kCiAgIGltY2FzdCB3YXMgbm96ZXJvIC0+IGl1Y2FzdCBnb3QgbmVnYXRpdmUgYW5kICdjNjQgMzIgYml0IGNoZWNrCiAgIGZhaWxlZCcgZXJyb3IgaW4KICAgc25tcGQgbG9nLiBOb3cgdGhlIGFnZW50IGV4cGFuZHMgdGhlc2UgdmFsdWVzIHRvIDY0Yml0cyBmaXJzdCBhbmQKICAgKiAgICAgKnRoZW4qIHBlcmZvcm1zICAgIHRoZSBjYWxjdWxhdGlvbiwgdXNpbmcgYSBuZXcgZmxhZy4gCiAgICAgIDIwMTAtMDUtMjcgMDg6MTggIG1hZ2ZyCgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvUlVOVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW46CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBNb3ZlIHRoZSBzZXR0aW5nIG9mIE1JQkRJUlMgZnJvbSB0aGUgc3VwcG9ydAogICBzY3JpcHQgdG8gdGhlIGRyaXZlcnMgc2luY2UgaXQgaXMgbmVlZGVkIGZvciB0aGUgQyB0ZXN0cyBhcyB3ZWxsLgoKMjAxMC0wNS0yNyAwODowOSAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IFVzZSBvbGR1Y2RfcnVuLCBub3QgcnVuX29sZHVjZC4gQ2hhbmdlIHNyY2RpcgogICB0byByZWZlciB0byB0aGUgdG9wIGRpcmVjdG9yeSBhbmQgbm90IHRoZSB0ZXN0aW5nIHN1YmRpcmVjdG9yeSBhcwogICB0aGF0IGlzIHdoYXQgaXMgZXhwZWN0ZWQgaW4gdGhlIHRlc3Qgc2NyaXB0cy4KCjIwMTAtMDUtMjcgMDU6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHdhcm5pbmcgc3F1YXNoaW5nCgoyMDEwLTA1LTI3IDA1OjE2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCBzbm1wbGliL2tleXRvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIG1vcmUgY29uc3QgY29ycmVjdG5lc3MKCjIwMTAtMDUtMjcgMDQ6MTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdGVzdHMgZm9yIGFnZW50LW5vdC1rbm93bi11c2VyLWNlcnRpZmljYXRlcwoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHJlZmVyZW5jZSB0aGUgaXRuZXJuYWwgc3VwcG9ydCBhbmQgcmVsYXRlZCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2wvT1BFTlNTTC1MSUNFTlNFLCBzbm1wbGliL29wZW5zc2wvUkVBRE1FOgoKICAgaW50ZXJuYWwgT3BlblNTTCBzdXBwb3J0IGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBORVdTOiBsaWJuZXRzbm1wOiBTdXBwb3J0IGZvciBhIHN0cmVhbS1saW5lIHN0cmlwcGVkIGRvd24gdmVyc2lvbgogICBvZiBpbnRlcm5hbCBPcGVuU1NMIHN1cHBvcnQgdXNpbmcgLS13aXRoLW9wZW5zc2w9aW50ZXJuYWwKCjIwMTAtMDUtMjcgMDQ6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9hZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvb3BlbnNzbF9tZDUuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NldF9rZXkuYywgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc3ByLmgsIAogICAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIHJlbW92ZSBtb3JlIGRlcGVuZGVuY2llcyBmb3IgZXh0ZXJuYWwgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjE1ICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgc25tcGxpYi9vcGVuc3NsLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jb3JlLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2NmYjEyOC5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQ1X2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21vZGVzLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX25jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NldF9rZXkuYywgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhLmgsIAogICAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3Nwci5oLCBzbm1wbGliL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYywgc25tcGxpYi9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kMzJfY29tbW9uLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfbW9kZXMuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGEuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfc3ByLmg6CgogICBtb3ZlIG9wZW5zc2wgY29kZSBpbnRvIGEgc3ViZGlyZWN0b3J5CgoyMDEwLTA1LTI3IDA0OjEzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZDoKCiAgIGZpeCB0ZXN0aW5nIHNvIGl0IHVzZXMgbXVsdGlwbGUgdHlwZXMgb2YgY3J5cHRvCgoyMDEwLTA1LTI3IDA0OjEzICBoYXJkYWtlcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluaXRpb25zIGFuZCBmaWxlcyBmb3IgZG9pbmcgaW50ZXJuYWwgY3J5cHRvIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGluY2x1ZGUgaW50ZXJuYWwgYWVzL2RlcyBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmM6CgogICBsb2NhbGl6ZQoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jLCBzbm1wbGliL29wZW5zc2xfbW9kZXMuaDoKCiAgIGluaXRhbCBjb3BpZXMgb2YgY2ZiMTI4IG1vZGVzIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmM6CgogICBsb2NhbGl6ZQoKMjAxMC0wNS0yNyAwNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmMsIHNubXBsaWIvb3BlbnNzbF9hZXNfbG9jYWwuaDoKCiAgIGluaXRpYWwgdmVyc2lvbnMgb2YgYWVzX2NvcmUuYyBhbmQgYWVzX2xvY2wuaAoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfYWVzLmg6CgogICBpbml0aWFsIGNvcHkgb2YgYWVzLmggZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NmYi5jOgoKICAgaW5pdGlhbCBjb3B5IG9mIHRoZSBvcGVuc3NsIGFlc19jZmIuYyBmaWxlCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jOgoKICAgaW5jbHVkZSBsb2NhbGl6ZWQgY29waWVzIG9mIHRoZSBmaWxlcwoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgdXNlIGludGVybmFsIERFUwoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NiY19lbmMuYzoKCiAgIGxvY2FsaXplZCBjb3B5IG9mIHRoZSBjYmNfZW5jLmMgZmlsZSBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9zcHIuaDoKCiAgIGRlcy9zcHIuaCBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmM6CgogICBhZGRlZCBkZXNfZW5jLmMgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX21kNS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9zaGEuaDoKCiAgIGxvY2FsIGNvcGllcyBvZiB0aGUgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaDoKCiAgIGluaXRpYWwgY29weSBvZiBvcGVuc3NsJ3MgZGVzLmgKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jOgoKICAgbG9jYWxpemVkIGhlYWRlciBmaWxlcwoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvb3BlbnNzbF9kZXNfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmM6CgogICBpbml0YWwgY29waWVzIG9mIHNvbWUgb2YgdGhlIG9wZW5zc2wgREVTIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIGZpbmlzaGluZyBwb3J0aW5nIG9mIGludGVybmFsIGF1dGggc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBpbnRlcm5hbCBjcnlwdG8gZmlsZXMgdG8gdGhlIGNoZWNrL3VzZSBsaXN0CgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL21kNV9sb2NsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDVfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYV9sb2NhbC5oLCBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBsb2NhbGl6ZWQgZmlsZSBuYW1lcyB3aXRoIG9wZW5zc2wgcHJlZml4ZXMKCjIwMTAtMDUtMjcgMDQ6MDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL29wZW5zc2xfbWQ1LmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNS5jOgoKICAgbG9jYWxpemUgdGhlIG1kNSBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDowNSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvb3BlbnNzbF9zaGEuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgY29tcGxldGVseSBsb2NhbGl6ZSB0aGUgb3BlbnNzbCBTSEEgc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX3NoYS5oOgoKICAgaW5pdGlhbCB2ZXJpc29uIG9mIHNoYS5oIGNvcHkKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL21kMzJfY29tbW9uLmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAKICAgICAgICBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBhZGRlZCBsb2NhbCBjb3BpZXMgb2YgdGhlIG9wZW5zc2wgY3J5cHRvIGZ1bmN0aW9ucwoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgbWFrZSB1c2Ugb2YgaW50ZXJuYWwgY3J5cHRvIGhhc2ggZnVuY3Rpb25zCgoyMDEwLTA1LTI3IDA0OjAzICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNvbmZpZ3VyZSBjaGVja3MgZm9yIGludGVybmFsLWNyeXB0byBzdXBwb3J0CgoyMDEwLTA1LTI2IDIyOjE3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgcHJvcGVybHkgdmVyaWZ5IGV4cGVjdGVkIHNlcnZlciBjZXJ0aWZpY2F0ZXMgdW5kZXIgRFRMUzsgYWRkIGEKICAgbmV3IGZsYWcgaW4gdGxzYmFzZSB0byBpbmRpY2F0ZSB2ZXJpZmljYXRpb24gaGFzIG9jY3VycmVkCgoyMDEwLTA1LTI2IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBjb21waWxlciB3YXJuaW5nIHNxdWFzaGluZwoKMjAxMC0wNS0yNiAyMTowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogICBhZGQgY29uc3QgcXVhbGlmaWVycyB0byBhIGZldyBwbGFjZXMKCjIwMTAtMDUtMjYgMTk6NDYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogbGlibmV0c25tcG1pYnMsIGxpYm5ldHNubXBoZWxwZXJzIGFuZAogICBsaWJuZXRzbm1wYWdlbnQgZG8gbm93IGJ1aWxkIGFzIGEgRExMIHdoZW4gY29uZmlndXJlZCB3aXRoCiAgIC0tZW5hYmxlLXNoYXJlZC4KCjIwMTAtMDUtMjYgMTc6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgTkVXUzogbW92ZWQgYWxsIGZ1bmN0aW9ucyBkZWZpbmVkIGluIGxpYm5ldHNubXBoZWxwZXJzIHRvCiAgIGxpYm5ldHNubXBhZ2VudC4gbGlibmV0c25tcGhlbHBlcnMgaXMgbm93IGFuIGVtcHR5IGxpYnJhcnkuCgoyMDEwLTA1LTI2IDE3OjIwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L251bGwuYywgICAKICAgICAgYWdlbnQvb2xkX2FwaS5jOgoKICAgUmV2ZXJ0ZWQgcjE4ODI5IGluIG9yZGVyIHRvIG1pbmltaXplIGRpZmZzIHdpdGggb2xkZXIgYnJhbmNoZXMuCgoyMDEwLTA1LTI1IDA3OjIzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBUZWxsIG5ldC1zbm1wLWNlcnQgd2hlcmUgbmV0LXNubXAtY29uZmlnIGlzIGxvY2F0ZWQKCjIwMTAtMDUtMjUgMDc6MTQgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENvcnJlY3QgdGhlIHNpZ25hdHVyZSBvZiBtYWluLiBVc2UgI2luY2x1ZGUgaW5zdGVhZCBvZiBzb3VyY2luZwogICB0byBnZXQgdGhlIGNvZGUgdW5kZXIgdGVzdCBpbiBvcmRlciB0byBnZXQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzCgoyMDEwLTA1LTI1IDA3OjExICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgQWRkIGFyZ3VtZW50cyB0byBzcHJpbnRmIHN0YXRlbWVudHMgdG8gbWFrZSB0aGUgdGVzdCB3b3JrCgoyMDEwLTA1LTI1IDA3OjA3ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgZGlzYWJsZWQgY29kZQoKMjAxMC0wNS0yNSAwNToyMCAgbWFnZnIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBTcGxpdCBzbm1wSVBCYXNlRG9tYWluIGFuZCBtb3ZlIHRoZSBJUHY0IHBhcnRzCiAgIHRvIElQdjRCYXNlIGFuZCB0aGUgc29ja2V0IGdlbmVyaWMgcGFydHMgdG8gU29ja2V0QmFzZS4KCjIwMTAtMDUtMjQgMjA6MjQgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBmaW5pc2ggdGxzdG1QYXJhbXNUYWJsZSBsYXN0Q2hhbmdlZCBzY2FsYXIKCjIwMTAtMDUtMjQgMTk6MjggIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIEFkZCAtLWV4dGVybmFsLWxpYnMgaW4gb3JkZXIgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGVzdHMgb24KICAgc29sYXJpcwoKMjAxMC0wNS0yNCAxMzozMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgYXJnaC4uIGZpeCBmYWxsb3V0IGZyb20gbWFudWFsbHkgKG1pcylhcHBseWluZyBwYXRjaAoKMjAxMC0wNS0yNCAxMjo1OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBmaXJzdCBwYXNzIGF0IHRsc3RtUGFyYW1zVGFibGUKCjIwMTAtMDUtMjQgMTI6NTkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICB1cGRhdGUgZGVmaW5lcyB0byBtYXRjaCBNSUIgbmFtZXMsIHBlciBncmFuZC1wb29iYWgKCjIwMTAtMDUtMjQgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmM6CgogICB1cGRhdGUgT0lEIHRvIG1hdGNoIHVwY29taW5nIFJGQwoKMjAxMC0wNS0yNCAxMTo0OCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9udWxsLmMsICAgCiAgICAgIGFnZW50L29sZF9hcGkuYzoKCiAgIENIQU5HRVM6IGxpYm5ldHNubXBhZ2VudCwgbGlibmV0c25tcGhlbHBlcnM6IG1vdmVkIHRoZSBmdW5jdGlvbnMKICAgbmV0c25tcF9idWxrX3RvX25leHRfZml4X3JlcXVlc3RzKCksCiAgIG5ldHNubXBfZ2V0X2J1bGtfdG9fbmV4dF9oYW5kbGVyKCksIG5ldHNubXBfcmVnaXN0ZXJfbnVsbCgpLAogICBuZXRzbm1wX3JlZ2lzdGVyX251bGxfY29udGV4dCgpIGFuZCBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQogICBmcm9tIGxpYm5ldHNubXBoZWxwZXJzIHRvIGxpYm5ldHNubXBhZ2VudC4KICAgTm90ZXM6CiAgIC0gVGhpcyBkb2VzIG5vdCBhZmZlY3QgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcGxpY2F0aW9ucwogICB0aGF0IGxpbmsgd2l0aCAkKG5ldC1zbm1wLWNvbmZpZyAtLWFnZW50LWxpYnMpIHNpbmNlIHRoaXMKICAgaW52b2x2ZXMgbGlua2luZyB3aXRoIGJvdGggbGlibmV0c25tcGhlbHBlcnMgYW5kIGxpYm5ldHNubXBhZ2VudC4KICAgLSBGdW5jdGlvbnMgaGF2ZSBiZWVuIG1vdmVkIGJldHdlZW4gbGlicmFyaWVzIGJ5IG1vdmluZyBlbnRpcmUKICAgc291cmNlIGZpbGVzLgoKMjAxMC0wNS0yNCAxMDoxMCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICBVc2UgcHJvcGVyIHN0cmluZyBzaXplcyBhbmQgbWFrZSBzdXJlIHN0cmluZ3MgYXJlCiAgIHplcm8tdGVybWluYXRlZC4KCjIwMTAtMDUtMjQgMDg6MDEgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgbmV0LXNubXAtY29uZmlnLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBsaWJuZXRzbm1wIGRvZXMgbm93IGJ1aWxkIGFzIGEgRExMIHdoZW4KICAgY29uZmlndXJlZCB3aXRoIC0tZW5hYmxlLXNoYXJlZC4KICAgQ0hBTkdFUzogQ3lnd2luOiBwZXJsIG1vZHVsZXMgZG8gbm93IGJ1aWxkICgtLXdpdGgtcGVybC1tb2R1bGVzKS4KICAgTm90ZTogdGhlIFQwNjB0cmFwZHBlcmxfb2xkdWNkLCBUMDYxYWdlbnRwZXJsX29sZHVjZCBhbmQKICAgVDExNWFnZW50eHBlcmxfb2xkdWNkIHRlc3RzIHN0aWxsIGZhaWwuCgoyMDEwLTA1LTIzIDIzOjA2ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIHVwZGF0ZSBmaWxlbmFtZXMvcGF0c2ggZm9yIHJlY2VudCBmaWxlIHJlbmFtZXM7IGZpeCB0eXBvcwoKMjAxMC0wNS0yMyAyMjowOCAgbWFnZnIKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIHRoZSBzYW1lIGNvbXBpbGVyIGNvbW1hbmQgYW5kIGZsYWdzIGZvcgogICBidWlsZGluZyBvZiB0ZXN0cyBhcyBmb3IgYnVpbGRpbmcgb2YgdGhlIGNvZGUsIHRodXMgZW5hYmxpbmcgdGVzdAogICBvZiBlLmcuIDMyLWJpdCBjb2RlIGNvbXBpbGVkIG9uIGEgNjQtYml0IHBsYXRmb3JtLgoKMjAxMC0wNS0yMyAyMTo0MSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHVwZGF0ZSBpbmNsdWRlL2NvbmZpZyBmaWxlL3BhdGhzIGZvciByZWNlbnQgcmVuYW1lcwoKMjAxMC0wNS0yMyAyMTozMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgcmVuYW1lIGZpbGVzIGZvciBNSUIgcmVuYW1lcwoKMjAxMC0wNS0yMyAyMToyNSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGU6CgogICByZW5hbWUgZGlyZWN0b3JpZXMgdG8gbWF0Y2ggcmVuYW1lcyBpbiBNSUIKCjIwMTAtMDUtMjAgMDg6NDggIGJ2YXNzY2hlCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN3YXBwZWQgbGluayBvcmRlciBvZiAtbG5ldHNubXBoZWxwZXJzIC1sbmV0c25tcG1pYnM6IG5ldHNubXBtaWJzCiAgIGRlcGVuZHMgb24gbmV0c25tcGhlbHBlcnMgYW5kIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KCjIwMTAtMDUtMjAgMDg6NDIgIGJ2YXNzY2hlCgogICAqICBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBGaXhlZCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xOSAxODoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggc3Rhc2hpbmcKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBvdXRwdXQgZmlsZW5hbWVzIG9mIGZhaWxlZCB0ZXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICB3aXBlIHRyYWlsaW5nIGNvbW1lbnQgQyBtYXJrZXIgaWYgaXQgZXhpc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHRpdGxlIHRoZSBTTk1QdjMgdGVzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHRlc3Rpbmcgb2YgYnVpbHQgdGl0bGVzCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG9ubHkgcHJpbnQgZmFpbHVyZSBoZWFkZXIgaWYgdGhlcmUgd2FzIGF0IGxlYXN0IG9uZQoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2Q6CgogICBtYWtlIGRlc2NyaXB0aXZlIHRpdGxlcyB3b3JrIGFnYWluCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jbGliLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICByZW5hbWUgZmlsZXMgc28gcHJlZml4aW5nIGlzIGJhc2VkIG9uIHRoZSBzdWl0ZSBuYW1lLCBub3QgZmlsZQogICB0eXBlCgoyMDEwLTA1LTE5IDE3OjUyICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUuc3Vicy5wbCwgICAKICAgICAgcGVybC9PSUQvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBDeWd3aW46IHBlcmw6IGJ1aWxkaW5nIHRoZSBQZXJsIG1vZHVsZXMgd2l0aCB0aGUgQ3lnd2luCiAgIFBlcmwgcGFja2FnZSBpcyBub3cgcG9zc2libGUuCiAgIChGb3J3YXJkLXBvcnRlZCByMTg2ODggZnJvbSB0aGUgVjUuNSBicmFuY2guKQoKMjAxMC0wNS0xOSAxNzo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDUtMTkgMTI6MDUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEZpcnN0LWRyYWZ0IHN1cHBvcnQgZm9yIEFJWCBmaWxlc3lzdGVtIEhBTCBtb2R1bGUgKHVudGVzdGVkKQoKMjAxMC0wNS0xOSAxMToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOgoKICAgU3VwcG9ydCBmb3IgU29sYXJpcy1zdHlsZSAnZ2V0bW50ZW50JyBBUEkuCgoyMDEwLTA1LTE5IDA5OjU3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmg6CgogICBTaW1wbGlmeSB0aGUgaGFuZGxpbmcgb2YgdW5rbm93bi91bndhbnRlZCBmaWxlIHN5c3RlbXMuCgoyMDEwLTA1LTE5IDA5OjMwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgRml4IG1pc3NpbmcvYnJva2VuIEFQSSBkZWNsYXJhdGlvbnMuCgoyMDEwLTA1LTE5IDA4OjQ2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBNYWRlIGVycm9yIG1lc3NhZ2VzIG1vcmUgY2xlYXIgaW4gY2FzZSBvZiBmYWlsdXJlIG9yIHdyb25nCiAgIGludm9jYXRpb24uCgoyMDEwLTA1LTE5IDAwOjAxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIHRlc3QgZm9yIHVzaW5nIGEgY2VydGlmaWNhdGUgc2lnbmVkIGJ5IGEgQ0EgY2VydGlmaWNhdGUKCjIwMTAtMDUtMTggMjM6MzEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2Ugc3VyZSB3ZSBjYWxsIHRoZSByaWdodCBQZXJsCgoyMDEwLTA1LTE4IDIwOjM5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBhZ2VudDogaW5jbHVkZSBsb2NhbCBwb3J0IG51bWJlciBpbiBwYWNrZXQgZHVtcHMuIEFuCiAgIGV4YW1wbGU6CiAgIAogICBSZWNlaXZlZCAzNiBieXRlIHBhY2tldCBmcm9tIFVEUDoKICAgWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgMDAwMDogMzAgMjIgMDIgMDEgMDEgMDQgMDYgNzAgNzUgNjIgNkMgNjkgNjMgQTEgMTUgMDIKICAgMCIuLi4uLnB1YmxpYy4uLgogICAwMDE2OiAwNCAzNyBGMiBENCA5QiAwMiAwMSAwMCAwMiAwMSAwMCAzMCAwNyAzMCAwNSAwNgogICAuNy4uLi4uLi4uLjAuMC4uCiAgIDAwMzI6IDAxIDAxIDA1IDAwIC4uLi4KICAgCiAgIFJlY2VpdmVkIFNOTVAgcGFja2V0KHMpIGZyb20gVURQOgogICBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICBHRVRORVhUIG1lc3NhZ2UKICAgLS0gY2NpdHQuMQogICAKICAgU2VuZGluZyAxMTggYnl0ZXMgdG8gVURQOiBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICAwMDAwOiAzMCA3NCAwMiAwMSAwMSAwNCAwNiA3MCA3NSA2MiA2QyA2OSA2MyBBMiA2NyAwMgogICAwdC4uLi4ucHVibGljLmcuCiAgIDAwMTY6IDA0IDM3IEYyIEQ0IDlCIDAyIDAxIDAwIDAyIDAxIDAwIDMwIDU5IDMwIDU3IDA2CiAgIC43Li4uLi4uLi4uMFkwVy4KICAgMDAzMjogMDggMkIgMDYgMDEgMDIgMDEgMDEgMDEgMDAgMDQgNEIgNEMgNjkgNkUgNzUgNzgKICAgLisuLi4uLi4uLktMaW51eAogICAwMDQ4OiAyMCA2MSA3MyA3NSA3MyAyMCAzMiAyRSAzNiAyRSAzMyAzMyAyRSAzMiAyRCA3MyBhc3VzCiAgIDIuNi4zMy4yLXMKICAgMDA2NDogNjMgNzMgNzQgMjAgMjMgMzEgMjAgNTMgNEQgNTAgMjAgNTAgNTIgNDUgNDUgNEQgY3N0ICMxIFNNUAogICBQUkVFTQogICAwMDgwOiA1MCA1NCAyMCA1MyA2MSA3NCAyMCA0MSA3MCA3MiAyMCAzMyAyMCAzMiAzMSAzQSBQVCBTYXQgQXByCiAgIDMgMjE6CiAgIDAwOTY6IDMxIDMwIDNBIDM1IDM4IDIwIDQzIDQ1IDUzIDU0IDIwIDMyIDMwIDMxIDMwIDIwIDEwOjU4IENFU1QKICAgMjAxMAogICAwMTEyOiA3OCAzOCAzNiA1RiAzNiAzNCB4ODZfNjQKCjIwMTAtMDUtMTggMTk6NDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdGxzdG1BZGRyVGFibGUKICAgLSBkZWFsIHdpdGggaGFzaCB0eXBlIHByb3Blcmx5IGZvciBnZXQvc2V0IGFuZCBwZXJzaXN0ZW5jZQogICAtIGFkZCBjb3VudCBhbmQgbGFzdCBjaGFuZ2VkIHNjYWxhcnMKCjIwMTAtMDUtMTggMTk6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYzoKCiAgIHVwZGF0ZSB0byBvZmZpY2FsIE9JRCBmcm9tIHVwY29taW5nIHJmYwoKMjAxMC0wNS0xOCAxNjoxNiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRvIG9mZmljaWFsIE9JRHMgZnJvbSB1cGNvbWluZyBSRkM7IGFkZCBjb3VudC9sYXN0IGNoYW5nZWQKICAgc2NhbGFycwoKMjAxMC0wNS0xOCAxNDo1NiAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDIwMDE2NTY6IEhhbmRsZSBudWxsLXRlcm1pbmF0aW9uIG9mCiAgIHN0cmluZyB2YWx1ZXMgcHJvcGVybHkuCiAgIEJhc2VkIG9uIHRoZSBwcmluY2lwbGVzIG9mIHRoZSBwYXRjaCBmcm9tIFRvbW15IEJlYWRsZS4KCjIwMTAtMDUtMTggMTQ6MzggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmgsIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIFdvcmtpbmcoPykgSEFMLWJhc2VkIHZlcnNpb24gb2YgaHJGU1RhYmxlLgoKMjAxMC0wNS0xOCAxNDoxMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNS0xNyAyMTowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICB1c2UgcHJvcGVyIFRTTSBzZWN1cml0eSBjb2RlICg0KSBub3cgdGhhdCBpdCdzIG9mZmljaWFsCgoyMDEwLTA1LTE3IDE4OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIGJlZ2lubmluZyBvZiBhIGNvbnRhaW5lciB1bml0IHRlc3QKCjIwMTAtMDUtMTcgMTg6NDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXN0aW5nLmg6CgogICBhIGJhc2ljIEMtY29kZSBiYXNlZCB0ZXN0IHJlcG9ydGluZyBtZWNoYW5pc20KCjIwMTAtMDUtMTcgMTg6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgYmFzaWMgZGVmYXVsdF9zdG9yZSB0ZXN0cwoKMjAxMC0wNS0xNyAxODo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jbGliOgoKICAgYSBidWlsZCBzeXN0ZW0gZm9yIGJhc2ljIGxpYm5ldHNubXAgdGVzdHMKCjIwMTAtMDUtMTcgMTg6MTQgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBmaXggZmluZ2VycHJpbnQgYmluL2hleCBjb252ZXJzaW9uOyBhZGQvcmVtb3ZlIGNlcnQgc2VjIG1hcHMgdmlhCiAgIG1pYiBub3cgd29ya3MKCjIwMTAtMDUtMTcgMTg6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgbmV3IGZ1bmN0aW9uIG5ldHNubXBfYmluYXJ5X3RvX2hleAoKMjAxMC0wNS0xNyAxODoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZnByaW50ZihzdGRlcnIgLT4gREVCVUdNU0dUTCgoCgoyMDEwLTA1LTE3IDE4OjEyICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgY2hlY2sgZm9yIGhhc2ggdHlwZQoKMjAxMC0wNS0xNyAxNjozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIG1ha2UgUlVOVEVTVFMgd29yayBvdXRzaWRlIHRoZSBzb3VyY2VkaXIKCjIwMTAtMDUtMTcgMTU6MzcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVOVEVTVFM6CgogICBtYWRlIGEgbGltaXRlZCBydW4gdGVzdCBwb3NzaWJsZSBhZ2FpbiB3aXRob3V0IHBlcmwKCjIwMTAtMDUtMTcgMTU6MzIgIGR0czEyCgogICAqICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFVzZSBuZXdlciBEaXNNYW4gRXZlbnQgTUlCIGNvZGUgZm9yIE1TVkMtYmFzZWQgYnVpbGRzCiAgIChpbiBsaW5lIHdpdGggYWxsIGNvbmZpZ3VyZS1iYXNlZCBidWlsZHMpCgoyMDEwLTA1LTE3IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgdGhlIHJldHVybiBvdXRzaWRlIHRoZSBpZiBzdGF0ZW1lbnQKCjIwMTAtMDUtMTcgMTU6MTggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBQcm92aWRlIG1pc3NpbmcgcHVibGljIGludGVyZmFjZSB0byBIQUwtYmFzZWQgZmlsZXN0b3JlIG1vZHVsZS4KCjIwMTAtMDUtMTcgMTA6NDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4NzU0IChyZXZlcnQgcjE4NzM4KTogcjE4NzU0IG9ubHkgcGFydGlhbGx5CiAgIHJldmVydGVkIHIxODczOAogICBhbmQgaGVuY2UgYnJva2UgdGhlIFdpbjMyLWJ1aWxkLiBGaW5pc2hlZCByZXZlcnNhbCBvZiByMTg3MzggYnkKICAgcmVzdG9yaW5nCiAgIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaC4KCjIwMTAtMDUtMTYgMTg6MTcgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4NzI2OiBvbmx5IHBhc3MgLWZzdGFjay1wcm90ZWN0b3IqIGZsYWdzIHRvIHRoZQogICBsaW5rZXIgaW5zdGVhZCBvZiBhbGwgLWYqIGZsYWdzIHN1Y2ggdGhhdCBpdCBiZWNvbWVzIGxlc3MgbGlrZWx5CiAgIHRoYXQgdGhpcyBtb2RpZmljYXRpb24gY2F1c2VzIHRyb3VibGUgd2l0aCBub24tR05VIHRvb2xjaGFpbnMuCgoyMDEwLTA1LTE2IDE4OjE0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkOgoKICAgTWFkZSBzaGVsbCBjb2RlIGZvciBjb252ZXJ0aW5nIGEgcmVsYXRpdmUgcGF0aCB0byBhbiBhYnNvbHV0ZQogICBwYXRoIG1vcmUKICAgcm9idXN0IGFuZCBjb252ZXJ0ZWQgIiR7Li4uIy4uLn0iIGNvbnN0cnVjdCBpbnRvIGVjaG8gKyBjdXQuCgoyMDEwLTA1LTE2IDE4OjEyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIE1vcmUgVVNJTkdfVUNEX1NOTVBfRVhURU5TSUJMRV9NT0RVTEUgdG8KICAgVVNJTkdfVVRJTElUSUVTX0VYRUNVVEVfTU9EVUxFIHN1YnN0aXR1dGlvbnMsIG5lY2Vzc2FyeSB0byBtYWtlCiAgIHRlc3QgMDU5IGFuZCAwNjUgcGFzcy4KCjIwMTAtMDUtMTYgMTc6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBmaXggdGVzdHMgZm9yIGNoZWNraW5nIHNodXRkb3duIG9mIGFwcGxpY2F0aW9ucyB0byBub3QgcmVwb3J0CiAgIGZhbHNlIG5lZ2F0aXZlcwoKMjAxMC0wNS0xNiAxMjoxNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZDoKCiAgIE1hZGUgdGVzdCBUMDU5IHBhc3MgYWdhaW4uIFRoaXMgdGVzdCB3YXMgcmVjZW50bHkgYnJva2VuIGJ5CiAgIHBhc3NpbmcgYXJndW1lbnRzIHRvIGl0IHdpdGggYWJzb2x1dGUgcGF0aHMgaW5zdGVhZCBvZiByZWxhdGl2ZQogICBwYXRocy4KCjIwMTAtMDUtMTYgMTI6MTQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZDoKCiAgIEFkZGVkICdTS0lQSUZOT1QgVVNJTkdfVVRJTElUSUVTX0VYRUNVVEVfTU9EVUxFJy4KCjIwMTAtMDUtMTYgMTE6NDIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xNiAxMTo0MSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhcHBzL3NzaHRvc25tcC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBpbiBvbGQgY29kZS4KCjIwMTAtMDUtMTYgMDk6NTkgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZG9uJ3QgdHJpZ2dlciBhIG5ldHNubXBfYXNzZXJ0KCkgd2hlbgogICBubyBleHRlbnNpb24gRExMcyBoYXZlIGJlZW4gbG9hZGVkLgoKMjAxMC0wNS0xNSAxNzozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN0b3AtZ2FwIGZpeCB0byB1bmJyZWFrICJtYWtlIHRlc3QiIGZvciB0aGUgbmlnaHRseSBidWlsZHMKCjIwMTAtMDUtMTUgMTA6NTkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFJldmVydGVkIHIxODcyNyBiZWNhdXNlIGl0IGNhdXNlZCBidWlsZCBlcnJvcnMgb24gU29sYXJpcywgQUlYCiAgIGFuZCBIUC1VWC4KCjIwMTAtMDUtMTUgMDA6NDIgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsOgoKICAgcmV2ZXJ0IHIxODczOCBzaW5jZSBuZXcgdHJhbnNwb3J0IHJlcXVpcmUgZHluYW1pY2x5IGJ1aWx0IGhlYWRlcgogICBmaWxlcwoKMjAxMC0wNS0xNSAwMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGxvZyBlbnYgdmFyaWFibGVzIHVzZWQgdG8gdGhlIGludm9rZWQgZmlsZQoKMjAxMC0wNS0xNCAyMToyOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgZml4IHNjcmlwdCBzbyBpdCBjYW4gYmUgaW52b2tlZCBvdXRzaWRlIHRoZSB0ZXN0IGVudmlyb25tZW50CiAgIGFnYWluCgoyMDEwLTA1LTE0IDIxOjI4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQ6CgogICBhZGRlZCB0aGUgU05NUC1UTFMtVE0tTUlCIHdpdGggZmluYWwgSUFOQSBhc3NpZ25tZW50IHNsb3RzCgoyMDEwLTA1LTE0IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVzZSBmaW5hbCBJQU5BIGFzc2lnbmVkIFRTTSBwcmVmaXhlcwoKMjAxMC0wNS0xNCAyMToyNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oOgoKICAgdXNlIGZpbmFsIElBTkEgYXNzaWduZWQgRG9tYWluIG51bWJlcnMKCjIwMTAtMDUtMTQgMjE6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXQgZGVmYXVsdCB2ZXJzaW9uIGFuZCBzZWNsZXZlbCBpZiB0bHMvZHRscwoKMjAxMC0wNS0xNCAxNToyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hlY2sgcmMgZnJvbSBzZWNuYW1lIG1hcHBpbmc7IGNsYXJpZnkgY29tbWVudAoKMjAxMC0wNS0xNCAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkb24ndCB1c2UgdW5zb3J0ZWQgY29udGFpbmVyOyBkb24ndCBmcmVlIGNhbGxlcidzIGNvbnRhaW5lcgoKMjAxMC0wNS0xNCAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIGxpbmVhcl9zZWFyY2ggZm9yIHVuc29ydGVkIGNvbnRhaW5lcnMKCjIwMTAtMDUtMTQgMTE6NTYgIGJ2YXNzY2hlCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBJbXByb3ZlZCBwb3J0YWJpbGl0eSBieSByZW1vdmluZyB0aGUgZ2VuZXJhdGVkIGZpbGUKICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmguCiAgIENvbW1lbnRlZCBvdXQgdGhlIGNvZGUgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZm9yIGdlbmVyYXRpbmcKICAgdGhpcyBoZWFkZXIgZmlsZS4KICAgQWRkZWQgY29uZmlndXJlLXRpbWUgY29kZSBmb3IgY2hlY2tpbmcgd2hldGhlciB0aGUgY29uc3RydWN0b3JzCiAgIGZvciBhbGwgY29uZmlndXJlZAogICB0cmFuc3BvcnRzIGFyZSBpbnZva2VkIGZyb20gc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLgoKMjAxMC0wNS0xNCAxMTowMCAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgRG9jdW1lbnRhdGlvbjogdXBkYXRlZCBDeWd3aW4gYnVpbGQgaW5zdHJ1Y3Rpb25zLgoKMjAxMC0wNS0xNCAwOToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X251bGwuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgIAogICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE0IDA4OjUwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBBZGRlZCAtbm8tdW5kZWZpbmVkIGZsYWcgdG8gbGlicmFyeSBsaW5rIGNvbW1hbmRzIHN1Y2ggdGhhdAogICBsaWJ0b29sIGNhbiBidWlsZCBETExzIG9uIFdpbjMyLgogICBOb3RlOiBidWlsZGluZyBETExzIG9uIFdpbjMyIGRvZXMgbm90IHlldCB3b3JrIGJlY2F1c2Ugb2YgdGhlCiAgIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbgogICBsaWJuZXRzbm1waGVscGVycyBhbmQgbGlibmV0c25tcGFnZW50CiAgIChzZWUgYWxzbwogICBodHRwOi8vd3d3Lm5ldC1zbm1wLm9yZy93aWtpL2luZGV4LnBocC9MaWJyYXJ5X2xheWVyaW5nKS4KCjIwMTAtMDUtMTQgMDg6NDIgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIGxpYnRvb2wgYnVnIGZpeDogYWxzbyBwYXNzIGZsYWdzIHN0YXJ0aW5nIHdpdGggLWYgdG8gdGhlIGxpbmtlcgogICBzaW5jZSB0aGVzZSBjYW4gYWZmZWN0IGxpbmtpbmcuIFRoZSBmbGFnIC1mc3RhY2stcHJvdGVjdG9yIGUuZy4KICAgdHJpZ2dlcnMgaW5jbHVzaW9uIG9mIGxpYnNzcC4KCjIwMTAtMDUtMTQgMDg6NDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGFib3J0IGlmIHRoZSBmaWxlIHByb2dyYW0gY291bGQgbm90IGJlIGZvdW5kLAogICBzaW5jZSB0aGlzIGlzIGVzc2VudGlhbCBmb3IgcHJvcGVyIG9wZXJhdGlvbiBvZiBsaWJ0b29sLgogICBDSEFOR0VTOiBDeWd3aW46IG5laXRoZXIgY29tcGlsZSBub3IgbGluayB3aW5waXBlLmMuCgoyMDEwLTA1LTEzIDA4OjU4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSYW4gYXV0b3JlY29uZi4KCjIwMTAtMDUtMTIgMjA6MTYgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBMaW51eDogYnVpbGRzIGFnYWluIHdpdGggZW1iZWRkZWQgUGVybCBkaXNhYmxlZCAoYnVnCiAgIDI5ODU5MTUpLgoKMjAxMC0wNS0xMiAxOTo0NyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5jLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgRm9sbG93LXVwIGZvciByMTg2ODQ6IHVuLWJyZWFrIHRoZSBXaW4zMiBNU1ZDIGJ1aWxkLgoKMjAxMC0wNS0xMiAxOTo0MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgV2luMzI6IGZpeGVkIGEgdHlwbyBhbmQgbWFkZSBpbmRlbnRhdGlvbiBjb25zaXN0ZW50LgoKMjAxMC0wNS0xMiAxOToxMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjb25zdHJ1Y3QgdGVtcCBidWlsZCBmaWxlcyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeQoKMjAxMC0wNS0xMiAxOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggcmVjZW50bHkgYnJva2VuIG9sZCBwZXJsIGZ1bmN0aW9uYWxpdHkKCjIwMTAtMDUtMTIgMTg6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCBhIC0tc2hvcnQgb3B0aW9uIHRvIHNob3J0ZW4gdGhlIHNob3cgb3V0cHV0IHRvIG1pbmltYWxpc3RpYwoKMjAxMC0wNS0xMiAxNDoxNCAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIuCgoyMDEwLTA1LTEyIDEzOjAyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBtZW1vcnkgbGVhayB3aGVuIHJlYWRpbmcgc2Vuc29ycyBmb3IKICAgTE0tU0VOU09SUy1NSUIuCgoyMDEwLTA1LTEyIDEyOjU3ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUmV2ZXJ0IHJldmlzaW9uIDE4Njg5CiAgIExhdGVzdCBXaW4zMiBidWlsZHMgaW5jbHVkZSBzdXBwb3J0IGZvciBzdHJ0b3VsbC4KCjIwMTAtMDUtMTIgMTI6MDUgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGFkZGVkIGRldGVjdGlvbiBvZiBsbV9zZW5zb3JzIHZlcnNpb24uCiAgIEkgYW0gbm90IEF1dG9jb25mIGd1cnUsIHNvIEkgaG9wZSBJIGdvdCBpdCByaWdodC4gVGhlIGdvYWwgaXMgdG8KICAgZGVmaW5lIE5FVFNOTVBfVVNFX1NFTlNPUlNfVjMgKmJlZm9yZSogY29uZmlnX21vZHVsZXNfYWdlbnQKICAgcHJvY2Vzc2VzIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaC4KCjIwMTAtMDUtMTIgMDc6MDMgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG1pc3NpbmcgZGVwZW5kZW5jaWVzIGJldHdlZW4gdHJhbnNwb3J0cy4KCjIwMTAtMDUtMTIgMDM6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHRpdGxlIGdlbmVyYXRpb24gYWZ0ZXIgY2hhbmdlIHRvIHdoYXQgc3JjZGlyIG1lYW50CgoyMDEwLTA1LTEyIDAyOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgdW5kbyBsYXN0IGNoYW5nZSB3aGljaCB0dXJuZWQgb3V0IHRvIG9ubHkgY2F1c2UgZXJyb3JzIGlmIHlvdSBoYWQKICAgYSBvbGQgLmNvbmYgZmlsZSBhcm91bmQKCjIwMTAtMDUtMTIgMDI6MTMgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggdjNfY2EgY3JlYXRpb24gZXh0ZW5zaW9uIG5hbWUKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAga2VlcCBmb3JtYXQgdmVyc2lvbiAjIGluIGNlcnQgaW5kZXhlczsgZG9uJ3Qgc3RvcmUgaGFzaCB0eXBlCiAgIHN0cmluZyBpbiBpbmRleDsKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGludmVydGVkIGNvbnZlcnNpb24gY2FsbDsgbGVzcyB2ZXJib3NlIGRlZmF1bHQgZGVidWcKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IHBhcnNpbmcgb2YgLVQgbmFtZS92YWx1ZSBwYWlycwoKMjAxMC0wNS0xMSAyMzozMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGJ1ZyBmaXhpbmcgYW5kIGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgIm1ha2UgdGVzdCIgd2l0aAogICBUZXN0OjpIYXJuZXNzCiAgIChzdGlsbCBkb2Vzbid0IHdvcmsgZm9yIG1lLCB0aG91Z2gpCgoyMDEwLTA1LTExIDIyOjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgRG8gTk9UIGhhcmRjb2RlIC91c3IvYmluL3BlcmwgYXMgdGhlIFBlcmwgcGF0aAoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggc3Rhc2ggZmlsZSBoYW5kbGluZwoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBsb25nIG9wdGlvbnMgc3VjayA7LSkuIHByZWZlciBkb3VibGUgZGFzaGVzIGZvciBsb25nIG9wdGlvbnMgdG8KICAgbWF0Y2ggdGhlIHJlc3Qgb2YgdGhlIE5ldC1TTk1QIGNvZGUgYmFzZQoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBhZGRlZCBhYmlsaXR5IHRvIHJ1biBvbmx5IHRoZSBmYWlsZWQgdGVzdHMgZnJvbSB0aGUgbGFzdCBydW4KCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZG9uJ3QgZm9yY2UgY29sb3IKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY2xlYW51cCBvZiBvbGRlcgoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBNaW5pbWFsbHkgc3VwcG9ydCB0aGUgb2xkZXIgVGVzdDo6SGFybmVzcyBwZXJsIG1vZHVsZSBmb3IgcnVubmluZwogICB0aGUgb2xkZXIgdGVzdHMgYXQgbGVhc3QKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2V0IGEgZGVmYXVsdCBzZWN1cml0eU5hbWUgYW5kIHNlY3VyaXR5TW9kZWwgaWYgVExTIG9yIERUTFMgaXMgaW4KICAgdXNlIG9uIHRoZSBjbGllbnQgc2lkZQoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOgoKICAgYWxsb3cgc2VjdXJpdHkgbW9kZWxzIHRvIHBlcmZvcm0gbW9yZSBvZiB0aGUgc2Vzc2lvbiBzZXR1cDsgbW92ZWQKICAgbW9yZSBVU00gc3BlY2lmaWMgc2V0dXAgaW50byBpdCdzIHNldHVwIHJvdXRpbmUKCjIwMTAtMDUtMTEgMTg6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBwYXJhbSB0byBsb29rdXAgcGVlciBjZXJ0CgoyMDEwLTA1LTExIDE2OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWxsb3cgJy0nIGluIGZxZG47IGFkZCBkZWJ1ZyBvdXRwdXQgZm9yIGhvc3Qgc3BlY2lmaWMgY29uZmlnCgoyMDEwLTA1LTExIDE1OjQ2ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEVuc3VyZSAnbmV0c25tcF9yZWFkX21vZHVsZScgaXMgYXZhaWxhYmxlIGZvciBwZXJsIGJ1aWxkLgoKMjAxMC0wNS0xMSAxNTo0NCAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEZpeCBwZXJsIGJ1aWxkIHVuZGVyIFdpbmRvd3MgKHN0cnRvdWxsIG5vdCBhdmFpbGFibGUpCgoyMDEwLTA1LTEwIDA3OjA3ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBtaXNzaW5nIHN5bWJvbCBuZXRzbm1wX3NubXBTU0hEb21haW5fbGVuLAogICBtYWtlIG5ldHNubXBfc25tcFNTSERvbWFpbiBjb25zdC4KCjIwMTAtMDUtMDkgMjI6MDMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZDoKCiAgIERvIG5vdCByZXF1aXJlIHF1b3RlcyBhcm91bmQgdGhlIENQVSBzdHJpbmcgYXMgdGhhdCBkZXBlbmRzIG9uCiAgIGhvdyB0aGUgYWdlbnQgaXMgY29uZmlndXJlZC4KCjIwMTAtMDUtMDkgMjE6NDMgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvRXhpdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL0V4aXQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEV4dHJhY3QgdGhlIEV4aXQgYW5kIHJlc3RhcnQqIHN1YnJvdXRpbmVzIGZyb20KICAgdXRpbF9mdW5jIGluIG9yZGVyIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgbGVzcyBjb2RlIGZvciB0aGUKICAgbWluaW1hbCBjYXNlLgoKMjAxMC0wNS0wOSAxNjo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgZnVuY3Rpb24KICAgZ2V0X2V4ZWNfb3V0cHV0KCkgcmV0dXJucyBhIHZhbHVlIHdoZW4gdGhlIHByZXByb2Nlc3NvciBzeW1ib2wKICAgVVNJTkdfVUNEX1NOTVBfRVhURU5TSUJMRV9NT0RVTEUgaGFzIG5vdCBiZWVuIGRlZmluZWQuCgoyMDEwLTA1LTA5IDE2OjQ1ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBidWlsZHMgbm93IGFsc28gd2hlbiB0aGUgc291cmNlIGZpbGVzIGFyZQogICBsb2NhdGVkIG9uIGEgU2FtYmEgZmlsZXN5c3RlbSBpbnN0ZWFkIG9mIGEgbG9jYWwgZmlsZXN5c3RlbS4KCjIwMTAtMDUtMDkgMTM6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBDb3JyZWN0IHRoZSBpZiB0aGF0IHRyaWVzIHRvIGZpZ3VyZSBvdXQgaWYgYSBzdWZmaWNpZW50bHkgbmV3IGdjYwogICBpcyBpbiB1c2UuCgoyMDEwLTA1LTA5IDEyOjUwICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ2hlY2sgZm9yIHRoZSBuZWVkZWQgbW9kdWxlIGFuZCBub3Qgc29tZSBvdGhlciBvbmUuCiAgIExvZyB0aGUgY29ycmVjdCBtaXNzaW5nIHN5bWJvbC4KCjIwMTAtMDUtMDkgMDk6MjEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHV0aWxpdGllcy9leGVjdXRlIGRvIG5vdCBuZWVkIGFueXRoaW5nIGZyb20KICAgdXRpbF9mdW5jcywgc28gc3RvcCBkZXBlbmRpbmcgb24gaXQuCgoyMDEwLTA1LTA5IDA5OjEyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgTkVXUzogc25tcGQ6IFJlbW92ZWQgdGhlIHVudXNlZCBmdW5jdGlvbiB4eF90b2tlbml6ZV9leGVjX2NvbW1hbmQKICAgZnJvbSB1dGlsaXRpZXMvZXhlY3V0ZS4KCjIwMTAtMDUtMDkgMDk6MDEgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVwbGFjZSB0aGUgZGVidWdnaW5nIGZ1bmN0aW9ucyB3aXRoIGR1bW1pZXMKICAgd2hlbiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQuCgoyMDEwLTA1LTA5IDA4OjAyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkOgoKICAgQ2hlY2sgdGhhdCB0aGUgVURQIHRyYW5zcG9ydCBpcyBlbmFibGVkCgoyMDEwLTA1LTA5IDA4OjAxICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdHJhbnNwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgRmFjdG9yIG91dCBjaGVjayBmb3IgbWliSUkvc3lzdGVtX21pYgoKMjAxMC0wNS0wOSAwNzo1OSAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIEFkZCBtaXNzaW5nIGluY2x1ZGVzCgoyMDEwLTA1LTA4IDIzOjE2ICBtYWdmcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEFkZGl0aW9uYWxseSBmaXggbWFrZSB0ZXN0IGZvciB0aGUgdW5jb21tb24gY2FzZSB3aGVyZSBidWlsZGRpcgogICA9PSBzcmNkaXIKCjIwMTAtMDUtMDggMjI6NTUgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byBydW4gdGhlIHRlc3Qgc3VpdGUgZnJvbQogICBhbnl3aGVyZS4KICAgQ2hhbmdlIHRoZSAtRCBvcHRpb24gdG8gZXhwZWN0IHRoZSBwYXRoIG9mIHRoZSB0b3Agc291cmNlCiAgIGRpcmVjdG9yeS4KICAgQWRkIGFuIC1zcmNkaXIgb3B0aW9uIHRoYXQgaXMgYW4gYWxpYXMgZm9yIC1ELgogICBBZGQgYW4gLWJ1aWxkZGlyIG9wdGlvbiB0byBkZXNpZ25hdGUgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgdGVzdAogICBvYmplY3QgaXMuCiAgIFB1dCBzcmNkaXIgYW5kIGJ1aWxkZGlyIGluIHRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIHRlc3Qgc2NyaXB0cwogICBGYWN0b3Igb3V0IHRoZSBncmVwIHBhcnQgb2YgU0tJUElGIGFuZCBTS0lQSUZOT1QgdG8gSVNERUZJTkVECiAgIFVzZSBtb3JlIHJlYWRhYmxlIGtleXMgaW4gdGhlIG9wdHMgaGFzaCBpbiBSVU5GVUxMVEVTVFMKICAgQWRqdXN0IGV2ZXJ5dGhpbmcgdG8gdXNlIHNyY2RpciBhbmQgYnVpbGRkaXIKCjIwMTAtMDUtMDggMjI6NDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmM6CgogICBVc2UgY29ycmVjdCBhcmd1bWVudCB0eXBlcwoKMjAxMC0wNS0wOCAyMjowNyAgbWFnZnIKCiAgICogTWFrZWZpbGUuaW46CgogICBDb25zb2xpZGF0ZSB0aGUgdGVzdCBhbmQgdGVzdC1taWJzIHRhcmdldHMuCiAgIEV4cG9zZSB0aGUgdGVzdGFsbCB0YXJnZXQgaW4gdGhlIHRvcCBtYWtlZmlsZS4KCjIwMTAtMDUtMDggMjI6MDUgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIERvIG5vdCBhYm9ydCB3aGVuIHN0ciBpcyBOVUxMIGFzIHRoYXQgaXMgYSBwZXJmZWN0bHkgdmFsaWQgaW5wdXQuCgoyMDEwLTA1LTA4IDIyOjAzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmM6CgogICBVc2UgY29ycmVjdCBhcmd1bWVudCB0eXBlcwoKMjAxMC0wNS0wOCAyMjowMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgQWRkIG1pc3NpbmcgbmV3bGluZQoKMjAxMC0wNS0wNyAyMToxMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5hYwoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIGZpeCBoYW5kbGluZyBvZiBjZXJ0IGFsZ29yaXRobSBpbiBmaW5nZXJwcmludHM7IGNvbnZlcnQgaW4vb3V0CiAgIGZpbmdlcnBpbnRzCiAgIGZyb20vdG8gaGV4CgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBkb250IHNwZWNpZnkgaGFzaCB0eXBlIGZvciBmaW5nZXJwcmludAoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGhhbmRsZSBmaW5nZXJwcmludCB0eXBlczsgZHJvcCBzYW4gZmllbGRzIGZyb20gY2VydCBzdHJ1Y3Q7CiAgIGNvbnNpZGVyIGRpcmVjdG9yeQogICB3aGVuIHBhcnRuZXJpbmcga2V5cy9jZXJ0cwoKMjAxMC0wNS0wNyAxOToyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIG1vdmUgZGVmYXVsdCBwcm9tcHRzIGVhcmxpZXIKCjIwMTAtMDUtMDYgMTU6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYmV0dGVyIFNBTiBleHRyYWN0aW9uOyB0d2VhayBkdWJndXMgbWVzc2FnZXM7IHF1aWV0IGNvbXBpbGVyCiAgIHdhcm5pbmdzCgoyMDEwLTA1LTA2IDE1OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHJlZHVjZSBjZXJ0IGRlYnVnIG91dHB1dDsgZGVidWcgaW5zdGVhZCBvZiBsb2dfaW5mbyBpbiBkdW1wcwoKMjAxMC0wNS0wNiAxNDo0OSAgZHRzMTIKCiAgICogc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIERvbid0IGFzc3VtZSB0aGUgcHJlc2VuY2Ugb2YgPHN0cmluZy5oPgogICAoYnJpbmcgaW50byBsaW5lIHdpdGggYWxsIG90aGVyIG9jY3VyYW5jZXMpCgoyMDEwLTA1LTA2IDE0OjQxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9jYWxsYmFjay5jOgoKICAgQ0hBTkdFUzogV2luZG93czogRml4IGJ1aWxkIHVuZGVyIE1pbkdXCiAgIGJhY2svZm9yd2FyZCBwb3J0IG9mIHJldmlzaW9uIDE4NjMxCgoyMDEwLTA1LTA1IDE3OjQzICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB0eXBlIGluIGxvZyBtc2cKCjIwMTAtMDUtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcmVtb3ZlIGltcG9ydCBmb3IgdW51c2VkIGZ1bmN0aW9uCgoyMDEwLTA1LTA0IDA3OjEyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgTmVnYXRlIHJlYXNvbiBnaXZlbiBmcm9tIFNLSVBJRgoKMjAxMC0wNS0wMyAyMjozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggbGVuIGluIGVtYWlsIGNtcDsgbW9yZSBleHRyYWN0IGRlYnVnZ2luZwoKMjAxMC0wNS0wMyAyMjozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjb3B5IG9jZXJ0IHRvIGFkZGlvbmFsIG1hcHMKCjIwMTAtMDUtMDMgMTQ6MjAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHJlbW92ZSBkZXBlbmRlbmN5IG9uIHBlcmwgbW9kdWxlIG5vdCBwcmVzZW50IGluIENlbnRPUwoKMjAxMC0wNS0wMyAwMzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBkb24ndCBhY2Nlc3Mgc3RydWN0IGludGVybmFscyBkaXJlY3RseQoKMjAxMC0wNS0wMyAwMzo0OCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZml4IGNvbXBpbGluZyB3aXRoLW91dC1taWJtb2R1bGVzPXV0aWxpdGllcy9leGVjdXRlCgoyMDEwLTA1LTAxIDE5OjA4ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2Q6CgogICBDb3JyZWN0IHRoZSBzb3VnaHQgc3RyaW5nIHRvIG1ha2UgdGhlIHRlc3QgcGFzcyB3aGVuIG9rLgoKMjAxMC0wNS0wMSAxNzoxNSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbW9yZSBjb25zaXN0ZW50IHRyZWF0bWVudCBvZiBrZXlVc2FnZSwgYmFzaWNDb25zdHJhaW50cywgb3RoZXIKICAgeDUwOXYzIG9wdGlvbnMKCjIwMTAtMDQtMzAgMjM6MzcgIG1hcnoKCiAgICogbG9jYWwvY2VydGdlbi10ZXN0LnBsOgoKICAgbGFtZSB0ZXN0IHNjcmlwdCBidXQgY292ZXJzIGEgY2h1bmsgb2YgdGhlIGNvZGUKCjIwMTAtMDQtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWtpbnN0YWxsZGlycyBpbnN0ZWFkIGluc3RlYWQgb2YgRmlsZTo6UGF0aAoKMjAxMC0wNC0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBlbnN1cmUgbmV0LXNubXAtY29uZmlnIHNjcmlwdCBjYW4gYmUgcnVuIGZyb20gdGhlIGJ1aWxkIGRpcgoKMjAxMC0wNC0zMCAyMTozMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaGFuZGxlIGdlbmNlcnQgLS1jYQoKMjAxMC0wNC0zMCAyMTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgaGVscCBmb3IgY2VydFNlY05hbWU7IGNvbnRpbnVlIGJ1aWxkaW5nIGNlcnQgaW5kZXhlcyBldmVuIGlmCiAgIHdlIGNhbnQgc2F2ZQogICB0byBwZXJzaXN0ZW50IGRpcgoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggY2hlY2sgY291bnQgZm9yIDgyMiBuYW1lcyBpbiB0aGUgc25tcGQubG9nCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCBtYWxsb2MgdW5uZGVybGVuZ3RoIGJ5IDEgZXJyb3IKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgY29tbWVudCBvdXQgdGhlIDgyMiB0ZXN0czsgdGhleSdyZSBicm9rZW4gYXQgdGhlIG1vbWVudAoKMjAxMC0wNC0zMCAxOTozNiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZG9uJ3QgbG9zZSBTQU4gd2hlbiBzaWduaW5nIHcvIENBCgoyMDEwLTA0LTMwIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbWFrZSBuYW1lIGNoYW5nZSB0byByZmM4MjIgZnJvbSB0eXBvZWQgODIyMAoKMjAxMC0wNC0zMCAxODo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCB0ZXN0cyB0byBkbyBvdGhlciBzdWJqZWN0QWx0TmFtZSBtYXBwaW5nCgoyMDEwLTA0LTMwIDE3OjMxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggaXNzdWVzIDEsMiw0IGFuZCAtQyBoYW5kbGluZwoKMjAxMC0wNC0yOSAwMzozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0bHN0bUNlcnRUb1RTTlRhYmxlIHRvIHVzZSBjYWNoZSArIGNlcnRfdXRpbCBtYXBzCiAgIGNvbnRhaW5lcgoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGNoZWNrIGluc2VydCByZXR1cm4KCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCByZW1vdmUgZnVuY3Rpb24gdG8gY29udGFpbmVyIGl0ZXJhdG9yOwogICBpbXBsZW1lbnQgaXQgZm9yCiAgIGJpbmFyeV9hcnJheQoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgbWFrZSBzdXJlIGNvbnRhaW5lciBzeW5jIGluY3JlbWVudGVkIG9uIHNvcnQsIGluc2VydCBhbmQgcmVtb3ZlCgoyMDEwLTA0LTI4IDA3OjIwICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBjb21tZW50LgoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYWtlZmlsZSBmb3IgdGVzdCB0YXJnZXQKCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwOgoKICAgbWFrZSB0aGUgdGVzdCBzdWl0ZSBydW4gb3V0c2lkZSB0aGUgc291cmNlIGRpcmVjdG9yeSBhZ2Fpbi4KCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGRlYWwgd2l0aCBvdXQtb2Ytc291cmNlIHRyZWUgYnVpbGRpbmcKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdGVzdGluZyB0byBjaGVjayBjZXJ0aWZpY2F0ZSB0byBzZWN1cml0eW5hbWUgbWFwcGluZ3MgYW5kIGRlbmlhbHMKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGNyZWF0ZWQgYSBtYXBwZWQgdXNlcgoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwOgoKICAgZ2VuZXJhdGUgb2JqZWN0IGNvZGUgd2l0aCAtZyBkZWJ1Z2dpbmcKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYzoKCiAgIG1vcmUgYWNjdXJhdGUgY3VycmVudCBBUEkgdXNhZ2UgZm9yIHNjYXBpIGNvZGUKCjIwMTAtMDQtMjcgMjE6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IGNlcnQgaW5pdCBkdXBsaWNhdGUgY2FsbCBjaGVjawoKMjAxMC0wNC0yNyAyMDo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNvbnZlcnQgdXNlciBmaW5nZXJwcmludCB0byBsb3dlciBhbmQgc3RyaXAgY29sb25zOyBhZGQgZXh0ZXJuCiAgIHByb3RvdHlwZQogICBmb3IgY2VydCBpbml0IHNvIHdlIGRvbid0IG5lZWQgaGVhZGVyCgoyMDEwLTA0LTI3IDIwOjE1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXBhcmF0ZSBjZXJ0IGluaXQgYW5kIGNlcnQgbG9hZGluZzsgYWRkIGNlcnRTZWNOYW1lIGNvbmZpZyB0b2tlbgoKMjAxMC0wNC0yNyAwMzoxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgbWVyZ2UgTkVUU05NUF9GVU5DVElPTiBhbmQgIU5FVFNOTVBfRlVOQ1RJT04gYXNzZXJ0IGNhc2VzCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBsb3RzIG9mIG5ldyBjZXJ0IGZ1bmN0aW9uYWxpdHkKICAgLSBhZGQgc3NsIGZ1bmNzIGZvciBjZXJ0IGV4dGVuc2lvbnMgYW5kIHNzbCBjZXJ0IGNoYWlucwogICAtIGZ1bmN0aW9ucyBhbmQgbmV3IG5ldHNtcF9jZXJ0X21hcCBzdHJ1Y3QgZm9yIGxvb2tpbmcgdXAgY2VydAogICBtYXBwaW5ncwogICAtIGFkZCBjZXJ0aWZpY2F0ZSBtYXBwaW5nIGZvciBzZWNuYW1lCiAgIC0gYWRkIGNvZGUgdG8gYnVpbGQgY2VydCBjaGFpbnMKICAgLSBhZGQgc3ViamVjdCB0byBjZXJ0IGluZGV4IGNhY2hlCiAgIC0gcmVidWlsZCBpbmRleGVzIGlmIGFueSBlcnJvciB3aGlsZSBwYXJzaW5nIGluZGV4CiAgIC0gcmVmb3JtYXQgZHVtcCBvdXRwdXQKICAgLSBhZGQgTlNfQ0VSVF9DQSBhbGxvd2VkX3VzZSBmbGFnCiAgIC0gYWRkIHN1YmplY3QsIGlzc3VlciBhbmQgaXNzdWVyX2NlcnQgdG8gbmV0c25tcF9jZXJ0CiAgIC0gbW92ZSBjZXJ0IGNvbnRhaW5lciBzZXR1cCB0byBpdHMgb3duIGZ1bmN0aW9uCiAgIC0gYWRkIGNlcnQgc3ViamVjdCBuYW1lIHN1YmNvbnRhaW5lcgoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmM6CgogICBtb3ZlIGlwdjYgc3BlY2lmaWMgdmFyIGRlY2wgaW5zaWRlIGlmZGVmCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IHRkYXRhIGhlbHBlciBub3cgc2F2ZXMgZmxhZ3MgcGFzc2VkIGR1cmluZwogICBjcmVhdGlvbjsgYWRkIHRkYXRhCiAgIGZsYWcgdG8gTk9UIGNyZWF0ZSB0aGUgdGFibGUgY29udGFpbmVyCgoyMDEwLTA0LTI3IDAzOjAxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgaW50ZXJmYWNlIGZvciBkdXBsaWNhdGluZyBhIGNvbnRhaW5lcgogICBDSEFOR0VTOiBzbm1wbGliOiBjb250YWluZXIgY2hhbmdlczogYWRkIGZsYWdzIGZpZWxkIHRvIGNvbnRhaW5lcgogICBtZXRhLWRhdGE7CiAgIGNoZyBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHRvIHVzZSBjb250YWluZXIgbWV0YS1kYXRhIGZsYWdzCgoyMDEwLTA0LTI2IDIyOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIGEgdGVzdCB0byB2ZXJpZnkgdGhhdCB3aGVuIHRoZSB0cmFuc3BvcnQgaXMgY29uZmlndXJlZCB3aXRoCiAgIGEgcmVtb3RlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50IHRoZSBjb25uZWN0aW9uIGlzIGRlbmllZAoKMjAxMC0wNC0yNiAyMjozMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgYWRkZWQgdGVzdHMgZm9yIC1UIGZsYWcgdXNhZ2UgYW5kIGludmFsaWQgdXNlciB1c2FnZQoKMjAxMC0wNC0yNiAyMDo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkOgoKICAgaGF2ZSB0aGUgYWxpYXMgdHJhbnNwb3J0IHNvdXJjZSB0aGUgcmlnaHQgU3YzY29uZmlnIGZpbGUKCjIwMTAtMDQtMjYgMjA6NTAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIHdvcmtpbmcgc3VwcG9ydCBvZiBUTFMvRFRMUyB0ZXN0aW5nIGluY2x1ZGluZyBjZXJ0IGdlbmVyYXRpb24KCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBob25vciB0aGUgY29uZmlnIGRpciBpZiBzcGVjaWZpZWQgdmlhIC1DCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCByZWFsbG9jIGNhbGwgZm9yIGJ1ZmZlcmVkIHBhY2tldHMKCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBwcm9wZXIgc2tpcCBvdXRwdXQgZm9yIHJlcG9ydGluZyByZWFzb24KCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFmdGVyIGJhY2tzbGFzaCBpbiBtYWNybwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RyYW5zcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LXVzZXIuY2VydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LXVzZXIucHJpdjoKCiAgIHRlc3RzIGZvciBtaW5pbWFsbHkgdGVzdGluZyBhbGwgdGhlIHRyYW5zcG9ydHMKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUkVBRE1FOgoKICAgbWluaW1hbGx5IGRvY3VtZW50IG5ldyBSVU5GVUxMVEVTVFMgc2NyaXB0CgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9ULmMsIHRlc3RpbmcvVDIuc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LCAgIAogICAgICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMsICAgCiAgICAgIHRlc3RpbmcvZGF0YS5rdWwtbWQ1LCB0ZXN0aW5nL2RhdGEua3VsLXNoYTEsIHRlc3RpbmcvbWlzY3Rlc3QuYywgIAogICAgICAgdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaCwgdGVzdGluZy90ZXN0X2t1bC5zaDoKCiAgIGRlbGV0ZWQgb2xkIGZpbGVzIG5vdCB3b3J0aCByZXN0b3JpbmcKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90ZXN0bGlzdDoKCiAgIHJlbW92ZSBvYnNvbHV0ZSB0ZXN0IGxpc3QKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYzoKCiAgIGEgaGFzaC10ZXN0aW5nIC5jIGZpbGUgSSBoYWQgbGF5aW5nIGFyb3VuZAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgdGVzdGFsbCB0YXJnZXQKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9ldGltZXRlc3QuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIG1vdmUgb2xkIEMtY29kZSB0ZXN0cyBpbiBwbGFjZQoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkOgoKICAgc2tpcCBzb2xhcmlzIGNvbW1lbnRzCgoyMDEwLTA0LTI2IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IGludm9jYXRpb24gb2YgUlVORlVMTFRFU1RTCgoyMDEwLTA0LTI2IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjFjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YyY2NvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYWdlbnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWd0cmFwZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YW55Y29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9TdjFjb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YyY2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQsIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYmFzZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZCwgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjIwc25tcHYzYnVsa2dldCwgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1hdXRoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDIsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QzLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsLCB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4LCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXAsIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmwsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTMyc25tcHYzdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQyc25tcHYzdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwLCB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5jZXJ0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2OgoKICAgTkVXUzogdGVzdGluZzogQnJhbmQgbmV3IHRlc3Qgc3VpdGUgZGVzaWdlbmVkIHRvIGV2ZW50dWFsbHkgdGVzdAogICBtb3JlIGZ1bmN0aW9uYWxpdHksIHByb3ZpZGUgZm9yIHN1cHBvcnQgb2YgdW5pdC10ZXN0cyBhbmQgc3VwcG9ydAogICBvZiBBUEkgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICByZW1vdmVkIGEgZGVidWdnaW5nIGVjaG8KCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBtb3JlIGJ1ZyBmaXhlcyBmb3Igc3RyaW5nIHNlYXJjaGVzCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgYWRkZWQgYSBuZXcgbWFjcm8gdG8gY2hlY2sgYSB0cmFwZCBjb3VudAoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHVzZSBpbmRpdmlkdWFsIG91dHB1dCBmaWxlcyBhbmQgZml4IHNvbWUgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIG1hZGUgZXhpc3RpbmcgdGVzdCBzdWl0ZSBwdXQgb3V0IFRBUCBvdXRwdXQKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaCwgdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaCwgICAKICAgICAgdGVzdGluZy9ldmFsX3N1aXRlLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvZnVsbHRlc3RzLCAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgYmVnaW5uaW5nIG9mIG1vdmluZyBVQ0QgdGVzdCBzdWl0ZSBpbnRvIGEgbGFyZ2VyIHN1YmRpcmVjdG9yeQoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBhbGxvdyBydW5uaW5nIHRlc3RzIHRoYXQgbWF0Y2ggYSByZWdleHAKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VtbWFyaXplIHRlc3RzIHRoYXQgZmFpbGVkCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNyZWF0ZWQgdGhlIGFiaWxpdHkgdG8gaGF2ZSBydW5fIHNjcmlwdHMgZm9yIGV4ZWN1dGluZyBjZXJ0YWluCiAgIHR5cGVzCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1hZGUgdGhlIGJ1aWxkLXNjcmlwdC1jaGVjayByb3V0aW5lIGdlbmVyaWMKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VwcG9ydCBmb3IgYnVpbGQgc2NyaXB0cwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBwcm92aWRlIGluZnJhc3RydWN0dXJlIGZvciBidWlsZGluZyBhbmQgcmVuYW1pbmcgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbW9yZSB0ZXN0IGluZnJhc3RydWN0dXJlIHNldHVwCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1cHBvcnQgdGhlIGtleXdvcmQgJ2FsbCcKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZW5hYmxlIGdyb3VwIGdhdGhlcmluZwoKMjAxMC0wNC0yNiAyMDozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjcmVhdGlubyBvZiBhIG5ldyB0ZXN0aW5nIGhhcm5lc3MKCjIwMTAtMDQtMjUgMTc6MzcgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIERvY3VtZW50YXRpb24gdXBkYXRlLgoKMjAxMC0wNC0yNSAxNToyMSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiByZXZlcnRlZCBhIHJlY2VudCB1bm5lY2Vzc2FyeSBtb2RpZmljYXRpb24uCgoyMDEwLTA0LTI1IDE1OjAwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBoYW5kbGUgbXVsdGlwbGUgLS1zYW4gYXJncywgY2hlY2sgZXJyb3IgY29kZXMgb24gb3BlbnNzbCBjbWRzIGFuZAogICBkaWUgb24gZmFpbHVyZQoKMjAxMC0wNC0yNSAxNDoxOCAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aCBTREsgc3VwcG9ydCBkaXNhYmxlZC4KCjIwMTAtMDQtMjUgMTQ6MTggIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAKICAgICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgV2luMzI6IHJlc3RvcmVkIGNvbnNpc3RlbmN5IGJldHdlZW4gd29ya3NwYWNlLWJ1aWxkIGFuZCBiYXRjaAogICBidWlsZCAtLSBtYWRlIHN1cmUgdGhhdCBub3RpZmljYXRpb25fbG9nLmMgaXMgb25seSBpbmNsdWRlZCBpbgogICB0aGUgbmV0c25tcG1pYnMgcHJvamVjdC4KCjIwMTAtMDQtMjUgMTM6NTggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgIAogICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIFdpbjMyOiBmaXhlcyBmb3IgcmVjZW50bHkgaW50cm9kdWNlZCBidWlsZCBicmVha2FnZS4KCjIwMTAtMDQtMjUgMTM6NTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRoIFNESyBzdXBwb3J0IGRpc2FibGVkLgoKMjAxMC0wNC0yNSAxMzo0OCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgc25tcGxpYi9jbG9zZWRpci5jLCBzbm1wbGliL29wZW5kaXIuYywgIAogICAgICAgc25tcGxpYi9yZWFkZGlyLmMsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIFdpbjMyIE1TVkMgNiBub24tU0RLIGJ1aWxkIHdvcmtzIGFnYWluLgoKMjAxMC0wNC0yNSAxMzo0MiAgYnZhc3NjaGUKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSB0cmFuc2Zvcm1hdGlvbiBydWxlLgoKMjAxMC0wNC0yNSAxMjowNSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNYWRlIGl0IGFnYWluIHBvc3NpYmxlIHRvIGRpc2FibGUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsgd2hlbgogICBidWlsZGluZyB2aWEgd2luMzIvYnVpbGQuYmF0LgoKMjAxMC0wNC0yMyAxMzoxNCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgLS1zYW4gRE5TOmEuYi5jIGhhbmRsaW5nLCBoZWxwIHRleHQgZml4ZXMsIG90aGVyIGJ1ZyBmaXhlcy4KICAgTm90ZSBtdWx0aXBsZSAtLXNhbiBub3Qgc3VwcG9ydGVkIHlldAoKMjAxMC0wNC0yMSAyMjozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBidWlsZCB0aGUgLm1hZGUgdmVyc2lvbiBvZiBuZXQtc25tcC1jZXJ0CgoyMDEwLTA0LTIxIDIyOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQgYWZ0ZXIgbW92aW5nIGFsbCB0aGUgZmlsZXMgYXJvdW5kCgoyMDEwLTA0LTIxIDIwOjE2ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGJ1aWxkIHRydXN0IGNoYWluIGZvciBjbGllbnQgY2VydDsgYWRkIHN1YmplY3QgdG8gaW5kZXggY2FjaGU7CiAgIHJlYnVpbGQgaW5kZXhlcwogICBpZiBhbnkgZXJyb3Igd2hpbGUgcGFyc2luZyBpbmRleDsgcmVmb3JtYXQgZHVtcCBvdXRwdXQKICAgLSBhZGQgTlNfQ0VSVF9DQSBhbGxvd2VkX3VzZSBmbGFnCiAgIC0gYWRkIHN1YmplY3QsIGlzc3VlciBhbmQgaXNzdWVyX2NlcnQgdG8gbmV0c25tcF9jZXJ0CiAgIC0gbW92ZSBjZXJ0VG9UU05fZW50cnkgdG8gY2VydF91dGlsIGhlYWRlcgogICAtIG1vdmUgY29udGFpbmVyIHNldHVwIHRvIGl0cyBvd24gZnVuY3Rpb24KICAgLSBhZGQgc3ViamVjdCBuYW1lIHN1YmNvbnRhaW5lcgogICAtIGFkZCBuZXRzbm1wX29wZW5zc2xfY2VydF9kdW1wX2V4dGVuc2lvbnMsCiAgIG5ldHNubXBfb3BlbnNzbF9jZXJ0X2lzc3VlZF9ieQoKMjAxMC0wNC0yMSAxNjoxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCB0aGUgc2luZ2xlLWRhc2ggLyBzbm1wLmNvbmYgLyBkb3VibGUtZGFzaCBwcmVjaWRlbmNlCgoyMDEwLTA0LTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRoYXQgdGhlIHRva2VucyBjYW4gYmUgdXNlZCBmb3IKICAgY29tbWFuZCBsaW5lIGFwcGxpY2F0aW9ucyB0b28KCjIwMTAtMDQtMjEgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZmlsZSBsb2FkaW5nIG9yZGVyIGFuZCBob3cgdG8gdHVybiBvZmYgaG9zdC1zcGVjaWZpYwogICBjb25maWcKCjIwMTAtMDQtMjEgMTU6NTIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBhcHBzOiBHZW5lcmljIGhvc3Qtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBzbm1wLmNvbmYgZmlsZXMKICAgYXJlIG5vdyByZWFkLiBTZWUgdGhlIEhPU1QtU1BFQ0lGSUMgRklMRVMgc2VjdGlvbiBvZiB0aGUKICAgc25tcC5jb25mIG1hbnVhbCBwYWdlLgoKMjAxMC0wNC0yMCAxMjo0NCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI5NzEyNzA6IHJlZnVzZSB0byBwYXJzZSBBU04uMSB0b2tlbnMKICAgd2l0aCB3cm9uZyB0eXBlIGZpZWxkLgogICBUaGlzIG1heSB5aWVsZCB0byBwcm9ibGVtcyB3aXRoIHRoaXJkLXBhcnR5IGFwcGxpY2F0aW9ucyB3aGljaAogICBtYXkgZGVwZW5kIG9uIHBhcnNpbmcgdWdseSBBU04uMSBkYXRhIC0gd2UnbGwgc2VlLi4uCgoyMDEwLTA0LTIwIDAwOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbWJpbmUgcmVtb3RlIGZpbmdlcnByaW50IGNoZWNraW5nIGFuZCBjaGVjayBib3RoIHNpZGVzCgoyMDEwLTA0LTIwIDAwOjA1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGlmIHRoZSByZW1vdGUgZmluZ2VycHJpbnQgaXMgc3BlY2lmaWVkLCByZXF1aXJlIGFuIGV4YWN0IG1hdGNoCgoyMDEwLTA0LTE5IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggdmFyaW91cyBtaW5vciBidWdzLCBlc3BlY2lhbGx5IGluIG91dHB1dCBtZXNzYWdlcwoKMjAxMC0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZG9jdW1lbnRhdGlvbiBhbmQgcHJvdG90eXBpbmcgb2YgbmVlZGVkIFJGQyBzdGVwcwoKMjAxMC0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNvbnZlcnQgaWYgZXJyb3IgY2hlY2sgdG8gcmV0dXJuIGltbWVkaWF0ZWx5IHNvIG90aGVyIGNvZGUgY2FuIGJlCiAgIG91dGRlbnRlZAoKMjAxMC0wNC0xOSAyMToxMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgY29tbWVudHMgZnJvbSB0aGUgUkZDIHRleHQKCjIwMTAtMDQtMTggMTU6MjUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi90cmFuc3BvcnRzLCAgIAogICAgICB3aW4zMi9idWlsZC5wbCwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIAogICAgICAgIHdpbjMyL3RyYW5zcG9ydHMsIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4uCgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY3JlYXRlZCBhIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIHNlY3VyaXR5TmFtZSBmcm9tIHRoZSBjZXJ0CgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZG9uJ3QgbmVlZCB0byBzZXQgdGhlIGFjY2VwdCBzdGF0ZSBmb3IgVExTIChqdXN0IERUTFMpCgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBUTFMgY29tbWVudCBkb2N1bWVudGF0aW9uIGFuZCBzdGVwcyB0YWtlbiBmcm9tIHRoZSBSRkMKCjIwMTAtMDQtMTYgMTM6NTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG51bWVyb3VzIGZpeGVzLCBtb3JlIHZlcmJvc2UgZGVmYXVsdCBvdXRwdXQsIGFkZGl0aXZlIHNob3cgZmxhZ3MsCiAgIGFyYml0cmFyeSBjb25maWcgcGFyYW0gaGFuZGxpbmcsIGJldHRlciBoZWxwIHRleHQKCjIwMTAtMDQtMTYgMTM6MDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgZG9uJ3QgZG91YmxlIGRlY2xhcmUgYSBzdHJ1Y3QKCjIwMTAtMDQtMTYgMDM6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2VydCB1dGlsIGZpeGVzCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJzIGFuZCBkdXBsaWNhdGUgY29kZQogICAtIGNoZWNrIHBydCBiZWZvcmUgZnJlZQogICAtIG5ldyBmdW5jIGZvciB0eXBlIGZyb20gZmlsZW5hbWUKICAgLSBuZXcgZnVuY3Rpb25zIGZvciBmaW5kaW5nIHN1YnNldHMgZnJvbSBmaWxlbmFtZQogICAtIGZpeCB0eXBlcyBpbiBrZXkgc2VhcmNoIGZ1bmN0aW9uIGJ1dCB0aGVuIGlmZGVmIGlmICh1bnVzZWQKICAgZnVuY3Rpb24pCgoyMDEwLTA0LTE1IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHVzZSBhIHN0cnVjdHVyZSByZWZlcmVuY2UgdG8gcHJlZGVjbGFyZSB0aGUgc3RydWN0dXJlCgoyMDEwLTA0LTE1IDIxOjI1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGNvcnJlY3QgZGVjbGFyYXRpb24gb2YgdGhlIGZfb3BlbiBjb21tYW5kIG5vdyByZXF1aXJpbmcgcmV0dXJuaW5nCiAgIGEgdHJhbnNwb3J0CgoyMDEwLTA0LTE1IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNvbmZpZyBjb250YWluZXIKCjIwMTAtMDQtMTUgMjE6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBmaW5nZXJwcmludCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gaW50byBuZXcgdGxzIHN0cnVjdHVyZQogICB3aXRoaW4gRFRMU1VEUCBzbyBwZXItdHJhbnNwb3J0IGZpbmdlcnByaW50cyBjYW4gYmUgc3BlY2lmaWVkCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHByb3Blcmx5IGNoZWNrIGZvciB0bHNiYXNlIHBvaW50ZXJzIGluIGR0bHN1ZHBfc2VuZCgpCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGdyZXAgdGhlIHRyYW5zcG9ydCBsaXN0IGZvciBUTFMgbm90IGp1c3QgRFRMUyBmb3IgY2hlY2tpbmcgZm9yCiAgIC1sc3NsCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgYnVnIGZpeGVzIGFuZCBtYWRlIFRMU1RDUCB3b3JrIHdpdGggdGhlIC1UIGZsYWcKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1ha2UgdGhlIGZfb3BlbiBjYWxsIGFzc2lnbiB0aGUgbmV3IHRyYW5zcG9ydCBwb2ludGVyIHRvIHVzZSAoYW5kCiAgIGNoZWNrIGlmIE5VTEwgYXMgYSBmYWlsdXJlIGNvbmRpdGlvbgoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJlZ2luIHdvcmsgbW92aW5nIERUTFMgY29uZmlnIHJvdXRpbmUgaW4gcGxhY2UKCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBwYXNzIHRoZSBlbnRpcmUgdGxzYmFzZSB0byB0aGUgY2xpZW50X3NldHVwCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHN0YXJ0aW5nIHRoZSBzdG9yaW5nIG9mIGNvbmZpZyBkYXRhIGludG8gdGhlIHRsc2Jhc2UKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hhbmdlIGNsaWVudCBzc2wgc2V0dXAgdG8gYWxsb3cgZm9yIGRpcmVjdCBmaW5nZXJwcmludAogICBzcGVjaWZpY2F0aW9uIG9mIG15L3RoZWlyIGNlcnRzCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc3BsaXQgVExTIGludG8gY3JlYXRpb24vY2xvc2UgZnVuY3Rpb25zIGZvciBldmVudHVhbCBjb25maWcKICAgcGFzc2luZyBzdXBwb3J0CgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGFzcyB0cmFuc3BvcnQgY29uZmlnIGRhdGEgdG8gdGhlIHRyYW5zcG9ydCBmX2NvbmZpZygpIGZ1bmN0aW9uCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXR1cm4gTlVMTCBvbiB0cmFuc3BvcnQgY29uZmlnIGVycm9yCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IGFwcHM6IC1UIGNvbW1hbmQgbGluZSBmbGFnIGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZQogICB0cmFuc3BvcnRzCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjaGVjayB0cmFuc3BvcnQgTlVMTG5lc3MgYmVmb3JlIHVzaW5nCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGJlZ2lubmluZyBvZiB3b3JrIHRvIG1ha2UgdHJhbnNwb3J0cyBjb25maWd1cmFibGUgd2l0aAogICBzdXBwbGltZW50YWwgY29uZmlndXJhdGlvbiBkYXRhIGFuZCBuZXcgY2FsbHMgZm9yIGZfb3Blbi9mX2NvbmZpZwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZGVkIHRleHQgaW4gY29tbWVudHMgZnJvbSBmdXR1cmUgUkZDIHRvIGRvY3VtZW50IHRoZQogICBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNC0xNSAxODo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYXJrIHBlbSB3L2tleSBhcyBpZGVudGl0eTsgdHdlYWsgcGFydG5lciBkZWJ1ZzsgY29tcGFyZSBmaWxlCiAgIGN0aW1lIGFnYWluc3QgaW5kZXggdG9vCgoyMDEwLTA0LTE1IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHVzZSBsb2NhbCBzcGFjZSB0byByZWZvcm1hdCBjZXJ0IGZvciBzZWFyY2gKCjIwMTAtMDQtMTUgMTY6NTUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBQYXJ0aWFsbHkgcmV2ZXJ0ZWQgcjE4NDk2OgogICAtIENvbW1lbnRlZCBvdXQgI2RlZmluZSBORVRTTk1QX1VTRV9ETEwgYWdhaW4gaW4gZmlsZQogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBvbiB0aGUgNS40IGJyYW5jaC4gVGhpcyBjaGFuZ2UKICAgaGFkIGJlZW4gY29tbWl0dGVkIHVuaW50ZW50aW9uYWxseS4KICAgLSBSZS1lbmFibGVkICNkZWZpbmUKICAgVVNJTkdfTk9USUZJQ0FUSU9OX0xPR19NSUJfTk9USUZJQ0FUSU9OX0xPR19NT0RVTEUgaW4KICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCBvbiB0aGUgdHJ1bmsgYW5kIHRoZQogICBWNS41IGJyYW5jaC4gV2hpbGUgYnVpbGQuYmF0IHJlcG9ydHMgYW4gZXJyb3Igb24gZWFybGllciBicmFuY2hlcwogICB3aXRoIHRoaXMgc3ltYm9sIGVuYWJsZWQsIHRoZXJlIGlzIG5vIHN1Y2ggcHJvYmxlbSBvbiB0aGUgdHJ1bmsKICAgb3IgVjUuNSBicmFuY2hlcyBhbmQgaGVuY2UgdGhlcmUgd2FzIG5vIHJlYXNvbiB0byBkaXNhYmxlIHRoaXMKICAgcHJlcHJvY2Vzc29yIHN5bWJvbC4KCjIwMTAtMDQtMTUgMTU6MDggIG1hcnoKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBhZGQgbmV0LXNubXAtY2VydCB0byBtYWtlL2luc3RhbGwKCjIwMTAtMDQtMTUgMTA6NTIgIGpzYWZyYW5lawoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQ6CgogICBUZXN0cyBub3Qgd29ya2luZyBmb3IgVENQIHNob3VsZCBiZSBza2lwcGVkIGFsc28gZm9yIFRDUDYuCgoyMDEwLTA0LTE0IDE4OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCB2YXJzL3RleHQgZnJvbSBjdXQtbi1wYXN0ZQoKMjAxMC0wNC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggY29tbWVudHMKCjIwMTAtMDQtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbG90cyBvZiBjZXJ0IHVwZGF0ZXMKICAgLSBjaGFuZ2UgY2VydCBzdWJkaXIgc2VhcmNoaW5nIHRvIG1hdGNoIG5ldC1zbm1wLWNlcnQKICAgLSB1cGRhdGUga2V5IHR5cGUgaGFuZGxpbmcKICAgLSBpZ25vcmUgd29ybGQgcmVhZGFibGUga2V5cwogICAtIGtlZXAgdHlwZSBpbiBpbmRleGVzCiAgIC0gdHdlYWsgY2VydC9rZXkgcHJpbnQgZm9ybWF0CgoyMDEwLTA0LTE0IDE3OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1ha2UgbmV0LXNubXAtY2VydCBleGVjdXRhYmxlCgoyMDEwLTA0LTE0IDEzOjEyICBqc2FmcmFuZWsKCiAgICogIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgRml4ZWQgdGVzdHMgJ1Byb3h5IEdFVC9TRVQgc3VwcG9ydCcgYW5kICdTTk1QdjIgdmFjbSBkZW5pYWwKICAgc3VwcG9ydCcgd2l0aCB1ZHA2IHRyYW5zcG9ydC4KCjIwMTAtMDQtMTQgMDk6NDcgIGR0czEyCgogICAqICB3aW4zMiwgd2luMzIvYmluLCB3aW4zMi9kaXN0LCB3aW4zMi9kaXN0L2h0bWxoZWxwLCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlciwgd2luMzIvZGlzdC9zY3JpcHRzLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLCAKICAgICAgICB3aW4zMi9saWIsIHdpbjMyL2xpYmFnZW50LCB3aW4zMi9saWJoZWxwZXJzLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQsIHdpbjMyL2xpYnNubXAsIHdpbjMyL2xpYnNubXBfZGxsLCAgIAogICAgICB3aW4zMi9saWJ1Y2RtaWJzLCB3aW4zMi9sb2NhbCwgd2luMzIvbmV0LXNubXAsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50LCB3aW4zMi9uZXQtc25tcC9saWJyYXJ5LCB3aW4zMi9uZXRzbm1wbWlicywgIAogICAgICAgd2luMzIvc25tcGJ1bGtnZXQsIHdpbjMyL3NubXBidWxrd2Fsaywgd2luMzIvc25tcGQsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YSwgd2luMzIvc25tcGRmLCB3aW4zMi9zbm1wZ2V0LCB3aW4zMi9zbm1wZ2V0bmV4dCwgIAogICAgICAgd2luMzIvc25tcG5ldHN0YXQsIHdpbjMyL3NubXBzZXQsIHdpbjMyL3NubXBzdGF0dXMsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZSwgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwLCB3aW4zMi9zbm1wdHJhcGQsIHdpbjMyL3NubXB1c20sIHdpbjMyL3NubXB2YWNtLCAgIAogICAgICB3aW4zMi9zbm1wd2FsazoKCiAgIERvbid0IHRyeSB0byBTVk4tbWFuYWdlIHRoZSBXaW5kb3dzIGJhdGNoIGJ1aWxkIGluZnJhc3RydWN0dXJlCiAgIChhZGQgcmVsZWFzZSwgZGVidWcsIE1ha2VmaWxlIHRvIHRoZSBwcmV2aW91cyBpZ25vcmUgbGlzdCkKCjIwMTAtMDQtMTQgMDg6MTYgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRml4IFdpbmRvd3MgYmF0Y2ggYnVpbGQgdXNpbmcgVmlzdWFsIFN0dWRpbyB3aXRoIGR5bmFtaWMgbGlua2luZy4KICAgVW5yZWZlcmVuY2VkIHN5bWJvbCBpbnRyb2R1Y2VkIGJ5IFNWTiByZXZpc2lvbiAxODM5MwoKMjAxMC0wNC0xNCAwODowOCAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBGaXggYmF0Y2ggYnVpbGQgdXNpbmcgcmVjZW50IHZlcnNpb25zIG9mIFZpc3VhbAogICBTdHVkaW8uCiAgIFBhcnRpYWwgYmFjayBwb3J0IG9mIFNWTiByZXZpc2lvbnMgMTc1NzMgYW5kIDE3Njk2LgoKMjAxMC0wNC0xNCAwMTo0NyAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IHBlcm1zIG9uIGNyZWF0ZWQgZmlsZXMgLXJ3LS0tLS0tLSwgdW1hc2soMDc3KQoKMjAxMC0wNC0xMyAyMjoxNSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0LCBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBmaXggcGVybXMsIGFkZCAtLWNuLy1jLCBiZXR0ZXIgZGF0ZXMgZGVmYXVsdHMsIHNubXAtdGxzIG9yZ191bml0LAogICBhZGRlZCBpbml0aWFsIGR1bW15IGNvbmZpZyBmaWxlCgoyMDEwLTA0LTEzIDE0OjIxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXhlcyBmb3Igc2hvdyBjbWRzLCBjbWRsaW5lLCBoZWxwCgoyMDEwLTA0LTEzIDAyOjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBzdXBwb3J0IGZvciBrZXkrY2VydCBpbiAucGVtIGZpbGVzOyBtaXNjIHR3ZWFrcwoKMjAxMC0wNC0xMCAyMzoyNCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBidWlsZCBmaXggZm9yIEM4OSBjb21waWxlcnMgKGUuZy4gb24gSFAtVVggMTAuMjApCgoyMDEwLTA0LTEwIDIyOjI1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICBpbml0aWFsIGN1dCBhdCB0bHN0bUNlcnRUb1RTTlRhYmxlCgoyMDEwLTA0LTEwIDIyOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgYWRkIGRlZmluZSBvZiBtYXggaGFzaCBjb25zdGFudAoKMjAxMC0wNC0xMCAyMjoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jOgoKICAgdXNlIGNlcnQgdXRpbCBjaGVjayBmb3IgZmluZ2VycHJpbnQgbGVuL2FsZ29yaXRobQoKMjAxMC0wNC0xMCAxMjo1OSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgc2hvdyBjbWQgZml4ZXMKCjIwMTAtMDQtMDkgMjE6MzIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZhaXJseSBmdW5jdGlvbmFsIChub24taW50ZXJhY3RpdmUpIC0gYmUgaXQga25vd246IHRoZXJlIGFyZSBidWdzCgoyMDEwLTA0LTA5IDIwOjU0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmg6CgogICBtZXJnZSBzb21lIHRhYmxlX2RhdGEuY29uZiBjaGFuZ2VzOyByZW1vdmUgdW51c2VkIGNvZGUgYW5kIGEKICAgYnVuY2ggb2YgdmVyYm9zZSBjb21tZW50cwoKMjAxMC0wNC0wOCAxNDo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHVzZSBmdWxsIHBhdGgKCjIwMTAtMDQtMDggMTA6NTUgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIENoZWNrIHJlc3VsdHMgb2YgY2FsbHMgdG8gbmV0c25tcF9jNjRfY2hlY2szMl9hbmRfdXBkYXRlIGFuZCBsb2cKICAgYW4gZXJyb3IuCiAgIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHJlbGF0ZSB2YXJpb3VzICdjNjQgMzIgYml0IGNoZWNrIGZhaWxlZCcKICAgZXJyb3JzIHdpdGggc3BlY2lmaWMgY291bnRlci4KCjIwMTAtMDQtMDggMDE6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXcgZnVuY3Rpb24KCjIwMTAtMDQtMDggMDE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogdHJhbnNsYXRlIE5PU1VDSCovRU5ET0ZNSUIgZXJyb3JzIGR1cmluZyBSRVNFUlZFMQogICB0byBOT0NSRUFUSU9OCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgTkVXUzogc25tcGQ6IHRhYmxlX2RhdGEvdGRhdGEgbmV4dCBoYW5kbGVyIHdpbGwgbm90IGJlIGNhbGxlZAogICBkdXJpbmcgZ2V0CiAgIHByb2Nlc3NpbmcgaWYgbm8gdmFsaWQgcm93cyBhcmUgZm91bmQgZm9yIHRoZSBoYW5kbGVyCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgTkVXUzogc25tcGQ6IGFnZW50IHdpbGwgbm8gbG9uZ2VyIGNhbGwgdGFibGUgaGFuZGxlcnMgaWYgYSBzZXQKICAgcmVxdWVzdCBmb3IKICAgdGhlIGhhbmRsZXIgaGFzIGludmFsaWQgaW5kZXhlcwogICBDSEFOR0VTOiBzbm1wZDogZG9uJ3QgY2FsbCBjbGVhbnVwIG9uIGZpcnN0IHJlcXVlc3Qgb24gYmFkCiAgIGluZGV4ZXMuIGluc3RlYWQsCiAgIHNldCBhY3R1YWwgZXJyb3IgbGF0ZXIsIGFuZCBmcmVlIHJlcXVlc3QgZGF0YSBzZXRzIG9uIGZpcnN0CiAgIHJlcXVlc3QgZm9yIHNldHMKCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZnVuY3Rpb24gdG8gdmFsaWRhdGUgZmluZ2VycHJpbnQgdmFyYmluZAoKMjAxMC0wNC0wNyAyMjo1NiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBTb2xhcmlzIHRyIGRvZXNuJ3Qgc3VwcG9ydCBjaGFyYWN0ZXIgcmFuZ2VzIHJlbGlhYmx5IChzZWUgdGhlCiAgIGF1dG9jb25mIG1hbnVhbCksIGNoYW5nZSB0aGUgZXhwcmVzc2lvbiB0byBvbmUgdGhhdCBpcyBzaW1wbGUKICAgZW5vdWdoIHRvIGIgc3VwcG9ydGVkLgoKMjAxMC0wNC0wNyAxNDowNSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW5zZXJ0IHRoZSBjYWNoZSBoZWxwZXIgY29ycmVjdGx5LgoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIGZ1bmN0aW9ucyB0byByZW1vdmUgbGlzdC9yb3cgZGF0YSBmcm9tCiAgIHJlcXVlc3QgbGlzdAoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIGlmZGVmIHZhciBkZWNsIGZvciB2YXJzIG9ubHkgdXNlZCBpbiBsYXRlciBpZmRlZiBibG9jawoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgICAKICAgICAgc25tcGxpYi9zbm1wLXRjLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgZnVuY3Rpb24gdG8gdmFsaWRhdGUgUm93U3RhdHVzIGFuZAogICBTdG9yYWdlVHlwZSB2YXJiaW5kcwogICAtIGFsc28gcmVtb3ZlIHNvbWUgZHVwbGljYXRlIGNvZGUgYW5kIGZpeCBjb21tZW50cyBpbmRlbnQgbWFuZ2xlZAoKMjAxMC0wNC0wNyAxMDozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZSwgbWFuL21pYjJjLXVwZGF0ZS4xLmRlZjoKCiAgIHVwZGF0ZSBtYW4gcGFnZTsgZml4IHNoZWxsIHJlZGlyZWN0OyBjcmVhdGUgZXhhbXBsZSByY2ZpbGUgaWYKICAgbWlzc2luZwoKMjAxMC0wNC0wNyAwNzoxNSAgbWFnZnIKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBVc2UgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HIGluc3RlYWQgb2YgRElTQUJMRV9NSUJfTE9BRElORwoKMjAxMC0wNC0wNyAwMDozOCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBPbmx5IGVuYWJsZSBob3N0U3dJbnN0IHJwbSBzdXBwb3J0IG9uIGxpbnV4IGhvc3RzCiAgIHdpdGggbGlicnBtLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uIG5vbi1ycG0gbGludXgKICAgZGlzdHJpYnV0aW9ucy4KCjIwMTAtMDQtMDcgMDA6MTQgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWw6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBDaGFuZ2UgdGhlIHRlc3Qgc3VpdGUgdG8gd29yayBldmVuIGlmIG1pYgogICBsb29rdXAgaXMgZGlzYWJsZWQuCgoyMDEwLTA0LTA3IDAwOjExICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNjoKCiAgIENoZWNrIGZvciBjb20yc2VjNiwgbm90IGNvbTJzZWMuCgoyMDEwLTA0LTA2IDIyOjUxICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIE1vdmUgZGlyZWN0b3J5IGNyZWF0aW9uIGJlZm9yZSB0aGUgZGlyZWN0b3JpZXMgYXJlIHVzZWQuCgoyMDEwLTA0LTA2IDExOjAzICBkdHMxMgoKICAgKiBGQVE6CgogICBQeXRob24gaXMgYXBwYXJlbnRseSBjbGllbnQtc2lkZSBvbmx5LgoKMjAxMC0wNC0wNiAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNldCBzdXBwbGVtZW50YXJ5IGdyb3VwcyBiZWZvcmUgY2hhbmdpbmcgVUlECiAgICh3aGljaCBwcm9iYWJseSBpbnZvbHZlcyBnaXZpbmcgdXAgcHJpdmlsZWdlcykKCjIwMTAtMDQtMDYgMDg6NTcgIGR0czEyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIERvY3VtZW50IGxhcmdlLWRpc2sgc3RhdGlzdGljcyBhcyBsYXRjaGluZyBhdCAyVGIgKHJhdGhlciB0aGFuCiAgIHdyYXBwaW5nKS4KCjIwMTAtMDQtMDYgMDE6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYywgbWFuL21pYjJjLjEuZGVmOgoKICAgTkVXUzogbWliMmM6IG1pYjJjIGNhbiBub3cgb3B0aW9uYWxseSBydW4gc2VkIG9uIGdlbmVyYXRlZCBjb2RlCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjb252ZXJ0IEMrKyBjb21tZW50cyB0byBDIGNvbW1lbnRzCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtb3ZlIHB0ciBjaGVjayBiZWZvcmUgcHJ0IHVzZQoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZmlsZW5hbWUgdG8gZGVidWcgb24gbmV3IGNlcnRzOyBtYWtlIHN0YXRpYyBmdW5jIHRvIHJldHVybgogICBtb2RlIG5hbWVzCgoyMDEwLTA0LTA2IDAwOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFsbG93IGEgZm91bmQgZmluZ2VycHJpbnQgc2VsZi1zaWduZWQgY2VydCBmb3Igbm93OyBldmVudHVhbGx5CiAgIG5lZWQgdG8gcmVzcGVjdCB0aGUgTUlCIGNvbmZpZyB0YWJsZQoKMjAxMC0wNC0wNiAwMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBta2RpciBzbm1wbGliL3RyYW5zcG9ydHMgd2hlbiBETkUgZm9yIGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNvdXJjZQogICBkaXIKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBlcnJvciBjb2RlIGNsZWFudXAgZm9yIHRsc2Jhc2Vfd3JhcHVwX3JlY3YKCjIwMTAtMDQtMDUgMjM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3JlIGJldHRlciBlcnJvci9kZWJ1ZyBjb2RlcwoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGNvbW1lbnRzIGZyb20gdGhlIGZ1dHVyZS1SRkMgYWJvdXQgdGhlIGltcGxlbWVudGF0aW9uOyB1c2UKICAgZmxhZ3MgZm9yIHNlcnZlci9jbGllbnQgc3BlY2lmaWNhdGlvbiBmb3IgZXhwYW5zaW9uCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciB1c2FnZSBjb25zdHJhaW50cwoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vdmUgZnVuY3Rpb24gcHJvdGVjdGlvbiBsb2dpYyBpbiBhIHRvcC1sZXZlbCBjaGVjawoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBmaXggaW5pdCBvcmRlcmluZwoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG12IHRsc2Jhc2UgaW5pdCBmdW5jdGlvbiB0byBhIHByb3BlciBjdG9yIGZvciBhdXRvLWNhbGxpbmcKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogZ2VuZXJhdGUgdGhlIHRyYW5zcG9ydCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBsaXN0CiAgIGR5bmFtaWNhbGx5IGFuZCB1c2UgaXQKCjIwMTAtMDQtMDIgMTY6MzUgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvdHJhbnNwb3J0cywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBtb3ZlZCB0cmFuc3BvcnQgY29kZSBpbnRvIGEgc2VwYXJhdGUgc3ViZGlyZWN0b3J5IGluCiAgIHNubXBsaWIKCjIwMTAtMDQtMDIgMDk6MDIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jOgoKICAgRG8gbm90IGF0dGVtcHQgdG8gY2hlY2sgc2l6ZW9mIHZvaWQgdG8gb2J0YWluIHRoZSBhbW91bnQgb2YKICAgbWVtb3J5IHRvIGNvcHkuCgoyMDEwLTA0LTAxIDE3OjExICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBpbnN0ZWFkIG9mIGZ3ZCBkZWNsYXJlcywgcmVxdWlyZSBvdGhlciBoZWFkZXIKCjIwMTAtMDQtMDEgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTA0LTAxIDE3OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIG91dGRhdGVkIGRlYnVnIG1zZwoKMjAxMC0wNC0wMSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVzZSBjZXJ0YXBpIHRvIGZpbmQgY2VydHMva2V5cwoKMjAxMC0wNC0wMSAxNDo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlZ2lzdGVyIGV4dHJhWDUwOVN1YkRpciB0b2tlbgoKMjAxMC0wNC0wMSAxNDoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIGNoZWNrIHB0ciBiZWZvcmUgdXNlCgoyMDEwLTA0LTAxIDE0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgY2hlY2sgcHRyIGJlZm9yZSB1c2UKCjIwMTAtMDQtMDEgMTM6MTMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBhZGQgcGVyc2lzdGVudCBzdG9yYWdlOyB0b2tlbiBmb3IgY3JlYXRpbmcgZW50cmllcyBpbiBzbm1wZC5jb25mOwogICBmaXggaW5kZXgKCjIwMTAtMDQtMDEgMTM6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgY2VydGlmaWNhdGUgYXBpIHRvIHN1cHBvcnQgdGxzL2R0bHMKCjIwMTAtMDQtMDEgMTM6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBDSEFOR0VTOiBhZGQgZnVuY3Rpb25zIHRvIGdldCBmaW5nZXJwcmludCBmcm9tIGNlcnQgYW5kIGxvZwogICBvcGVuc3NsIGVycnMKCjIwMTAtMDQtMDEgMTI6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgZml4IHR5cG8KCjIwMTAtMDQtMDEgMTA6MzMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIHByZS1DOTAgY29tcGlsZXJzLgoKMjAxMC0wNC0wMSAxMDowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiB0YWJsZV9kYXRhIHRlbXBsYXRlIGVuaGFuY2VtZW50cwogICAtIGFkZCBlcnJvciBjaGVja3MgZHVyaW5nIHRhYmxlIGluaXQKICAgLSBjcmVhdGUgY2FjaGUgZWFybGllciBzbyB3ZSBjYW4gYmFpbCBvbiBmYWlsdXJlCiAgIC0gYWRkIG9wdGlvbiB0byBjcmVhdGUvZGVsZXRlIHJvdyB3L291dCBhZGRpbmcvcmVtb3ZpbmcgZnJvbQogICBjb250YWluZXIKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmg6CgogICBhZGQgaGVscGZ1bCBwYXJhbSBuYW1lcyBhcyBoaW50cyBpbiBwcm90b3R5cGUKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBzZWFyY2ggZm9yIGNvbnRhaW5lciBzcGVjaWZpYyBjb250YWluZXIgYmVmb3JlIGdlbmVyaWMKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGVuaGFuY2UgZmlsZSB1dGlscyBhbmQgZGlyIHV0aWxzCiAgIC0gYWRkIG9wdGlvbmFsIHN0YXRzIHN0cnVjdCB0byBuZXRzbm1wX2ZpbGUKICAgLSBnZW5lcmFsaXplIGRpciBjb250YWluZXIgZmlsdGVyLCBhZGQgY29udGV4dCB0byBjYWxsYmFjawogICAtIGFkZCBvcHRpb24gdG8gc3RvcmUgbmV0c25tcF9maWxlcyAody9zdGF0cykgaW4gY29udGFpbmVyCiAgIGluc3RlYWQgb2YganVzdCBuYW1lCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgcHJvdG90eXBlIHRvIGhlYWRlcjsgY2hlY2sgcHRyIGJlZm9yZSBkZXJlZmVyZW5jaW5nCgoyMDEwLTAzLTMxIDE1OjM0ICBqc2FmcmFuZWsKCiAgICogIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9zbm1wLWJyaWRnZS1taWIsIG1hbi9NYWtlZmlsZS5pbiwgICAKICAgICAgbWFuL3NubXAtYnJpZGdlLW1pYi4xLCBtaWJzL0JSSURHRS1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIE5FV1M6IG1pc2M6IFBBVENIOiAyOTUyNzA4OiBmcm9tIEplbnMgT3N0ZXJrYW1wOiBBZGRlZCBQZXJsCiAgIGltcGxlbWVudGF0aW9uIG9mIEJSSURHRS1NSUIKCjIwMTAtMDMtMzEgMDI6MTIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvcGVyIHBhY2tldCBsYWJlbGluZyBmb3IgRFRMU1VEUAoKMjAxMC0wMy0zMSAwMjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1c2UgY29tbW9uIGNvbnRleHQgY3JlYXRpb24gY29kZQoKMjAxMC0wMy0zMCAyMzoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGFuZ2UgVExTIG1ldGhvZCB0byBUTFN2MSBmcm9tIFNTTHYyMwoKMjAxMC0wMy0zMCAyMzoyMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3ZlIG1vcmUgY29tbW9uIGRhdGEgYW5kIGZ1bmN0aW9uYWxpdHkgaW50byB0aGUgVExTIGJhc2UKCjIwMTAtMDMtMzAgMjM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbWlub3IgVExTIGNvZGUgY2xlYW51cAoKMjAxMC0wMy0zMCAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmV3b3JrIGlmKCkgd3JhcHBpbmcgZm9yIGxlc3MgY29uZnVzaW9uIGluIGVycm9yIGhhbmRsaW5nCgoyMDEwLTAzLTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb2RlIGNvbnNvbGlkYXRpb24gaW4gc3RhcnRfbmV3X2NhY2hlZF9jb25uZWN0aW8KCjIwMTAtMDMtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbmFtZSBnZW5lcmljICdiaW8nIHBvaW50ZXIgdG8gJ3JlYWRfYmlvJyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5CgoyMDEwLTAzLTMwIDIwOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtb3ZlIGJ1ZmZlcmVkIGRhdGEgY3JlYXRpb24gdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgcmV1c2UKCjIwMTAtMDMtMzAgMTc6NTIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGluaXRpYWwgY2VydCBnZW4gd3JhcHBlciBzY3JpcHQgLSBub3Qgd29ya2luZwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2xlYW4gdXAgZXJyb3Igb3V0cHV0IHNvIGl0IGRvZXNuJ3QgcmVwb3J0IHdhbnRfcmVhZCBhbmQKICAgd2FudF93cml0ZSBlcnJvcnMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbmFtaW5nIG9mIHNlbmRpbmcgZnVuY3Rpb24gZm9yIGNsYXJpdHkgYW5kIGNoZWNrIG9uZSBtb3JlCiAgIGxvY2F0aW9uIGZvciBuZWVkZWQgb3V0Z29pbmcgcGFja2V0cwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYWRkZWQgZHRsc3VkcCB0cmFjaW5nIHRva2VucwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIENIQU5HRVM6IGFkZGVkIGEgbmV3IERFQlVHVFJBQ0VUT0soKSBtYWNybwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmV0dGVyIGNvbW1lbnRzIGFuZCBtb3JlIHdvcmsgb24gc2VuZGluZyBidWZmZXJlZCBkYXRhIGluIHRoZQogICByaWdodCBzcG90cwoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggYXJndW1lbnRzIHRvIGdldF9jb21tb25OYW1lCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZWdpbm5pbmcgb2YgY2FjaGluZyBvZiBwYWNrZXRzIGJlZm9yZSB0aGV5IGNhbiBiZSBzZW50IHZpYSBEVExTCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBoYW5kbGUgU1NMX1dBTlRfUkVBRC9XUklURSBiZXR0ZXI7IHN0aWxsIG5lZWQgdG8gYnVmZmVyIG91dGdvaW5nCiAgIHdyaXRlIGRhdGEKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1pbm9yIGNoYW5nZSB0byBvdXRwdXQgZXJyb3IgcHJpbnRpbmcKCjIwMTAtMDMtMjkgMTU6MjAgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgTkVXUzogc25tcGQ6IEZpeCBoYW5kbGluZyBvZiBtdWx0aXBsZSBtYXRjaGluZyBWQUNNIGVudHJpZXMuCiAgIChVc2UgdGhlICJiZXN0IiBtYXRjaCwgcmF0aGVyIHRoYW4gdGhlIGZpcnN0IG9uZSkuCiAgIFJlcG9ydGVkIGJ5IEFkYW0gTGV3aXMuCiAgIE5vdGUgdGhhdCB0aGlzIGNvdWxkIHBvdGVudGlhbGx5IGFmZmVjdCB0aGUgYmVoYXZpb3VyIG9mCiAgIGV4aXN0aW5nIGFjY2VzcyBjb250cm9sIGNvbmZpZ3VyYXRpb25zLgoKMjAxMC0wMy0yOSAxNToxNiAgYnZhc3NjaGUKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6CiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX3JlcXVlc3RfaW5mb1B0cjo6Z2V0VmFsdWUoKTogZG9uJ3QgcmV0dXJuCiAgIGEgcG9pbnRlciB0byBhIGJ1ZmZlciBvbiB0aGUgc3RhY2suIEhvdyBjYW4gdGhpcyBoYXZlIHdvcmtlZAogICByZWxpYWJseSA/PwogICBDSEFOR0VTOiBwZXJsOgogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9yZXF1ZXN0X2luZm9QdHI6OnNldFZhbHVlKCksCiAgIEFTTl9DT1VOVEVSNjQ6IGZpeGVkIGJ1ZyB0aGF0IGNvdWxkIGNhdXNlIHRoaXMgbWV0aG9kIHRvIGZhaWwKICAgZXZlbiB3aGVuIGEgdmFsaWQgbnVtYmVyIHdhcyBwcm92aWRlZC4KCjIwMTAtMDMtMjkgMTU6MTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4IGFnZW50IGNyYXNoIHdoZW4gc2VuZGluZyBlbmNyeXB0ZWQgU05NUHYzCiAgIHRyYXBzLgogICBSZXBvcnRlZCBieSBTcmlrYXBpbGFuIEdhbmRoaQoKMjAxMC0wMy0yOSAxMjo0NiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIENhdGNoIHN0ZGVyciBvbiBXaW5kb3dzIHRvby4KCjIwMTAtMDMtMjkgMTE6NDggIGJ2YXNzY2hlCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBwcmUtQzkwIGNvbXBpbGVycy4KCjIwMTAtMDMtMjkgMTE6MTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGRlc3Ryb3lpbmcgYQogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiBvYmplY3QuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGZhaWx1cmUgb2YKICAgY3JlYXRpbmcgYSBOZXRTTk1QOjpPSUQgb2JqZWN0LgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSB0aGUKICAgTmV0U05NUDo6T0lEOjpnZXR0YWJsZSgpIHN1YnJvdXRpbmUuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIHRyaWdnZXJlZCBieQogICB0aGUgaW1wbGVtZW50YXRpb24gb2YgTmV0U05NUDo6U05NUC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgYSBQRFUgcHJvY2Vzc2luZwogICBlcnJvciBpbiBOZXRTTk1QOjpTTk1QLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBtZW1vcnkgbGVha3MgdHJpZ2dlcmVkIGJ5IGNyZWF0aW5nIGFuIFNOTVB2MwogICBzZXNzaW9uIHZpYSBOZXRTTk1QOjpTTk1QLgogICAKICAgQWxzbyBmaXhlZCB0aGUgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBhY2Nlc3NlcyB0cmlnZ2VyZWQgYnkKICAgYWRkaW5nIGEgdmFyYmluZCB0byBhIFBEVSB2aWEgTmV0U05NUDo6U05NUCBpbnRyb2R1Y2VkIGEgZmV3IGRheXMKICAgYWdvLgogICAKICAgVGhlIGJ1Z3MgbWVudGlvbmVkIGFib3ZlIGhhdmUgYmVlbiBmb3VuZCBieSBpbnNwZWN0aW5nIHRoZSBvdXRwdXQKICAgb2YgdGhlIGZvbGxvd2luZyBzaGVsbCBjb21tYW5kOgogICBjZCBwZXJsICYmIHZhbGdyaW5kIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tbGVhay1jaGVjaz1mdWxsIG1ha2UKICAgdGVzdAoKMjAxMC0wMy0yOSAxMDo1OSAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFN3aXRjaGVkIGJhY2sgdG8gdGhlIHByZXZpb3VzIHdheSBvZiBzdGFydGluZyBwcm9jZXNzZXMKICAgYXN5bmNocm9ub3VzbHkgYmVjYXVzZSBpdCBpcyBtb3JlIHJlbGlhYmxlLgoKMjAxMC0wMy0yOSAwOToyNyAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIERvIG5vdCBvbmx5IHNhdmUgc25tcGQgLyBzbm1wdHJhcGQgbG9ncyBidXQgYWxzbyB0aGUgc3Rkb3V0IC8KICAgc3RkZXJyIG91dHB1dCBnZW5lcmF0ZWQgYnkgdGhlc2UgcHJvY2Vzc2VzLgoKMjAxMC0wMy0yOCAxNjowOSAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIENoYW5nZXMgaW4gcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKICAgLSBBZGRlZCBjb21tYW5kLWxpbmUgb3B0aW9uIC1kIGZvciBzbm1wZCBhbmQgc25tcHRyYXBkLgogICAtIHNubXBkIGFuZCBzbm1wdHJhcGQgb3V0cHV0IGlzIG5vdyBzYXZlZCB0byBhIGxvZyBmaWxlIChvbmUgcGVyCiAgIHRlc3QpLgogICAtIFJld3JvdGUgUGVybCBjb2RlIGZvciBzdGFydGluZyB0aGUgc25tcGQvc25tcHRyYXBkIHByb2Nlc3NlcwogICBzdWNoIHRoYXQgdGhlIHNhbWUgY29kZSB3b3JrcyBvbiBVbml4IGFuZCBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yOCAxMzozNyAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZGVkIHRoZSBmdW5jdGlvbnMgbmV0c25tcF9tYWxsb2MoKSwKICAgbmV0c25tcF9jYWxsb2MoKSwgbmV0c25tcF9yZWFsbG9jKCksIG5ldHNubXBfc3RyZHVwKCkgYW5kCiAgIG5ldHNubXBfZnJlZSgpLgogICBDSEFOR0VTOiBXaW4zMjogc25tcGxpYjogcmVtb3ZlZCB0aGUgdHJvdWJsZXNvbWUgI2RlZmluZSBtYWxsb2MKICAgbmV0c25tcF9tYWxsb2MgZXRjLiBUaGlzIG1lYW5zIHRoYXQgd2hlbiBjYWxsaW5nIGZ1bmN0aW9ucyBmcm9tCiAgIHRoZSBOZXQtU05NUCBETEwgZnJvbSBDIG9yIEMrKyBjb2RlIHRoYXQgaXMgYmVpbmcgbGlua2VkIGFnYWluc3QKICAgYW5vdGhlciB2ZXJzaW9uIG9mIHRoZSBNU1ZDIHJ1bnRpbWUgRExMIHRoYW4gdGhlIE5ldC1TTk1QIERMTCwKICAgYW5kIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkgdGhhdCB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBOZXQtU05NUAogICBETEwsIHlvdSB3aWxsIGVpdGhlciBoYXZlIHRvIGNhbGwgdGhlIE5ldC1TTk1QIG1lbW9yeSBhbGxvY2F0aW9uCiAgIGZ1bmN0aW9ucyBleHBsaWNpdGx5IG9yIHJlZGVmaW5lIG1hbGxvYygpIGV0Yy4geW91cnNlbGYuCgoyMDEwLTAzLTI4IDEyOjQ2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeGVkIGEgcmVjZW50bHkgcmVpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTAzLTI3IDE4OjQyICBidmFzc2NoZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgY2hlY2sgZm9yIGludm9jYXRpb24gb2YgY2FsbG9jKCkgZnJvbSBYU1VCcy4KCjIwMTAtMDMtMjYgMTk6MTYgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgRm9sbG93LXVwIGZvciByMTgzNjggYW5kIHIxODM2OTogbWFkZSBzdXJlIHRoYXQgdGhlIE5ldC1TTk1QIFBlcmwKICAgZXh0ZW5zaW9ucyBjb21waWxlIHdpdGhvdXQgdHJpZ2dlcmluZyBwcmVwcm9jZXNzb3Igd2FybmluZ3MgYWJvdXQKICAgcmVkZWZpbmluZyBtYWxsb2MgZXRjLiBub3IgdHJpZ2dlciAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcnMgb24KICAgV2luZG93cy4KCjIwMTAtMDMtMjYgMTQ6NDQgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIFJlZmFjdG9yaW5nOiBpbnRyb2R1Y2VkIGEgbmV3IGZ1bmN0aW9uOgogICBuZXRzbm1wX3NldF9ub25fYmxvY2tpbmdfbW9kZSgpLgoKMjAxMC0wMy0yNiAxMTo1OCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAKICAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgCiAgICAgICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCB1c2luZyB2YXJpYWJsZXMgb2YgdHlwZSBjaGFyIGFzIGFuCiAgIGFycmF5IHN1YnNjcmlwdC4gTm90ZTogYXMgZmFyIGFzIEkga25vdyB0aGVzZSB3YXJuaW5ncyBhcmUgb25seQogICByZXBvcnRlZCB3aGVuIHVzaW5nIHRoZSBDeWd3aW4gZ2xpYmMgaGVhZGVycy4KCjIwMTAtMDMtMjYgMTA6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIEFkZGVkIG1pc3NpbmcgI2luY2x1ZGUgZGlyZWN0aXZlIChvbiBXaW5kb3dzIE1TVkMgd2FzIGNvbXBsYWluaW5nCiAgIGFib3V0IHNpemVfdCB3aGlsZSBwcm9jZXNzaW5nIDxuZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oPikuCgoyMDEwLTAzLTI1IDIwOjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogYWdlbnR4OiBjaGFuZ2VkIGRlZmF1bHQgVENQIHRhcmdldCBmcm9tIDAuMC4wLjA6NzA1IHRvCiAgIGxvY2FsaG9zdDo3MDUuIFRoaXMgaXMgbm90IG9ubHkgYSBtb3JlIHNlY3VyZSBjaG9pY2UgYnV0IGl0IGFsc28KICAgbWFrZXMgaXQgcG9zc2libGUgb24gV2luZG93cyBzeXN0ZW1zIHRvIGxldCBhbiBBZ2VudFggc3ViYWdlbnQKICAgY29ubmVjdCB0byBhbiBBZ2VudFggbWFzdGVyIGFnZW50IHJ1bm5pbmcgb24gdGhlIHNhbWUgc3lzdGVtCiAgIHdpdGhvdXQgaGF2aW5nIHRvIHNldCB0aGUgdmFyaWFibGUgTkVUU05NUF9EU19BR0VOVF9YX1NPQ0tFVC4KCjIwMTAtMDMtMjUgMTY6MTEgIGJ2YXNzY2hlCgogICAqICBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBXaW4zMjogcGVybDogZml4ZWQgc2V2ZXJhbCAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcnMuCiAgIE5vdGU6IHNpbmNlIGNhbGxvYygpIGlzIG5vdCByZWRlZmluZWQgaW4gPENPUkUvWFNVQi5oPiB1c2luZwogICBjYWxsb2MoKSBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGxlYWRzIHRvICJGcmVlIHRvIHdyb25nIHBvb2wiCiAgIGVycm9ycywgYXQgbGVhc3Qgb24gV2luZG93cy4KCjIwMTAtMDMtMjUgMTY6MDQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgbW9yZSBzaWxlbnQgYnkgbm90CiAgIHJlZGVmaW5pbmcgbWFsbG9jKCkgb3IgZnJlZSgpIGR1cmluZyBjb21waWxhdGlvbiBvZiBQZXJsCiAgIGV4dGVuc2lvbnMgKHJlc3VsdGVkIGluIHdhcm5pbmdzIGFib3V0IG1hbGxvYygpIC8gZnJlZSgpCiAgIHJlZGVmaW5pdGlvbiBpbiB0aGUgUGVybCBoZWFkZXIgQ09SRS9YU1VCLmgpLgoKMjAxMC0wMy0yNSAxNTowNiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBCVUc6IDI5Njk4NzI6IG1hZGUgc3VyZSB0aGF0IFNPQ0tfU1RBUlRVUCBpcyBpbnZva2VkCiAgIGJlZm9yZSBpbml0X2FnZW50KCkgb24gV2luZG93cy4KCjIwMTAtMDMtMjUgMTM6MzkgIGpzYWZyYW5lawoKICAgKiAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgICAKICAgICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgbWFjcm9zIGluc3RlYWQgb2YgbWFnaWMgbnVtYmVycyBhcyBuZXRzbm1wX3BhcnNlX2FyZ3MgcmV0dXJuCiAgIGNvZGVzLgoKMjAxMC0wMy0yNSAxMzozMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIHRoZSBidWlsZCBwcm9jZXNzIGJ5CiAgIHJlbW92aW5nIHRoZSBmaWxlIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLiBXaGljaCBJUHY2CiAgIGZ1bmN0aW9ucyBhcmUgZXhwb3J0ZWQgZnJvbSBuZXRzbm1wLmRsbCBpcyBub3cgZGV0ZXJtaW5lZCBieQogICB3aGljaCBvZiB0aGUgZnVuY3Rpb25zIGluIHRoaXMgRExMIGhhdmUgYmVlbiBkZWNsYXJlZCBhcwogICBORVRTTk1QX0lNUE9SVC4KCjIwMTAtMDMtMjQgMjA6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgZG9uJ3QgdXNlIHBhc3NlZCBwdHIgYXMgdGVtcCB2YXI7IHVzZSBzbm1wX2VudW1fbGlzdHMgaW4gaW5pdAogICB0ZXN0CgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIGFkZCBORVRTTk1QX0RTX0xJQl9DRVJUX0VYVFJBX1NVQkRJUgoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjZXJ0IGluaXQgZWFybGllciAoaGF2ZSB0bHNfYm9vdHN0cmFwIGNhbGwgaXQpCgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzOyBhZGQgY2VydCBkZWJ1ZyBtc2dzIGluIHNlcnZlciBzZXR1cDsgZnJlZQogICBzc2wgbG9nIGRhdGEKCjIwMTAtMDMtMjQgMTA6NDcgIGpzYWZyYW5lawoKICAgKiAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgICAKICAgICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDSEFOR0VTOiBhcHBzOiByZXR1cm4gbm96ZXJvIGV4aXQgY29kZSB3aGVuIHBhcnNpbmcgb2YgY2VydGFpbgogICBwYXJhbWV0ZXIgZmFpbHMuCiAgIEUuZy4gJy1BJyBwYXJhbWV0ZXIgd2l0aCB0b28gc2hvcnQgcGFzc3BocmFzZSBvciBLdSBrZXkKICAgZ2VuZXJhdGlvbiBpbiBnZW5lcmFsLgoKMjAxMC0wMy0yNCAwNzoxMSAgbWFnZnIKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBDb3JyZWN0IHRoZSB0eXBlIG9mIHRoZSBpZC9kZXNjcmlwdGlvbiBvZiB0aGUgT3Blbi1QRFUuCgoyMDEwLTAzLTIyIDE4OjI5ICBidmFzc2NoZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFVwZGF0ZXMgZm9yICJtYWtlIGNoZWNrcyI6CiAgIC0gTWFkZSBzdXJlIHRoYXQgZXhpdCBjb2RlIDAgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGNoZWNrIGlzCiAgIHN1Y2Nlc3NmdWwgYW5kIHRoYXQKICAgZXhpdCBjb2RlIDEgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGNoZWNrIGZhaWxlZC4KICAgLSBNYWRlICJtYWtlZmlsZWNoZWNrIiBza2lwIFN1YnZlcnNpb24gYm9va2tlZXBpbmcgZmlsZXMgYW5kIGFsc28KICAgdGhlIG1ha2VmaWxlCiAgIHRoYXQgY29udGFpbnMgIm1ha2VmaWxlY2hlY2siLgoKMjAxMC0wMy0yMiAxNjoxMCAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1QQVNTLU1JQi50eHQ6CgogICBGaXggdHlwbyBpbiBkZWZhdWx0IElwQWRkcmVzcyB2YWx1ZQogICAoU2VlIEJ1ZyAjMjk3MjE0MSkKCjIwMTAtMDMtMjIgMTU6NDQgIHJzdG9yeQoKICAgKiAgTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvY2FsbGJhY2suYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIGNoYW5nZSBhbGwgYXNzZXJ0KCkgdG8gbmV0c25tcF9hc3NlcnQoKTsgYWRkIGFzc2VydGNoZWNrIHRvIHRvcAogICBsZXZlbCBtYWtlZmlsZQoKMjAxMC0wMy0yMiAxNToyNCAgYnZhc3NjaGUKCiAgICogbWlicy9VQ0QtRElTS0lPLU1JQi50eHQ6CgogICBGb2xsb3ctdXAgZm9yIHIxODM0OTogYWRkZWQgbWlzc2luZyBjb21tYSBzdWNoIHRoYXQgaXQgaXMgYWdhaW4KICAgcG9zc2libGUgdG8gY29tcGlsZSBVQ0QtRElTS0lPLU1JQi4KCjIwMTAtMDMtMjIgMTQ6MzYgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBGaXggYnVpbGQgd2hlbiBNSUIgbG9hZGluZyBpcyBkaXNhYmxlZCAoYnJva2VuIGJ5IFNWTiByZXZpc2lvbgogICAxODM0MSkKICAgUmVwb3J0IGRlZmF1bHQgTUlCIHBhdGggZm9yIGNsaWVudCBhcHBzIHRvby4KCjIwMTAtMDMtMjIgMTM6NTkgIGR0czEyCgogICAqICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsIG1hbi9zbm1wX2Vycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywgbWFuL3NubXBfc2VuZC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCBtYW4vc25tcF90aW1lb3V0LjM6CgogICBDSEFOR0VTOiBtYW46IEJVRzogMjk3Mjg2MDogVXBkYXRlIGJyb2tlbiByZWZlcmVuY2VzCgoyMDEwLTAzLTIyIDEzOjQ5ICBkdHMxMgoKICAgKiAgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQsIG1pYnMvVUNELURMTU9ELU1JQi50eHQsICAgCiAgICAgIG1pYnMvVUNELUlQRklMVEVSLU1JQi50eHQsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIENIQU5HRVM6IG1pYnM6IEJVRzogMjk3Mzg5MDogRml4IGltcG9ydHMsIERpc2tJT0VudHJ5IGxpc3QgYW5kCiAgIHJldmlzaW9uIGhpc3RvcmllcwoKMjAxMC0wMy0yMiAxMTo1NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgV2luMzIsIHdpbkV4dERMTDogc29sdmVkIHRoZSBteXN0ZXJ5IG9mICJBU04gdHlwZSB6ZXJvIi4gVGhlCiAgIHdpbkV4dERMTCBjb2RlIGRvZXMgbm93IG5vIGxvbmdlciB0cmlnZ2VyIGNvbnZlcnNpb25zIG9mIFdpbmRvd3MKICAgQVNOIHZhcmJpbmRzIHdpdGggQVNOIHR5cGUgemVyby4gTm90ZTogdGhpcyBjb2RlIGNoYW5nZSBkb2VzIG5vdAogICBjaGFuZ2UgdGhlIGFnZW50IGJlaGF2aW9yLgoKMjAxMC0wMy0yMCAyMDoyMSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmg6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBNU1ZDLgoKMjAxMC0wMy0yMCAyMDoyMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgQWRkZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggKHNob3VsZCBoYXZlIGJlZW4gYWRkZWQgaW4gdGhlCiAgIHByZXZpb3VzIGNvbW1pdCkuCgoyMDEwLTAzLTIwIDE5OjM2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgCiAgICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYywgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBsaWJzbm1wOiBjaGFuZ2VkIHRoZSB0eXBlIG9mIHRoZSBmb3VydGggYXJndW1lbnQgb2YKICAgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpIGZyb20gY29uc3QgY2hhciogdG8gY29uc3Qgdm9pZCogc3VjaAogICB0aGF0IG5vIGNhc3QgaXMgbmVjZXNzYXJ5IHdoZW4gcGFzc2luZyBhbm90aGVyIGRhdGF0eXBlIHRoZW4KICAgY2hhciogb3IgY29uc3QgY2hhciouCiAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQKICAgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgogICBBbHNvLCBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIChtb3N0bHkgY2hhciAqIDw+IHVfY2hhciAqCiAgIG1pc21hdGNoZXMpIGFuZCByZW1vdmVkIHNvbWUgY2FzdHMuCgoyMDEwLTAzLTIwIDE5OjE2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSBnY2MgKE1pbkdXKS4KCjIwMTAtMDMtMjAgMTk6MDUgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3Igc2lncHJvY21hc2suCgoyMDEwLTAzLTIwIDA5OjE0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFJlZmFjdG9yaW5nOiBtb3ZlZCBkdXBsaWNhdGVkIGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbi4KCjIwMTAtMDMtMTkgMjI6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBSZXBvcnQgTUlCIGFuZCBjb25maWcgZGlyZWN0b3JpZXMgc2VhcmNoIHBhdGhzIG9uIGVycm9ycwogICAoYW5kIGluIHRoZSBoZWxwIG1lc3NhZ2UpCgoyMDEwLTAzLTE5IDEzOjEyICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1hZGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBpcyBsb2dnZWQgd2hlbgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIGlzIGF0dGVtcHRlZCBtb3JlIGRldGFpbGVkLgogICAKICAgQW4gZXhhbXBsZToKICAgKGJlZm9yZSkKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAobWliSUkvc25tcCwKICAgQzpcV0lORE9XU1xTeXN0ZW0zMlxzbm1wbWliLmRsbCkKICAgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbGVkLgogICAoYWZ0ZXIpCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb246IE1JQiBtb2R1bGVzIG1pYklJL3NubXAgYW5kCiAgIEM6XFdJTkRPV1NcU3lzdGVtMzJcc25tcG1pYi5kbGwgKG9pZCAuMS4zLjYuMS4yLjEuMTEpLgogICBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsZWQuCgoyMDEwLTAzLTE5IDEyOjQwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IG11bHRpcGxlIHZhcmJpbmQgc2V0IHJlcXVlc3RzIGFyZSBub3cKICAgcHJvY2Vzc2VkIGNvcnJlY3RseS4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogbWFkZSBlcnJvciBjb2RlcyBpbiBTTk1QIHJlc3BvbnNlIFBEVXMKICAgYXMgUkZDLWNvbXBsaWFudCBhcyBwb3NzaWJsZS4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogaWYgbG9hZGluZyBhbiBleHRlbnNpb24gRExMIGZhaWxzLCB0aGUKICAgcmVhc29uIHdoeSBsb2FkaW5nIGZhaWxlZCBpcyBub3cgbG9nZ2VkLgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRoYXQgb2NjdXJyZWQgd2hlbgogICBTbm1wRXh0ZW5zaW9uUXVlcnkoRXgpIGZhaWxlZC4gVGhpcyBtZW1vcnkgbGVhayBoYXMgYmVlbiBmb3VuZAogICB2aWEgc291cmNlIHJlYWRpbmcuIE5vdGU6IGl0IGlzIG5vdCBjbGVhciB3aGV0aGVyIGl0IHdhcyBwb3NzaWJsZQogICB0byB0cmlnZ2VyIHRoaXMgbWVtb3J5IGxlYWsuIFRoaXMgbGVhayBpcyBjZXJ0YWlubHkgbm90IHRyaWdnZXJlZAogICBieSBldmVyeSByZXF1ZXN0IGZvciB3aGljaCBhIHJlc3BvbnNlIHdpdGggbm9uLXplcm8gZXJyb3Igc3RhdHVzCiAgIGlzIHNlbnQgYmFjay4KCjIwMTAtMDMtMTggMTY6MjkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGtlZXAgY291bnQgb2YgZW5hYmxlZCBsb2dzOyB1c2UgdGhpcyBjb3VudCB0byBkZXRlcm1pbmUgd2hlbiB0bwogICBsb2cgdG8gc3RkZXJyCgoyMDEwLTAzLTE4IDE2OjI4ICByc3RvcnkKCiAgICogIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTkVXUzogc25tcGxpYjogbmV3IHNubXAgdG9rZW4gbG9nT3B0aW9uIGFsbG93cyBzcGVjaWZ5aW5nIGxvZwogICBkZXN0aW5hdGlvbnMgdmkgY29uZiBmaWxlcwogICAtIGlmIHN0ZGVyciBsb2cgZW5hYmxlZCBiZWNhdXNlIG9mIG5vIGxvZyBkZXN0aW5hdGlvbiwgdHVybiBpdAogICBvZmYgd2hlbiBhCiAgIGxvZyBkZXN0aW5hdGlvbiBpcyBlbmFibGVkCiAgIC0gZG9uJ3QgY2FsbCBuZXRzbm1wX2VuYWJsZV9zdGRlcnJsb2coKSBmcm9tIGFwcHMgYW55bW9yZQoKMjAxMC0wMy0xOCAxNTozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgdWRwIHRyYW5zcG9ydCBpbmhlcml0YW5jZSB0d2Vha3MKICAgLSBtb3ZlIGJhc2ljIHVkcCByZWN2ZnJvbS9zZW5kdG8gY29kZSBmcm9tIFVEUERvbWFpbiB0bwogICBVRFBCYXNlRG9tYWluCiAgIC0gdHdlYWsgdXBkIHJlY3Zmcm9tL3NlbmR0byB0byBjYWxsIHVkcGJhc2UgdmVyc3Rpb24KICAgLSB0d2VhayB1ZHBpcHY0IHJlY3Zmcm9tL3NlbmR0byB0byBjYWxsIHVkcGJhc2UgdmVyc2lvbgogICAtIGFsc28gZml4ZWQgbmV0c25tcF9pcHY0XyogLT4gbmV0c25tcF91ZHBpcHY0XyoKICAgLSB0d2VhayBEVExTVURQRG9tYWluIG90IHVzZSB1ZHBiYXNlXyogaW5zdGVhZCBvZiB1ZHBfKgoKMjAxMC0wMy0xOCAxNToyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcHJvdGVjdCBjZXJ0IGhlYWRlciBhbmQgaW5pdCBjYWxsIHdpdGggaWZkZWZzCgoyMDEwLTAzLTE3IDE5OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHVzZSBuZXcgdXRpbGl0eSByb3V0aW5lIGZvciBjZXJ0IG5hbWVzCgoyMDEwLTAzLTE3IDE5OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgc25tcF9vcGVuc3NsIGhlYWRlciBhZnRlciBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBhZGQgcm91dGluZXMgdG8gcHVsbC9kdW1wIG5hbWVzIGZyb20gWDUwOSBjZXJ0cwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB1c2UgZW51bSBsaXN0cyB0byBtYW5hZ2UgZGlyZWN0b3J5IGluZGV4ZXMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgaW5pdGlhbGl6ZSBzdGF0aWMgc3RvcmFnZSBiZWZvcmUgdXNlOyBwcm90ZWN0IGVudW0gaW5pdCBmcm9tCiAgIG11bHRpcGxlIGNhbGxzCgoyMDEwLTAzLTE3IDE4OjU0ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgaW5mbyBhYm91dCBuZXcgdHNtL3RscyBtaWJzCgoyMDEwLTAzLTE3IDE4OjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNlcnQgaW5pdCB0byBzbm1wIGluaXQKCjIwMTAtMDMtMTcgMTM6MzcgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgTUlCIHJldmlzaW9uIGhpc3RvcnkuCgoyMDEwLTAzLTE3IDEzOjI5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgb25lIGxlYWstYXQtZXhpdC4KCjIwMTAtMDMtMTcgMTI6NDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogQlVHOiAyOTcxMjU3OiBGaXhlZCB3aW5FeHRETEwgaGFuZGxpbmcgb2YgbXVsdGktdmFyYmluZAogICBnZXROZXh0IHJlcXVlc3RzIHdpdGggT0lEcyBpbiByZXZlcnNlIGxleGljb2dyYXBoaWNhbCBvcmRlci4KCjIwMTAtMDMtMTcgMTA6MjUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgTW9yZSB3aW5FeHRETEwgZGVidWcgb3V0cHV0IHR1bmluZy4KCjIwMTAtMDMtMTYgMTk6MzEgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIENvbXBpbGVzIG5vdyB3aXRoIE1JQiBjb21waWxlcnMgdGhhdCBkbyBub3QgcmVjb2duaXplIGEgZG91YmxlCiAgIGRhc2ggYXMgdGhlIGVuZCBvZiBhIE1JQiBjb21tZW50LgoKMjAxMC0wMy0xNiAxOToyNyAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeGVkIHR3byBzeW50YXggZXJyb3JzLgoKMjAxMC0wMy0xNiAxOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBmaXhlZCBhIGJ1ZyBpbiBnZXROZXh0IGhhbmRsaW5nIHRoYXQKICAgY291bGQgY2F1c2UgdGhlIE1JQiBvdXRwdXQgdG8gYmUgdHJ1bmNhdGVkLgoKMjAxMC0wMy0xNiAxODo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBNYWRlIHdpbkV4dERMTCBkZWJ1ZyBvdXRwdXQgbW9yZSBkZXRhaWxlZC4KCjIwMTAtMDMtMTYgMTU6MjQgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmg6CgogICBNYWRlIHN1cmUgdGhhdCBDKysgcHJvZ3JhbXMgdGhhdCBpbmNsdWRlIE5ldC1TTk1QIGhlYWRlciBmaWxlcwogICBjb21waWxlIGFnYWluLgoKMjAxMC0wMy0xNSAwNzoyMCAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggLS1kaXNhYmxlLWRlcHJlY2F0ZWQgYWdhaW4uCgoyMDEwLTAzLTE1IDA3OjE5ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIERpc2FibGUgYWxsIHRoZSBwcmludGluZyBpZiBkZWJ1ZyBvdXRwdXQgaXMgb2ZmLgoKMjAxMC0wMy0xNSAwMDoxNyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgcmVnYXJkaW5nIHByaW50ZiBmb3JtYXQKCjIwMTAtMDMtMTUgMDA6MDcgIHRhbmRlcnMKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgcmVnYXJkaW5nIHByaW50ZiBmb3JtYXQKCjIwMTAtMDMtMTQgMjE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIG1ha2Ugc3VyZSBoZWFkZXIgaWZkZWYgbmFtZSBpcyB1bmlxdWUKCjIwMTAtMDMtMTQgMjE6MDQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgYWRkIG1pc3NpbmcgaW5pdC9zaHV0ZG93biBwcm90b3R5cGVzIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wMy0xNCAyMTowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBtb3ZlIGRlYnVnIG1lc3NhZ2UgZWFybGllcgoKMjAxMC0wMy0xNCAyMTowMiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV0c25tcF9pbml0X2NvbnRhaW5lcjsgZml4IGNvbXBsZXIgd2FybmluZwoKMjAxMC0wMy0xNCAyMDo1MSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDb3JyZWN0IG5ldHNubXBfYXNzZXJ0X29yX3JldHVybiBhbmQgbmV0c25tcF9hc3NlcnRfb3JfbXNncmV0dXJuCiAgIGZvciB0aGUgTkVUU05NUF9OT19ERUJVR0dJTkcgY2FzZQoKMjAxMC0wMy0xNCAxOToxMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbmFtZSBjZXJ0IGluaXQvc2h1dGRvd24gZnVuY3M7IG9ubHkgY29tcGlsZSBjZXJ0X3V0aWxzIGlmCiAgIHVzaW5nL2hhdmUgU1NMOyBpbml0IGNlcnRzIGZyb20gdGxzIGJhc2UKCjIwMTAtMDMtMTQgMTk6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2FsbCBuZXRzbm1wX2luaXRfb3BlbnNzbCBpbnN0ZWFkIG9mIG5ldHNubXBfaW5pdF90bHNiYXNlCgoyMDEwLTAzLTE0IDE5OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgb2JqZWN0cyBpbiB2ZXJzaW9uIDA4IG9mIHRoZSBkdGxzIGRyYWZ0CgoyMDEwLTAzLTE0IDE5OjA4ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYiwgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliLCBhZ2VudC9taWJncm91cC90c20tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBpbXBvcnQgaW5pdGlhbCBjb2RlIGZvciBkdGxzIG1pYnMKCjIwMTAtMDMtMTQgMTk6MDggIHJzdG9yeQoKICAgKiBtaWJzL1RMU1RNLU1JQi50eHQ6CgogICBUTFNUTS1NSUIgZnJvbSBkcmFmdC1pZXRmLWlzbXMtZHRscy10bS0wOS50eHQKCjIwMTAtMDMtMTQgMTc6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeGVkIGEgZmV3IG1vcmUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTE0IDE0OjEwICBidmFzc2NoZQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIEZvbGxvdy11cCBmb3IgcjE3Mzg0OiBjaGFuZ2VkIE5FVFNOTVBfRFNfTUFYX1NVQklEUyBmcm9tIDQwIHRvCiAgIDQ4LgoKMjAxMC0wMy0xNCAxMzo1MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDaGFuZ2VzOgogICAtIFJlbW92ZWQgLVduby1jaGFyLXN1YnNjcmlwdHMgZnJvbSBERVZGTEFHUy4gVXNpbmcgYSB2YXJpYWJsZSBvcgogICBleHByZXNzaW9uIG9mCiAgIHR5cGUgY2hhciBhcyBhbiBhcnJheSBpbmRleCBpcyBhbG1vc3QgYWx3YXlzIGFuIGVycm9yLgogICBGdXJ0aGVybW9yZSwKICAgLVdjaGFyLXN1YnNjcmlwdCBkb2VzIG5vdCB0cmlnZ2VyIGFueSB3YXJuaW5ncyBvbiB0aGUgTmV0LVNOTVAKICAgY29kZSBiYXNlLgogICAtIFJlbW92ZWQgLVdpbmxpbmUgZnJvbSBERVZGTEFHUy4gTm90IG9ubHkgd2FzIG5vYm9keSBwYXlpbmcKICAgYXR0ZW50aW9uIHRvIHRoZQogICBtZXNzYWdlcyB0cmlnZ2VyZWQgYnkgLVdpbmxpbmUsIGJ1dCByZWNlbnQgdmVyc2lvbnMgb2YgdGhlIGdjYwogICBjb21waWxlciBhcmUKICAgYmV0dGVyIHRoYW4gaHVtYW5zIGF0IGRlY2lkaW5nIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW5saW5lZAogICBhbmQgd2hpY2gKICAgb25lcyBub3QuCgoyMDEwLTAzLTE0IDEzOjM5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVyYW4gYXV0b3JlY29uZi4KCjIwMTAtMDMtMTQgMTM6MzkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTQgMTM6MzYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUmVtb3ZlZCB0aGUgJzB4JyBwcmVmaXggYWdhaW4gZnJvbSBhIGRlYnVnIHN0YXRlbWVudCB0aGF0IHdhcwogICBpbnRyb2R1Y2VkIGluIHIxODI4Mi4KCjIwMTAtMDMtMTMgMTk6MDcgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9UcmFwUmVjZWl2ZXIvcHBwb3J0LmgsICAgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBGaXhlZCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGNvZGUgaW4gdGhlCiAgIHBlcmwgc3ViZGlyZWN0b3J5LgogICBOb3RlOiB0aGVzZSBjaGFuZ2VzIG1heSBjb250YWluIHNvbWUgcmVhbCBidWcgZml4ZXMuCgoyMDEwLTAzLTEzIDA5OjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTEzIDAxOjE2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbmUgdGhlIFRMU1RDUCBET01BSU4KCjIwMTAtMDMtMTMgMDE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCBpZmRlZiB0eXBvCgoyMDEwLTAzLTEyIDIwOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGFuZ2UgZGVidWdnaW5nIHN5bWJvbCBuYW1lcyB0byBhIGdlbmVyaWMgdGxzIHN0cmluZwoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBpbml0aWFsIHdvcmtpbmcgU05NUCBvdmVyIFRMUyBvdmVyIFRDUCBjb25uZWN0aW9uCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBwcmludCBhIG1vcmUgY29tcGxldGUgT3BlblNTTCBzdGFjawoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmaXggYXNzZXJ0IHN0YXRlbWVudHMKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oOgoKICAgYWRkZWQgYW4gYWNjZXB0ZWRfYmlvIHBvaW50ZXIgZm9yIHRoZSBiaW8gYWZ0ZXIgU1NMX2FjY2VwdAoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWRkIHRoZSBhYmlsaXR5IGZvciBmX2NvcHkgYW5kIGZfY29uZmlnCgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIG1pc3NpbmcgOwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGQgYSBmX2NvcHkgcG9pbnRlcgoKMjAxMC0wMy0xMiAyMDoyMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICByZXR1cm4gaW50IG5vdCBpbnQgKiBvbiBlcnJvcgoKMjAxMC0wMy0xMiAyMDoyMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGRlZCBhIGZfY29uZmlnIGZ1bmN0aW9uIGZvciB0cmFuc3BvcnRzCgoyMDEwLTAzLTEyIDExOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcHRhYmxlOiBQQVRDSDogMjg1MDA2NzogU3VwcHJlc3MgZXh0cmFuZW91cyAiaW5kZXgiCiAgIGhlYWRlciB0b2tlbgogICBQYXRjaCBzdXBwbGllZCBieSBEYW4gTmVsc29uCgoyMDEwLTAzLTEyIDExOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mCiAgIGdldHVsb25nZnJvbXN5c2NsYXNzbmV0c3RhdGlzdGljcygpCgoyMDEwLTAzLTExIDE2OjUyICBkdHMxMgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIERvY3VtZW50IHRoZSBmb3JtYXQgb2YgdGhlIC1lLy1FIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKMjAxMC0wMy0xMSAxNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBSZW1vdmUgbWVudGlvbiBvZiB0aGUgKGFiYW5kb25lZCkgJ2RhdGFzZXQyJyBoZWxwZXIuCgoyMDEwLTAzLTExIDE1OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgRG9uJ3QgaW5pdGlhbGlzZSB0aGUgVExTIHRyYW5zcG9ydCB1bmxlc3MgaXQncyBhY3R1YWxseSBiZWVuCiAgIGNvbmZpZ3VyZWQgaW4uCgoyMDEwLTAzLTExIDE1OjQ3ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgdXNlIFNOTVBfVE1QRElSIGluc3RlYWQgb2YgVE1QRElSCgoyMDEwLTAzLTExIDE1OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBxdWVyeSByaWdodCBib29sICh0c20gcHJlZml4IGlzIGxpYiBib29sLCBub3QgYXBwKQoKMjAxMC0wMy0xMSAxNTowOCAgZHRzMTIKCiAgICogIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi90b29scy5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5NTIwMzQ6IFJldHVybiBvZiB0aGUgR3JlYXQgU3VTRSAnc3ByaW50ZicKICAgSHVudC4uLgogICBQYXRjaCBzdXBwbGllZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTQ6NTUgIGR0czEyCgogICAqIGxvY2FsL3RyYXB0b2VtYWlsOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5Mzc5OTY6IEFkZCBEYXRlOiBoZWFkZXIgdG8gZW1haWwgc2VuZCBieQogICB0cmFwdG9lbWFpbAoKMjAxMC0wMy0xMSAxNDo1MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk2NzQwMDogUmV0cmlldmUgZXJyb3IgY291bnRlcnMgZm9yIHRoZQogICBFdGhlckxpa2UtTUlCCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvc2VmIE1vZWxsZXJzLgoKMjAxMC0wMy0xMSAxNDoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTY4NjQyOiBDYXRjaCBvdmVyZmxvdyBvZiBwYXNzLXRocm91Z2gKICAgY29tbWFuZCBidWZmZXIuCiAgIFBhdGNoIGZyb20gQW5kcmVhcyBKYWVnZXIvTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDEyOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk1NjY1NzogSGFuZGxlIG92ZXItbGVuZ3RoIEFnZW50WCBPSURzLgogICBQYXRjaCBwcm92aWRlZCBieSBSb2IgV2VzdAoKMjAxMC0wMy0xMSAxMjoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfY29tbW9uLmM6CgogICBQcm92aWRlIG1pc3NpbmcgZGVidWcgcGFyYW1ldGVyLgogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIChkdW1teSkgcmV0dXJuIHZhbHVlLCB0byBzdXBwcmVzcyBjb21waWxlcgogICB3YXJuaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTI6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIFN1cHByZXNzIHdhcm5pbmdzIG9mIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdy4KICAgVGhpcyBkb2Vzbid0IF9hY3R1YWxseV8gcHJvdGVjdCBhZ2FpbnN0IHN1Y2ggYW4gb3ZlcmZsb3csCiAgIHNpbmNlIHRoZSB0YXJnZXQgYnVmZmVyIGlzIG5vbi1lbXB0eSwgc28gc3RybmNhdCBjYW4ndAogICB1c2UgaXQgYWxsIGFueXdheS4gQnV0IHRoaXMgc2hvdWxkIGF0IGxlYXN0IG1pc2xlYWQgdGhlCiAgIGNvbXBpbGVyIHN1ZmZpY2llbnRseSB0byBzaHV0IGl0IHVwIQogICAKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDExOjU3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIFJlcGxhY2UgYmFja3F1b3RlIHdpdGggc2luZ2xlIHF1b3RlIGluIGNvbmZpZ3VyZSBvdXRwdXQgbWVzc2FnZS4KICAgV2hpbGUgdGhpcyBjaGFuZ2UgaXMgcHJvYmFibHkgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSwgaXQgZmVlbHMKICAgc2Vuc2libGUgdG8gYXZvaWQgdGhpcyBwYXJ0aWN1bGFyIHVzZSBvZiBiYWNrcXVvdGVzLCBKdXN0IEluCiAgIENhc2UuCiAgIFNlZSBkaXNjdXNzaW9uIGluIFBhdGNoICMyOTUyMTY5CgoyMDEwLTAzLTExIDExOjQzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0g6IDI5NTIxNDA6IE92ZXJmbG93IGNvdW50ZXIzMiBhbmQgZ2F1Z2UzMgogICBvbiA2NGJpdCBzeXN0ZW1zIGNvcnJlY3RseQogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTE6MzYgIGR0czEyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMjk1MjAyMDogRXhwbGljaXRseSBzZXQgcGVybWlzc2lvbiBvbgogICB0ZW1wb3JhcnkgdGVzdGluZyBvdXRwdXQgZGlyZWN0b3JpZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0by4KCjIwMTAtMDMtMTEgMTE6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTUwODQ1OiBGaXggaWZIaWdoU3BlZWQgY2FsY3VsYXRpb24KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDA4OjI2ICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vQVNOLnhzLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9PSUQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvT0lEL09JRC54cywgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzOgoKICAgTWFkZSBjb21waWxhdGlvbiBvZiB0aGUgUGVybCBtb2R1bGUgTmV0U05NUC5wbSBvbiBXaW5kb3dzIG1vcmUKICAgc2lsZW50OiBhZGRlZCBjb21waWxlciBmbGFncyAtRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTCiAgIC1EX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIGFuZCBtYWRlIHN1cmUgdGhhdCAjaW5jbHVkZQogICA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IG9jY3VycyBiZWZvcmUgYW55IG90aGVyIGluY2x1ZGUgZmlsZQogICB0aGF0IGRlZmluZXMgX1dJTjMyX1dJTk5ULgoKMjAxMC0wMy0xMCAyMzozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBORVdTOiBzbm1wbGliOiBjcmVhdGUgaW5kZXhlcyBmb3IgY2VydGlmaWNhdGVzIGluIGNvbmZpZyBwYXRoCgoyMDEwLTAzLTEwIDE4OjQ4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmM6CgogICBBZGRlZCAiI2luY2x1ZGUgPHVuaXN0ZC5oPiIgc3VjaCB0aGF0IG9uIFVuaXggc3lzdGVtcyB0aGUKICAgY29tcGlsZXIgZG9lcyBub3QgcHJpbnQgYSB3YXJuaW5nIGFib3V0IGEgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IKICAgdGhlIGZ1bmN0aW9uIGNsb3NlKCkuCgoyMDEwLTAzLTEwIDE4OjMwICByc3RvcnkKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sICAgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuNi5kZXYKCjIwMTAtMDMtMTAgMTg6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHVwZGF0ZSBWZXJzaW9uLU11bmdlIGZvciByZW5hbWVkIGNvbmZpZ3VyZS5hYwoKMjAxMC0wMy0xMCAxODoyOSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBzYXZlIGNvbmZpZ3VyZSBjYWNoZSBldmVyeSBvbmNlIGluIHdoaWxlCgoyMDEwLTAzLTEwIDE2OjEyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluOgoKICAgUmVvcmRlcmVkIHNvbWUgb2YgdGhlIE1ha2VmaWxlIHJ1bGVzIGluIG9yZGVyIHRvIG1pbmltaXplIHRoZQogICBkaWZmcyB3aXRoIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLgoKMjAxMC0wMy0xMCAxNjoxMCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBXaW4zMiwgYmF0Y2ggYnVpbGRpbmc6IERMTCBidWlsZHMgYWdhaW4uCgoyMDEwLTAzLTEwIDE2OjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEZpeGVkIGEgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nIGJ5IGFkZGluZyBhIGZvcndhcmQKICAgZGVjbGFyYXRpb24gZm9yIHRoZSBmdW5jdGlvbiBfY2FjaGVfZnJlZSgpLgoKMjAxMC0wMy0xMCAxNjowNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBXaW4zMi4KCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgbWlzc2luZyBjb250cmlidXRvcnMKCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXggcG90ZW50aWFsIGRvdWJsZSBmcmVlIGluIENPTlRBSU5FUl9GUkVFCiAgIC0gYWxzbyBhZGRlZCBzZXZlcmFsIGNvbXBhcmUgcm91dGluZXMKCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogd2hlbiBmcmVlaW5nIGEgY2FjaGUsIHN0b3AgdGltZXIgYW5kIGNhbGwgY2FjaGUKICAgZnJlZSBmdW5jCiAgIC0gYWxzbyBhZGQgbmV0c25tcF9jYWNoZV9yZW1vdmUKCjIwMTAtMDMtMTAgMDM6NTIgIHJzdG9yeQoKICAgKiAgUkVBRE1FLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdW5kbyBjb21taXQgMTgyMzQKCjIwMTAtMDMtMTAgMDM6NDEgIHJzdG9yeQoKICAgKiAgUkVBRE1FLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgTWVyZ2UgYnJhbmNoICdwdWxsbWUnIG9mIC4uL3RydW5rLXN0YWdpbmcKCjIwMTAtMDMtMDkgMTc6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGV4cG9ydGVkIG5ldHNubXBfcmVhZF9tb2R1bGUoKSBmcm9tIG5ldHNubXAuZGxsCiAgIHN1Y2ggdGhhdCBOZXRTTk1QLnBtIGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDMtMDkgMTc6NDcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFNpbXBsaWZpZWQgdHdvIG1ha2VmaWxlcyB1c2VkIGJ5IGJ1aWxkLmJhdCAoV2luMzIpLgoKMjAxMC0wMy0wOSAxNzoyNCAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGJ1aWxkaW5nIE5ldFNOTVAucG0gZG9lcyBubyBsb25nZXIKICAgdHJpZ2dlciBjb21waWxlciB3YXJuaW5ncyBhYm91dCByZWRlZmluaW5nIF9XSU4zMl9XSU5OVCBub3IKICAgTlRERElfVkVSU0lPTi4KCjIwMTAtMDMtMDkgMTc6MjIgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBOZXRTTk1QLnBtIG1vcmUgc2lsZW50IGJ5CiAgIGFkZGluZyB0aGUgTVNWQyBjb21waWxlciBmbGFncyAtRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTCiAgIC1EX0NSVF9OT05TVERDX05PX1dBUk5JTkdTLgoKMjAxMC0wMy0wOSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlbW92ZSBkZWJ1ZyBtc2cgdXNlZCBkdXJpbmcgZGVidWdnaW5nCgoyMDEwLTAzLTA5IDE3OjAyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBpbml0aWFsIGNlcnQgd3JhcHBlciAtIHRlc3RpbmcgcmVwbyB3cml0ZSBwcml2cwoKMjAxMC0wMy0wOSAxMDoyMCAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW46CgogICBSZW1vdmVkIGR1cGxpY2F0ZSBidWlsZCBydWxlcy4gVGhlc2UgZHVwbGljYXRlIHJ1bGVzIHdlcmUKICAgaGFybWxlc3MgYnV0IHRyaWdnZXJlZCBhIHdhcm5pbmcuCgoyMDEwLTAzLTA5IDAyOjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZGlyZWN0b3J5IGNvbnRhaW5lciBlbmhhbmNlbWVudHMKICAgLSBmaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrCiAgIC0gYWRkIGZpbHRlciBjYWxsYmFjayB0byBmaWx0ZXIgZmlsZXMgcmV0dXJuZWQKICAgLSBhZGQgb3B0aW9uIHRvIHJldHVybiByZWxhdGl2ZSBhbmQgbm90IGZ1bGwgcGF0aHMKICAgLSBhZGQgb3B0aW9uIHRvIHNvcnQgcmV0dXJuZWQgbGlzdAogICAtIGFkZCBvcHRpb24gdG8gcmV0dXJuIGVtcHR5IGNvbnRhaW5lciBpbnN0ZWFkIG9mIE5VTEwgaWYgbm8KICAgZmlsZXMgZm91bmQKICAgLSBjaGFuZ2UgZGVmYXVsdCBjb250YWluZXIgbmFtZSB0byBkaXJlY3RvcnkgdGhhdCB3YXMgc2Nhbm5lZAogICAtIHR3ZWFrIGRlYnVnL2xvZyBtZXNzYWdlcwoKMjAxMC0wMy0wOCAyMzowNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBkZWZpbmUgYW5kIHVzZSBuZXcgTkVUU05NUF9MT0dPTkNFIG1hY3JvCgoyMDEwLTAzLTA4IDIyOjQ0ICByc3RvcnkKCiAgICogbWFuL3NubXBfY29uZmlnLjUuZGVmLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBORVdTOiBzbm1wbGliOiBjb25mIGZpbGVzIGNhbiBub3cgaW5jbHVkZSBvdGhlciBjb25mIGZpbGVzCiAgIC0gYWxzbyB0d2Vha2VkIGRlYnVnIHRva2VucyBoZXJlIGFuZCB0aGVyZQoKMjAxMC0wMy0wOCAyMjo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCB0eXBvIChjYXVzZWQgZXh0ZXJuYWwgcmVmZXJlbmNlIHdoZW4gRFRMU1VEUCBjb25maWd1cmVkCiAgIHdpdGhvdXQgZHRsc3RjcCkKCjIwMTAtMDMtMDYgMDI6MjcgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXRzbm1wX2NvbnRhaW5lciBlbmhhbmNlbWVudHM6CiAgIC0gYWRkIGZyZWVfaXRlbSBmdW5jdGlvbjsgZGVmYXVsdHMgdG8KICAgbmV0c25tcF9jb250YWluZXJfc2ltcGxlX2ZyZWUKICAgLSBhZGQgQ09OVEFJTkVSX0ZSRUVfQUxMIG1hY3JvL2Z1bmN0aW9uIChsaWtlIENPTlRBSU5FUl9DTEVBUiBidXQKICAgY2FsbHMgY29udGFpbmVyIGZyZWVfaXRlbSBmb3IgZWFjaCBpdGVtIGluIHByaW1hcnkgY29udGFpbmVyKQogICAtIGFkZCBhYmlsaXR5IHRvIHNldCBvcHRpb25zIG9uIGJpbmFyeV9hcnJheSBjb250YWluZXJzCgoyMDEwLTAzLTAyIDE3OjU1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluOgoKICAgTWFkZSBzdXJlIHRoYXQgd2luMzIvYnVpbGQuYmF0IHdvcmtzIGFnYWluIGJ5IGFkZGluZyBtaXNzaW5nCiAgIHNvdXJjZSBmaWxlIG5hbWVzLiBTb3J0ZWQgc291cmNlIGZpbGUgbmFtZXMgYWxwaGFiZXRpY2FsbHkgdG9vLgoKMjAxMC0wMy0wMiAxNjo1NCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxNjcgKG1lcmdlIG9mIHNubXBkIGFuZCBzbm1wZHNkayBhbmQgYWxzbyBvZgogICBuZXRzbm1wbWlicyBhbmQgbmV0c25tcG1pYnNzZGspOiB0aGUgYmF0Y2ggZmlsZSB3aW4zMi9idWlsZC5iYXQKICAgd29ya3MgYWdhaW4gd2l0aCB0aGUgUGxhdGZvcm0gU0RLIGVuYWJsZWQuCgoyMDEwLTAzLTAyIDE2OjUyICBidmFzc2NoZQoKICAgKiB3aW4zMi9NYWtlZmlsZS1hcHBzLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgyMTUgKHJlcGxhY2VkIHRoZSBvYnNvbGV0ZSBjbC5leGUgb3B0aW9uIC9HWCBieQogICB0aGUgZXF1aXZhbGVudCAvRUhzYzsgYWRkZWQgL0QgIl9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIiwgYWRkZWQKICAgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgYW5kIHJlbW92ZWQgL0ZwLi4uIGFuZCAvWVgpLgoKMjAxMC0wMi0yOCAxNTo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBXaW4zMjogZml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IHJlZGVmaW5pdGlvbiBvZgogICBfV0lOMzJfV0lOTlQgYnkgbWFraW5nIHN1cmUgdGhhdCA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGlzCiAgIGluY2x1ZGVkIGJlZm9yZSA8d2luZG93cy5oPi4KCjIwMTAtMDItMjggMTU6MjQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZXBsYWNlZCB0aGUgb2Jzb2xldGUgL0dYIGJ5IHRoZQogICBlcXVpdmFsZW50IC9FSHNjLgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IGFkZGVkIC9EICJfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyIKICAgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgdG8gbWFrZSBidWlsZGluZyB3aXRoIE1TVkMgMjAwOAogICBtb3JlIHNpbGVudC4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZW1vdmVkIC9GcC4uLiBhbmQgL1lYLiBUaGVzZQogICBvcHRpb25zIGluZmx1ZW5jZSBob3cgcHJlY29tcGlsZWQgaGVhZGVyIGZpbGVzIGFyZSBnZW5lcmF0ZWQsCiAgIHdoaWNoIGFyZSBub3QgdXNlZCBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QuIC9ZWCBpcyBub3QKICAgc3VwcG9ydGVkIGJ5IE1TVkMgMjAwOC4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZW1vdmVkIGEgZHVwbGljYXRlIG9jY3VycmVuY2Ugb2YKICAgc3RydG91bGwub2JqLgoKMjAxMC0wMi0yOCAxNDoxMSAgYnZhc3NjaGUKCiAgICogd2luMzIvQ29uZmlndXJlLCB3aW4zMi9NYWtlZmlsZS5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTY3IChtZXJnZSBvZiBzbm1wZCBhbmQgc25tcGRzZGsgYW5kIGFsc28gb2YKICAgbmV0c25tcG1pYnMgYW5kIG5ldHNubXBtaWJzc2RrKTogYXBwbGllZCB0aGUgbmVjZXNzYXJ5IGNoYW5nZXMgdG8KICAgdGhlIHdpbjMyL0NvbmZpZ3VyZSBzY3JpcHQgYW5kIHdpbjMyL01ha2VmaWxlLmluLgoKMjAxMC0wMi0yNyAxMzoxMSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5waXBlLmgsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCAgIAogICAgICBzbm1wbGliL2dldG9wdC5jLCBzbm1wbGliL2dldHRpbWVvZmRheS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3RybGNweS5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG91bGwuYywgICAKICAgICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3VjZF9jb21wYXQuYywgc25tcGxpYi93aW5waXBlLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBkZWNsYXJlZCBhbGwgZnVuY3Rpb25zIHRoYXQgYXJlIGV4cG9ydGVkIGZyb20gdGhlCiAgIE5ldC1TTk1QIERMTCBhcyBORVRTTk1QX0lNUE9SVC4gVGhlIHJlc3VsdCBpcyBhIG1pbm9yCiAgIG9wdGltaXphdGlvbjogY29kZSB0aGF0IHVzZXMgdGhlIE5ldC1TTk1QIERMTCB3aWxsIG5vdyBjYWxsIHRoZQogICBETEwtZXhwb3J0ZWQgZnVuY3Rpb25zIGRpcmVjdGx5IGluc3RlYWQgb2YgaW5kaXJlY3RseSB2aWEgdGhlCiAgIHN0dWIgaW4gdGhlIGltcG9ydCBsaWJyYXJ5LgoKMjAxMC0wMi0yNyAxMTo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgUmVtb3ZlZCBhIHJlZHVuZGFudCBzdHJuY2FzZWNtcCgpIGRlY2xhcmF0aW9uLgoKMjAxMC0wMi0yNyAwOTo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zdHJ0b2tfci5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMDItMjcgMDk6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTg5IChyc3RvcnkpOiBidWlsZHMgYWdhaW4gb24gV2luZG93cy4KCjIwMTAtMDItMjUgMTc6NTMgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgCiAgICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCAgCiAgICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIuc2xuLCB3aW4zMi93aW4zMmRsbC5kc3csICAgCiAgICAgIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIFJldmVydGVkIHIxODIwNyAoZHNwL2RzdyB0byB2Y3Byb2ovc2xuIGNvbnZlcnNpb24pIGV4Y2VwdCB0aGUKICAgc3VwcHJlc3Npb24KICAgbGlzdCBjaGFuZ2VzLiBUaGUgZ29hbCBvZiB0aGlzIGNvbnZlcnNpb24gd2FzIHR3b2ZvbGQ6IG5vdCBvbmx5CiAgIHRvIGJlIGFibGUKICAgdG8gbG9hZCB0aGUgcHJvamVjdCBmaWxlcyBpbiBNU1ZDIDIwMDIgLSAyMDA4IGJ1dCBhbHNvIHRvIGJlIGFibGUKICAgdG8gY29tbWl0CiAgIGNoYW5nZXMgbWFkZSBmcm9tIGluc2lkZSB0aGUgTVNWQyAyMDA4IElERS4gVW5mb3J0dW5hdGVseQogICBjb252ZXJ0aW5nIGRzcC9kc3cKICAgZmlsZXMgdG8gdmNwcm9qL3NsbiBmaWxlcyB3aXRoIE1TVkMgMjAwOCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvCiAgIGxvYWQgdGhlCiAgIHZjcHJvai9zbG4gZmlsZXMgd2l0aCBlYXJsaWVyIE1TVkMgdmVyc2lvbnMuIFdoeSBvbiBlYXJ0aCBkaWQKICAgTWljcm9zb2Z0CiAgIGRlY2lkZSB0byBwdXQgYSB2ZXJzaW9uIG51bWJlciBpbiBYTUwgZmlsZXMgPwoKMjAxMC0wMi0yNCAxOTo0MSAgYnZhc3NjaGUKCiAgICogIHdpbjMyLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCB3aW4zMi9saWJhZ2VudCwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMsIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy52Y3Byb2osIHdpbjMyL2xpYm5ldHNubXB0cmFwZCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCB3aW4zMi9saWJzbm1wLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIHdpbjMyL25ldHNubXBtaWJzLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgd2luMzIvc25tcGJ1bGtnZXQsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCB3aW4zMi9zbm1wYnVsa3dhbGssICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQsICAgCiAgICAgIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCB3aW4zMi9zbm1wZGVsdGEsIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwKICAgICAgICAgd2luMzIvc25tcGRmLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIHdpbjMyL3NubXBnZXQsICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0LCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgd2luMzIvc25tcG5ldHN0YXQsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCB3aW4zMi9zbm1wc2V0LCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCB3aW4zMi9zbm1wdGFibGUsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCB3aW4zMi9zbm1wdHJhbnNsYXRlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCB3aW4zMi9zbm1wdHJhcCwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCB3aW4zMi9zbm1wdXNtLCAgIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbSwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIHdpbjMyL3NubXB3YWxrLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5zbG4sIHdpbjMyL3dpbjMyZGxsLmRzdywgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgKHJldmVydGVkKSBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGNvbnZlcnRlZCAuZHNwLy5kc3cgZmlsZXMgdG8KICAgLnZjcHJvai8uc2xuIGZpbGVzLiBUaGlzIGltcGxpZXMgdGhhdCBzdXBwb3J0IGZvciBNU1ZDIDYuMCBoYXMKICAgYmVlbiBkcm9wcGVkIGFuZCB0aGUgbWluaW11bSBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyB2ZXJzaW9uCiAgIHJlcXVpcmVkIHRvIGJ1aWxkIHRoZSBOZXQtU05NUCBzb3VyY2UgY29kZSBpcyBNaWNyb3NvZnQgVmlzdWFsCiAgIFN0dWRpbyAuTkVUICgyMDAyKS4KCjIwMTAtMDItMjMgMTk6MDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHdoZW4gZ2VuZXJhdGluZyBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBzeXN0ZW0KICAgbG9jYXRpb24gYW5kIG5vIGRvbWFpbiBuYW1lIGlzIGZvdW5kIGluIC9ldGMvcmVzb2x2LmNvbmYsIHVzZQogICAiQG5vLndoZXJlIiBpbnN0ZWFkIG9mICIiLgoKMjAxMC0wMi0yMyAxODo1MCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBtNC9hY19wcm9tcHRfdXNlci5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCBkb2VzIG5vCiAgIGxvbmdlciBpbnZva2UgInRhaWwgLTEiLCB3aGljaCBpcyBub3QgUE9TSVgtY29tcGxpYW50LgoKMjAxMC0wMi0yMyAxODo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIHRlc3RpbmcvdGVzdHMvVDM2MGR0bHN1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM5OWFsaWFzOgoKICAgUmVtb3ZlZCBhbGwgdHJhbnNwb3J0IHRlc3RzIHNpbmNlIGl0J3MgaW1wb3NzaWJsZSB0byBkZXRlcm1pbmUKICAgd2hlcmUgdGhleSBjYW4gc2FmZWx5IG9wZXJhdGUgKHdhcyBzdG9wcGluZyB0YW5kZXJzJyBuaWdodGx5CiAgIHRlc3RzIGZyb20gc3VjY2VlZGluZykKCjIwMTAtMDItMjMgMTg6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBlcnJvciBhbmQgZGVidWdnaW5nIG91dHB1dAoKMjAxMC0wMi0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHRoZSBzZXJ2ZXIgY29udGV4dCBnZW5lcmF0b3IgdG8gYWN0dWFsbHksIHVtLCByZXR1cm4gdGhlCiAgIGNvbnRleHQuCgoyMDEwLTAyLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBpbml0aWFsaXplIHRoZSAncmVzJyB2YXJpYWJsZSBzaW5jZSBpdCdzIGNoZWNrZWQKCjIwMTAtMDItMjMgMTg6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBwcm9ncmVzcyB0b3dhcmQgYSByZWFsIGltcGxlbWVudGF0aW9uCgoyMDEwLTAyLTIzIDE4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICB0bHN0Y3AgY3RvciBpbnZvY2F0aW9uCgoyMDEwLTAyLTIzIDE4OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oOgoKICAgcmVxdWlyZSBUTFNCYXNlCgoyMDEwLTAyLTIzIDE4OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZGVkIGhvc3QgaWRlbnRpZmllciBhcyBvdXRwdXQKCjIwMTAtMDItMjMgMTg6MzUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBzaWduaWZpY2FudCBtb3JlIHdvcmsgb24gdGhlIFRMUyBUQ1AgZG9tYWluCgoyMDEwLTAyLTIzIDE3OjQzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE5MyAoanNhZnJhbmVrKTogcmVyYW4gYXV0b3JlY29uZiBmb3IgdGhlIHRydW5rCiAgIGFuZCB0aGUgNS41IGJyYW5jaC4KCjIwMTAtMDItMjMgMTQ6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgTkVUU05NUF9QUkl6IGluc3RlYWQgb2YgJXoKCjIwMTAtMDItMjMgMTI6MjcgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBGaXhlZCBjb21waWxhdGlvbiB3aXRoIHJwbS00LjYuCiAgIFR1cm4gb24gdGhlIGxlZ2FjeSBBUEkgd2hlbiBycG0tNC42IGlzIGRldGVjdGVkLgoKMjAxMC0wMi0yMyAwNzozOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydGVkIHIxODAwMCAoZGlzYWJsaW5nIFNJR0FMUk0gc3VwcG9ydCkgYmVjYXVzZSB0aGlzIGludm9sdmVzCiAgIGEgYmFja3dhcmRzLWluY29tcGF0aWJsZSBjaGFuZ2UuCgoyMDEwLTAyLTIzIDAwOjM2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBmaXggdHlwbyBpbiBjb21tZW50CgoyMDEwLTAyLTIzIDAwOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVidWcgbXNnIHR3ZWFrczsgdXNlIG5ldyB0cmFucG9ydCBmdW5jdGlvbnMKICAgLSBhZGQgZGVidWcgaGVhZGVyIGZvciBzbm1wIHZlcnNpb24KICAgLSBhZGQgbGVuZ3RoIHRvIGRlYnVnIHNlbmQvcmVjZWl2ZSBtZXNzYWdlcwogICAtIHVzZSBuZXcgdHJhbnBvcnQgZnVuY3Rpb25zIGZvciBzZW5kL3JlY3YvZmluZGluZyBwZWVyIGFkZHJlc3MKCjIwMTAtMDItMjMgMDA6MjUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFkZCBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZywgbmV0c25tcF90cmFuc3BvcnRfc2VuZCAmCiAgIG5ldHNubXBfdHJhbnNwb3J0X3JlY3YKICAgLSBtb3ZlcyB0cmFuc3BvcnQgbWFuaXB1bGF0aW9uIGludG8gdHJhbnNwb3J0IGNvZGUKICAgLSBjZW50cmFsIHBsYWNlIGZvciBsb2dnaW5nL2RlYnVnZ2luZyBzZW50L3JlY2VpdmVkIGRhdGEKCjIwMTAtMDItMjIgMTk6MzMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWw6CgogICBDSEFOR0VTOiBidWlsZGluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lcyBubwogICBsb25nZXIgaW52b2tlICJ0YWlsIC0xIiwgd2hpY2ggaXMgbm90IFBPU0lYLWNvbXBsaWFudC4KCjIwMTAtMDItMjIgMTk6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxODE4Ni4gUmVncmVzc2lvbiB0ZXN0IDM0ICh3aGV0aGVyIGF1dGhlbnRpY2F0aW9uCiAgIGZhaWx1cmUgdHJhcHMgYXJlIHNlbnQgYnkgc25tcGQpIHBhc3NlcyBub3cgYWdhaW4uCgoyMDEwLTAyLTIyIDA5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1hZGUgc3VyZSB0aGF0IGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWx1cmUgZG9lcwogICBub3QgY3JlYXRlIGRhbmdsaW5nIHBvaW50ZXJzIGluIHRoZSBNSUIgc3VidHJlZSByZWdpc3RyeS4KCjIwMTAtMDItMjIgMDk6MTEgIGJ2YXNzY2hlCgogICAqIGFnZW50LCBhcHBzLCBhcHBzL3NubXBuZXRzdGF0OgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMi0yMiAwODo0MiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGxpYmVheTMyIChPcGVuU1NMKSBjb25maWd1cmUgdGVzdCBmb3IKICAgTWluR1cuCgoyMDEwLTAyLTIyIDA4OjMxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBsaWJlYXkzMiAoT3BlblNTTCkgY29uZmlndXJlIHRlc3QgZm9yCiAgIE1pbkdXLgoKMjAxMC0wMi0yMiAwODoxMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBNaW5HVyB3aGVuIElQdjYgc3VwcG9ydCBpcyBlbmFibGVkLgoKMjAxMC0wMi0yMSAxODo1OCAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvbGlic2RsbC5kc3csICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgd2luMzIvd2luMzJkbGwuZHN3OgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiByZW5hbWVkIGxpYnNkbGwuZHN3IGludG8gd2luMzJkbGwuZHN3LgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgbGlua2luZyB0aGUgTmV0LVNOTVAKICAgYXBwbGljYXRpb25zIHdpdGggbmV0c25tcC5kbGwgYnkgYWRkaW5nIGFsbCBhcHBsaWNhdGlvbiBwcm9qZWN0cwogICB0byB0aGUgc2FtZSB3b3Jrc3BhY2UgdGhhdCBpcyB1c2VkIGZvciBidWlsZGluZyB0aGUgRExMLgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgbmV0c25tcC5kbGwgbGVzcyBlcnJvcgogICBwcm9uZSBieSBsZXR0aW5nIHRoZSBjb21waWxlciBwcmludCBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZQogICBwcmVwcm9jZXNzb3Igc3ltYm9sIE5FVFNOTVBfVVNFX0RMTCBoYXMgbm90IGJlZW4gZGVmaW5lZC4KCjIwMTAtMDItMjEgMTg6NTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQWRkZWQgbGlic25tcC5kZWYgdG8gdGhlIGxpc3Qgb2YKICAgbGlic25tcF9kbGwuZHNwIHNvdXJjZSBmaWxlcyBzdWNoIHRoYXQgdGhlIERMTCBpcyByZWJ1aWx0IHdoZW4KICAgdGhlIC5kZWYgZmlsZSBoYXMgYmVlbiBtb2RpZmllZC4KCjIwMTAtMDItMjEgMTg6NDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBleHBvcnRlZCBuZXRzbm1wX3NldF9saW5lX2J1ZmZlcmluZygpIGZyb20KICAgbmV0c25tcC5kbGwuCgoyMDEwLTAyLTIxIDE3OjM5ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3JlIFdpbjMyIElQdjYgc291cmNlIGNvZGUgY29uc2lzdGVuY3kgaW1wcm92ZW1lbnRzOgogICAtIE1vdmVkICN1bmRlZiBIQVZFX0lGX05BTUVUT0lOREVYIGZyb20gc25tcGxpYi8qLmMgdG8KICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguCiAgIC0gQ2hhbmdlZCB0aGUgZ2xvYmFsIGluNmFkZHJfYW55IHZhcmlhYmxlIGludG8gYSBzdGF0aWMgdmFyaWFibGUKICAgc3VjaCB0aGF0CiAgIG11bHRpcGxlIGRlZmluaXRpb25zIGRvIG5vdCB0cmlnZ2VyIGEgbGlua2VyIGVycm9yLgogICAtIEFkZGVkIHR5cGVkZWZzIGZvciB1aW50OF90LCBpbnQ4X3QsIHVpbnQxNl90IGFuZCBpbnQxNl90LgogICAtIFJlcGxhY2VkICcjaWYgTkVUU05NUF9FTkFCTEVfSVBWNicgYnkgJyNpZmRlZgogICBORVRTTk1QX0VOQUJMRV9JUFY2Jy4KCjIwMTAtMDItMjEgMDg6MzAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmM6CgogICBtYWtlIHN1cmUgdGhhdCBJTkFERFJfTk9ORSBpcyBkZWZpbmVkIChmaXhlcyBidWlsZCBlcnJvciBvbgogICBTb2xhcmlzKQoKMjAxMC0wMi0xOSAxOTozOSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBTeW5jaHJvbml6ZWQgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggYW5kCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLgoKMjAxMC0wMi0xOSAxNDoxOCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGxpYnNubXAgYnVpbGRzIGFnYWluIGFzIGEgRExMIHdoZW4gSVB2NiBpcwogICBlbmFibGVkLgoKMjAxMC0wMi0xOSAxMzoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBGb2xsb3cgdXAgZm9yIHIxODE2NDogc3luY2hyb25pemVkIGxpYnNubXAuZGVmLmluIHdpdGgKICAgbGlic25tcC5kZWYKCjIwMTAtMDItMTkgMDk6MDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGFkZGVkICNpbmNsdWRlIDxtYWxsb2MuaD4gaW4KICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggc3VjaCB0aGF0IHRoZSBNU1ZDIGNvbXBpbGVyCiAgIGRvZXNuJ3QgZ2V0IGNvbmZ1c2VkIGJ5IHRoZSBtYWxsb2MgcmVkZWZpbml0aW9uIHdoZW4gYnVpbGRpbmcKICAgbGlic25tcCBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6NTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRXhwb3J0ZWQgbmV0c25tcF9wYXJzZV9hcmdzKCkgc3VjaCB0aGF0IHRoZSBOZXQtU05NUCBhcHBsaWNhdGlvbnMKICAgYnVpbGQgYWdhaW4gd2hlbiBsaWJzbm1wIGlzIGJ1aWx0IGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9rZXl0b29scy5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbW92ZWQgTVNWQyBPcGVuU1NMIGxpbmtlciBzZXR0aW5ncyBmcm9tCiAgIHNubXBsaWIva2V5dG9vbHMuYyB0byB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzdWNoIHRoYXQKICAgdGhlc2Ugc2V0dGluZ3MgYXJlIG5vdCBvbmx5IGVmZmVjdGl2ZSB3aGVuIGJ1aWxkaW5nIHNubXBsaWIgYXMgYQogICBzdGF0aWMgbGlicmFyeSBidXQgYWxzbyB3aGVuIGFueSBOZXQtU05NUCBhcHBsaWNhdGlvbiBpcyBidWlsdAogICB0aGF0IGxpbmtzIHdpdGggc25tcGxpYiBhcyBhIHN0YXRpYyBsaWJyYXJ5IG9yIGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODozMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgV2luMzIgY2xlYW51cDogTVNWQyAvIERMTCB0ZXN0cyBub3cgdXNlIHRoZSBvZmZpY2lhbGx5IGVuZG9yc2VkCiAgIG1hY3JvIG5hbWVzLgoKMjAxMC0wMi0xOSAwNzo1MCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgQnVpbGRzIGFnYWluLgoKMjAxMC0wMi0xOSAwNjo0NyAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDI5NDI5NDA6IGZyb20gIkJpbGwgRmVubmVyIjogQWRkIGEgbmV3CiAgIGZ1bmN0aW9uLCBuZXRzbm1wX3BhcnNlX2FyZ3MsIHRoYXQgaXMgbGlrZSBzbm1wX3BhcnNlX2FyZ3MgYnV0CiAgIHRha2VzIGFuIGFkZGl0aW9uYWwgYml0bWFzaywgZmxhZ3MsIHRvIGFmZmVjdCB0aGUgYmVoYXZpb3VyLiBBbHNvCiAgIHJlbW92ZSB0aGUgbWFnaWMgaGFuZGxpbmcgb2Ygc29tZSBhcHBsaWNhdGlvbiBuYW1lcy4KCjIwMTAtMDItMTggMTQ6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2JpbjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDItMTggMTQ6MjAgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgU29ydGVkIG5hbWVzIG9mIHNvdXJjZSBmaWxlcyBhbHBoYWJldGljYWxseS4KCjIwMTAtMDItMTggMTM6MDMgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIHNubXBsaWIvd2luc2VydmljZS5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCB3aW4zMi9uZXRzbm1wbWlic3NkaywgICAKICAgICAgd2luMzIvc25tcGRzZGssIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogZHJvcHBlZCBzdXBwb3J0IGZvciBidWlsZGluZyBOZXQtU05NUCB3aXRoCiAgIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYuMCB3aXRob3V0IHBsYXRmb3JtIFNESy4gQnVpbGRpbmcKICAgTmV0LVNOTVAgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2LjAgKyBQU0RLIG9yIGFueSBsYXRlcgogICB2ZXJzaW9uIG9mIE1TVkMgaXMgc3RpbGwgcG9zc2libGUgaG93ZXZlci4KICAgCiAgIE5vdGU6IGlmIGluIHRoZSBmdXR1cmUgZm9yIHdoYXRldmVyIHJlYXNvbiBpdCBzaG91bGQgYmVjb21lCiAgIG5lY2Vzc2FyeSBhZ2FpbiB0byBiZSBhYmxlIHRvIGJ1aWxkIE5ldC1TTk1QIHdpdGggTVNWQyB3aXRob3V0CiAgIHJlbHlpbmcgb24gdGhlIHBsYXRmb3JtIFNESyBoZWFkZXJzLCBwbGVhc2UgI2lmZGVmIG91dCB0aGUgTUlCCiAgIGNvZGUgdGhhdCByZWxpZXMgb24gdGhlIFBTREsgaGVhZGVycyBpbnN0ZWFkIG9mIHNwbGl0dGluZyB0aGUKICAgd29ya3NwYWNlIGZpbGVzIGFnYWluLgoKMjAxMC0wMi0xOCAxMjo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIGRvczJ1bml4LgoKMjAxMC0wMi0xOCAwOTo0NSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBTb3VyY2UgY29kZSBjbGVhbnVwOgogICAtIE1vdmVkIGRvY3VtZW50YXRpb24gb2YgbmV0c25tcF9sYXJnZV9mZF9zZXQgbWVtYmVycyB0byB0aGUKICAgY29tbWVudAogICBibG9jayBqdXN0IGFib3ZlIHRoZSBkZWZpbml0aW9uIG9mIHRoaXMgdHlwZS4KICAgLSBSZW1vdmVkIHN1cGVyZmx1b3VzICdleHRlcm4gIkMiJyBzcGVjaWZpZXI6IHRoaXMgbGlua2FnZQogICBzcGVjaWZpZXIKICAgb25seSBoYXMgYW4gZWZmZWN0IG9uIGRlY2xhcmF0aW9ucyBvZiB2YXJpYWJsZXMgb2YgZnVuY3Rpb25zIGFuZAogICBub3QKICAgb24gdHlwZWRlZnMgb3Igc3RydWN0IGRlZmluaXRpb25zLgogICAtIFJhbiB0aGlzIGhlYWRlciBmaWxlIHRocm91Z2ggaW5kZW50LgoKMjAxMC0wMi0xOCAwOToyNiAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBDaGFuZ2VzOgogICAtIEJ1aWxkcyBhZ2FpbiB3aXRoIE1TVkMuCiAgIC0gRml4ZWQgYSBmZXcgY29tcGlsZXIgd2FybmluZ3MgcmVwb3J0ZWQgYnkgTVNWQyAocGFzc2luZyBpbnQKICAgaW5zdGVhZCBvZiB1X3Nob3J0IHRvIGh0b25zKCkgLyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdGhhdCB3ZXJlCiAgIG1pc3NpbmcgYmVjYXVzZSBvZiBtaXNzaW5nICNpbmNsdWRlIGRpcmVjdGl2ZXMpLgoKMjAxMC0wMi0xNiAxNzoxNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IFRoZSBoZWFkZXIgZmlsZSA8c3lzL3RpbWViLmg+IGlzIG5vIGxvbmdlcgogICBpbmNsdWRlZCBmcm9tIDxuZXQtc25tcC90eXBlcy5oPi4gT3I6IHRoZSBoZWFkZXIgZmlsZQogICA8c3lzL3RpbWViLmg+IHdpbGwgaGF2ZSB0byBiZSBpbmNsdWRlZCBleHBsaWNpdGx5IGluIHNvdXJjZSBmaWxlcwogICB0aGF0IG5lZWQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBmdGltZSgpLgogICAKICAgTm90ZTogY29tcGFyZWQgdG8gcjE4MDI0IGFuZCBiZWZvcmUsIHRoaXMgY2hhbmdlIGRvZXMgbm90IGFmZmVjdAogICBCU0Qgc3lzdGVtcyAtLSA8c3lzL3RpbWViLmg+IHdhcyBvbmx5IGluY2x1ZGVkIGZyb20KICAgPG5ldC1zbm1wL3R5cGVzLmg+IG9uIEJTRCBzeXN0ZW1zIGluIHJldmlzaW9ucyByMTgwMjUuLnIxODE1Mi4KCjIwMTAtMDItMTQgMTk6MjkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6CgogICBCdWlsZHMgbm93IG9uIEZyZWVCU0QgdmVyc2lvbiA4LjAuCgoyMDEwLTAyLTEzIDIwOjU5ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIEFkanVzdCB0aGUgcGxhY2VtZW50IG9mIDsncyBpbiBvcmRlciB0bwogICBhKSBBdm9pZCB3YXJuaW5ncyBhYm91dCBzcHVyaW91cyBzZW1pY29sb25zCiAgIGIpIE5vdCBoYXZlIHVudGVybWluYXRlZCBkZWNsYXJhdGlvbnMgaW4gaGVhZGVycwoKMjAxMC0wMi0xMiAwMjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IHVwZGF0ZSBpbmxpbmUgZG9jdW1lbnRhdGlvbjsgYWRkIHN0b3JhZ2V0eXBlIHRlc3QKICAgZm9yIGNvbHVtbnMKCjIwMTAtMDItMTIgMDE6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZpeCB0eXBvIGluIGRlZmluZQoKMjAxMC0wMi0xMiAwMTowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBmaXggc2VkIHByb2Nlc3Npbmcgb24gd2hpdGUtc3BhY2UgYWRkaW5nIHNvbGFyaXMgbWFjaGluZXMKCjIwMTAtMDItMTAgMjM6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgYWRkIHRvcCBzcmNkaXIgdG8gY3BwIHNlYXJjaCBwYXRoCgoyMDEwLTAyLTEwIDIzOjUyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBmcmVlYnNkIG5lZWRzIHRpbWUuaCBhYm92ZSB0aW1lYi5oCgoyMDEwLTAyLTEwIDIzOjM3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIHVzZSBzZWQgd2l0aCBtdWx0aXJlcGxhY2Ugb24gYSBsaW5lIHRvIGZpeCBwb3NzaWJsZSB3aGl0ZXNwYWNlCiAgIGlzc3VlIG9uIHNvbGFyaXMKCjIwMTAtMDItMTAgMjM6MjIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYmVnaW5uaW5nIHdvcmsgZm9yIFRMUyBzZXBhcmF0aW9uIGludG8gc2VwYXJhdGUgZmlsZXMgd2l0aCBhIGJhc2UKICAgZmlsZQoKMjAxMC0wMi0xMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOgoKICAgbW92ZSBiYXNlIHRyYW5zcG9ydCBjcmVhdGlvbiBmdW5jdGlvbiBvdXQgb2YgbGludXggaWZkZWZzCgoyMDEwLTAyLTEwIDIzOjIxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZWQgYW5vdGhlciBlcnJvciBsb2dnaW5nIGZ1bmN0aW9uCgoyMDEwLTAyLTEwIDIzOjIwICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZGVkIFRMUyBvdmVyIFRDUAoKMjAxMC0wMi0xMCAxNjozOSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBJbXByb3ZlZCBFdGhlckxpa2UtTUlCIHN1cHBvcnQKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9zZWYgTW9lbGxlcnMKCjIwMTAtMDItMTAgMTA6MDQgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFN1cHBvcnQgbnVsbC1ieXRlcyBpbiBvY3RldCBzdHJpbmdzCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFRvbW15IEJlYWRsZQoKMjAxMC0wMi0xMCAwMDo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlZCBUTFMgaW5mcmFzdHJ1Y3R1cmUgaW50byBhIGJhc2UgZG9tYWluIGZpbGUKCjIwMTAtMDItMTAgMDA6MDQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBtb3ZlZCBzb2NrZXQ2IGZ1bmN0aW9ucyB0byB0aGUgaXB2NiBiYXNlCgoyMDEwLTAyLTEwIDAwOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICB3aGl0ZSBzcGFjZSBmb3JtYXR0aW5nCgoyMDEwLTAyLTEwIDAwOjAzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCB1ZHBfc2VuZC9yZWN2IHRvIHVkcGJhc2UKCjIwMTAtMDItMTAgMDA6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmUgbmV0c25tcF9zb2NrX2J1ZmZlcl9zZXQgaW50byBzb2NrZXRiYXNlCgoyMDEwLTAyLTEwIDAwOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgbW92ZSBpcHY0IHNwZWNpZmljIFVEUCB0cmFuc3BvcnQgY3JlYXRpb24gdG8gdWRwaXB2NCBiYXNlCgoyMDEwLTAyLTEwIDAwOjAxICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIG1hZGUgY29tbW9uIGZ1bmN0aW9ucyBiZSByZWZlcmVuY2VkIGRpcmVjdGx5IGJ5IHRoZSB0cmFuc3BvcnRzCiAgIGFuZCByZW1vdmVkIG9yaWdpbmFsIGZ1bmN0aW9uYWxpdHk7IHRoZXkgd2VyZSBzdGF0aWMgc28gdGhlcmUgaXMKICAgbm8gYmFja3dhcmRzIGNvbXBhdCBpc3N1ZXMKCjIwMTAtMDItMTAgMDA6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBzb2NrZXQgYmFzZWQgY2xvc2UgdG8gYSBzb2NrZXQgYmFzZWQgZG9tYWluIGNvbW1vbiB0byBtYW55CiAgIHRoaW5ncwoKMjAxMC0wMi0wOSAyMzo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVENQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgbW92ZSBUQ1AgY29tbW9uIGZ1bmN0aW9ucyB0byBhIFRDUEJhc2UgZG9tYWluIGltcGxlbWVudGF0aW9uCgoyMDEwLTAyLTA5IDIzOjU3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICB3YXJuaW5nIGNsZWFudXAKCjIwMTAtMDItMDkgMjM6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgdG1TdGF0ZVJlZmVyZW5jZSBzaG91bGQgYmUgdXNpbmcgdGhlIGluZGV4ZWQgYWRkcl9wYWlyCgoyMDEwLTAyLTA5IDIzOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtYWtlIG5ldHNubXBfZHRsc3VkcF9jbG9zZSBtYWtlIHVzZSBvZiBuZXRzbm1wX2Jhc2V1ZHBfY2xvc2UKCjIwMTAtMDItMDkgMjM6NTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgYmFzZSBVRFAgc29ja2V0IGNyZWF0aW9uIGludG8gYSBjb21tb24gYmFzZSBmdW5jdGlvbiBhbmQKICAgbWFkZSB1c2Ugb2YgaXQKCjIwMTAtMDItMDkgMjM6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmg6CgogICBwcm9wZXIgX0ggaWZkZWYgY2hlY2tzCgoyMDEwLTAyLTA5IDIzOjU0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBhZGRlZCBhIHJhdyBVRFAgYmFzZSBkb21haW4KCjIwMTAtMDItMDkgMjM6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGNyZWF0ZWQgYSBVRFAgSVB2NCBiYXNlOyBtb3ZlZCBhbmQgcmV1c2VkIG1vcmUgaW5mcmFzdHJ1Y3R1cmUKCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIGlwdjQgYWRkcmVzcyBmb3JtYXR0aW5nIGludG8gc25tcElQdjRCYXNlRG9tYWluCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgdjYgZG9tYWluIGluZnJhc3RydWN0dXJlIGZpbGVzCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQVjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmM6CgogICB2NiBkb21haW4gaW5mcmFzdHJ1Y3R1cmUgZmlsZXMKCjIwMTAtMDItMDkgMjM6NTAgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBWNEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgTmV3IElQdjQgYW5kIElQIGJhc2UgdHJhbnNwb3J0IGZpbGVzCgoyMDEwLTAyLTA5IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBkb24ndCBkb3VibGUgaW5jbHVkZSB0cmFuc3BvcnQgbW9kdWxlcwoKMjAxMC0wMi0wOSAyMzo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaDoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBjaGVjayBmb3IgYW5kIHJlcG9ydCBjb25maWdfZXJyb3JzIGluIHRyYW5zcG9ydCBoZWFkZXJzCgoyMDEwLTAyLTA5IDIzOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIGFsbG93IGEgTkVUU05NUF9RVUlDS19DSEVDSyBlbnYgdmFyaWFibGUgdG8gYnlwYXNzIGhlYWRlciBjaGVja3MKCjIwMTAtMDItMDkgMjM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGJldHRlciBjb21tZW50cwoKMjAxMC0wMi0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgY2hlY2sgZm9yIGNvbmZpZ19yZXF1aXJlIG1hY3JvcyBpbiB0cmFuc3BvcnQgaGVhZGVycyBmb3IKICAgZm9yY2UtaW5jbHVkaW5nIG9mIG90aGVyIHRoaW5ncwoKMjAxMC0wMi0wOSAyMzo0MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRlZmluZSBhIHN0YW5kYXJkaXplZCBpbmRleGVkIGFkZHJfcGFpciBpbnN0ZWFkIG9mIHVzaW5nIG9uZQogICBsYWJlbGVkIG9ubHkgZm9yIFVEUCBldmVyeXdoZXJlCgoyMDEwLTAyLTA5IDIzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCB0cmFuc3BvcnQgcHJlZml4IGxpc3QgZm9yIGluY29taW5nIG1lc3NhZ2VzCgoyMDEwLTAyLTA5IDIzOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIHJlbW92ZSB0aGUgc2VjdXJpdHkgbGV2ZWwgZnJvbSB0aGUgVFNNIGNhY2hlOyBwcmV2aW91cyBleGlzdGVuY2UKICAgZnJvbSBmcm9tIGEgZHJhZnQgY29weSBvZiB0aGUgVFNNIFJGQyBhbmQgaXMgbm93IHN0b3JlZCBlbnRpcmVseQogICBpbiB0aGUgdG0gcmVmZXJlbmNlCgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGltcGxlbWVudCBpbmNvbWluZyBUU00gcHJvY2VkdXJlcyBhY2NvcmRpbmcgdG8gUkZDIHRleHQKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgaW1wbGVtZW50IG91dGdvaW5nIFRTTSBwcm9jZWR1cmVzIGFjY29yZGluZyB0byBSRkMgdGV4dAoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmg6CgogICBjcmVhdGUgZGVmaW5lZCBzaXplZCBhcnJheSBhbmQgbGVuZ3RoIHZhcmlhYmxlCgoyMDEwLTAyLTA1IDA5OjUyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGZpbGVkZXNjcmlwdGlvciBsZWFrIGluIEV0aGVybGlrZS1NSUIgYW5kCiAgIFJNT04tTUlCCgoyMDEwLTAyLTA0IDE1OjU3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJlcG9ydCByZWFsIGlmU3BlZWQgb2YgbmV0d29yayBpbnRlcmZhY2UgZXZlbiBpdAogICBpcyBkb3duLgogICBTb21lIGludGVyZmFjZXMgY2FuIHJlcG9ydCB0aGVpciByZWFsIHNwZWVkLCBldmVuIHRoZXkgYXJlIGRvd24uCiAgIEFuZCBpZiB0aGV5IGNhbid0LCB0aGUgZmFsbGJhY2sgdG8gMTBNYnBzIGlzIHN0aWxsIHRoZXJlLgoKMjAxMC0wMi0wMSAxNDo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgRml4ZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGZpbGUKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLgoKMjAxMC0wMi0wMSAxNDo0NSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyLCBzbm1wbGliL2tleXRvb2xzLmM6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgdGhlIHByb2NlZHVyZSBmb3IgYnVpbGRpbmcKICAgd2l0aCBTTk1QdjMgc3VwcG9ydCBlbmFibGVkIChPcGVuU1NMKS4KCjIwMTAtMDItMDEgMTQ6MzQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAgCiAgICAgIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNYWRlIHN1cmUgdGhhdCBhbGwgY2FsbHMgdG8gZnJlZSgpIGFyZSBpbnRlcmNlcHRlZCB3aGVuIGJ1aWxkaW5nCiAgIHdpdGggZG1hbGxvYwogICBzdXBwb3J0IGVuYWJsZWQuIEluY2x1ZGVkIDxkbWFsbG9jLmg+IGluIHRob3NlIHNvdXJjZSBmaWxlcyB3aGVyZQogICBpdCB3YXMgbm90CiAgIHlldCBpbmNsdWRlZCwgYW5kIHByb3ZpZGVkIGEgd3JhcHBlciBmdW5jdGlvbiBmb3IgZnJlZSgpIHdoZXJlCiAgIHRoZSBhZGRyZXNzIG9mCiAgIHRoaXMgZnVuY3Rpb24gd2FzIHRha2VuIChEbWFsbG9jIGNhbiBvbmx5IGludGVyY2VwdCBmcmVlKCkgd2hlbgogICBpdCBpcyBjYWxsZWQKICAgZGlyZWN0bHkgYnV0IG5vdCB3aGVuIGl0IGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlcikuCgoyMDEwLTAyLTAxIDEwOjQ5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBORVdTOiBidWlsZGluZzogQnVpbGRpbmcgTmV0LVNOTVAgd2l0aCBkbWFsbG9jIHN1cHBvcnQgZW5hYmxlZCBpcwogICBhZ2FpbiBwb3NzaWJsZS4KCjIwMTAtMDItMDEgMDE6MDUgIHRhbmRlcnMKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBDSEFOR0VTOiBidWlsZGluZzogJ21ha2UgdGVzdCBURVNUT1BUUz0iLVAgdGNwIicgd29ya3MgZmluZSBub3cKCjIwMTAtMDEtMzEgMDg6MDIgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGFuIHNoIHN5bnRheCBlcnJvciBpbiB0aGUgY29uZmlndXJlCiAgIHNjcmlwdAogICB0aGF0IHdhcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aXRob3V0IGxpYmNyeXB0byBhbmQgd2l0aG91dAogICBsaWJlYXkzMi4KICAgVGhlIGZvbGxvd2luZyBlcnJvciB3YXMgcmVwb3J0ZWQ6CiAgIGNvbmZpZ3VyZVszMzEzNl06IHg6IHVua25vd24gdGVzdCBvcGVyYXRvcgoKMjAxMC0wMS0yOSAyMDowNyAganNhZnJhbmVrCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEVsYWJvcmF0ZSBvbiByZXYuIDE4MDg5IGFuZCBhZGp1c3QgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gdGhlCiAgICogICAgKnJlYWxseSB3b3JraW5nIG9uZSouICAyMDEwLTAxLTI5IDE5OjExICBqc2FmcmFuZWsKCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEZpeCB0ZXN0IDM1IHdoZW4gY29uZmlndXJlIG9wdGlvbiAnLS13aXRoLXRlbXAtZmlsZS1wYXR0ZXJuJyB3YXMKICAgdXNlZCBhbmQgdGhlIGRpcmVjdG9yeSBmb3IgdGVtcC4gZmlsZXMgZG9lcyBub3QgZXhpc3QgeWV0LgoKMjAxMC0wMS0yOSAxNTowNyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL2Nsb3NlZGlyLmMsICAgCiAgICAgIHNubXBsaWIvZ2V0dGltZW9mZGF5LmMsIHNubXBsaWIvb3BlbmRpci5jLCBzbm1wbGliL3JlYWRkaXIuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIE1vdmVkIHRoZSBzb3VyY2UgY29kZSBvZiB0aGUgb3BlbmRpcigpLCByZWFkZGlyKCksIGNsb3NlZGlyKCkgYW5kCiAgIGdldHRpbWVvZmRheSgpIHJlcGxhY2VtZW50cyBmb3IgTVNWQyBmcm9tIHNubXBsaWIvc3lzdGVtLmMgdG8KICAgc2VwYXJhdGUgc291cmNlIGZpbGVzIGluIHNubXBsaWIuCgoyMDEwLTAxLTI5IDA4OjU3ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ29uZmlndXJlIHNjcmlwdCBjb25zaXN0ZW5jeSBpbXByb3ZlbWVudDogcmVuYW1lZCB0aGUgdmFyaWFibGUKICAgInNhdmVkX0xJQlMiIGludG8gIm5ldHNubXBfc2F2ZV9MSUJTIi4KCjIwMTAtMDEtMjkgMDY6MzkgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBDaGVjayB0aGUgc2l6ZSBvZiBzdW5fcGF0aCBhbmQgdXNlIHRoYXQgdG8KICAgZ2VuZXJhdGUgdGhlIG1heGltYWwgc2l6ZSBzdHJpbmdzIGZvciBzdHJlc3NpbmcgY29tMnNlY3VuaXguCgoyMDEwLTAxLTI3IDE1OjE2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBORVdTOiBNaW5HVzogcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0IHN1aXRlIGlzIGFnYWluIHBvc3NpYmxlCiAgICgnbWFrZSB0ZXN0JykuCgoyMDEwLTAxLTI3IDE0OjQzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogQ3lnd2luOiBidWlsZGluZyB3aXRoIGFub3RoZXIgT3BlblNTTCBwYWNrYWdlIHRoYW4gdGhlCiAgIEN5Z3dpbi1wcm92aWRlZCBwYWNrYWdlcyBvcGVuc3NsIGFuZCBvcGVuc3NsLWRldmVsIGlzIGFnYWluCiAgIHBvc3NpYmxlLgogICBORVdTOiBNaW5HVzogYnVpbGRpbmcgd2l0aCBPcGVuU1NMIHdvcmtzIGFnYWluLgoKMjAxMC0wMS0yNiAyMToyNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdGhlIGNvbnRleHQgYXJndW1lbnQgb2Ygc2VuZF92M3RyYXAsCiAgIHNlbmRfdHJhcF92YXJzX3dpdGhfY29udGV4dCBhbmQgbmV0c25tcF9zZW5kX3RyYXBzIHJlZmVyIHRvIGEKICAgY29uc3QgY2hhciouCgoyMDEwLTAxLTI2IDIxOjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6CgogICBDb3JyZWN0IG1pc3NwZWxsaW5nIC0gI2Vsc2lmIHRvICNlbGlmCgoyMDEwLTAxLTI2IDIxOjIxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEFwcGFyZW50bHkgbm90IGFsbCBzeXN0ZW1zIGRlZmluZSBJTkVUX0FERFJTVFJMRU4gc28gYWRkIGl0IGlmIGl0CiAgIGlzIG1pc3NpbmcuCgoyMDEwLTAxLTI2IDE1OjQ2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgQWRkZWQgbmV0c3RhdCBwYXRoIGZvciBNaW5HVy4KCjIwMTAtMDEtMjYgMTU6MDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZml4IHN0YXQgbmFtZXMKCjIwMTAtMDEtMjYgMTU6MDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIG5ldHNubXBfYXNzZXJ0X29yX21zZ3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1c2UgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRlZmluZSBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXBkYXRlIGNvbW1lbnRzIHRvIHJlZmxlY3QgUkZDNTU5MSBhcyB0aGUgZG9jdW1lbnQgZGVzY3JpYmluZyB0aGUKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMDEtMjYgMTE6NDMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oOgoKICAgTkVXUzogQ3lnd2luOiBCVUc6IDI5MzkxNjg6IGJ5dGUgb3JkZXIgb2YgdWRwTG9jYWxQb3J0IGlzIG5vdwogICBjb3JyZWN0LgoKMjAxMC0wMS0yNiAxMDo0NiAgYnZhc3NjaGUKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgTkVXUzogQ3lnd2luOiBCVUc6IDI5MzkxNjg6IGZpeGVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgKCJtYWtlCiAgIHRlc3QiKS4gVGhpcyBoYXMgYmVlbiBmaXhlZCBieSB1c2luZyB0aGUgcHJvcGVyIGVudmlyb25tZW50CiAgIHNlcGFyYXRvciBjaGFyYWN0ZXIgYW5kIGJ5IGFkZGluZyB0aGUgcGF0aCBvZiB0aGUgbmV0c3RhdAogICBleGVjdXRhYmxlIGZvciBDeWd3aW4gaW4gdGVzdGluZy9URVNUQ09ORi5zaC4KCjIwMTAtMDEtMjYgMDk6MjcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCByYXJlIHJhY2UgY29uZGl0aW9uIHdoZW4gcmVhZGluZyBSUE0KICAgZGF0YWJhc2UuCiAgIE9sZCBycG0gdmVyc2lvbnMgcmV0dXJuIE5VTEwgaW5zdGVhZCBvZiBIZWFkZXIgd2hlbiBhbm90aGVyIFJQTQogICBpbnN0YW5jZSBob2xkcwogICBkYXRhYmFzZSBsb2Nrcy4gSS5lLiBzbm1wZCBzb21ldGltZXMgY3Jhc2hlcyB3aGVuIHJlYWRpbmcKICAgaHJfc3dJbnN0IGFuZCBycG0gaXMKICAgaW5zdGFsbGluZy91cGRhdGluZy9yZW1vdmluZyBhbm90aGVyIHBhY2thZ2UuIEFzIGEgc29sdXRpb24sCiAgIHdob2xlIFJQTSBjYWNoZQogICBpcyB0aHJvd24gYXdheSBhbmQgcmUtcmVhZCB3aGVuIHdlIGdvdCBhbiBlcnJvciBmcm9tIGxpYnJwbS4gVGhlCiAgIHdob2xlIHByb2Nlc3MKICAgaXMgcmVzdGFydGVkIG9ubHkgdGhyZWUgdGltZXMsIHRvIHByZXZlbnQgZW5kbGVzcyBsb29wLgoKMjAxMC0wMS0yNSAyMjoxNiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6IERvIG5vdCBjaGVjayBpZiB2YWx1ZXMgb2YgdHlwZSBzaXplX3QKICAgYXJlIGxlc3MgdGhhbiAwLgoKMjAxMC0wMS0yNSAyMjoxMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQ2hlY2sgdGhlIHJhbmdlIG9mIG9pZCB2YWx1ZXMgdG93YXJkcyB0aGUgbWF4aW11bQogICBvaWQgdmFsdWUsIG5vdFVMT05HX01BWAoKMjAxMC0wMS0yNSAyMDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBvbmx5IGJhaWwgb24gbWlzc2luZyBsaWJpcGhscGFwaSBmb3IgeHdpbnNvY2syCgoyMDEwLTAxLTI1IDE5OjU3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbmFtZSBNQVhfU1RBVFMgdG8gTkVUU05NUF9TVEFUX01BWF9TVEFUUwoKMjAxMC0wMS0yNSAxOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmM6CgogICB1cGRhdGUgZm9yIG5ldyBwYXRoIHRvIHNubXBfZ2V0X3N0YXRpc3RpY3M7IGNoZWNrIGZvciBpbmRleAogICBvdmVyZmxvdwoKMjAxMC0wMS0yNSAxOTo0NCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81Lmg6CgogICB1cGRhdGUgZm9yIG5ldyBwYXRoIHRvIHNubXBfZ2V0X3N0YXRpc3RpY3MKCjIwMTAtMDEtMjUgMTY6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgdXNlICpjdXJyZW50KiBjb3B5IG9mIHRoZSBNSUIgd2hlbiBnZW5lcmF0aW5nIHN0YXRzCgoyMDEwLTAxLTI1IDE2OjAxICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmg6CgogICBtb3ZlIHNubXBfZ2V0X3N0YXRpc3RpYyBoZWxwZXIgdG8gaGVscGVycyBkaXI7IHVwZGF0ZSBhbGxfaGVscGVycwogICBoZWFkZXIKCjIwMTAtMDEtMjUgMTQ6MzQgIGJ2YXNzY2hlCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgUmVwbGFjZWQgZXhwbGljaXQgZGVjbGFyYXRpb25zIG9mIG9wdGluZCwgb3B0b3B0IGFuZCBvcHRhcmcgYnkKICAgI2luY2x1ZGUgPHVuaXN0ZC5oPiBiZWNhdXNlIGV4cGxpY2l0bHkgZGVjbGFyaW5nIHRoZXNlIHZhcmlhYmxlcwogICBpcyBub3QgY29tcGF0aWJsZSB3aXRoIEN5Z3dpbi4KCjIwMTAtMDEtMjUgMTQ6MjUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTkVXUzogQ3lnd2luOiBJUHY2IGlzIG9ubHkgc3VwcG9ydGVkIHVuZGVyIEN5Z3dpbiAxLjcgb3IgbGF0ZXIuCiAgIFRoZSBvbGQgaW1wbGVtZW50YXRpb24gb2YgSVB2NiBzdXBwb3J0IGluIE5ldC1TTk1QIHVuZGVyIEN5Z3dpbgogICBpbnZvbHZlZCBhIHN0cmFuZ2UgbWl4dHVyZSBvZiBDeWd3aW4gYW5kIFdpbnNvY2syIHNvY2tldCBjYWxscywKICAgd2hpY2ggd2FzIHRvbyBoYXJkIHRvIG1haW50YWluLgogICBORVdTOiBDeWd3aW46IGJ1aWxkcyBhZ2FpbiB3aXRoIElQdjYgc3VwcG9ydCBlbmFibGVkCiAgICgtLWVuYWJsZS1pcHY2KS4gQXQgbGVhc3QgTmV0LVNOTVAgNS41IGRvZXNuJ3QgYnVpbGQgdW5kZXIgQ3lnd2luCiAgIHdpdGggSVB2NiBzdXBwb3J0IGVuYWJsZWQuIFRoZSBjb25maWd1cmUgc2NyaXB0IHJlcG9ydGVkCiAgICJjaGVja2luZyBpcHY2IHN0YWNrIHR5cGUgLi4uIHJlc3VsdDogInVua25vd24sIG5vIiAuLi4gZXJyb3I6CiAgIElQdjYgdHJhbnNwb3J0cyBub3QgYXZhaWxhYmxlIGlmIElQdjYgc3VwcG9ydCBpcyBub3QgZW5hYmxlZCIuCgoyMDEwLTAxLTI1IDE0OjEzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgQWRkZWQgbWlzc2luZyAjaW5jbHVkZSA8c3RyaW5nLmg+LgoKMjAxMC0wMS0yNSAxNDoxMCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIHRoZSBJUHY2IHN0YWNrIGluY2x1ZGVkIGluIEN5Z3dpbgogICB2ZXJzaW9uIDEuNy4KICAgSVB2NiBzdXBwb3J0IGlzIG9uZSBvZiB0aGUgbmV3IGZlYXR1cmVzIG9mIEN5Z3dpbiAxLjcuIEZvciBtb3JlCiAgIGluZm9ybWF0aW9uLAogICBzZWUgYWxzbyBodHRwOi8vY3lnd2luLmNvbS9jeWd3aW4tdWctbmV0L292LW5ldzEuNy5odG1sLgoKMjAxMC0wMS0yNSAxMjo0MCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogQ3lnd2luOiB0aGUgbWVzc2FnZSAiY29uZmlndXJlOiBXQVJOSU5HOiB3aW5zb2NrLmg6CiAgIHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgZG9lcyBubyBsb25nZXIgYXBwZWFyIHdoZW4KICAgcnVubmluZyB0aGUgY29uZmlndXJlIHNjcmlwdC4KICAgRm9sbG93LXVwIGZvciByMTgwNTA6IHJlLWVuYWJsZWQgbGliaXBobHBhcGkgYW5kIGlwaGxwYXBpLmggdGVzdHMKICAgZm9yIG5vbi1NaW5HVyBwbGF0Zm9ybXMgc2luY2UgdGhlIEN5Z3dpbiBidWlsZCBuZWVkcyB0aGVzZS4KCjIwMTAtMDEtMjUgMDc6MjggIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIHNubXBsaWIvaW5ldF9udG9wLmMsICAKICAgICAgIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIGF1dG9jb25mIHRvIGRlY2lkZSBpZiBpbmV0X250b3AuYyBhbmQKICAgaW5ldF9wdG9uLmMgYXJlIHRvIGJlIGNvbXBpbGVkLgoKMjAxMC0wMS0yNSAwNzowOSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CgogICBDSEFOR0VTOiBNaW5HVzogc3RydWN0IHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkIGNvbmZpZ3VyZSB0ZXN0CiAgIGRvZXMgbm93IHdvcmsuCgoyMDEwLTAxLTI1IDA1OjE0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIFRMU1RNIGNvdW50ZXIgc3RhdHMKCjIwMTAtMDEtMjUgMDU6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgYWRkIGluIFRTTSBuZWVkZWQgY291bnRlciBkZWZpbml0aW9ucwoKMjAxMC0wMS0yNSAwNToxMiAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRTTS1NSUIudHh0LCBtaWJzL3JmY2xpc3Q6CgogICBhZGRlZCB0aGUgU05NUC1UU00tTUlCCgoyMDEwLTAxLTI0IDE0OjQzICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBORVdTOiBzbm1wZDogTWFkZSBzdWJ0cmVlX2NvbnRleHRfY2FjaGU6OmNvbnRleHRfbmFtZSBhIGNvbnN0CiAgIGNoYXIqLgoKMjAxMC0wMS0yNCAxNDoyNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQcmV2ZW50IGdjYyBwZWQtd2FybmluZyBmb3IKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QKCjIwMTAtMDEtMjQgMTM6MjcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogUHJlZmVyIHRvIHVzZSBhIHZhcmlhYmxlIG9mIHRoZSByaWdodCB0eXBlIG92ZXIKICAgYW4gdWdseSBjYXN0LiBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSBhcyB3ZWxsLgoKMjAxMC0wMS0yNCAxMjo1OSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBidWlsZGluZzogSW50cm9kdWNlZCB0aGUgdmFyaWFibGUgJ3dpdGhfc29ja2xpYicgaW4gdGhlCiAgIGNvbmZpZ3VyZSBzY3JpcHQuIFRoaXMgdmFyaWFibGUgaXMgc2V0IHRvICJ3aW5zb2NrMiIgZm9yIE1pbkdXCiAgIGFuZCB0byAiZGVmYXVsdCIgZm9yIGFsbCBvdGhlciBzeXN0ZW1zLiBXaW5zb2NrMiB0ZXN0cyBhcmUgb25seQogICBydW4gaWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gIndpbnNvY2syIiAoTWluR1cpLgoKMjAxMC0wMS0yNCAxMjo1MyAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUmVtb3ZlIHN1cGVyZmx1b3VzIGRlYnVnIGxvZ3MuCgoyMDEwLTAxLTI0IDEyOjQ1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXM6IGZpeGVkIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvCiAgIHVuc2lnbmVkIGNoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0yNCAxMjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeDogbWFrZSBpbmV0X250b3AoKSBhbmQgaW5ldF9wdG9uKCkKICAgZGVjbGFyYXRpb25zCiAgIGF2YWlsYWJsZSB0byB0aGUgY29tcGlsZXIuCgoyMDEwLTAxLTI0IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXg6IG1hZGUgc3VyZSB0aGF0IDx3czJ0Y3BpcC5oPiB3aWxsCiAgIGJlIGluY2x1ZGVkCiAgIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+IHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCBjb21wbGFpbgogICBhYm91dCBzdHJ1Y3QKICAgc29ja2FkZHJfaW42IGJlaW5nIHVzZWQgYmVmb3JlIGJlaW5nIGRlZmluZWQuCgoyMDEwLTAxLTI0IDExOjQyICBidmFzc2NoZQoKICAgKiBtYW46CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAxLTI0IDExOjQxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcGJ1bGtnZXQuYywgICAKICAgICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywgICAKICAgICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsICAgCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgICAKICAgICAgYXBwcy9zbm1wd2Fsay5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgQ2xlYW51cCAoV2luZG93cyk6IHJlbW92ZWQgc3VwZXJmbHVvdXMgI2luY2x1ZGUgPHN5cy90aW1lYi5oPgogICBkaXJlY3RpdmVzLiBUaGlzIGhlYWRlciBmaWxlCiAgIGhhcyBvbmx5IHRvIGJlIGluY2x1ZGVkIGZyb20gc25tcGxpYi9zeXN0ZW0uYyBiZWNhdXNlIG9mIHRoZQogICBfZnRpbWUoKSBjYWxsIGluIHRoYXQgZmlsZS4KCjIwMTAtMDEtMjQgMTA6NDMgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgVGhlIG1hY3JvICdDKCknIG5vdyBjYXN0cyBpdHMgcmVzdWx0IGZyb20gdW5zaWduZWQgbG9uZyB0bwogICB1bnNpZ25lZCBpbnQuCiAgIFRoaXMgY2hhbmdlIGZpeGVzIGEgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZm9ybWF0IHNwZWNpZmljYXRpb24KICAgbWlzbWF0Y2hlcwogICBhbmQgZml4ZXMgYSBidWcgKGluY29ycmVjdCBzbm1wbmV0c3RhdCBvdXRwdXQpIG9uIGJpZyBlbmRpYW4KICAgc3lzdGVtcy4KCjIwMTAtMDEtMjQgMTA6MzMgIGJ2YXNzY2hlCgogICAqIG1hbi9jb25maWdfYXBpLjM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzk0NjogcmVtb3ZlZCBnZW5lcmF0ZWQgbWFuIHBhZ2VzIGZyb20KICAgcmVwb3NpdG9yeS4KCjIwMTAtMDEtMjQgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTW92ZWQgdHdvIGRlY2xhcmF0aW9ucyBvZiBzdGF0aWMgZnVuY3Rpb25zIGZyb20gLmggdG8gLmMuCgoyMDEwLTAxLTI0IDEwOjIxICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMuCgoyMDEwLTAxLTI0IDEwOjE5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBidWlsZHMgYWdhaW4gd2hlbiBIQVZFX0dFVEFERFJJTkZPIGlzIG5vdAogICBkZWZpbmVkLgoKMjAxMC0wMS0yNCAxMDowMyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9pbmV0X250b3AuYywgICAKICAgICAgc25tcGxpYi9pbmV0X250b3AuaCwgc25tcGxpYi9pbmV0X3B0b24uYywgc25tcGxpYi9pbmV0X3B0b24uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBjb25maWd1cmUgdGVzdHMgZm9yIGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKS4KICAgLSBBZGRlZCBoZWFkZXIgZmlsZXMgc25tcGxpYi9pbmV0X250b3AuaCBhbmQgc25tcGxpYi9pbmV0X3B0b24uaC4KICAgLSBSZXBsYWNlZCAiZXh0ZXJuIGluZXRfbnRvcCguLi4pOyIgYW5kICJleHRlcm4gaW5ldF9wdG9uKC4uLik7IgogICBieSAjaW5jbHVkZSAiaW5ldF9udG9wL3B0b24uaCIuCiAgIC0gQ29udmVydGVkIHNubXBsaWIvaW5ldF9udG9wLmMgYW5kIHNubXBsaWIvaW5ldF9wdG9uLmMgZnJvbSBLJlIKICAgQyB0byBBTlNJIEMuCiAgIC0gUmVwbGFjZWQgdGhlIGluZXRfYXRvbigpIGNhbGxzIHRoYXQgd2VyZSBpbnRyb2R1Y2VkIGluIHIxODAzMwogICBpbiBzbm1wbGliL3NubXBVRFBEb21haW4uYyBieSBpbmV0X3B0b24oKSBjYWxscyBzdWNoIHRoYXQgaXQgaXMKICAgYWdhaW4gcG9zc2libGUgdG8gYnVpbGQgTmV0LVNOTVAgb24gV2luZG93cy4KCjIwMTAtMDEtMjQgMDY6MDggIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIGRlY2xhcmF0aW9ucyBvZiBmdW5jdGlvbnMgdGhhdCBkb24ndAogICBleGlzdCBvciBhcmUgZGVjbGFyZWQgZWxzZXdoZXJlLgoKMjAxMC0wMS0yNCAwNTo0OCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlZCB0aGUgdW51c2VkIHZhcmlhYmxlcyB3YXJtX3N0YXJ0X29pZCwKICAgbGlua19kb3duX29pZCwgbGlua191cF9vaWQsIGF1dGhfZmFpbF9vaWQgYW5kIGVncF94eHhfb2lkLgoKMjAxMC0wMS0yMyAyMjowNiAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIEJldHRlciBzZXQgb2YgU0tJUElGL1NLSVBJRk5PVFMKCjIwMTAtMDEtMjMgMjA6MzEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIEJlIGNvcnJlY3QgaW4gd2hhdCBpdCBpcyB0aGF0IGlzIHRlc3RlZCBpbiB0aGUgaGVhZGVyLgoKMjAxMC0wMS0yMyAyMDoyNyAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZWQgdGhlIGNvbTJzZWMgZGlyZWN0aXZlcyB0byBmYWlsIGlmIHRoZXJlCiAgIGFyZSB0b28gZmV3IGFyZ3VtZW50cy4gQWRkaXRpb25hbGx5IGNoYW5nZWQgdGhlIHN0b3JhZ2Ugc3RydWN0dXJlCiAgIHRvIG5vdCBhbGxvY2F0ZSBtb3JlIHNwYWNlIHRoYW4gbmVjZXNzYXJ5LgoKMjAxMC0wMS0yMyAyMDoyMiAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIG5ldyB0ZXN0cyBjaGVja2luZyB0aGUgZXJyb3IgaGFuZGxpbmcgb2YgdGhlIGNvbTJzZWMqIGRpcmVjdGl2ZXMKCjIwMTAtMDEtMjMgMTk6MTcgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODAyNTogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8uCgoyMDEwLTAxLTIzIDE3OjUxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBPUyBoZWFkZXIgZGV0ZWN0aW9uIGNoZWNrIGlzIG5vdyBydW4gYmVmb3JlCiAgIElQdjYgc3RhY2sgZGV0ZWN0aW9uLgogICBDSEFOR0VTOiBTb2xhcmlzOiBzb2NrYWRkcl9pbjYuc2luNl9hZGRyIGNvbmZpZ3VyZSB0ZXN0IGRvZXMgbm93CiAgIHdvcmsuCgoyMDEwLTAxLTIzIDE3OjQyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgRml4ZWQgYSBTb2xhcmlzLXNwZWNpZmljIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTAxLTIzIDE3OjAwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBNaW5HVzogYWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIDxzeXMvdGltZWIuaD4gYW5kIGFsc28gZm9yIHN0cnVjdAogICB0aW1lem9uZS4KCjIwMTAtMDEtMjMgMTY6MzIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE1pbkdXOiBtYWRlIHN1cmUgdGhhdCB0aGUgSVB2Ni1yZWxhdGVkIGRhdGF0eXBlcyBhcmUgYXZhaWxhYmxlCiAgIGJlZm9yZSBiZWluZyB1c2VkLgoKMjAxMC0wMS0yMyAxNjozMCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkICN1bmRlZiBIQVZFX1dJTkRPV1NfSC4KCjIwMTAtMDEtMjMgMTY6MjggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIE1pbkdXOiBtYWRlIGdldHRpbWVvZmRheSgpIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSBmb3IgdGhlCiAgIGNvbXBpbGVyLgoKMjAxMC0wMS0yMyAxNjoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWluR1c6IG1hZGUgZ2V0dGltZW9mZGF5KCkgZGVjbGFyYXRpb24gYXZhaWxhYmxlIGZvciB0aGUKICAgY29tcGlsZXIuCgoyMDEwLTAxLTIzIDE2OjI2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90IGNvbXBsYWluIGFib3V0IGEgbWlzc2luZwogICBwcm90b3R5cGUgZm9yIGlzZGlnaXQoKS4KCjIwMTAtMDEtMjMgMTY6MjQgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBNaW5HVzogaXBobHBhcGkuaCBjb25maWd1cmUgdGVzdCBkb2VzIG5vdyB3b3JrLgoKMjAxMC0wMS0yMyAxNToxMCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgUmVuYW1lZCB0aGUgV2luc29jazIgSVB2NiBzdGFjayBmcm9tICdtaW5ndycgaW50byAnd2luc29jazInLgoKMjAxMC0wMS0yMyAxNTowNyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvc25tcGQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgIAogICAgICAgc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYywgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW1wcm92ZWQgcG9ydGFiaWxpdHkgYmV0d2VlbiB0aGUgc3VwcG9ydGVkIFdpbjMyIGNvbXBpbGF0aW9uCiAgIGVudmlyb25tZW50cyBhcyBmb2xsb3dzOgogICAtIE1hZGUgc3VyZSB0aGF0IHRoZSA8d2luc29jazIuaD4gYW5kIDx3czJ0Y3BpcC5oPiBoZWFkZXIgZmlsZXMKICAgYXJlIG9ubHkgaW5jbHVkZWQgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4uCiAgIC0gQWRkZWQgY29uZmlndXJlIGNoZWNrIGZvciA8aXBobHBhcGkuaD4uCiAgIC0gUmVwbGFjZWQgc2V2ZXJhbCBXSU4zMiAvIGN5Z3dpbiB0ZXN0cyBieSBhIEhBVkVfSVBITFBBUElfSAogICB0ZXN0LgogICAtIERvY3VtZW50ZWQgdGhhdCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBpcyBvbmx5IHVzZWQKICAgZm9yIHRoZSBNU1ZDIGJ1aWxkLgoKMjAxMC0wMS0yMiAxNjo0NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTA6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCiAgIDYuCgoyMDEwLTAxLTIyIDE2OjQxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvTWdtdEFwaS13aW5FeHRETEwuaDoKCiAgIEZvbGxvdyB1cCBmb3IgcjE4MDE2OiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpby4KCjIwMTAtMDEtMjIgMTQ6MTMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBGb2xsb3ctdXAgZm9yIHIxODAxNjogbWFkZSBNaW5HVyBsaWJpcGhscGFwaSBjaGVjayBtb3JlIHJvYnVzdC4KCjIwMTAtMDEtMjIgMTM6MzIgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIGFjbG9jYWwubTQsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgICAKICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCAgIAogICAgICBhcHBzL3NubXB3YWxrLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCAgIAogICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgICAKICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgCiAgICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYywgd2luMzIvU25tcC13aW5FeHRETEwuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogTWluR1c6IHdpbkV4dERMTCBjb21waWxlcyBub3cgdW5kZXIgTWluR1cuCiAgIENIQU5HRVM6IE1pbkdXOiBidWlsZGluZyBOZXQtU05NUCB3b3JrcyBhZ2Fpbi4KICAgCiAgIERldGFpbGVkIG92ZXJ2aWV3OgogICAqIENoYW5nZXMgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQ6CgogICAtIHNvY2tldCgpIGxpYnJhcnkgY2hlY2sgcGFzc2VzIGFnYWluIG9uIE1pbkdXLgogICAtIEFkZGVkIGxpYnJhcnkgY2hlY2tzIGZvciBsaWJ3czJfMzIsIGxpYnJlZ2V4IGFuZCBsaWJzbm1wYXBpLgogICAtIEFkZGVkIGNoZWNrIGZvciB0aGUgd2luc29jazIuaCBhbmQgd3MydGNwaXAuaCBoZWFkZXIgZmlsZXMuCiAgIC0gQWRkZWQgY2hlY2sgZm9yIHRoZSBjaG93bigpIGFuZCBsb2NhbHRpbWVfcigpIGZ1bmN0aW9ucy4KICAgLSBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZCBjaGVjayBkb2VzIG5vdyB3b3JrIG9uIE1pbkdXLgogICAtIEFkZGVkIElQdjYgc3RhY2sgdHlwZSBjYWxsZWQgIm1pbmd3Ii4KICAgKiBTb3VyY2UgY29kZSBjaGFuZ2VzOgoKICAgLSBJbmNsdWRlIDx3aW5zb2NrMi5oPiBmcm9tIDxuZXQtc25tcC90eXBlcy5oPiBpbnN0ZWFkIG9mCiAgIDx3aW5zb2NrLmg+CiAgIHVuZGVyIE1pbkdXIHN1Y2ggdGhhdCBJUHY2IHN1cHBvcnQgaXMgYXZhaWxhYmxlLgogICAtIE1vdmVkICNpbmNsdWRlIDx3aW5zb2NrLmg+IGZyb20gLmMgZmlsZXMgdG8gPG5ldC1zbm1wL3R5cGVzLmg+LgogICAtIEFkZGVkIGEgY29weSBvZiB0aGUgTWluR1cgaGVhZGVyIGZpbGUgPHNubXAuaD4gKHdoaWNoIGlzIG5vdAogICBjb3B5cmlnaHRlZCkKICAgYXMgd2luMzIvU25tcC13aW5FeHRETEwuaC4KICAgLSBhZ2VudDogb25seSBjYWxsIGNob3duKCkgd2hlbiBhdmFpbGFibGUgKEhBVkVfQ0hPV04pLgogICAqIERvY3VtZW50YXRpb24gY2hhbmdlczogdXBkYXRlZCBSRUFETUUud2luMzIuCgoKMjAxMC0wMS0yMiAwODozNCAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGNhc3QgZnJvbSBjaGFyKiB0byBjaGFyKgoKMjAxMC0wMS0yMiAwMDozOSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIENvcHlyaWdodCBmaWxlIHVwZGF0ZSBmb3IgU1BBUlRBLCBJbmMuCgoyMDEwLTAxLTIyIDAwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGFkZCBwcm9wZXIgcHJlZml4ZXMgaW4gVFNNIGZvciBTU0gsIERUTFMsIGV0YywgYmFzZWQgb24gdGhlCiAgIGRvbWFpbgoKMjAxMC0wMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGFkZGVkIDUuNSBicmFuY2gKCjIwMTAtMDEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgbWlub3IgZWNobyBvdXRwdXQgY2hhbmdlCgoyMDEwLTAxLTIxIDIwOjUxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjb21tZW50IG5leHQgdG8gY29kZSBpdCBpcyB0YWxraW5nIGFib3V0OyBObyBjb2RlIGNoYW5nZQoKMjAxMC0wMS0yMSAxNDo1NSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTI2Mzc0OiBmcm9tIEVkIFN3aWVyazogZml4ZWQgcmVhZGluZyBvZgogICBpcEFkZHJlc3NUYWJsZSBmcm9tIC9wcm9jL25ldC9pZl9pbmV0NiBvbiBMaW51eAogICAKICAgVGhlIGtlcm5lbCBtaWdodCBwcm92aWRlIGxvbmdlciBmaWVsZHMsIGVzcGVjaWFsbHkgb24gNjQtYml0CiAgIHN5c3RlbXMuCgoyMDEwLTAxLTIwIDEyOjQyICBidmFzc2NoZQoKICAgKiBQT1JUSU5HLCBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgRml4ZWQgdHlwbzogcmVwbGFjZWQgJ25lY2lzc2FyeScgYnkgJ25lY2Vzc2FyeScuCgoyMDEwLTAxLTIwIDA4OjUzICBqc2FmcmFuZWsKCiAgICogbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgRml4IG1pbm9yIHR5cG8gaW4gbWFuIHBhZ2UsIGl0J3Mgc25tcG5ldHN0YXQgLUNwLCBub3QgLUNQLgoKMjAxMC0wMS0xNCAxMjozNCAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IGZpeGVkIG1lbW9yeSBsZWFrIGluIFJNT04tTUlCIGFuZCBFVEhFUkxJS0UtTUlCIHdoZW4KICAgdGhlcmUgYXJlIG11bHRpcGxlIGFsaWFzZXMgb2YgYW4gbmV0d29yayBpbnRlcmZhY2UKICAgUmF0aW9uYWxlOiB0aGUgYWxpYXNlZCBpbnRlcmZhY2VzIGhhdmUgdGhlIHNhbWUgaWZJbmRleCAtPgogICBDT05UQUlORVJfSU5TRVJUIGZhaWxzLCBidXQgdGhlIHJlamVjdGVkIGVudHJ5IHdhcyBub3QgZnJlZWQuCgoyMDEwLTAxLTEzIDExOjIxICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBtZW1vcnkgbGVhayBpbiBpcEFkZHJlc3NQcmVmaXhUYWJsZQogICAtIG5ldF9zbm1wX3NlYXJjaF91cGRhdGVfcHJlZml4X2luZm8gcmV0dXJucyBkaWZmZXJlbnQgY29kZSwgd2hlbgogICB0aGUgZW50cnkgd2FzIG5vdCBpbnNlcnRlZCB0byBsaXN0IGFuZCBjYW4gYmUgZnJlZWQuCgoyMDEwLTAxLTEyIDAwOjUyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBidWlsZDogcnVuIHJwbSBjb25maWd1cmUgY2hlY2tzIGZvciBocl9zd2luc3QgcmV3cml0ZQogICAocnBtCiAgIHZlcnNpb24gb25seSkKCjIwMTAtMDEtMTEgMjM6NTggIHRhbmRlcnMKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBQRVJMTERPUFRTX0ZPUl9BUFBTIHRvIGFnZW50eHRyYXAgbGluayBsaW5lIChmaXhlcwogICAibGlicGVybC5zbyBub3QKICAgZm91bmQiIGVycm9ycykKCjIwMTAtMDEtMTEgMDA6MTEgIHRhbmRlcnMKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBnZXQgcmlkIG9mIHVzaW5nIGRlcHJlY2F0ZWQgc3ludGF4IGZvciB0cmFwL2luZm9ybSBzaW5rcwoKMjAxMC0wMS0wOCAwODo0MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IG9ic29sZXRlZCBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcuCiAgIEZyb20gbm93IG9uIHVzaW5nIFNJR0FMUk0gdG8gdHJpZ2dlciBOZXQtU05NUCBhbGFybSBoYW5kbGVycyBpcwogICBubyBsb25nZXIgc3VwcG9ydGVkLgogICAKICAgTW90aXZhdGlvbjogYXMga25vd24gbGlibmV0c25tcCBzdXBwb3J0cyB0aW1lLWJhc2VkIGFsYXJtcyB2aWEKICAgdGhlIGZ1bmN0aW9ucwogICBzbm1wX2FsYXJtX3JlZ2lzdGVyKCksIHJ1bl9hbGFybXMoKSBhbmQgb3RoZXIgZnVuY3Rpb25zLiBUd28KICAgZGlmZmVyZW50IHdheXMgdG8KICAgdHJpZ2dlciB0aGUgZnVuY3Rpb24gcnVuX2FsYXJtcygpIGFyZSBzdXBwb3J0ZWQgaW5zaWRlCiAgIGxpYm5ldHNubXA6CiAgIDEuIEJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIHRpbWVvdXQgYXJndW1lbnQgb2Ygc2VsZWN0KCkgaXMgc21hbGwKICAgZW5vdWdoIHN1Y2gKICAgdGhhdCBzZWxlY3QoKSByZXR1cm5zIGJlZm9yZSB0aGUgbmV4dCBhbGFybSBtdXN0IGJlIGhhbmRsZWQgKHdoZW4KICAgdGhlCiAgIHZhcmlhYmxlIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBpcyBzZXQgdG8gb25lLCB3aGljaAogICBpcyB0aGUKICAgZGVmYXVsdCkuCiAgIDIuIEJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIGtlcm5lbCBmaXJlcyBTSUdBTFJNIGF0IHRoZSB0aW1lIHdoZW4KICAgcnVuX2FsYXJtcygpCiAgIHNob3VsZCBiZSBjYWxsZWQgKHdoZW4gdGhlIHZhcmlhYmxlCiAgIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBpcyBzZXQKICAgdG8gemVybywgd2hpY2ggaGFzIHRvIGJlIGNvbmZpZ3VyZWQgZXhwbGljaXRseSkuCiAgIAogICBUaGUgZm9sbG93aW5nIGlzc3VlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWNvbmQgYXBwcm9hY2g6CiAgIDEuIEFsYXJtIGZ1bmN0aW9ucyBhcmUgdXNlZCBpbnNpZGUgTmV0LVNOTVAgdG8gZS5nLiByZWZyZXNoCiAgIGNhY2hlZCB0YWJsZQogICBjb250ZW50cy4gQXMgZmFyIGFzIEkgY2FuIHNlZSB0aGVyZSBpcyBub3RoaW5nIGluIHRoZSBOZXQtU05NUAogICBzb3VyY2UgY29kZQogICB0aGF0IHByZXZlbnRzIHRoZSBmb2xsb3dpbmcgZnJvbSBoYXBwZW5pbmc6IGEgdGFibGUgcmVmcmVzaAogICB0cmlnZ2VyZWQgdmlhCiAgIFNJR0FMUk0gd2hpbGUgYSByb3cgaXMgYmVpbmcgcmVtb3ZlZCBmcm9tIGEgY2FjaGVkIHRhYmxlLiBUaGlzCiAgIGNhbiByZXN1bHQKICAgaW4gZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZXMgYW5kIGV2ZW4gYSBjcmFzaC4KICAgMi4gUE9TSVggcmVzdHJpY3RzIHNpZ25hbCBoYW5kbGVycyB0byBjYWxsaW5nIGZ1bmN0aW9ucyB0aGF0IGFyZQogICBlaXRoZXIgcmVlbnRyYW50CiAgIG9yIG5vbi1pbnRlcnJ1cHRpYmxlCiAgIChodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3hzaF9jaGFwMDJfMDQuaHRtbCN0YWdfMDJfMDQpLgogICBTdGFuZGFyZCBJL08gZnVuY3Rpb25zIGxpa2UgcHJpbnRmKCkgYW5kIGZwcmludGYoKSBhcmUgbmVpdGhlcgogICByZWVudHJhbnQgbm9yCiAgIG5vbi1pbnRlcnJ1cHRpYmxlLiBydW5fYWxhcm1zKCkgaXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgc2lnbmFsCiAgIGhhbmRsZXIsIHdoaWNoCiAgIG1lYW5zIHRoYXQgdGhpcyByZXN0cmljdGlvbiBhcHBsaWVzIHRvIHRoZSBmdW5jdGlvbiBydW5fYWxhcm1zKCkKICAgaXRzZWxmIGFuZAogICBhbGwgZnVuY3Rpb25zIGNhbGxlZCBieSBpdCAod2hpY2ggaW5jbHVkZXMgdGhlIGFsYXJtIGNhbGxiYWNrCiAgIGZ1bmN0aW9ucykuCiAgIE9yOiBlLmcuIHNubXBfbG9nKCkgYW5kIGl0cyBjYWxsZXJzIG11c3Qgbm90IGJlIGNhbGxlZCBmcm9tCiAgIGluc2lkZSBydW5fYWxhcm1zKCkKICAgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGludm9rZWQgZnJvbSBpbnNpZGUgYSBzaWduYWwgaGFuZGxlci4gVGhpcwogICBpcyBhIHNldmVyZQogICByZXN0cmljdGlvbiwgYW5kIG9uZSB0aGF0IGlzIGhhcmQgdG8gd29yayB3aXRoLgogICAzLiBOb3QgYWxsIHNvZnR3YXJlIGRldmVsb3BlcnMga25vdyBob3cgdG8gbWFrZSBzdXJlIHRoYXQgc2lnbmFsCiAgIGRlbGl2ZXJ5IHdvcmtzCiAgIGNvcnJlY3RseSBpbiBhIG11bHRpdGhyZWFkZWQgY29udGV4dC4gUE9TSVggZG9lcyBub3QgZ3VhcmFudGVlIHRvCiAgIHdoaWNoIHRocmVhZAogICBhIHNpZ25hbCBsaWtlIFNJR0FMUk0gd2lsbCBiZSBkZWxpdmVyZWQsIHVubGVzcyB0aGF0IHNpZ25hbCBoYXMKICAgYmVlbiBibG9ja2VkCiAgIGJlZm9yZSB0aHJlYWQgY3JlYXRpb24gYW5kIGlzIHVuYmxvY2tlZCBhZnRlciB0aHJlYWQgY3JlYXRpb24KICAgKHNlZSBhbHNvCiAgIGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvcHRocmVhZF9zaWdtYXNrLmh0bWwpLgogICBUaGlzIGlzIHJlbGV2YW50IGZvciB0aGUgTmV0LVNOTVAgcHJvamVjdCBub3Qgb25seSBiZWNhdXNlIGEKICAgd29ya2VyIHRocmVhZCBpcwogICBjcmVhdGVkIGluc2lkZQogICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMgYnV0IGFsc28KICAgYmVjYXVzZSBsaWJuZXRzbm1wIGlzIG9mdGVuIHVzZWQgaW5zaWRlIG11bHRpdGhyZWFkZWQgc29mdHdhcmUuCiAgIEN1cnJlbnRseSBubwogICBhdHRlbXB0IGlzIG1hZGUgdG8gbWFrZSBzdXJlIHRoYXQgU0lHQUxSTSBpcyBwcm9jZXNzZWQgYnkgdGhlCiAgIE5ldC1TTk1QIGV2ZW50CiAgIHByb2Nlc3NpbmcgbG9vcCB0aHJlYWQuIElmIFNJR0FMUk0gaXMgcHJvY2Vzc2VkIGJ5IGFub3RoZXIKICAgdGhyZWFkLCB0aGlzIHdpbGwKICAgcmVzdWx0IGluIG9uZSBvciBtb3JlIGRhdGEgcmFjZXMuCiAgIAogICBCZWNhdXNlIGFsbCB0aGUgZGlmZmljdWx0aWVzIGFzc29jaWF0ZWQgd2l0aCBwcm9jZXNzaW5nIGFsYXJtcwogICBmcm9tIGluc2lkZSBhCiAgIHNpZ25hbCBoYW5kbGVyIGZ1bmN0aW9uLCBhbmQgYmVjYXVzZSBmaXhpbmcgdGhlc2Ugd291bGQgcmVxdWlyZQogICBtb3JlIGVmZm9ydCB0aGFuCiAgIGl0IGlzIHdvcnRoLCBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaGFzIGJlZW4KICAgZGVwcmVjYXRlZCBhbmQgZnJvbSBub3cKICAgb24gYXBwcm9hY2ggKDEpIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBhcHByb2FjaCB0byB0cmlnZ2VyIGFsYXJtCiAgIGhhbmRsZXJzLgoKMjAxMC0wMS0wNyAxOTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIFBhdGNoIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgdG8gZml4IGEgbWlub3IgbWVtbGVhayBpbiBjcHUKICAgc3lzY3RybCBmZXRjaGluZwoKMjAxMC0wMS0wNyAxNjoyMSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIFJlbW92ZWQgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSwgYW5kIG1hZGUgc3VyZSB0aGF0CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgJ1wwJy10ZXJtaW5hdGVzIHRoZSBvdXRwdXQgYnVmZmVyCiAgIGluIGFsbCBjYXNlcy4KICAgVXBkYXRlZCBkb2N1bWVudGF0aW9uIGFuZCB1bml0IHRlc3RzLgoKMjAxMC0wMS0wNyAxNDo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBSZW1vdmVkIHRocmVlIHN1cGVyZmx1b3VzIGNhc3RzIGJlY2F1c2UgdGhlc2UgdHJpZ2dlcmVkIGEKICAgY29tcGlsZXIgd2FybmluZwogICB3aGVuIGNvbXBpbGVkIHdpdGggTVNWQy4KCjIwMTAtMDEtMDcgMTM6MjggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldmVydGVkIHRoZSByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGNoYW5nZXMgZnJvbSByMTc5OTIKICAgYmVjYXVzZSB0aGVzZQogICBjYXVzZWQgdGhlIGZvbGxvd2luZyBWYWxncmluZCBjb21wbGFpbnQgZHVyaW5nIHNubXBkIHN0YXJ0dXA6CiAgIAogICA9PTI1MjAxPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZAogICB2YWx1ZShzKQogICA9PTI1MjAxPT0gYXQgMHg0MDQ3QjE0OiBuZXRzbm1wX3NlbmRfdHJhcHMgKGFnZW50X3RyYXAuYzo3OTgpCiAgID09MjUyMDE9PSBieSAweDQwNDgxMjg6IHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMKICAgKGFnZW50X3RyYXAuYzo4NTMpCiAgID09MjUyMDE9PSBieSAweDQwNDgxOUQ6IHNlbmRfdHJhcF92YXJzIChhZ2VudF90cmFwLmM6OTYzKQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MjVCOiBzZW5kX2Vhc3lfdHJhcCAoYWdlbnRfdHJhcC5jOjEwMTEpCiAgID09MjUyMDE9PSBieSAweDgwNEI1RDI6IG1haW4gKHNubXBkLmM6Mzk0KQoKMjAxMC0wMS0wNyAxMjozMCAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXhlZCBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoLgoKMjAxMC0wMS0wNyAxMjoxOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBEZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGFzc2lnbmluZyBhIGNoYXIgKiBwb2ludGVyIHRvCiAgIHN5c09SVGFibGU6Ok9SX2Rlc2NyIGRvZXMgb3IgZG9lcyBub3QgdHJhbnNmZXIKICAgb3duZXJzaGlwLiBTbyB3aGV0aGVyIE9SX2Rlc2NyIGlzIGRlY2xhcmVkIGFzIGNoYXIgKiBvciBhcyBjb25zdAogICBjaGFyICosIHRoZXJlIHdpbGwgYWx3YXlzIGJlIGF0CiAgIGxlYXN0IG9uZSBzdGF0ZW1lbnQgb24gd2hpY2ggdGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIGNoYXIKICAgKiAgLyBjb25zdCBjaGFyICogbWlzbWF0Y2guIFRoZSBvbmx5ICAgIHNvbHV0aW9uIGlzIHRvIGNhc3QgYXdheQogICAgICBjb25zdCB3aGVyZSBhcHByb3ByaWF0ZSB0byBtYWtlIHN1cmUgICAgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QKICAgICAgY29tcGxhaW4sICAgIGFzIGltcGxlbWVudGVkIGluIHRoaXMgcGF0Y2guICAyMDEwLTAxLTA3IDExOjQ2IAogICAgICBidmFzc2NoZQoKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICB1c21fc2F2ZV91c2VyKCk6IHdoZW4gd3JpdGluZyB1c2VyLT5uYW1lIGFuZCB1c2VyLT5zZWNOYW1lLCBvbmx5CiAgIHdyaXRlIHRoZSBBU0NJSSBkYXRhIGFuZCBub3QgdGhlCiAgIHRlcm1pbmF0aW5nICdcMCcuIFNpbmNlIGJvdGggaXRlbXMgYXJlIHJlYWQgYnkgY2FsbGluZwogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLCB3cml0aW5nCiAgIHRoZSB0ZXJtaW5hdGluZyAnXDAnIGlzIG5vdCBuZWNlc3NhcnkgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGRhdGEKICAgcmVhZCBiYWNrIGlzIHRlcm1pbmF0ZWQgcHJvcGVybHkuCgoyMDEwLTAxLTA3IDA5OjEzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpOiB1bnRpbAogICBub3cgdGhpcwogICBmdW5jdGlvbiB0ZXJtaW5hdGVkIHRoZSBvdXRwdXQgYnVmZmVyIGluIHNvbWUgY2FzZXMgd2l0aCAnXDAnCiAgICh3aGVuIHRoZQogICBpbnB1dCB3YXMgaW4gdGhlIGZvcm1hdCAweC4uLiBhbmQgYSBidWZmZXIgb3ZlcmZsb3cgb2NjdXJyZWQgYW5kCiAgIGFsc28KICAgd2hlbiB0aGUgaW5wdXQgd2FzIGluIEFTQ0lJIGZvcm1hdCwgYnV0IG5vdCB3aGVuIHRoZSBpbnB1dCB3YXMgaW4KICAgZm9ybWF0CiAgIDB4Li4uIGFuZCBubyBidWZmZXIgb3ZlcmZsb3cgb2NjdXJyZWQpLiBDaGFuZ2VkIHRoaXMgc3VjaCB0aGF0CiAgIHRoaXMKICAgZnVuY3Rpb24gZG9lcyBubyBsb25nZXIgdGVybWluYXRlIHRoZSBpbnB1dCBidWZmZXIgd2l0aCAnXDAnLgogICBUaGlzCiAgIGNoYW5nZSB3YXMgcG9zc2libGUgYmVjYXVzZSBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QgYWxsCiAgIGNhbGxlcnMgdGhhdAogICBuZWVkZWQgYSAnXDAnIHRlcm1pbmF0ZWQgc3RyaW5nIGhhdmUgYmVlbiBjb252ZXJ0ZWQgdG8gdXNlCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgaW5zdGVhZC4KCjIwMTAtMDEtMDYgMTc6NTIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFJldmVydGVkIHIxNzk2OCBhbmQgcjE3OTcyLgoKMjAxMC0wMS0wNiAxNTo0MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4ZWQgbW9yZSBjb21waWxlciB3YXJuaW5ncyByZWxhdGVkIHRvIHRoZSB1c2Ugb2YgdGhlIGNvbnN0CiAgIGtleXdvcmQuCgoyMDEwLTAxLTA2IDE1OjM4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jOgoKICAgRml4ZWQgYSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaC4KCjIwMTAtMDEtMDYgMTU6MzYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6CgogICBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUgZnJvbSBjaGFyICogaW50byBjb25zdCBjaGFyICouIFNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQgaW4gcjE3OTc1LgoKMjAxMC0wMS0wNiAxNTozMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDE1OjMxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgdGhlIGZ1bmN0aW9ucyByZWdpc3Rlcl9jb25zdF9jb25maWdfaGFuZGxlcigpIGFuZAogICBzbm1wZF9yZWdpc3Rlcl9jb25zdF9jb25maWdfaGFuZGxlcigpLCB3aGljaAogICBhY2NlcHQgYSBwYXJzZXIgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHN0cmluZyB0aGF0IGl0CiAgIHBhcnNlcy4gVXNpbmcgdGhlc2UgZnVuY3Rpb25zIHJlc3VsdHMKICAgaW4gZWFzaWVyIHRvIHJlYWQgY29kZSB0aGFuIHVzaW5nIHRoZSBub24tY29uc3QgaGFuZGxlcgogICByZWdpc3RyYXRpb24gZnVuY3Rpb25zIGFuZCBjYXN0aW5nIHRoZSBwYXJzZXIKICAgZnVuY3Rpb24gZXhwbGljaXRseSBmcm9tICh2b2lkKCopKGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikpIHRvCiAgICh2b2lkKCopKGNvbnN0IGNoYXIqLCBjaGFyKikpLgoKMjAxMC0wMS0wNiAxNToyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHJlYWRfY29uZmlnX3JlYWRfb2JqaWRfY29uc3QoKS4KCjIwMTAtMDEtMDYgMTQ6NDIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIER1cGxpY2F0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSgpIC8KICAgUkVHSVNURVJfU1lTT1JfRU5UUlkoKQogICBzaW5jZSB0aGF0IGFyZ3VtZW50IGlzIGZyZWVkIHdoaWxlIHVucmVnaXN0ZXJpbmcgc3VjaCBhbiBlbnRyeS4KICAgTm90IHN1cmUgd2hldGhlcgogICB0aGlzIGNvdWxkIGFjdHVhbGx5IHRyaWdnZXIgYSBjYWxsIG9mIGZyZWUoKSB3aXRoIGEgY29uc3RhbnQKICAgc3RyaW5nIGFzIGFyZ3VtZW50CiAgIGFuZCBJJ20gbmVpdGhlciBzdXJlIGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgY291bGQgaGF2ZQogICB0cmlnZ2VyZWQgYSBjcmFzaC4KCjIwMTAtMDEtMDYgMTQ6MzQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgRm9yIHRob3NlIFZBQ00gZnVuY3Rpb25zIHRoYXQgZG8gbm90IG1vZGlmeSB0aGUgc3RyaW5ncyBwYXNzZWQgYXMKICAgYXJndW1lbnRzLAogICBjaGFuZ2VkIHRoZSBhcmd1bWVudCB0eXBlIGZyb20gY2hhciAqIHRvIGNvbnN0IGNoYXIgKi4KCjIwMTAtMDEtMDYgMTQ6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmM6CgogICBSZW1vdmVkIGFuIHVudXNlZCB2YXJpYWJsZS4KCjIwMTAtMDEtMDYgMTQ6MTQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmM6CgogICBEdXBsaWNhdGVkIHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgUkVHSVNURVJfU1lTT1JfVEFCTEUoKSAvCiAgIFJFR0lTVEVSX1NZU09SX0VOVFJZKCkKICAgc2luY2UgdGhhdCBhcmd1bWVudCBpcyBmcmVlZCB3aGlsZSB1bnJlZ2lzdGVyaW5nIHN1Y2ggYW4gZW50cnkuCiAgIE5vdCBzdXJlIHdoZXRoZXIKICAgdGhpcyBjb3VsZCBhY3R1YWxseSB0cmlnZ2VyIGEgY2FsbCBvZiBmcmVlKCkgd2l0aCBhIGNvbnN0YW50CiAgIHN0cmluZyBhcyBhcmd1bWVudAogICBhbmQgSSdtIG5laXRoZXIgc3VyZSBhYm91dCB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvdWxkIGhhdmUKICAgdHJpZ2dlcmVkIGEgY3Jhc2guCgoyMDEwLTAxLTA2IDE0OjA4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5oOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdAogICBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjA2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAxNDowNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgbmV3IGZ1bmN0aW9ucyBza2lwX3doaXRlX2NvbnN0KCksIHNraXBfbm90X3doaXRlX2NvbnN0KCksCiAgIHNraXBfdG9rZW5fY29uc3QoKSwgY29weV9ud29yZF9jb25zdCgpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpLgogICAtIENoYW5nZWQgcmV0dXJuIHR5cGUgb2YgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBmcm9tCiAgIGNoYXIgKiB0bwogICBjb25zdCBjaGFyICouIE5vdGU6IHRoaXMgZG9lcyBub3QgYWZmZWN0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CiAgIHNpbmNlIHRoaXMKICAgZnVuY3Rpb24gaGFzIG5vdCB5ZXQgYmVlbiBpbmNsdWRlZCBpbiBhbnkgcmVsZWFzZS4KICAgLSBGaXhlZCBkb2N1bWVudGF0aW9uIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkuCiAgIC0gUmVkdWNlZCBudW1iZXIgb2YgY2FzdC1hd2F5LWNvbnN0IGNvbnN0cnVjdHMgaW4gcmVhZF9jb25maWcuYy4KCjIwMTAtMDEtMDYgMTM6MzUgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgUmVmaW5lZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIG1hY3JvIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCk6CiAgIHdoZW4gdXNpbmcKICAgdGhlIGdjYyBjb21waWxlciwgaXQgaXMgbm93IHZlcmlmaWVkIHdoZXRoZXIgdGhlIHR5cGVzIChjb25zdCB0KQogICBhbmQgdHlwZW9mKGUpCiAgIGFyZSBjb21wYXRpYmxlLCB3aGVyZSB0IGlzIHRoZSBmaXJzdCBhcmd1bWVudCBhbmQgZSB0aGUgc2Vjb25kCiAgIGFyZ3VtZW50IG9mCiAgIHRoaXMgbWFjcm8uCgoyMDEwLTAxLTA2IDEzOjMzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaDoKCiAgIEFkZCBzdXBwb3J0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoIEhXIGFkZHJlc3MgYmlnZ2VyIHRoYW4gNgogICBieXRlcyB0byBhdFRhYmxlLiBTb21lIEhXLCBsaWtlIEluZmluaUJhbmQsIHVzZXMgSFcgYWRkcmVzc2VzCiAgIHdpdGggOSBhbmQgbW9yZSBieXRlcy4KCjIwMTAtMDEtMDYgMTI6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAyOTI0MTQwOiBGaXggdGVybWluYXRpb24gb2YgQ1BVL0ZQVSB0eXBlcwoKMjAxMC0wMS0wNiAxMjozMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMjkyMjM5MDogRml4IHRlc3QgZm9yIG1pc3NpbmcgY29udGV4dE5hbWUKICAgcGFyYW1ldGVyCgoyMDEwLTAxLTA2IDExOjU3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvc25tcF9wZXJsLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIENoYW5nZXM6CiAgIC0gSW50cm9kdWNlZCBhIG5ldyBtYWNybyBORVRTTk1QX1JFTU9WRV9DT05TVCgpIHRoYXQgYWxsb3dzIHRvCiAgIGNhc3QKICAgYXdheSBjb25zdG5lc3Mgd2l0aG91dCB0aGF0IGdjYyAtV2Nhc3QtcXVhbCByZXBvcnRzIGEgd2FybmluZy4KICAgLSBNYWRlIGNhc3RpbmcgYXdheSBjb25zdG5lc3MgZXhwbGljaXQgYnkgaW50cm9kdWNpbmcgdGhlCiAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgbWFjcm8uIFRoaXMgc3VwcHJlc3NlcyB0aGUgd2FybmluZwogICBnY2MgLVdjYXN0LXF1YWwgcHJpbnRlZCBmb3IgdGhlc2Ugc3RhdGVtZW50cy4KCjIwMTAtMDEtMDYgMTE6NDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAwOToxNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhcHBzL2FnZW50eHRyYXAuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRG8gbm90IHVzZSAwIHdoZW4gcmVmZXJyaW5nIHRvIE5VTEwuCgoyMDEwLTAxLTA2IDA4OjI2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDaGFuZ2VkIGFyZ3VtZW50IHR5cGVzIG9mIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQKICAgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCiAgIGZyb20gc3RydWN0IHRpbWV2YWwgKiB0byBjb25zdCBzdHJ1Y3QgdGltZXZhbCAqLiBOb3RlOiB0aGlzIGRvZXMKICAgbm90IGFmZmVjdAogICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCjIwMTAtMDEtMDYgMDg6MjMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ2hhbmdlcyAobm8gZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBtb2RpZmllZCk6CiAgIC0gUmVtb3ZlZCBkaXNraW9fcGFyc2VfY29uZmlnKCkgZGVjbGFyYXRpb24gYmVjYXVzZSB0aGF0IGZ1bmN0aW9uCiAgIGlzIG5laXRoZXIgY2FsbGVkIG5vciBkZWZpbmVkIGluIHRoZSBzb3VyY2UgZmlsZSBkaXNraW8uYy4KICAgLSBBZGRlZCBkZWNsYXJhdGlvbiBmb3IgZ2V0c3RhdHMoKSBzdWNoIHRoYXQgZ2NjIGRvZXMgbm90CiAgIGNvbXBsYWluIGFib3V0IGEgbWlzc2luZyBkZWNsYXJhdGlvbi4KICAgLSBMaW51eDogY2hhbmdlZCB2aXNpYmlsaXR5IG9mIGdldHN0YXRzKCkgZnJvbSBnbG9iYWwgdG8gc3RhdGljCiAgIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBCU0QgYW5kIERhcndpbiBpbXBsZW1lbnRhdGlvbnMgb2YKICAgZ2V0c3RhdHMoKS4KCjIwMTAtMDEtMDYgMDg6MDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKiBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAwMjoxOCAgbWFnZnIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIG1hbi9NYWtlZmlsZS5pbiwgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIENIQU5HRVM6IGFwcHM6IE9ubHkgYnVpbGQgYWdlbnR4dHJhcCBpZiB0aGUgYWdlbnR4IGxpYnJhcmllcyBhcmUKICAgYnVpbHQuIEFkZCBhIHRlc3QgY2FzZSBmb3IgYWdlbnR4dHJhcC4KICAgCiAgIFRoZSBlbmFibGVtZW50L2Rpc2FibGVtZW50IGlzIGluc3BpZXJlZCBieSBhdXRvbWFrZSBjb25kaXRpb25hbHMKCjIwMTAtMDEtMDYgMDE6NTkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgc3RhcnR0aW1lLgoKMjAxMC0wMS0wNSAyMjo1NCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmg6CgogICBDSEFOR0VTOiBIaWRlIG1vc3QgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgaW4gdGhlIGxvZ21hdGNoCiAgIG1vZHVsZS4gQ2xlYW5lZCB1cCB0aGUgaGVhZGVyIGFjY29yZGluZ2x5LiBSZW1vdmUgdGhlIG5lZWQgZm9yCiAgIGZvcndhcmQgZGVjbGFyYXRpb25zIGJ5IHJlb3JkZXJpbmcgdGhlIGZ1bmN0aW9ucy4KCjIwMTAtMDEtMDUgMjI6MzMgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVR1M6IDI5MTkzNzk6IEluaXRpYWxpc2UgU05NUCBzZXNzaW9ucyBwcm9wZXJseQogICBQcm92aWRlZCBieSBEaWVnbyBCaWxsaQoKMjAxMC0wMS0wNSAyMjoyMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDI5MTkzMjA6IEF2b2lkIGFjY2Vzc2luZyBmcmVlZCBtZW1vcnkKICAgUmVwb3J0ZWQgYnkgVG9tYXN6IExpcwoKMjAxMC0wMS0wNSAxODo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MTQ0MTA6IEZpeCBjcmFzaCBvbiBlbXB0eSBjb21tYW5kIGxpbmVzCgoyMDEwLTAxLTA1IDE1OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMjU4NDogRml4IG51bGwgT0lEIGhhbmRsaW5nIGluIEFnZW50eAogICBvbiA2NGJpdAogICBQYXRjaCBzdXBwbGllZCBieSBMdXR6IEphZW5pY2tlCgoyMDEwLTAxLTA1IDEwOjExICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIENIQU5HRVM6IGhwdXg6IGZpeCBidWlsZCBlcnJvciBvbiBIUC1VWCAxMC4yMAoKMjAxMC0wMS0wNSAwODo0MiAganNhZnJhbmVrCgogICAqIG1hbiwgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgUmVtb3ZlIGdlbmVyYXRlZCBtYW4gcGFnZXMgZnJvbSByZXBvc2l0b3J5LgoKMjAxMC0wMS0wNCAxNjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ZWQgYSBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZCB0aGF0IG9jY3VycmVkIHdoZW4gYW4gQVNDSUkKICAgc3RyaW5nIHdhcwogICBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgLwogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGFuZCB0aGUgdGhpcmQgYXJndW1lbnQgKCpsZW4pCiAgIGVxdWFscyAwLgoKMjAxMC0wMS0wNCAxNjo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5ICdjb25zdCcuCgoyMDEwLTAxLTA0IDE2OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCB1bml0IHRlc3QgZm9yIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkuCgoyMDEwLTAxLTA0IDEwOjQ1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBjb3JyZWN0IG9pZCBsZW5ndGggaW4gdGFibGUgaW5kZXhlcy4KCjIwMTAtMDEtMDQgMDg6MTAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgc25tcF9hbGFybS5jIGNhbiBiZSBjb21waWxlZCBhZ2FpbiB3aXRoIEM4OQogICBjb21waWxlcnM6IGZvciBDODkKICAgaXQgaXMgcmVxdWlyZWQgdGhhdCBpbml0aWFsaXplcnMgYXJlIGNvbnN0YW50IGV4cHJlc3Npb25zLgoKMjAxMC0wMS0wMyAxNjoyOCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jOgoKICAgUmVuYW1lIG5ldHNubXBfYXJjaF90Y3Bjb25uX2RlbGV0ZSB0bwogICBuZXRzbm1wX2FyY2hfdGNwY29ubl9lbnRyeV9kZWxldGUgaW4gb3JkZXIgdG8gYmUgY29uc2lzdGVudCB3aXRoCiAgIHRoZSBoZWFkZXIgZmlsZSBhbmQgYWxsIHRoZSBvdGhlciBmdW5jdGlvbnMgaW4gdGhlIG1vZHVsZS4KCjIwMTAtMDEtMDMgMTY6MjYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBfc2NhbGFycy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBBZGQgbWlzc2luZyBkZWNsYXJhdGlvbnMuCgoyMDA5LTEyLTMwIDEyOjQ5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgRm9sbG93LXVwIGZvciByMTc5MzM6IGZpeGVkIHRoZSBpc3N1ZSB0aGF0IGluY2x1ZGluZyB0aGUgaGVhZGVyCiAgIGZpbGUKICAgPG5ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaD4gZnJvbSA8bmV0LXNubXAvbGlicmFyeS90b29scy5oPgogICB0cmlnZ2VycwogICBjb21waWxlciBlcnJvcnMgZHVyaW5nIHRoZSBjb25maWd1cmUgcHJvY2VzcyAoY29tcGxhaW50cyBhYm91dAogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4gbm90IGJlaW5nIGluY2x1ZGVkIGJlZm9yZQogICA8bmV0LXNubXAvdHlwZXMuaD4pLgogICBOb3RlOiB0aGlzIGRvZXMgbm90IHNvbHZlIHRoZSB1bmRlcmx5aW5nIHByb2JsZW0gdGhhdCBNSUIgY29kZQogICBtdXN0IG5vdAogICBpbmNsdWRlIHRoZSBoZWFkZXIgZmlsZSA8bmV0LXNubXAvdHlwZXMuaD4gYmVjYXVzZSBkb2luZyBzbyB3b3VsZAogICB0cmlnZ2VyIGEKICAgY2lyY3VsYXIgZGVwZW5kZW5jeSBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBzdGVwIChNSUIgY29kZSBpcwogICBjb21waWxlZCBkdXJpbmcKICAgdGhlIGNvbmZpZ3VyZSBzdGVwLCB3aGlsZSB0aGUgY29uZmlndXJlIHN0ZXAgZ2VuZXJhdGVzCiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBhbmQgPG5ldC1zbm1wL3R5cGVzLmg+IG5lZWRzCiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPikuCgoyMDA5LTEyLTMwIDExOjQ4ICBidmFzc2NoZQoKICAgKiBhcHBzLCBtYW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxOTogdXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0cy4KCjIwMDktMTItMjggMTg6MDMgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICBGaXhlZCBhIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkLiBGb3VuZCB0aGlzIGJ5IGFuYWx5emluZyBjb21waWxlcgogICB3YXJuaW5ncy4KICAgTm90ZTogdGhlIGFmZmVjdGVkIGZ1bmN0aW9uLCByZWdpc3Rlcl9zdHJpbmdfaW5kZXgoKSwgaXNuJ3QKICAgY2FsbGVkIGZyb20KICAgYW55d2hlcmUgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0IGl0c2VsZi4KCjIwMDktMTItMjMgMDk6NDkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIEZpeCBpbnZhbGlkIHJlYWQgcmVwb3J0ZWQgYnkgdmFsZ3JpbmQ6CiAgIEludmFsaWQgcmVhZCBvZiBzaXplIDEKICAgbWVtY3B5IChtY19yZXBsYWNlX3N0cm1lbS5jOjQwMikKICAgX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkX3Y0CiAgIChpcGFkZHJlc3NfaW9jdGwuYzoyNDApCiAgIG5ldHNubXBfYXJjaF9pcGFkZHJlc3NfY29udGFpbmVyX2xvYWQgKGlwYWRkcmVzc19saW51eC5jOjE1OCkKICAgbmV0c25tcF9hY2Nlc3NfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkIChpcGFkZHJlc3NfY29tbW9uLmM6MTEyKQogICAKICAgUmV0dXJuaW5nIHN0cnVjdHVyZSB3aXRoIHBvaW50ZXJzIGluc2lkZSBpcyBub3QgdGhlIGJlc3QgdGhpbmcgdG8KICAgZG8uCgoyMDA5LTEyLTIyIDE2OjA1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRml4ZWQgc2V2ZXJhbCBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZHMuCgoyMDA5LTEyLTIyIDEyOjAyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaCwgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAKICAgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFJldmVydGVkIHRoZSBiYWNrd2FyZHMtaW5jb21wYXRpYmxlIGNoYW5nZXMgb2YgcjE3OTEzOgogICAtIFJlc3RvcmVkIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBESUZGVElNRVZBTCgpIG1hY3JvLgogICAtIFJlc3RvcmVkIHRoZSBkZWZpbml0aW9ucyBvZiB0aGUgZnVuY3Rpb25zCiAgIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSwKICAgdWF0aW1lX3JlYWR5KCksIG1hcmtlcl90dGlja3MoKSBhbmQgdGltZXZhbF90dGlja3MoKS4KICAgLSBzdGFydHRpbWUgaXMgYWdhaW4gYSBnbG9iYWwgdmFyaWFibGUgaW5zdGVhZCBvZiBhIHN0YXRpYyBvbmUuCiAgIEFsc28gaW1wbGVtZW50ZWQgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogICAtIE1vdmVkIHRoZSBtYXJrZXJfdCB0eXBlZGVmIGZyb20gbmV0LXNubXAvbGlicmFyeS90b29scy5oIHRvCiAgIG5ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaC4KICAgLSBBZGRlZCBhIG5ldyB0eXBlZGVmLCBjb25zdF9tYXJrZXJfdC4KICAgLSBGb3IgdGhvc2UgYXRpbWVfKigpIC8gdWF0aW1lXyooKSAvICpfdHRpY2tzKCkgZnVuY3Rpb25zIHRoYXQgZG8KICAgbm90IGNoYW5nZQogICB0aGVpciBhcmd1bWVudHMsIGRlY2xhcmVkIHRoZXNlIGFyZ3VtZW50cyBjb25zdF9tYXJrZXJfdCBpbnN0ZWFkCiAgIG9mIG1hcmtlcl90LgogICAtIFJlbmFtZWQgbmV0c25tcF9nZXRfc3RhcnR0aW1lKCkgYW5kIG5ldHNubXBfc2V0X3N0YXJ0dGltZSgpIHRvCiAgIG5ldHNubXBfZ2V0X2FnZW50X3N0YXJ0dGltZSgpIGFuZCBuZXRzbm1wX3NldF9hZ2VudF9zdGFydHRpbWUoKQogICByZXNwZWN0aXZlbHkuIE1vdmVkIHRoZXNlIGZ1bmN0aW9ucyBmcm9tIHRvb2xzLmMgdG8gc3lzdGVtLmMuCiAgIC0gUmVtb3ZlZCB0aGUgZnVuY3Rpb24gYXRpbWVfaHN1YnRyYWN0KCkgKHdhcyBpbnRyb2R1Y2VkIGluCiAgIHIxNzkxMykgYW5kCiAgIGludHJvZHVjZWQgYSBuZXcgZnVuY3Rpb24sIG5ldHNubXBfc2V0X2FnZW50X3VwdGltZSgpLgoKMjAwOS0xMi0yMiAwNzo1OSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV2ZXJ0ZWQgcjE3OTI2LCB3aGljaCBtYWRlIHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB6ZXJvLXRlcm1pbmF0ZWQuIEEgbmV3IHBhdGNoIHdpbGwKICAgZm9sbG93CiAgIHRoYXQgZml4ZXMgdGhlIGNhbGxlcnMgb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB0aGF0CiAgIHdlcmUKICAgYXNzdW1pbmcgdGhhdCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHplcm8tdGVybWluYXRlcyB0aGUKICAgc3RyaW5nCiAgIHJlYWQgYnkgdGhpcyBmdW5jdGlvbi4KCjIwMDktMTItMjEgMTQ6MjkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IGNyYXNoIGluIElGLU1JQiBhbmQgSVAtTUlCIHdoZW4gdGhlcmUgYXJlCiAgIHNvbWUgaW50ZXJmYWNlcyB3aXRoIGJyb2FkY2FzdCBJUCBhZGRyZXNzIGFuZCBzb21lIHdpdGhvdXQuCiAgIAogICBSZXNldCB0aGUgYmNhc3RlbnRyeSBpbiB0aGUgbG9vcCwgc28gaXQgY2Fubm90IGJlIGluc2VydGVkIHRvIHRoZQogICBjb250YWluZXIKICAgdHdpY2UuCiAgIAogICBXaXRob3V0IHRoaXMgcGF0Y2gsIHdoZW4gYW4gaW50ZXJmYWNlIHdpdGhvdXQgYnJvYWRjYXN0IGFkZHJlc3MKICAgaXMgcHJvY2Vzc2VkLAogICB0aGUgYmNhc3RhZGRyZXNzIGZyb20gcHJldmlvdXMgbG9vcCBpcyBpbnNlcnRlZCBpbnRvIHRoZQogICBjb250YWluZXIuIFRoaXMKICAgb2J2aW91c2x5IGZhaWxzIGFuZCB0aGUgYmNhc3RlbnRyeSBpcyBmcmVlZCwgYnV0IHRoZSBjb250YWluZXIKICAgc3RpbGwgY29udGFpbnMKICAgcmVmZXJlbmNlIHRvIGl0IC0+IFNJR1NFR1YuCgoyMDA5LTEyLTIxIDEzOjUyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkyODogd2hpbGUgcjE3OTI4IGZpeGVkIGEgZGFuZ2xpbmcgcG9pbnRlcgogICBkZXJlZmVyZW5jZQogICBkZXRlY3RlZCBieSBydW5uaW5nIHRoZSBOZXQtU05NUCBzb2Z0d2FyZSBvbiBXaW5kb3dzLCB0aGF0IHBhdGNoCiAgIGludHJvZHVjZWQKICAgYSBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlIGFib3V0IHdoaWNoIG9ubHkgVmFsZ3JpbmQgb24gTGludXgKICAgY29tcGxhaW5lZC4KICAgVGhpcyBmb2xsb3ctdXAgcGF0Y2ggZml4ZXMgYm90aCBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlcwogICB0cmlnZ2VyZWQgYnkKICAgcGFyc2luZyB0aGUgcGVyc2lzdGVudERpciBrZXl3b3JkLgoKMjAwOS0xMi0yMSAxMzozMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBBcHBsaWVkIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjkwMTEyMi4gQ2hhbmdlczoKICAgLSBOZXcgZmVhdHVyZTogc3BlY2lmeWluZyBBU04gdHlwZSBTTk1QX05PU1VDSElOU1RBTkNFIGFzIHRoZQogICB0aGlyZCBhcmd1bWVudAogICBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgd2lsbCBjYXVzZSBhbiBTTk1QIEdldFJlcXVlc3QgLwogICBHZXROZXh0UmVxdWVzdCB0bwogICByZXR1cm4gdGhlIGVycm9yIGNvZGUgbm9TdWNoSW5zdGFuY2UgKFNOTVB2Mikgb3Igbm9TdWNoTmFtZQogICAoU05NUHYxKS4gVGhpcwogICBtYWtlcyBpdCBwb3NzaWJsZSB0byBoYXZlIGEgY2FjaGVkIHRhYmxlIHdpdGggb25lIG9yIG1vcmUKICAgImhvbGVzIi4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvIG5vdCBmcmVlKCkgLyBtYWxsb2MoKSB0aGUgbWVtb3J5CiAgIGZvciBzdG9yaW5nCiAgIHRoZSBjYWNoZWQgdmFsdWUgaWYgdGhlIHZhbHVlIGhhcyBub3QgYmVlbiBtb2RpZmllZC4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvIG5vdCBmcmVlKCkgLyBtYWxsb2MoKSB0aGUgbWVtb3J5CiAgIGZvciBzdG9yaW5nCiAgIHRoZSBjYWNoZWQgdmFsdWUgaWYgdGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgaGFzIG5vdCBiZWVuCiAgIG1vZGlmaWVkLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogaWYgdGhlIHNpemUgb2YgdGhlIGNhY2hlZCB2YWx1ZQogICBzaHJ1bmssIHVzZQogICByZWFsbG9jKCkgaW5zdGVhZCBvZiBmcmVlKCkgYW5kIG1hbGxvYygpLgoKMjAwOS0xMi0yMSAxMjoyMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXBwbGllZCBhIHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzI5MTIwNTU6IG1ha2Ugc3VyZQogICB0aGF0CiAgIHBhcnNpbmcgdGhlICJwZXJzaXN0ZW50RGlyIiBrZXl3b3JkIGluIHNubXAuY29uZiBkb2VzIG5vdCB0cmlnZ2VyCiAgIGEKICAgZGFuZ2xpbmcgcG9pbnRlci4gVG8gbXkgc3VycHJpc2UgQm91bmRzQ2hlY2tlciBjb21wbGFpbmVkIGFib3V0CiAgIHRoaXMKICAgKG9uIFdpbmRvd3MpLCBidXQgVmFsZ3JpbmQgZGlkIG5vdCByZXBvcnQgdGhpcyBpc3N1ZSAob24gTGludXgpLgoKMjAwOS0xMi0yMSAxMjowOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MjUgKGZpeCBtZW1vcnkgbGVhayBkdXJpbmcgc3RhcnR1cCk6IHdoaWxlCiAgIHIxNzkyNSBmaXhlZAogICBvbmx5IHRoZSBsZWFrIHRyaWdnZXJlZCBmcm9tIGluc2lkZSB0aGUgZm9yLWxvb3AsIHRoaXMgcGF0Y2ggZG9lcwogICBub3cgYWxzbwogICBmaXggdGhlIGxlYWsgdHJpZ2dlcmVkIGJ5IHRoZSBuZXRzbm1wX3RhYmxlX2RhdGFzZXRfYWRkX3JvdygpCiAgIGNhbGwgbmVhcgogICB0aGUgZW5kIG9mIGxvZ19ub3RpZmljYXRpb24oKS4KCjIwMDktMTItMjEgMTI6MDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzI5MTIwNjI6IG1ha2Ugc3VyZSB0aGF0IHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBpcyBwcm9wZXJseSB0ZXJtaW5hdGVkLCBzdWNoIHRoYXQKICAgdGhlCiAgIGNhbGxlcnMgb2YgdGhpcyBmdW5jdGlvbiBkbyBub3QgdHJpZ2dlciBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZHMuCiAgIEZvdW5kCiAgIHRoaXMgaXNzdWUgdmlhIEJvdW5kc0NoZWNrZXIuCgoyMDA5LTEyLTIxIDExOjA2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBBcHBsaWVkIHBhdGNoICMyOTEyMDY4LCB3aGljaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGR1cmluZyBzdGFydHVwLgogICBUaGUKICAgZnVuY3Rpb24gbG9nX25vdGlmaWNhdGlvbigpIGFkZHMgYSByb3cgdG8gdGhlIHRhYmxlCiAgIG5sbUxvZ1ZhclRhYmxlLCBidXQKICAgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGJlZm9yZSB0aGF0IHRhYmxlIGhhcyBiZWVuCiAgIGluaXRpYWxpemVkLiBJZgogICB0aGF0IGhhcHBlbnMsIG1lbW9yeSBpcyBhbGxvY2F0ZWQgZm9yIGEgcm93IGJ1dCB0aGF0IG1lbW9yeSBpcwogICBuZXZlcgogICBhZGRlZCB0byB0aGUgY2FjaGVkIHRhYmxlIGRhdGEuIFRoZSBCb3VuZHNDaGVja2VyIHRvb2wgcmVwb3J0ZWQKICAgdGhpcyBhcwogICBhICJtZW1vcnkgbGVhayBsZWF2aW5nIHNjb3BlIi4KCjIwMDktMTItMjEgMTA6NTQgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIHRoZSBmb2xsb3dpbmcgdGV4dCB0byB0aGUgIkxpbWl0YXRpb25zIiBzZWN0aW9uIG9mCiAgIFJFQURNRS53aW4zMjoKICAgIldoZW4gdXNpbmcgd2luRXh0RExMLCB0aGVyZSBpcyBhbiBvZmZzZXQgb2YgdXAgdG8gb25lIHNlY29uZAogICBiZXR3ZWVuIHRoZQogICB2YWx1ZSBvZiB0aGUgc3lzVXBUaW1lIHZhcmJpbmQgaW5jbHVkZWQgaW4gdGhlIHRyYXBzIGdlbmVyYXRlZCBieQogICBTTk1QCiAgIGV4dGVuc2lvbiBETExzIChlLmcuIGxpbmtVcCBhbmQgbGlua0Rvd24pIGFuZCB0aGUgdmFsdWUgb2YgdGhlCiAgIHN5c1VwVGltZQogICB2YXJiaW5kIGluY2x1ZGVkIGluIHRyYXBzIGdlbmVyYXRlZCBieSBOZXQtU05NUCBpdHNlbGYgKGUuZy4KICAgY29sZFN0YXJ0KS4iCgoyMDA5LTEyLTIxIDEwOjA5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgU3BlbGxpbmcgZml4OiByZXBsYWNlZCBhbGwgb2NjdXJyZW5jZXMgb2YgJ3NwZWNpZmMnIGJ5CiAgICdzcGVjaWZpYycuCgoyMDA5LTEyLTIxIDEwOjA2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFJlZmFjdG9yaW5nOiBlbGltaW5hdGVkIGR1cGxpY2F0ZWQgY29kZSBieSByZWltcGxlbWVudGluZwogICBzbm1wX2FsYXJtX3JlZ2lzdGVyKCkgdXNpbmcgc25tcF9hbGFybV9yZWdpc3Rlcl9ocigpLiBOZWl0aGVyIHRoZQogICBOZXQtU05NUCBBUEkgbm9yIHRoZSBiZWhhdmlvciBvZiBzbm1wX2FsYXJtX3JlZ2lzdGVyKCkgaGFzIGJlZW4KICAgY2hhbmdlZC4KCjIwMDktMTItMjAgMTE6MTAgIG1hZ2ZyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2FnZW50eHRyYXAuYywgbWFuL01ha2VmaWxlLmluLCAgIAogICAgICBtYW4vYWdlbnR4dHJhcC4xLmRlZjoKCiAgIE5FV1M6IGFwcHM6IEFkZCBjb21tYW5kIHRvIHNlbmQgQWdlbnRYIG5vdGlmeSByZXF1ZXN0cyB0byBhCiAgIG1hc3RlciBhZ2VudC4KCjIwMDktMTItMTcgMTY6NDQgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTE3IC0tIGJ1aWxkcyBhZ2FpbiBvbiBXaW5kb3dzIHN5c3RlbXMuCgoyMDA5LTEyLTE3IDE2OjAzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MDMgLyBwYXRjaCAyOTExMzIzICJGaXggYWdlbnQgbG9ja3VwIHdoZW4KICAgbW9uaXRvcmluZwogICBBZ2VudFgtZGVsZWdhdGVkIGluZm9ybWF0aW9uIiAoc3VibWl0dGVkIGJ5IG15c2VsZikuIFRoYXQgcGF0Y2gKICAgZGlkIG5vdCBvbmx5CiAgIGZpeCB0aGUgbG9ja3VwIGJ1dCBhbHNvIG1hZGUgc25tcGQgcHJpbnQgYSB3YXJuaW5nIGR1cmluZyBzdGFydHVwCiAgIHdoZW4KICAgaXF1ZXJ5U2VjTmFtZSB3YXMgbm90IGNvbmZpZ3VyZWQuIFRoaXMgd2FybmluZyB3YXMgcHJpbnRlZCBldmVuCiAgIHdoZW4gbm8KICAgaW50ZXJuYWwgcXVlcmllcyB3ZXJlIHBlcmZvcm1lZC4gVGhpcyB3YXJuaW5nIGlzIG5vdyBvbmx5IHByaW50ZWQKICAganVzdCBiZWZvcmUKICAgdGhlIGZpcnN0IGludGVybmFsIHF1ZXJ5IGlzIG1hZGUgKGR1cmluZyB0aGUgZmlyc3QgY2FsbCBvZgogICBuZXRzbm1wX3F1ZXJ5X2dldF9kZWZhdWx0X3Nlc3Npb24oKSBpbnN0ZWFkIG9mIGR1cmluZyBjcmVhdGlvbiBvZgogICB0aGUgaW50ZXJuYWwKICAgc2Vzc2lvbikuCgoyMDA5LTEyLTE3IDEzOjU1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jOgoKICAgUk1PTiBNSUIgc291cmNlIGNvZGUgY29tcGlsZXMgYWdhaW4gLS0gc2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZAogICBpbiByMTc5MTMuCgoyMDA5LTEyLTE3IDEzOjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTW9kaWZpZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKSBhbmQKICAgQUdVVElMX3N5c191cF90aW1lKCkgc3VjaCB0aGF0IHRoZXNlIGZ1bmN0aW9ucyBub3JtYWxpemUgdGhlCiAgIHR2X3VzZWMgZmllbGQgb2YKICAgc3RydWN0IHRpbWV2YWwgcHJvcGVybHkuIE5vdGU6IHRoaXMgc291cmNlIGNvZGUgbW9kaWZpY2F0aW9uIGRvZXMKICAgbm90IGFmZmVjdAogICB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBhZm9yZW1lbnRpb25lZCB0d28gZnVuY3Rpb25zLgoKMjAwOS0xMi0xNyAxMzoxMSAgYnZhc3NjaGUKCiAgICogbWFuL25ldHNubXBfdXRpbC4zOgoKICAgUmVtb3ZlZCBkb2N1bWVudGF0aW9uIG9mIHRoZSBESUZGVElNRVZBTCgpIG1hY3JvIC0tIHNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3OTEzLgoKMjAwOS0xMi0xNyAxMzowNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENvbnZlcnRlZCBzdGFydHRpbWUgZnJvbSBhIGdsb2JhbCB2YXJpYWJsZSBpbnRvIGEgc3RhdGljIHZhcmlhYmxlCiAgIGFuZCBhcHBsaWVkIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKICAgLSBBZGRlZCB0d28gbmV3IG1hY3JvczogTkVUU05NUF9USU1FUkFERCgpIGFuZAogICBORVRTTk1QX1RJTUVSU1VCKCkuCiAgIC0gQWRkZWQgdGhyZWUgbmV3IGZ1bmN0aW9uczogbmV0c25tcF9nZXRfc3RhcnR0aW1lKCksCiAgIG5ldHNubXBfc2V0X3N0YXJ0dGltZSgpIGFuZCBhdGltZV9oc3VidHJhY3QoKS4KICAgLSBSZXBsYWNlZCBnZXR0aW1lb2ZkYXkoKSArIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBjYWxscyBieSBhIGNhbGwKICAgdG8gbmV0c25tcF9nZXRfYWdlbnRfdXB0aW1lKCkuCiAgIC0gUmVtb3ZlZCB0aGUgbWFjcm8gRElGRlRJTUVWQUwoKSBiZWNhdXNlIGl0IHdhcyBub3QgdXNlZCBpbnNpZGUKICAgdGhlIE5ldC1TTk1QIHByb2plY3QgYW5kIGJlY2F1c2UgaXQgY29udGFpbmVkIGEgYnVnLgogICAtIFJlbW92ZWQgdGhlIGZ1bmN0aW9ucyBjYWxjdWxhdGVfdGltZV9kaWZmKCksIHVhdGltZV9yZWFkeSgpLAogICBtYXJrZXJfdHRpY2tzKCkgYW5kIHRpbWV2YWxfdHRpY2tzKCkuCgoyMDA5LTEyLTE3IDEyOjQ0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBCdWcgZml4OiBhY2NvcmRpbmcgdG8gUkZDIDI1NzEgdGhlIHVuaXQgb2Ygc25tcEVuZ2luZVRpbWUgaXMgb25lCiAgIHNlY29uZCwKICAgbm90IG9uZSBodW5kcmVkdGggb2YgYSBzZWNvbmQuCgoyMDA5LTEyLTE3IDEwOjAzICBkdHMxMgoKICAgKiBtYW4vc25tcHRlc3QuMS5kZWY6CgogICBGaXggdHlwby4KCjIwMDktMTItMTYgMTI6MzAgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3Mtb25seSBidWcgZml4ZXM6CiAgIC0gRml4ZWQgdGhlIHN0cmFuZ2UgYnVpbGQgZXJyb3JzIHRoYXQgb2NjdXJyZWQgd2hlbiBjb21waWxpbmcKICAgbGlibmV0c25tcCBhcyBhIERMTCBhbmQgd2hlbiBlaXRoZXIgPHN0ZGxpYi5oPiBvciA8c3RyaW5nLmg+IHdhcwogICBpbmNsdWRlZCBhZnRlciA8bmV0LXNubXAtY29uZmlnLmg+IGluc3RlYWQgb2YgYmVmb3JlLgogICAtIEZvciBkZWJ1ZyBidWlsZHMgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbywgZml4ZWQgdGhlCiAgIG1pc21hdGNoZXMgYmV0d2VlbiB0aGUgX21hbGxvY19kYmcoKSBjYWxsIGludm9rZWQgYnkgc3RyZHVwKCkgYW5kCiAgIGZyZWUoKS1pbmcgc3RyZHVwKCktZWQgbWVtb3J5IGJ5IGluY2x1ZGluZyB0aGUgPGNydGRiZy5oPiBoZWFkZXIKICAgaW4gdG9vbHMuYyBhbmQgYnkgZGVmaW5pbmcgdGhlIHByZXByb2Nlc3NvciBzeW1ib2wKICAgX0NSVERCR19NQVBfQUxMT0MuIERldGVjdGVkIHZpYSB0aGUgbWVtb3J5IGNoZWNrZXIgaW5jbHVkZWQgaW4KICAgSW50ZWwgUGFyYWxsZWwgU3R1ZGlvLgoKMjAwOS0xMi0xNCAxNzoyMyAgdGFuZGVycwoKICAgKiAgcGVybC9hZ2VudC9hZ2VudC54cywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgc3luYyBkZWZpbml0aW9uIG9mIG5ldHNubXBfdWRwX2FkZHJfcGFpciBpbiBQZXJsIHdpdGggdGhlIGNoYW5nZXMKICAgaW4KICAgcjE3ODU1IGFuZCByMTc5MDgKCjIwMDktMTItMTQgMTM6NTUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIEZpeCBUQ1AgdHJhbnNwb3J0IGJyb2tlbiBieSByZXYuIDE3ODU1IC0gY29waWVzIG9mCiAgIG5ldHNubXBfdWRwX2FkZHJfcGFpciBpbiBzbm1wVENQRG9tYWluLmMgYW5kIHNubXBVRFBEb21haW4uYyBtdXN0CiAgIGJlIHRoZSBzYW1lLgoKMjAwOS0xMi0xMSAxNDo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgQ0hBTkdFUzogc25tcHVzbTogcGF0Y2ggZnJvbSBNYXJ0aW4gQmpvcmtsdW5kIHRvIGFkZCBhIC1DdyBvcHRpb24KICAgdG8gdXNlIGNyZWF0ZUFuZFdhaXQgZm9yIGFnZW50cyB0aGF0IGFyZSBzdHJpY3QgYWJvdXQgbm90CiAgIGFsbG93aW5nIGEgcm93IHRvIGJlIHNldCB0byBhY3RpdmUgdW50aWwgdGhlIGF1dGhlbnRpY2F0aW9uCiAgIHBhc3N3b3JkIGhhcyBiZWVuIGNoYW5nZWQ7IHBsdXMgd2hpdGUtc3BhY2UgY2xlYW4gdXAsIG1hbnVhbAogICBhZGRpdGlvbnMgYW5kIGhlbHAgb3V0cHV0IG1vZGlmaWNhdGlvbnMgYnkgaGFyZGFrZXIKCjIwMDktMTItMTEgMTQ6MzUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBhIGZvcm1hdCBzcGVjaWZpZXIgbWlzbWF0Y2guCgoyMDA5LTEyLTExIDE0OjA2ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgd2luRXh0RExMIGJ1Z3MgZml4ZWQ6CiAgIC0gc3lzVXBUaW1lLjAgZG9lcyBub3cgcmVwb3J0IHRoZSBjb3JyZWN0IHZhbHVlLgogICAtIGEgbGlua1VwIG9yIGxpbmtEb3duIHRyYXAgaXMgbm93IHNlbnQgYWZ0ZXIgdGhlIHN0YXR1cyBvZiBhCiAgIG5ldHdvcmsgaW50ZXJmYWNlCiAgIGhhcyBjaGFuZ2VkLgogICAtIHRoZSB2YWx1ZSBvZiB0aGUgc3lzVXBUaW1lLjAgdmFyYmluZCBpbiBsaW5rVXAgYW5kIGxpbmtEb3duCiAgIHRyYXBzIGlzIG5vdwogICBjb3JyZWN0LgoKMjAwOS0xMi0xMCAxNTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0hFUzogMjkxMTk3MDogUHJvcGVybHkgdGVybWluYXRlIGxpbmtlZCBsaXN0CiAgIG9mIHJlZ2lzdHJhdGlvbnMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1pcmtvIERlY2tlcnQuCgoyMDA5LTEyLTEwIDE1OjQzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjkxMTMyMzogRml4IGFnZW50IGxvY2t1cCB3aGVuCiAgIG1vbml0b3JpbmcgQWdlbnRYLWRlbGVnYXRlZCBpbmZvcm1hdGlvbgoKMjAwOS0xMi0xMCAxMzo1OSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCBNaWNyb3NvZnQncyBpbXBsZW1lbnRhdGlvbiBvZgogICBoclN5c3RlbVVwdGltZS4wLgogICAtIEZpeGVkIGEgZmV3IHR5cG9zLgoKMjAwOS0xMi0xMCAxMzowMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEFkZGVkIG1pc3NpbmcgbmV3bGluZSBpbiBhIGxvZ2dpbmcgc3RhdGVtZW50LgoKMjAwOS0xMi0xMCAxMjo1NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCB0aGUgZm9sbG93aW5nIHdpbkV4dERMTCBidWdzOgogICAtIEZpeGVkIGJ1ZyBpbiB0cmFwIGZvcndhcmRpbmc6IGxpbmtEb3duIHRyYXBzIHdlcmUgc2VudCBhcwogICB3YXJtU3RhcnQgdHJhcHMKICAgYW5kIGxpbmtVcCB0cmFwcyB3ZXJlIHNlbnQgYXMgbGlua0Rvd24gdHJhcHMuCiAgIC0gRml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZXh0ZW5zaW9uIERMTCBsb2FkaW5nLgogICAtIEEgZGVidWcgdHJhY2Ugc3RhdGVtZW50IGlzIG5vdyBpbnZva2VkIHdoZW5ldmVyIGEgc2VyaW91cyBlcnJvcgogICBoYXMgYmVlbgogICBkZXRlY3RlZC4KCjIwMDktMTItMTAgMTI6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgT0lEcyBpbiBkZWJ1ZyBtZXNzYWdlcyBnZW5lcmF0ZWQgYnkgdGhlIHdpbkV4dERMTCBtb2R1bGUgYXJlIG5vdwogICBwcmludGVkIGluCiAgIHN5bWJvbGljIGZvcm0gaW5zdGVhZCBvZiBudW1lcmljIGZvcm0uCgoyMDA5LTEyLTEwIDA4OjU3ICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBQcm9qZWN0IGRlcGVuZGVuY2llcyBzaG91bGQgbm93IHJlYWxseSBiZSBjb3JyZWN0LiBTaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzg3My4KCjIwMDktMTItMTAgMDg6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ2hhbmdlcyAob25seSBzb3VyY2UgY29kZSBjb21tZW50cyBoYXZlIGJlZW4gY2hhbmdlZCk6CiAgIC0gUmVtb3ZlZCBhIG5vdGUgdGhhdCBjb250cmFkaWN0ZWQgdGhlIGluc3RydWN0aW9ucyBpbgogICBSRUFETUUud2luMzIuCiAgIC0gVXBkYXRlZCBidWlsZCBpbnN0cnVjdGlvbnMgYWZ0ZXIgdGhlIGFkZGl0aW9uIG9mIHRoZSBmaWxlCiAgIHdpbjMyL1NubXAtd2luRXh0RExMLmggaW4gcjE3ODMwLgoKMjAwOS0xMi0xMCAwODoxNyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wc3RhdHVzLmM6CgogICBNYWRlIGZpbGUgaGVhZGVyIGNvbW1lbnRzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZGVzY3JpcHRpb25zIGluIHRoZQogICByZXNwZWN0aXZlIG1hbiBwYWdlcy4KCjIwMDktMTItMTAgMDM6MDQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWdlbnRfc3lzT1JfY2FsbGJhY2sgd29uJ3QgdHJpZ2dlciBhIHdhcm5pbmcgd2hlbgogICByZWdpc3RlcmVkIGFzIGEgY2FsbGJhY2suIENoYW5nZSBhZ2VudHhfcmVvcGVuX3N5c09SVGFibGUgaW4KICAgb3JkZXIgdG8gYXZvaWQgd2FybmluZ3Mgb2YgY29uc3QgcmVtb3ZhbC4KCjIwMDktMTItMDkgMTU6MDUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIE1vdmVkIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgdmFyaWFibGUgJ25ld2xpbmUnIGluc2lkZSB0aGUKICAgZnVuY3Rpb24KICAgbG9nX2hhbmRsZXJfc3Rkb3V0ZXJyKCkgYmVjYXVzZSB0aGlzIHZhcmlhYmxlIGlzIG9ubHkgdXNlZCBieQogICB0aGF0IGZ1bmN0aW9uLgogICAtIERvY3VtZW50ZWQgdGhlIHB1cnBvc2Ugb2YgdGhlIHZhcmlhYmxlICduZXdsaW5lJy4KICAgLSBCdWcgZml4OiBtYWRlIHN1cmUgdGhhdCB0aGUgY2FsbCBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoKSBkb2VzCiAgIG5vdCB0cmlnZ2VyIGFuCiAgIGludmFsaWQgbWVtb3J5IGFjY2VzcyAoc3RyWy0xXSkgd2hlbiBhbiBlbXB0eSBzdHJpbmcgaXMgcGFzc2VkIHRvCiAgIHRoaXMgZnVuY3Rpb24uCgoyMDA5LTEyLTA5IDE0OjM3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgc3VwcG9ydCBvZiBuZXR3b3JrIGludGVyZmFjZXMgd2l0aCBIVyBhZGRyZXNzCiAgIGJpZ2dlciB0aGFuIDYgYnl0ZXMgdG8gaXBOZXRUb01lZGlhVGFibGUgYW5kCiAgIGlwTmV0VG9QaHlzaWNhbFRhYmxlLgogICBTb21lIEhXLCBsaWtlIEluZmluaUJhbmQsIHVzZXMgSFcgYWRkcmVzc2VzIHdpdGggOSBhbmQgbW9yZQogICBieXRlcy4gU25tcGQgb24gTGludXggd2FzIG5vdCBhYmxlIHRvIHBhcnNlIC9wcm9jL25ldC9hcnAgdGhlbgogICBhbmQgcHJvZHVjZWQgdWdseSAnaW9jdGwgMzUxMjMgcmV0dXJuZWQgLTEnIHRvIGxvZy4KCjIwMDktMTItMDkgMTI6MjcgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIG1pc3NpbmcgLUxvIGluIGEgY29tbWFuZCBsaW5lIGV4YW1wbGUuCgoyMDA5LTEyLTA5IDEyOjE2ICBidmFzc2NoZQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICBBZGRlZCBzbm1wYXBpLmxpYiB0byB0aGUgbGlua2VyIGlucHV0IGxpc3Qgb2Ygc25tcGQuZXhlLgogICBBcHBhcmVudGx5IFZpc3VhbAogICBTdHVkaW8gMjAwNSBhbmQgMjAwOCBuZWVkIHRoaXMgbGlicmFyeSBpbiB0aGUgbGlua2VyIGlucHV0IGxpc3QKICAgd2hlbiBsaW5raW5nCiAgIHRoZSBleGUsIHdoaWxlIGZvciBWaXN1YWwgU3R1ZGlvIDYgaXQgaXMgc3VmZmljaWVudCB3aGVuIHRoaXMKICAgbGlicmFyeSBpcwogICBwcmVzZW50IGluIHRoZSBsaW5rZXIgaW5wdXQgbGlzdCBvZiBuZXRzbm1wbWlicy5saWIuCgoyMDA5LTEyLTA5IDA4OjQ1ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGVkIFJFQURNRS53aW4zMjogYmVjYXVzZSBvZiByMTc4ODQgYW5kIHIxNzg3MywgdGhlIGJ1aWxkCiAgIHByb2Nlc3MgYmVjYW1lIHNpbXBsZXIuCgoyMDA5LTEyLTA5IDA4OjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEV4cG9ydCBzdHJ0b3VsbCAtLSBzaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIGluIHIxNzg4Ni4KCjIwMDktMTItMDkgMDg6MjEgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJldmVydGVkIHIxNzcwMCBmb3IgUkVBRE1FLndpbjMyOiBiZWNhdXNlIG9mIHIxNzg4NiwgbW9kaWZ5aW5nCiAgIHRoZQogICBzdHJ0b3VsbCBsaW5lIGluIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmIGlzIG5vIGxvbmdlcgogICBuZWNlc3NhcnkuCgoyMDA5LTEyLTA5IDA4OjEyICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgCiAgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3M6IHN3aXRjaGVkIGZyb20gX3N0cnRvdWk2NCgpIHRvIHN0cnRvdWxsKCkgZm9yIE1pY3Jvc29mdAogICBWaXN1YWwgU3R1ZGlvCiAgIDIwMDIgYW5kIGxhdGVyIGJlY2F1c2UgdGhlIGZvcm1lciBpcyBub3QgZnVsbHkgUE9TSVggY29tcGxpYW50LgogICBUaGUgc3RydG91bGwoKQogICB1bml0IHRlc3QgcHJvZHVjZXMgdGhlIGZvbGxvd2luZyBvdXRwdXQgZm9yIF9zdHJ0b3VpNjQoKSB3aXRoCiAgIE1TVkMgMjAwODoKICAgdGVzdCAxNCBmYWlsZWQgKGlucHV0ICIweCIpOiBleHBlY3RlZCBlbmQgMSwgZ290IGVuZCAwCiAgIHRlc3QgMTYgZmFpbGVkIChpbnB1dCAiMHgiKTogZXhwZWN0ZWQgZW5kIDEsIGdvdCBlbmQgMAoKMjAwOS0xMi0wOCAyMTo1NCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6IE1ha2Ugc3VyZSB0aGF0IGEgbWFzayBpcyBnaXZlbiB0byBvcGVuCiAgIHdoZW4gT19DUkVBVCBpcyBzcGVjaWZpZWQKCjIwMDktMTItMDggMTY6MjAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIE1hZGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gZXhlJ3MgYW5kIGxpYidzIGV4cGxpY2l0IHN1Y2ggdGhhdAogICBWaXN1YWwKICAgU3R1ZGlvIGNhbiBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgYnVpbGQgb3JkZXIgaW5zdGVhZCBvZiB0aGUgdXNlcgogICBoYXZpbmcKICAgdG8gZmlndXJlIHRoaXMgb3V0LgoKMjAwOS0xMi0wOCAxNTo0NyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBVbml4IHN5c3RlbXMgKGZpeGVkIGEgdHlwbyBpbnRyb2R1Y2VkIGluIHIxNzg4MSkuCgoyMDA5LTEyLTA4IDE1OjM3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBBZGRlZCBtaXNzaW5nICNkZWZpbmUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsuIFdpdGhvdXQgdGhpcwogICBkZWZpbmUgdGhlIE1pY3Jvc29mdAogICBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIGJlbmlnbiByZWRlZmluaXRpb24gb2YKICAgdHlwZSBzb2NrbGVuX3QuCgoyMDA5LTEyLTA4IDE1OjI4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENsZWFuZWQgdXAgdGhlIGNvZGUgZm9yIHNldHRpbmcgbGluZSBidWZmZXJpbmc6CiAgIC0gSW5zdGVhZCBvZiBoYXZpbmcgY2FsbHMgdG8gc2V0dmJ1ZigpIGluIG11bHRpcGxlIGZpbGVzLCB0aGVyZQogICBpcyBub3cgb25lIGNhbGwKICAgdG8gc2V0dmJ1ZigpIGZyb20gdGhlIG5ldyBmdW5jdGlvbiBuZXRzbm1wX3NldF9maWxlbG9nLiBUaGVzZQogICBzb3VyY2UgZmlsZXMKICAgYXJlOiBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0YWJsZS5jCiAgIGFuZCBhZ2VudFxtaWJncm91cFxkaXNtYW5cdHJhY2Vyb3V0ZVx0cmFjZVJvdXRlQ3RsVGFibGUuYy4KICAgLSBVc2luZyAtTG8gLyAtTGUgZG9lcyBub3cgZW5hYmxlIGxpbmUgYnVmZmVyaW5nIGZvciBzdGRvdXQgLwogICBzdGRlcnIgcmVzcGVjdGl2ZWx5LgogICAtIFJlbW92ZWQgY29kZSBpbiBzbm1wZC5jIGFuZCBzbm1wdHJhcGQuYyBmb3Igc2V0dGluZyBsaW5lCiAgIGJ1ZmZlcmluZyBvbiBzdGRvdXQKICAgc2luY2Ugc2V0dGluZyBsaW5lIGJ1ZmZlcmluZyBvbiBzdGRvdXQgaXMgbm93IHRyaWdnZXJlZCBieSB0aGUKICAgY29tbWFuZC1saW5lCiAgIG9wdGlvbiAtTG8uCiAgIEJ1Z3MgZml4ZWQ6CiAgIC0gTGluZSBidWZmZXJpbmcgbW9kZSBpcyBub3cgYWxzbyBzZXQgZm9yIHN0ZGVyciB3aGVuIHRoZQogICBjb21tYW5kLWxpbmUgb3B0aW9uCiAgIC1MZSBoYXMgYmVlbiBzcGVjaWZpZWQuCiAgIC0gTGluZSBidWZmZXJpbmcgbW9kZSBpcyBub3cgc2V0IGNvcnJlY3RseSBmb3Igc3Rkb3V0IG9uIFdpbmRvd3MKICAgc3lzdGVtcwogICAoY29tbWFuZC1saW5lIG9wdGlvbiAtTG8pLgoKMjAwOS0xMi0wOCAxMjozMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGxvY2FsIHZhcmlhYmxlcyB0aGF0IHdlcmUgZGVmaW5lZAogICBidXQKICAgbm90IHVzZWQgYnkgb25seSBlbmFibGluZyB0aGUgbG9jYWwgdmFyaWFibGUgZGVmaW5pdGlvbnMgb24gdGhlCiAgIHBsYXRmb3JtIHRoYXQgdXNlcyB0aGVzZSB2YXJpYWJsZXMgKExpbnV4KS4KCjIwMDktMTItMDggMTI6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIEFkZGVkICNpbmNsdWRlICJtaWJncm91cC91dGlsX2Z1bmNzLmgiLiBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA5LTEyLTA4IDEyOjI1ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIEluY2x1ZGUgdGhlIGdldGhvc3RlbnQoKSAvIHNldGhvc3RlbnQoKSBkZWNsYXJhdGlvbnMgYmVmb3JlIHVzaW5nCiAgIHRoZXNlCiAgIGZ1bmN0aW9ucy4gRml4ZXMgYSBjb21waWxlciB3YXJuaW5nIG9uIFdpbmRvd3Mgc3lzdGVtcy4KCjIwMDktMTItMDggMTI6MTEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGaXhlZCBhbiBpbmNvbnNpc3RlbmN5ICh3aGljaCBpcyBhbGxvd2VkIGJ5IHRoZSBBTlNJIEMgc3RhbmRhcmQpCiAgIGJldHdlZW4KICAgZnVuY3Rpb24gZGVjbGFyYXRpb24gYW5kIGZ1bmN0aW9uIGRlZmluaXRpb24gb2YKICAgbmV0c25tcF9hZGRfZ2xvYmFsX3RyYXBoYW5kbGVyIGFuZAogICBuZXRzbm1wX2FkZF9kZWZhdWx0X3RyYXBoYW5kbGVyIHN1Y2gKICAgdGhhdCB0aGUgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gY29tcGlsZXIgZG9lcyBubyBsb25nZXIgY29tcGxhaW4KICAgYWJvdXQKICAgdGhpcy4KCjIwMDktMTItMDggMTI6MDggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdAogICBjb21wbGFpbiBhYm91dCBpbXBsaWNpdGx5IGNhc3RpbmcgYXdheSBjb25zdG5lc3MuCgoyMDA5LTEyLTA4IDEyOjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE9ubHkgY29tcGlsZSB0aGUgd2luRXh0RExMIHNvdXJjZSBjb2RlIGlmIHRoZSBwcmVwcm9jZXNzb3IgbWFjcm8KICAgVVNJTkdfV0lORVhURExMX01PRFVMRSBoYXMgYmVlbiBkZWZpbmVkLgoKMjAwOS0xMi0wOCAxMjowMyAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIEFkZGVkIG1pc3NpbmcgI2RlZmluZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESy4KCjIwMDktMTItMDggMTI6MDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIE1hZGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gZXhlJ3MgYW5kIGxpYidzIGV4cGxpY2l0IHN1Y2ggdGhhdAogICBWaXN1YWwKICAgU3R1ZGlvIGNhbiBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgYnVpbGQgb3JkZXIgaW5zdGVhZCBvZiB0aGUgdXNlcgogICBoYXZpbmcKICAgdG8gZmlndXJlIG91dCB0aGUgYnVpbGQgb3JkZXIuCgoyMDA5LTEyLTA4IDA5OjQ2ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93cyAvIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvOiBkaXNhYmxlZCB0aGUgY29tcGlsZXIgd2FybmluZwogICBhYm91dAogICBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2hlcyAoNDAxOCkgYmVjYXVzZSB0aGlzIHdhcm5pbmcgZG9lcyBub3QKICAgeWllbGQKICAgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbi4KCjIwMDktMTItMDggMDk6MTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTc2MzkgKHBhdGNoIDI3ODA0MTEgLS0gZml4IGNvbXBpbGVyIHdhcm5pbmdzKToKICAgYXBwbGllZAogICB0aGlzIHBhdGNoIHRvIG5ldC1zbm1wLWNvbmZpZy5oLmluIHRvbyBzdWNoIHRoYXQKICAgbmV0LXNubXAtY29uZmlnLmggYW5kCiAgIG5ldC1zbm1wLWNvbmZpZy5oLmluIG1hdGNoIGFnYWluLgoKMjAwOS0xMi0wOCAwODoxNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBNYWRlIHN1cmUgdGhhdCBhZ2VudHhfc3lzT1JfY2FsbGJhY2soKSBkb2VzIG5vdCB0cmlnZ2VyIGEKICAgY29tcGlsZXIKICAgd2FybmluZyB3aGVuIHRoZSB0aGlyZCBhcmd1bWVudCBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBoYXMgYmVlbgogICBkZWNsYXJlZCBjb25zdC4KCjIwMDktMTItMDggMDg6MTQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIENoYW5nZWQgdGhlIHJldHVybiB0eXBlIG9mIHN0cnRvdWxsKCkgZnJvbSAndW5zaWduZWQgbG9uZyBsb25nJwogICAod2hpY2gKICAgaXMgbm90IHZhbGlkIEM4OSkgdG8gJ3VpbnQ2NF90JyAoZGVjbGFyZWQgaW4KICAgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPikuCiAgIFRoaXMgY2hhbmdlIG1ha2VzIHRoZSBOZXQtU05NUCBzb3VyY2UgY29kZSBjb21waWxlIGFnYWluIHdpdGgKICAgTVNWQyA2LjAuCgoyMDA5LTEyLTA3IDEwOjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgVHdlYWsgbWlzc2luZyBzdWJpZGVudGlmaWVyIHByb2Nlc3NpbmcgdG8gYmUgbW9yZSB0eXBlLWF3YXJlLgogICAoQW4gaXNzdWUgd2l0aCBBSVgsIGF0IGxlYXN0KQoKMjAwOS0xMi0wNiAxODozOCAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IE1ha2UgdGhlIGxpc3RzIG9mIGNvbTJTZWMqRW50cmllcyBzdGF0aWMKCjIwMDktMTItMDYgMTg6MzQgIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBNYWtlIHRoZSBpdGVyYXRvciB2YXJpYWJsZSBpbiBuZXRzbm1wXypfZ2V0U2VjTmFtZSBjb25zdAoKMjAwOS0xMi0wNiAxODoyOSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IENoYW5nZSB0aGUgdHlwZXMgb2YgdGhlIHJldHVybiB2YWx1ZXMgb2YKICAgbmV0c25tcF8qX2dldFNlY05hbWUgZnJvbSBjaGFyKiB0byBjb25zdCBjaGFyKiBzaW5jZSB0aGV5IHBvaW50CiAgIGludG8gaW50ZXJuYWwgc3RydWN0dXJlcy4KCjIwMDktMTItMDUgMjA6MTkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgZml4IGRlY2xhcmF0aW9uIG9mIHN0cnRvdWxsCgoyMDA5LTEyLTA1IDE3OjQyICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgY2FsbCBuZXRzbm1wX3JlYWRfbW9kdWxlIGluc3RlYWQgb2YgcmVhZF9tb2R1bGUgdG8gbWFrZSBpdAogICBjb21waWxlIHdpdGgKICAgTkVUU05NUF9DTEVBTl9OQU1FU1BBQ0UKCjIwMDktMTItMDIgMTU6MzkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGludmFsaWQgYWNjZXNzIHRvIG1lbW9yeSBpbiBUQ1AtTUlCCiAgIFRoaXMgcGFydGx5IHJldmVydHMgcGF0Y2ggMTc3MTkgLSB0aGUgZW50cmllcyAqYXJlKiB1c2VkIGFmdGVyCiAgIHJhd19kYXRhIGNvbnRhaW5lciBpcyBmcmVlZC4gVGhlc2UgZW50cmllcyBzaG91bGQgYmUgZnJlZWQgd2hlbgogICBhc3NvY2lhdGVkIHJvd3JlcV9jdHggaXMgZnJlZWQuCgoyMDA5LTEyLTAyIDA4OjMwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCB1ZHBUYWJsZSBpbmRleGVzIG9uIGJpZy1lbmRpYW4gNjRiaXQgTGludXguCiAgIFRoZSBpbmRleCB3YXMgYWx3YXlzICcwLjAuMC4wJyBpbnN0ZWFkIG9mIHJlYWwgbG9jYWwgSVAgYWRkcmVzcy4KCjIwMDktMTItMDEgMTI6MzYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFVwZGF0ZSBhIHJlZHVuZGFudCAoYW5kIHByb2JhYmx5IGluYWNjdXJhdGUpIGNvbW1lbnQuCgoyMDA5LTEyLTAxIDEyOjMxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjgyMjM2MDogRml4IG1lbW9yeSBsZWFrIHdoZW4gYnVpbGRpbmcKICAgdGFibGUgT0lEcwoKMjAwOS0xMi0wMSAxMjowOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXB0YWJsZTogQlVHUzogMjgzNzk5ODogSGFuZGxlIG1pc3NpbmcgaW5zdGFuY2UKICAgc3ViaWRlbnRpZmllcnMgaW4gcmVzdWx0cwoKMjAwOS0xMi0wMSAxMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4NDEwMDg6IFByb3RlY3QgYWdhaW5zdCBjcmFzaCBmb2xsb3dpbmcKICAgZmFpbGVkIEFnZW50WCByZXNwb25zZQoKMjAwOS0xMi0wMSAwNzozNCAganNhZnJhbmVrCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4IHJlc3BvbmRpbmcgdG8gYnJvYWRjYXN0IHJlcXVlc3RzLgogICBVRFAgcmVzcG9uc2VzIGFyZSBzZW50IHdpdGggc291cmNlIElQIGFkZHJlc3Mgd2hpY2ggd2FzCiAgIGRlc3RpbmF0aW9uIG9mCiAgIGFwcHJvcHJpYXRlIHJlcXVlc3RzIChpbXBsZW1lbnRlZCBpbiBTVk4gcmV2LiAxNTIxNSkuIEJ1dCBpZiB0aGUKICAgZGVzdGluYXRpb24KICAgb2YgYSByZXF1ZXN0IGlzIGJyb2FkY2FzdCBJUCBhZGRyZXNzLCB0aGUgcmVxdWVzdCB3YXMgc2VudCB3aXRoCiAgIHRoZSBicm9hZGNhc3QKICAgYWRkcmVzcyBhcyBzb3VyY2UuIHNlbmRtc2coKSBvbiBMaW51eCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYW5kCiAgIHJldHVybnMgZXJyb3IKICAgLT4gcmVzcG9uc2UgaXMgbm90IHNlbnQuIEluIG9yZGVyIHRvIHNlbmQgcmVzcG9uc2VzIGZyb20gdGhlIHNhbWUKICAgaW50ZXJmYWNlLAogICBpbnRlcmZhY2UgaW5kZXggb2YgdGhlIGFwcHJvcHJpYXRlIGludGVyZmFjZSBtdXN0IGJlIHVzZWQuCgoyMDA5LTEyLTAxIDAwOjI5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5IGNvbXBpbGUgYWZ0ZXIgMTc4NTIuCgoyMDA5LTEyLTAxIDAwOjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5IGNvbXBpbGUgYWZ0ZXIgMTc4NDIuCgoyMDA5LTExLTMwIDE2OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg3Mzg1ODogRml4IGhhbmRsaW5nIG9mIHNjaGVkT3duZXIgaW5kZXguCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1heCBTY2h1YmVydC4KCjIwMDktMTEtMzAgMTY6NDYgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUdTOiAyODg4NTY5OiBGaXggZ2VuZXJhdGlvbiBvZiB0YWJsZSBjb2x1bW5zCiAgIGFycmF5CgoyMDA5LTExLTMwIDE2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg5NDA1OTogSGFuZGxlIGVycm9ycyB3aGVuIGNvdW50aW5nCiAgIGludGVyZmFjZXMKCjIwMDktMTEtMzAgMTY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVRzogMjg5NzAwMDogU3VwcHJlc3MgMzItYml0IGNvdW50ZXIgdHJ1bmNhdGlvbgogICB3YXJuaW5ncy4KCjIwMDktMTEtMzAgMTU6MzQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjkwMzA5MjogRml4IGJyb2tlbiBoYW5kbGluZyBvZiBicm9hZGNhc3QKICAgZW50cmllcy4KCjIwMDktMTEtMzAgMTU6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTAxMDI5OiBGaXggY29tcGlsZXIgd2FybmluZyBvbgogICBDbG9zZUhhbmRsZSgpCiAgIEVuZGlhbiBwcm9ibGVtcyBhbHJlYWR5IGFkZHJlc3NlZCBieSBwYXRjaCAjMjgzNTU3NgoKMjAwOS0xMS0zMCAxNToxMyAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyODkwOTMxOiBCZXR0ZXIgaGFuZGxpbmcgb2YgQ291bnRlcjY0CiAgIHZhbHVlcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWF4IFJvbWFub3YuCgoyMDA5LTExLTMwIDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4NzgxNjogUHJvdGVjdCBhZ2FpbnN0IGRpdmlzaW9uLWJ5LXplcm8KICAgY3Jhc2gKCjIwMDktMTEtMzAgMTU6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzIyMDogRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIHdoZW4KICAgaWZYVGFibGUgaXMgbm90IGluY2x1ZGVkLgoKMjAwOS0xMS0zMCAxNDo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzE1NTogRml4IG1lbW9yeSBsZWFrIGluIHByb3h5CiAgIGhhbmRsaW5nLgogICBQYXRjaCBzdXBwbGllZCBieSBHb3d0aGFtIFRob21tYW5kcmEuCgoyMDA5LTExLTMwIDE0OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMDkyOiBTdXBwb3J0IG1vbml0b3JpbmcgcHJvY2Vzc2VzIHRoYXQKICAgc2hvdWxkIG5vdCBiZSBydW5uaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBDaHJpc3RpYW4gKGNnNzUpLgogICAKICAgUW46IFNob3VsZCB0aGlzIGZ1bmN0aW9uYWxpdHkgYmUgYmFjay1wb3J0ZWQgdG8gZWFybGllciBsaW5lcz8KCjIwMDktMTEtMzAgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODc3NTE4OiBGaXggaGFuZGxpbmcgb2Ygc2NvcGVkIEFnZW50WAogICB2YXJpYWJsZXMKCjIwMDktMTEtMzAgMTQ6MDEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODM1NTc2OiBGaXggZW5kaWFubmVzcyBpc3N1ZXMgaW4KICAgcGFzcy9wYXNzX3BlcnNpc3QKCjIwMDktMTEtMjcgMDg6NTQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jOgoKICAgUmVtb3ZlIGV4ZWN1dGFibGUgYXR0cmlidXRlIGZyb20gc291cmNlIGZpbGVzLgoKMjAwOS0xMS0yNSAyMDozNSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBsb2NhbC9taWIyYy5ub3RpZnkuY29uZjoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIGFsbCB0aGUgb2lkcyBhbmQgb2lkIGxlbmd0aHMgaW4gYWdlbnRfdHJhcC5jCiAgIGNvbnN0IGFuZCB1c2UgdGhlbSBmcm9tIGV2ZXJ5d2hlcmUuCgoyMDA5LTExLTI1IDIwOjI3ICBtYWdmcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogSW5zdGFsbCBsaWJyYXJ5L29pZC5oLiBUaGFua3MgdG8gIlRvbWFzeiBMaXMiCiAgIHdobyBzcG90dGVkIHRoZSBidWcuCgoyMDA5LTExLTI1IDA5OjQ3ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBDb21tZW50LW9ubHkgY2hhbmdlOiBjaGFuZ2VkIHRoZSBuYW1lIGluIHRoZSBmaWxlIGhlYWRlciBmcm9tCiAgIHRlc3RoYW5kbGVyLmgKICAgdG8gaW5zdGFuY2UuaCBzdWNoIHRoYXQgaXQgbm93IG1hdGNoZXMgdGhlIGZpbGVuYW1lLgoKMjAwOS0xMS0yNCAwNzo0OSAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3QKCjIwMDktMTEtMjMgMDc6MDcgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgZW50ZXJwcmlzZSBhcmd1bWVudCBvZgogICBuZXRzbm1wX3NlbmRfdHJhcHMgYW5kIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgY29uc3QKCjIwMDktMTEtMjMgMDc6MDIgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHRoZSBuYW1lIGFyZ3VtZW50IHRvIGZpbmRfdmFyYmluZF9pbl9saXN0CiAgIGNvbnN0CgoyMDA5LTExLTIyIDIzOjI1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgUmVtb3ZlIHNvbWUgbG9jYWwgcmVkZWNsYXJhdGlvbnMgb2YgZnVuY3Rpb25zCgoyMDA5LTExLTIyIDAxOjAzICBtYWdmcgoKICAgKiAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmcsIFdpbjMyOiBSZW1vdmUgYSBmZXcgdW51c2VkIGNvbmZpZ3VyZSBzeW1ib2xzCgoyMDA5LTExLTIxIDA4OjAxICBidmFzc2NoZQoKICAgKiB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLCB3aW4zMi9zbm1wLXdpbmV4dGRsbC5oOgoKICAgUmVwbGFjZWQgYW4gYWNjaWRlbnRhbGx5IGNvbW1pdHRlZCBmaWxlIGJ5IHRoZSBwcm9wZXIgY29udGVudHMuCgoyMDA5LTExLTIwIDE2OjI5ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIFJldmVydGVkIGFjY2lkZW50YWxseSBtZXJnZWQgY2hhbmdlcy4KCjIwMDktMTEtMjAgMTY6MjYgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9zbm1wLXdpbmV4dGRsbC5oOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAwOS0xMS0yMCAxNjoxOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgICAKICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTcGVsbGluZyBmaXggaW4gQyBzb3VyY2UgY29kZSBjb21tZW50czogcmVwbGFjZWQgJ3JldHJpdmFsJyBieQogICAncmV0cmlldmFsJy4KCjIwMDktMTEtMjAgMTY6MTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgYSBuYW1pbmcgaW5jb25zaXN0ZW5jeTogcmVwbGFjZWQgdHdvIG9jY3VycmVuY2VzIHdpbkV4dERsbAogICBieSB3aW5FeHRETEwgaW4gc291cmNlIGNvZGUgY29tbWVudHMuCgoyMDA5LTExLTE5IDIyOjUyICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyOTAwMDc4OiBBZGQgc3VwcG9ydCBmb3IgT0lEIHZhcmlhYmxlcyB3aXRoCiAgIHNpemUgaW4gZWxlbWVudHMgaW5zdGVhZCBvZiBieXRlcywgY29ycmVjdCBzeXNPYmplY3RJRCB0byB1c2UKICAgdGhpcy4KCjIwMDktMTEtMTMgMTI6NTkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBsb2dnaW5nIG9mICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMgogICBiaXRzJyBpbiBJUC1NSUIgYW5kIFRDUC1NSUIKICAgVGhlIGNvdW50ZXJzLCB3aGljaCBncm93IGZhc3QgYXJlIG5vdyBjdXQgdG8gMzJiaXRzLgoKMjAwOS0xMS0xMiAwODoyNiAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFVzZSBiaWcgcHJpbnRmJ3MgaW5zdGVhZCBvZiBtYW55IHNtYWxsIG9uZXMgdG8gc2F2ZSBhIGZldyBodW5kcmVkCiAgIGJ5dGVzIG9uIHRoZSBmaW5hbCBleGVjdXRhYmxlIHNpemUuCgoyMDA5LTExLTEyIDAyOjI0ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL3N0cmxjcHkuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvbC5jLCAgIAogICAgICBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBBQ19SRVBMQUNFX0ZVTkNTIHRvIGhhbmRsZSBjb2RlIHRoYXQgaXMKICAgbWlzc2luZyBvbiBzb21lIHBsYXRmb3Jtcy4KCjIwMDktMTEtMTEgMDk6MDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IGNhY2hlIGZyZWUgcm91dGluZSB0byBtYXRjaCBoZWFkZXIgZGVjbGFyYXRpb24uCiAgIFJldHVybiBzdWNjZXNzL2ZhaWx1cmUgdmFsdWVzIGZyb20gY2FjaGUgbG9hZCByb3V0aW5lLgogICBQcm9ibGVtIGlkZW50aWZpZWQgYnkgWHVhbi4KCjIwMDktMTAtMzAgMDk6NTEgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgsICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIE5FV1M6IHNubXBsaWI6IFJldmVydCAxNzgwOCwgaW5zdGVhZCBmYWN0b3Igb3V0IHRoZSBkZWNsYXJhdGlvbgogICBvZiBvaWQgdG8gaXQncyBvd24gZmlsZSBhbmQgaW5jbHVkZSB0aGF0IGZpbGUgZnJvbSBib3RoIHR5cGVzLmgKICAgYW5kIGFzbjEuaAoKMjAwOS0xMC0zMCAwODoyOCAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgIAogICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdXNtLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBzbm1wbmV0c3RhdDogQWRkIGNvcnJlY3Qgc2l6ZSBwcmVmaXhlcwogICB3aGVuIHByaW50aW5nIHZhcmlhYmxlcyBvZiB0eXBlIG9pZC4KCjIwMDktMTAtMzAgMDg6MDcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSBvaWQgdG8gYmUgYSAzMi1iaXQgdHlwZSBvbiBJTFA2NCBhbmQKICAgTFA2NCBwbGF0Zm9ybXMuCgoyMDA5LTEwLTMwIDA4OjA1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlIHRoZSBvaWQgdHlwZWRlZiBmcm9tCiAgIDxuZXQtc25tcC9saWJyYXJ5L2FzbjEuaD4uIEl0IGlzIHN0aWxsIHByZXNlbnQgaW4KICAgPG5ldC1zbm1wL3R5cGVzLmg+LCB1c2UgdGhhdCBmaWxlLgoKMjAwOS0xMC0yOCAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBkb24ndCByZXF1aXJlIHN1YmFnZW50X2luaXQoKSBpZiBub3Qgb25seSBidWlsZGluZyBtYXN0ZXIgYWdlbnQKICAgY29kZQoKMjAwOS0xMC0yNyAwNjo0NCAgbWFnZnIKCiAgICogIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwgICAKICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5yb3cuY29uZiwgbG9jYWwvbWliMmMuc2NhbGFyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMgdG8gdV9jaGFyKgoKMjAwOS0xMC0xNCAyMzoxMiAgbWFnZnIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbgogICBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KCjIwMDktMTAtMTIgMjA6MjggIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIHJwIHZhcmlhYmxlIHRvIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBvbmUuCgoyMDA5LTEwLTA5IDEyOjM4ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6Mjg3MTc0NzogcGx1ZyBtZW1vcnkgbGVhayBpbiBPSUQKICAgcHJvY2Vzc2luZy4KICAgVGhlIG1lbW9yeSBsZWFrZWQgd2hlbiBzbWFsbCBPSUQsIHdoaWNoIGNvdWxkIGZpdCBwcmUtYWxsb2NhdGVkCiAgIHZwLT5uYW1lX2xvYywgd2FzIHBsYWNlZCBpbiBkaWZmZXJlbnQgKGFsbG9jYXRlZCkgb25lLgoKMjAwOS0xMC0wOSAwNTozMSAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogQlVHOiAyODM4MjQzOiBDb3JyZWN0IHRoZSBvdXRwdXQgb2YgdW5zaWduZWQgdmFsdWVzLgogICBUaGFua3MgdG8gSmFjayBIdWFuZyBvZiBRdWFsY29tbSB3aG8gcG9pbnRlZCBvdXQgdGhpcyBidWcuCgoyMDA5LTEwLTA5IDA1OjAwICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2UgdGhlIHBhcnNpbmcgb2YgcmFuZ2VzIHRvIGFjY2VwdCBhbGwKICAgdmFsaWQgdmFsdWVzLgoKMjAwOS0xMC0wNyAyMjoyNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IG1pc2M6IFBBVENIOiAyODM2MTEyOiBVc2UgdGhlIHJpZ2h0IG1vZGlmaWVyIHdoZW4KICAgcHJpbnRpbmcgc2l6ZV90IGFuZCBzc2l6ZV90IHZhcmlhYmxlcy4KCjIwMDktMTAtMDcgMTI6NTAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBjcmVhdGlvbiBvZiB2aWV3cyB1c2luZyBzbm1wdXNtLCBPSURzIHdpdGgKICAgaW5kZXhlcyA+IDI1NSBhcmUgYWxsb3dlZCBub3cuCiAgIFRoaXMgcmV2ZXJ0cyBTVk4gY29tbWl0ICM3NDkyLgoKMjAwOS0xMC0wNSAxOToxOSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgdGhlIHNwZWxsaW5nIG9mIF9fY3BsdXNwbHVzIHdoZW4KICAgY2hlY2tpbmcgaWYgdGhlIGZpbGUgc2hvdWxkIGJlIHdyYXBwZWQgaW4gZXh0ZXJuICJDIi4KCjIwMDktMTAtMDUgMDY6MTMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIENIQU5HRVM6IHNubXB3YWxrOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiB0aGUgZW5kIG9pZCBpcyBsb25nZXIKICAgdGhhbiB0aGUgY3VycmVudCBvaWQgY29ycmVjdGx5CgoyMDA5LTA5LTMwIDEwOjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUHJvdGVjdCBhZ2FpbnN0IG1pc3NpbmcgcGFja2FnZSB2ZXJzaW9uCiAgIGluZm9ybWF0aW9uIGNyYXNoaW5nIHRoZSBhZ2VudC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBJbnlhdmVuIFNha2FyYWkuCgoyMDA5LTA5LTI3IDE0OjU5ICBhbGV4X2IKCiAgICogIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsICAgCiAgICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9tYW5kaXIyaHRtbDoKCiAgIFdpbjMyOiBCaW5hcnkgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFuZCBzY3JpcHQgdXBkYXRlcy4KCjIwMDktMDktMjQgMDA6MDggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wOS0yMyAyMzo1NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMjMgMjM6NDIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDktMjMgMjM6NDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIHJlbW92ZSBTVk4gYnJhbmNoIHdvcmRpbmcKCjIwMDktMDktMjMgMjM6MzYgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIHByb3BlciBwcm9qZWN0IGNhcGl0YWxpemF0aW9uCgoyMDA5LTA5LTIzIDIzOjM1ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDktMjMgMjM6MzAgIGhhcmRha2VyCgogICAqIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTIyIDIxOjUxICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IHR5cG9zCgoyMDA5LTA5LTE0IDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDktMTQgMjI6NDggIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjM5ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA5LTE0IDIyOjM2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWMsIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCAgIAogICAgICBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjoxOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLmFpeCwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaDoKCiAgIFBhdGNoIGZyb20gbWFnZnIgZm9yIDUuNSBzcGVjaWZpYyBhaXggYnVpbGQgZml4ZXMKCjIwMDktMDktMDIgMDc6MTIgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiByZW5hbWUgTUlCIG1hY3JvIHRvIE5FVFNOTVBfTUlCMl9PSUQsIE1JQiBpcwogICB0b28gZ2VuZXJpYyBhbmQgbWF5IGNvbmZsaWN0IHdpdGggYXBwbGljYXRpb25zLgogICAKICAgVGhlIG9sZCBNSUIgbWFjcm8gaXMga2VwdCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSwgdW5sZXNzCiAgIE5FVFNOTVBfTk9fTEVHQUNZX0RFRklOSVRJT05TIGlzIGRlZmluZWQuCgoyMDA5LTA4LTMxIDE5OjM4ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgQWRkaXRpb25hbCBSRkMgbWlicwoKMjAwOS0wOC0zMSAxOTozNyAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgSUFOQSBmaXhlZCBhIGJ1ZwoKMjAwOS0wOC0yOSAwNzoyOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVtb3ZlIHVubmVlZGVkIGNhc3RzLgoKMjAwOS0wOC0yOSAwNzoyOCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogcmV0IGlzIG9ubHkgdXNlZCBpbiBzZXR0YWJsZSB0YWJsZXMgc28gb25seSBkZWNsYXJlIGl0CiAgIHRoZW4uCgoyMDA5LTA4LTI5IDA3OjI0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBSZXBsYWNlIHRoZSBfb2lkX2xlbiB2YXJpYWJsZSB3aXRoIGFuIGV4cGxpY2l0IGNhbGwgb2YKICAgT0lEX0xFTkdUSC4KCjIwMDktMDgtMjkgMDc6MjEgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IE1ha2UgZXZlcnkgZnVuY3Rpb24gdGhhdCBjYW4gYmUgc3RhdGljIHN0YXRpYy4gUmVtb3ZlIHRoZQogICBkZWNsYXJhdGlvbnMgb2YgdGhlIHN0YXRpYyBmdW5jdGlvbnMgYW5kIHRoZSBwcml2YXRlIGRlZmluZXMgZnJvbQogICB0aGUgaGVhZGVyLgoKMjAwOS0wOC0yOSAwNzoxOSAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVvcmRlciB0aGUgZnVuY3Rpb25zIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBuZWVkIGZvcgogICBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KCjIwMDktMDgtMjkgMDc6MTYgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IG5ldHNubXBfdGFibGVfcmVnaXN0ZXIgc2hvdWxkIGJlIG5ldHNubXBfcmVnaXN0ZXJfdGFibGUKICAgYW5kIHRha2Ugb25seSB0d28gYXJnbWVudHMuCgoyMDA5LTA4LTI5IDA3OjE0ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBidWlsZF9vaWQgZXhwZWN0cyBhIHBvaW50ZXIgdG8gYWxsb2NhdGVkIG9pZC4gQ2hhbmdlIHRvCiAgIHVzZSBidWlsZF9vaWRfbm9hbGxvYyBhbmQgcmVtb3ZlIG9uZSBjb3B5IG9mIHRoZSBpbmRpY2VzLgoKMjAwOS0wOC0yOSAwNzoxMCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogVGhlcmUgaXMgbm8gaW5kZXhfb2lkX2xlbiBtZW1iZXIgaW4gc3RydWN0IGVudHJ5LiBVc2UgdGhlCiAgIGludGVuZGVkIGxvY2FsIHZhcmlhYmxlIGluZGV4X29pZF9sZW4uCgoyMDA5LTA4LTI5IDA3OjA2ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBDb3JyZWN0IHRoZSByZXR1cm4gdHlwZSBvZiAke2l9X2dldCplbnRyeSB0byBtYXRjaCB0aGUKICAgcmV0dXJuZWQgdHlwZS4KCjIwMDktMDgtMjYgMjI6MzcgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHdod29vcHM7IGJsZXcgdGhlIGNoYW5nZWxvZyBmb3IgcmMyCgoyMDA5LTA4LTI2IDE3OjM4ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA4LTI2IDE3OjI5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlZCBiYXNlZCBvbiBuZXcgU0YgdXBsb2FkIG1ldGhvZHM7IG5vIGxvbmdlciBhcyBhdXRvbWF0YWJsZQoKMjAwOS0wOC0yNiAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCBmcm9tIEphbiB0byBlbmRsZXNzIGxvb3AgaW4gZGVmYXVsdCByb3V0ZXMKICAgb24gbGludXgKCjIwMDktMDgtMjYgMTc6MjUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSBKYW4gdG8gZml4IEMrKyB3cmFwcGVyCgoyMDA5LTA4LTI2IDE0OjUzICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBJbml0aWFsIHN0YWIgYXQgYSBtaW5pbWFsLWhlbHBlciAocmF3KSB0YWJsZSB0ZW1wbGF0ZSwKICAgbGVhdmluZyBtb3N0IG9mIHRoZSB3b3JrIHRvIHRoZSB1c2VyLXByb3ZpZGVkIE1JQiBoYW5kbGVyLgoKMjAwOS0wOC0yNiAxNDo1MCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGJvZ3VzIGZhaWx1cmVzIChyZXR1cm5pbmcgMCkgYW5kIHN1YnNlcXVlbnQKICAgZG91YmxlLWZyZWVzLAogICBkdWUgdG8gMTUtLzMxLWJpdCBtYXNraW5nIHdoZW4gc2VsZWN0aW5nIHJlcXVlc3QgSURzLiBJZGVudGlmaWVkCiAgIGJ5IGtyb21lc2t5LgoKMjAwOS0wOC0yMCAxMzozMCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGUuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBsdWcgbGVha3MgaW4gaXBJZlN0YXRzVGFibGUsCiAgIGlwdjZTY29wZVpvbmVJbmRleFRhYmxlLCBpcFN5c3RlbVN0YXRzVGFibGUgYW5kCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlLgogICAKICAgSXQgc2VlbXMgdG8gbWUgdGhlIHRhYmxlcyB3ZXJlIHdyb25nbHkgZ2VuZXJhdGVkIHdpdGgKICAgbTJjX2RhdGFfYWxsb2NhdGUgb3IKICAgc29tZW9uZSBmb3Jnb3QgdG8gcmVsZWFzZSB0aGUgdXNlciBwcm92aWRlZCBkYXRhLgoKMjAwOS0wOC0xMiAxNTowMCAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgZml4IGxpYnRvb2wgdmVyc2lvbiBpbiBORVdTCgoyMDA5LTA4LTExIDAwOjQyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBDaGFuZ2VMb2c6CgogICB3aG9vcHM7IGFkZCByZWFsIGNoYW5nZWxvZyBlbnRlcmllcyBmb3IgLnJjMQoKMjAwOS0wOC0xMCAyMzoxMCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBmaXggdHlwbyBpbiBzdm4yY2wgbGluZQoKMjAwOS0wOC0xMCAyMzowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wOC0xMCAyMTozMiAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOC0xMCAyMToyMSAgaGFyZGFrZXIKCiAgICogIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgICAKICAgICAgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDgtMDcgMTA6MzIgIGR0czEyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICBDb3JyZWN0LCBjb25zb2xpZGF0ZSwgY2xhcmlmeSBhbmQgY2xlYW51cCB0aGUgY2F0YWxvZyBvZiBjdXJyZW50CiAgIGNoYW5nZXMuCgoyMDA5LTA4LTA2IDA3OjU3ICBkdHMxMgoKICAgKiBGQVE6CgogICBFeHBhbmQgb24gZXhlYyB2cyBleHRlbmQuCgoyMDA5LTA4LTA1IDIwOjA3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgc25tcGxpYi9maWxlX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyODIyMzU1OiBGaXggbWVtb3J5IGxlYWtzIG9uCiAgIHVkcEVuZHBvaW50VGFibGUgKGxpbnV4KQogICBQYXRjaCBzdXBwbGllZCBieSBGcmFuayBMaWNodGVuaGVsZAoKMjAwOS0wOC0wNSAxOTowNSAgZHRzMTIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDI4MjIzMzc6IEZpeCBtZW1vcnkgbGVhayBpbgogICBpcEFkZHJlc3NQcmVmaXhUYWJsZQoKMjAwOS0wOC0wNSAxNToxNiAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBOZXRUb01lZGlhVGFibGUuCiAgIFdoZW4gZGVsZXRpbmcgcm93IGNvbnRleHQsIGRlbGV0ZSBhbHNvIGFzc29jaWF0ZWQgZGF0YS4KCjIwMDktMDgtMDUgMTU6MTUgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIE5ldFRvTWVkaWFUYWJsZS4KICAgVGhlIGNvbnRhaW5lciB1c2VkIHRvIHRyYWNrIGVudHJpZXMgdG8gZGVsZXRlIGZyb20gY2FjaGUgc2hvdWxkCiAgIGJlIHJlbGVhc2VkIHdoZW4gaXQncyBub3QgbmVlZGVkLgoKMjAwOS0wOC0wNSAxNToxMiAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBVRFAtIGFuZCBUQ1AtTUlCLgogICBUaGUgZGF0YSBmcm9tIHJhd19kYXRhIGFyZSBjb3BpZWQgdG8gY2FjaGUsIHNvIGl0IHNob3VsZCBiZQogICBmcmVlZC4KCjIwMDktMDgtMDUgMTA6MTYgIGR0czEyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBDSEFOR0VTOiBhcHBzOiBCVUc6IDI4MTE1Nzc6IEZpeCBidWcgaW4gR2V0QnVsayBoYW5kbGluZy4KICAgRG9uJ3QgZ2V0IGNvbmZ1c2VkIGJ5IGluZGV4IHZhbHVlcyB0aGF0IGNvbnRhaW4gYSAnOicgY2hhcmFjdGVyLgoKMjAwOS0wOC0wNCAyMTo1OSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmk6CgogICBDSEFOR0VTOiBtaWIyYzogQlVHOiAyODI3MjY5OiBTdXBwcmVzcyBub24tb3JkZXJlZCBUT0RPIGNvbW1lbnRzLgoKMjAwOS0wOC0wNCAyMTozNSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgSGFuZGxlIGdlbmVyYXRpbmcgY29kZSBmb3IgYSBzaW5nbGUgdGFibGUsCiAgIGFzIHdlbGwgYXMgYSBsYXJnZXIgZ3JvdXAuCiAgIEFsc28gYWRkcmVzc2VzIGJ1ZyAyMTUwMjg1CgoyMDA5LTA4LTA0IDIxOjE2ICBtYWdmcgoKICAgKiBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBzbm1wbGliOiBmcm9tICJCYXJ0IHZhbiBBc3NjaGUgJiBNYWdudXMgRnJvbXJlaWRlIjogTW9yZSB1cGRhdGVzCiAgIHRvIHN0cnRvdWxsLmMKCjIwMDktMDgtMDQgMTA6NTcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZnJvbSAiTWFyY3VzIFLniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLXniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy05p6La2VydCI6IGZpeCBwb3NzaWJsZSBjcmFzaCB3aGVuCiAgIDY0LWJpdCBjb3VudGVycyBpbiBpcFN5c3RlbVN0YXRzVGFibGUgZ2V0IGJpZ2dlciB0aGFuIDJeMzIKCjIwMDktMDgtMDMgMTk6MjcgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N0cnRvdWxsLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjgyNzcyMjogZnJvbSAiQmFydCBWYW4gQXNzY2hlIjogSW1wcm92ZQogICBzdHJ0b3VsbCB0byBiZSBsZXNzIE1TVkMtc3BlY2lmaWMKCjIwMDktMDgtMDMgMTg6MzggIG1hZ2ZyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBhbiBvYnNvbGV0ZSBtYW51YWwgcGFnZSBmcm9tIHRoZSBzZXQgb2YgZmlsZXMgdGhhdCBzaG91bGQKICAgYmUgaW5zdGFsbGVkCgoyMDA5LTA3LTI3IDEyOjQxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDktMDctMjcgMTI6MTEgIGhhcmRha2VyCgogICAqIG1hbi9uZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zOgoKICAgcmVtb3ZlIGFuIG9ic29sZXRlIG1hbnVhbCBwYWdlCgoyMDA5LTA3LTI3IDEyOjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9idWxrd2Fsay50OgoKICAgQ0hBTkdFUzogZnJlZWJzZDogcGF0Y2ggZnJvbSBDZXphcnkgTW9yZ2EgdG8gZml4IGEgbWFrZSB0ZXN0IG9uCiAgIGZyZWVic2QKCjIwMDktMDctMjcgMTI6MDIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDctMjcgMTE6NTIgIGhhcmRha2VyCgogICAqICBGQVEsIE5FV1MsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wNy0yNyAwODozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIHJldmVydCBhY2NpZGVudGlhbGx5IGFwcGxpZWQgcGF0Y2gKCjIwMDktMDctMjcgMDg6MzcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCB0ZXN0aW5nL3Rlc3RzL1QzNjBkdGxzdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIuY2VydCwgIAogICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LXVzZXIucHJpdjoKCiAgIGFkZGVkIGEgdGVzdCBjYXNlIGZvciB1ZHAvZHRscwoKMjAwOS0wNy0yNyAwODozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZG9uJ3QgcmVxdWlyZSBhIHNlc3Npb24gdG8gY2FycnkgYSBzZWNOYW1lCgoyMDA5LTA3LTI2IDIxOjM0ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBXaW4zMjogTVNWQyA2IGNvbXBpbGUgZml4ZXMgZm9yIFdvcmtzcGFjZSBidWlsZC4KCjIwMDktMDctMjYgMTg6MjAgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zdHJ0b3VsbC5jLCAgIAogICAgICB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5iYXQsIHdpbjMyL2Rpc3QvYnVpbGQtYmluYXJ5LnBsLCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2ksIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAtQWRkZWQgc3RydG91bGwgZnVuY3Rpb24gYW5kIGNvbmZpZ3VyZSBjaGVjayBmb3Igc3lzdGVtcyB3aXRob3V0CiAgIGl0IHN1Y2ggYXMgV2luMzIgTVNWQyA2CiAgIC1XaW4zMjogTVNWQyA2IGNvbXBpbGUgZml4ZXMgLSByZXF1aXJlcyBuZXcgc3RydG91bGwuYyBmaWxlCiAgIC1XaW4zMjogTmV3IGJ1aWxkLWJpbmFyeSBzY3JpcHQgdG8gc2ltcGxpZnkgYnVpbGRpbmcgdGhlIFdpbmRvd3MKICAgYmluYXJ5IHBhY2thZ2UuCgoyMDA5LTA3LTI1IDA1OjMxICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIE1ha2Ugc3VyZSBhIG1lc3NhZ2UgaXMgd3JpdHRlbiBpZiB0aGUgcmVsZXZhbnQgdGFibGUgaXMgbWlzc2luZy4KCjIwMDktMDctMjMgMjE6MjkgIGFsZXhfYgoKICAgKiBSRUFETUU6CgogICBVcGRhdGUgZW1haWwgYWRkcmVzcyBpbiBSRUFETUUuCgoyMDA5LTA3LTIzIDAxOjA3ICBhbGV4X2IKCiAgICogIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyAyMDA4KyBmaXhlcy4KCjIwMDktMDctMjMgMDA6NTUgIGFsZXhfYgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgTVNWQyAyMDA1KyBidWlsZCBmaXhlcy4gVGhhbmtzIHRvIEJhcnQgVmFuIEFzc2NoZS4KCjIwMDktMDctMjEgMTI6MjIgIGR0czEyCgogICAqICBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBsb2NhbC9taWIyYy5yb3cuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQWRkIHNpbXBsZSBkZWJ1ZyBvdXRwdXQgdG8gbWliMmMgdGVtcGxhdGVzLgoKMjAwOS0wNy0yMSAxMjoxMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IG1pc3Npbmcgc2VtaWNvbG9uIHR5cG9zLgoKMjAwOS0wNy0yMSAwOToxNSAgZHRzMTIKCiAgICogRkFROgoKICAgTmV3IHN1Z2dlc3RlZCBlbnRyaWVzLgoKMjAwOS0wNy0yMCAxOToyNCAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBDT0RJTkcgc2VjdGlvbi4KCjIwMDktMDctMjAgMTE6MDkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliLmg6CgogICBBZGQgbWlzc2luZyBoZWFkZXIgZmlsZSBmcm9tIHBhdGNoICMyMDUzMjczLgoKMjAwOS0wNy0xOSAxNTowOSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBDT01QSUxJTkcgc2VjdGlvbi4KCjIwMDktMDctMTYgMTI6MzggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIEFkZCBJUHY2IG9jdGV0IGNvdW50ZXJzLgogICBOZXcgTGludXgga2VybmVscyAoZS5nLiAyLjYuMzEtcmMyLCBtYXliZSBzb21lIGVhcmxpZXIpIHByb3ZpZGUKICAgY291bnRlcnMgZm9yCiAgIGluY29taW5nL291dGdvaW5nIElQdjYgdHJhZmZpYyBmb3IgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZAogICBpcElmU3RhdHNUYWJsZS4KCjIwMDktMDctMTUgMjI6NDYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIHB1dCB0ZW1wb3JhcnkgZGF0YSB0byB3aGVyZSB0aGV5IGJlbG9uZwoKMjAwOS0wNy0xMSAyMTo1MCAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICByZWdlbmVyYXRlIGNvbmZpZ3VyZQoKMjAwOS0wNy0xMSAyMTowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGJ1aWxkIGZpeCAoZS5nLiBmb3IgRnJlZUJTRCk6IGFkanVzdCBrdm0gY29uZmlndXJlIHRlc3RzCgoyMDA5LTA3LTEwIDEyOjM1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ2hlY2sgSVB2NiBwb3J0IHJhbmdlcyBpbiB0aGUgc2FtZSB3YXkgYXMgSVB2NCBwb3J0cyBhcmUgY2hlY2tlZC4KCjIwMDktMDctMTAgMDc6NDYgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBsb2NhbC9taWIyYzoKCiAgIEZpeCBhbm90aGVyIElQdjQgYWRkcmVzcyBzaXplIC0gbG9uZyBoYXMgOCBieXRlcyBvbiA2NGJpdCBMaW51eC4KICAgQWxzbyBmaXggdGhlIGRlZmF1bHQgdHlwZSBmb15DQVNOX0lQQUREUkVTUyBpbiBtaWIyYywgc28gdGhlCiAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMgY2FuIGJlIHNhZmVseSByZWdlbmVyYXRlZC4KCjIwMDktMDctMDkgMjM6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4OgoKICAgY2xlYW51cCBvZiB0ZXN0aW5nIGNhc2VzIHRvIHJlbW92ZSBkb3VibGUgaW5jbHVkZSBhbmQgZG91YmxlCiAgIGV4cG9ydHMKCjIwMDktMDctMDkgMjM6MDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMzAwdWRwOgoKICAgYmUgY29uc2lzdGVudCB3aXRoIHRoZSBUQ1AvSVB2NCB0ZXN0CgoyMDA5LTA3LTA5IDIyOjE4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9TdHJhbnNwb3J0LCB0ZXN0aW5nL3Rlc3RzL1QzMDB1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMxMHRjcCwgdGVzdGluZy90ZXN0cy9UMzIwdWRwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMzMHRjcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzNTB1bml4LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzOTlhbGlhczoKCiAgIG5ldyB0ZXN0cyBmb3IgdGVzdGluZyBkZWZpbmVkIHRyYW5zcG9ydHMKCjIwMDktMDctMDkgMjI6MTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGEgQ09ORklHQVBQIG1hY3JvIGZvciBhZGRpbmcgc3R1ZmYgdG8gc25tcC5jb25mCgoyMDA5LTA3LTA4IDE1OjEyICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBGaXggZ2V0aG9zdGJ5YWRkciBwYXJhbWV0ZXIsIG5ldHNubXBfdWRwX2ZtdGFkZHIgbmV2ZXIgcmV0dXJuZWQgYQogICBob3N0bmFtZS4KCjIwMDktMDctMDcgMTU6NDYgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIEZpeCBJUCBhZGRyZXNzIGxlbmd0aCBvbiA2NCBiaXQgc3lzdGVtcyBpbiBtaWJJSSwgcGFzcyBhbmQKICAgcGFzc19wZXJzaXN0IG1vZHVsZXMuCgoyMDA5LTA3LTA3IDE1OjI0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIFVzZSBjb3JyZWN0bHkgc2l6ZWQgSVAgYWRkcmVzc2VzIGluIGFkZHJlc3MgdHJhbnNsYXRpb24gdGFibGUKICAgcHJvY2Vzc2luZyAtIHVfbG9uZyBjYW4gbWFrZSBwcm9ibGVtcyBvbiBiaW4gZW5kaWFuIDY0IGJpdAogICBzeXN0ZW1zCgoyMDA5LTA2LTI5IDEzOjUyICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTOgoKICAgcmVtb3ZlIGVudHJ5IGZvciBhIHBhdGNoIHRoYXQgZ290IHJldmVydGVkCgoyMDA5LTA2LTI1IDE1OjI0ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgTW92ZSBub24tY29yZSBkYXRhIHR5cGVzIGludG8gYSBzZXBhcmF0ZSAobGlicmFyeSBpbnRlcm5hbHMpCiAgIGhlYWRlciBmaWxlLgogICBNb3ZlIHRoZSBsYXJnZV9mZF9zZXQgZGF0YSBzdHJ1Y3R1cmUgaW50byB0aGlzIGhlYWRlciBmaWxlLgoKMjAwOS0wNi0xOCAyMjoyOSAgdGFuZGVycwoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBhbGxvdyBidWlsZGluZyB3aXRoIFBlcmwgdmVyc2lvbnMgdGhhdCBsYWNrCiAgIFBFUkxfRVhJVF9ERVNUUlVDVF9FTkQKCjIwMDktMDYtMTggMjI6MTMgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGJ1aWxkIGZpeCBmb3IgVHJ1NjQgVW5peCBhbmQgSVJJWDogbW92ZSBfWE9QRU4qCiAgIGRlZmluaXRpb25zIHRvIHdoZXJlIHRoZXkgYXJlIGluIDUuNC54IGFuZCBlYXJsaWVyCgoyMDA5LTA2LTE4IDA2OjAyICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDbGVhbiB1cCAtLXdpdGgtbmwgY29uZmlndXJhdGlvbgogICAqICBNb3ZlIHRoZSBfQVJHX1dJVEggdG8gY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUgIDIwMDktMDYtMTYgMTU6MTcKICAgICAgIHJzdG9yeQoKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGNoZWNrIGZvciBudWxsIHBvaW50ZXIgYmVmb3JlIGRlcmVmCgoyMDA5LTA2LTE1IDIzOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgYWRkIGNvbW1lbnQgZXhwbGFpbmluZyBub3QgcXVpdGUgb2J2aW91cyBsYWNrIG9mIG1lbW1vdmUKCjIwMDktMDYtMTUgMTk6MzIgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFJlbW92ZSAjaWYgMCBjb21tZW50ZWQgY29kZQoKMjAwOS0wNi0xNSAxNToyNSAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byBBR0VOVCBzZWN0aW9uLgoKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LnJjMSAtPiBWNS42LnJjMgoKMjAxMC0wOS0wNCAwMTo1NyAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDEwLTA5LTA0IDAwOjU5ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDktMDMgMjI6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggdGxzdGNwIHBhcnNpbmcgb2YgaG9zdCBuYW1lcy4KCjIwMTAtMDktMDMgMjI6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jOgoKICAgY2hlY2sgdGhlIHJldHVybiBjb2RlIG9mIGZnZXRzIGFuZCBmb3BlbiBiZWZvcmUgaW5zZXJ0aW5nIHRoZQogICByZXN1bHRzLgoKMjAxMC0wOS0wMyAyMjoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBQYXRjaCBmcm9tIHRhbmRlcnMgdG8gZml4IGJyb2tlbiBhbGFybXMgYWZ0ZXIgdGhlIHByZXZpb3VzCiAgIHJlLWVudHJhbnQgcGF0Y2gKCjIwMTAtMDktMDMgMjI6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2ggMzA1ODY0NTogZnJvbSBqb3Jpc2VzYXR1cm51czogbW9kaWZpZWQKICAgdmVyc2lvbiBvZiB0aGUgcGF0Y2ggdG8gdXNlIE1TR19ET05UV0FJVCBmb3IgdGhlIHVuaXggZG9tYWluCiAgIHNvY2tldAoKMjAxMC0wOS0wMyAyMTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMzA1ODE0MDogZnJvbSB0YWtldm9zOiBjaGVjayB0aGF0IGlub2RlIGlzCiAgIG5vbi16ZXJvCgoyMDEwLTA5LTAzIDIxOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2dldF9waWRfZnJvbV9pbm9kZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDUzNDI4OiBmcm9tIHRha2V2b3M6IGZpeAogICBnZXRfcGlkX2Zyb21faW5vZGUgd2hlbiB0aGUgaW5vZGUgaXMgbm90IGZvdW5kLgoKMjAxMC0wOS0wMyAyMDoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRoZSBkdXBsaWNhdGUgcmV0dXJuIGJlZm9yZSB0aGUgZXJyb3IgY29kZXMgZ2V0IHNldC4KCjIwMTAtMDktMDEgMTg6MDQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBMb2cgYmVmb3JlIHJldHVybmluZy4KCjIwMTAtMDktMDEgMDI6NDMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgVExTIHNlbmRfbm90aWZ5IG9uIGNsb3N1cmUgYW5kIHNvbWUgbWVtb3J5IGNsZWFuLXVwIHBhdGNoZXMKCjIwMTAtMDgtMzEgMTc6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE9ubHkgcHJpbnQgdGhlIHNlY3VyaXR5L2NvbnRleHQgRW5naW5lSUQgbWlzbWF0Y2ggbm90ZSB1bmRlciBVU00KCjIwMTAtMDgtMjUgMTU6MTMgIHJzdG9yeQoKICAgKiBDSEFOR0VTOgoKICAgcmVtb3ZlIHJlZmVyZW5jZSB0byByZXZlcnRlZCBwYXRjaCAzMDQyNzY1CgoyMDEwLTA4LTI1IDE1OjEzICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBub3RlIG9uIHdoZXJlIHRvIGZpbmQgY29udGVudCB1c2VkIHRvIGdlbmVyYXRlCiAgIG5ldC1zbm1wLWNvbmZpZy5oLmluCgoyMDEwLTA4LTI1IDAyOjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgcmV2ZXJ0IHIxOTM0MiwgcGF0Y2ggMzA0Mjc2NSwgd2hpY2ggYnJva2UgY2xpZW50IHRjcCBkaXNjb25uZWN0CiAgIGhhbmRsaW5nCgoyMDEwLTA4LTI1IDAyOjQ1ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCBtb3JlIGNvZGUgYnJva2VuIGJ5ICdjb21waWxlciB3YXJuaW5nIGZpeCcgaW4gcjE5MTc5CgoyMDEwLTA4LTI1IDAyOjQ1ICByc3RvcnkKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VyczoKCiAgIGNoZWNrIGZvciBjb25mIGVycm9ycyBhZnRlciBhZ2VudCBzdGFydHVwOyBlbmFibGUgbG9nVGltZXN0YW1wOwogICBtYWtlIHN1cmUKICAgYWxsIGNlcnQgbmFtZS90YWdzIGFyZSB1bmlxdWUKCjIwMTAtMDgtMjQgMjE6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgZml4IGVycm9yIHN0cmluZyB0byBkaXNjdXNzIHRoZSByaWdodCBmYWlsZWQgb3BlbnNzbCBuZXcKICAgaW52b2NhdGlvbgoKMjAxMC0wOC0yNCAwNTozNyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wdXNtOiBDb3JyZWN0IGlmZGVmcywgcmVtb3ZlIGRlYWQgdmFyaWFibGVzLgoKCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS42LnByZTMgLT4gVjUuNi5yYzEKCjIwMTAtMDgtMTkgMjE6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDgtMTkgMjE6MTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL250by1xbng2Lmg6CgogICAvLyAtPiBDIGNvbW1lbnRzCgoyMDEwLTA4LTE5IDIwOjM2ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMTAtMDgtMTkgMjA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIIDMwNDI3NjU6IGZyb20gbWVoYWY6IG1ha2UKICAgc25tcF9zeW5jaF9yZXNwb25zZV9jYigpIHJlLWVudHJhbnQKCjIwMTAtMDgtMTkgMjA6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgdHVybiBvZmYgY29va2llIGV4Y2hhbmdlcyB1bnRpbCBhIGNvbXBsZXRlIGNvZGUgc2V0IGNhbiBiZQogICB3cml0dGVuIHRvIHN1cHBvcnQgaXQgYmFzZWQgb24gdGhlIHJlcXVpcmVkIGZ1bmN0aW9uIGNhbGxiYWNrcwoKMjAxMC0wOC0xNyAxODozMSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBhZGQgbWlzc2luZyBjYWxsIHRvIHN0b3JlIHBlcnNpc3RlbnQgZGF0YSBhcyBuZWVkZWQKCjIwMTAtMDgtMTcgMTg6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogd2hlbiBkaXNwbGF5aW5nIGEgYnl0ZSBhcyBzaW5nbGUgZGlnaXQgaGV4CiAgIHZhbHVlLCBkZWZhdWx0IHRvCiAgIHByZWZpeGluZyB3aXRoIDAgdW5sZXNzIHRoZXJlIGlzIGEgc2VwZXJhdG9yIG9yIGFkZGl0aW9uIGhpbnQKICAgZGF0YQoKMjAxMC0wOC0xNyAxMDozMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgYW4gdW51c2VkIGxhYmVsIHRoYXQgd2FzIHRyaWdnZXJlZAogICB3aGVuCiAgIGNvbXBpbGluZyB3aXRob3V0IFNTTCBzdXBwb3J0LgoKMjAxMC0wOC0xNiAyMzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDI3OTAyNDk6IGZyb20gd2lsbHB3aWxscDogcmVkdWNlIGNhY2hlIHRpbWUKICAgZm9yIHRoZSBpZnRhYmxlIHRvIDNzZWNvbmRzIHRvIGluY3JlYXNlIGFjY3VyYWN5CgoyMDEwLTA4LTE2IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBDSEFOR0VTOiBwZXJsOiBwYXRjaCAzMDQ2MzcxOiBmcm9tIGNocmlzdG9waGI0OiBGaXggbWVtb3J5IGxlYWsKICAgaW4gU05NUHYxIHRyYXAgaGFuZGxpbmcuCgoyMDEwLTA4LTE2IDE2OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaCAyODI1NjUzOiBmcm9tIGJydTVjZTogZml4IHNlbmRtYWlsLmNmCiAgIHBhcnNpbmcgaW4gY2VydGFpbiBjb25kaXRpb25zCgoyMDEwLTA4LTE2IDEwOjE2ICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBCdWlsZCBuZXRzbm1wX2FnZW50X2FwaS4zIG1hbiBwYWdlIGZyb20gdGVtcGxhdGUKCjIwMTAtMDgtMTYgMDk6MjAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI5MTEzNjE6IERvY3VtZW50YXRpb24gKFByb3ZpZGVkIGJ5IFRvbWFzegogICBMaXMpCgoyMDEwLTA4LTE2IDA4OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTExMzYxOiBSZS1vcmRlciBjb2RlIHRvIGdyb3VwIHJlbGF0ZWQKICAgZnVuY3Rpb25zIHRvZ2V0aGVyCgoyMDEwLTA4LTE2IDA3OjQyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyOTk1MDk4OiBGaXggY3JlYXRpb24gb2YgU05NUHYzIHNlc3Npb25zCiAgIHdpdGggQVBJX1NJTkdMRQoKMjAxMC0wOC0xNCAxNjozMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMTM2MTogUmVtb3ZlIHJlZHVuZGFudCB2YXJpYWJsZXMKCjIwMTAtMDgtMTQgMTY6MjMgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkwNDkwMDogRG9jdW1lbnRhdGlvbiBwbHVzIGFzc29ydGVkCiAgIGhhbmRsZXIgY29kZSBmaXhlcwoKMjAxMC0wOC0xNCAwOToyOCAgZHRzMTIKCiAgICogIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgUmVzdG9yZSBhZ2VudCBBUEkgbWFuIHBhZ2UKICAgRG9uJ3QgdHJ5IHRvIGV4dHJhY3QgbXVsdGlwbGUgbWFuIHBhZ2UgbGlua3MgcGVyIGxpbmUKICAgKHdoaWNoIHJ1bnMgaW50byBwcm9ibGVtcyB3aXRoIE9TLXNwZWNpZmljIGxpbmUgZW5kaW5ncykuCiAgIEluc3RlYWQsIGVuc3VyZSB0aGUgbWFuIHBhZ2UgTkFNRSBzZWN0aW9uIGxpc3RzIG9uZQogICByb3V0aW5lIHBlciBsaW5lCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggYnJva2VuIE1ha2VmaWxlIGFmdGVyIG1hbiBwYWdlIG1vdmVzCgoyMDEwLTA4LTEzIDIzOjUwICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQsIG1pYnMvcmZjbGlzdDoKCiAgIHVwZGF0ZWQgVExTIE1JQiB0byBjdXJyZW50IGNvcHkKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICByZXBsYWNlZCBSRkMgY29tbWVudCBudW1iZXIKCjIwMTAtMDgtMTMgMjM6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmgsIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2g6IDMwNDI3NzA6IGZyb20gbWVoYWY6IE1hZGUgcnVuX2FsYXJtcygpCiAgIHJlZW50cmFudAoKMjAxMC0wOC0xMyAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAzMDQ0NTEyOiBmcm9tIHBoaWx3ZWJzdGVyOiBmaXggc3lzb2JqZWN0aWQKICAgZGlyZWN0aXZlLgoKMjAxMC0wOC0xMyAxOTowMCAgcnN0b3J5CgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXg6CgogICB1c2UgMTI3LjAuMC4xIGluc3RlYWQgb2YgbG9jYWxob3N0IGFzIGRlZmF1bHQgU05NUF9URVNUX0RFU1Qgc28KICAgVExTIHRlc3RzIHdvcmsKCjIwMTAtMDgtMTMgMTg6NTAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogaW1wbGVtZW50ZWQgYSBmaXggZm9yIHRoZSBpc3N1ZSByZXBvcnRlZCBpbgogICBwYXRjaCAjMzA0Mjc3MC4gQ3JlYXRlZCBhIHNubXBfc2VsZWN0X2luZm9fZmxhZ3MgZnVuY3Rpb24sIGFuZAogICBzaW1pbGFyLCB0aGF0IGFsbG93IGZvciBhbGFybXMgdG8gbm90IGJlIHJ1bi4gVGhpcyBpcyB0aGVuIHVzZWQKICAgaW4gdGhlIHN5bmNoX3Jlc3BvbnNlIGZ1bmN0aW9ucyB0byBhdm9pZCAxMDAlIENQVSBsb29wcwoKMjAxMC0wOC0xMyAxODo1MCAgaGFyZGFrZXIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaCwKICAgICAgICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIG1ha2Ugc25tcHRyYXBkIHJlZ2lzdGVyIHRoZSBjZXJ0dG9zZWNuYW1lIHRhYmxlIGluIHRoZSBhZ2VudHgKICAgcmVnaXN0cmF0aW9ucwoKMjAxMC0wOC0xMyAxODo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIG1pbm9yIHdvcmRpbmcgYWRkaXRpb25zCgoyMDEwLTA4LTEzIDE1OjA0ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2FpeC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmM6CgogICBDSEFOR0VTOiBhaXg6IFBBVENIOiAyODg2NTk4OiBmcm9tIGV4c25hZnU6IEhlYWRlciBmaXhlcyBmb3IKICAgY29tcGlsaW5nIG9uIEFJWDYKCjIwMTAtMDgtMTMgMTU6MDQgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbnRvLXFueDYuaDoKCiAgIE5FV1M6IHBvcnRzOiBQQVRDSDogMjgzNjg5NTogZnJvbSBzZWFuYm91ZHJlYXU6IHN1cHBvcnQgZm9yIFFOWDYKCjIwMTAtMDgtMTMgMTQ6MzMgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9uZXRzbm1wX2FnZW50X2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfY29uZmlnX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vbmV0c25tcF90cmFwX2FwaS4zLmRlZiwgICAKICAgICAgbWFuL25ldHNubXBfdmFyYmluZF9hcGkuMy5kZWY6CgogICAnZW5mb3JjZSBuZXRzbm1wIHByZWZpeGVzCgoyMDEwLTA4LTEzIDE0OjI5ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF92YXJiaW5kX2FwaS4zLmRlZiwgbWFuL3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOSAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfc2Vzc19hcGkuMy5kZWYsIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyOCAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfYWdlbnRfYXBpLjMuZGVmLCBtYW4vc25tcF9hZ2VudF9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI4ICBkdHMxMgoKICAgKiBtYW4vbmV0c25tcF9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3Nlc3Npb25fYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyNyAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfcGR1X2FwaS4zLmRlZiwgbWFuL3BkdV9hcGkuMy5kZWY6CgogICBlbmZvcmNlIG5ldHNubXAgcHJlZml4CgoyMDEwLTA4LTEzIDE0OjI3ICBkdHMxMgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfbWliX2FwaS4zLmRlZjoKCiAgIGVuZm9yY2UgbmV0c25tcCBwcmVmaXgKCjIwMTAtMDgtMTMgMTQ6MjcgIGR0czEyCgogICAqIG1hbi9jb25maWdfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9jb25maWdfYXBpLjMuZGVmOgoKICAgZW5mb3JjZSBuZXRzbm1wIHByZWZpeAoKMjAxMC0wOC0xMyAxNDoyMCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIGRveHlnZW4uY29uZjoKCiAgIERvbid0IGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgbWFuIHBhZ2VzCgoyMDEwLTA4LTEzIDE0OjE4ICBkdHMxMgoKICAgKiAgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9jbG9zZS4zLCBtYW4vc25tcF9lcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9mcmVlX3BkdS4zLCBtYW4vc25tcF9vcGVuLjMsIG1hbi9zbm1wX3BlcnJvci4zLCAgIAogICAgICBtYW4vc25tcF9yZWFkLjMsIG1hbi9zbm1wX3NlbGVjdF9pbmZvLjMsIG1hbi9zbm1wX3NlbmQuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19hc3luY19zZW5kLjMsIG1hbi9zbm1wX3Nlc3NfY2xvc2UuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19lcnJvci4zLCBtYW4vc25tcF9zZXNzX2luaXQuMywgICAKICAgICAgbWFuL3NubXBfc2Vzc19vcGVuLjMsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3NfcmVhZC4zLCBtYW4vc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsICAgCiAgICAgIG1hbi9zbm1wX3Nlc3Nfc2VuZC4zLCBtYW4vc25tcF9zZXNzX3Nlc3Npb24uMywgICAKICAgICAgbWFuL3NubXBfc2Vzc190aW1lb3V0LjMsIG1hbi9zbm1wX3NldF9taWJfd2FybmluZ3MuMywgICAKICAgICAgbWFuL3NubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMsIG1hbi9zbm1wX3RpbWVvdXQuMzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgbWFuIHBhZ2UgbGlua3MKICAgKFNob3VsZCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseSwgYnV0IGRvbid0IGV4aXN0IGFueSBtb3JlCiAgIGFueXdheSkKCjIwMTAtMDgtMTMgMTQ6MTMgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9hZGRfbWliZGlyLjMsIG1hbi9hZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMsICAKICAgICAgIG1hbi9nZXRfbW9kdWxlX25vZGUuMywgbWFuL2luaXRfbWliLjMsIG1hbi9pbml0X21pYl9pbnRlcm5hbHMuMywgCiAgICAgICAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbGVhZi4zLCBtYW4vbmV0c25tcF9saWJyYXJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIAogICAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zZXRfZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgIAogICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93LjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgICAKICAgICAgbWFuL25ldHNubXBfdGRhdGEuMywgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMywgbWFuL3ByaW50X2Rlc2NyaXB0aW9uLjMsIG1hbi9wcmludF9taWIuMywgIAogICAgICAgbWFuL3ByaW50X29iamlkLjMsIG1hbi9wcmludF92YWx1ZS4zLCBtYW4vcHJpbnRfdmFyaWFibGUuMywgICAKICAgICAgbWFuL3JlYWRfYWxsX21pYnMuMywgbWFuL3JlYWRfbWliLjMsIG1hbi9yZWFkX21vZHVsZS4zLCAgIAogICAgICBtYW4vcmVhZF9tb2R1bGVfbm9kZS4zLCBtYW4vcmVhZF9vYmppZC4zLCBtYW4vc2h1dGRvd25fbWliLjM6CgogICBSZW1vdmUgRG94eWdlbi1nZW5lcmF0ZWQgbWFuIHBhZ2VzLCBhbmQgdGhvc2UgbGlua2luZwogICBpbmRpdmlkdWFsIHJvdXRpbmVzIHRvIHRoZSBhcHByb3ByaWF0ZSBtYW4gcGFnZS4KICAgKFRoZXNlIGFyZSBiZXR0ZXIgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5KQoKMjAxMC0wOC0xMyAxMjoxOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBQcm9tcHQgZm9yIHdoZXRoZXIgdG8gZ2VuZXJhdGUgY2FjaGluZyBjb2RlIG9yIG5vdC4KCjIwMTAtMDgtMTMgMTI6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBSZXdvcmsgZ3VpZGFuY2UgcXVlc3Rpb25zIHdoZW4gc2VsZWN0aW5nIHRoZSBiZXN0IHRhYmxlIGZyYW1ld29yawogICB0byB1c2UuCiAgIEVuc3VyZSB0YWJsZSBoYW5kbGluZyBjb2RlIGRvZXNuJ3Qgb3ZlcndyaXRlIHNjYWxhciBoYW5kbGluZwogICBjb2RlLgogICBDaGVjayB0aGF0IHRoZSBzdGFydGluZyBwb2ludCBpcyBzdWl0YWJsZSBmb3IgTWZEIGZyYW1ld29yay4KCjIwMTAtMDgtMTIgMTU6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IGNvZGUgYnJva2VuIGJ5ICdjb21waWxlciB3YXJuaW5nIGZpeCcgaW4gcjE5MTc5CgoyMDEwLTA4LTEyIDE1OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oOgoKICAgZml4IHR5cG8gaW4gY29tbWVudAoKMjAxMC0wOC0xMSAyMjowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgYSBkdXBsaWNhdGUgdmFsdWUgY2hlY2sKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICBhZGQgYSB0ZXN0IHdoZXJlIHdlIGNhbiB0cnVzdCBhIENBLXNpZ25lZCBjZXJ0IGFuZCB3ZSBkb24ndCB0cnVzdAogICB0aGUgQ0EKCjIwMTAtMDgtMTEgMjI6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVXNlcnM6CgogICB0ZXN0IGEgZGlyZWN0bHkgbWFwcGVkIENBIGNlcnRpZmljYXRlCgoyMDEwLTA4LTExIDIyOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBjaGFuZ2UgdGhlIGxhQ29uZmlnIHRvIHJlYWQtd3JpdGUgdG8gbWF0Y2ggdGhlIHBhdGNoCgoyMDEwLTA4LTExIDIyOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDI5MzE0NDY6IGZyb20gYWhtYWtlOiBtYWtlIHRoZSBsb2FkIGF2ZXJhZ2VzCiAgIHdyaXRhYmxlLgoKMjAxMC0wOC0xMSAwNjo0MyAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMjBoYXNodGVzdHNfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA0MGtleW1hbmFnZXRlc3RfY2FwcC5jOgoKICAgQ0hBTkdFUzogU2lsZW5jZSBzb21lIGNvbXBpbGF0aW9uIHdhcm5pbmdzIGZyb20gdGVzdCBjYXNlcy4KCjIwMTAtMDgtMDkgMjE6MDkgIG1hZ2ZyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogSGFuZGxlIGVtYmVkZGVkICUncyBpbiB0aGUgcmVzdWx0IG1lc3NhZ2UuCgoyMDEwLTA4LTA5IDIxOjA3ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIENIQU5HRVM6IERvIG5vIGRvdWJsZSBkZWNsYXJlIHRoZSBpbmRleCB2YWx1ZXMuCgoyMDEwLTA4LTA1IDExOjQ5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFVwZGF0ZSAiYXV0aCoiIHVzYWdlIG1lc3NhZ2Ugd2l0aCBjb250ZXh0IHN1cHBvcnQKCjIwMTAtMDgtMDIgMjA6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEZpeCB0d28gc2lsbHkgbWlzdGFrZXMuCgoyMDEwLTA4LTAyIDE0OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50Y3RsLmM6CgogICBBSVggZmlsZXN5c3RlbSB0eXBlcyBhcmUgdGFnZ2VkIGFzIGludGVnZXJzLCBub3Qgc3RyaW5ncy4KCjIwMTAtMDgtMDIgMTM6NDkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBmaXggUGVybCBzeXN0ZW0oKSBjb25maWd1cmUgY2hlY2sgdG8gd29yayByZWxpYWJseSBvbiBzeXN0ZW1zCiAgIHRoYXQgbGFjawogICBQZXJsCgoyMDEwLTA4LTAyIDExOjA4ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgQ0hBTkdFUzogdGVzdGluZzogbWFkZSBpdCBwb3NzaWJsZSB0byBhbmFseXplIGFsbCBjb2RlIGNvdmVyZWQgYnkKICAgdGhlIHJlZ3Jlc3Npb24gdGVzdHMgd2l0aCBhIGR5bmFtaWMgYW5hbHl6ZXIsIGF0IGxlYXN0IGlmIHRoYXQKICAgYW5hbHl6ZXIgc3VwcG9ydHMgZm9sbG93aW5nIGNoaWxkIHByb2Nlc3Nlcy4gQW4gZXhhbXBsZToKICAgCiAgIHJtIC1yZiAvdG1wL3NubXAtdGVzdC0qCiAgIG1ha2UgLXMKICAgU05NUF9TQVZFX1RNUERJUj15ZXMgRFlOQU1JQ19BTkFMWVpFUj0idmFsZ3JpbmQKICAgLS10cmFjZS1jaGlsZHJlbj15ZXMgLS10cmFjay1vcmlnaW5zPXllcyIgbWFrZSAtcyB0ZXN0CiAgIGdyZXAgLWkgdW5pbml0aWFsaXNlZCAvdG1wL3NubXAtdGVzdC0qIHwgeGFyZ3MgbGVzcwoKMjAxMC0wOC0wMiAxMTowMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jOgoKICAgRml4ZWQgdGhlIGZvbGxvd2luZyB0d28gVmFsZ3JpbmQgY29tcGxhaW50czoKICAgCiAgIENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKICAgYXQgMHg2RDcwMkUwOiB2ZnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZEOTlEMTE6IHZzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZEN0E0MTI6IHNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NkUxNDQzNzogaW5ldF9udG9hIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NUU1RTIxOTogbmV0c25tcF9pcHY0X2ZtdGFkZHIgKHNubXBJUHY0QmFzZURvbWFpbi5jOjIxNSkKICAgYnkgMHg1RTY1NzE3OiBuZXRzbm1wX3RjcF9mbXRhZGRyIChzbm1wVENQRG9tYWluLmM6NzApCiAgIGJ5IDB4NUU1NjdFQzogbmV0c25tcF90cmFuc3BvcnRfcGVlcl9zdHJpbmcKICAgKHNubXBfdHJhbnNwb3J0LmM6MjI0KQogICBieSAweDVFMjQ3OUE6IF9zZXNzX3Byb2Nlc3NfcGFja2V0IChzbm1wX2FwaS5jOjU0NDEpCiAgIGJ5IDB4NUUyNUUzNzogX3Nlc3NfcmVhZCAoc25tcF9hcGkuYzo2MDM3KQogICBieSAweDVFMjYxREE6IHNubXBfc2Vzc19yZWFkMiAoc25tcF9hcGkuYzo2MTQ5KQogICBieSAweDVFMjYyODI6IHNubXBfcmVhZDIgKHNubXBfYXBpLmM6NTc0MCkKICAgYnkgMHg0MDRERTQ6IG1haW4gKHNubXBkLmM6MTIyNykKICAgVW5pbml0aWFsaXNlZCB2YWx1ZSB3YXMgY3JlYXRlZCBieSBhIGhlYXAgYWxsb2NhdGlvbgogICBhdCAweDRDMjcwQTU6IG1hbGxvYyAodmdfcmVwbGFjZV9tYWxsb2MuYzoyMzYpCiAgIGJ5IDB4NUU2NTczOTogbmV0c25tcF90Y3BfYWNjZXB0IChzbm1wVENQRG9tYWluLmM6ODIpCiAgIGJ5IDB4NUUyNTM4MzogX3Nlc3NfcmVhZCAoc25tcF9hcGkuYzo1Nzg2KQogICBieSAweDVFMjYxREE6IHNubXBfc2Vzc19yZWFkMiAoc25tcF9hcGkuYzo2MTQ5KQogICBieSAweDVFMjYyODI6IHNubXBfcmVhZDIgKHNubXBfYXBpLmM6NTc0MCkKICAgYnkgMHg0MDRERTQ6IG1haW4gKHNubXBkLmM6MTIyNykKICAgCiAgIENvbmRpdGlvbmFsIGp1bXAgb3IgbW92ZSBkZXBlbmRzIG9uIHVuaW5pdGlhbGlzZWQgdmFsdWUocykKICAgYXQgMHg2RjdCMkUwOiB2ZnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZGQTREMTE6IHZzbnByaW50ZiAoaW4gL2xpYjY0L2xpYmMtMi4xMS4yLnNvKQogICBieSAweDZGODU0MTI6IHNucHJpbnRmIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NzAxRjQzNzogaW5ldF9udG9hIChpbiAvbGliNjQvbGliYy0yLjExLjIuc28pCiAgIGJ5IDB4NTZGQTIxOTogbmV0c25tcF9pcHY0X2ZtdGFkZHIgKHNubXBJUHY0QmFzZURvbWFpbi5jOjIxNSkKICAgYnkgMHg1NzAxNzE3OiBuZXRzbm1wX3RjcF9mbXRhZGRyIChzbm1wVENQRG9tYWluLmM6NzApCiAgIGJ5IDB4NTZGMjdFQzogbmV0c25tcF90cmFuc3BvcnRfcGVlcl9zdHJpbmcKICAgKHNubXBfdHJhbnNwb3J0LmM6MjI0KQogICBieSAweDU2RjI5NEY6IG5ldHNubXBfdHJhbnNwb3J0X3NlbmQgKHNubXBfdHJhbnNwb3J0LmM6MjQ4KQogICBieSAweDU2QkM0ODc6IHNubXBfc2Vzc19hc3luY19zZW5kIChzbm1wX2FwaS5jOjUyMDQpCiAgIGJ5IDB4NTZCQzY1MTogc25tcF9hc3luY19zZW5kIChzbm1wX2FwaS5jOjQ5OTgpCiAgIGJ5IDB4NTZCQzY3Nzogc25tcF9zZW5kIChzbm1wX2FwaS5jOjQ5ODQpCiAgIGJ5IDB4NTY5ODQ0MDogc25tcF9zeW5jaF9yZXNwb25zZV9jYiAoc25tcF9jbGllbnQuYzoxMDA2KQogICBVbmluaXRpYWxpc2VkIHZhbHVlIHdhcyBjcmVhdGVkIGJ5IGEgaGVhcCBhbGxvY2F0aW9uCiAgIGF0IDB4NEMyNzBBNTogbWFsbG9jICh2Z19yZXBsYWNlX21hbGxvYy5jOjIzNikKICAgYnkgMHg1NzAxQjNFOiBuZXRzbm1wX3RjcF90cmFuc3BvcnQgKHNubXBUQ1BEb21haW4uYzoxNjMpCiAgIGJ5IDB4NTcwMUU2RjogbmV0c25tcF90Y3BfY3JlYXRlX3RzdHJpbmcgKHNubXBUQ1BEb21haW4uYzozMDUpCiAgIGJ5IDB4NTZGMzgwNDogbmV0c25tcF90ZG9tYWluX3RyYW5zcG9ydF9mdWxsCiAgIChzbm1wX3RyYW5zcG9ydC5jOjYwMSkKICAgYnkgMHg1NkYzQUNDOiBuZXRzbm1wX3RyYW5zcG9ydF9vcGVuX2NsaWVudAogICAoc25tcF90cmFuc3BvcnQuYzo2NjkpCiAgIGJ5IDB4NTQzNDRGNjogc3ViYWdlbnRfb3Blbl9tYXN0ZXJfc2Vzc2lvbiAoc3ViYWdlbnQuYzo3NTgpCiAgIGJ5IDB4NTQzNDlDODogYWdlbnR4X3Jlb3Blbl9zZXNzaW9uIChzdWJhZ2VudC5jOjg2OSkKICAgYnkgMHg1NDM0RDAwOiBzdWJhZ2VudF9zdGFydHVwIChzdWJhZ2VudC5jOjk5KQogICBieSAweDU2RUFFQjc6IHNubXBfY2FsbF9jYWxsYmFja3MgKGNhbGxiYWNrLmM6MzM4KQogICBieSAweDU2REU2RkI6IHJlYWRfY29uZmlncyAocmVhZF9jb25maWcuYzoxMDE4KQogICBieSAweDU2QzI4N0U6IGluaXRfc25tcCAoc25tcF9hcGkuYzo4NTApCiAgIGJ5IDB4NDA0NzdCOiBtYWluIChzbm1wdHJhcGQuYzoxMDQ4KQoKMjAxMC0wOC0wMSAwNjoxMSAgYnZhc3NjaGUKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIEZpeGVkIHNwZWxsaW5nIGVycm9ycyByZXBvcnRlZCBieSBpc3BlbGwgLWwuCgoyMDEwLTA4LTAxIDA2OjAwICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX2VudW0uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDA0c25tcF9lbnVtX2NsaWIuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHRleHQgc3RyaW5nIGluIGEgdW5pdCB0ZXN0OiByZXN0dXJhbnQgLT4KICAgcmVzdGF1cmFudC4KCjIwMTAtMDgtMDEgMDU6NTMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaDoKCiAgIERvY3VtZW50ZWQgYmVoYXZpb3Igb2Ygc2VfYWRkX3BhaXJfdG9fc2xpc3QoKS4KCjIwMTAtMDctMzEgMjM6NTAgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luMTAuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE5MjY2OiBhZGQgbWlzc2luZyBoZWFkZXIgZmlsZSB0byBzdXBwb3J0IE1hYyBPUyBYCiAgIDEwLjYKICAgKFNub3cgTGVvcGFyZCAtICJkYXJ3aW4xMCIpCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjYucHJlMiAtPiBWNS42LnByZTMKCjIwMTAtMDctMzEgMjA6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNy0zMSAyMDoyNCAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNy0zMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA3LTMxIDIwOjExICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGNoYW5nZWQgdGhlIG5hbWUgb2YgdGhlIHJlYWRtZSBzZWN0aW9uIHRvIGNhbGwgb3V0IE5FV1MtdG9vCgoyMDEwLTA3LTMxIDIwOjEwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgbWlzc2luZyBuZXdzIGl0ZW1zCgoyMDEwLTA3LTMwIDEzOjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBweXRob246IFBBVENIIDMwMzUzMjg6IGZyb206IHN3czogY2hlY2sgdGhlIHJlc3VsdHMgb2YKICAgc2Vzc2lvbiBjcmVhdGlvbiBmb3IgYSBmYWlsdXJlIGNhc2UuCgoyMDEwLTA3LTMwIDEzOjAwICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBwYXRjaCAzMDM1NTc4OiBmcm9tIHN3czoga2VlcCBlcnJvciBjb2RlcyB1cCB0bwogICBkYXRlCgoyMDEwLTA3LTI5IDE1OjQ4ICBkdHMxMgoKICAgKiBjb25maWd1cmU6CgogICBBZGQgc3VwcG9ydCBmb3IgTWFjIE9TIFggMTAuNiAoU25vdyBMZW9wYXJkIC0gImRhcndpbjEwIikKICAgKE9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgdGhpcyBpcyB0aGUgc2FtZSBhcyBNYWMgT1MgWCAxMC41CiAgIChMZW9wYXJkIC0gImRhcndpbjkiKSkKCjIwMTAtMDctMjkgMTU6NDcgIGR0czEyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIEFkZCBzdXBwb3J0IGZvciBNYWMgT1MgWCAxMC42IChTbm93IExlb3BhcmQgLSAiZGFyd2luMTAiKQogICAoT24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIHRoZSBzYW1lIGFzIE1hYyBPUyBYIDEwLjUKICAgKExlb3BhcmQgLSAiZGFyd2luOSIpKQoKMjAxMC0wNy0yOSAxNTowMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmg6CgogICBQcm92aWRlIGEgZGVmaW5pdGlvbiBvZiAndmFfbGlzdCcgZm9yIHZhcmFyZ3MtYmFzZWQgQVBJcwoKMjAxMC0wNy0yOSAxNDo1OCAgZHRzMTIKCiAgICogIGFjY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEFkZCBwcmVsaW1pbmFyeSBzdXBwb3J0IGZvciBBSVggNwogICAob24gdGhlIGFzc3VtcHRpb24gdGhhdCB0aGlzIGlzIGlkZW50aWNhbCB0byBBSVggNikKCjIwMTAtMDctMjkgMTQ6NTYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGVybF9weXRob246CgogICBEaXNhYmxlIGVtYmVkZGVkIHBlcmwgYnkgZGVmYXVsdCBvbiBhcmNoaXRlY3VyZXMgd2hlcmUKICAgdGhpcyBzZWVtcyB0byBjYXVzZSBwcm9ibGVtcyAoSFAtVVggJiBNYWMgT1MgWCkKCjIwMTAtMDctMjkgMTE6MTMgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEd1YXJkIGFnYWluc3QgYmxhbmsgJ2luY2x1ZGUqJyBsaW5lcy4KICAgSGFuZGxlIHJlbGF0aXZlICdpbmNsdWRlRmlsZScgcGF0aHMKCjIwMTAtMDctMjkgMTA6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBSZXR1cm4gYW4gaW5kaWNhdGlvbiBvZiB3aGV0aGVyIGNvbmZpZyBmaWxlcyBhcmUgYWN0dWFsbHkKICAgcHJvY2Vzc2VkLgogICBSZXBvcnQgcHJvYmxlbXMgd2l0aCBmYWlsaW5nIHRvIGluY2x1ZGUgY29uZmlnIGZpbGVzLgoKMjAxMC0wNy0yOCAxNDo0NCAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIG1hbi9jb25maWdfYXBpLjMuZGVmLCAgIAogICAgICBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL3Nlc3Npb25fYXBpLjMuZGVmLCBtYW4vdmFyYmluZF9hcGkuMy5kZWYsICAKICAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQnJpbmcgbWFuIHBhZ2UgZG9jdW1lbnRhdGlvbiwgaGVhZGVyIGZpbGVzIGFuZCBXaW5kb3dzIERMTAogICBkZWZpbml0aW9ucwogICBvZiB0b3AtbGV2ZWwgcHVibGljIEFQSSBjYWxscyBpbnRvIGxpbmUgd2l0aCBlYWNoIG90aGVyLgoKMjAxMC0wNy0yOCAxNDo0MCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IG1pc25hbWVkIGNvbW1lbnQKCjIwMTAtMDctMjggMTQ6MzYgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBEb24ndCBtaXggU01JdjEgYW5kIFNNSXYyIE1JQnMgaW4gdGhlIGxpc3Qgb2YgZGVmYXVsdCBNSUJzIHRvCiAgIGxvYWQuCiAgIFVzZSBuZXdlciBTTUl2MiB2ZXJzaW9ucyAod2hpY2ggaW5jbHVkZSBzdWl0YWJsZSBkaXNwbGF5IGhpbnRzKQogICByYXRoZXIgdGhhbiB0aGUgb3JpZ2luYWwgUkZDMTIxMyBNSUIgKHdoaWNoIGRvZXNuJ3QpCgoyMDEwLTA3LTI4IDE0OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGaXggaW5kZW50YXRpb24gZm9yICdpbmNsdWRlU2VhcmNoJyBwcm9jZXNzaW5nIGNvZGUuCgoyMDEwLTA3LTI4IDE0OjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBFeHRlbmQgJ2luY2x1ZGUnIGNvbmZpZyBmaWxlIHByb2Nlc3NpbmcgdG8gY292ZXIgdGhyZWUKICAgZGlmZmVyZW50IG1vZGVzIG9mIHdvcmtpbmc6CiAgIC0gbG9vayBmb3IgdGhlIGZpbGUgb24gdGhlIGNvbmZpZyBzZWFyY2ggcGF0aAogICAtIGluY2x1ZGUgdGhlIHNwZWNpZmllZCBmaWxlIGJ5IG5hbWUKICAgLSBpb2FkIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGRpcmVjdG9yeQogICBVc2UgZGlmZmVyZW50IGNvbmZpZyB0b2tlbnMgdG8gZGlzdGluZ3Vpc2ggdGhlc2UgY2FzZXMuCgoyMDEwLTA3LTI3IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgsIGFnZW50L3NubXBfdmFycy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDI5MTI1MjA6IGZyb20gbGlzdG9tOiBGcmVlIGttZW0gcmVmZXJlbmNlcwogICBvbiBzaHV0ZG93bgoKMjAxMC0wNy0yNyAxMDo1NCAgaGFyZGFrZXIKCiAgICogbWlicy9TTVVYLU1JQi50eHQ6CgogICBDSEFOR0VTOiBtaWJzOiBwYXRjaCAyOTc0NzE2OiBmcm9tIGJ2YXNzY2hlOiBmaXggaXNzdWVzIGluIHRoZQogICBTTVVYLU1JQgoKMjAxMC0wNy0yNyAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgaW5jbHVkZSB0aGUgbmV3IHNlY3VyaXR5LWhlZGFlcnMgbW9kdWxlCgoyMDEwLTA3LTI3IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wLWJyaWRnZS1taWI6CgogICByZW1vdGUgZGVidWdnaW5nL3Byb2Nlc3Npbmcgc3RkZXJyIG91dHB1dAoKMjAxMC0wNy0yNyAwODo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcC1icmlkZ2UtbWliOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAzMDI4OTIzOiBmcm9tIGplbnNvOiBuZXcgY29weSBvZiB0aGUKICAgYnJpZGdlLW1pYiBwZXJsIGltcGxlbWVudGF0aW9uCgoyMDEwLTA3LTI3IDA4OjMxICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX3NlY3VyaXR5X21vZHVsZXMsICAgCiAgICAgIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi1zZWN1cml0eS1oZWFkZXJzLmluOgoKICAgc2VwYXJhdGUgb3V0IHRoZSBzZWN1cml0eSBoZWFkZXIvaW5pdCBnZW5lcmF0aW9uCgoyMDEwLTA3LTI3IDA4OjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc190cmFuc3BvcnRzOgoKICAgdHJhbnNwb3J0IGNvbmZpZ3VyZSBwb3J0aW9uCgoyMDEwLTA3LTI3IDA4OjMwICBoYXJkYWtlcgoKICAgKiAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzLCAgIAogICAgICBkaXN0L2dlbmVyYXRpb24tc2NyaXB0cy9nZW4tdHJhbnNwb3J0LWhlYWRlcnMuaW4sICAgCiAgICAgIGRpc3QvZ2VuZXJhdGlvbi1zY3JpcHRzL2dlbi12YXJpYWJsZXMuaW46CgogICBtb3ZlIHRyYW5zcG9ydCBoZWFkZXIgZ2VuZXJhdGlvbiB0byBhIHNlcGFyYXRlIGZpbGUgYW5kIGNyZWF0ZSBhbgogICBleHRlcm5hbCBzZXBhcmF0ZSBzY3JpcHQgZm9yIGdlbmVyYXRpbmcgaXQKCjIwMTAtMDctMjcgMDg6MTQgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogcmVwb3J0IGdmcyBmaWxlc3lzdGVtcyBpbiBoclN0b3JhZ2VUYWJsZSBhbmQKICAgaHJGU1RhYmxlLgoKMjAxMC0wNy0yNCAxNTo0MiAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRG9uJ3QgbG9zZSB0cmFjayBvZiB3aGljaCBjb25maWcgZmlsZSB3YXMgYmVpbmcgcGFyc2VkLAogICB3aGVuIHByb2Nlc3NpbmcgYW4gaW5jbHVkZWQgY29uZmlnIGZpbGUuCiAgIEZpeGVzIGEgYnVnIHdpdGggcmVwb3J0aW5nIGxhdGVyIGNvbmZpZyBlcnJvcnMuCgoyMDEwLTA3LTI0IDE1OjM2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBEb24ndCBsb3NlIHRyYWNrIG9mIHdoaWNoIGNvbmZpZyBmaWxlIGlzIGJlaW5nIHBhcnNlZCwKICAgd2hlbiBvcGVuaW5nIGEgbmV3IFNOTVAgc2Vzc2lvbi4KICAgRml4ZXMgYSBidWcgd2l0aCByZXBvcnRpbmcgbGF0ZXIgY29uZmlnIGVycm9ycy4KCjIwMTAtMDctMjMgMDM6MTIgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgYWRkIHRoZSBUTFMgbW9kdWxlcyB0byB0aGUgbGlzdCBvZiB0ZXN0IG1vZHVsZXMKCjIwMTAtMDctMjEgMTk6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYzoKCiAgIEZpeCB0eXBvIGluIGRveHlnZW4gY29tbWVudAoKMjAxMC0wNy0yMSAxOToyNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBGaXggdHlwbyBpbiBzcGVlZCBjb21wdXRhdGlvbgoKMjAxMC0wNy0yMSAxOToyMSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIEluY2x1ZGUgZ2VuZXJhdGVkIHNlY3VyaXR5LWluY2x1ZGVzLmgKCjIwMTAtMDctMjEgMTk6MjAgIG5iYQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBrc20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaDoKCiAgIEZpeCBpbml0IGZ1bmMgbmFtZSAoY29weS1wYXN0ZSBnbGl0Y2gpCgoyMDEwLTA3LTIxIDE5OjE4ICBuYmEKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBSZW1vdmUgc3VwZXJmbHVvdXMgc2VtaWNvbG9uCgoyMDEwLTA3LTIxIDE5OjE4ICBuYmEKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBPdXQgb2Ygb3JkZXIgZGVjbGFyYXRpb24KCjIwMTAtMDctMjEgMTk6MTcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgTG9nIGVycm9yIG9uIGZpbGUgb3BlbiBlcnJvcgoKMjAxMC0wNy0yMSAxOToxNiAgbmJhCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIFNwZWxpbmcgZXJyb3IKCjIwMTAtMDctMjEgMTg6MTAgIG5iYQoKICAgKiBtaWJzL2lhbmFsaXN0LCBtaWJzL3JmY2xpc3QsIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgVXBkYXRlIGZvciBjdXJyZW50IFJGQ3MKCjIwMTAtMDctMjEgMTg6MDggIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIEN1cnJlbnQgdmVyc2lvbiBmcm9tIElBTkEKCjIwMTAtMDctMjEgMTg6MDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHIxNzQ5NSBlcnJvbmVvdXNseSBkaXNhYmxlZCBkaXNrSU9MQXggZm9yIGxpbnV4CgoyMDEwLTA3LTIwIDEwOjM4ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGZpeGVkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgd2hlbiBnZW5lcmF0aW5nCiAgIHRlbXAuIGZpbGUgbmFtZXMKCjIwMTAtMDctMjAgMDc6MzIgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvc25tcGQuYywgYXBwcy9hZ2VudHh0cmFwLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsICAgCiAgICAgIG1hbi9zbm1wdHJhcGQuOC5kZWYsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBEZXNjcmliZSAtRCB1c2FnZSBhcyAtRFtUT0tFTl0gaW5zdGVhZCBvZiAtRCBbVE9LRU5dCgoyMDEwLTA3LTE3IDE1OjEwICByc3RvcnkKCiAgICogbWlicy9TTk1QLVRMUy1UTS1NSUIudHh0OgoKICAgdXBkYXRlIGRpc3BsYXkgaGludCB0byBzb21lIGxlc3MgYW1iaWd1b3VzIChhbmQgdGhhdCB3b3JrcyB3aXRoCiAgIG91ciBsaWIpCgoyMDEwLTA3LTE3IDA0OjEzICByc3RvcnkKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpeCB0ZXN0c2ltcGxlIGZvciBidWlsZGRpciE9c3JjZGlyCgoyMDEwLTA3LTE3IDA0OjEyICByc3RvcnkKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGFkZCB0ZXN0c2ltcGxlIHRhcmdldAoKMjAxMC0wNy0xNiAxOToyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVsZWFzZSBpdGVyYXRvciB3aGVuIGRvbmUgd2l0aCBpdAoKMjAxMC0wNy0xNSAxODoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXggaXNzdWUgd2l0aCBVU00gdXNpbmcgaW5hY3RpdmUgdXNlcnMKCjIwMTAtMDctMTUgMDE6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jOgoKICAgZG9uJ3QgdXNlIHN0cm5kdXAgKHBvcnRhYmlsaXR5KQoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBpbmNsdWRlIGFwcHJvcHJpYXRlIHN0cmluZyBoZWFkZXI7IGRlZmluZSBOQU1FX01BWCBpZiBub3QgYWxyZWFkeQogICBkZWZpbmVkOwogICBkb24ndCB1c2Ugc3RybmR1cCAocG9ydGFiaWxpdHkpCgoyMDEwLTA3LTE1IDAxOjM1ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGVjayB0aGF0IHNvbWUgbmV3ZXIgb3BlbnNzbCBtYWNyb3MgYXJlIGRlZmluZWQgYmVmb3JlIHVzaW5nCiAgIHRoZW07IGluY2x1ZGUKICAgYXBwcm9wcmlhdGUgc3RyaW5nIGhlYWRlcgoKMjAxMC0wNy0xNSAwMTozNSAgcnN0b3J5CgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIGR0bHMgc3VwcG9ydCBpbiBvcGVuc3NsCgoyMDEwLTA3LTE1IDAxOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBkb24ndCBjb21waWxlIGR0bHMgZG9tYWluIGlmIG5vIGR0bHMgc3VwcG9ydCBpbiBvcGVuc3NsCgoyMDEwLTA3LTE1IDAxOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGlmZGVmIHByb3RlY3Rpb24gZm9yIGxhdGVyIHNoYSBhbGdvcml0aG1zCgoyMDEwLTA3LTE1IDAxOjM0ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW43LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgZGFyd2luIG9wZW5zc2wgZG9lcyBub3Qgc3VwcG9ydCBtb3JlIHJlY2VudCBzaGEgYWxnb3JpdGhtcwoKMjAxMC0wNy0xNSAwMTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIGZpeCB0eXBvIGluIGlmZGVmIHRlc3QKCjIwMTAtMDctMTUgMDE6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICBmaXggY3V0LW4tcGFzdGUgZXJyb3IgaW4gaW5jbHVkZWQgZmlsZSBuYW1lCgoyMDEwLTA3LTE0IDE1OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIGZpeCB0aGUgZml4OiBwdXQgUFJJeiBzcGVjIGluIGNvcnJlY3QgcGxhY2UKCjIwMTAtMDctMTQgMTU6MDMgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzOgoKICAgc3BlY2lmeSBTTk1QIHZlcnNpb24gb24gY29tbWFuZGxpbmUKCjIwMTAtMDctMTQgMTU6MDMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgcXVpZXQgY29tcGlsZXIKCjIwMTAtMDctMTQgMTU6MDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZ3MKCjIwMTAtMDctMTMgMjA6MDMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgICBhcHBzL3NubXB0bHMuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgaW5jbHVkZSBzc2wuaCBiZWZvcmUgY2VydF91dGlsLmgKCjIwMTAtMDctMTMgMjA6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIGRlYnVnIG91dHB1dCBmb3IgZm91bmQgY2VydAoKMjAxMC0wNy0xMyAxNjoyNCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHR5cG8gaW4gbG9nIG1zZwoKMjAxMC0wNy0xMiAxMDoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQ0hBTkdFUzogV2luMzIgYW5kIEN5Z3dpbjogbWFkZSBzdXJlIHRoYXQgYWNjZXNzaW5nIHRoZSBtaWJJSQogICBpbnRlcmZhY2VzIHRhYmxlIGRvZXMgbm90IHRyaWdnZXIgb3V0LW9mLXJhbmdlIGFycmF5IGFjY2Vzc2VzCiAgICh3YXMgZGV0ZWN0ZWQgYnkgQm91bmRzQ2hlY2tlcikuCgoyMDEwLTA3LTEyIDEwOjIxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeGVkIGEgZGFuZ2xpbmctcG9pbnRlci1yZWFkIHRoYXQgd2FzIGludHJvZHVjZWQgaW4gcjE5MDE4LiBJbgogICByMTkwMTggdGhlIHR5cGUgb2YgZ3JvdXBTdWJ0cmVlTGVuIHdhcyBjaGFuZ2VkIGZyb20gaW50IHRvCiAgIHNpemVfdCwgd2hpY2ggY2hhbmdlZCB0aGUgYmVoYXZpb3Igb2YgdGhlIGxvb3AgIndoaWxlCiAgIChncm91cFN1YnRyZWVMZW4tLSA+IDApIC4uLiI6IGluc3RlYWQgb2Ygbm90IGV4ZWN1dGluZyB0aGUgbG9vcAogICBib2R5IHdoZW4gZ3JvdXBTdWJ0cmVlTGVuIHdhcyBuZWdhdGl2ZSwgcjE5MDE4IGNhdXNlZCB0aGUgYm9keSBvZgogICB0aGF0IGxvb3AgdG8gYmUgZXhlY3V0ZWQuIERldGVjdGVkIGJ5IHJ1bm5pbmcgc25tcGQgdW5kZXIKICAgQm91bmRzQ2hlY2tlciB3aGlsZSBwZXJmb3JtaW5nIGEgTUlCIHdhbGsuCgoyMDEwLTA3LTEyIDEwOjEyICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgUmV2ZXJ0ZWQgcjE5MDQ3ICh3aGljaCB3YXMgd3JvbmcpIGFuZCBpbXBsZW1lbnRlZCBhIHByb3BlciBmaXgKICAgZm9yIHRoZSBjb21waWxlciB3YXJuaW5ncyBhYm91dCBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2hlcy4KCjIwMTAtMDctMTIgMTA6MDkgIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJlbW92ZWQgYW4gb2Jzb2xldGUgY29tbWVudC4KCjIwMTAtMDctMTIgMTA6MDggIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaDoKCiAgIFN1cHByZXNzZWQgbW9yZSBNU1ZDIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNy0xMiAwNDo0NSAgcnN0b3J5CgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVmFyczoKCiAgIGFkZCBjb21tZW50IHdpdGggb2JqZWN0IG5hbWUgZm9yIG51bWVyaWMgaWRzCgoyMDEwLTA3LTEyIDA0OjQ1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbmV3IGZ1bmN0aW9uIHRvIGdldCBzZXJ2ZXJJZCBmcm9tIHNubXBUbHN0bUFkZHJUYWJsZSBkYXRhOyB1c2UKICAgbmV3IGFwaQogICB0byBjb25maWcgc2VydmljZUlkIGZvciB0cmFwIHRyYW5zcG9ydCB3aGVuIHNlbmRpbmcgdHJhcHMKCjIwMTAtMDctMTEgMTE6MTggIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9uczoKCiAgIENIQU5HRVM6IEJVRzogMzAyNzkwMDogd2hlbiBjcm9zcy1jb21waWxpbmcgaXQgaXMgbm93IGFzc3VtZWQKICAgdGhhdCBtZW1jbXAoKSBpcyBhdmFpbGFibGUgaW5zdGVhZCBvZiBhc3N1bWluZyB0aGF0IGl0IGlzIG5vdAogICBhdmFpbGFibGUuCgoyMDEwLTA3LTExIDEwOjMwICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIEZpeGVkIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSByMTkxOTcuCgoyMDEwLTA3LTEwIDIwOjAwICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBzeW5jIHVwIGhlbHAgb3V0cHV0IGFuZCBvcHRpb25zIHByb2Nlc3NpbmcKCjIwMTAtMDctMDkgMTU6MTMgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZWQgQ3lnd2luIHNlY3Rpb24gaW4gUkVBRE1FLndpbjMyLgoKMjAxMC0wNy0wOSAxNToxMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQ0hBTkdFUzogV2luMzI6IFN1cHByZXNzZWQgImltcGxpY2l0IGNhc3QgZnJvbSBpbnQgdG8gdV9jaGFyIgogICB3YXJuaW5ncyBnZW5lcmF0ZWQgYnkgTVNWQy4KCjIwMTAtMDctMDkgMTU6MTEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBUZXN0aW5nOiBtYWRlIHRoZSBkZWJ1ZyBvdXRwdXQgdGhhdCBhcHBlYXJzIGluIHRoZSAiaW52b2tlZCIgZmlsZQogICBldmVuIG1vcmUgdmVyYm9zZS4KCjIwMTAtMDctMDkgMTU6MTAgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzLgoKMjAxMC0wNy0wOCAxOTozMCAgbWFyegoKICAgKiAgbG9jYWwvY2VydGdlbi10ZXN0LnBsLCBsb2NhbC9uZXQtc25tcC1jZXJ0LCAgIAogICAgICBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBhZGRzIHBlciBpZGVudGl0eSBjb25maWd1cmF0aW9uIGZpbGUgc3VwcG9ydCBzbyBkZWZhdWx0cyBjYW4gYmUKICAgY3VzdG9taXNlZCBvbiBjbWRsaW5lIHcgLWkgPGlkZW50aXR5PiAtIHNlZSBuZXQtc25tcC1jZXJ0LmNvbmYKICAgZm9yIGV4YW1wbGVzIGFuZCBzb21lIGhlbHAgaW5mbwoKMjAxMC0wNy0wOCAxMjoxNyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDMwMDM5ODE6IFByb3RlY3QgYWdhaW5zdCBidWZmZXIgb3ZlcmZsb3cKCjIwMTAtMDctMDggMTE6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMzAxOTI0MzogUmVnaXN0ZXIgZXhlY0ZpeCBjb21wYXRhYmlsaXR5CiAgIGRpcmVjdGl2ZSBjb3JyZWN0bHkuCgoyMDEwLTA3LTA3IDEwOjE5ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlOgoKICAgQ0hBTkdFUzogQ3lnd2luIGFuZCBNaW5HVzogdGVzdHMgVDExMCwgVDExMSwgVDExMiwgVDEyMCwgVDEyMSBhbmQKICAgVDEyMiBkbyBub3cgcGFzcyB3aGVuIHNubXBkIGlzIGJ1aWx0IHdpdGggd2luRXh0RExMIHN1cHBvcnQKICAgZW5hYmxlZC4KCjIwMTAtMDctMDYgMTg6NTkgIGJ2YXNzY2hlCgogICAqICBDaGFuZ2VMb2csIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ldmFsX3Rvb2xzLnNoOgoKICAgTWFkZSByZWdyZXNzaW9uIHRlc3RzIGVhc2llciB0byBkZWJ1ZyBieSBpbmNsdWRpbmcgb2sgLyBub3Qgb2sKICAgc3RhdHVzIGluIHRoZSAiaW52b2tlZCIgZmlsZS4KICAgU3BlbGxpbmcgZml4ZXM6IHJlbWViZXIgLT4gcmVtZW1iZXI7IHNlcGVyYXRvciAtPiBzZXBhcmF0b3IuCgoyMDEwLTA3LTA2IDE1OjA0ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9URVNUQ09ORi5zaDoKCiAgIFRlc3QgVDA2NSBkb2VzIG5vdyByZWFsbHkgcGFzcyBvbiBNaW5HVy4KCjIwMTAtMDctMDUgMTA6MDEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBBZGRlZCBjdXJseSBicmFjZXMgc3VjaCB0aGF0ICd8fCcgYW5kICcmJicgYXJlIGV2YWx1YXRlZCBpbiB0aGUKICAgY29ycmVjdCBvcmRlci4KCjIwMTAtMDctMDQgMTE6MzcgIGJ2YXNzY2hlCgogICAqIGFwcHM6CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTA3LTA0IDExOjM0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgRmFsbCBiYWNrIGZyb20gUlVORlVMTFRFU1RTIHRvIFJVTlRFU1RTIGlmIG5laXRoZXIgVEFQOjpIYXJuZXNzCiAgIG5vciBUZXN0OjpIYXJuZXNzIGlzIGF2YWlsYWJsZS4KCjIwMTAtMDctMDQgMTE6MjEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIE1hZGUgc3VyZSB0aGF0IHRoZSB0ZXN0IG51bWJlciBpbiAvdG1wL3NubXAtdGVzdHMtJHRlc3RudW0gaXMgc2V0CiAgIHRvIHNvbWV0aGluZyBtb3JlIG1lYW5pbmdmdWwgdGhhbiBqdXN0ICIwIi4KCjIwMTAtMDctMDQgMTE6MjAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBTcGxpdCBhIGxvbmcgY29tbWVudCBsaW5lLgoKMjAxMC0wNy0wNCAxMDo1MiAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEJ1ZyBmaXg6IG1hZGUgc3VyZSB0aGF0IHNyY2RpciBpcyBjb21wdXRlZCBjb3JyZWN0bHkgaWYgYGRpcm5hbWUKICAgJDBgID0gLgoKMjAxMC0wNy0wMiAxNjoyNyAgYnZhc3NjaGUKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIFNpbXBsaWZpZWQgcjE5MTgxIChGaXhlZCBUTFNUQ1AtZW5hYmxlZCBidWlsZCBmb3IgcGxhdGZvcm1zIHdpdGgKICAgbm9uLWVtcHR5ICQoRVhFRVhUKSwgaS5lLiBDeWd3aW4gYW5kIE1pbkdXKS4KCjIwMTAtMDctMDEgMTg6MTUgIGJ2YXNzY2hlCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBGaXhlZCBUTFNUQ1AtZW5hYmxlZCBidWlsZCBmb3IgcGxhdGZvcm1zIHdpdGggbm9uLWVtcHR5CiAgICQoRVhFRVhUKSwgaS5lLiBDeWd3aW4gYW5kIE1pbkdXLgoKMjAxMC0wNy0wMSAxODoxMSAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdGxzLmM6CgogICBGaXhlZCB5ZXQgYW5vdGhlciByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA3LTAxIDE3OjUzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgRml4ZWQgdHdvIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA3LTAxIDAwOjE5ICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMTAtMDctMDEgMDA6MTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA3LTAxIDAwOjAzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNi0zMCAyMzo1NSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNi5wcmUxIC0+IFY1LjYucHJlMgoKMjAxMC0wNi0zMCAyMzo1NSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNi0zMCAyMzo0OCAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBweXRob24vbmV0c25tcC90ZXN0cy9zbm1wZC5jb25mOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA2LTMwIDIzOjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1pc3NlZCB0d28gdG9rZW5zIGluIHRoZSBtYW4gcGdhZXMKCjIwMTAtMDYtMzAgMjM6NDUgIGhhcmRha2VyCgogICAqICBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBkLjguZGVmLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDaXBoZXJUZXN0cywgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NDcmwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzQWdlbnRUcmFwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXJTZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1RyYXBkVXNlciwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNVc2VycywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUc21QcmVmaXgsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgcmVuYW1lIHRoZSBkZWZYNTA5IHRva2VucyB0byBzb21ldGhpbmcgbW9yZSBmcmllbmRseTogY2xpZW50Q2VydAogICBhbmQgc2VydmVyQ2VydAoKMjAxMC0wNi0zMCAyMzo0NCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgdG9wLWZpbGUgY29tbWVudCB1cGRhdGVzCgoyMDEwLTA2LTMwIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZG9uJ3QgY2FsbCBjZXJ0X2ZpbmQgd2l0aCBhIE5VTEwgYXJndW1lbnQKCjIwMTAtMDYtMzAgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhbGxvdyBkZWYgY2VydHMgdG8gYmUgc3BlY2lmaWVkIHVzaW5nIGEgZmlsZW5hbWUKCjIwMTAtMDYtMzAgMjM6NDEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfcnVuOgoKICAgZml4IHN5bnRheCBlcnJvcgoKMjAxMC0wNi0zMCAyMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHR1cm4gYSBjb3VwbGUgb2Ygbm9uLWNyaXRpY2FsIGVycm9ycyBpbnRvIGRlYnVnIHN0YXRlbWVudHMgcGVyCiAgIGRpc2N1c3Npb24gd2l0aCByc3RvcnkKCjIwMTAtMDYtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWFrZSB0aGUgcmVnZXhwIHBhdHRlcm4gbWF0Y2ggZm9yIHRlc3RzIHRvIHJ1biBjYXNlIGluc2Vuc2l0aXZlCgoyMDEwLTA2LTMwIDIzOjAwICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnQucHk6CgogICBpbXBvcnQgc3RkZXJyIGZyb20gc3lzLCBwZXIgZGlzY3Vzc2lvbiBvbiAtdXNlcnMKCjIwMTAtMDYtMzAgMjI6MTcgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZCBiYWNrIGluIHRoZSBkZWZhdWx0IHBvcnQgc3BlY2lmaWVyCgoyMDEwLTA2LTMwIDIyOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZW5hYmxlIHB1bGxpbmcgdGhlIHByaXZhdGUga2V5IG92ZXIgaHR0cAoKMjAxMC0wNi0zMCAyMjoxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1vdmUgVVJMIGNvbGxlY3Rpb24gaW50byBhIHN1YiBmdW5jdGlvbgoKMjAxMC0wNi0zMCAyMjoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGFkZGVkIGFiaWxpdHkgdG8gcHVsbCBhIGNlcnQgZnJvbSBhIFVSTAoKMjAxMC0wNi0zMCAyMjoxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBhcmd1bWVudCBidWcgaW4gdGhlIGlzX3VybCBmdW5jdGlvbgoKMjAxMC0wNi0zMCAyMDo0OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGxzLmM6CgogICByZW1vdmUgZGVidWdnaW5nIGNvZGUKCjIwMTAtMDYtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExN0R0bHNDTlNlc3Npb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExN2R0bHNDTlNlc3Npb25fc2ltcGxlOgoKICAgcmVuYW1lIGZpbGUgZm9yIGNvbnNpc3RlbmN5CgoyMDEwLTA2LTMwIDIwOjAxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgc25tcHRscyBhcHAKCjIwMTAtMDYtMzAgMjA6MDAgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICByZW1vdmUgYWNjaWRlbnRhbGx5IGNoZWNrZWQgaW50IGRlYnVnIGNvZGUKCjIwMTAtMDYtMzAgMTk6NTkgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICBkZWZpbmUgT0lEcyBiYXNlZCBvbiBTTk1QX1RMU19UTV9CQVNFCgoyMDEwLTA2LTMwIDE5OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYzoKCiAgIGF1dG8tdHJhbnNpc3Rpb24gYmV0d2VlbiBub3RSZWFkeS9ub3RJblNlcnZpY2UKCjIwMTAtMDYtMzAgMTk6NTcgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oOgoKICAgYXV0by10cmFuc2lzdGlvbiBiZXR3ZWVuIG5vdFJlYWR5L25vdEluU2VydmljZTsgYWRkCiAgIHNubXBfc3RvcmVfbmVlZGVkIG9uIGNvbW1pdAoKMjAxMC0wNi0zMCAxOTo1NiAgcnN0b3J5CgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVzZSBuZXcgZmluZ2VycHJpbnQgcGFyc2UvYnVpbGQgZnVuY3Rpb25zOyByZW1vdmUgYmFkIGxlbmd0aAogICBjaGVjazsgYXV0bwogICB0cmFuc2l0aW9uIGJldHdlZW4gbm90UmVhZHkgYW5kIG5vdEluU2VydmljZQoKMjAxMC0wNi0zMCAxOTo1NSAgcnN0b3J5CgogICAqIG1pYnMvVExTVE0tTUlCLnR4dDoKCiAgIHJlbW92ZSBwcmUtcmZjIG1pYjsgc2VlIFNOTVAtVExTLVRNLU1JQi50eHQgaW5zdGVhZAoKMjAxMC0wNi0zMCAxOTo1NCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIGNvbnNvbGlkYXRlIG11bHRpcGxlIGZpbGVzCgoyMDEwLTA2LTMwIDE5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbWFrZSBoYXNoIHR5cGUgcGFyc2Ugcm91dGluZSBwdWJsaWM7IGFkZCByb3V0aW5lcyB0byBidWlsZC9wYXJzZQogICBTbm1wVExTRmluZ2VycHJpbnQKCjIwMTAtMDYtMzAgMTk6NTEgIHJzdG9yeQoKICAgKiAgTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRscy5jLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIE5FV1M6IHNubXB0bHM6IG5ldyBhcHAgZm9yIG1hbmFnaW5nIChEKVRMUyBjb25maWcgdmlhCiAgIFNOTVAtVExTLVRNLU1JQiB0YWJsZXMKCjIwMTAtMDYtMzAgMTk6NTAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEV4cHJlc3Npb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jOgoKICAgY2FsbCBuZXcgc25tcF9zdG9yZV9uZWVkZWQoKSBmdW5jdGlvbiBhZnRlciBhIGNvbW1pdCBpbiB0YWJsZXMKICAgdGhhdAogICBoYXZlIHBlcnNpc3RlbnQgc3RvcmUKCjIwMTAtMDYtMzAgMTk6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgTkVXUzogc25tcGxpYjogbmV3IGV4cGVyaW1lbnRhbCBzaW1wbGUgc3RhdGUgbWFjaGluZQogICBORVdTOiBzbm1wbGliOiBuZXcgZXhwZXJpbWVudGFsIHJvdyBjcmVhdGlvbiBBUEkgd2hpY2ggdXNlcyBhCiAgIHN0YXRlIG1hY2hpbmUKICAgdG8gdHJ5IHJlYWxseSBoYXJkIHRvIGNyZWF0ZSBhIHJvdyBmcm9tIGEgZ2l2ZW4gdmFyYmluZCBsaXN0CgoyMDEwLTA2LTMwIDE5OjQ4ICByc3RvcnkKCiAgICogIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE5FV1M6IHNubXBkOiBuZXcgQVBJIGZvciBpbmRpY2F0aW5nIHRoYXQgcGVyc2lzdGVudCBzdG9yZSBuZWVkcwogICB0byBiZSBzYXZlZCBhZnRlciB0aGUgY3VycmVudCByZXF1ZXN0IGZpbmlzaGVzIHByb2Nlc3NpbmcKCjIwMTAtMDYtMzAgMTk6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGFkZCBzb21lIG5ldyB3cmFwcGVyIG1hY3JvcwoKMjAxMC0wNi0zMCAxNTo1OSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzQ05TZXNzaW9uLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NhblNlc3Npb24sICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzU2VydmVyU2Vzc2lvbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTVEdGxzU2FuU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE2VGxzU2FuU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE3ZHRsc0NOU2Vzc2lvbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE4VGxzQ05TZXNzaW9uX3NpbXBsZToKCiAgIGFkZGVkIGNoZWNrcyBmb3IgY2hlY2tpbmcgZGlyZWN0IHBhc3Npbmcgb2YgbG9jYWxob3N0IHRvIHRoZQogICBleHBlY3RlZCBuYW1lCgoyMDEwLTA2LTMwIDE1OjU5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NlcnZlcjoKCiAgIGNoZWNrIGZvciB3aWxkY2FyZCBzdXBwb3J0CgoyMDEwLTA2LTMwIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHN1cHBvcnQgU0FOIGFuZCBDTiB3aWxkY2FyZCBtYXRjaGluZyBwZXIgc3BlYwoKMjAxMC0wNi0zMCAxNTowMCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ2lwaGVyVGVzdHMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TQ3JsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc0FnZW50VHJhcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNOYW1lLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1NhbiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1NUbHNTZXJ2ZXIsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVGxzVHJhcGRVc2VyLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1VzZXJzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU1Rsc1ZhcnMsICAKICAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TVHNtUHJlZml4LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NpcGhlclRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc25hbWV0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzYW50ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdHNtcHJlZml4LCAKICAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMUR0bHNVc2VyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDFkdGxzdWRwdXNlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJUbHNVc2VyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMDJ0bHN0Y3B1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMUR0bHNTZXJ2ZXJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMWR0bHN1ZHBzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEyVGxzU2VydmVyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEzRHRsc1Nhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTEzZHRsc3VkcHNhbl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTE0VGxzU2FuX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTR0bHN0Y3BzYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMUR0bHNUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjFkdGxzdWRwdHJhcHRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJUbHNUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMjJ0bHN0Y3B0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMUR0bHNBZ2VudFRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMWR0bHN1ZHBhZ2VudHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMyVGxzQWdlbnRUcmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMzJ0bHN0Y3BhZ2VudHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQxRHRsc0NybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQxZHRsc3VkcGNybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTQyVGxzQ3JsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNDJ0bHN0Y3Bjcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MUR0bHNDaXBoZXJzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxNTFkdGxzY2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUyVGxzQ2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUydGxzY2lwaGVyc19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwVGxzSXB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMjAwdGxzaXB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAwVGxzUGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMHRsc3RjcHBlcmwudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QzMDFEdGxzUGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMWR0bHNwZXJsLnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAxRHRsc1RzbVByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAxZHRsc3RzbXByZWZpeF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UNDAyVGxzVHNtUHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDJ0bHN0c21wcmVmaXhfc2ltcGxlOgoKICAgbW92ZWQgdGVzdCBmaWxlcyBhcm91bmQgZm9yIGJldHRlciBuYW1pbmcKCjIwMTAtMDYtMzAgMTQ6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBkdGxzIHRyYW5zcG9ydCBhZGRyZXNzIHRvIHRoZSBleHBlY3RlZCBob3N0bmFtZQoKMjAxMC0wNi0zMCAxNDo1OCAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2V0IHRoZSBleHBlY3RlZCBob3N0bmFtZSBmcm9tIHRoZSB0cmFuc3BvcnQgc3RyaW5nIGlmIHBvc3NpYmxlCgoyMDEwLTA2LTMwIDE0OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYSBiaXQgbW9yZSBoZWxwIG91dHB1dCBieSBkZWZhdWx0CgoyMDEwLTA2LTI5IDIyOjI5ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2F1dGguYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE5MTE2OiBtYWtlIHN1cmUgd2UgaW5jbHVkZSBhZ2VudCBjb25maWcKCjIwMTAtMDYtMjkgMjI6MTggIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmg6CgogICBBZGQgbWlzc2luZyBjb25maWdfcmVxdWlyZXMKCjIwMTAtMDYtMjkgMTc6MzMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgcmV3b3JrIHRoZSBzbm1wY21kIG1hbnVhbCBwYWdlIHRvIHNlcGFyYXRlIG91dCB0aGUgZmxhZ3MgaW50bwogICBzZWN0aW9ucyBhcHByb3ByaWF0ZSBmb3IgdGhlaXIgdXNhZ2UgdHlwZQoKMjAxMC0wNi0yOSAxNjo1MSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcG9kIGRvY3MsIHNvbWUgZGVmYXVsdCB2YWwgZml4ZXMsIGluZm8gb3V0cHV0IG5vcm1hbGl6ZWQKCjIwMTAtMDYtMjkgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIGFkZGVkIHNzaC5oIGluY2x1ZGUKCjIwMTAtMDYtMjkgMTY6MjcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgcmVvcmdhbml6ZSB0aGUgbWFudWFsIHBhZ2UgYSBiaXQgZm9yIFNOTVB2MyBhbmQgVExTCgoyMDEwLTA2LTI5IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGRlZmF1bHQgdGxzIHJlZ2lzdHJhdGlvbnMKCjIwMTAtMDYtMjkgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGNoZWNrIGZvciBOVUxMIHRyYW5zcG9ydHMgYWZ0ZXIgYW4gb3BlbiBmYWlscwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZpbmcgbG9nZ2luZyBhcm91bmQgc28gdGhhdCBvcGVuc3NsIGVycm9ycyBhcmUgcHJpbnRlZCBvbgogICBmYWlsdXJlcwoKMjAxMC0wNi0yOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY3JsdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdHNtcHJlZml4OgoKICAgZml4IHNvbWUgbm9uLWludGVyYWN0aXZlIGludm9jYXRpb24gaXNzdWVzCgoyMDEwLTA2LTI5IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgc29tZSBjb21tb24gY29kZSBpbnRvIGEgY29tbW9uIGZ1bmN0aW9uCgoyMDEwLTA2LTI4IDE5OjEzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TY2lwaGVyVGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTUxZHRsc2NpcGhlcnNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE1MnRsc2NpcGhlcnNfc2ltcGxlOgoKICAgY2lwaGVyIHN1aXRlIHNlbGVjdGlvbiBhbmQgdGVzdHMgZm9yIGl0CgoyMDEwLTA2LTI4IDE5OjEyICBoYXJkYWtlcgoKICAgKiBweXRob24vTElDRU5TRToKCiAgIGxpY2Vuc2UgdXBkYXRlcwoKMjAxMC0wNi0yOCAxOToxMiAgaGFyZGFrZXIKCiAgICogIHB5dGhvbi9SRUFETUUsIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weSwgICAKICAgICAgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIFNOTVB2MyBvdmVyIFRMUyBzdXBwb3J0CgoyMDEwLTA2LTI4IDE5OjEyICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgYmV0dGVyIG91dHB1dCBzaG93aW5nIHRlc3QgdHlwZXMKCjIwMTAtMDYtMjggMDA6NTQgIHRhbmRlcnMKCiAgICogIG1hbi9taWJfYXBpLjMuZGVmLCBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9jb250YWluZXIuMywgIAogICAgICAgbWFuL25ldHNubXBfZXhhbXBsZV9zY2FsYXJfaW50LjMsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlLjMsIG1hbi9zbm1wY21kLjEuZGVmLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBDSEFOR0VTOiBtYW46IGNsZWFuIHVwIG1hbnVhbCBwYWdlcwogICAoZnJvbSBEZWJpYW4gcGF0Y2ggNTZfbWFucGFnZSkKCjIwMTAtMDYtMjcgMjM6MjkgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IERvIG5vdCBjYWxsIHZhY21fc3RhbmRhcmRfdmlld3MoKSBvcgogICBpbml0X3ZhY21fY29uZmlnX3Rva2VucygpIGlmIHRoZSBjb3JyZXNwb25kaW5nIG1vZHVsZSB3YXMgbm90CiAgIGNvbXBpbGVkCiAgIChmcm9tIERlYmlhbiBwYXRjaCA2MV92YWNtX21pc3NpbmdfZGVwZW5kZW5jeV9jaGVjaykKCjIwMTAtMDYtMjcgMDM6MjMgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZpeCBhcHAgdGFnIGNvbXBsZXRpb25zCgoyMDEwLTA2LTI3IDAwOjU2ICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQsIGxvY2FsL25ldC1zbm1wLWNlcnQuY29uZjoKCiAgIGhhbmRsZSBjb25maWcgZmlsZSBzZXR0aW5nIGludGVyYWN0aXZlLCB0cnVlL2ZhbHNlIHZhbHVlcyBoYW5kbGVkCiAgIGluIGNvbmZpZwoKMjAxMC0wNi0yNiAyMDo1OCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IHNvbWUgYnVncyB3LyBzcGFjZXMgaW4gbmFtZXMgYW5kIGFwcCB0YWcgaGVscAoKMjAxMC0wNi0yNiAxOTozOCAgbWFyegoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1MzMDB0bHNwZXJsLnBsLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgZml4IHRlc3RzIHRvIHVzZSBub24taW50ZXJhY3RpdmUgLUkKCjIwMTAtMDYtMjYgMTc6NDYgIG1hcnoKCiAgICogbG9jYWwvY2VydGdlbi10ZXN0LnBsLCBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYmV0dGVyIGludGVyYWN0aXZlLCA/PWhlbHAsIDx0YWI+IGNvbXBsLCBtb3JlIGhlbHAsIFNBTiBsb29wCiAgIGZvcm1hdCBhbmQgdGVybWluYXRpb24gZml4LCB0b2xlcmF0ZSBzcGFjZXMgaW4gZmllbGRzIGFuZAogICBmaWxlbmFtZXMsIG1vcmUgY29tcGxldGUgZXJyb3Igb3V0cHV0LCBlbWJyeW9uaWMgaW1wb3J0IGZyb20gdXJsCgoyMDEwLTA2LTI2IDEzOjQ4ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIE1vcmUgY29tcGlsZXIgd2FybmluZyBmaXhlcy4KCjIwMTAtMDYtMjYgMTM6NDcgIGJ2YXNzY2hlCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGaXhlZCB0aGUgZXJyb3JzIGluIGFjY29uZmlnLmggYW5kIHJlZ2VuZXJhdGVkCiAgIG5ldC1zbm1wLWNvbmZpZy5oLmluLgoKMjAxMC0wNi0yNiAxMzo0NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyB0cmlnZ2VyZWQgYnkgU01VWCBNSUIgaW1wbGVtZW50YXRpb24uCgoyMDEwLTA2LTI2IDAwOjQ1ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NhbnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExM2R0bHN1ZHBzYW5fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExNHRsc3RjcHNhbl9zaW1wbGU6CgogICBmaXhlcyBhbmQgdGVzdGluZyBmb3IgY2hlY2tpbmcgU0FOIEROUyBuYW1lcyBmcm9tIHRoZSBzZXJ2ZXIKCjIwMTAtMDYtMjYgMDA6NDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc25hbWV0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHNzZXJ2ZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTFkdGxzdWRwc2VydmVydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDExMnRsc3RjcHNlcnZlcnRlc3RzX3NpbXBsZToKCiAgIGdlbmVyaWNpemUgdGhlIHNlcnZlciBuYW1lIHRlc3RzCgoyMDEwLTA2LTI1IDIzOjAxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21Db25maWd1cmF0aW9uVXNlUHJlZml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbUNvbmZpZ3VyYXRpb25Vc2VQcmVmaXguaCwgICAKICAgICAgc25tcGxpYi9zbm1wdHNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3RzbXByZWZpeCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDFkdGxzdHNtcHJlZml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Q0MDJ0bHN0c21wcmVmaXhfc2ltcGxlOgoKICAgdXNlcHJlZml4IHNjYWxhciB0ZXN0aW5nIGFuZCBzdXBwb3J0CgoyMDEwLTA2LTI1IDIzOjAxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBsaW5lcwoKMjAxMC0wNi0yNSAyMzowMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1Njcmx0ZXN0czoKCiAgIHB1dCBpbiBvbmx5IG1pbmltaWFsIGRlYnVnIGZsYWdzCgoyMDEwLTA2LTI1IDIzOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU2NybHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MWR0bHN1ZHBjcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDE0MnRsc3RjcGNybF9zaW1wbGU6CgogICBjb2RlIGFuZCB0ZXN0IGNhc2VzIGZvciBDUkwgaGFuZGxpbmcKCjIwMTAtMDYtMjUgMTU6MjQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGU6CgogICBBZGRlZCBhIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiBlYWNoIGxpbmUgcHJpbnRlZCBieSB0aGUgUGVybAogICBpbnRlcnByZXRlci4KCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVkdWNlIG51bWJlciBvZiByZXNlbmQgYXR0ZW1wdHMgYW5kIHRpbWVvdXQKCjIwMTAtMDYtMjUgMTM6MDggIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgd2FybmluZyBmaXhlcwoKMjAxMC0wNi0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHJlbW92ZSBsb2dpYyB0eXBvIGZyb20gcHJldmlvdXMgY29tbWl0CgoyMDEwLTA2LTI1IDEzOjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDIwMHRsc2lwdjZfc2ltcGxlOgoKICAgSVB2NiBmaXhlcyBmb3IgVENQCgoyMDEwLTA2LTI1IDEzOjAxICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2ZXJ0aW5nIDE5MDk1LCBpdCBicmVha3MgdGVzdHMKCjIwMTAtMDYtMjUgMDk6NDAgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhbnNsYXRlOiBmaXhlZCBwcmludGluZyBvZiByYW5nZXMgd2l0aCBVTlNJR05FRAogICB0eXBlLgoKMjAxMC0wNi0yNCAyMzo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBmaXggZnVuY3Rpb24gbmFtZXMgZm9yIHN0YXQgaW5jcmVhc2VzCgoyMDEwLTA2LTI0IDIzOjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCBlcnJvcnMgaW4gY29tbWVudHMKCjIwMTAtMDYtMjQgMjM6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29tbWVudHMgZm9yIDUuNCBmb3IgZHRscwoKMjAxMC0wNi0yNCAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjb21tZW50cyBmb3IgNS4zLjIKCjIwMTAtMDYtMjQgMjM6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2xpZW50IHNpZGUgY29ubmVjdCBjb21tZW50cwoKMjAxMC0wNi0yNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb3VudGVyIGFuZCBjb21tZW50IGltcHJvdmVtZW50cwoKMjAxMC0wNi0yNCAyMzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICB1cGRhdGUgY291bnRlciBjYWxscyBhbmQgY29tbWVudCB0ZXh0CgoyMDEwLTA2LTI0IDE5OjAzICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgTW92ZWQgTERfTElCUkFSWV9QQVRIIHNldHVwIGZyb20gaW5kaXZpZHVhbCB0ZXN0cyBzY3JpcHRzIHRvCiAgIHNpbXBsZV9URVNUQ09ORi5zaC4KCjIwMTAtMDYtMjQgMTk6MDIgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIEZpeGVkIGEgY29tbWVudC4KCjIwMTAtMDYtMjQgMTc6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oOgoKICAgU2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZCBpbiByMTkwODQuCgoyMDEwLTA2LTI0IDE3OjQ3ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDYtMjQgMTI6MzAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICAidGVzdCAtZSIgaXNuJ3QgcG9ydGFibGU7IHVzZSAidGVzdCAteCIgaW5zdGVhZCBmb3IgdGhlIFBlcmwKICAgc3lzdGVtKCkKICAgY2hlY2sKCjIwMTAtMDYtMjMgMTE6MTQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHZhbHVlIG9mIElQLU1JQjo6aXB2NkludGVyZmFjZUZvcndhcmRpbmcgb24KICAgTGludXgKICAgCiAgIFRoZSB2YWx1ZSB3YXMgMCAobm90IGZvcndhcmRpbmcpIG9yIDEgKGZvcndhcmRpbmcpLCBzaG91bGQgYmUgMgogICBhbmQgMQogICBpbnN0ZWFkIC0gbmV0c25tcF9pbnRlcmZhY2VfZW50cnkuZm9yd2FyZGluZ192NiBpcyBib29sZWFuLCBub3QKICAgVHJ1dGhWYWx1ZS4KCjIwMTAtMDYtMjIgMjM6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIHN1cHBvcnQgZm9yIGNlcnRTZWNOYW1lIG1hcHBpbmcgZnJvbSBhIGxvY2FsIGNlcnQgZmlsZSBuYW1lIGFuZCBhCiAgIHRlc3QgZm9yIGl0CgoyMDEwLTA2LTIyIDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRvY3VtZW5hdGlvbiB1cGRhdGUgdG8gY2xlYW4gdXAgYW5kIGluY2x1ZGUgVExTIHBhcmFtZXRlcnMKCjIwMTAtMDYtMjIgMjI6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54czoKCiAgIHN1cHBvcnQgZm9yIHBhc3NpbmcgaWRlbnRpdGllcyBhbmQgZnVsbCB3b3JraW5nIHZlcnNpb24KCjIwMTAtMDYtMjIgMjI6NDQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvUzMwMHRsc3BlcmwucGwsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMzAwdGxzdGNwcGVybC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDMwMWR0bHNwZXJsLnQ6CgogICBwZXJsIFRMUy9EVExTIHRlc3RzCgoyMDEwLTA2LTIyIDIyOjQzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbSwgcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXJzdCBwdGFjaCBvbiBTTk1QL1RMUyBjcmVhdGluZyBhIG5ldyBzZXNzaW9uIGZ1bmN0aW9uCgoyMDEwLTA2LTIyIDIyOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpcnN0IHdvcmtpbmcgc3VwcG9ydCBmb3IgYSBkZWxheWVkIGNsb3NlKCkgdG8gYXR0ZW1wdCB0byBzZW5kaW5nCiAgIG91dHN0YW5kaW5nIHBhY2tldHMgaW4gdGhlIHF1ZXVlOyB0aGlzIGlzIHJlcXVpcmVkIGZvciBzbm1wdHJhcAogICB0byB3b3JrIGF0IGFsbCB3aGVuIHNlbmRpbmcgdHJhcHMgKG5vdCBpbmZvcm1zKSBvdmVyIERUTFMKCjIwMTAtMDYtMjIgMTk6MDMgIGJ2YXNzY2hlCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjVhZ2VudGV4dGVuZF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX1RFU1RDT05GLnNoOgoKICAgQ0hBTkdFUzogTWluR1c6IHRlc3RzIFQwNTkgYW5kIFQwNjUgZG8gbm93IHBhc3MuCgoyMDEwLTA2LTIyIDE5OjAxICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBUaGUgd2lkdGggYXJndW1lbnQgZm9yICUuKmQgbXVzdCBoYXZlIHR5cGUgaW50LCBub3Qgc2l6ZV90LiBUaGlzCiAgIGJ1ZyB3YXMgaW50cm9kdWNlZCBpbiByMTkwMTQuCgoyMDEwLTA2LTIyIDE4OjU3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgQ0hBTkdFUzogTWluR1c6IHJ1bl9zaGVsbF9jb21tYW5kKCkgd2l0aCBlaXRoZXIgaW5wdXQgb3Igb3V0cHV0CiAgIChidXQgbm90IGJvdGgpIGRvZXMgbm93IHdvcmsuCiAgIFRoaXMgZGlkIG5vdCB3b3JrIHVudGlsIG5vdyBiZWNhdXNlIG9uIE1pbkdXIG1rc3RlbXAoKSBnZW5lcmF0ZXMKICAgYSBNaW5HVy1zdHlsZSBwYXRoICgvdG1wLy4uLikgd2hpbGUgc3lzdGVtKCkgaW52b2tlcyBjbWQuZXhlIGFuZAogICBoZW5jZSBleHBlY3RzIGEgV2luZG93cy1zdHlsZSBwYXRoIChDOlwuLi4pLgoKMjAxMC0wNi0yMiAxNzozOSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIEFsc28gcmVwb3J0IHRoZSBwb3J0IHNwZWNpZmljYXRpb24gaWYgWyAkU05NUF9WRVJCT1NFIC1ndCAwIF0uCgoyMDEwLTA2LTIyIDE3OjM4ICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjB0cmFwZHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNjFhZ2VudHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlOgoKICAgUmVwbGFjZWQgYW4gZXhwbGljaXQgdGVzdCBmb3IgTWluR1cgYnkgYSB0ZXN0IG9uIEhBVkVfU0lHSFVQLgoKMjAxMC0wNi0yMiAxNzozNiAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIFNJR0hVUC4KCjIwMTAtMDYtMjIgMTc6MzUgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBSZXBvcnQgd2hpY2ggdGVzdHMgZmFpbGVkLCBpZiBhbnkuCgoyMDEwLTA2LTIyIDA4OjM3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIEZpeGVkIGFuIGVycm9yIGluIGEgY29tbWVudCBibG9jay4KCjIwMTAtMDYtMjEgMTk6MjYgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGU6CgogICBSZWFycmFuZ2VkIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHRlc3Qgc3VjaCB0aGF0IGl0IGlzIG5vCiAgIGxvbmdlciBuZWNlc3NhcnkKICAgdG8gaW52b2tlIHNpbXBsZV9ldmFsX3Rvb2xzLnNoIHdoZW4gdGhpcyBzY3JpcHQgaXMgaW52b2tlZCBhcyBhCiAgIHRyYXAgaGFuZGxlcgogICBieSBzbm1wdHJhcGQuCgoyMDEwLTA2LTIxIDA4OjAxICBkdHMxMgoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgRW5zdXJlIHRoYXQgZmRzZXQgc3RydWN0dXJlIGlzIHJlc2l6ZWQgc3VmZmljaWVudGx5CiAgIHRvIGFjY29tb2RhdGUgdGhlIHNwZWNpZmllZCBzb2NrZXQgSUQuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgU2hpeWFsZWkuCgoyMDEwLTA2LTIwIDE5OjMyICBkdHMxMgoKICAgKiAgc25tcGxpYi9jZXJ0X3V0aWwuYywgc25tcGxpYi9jbXVfY29tcGF0LmMsIHNubXBsaWIvcGtjcy5jLCAgIAogICAgICBzbm1wbGliL3NucHJpbnRmLmM6CgogICBBdm9pZCBkdXBsaWNhdGUgKHVudXNlZCkgc3ltYm9scy4KCjIwMTAtMDYtMjAgMTk6MzEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGU6CgogICBDb21tZW50ZWQgb3V0IGRlYnVnIGNvZGUuCgoyMDEwLTA2LTIwIDE5OjMwICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3NpbXBsZV9ydW46CgogICBSZXN0b3JlZCBzdW1tYXJ5IHN1Y2Nlc3MvZmFpbHVyZSBjb3VudCByZXBvcnRpbmcuCiAgIEFsc28sIG1vdmVkIGtpbGwuZXhlIHRlc3QgYmFjayB0byBSVU5URVNUUy4KCjIwMTAtMDYtMjAgMTk6MjkgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBhZGQgdGhlIHRlc3QgbmFtZSB0byB0aGUgc3RhcnQgb2YgdGhlIGZpbGUKICAgImludm9rZWQiLgoKMjAxMC0wNi0yMCAxOToyNyAgYnZhc3NjaGUKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZToKCiAgIENIQU5HRVM6IE1pbkdXOiB0ZXN0aW5nOiBza2lwIHRoZSB0ZXN0cyB0aGF0IHJlcXVpcmUgU0lHSFVQIHNpbmNlCiAgIE1pbkdXIGRvZXMgbm90IHN1cHBvcnQgU0lHSFVQLgoKMjAxMC0wNi0yMCAxNToxOSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBBZGRlZCBhIGNvbmZpZ3VyZSB0ZXN0IHRoYXQgZGV0ZWN0cyB3aGV0aGVyIG9yIG5vdCBQZXJsJ3MKICAgc3lzdGVtKCkgZnVuY3Rpb24KICAgaW52b2tlcyBhIFBPU0lYIHNoZWxsLiAibWFrZSB0ZXN0IiBkb2VzIG5vdyBmYWxsIGJhY2sgdG8gUlVOVEVTVFMKICAgaWYgbm90LgoKMjAxMC0wNi0yMCAxNToxNiAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NEJhc2VEb21haW4uYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBNaW5HVyAtLSBhZGRlZCAjaW5jbHVkZSA8bmV0LXNubXAvdHlwZXMuaD4gd2hlcmUKICAgbmVjZXNzYXJ5LgogICBOb3RlOiBhbHRob3VnaCA8bmV0LXNubXAvdHlwZXMuaD4gaXMgaW5jbHVkZWQgaW5kaXJlY3RseSBmcm9tIHRoZQogICAqICAgICAqdHJhbnNwb3J0LmggICAgaGVhZGVyIGZpbGVzLCB0aGVzZSAjaW5jbHVkZSBzdGF0ZW1lbnRzIGFyZQogICAgICBuZWNlc3NhcnkgYmVjYXVzZSBvZiAgICBhIHBlc2t5ICAgIGNpcmN1bGFyIGRlcGVuZGVuY2UgYmV0d2VlbgogICAgICA8bmV0LXNubXAvdHlwZXMuaD4gYW5kICAgIDxuZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg+LiAKICAgICAgMjAxMC0wNi0yMCAxNToxMiAgYnZhc3NjaGUKCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1bjoKCiAgIENIQU5HRVM6IE1pbkdXOiByZWZ1c2UgdG8gcnVuIHRoZSByZWdyZXNzaW9uIHRlc3RzIGlmIGtpbGwuZXhlCiAgIGNhbm5vdCBiZSBmb3VuZC4KCjIwMTAtMDYtMjAgMTU6MTEgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBTaG9ydGVuZWQgdGhlIHNyY2RpciBwYXRoIGJ5IG1ha2luZyBzdXJlIHRoYXQgaXQgZG9lcyBub3QgY29udGFpbgogICAvLi4KCjIwMTAtMDYtMTkgMTg6MzAgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgcnVubmluZyBSVU5GVUxMVEVTVFMgd2l0aCBUZXN0OjpIYXJuZXNzIGluCiAgIGFub3RoZXIgZGlyZWN0b3J5IHRoYW4gdGhlIHNvdXJjZSBkaXJlY3RvcnkuCgoyMDEwLTA2LTE5IDE2OjQxICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuaDoKCiAgIGNvbXBsZXRlIHJld3JpdGUgb2YgcGFyYW1zIHRvIHVzZSB0YWJsZV9kYXRhc2V0IGluc3RlYWQgb2YKICAgY3JlYXRlLWRhdGFzZXQKCjIwMTAtMDYtMTkgMTY6NDEgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgdXNlIHRleHQgZm9yIGhhc2ggdHlwZSBpbiBwZXJzaXN0ZW50IHN0b3JlCgoyMDEwLTA2LTE5IDE2OjQwICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wNi0xOSAxNjo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IG1pc3Npbmcgc3BlY2lmaWVyIGluIGRlYnVnCgoyMDEwLTA2LTE5IDE2OjM5ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXNlIGRlZmluZSBpbnN0ZWFkIG9mIGNvbnN0YW50OyBmaXggY2hlY2sgZm9yIHJvd3MgdG8gc2F2ZQoKMjAxMC0wNi0xOSAxNjozOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCByZW1vdmUvZmluZCBmdW5jdGlvbiBmb3IgbWFwcy9hZGRycy9wYXJhbXM7IHJlbmFtZSBwYXJhbXMKICAgdGFnLT5uYW1lOwogICBkZXN0cm95IC0+IGZyZWU7IGdyb3VwIHJlY2VudCB0cnVzdCBmdW5jdGlvbnMgdG9nZXRoZXIgaW4gc3JjOwogICBkb24ndCBzdG9yZQogICBwYXJhbXMgZnAgYXMgYmluYXJ5OyBoYW5kIHRleHQgYXJncyBmb3IgaGFzaCB0eXBlIChlLmcgLS1zaGExKQoKMjAxMC0wNi0xOCAxNTozNSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIENIQU5HRVM6IEN5Z3dpbjogY29ycmVjdGVkIGVycm9yIGhhbmRsaW5nIGluIG1pYklJL2F0LgoKMjAxMC0wNi0xOCAwNzoyMyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTA2LTE4IDAxOjQyICBtYWdmcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBEbyBub3QgZGVmaW5lIHJldCB0d2ljZSB3aGVuIE5FVFNOTVBfVVNFX0lOVEVSTkFMX0NSWVBUTyBpcyBzZXQuCgoyMDEwLTA2LTE4IDAxOjM5ICBtYWdmcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgQ29ycmVjdGVkIHR5cG8uCgoyMDEwLTA2LTE4IDAwOjMxICBoYXJkYWtlcgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgYmV0dGVyIE5FV1MgYW5kIENIQU5HRVMgZmlsZXMKCjIwMTAtMDYtMTcgMjA6MzkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDEwLTA2LTE3IDIwOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMTAtMDYtMTcgMTg6NTkgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNSAtPiBWNS42LnByZTEKCjIwMTAtMDYtMTcgMjA6MzEgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAxMC0wNi0xNyAxODo1OSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODo1NSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDEwLTA2LTE3IDE4OjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAxMC0wNi0xNyAxODozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICByZS1lbmFibGUgc29tZSBjb21tYW5kcwoKMjAxMC0wNi0xNyAxNzo0NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzOgoKICAgZm9yZ290IG1pc3NpbmcgcXVvdGVzIGluIFNFVCBvdXRwdXQKCjIwMTAtMDYtMTcgMTc6NDYgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnM6CgogICB0bHMgdGVzdGluZyBjbGVhbnVwCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBmaXhlcyBmb3IgYWRkcmVzcyBwcmludGluZzsgbW9yZSB0byBjb21lCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9zdGx5IHByb3Blcmx5IHNldCByZW1vdGUvbG9jYWwgdHJhbnNwb3J0IHBhcmFtZXRlcnMKCjIwMTAtMDYtMTcgMTc6NDUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc2FnZW50dHJhcHRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEzMWR0bHN1ZHBhZ2VudHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTMydGxzdGNwYWdlbnR0cmFwdGVzdHNfc2ltcGxlOgoKICAgdGVzdHMgZm9yIGFnZW50cyBzZW5kaW5nIG9mIHRyYXBzIG92ZXIgKEQpVExTCgoyMDEwLTA2LTE3IDE3OjQ1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIxZHRsc3VkcHRyYXB0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTIydGxzdGNwdHJhcHRlc3RzX3NpbXBsZToKCiAgIG1vdmUgZXhwb3J0IHN0YXRlbWVudHMgdG8gdGhlIHN1cHBvcnQgZmlsZSBmb3Igc2ltcGxpY2l0eQoKMjAxMC0wNi0xNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlIHRscyBib290c3RyYXBwaW5nIHRvIHBvc3RfcHJlbWliIHNvIG90aGVyIGNvbmZpZyB0b2tlbnMgY2FuCiAgIHVzZSB0aGUgY2VydCBsb2FkaW5nIHJlc3VsdHMKCjIwMTAtMDYtMTcgMTc6NDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwNHNubXBfZW51bV9jbGliLmM6CgogICBhZGRlZCBzbm1wX2VudW0gdGVzdHMgcHVsbGVkIGZyb20gdGhlIG1haW4oKSB0ZXN0IGF0IHRoZSBib3R0b20KICAgb2YgdGhlIG9yaWdpbmFsIC5jIGZpbGUKCjIwMTAtMDYtMTcgMTY6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgRWxpbWluYXRlICJkaWZmZXIgaW4gc2lnbmVkbmVzcyIgd2FybmluZwoKMjAxMC0wNi0xNyAwMDoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBCYXNlRG9tYWluLmM6CgogICByZXZlcnQgVURQIGNoYW5nZXMgZnJvbSByMTg5ODQgc2luY2UgaXQgYnJva2UgdGhlIFVEUCB0cmFuc3BvcnQ7CiAgIHRoZSBzdHJ1Y3QgcHJvYmFibHkgbmVlZHMgdG8gbWF0Y2ggYW5vdGhlciBzdHJ1Y3Qgc29tZXdoZXJlIGVsc2UKCjIwMTAtMDYtMTYgMjM6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYSBuZXcgS0VZV09SRCBvdXRwdXQgZm9yIGRlYnVnZ2luZyBwdXJwb3NlcwoKMjAxMC0wNi0xNiAyMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgdXNlIGNvbmZpZ19hbmRfb3BlbiBmb3Igb3BlbmluZyB0aGUgdHJhbnNwb3J0CgoyMDEwLTA2LTE2IDIzOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGV4dHJhIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDEwLTA2LTE2IDIyOjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3VzZXJzdGVzdHM6CgogICBleHBsaWNpdGx5IGRlY2xhcmUgdHJ1c3QgY2VydGlmaWNhdGVzIHRvIHRyYW5zcG9ydAoKMjAxMC0wNi0xNiAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNsZWFudXAgc29tZSBsb3N0IG1lbW9yeSBvbiBjbG9zaW5nCgoyMDEwLTA2LTE2IDIxOjU2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHR5cG9zCgoyMDEwLTA2LTE2IDIxOjM0ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCAgCiAgICAgICBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJzaWduZWQgYW5kIHVuc2lnbmVkIGNvbXBhcmlzb24iIHdhcm5pbmdzIGZyb20KICAgYWdlbnQgY29kZSBbLVdzaWduLWNvbXBhcmVdCgoyMDEwLTA2LTE2IDIwOjE2ICBkdHMxMgoKICAgKiAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9kaXJfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xhcmdlX2ZkX3NldC5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvdGV4dF91dGlscy5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgInNpZ25lZCBhbmQgdW5zaWduZWQgY29tcGFyaXNvbiIgd2FybmluZ3MgZnJvbQogICBsaWJyYXJ5IGNvZGUgWy1Xc2lnbi1jb21wYXJlXQoKMjAxMC0wNi0xNiAxOTozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICByZW1vdmUgb2xkZXIgbm8tbG9uZ2VyLW5lZWRlZC1kdXBsaWNhdGUtY29uZmlnIGVudHJpZXMKCjIwMTAtMDYtMTYgMTk6MTQgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgRml4IHByb2Nlc3Npbmcgb2YgdmlldyBtYXNrcyAobWlzcGxhY2VkIHBhcmVudGhlc2VzKQoKMjAxMC0wNi0xNiAxODo0NSAgZHRzMTIKCiAgICogIGFwcHMvYWdlbnR4dHJhcC5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsICAgCiAgICAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYzoKCiAgIEVsaW1pbmF0ZSAic2lnbmVkIGFuZCB1bnNpZ25lZCBjb21wYXJpc29uIiBmcm9tIGFwcCBjb2RlCiAgIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTc6MjIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdHJhcGR1c2VydGVzdHM6CgogICBjaGVjayBmb3IgaW5mb3JtcyBzZW50IG92ZXIgdGxzIHRyYW5zcG9ydHMKCjIwMTAtMDYtMTYgMTc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBvdGhlciB2YWx1c2UgZnJvbSBwYXJlbnQgdGxzYmFzZSBkYXRhCgoyMDEwLTA2LTE2IDE3OjIxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN0cmFwZHVzZXJ0ZXN0cywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN2YXJzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMWR0bHN1ZHB0cmFwdGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEyMnRsc3RjcHRyYXB0ZXN0c19zaW1wbGU6CgogICBhZGRlZCBiYXNpYyB0cmFwIHNlbmRpbmcgYW5kIHJlY2VpdmluZyB0ZXN0cwoKMjAxMC0wNi0xNiAxNzoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgdGVtcCBmaWxlIHRvdWNoZXMKCjIwMTAtMDYtMTYgMTc6MjAgIGhhcmRha2VyCgogICAqICBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGRlZCBhIG5ldyBmdW5jdGlvbiBhbmQgdHJhbnNwb3J0IGZsYWcgdG8gaW5kaWNhdGUgaWYgdGhlIGZfb3BlbgogICBjYWxsIGhhcyBiZWVuIGNhbGxlZCB5ZXQKCjIwMTAtMDYtMTYgMTc6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgdW51c2VkIHZhciB3YXJuaW5nIGNsZWFudXAKCjIwMTAtMDYtMTYgMTc6MTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgYWRkZWQgdHJ1c3RDZXJ0IGNvbmZpZ3VyYXRpb24gdG9rZW4KCjIwMTAtMDYtMTYgMTc6MTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdXNlcnN0ZXN0czoKCiAgIG1pbm9yIHR3ZWFrcyBmb3IgdGVzdGluZyBjbGFyaXR5CgoyMDEwLTA2LTE2IDE3OjE4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1N0bHN1c2Vyc3Rlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMWR0bHN1ZHB1c2VydGVzdHNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvVDEwMnRsc3RjcHVzZXJ0ZXN0c19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlOgoKICAgbW92ZWQgY29tcGxleCAoRClUTFMgdG8gYSBzZXBhcmF0ZSBzZWN0aW9uIGFuZCBtYWRlIHRoZSB0cmFuc3BvcnQKICAgdGVzdHMgb25seSB0ZXN0IG1pbmltYWwgc3VwcG9ydAoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZCBtZWNoYW5pc21zIGZvciBzcGVjaWZ5aW5nIGFuZCBleHBlY3RpbmcgdGhlIGhvc3RuYW1lIG9mIHRoZQogICBmYXIgc2lkZQoKMjAxMC0wNi0xNiAxNzoxNyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzc2VydmVydGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9TdGxzdmFyczoKCiAgIHRlc3RzIGZvciB2ZXJpZnlpbmcgc2VydmVyIGNlcnRpZmljYXRlIGNoZWNrIGZhaWx1cmVzCgoyMDEwLTA2LTE2IDE3OjE3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdGxzLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3NlcnZlcnRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90bHMvU3Rsc3ZhcnMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3Rscy9UMTExZHRsc3VkcHNlcnZlcnRlc3RzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdGxzL1QxMTJ0bHN0Y3BzZXJ2ZXJ0ZXN0c19zaW1wbGU6CgogICB0ZXN0aW5nIGZvciBjaGVja2luZyBjbGllbnQgc2lkZSB2ZXJpZmljYXRpb24gb2Ygc2VydmVyCiAgIGNlcnRpZmljYXRlcwoKMjAxMC0wNi0xNiAxNzoxNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmg6CgogICBzZXR1cCBmb3IgYSBob3N0bmFtZSBjb25maWcgb3B0aW9uCgoyMDEwLTA2LTE2IDE3OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHNldHVwIGZvciBhIGhvc3RuYW1lIGNvbmZpZyBvcHRpb24KCjIwMTAtMDYtMTYgMTc6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGVjayB0byBtYWtlIHN1ZXIgc3NsIHBvaW50ZXIgaGFzIGJlZW4gY3JlYXRlZCB2aWEgZl9vcGVuIGNhbGwKCjIwMTAtMDYtMTYgMTU6MDIgIGR0czEyCgogICAqIGFnZW50L3NubXBfcGVybC5oLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGVjbGFyZSAnc2h1dGRvd25fcGVybCcgcHJvcGVybHkuCgoyMDEwLTA2LTE2IDE0OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIEVsaW1pbmF0ZSAic2lnbmVkIGFuZCB1bnNpZ25lZCB0eXBlIGluIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24iCiAgIHdhcm5pbmdzIFstV3NpZ24tY29tcGFyZV0KCjIwMTAtMDYtMTYgMTQ6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIEVsaW1pbmF0ZSAidW51c2VkIHZhcmlhYmxlIiB3YXJuaW5nCgoyMDEwLTA2LTE2IDE0OjIyICBkdHMxMgoKICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgRWxpbWluYXRlIHZhcmlvdXMgImltcGxpY2l0IGNvbnZlcnNpb24iIHdhcm5pbmdzIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTE2IDEzOjEzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhcHBzL3NubXB2YWNtLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIEVsaW1pbmF0ZSAobW9zdCkgc2lnbmVkLXZzLXVuc2lnbmVkIHdhcm5pbmdzIGZyb20gbnVtZXJpYyBzY2FuZgogICBwcm9jZXNzaW5nIFstcGVkYW50aWNdCgoyMDEwLTA2LTE2IDAzOjI4ICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdGhlIGdyZWF0IHVuLW5hbWVkIGNvbnRhaW5lciBodW50CgoyMDEwLTA2LTE2IDAzOjI3ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICBzaGFyZSBjYWNoZSBiZXR3ZWVuIHRhYmxlIGFuZCBjb3VudCBzY2FsYXI7IHdoZW4gcmVhZGluZyBjb25maWcsCiAgIGFkZCB0bwogICBsaWJyYXJ5IGNvbnRhaW5lcnMgZm9yIGFjdGl2ZSByb3dzLCB0YWJsZSBjb250YWluZXJzIGZvciBpbmFjdGl2ZQogICByb3dzOwogICB1c2VyIGNlcnRfdXRpbCBhcGlzIGluc3RlYWQgb2YgZGlyZWN0IGNvbnRhaW5lciBtYW5pcHVsYXRpb247CiAgIHdoZW4KICAgc2F2aW5nIGluYWN0aXZlIG1hcCByb3dzLCBza2lwIGFsbCBidXQgbm9uVm9sYXRpbGUKCjIwMTAtMDYtMTYgMDM6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGRlYnVnIHRva2VuIHR5cG8KCjIwMTAtMDYtMTYgMDM6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYXBpIGZvciBhZGRpbmcgZW50cmllcyB0byB0bHRzbSBhZGRyLCBwYXJhbXMgYW5kIGNlcnQgbWFwCiAgIGNvbnRhaW5lcnM7CiAgIHJlZ2lzdGVyIHNlIHNsaXN0IHBhaXIgZWFybGllciBzbyB0aGV5IGFyZSBhdmFpbGFibGUgZHVyaW5nCiAgIGNvbmZpZyBwYXJzaW5nOwogICBtYWtlIHN1cmUgY29uZmlnIHN0cmluZ3MgYXJlIG51bGwgdGVybWluYXRlZAoKMjAxMC0wNi0xNSAyMTo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgU3VwcHJlc3Mgd2FybmluZ3M6CiAgICdzdHJ1Y3Qgbmxtc2doZHIgZGVmaW5lZCBpbnNpZGUgcGFyYW1ldGVyIGxpc3QnIGFuZAogICAnZnVuY3Rpb24gX2xvYWRfdjYgZGVjbGFyZWQgYnV0IG5ldmVyIGRlZmluZWQnCgoyMDEwLTA2LTE1IDIxOjMwICBkdHMxMgoKICAgKiAgYWdlbnQva2VybmVsLmMsIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9wa2NzLmMsIHNubXBsaWIvc25wcmludGYuYzoKCiAgIEVsaW1pbmF0ZSAiZW1wdHkgdHJhbnNsYXRpb24gdW5pdCIgd2FybmluZ3MgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTUgMDc6MDcgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3VuaXQtdGVzdHMvVDAwM2NvcHlfbndvcmRfY2xpYi5jOgoKICAgQWRkIHRlc3Qgb2YgY29weV9ud29yZAoKMjAxMC0wNi0xNCAyMTozMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIEVsaW1pbmF0ZSAib3ZlcmZsb3cgaW4gaW1wbGljaXQgY29uc3RhbnQgY29udmVyc2lvbiIgd2FybmluZ3MKICAgWy1XYysrLWNvbXBhdF0KCjIwMTAtMDYtMTQgMTU6NTEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBFbGltaW5hdGUgInN0cmluZyBsZW5ndGggZ3JlYXRlciB0aGFuIDUwOSIgd2FybmluZ3MgWy1wZWRhbnRpY10KCjIwMTAtMDYtMTQgMTU6MTkgIGR0czEyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jOgoKICAgRWxpbWluYXRlICJpbml0aWFsaXplciBlbGVtZW50IGlzIG5vdCBjb21wdXRhYmxlIiB3YXJuaW5ncwogICBbLXBlZGFudGljXQoKMjAxMC0wNi0xNCAwNToyNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3NubXBUbHN0bUFkZHJUYWJsZS5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSBjb3VudCBoYW5kbGVycyB0byBjb3VudCBub24tYWN0aXZlIHJvd3MgdG9vCgoyMDEwLTA2LTE0IDA1OjEyICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgb25seSB0d2VhayBzdG9yYWdlVHlwZSBmb3IgYWN0aXZlIHJvd3M7IHJlc2V0IGVudHJ5IGZsYWdzIHdoZW4KICAgcmVtb3ZpbmcgZnJvbQogICBjZXJ0X3V0aWwgbWFwczsgd2hlbiBjcmVhdGVpbmcgcm93cyBmcm9tIGNlcnRfdXRpbCBtYXBzLCBzZXQKICAgc3RyYWdldFR5cGUgdG8KICAgdm9sYXRpbGUgaWYgbm9uVm9sYXRpbGUgZmxhZyBub3Qgc2V0OyBkb250IGZyZWUgY2FjaGUgaW4KICAgY2FjaGVfbG9hZCBvbiBlcnIKCjIwMTAtMDYtMTQgMDU6MTAgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jOgoKICAgbW92ZSB0bHN0bUFkZHIgdGFibGUgY29uZmlnIHBhcnNpbmcgdG8gY2VydF91dGlsOyBhZGQgY2FjaGUgdG8KICAgbWVyZ2UgY2VydF91dGlsCiAgIGFkZHJzIChhY3RpdmUpIGFuZCBub24tYWN0aXZlIHJvd3M7CgoyMDEwLTA2LTE0IDA1OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYWRkIG5vblZvbGF0aWxlIGZsYWcgdG8gdGxzdG1BZGRyIHRhYmxlOyBzZXQgY29udGFpbmVyIG5hbWU7IHNraXAKICAgJzB4JyBpbiBmcAoKMjAxMC0wNi0xNCAwNTowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hhbmdlIExPR19FUlIgdG8gTE9HX0lORk8gZm9yIG5vbi1lcnJvciBsb2cgbXNnCgoyMDEwLTA2LTEzIDIxOjAyICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbQogICBNZkQtYmFzZWQgTUlCIG1vZHVsZSBjb2RlLCBhbmQgTWZEIHRlbXBsYXRlIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEyIDIxOjMzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHNDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGVyZnN0YXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBFbGltaW5hdGUgKG1vc3QpICJpbXBsaWNpdCBjb252ZXJzaW9uIiB3YXJuaW5ncyBmcm9tIChub24tTWZEKQogICBNSUIgbW9kdWxlIGNvZGUuIFstV2MrKy1jb21wYXRdCgoyMDEwLTA2LTEyIDEwOjI2ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9pbmRleC5jLCAgIAogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmMsIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCAgIAogICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLCAgIAogICAgICBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL2ZpbGVfdXRpbHMuYywgICAKICAgICAgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRWxpbWluYXRlIChtb3N0KSAiaW1wbGljaXQgY29udmVyc2lvbiIgd2FybmluZ3MgZnJvbSBsaWJyYXJ5LAogICBhcHBzIGFuZCBhZ2VudCBmcmFtZXdvcmsraGVscGVycyBjb2RlLiBbLVdjKystY29tcGF0XQoKMjAxMC0wNi0xMCAyMDowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIGxvb2t1cCBjZXJ0IGtleXMgZm9yIHRscyBkb21haW5zOyB1c2UgU0VDX01PREVMIGRlZmluZSBpbnN0ZWFkIG9mCiAgIGhhcmRjb2RlZAogICBjb25zdGFudDsgYWRkIFNFQ19NT0RFTF9UU00gdG8gYWxsb3dlZCBzZWMgbW9kZWxzIGZvciBtcE1vZGVsCiAgIFNOTVBfVkVSU0lPTl8zCgoyMDEwLTA2LTEwIDIwOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgZGVmYXVsdCB0byByZWFkT25seS9hY3RpdmUgZm9yIGJhZCBjb25maWcKCjIwMTAtMDYtMTAgMjA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFkZCBkZWJ1Zzsgc3dpdGNoIHRvIFNFQ19NT0RFTF9UU00gYW5kIHdhcm4gaWYgb3RoZXIgc2VjbW9kZSBzZXQsCiAgIGluc3RlYWQKICAgb2Ygc2ltcGx5IGxvZ2dpbmcgdGhhdCBpdCB3b24ndCB3b3JrCgoyMDEwLTA2LTEwIDE5OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjaGVjayBwdHJzIGJlZm9yZSBkZXJlZmVyZW5jZQoKMjAxMC0wNi0xMCAxOTo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgc25tcFRsc3RtQWRkclRhYmxlIGRhdGEgbWFuYWdlbWVudCB0byBjZXJ0X3V0aWw7IGltcGxlbWVudAogICBUQVJHRVRfQUREUgogICBhbmQgVEFSR0VUX1BBUkFNUyBsb29rdXAgaW4gY2VydCBBUEkKCjIwMTAtMDYtMTAgMTk6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1cGRhdGUgc2VjIG1vZGVsIGRlZmluZSBtaXNzZWQgaW4gZWFybGllciBjaGVja2luCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgY29uZmlnIHRyYXBzZXNzIHRyYW5zcG9ydHMgb24gY3JlYXRpb247IHNpbXBsaWZ5IGlmZGVmcyBmb3IKICAgRElTQUJMRV9TTk1QVjEKCjIwMTAtMDYtMTAgMTk6NDYgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcGtzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBhdXRvIHN3aXRjaCB0byB2MyBmb3IgKGQpdGxzIHNlc3Npb25zIGluc3RlYWQgb2YgbG9nZ2luZyB0aGF0CiAgIG90aGVycyB3b250CiAgIHdvcms7IGRlZmluZSBUU00gc2VjIG1vZGVsIHdpdGggb3RoZXIgc2VjIG1vZGVsczsgY29uc2lzdGVudGx5CiAgIHVzZQogICBTTk1QX1NFQ19NT0RFTF8qIGluIHRoZSBjb2RlLCB1c2luZyAjZGVmaW5lcyBmb3IgYmFja3dhcmRzCiAgIGNvbXBhdGliaWxpdHkKICAgdy8qX1NFQ1VSSVRZX01PREVMCgoyMDEwLTA2LTEwIDE5OjQ2ICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2VydFRvVFNOOiBtb3ZlIG1pYiByZWxhdGVkIHBlcnNpc3RlbmNlIGJhY2sgaW50byBtaWIgbW9kdWxlOwogICBjZXJ0X3V0aWw6IGFkZCB0bHN0bVBhcmFtcyBwZXJzaXN0ZW5jZTsgdXNlIHNsaXN0IGZvciBjZXJ0IG1hcAogICB0eXBlIG5hbWUKICAgbWFwcGluZzsKCjIwMTAtMDYtMTAgMTk6NDUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcgKGNvbnN0KQoKMjAxMC0wNi0xMCAwNDo1OCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgQWRkIG1pc3NpbmcgaW5kZW50YXRpb24gb2YgYSBkby13aGlsZSBsb29wIHRvIG1ha2UgdGhlIGNvZGUKICAgcmVhZGFibGUuCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgY29tbWVudCBvdXQga2V5VXNhZ2Ugc28gcHJvcGVyIHNlbGYtc2lnbmVkIGNlcnRzIGFyZSBnZW5lcmF0ZWQKCjIwMTAtMDYtMDkgMjI6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgc29saWRpZnkgY2VydGlmaWNhdGUgYWNjZXB0YW5jZSBmb3IgdGhlIGNsaWVudCBzaWRlCgoyMDEwLTA2LTA5IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZml4IGFycmF5IHR5cG8KCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBsb2cgb3BlbnNzbCBlcnJvcnMgb24gYWNjZXB0IGZhaWx1cmUKCjIwMTAtMDYtMDkgMjI6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlZ2lzdGVyIGRlZmF1bHQgcG9ydHMgZm9yIHRscy9kdGxzCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZG8gcHJvcGVyIFNUT1JFIGxvYWRpbmcgb2YgdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMgcmF0aGVyIHRoYW4gZmlsZQogICBiYXNlZCBsb2FkaW5nCgoyMDEwLTA2LTA5IDIyOjU2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGRlZCB0d28gbmV3IEFQSXM6IG5ldHNubXBfY2VydF90cnVzdCBhbmQgbmV0c25tcF9jZXJ0X3RydXN0X2NhCgoyMDEwLTA2LTA5IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYWRkZWQgc3RyYWlnaHQgJ3RscycgdHJhbnNwb3J0IG5hbWUKCjIwMTAtMDYtMDkgMjI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYWRkZWQgc3RyYWlnaHQgJ2R0bHMnIHRyYW5zcG9ydCBuYW1lCgoyMDEwLTA2LTA4IDIxOjA1ICBtYWdmcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgYWdlbnRfcmVhZF9jb25maWcuaCBpbiA1LjYgYXMgd2VsbC4gSXQgZGlzYXBwZWFyZWQgaW4KICAgcjE4ODQzLgoKMjAxMC0wNi0wOCAwOToyNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tfaHcuYzoKCiAgIFJlbW92ZSAob3IgYWN0aXZhdGUpIHVudXNlZCB2YXJpYWJsZXMuCiAgIEZpeCBtaXNuYW1lZCBmdW5jdGlvbiBkZWNsYXJhdGlvbi4KCjIwMTAtMDYtMDggMDc6MTEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgQVBJIGNoYW5nZXMgZm9yIHByZWxpbWluYXJ5IEhBTF9iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiBVQ0QgZGlzawogICBtb2R1bGUuCiAgIChPbWl0dGVkIGZyb20gcmV2aXNpb24gMTg5MzIgY2hlY2tpbikKCjIwMTAtMDYtMDggMDQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIHVwZGF0ZSBtYWtlZmlsZSBmb3IgbW92ZWQgaGVscGVyIGhlYWRlcnMKCjIwMTAtMDYtMDcgMjA6MTggIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIFJldmVydGluZyByZXYuIDE3NjE2LCB0aGUgbmVjZXNzYXJ5IGNoZWNrIGlzIGFscmVhZHkgaW4gcmV2LgogICAxNzQxNS4KCjIwMTAtMDYtMDYgMDM6NDUgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGF0aHM6CgogICBDSEFOR0VTOiBidWlsZGluZzogSW4gY2FzZSBleGVjX3ByZWZpeCBpcyB1bnNldCB0aGVuIHNldCBpdCB0bwogICAnJHtwcmVmaXh9JyBpbiBvcmRlciB0byBwaWNrIHVwIG92ZXJyaWRlcyBvZiAkcHJlZml4IGluIG1ha2UKICAgaW5zdGFsbC4KCjIwMTAtMDYtMDQgMDQ6MDYgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBkbyBhIGJldHRlciBqb2Igb2YgdmVyaWZ5aW5nIGZpbmdlcnByaW50cyBvZiByZW1vdGUgc2VydmVycwogICBwdWxsaW5nIGZpbmdlcnByaW50cyBmcm9tIGEgbnVtYmVyIG9mIHBvc3NpYmxlIHBsYWNlcwoKMjAxMC0wNi0wNCAwNDowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfZXZhbF90b29scy5zaDoKCiAgIGdvIGFoZWFkIGFuZCBsb2cgb3V0cHV0IGZpbGUgZm9yIGVhc2llciBkZWJ1Z2dpbmcgaW4gZXJyb3JzCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCB0eXBvCgoyMDEwLTA2LTA0IDA0OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICByZW1vdmUgY29tbWVudCBhYm91dCByYW5kb20gYmVpbmcgaW5hZGVxdWF0ZTsgd2UncmUgZG9pbmcgdGhlCiAgIGJlc3Qgd2UgY2FuIGJhc2VkIG9uIHdoYXQgd2UgaGF2ZQoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICB1c2UgYW5vdGhlciB1c2VyIGZvciB0ZXN0aW5nIHNubXBhcHAgZGVmYXVsdCBjZXJ0aWZpY2F0ZQoKMjAxMC0wNi0wNCAwNDowNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBydW4gYSBkZWZhdWx0IHRlc3Qgd2l0aG91dCBhIGxvY2FsIGtleSB0byBlbnN1cmUgdGhlIHNubXBhcHAgdHlwZQogICBpcyBwaWNrZWQgdXAKCjIwMTAtMDYtMDQgMDQ6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgYSBzcGVjaWFsIGNhc2UgZm9yIHRoZSBsb2NhbCBpZGVudGl0eSBhbmQgcHVsbCBpdCBmcm9tIGEKICAgZmlsZW5hbWUgb2YgdGhlIGluaXRfc25tcCgpIHJlZ2lzdGVyZWQgdHlwZSBuYW1lCgoyMDEwLTA2LTA0IDA0OjAzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L05ldFNOTVBUZXN0LnBtOgoKICAgZG9jIHVwZGF0ZQoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTA1dW5peC50OgoKICAgdW5peCBzb2NrZXQgdGVzdAoKMjAxMC0wNi0wNCAwNDowMyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwM3VkcDYudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTA0dGNwNi50OgoKICAgaXB2NiB0ZXN0cwoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDEwMXVkcC50LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDJ0Y3AudDoKCiAgIG1lbnRpb24gdGVzdCBuYW1lIGlzIElQdjQKCjIwMTAtMDYtMDQgMDQ6MDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBjaGVjayB0aGF0IHRyYW5zcG9ydCB3YXMgY29uZmlndXJlZAoKMjAxMC0wNi0wNCAwNDowMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGFkZCBzdXBwb3J0IGZvciBuZXQtc25tcC1jb25maWcuaCBjaGVja3MKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL05ldFNOTVBUZXN0VHJhbnNwb3J0LnBtLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9wZXJsL1QxMDF1ZHAudCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvcGVybC9UMTAydGNwLnQ6CgogICBzb21lIGJhc2ljIHRyYW5zcG9ydCBjaGVja2luZyBmb3IgcGVybDogdWRwIGFuZCB0Y3AKCjIwMTAtMDYtMDQgMDQ6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwsIHRlc3RpbmcvZnVsbHRlc3RzL3BlcmwvVDAwMWJhc2ljLnQ6CgogICBiYXNpYyB0ZXN0cyBmb3IgcGVybAoKMjAxMC0wNi0wNCAwNDowMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9OZXRTTk1QVGVzdC5wbToKCiAgIGluZnJhc3RydWN0dXJlIG1vZHVsZSBmb3IgdGVzdGluZyBwZXJsIHN1cHBvcnQKCjIwMTAtMDYtMDMgMTU6NTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgUG9pbnQgTElCe0NVUlJFTlQsQUdFLFJFVklTSU9OfSBkb2N1bWVudGF0aW9uIHRvIHRoZSBjb3JyZWN0CiAgIGZpbGUuCiAgIFdhcm4gYWJvdXQgJ21ha2VkZXBlbmQnIHBpY2tpbmcgdXAgdGVzdGluZyBtb2R1bGUgY29kZS4KICAgRW1waGFzaXMgdXBkYXRlIG9mICdkb3dubG9hZC5odG1sJyBwYWdlCiAgIE1lbnRpb24gdXBkYXRlIG9mIE9mZmljaWFsIFBhdGNoZXMKICAgU3VwcHJlc3MgYnJva2VuIGNvbW1hbmRzCgoyMDEwLTA2LTAzIDE1OjE2ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza19ody5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrX2h3LmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBQcmVsaW1pbmFyeSBIQUxfYmFzZWQgaW1wbGVtZW50YXRpb24gb2YgVUNEIGRpc2sgbW9kdWxlLgogICBFbnN1cmVzIGNvbnNpc3RlbnQgcmVwb3J0aW5nIGJldHdlZW4gVUNEIGFuZCBIb3N0UmVzIEZTeXMgdXNhZ2UKICAgYW5kIGV4dGVuZHMgJ3NraXBORlNJbkhvc3RSZXNvdXJjZXMnIGNvbmZpZyB0byBVQ0QgZGlzayBzdGF0cy4KCjIwMTAtMDYtMDMgMTU6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jOgoKICAgRml4IGJyb2tlbiBzaXplIGNhbGN1bGF0aW9ucy4KICAgU3VwcG9ydCA2NC1iaXQgc2l6ZS91c2FnZSB2YWx1ZXMuCgoyMDEwLTA2LTAyIDE0OjUyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSAtLXdpdGgtY2EgaW5zdGVhZCBvZiAtLWNhCgoyMDEwLTA2LTAyIDE0OjUxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIHVzZSB0aGUgbmV3IC1icmllZiBvcHRpb24gZm9yIGZpbmdlcnByaW50IGNhcHR1cmluZwoKMjAxMC0wNi0wMiAxNDo0MCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IC0td2l0aC1jYSBoYW5kbGluZywgZml4IENBIG5ld2NlcnRzIGJvb2trZWVwaW5nCgoyMDEwLTA2LTAyIDEwOjU3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gcGFyc2luZyBPSURzCiAgIGluIGNvbmZpZyBmaWxlcy4KCjIwMTAtMDYtMDIgMDA6MjQgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgY2hlY2sgdGhhdCBDQSBjZXJ0aWZpY2F0ZXMgY3JlYXRlZCBhZnRlciBzbm1wZCBzdGFydHMgYXJlIHN0aWxsCiAgIHVzYWJsZTsgY2hlY2sgYWxsIG91dHB1dCBmaW5nZXJwcmludHMgdG8gZW5zdXJlIHRoZXkgd2VyZQogICBwcm9wZXJseSBjcmVhdGVkCgoyMDEwLTA2LTAyIDAwOjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkIG1pc3NpbmcgZGlyZWN0b3J5IGFuZCBmaWxlIHN1ZmZpeCB0byBjYSBpbnZvY2F0aW9ucwoKMjAxMC0wNi0wMiAwMDoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzOgoKICAgY2hlY2sgdGhhdCBjZXJ0aWZpY2F0ZSBvdXRwdXQgZmluZ2VycHJpbnRzIHdlcmUgZm91bmQKCjIwMTAtMDYtMDIgMDA6MjAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2g6CgogICB0d28gbmV3IGZ1bmN0aW9ucyBmb3IgdmFsdWUgY29tcGFyaXNvbiB0ZXN0IG91dHB1dAoKMjAxMC0wNi0wMiAwMDoxNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICByZW1vdmUgbm8tbG9uZ2VyLXVzZWQgc2VsZi1zaWduZWQgY2VydGlmaWNhdGUgdG9rZW4gc3BlY2lmaWVyICh3ZQogICByZXF1aXJlIGEgY29weSBvZiB0aGUga2V5KQoKMjAxMC0wNi0wMiAwMDowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICAtIGNoYW5nZWQgJ2ZpbmdlcnByaW50JyB0b2tlbiB0byBtb3JlIGdlbmVyaWMgJ2lkZW50aXR5JyBrZXl3b3JkCiAgIC0gYWRkZWQgdGhlIGFiaWxpdHkgZm9yIG5ldHNubXBfY2VydF9maW5kIHRvIHRyeSBtdWx0aXBsZSB0eXBlcwogICAoRlAgJiBmaWxlKQogICAtIGFuZCBwcm92aWRlIHRlc3Qgc3VpdGUgdGVzdCBmb3IgaXQuCgoyMDEwLTA2LTAxIDIwOjEyICBidmFzc2NoZQoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9zaW1wbGU6CgogICBNYWRlIHN1cmUgdGhhdCB0aGUgUGVybCBleHRlbnNpb24gbW9kdWxlcyBjYW4gbG9hZCB0aGUgTmV0LVNOTVAKICAgRExMcyB3aGlsZSBydW5uaW5nIHRoZSBOZXQtU05NUCByZWdyZXNzaW9uIHRlc3RzLgoKMjAxMC0wNi0wMSAxNjo0NyAgbWFyegoKICAgKiBsb2NhbC9jZXJ0Z2VuLXRlc3QucGwsIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBtYWpvciB1cGRhdGUgYnVnIGZpeGVzIGFuZCBmZWF0dXJlcyAtIGludGVyYWN0aXZlIG1vZGUsIHNlcGFyYXRlCiAgIENBIGRpcnMsIGdlbiBjc3IgZnJvbSBjZXJ0LCBmaW5nZXJwcmludCBkaXNwbGF5IC0tYnJpZWYsCiAgIGVsaW1pbmF0ZSBzZWQsIG9wZW5zc2wuY29uZiBvdmVyd3JpdGUgYW5kIHRlbXBsYXRpbmcKCjIwMTAtMDYtMDEgMTQ6NDggIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEZpeGVkIGEgdHlwbyBpbiBhIHNvdXJjZSBjb2RlIGNvbW1lbnQuCgoyMDEwLTA2LTAxIDE0OjI1ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIElQLU1JQjo6aXBJZlN0YXRzUmVhc21SZXFkcyB2YWx1ZS4KICAgCiAgIEp1c3QgZml4aW5nIGEgc3R1cGlkIHR5cG8uCgoyMDEwLTA1LTMxIDEwOjQzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogZW5hYmxlZCBVbml4IHRyYW5zcG9ydC4KICAgKEZvcndhcmQtcG9ydGVkIHIxODY4NyBmcm9tIHRoZSBWNS41IGJyYW5jaCkuCgoyMDEwLTA1LTMwIDIyOjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZW5hYmxlIHRvIHJ1biB3aXRoIG9sZGVyIFBlcmwgKGUuZy4gUGVybCA1LjAwNDA1IGFzIHNoaXBwZWQgd2l0aAogICBJUklYCiAgIDYuNSkKCjIwMTAtMDUtMzAgMjI6NDkgIHRhbmRlcnMKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBwb2xpc2ggZG9jdW1lbnRhdGlvbgoKMjAxMC0wNS0zMCAyMDoxOSAgbWFnZnIKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW4sIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLmluLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEbyBub3QgbGluayB3aXRoIGxpYm5ldHNubXBoZWxwZXJzIGFueSBtb3JlIGFzCiAgIGl0IGlzIGVtcHR5LgoKMjAxMC0wNS0zMCAxOToxOCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgc25tcGxpYi9zbm1wLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBVc2UgYSB2b2lkIGFyZ3VtZW50IGZvciB0aGUgZGF0YSBhcmd1bWVudCBvZgogICB4ZHVtcC4KCjIwMTAtMDUtMzAgMTk6MTggIGJ2YXNzY2hlCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgQ0hBTkdFUzogQlVHOiAyMDUxNzQyOiBhZGRlZCBtaXNzaW5nIFBFUkxfU1lTX0lOSVQzKCkgY2FsbCAoc2VlCiAgIGFsc28gbWFuIHBlcmxlbWJlZCkuCgoyMDEwLTA1LTMwIDE5OjE2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgKGZyZWUoKSBjYWxsZWQgd2l0aG91dCBiZWluZyBkZWNsYXJlZAogICBmaXJzdCkuCgoyMDEwLTA1LTMwIDE2OjU2ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXBsaWI6IERvIG5vdCByZXF1aXJlIHRoYXQgdGhlIFVEUCB0cmFuc3BvcnQgaXMgaW5jbHVkZWQuCgoyMDEwLTA1LTMwIDEyOjAwICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1NIRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcEFBTDVQVkNEb21haW4uYywgCiAgICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcENhbGxiYWNrRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQWERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTVEREb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVENQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgZGVwZW5kZW5jaWVzIGJldHdlZW4gdHJhbnNwb3J0cy4gUmVtb3ZlCiAgIHVubmVjZXNzYXJ5IGluY2x1ZGVzLgoKMjAxMC0wNS0zMCAwNjoyMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9kdW1teS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgbGlibmV0c25tcGhlbHBlcnMgaXMgbm90IGVtcHR5IHN1Y2ggdGhhdCBidWlsZGluZwogICBOZXQtU05NUCBvbiBBSVggYW5kIElSSVggaXMgYWdhaW4gcG9zc2libGUuCgoyMDEwLTA1LTI5IDA5OjUyICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4OTAyOiB3b3JrcyBhZ2FpbiB3aXRob3V0IFRBUDo6SGFybmVzcy4KCjIwMTAtMDUtMjggMjM6MjMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IGxvbmctYWdvIGJyb2tlbiB2ZXJib3NpdHkKCjIwMTAtMDUtMjggMjM6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IG1vcmUgcHJldmlvdXNseSBicm9rZW4gb3B0aW9uIHJlbmFtZXM7IGNoYW5nZSAtZCB0bwogICBtYXN0ZXItZGlyZWN0b3J5IGFuZCBhZGQgYXMgYSByZWFsIGFyZ3VtZW50CgoyMDEwLTA1LTI4IDIzOjA1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDAxc25tcHYxZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2MHNubXB2MmNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE2c25tcHYyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTdzbm1wdjJjdG92MWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMThzbm1wdjF0b3YyY2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTlzbm1wdjJjbm9zdWNoX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIwc25tcHYzZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyc25tcHYzZ2V0TUQ1X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1QUVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIzc25tcHYzZ2V0TUQ1REVTX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzBzbm1wdjN1c2VyY3JlYXRpb25fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUxc25tcHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTJzbm1wdjJjaW5mb3JtX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUzYWdlbnR2MXRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTRhZ2VudHYyY3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcyY29tMnNlY3VuaXhfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTNhZ2VudHh0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIycHJveHlzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQxc25tcHYyY3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQyc25tcHYzdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMjAwc25tcHYyY3dhbGthbGxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19zaW1wbGU6CgogICBtb3JlIG1pc3Npbmcgb2xkdWNkIHJlbmFtZXMKCjIwMTAtMDUtMjggMjI6NTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfb2xkdWNkLCAKICAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE0c25tcHYyY2dldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNXNubXB2MmNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxNnNubXB2MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE3c25tcHYyY3RvdjFnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE4c25tcHYxdG92MmNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE5c25tcHYyY25vc3VjaF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIxc25tcHYzZ2V0bmV4dF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyMjBzbm1wdjNidWxrZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI0c25tcHYzZ2V0U0hBMV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNXNubXB2M2dldFNIQURFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyNnNubXB2M2dldFNIQUFFU19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAyOHNubXB2M2dldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjhzbm1wdjNnZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtYXV0aF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1wcml2X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUwc25tcHYzdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MXNubXB2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDUyc25tcHYyY2luZm9ybV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1M2FnZW50djF0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU0YWdlbnR2MmN0cmFwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU1YWdlbnR2MW1pbnRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTVhZ2VudHYxbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NmFnZW50djJjbWludHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QyX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3QzX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU4YWdlbnRhdXRodHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1OXRyYXBkdHJhcGhhbmRsZV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MHRyYXBkcGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2MWFnZW50cGVybF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcwY29tMnNlY19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MWNvbTJzZWM2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA3MmNvbTJzZWN1bml4X3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTAwYWdlbnRodXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMDBhZ2VudGh1cF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMGFnZW50eGdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMWFnZW50eHNldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExMmFnZW50eHNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTJhZ2VudHhzZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEzYWdlbnR4dHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE0YWdlbnR4YWdlbnR4dHJhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExNWFnZW50eHBlcmxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTVhZ2VudHhwZXJsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIwcHJveHlnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjBwcm94eWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMXByb3h5c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMwc25tcHYxdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEzMXNubXB2MmN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMyc25tcHYzdmFjbWdldF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MHNubXB2MXZhY21nZXRmYWlsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE0MnNubXB2M3ZhY21nZXRmYWlsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUwc29sYXJpc2hvc3RjcHVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MXNvbGFyaXNob3N0ZGlza19zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1Mmhvc3R1cHRpbWVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTJob3N0dXB0aW1lX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTNzb2xhcmlzc3dhcF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE2MHNubXBuZXRzdGF0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDIwMHNubXB2MmN3YWxrYWxsX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9zaW1wbGVfVEVTVENPTkYuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX2V2YWxfdG9vbHMuc2gsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvc2ltcGxlX3J1biwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzMwdGNwdjZfc2ltcGxlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNTB1bml4X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9zaW1wbGUsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX3NpbXBsZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzOTlhbGlhc19zaW1wbGU6CgogICByZW5hbWVkICdvbGR1Y2QnIHRvICdzaW1wbGUnIHRvIHB1dCBhIG1vcmUgcG9zaXRpdmUgc3BpbiBvbiB0aGVtCgoyMDEwLTA1LTI4IDIyOjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JFQURNRSwgdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgdGVzdCBzdWl0ZQoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHJldmVydCB1bmludGVudGlvbmFuYWxseSBjb21taXR0ZWQgdGVzdCB0ZXN0CgoyMDEwLTA1LTI4IDIyOjUzICBoYXJkYWtlcgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCBweXRob24vbmV0c25tcC90ZXN0cy90ZXN0LnB5OgoKICAgZnJlZSB2YXJpYWJsZXMgYWdhaW4KCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXggd2Fsa3Mgc28gdGhhdCBtdWx0aXBsZSB3YWxrcyB0ZXJtaW5hdGUgcHJvcGVybHkKCjIwMTAtMDUtMjggMjI6NTMgIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBwYXRjaCB0byBoYW5kbGUgdGVzdGluZyBvZiBsb29waW5nIG9mIG11bHRpcGxlIHZhcmJpbmRzIGluIGEgd2FsawoKMjAxMC0wNS0yOCAyMjo1MyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGluaXRhbCBwYXRjaCB0byBwcmV2ZW50IGxvb3Bpbmcgd2Fsa3MKCjIwMTAtMDUtMjggMjA6NTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBpbXBsZW1lbnQgY2VydCBsb29rdXAgYnkgZmlsZW5hbWUKCjIwMTAtMDUtMjggMDc6MDIgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIGNvbnN0IGRlY2xhcmF0aW9ucyB0byB0aGUgZGlzYWJsZWQgdmVyc2lvbnMKICAgb2YgdGhlIGRlYnVnZ2luZyBjb2RlIGFzIHdlbGwuCgoyMDEwLTA1LTI4IDAyOjEyICByc3RvcnkKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgYWRkIHBlcnNpc3RlbmNlOyBjaGVjayBmb3IgY29sIG1vZHMgd2hpbGUgcm93IGFjdGl2ZQoKMjAxMC0wNS0yOCAwMjoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBDSEFOR0VTOiBhZ2VudGxpYjogbmV3IGZ1bmN0aW9ucyB0byBtYWtlIHN0YXNoIHB0ciBhbmQgbmV3cm93CiAgIGF2YWlsYWJsZSB0bwogICB0YWJsZV9kYXRhc2V0IGhhbmRsZXJzCiAgIG5vbmV3czogZml4IHR5cG87IHRhYnMgdG8gc3BhY2VzOyB1c2Ugc2l6ZW9mIGluc3RlYWQgb2YgY29uc3RhbnQKCjIwMTAtMDUtMjcgMTg6NTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBXaW4zMiBidWlsZCBmaXhlcy4KCjIwMTAtMDUtMjcgMTg6MjQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgIm1ha2UgdGVzdCIgd2l0aG91dCBUQVA6Okhhcm5lc3MgKHdhcyBicm9rZW4gYnkgcjE4ODAyKS4KCjIwMTAtMDUtMjcgMTU6MTUgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAKICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL2xjZF90aW1lLmMsICAgCiAgICAgIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuIE1vc3QgZml4ZXMgaW52b2x2ZWQgYWRkaW5nIHRoZQogICAiY29uc3QiIGtleXdvcmQuCgoyMDEwLTA1LTI3IDEzOjUyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDI5NzI1Nzk6IGZpeGVkIGNoZWNraW5nIG9mCiAgIHNubXBUYXJnZXRBZGRyUm93U3RhdHVzIFNFVCByZXF1ZXN0cy4KCjIwMTAtMDUtMjcgMTM6NDEgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuOgoKICAgcmV2ZXJ0IHBhcnQgb2YgMTg4ODU6IHRlc3QgZmlsZXMgc2hvdWxkIGJlIGFibGUgdG8gYmUgcnVuIGJ5CiAgIHRoZW1zZWx2ZXMgdG9vCgoyMDEwLTA1LTI3IDExOjE5ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogY29ycmVjdGx5IGNhbGN1bGF0ZSBpZlhUYWJsZS5pZkhDSW5VY2FzdFBrdHMgb24gMzItYml0CiAgIExpbnV4CiAgIAogICBMaW51eCBkb2VzIG5vdCBwcm92aWRlIHN0YW5kYWxvbmUgY291bnRlciBmb3IgaW5jb21pbmcgdW5pY2FzdAogICBwYWNrZXRzIChpdWNhc3QpCiAgIC0gaXQgcHJvdmlkZXMgY291bnRlciBvZiBhbGwgcGFja2V0cyAoaWFsbCkgKyBzZXBhcmF0ZSBjb3VudGVyCiAgIGZvciB0aGUgbXVsdGljYXN0CiAgIG9uZXMgKGltY2FzdCkuIFByZXZpb3VzIGltcGxlbWVudGF0aW9uIG9mIGlmVGFibGUgcmVhZCB0aGVzZQogICBjb3VudGVycyBhbmQKICAgY2FsY3VsYXRlZCBpdWNhc3QgPSBpYWxsIC0gaW1jYXN0ICpiZWZvcmUqIHRoZXNlIHZhbHVlcyB3ZXJlCiAgIGV4cGFuZGVkIGludG8KICAgNjRiaXRzLiBUaGlzIHByb2R1Y2VkIGVycm9ycyBvbiAzMmJpdCBzeXN0ZW1zIHdoZW4gaWFsbAogICBvdmVyZmxvd2VkIHRvIHplcm8gYW5kCiAgIGltY2FzdCB3YXMgbm96ZXJvIC0+IGl1Y2FzdCBnb3QgbmVnYXRpdmUgYW5kICdjNjQgMzIgYml0IGNoZWNrCiAgIGZhaWxlZCcgZXJyb3IgaW4KICAgc25tcGQgbG9nLiBOb3cgdGhlIGFnZW50IGV4cGFuZHMgdGhlc2UgdmFsdWVzIHRvIDY0Yml0cyBmaXJzdCBhbmQKICAgKiAgICAgKnRoZW4qIHBlcmZvcm1zICAgIHRoZSBjYWxjdWxhdGlvbiwgdXNpbmcgYSBuZXcgZmxhZy4gCiAgICAgIDIwMTAtMDUtMjcgMDg6MTggIG1hZ2ZyCgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvUlVOVEVTVFMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ydW46CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBNb3ZlIHRoZSBzZXR0aW5nIG9mIE1JQkRJUlMgZnJvbSB0aGUgc3VwcG9ydAogICBzY3JpcHQgdG8gdGhlIGRyaXZlcnMgc2luY2UgaXQgaXMgbmVlZGVkIGZvciB0aGUgQyB0ZXN0cyBhcyB3ZWxsLgoKMjAxMC0wNS0yNyAwODowOSAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IFVzZSBvbGR1Y2RfcnVuLCBub3QgcnVuX29sZHVjZC4gQ2hhbmdlIHNyY2RpcgogICB0byByZWZlciB0byB0aGUgdG9wIGRpcmVjdG9yeSBhbmQgbm90IHRoZSB0ZXN0aW5nIHN1YmRpcmVjdG9yeSBhcwogICB0aGF0IGlzIHdoYXQgaXMgZXhwZWN0ZWQgaW4gdGhlIHRlc3Qgc2NyaXB0cy4KCjIwMTAtMDUtMjcgMDU6MTcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHdhcm5pbmcgc3F1YXNoaW5nCgoyMDEwLTA1LTI3IDA1OjE2ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCBzbm1wbGliL2tleXRvb2xzLmMsICAgCiAgICAgIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIG1vcmUgY29uc3QgY29ycmVjdG5lc3MKCjIwMTAtMDUtMjcgMDQ6MTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdGVzdHMgZm9yIGFnZW50LW5vdC1rbm93bi11c2VyLWNlcnRpZmljYXRlcwoKMjAxMC0wNS0yNyAwNDoxNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHJlZmVyZW5jZSB0aGUgaXRuZXJuYWwgc3VwcG9ydCBhbmQgcmVsYXRlZCBkb2N1bWVudGF0aW9uCgoyMDEwLTA1LTI3IDA0OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2wvT1BFTlNTTC1MSUNFTlNFLCBzbm1wbGliL29wZW5zc2wvUkVBRE1FOgoKICAgaW50ZXJuYWwgT3BlblNTTCBzdXBwb3J0IGRvY3VtZW50YXRpb24KCjIwMTAtMDUtMjcgMDQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBORVdTOiBsaWJuZXRzbm1wOiBTdXBwb3J0IGZvciBhIHN0cmVhbS1saW5lIHN0cmlwcGVkIGRvd24gdmVyc2lvbgogICBvZiBpbnRlcm5hbCBPcGVuU1NMIHN1cHBvcnQgdXNpbmcgLS13aXRoLW9wZW5zc2w9aW50ZXJuYWwKCjIwMTAtMDUtMjcgMDQ6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9hZXMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvb3BlbnNzbF9tZDUuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfZGVzX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NldF9rZXkuYywgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc3ByLmgsIAogICAgICAgIHNubXBsaWIvc2NhcGkuYzoKCiAgIHJlbW92ZSBtb3JlIGRlcGVuZGVuY2llcyBmb3IgZXh0ZXJuYWwgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjE1ICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgc25tcGxpYi9vcGVuc3NsLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9hZXNfY2ZiLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19jb3JlLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2NmYjEyOC5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9kZXNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX2Rlc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2wvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfbWQ1X2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX21vZGVzLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX25jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NldF9rZXkuYywgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhLmgsIAogICAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsL29wZW5zc2xfc2hhX2xvY2FsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbC9vcGVuc3NsX3Nwci5oLCBzbm1wbGliL29wZW5zc2xfYWVzX2NmYi5jLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfYWVzX2NvcmUuYywgc25tcGxpYi9vcGVuc3NsX2Flc19sb2NhbC5oLCAgIAogICAgICBzbm1wbGliL29wZW5zc2xfY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9kZXNfbG9jYWwuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kMzJfY29tbW9uLmgsIHNubXBsaWIvb3BlbnNzbF9tZDUuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfbW9kZXMuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zaGEuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYV9sb2NhbC5oLCBzbm1wbGliL29wZW5zc2xfc3ByLmg6CgogICBtb3ZlIG9wZW5zc2wgY29kZSBpbnRvIGEgc3ViZGlyZWN0b3J5CgoyMDEwLTA1LTI3IDA0OjEzICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWdiYXNlLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDMwc25tcHYzdXNlcmNyZWF0aW9uX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDM1c25tcHYzdHJhcGR1c2VybWdtdF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA0OXNubXB2M2luZm9ybXByaXZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTBzbm1wdjN0cmFwX29sZHVjZDoKCiAgIGZpeCB0ZXN0aW5nIHNvIGl0IHVzZXMgbXVsdGlwbGUgdHlwZXMgb2YgY3J5cHRvCgoyMDEwLTA1LTI3IDA0OjEzICBoYXJkYWtlcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRlZmluaXRpb25zIGFuZCBmaWxlcyBmb3IgZG9pbmcgaW50ZXJuYWwgY3J5cHRvIHN1cHBvcnQKCjIwMTAtMDUtMjcgMDQ6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGluY2x1ZGUgaW50ZXJuYWwgYWVzL2RlcyBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfY2ZiMTI4LmM6CgogICBsb2NhbGl6ZQoKMjAxMC0wNS0yNyAwNDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NmYjEyOC5jLCBzbm1wbGliL29wZW5zc2xfbW9kZXMuaDoKCiAgIGluaXRhbCBjb3BpZXMgb2YgY2ZiMTI4IG1vZGVzIGZyb20gb3BlbnNzbAoKMjAxMC0wNS0yNyAwNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmM6CgogICBsb2NhbGl6ZQoKMjAxMC0wNS0yNyAwNDoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2Flc19jb3JlLmMsIHNubXBsaWIvb3BlbnNzbF9hZXNfbG9jYWwuaDoKCiAgIGluaXRpYWwgdmVyc2lvbnMgb2YgYWVzX2NvcmUuYyBhbmQgYWVzX2xvY2wuaAoKMjAxMC0wNS0yNyAwNDoxMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfYWVzLmg6CgogICBpbml0aWFsIGNvcHkgb2YgYWVzLmggZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfYWVzX2NmYi5jOgoKICAgaW5pdGlhbCBjb3B5IG9mIHRoZSBvcGVuc3NsIGFlc19jZmIuYyBmaWxlCgoyMDEwLTA1LTI3IDA0OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL29wZW5zc2xfZGVzX2VuYy5jOgoKICAgaW5jbHVkZSBsb2NhbGl6ZWQgY29waWVzIG9mIHRoZSBmaWxlcwoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgdXNlIGludGVybmFsIERFUwoKMjAxMC0wNS0yNyAwNDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX2NiY19lbmMuYzoKCiAgIGxvY2FsaXplZCBjb3B5IG9mIHRoZSBjYmNfZW5jLmMgZmlsZSBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9zcHIuaDoKCiAgIGRlcy9zcHIuaCBmcm9tIG9wZW5zc2wKCjIwMTAtMDUtMjcgMDQ6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9kZXNfZW5jLmM6CgogICBhZGRlZCBkZXNfZW5jLmMgZnJvbSBvcGVuc3NsCgoyMDEwLTA1LTI3IDA0OjA4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29wZW5zc2xfZGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vcGVuc3NsX21kNS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9zaGEuaDoKCiAgIGxvY2FsIGNvcGllcyBvZiB0aGUgb3BlbnNzbCBoZWFkZXJzCgoyMDEwLTA1LTI3IDA0OjA3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb3BlbnNzbF9kZXMuaDoKCiAgIGluaXRpYWwgY29weSBvZiBvcGVuc3NsJ3MgZGVzLmgKCjIwMTAtMDUtMjcgMDQ6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb3BlbnNzbF9uY2JjX2VuYy5jLCBzbm1wbGliL29wZW5zc2xfc2V0X2tleS5jOgoKICAgbG9jYWxpemVkIGhlYWRlciBmaWxlcwoKMjAxMC0wNS0yNyAwNDowNyAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvb3BlbnNzbF9kZXNfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX25jYmNfZW5jLmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9zZXRfa2V5LmM6CgogICBpbml0YWwgY29waWVzIG9mIHNvbWUgb2YgdGhlIG9wZW5zc2wgREVTIGZpbGVzCgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIGZpbmlzaGluZyBwb3J0aW5nIG9mIGludGVybmFsIGF1dGggc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDowNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBpbnRlcm5hbCBjcnlwdG8gZmlsZXMgdG8gdGhlIGNoZWNrL3VzZSBsaXN0CgoyMDEwLTA1LTI3IDA0OjA2ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL21kNV9sb2NsLmgsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDMyX2NvbW1vbi5oLCBzbm1wbGliL29wZW5zc2xfbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvb3BlbnNzbF9tZDVfbG9jYWwuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX3NoYV9sb2NhbC5oLCBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBsb2NhbGl6ZWQgZmlsZSBuYW1lcyB3aXRoIG9wZW5zc2wgcHJlZml4ZXMKCjIwMTAtMDUtMjcgMDQ6MDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL29wZW5zc2xfbWQ1LmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgICAKICAgICAgc25tcGxpYi9vcGVuc3NsX21kNS5jOgoKICAgbG9jYWxpemUgdGhlIG1kNSBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNS0yNyAwNDowNSAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvb3BlbnNzbF9zaGEuaCwgc25tcGxpYi9vcGVuc3NsX3NoYTEuYywgICAKICAgICAgc25tcGxpYi9zaGFfbG9jbC5oOgoKICAgY29tcGxldGVseSBsb2NhbGl6ZSB0aGUgb3BlbnNzbCBTSEEgc3VwcG9ydAoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vcGVuc3NsX3NoYS5oOgoKICAgaW5pdGlhbCB2ZXJpc29uIG9mIHNoYS5oIGNvcHkKCjIwMTAtMDUtMjcgMDQ6MDQgIGhhcmRha2VyCgogICAqICBzbm1wbGliL21kMzJfY29tbW9uLmgsIHNubXBsaWIvbWQ1X2xvY2wuaCwgc25tcGxpYi9vcGVuc3NsX21kNS5jLCAKICAgICAgICBzbm1wbGliL29wZW5zc2xfc2hhMS5jLCBzbm1wbGliL3NoYV9sb2NsLmg6CgogICBhZGRlZCBsb2NhbCBjb3BpZXMgb2YgdGhlIG9wZW5zc2wgY3J5cHRvIGZ1bmN0aW9ucwoKMjAxMC0wNS0yNyAwNDowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgbWFrZSB1c2Ugb2YgaW50ZXJuYWwgY3J5cHRvIGhhc2ggZnVuY3Rpb25zCgoyMDEwLTA1LTI3IDA0OjAzICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNvbmZpZ3VyZSBjaGVja3MgZm9yIGludGVybmFsLWNyeXB0byBzdXBwb3J0CgoyMDEwLTA1LTI2IDIyOjE3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgcHJvcGVybHkgdmVyaWZ5IGV4cGVjdGVkIHNlcnZlciBjZXJ0aWZpY2F0ZXMgdW5kZXIgRFRMUzsgYWRkIGEKICAgbmV3IGZsYWcgaW4gdGxzYmFzZSB0byBpbmRpY2F0ZSB2ZXJpZmljYXRpb24gaGFzIG9jY3VycmVkCgoyMDEwLTA1LTI2IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDA1MGV0aW1ldGVzdF9jYXBwLmM6CgogICBjb21waWxlciB3YXJuaW5nIHNxdWFzaGluZwoKMjAxMC0wNS0yNiAyMTowMiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwgc25tcGxpYi9sY2RfdGltZS5jLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmM6CgogICBhZGQgY29uc3QgcXVhbGlmaWVycyB0byBhIGZldyBwbGFjZXMKCjIwMTAtMDUtMjYgMTk6NDYgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IEN5Z3dpbjogbGlibmV0c25tcG1pYnMsIGxpYm5ldHNubXBoZWxwZXJzIGFuZAogICBsaWJuZXRzbm1wYWdlbnQgZG8gbm93IGJ1aWxkIGFzIGEgRExMIHdoZW4gY29uZmlndXJlZCB3aXRoCiAgIC0tZW5hYmxlLXNoYXJlZC4KCjIwMTAtMDUtMjYgMTc6NDcgIGJ2YXNzY2hlCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgTkVXUzogbW92ZWQgYWxsIGZ1bmN0aW9ucyBkZWZpbmVkIGluIGxpYm5ldHNubXBoZWxwZXJzIHRvCiAgIGxpYm5ldHNubXBhZ2VudC4gbGlibmV0c25tcGhlbHBlcnMgaXMgbm93IGFuIGVtcHR5IGxpYnJhcnkuCgoyMDEwLTA1LTI2IDE3OjIwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL251bGwuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L251bGwuYywgICAKICAgICAgYWdlbnQvb2xkX2FwaS5jOgoKICAgUmV2ZXJ0ZWQgcjE4ODI5IGluIG9yZGVyIHRvIG1pbmltaXplIGRpZmZzIHdpdGggb2xkZXIgYnJhbmNoZXMuCgoyMDEwLTA1LTI1IDA3OjIzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHM6CgogICBUZWxsIG5ldC1zbm1wLWNlcnQgd2hlcmUgbmV0LXNubXAtY29uZmlnIGlzIGxvY2F0ZWQKCjIwMTAtMDUtMjUgMDc6MTQgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIENvcnJlY3QgdGhlIHNpZ25hdHVyZSBvZiBtYWluLiBVc2UgI2luY2x1ZGUgaW5zdGVhZCBvZiBzb3VyY2luZwogICB0byBnZXQgdGhlIGNvZGUgdW5kZXIgdGVzdCBpbiBvcmRlciB0byBnZXQgYmV0dGVyIGVycm9yIG1lc3NhZ2VzCgoyMDEwLTA1LTI1IDA3OjExICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgQWRkIGFyZ3VtZW50cyB0byBzcHJpbnRmIHN0YXRlbWVudHMgdG8gbWFrZSB0aGUgdGVzdCB3b3JrCgoyMDEwLTA1LTI1IDA3OjA3ICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcyBhbmQgZGlzYWJsZWQgY29kZQoKMjAxMC0wNS0yNSAwNToyMCAgbWFnZnIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTb2NrZXRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTVENQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wSVB2NEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTb2NrZXRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBTcGxpdCBzbm1wSVBCYXNlRG9tYWluIGFuZCBtb3ZlIHRoZSBJUHY0IHBhcnRzCiAgIHRvIElQdjRCYXNlIGFuZCB0aGUgc29ja2V0IGdlbmVyaWMgcGFydHMgdG8gU29ja2V0QmFzZS4KCjIwMTAtMDUtMjQgMjA6MjQgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBmaW5pc2ggdGxzdG1QYXJhbXNUYWJsZSBsYXN0Q2hhbmdlZCBzY2FsYXIKCjIwMTAtMDUtMjQgMTk6MjggIG1hZ2ZyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZDoKCiAgIEFkZCAtLWV4dGVybmFsLWxpYnMgaW4gb3JkZXIgdG8gc3VwcG9ydCBidWlsZGluZyB0aGUgdGVzdHMgb24KICAgc29sYXJpcwoKMjAxMC0wNS0yNCAxMzozMyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS9zbm1wVGxzdG1QYXJhbXNUYWJsZS5jOgoKICAgYXJnaC4uIGZpeCBmYWxsb3V0IGZyb20gbWFudWFsbHkgKG1pcylhcHBseWluZyBwYXRjaAoKMjAxMC0wNS0yNCAxMjo1OSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1QYXJhbXNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtUGFyYW1zVGFibGUvc25tcFRsc3RtUGFyYW1zVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bVBhcmFtc1RhYmxlL3NubXBUbHN0bVBhcmFtc1RhYmxlLmg6CgogICBmaXJzdCBwYXNzIGF0IHRsc3RtUGFyYW1zVGFibGUKCjIwMTAtMDUtMjQgMTI6NTkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGUuYywgCiAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS9zbm1wVGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICB1cGRhdGUgZGVmaW5lcyB0byBtYXRjaCBNSUIgbmFtZXMsIHBlciBncmFuZC1wb29iYWgKCjIwMTAtMDUtMjQgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmM6CgogICB1cGRhdGUgT0lEIHRvIG1hdGNoIHVwY29taW5nIFJGQwoKMjAxMC0wNS0yNCAxMTo0OCAgYnZhc3NjaGUKCiAgICogIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9udWxsLmMsICAgCiAgICAgIGFnZW50L29sZF9hcGkuYzoKCiAgIENIQU5HRVM6IGxpYm5ldHNubXBhZ2VudCwgbGlibmV0c25tcGhlbHBlcnM6IG1vdmVkIHRoZSBmdW5jdGlvbnMKICAgbmV0c25tcF9idWxrX3RvX25leHRfZml4X3JlcXVlc3RzKCksCiAgIG5ldHNubXBfZ2V0X2J1bGtfdG9fbmV4dF9oYW5kbGVyKCksIG5ldHNubXBfcmVnaXN0ZXJfbnVsbCgpLAogICBuZXRzbm1wX3JlZ2lzdGVyX251bGxfY29udGV4dCgpIGFuZCBuZXRzbm1wX3JlZ2lzdGVyX29sZF9hcGkoKQogICBmcm9tIGxpYm5ldHNubXBoZWxwZXJzIHRvIGxpYm5ldHNubXBhZ2VudC4KICAgTm90ZXM6CiAgIC0gVGhpcyBkb2VzIG5vdCBhZmZlY3QgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgZm9yIGFwcGxpY2F0aW9ucwogICB0aGF0IGxpbmsgd2l0aCAkKG5ldC1zbm1wLWNvbmZpZyAtLWFnZW50LWxpYnMpIHNpbmNlIHRoaXMKICAgaW52b2x2ZXMgbGlua2luZyB3aXRoIGJvdGggbGlibmV0c25tcGhlbHBlcnMgYW5kIGxpYm5ldHNubXBhZ2VudC4KICAgLSBGdW5jdGlvbnMgaGF2ZSBiZWVuIG1vdmVkIGJldHdlZW4gbGlicmFyaWVzIGJ5IG1vdmluZyBlbnRpcmUKICAgc291cmNlIGZpbGVzLgoKMjAxMC0wNS0yNCAxMDoxMCAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfZ2V0ZnNzdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmM6CgogICBVc2UgcHJvcGVyIHN0cmluZyBzaXplcyBhbmQgbWFrZSBzdXJlIHN0cmluZ3MgYXJlCiAgIHplcm8tdGVybWluYXRlZC4KCjIwMTAtMDUtMjQgMDg6MDEgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgbmV0LXNubXAtY29uZmlnLmluLCAgIAogICAgICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBsaWJuZXRzbm1wIGRvZXMgbm93IGJ1aWxkIGFzIGEgRExMIHdoZW4KICAgY29uZmlndXJlZCB3aXRoIC0tZW5hYmxlLXNoYXJlZC4KICAgQ0hBTkdFUzogQ3lnd2luOiBwZXJsIG1vZHVsZXMgZG8gbm93IGJ1aWxkICgtLXdpdGgtcGVybC1tb2R1bGVzKS4KICAgTm90ZTogdGhlIFQwNjB0cmFwZHBlcmxfb2xkdWNkLCBUMDYxYWdlbnRwZXJsX29sZHVjZCBhbmQKICAgVDExNWFnZW50eHBlcmxfb2xkdWNkIHRlc3RzIHN0aWxsIGZhaWwuCgoyMDEwLTA1LTIzIDIzOjA2ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYzoKCiAgIHVwZGF0ZSBmaWxlbmFtZXMvcGF0c2ggZm9yIHJlY2VudCBmaWxlIHJlbmFtZXM7IGZpeCB0eXBvcwoKMjAxMC0wNS0yMyAyMjowOCAgbWFnZnIKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9jYXBwX2J1aWxkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NsaWJfYnVpbGQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIHRoZSBzYW1lIGNvbXBpbGVyIGNvbW1hbmQgYW5kIGZsYWdzIGZvcgogICBidWlsZGluZyBvZiB0ZXN0cyBhcyBmb3IgYnVpbGRpbmcgb2YgdGhlIGNvZGUsIHRodXMgZW5hYmxpbmcgdGVzdAogICBvZiBlLmcuIDMyLWJpdCBjb2RlIGNvbXBpbGVkIG9uIGEgNjQtYml0IHBsYXRmb3JtLgoKMjAxMC0wNS0yMyAyMTo0MSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuaDoKCiAgIHVwZGF0ZSBpbmNsdWRlL2NvbmZpZyBmaWxlL3BhdGhzIGZvciByZWNlbnQgcmVuYW1lcwoKMjAxMC0wNS0yMyAyMTozMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlLmgsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvc25tcFRsc3RtQWRkclRhYmxlX3BlcnNpc3QuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfaW50ZXJuYWwuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlL3NubXBUbHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS5oOgoKICAgcmVuYW1lIGZpbGVzIGZvciBNSUIgcmVuYW1lcwoKMjAxMC0wNS0yMyAyMToyNSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtQ2VydFRvVFNOVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGU6CgogICByZW5hbWUgZGlyZWN0b3JpZXMgdG8gbWF0Y2ggcmVuYW1lcyBpbiBNSUIKCjIwMTAtMDUtMjAgMDg6NDggIGJ2YXNzY2hlCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFN3YXBwZWQgbGluayBvcmRlciBvZiAtbG5ldHNubXBoZWxwZXJzIC1sbmV0c25tcG1pYnM6IG5ldHNubXBtaWJzCiAgIGRlcGVuZHMgb24gbmV0c25tcGhlbHBlcnMgYW5kIG5vdCB0aGUgb3RoZXIgd2F5IGFyb3VuZC4KCjIwMTAtMDUtMjAgMDg6NDIgIGJ2YXNzY2hlCgogICAqICBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBGaXhlZCBtb3JlIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xOSAxODoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggc3Rhc2hpbmcKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAxZGVmYXVsdHN0b3JlX2NsaWIuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdW5pdC10ZXN0cy9UMDAyY29udGFpbmVyc19jbGliLmM6CgogICBvdXRwdXQgZmlsZW5hbWVzIG9mIGZhaWxlZCB0ZXN0cwoKMjAxMC0wNS0xOSAxODoyNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICB3aXBlIHRyYWlsaW5nIGNvbW1lbnQgQyBtYXJrZXIgaWYgaXQgZXhpc3RzCgoyMDEwLTA1LTE5IDE4OjI1ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwMTBzY2FwaXRlc3RfY2FwcC5jLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAyMGhhc2h0ZXN0c19jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHRpdGxlIHRoZSBTTk1QdjMgdGVzdHMKCjIwMTAtMDUtMTkgMTg6MjUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHRlc3Rpbmcgb2YgYnVpbHQgdGl0bGVzCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG9ubHkgcHJpbnQgZmFpbHVyZSBoZWFkZXIgaWYgdGhlcmUgd2FzIGF0IGxlYXN0IG9uZQoKMjAxMC0wNS0xOSAxODoyNCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvUlVORlVMTFRFU1RTLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2Q6CgogICBtYWtlIGRlc2NyaXB0aXZlIHRpdGxlcyB3b3JrIGFnYWluCgoyMDEwLTA1LTE5IDE4OjI0ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9SVU5GVUxMVEVTVFMsIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvYnVpbGRfY2FwcCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jbGliLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L2NhcHBfYnVpbGQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvY2xpYl9idWlsZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfcnVuLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICByZW5hbWUgZmlsZXMgc28gcHJlZml4aW5nIGlzIGJhc2VkIG9uIHRoZSBzdWl0ZSBuYW1lLCBub3QgZmlsZQogICB0eXBlCgoyMDEwLTA1LTE5IDE3OjUyICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUuUEwsIHBlcmwvTWFrZWZpbGUuc3Vicy5wbCwgICAKICAgICAgcGVybC9PSUQvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBDeWd3aW46IHBlcmw6IGJ1aWxkaW5nIHRoZSBQZXJsIG1vZHVsZXMgd2l0aCB0aGUgQ3lnd2luCiAgIFBlcmwgcGFja2FnZSBpcyBub3cgcG9zc2libGUuCiAgIChGb3J3YXJkLXBvcnRlZCByMTg2ODggZnJvbSB0aGUgVjUuNSBicmFuY2guKQoKMjAxMC0wNS0xOSAxNzo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jOgoKICAgRml4ZWQgeWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZy4KCjIwMTAtMDUtMTkgMTI6MDUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRjdGwuYzoKCiAgIEZpcnN0LWRyYWZ0IHN1cHBvcnQgZm9yIEFJWCBmaWxlc3lzdGVtIEhBTCBtb2R1bGUgKHVudGVzdGVkKQoKMjAxMC0wNS0xOSAxMToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jOgoKICAgU3VwcG9ydCBmb3IgU29sYXJpcy1zdHlsZSAnZ2V0bW50ZW50JyBBUEkuCgoyMDEwLTA1LTE5IDA5OjU3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmg6CgogICBTaW1wbGlmeSB0aGUgaGFuZGxpbmcgb2YgdW5rbm93bi91bndhbnRlZCBmaWxlIHN5c3RlbXMuCgoyMDEwLTA1LTE5IDA5OjMwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvZnN5cy5oOgoKICAgRml4IG1pc3NpbmcvYnJva2VuIEFQSSBkZWNsYXJhdGlvbnMuCgoyMDEwLTA1LTE5IDA4OjQ2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBNYWRlIGVycm9yIG1lc3NhZ2VzIG1vcmUgY2xlYXIgaW4gY2FzZSBvZiBmYWlsdXJlIG9yIHdyb25nCiAgIGludm9jYXRpb24uCgoyMDEwLTA1LTE5IDAwOjAxICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIHRlc3QgZm9yIHVzaW5nIGEgY2VydGlmaWNhdGUgc2lnbmVkIGJ5IGEgQ0EgY2VydGlmaWNhdGUKCjIwMTAtMDUtMTggMjM6MzEgIHRhbmRlcnMKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2Ugc3VyZSB3ZSBjYWxsIHRoZSByaWdodCBQZXJsCgoyMDEwLTA1LTE4IDIwOjM5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBDSEFOR0VTOiBhZ2VudDogaW5jbHVkZSBsb2NhbCBwb3J0IG51bWJlciBpbiBwYWNrZXQgZHVtcHMuIEFuCiAgIGV4YW1wbGU6CiAgIAogICBSZWNlaXZlZCAzNiBieXRlIHBhY2tldCBmcm9tIFVEUDoKICAgWzEyNy4wLjAuMV06NTM5MDktPlsxMjcuMC4wLjFdOjExNjEKICAgMDAwMDogMzAgMjIgMDIgMDEgMDEgMDQgMDYgNzAgNzUgNjIgNkMgNjkgNjMgQTEgMTUgMDIKICAgMCIuLi4uLnB1YmxpYy4uLgogICAwMDE2OiAwNCAzNyBGMiBENCA5QiAwMiAwMSAwMCAwMiAwMSAwMCAzMCAwNyAzMCAwNSAwNgogICAuNy4uLi4uLi4uLjAuMC4uCiAgIDAwMzI6IDAxIDAxIDA1IDAwIC4uLi4KICAgCiAgIFJlY2VpdmVkIFNOTVAgcGFja2V0KHMpIGZyb20gVURQOgogICBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICBHRVRORVhUIG1lc3NhZ2UKICAgLS0gY2NpdHQuMQogICAKICAgU2VuZGluZyAxMTggYnl0ZXMgdG8gVURQOiBbMTI3LjAuMC4xXTo1MzkwOS0+WzEyNy4wLjAuMV06MTE2MQogICAwMDAwOiAzMCA3NCAwMiAwMSAwMSAwNCAwNiA3MCA3NSA2MiA2QyA2OSA2MyBBMiA2NyAwMgogICAwdC4uLi4ucHVibGljLmcuCiAgIDAwMTY6IDA0IDM3IEYyIEQ0IDlCIDAyIDAxIDAwIDAyIDAxIDAwIDMwIDU5IDMwIDU3IDA2CiAgIC43Li4uLi4uLi4uMFkwVy4KICAgMDAzMjogMDggMkIgMDYgMDEgMDIgMDEgMDEgMDEgMDAgMDQgNEIgNEMgNjkgNkUgNzUgNzgKICAgLisuLi4uLi4uLktMaW51eAogICAwMDQ4OiAyMCA2MSA3MyA3NSA3MyAyMCAzMiAyRSAzNiAyRSAzMyAzMyAyRSAzMiAyRCA3MyBhc3VzCiAgIDIuNi4zMy4yLXMKICAgMDA2NDogNjMgNzMgNzQgMjAgMjMgMzEgMjAgNTMgNEQgNTAgMjAgNTAgNTIgNDUgNDUgNEQgY3N0ICMxIFNNUAogICBQUkVFTQogICAwMDgwOiA1MCA1NCAyMCA1MyA2MSA3NCAyMCA0MSA3MCA3MiAyMCAzMyAyMCAzMiAzMSAzQSBQVCBTYXQgQXByCiAgIDMgMjE6CiAgIDAwOTY6IDMxIDMwIDNBIDM1IDM4IDIwIDQzIDQ1IDUzIDU0IDIwIDMyIDMwIDMxIDMwIDIwIDEwOjU4IENFU1QKICAgMjAxMAogICAwMTEyOiA3OCAzOCAzNiA1RiAzNiAzNCB4ODZfNjQKCjIwMTAtMDUtMTggMTk6NDIgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9pbnRlcm5hbC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGVfcGVyc2lzdC5jLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmM6CgogICB1cGRhdGUgdGxzdG1BZGRyVGFibGUKICAgLSBkZWFsIHdpdGggaGFzaCB0eXBlIHByb3Blcmx5IGZvciBnZXQvc2V0IGFuZCBwZXJzaXN0ZW5jZQogICAtIGFkZCBjb3VudCBhbmQgbGFzdCBjaGFuZ2VkIHNjYWxhcnMKCjIwMTAtMDUtMTggMTk6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuYzoKCiAgIHVwZGF0ZSB0byBvZmZpY2FsIE9JRCBmcm9tIHVwY29taW5nIHJmYwoKMjAxMC0wNS0xOCAxNjoxNiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC90bHN0bS1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jOgoKICAgdXBkYXRlIHRvIG9mZmljaWFsIE9JRHMgZnJvbSB1cGNvbWluZyBSRkM7IGFkZCBjb3VudC9sYXN0IGNoYW5nZWQKICAgc2NhbGFycwoKMjAxMC0wNS0xOCAxNDo1NiAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDIwMDE2NTY6IEhhbmRsZSBudWxsLXRlcm1pbmF0aW9uIG9mCiAgIHN0cmluZyB2YWx1ZXMgcHJvcGVybHkuCiAgIEJhc2VkIG9uIHRoZSBwcmluY2lwbGVzIG9mIHRoZSBwYXRjaCBmcm9tIFRvbW15IEJlYWRsZS4KCjIwMTAtMDUtMTggMTQ6MzggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2ZzeXNfbW50ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvaHdfZnN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL21udHR5cGVzLmgsIGFnZW50L21pYmdyb3VwL2hvc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocmhfc3RvcmFnZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2ZzeXMuaDoKCiAgIFdvcmtpbmcoPykgSEFMLWJhc2VkIHZlcnNpb24gb2YgaHJGU1RhYmxlLgoKMjAxMC0wNS0xOCAxNDoxMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nLgoKMjAxMC0wNS0xNyAyMTowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICB1c2UgcHJvcGVyIFRTTSBzZWN1cml0eSBjb2RlICg0KSBub3cgdGhhdCBpdCdzIG9mZmljaWFsCgoyMDEwLTA1LTE3IDE4OjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDJjb250YWluZXJzX2NsaWIuYzoKCiAgIGJlZ2lubmluZyBvZiBhIGNvbnRhaW5lciB1bml0IHRlc3QKCjIwMTAtMDUtMTcgMTg6NDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXN0aW5nLmg6CgogICBhIGJhc2ljIEMtY29kZSBiYXNlZCB0ZXN0IHJlcG9ydGluZyBtZWNoYW5pc20KCjIwMTAtMDUtMTcgMTg6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy91bml0LXRlc3RzL1QwMDFkZWZhdWx0c3RvcmVfY2xpYi5jOgoKICAgYmFzaWMgZGVmYXVsdF9zdG9yZSB0ZXN0cwoKMjAxMC0wNS0xNyAxODo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jbGliOgoKICAgYSBidWlsZCBzeXN0ZW0gZm9yIGJhc2ljIGxpYm5ldHNubXAgdGVzdHMKCjIwMTAtMDUtMTcgMTg6MTQgIHJzdG9yeQoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBmaXggZmluZ2VycHJpbnQgYmluL2hleCBjb252ZXJzaW9uOyBhZGQvcmVtb3ZlIGNlcnQgc2VjIG1hcHMgdmlhCiAgIG1pYiBub3cgd29ya3MKCjIwMTAtMDUtMTcgMTg6MTMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgbmV3IGZ1bmN0aW9uIG5ldHNubXBfYmluYXJ5X3RvX2hleAoKMjAxMC0wNS0xNyAxODoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZnByaW50ZihzdGRlcnIgLT4gREVCVUdNU0dUTCgoCgoyMDEwLTA1LTE3IDE4OjEyICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgY2hlY2sgZm9yIGhhc2ggdHlwZQoKMjAxMC0wNS0xNyAxNjozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIG1ha2UgUlVOVEVTVFMgd29yayBvdXRzaWRlIHRoZSBzb3VyY2VkaXIKCjIwMTAtMDUtMTcgMTU6MzcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW4sIHRlc3RpbmcvUlVOVEVTVFM6CgogICBtYWRlIGEgbGltaXRlZCBydW4gdGVzdCBwb3NzaWJsZSBhZ2FpbiB3aXRob3V0IHBlcmwKCjIwMTAtMDUtMTcgMTU6MzIgIGR0czEyCgogICAqICB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFVzZSBuZXdlciBEaXNNYW4gRXZlbnQgTUlCIGNvZGUgZm9yIE1TVkMtYmFzZWQgYnVpbGRzCiAgIChpbiBsaW5lIHdpdGggYWxsIGNvbmZpZ3VyZS1iYXNlZCBidWlsZHMpCgoyMDEwLTA1LTE3IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1vdmUgdGhlIHJldHVybiBvdXRzaWRlIHRoZSBpZiBzdGF0ZW1lbnQKCjIwMTAtMDUtMTcgMTU6MTggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9mc3lzLmg6CgogICBQcm92aWRlIG1pc3NpbmcgcHVibGljIGludGVyZmFjZSB0byBIQUwtYmFzZWQgZmlsZXN0b3JlIG1vZHVsZS4KCjIwMTAtMDUtMTcgMTA6NDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4NzU0IChyZXZlcnQgcjE4NzM4KTogcjE4NzU0IG9ubHkgcGFydGlhbGx5CiAgIHJldmVydGVkIHIxODczOAogICBhbmQgaGVuY2UgYnJva2UgdGhlIFdpbjMyLWJ1aWxkLiBGaW5pc2hlZCByZXZlcnNhbCBvZiByMTg3MzggYnkKICAgcmVzdG9yaW5nCiAgIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaC4KCjIwMTAtMDUtMTYgMTg6MTcgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIEZvbGxvdy11cCBmb3IgcjE4NzI2OiBvbmx5IHBhc3MgLWZzdGFjay1wcm90ZWN0b3IqIGZsYWdzIHRvIHRoZQogICBsaW5rZXIgaW5zdGVhZCBvZiBhbGwgLWYqIGZsYWdzIHN1Y2ggdGhhdCBpdCBiZWNvbWVzIGxlc3MgbGlrZWx5CiAgIHRoYXQgdGhpcyBtb2RpZmljYXRpb24gY2F1c2VzIHRyb3VibGUgd2l0aCBub24tR05VIHRvb2xjaGFpbnMuCgoyMDEwLTA1LTE2IDE4OjE0ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTl0cmFwZHRyYXBoYW5kbGVfb2xkdWNkOgoKICAgTWFkZSBzaGVsbCBjb2RlIGZvciBjb252ZXJ0aW5nIGEgcmVsYXRpdmUgcGF0aCB0byBhbiBhYnNvbHV0ZQogICBwYXRoIG1vcmUKICAgcm9idXN0IGFuZCBjb252ZXJ0ZWQgIiR7Li4uIy4uLn0iIGNvbnN0cnVjdCBpbnRvIGVjaG8gKyBjdXQuCgoyMDEwLTA1LTE2IDE4OjEyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIE1vcmUgVVNJTkdfVUNEX1NOTVBfRVhURU5TSUJMRV9NT0RVTEUgdG8KICAgVVNJTkdfVVRJTElUSUVTX0VYRUNVVEVfTU9EVUxFIHN1YnN0aXR1dGlvbnMsIG5lY2Vzc2FyeSB0byBtYWtlCiAgIHRlc3QgMDU5IGFuZCAwNjUgcGFzcy4KCjIwMTAtMDUtMTYgMTc6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBmaXggdGVzdHMgZm9yIGNoZWNraW5nIHNodXRkb3duIG9mIGFwcGxpY2F0aW9ucyB0byBub3QgcmVwb3J0CiAgIGZhbHNlIG5lZ2F0aXZlcwoKMjAxMC0wNS0xNiAxMjoxNSAgYnZhc3NjaGUKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZDoKCiAgIE1hZGUgdGVzdCBUMDU5IHBhc3MgYWdhaW4uIFRoaXMgdGVzdCB3YXMgcmVjZW50bHkgYnJva2VuIGJ5CiAgIHBhc3NpbmcgYXJndW1lbnRzIHRvIGl0IHdpdGggYWJzb2x1dGUgcGF0aHMgaW5zdGVhZCBvZiByZWxhdGl2ZQogICBwYXRocy4KCjIwMTAtMDUtMTYgMTI6MTQgIGJ2YXNzY2hlCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA2NWFnZW50ZXh0ZW5kX29sZHVjZDoKCiAgIEFkZGVkICdTS0lQSUZOT1QgVVNJTkdfVVRJTElUSUVTX0VYRUNVVEVfTU9EVUxFJy4KCjIwMTAtMDUtMTYgMTE6NDIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgRml4ZWQgc2V2ZXJhbCByZWNlbnRseSBpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAxMC0wNS0xNiAxMTo0MSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXSW5zdGFsbGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhcHBzL3NzaHRvc25tcC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBpbiBvbGQgY29kZS4KCjIwMTAtMDUtMTYgMDk6NTkgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogZG9uJ3QgdHJpZ2dlciBhIG5ldHNubXBfYXNzZXJ0KCkgd2hlbgogICBubyBleHRlbnNpb24gRExMcyBoYXZlIGJlZW4gbG9hZGVkLgoKMjAxMC0wNS0xNSAxNzozMSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN0b3AtZ2FwIGZpeCB0byB1bmJyZWFrICJtYWtlIHRlc3QiIGZvciB0aGUgbmlnaHRseSBidWlsZHMKCjIwMTAtMDUtMTUgMTA6NTkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIFJldmVydGVkIHIxODcyNyBiZWNhdXNlIGl0IGNhdXNlZCBidWlsZCBlcnJvcnMgb24gU29sYXJpcywgQUlYCiAgIGFuZCBIUC1VWC4KCjIwMTAtMDUtMTUgMDA6NDIgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsOgoKICAgcmV2ZXJ0IHIxODczOCBzaW5jZSBuZXcgdHJhbnNwb3J0IHJlcXVpcmUgZHluYW1pY2x5IGJ1aWx0IGhlYWRlcgogICBmaWxlcwoKMjAxMC0wNS0xNSAwMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIGxvZyBlbnYgdmFyaWFibGVzIHVzZWQgdG8gdGhlIGludm9rZWQgZmlsZQoKMjAxMC0wNS0xNCAyMToyOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgZml4IHNjcmlwdCBzbyBpdCBjYW4gYmUgaW52b2tlZCBvdXRzaWRlIHRoZSB0ZXN0IGVudmlyb25tZW50CiAgIGFnYWluCgoyMDEwLTA1LTE0IDIxOjI4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVAtVExTLVRNLU1JQi50eHQ6CgogICBhZGRlZCB0aGUgU05NUC1UTFMtVE0tTUlCIHdpdGggZmluYWwgSUFOQSBhc3NpZ25tZW50IHNsb3RzCgoyMDEwLTA1LTE0IDIxOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIHVzZSBmaW5hbCBJQU5BIGFzc2lnbmVkIFRTTSBwcmVmaXhlcwoKMjAxMC0wNS0xNCAyMToyNiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oOgoKICAgdXNlIGZpbmFsIElBTkEgYXNzaWduZWQgRG9tYWluIG51bWJlcnMKCjIwMTAtMDUtMTQgMjE6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXQgZGVmYXVsdCB2ZXJzaW9uIGFuZCBzZWNsZXZlbCBpZiB0bHMvZHRscwoKMjAxMC0wNS0xNCAxNToyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY2hlY2sgcmMgZnJvbSBzZWNuYW1lIG1hcHBpbmc7IGNsYXJpZnkgY29tbWVudAoKMjAxMC0wNS0xNCAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBkb24ndCB1c2UgdW5zb3J0ZWQgY29udGFpbmVyOyBkb24ndCBmcmVlIGNhbGxlcidzIGNvbnRhaW5lcgoKMjAxMC0wNS0xNCAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIGxpbmVhcl9zZWFyY2ggZm9yIHVuc29ydGVkIGNvbnRhaW5lcnMKCjIwMTAtMDUtMTQgMTE6NTYgIGJ2YXNzY2hlCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsICAgCiAgICAgIHdpbjMyL2J1aWxkLnBsLCB3aW4zMi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmg6CgogICBJbXByb3ZlZCBwb3J0YWJpbGl0eSBieSByZW1vdmluZyB0aGUgZ2VuZXJhdGVkIGZpbGUKICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBfdHJhbnNwb3J0X2luaXRzLmguCiAgIENvbW1lbnRlZCBvdXQgdGhlIGNvZGUgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZm9yIGdlbmVyYXRpbmcKICAgdGhpcyBoZWFkZXIgZmlsZS4KICAgQWRkZWQgY29uZmlndXJlLXRpbWUgY29kZSBmb3IgY2hlY2tpbmcgd2hldGhlciB0aGUgY29uc3RydWN0b3JzCiAgIGZvciBhbGwgY29uZmlndXJlZAogICB0cmFuc3BvcnRzIGFyZSBpbnZva2VkIGZyb20gc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLgoKMjAxMC0wNS0xNCAxMTowMCAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgRG9jdW1lbnRhdGlvbjogdXBkYXRlZCBDeWd3aW4gYnVpbGQgaW5zdHJ1Y3Rpb25zLgoKMjAxMC0wNS0xNCAwOToxNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X251bGwuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX29wZW5zc2wuYywgIAogICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEZpeGVkIHNldmVyYWwgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTA1LTE0IDA4OjUwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBBZGRlZCAtbm8tdW5kZWZpbmVkIGZsYWcgdG8gbGlicmFyeSBsaW5rIGNvbW1hbmRzIHN1Y2ggdGhhdAogICBsaWJ0b29sIGNhbiBidWlsZCBETExzIG9uIFdpbjMyLgogICBOb3RlOiBidWlsZGluZyBETExzIG9uIFdpbjMyIGRvZXMgbm90IHlldCB3b3JrIGJlY2F1c2Ugb2YgdGhlCiAgIGNpcmN1bGFyIGRlcGVuZGVuY3kgYmV0d2VlbgogICBsaWJuZXRzbm1waGVscGVycyBhbmQgbGlibmV0c25tcGFnZW50CiAgIChzZWUgYWxzbwogICBodHRwOi8vd3d3Lm5ldC1zbm1wLm9yZy93aWtpL2luZGV4LnBocC9MaWJyYXJ5X2xheWVyaW5nKS4KCjIwMTAtMDUtMTQgMDg6NDIgIGJ2YXNzY2hlCgogICAqIGx0bWFpbi5zaDoKCiAgIGxpYnRvb2wgYnVnIGZpeDogYWxzbyBwYXNzIGZsYWdzIHN0YXJ0aW5nIHdpdGggLWYgdG8gdGhlIGxpbmtlcgogICBzaW5jZSB0aGVzZSBjYW4gYWZmZWN0IGxpbmtpbmcuIFRoZSBmbGFnIC1mc3RhY2stcHJvdGVjdG9yIGUuZy4KICAgdHJpZ2dlcnMgaW5jbHVzaW9uIG9mIGxpYnNzcC4KCjIwMTAtMDUtMTQgMDg6NDAgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGFib3J0IGlmIHRoZSBmaWxlIHByb2dyYW0gY291bGQgbm90IGJlIGZvdW5kLAogICBzaW5jZSB0aGlzIGlzIGVzc2VudGlhbCBmb3IgcHJvcGVyIG9wZXJhdGlvbiBvZiBsaWJ0b29sLgogICBDSEFOR0VTOiBDeWd3aW46IG5laXRoZXIgY29tcGlsZSBub3IgbGluayB3aW5waXBlLmMuCgoyMDEwLTA1LTEzIDA4OjU4ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSYW4gYXV0b3JlY29uZi4KCjIwMTAtMDUtMTIgMjA6MTYgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBMaW51eDogYnVpbGRzIGFnYWluIHdpdGggZW1iZWRkZWQgUGVybCBkaXNhYmxlZCAoYnVnCiAgIDI5ODU5MTUpLgoKMjAxMC0wNS0xMiAxOTo0NyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5jLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgRm9sbG93LXVwIGZvciByMTg2ODQ6IHVuLWJyZWFrIHRoZSBXaW4zMiBNU1ZDIGJ1aWxkLgoKMjAxMC0wNS0xMiAxOTo0MyAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgV2luMzI6IGZpeGVkIGEgdHlwbyBhbmQgbWFkZSBpbmRlbnRhdGlvbiBjb25zaXN0ZW50LgoKMjAxMC0wNS0xMiAxOToxMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjb25zdHJ1Y3QgdGVtcCBidWlsZCBmaWxlcyBpbiBhIHNlcGFyYXRlIGRpcmVjdG9yeQoKMjAxMC0wNS0xMiAxOToxMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggcmVjZW50bHkgYnJva2VuIG9sZCBwZXJsIGZ1bmN0aW9uYWxpdHkKCjIwMTAtMDUtMTIgMTg6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBhZGRlZCBhIC0tc2hvcnQgb3B0aW9uIHRvIHNob3J0ZW4gdGhlIHNob3cgb3V0cHV0IHRvIG1pbmltYWxpc3RpYwoKMjAxMC0wNS0xMiAxNDoxNCAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIFRDUC1NSUIuCgoyMDEwLTA1LTEyIDEzOjAyICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9sbXNlbnNvcnNfdjMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBmaXhlZCBtZW1vcnkgbGVhayB3aGVuIHJlYWRpbmcgc2Vuc29ycyBmb3IKICAgTE0tU0VOU09SUy1NSUIuCgoyMDEwLTA1LTEyIDEyOjU3ICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgUmV2ZXJ0IHJldmlzaW9uIDE4Njg5CiAgIExhdGVzdCBXaW4zMiBidWlsZHMgaW5jbHVkZSBzdXBwb3J0IGZvciBzdHJ0b3VsbC4KCjIwMTAtMDUtMTIgMTI6MDUgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy5oLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IGFkZGVkIGRldGVjdGlvbiBvZiBsbV9zZW5zb3JzIHZlcnNpb24uCiAgIEkgYW0gbm90IEF1dG9jb25mIGd1cnUsIHNvIEkgaG9wZSBJIGdvdCBpdCByaWdodC4gVGhlIGdvYWwgaXMgdG8KICAgZGVmaW5lIE5FVFNOTVBfVVNFX1NFTlNPUlNfVjMgKmJlZm9yZSogY29uZmlnX21vZHVsZXNfYWdlbnQKICAgcHJvY2Vzc2VzIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaC4KCjIwMTAtMDUtMTIgMDc6MDMgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQWRkIG1pc3NpbmcgZGVwZW5kZW5jaWVzIGJldHdlZW4gdHJhbnNwb3J0cy4KCjIwMTAtMDUtMTIgMDM6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZml4IHRpdGxlIGdlbmVyYXRpb24gYWZ0ZXIgY2hhbmdlIHRvIHdoYXQgc3JjZGlyIG1lYW50CgoyMDEwLTA1LTEyIDAyOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgdW5kbyBsYXN0IGNoYW5nZSB3aGljaCB0dXJuZWQgb3V0IHRvIG9ubHkgY2F1c2UgZXJyb3JzIGlmIHlvdSBoYWQKICAgYSBvbGQgLmNvbmYgZmlsZSBhcm91bmQKCjIwMTAtMDUtMTIgMDI6MTMgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggdjNfY2EgY3JlYXRpb24gZXh0ZW5zaW9uIG5hbWUKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAga2VlcCBmb3JtYXQgdmVyc2lvbiAjIGluIGNlcnQgaW5kZXhlczsgZG9uJ3Qgc3RvcmUgaGFzaCB0eXBlCiAgIHN0cmluZyBpbiBpbmRleDsKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZml4IGludmVydGVkIGNvbnZlcnNpb24gY2FsbDsgbGVzcyB2ZXJib3NlIGRlZmF1bHQgZGVidWcKCjIwMTAtMDUtMTIgMDI6MDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IHBhcnNpbmcgb2YgLVQgbmFtZS92YWx1ZSBwYWlycwoKMjAxMC0wNS0xMSAyMzozMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGJ1ZyBmaXhpbmcgYW5kIGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgIm1ha2UgdGVzdCIgd2l0aAogICBUZXN0OjpIYXJuZXNzCiAgIChzdGlsbCBkb2Vzbid0IHdvcmsgZm9yIG1lLCB0aG91Z2gpCgoyMDEwLTA1LTExIDIyOjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgRG8gTk9UIGhhcmRjb2RlIC91c3IvYmluL3BlcmwgYXMgdGhlIFBlcmwgcGF0aAoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBmaXggc3Rhc2ggZmlsZSBoYW5kbGluZwoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBsb25nIG9wdGlvbnMgc3VjayA7LSkuIHByZWZlciBkb3VibGUgZGFzaGVzIGZvciBsb25nIG9wdGlvbnMgdG8KICAgbWF0Y2ggdGhlIHJlc3Qgb2YgdGhlIE5ldC1TTk1QIGNvZGUgYmFzZQoKMjAxMC0wNS0xMSAyMDoxNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBhZGRlZCBhYmlsaXR5IHRvIHJ1biBvbmx5IHRoZSBmYWlsZWQgdGVzdHMgZnJvbSB0aGUgbGFzdCBydW4KCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZG9uJ3QgZm9yY2UgY29sb3IKCjIwMTAtMDUtMTEgMjA6MTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgY2xlYW51cCBvZiBvbGRlcgoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBNaW5pbWFsbHkgc3VwcG9ydCB0aGUgb2xkZXIgVGVzdDo6SGFybmVzcyBwZXJsIG1vZHVsZSBmb3IgcnVubmluZwogICB0aGUgb2xkZXIgdGVzdHMgYXQgbGVhc3QKCjIwMTAtMDUtMTEgMjA6MTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc2V0IGEgZGVmYXVsdCBzZWN1cml0eU5hbWUgYW5kIHNlY3VyaXR5TW9kZWwgaWYgVExTIG9yIERUTFMgaXMgaW4KICAgdXNlIG9uIHRoZSBjbGllbnQgc2lkZQoKMjAxMC0wNS0xMSAyMDoxNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jOgoKICAgYWxsb3cgc2VjdXJpdHkgbW9kZWxzIHRvIHBlcmZvcm0gbW9yZSBvZiB0aGUgc2Vzc2lvbiBzZXR1cDsgbW92ZWQKICAgbW9yZSBVU00gc3BlY2lmaWMgc2V0dXAgaW50byBpdCdzIHNldHVwIHJvdXRpbmUKCjIwMTAtMDUtMTEgMTg6MDIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGZpeCBwYXJhbSB0byBsb29rdXAgcGVlciBjZXJ0CgoyMDEwLTA1LTExIDE2OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWxsb3cgJy0nIGluIGZxZG47IGFkZCBkZWJ1ZyBvdXRwdXQgZm9yIGhvc3Qgc3BlY2lmaWMgY29uZmlnCgoyMDEwLTA1LTExIDE1OjQ2ICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEVuc3VyZSAnbmV0c25tcF9yZWFkX21vZHVsZScgaXMgYXZhaWxhYmxlIGZvciBwZXJsIGJ1aWxkLgoKMjAxMC0wNS0xMSAxNTo0NCAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEZpeCBwZXJsIGJ1aWxkIHVuZGVyIFdpbmRvd3MgKHN0cnRvdWxsIG5vdCBhdmFpbGFibGUpCgoyMDEwLTA1LTEwIDA3OjA3ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTU0hEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBTU0hEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEFkZCBtaXNzaW5nIHN5bWJvbCBuZXRzbm1wX3NubXBTU0hEb21haW5fbGVuLAogICBtYWtlIG5ldHNubXBfc25tcFNTSERvbWFpbiBjb25zdC4KCjIwMTAtMDUtMDkgMjI6MDMgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZDoKCiAgIERvIG5vdCByZXF1aXJlIHF1b3RlcyBhcm91bmQgdGhlIENQVSBzdHJpbmcgYXMgdGhhdCBkZXBlbmRzIG9uCiAgIGhvdyB0aGUgYWdlbnQgaXMgY29uZmlndXJlZC4KCjIwMTAtMDUtMDkgMjE6NDMgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvRXhpdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL0V4aXQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9yZXN0YXJ0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvcmVzdGFydC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IEV4dHJhY3QgdGhlIEV4aXQgYW5kIHJlc3RhcnQqIHN1YnJvdXRpbmVzIGZyb20KICAgdXRpbF9mdW5jIGluIG9yZGVyIHRvIG1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgbGVzcyBjb2RlIGZvciB0aGUKICAgbWluaW1hbCBjYXNlLgoKMjAxMC0wNS0wOSAxNjo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgZnVuY3Rpb24KICAgZ2V0X2V4ZWNfb3V0cHV0KCkgcmV0dXJucyBhIHZhbHVlIHdoZW4gdGhlIHByZXByb2Nlc3NvciBzeW1ib2wKICAgVVNJTkdfVUNEX1NOTVBfRVhURU5TSUJMRV9NT0RVTEUgaGFzIG5vdCBiZWVuIGRlZmluZWQuCgoyMDEwLTA1LTA5IDE2OjQ1ICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgQ0hBTkdFUzogQ3lnd2luOiBidWlsZHMgbm93IGFsc28gd2hlbiB0aGUgc291cmNlIGZpbGVzIGFyZQogICBsb2NhdGVkIG9uIGEgU2FtYmEgZmlsZXN5c3RlbSBpbnN0ZWFkIG9mIGEgbG9jYWwgZmlsZXN5c3RlbS4KCjIwMTAtMDUtMDkgMTM6MDUgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBDb3JyZWN0IHRoZSBpZiB0aGF0IHRyaWVzIHRvIGZpZ3VyZSBvdXQgaWYgYSBzdWZmaWNpZW50bHkgbmV3IGdjYwogICBpcyBpbiB1c2UuCgoyMDEwLTA1LTA5IDEyOjUwICBtYWdmcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgQ2hlY2sgZm9yIHRoZSBuZWVkZWQgbW9kdWxlIGFuZCBub3Qgc29tZSBvdGhlciBvbmUuCiAgIExvZyB0aGUgY29ycmVjdCBtaXNzaW5nIHN5bWJvbC4KCjIwMTAtMDUtMDkgMDk6MjEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHV0aWxpdGllcy9leGVjdXRlIGRvIG5vdCBuZWVkIGFueXRoaW5nIGZyb20KICAgdXRpbF9mdW5jcywgc28gc3RvcCBkZXBlbmRpbmcgb24gaXQuCgoyMDEwLTA1LTA5IDA5OjEyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgTkVXUzogc25tcGQ6IFJlbW92ZWQgdGhlIHVudXNlZCBmdW5jdGlvbiB4eF90b2tlbml6ZV9leGVjX2NvbW1hbmQKICAgZnJvbSB1dGlsaXRpZXMvZXhlY3V0ZS4KCjIwMTAtMDUtMDkgMDk6MDEgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVwbGFjZSB0aGUgZGVidWdnaW5nIGZ1bmN0aW9ucyB3aXRoIGR1bW1pZXMKICAgd2hlbiBkZWJ1Z2dpbmcgaXMgZGlzYWJsZWQuCgoyMDEwLTA1LTA5IDA4OjAyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkOgoKICAgQ2hlY2sgdGhhdCB0aGUgVURQIHRyYW5zcG9ydCBpcyBlbmFibGVkCgoyMDEwLTA1LTA5IDA4OjAxICBtYWdmcgoKICAgKiAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdHJhbnNwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMDB1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMTB0Y3Bfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMjB1ZHB2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDMzMHRjcHY2X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzUwdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgRmFjdG9yIG91dCBjaGVjayBmb3IgbWliSUkvc3lzdGVtX21pYgoKMjAxMC0wNS0wOSAwNzo1OSAgbWFnZnIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIEFkZCBtaXNzaW5nIGluY2x1ZGVzCgoyMDEwLTA1LTA4IDIzOjE2ICBtYWdmcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIEFkZGl0aW9uYWxseSBmaXggbWFrZSB0ZXN0IGZvciB0aGUgdW5jb21tb24gY2FzZSB3aGVyZSBidWlsZGRpcgogICA9PSBzcmNkaXIKCjIwMTAtMDUtMDggMjI6NTUgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgQ0hBTkdFUzogdGVzdGluZzogTWFrZSBpdCBwb3NzaWJsZSB0byBydW4gdGhlIHRlc3Qgc3VpdGUgZnJvbQogICBhbnl3aGVyZS4KICAgQ2hhbmdlIHRoZSAtRCBvcHRpb24gdG8gZXhwZWN0IHRoZSBwYXRoIG9mIHRoZSB0b3Agc291cmNlCiAgIGRpcmVjdG9yeS4KICAgQWRkIGFuIC1zcmNkaXIgb3B0aW9uIHRoYXQgaXMgYW4gYWxpYXMgZm9yIC1ELgogICBBZGQgYW4gLWJ1aWxkZGlyIG9wdGlvbiB0byBkZXNpZ25hdGUgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgdGVzdAogICBvYmplY3QgaXMuCiAgIFB1dCBzcmNkaXIgYW5kIGJ1aWxkZGlyIGluIHRoZSBlbnZpcm9ubWVudCBmb3IgdGhlIHRlc3Qgc2NyaXB0cwogICBGYWN0b3Igb3V0IHRoZSBncmVwIHBhcnQgb2YgU0tJUElGIGFuZCBTS0lQSUZOT1QgdG8gSVNERUZJTkVECiAgIFVzZSBtb3JlIHJlYWRhYmxlIGtleXMgaW4gdGhlIG9wdHMgaGFzaCBpbiBSVU5GVUxMVEVTVFMKICAgQWRqdXN0IGV2ZXJ5dGhpbmcgdG8gdXNlIHNyY2RpciBhbmQgYnVpbGRkaXIKCjIwMTAtMDUtMDggMjI6NDIgIG1hZ2ZyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmM6CgogICBVc2UgY29ycmVjdCBhcmd1bWVudCB0eXBlcwoKMjAxMC0wNS0wOCAyMjowNyAgbWFnZnIKCiAgICogTWFrZWZpbGUuaW46CgogICBDb25zb2xpZGF0ZSB0aGUgdGVzdCBhbmQgdGVzdC1taWJzIHRhcmdldHMuCiAgIEV4cG9zZSB0aGUgdGVzdGFsbCB0YXJnZXQgaW4gdGhlIHRvcCBtYWtlZmlsZS4KCjIwMTAtMDUtMDggMjI6MDUgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIERvIG5vdCBhYm9ydCB3aGVuIHN0ciBpcyBOVUxMIGFzIHRoYXQgaXMgYSBwZXJmZWN0bHkgdmFsaWQgaW5wdXQuCgoyMDEwLTA1LTA4IDIyOjAzICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmM6CgogICBVc2UgY29ycmVjdCBhcmd1bWVudCB0eXBlcwoKMjAxMC0wNS0wOCAyMjowMiAgbWFnZnIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzL1QwNTBldGltZXRlc3RfY2FwcC5jOgoKICAgQWRkIG1pc3NpbmcgbmV3bGluZQoKMjAxMC0wNS0wNyAyMToxMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5hYwoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIGZpeCBoYW5kbGluZyBvZiBjZXJ0IGFsZ29yaXRobSBpbiBmaW5nZXJwcmludHM7IGNvbnZlcnQgaW4vb3V0CiAgIGZpbmdlcnBpbnRzCiAgIGZyb20vdG8gaGV4CgoyMDEwLTA1LTA3IDE5OjIxICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBkb250IHNwZWNpZnkgaGFzaCB0eXBlIGZvciBmaW5nZXJwcmludAoKMjAxMC0wNS0wNyAxOToyMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX29wZW5zc2wuaCwgc25tcGxpYi9jZXJ0X3V0aWwuYywgICAKICAgICAgc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIGhhbmRsZSBmaW5nZXJwcmludCB0eXBlczsgZHJvcCBzYW4gZmllbGRzIGZyb20gY2VydCBzdHJ1Y3Q7CiAgIGNvbnNpZGVyIGRpcmVjdG9yeQogICB3aGVuIHBhcnRuZXJpbmcga2V5cy9jZXJ0cwoKMjAxMC0wNS0wNyAxOToyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIG1vdmUgZGVmYXVsdCBwcm9tcHRzIGVhcmxpZXIKCjIwMTAtMDUtMDYgMTU6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgYmV0dGVyIFNBTiBleHRyYWN0aW9uOyB0d2VhayBkdWJndXMgbWVzc2FnZXM7IHF1aWV0IGNvbXBpbGVyCiAgIHdhcm5pbmdzCgoyMDEwLTA1LTA2IDE1OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHJlZHVjZSBjZXJ0IGRlYnVnIG91dHB1dDsgZGVidWcgaW5zdGVhZCBvZiBsb2dfaW5mbyBpbiBkdW1wcwoKMjAxMC0wNS0wNiAxNDo0OSAgZHRzMTIKCiAgICogc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIERvbid0IGFzc3VtZSB0aGUgcHJlc2VuY2Ugb2YgPHN0cmluZy5oPgogICAoYnJpbmcgaW50byBsaW5lIHdpdGggYWxsIG90aGVyIG9jY3VyYW5jZXMpCgoyMDEwLTA1LTA2IDE0OjQxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9jYWxsYmFjay5jOgoKICAgQ0hBTkdFUzogV2luZG93czogRml4IGJ1aWxkIHVuZGVyIE1pbkdXCiAgIGJhY2svZm9yd2FyZCBwb3J0IG9mIHJldmlzaW9uIDE4NjMxCgoyMDEwLTA1LTA1IDE3OjQzICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCB0eXBlIGluIGxvZyBtc2cKCjIwMTAtMDUtMDUgMTc6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgcmVtb3ZlIGltcG9ydCBmb3IgdW51c2VkIGZ1bmN0aW9uCgoyMDEwLTA1LTA0IDA3OjEyICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgTmVnYXRlIHJlYXNvbiBnaXZlbiBmcm9tIFNLSVBJRgoKMjAxMC0wNS0wMyAyMjozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggbGVuIGluIGVtYWlsIGNtcDsgbW9yZSBleHRyYWN0IGRlYnVnZ2luZwoKMjAxMC0wNS0wMyAyMjozOCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBjb3B5IG9jZXJ0IHRvIGFkZGlvbmFsIG1hcHMKCjIwMTAtMDUtMDMgMTQ6MjAgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIHJlbW92ZSBkZXBlbmRlbmN5IG9uIHBlcmwgbW9kdWxlIG5vdCBwcmVzZW50IGluIENlbnRPUwoKMjAxMC0wNS0wMyAwMzo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBkb24ndCBhY2Nlc3Mgc3RydWN0IGludGVybmFscyBkaXJlY3RseQoKMjAxMC0wNS0wMyAwMzo0OCAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZml4IGNvbXBpbGluZyB3aXRoLW91dC1taWJtb2R1bGVzPXV0aWxpdGllcy9leGVjdXRlCgoyMDEwLTA1LTAxIDE5OjA4ICBtYWdmcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNTBzb2xhcmlzaG9zdGNwdV9vbGR1Y2Q6CgogICBDb3JyZWN0IHRoZSBzb3VnaHQgc3RyaW5nIHRvIG1ha2UgdGhlIHRlc3QgcGFzcyB3aGVuIG9rLgoKMjAxMC0wNS0wMSAxNzoxNSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgbW9yZSBjb25zaXN0ZW50IHRyZWF0bWVudCBvZiBrZXlVc2FnZSwgYmFzaWNDb25zdHJhaW50cywgb3RoZXIKICAgeDUwOXYzIG9wdGlvbnMKCjIwMTAtMDQtMzAgMjM6MzcgIG1hcnoKCiAgICogbG9jYWwvY2VydGdlbi10ZXN0LnBsOgoKICAgbGFtZSB0ZXN0IHNjcmlwdCBidXQgY292ZXJzIGEgY2h1bmsgb2YgdGhlIGNvZGUKCjIwMTAtMDQtMzAgMjM6MDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbWtpbnN0YWxsZGlycyBpbnN0ZWFkIGluc3RlYWQgb2YgRmlsZTo6UGF0aAoKMjAxMC0wNC0zMCAyMzowMCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L3J1bl9vbGR1Y2Q6CgogICBlbnN1cmUgbmV0LXNubXAtY29uZmlnIHNjcmlwdCBjYW4gYmUgcnVuIGZyb20gdGhlIGJ1aWxkIGRpcgoKMjAxMC0wNC0zMCAyMTozMSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgaGFuZGxlIGdlbmNlcnQgLS1jYQoKMjAxMC0wNC0zMCAyMTowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgaGVscCBmb3IgY2VydFNlY05hbWU7IGNvbnRpbnVlIGJ1aWxkaW5nIGNlcnQgaW5kZXhlcyBldmVuIGlmCiAgIHdlIGNhbnQgc2F2ZQogICB0byBwZXJzaXN0ZW50IGRpcgoKMjAxMC0wNC0zMCAyMDo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBmaXggY2hlY2sgY291bnQgZm9yIDgyMiBuYW1lcyBpbiB0aGUgc25tcGQubG9nCgoyMDEwLTA0LTMwIDIwOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGZpeCBtYWxsb2MgdW5uZGVybGVuZ3RoIGJ5IDEgZXJyb3IKCjIwMTAtMDQtMzAgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgY29tbWVudCBvdXQgdGhlIDgyMiB0ZXN0czsgdGhleSdyZSBicm9rZW4gYXQgdGhlIG1vbWVudAoKMjAxMC0wNC0zMCAxOTozNiAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZG9uJ3QgbG9zZSBTQU4gd2hlbiBzaWduaW5nIHcvIENBCgoyMDEwLTA0LTMwIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbWFrZSBuYW1lIGNoYW5nZSB0byByZmM4MjIgZnJvbSB0eXBvZWQgODIyMAoKMjAxMC0wNC0zMCAxODo0NiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHM6CgogICBhZGRlZCB0ZXN0cyB0byBkbyBvdGhlciBzdWJqZWN0QWx0TmFtZSBtYXBwaW5nCgoyMDEwLTA0LTMwIDE3OjMxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXggaXNzdWVzIDEsMiw0IGFuZCAtQyBoYW5kbGluZwoKMjAxMC0wNC0yOSAwMzozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUNlcnRUb1RTTlRhYmxlL3Rsc3RtQ2VydFRvVFNOVGFibGUuYzoKCiAgIHVwZGF0ZSB0bHN0bUNlcnRUb1RTTlRhYmxlIHRvIHVzZSBjYWNoZSArIGNlcnRfdXRpbCBtYXBzCiAgIGNvbnRhaW5lcgoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYzoKCiAgIGNoZWNrIGluc2VydCByZXR1cm4KCjIwMTAtMDQtMjkgMDM6MzEgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZCByZW1vdmUgZnVuY3Rpb24gdG8gY29udGFpbmVyIGl0ZXJhdG9yOwogICBpbXBsZW1lbnQgaXQgZm9yCiAgIGJpbmFyeV9hcnJheQoKMjAxMC0wNC0yOSAwMzozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgbWFrZSBzdXJlIGNvbnRhaW5lciBzeW5jIGluY3JlbWVudGVkIG9uIHNvcnQsIGluc2VydCBhbmQgcmVtb3ZlCgoyMDEwLTA0LTI4IDA3OjIwICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSBjb21tZW50LgoKMjAxMC0wNC0yOCAwMDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYWtlZmlsZSBmb3IgdGVzdCB0YXJnZXQKCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL01ha2VmaWxlLmluLCB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwOgoKICAgbWFrZSB0aGUgdGVzdCBzdWl0ZSBydW4gb3V0c2lkZSB0aGUgc291cmNlIGRpcmVjdG9yeSBhZ2Fpbi4KCjIwMTAtMDQtMjggMDA6MzMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGRlYWwgd2l0aCBvdXQtb2Ytc291cmNlIHRyZWUgYnVpbGRpbmcKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3Rsc3Rlc3RzOgoKICAgdGVzdGluZyB0byBjaGVjayBjZXJ0aWZpY2F0ZSB0byBzZWN1cml0eW5hbWUgbWFwcGluZ3MgYW5kIGRlbmlhbHMKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RsczoKCiAgIGNyZWF0ZWQgYSBtYXBwZWQgdXNlcgoKMjAxMC0wNC0yOCAwMDozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwOgoKICAgZ2VuZXJhdGUgb2JqZWN0IGNvZGUgd2l0aCAtZyBkZWJ1Z2dpbmcKCjIwMTAtMDQtMjggMDA6MzIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDEwc2NhcGl0ZXN0X2NhcHAuYzoKCiAgIG1vcmUgYWNjdXJhdGUgY3VycmVudCBBUEkgdXNhZ2UgZm9yIHNjYXBpIGNvZGUKCjIwMTAtMDQtMjcgMjE6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgZml4IGNlcnQgaW5pdCBkdXBsaWNhdGUgY2FsbCBjaGVjawoKMjAxMC0wNC0yNyAyMDo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNvbnZlcnQgdXNlciBmaW5nZXJwcmludCB0byBsb3dlciBhbmQgc3RyaXAgY29sb25zOyBhZGQgZXh0ZXJuCiAgIHByb3RvdHlwZQogICBmb3IgY2VydCBpbml0IHNvIHdlIGRvbid0IG5lZWQgaGVhZGVyCgoyMDEwLTA0LTI3IDIwOjE1ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBzZXBhcmF0ZSBjZXJ0IGluaXQgYW5kIGNlcnQgbG9hZGluZzsgYWRkIGNlcnRTZWNOYW1lIGNvbmZpZyB0b2tlbgoKMjAxMC0wNC0yNyAwMzoxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgbWVyZ2UgTkVUU05NUF9GVU5DVElPTiBhbmQgIU5FVFNOTVBfRlVOQ1RJT04gYXNzZXJ0IGNhc2VzCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBsb3RzIG9mIG5ldyBjZXJ0IGZ1bmN0aW9uYWxpdHkKICAgLSBhZGQgc3NsIGZ1bmNzIGZvciBjZXJ0IGV4dGVuc2lvbnMgYW5kIHNzbCBjZXJ0IGNoYWlucwogICAtIGZ1bmN0aW9ucyBhbmQgbmV3IG5ldHNtcF9jZXJ0X21hcCBzdHJ1Y3QgZm9yIGxvb2tpbmcgdXAgY2VydAogICBtYXBwaW5ncwogICAtIGFkZCBjZXJ0aWZpY2F0ZSBtYXBwaW5nIGZvciBzZWNuYW1lCiAgIC0gYWRkIGNvZGUgdG8gYnVpbGQgY2VydCBjaGFpbnMKICAgLSBhZGQgc3ViamVjdCB0byBjZXJ0IGluZGV4IGNhY2hlCiAgIC0gcmVidWlsZCBpbmRleGVzIGlmIGFueSBlcnJvciB3aGlsZSBwYXJzaW5nIGluZGV4CiAgIC0gcmVmb3JtYXQgZHVtcCBvdXRwdXQKICAgLSBhZGQgTlNfQ0VSVF9DQSBhbGxvd2VkX3VzZSBmbGFnCiAgIC0gYWRkIHN1YmplY3QsIGlzc3VlciBhbmQgaXNzdWVyX2NlcnQgdG8gbmV0c25tcF9jZXJ0CiAgIC0gbW92ZSBjZXJ0IGNvbnRhaW5lciBzZXR1cCB0byBpdHMgb3duIGZ1bmN0aW9uCiAgIC0gYWRkIGNlcnQgc3ViamVjdCBuYW1lIHN1YmNvbnRhaW5lcgoKMjAxMC0wNC0yNyAwMzowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmM6CgogICBtb3ZlIGlwdjYgc3BlY2lmaWMgdmFyIGRlY2wgaW5zaWRlIGlmZGVmCgoyMDEwLTA0LTI3IDAzOjAyICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oOgoKICAgQ0hBTkdFUzogYWdlbnQ6IHRkYXRhIGhlbHBlciBub3cgc2F2ZXMgZmxhZ3MgcGFzc2VkIGR1cmluZwogICBjcmVhdGlvbjsgYWRkIHRkYXRhCiAgIGZsYWcgdG8gTk9UIGNyZWF0ZSB0aGUgdGFibGUgY29udGFpbmVyCgoyMDEwLTA0LTI3IDAzOjAxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBORVdTOiBzbm1wbGliOiBhZGQgaW50ZXJmYWNlIGZvciBkdXBsaWNhdGluZyBhIGNvbnRhaW5lcgogICBDSEFOR0VTOiBzbm1wbGliOiBjb250YWluZXIgY2hhbmdlczogYWRkIGZsYWdzIGZpZWxkIHRvIGNvbnRhaW5lcgogICBtZXRhLWRhdGE7CiAgIGNoZyBiaW5hcnlfYXJyYXkgY29udGFpbmVyIHRvIHVzZSBjb250YWluZXIgbWV0YS1kYXRhIGZsYWdzCgoyMDEwLTA0LTI2IDIyOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1N0bHN0ZXN0czoKCiAgIGFkZGVkIGEgdGVzdCB0byB2ZXJpZnkgdGhhdCB3aGVuIHRoZSB0cmFuc3BvcnQgaXMgY29uZmlndXJlZCB3aXRoCiAgIGEgcmVtb3RlIGNlcnRpZmljYXRlIGZpbmdlcnByaW50IHRoZSBjb25uZWN0aW9uIGlzIGRlbmllZAoKMjAxMC0wNC0yNiAyMjozMiAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RscywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9TdGxzdGVzdHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM2MGR0bHN1ZHBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjF0bHN0Y3Bfb2xkdWNkOgoKICAgYWRkZWQgdGVzdHMgZm9yIC1UIGZsYWcgdXNhZ2UgYW5kIGludmFsaWQgdXNlciB1c2FnZQoKMjAxMC0wNC0yNiAyMDo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkOgoKICAgaGF2ZSB0aGUgYWxpYXMgdHJhbnNwb3J0IHNvdXJjZSB0aGUgcmlnaHQgU3YzY29uZmlnIGZpbGUKCjIwMTAtMDQtMjYgMjA6NTAgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZDoKCiAgIHdvcmtpbmcgc3VwcG9ydCBvZiBUTFMvRFRMUyB0ZXN0aW5nIGluY2x1ZGluZyBjZXJ0IGdlbmVyYXRpb24KCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBob25vciB0aGUgY29uZmlnIGRpciBpZiBzcGVjaWZpZWQgdmlhIC1DCgoyMDEwLTA0LTI2IDIwOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGZpeCByZWFsbG9jIGNhbGwgZm9yIGJ1ZmZlcmVkIHBhY2tldHMKCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBwcm9wZXIgc2tpcCBvdXRwdXQgZm9yIHJlcG9ydGluZyByZWFzb24KCjIwMTAtMDQtMjYgMjA6NDkgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYzoKCiAgIHJlbW92ZSB0cmFpbGluZyB3aGl0ZXNwYWNlIGFmdGVyIGJhY2tzbGFzaCBpbiBtYWNybwoKMjAxMC0wNC0yNiAyMDo0OCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvU3RyYW5zcG9ydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzAwdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzEwdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzIwdWRwdjZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzMzB0Y3B2Nl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvVDM1MHVuaXhfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL1QzNjBkdGxzdWRwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzYxdGxzdGNwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy9UMzk5YWxpYXNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy90cmFuc3BvcnRzL3Rlc3QtbG9jYWxob3N0LmNlcnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3RyYW5zcG9ydHMvdGVzdC1sb2NhbGhvc3QucHJpdiwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LXVzZXIuY2VydCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvdHJhbnNwb3J0cy90ZXN0LXVzZXIucHJpdjoKCiAgIHRlc3RzIGZvciBtaW5pbWFsbHkgdGVzdGluZyBhbGwgdGhlIHRyYW5zcG9ydHMKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUkVBRE1FOgoKICAgbWluaW1hbGx5IGRvY3VtZW50IG5ldyBSVU5GVUxMVEVTVFMgc2NyaXB0CgoyMDEwLTA0LTI2IDIwOjQ4ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9ULmMsIHRlc3RpbmcvVDIuc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LCAgIAogICAgICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMsICAgCiAgICAgIHRlc3RpbmcvZGF0YS5rdWwtbWQ1LCB0ZXN0aW5nL2RhdGEua3VsLXNoYTEsIHRlc3RpbmcvbWlzY3Rlc3QuYywgIAogICAgICAgdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaCwgdGVzdGluZy90ZXN0X2t1bC5zaDoKCiAgIGRlbGV0ZWQgb2xkIGZpbGVzIG5vdCB3b3J0aCByZXN0b3JpbmcKCjIwMTAtMDQtMjYgMjA6NDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90ZXN0bGlzdDoKCiAgIHJlbW92ZSBvYnNvbHV0ZSB0ZXN0IGxpc3QKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDIwaGFzaHRlc3RzX2NhcHAuYzoKCiAgIGEgaGFzaC10ZXN0aW5nIC5jIGZpbGUgSSBoYWQgbGF5aW5nIGFyb3VuZAoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIG1ha2UgdGVzdGFsbCB0YXJnZXQKCjIwMTAtMDQtMjYgMjA6NDcgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgdGVzdGluZy9ldGltZXRlc3QuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc25tcHYzLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zbm1wdjMvVDAxMHNjYXBpdGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDQwa2V5bWFuYWdldGVzdF9jYXBwLmMsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL3NubXB2My9UMDUwZXRpbWV0ZXN0X2NhcHAuYywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9idWlsZF9jYXBwLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoLCAgIAogICAgICB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIG1vdmUgb2xkIEMtY29kZSB0ZXN0cyBpbiBwbGFjZQoKMjAxMC0wNC0yNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUzc29sYXJpc3N3YXBfb2xkdWNkOgoKICAgc2tpcCBzb2xhcmlzIGNvbW1lbnRzCgoyMDEwLTA0LTI2IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZml4IGludm9jYXRpb24gb2YgUlVORlVMTFRFU1RTCgoyMDEwLTA0LTI2IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjFjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YyY2NvbmZpZywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYWdlbnQsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvU3YzdXNtY29uZmlnYmFzZSwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN1c21jb25maWd0cmFwZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9TdjN2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1N2YW55Y29uZmlnLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMDFzbm1wdjFnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTRzbm1wdjJjZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDE1c25tcHYyY2dldG5leHRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTYwc25tcHYyY2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMTZzbm1wdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAxOXNubXB2MmNub3N1Y2hfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjBzbm1wdjNnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjFzbm1wdjNnZXRuZXh0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDIyMHNubXB2M2J1bGtnZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjJzbm1wdjNnZXRNRDVfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVBRVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjNzbm1wdjNnZXRNRDVERVNfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwMjRzbm1wdjNnZXRTSEExX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI1c25tcHYzZ2V0U0hBREVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI2c25tcHYzZ2V0U0hBQUVTX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDI4c25tcHYzZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzMHNubXB2M3VzZXJjcmVhdGlvbl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNDlzbm1wdjNpbmZvcm1hdXRoX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDQ5c25tcHYzaW5mb3JtcHJpdl9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MHNubXB2M3RyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTFzbm1wdjJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1MnNubXB2MmNpbmZvcm1fb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTNhZ2VudHYxdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NGFnZW50djJjdHJhcF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1NWFnZW50djFtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU2YWdlbnR2MmNtaW50cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU3dHJhcGRhdXRodGVzdDJfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNTd0cmFwZGF1dGh0ZXN0M19vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDA1N3RyYXBkYXV0aHRlc3Rfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNThhZ2VudGF1dGh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDU5dHJhcGR0cmFwaGFuZGxlX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYwdHJhcGRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDYxYWdlbnRwZXJsX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDY1YWdlbnRleHRlbmRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzBjb20yc2VjX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMDcxY29tMnNlYzZfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QwNzJjb20yc2VjdW5peF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEwMGFnZW50aHVwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEwYWdlbnR4Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTExYWdlbnR4c2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTEyYWdlbnR4c2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDExM2FnZW50eHRyYXBfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMTRhZ2VudHhhZ2VudHh0cmFwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTE1YWdlbnR4cGVybF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDEyMHByb3h5Z2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTIxcHJveHlzZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMjJwcm94eXNldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzBzbm1wdjF2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTMxc25tcHYyY3ZhY21nZXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxMzJzbm1wdjN2YWNtZ2V0X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTQwc25tcHYxdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDFzbm1wdjJjdmFjbWdldGZhaWxfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QxNDJzbm1wdjN2YWNtZ2V0ZmFpbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1MHNvbGFyaXNob3N0Y3B1X29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUxc29sYXJpc2hvc3RkaXNrX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTUyaG9zdHVwdGltZV9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvZnVsbHRlc3RzL2RlZmF1bHQvVDE1M3NvbGFyaXNzd2FwX29sZHVjZCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvZGVmYXVsdC9UMTYwc25tcG5ldHN0YXRfb2xkdWNkLCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9kZWZhdWx0L1QyMDBzbm1wdjJjd2Fsa2FsbF9vbGR1Y2QsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9TdjFjb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YyY2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQsIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYmFzZSwgIAogICAgICAgdGVzdGluZy90ZXN0cy9TdjN1c21jb25maWd0cmFwZCwgdGVzdGluZy90ZXN0cy9TdjN2YWNtY29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1N2YWNtY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2YW55Y29uZmlnLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RpbmcvdGVzdHMvVDAxNHNubXB2MmNnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDIwc25tcHYzZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjIwc25tcHYzYnVsa2dldCwgdGVzdGluZy90ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjZzbm1wdjNnZXRTSEFBRVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1hdXRoLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSwgCiAgICAgICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgIAogICAgICAgdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDIsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3QzLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDA2MHRyYXBkcGVybCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsLCB0ZXN0aW5nL3Rlc3RzL1QwNjVhZ2VudGV4dGVuZCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcwY29tMnNlYywgdGVzdGluZy90ZXN0cy9UMDcxY29tMnNlYzYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA3MmNvbTJzZWN1bml4LCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXAsIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmwsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCB0ZXN0aW5nL3Rlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTMyc25tcHYzdmFjbWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQyc25tcHYzdmFjbWdldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2ssIHRlc3RpbmcvdGVzdHMvVDE1Mmhvc3R1cHRpbWUsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDE1M3NvbGFyaXNzd2FwLCB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC1sb2NhbGhvc3QuY2VydCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5wcml2LCB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5jZXJ0LCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtdXNlci5wcml2OgoKICAgTkVXUzogdGVzdGluZzogQnJhbmQgbmV3IHRlc3Qgc3VpdGUgZGVzaWdlbmVkIHRvIGV2ZW50dWFsbHkgdGVzdAogICBtb3JlIGZ1bmN0aW9uYWxpdHksIHByb3ZpZGUgZm9yIHN1cHBvcnQgb2YgdW5pdC10ZXN0cyBhbmQgc3VwcG9ydAogICBvZiBBUEkgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICByZW1vdmVkIGEgZGVidWdnaW5nIGVjaG8KCjIwMTAtMDQtMjYgMjA6NDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZnVsbHRlc3RzL3N1cHBvcnQvb2xkdWNkX2V2YWxfdG9vbHMuc2g6CgogICBtb3JlIGJ1ZyBmaXhlcyBmb3Igc3RyaW5nIHNlYXJjaGVzCgoyMDEwLTA0LTI2IDIwOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9ldmFsX3Rvb2xzLnNoOgoKICAgYWRkZWQgYSBuZXcgbWFjcm8gdG8gY2hlY2sgYSB0cmFwZCBjb3VudAoKMjAxMC0wNC0yNiAyMDo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIHVzZSBpbmRpdmlkdWFsIG91dHB1dCBmaWxlcyBhbmQgZml4IHNvbWUgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTkZVTExURVNUUywgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaDoKCiAgIG1hZGUgZXhpc3RpbmcgdGVzdCBzdWl0ZSBwdXQgb3V0IFRBUCBvdXRwdXQKCjIwMTAtMDQtMjYgMjA6NDIgIGhhcmRha2VyCgogICAqICB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL1RFU1RDT05GLnNoLCAgIAogICAgICB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaCwgdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaCwgICAKICAgICAgdGVzdGluZy9ldmFsX3N1aXRlLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvZnVsbHRlc3RzLCAgCiAgICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0LCAgIAogICAgICB0ZXN0aW5nL2Z1bGx0ZXN0cy9zdXBwb3J0L29sZHVjZF9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9vbGR1Y2RfZXZhbF90b29scy5zaCwgICAKICAgICAgdGVzdGluZy9mdWxsdGVzdHMvc3VwcG9ydC9ydW5fb2xkdWNkOgoKICAgYmVnaW5uaW5nIG9mIG1vdmluZyBVQ0QgdGVzdCBzdWl0ZSBpbnRvIGEgbGFyZ2VyIHN1YmRpcmVjdG9yeQoKMjAxMC0wNC0yNiAyMDo0MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBhbGxvdyBydW5uaW5nIHRlc3RzIHRoYXQgbWF0Y2ggYSByZWdleHAKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VtbWFyaXplIHRlc3RzIHRoYXQgZmFpbGVkCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIGNyZWF0ZWQgdGhlIGFiaWxpdHkgdG8gaGF2ZSBydW5fIHNjcmlwdHMgZm9yIGV4ZWN1dGluZyBjZXJ0YWluCiAgIHR5cGVzCgoyMDEwLTA0LTI2IDIwOjQxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIG1hZGUgdGhlIGJ1aWxkLXNjcmlwdC1jaGVjayByb3V0aW5lIGdlbmVyaWMKCjIwMTAtMDQtMjYgMjA6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgc3VwcG9ydCBmb3IgYnVpbGQgc2NyaXB0cwoKMjAxMC0wNC0yNiAyMDo0MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBwcm92aWRlIGluZnJhc3RydWN0dXJlIGZvciBidWlsZGluZyBhbmQgcmVuYW1pbmcgdGVzdHMKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgbW9yZSB0ZXN0IGluZnJhc3RydWN0dXJlIHNldHVwCgoyMDEwLTA0LTI2IDIwOjQwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTkZVTExURVNUUzoKCiAgIHN1cHBvcnQgdGhlIGtleXdvcmQgJ2FsbCcKCjIwMTAtMDQtMjYgMjA6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVORlVMTFRFU1RTOgoKICAgZW5hYmxlIGdyb3VwIGdhdGhlcmluZwoKMjAxMC0wNC0yNiAyMDozOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5GVUxMVEVTVFM6CgogICBjcmVhdGlubyBvZiBhIG5ldyB0ZXN0aW5nIGhhcm5lc3MKCjIwMTAtMDQtMjUgMTc6MzcgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIERvY3VtZW50YXRpb24gdXBkYXRlLgoKMjAxMC0wNC0yNSAxNToyMSAgYnZhc3NjaGUKCiAgICogIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbjMyOiByZXZlcnRlZCBhIHJlY2VudCB1bm5lY2Vzc2FyeSBtb2RpZmljYXRpb24uCgoyMDEwLTA0LTI1IDE1OjAwICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBoYW5kbGUgbXVsdGlwbGUgLS1zYW4gYXJncywgY2hlY2sgZXJyb3IgY29kZXMgb24gb3BlbnNzbCBjbWRzIGFuZAogICBkaWUgb24gZmFpbHVyZQoKMjAxMC0wNC0yNSAxNDoxOCAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4gd2l0aCBTREsgc3VwcG9ydCBkaXNhYmxlZC4KCjIwMTAtMDQtMjUgMTQ6MTggIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLCAKICAgICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgV2luMzI6IHJlc3RvcmVkIGNvbnNpc3RlbmN5IGJldHdlZW4gd29ya3NwYWNlLWJ1aWxkIGFuZCBiYXRjaAogICBidWlsZCAtLSBtYWRlIHN1cmUgdGhhdCBub3RpZmljYXRpb25fbG9nLmMgaXMgb25seSBpbmNsdWRlZCBpbgogICB0aGUgbmV0c25tcG1pYnMgcHJvamVjdC4KCjIwMTAtMDQtMjUgMTM6NTggIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgIAogICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIFdpbjMyOiBmaXhlcyBmb3IgcmVjZW50bHkgaW50cm9kdWNlZCBidWlsZCBicmVha2FnZS4KCjIwMTAtMDQtMjUgMTM6NTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluOgoKICAgV2luMzI6IGJ1aWxkcyBhZ2FpbiB3aXRoIFNESyBzdXBwb3J0IGRpc2FibGVkLgoKMjAxMC0wNC0yNSAxMzo0OCAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgc25tcGxpYi9jbG9zZWRpci5jLCBzbm1wbGliL29wZW5kaXIuYywgIAogICAgICAgc25tcGxpYi9yZWFkZGlyLmMsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIFdpbjMyIE1TVkMgNiBub24tU0RLIGJ1aWxkIHdvcmtzIGFnYWluLgoKMjAxMC0wNC0yNSAxMzo0MiAgYnZhc3NjaGUKCiAgICogd2luMzIvQ29uZmlndXJlOgoKICAgUmVtb3ZlZCBhbiBvYnNvbGV0ZSB0cmFuc2Zvcm1hdGlvbiBydWxlLgoKMjAxMC0wNC0yNSAxMjowNSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNYWRlIGl0IGFnYWluIHBvc3NpYmxlIHRvIGRpc2FibGUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsgd2hlbgogICBidWlsZGluZyB2aWEgd2luMzIvYnVpbGQuYmF0LgoKMjAxMC0wNC0yMyAxMzoxNCAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgYWRkZWQgLS1zYW4gRE5TOmEuYi5jIGhhbmRsaW5nLCBoZWxwIHRleHQgZml4ZXMsIG90aGVyIGJ1ZyBmaXhlcy4KICAgTm90ZSBtdWx0aXBsZSAtLXNhbiBub3Qgc3VwcG9ydGVkIHlldAoKMjAxMC0wNC0yMSAyMjozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBidWlsZCB0aGUgLm1hZGUgdmVyc2lvbiBvZiBuZXQtc25tcC1jZXJ0CgoyMDEwLTA0LTIxIDIyOjMxICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQgYWZ0ZXIgbW92aW5nIGFsbCB0aGUgZmlsZXMgYXJvdW5kCgoyMDEwLTA0LTIxIDIwOjE2ICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfb3BlbnNzbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfb3BlbnNzbC5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGJ1aWxkIHRydXN0IGNoYWluIGZvciBjbGllbnQgY2VydDsgYWRkIHN1YmplY3QgdG8gaW5kZXggY2FjaGU7CiAgIHJlYnVpbGQgaW5kZXhlcwogICBpZiBhbnkgZXJyb3Igd2hpbGUgcGFyc2luZyBpbmRleDsgcmVmb3JtYXQgZHVtcCBvdXRwdXQKICAgLSBhZGQgTlNfQ0VSVF9DQSBhbGxvd2VkX3VzZSBmbGFnCiAgIC0gYWRkIHN1YmplY3QsIGlzc3VlciBhbmQgaXNzdWVyX2NlcnQgdG8gbmV0c25tcF9jZXJ0CiAgIC0gbW92ZSBjZXJ0VG9UU05fZW50cnkgdG8gY2VydF91dGlsIGhlYWRlcgogICAtIG1vdmUgY29udGFpbmVyIHNldHVwIHRvIGl0cyBvd24gZnVuY3Rpb24KICAgLSBhZGQgc3ViamVjdCBuYW1lIHN1YmNvbnRhaW5lcgogICAtIGFkZCBuZXRzbm1wX29wZW5zc2xfY2VydF9kdW1wX2V4dGVuc2lvbnMsCiAgIG5ldHNubXBfb3BlbnNzbF9jZXJ0X2lzc3VlZF9ieQoKMjAxMC0wNC0yMSAxNjoxNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCB0aGUgc2luZ2xlLWRhc2ggLyBzbm1wLmNvbmYgLyBkb3VibGUtZGFzaCBwcmVjaWRlbmNlCgoyMDEwLTA0LTIxIDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgaW4gdGhlIHNubXAuY29uZiBmaWxlIHRoYXQgdGhlIHRva2VucyBjYW4gYmUgdXNlZCBmb3IKICAgY29tbWFuZCBsaW5lIGFwcGxpY2F0aW9ucyB0b28KCjIwMTAtMDQtMjEgMTY6MTUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZmlsZSBsb2FkaW5nIG9yZGVyIGFuZCBob3cgdG8gdHVybiBvZmYgaG9zdC1zcGVjaWZpYwogICBjb25maWcKCjIwMTAtMDQtMjEgMTU6NTIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBhcHBzOiBHZW5lcmljIGhvc3Qtc3BlY2lmaWMgY29uZmlndXJhdGlvbiBzbm1wLmNvbmYgZmlsZXMKICAgYXJlIG5vdyByZWFkLiBTZWUgdGhlIEhPU1QtU1BFQ0lGSUMgRklMRVMgc2VjdGlvbiBvZiB0aGUKICAgc25tcC5jb25mIG1hbnVhbCBwYWdlLgoKMjAxMC0wNC0yMCAxMjo0NCAganNhZnJhbmVrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI5NzEyNzA6IHJlZnVzZSB0byBwYXJzZSBBU04uMSB0b2tlbnMKICAgd2l0aCB3cm9uZyB0eXBlIGZpZWxkLgogICBUaGlzIG1heSB5aWVsZCB0byBwcm9ibGVtcyB3aXRoIHRoaXJkLXBhcnR5IGFwcGxpY2F0aW9ucyB3aGljaAogICBtYXkgZGVwZW5kIG9uIHBhcnNpbmcgdWdseSBBU04uMSBkYXRhIC0gd2UnbGwgc2VlLi4uCgoyMDEwLTA0LTIwIDAwOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGNvbWJpbmUgcmVtb3RlIGZpbmdlcnByaW50IGNoZWNraW5nIGFuZCBjaGVjayBib3RoIHNpZGVzCgoyMDEwLTA0LTIwIDAwOjA1ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGlmIHRoZSByZW1vdGUgZmluZ2VycHJpbnQgaXMgc3BlY2lmaWVkLCByZXF1aXJlIGFuIGV4YWN0IG1hdGNoCgoyMDEwLTA0LTE5IDIzOjQ0ICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggdmFyaW91cyBtaW5vciBidWdzLCBlc3BlY2lhbGx5IGluIG91dHB1dCBtZXNzYWdlcwoKMjAxMC0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgZG9jdW1lbnRhdGlvbiBhbmQgcHJvdG90eXBpbmcgb2YgbmVlZGVkIFJGQyBzdGVwcwoKMjAxMC0wNC0xOSAyMToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGNvbnZlcnQgaWYgZXJyb3IgY2hlY2sgdG8gcmV0dXJuIGltbWVkaWF0ZWx5IHNvIG90aGVyIGNvZGUgY2FuIGJlCiAgIG91dGRlbnRlZAoKMjAxMC0wNC0xOSAyMToxMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgY29tbWVudHMgZnJvbSB0aGUgUkZDIHRleHQKCjIwMTAtMDQtMTggMTU6MjUgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi90cmFuc3BvcnRzLCAgIAogICAgICB3aW4zMi9idWlsZC5wbCwgd2luMzIvbGlic25tcC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIAogICAgICAgIHdpbjMyL3RyYW5zcG9ydHMsIHdpbjMyL3RyYW5zcG9ydHMvc25tcF90cmFuc3BvcnRfaW5pdHMuaDoKCiAgIFdpbjMyOiBidWlsZHMgYWdhaW4uCgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgY3JlYXRlZCBhIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlIHNlY3VyaXR5TmFtZSBmcm9tIHRoZSBjZXJ0CgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgZG9uJ3QgbmVlZCB0byBzZXQgdGhlIGFjY2VwdCBzdGF0ZSBmb3IgVExTIChqdXN0IERUTFMpCgoyMDEwLTA0LTE2IDE4OjUzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBUTFMgY29tbWVudCBkb2N1bWVudGF0aW9uIGFuZCBzdGVwcyB0YWtlbiBmcm9tIHRoZSBSRkMKCjIwMTAtMDQtMTYgMTM6NTUgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG51bWVyb3VzIGZpeGVzLCBtb3JlIHZlcmJvc2UgZGVmYXVsdCBvdXRwdXQsIGFkZGl0aXZlIHNob3cgZmxhZ3MsCiAgIGFyYml0cmFyeSBjb25maWcgcGFyYW0gaGFuZGxpbmcsIGJldHRlciBoZWxwIHRleHQKCjIwMTAtMDQtMTYgMTM6MDggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgZG9uJ3QgZG91YmxlIGRlY2xhcmUgYSBzdHJ1Y3QKCjIwMTAtMDQtMTYgMDM6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2VydCB1dGlsIGZpeGVzCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJzIGFuZCBkdXBsaWNhdGUgY29kZQogICAtIGNoZWNrIHBydCBiZWZvcmUgZnJlZQogICAtIG5ldyBmdW5jIGZvciB0eXBlIGZyb20gZmlsZW5hbWUKICAgLSBuZXcgZnVuY3Rpb25zIGZvciBmaW5kaW5nIHN1YnNldHMgZnJvbSBmaWxlbmFtZQogICAtIGZpeCB0eXBlcyBpbiBrZXkgc2VhcmNoIGZ1bmN0aW9uIGJ1dCB0aGVuIGlmZGVmIGlmICh1bnVzZWQKICAgZnVuY3Rpb24pCgoyMDEwLTA0LTE1IDIyOjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIHVzZSBhIHN0cnVjdHVyZSByZWZlcmVuY2UgdG8gcHJlZGVjbGFyZSB0aGUgc3RydWN0dXJlCgoyMDEwLTA0LTE1IDIxOjI1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGNvcnJlY3QgZGVjbGFyYXRpb24gb2YgdGhlIGZfb3BlbiBjb21tYW5kIG5vdyByZXF1aXJpbmcgcmV0dXJuaW5nCiAgIGEgdHJhbnNwb3J0CgoyMDEwLTA0LTE1IDIxOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGNvbmZpZyBjb250YWluZXIKCjIwMTAtMDQtMTUgMjE6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY29weSBmaW5nZXJwcmludCB0cmFuc3BvcnQgaW5mb3JtYXRpb24gaW50byBuZXcgdGxzIHN0cnVjdHVyZQogICB3aXRoaW4gRFRMU1VEUCBzbyBwZXItdHJhbnNwb3J0IGZpbmdlcnByaW50cyBjYW4gYmUgc3BlY2lmaWVkCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHByb3Blcmx5IGNoZWNrIGZvciB0bHNiYXNlIHBvaW50ZXJzIGluIGR0bHN1ZHBfc2VuZCgpCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIGdyZXAgdGhlIHRyYW5zcG9ydCBsaXN0IGZvciBUTFMgbm90IGp1c3QgRFRMUyBmb3IgY2hlY2tpbmcgZm9yCiAgIC1sc3NsCgoyMDEwLTA0LTE1IDIxOjAxICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vcmUgYnVnIGZpeGVzIGFuZCBtYWRlIFRMU1RDUCB3b3JrIHdpdGggdGhlIC1UIGZsYWcKCjIwMTAtMDQtMTUgMjE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1ha2UgdGhlIGZfb3BlbiBjYWxsIGFzc2lnbiB0aGUgbmV3IHRyYW5zcG9ydCBwb2ludGVyIHRvIHVzZSAoYW5kCiAgIGNoZWNrIGlmIE5VTEwgYXMgYSBmYWlsdXJlIGNvbmRpdGlvbgoKMjAxMC0wNC0xNSAyMTowMCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIGJlZ2luIHdvcmsgbW92aW5nIERUTFMgY29uZmlnIHJvdXRpbmUgaW4gcGxhY2UKCjIwMTAtMDQtMTUgMjE6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBwYXNzIHRoZSBlbnRpcmUgdGxzYmFzZSB0byB0aGUgY2xpZW50X3NldHVwCgoyMDEwLTA0LTE1IDIxOjAwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgc25tcGxpYi9zbm1wX2FwaS5jLCAKICAgICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHN0YXJ0aW5nIHRoZSBzdG9yaW5nIG9mIGNvbmZpZyBkYXRhIGludG8gdGhlIHRsc2Jhc2UKCjIwMTAtMDQtMTUgMjA6NTkgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgY2hhbmdlIGNsaWVudCBzc2wgc2V0dXAgdG8gYWxsb3cgZm9yIGRpcmVjdCBmaW5nZXJwcmludAogICBzcGVjaWZpY2F0aW9uIG9mIG15L3RoZWlyIGNlcnRzCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgCiAgICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgc3BsaXQgVExTIGludG8gY3JlYXRpb24vY2xvc2UgZnVuY3Rpb25zIGZvciBldmVudHVhbCBjb25maWcKICAgcGFzc2luZyBzdXBwb3J0CgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGFzcyB0cmFuc3BvcnQgY29uZmlnIGRhdGEgdG8gdGhlIHRyYW5zcG9ydCBmX2NvbmZpZygpIGZ1bmN0aW9uCgoyMDEwLTA0LTE1IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICByZXR1cm4gTlVMTCBvbiB0cmFuc3BvcnQgY29uZmlnIGVycm9yCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE5FV1M6IGFwcHM6IC1UIGNvbW1hbmQgbGluZSBmbGFnIGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZQogICB0cmFuc3BvcnRzCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjaGVjayB0cmFuc3BvcnQgTlVMTG5lc3MgYmVmb3JlIHVzaW5nCgoyMDEwLTA0LTE1IDIwOjU4ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGJlZ2lubmluZyBvZiB3b3JrIHRvIG1ha2UgdHJhbnNwb3J0cyBjb25maWd1cmFibGUgd2l0aAogICBzdXBwbGltZW50YWwgY29uZmlndXJhdGlvbiBkYXRhIGFuZCBuZXcgY2FsbHMgZm9yIGZfb3Blbi9mX2NvbmZpZwoKMjAxMC0wNC0xNSAyMDo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGFkZGVkIHRleHQgaW4gY29tbWVudHMgZnJvbSBmdXR1cmUgUkZDIHRvIGRvY3VtZW50IHRoZQogICBpbXBsZW1lbnRhdGlvbgoKMjAxMC0wNC0xNSAxODo1MSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtYXJrIHBlbSB3L2tleSBhcyBpZGVudGl0eTsgdHdlYWsgcGFydG5lciBkZWJ1ZzsgY29tcGFyZSBmaWxlCiAgIGN0aW1lIGFnYWluc3QgaW5kZXggdG9vCgoyMDEwLTA0LTE1IDE3OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIHVzZSBsb2NhbCBzcGFjZSB0byByZWZvcm1hdCBjZXJ0IGZvciBzZWFyY2gKCjIwMTAtMDQtMTUgMTY6NTUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBQYXJ0aWFsbHkgcmV2ZXJ0ZWQgcjE4NDk2OgogICAtIENvbW1lbnRlZCBvdXQgI2RlZmluZSBORVRTTk1QX1VTRV9ETEwgYWdhaW4gaW4gZmlsZQogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBvbiB0aGUgNS40IGJyYW5jaC4gVGhpcyBjaGFuZ2UKICAgaGFkIGJlZW4gY29tbWl0dGVkIHVuaW50ZW50aW9uYWxseS4KICAgLSBSZS1lbmFibGVkICNkZWZpbmUKICAgVVNJTkdfTk9USUZJQ0FUSU9OX0xPR19NSUJfTk9USUZJQ0FUSU9OX0xPR19NT0RVTEUgaW4KICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCBvbiB0aGUgdHJ1bmsgYW5kIHRoZQogICBWNS41IGJyYW5jaC4gV2hpbGUgYnVpbGQuYmF0IHJlcG9ydHMgYW4gZXJyb3Igb24gZWFybGllciBicmFuY2hlcwogICB3aXRoIHRoaXMgc3ltYm9sIGVuYWJsZWQsIHRoZXJlIGlzIG5vIHN1Y2ggcHJvYmxlbSBvbiB0aGUgdHJ1bmsKICAgb3IgVjUuNSBicmFuY2hlcyBhbmQgaGVuY2UgdGhlcmUgd2FzIG5vIHJlYXNvbiB0byBkaXNhYmxlIHRoaXMKICAgcHJlcHJvY2Vzc29yIHN5bWJvbC4KCjIwMTAtMDQtMTUgMTU6MDggIG1hcnoKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBhZGQgbmV0LXNubXAtY2VydCB0byBtYWtlL2luc3RhbGwKCjIwMTAtMDQtMTUgMTA6NTIgIGpzYWZyYW5lawoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldCwgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQ6CgogICBUZXN0cyBub3Qgd29ya2luZyBmb3IgVENQIHNob3VsZCBiZSBza2lwcGVkIGFsc28gZm9yIFRDUDYuCgoyMDEwLTA0LTE0IDE4OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGZpeCB2YXJzL3RleHQgZnJvbSBjdXQtbi1wYXN0ZQoKMjAxMC0wNC0xNCAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBmaXggY29tbWVudHMKCjIwMTAtMDQtMTQgMTc6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgbG90cyBvZiBjZXJ0IHVwZGF0ZXMKICAgLSBjaGFuZ2UgY2VydCBzdWJkaXIgc2VhcmNoaW5nIHRvIG1hdGNoIG5ldC1zbm1wLWNlcnQKICAgLSB1cGRhdGUga2V5IHR5cGUgaGFuZGxpbmcKICAgLSBpZ25vcmUgd29ybGQgcmVhZGFibGUga2V5cwogICAtIGtlZXAgdHlwZSBpbiBpbmRleGVzCiAgIC0gdHdlYWsgY2VydC9rZXkgcHJpbnQgZm9ybWF0CgoyMDEwLTA0LTE0IDE3OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIG1ha2UgbmV0LXNubXAtY2VydCBleGVjdXRhYmxlCgoyMDEwLTA0LTE0IDEzOjEyICBqc2FmcmFuZWsKCiAgICogIHRlc3RpbmcvdGVzdHMvU3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsOgoKICAgRml4ZWQgdGVzdHMgJ1Byb3h5IEdFVC9TRVQgc3VwcG9ydCcgYW5kICdTTk1QdjIgdmFjbSBkZW5pYWwKICAgc3VwcG9ydCcgd2l0aCB1ZHA2IHRyYW5zcG9ydC4KCjIwMTAtMDQtMTQgMDk6NDcgIGR0czEyCgogICAqICB3aW4zMiwgd2luMzIvYmluLCB3aW4zMi9kaXN0LCB3aW4zMi9kaXN0L2h0bWxoZWxwLCAgIAogICAgICB3aW4zMi9kaXN0L2luc3RhbGxlciwgd2luMzIvZGlzdC9zY3JpcHRzLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLCAKICAgICAgICB3aW4zMi9saWIsIHdpbjMyL2xpYmFnZW50LCB3aW4zMi9saWJoZWxwZXJzLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQsIHdpbjMyL2xpYnNubXAsIHdpbjMyL2xpYnNubXBfZGxsLCAgIAogICAgICB3aW4zMi9saWJ1Y2RtaWJzLCB3aW4zMi9sb2NhbCwgd2luMzIvbmV0LXNubXAsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50LCB3aW4zMi9uZXQtc25tcC9saWJyYXJ5LCB3aW4zMi9uZXRzbm1wbWlicywgIAogICAgICAgd2luMzIvc25tcGJ1bGtnZXQsIHdpbjMyL3NubXBidWxrd2Fsaywgd2luMzIvc25tcGQsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YSwgd2luMzIvc25tcGRmLCB3aW4zMi9zbm1wZ2V0LCB3aW4zMi9zbm1wZ2V0bmV4dCwgIAogICAgICAgd2luMzIvc25tcG5ldHN0YXQsIHdpbjMyL3NubXBzZXQsIHdpbjMyL3NubXBzdGF0dXMsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZSwgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0cmFuc2xhdGUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwLCB3aW4zMi9zbm1wdHJhcGQsIHdpbjMyL3NubXB1c20sIHdpbjMyL3NubXB2YWNtLCAgIAogICAgICB3aW4zMi9zbm1wd2FsazoKCiAgIERvbid0IHRyeSB0byBTVk4tbWFuYWdlIHRoZSBXaW5kb3dzIGJhdGNoIGJ1aWxkIGluZnJhc3RydWN0dXJlCiAgIChhZGQgcmVsZWFzZSwgZGVidWcsIE1ha2VmaWxlIHRvIHRoZSBwcmV2aW91cyBpZ25vcmUgbGlzdCkKCjIwMTAtMDQtMTQgMDg6MTYgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRml4IFdpbmRvd3MgYmF0Y2ggYnVpbGQgdXNpbmcgVmlzdWFsIFN0dWRpbyB3aXRoIGR5bmFtaWMgbGlua2luZy4KICAgVW5yZWZlcmVuY2VkIHN5bWJvbCBpbnRyb2R1Y2VkIGJ5IFNWTiByZXZpc2lvbiAxODM5MwoKMjAxMC0wNC0xNCAwODowOCAgZHRzMTIKCiAgICogd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBGaXggYmF0Y2ggYnVpbGQgdXNpbmcgcmVjZW50IHZlcnNpb25zIG9mIFZpc3VhbAogICBTdHVkaW8uCiAgIFBhcnRpYWwgYmFjayBwb3J0IG9mIFNWTiByZXZpc2lvbnMgMTc1NzMgYW5kIDE3Njk2LgoKMjAxMC0wNC0xNCAwMTo0NyAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgZml4IHBlcm1zIG9uIGNyZWF0ZWQgZmlsZXMgLXJ3LS0tLS0tLSwgdW1hc2soMDc3KQoKMjAxMC0wNC0xMyAyMjoxNSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0LCBsb2NhbC9uZXQtc25tcC1jZXJ0LmNvbmY6CgogICBmaXggcGVybXMsIGFkZCAtLWNuLy1jLCBiZXR0ZXIgZGF0ZXMgZGVmYXVsdHMsIHNubXAtdGxzIG9yZ191bml0LAogICBhZGRlZCBpbml0aWFsIGR1bW15IGNvbmZpZyBmaWxlCgoyMDEwLTA0LTEzIDE0OjIxICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBmaXhlcyBmb3Igc2hvdyBjbWRzLCBjbWRsaW5lLCBoZWxwCgoyMDEwLTA0LTEzIDAyOjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIGFkZCBzdXBwb3J0IGZvciBrZXkrY2VydCBpbiAucGVtIGZpbGVzOyBtaXNjIHR3ZWFrcwoKMjAxMC0wNC0xMCAyMzoyNCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBidWlsZCBmaXggZm9yIEM4OSBjb21waWxlcnMgKGUuZy4gb24gSFAtVVggMTAuMjApCgoyMDEwLTA0LTEwIDIyOjI1ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQ2VydFRvVFNOVGFibGUvdGxzdG1DZXJ0VG9UU05UYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1DZXJ0VG9UU05UYWJsZS90bHN0bUNlcnRUb1RTTlRhYmxlLmg6CgogICBpbml0aWFsIGN1dCBhdCB0bHN0bUNlcnRUb1RTTlRhYmxlCgoyMDEwLTA0LTEwIDIyOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NlcnRfdXRpbC5oOgoKICAgYWRkIGRlZmluZSBvZiBtYXggaGFzaCBjb25zdGFudAoKMjAxMC0wNC0xMCAyMjoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jOgoKICAgdXNlIGNlcnQgdXRpbCBjaGVjayBmb3IgZmluZ2VycHJpbnQgbGVuL2FsZ29yaXRobQoKMjAxMC0wNC0xMCAxMjo1OSAgbWFyegoKICAgKiBsb2NhbC9uZXQtc25tcC1jZXJ0OgoKICAgc2hvdyBjbWQgZml4ZXMKCjIwMTAtMDQtMDkgMjE6MzIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGZhaXJseSBmdW5jdGlvbmFsIChub24taW50ZXJhY3RpdmUpIC0gYmUgaXQga25vd246IHRoZXJlIGFyZSBidWdzCgoyMDEwLTA0LTA5IDIwOjU0ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmg6CgogICBtZXJnZSBzb21lIHRhYmxlX2RhdGEuY29uZiBjaGFuZ2VzOyByZW1vdmUgdW51c2VkIGNvZGUgYW5kIGEKICAgYnVuY2ggb2YgdmVyYm9zZSBjb21tZW50cwoKMjAxMC0wNC0wOCAxNDo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIHVzZSBmdWxsIHBhdGgKCjIwMTAtMDQtMDggMTA6NTUgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIENoZWNrIHJlc3VsdHMgb2YgY2FsbHMgdG8gbmV0c25tcF9jNjRfY2hlY2szMl9hbmRfdXBkYXRlIGFuZCBsb2cKICAgYW4gZXJyb3IuCiAgIFRoaXMgYWxsb3dzIHVzZXJzIHRvIHJlbGF0ZSB2YXJpb3VzICdjNjQgMzIgYml0IGNoZWNrIGZhaWxlZCcKICAgZXJyb3JzIHdpdGggc3BlY2lmaWMgY291bnRlci4KCjIwMTAtMDQtMDggMDE6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXcgZnVuY3Rpb24KCjIwMTAtMDQtMDggMDE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogdHJhbnNsYXRlIE5PU1VDSCovRU5ET0ZNSUIgZXJyb3JzIGR1cmluZyBSRVNFUlZFMQogICB0byBOT0NSRUFUSU9OCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgTkVXUzogc25tcGQ6IHRhYmxlX2RhdGEvdGRhdGEgbmV4dCBoYW5kbGVyIHdpbGwgbm90IGJlIGNhbGxlZAogICBkdXJpbmcgZ2V0CiAgIHByb2Nlc3NpbmcgaWYgbm8gdmFsaWQgcm93cyBhcmUgZm91bmQgZm9yIHRoZSBoYW5kbGVyCgoyMDEwLTA0LTA4IDAwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgTkVXUzogc25tcGQ6IGFnZW50IHdpbGwgbm8gbG9uZ2VyIGNhbGwgdGFibGUgaGFuZGxlcnMgaWYgYSBzZXQKICAgcmVxdWVzdCBmb3IKICAgdGhlIGhhbmRsZXIgaGFzIGludmFsaWQgaW5kZXhlcwogICBDSEFOR0VTOiBzbm1wZDogZG9uJ3QgY2FsbCBjbGVhbnVwIG9uIGZpcnN0IHJlcXVlc3Qgb24gYmFkCiAgIGluZGV4ZXMuIGluc3RlYWQsCiAgIHNldCBhY3R1YWwgZXJyb3IgbGF0ZXIsIGFuZCBmcmVlIHJlcXVlc3QgZGF0YSBzZXRzIG9uIGZpcnN0CiAgIHJlcXVlc3QgZm9yIHNldHMKCjIwMTAtMDQtMDggMDA6NTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZnVuY3Rpb24gdG8gdmFsaWRhdGUgZmluZ2VycHJpbnQgdmFyYmluZAoKMjAxMC0wNC0wNyAyMjo1NiAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBTb2xhcmlzIHRyIGRvZXNuJ3Qgc3VwcG9ydCBjaGFyYWN0ZXIgcmFuZ2VzIHJlbGlhYmx5IChzZWUgdGhlCiAgIGF1dG9jb25mIG1hbnVhbCksIGNoYW5nZSB0aGUgZXhwcmVzc2lvbiB0byBvbmUgdGhhdCBpcyBzaW1wbGUKICAgZW5vdWdoIHRvIGIgc3VwcG9ydGVkLgoKMjAxMC0wNC0wNyAxNDowNSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW5zZXJ0IHRoZSBjYWNoZSBoZWxwZXIgY29ycmVjdGx5LgoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogYWRkIGZ1bmN0aW9ucyB0byByZW1vdmUgbGlzdC9yb3cgZGF0YSBmcm9tCiAgIHJlcXVlc3QgbGlzdAoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIGlmZGVmIHZhciBkZWNsIGZvciB2YXJzIG9ubHkgdXNlZCBpbiBsYXRlciBpZmRlZiBibG9jawoKMjAxMC0wNC0wNyAxMDo0MCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYywgICAKICAgICAgc25tcGxpYi9zbm1wLXRjLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhZGQgZnVuY3Rpb24gdG8gdmFsaWRhdGUgUm93U3RhdHVzIGFuZAogICBTdG9yYWdlVHlwZSB2YXJiaW5kcwogICAtIGFsc28gcmVtb3ZlIHNvbWUgZHVwbGljYXRlIGNvZGUgYW5kIGZpeCBjb21tZW50cyBpbmRlbnQgbWFuZ2xlZAoKMjAxMC0wNC0wNyAxMDozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZSwgbWFuL21pYjJjLXVwZGF0ZS4xLmRlZjoKCiAgIHVwZGF0ZSBtYW4gcGFnZTsgZml4IHNoZWxsIHJlZGlyZWN0OyBjcmVhdGUgZXhhbXBsZSByY2ZpbGUgaWYKICAgbWlzc2luZwoKMjAxMC0wNC0wNyAwNzoxNSAgbWFnZnIKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBVc2UgTkVUU05NUF9ESVNBQkxFX01JQl9MT0FESU5HIGluc3RlYWQgb2YgRElTQUJMRV9NSUJfTE9BRElORwoKMjAxMC0wNC0wNyAwMDozOCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBPbmx5IGVuYWJsZSBob3N0U3dJbnN0IHJwbSBzdXBwb3J0IG9uIGxpbnV4IGhvc3RzCiAgIHdpdGggbGlicnBtLiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uIG5vbi1ycG0gbGludXgKICAgZGlzdHJpYnV0aW9ucy4KCjIwMTAtMDQtMDcgMDA6MTQgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybWF1dGgsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybXByaXYsIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIAogICAgICAgIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLCAKICAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTNhZ2VudHYxdHJhcCwgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGUsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTFhZ2VudHhzZXQsIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjFwcm94eXNldCwgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDFzbm1wdjJjdmFjbWdldGZhaWw6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBDaGFuZ2UgdGhlIHRlc3Qgc3VpdGUgdG8gd29yayBldmVuIGlmIG1pYgogICBsb29rdXAgaXMgZGlzYWJsZWQuCgoyMDEwLTA0LTA3IDAwOjExICBtYWdmcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNzFjb20yc2VjNjoKCiAgIENoZWNrIGZvciBjb20yc2VjNiwgbm90IGNvbTJzZWMuCgoyMDEwLTA0LTA2IDIyOjUxICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIE1vdmUgZGlyZWN0b3J5IGNyZWF0aW9uIGJlZm9yZSB0aGUgZGlyZWN0b3JpZXMgYXJlIHVzZWQuCgoyMDEwLTA0LTA2IDExOjAzICBkdHMxMgoKICAgKiBGQVE6CgogICBQeXRob24gaXMgYXBwYXJlbnRseSBjbGllbnQtc2lkZSBvbmx5LgoKMjAxMC0wNC0wNiAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNldCBzdXBwbGVtZW50YXJ5IGdyb3VwcyBiZWZvcmUgY2hhbmdpbmcgVUlECiAgICh3aGljaCBwcm9iYWJseSBpbnZvbHZlcyBnaXZpbmcgdXAgcHJpdmlsZWdlcykKCjIwMTAtMDQtMDYgMDg6NTcgIGR0czEyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIERvY3VtZW50IGxhcmdlLWRpc2sgc3RhdGlzdGljcyBhcyBsYXRjaGluZyBhdCAyVGIgKHJhdGhlciB0aGFuCiAgIHdyYXBwaW5nKS4KCjIwMTAtMDQtMDYgMDE6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYywgbWFuL21pYjJjLjEuZGVmOgoKICAgTkVXUzogbWliMmM6IG1pYjJjIGNhbiBub3cgb3B0aW9uYWxseSBydW4gc2VkIG9uIGdlbmVyYXRlZCBjb2RlCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjb252ZXJ0IEMrKyBjb21tZW50cyB0byBDIGNvbW1lbnRzCgoyMDEwLTA0LTA2IDAxOjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtb3ZlIHB0ciBjaGVjayBiZWZvcmUgcHJ0IHVzZQoKMjAxMC0wNC0wNiAwMTo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBhZGQgZmlsZW5hbWUgdG8gZGVidWcgb24gbmV3IGNlcnRzOyBtYWtlIHN0YXRpYyBmdW5jIHRvIHJldHVybgogICBtb2RlIG5hbWVzCgoyMDEwLTA0LTA2IDAwOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIGFsbG93IGEgZm91bmQgZmluZ2VycHJpbnQgc2VsZi1zaWduZWQgY2VydCBmb3Igbm93OyBldmVudHVhbGx5CiAgIG5lZWQgdG8gcmVzcGVjdCB0aGUgTUlCIGNvbmZpZyB0YWJsZQoKMjAxMC0wNC0wNiAwMDoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBta2RpciBzbm1wbGliL3RyYW5zcG9ydHMgd2hlbiBETkUgZm9yIGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNvdXJjZQogICBkaXIKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCgoyMDEwLTA0LTA2IDAwOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUKCjIwMTAtMDQtMDYgMDA6MTEgIGhhcmRha2VyCgogICAqICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBlcnJvciBjb2RlIGNsZWFudXAgZm9yIHRsc2Jhc2Vfd3JhcHVwX3JlY3YKCjIwMTAtMDQtMDUgMjM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBtb3JlIGJldHRlciBlcnJvci9kZWJ1ZyBjb2RlcwoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3JlIGNvbW1lbnRzIGZyb20gdGhlIGZ1dHVyZS1SRkMgYWJvdXQgdGhlIGltcGxlbWVudGF0aW9uOyB1c2UKICAgZmxhZ3MgZm9yIHNlcnZlci9jbGllbnQgc3BlY2lmaWNhdGlvbiBmb3IgZXhwYW5zaW9uCgoyMDEwLTA0LTA1IDIzOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgYmV0dGVyIGVycm9yIG1lc3NhZ2VzIGZvciB1c2FnZSBjb25zdHJhaW50cwoKMjAxMC0wNC0wNSAyMzowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG1vdmUgZnVuY3Rpb24gcHJvdGVjdGlvbiBsb2dpYyBpbiBhIHRvcC1sZXZlbCBjaGVjawoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBmaXggaW5pdCBvcmRlcmluZwoKMjAxMC0wNC0wMiAxNjozNiAgaGFyZGFrZXIKCiAgICogIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wRFRMU1VEUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIG12IHRsc2Jhc2UgaW5pdCBmdW5jdGlvbiB0byBhIHByb3BlciBjdG9yIGZvciBhdXRvLWNhbGxpbmcKCjIwMTAtMDQtMDIgMTY6MzYgIGhhcmRha2VyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogZ2VuZXJhdGUgdGhlIHRyYW5zcG9ydCBpbml0aWFsaXphdGlvbiBmdW5jdGlvbiBsaXN0CiAgIGR5bmFtaWNhbGx5IGFuZCB1c2UgaXQKCjIwMTAtMDQtMDIgMTY6MzUgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgICAKICAgICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wU1NIRG9tYWluLmMsIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvdHJhbnNwb3J0cywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBBQUw1UFZDRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wQWxpYXNEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBDYWxsYmFja0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcERUTFNVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUFhEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1NIRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU1RERG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRDUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvdHJhbnNwb3J0cy9zbm1wVExTQmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFRMU1RDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3RyYW5zcG9ydHMvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi90cmFuc3BvcnRzL3NubXBVbml4RG9tYWluLmM6CgogICBDSEFOR0VTOiBtb3ZlZCB0cmFuc3BvcnQgY29kZSBpbnRvIGEgc2VwYXJhdGUgc3ViZGlyZWN0b3J5IGluCiAgIHNubXBsaWIKCjIwMTAtMDQtMDIgMDk6MDIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jOgoKICAgRG8gbm90IGF0dGVtcHQgdG8gY2hlY2sgc2l6ZW9mIHZvaWQgdG8gb2J0YWluIHRoZSBhbW91bnQgb2YKICAgbWVtb3J5IHRvIGNvcHkuCgoyMDEwLTA0LTAxIDE3OjExICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmg6CgogICBpbnN0ZWFkIG9mIGZ3ZCBkZWNsYXJlcywgcmVxdWlyZSBvdGhlciBoZWFkZXIKCjIwMTAtMDQtMDEgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCgoyMDEwLTA0LTAxIDE3OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgcmVtb3ZlIG91dGRhdGVkIGRlYnVnIG1zZwoKMjAxMC0wNC0wMSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHVzZSBjZXJ0YXBpIHRvIGZpbmQgY2VydHMva2V5cwoKMjAxMC0wNC0wMSAxNDo0MCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlZ2lzdGVyIGV4dHJhWDUwOVN1YkRpciB0b2tlbgoKMjAxMC0wNC0wMSAxNDoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIGNoZWNrIHB0ciBiZWZvcmUgdXNlCgoyMDEwLTA0LTAxIDE0OjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgY2hlY2sgcHRyIGJlZm9yZSB1c2UKCjIwMTAtMDQtMDEgMTM6MTMgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlX2ludGVybmFsLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZV9wZXJzaXN0LmM6CgogICBhZGQgcGVyc2lzdGVudCBzdG9yYWdlOyB0b2tlbiBmb3IgY3JlYXRpbmcgZW50cmllcyBpbiBzbm1wZC5jb25mOwogICBmaXggaW5kZXgKCjIwMTAtMDQtMDEgMTM6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXcgY2VydGlmaWNhdGUgYXBpIHRvIHN1cHBvcnQgdGxzL2R0bHMKCjIwMTAtMDQtMDEgMTM6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBDSEFOR0VTOiBhZGQgZnVuY3Rpb25zIHRvIGdldCBmaW5nZXJwcmludCBmcm9tIGNlcnQgYW5kIGxvZwogICBvcGVuc3NsIGVycnMKCjIwMTAtMDQtMDEgMTI6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgZml4IHR5cG8KCjIwMTAtMDQtMDEgMTA6MzMgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIEJ1aWxkcyBhZ2FpbiB3aXRoIHByZS1DOTAgY29tcGlsZXJzLgoKMjAxMC0wNC0wMSAxMDowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiB0YWJsZV9kYXRhIHRlbXBsYXRlIGVuaGFuY2VtZW50cwogICAtIGFkZCBlcnJvciBjaGVja3MgZHVyaW5nIHRhYmxlIGluaXQKICAgLSBjcmVhdGUgY2FjaGUgZWFybGllciBzbyB3ZSBjYW4gYmFpbCBvbiBmYWlsdXJlCiAgIC0gYWRkIG9wdGlvbiB0byBjcmVhdGUvZGVsZXRlIHJvdyB3L291dCBhZGRpbmcvcmVtb3ZpbmcgZnJvbQogICBjb250YWluZXIKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmg6CgogICBhZGQgaGVscGZ1bCBwYXJhbSBuYW1lcyBhcyBoaW50cyBpbiBwcm90b3R5cGUKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBzZWFyY2ggZm9yIGNvbnRhaW5lciBzcGVjaWZpYyBjb250YWluZXIgYmVmb3JlIGdlbmVyaWMKCjIwMTAtMDQtMDEgMTA6MDAgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmlsZV91dGlscy5oLCBzbm1wbGliL2Rpcl91dGlscy5jLCAgIAogICAgICBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGVuaGFuY2UgZmlsZSB1dGlscyBhbmQgZGlyIHV0aWxzCiAgIC0gYWRkIG9wdGlvbmFsIHN0YXRzIHN0cnVjdCB0byBuZXRzbm1wX2ZpbGUKICAgLSBnZW5lcmFsaXplIGRpciBjb250YWluZXIgZmlsdGVyLCBhZGQgY29udGV4dCB0byBjYWxsYmFjawogICAtIGFkZCBvcHRpb24gdG8gc3RvcmUgbmV0c25tcF9maWxlcyAody9zdGF0cykgaW4gY29udGFpbmVyCiAgIGluc3RlYWQgb2YganVzdCBuYW1lCgoyMDEwLTA0LTAxIDEwOjAwICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgcHJvdG90eXBlIHRvIGhlYWRlcjsgY2hlY2sgcHRyIGJlZm9yZSBkZXJlZmVyZW5jaW5nCgoyMDEwLTAzLTMxIDE1OjM0ICBqc2FmcmFuZWsKCiAgICogIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9zbm1wLWJyaWRnZS1taWIsIG1hbi9NYWtlZmlsZS5pbiwgICAKICAgICAgbWFuL3NubXAtYnJpZGdlLW1pYi4xLCBtaWJzL0JSSURHRS1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIE5FV1M6IG1pc2M6IFBBVENIOiAyOTUyNzA4OiBmcm9tIEplbnMgT3N0ZXJrYW1wOiBBZGRlZCBQZXJsCiAgIGltcGxlbWVudGF0aW9uIG9mIEJSSURHRS1NSUIKCjIwMTAtMDMtMzEgMDI6MTIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcHJvcGVyIHBhY2tldCBsYWJlbGluZyBmb3IgRFRMU1VEUAoKMjAxMC0wMy0zMSAwMjoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICB1c2UgY29tbW9uIGNvbnRleHQgY3JlYXRpb24gY29kZQoKMjAxMC0wMy0zMCAyMzoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBjaGFuZ2UgVExTIG1ldGhvZCB0byBUTFN2MSBmcm9tIFNTTHYyMwoKMjAxMC0wMy0zMCAyMzoyMyAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBtb3ZlIG1vcmUgY29tbW9uIGRhdGEgYW5kIGZ1bmN0aW9uYWxpdHkgaW50byB0aGUgVExTIGJhc2UKCjIwMTAtMDMtMzAgMjM6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbWlub3IgVExTIGNvZGUgY2xlYW51cAoKMjAxMC0wMy0zMCAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgcmV3b3JrIGlmKCkgd3JhcHBpbmcgZm9yIGxlc3MgY29uZnVzaW9uIGluIGVycm9yIGhhbmRsaW5nCgoyMDEwLTAzLTMwIDIwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjb2RlIGNvbnNvbGlkYXRpb24gaW4gc3RhcnRfbmV3X2NhY2hlZF9jb25uZWN0aW8KCjIwMTAtMDMtMzAgMjA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbmFtZSBnZW5lcmljICdiaW8nIHBvaW50ZXIgdG8gJ3JlYWRfYmlvJyBmb3IgYmV0dGVyIHJlYWRhYmlsaXR5CgoyMDEwLTAzLTMwIDIwOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtb3ZlIGJ1ZmZlcmVkIGRhdGEgY3JlYXRpb24gdG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgcmV1c2UKCjIwMTAtMDMtMzAgMTc6NTIgIG1hcnoKCiAgICogbG9jYWwvbmV0LXNubXAtY2VydDoKCiAgIGluaXRpYWwgY2VydCBnZW4gd3JhcHBlciBzY3JpcHQgLSBub3Qgd29ya2luZwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgY2xlYW4gdXAgZXJyb3Igb3V0cHV0IHNvIGl0IGRvZXNuJ3QgcmVwb3J0IHdhbnRfcmVhZCBhbmQKICAgd2FudF93cml0ZSBlcnJvcnMKCjIwMTAtMDMtMzAgMTc6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHJlbmFtaW5nIG9mIHNlbmRpbmcgZnVuY3Rpb24gZm9yIGNsYXJpdHkgYW5kIGNoZWNrIG9uZSBtb3JlCiAgIGxvY2F0aW9uIGZvciBuZWVkZWQgb3V0Z29pbmcgcGFja2V0cwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYWRkZWQgZHRsc3VkcCB0cmFjaW5nIHRva2VucwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIENIQU5HRVM6IGFkZGVkIGEgbmV3IERFQlVHVFJBQ0VUT0soKSBtYWNybwoKMjAxMC0wMy0zMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgYmV0dGVyIGNvbW1lbnRzIGFuZCBtb3JlIHdvcmsgb24gc2VuZGluZyBidWZmZXJlZCBkYXRhIGluIHRoZQogICByaWdodCBzcG90cwoKMjAxMC0wMy0zMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBmaXggYXJndW1lbnRzIHRvIGdldF9jb21tb25OYW1lCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBiZWdpbm5pbmcgb2YgY2FjaGluZyBvZiBwYWNrZXRzIGJlZm9yZSB0aGV5IGNhbiBiZSBzZW50IHZpYSBEVExTCgoyMDEwLTAzLTMwIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBoYW5kbGUgU1NMX1dBTlRfUkVBRC9XUklURSBiZXR0ZXI7IHN0aWxsIG5lZWQgdG8gYnVmZmVyIG91dGdvaW5nCiAgIHdyaXRlIGRhdGEKCjIwMTAtMDMtMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIG1pbm9yIGNoYW5nZSB0byBvdXRwdXQgZXJyb3IgcHJpbnRpbmcKCjIwMTAtMDMtMjkgMTU6MjAgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgTkVXUzogc25tcGQ6IEZpeCBoYW5kbGluZyBvZiBtdWx0aXBsZSBtYXRjaGluZyBWQUNNIGVudHJpZXMuCiAgIChVc2UgdGhlICJiZXN0IiBtYXRjaCwgcmF0aGVyIHRoYW4gdGhlIGZpcnN0IG9uZSkuCiAgIFJlcG9ydGVkIGJ5IEFkYW0gTGV3aXMuCiAgIE5vdGUgdGhhdCB0aGlzIGNvdWxkIHBvdGVudGlhbGx5IGFmZmVjdCB0aGUgYmVoYXZpb3VyIG9mCiAgIGV4aXN0aW5nIGFjY2VzcyBjb250cm9sIGNvbmZpZ3VyYXRpb25zLgoKMjAxMC0wMy0yOSAxNToxNiAgYnZhc3NjaGUKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6CiAgIE5ldFNOTVA6OmFnZW50OjpuZXRzbm1wX3JlcXVlc3RfaW5mb1B0cjo6Z2V0VmFsdWUoKTogZG9uJ3QgcmV0dXJuCiAgIGEgcG9pbnRlciB0byBhIGJ1ZmZlciBvbiB0aGUgc3RhY2suIEhvdyBjYW4gdGhpcyBoYXZlIHdvcmtlZAogICByZWxpYWJseSA/PwogICBDSEFOR0VTOiBwZXJsOgogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9yZXF1ZXN0X2luZm9QdHI6OnNldFZhbHVlKCksCiAgIEFTTl9DT1VOVEVSNjQ6IGZpeGVkIGJ1ZyB0aGF0IGNvdWxkIGNhdXNlIHRoaXMgbWV0aG9kIHRvIGZhaWwKICAgZXZlbiB3aGVuIGEgdmFsaWQgbnVtYmVyIHdhcyBwcm92aWRlZC4KCjIwMTAtMDMtMjkgMTU6MTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4IGFnZW50IGNyYXNoIHdoZW4gc2VuZGluZyBlbmNyeXB0ZWQgU05NUHYzCiAgIHRyYXBzLgogICBSZXBvcnRlZCBieSBTcmlrYXBpbGFuIEdhbmRoaQoKMjAxMC0wMy0yOSAxMjo0NiAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIENhdGNoIHN0ZGVyciBvbiBXaW5kb3dzIHRvby4KCjIwMTAtMDMtMjkgMTE6NDggIGJ2YXNzY2hlCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBwcmUtQzkwIGNvbXBpbGVycy4KCjIwMTAtMDMtMjkgMTE6MTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGRlc3Ryb3lpbmcgYQogICBOZXRTTk1QOjphZ2VudDo6bmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbiBvYmplY3QuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGEgbWVtb3J5IGxlYWsgdHJpZ2dlcmVkIGJ5IGZhaWx1cmUgb2YKICAgY3JlYXRpbmcgYSBOZXRTTk1QOjpPSUQgb2JqZWN0LgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRyaWdnZXJlZCBieSB0aGUKICAgTmV0U05NUDo6T0lEOjpnZXR0YWJsZSgpIHN1YnJvdXRpbmUuCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGFuIG91dC1vZi1ib3VuZHMgYXJyYXkgYWNjZXNzIHRyaWdnZXJlZCBieQogICB0aGUgaW1wbGVtZW50YXRpb24gb2YgTmV0U05NUDo6U05NUC4KICAgQ0hBTkdFUzogcGVybDogZml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgYSBQRFUgcHJvY2Vzc2luZwogICBlcnJvciBpbiBOZXRTTk1QOjpTTk1QLgogICBDSEFOR0VTOiBwZXJsOiBmaXhlZCBtZW1vcnkgbGVha3MgdHJpZ2dlcmVkIGJ5IGNyZWF0aW5nIGFuIFNOTVB2MwogICBzZXNzaW9uIHZpYSBOZXRTTk1QOjpTTk1QLgogICAKICAgQWxzbyBmaXhlZCB0aGUgdW5pbml0aWFsaXplZCB2YXJpYWJsZSBhY2Nlc3NlcyB0cmlnZ2VyZWQgYnkKICAgYWRkaW5nIGEgdmFyYmluZCB0byBhIFBEVSB2aWEgTmV0U05NUDo6U05NUCBpbnRyb2R1Y2VkIGEgZmV3IGRheXMKICAgYWdvLgogICAKICAgVGhlIGJ1Z3MgbWVudGlvbmVkIGFib3ZlIGhhdmUgYmVlbiBmb3VuZCBieSBpbnNwZWN0aW5nIHRoZSBvdXRwdXQKICAgb2YgdGhlIGZvbGxvd2luZyBzaGVsbCBjb21tYW5kOgogICBjZCBwZXJsICYmIHZhbGdyaW5kIC0tdHJhY2UtY2hpbGRyZW49eWVzIC0tbGVhay1jaGVjaz1mdWxsIG1ha2UKICAgdGVzdAoKMjAxMC0wMy0yOSAxMDo1OSAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFN3aXRjaGVkIGJhY2sgdG8gdGhlIHByZXZpb3VzIHdheSBvZiBzdGFydGluZyBwcm9jZXNzZXMKICAgYXN5bmNocm9ub3VzbHkgYmVjYXVzZSBpdCBpcyBtb3JlIHJlbGlhYmxlLgoKMjAxMC0wMy0yOSAwOToyNyAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIERvIG5vdCBvbmx5IHNhdmUgc25tcGQgLyBzbm1wdHJhcGQgbG9ncyBidXQgYWxzbyB0aGUgc3Rkb3V0IC8KICAgc3RkZXJyIG91dHB1dCBnZW5lcmF0ZWQgYnkgdGhlc2UgcHJvY2Vzc2VzLgoKMjAxMC0wMy0yOCAxNjowOSAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIENoYW5nZXMgaW4gcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKICAgLSBBZGRlZCBjb21tYW5kLWxpbmUgb3B0aW9uIC1kIGZvciBzbm1wZCBhbmQgc25tcHRyYXBkLgogICAtIHNubXBkIGFuZCBzbm1wdHJhcGQgb3V0cHV0IGlzIG5vdyBzYXZlZCB0byBhIGxvZyBmaWxlIChvbmUgcGVyCiAgIHRlc3QpLgogICAtIFJld3JvdGUgUGVybCBjb2RlIGZvciBzdGFydGluZyB0aGUgc25tcGQvc25tcHRyYXBkIHByb2Nlc3NlcwogICBzdWNoIHRoYXQgdGhlIHNhbWUgY29kZSB3b3JrcyBvbiBVbml4IGFuZCBvbiBXaW5kb3dzLgoKMjAxMC0wMy0yOCAxMzozNyAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGFkZGVkIHRoZSBmdW5jdGlvbnMgbmV0c25tcF9tYWxsb2MoKSwKICAgbmV0c25tcF9jYWxsb2MoKSwgbmV0c25tcF9yZWFsbG9jKCksIG5ldHNubXBfc3RyZHVwKCkgYW5kCiAgIG5ldHNubXBfZnJlZSgpLgogICBDSEFOR0VTOiBXaW4zMjogc25tcGxpYjogcmVtb3ZlZCB0aGUgdHJvdWJsZXNvbWUgI2RlZmluZSBtYWxsb2MKICAgbmV0c25tcF9tYWxsb2MgZXRjLiBUaGlzIG1lYW5zIHRoYXQgd2hlbiBjYWxsaW5nIGZ1bmN0aW9ucyBmcm9tCiAgIHRoZSBOZXQtU05NUCBETEwgZnJvbSBDIG9yIEMrKyBjb2RlIHRoYXQgaXMgYmVpbmcgbGlua2VkIGFnYWluc3QKICAgYW5vdGhlciB2ZXJzaW9uIG9mIHRoZSBNU1ZDIHJ1bnRpbWUgRExMIHRoYW4gdGhlIE5ldC1TTk1QIERMTCwKICAgYW5kIHdoZW4gYWxsb2NhdGluZyBtZW1vcnkgdGhhdCB3aWxsIGJlIGZyZWVkIGJ5IHRoZSBOZXQtU05NUAogICBETEwsIHlvdSB3aWxsIGVpdGhlciBoYXZlIHRvIGNhbGwgdGhlIE5ldC1TTk1QIG1lbW9yeSBhbGxvY2F0aW9uCiAgIGZ1bmN0aW9ucyBleHBsaWNpdGx5IG9yIHJlZGVmaW5lIG1hbGxvYygpIGV0Yy4geW91cnNlbGYuCgoyMDEwLTAzLTI4IDEyOjQ2ICBidmFzc2NoZQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeGVkIGEgcmVjZW50bHkgcmVpbnRyb2R1Y2VkIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTAzLTI3IDE4OjQyICBidmFzc2NoZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZGVkIGEgY2hlY2sgZm9yIGludm9jYXRpb24gb2YgY2FsbG9jKCkgZnJvbSBYU1VCcy4KCjIwMTAtMDMtMjYgMTk6MTYgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgcGVybC9PSUQvT0lELnhzLCAgIAogICAgICBwZXJsL1NOTVAvU05NUC54cywgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgRm9sbG93LXVwIGZvciByMTgzNjggYW5kIHIxODM2OTogbWFkZSBzdXJlIHRoYXQgdGhlIE5ldC1TTk1QIFBlcmwKICAgZXh0ZW5zaW9ucyBjb21waWxlIHdpdGhvdXQgdHJpZ2dlcmluZyBwcmVwcm9jZXNzb3Igd2FybmluZ3MgYWJvdXQKICAgcmVkZWZpbmluZyBtYWxsb2MgZXRjLiBub3IgdHJpZ2dlciAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcnMgb24KICAgV2luZG93cy4KCjIwMTAtMDMtMjYgMTQ6NDQgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIFJlZmFjdG9yaW5nOiBpbnRyb2R1Y2VkIGEgbmV3IGZ1bmN0aW9uOgogICBuZXRzbm1wX3NldF9ub25fYmxvY2tpbmdfbW9kZSgpLgoKMjAxMC0wMy0yNiAxMTo1OCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsICAKICAgICAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgCiAgICAgICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsICAgCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYywgICAKICAgICAgc25tcGxpYi90ZXh0X3V0aWxzLmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCB1c2luZyB2YXJpYWJsZXMgb2YgdHlwZSBjaGFyIGFzIGFuCiAgIGFycmF5IHN1YnNjcmlwdC4gTm90ZTogYXMgZmFyIGFzIEkga25vdyB0aGVzZSB3YXJuaW5ncyBhcmUgb25seQogICByZXBvcnRlZCB3aGVuIHVzaW5nIHRoZSBDeWd3aW4gZ2xpYmMgaGVhZGVycy4KCjIwMTAtMDMtMjYgMTA6NDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIEFkZGVkIG1pc3NpbmcgI2luY2x1ZGUgZGlyZWN0aXZlIChvbiBXaW5kb3dzIE1TVkMgd2FzIGNvbXBsYWluaW5nCiAgIGFib3V0IHNpemVfdCB3aGlsZSBwcm9jZXNzaW5nIDxuZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oPikuCgoyMDEwLTAzLTI1IDIwOjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogYWdlbnR4OiBjaGFuZ2VkIGRlZmF1bHQgVENQIHRhcmdldCBmcm9tIDAuMC4wLjA6NzA1IHRvCiAgIGxvY2FsaG9zdDo3MDUuIFRoaXMgaXMgbm90IG9ubHkgYSBtb3JlIHNlY3VyZSBjaG9pY2UgYnV0IGl0IGFsc28KICAgbWFrZXMgaXQgcG9zc2libGUgb24gV2luZG93cyBzeXN0ZW1zIHRvIGxldCBhbiBBZ2VudFggc3ViYWdlbnQKICAgY29ubmVjdCB0byBhbiBBZ2VudFggbWFzdGVyIGFnZW50IHJ1bm5pbmcgb24gdGhlIHNhbWUgc3lzdGVtCiAgIHdpdGhvdXQgaGF2aW5nIHRvIHNldCB0aGUgdmFyaWFibGUgTkVUU05NUF9EU19BR0VOVF9YX1NPQ0tFVC4KCjIwMTAtMDMtMjUgMTY6MTEgIGJ2YXNzY2hlCgogICAqICBwZXJsL09JRC9PSUQueHMsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBXaW4zMjogcGVybDogZml4ZWQgc2V2ZXJhbCAiRnJlZSB0byB3cm9uZyBwb29sIiBlcnJvcnMuCiAgIE5vdGU6IHNpbmNlIGNhbGxvYygpIGlzIG5vdCByZWRlZmluZWQgaW4gPENPUkUvWFNVQi5oPiB1c2luZwogICBjYWxsb2MoKSBkaXJlY3RseSBvciBpbmRpcmVjdGx5IGxlYWRzIHRvICJGcmVlIHRvIHdyb25nIHBvb2wiCiAgIGVycm9ycywgYXQgbGVhc3Qgb24gV2luZG93cy4KCjIwMTAtMDMtMjUgMTY6MDQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgbW9yZSBzaWxlbnQgYnkgbm90CiAgIHJlZGVmaW5pbmcgbWFsbG9jKCkgb3IgZnJlZSgpIGR1cmluZyBjb21waWxhdGlvbiBvZiBQZXJsCiAgIGV4dGVuc2lvbnMgKHJlc3VsdGVkIGluIHdhcm5pbmdzIGFib3V0IG1hbGxvYygpIC8gZnJlZSgpCiAgIHJlZGVmaW5pdGlvbiBpbiB0aGUgUGVybCBoZWFkZXIgQ09SRS9YU1VCLmgpLgoKMjAxMC0wMy0yNSAxNTowNiAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBCVUc6IDI5Njk4NzI6IG1hZGUgc3VyZSB0aGF0IFNPQ0tfU1RBUlRVUCBpcyBpbnZva2VkCiAgIGJlZm9yZSBpbml0X2FnZW50KCkgb24gV2luZG93cy4KCjIwMTAtMDMtMjUgMTM6MzkgIGpzYWZyYW5lawoKICAgKiAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgICAKICAgICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBVc2UgbWFjcm9zIGluc3RlYWQgb2YgbWFnaWMgbnVtYmVycyBhcyBuZXRzbm1wX3BhcnNlX2FyZ3MgcmV0dXJuCiAgIGNvZGVzLgoKMjAxMC0wMy0yNSAxMzozMCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiBzaW1wbGlmaWVkIHRoZSBidWlsZCBwcm9jZXNzIGJ5CiAgIHJlbW92aW5nIHRoZSBmaWxlIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLiBXaGljaCBJUHY2CiAgIGZ1bmN0aW9ucyBhcmUgZXhwb3J0ZWQgZnJvbSBuZXRzbm1wLmRsbCBpcyBub3cgZGV0ZXJtaW5lZCBieQogICB3aGljaCBvZiB0aGUgZnVuY3Rpb25zIGluIHRoaXMgRExMIGhhdmUgYmVlbiBkZWNsYXJlZCBhcwogICBORVRTTk1QX0lNUE9SVC4KCjIwMTAtMDMtMjQgMjA6MTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgZG9uJ3QgdXNlIHBhc3NlZCBwdHIgYXMgdGVtcCB2YXI7IHVzZSBzbm1wX2VudW1fbGlzdHMgaW4gaW5pdAogICB0ZXN0CgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIGFkZCBORVRTTk1QX0RTX0xJQl9DRVJUX0VYVFJBX1NVQkRJUgoKMjAxMC0wMy0yNCAyMDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjZXJ0IGluaXQgZWFybGllciAoaGF2ZSB0bHNfYm9vdHN0cmFwIGNhbGwgaXQpCgoyMDEwLTAzLTI0IDIwOjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzOyBhZGQgY2VydCBkZWJ1ZyBtc2dzIGluIHNlcnZlciBzZXR1cDsgZnJlZQogICBzc2wgbG9nIGRhdGEKCjIwMTAtMDMtMjQgMTA6NDcgIGpzYWZyYW5lawoKICAgKiAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywgICAKICAgICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDSEFOR0VTOiBhcHBzOiByZXR1cm4gbm96ZXJvIGV4aXQgY29kZSB3aGVuIHBhcnNpbmcgb2YgY2VydGFpbgogICBwYXJhbWV0ZXIgZmFpbHMuCiAgIEUuZy4gJy1BJyBwYXJhbWV0ZXIgd2l0aCB0b28gc2hvcnQgcGFzc3BocmFzZSBvciBLdSBrZXkKICAgZ2VuZXJhdGlvbiBpbiBnZW5lcmFsLgoKMjAxMC0wMy0yNCAwNzoxMSAgbWFnZnIKCiAgICogYXBwcy9hZ2VudHh0cmFwLmM6CgogICBDb3JyZWN0IHRoZSB0eXBlIG9mIHRoZSBpZC9kZXNjcmlwdGlvbiBvZiB0aGUgT3Blbi1QRFUuCgoyMDEwLTAzLTIyIDE4OjI5ICBidmFzc2NoZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFVwZGF0ZXMgZm9yICJtYWtlIGNoZWNrcyI6CiAgIC0gTWFkZSBzdXJlIHRoYXQgZXhpdCBjb2RlIDAgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGNoZWNrIGlzCiAgIHN1Y2Nlc3NmdWwgYW5kIHRoYXQKICAgZXhpdCBjb2RlIDEgaXMgZ2VuZXJhdGVkIHdoZW4gdGhlIGNoZWNrIGZhaWxlZC4KICAgLSBNYWRlICJtYWtlZmlsZWNoZWNrIiBza2lwIFN1YnZlcnNpb24gYm9va2tlZXBpbmcgZmlsZXMgYW5kIGFsc28KICAgdGhlIG1ha2VmaWxlCiAgIHRoYXQgY29udGFpbnMgIm1ha2VmaWxlY2hlY2siLgoKMjAxMC0wMy0yMiAxNjoxMCAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1QQVNTLU1JQi50eHQ6CgogICBGaXggdHlwbyBpbiBkZWZhdWx0IElwQWRkcmVzcyB2YWx1ZQogICAoU2VlIEJ1ZyAjMjk3MjE0MSkKCjIwMTAtMDMtMjIgMTU6NDQgIHJzdG9yeQoKICAgKiAgTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvY2FsbGJhY2suYywgICAKICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG91bGwuYzoKCiAgIGNoYW5nZSBhbGwgYXNzZXJ0KCkgdG8gbmV0c25tcF9hc3NlcnQoKTsgYWRkIGFzc2VydGNoZWNrIHRvIHRvcAogICBsZXZlbCBtYWtlZmlsZQoKMjAxMC0wMy0yMiAxNToyNCAgYnZhc3NjaGUKCiAgICogbWlicy9VQ0QtRElTS0lPLU1JQi50eHQ6CgogICBGb2xsb3ctdXAgZm9yIHIxODM0OTogYWRkZWQgbWlzc2luZyBjb21tYSBzdWNoIHRoYXQgaXQgaXMgYWdhaW4KICAgcG9zc2libGUgdG8gY29tcGlsZSBVQ0QtRElTS0lPLU1JQi4KCjIwMTAtMDMtMjIgMTQ6MzYgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBGaXggYnVpbGQgd2hlbiBNSUIgbG9hZGluZyBpcyBkaXNhYmxlZCAoYnJva2VuIGJ5IFNWTiByZXZpc2lvbgogICAxODM0MSkKICAgUmVwb3J0IGRlZmF1bHQgTUlCIHBhdGggZm9yIGNsaWVudCBhcHBzIHRvby4KCjIwMTAtMDMtMjIgMTM6NTkgIGR0czEyCgogICAqICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsIG1hbi9zbm1wX2Vycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX2ZyZWVfcGR1LjMsIG1hbi9zbm1wX29wZW4uMywgbWFuL3NubXBfcGVycm9yLjMsICAgCiAgICAgIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywgbWFuL3NubXBfc2VuZC4zLCAgIAogICAgICBtYW4vc25tcF9zZXNzX3BlcnJvci4zLCBtYW4vc25tcF90aW1lb3V0LjM6CgogICBDSEFOR0VTOiBtYW46IEJVRzogMjk3Mjg2MDogVXBkYXRlIGJyb2tlbiByZWZlcmVuY2VzCgoyMDEwLTAzLTIyIDEzOjQ5ICBkdHMxMgoKICAgKiAgbWlicy9VQ0QtRElTS0lPLU1JQi50eHQsIG1pYnMvVUNELURMTU9ELU1JQi50eHQsICAgCiAgICAgIG1pYnMvVUNELUlQRklMVEVSLU1JQi50eHQsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIENIQU5HRVM6IG1pYnM6IEJVRzogMjk3Mzg5MDogRml4IGltcG9ydHMsIERpc2tJT0VudHJ5IGxpc3QgYW5kCiAgIHJldmlzaW9uIGhpc3RvcmllcwoKMjAxMC0wMy0yMiAxMTo1NSAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgV2luMzIsIHdpbkV4dERMTDogc29sdmVkIHRoZSBteXN0ZXJ5IG9mICJBU04gdHlwZSB6ZXJvIi4gVGhlCiAgIHdpbkV4dERMTCBjb2RlIGRvZXMgbm93IG5vIGxvbmdlciB0cmlnZ2VyIGNvbnZlcnNpb25zIG9mIFdpbmRvd3MKICAgQVNOIHZhcmJpbmRzIHdpdGggQVNOIHR5cGUgemVyby4gTm90ZTogdGhpcyBjb2RlIGNoYW5nZSBkb2VzIG5vdAogICBjaGFuZ2UgdGhlIGFnZW50IGJlaGF2aW9yLgoKMjAxMC0wMy0yMCAyMDoyMSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmg6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBNU1ZDLgoKMjAxMC0wMy0yMCAyMDoyMCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgQWRkZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggKHNob3VsZCBoYXZlIGJlZW4gYWRkZWQgaW4gdGhlCiAgIHByZXZpb3VzIGNvbW1pdCkuCgoyMDEwLTAzLTIwIDE5OjM2ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIAogICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L3NubXBkLmMsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgCiAgICAgICAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYywgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBsaWJzbm1wOiBjaGFuZ2VkIHRoZSB0eXBlIG9mIHRoZSBmb3VydGggYXJndW1lbnQgb2YKICAgbmV0c25tcF9zZXRfcm93X2NvbHVtbigpIGZyb20gY29uc3QgY2hhciogdG8gY29uc3Qgdm9pZCogc3VjaAogICB0aGF0IG5vIGNhc3QgaXMgbmVjZXNzYXJ5IHdoZW4gcGFzc2luZyBhbm90aGVyIGRhdGF0eXBlIHRoZW4KICAgY2hhciogb3IgY29uc3QgY2hhciouCiAgIENIQU5HRVM6IFdpbjMyOiBjaGFuZ2VkIGluX2FkZHJfdCBmcm9tIHVfaW50IHRvIHVfbG9uZyBzdWNoIHRoYXQKICAgaXQgbWF0Y2hlcyB0aGUgZGF0YXR5cGUgb2Ygc29ja2FkZHJfaW46OnNpbl9hZGRyLgogICBBbHNvLCBmaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIChtb3N0bHkgY2hhciAqIDw+IHVfY2hhciAqCiAgIG1pc21hdGNoZXMpIGFuZCByZW1vdmVkIHNvbWUgY2FzdHMuCgoyMDEwLTAzLTIwIDE5OjE2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIEZpeGVkIHRoZSBjb21waWxlciB3YXJuaW5ncyByZXBvcnRlZCBieSBnY2MgKE1pbkdXKS4KCjIwMTAtMDMtMjAgMTk6MDUgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBBZGRlZCBjb25maWd1cmUgdGVzdCBmb3Igc2lncHJvY21hc2suCgoyMDEwLTAzLTIwIDA5OjE0ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFJlZmFjdG9yaW5nOiBtb3ZlZCBkdXBsaWNhdGVkIGNvZGUgaW50byBhIG5ldyBmdW5jdGlvbi4KCjIwMTAtMDMtMTkgMjI6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3BhcnNlLmM6CgogICBSZXBvcnQgTUlCIGFuZCBjb25maWcgZGlyZWN0b3JpZXMgc2VhcmNoIHBhdGhzIG9uIGVycm9ycwogICAoYW5kIGluIHRoZSBoZWxwIG1lc3NhZ2UpCgoyMDEwLTAzLTE5IDEzOjEyICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1hZGUgdGhlIGVycm9yIG1lc3NhZ2UgdGhhdCBpcyBsb2dnZWQgd2hlbgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uIGlzIGF0dGVtcHRlZCBtb3JlIGRldGFpbGVkLgogICAKICAgQW4gZXhhbXBsZToKICAgKGJlZm9yZSkKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiAobWliSUkvc25tcCwKICAgQzpcV0lORE9XU1xTeXN0ZW0zMlxzbm1wbWliLmRsbCkKICAgaGFuZGxlciByZWdpc3RyYXRpb24gZmFpbGVkLgogICAoYWZ0ZXIpCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb246IE1JQiBtb2R1bGVzIG1pYklJL3NubXAgYW5kCiAgIEM6XFdJTkRPV1NcU3lzdGVtMzJcc25tcG1pYi5kbGwgKG9pZCAuMS4zLjYuMS4yLjEuMTEpLgogICBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBmYWlsZWQuCgoyMDEwLTAzLTE5IDEyOjQwICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiB3aW5FeHRETEw6IG11bHRpcGxlIHZhcmJpbmQgc2V0IHJlcXVlc3RzIGFyZSBub3cKICAgcHJvY2Vzc2VkIGNvcnJlY3RseS4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogbWFkZSBlcnJvciBjb2RlcyBpbiBTTk1QIHJlc3BvbnNlIFBEVXMKICAgYXMgUkZDLWNvbXBsaWFudCBhcyBwb3NzaWJsZS4KICAgQ0hBTkdFUzogV2luMzI6IHdpbkV4dERMTDogaWYgbG9hZGluZyBhbiBleHRlbnNpb24gRExMIGZhaWxzLCB0aGUKICAgcmVhc29uIHdoeSBsb2FkaW5nIGZhaWxlZCBpcyBub3cgbG9nZ2VkLgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBmaXhlZCBhIG1lbW9yeSBsZWFrIHRoYXQgb2NjdXJyZWQgd2hlbgogICBTbm1wRXh0ZW5zaW9uUXVlcnkoRXgpIGZhaWxlZC4gVGhpcyBtZW1vcnkgbGVhayBoYXMgYmVlbiBmb3VuZAogICB2aWEgc291cmNlIHJlYWRpbmcuIE5vdGU6IGl0IGlzIG5vdCBjbGVhciB3aGV0aGVyIGl0IHdhcyBwb3NzaWJsZQogICB0byB0cmlnZ2VyIHRoaXMgbWVtb3J5IGxlYWsuIFRoaXMgbGVhayBpcyBjZXJ0YWlubHkgbm90IHRyaWdnZXJlZAogICBieSBldmVyeSByZXF1ZXN0IGZvciB3aGljaCBhIHJlc3BvbnNlIHdpdGggbm9uLXplcm8gZXJyb3Igc3RhdHVzCiAgIGlzIHNlbnQgYmFjay4KCjIwMTAtMDMtMTggMTY6MjkgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGtlZXAgY291bnQgb2YgZW5hYmxlZCBsb2dzOyB1c2UgdGhpcyBjb3VudCB0byBkZXRlcm1pbmUgd2hlbiB0bwogICBsb2cgdG8gc3RkZXJyCgoyMDEwLTAzLTE4IDE2OjI4ICByc3RvcnkKCiAgICogIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2NlcnRfdXRpbC5jLCAgIAogICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTkVXUzogc25tcGxpYjogbmV3IHNubXAgdG9rZW4gbG9nT3B0aW9uIGFsbG93cyBzcGVjaWZ5aW5nIGxvZwogICBkZXN0aW5hdGlvbnMgdmkgY29uZiBmaWxlcwogICAtIGlmIHN0ZGVyciBsb2cgZW5hYmxlZCBiZWNhdXNlIG9mIG5vIGxvZyBkZXN0aW5hdGlvbiwgdHVybiBpdAogICBvZmYgd2hlbiBhCiAgIGxvZyBkZXN0aW5hdGlvbiBpcyBlbmFibGVkCiAgIC0gZG9uJ3QgY2FsbCBuZXRzbm1wX2VuYWJsZV9zdGRlcnJsb2coKSBmcm9tIGFwcHMgYW55bW9yZQoKMjAxMC0wMy0xOCAxNTozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgdWRwIHRyYW5zcG9ydCBpbmhlcml0YW5jZSB0d2Vha3MKICAgLSBtb3ZlIGJhc2ljIHVkcCByZWN2ZnJvbS9zZW5kdG8gY29kZSBmcm9tIFVEUERvbWFpbiB0bwogICBVRFBCYXNlRG9tYWluCiAgIC0gdHdlYWsgdXBkIHJlY3Zmcm9tL3NlbmR0byB0byBjYWxsIHVkcGJhc2UgdmVyc3Rpb24KICAgLSB0d2VhayB1ZHBpcHY0IHJlY3Zmcm9tL3NlbmR0byB0byBjYWxsIHVkcGJhc2UgdmVyc2lvbgogICAtIGFsc28gZml4ZWQgbmV0c25tcF9pcHY0XyogLT4gbmV0c25tcF91ZHBpcHY0XyoKICAgLSB0d2VhayBEVExTVURQRG9tYWluIG90IHVzZSB1ZHBiYXNlXyogaW5zdGVhZCBvZiB1ZHBfKgoKMjAxMC0wMy0xOCAxNToyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcHJvdGVjdCBjZXJ0IGhlYWRlciBhbmQgaW5pdCBjYWxsIHdpdGggaWZkZWZzCgoyMDEwLTAzLTE3IDE5OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNUQ1BEb21haW4uYzoKCiAgIHVzZSBuZXcgdXRpbGl0eSByb3V0aW5lIGZvciBjZXJ0IG5hbWVzCgoyMDEwLTAzLTE3IDE5OjAxICByc3RvcnkKCiAgICogc25tcGxpYi9jZXJ0X3V0aWwuYzoKCiAgIG1vdmUgc25tcF9vcGVuc3NsIGhlYWRlciBhZnRlciBvcGVuc3NsIGhlYWRlcnMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBhZGQgcm91dGluZXMgdG8gcHVsbC9kdW1wIG5hbWVzIGZyb20gWDUwOSBjZXJ0cwoKMjAxMC0wMy0xNyAxOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2VydF91dGlsLmM6CgogICB1c2UgZW51bSBsaXN0cyB0byBtYW5hZ2UgZGlyZWN0b3J5IGluZGV4ZXMKCjIwMTAtMDMtMTcgMTk6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgaW5pdGlhbGl6ZSBzdGF0aWMgc3RvcmFnZSBiZWZvcmUgdXNlOyBwcm90ZWN0IGVudW0gaW5pdCBmcm9tCiAgIG11bHRpcGxlIGNhbGxzCgoyMDEwLTAzLTE3IDE4OjU0ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgaW5mbyBhYm91dCBuZXcgdHNtL3RscyBtaWJzCgoyMDEwLTAzLTE3IDE4OjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBtb3ZlIGNlcnQgaW5pdCB0byBzbm1wIGluaXQKCjIwMTAtMDMtMTcgMTM6MzcgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIFVwZGF0ZWQgTUlCIHJldmlzaW9uIGhpc3RvcnkuCgoyMDEwLTAzLTE3IDEzOjI5ICBidmFzc2NoZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4ZWQgb25lIGxlYWstYXQtZXhpdC4KCjIwMTAtMDMtMTcgMTI6NDQgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ0hBTkdFUzogQlVHOiAyOTcxMjU3OiBGaXhlZCB3aW5FeHRETEwgaGFuZGxpbmcgb2YgbXVsdGktdmFyYmluZAogICBnZXROZXh0IHJlcXVlc3RzIHdpdGggT0lEcyBpbiByZXZlcnNlIGxleGljb2dyYXBoaWNhbCBvcmRlci4KCjIwMTAtMDMtMTcgMTA6MjUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgTW9yZSB3aW5FeHRETEwgZGVidWcgb3V0cHV0IHR1bmluZy4KCjIwMTAtMDMtMTYgMTk6MzEgIGJ2YXNzY2hlCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIENvbXBpbGVzIG5vdyB3aXRoIE1JQiBjb21waWxlcnMgdGhhdCBkbyBub3QgcmVjb2duaXplIGEgZG91YmxlCiAgIGRhc2ggYXMgdGhlIGVuZCBvZiBhIE1JQiBjb21tZW50LgoKMjAxMC0wMy0xNiAxOToyNyAgYnZhc3NjaGUKCiAgICogbWlicy9ORVQtU05NUC1FWFRFTkQtTUlCLnR4dDoKCiAgIEZpeGVkIHR3byBzeW50YXggZXJyb3JzLgoKMjAxMC0wMy0xNiAxOToxOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBDSEFOR0VTOiBXaW4zMjogd2luRXh0RExMOiBmaXhlZCBhIGJ1ZyBpbiBnZXROZXh0IGhhbmRsaW5nIHRoYXQKICAgY291bGQgY2F1c2UgdGhlIE1JQiBvdXRwdXQgdG8gYmUgdHJ1bmNhdGVkLgoKMjAxMC0wMy0xNiAxODo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBNYWRlIHdpbkV4dERMTCBkZWJ1ZyBvdXRwdXQgbW9yZSBkZXRhaWxlZC4KCjIwMTAtMDMtMTYgMTU6MjQgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmg6CgogICBNYWRlIHN1cmUgdGhhdCBDKysgcHJvZ3JhbXMgdGhhdCBpbmNsdWRlIE5ldC1TTk1QIGhlYWRlciBmaWxlcwogICBjb21waWxlIGFnYWluLgoKMjAxMC0wMy0xNSAwNzoyMCAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggLS1kaXNhYmxlLWRlcHJlY2F0ZWQgYWdhaW4uCgoyMDEwLTAzLTE1IDA3OjE5ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgIERpc2FibGUgYWxsIHRoZSBwcmludGluZyBpZiBkZWJ1ZyBvdXRwdXQgaXMgb2ZmLgoKMjAxMC0wMy0xNSAwMDoxNyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgcmVnYXJkaW5nIHByaW50ZiBmb3JtYXQKCjIwMTAtMDMtMTUgMDA6MDcgIHRhbmRlcnMKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MgcmVnYXJkaW5nIHByaW50ZiBmb3JtYXQKCjIwMTAtMDMtMTQgMjE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuaDoKCiAgIG1ha2Ugc3VyZSBoZWFkZXIgaWZkZWYgbmFtZSBpcyB1bmlxdWUKCjIwMTAtMDMtMTQgMjE6MDQgIHJzdG9yeQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3QuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzL3NubXBUc21TdGF0cy5oOgoKICAgYWRkIG1pc3NpbmcgaW5pdC9zaHV0ZG93biBwcm90b3R5cGVzIHRvIGZpeCBjb21waWxlciB3YXJuaW5ncwoKMjAxMC0wMy0xNCAyMTowMyAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBtb3ZlIGRlYnVnIG1lc3NhZ2UgZWFybGllcgoKMjAxMC0wMy0xNCAyMTowMiAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgbmV0c25tcF9pbml0X2NvbnRhaW5lcjsgZml4IGNvbXBsZXIgd2FybmluZwoKMjAxMC0wMy0xNCAyMDo1MSAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBDb3JyZWN0IG5ldHNubXBfYXNzZXJ0X29yX3JldHVybiBhbmQgbmV0c25tcF9hc3NlcnRfb3JfbXNncmV0dXJuCiAgIGZvciB0aGUgTkVUU05NUF9OT19ERUJVR0dJTkcgY2FzZQoKMjAxMC0wMy0xNCAxOToxMCAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvY2VydF91dGlsLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU0Jhc2VEb21haW4uYzoKCiAgIHJlbmFtZSBjZXJ0IGluaXQvc2h1dGRvd24gZnVuY3M7IG9ubHkgY29tcGlsZSBjZXJ0X3V0aWxzIGlmCiAgIHVzaW5nL2hhdmUgU1NMOyBpbml0IGNlcnRzIGZyb20gdGxzIGJhc2UKCjIwMTAtMDMtMTQgMTk6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgY2FsbCBuZXRzbm1wX2luaXRfb3BlbnNzbCBpbnN0ZWFkIG9mIG5ldHNubXBfaW5pdF90bHNiYXNlCgoyMDEwLTAzLTE0IDE5OjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgb2JqZWN0cyBpbiB2ZXJzaW9uIDA4IG9mIHRoZSBkdGxzIGRyYWZ0CgoyMDEwLTAzLTE0IDE5OjA4ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYiwgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvc25tcFRsc3RtU2Vzc2lvbi9zbm1wVGxzdG1TZXNzaW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi9zbm1wVGxzdG1TZXNzaW9uL3NubXBUbHN0bVNlc3Npb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90bHN0bS1taWIvdGxzdG1BZGRyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGxzdG0tbWliL3Rsc3RtQWRkclRhYmxlL3Rsc3RtQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Rsc3RtLW1pYi90bHN0bUFkZHJUYWJsZS90bHN0bUFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliLCBhZ2VudC9taWJncm91cC90c20tbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RzbS1taWIvc25tcFRzbVN0YXRzLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90c20tbWliL3NubXBUc21TdGF0cy9zbm1wVHNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHNtLW1pYi9zbm1wVHNtU3RhdHMvc25tcFRzbVN0YXRzLmg6CgogICBpbXBvcnQgaW5pdGlhbCBjb2RlIGZvciBkdGxzIG1pYnMKCjIwMTAtMDMtMTQgMTk6MDggIHJzdG9yeQoKICAgKiBtaWJzL1RMU1RNLU1JQi50eHQ6CgogICBUTFNUTS1NSUIgZnJvbSBkcmFmdC1pZXRmLWlzbXMtZHRscy10bS0wOS50eHQKCjIwMTAtMDMtMTQgMTc6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeGVkIGEgZmV3IG1vcmUgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTE0IDE0OjEwICBidmFzc2NoZQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIEZvbGxvdy11cCBmb3IgcjE3Mzg0OiBjaGFuZ2VkIE5FVFNOTVBfRFNfTUFYX1NVQklEUyBmcm9tIDQwIHRvCiAgIDQ4LgoKMjAxMC0wMy0xNCAxMzo1MyAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDaGFuZ2VzOgogICAtIFJlbW92ZWQgLVduby1jaGFyLXN1YnNjcmlwdHMgZnJvbSBERVZGTEFHUy4gVXNpbmcgYSB2YXJpYWJsZSBvcgogICBleHByZXNzaW9uIG9mCiAgIHR5cGUgY2hhciBhcyBhbiBhcnJheSBpbmRleCBpcyBhbG1vc3QgYWx3YXlzIGFuIGVycm9yLgogICBGdXJ0aGVybW9yZSwKICAgLVdjaGFyLXN1YnNjcmlwdCBkb2VzIG5vdCB0cmlnZ2VyIGFueSB3YXJuaW5ncyBvbiB0aGUgTmV0LVNOTVAKICAgY29kZSBiYXNlLgogICAtIFJlbW92ZWQgLVdpbmxpbmUgZnJvbSBERVZGTEFHUy4gTm90IG9ubHkgd2FzIG5vYm9keSBwYXlpbmcKICAgYXR0ZW50aW9uIHRvIHRoZQogICBtZXNzYWdlcyB0cmlnZ2VyZWQgYnkgLVdpbmxpbmUsIGJ1dCByZWNlbnQgdmVyc2lvbnMgb2YgdGhlIGdjYwogICBjb21waWxlciBhcmUKICAgYmV0dGVyIHRoYW4gaHVtYW5zIGF0IGRlY2lkaW5nIHdoaWNoIGZ1bmN0aW9ucyBzaG91bGQgYmUgaW5saW5lZAogICBhbmQgd2hpY2gKICAgb25lcyBub3QuCgoyMDEwLTAzLTE0IDEzOjM5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUmVyYW4gYXV0b3JlY29uZi4KCjIwMTAtMDMtMTQgMTM6MzkgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5QZXJmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncy4KCjIwMTAtMDMtMTQgMTM6MzYgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUmVtb3ZlZCB0aGUgJzB4JyBwcmVmaXggYWdhaW4gZnJvbSBhIGRlYnVnIHN0YXRlbWVudCB0aGF0IHdhcwogICBpbnRyb2R1Y2VkIGluIHIxODI4Mi4KCjIwMTAtMDMtMTMgMTk6MDcgIGJ2YXNzY2hlCgogICAqICBwZXJsL0FTTi9BU04ueHMsIHBlcmwvT0lEL09JRC54cywgcGVybC9TTk1QL1NOTVAueHMsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9UcmFwUmVjZWl2ZXIvcHBwb3J0LmgsICAgCiAgICAgIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBGaXhlZCBtb3N0IGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGNvZGUgaW4gdGhlCiAgIHBlcmwgc3ViZGlyZWN0b3J5LgogICBOb3RlOiB0aGVzZSBjaGFuZ2VzIG1heSBjb250YWluIHNvbWUgcmVhbCBidWcgZml4ZXMuCgoyMDEwLTAzLTEzIDA5OjU3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXhlZCBzZXZlcmFsIHJlY2VudGx5IGludHJvZHVjZWQgY29tcGlsZXIgd2FybmluZ3MuCgoyMDEwLTAzLTEzIDAxOjE2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBkZWZpbmUgdGhlIFRMU1RDUCBET01BSU4KCjIwMTAtMDMtMTMgMDE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCBpZmRlZiB0eXBvCgoyMDEwLTAzLTEyIDIwOjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBjaGFuZ2UgZGVidWdnaW5nIHN5bWJvbCBuYW1lcyB0byBhIGdlbmVyaWMgdGxzIHN0cmluZwoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBpbml0aWFsIHdvcmtpbmcgU05NUCBvdmVyIFRMUyBvdmVyIFRDUCBjb25uZWN0aW9uCgoyMDEwLTAzLTEyIDIwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBwcmludCBhIG1vcmUgY29tcGxldGUgT3BlblNTTCBzdGFjawoKMjAxMC0wMy0xMiAyMDoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBmaXggYXNzZXJ0IHN0YXRlbWVudHMKCjIwMTAtMDMtMTIgMjA6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVExTQmFzZURvbWFpbi5oOgoKICAgYWRkZWQgYW4gYWNjZXB0ZWRfYmlvIHBvaW50ZXIgZm9yIHRoZSBiaW8gYWZ0ZXIgU1NMX2FjY2VwdAoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgYWRkIHRoZSBhYmlsaXR5IGZvciBmX2NvcHkgYW5kIGZfY29uZmlnCgoyMDEwLTAzLTEyIDIwOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIG1pc3NpbmcgOwoKMjAxMC0wMy0xMiAyMDoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGQgYSBmX2NvcHkgcG9pbnRlcgoKMjAxMC0wMy0xMiAyMDoyMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICByZXR1cm4gaW50IG5vdCBpbnQgKiBvbiBlcnJvcgoKMjAxMC0wMy0xMiAyMDoyMCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBhZGRlZCBhIGZfY29uZmlnIGZ1bmN0aW9uIGZvciB0cmFuc3BvcnRzCgoyMDEwLTAzLTEyIDExOjUzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcHRhYmxlOiBQQVRDSDogMjg1MDA2NzogU3VwcHJlc3MgZXh0cmFuZW91cyAiaW5kZXgiCiAgIGhlYWRlciB0b2tlbgogICBQYXRjaCBzdXBwbGllZCBieSBEYW4gTmVsc29uCgoyMDEwLTAzLTEyIDExOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mCiAgIGdldHVsb25nZnJvbXN5c2NsYXNzbmV0c3RhdGlzdGljcygpCgoyMDEwLTAzLTExIDE2OjUyICBkdHMxMgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIERvY3VtZW50IHRoZSBmb3JtYXQgb2YgdGhlIC1lLy1FIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKMjAxMC0wMy0xMSAxNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBSZW1vdmUgbWVudGlvbiBvZiB0aGUgKGFiYW5kb25lZCkgJ2RhdGFzZXQyJyBoZWxwZXIuCgoyMDEwLTAzLTExIDE1OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL2NlcnRfdXRpbC5jOgoKICAgRG9uJ3QgaW5pdGlhbGlzZSB0aGUgVExTIHRyYW5zcG9ydCB1bmxlc3MgaXQncyBhY3R1YWxseSBiZWVuCiAgIGNvbmZpZ3VyZWQgaW4uCgoyMDEwLTAzLTExIDE1OjQ3ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3N1aXRlLnNoOgoKICAgdXNlIFNOTVBfVE1QRElSIGluc3RlYWQgb2YgVE1QRElSCgoyMDEwLTAzLTExIDE1OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICBxdWVyeSByaWdodCBib29sICh0c20gcHJlZml4IGlzIGxpYiBib29sLCBub3QgYXBwKQoKMjAxMC0wMy0xMSAxNTowOCAgZHRzMTIKCiAgICogIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi90b29scy5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5NTIwMzQ6IFJldHVybiBvZiB0aGUgR3JlYXQgU3VTRSAnc3ByaW50ZicKICAgSHVudC4uLgogICBQYXRjaCBzdXBwbGllZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTQ6NTUgIGR0czEyCgogICAqIGxvY2FsL3RyYXB0b2VtYWlsOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI5Mzc5OTY6IEFkZCBEYXRlOiBoZWFkZXIgdG8gZW1haWwgc2VuZCBieQogICB0cmFwdG9lbWFpbAoKMjAxMC0wMy0xMSAxNDo1MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk2NzQwMDogUmV0cmlldmUgZXJyb3IgY291bnRlcnMgZm9yIHRoZQogICBFdGhlckxpa2UtTUlCCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvc2VmIE1vZWxsZXJzLgoKMjAxMC0wMy0xMSAxNDoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTY4NjQyOiBDYXRjaCBvdmVyZmxvdyBvZiBwYXNzLXRocm91Z2gKICAgY29tbWFuZCBidWZmZXIuCiAgIFBhdGNoIGZyb20gQW5kcmVhcyBKYWVnZXIvTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDEyOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjk1NjY1NzogSGFuZGxlIG92ZXItbGVuZ3RoIEFnZW50WCBPSURzLgogICBQYXRjaCBwcm92aWRlZCBieSBSb2IgV2VzdAoKMjAxMC0wMy0xMSAxMjoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfY29tbW9uLmM6CgogICBQcm92aWRlIG1pc3NpbmcgZGVidWcgcGFyYW1ldGVyLgogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5jOgoKICAgUHJvdmlkZSBtaXNzaW5nIChkdW1teSkgcmV0dXJuIHZhbHVlLCB0byBzdXBwcmVzcyBjb21waWxlcgogICB3YXJuaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBBbmRyZWFzIEphZWdlci4KCjIwMTAtMDMtMTEgMTI6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIFN1cHByZXNzIHdhcm5pbmdzIG9mIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdy4KICAgVGhpcyBkb2Vzbid0IF9hY3R1YWxseV8gcHJvdGVjdCBhZ2FpbnN0IHN1Y2ggYW4gb3ZlcmZsb3csCiAgIHNpbmNlIHRoZSB0YXJnZXQgYnVmZmVyIGlzIG5vbi1lbXB0eSwgc28gc3RybmNhdCBjYW4ndAogICB1c2UgaXQgYWxsIGFueXdheS4gQnV0IHRoaXMgc2hvdWxkIGF0IGxlYXN0IG1pc2xlYWQgdGhlCiAgIGNvbXBpbGVyIHN1ZmZpY2llbnRseSB0byBzaHV0IGl0IHVwIQogICAKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5kcmVhcyBKYWVnZXIuCgoyMDEwLTAzLTExIDExOjU3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIFJlcGxhY2UgYmFja3F1b3RlIHdpdGggc2luZ2xlIHF1b3RlIGluIGNvbmZpZ3VyZSBvdXRwdXQgbWVzc2FnZS4KICAgV2hpbGUgdGhpcyBjaGFuZ2UgaXMgcHJvYmFibHkgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSwgaXQgZmVlbHMKICAgc2Vuc2libGUgdG8gYXZvaWQgdGhpcyBwYXJ0aWN1bGFyIHVzZSBvZiBiYWNrcXVvdGVzLCBKdXN0IEluCiAgIENhc2UuCiAgIFNlZSBkaXNjdXNzaW9uIGluIFBhdGNoICMyOTUyMTY5CgoyMDEwLTAzLTExIDExOjQzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0g6IDI5NTIxNDA6IE92ZXJmbG93IGNvdW50ZXIzMiBhbmQgZ2F1Z2UzMgogICBvbiA2NGJpdCBzeXN0ZW1zIGNvcnJlY3RseQogICBQYXRjaCBwcm92aWRlZCBieSBMZW9uYXJkbyBDaGlxdWl0dG8KCjIwMTAtMDMtMTEgMTE6MzYgIGR0czEyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF9zdWl0ZS5zaDoKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMjk1MjAyMDogRXhwbGljaXRseSBzZXQgcGVybWlzc2lvbiBvbgogICB0ZW1wb3JhcnkgdGVzdGluZyBvdXRwdXQgZGlyZWN0b3JpZXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IExlb25hcmRvIENoaXF1aXR0by4KCjIwMTAtMDMtMTEgMTE6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyOTUwODQ1OiBGaXggaWZIaWdoU3BlZWQgY2FsY3VsYXRpb24KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTGVvbmFyZG8gQ2hpcXVpdHRvCgoyMDEwLTAzLTExIDA4OjI2ICBidmFzc2NoZQoKICAgKiAgcGVybC9BU04vQVNOLnhzLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9PSUQvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvT0lEL09JRC54cywgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzOgoKICAgTWFkZSBjb21waWxhdGlvbiBvZiB0aGUgUGVybCBtb2R1bGUgTmV0U05NUC5wbSBvbiBXaW5kb3dzIG1vcmUKICAgc2lsZW50OiBhZGRlZCBjb21waWxlciBmbGFncyAtRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTCiAgIC1EX0NSVF9OT05TVERDX05PX1dBUk5JTkdTIGFuZCBtYWRlIHN1cmUgdGhhdCAjaW5jbHVkZQogICA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IG9jY3VycyBiZWZvcmUgYW55IG90aGVyIGluY2x1ZGUgZmlsZQogICB0aGF0IGRlZmluZXMgX1dJTjMyX1dJTk5ULgoKMjAxMC0wMy0xMCAyMzozMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2VydF91dGlsLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvY2VydF91dGlsLmM6CgogICBORVdTOiBzbm1wbGliOiBjcmVhdGUgaW5kZXhlcyBmb3IgY2VydGlmaWNhdGVzIGluIGNvbmZpZyBwYXRoCgoyMDEwLTAzLTEwIDE4OjQ4ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBTb2NrZXRCYXNlRG9tYWluLmM6CgogICBBZGRlZCAiI2luY2x1ZGUgPHVuaXN0ZC5oPiIgc3VjaCB0aGF0IG9uIFVuaXggc3lzdGVtcyB0aGUKICAgY29tcGlsZXIgZG9lcyBub3QgcHJpbnQgYSB3YXJuaW5nIGFib3V0IGEgbWlzc2luZyBkZWNsYXJhdGlvbiBmb3IKICAgdGhlIGZ1bmN0aW9uIGNsb3NlKCkuCgoyMDEwLTAzLTEwIDE4OjMwICByc3RvcnkKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBwZXJsL0FTTi9BU04ucG0sICAgCiAgICAgIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0sIHBlcmwvT0lEL09JRC5wbSwgcGVybC9TTk1QL1NOTVAucG0sIAogICAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sICAgIHBlcmwvYWdlbnQvYWdlbnQucG0sCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHVwZGF0ZSB2ZXJzaW9uIHRvIDUuNi5kZXYKCjIwMTAtMDMtMTAgMTg6MjkgIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHVwZGF0ZSBWZXJzaW9uLU11bmdlIGZvciByZW5hbWVkIGNvbmZpZ3VyZS5hYwoKMjAxMC0wMy0xMCAxODoyOSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBzYXZlIGNvbmZpZ3VyZSBjYWNoZSBldmVyeSBvbmNlIGluIHdoaWxlCgoyMDEwLTAzLTEwIDE2OjEyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluOgoKICAgUmVvcmRlcmVkIHNvbWUgb2YgdGhlIE1ha2VmaWxlIHJ1bGVzIGluIG9yZGVyIHRvIG1pbmltaXplIHRoZQogICBkaWZmcyB3aXRoIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLgoKMjAxMC0wMy0xMCAxNjoxMCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW46CgogICBXaW4zMiwgYmF0Y2ggYnVpbGRpbmc6IERMTCBidWlsZHMgYWdhaW4uCgoyMDEwLTAzLTEwIDE2OjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEZpeGVkIGEgcmVjZW50bHkgaW50cm9kdWNlZCBjb21waWxlciB3YXJuaW5nIGJ5IGFkZGluZyBhIGZvcndhcmQKICAgZGVjbGFyYXRpb24gZm9yIHRoZSBmdW5jdGlvbiBfY2FjaGVfZnJlZSgpLgoKMjAxMC0wMy0xMCAxNjowNiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBXaW4zMi4KCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBhZGQgbWlzc2luZyBjb250cmlidXRvcnMKCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBmaXggcG90ZW50aWFsIGRvdWJsZSBmcmVlIGluIENPTlRBSU5FUl9GUkVFCiAgIC0gYWxzbyBhZGRlZCBzZXZlcmFsIGNvbXBhcmUgcm91dGluZXMKCjIwMTAtMDMtMTAgMDQ6MTcgIHJzdG9yeQoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogd2hlbiBmcmVlaW5nIGEgY2FjaGUsIHN0b3AgdGltZXIgYW5kIGNhbGwgY2FjaGUKICAgZnJlZSBmdW5jCiAgIC0gYWxzbyBhZGQgbmV0c25tcF9jYWNoZV9yZW1vdmUKCjIwMTAtMDMtMTAgMDM6NTIgIHJzdG9yeQoKICAgKiAgUkVBRE1FLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdW5kbyBjb21taXQgMTgyMzQKCjIwMTAtMDMtMTAgMDM6NDEgIHJzdG9yeQoKICAgKiAgUkVBRE1FLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jZXJ0X3V0aWwuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL2NlcnRfdXRpbC5jLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgTWVyZ2UgYnJhbmNoICdwdWxsbWUnIG9mIC4uL3RydW5rLXN0YWdpbmcKCjIwMTAtMDMtMDkgMTc6NDggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGV4cG9ydGVkIG5ldHNubXBfcmVhZF9tb2R1bGUoKSBmcm9tIG5ldHNubXAuZGxsCiAgIHN1Y2ggdGhhdCBOZXRTTk1QLnBtIGJ1aWxkcyBhZ2Fpbi4KCjIwMTAtMDMtMDkgMTc6NDcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYmFnZW50L01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbjoKCiAgIFNpbXBsaWZpZWQgdHdvIG1ha2VmaWxlcyB1c2VkIGJ5IGJ1aWxkLmJhdCAoV2luMzIpLgoKMjAxMC0wMy0wOSAxNzoyNCAgYnZhc3NjaGUKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGJ1aWxkaW5nIE5ldFNOTVAucG0gZG9lcyBubyBsb25nZXIKICAgdHJpZ2dlciBjb21waWxlciB3YXJuaW5ncyBhYm91dCByZWRlZmluaW5nIF9XSU4zMl9XSU5OVCBub3IKICAgTlRERElfVkVSU0lPTi4KCjIwMTAtMDMtMDkgMTc6MjIgIGJ2YXNzY2hlCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbWFkZSBidWlsZGluZyBOZXRTTk1QLnBtIG1vcmUgc2lsZW50IGJ5CiAgIGFkZGluZyB0aGUgTVNWQyBjb21waWxlciBmbGFncyAtRF9DUlRfU0VDVVJFX05PX1dBUk5JTkdTCiAgIC1EX0NSVF9OT05TVERDX05PX1dBUk5JTkdTLgoKMjAxMC0wMy0wOSAxNzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHJlbW92ZSBkZWJ1ZyBtc2cgdXNlZCBkdXJpbmcgZGVidWdnaW5nCgoyMDEwLTAzLTA5IDE3OjAyICBtYXJ6CgogICAqIGxvY2FsL25ldC1zbm1wLWNlcnQ6CgogICBpbml0aWFsIGNlcnQgd3JhcHBlciAtIHRlc3RpbmcgcmVwbyB3cml0ZSBwcml2cwoKMjAxMC0wMy0wOSAxMDoyMCAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW46CgogICBSZW1vdmVkIGR1cGxpY2F0ZSBidWlsZCBydWxlcy4gVGhlc2UgZHVwbGljYXRlIHJ1bGVzIHdlcmUKICAgaGFybWxlc3MgYnV0IHRyaWdnZXJlZCBhIHdhcm5pbmcuCgoyMDEwLTAzLTA5IDAyOjM4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2Rpcl91dGlscy5oLCBzbm1wbGliL2Rpcl91dGlscy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZGlyZWN0b3J5IGNvbnRhaW5lciBlbmhhbmNlbWVudHMKICAgLSBmaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrCiAgIC0gYWRkIGZpbHRlciBjYWxsYmFjayB0byBmaWx0ZXIgZmlsZXMgcmV0dXJuZWQKICAgLSBhZGQgb3B0aW9uIHRvIHJldHVybiByZWxhdGl2ZSBhbmQgbm90IGZ1bGwgcGF0aHMKICAgLSBhZGQgb3B0aW9uIHRvIHNvcnQgcmV0dXJuZWQgbGlzdAogICAtIGFkZCBvcHRpb24gdG8gcmV0dXJuIGVtcHR5IGNvbnRhaW5lciBpbnN0ZWFkIG9mIE5VTEwgaWYgbm8KICAgZmlsZXMgZm91bmQKICAgLSBjaGFuZ2UgZGVmYXVsdCBjb250YWluZXIgbmFtZSB0byBkaXJlY3RvcnkgdGhhdCB3YXMgc2Nhbm5lZAogICAtIHR3ZWFrIGRlYnVnL2xvZyBtZXNzYWdlcwoKMjAxMC0wMy0wOCAyMzowNyAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvZ2V0X3BpZF9mcm9tX2lub2RlLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBkZWZpbmUgYW5kIHVzZSBuZXcgTkVUU05NUF9MT0dPTkNFIG1hY3JvCgoyMDEwLTAzLTA4IDIyOjQ0ICByc3RvcnkKCiAgICogbWFuL3NubXBfY29uZmlnLjUuZGVmLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBORVdTOiBzbm1wbGliOiBjb25mIGZpbGVzIGNhbiBub3cgaW5jbHVkZSBvdGhlciBjb25mIGZpbGVzCiAgIC0gYWxzbyB0d2Vha2VkIGRlYnVnIHRva2VucyBoZXJlIGFuZCB0aGVyZQoKMjAxMC0wMy0wOCAyMjo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGZpeCB0eXBvIChjYXVzZWQgZXh0ZXJuYWwgcmVmZXJlbmNlIHdoZW4gRFRMU1VEUCBjb25maWd1cmVkCiAgIHdpdGhvdXQgZHRsc3RjcCkKCjIwMTAtMDMtMDYgMDI6MjcgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBORVdTOiBzbm1wbGliOiBuZXRzbm1wX2NvbnRhaW5lciBlbmhhbmNlbWVudHM6CiAgIC0gYWRkIGZyZWVfaXRlbSBmdW5jdGlvbjsgZGVmYXVsdHMgdG8KICAgbmV0c25tcF9jb250YWluZXJfc2ltcGxlX2ZyZWUKICAgLSBhZGQgQ09OVEFJTkVSX0ZSRUVfQUxMIG1hY3JvL2Z1bmN0aW9uIChsaWtlIENPTlRBSU5FUl9DTEVBUiBidXQKICAgY2FsbHMgY29udGFpbmVyIGZyZWVfaXRlbSBmb3IgZWFjaCBpdGVtIGluIHByaW1hcnkgY29udGFpbmVyKQogICAtIGFkZCBhYmlsaXR5IHRvIHNldCBvcHRpb25zIG9uIGJpbmFyeV9hcnJheSBjb250YWluZXJzCgoyMDEwLTAzLTAyIDE3OjU1ICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluOgoKICAgTWFkZSBzdXJlIHRoYXQgd2luMzIvYnVpbGQuYmF0IHdvcmtzIGFnYWluIGJ5IGFkZGluZyBtaXNzaW5nCiAgIHNvdXJjZSBmaWxlIG5hbWVzLiBTb3J0ZWQgc291cmNlIGZpbGUgbmFtZXMgYWxwaGFiZXRpY2FsbHkgdG9vLgoKMjAxMC0wMy0wMiAxNjo1NCAgYnZhc3NjaGUKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgxNjcgKG1lcmdlIG9mIHNubXBkIGFuZCBzbm1wZHNkayBhbmQgYWxzbyBvZgogICBuZXRzbm1wbWlicyBhbmQgbmV0c25tcG1pYnNzZGspOiB0aGUgYmF0Y2ggZmlsZSB3aW4zMi9idWlsZC5iYXQKICAgd29ya3MgYWdhaW4gd2l0aCB0aGUgUGxhdGZvcm0gU0RLIGVuYWJsZWQuCgoyMDEwLTAzLTAyIDE2OjUyICBidmFzc2NoZQoKICAgKiB3aW4zMi9NYWtlZmlsZS1hcHBzLmluOgoKICAgRm9sbG93LXVwIGZvciByMTgyMTUgKHJlcGxhY2VkIHRoZSBvYnNvbGV0ZSBjbC5leGUgb3B0aW9uIC9HWCBieQogICB0aGUgZXF1aXZhbGVudCAvRUhzYzsgYWRkZWQgL0QgIl9DUlRfU0VDVVJFX05PX1dBUk5JTkdTIiwgYWRkZWQKICAgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgYW5kIHJlbW92ZWQgL0ZwLi4uIGFuZCAvWVgpLgoKMjAxMC0wMi0yOCAxNTo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBXaW4zMjogZml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IHJlZGVmaW5pdGlvbiBvZgogICBfV0lOMzJfV0lOTlQgYnkgbWFraW5nIHN1cmUgdGhhdCA8bmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg+IGlzCiAgIGluY2x1ZGVkIGJlZm9yZSA8d2luZG93cy5oPi4KCjIwMTAtMDItMjggMTU6MjQgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJhZ2VudC9NYWtlZmlsZS5pbiwgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZXBsYWNlZCB0aGUgb2Jzb2xldGUgL0dYIGJ5IHRoZQogICBlcXVpdmFsZW50IC9FSHNjLgogICBDSEFOR0VTOiBXaW4zMjogYmF0Y2ggYnVpbGQ6IGFkZGVkIC9EICJfQ1JUX1NFQ1VSRV9OT19XQVJOSU5HUyIKICAgL0QgIl9DUlRfTk9OU1REQ19OT19XQVJOSU5HUyIgdG8gbWFrZSBidWlsZGluZyB3aXRoIE1TVkMgMjAwOAogICBtb3JlIHNpbGVudC4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZW1vdmVkIC9GcC4uLiBhbmQgL1lYLiBUaGVzZQogICBvcHRpb25zIGluZmx1ZW5jZSBob3cgcHJlY29tcGlsZWQgaGVhZGVyIGZpbGVzIGFyZSBnZW5lcmF0ZWQsCiAgIHdoaWNoIGFyZSBub3QgdXNlZCBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QuIC9ZWCBpcyBub3QKICAgc3VwcG9ydGVkIGJ5IE1TVkMgMjAwOC4KICAgQ0hBTkdFUzogV2luMzI6IGJhdGNoIGJ1aWxkOiByZW1vdmVkIGEgZHVwbGljYXRlIG9jY3VycmVuY2Ugb2YKICAgc3RydG91bGwub2JqLgoKMjAxMC0wMi0yOCAxNDoxMSAgYnZhc3NjaGUKCiAgICogd2luMzIvQ29uZmlndXJlLCB3aW4zMi9NYWtlZmlsZS5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTY3IChtZXJnZSBvZiBzbm1wZCBhbmQgc25tcGRzZGsgYW5kIGFsc28gb2YKICAgbmV0c25tcG1pYnMgYW5kIG5ldHNubXBtaWJzc2RrKTogYXBwbGllZCB0aGUgbmVjZXNzYXJ5IGNoYW5nZXMgdG8KICAgdGhlIHdpbjMyL0NvbmZpZ3VyZSBzY3JpcHQgYW5kIHdpbjMyL01ha2VmaWxlLmluLgoKMjAxMC0wMi0yNyAxMzoxMSAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbnVsbC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9mZF9ldmVudF9tYW5hZ2VyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hbGFybS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS91Y2RfY29tcGF0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5waXBlLmgsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oLCAgIAogICAgICBzbm1wbGliL2dldG9wdC5jLCBzbm1wbGliL2dldHRpbWVvZmRheS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHYzLmMsICAgCiAgICAgIHNubXBsaWIvc3RybGNweS5jLCBzbm1wbGliL3N0cnRva19yLmMsIHNubXBsaWIvc3RydG91bGwuYywgICAKICAgICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3VjZF9jb21wYXQuYywgc25tcGxpYi93aW5waXBlLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBkZWNsYXJlZCBhbGwgZnVuY3Rpb25zIHRoYXQgYXJlIGV4cG9ydGVkIGZyb20gdGhlCiAgIE5ldC1TTk1QIERMTCBhcyBORVRTTk1QX0lNUE9SVC4gVGhlIHJlc3VsdCBpcyBhIG1pbm9yCiAgIG9wdGltaXphdGlvbjogY29kZSB0aGF0IHVzZXMgdGhlIE5ldC1TTk1QIERMTCB3aWxsIG5vdyBjYWxsIHRoZQogICBETEwtZXhwb3J0ZWQgZnVuY3Rpb25zIGRpcmVjdGx5IGluc3RlYWQgb2YgaW5kaXJlY3RseSB2aWEgdGhlCiAgIHN0dWIgaW4gdGhlIGltcG9ydCBsaWJyYXJ5LgoKMjAxMC0wMi0yNyAxMTo1MCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgUmVtb3ZlZCBhIHJlZHVuZGFudCBzdHJuY2FzZWNtcCgpIGRlY2xhcmF0aW9uLgoKMjAxMC0wMi0yNyAwOTo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zdHJ0b2tfci5jOgoKICAgRml4ZWQgYSB0eXBvIGluIGEgc291cmNlIGNvZGUgY29tbWVudC4KCjIwMTAtMDItMjcgMDk6NTYgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MTg5IChyc3RvcnkpOiBidWlsZHMgYWdhaW4gb24gV2luZG93cy4KCjIwMTAtMDItMjUgMTc6NTMgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LnZjcHJvaiwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLnZjcHJvaiwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnZjcHJvaiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay52Y3Byb2osIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS52Y3Byb2osIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGYvc25tcGRmLnZjcHJvaiwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldC9zbm1wZ2V0LnZjcHJvaiwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgCiAgICAgICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCAgCiAgICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS52Y3Byb2osICAKICAgICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCAgCiAgICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLnZjcHJvaiwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay52Y3Byb2osICAgCiAgICAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIuc2xuLCB3aW4zMi93aW4zMmRsbC5kc3csICAgCiAgICAgIHdpbjMyL3dpbjMyZGxsLnNsbjoKCiAgIFJldmVydGVkIHIxODIwNyAoZHNwL2RzdyB0byB2Y3Byb2ovc2xuIGNvbnZlcnNpb24pIGV4Y2VwdCB0aGUKICAgc3VwcHJlc3Npb24KICAgbGlzdCBjaGFuZ2VzLiBUaGUgZ29hbCBvZiB0aGlzIGNvbnZlcnNpb24gd2FzIHR3b2ZvbGQ6IG5vdCBvbmx5CiAgIHRvIGJlIGFibGUKICAgdG8gbG9hZCB0aGUgcHJvamVjdCBmaWxlcyBpbiBNU1ZDIDIwMDIgLSAyMDA4IGJ1dCBhbHNvIHRvIGJlIGFibGUKICAgdG8gY29tbWl0CiAgIGNoYW5nZXMgbWFkZSBmcm9tIGluc2lkZSB0aGUgTVNWQyAyMDA4IElERS4gVW5mb3J0dW5hdGVseQogICBjb252ZXJ0aW5nIGRzcC9kc3cKICAgZmlsZXMgdG8gdmNwcm9qL3NsbiBmaWxlcyB3aXRoIE1TVkMgMjAwOCBtYWtlcyBpdCBpbXBvc3NpYmxlIHRvCiAgIGxvYWQgdGhlCiAgIHZjcHJvai9zbG4gZmlsZXMgd2l0aCBlYXJsaWVyIE1TVkMgdmVyc2lvbnMuIFdoeSBvbiBlYXJ0aCBkaWQKICAgTWljcm9zb2Z0CiAgIGRlY2lkZSB0byBwdXQgYSB2ZXJzaW9uIG51bWJlciBpbiBYTUwgZmlsZXMgPwoKMjAxMC0wMi0yNCAxOTo0MSAgYnZhc3NjaGUKCiAgICogIHdpbjMyLCB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UudmNwcm9qLCB3aW4zMi9saWJhZ2VudCwgICAKICAgICAgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC52Y3Byb2osICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMsIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy52Y3Byb2osIHdpbjMyL2xpYm5ldHNubXB0cmFwZCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQudmNwcm9qLCB3aW4zMi9saWJzbm1wLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wL2xpYnNubXAudmNwcm9qLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC52Y3Byb2osIHdpbjMyL25ldHNubXBtaWJzLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLnZjcHJvaiwgd2luMzIvc25tcGJ1bGtnZXQsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQudmNwcm9qLCB3aW4zMi9zbm1wYnVsa3dhbGssICAgCiAgICAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnZjcHJvaiwgd2luMzIvc25tcGQsICAgCiAgICAgIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgd2luMzIvc25tcGQvc25tcGQudmNwcm9qLCB3aW4zMi9zbm1wZGVsdGEsIAogICAgICAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnZjcHJvaiwKICAgICAgICAgd2luMzIvc25tcGRmLCB3aW4zMi9zbm1wZGYvc25tcGRmLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRmL3NubXBkZi52Y3Byb2osIHdpbjMyL3NubXBnZXQsICAgCiAgICAgIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0LCB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnZjcHJvaiwgd2luMzIvc25tcG5ldHN0YXQsICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQudmNwcm9qLCB3aW4zMi9zbm1wc2V0LCAgIAogICAgICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQudmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMudmNwcm9qLCB3aW4zMi9zbm1wdGFibGUsICAgCiAgICAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLnZjcHJvaiwgIAogICAgICAgd2luMzIvc25tcHRlc3QsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwgICAKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QudmNwcm9qLCB3aW4zMi9zbm1wdHJhbnNsYXRlLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUudmNwcm9qLCB3aW4zMi9zbm1wdHJhcCwgICAKICAgICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC52Y3Byb2osICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQudmNwcm9qLCB3aW4zMi9zbm1wdXNtLCAgIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20udmNwcm9qLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbSwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS52Y3Byb2osIHdpbjMyL3NubXB3YWxrLCAgIAogICAgICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLnZjcHJvaiwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMi5zbG4sIHdpbjMyL3dpbjMyZGxsLmRzdywgICAKICAgICAgd2luMzIvd2luMzJkbGwuc2xuOgoKICAgKHJldmVydGVkKSBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IGNvbnZlcnRlZCAuZHNwLy5kc3cgZmlsZXMgdG8KICAgLnZjcHJvai8uc2xuIGZpbGVzLiBUaGlzIGltcGxpZXMgdGhhdCBzdXBwb3J0IGZvciBNU1ZDIDYuMCBoYXMKICAgYmVlbiBkcm9wcGVkIGFuZCB0aGUgbWluaW11bSBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyB2ZXJzaW9uCiAgIHJlcXVpcmVkIHRvIGJ1aWxkIHRoZSBOZXQtU05NUCBzb3VyY2UgY29kZSBpcyBNaWNyb3NvZnQgVmlzdWFsCiAgIFN0dWRpbyAuTkVUICgyMDAyKS4KCjIwMTAtMDItMjMgMTk6MDMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IHdoZW4gZ2VuZXJhdGluZyBhIGRlZmF1bHQgdmFsdWUgZm9yIHRoZSBzeXN0ZW0KICAgbG9jYXRpb24gYW5kIG5vIGRvbWFpbiBuYW1lIGlzIGZvdW5kIGluIC9ldGMvcmVzb2x2LmNvbmYsIHVzZQogICAiQG5vLndoZXJlIiBpbnN0ZWFkIG9mICIiLgoKMjAxMC0wMi0yMyAxODo1MCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBtNC9hY19wcm9tcHRfdXNlci5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBtYWRlIHN1cmUgdGhhdCB0aGUgY29uZmlndXJlIHNjcmlwdCBkb2VzIG5vCiAgIGxvbmdlciBpbnZva2UgInRhaWwgLTEiLCB3aGljaCBpcyBub3QgUE9TSVgtY29tcGxpYW50LgoKMjAxMC0wMi0yMyAxODo0NSAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDMwMHVkcCwgdGVzdGluZy90ZXN0cy9UMzEwdGNwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMjB1ZHB2NiwgdGVzdGluZy90ZXN0cy9UMzMwdGNwdjYsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXgsIHRlc3RpbmcvdGVzdHMvVDM2MGR0bHN1ZHAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDM5OWFsaWFzOgoKICAgUmVtb3ZlZCBhbGwgdHJhbnNwb3J0IHRlc3RzIHNpbmNlIGl0J3MgaW1wb3NzaWJsZSB0byBkZXRlcm1pbmUKICAgd2hlcmUgdGhleSBjYW4gc2FmZWx5IG9wZXJhdGUgKHdhcyBzdG9wcGluZyB0YW5kZXJzJyBuaWdodGx5CiAgIHRlc3RzIGZyb20gc3VjY2VlZGluZykKCjIwMTAtMDItMjMgMTg6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBlcnJvciBhbmQgZGVidWdnaW5nIG91dHB1dAoKMjAxMC0wMi0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgZml4IHRoZSBzZXJ2ZXIgY29udGV4dCBnZW5lcmF0b3IgdG8gYWN0dWFsbHksIHVtLCByZXR1cm4gdGhlCiAgIGNvbnRleHQuCgoyMDEwLTAyLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBpbml0aWFsaXplIHRoZSAncmVzJyB2YXJpYWJsZSBzaW5jZSBpdCdzIGNoZWNrZWQKCjIwMTAtMDItMjMgMTg6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgbW9yZSBwcm9ncmVzcyB0b3dhcmQgYSByZWFsIGltcGxlbWVudGF0aW9uCgoyMDEwLTAyLTIzIDE4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICB0bHN0Y3AgY3RvciBpbnZvY2F0aW9uCgoyMDEwLTAyLTIzIDE4OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU1RDUERvbWFpbi5oOgoKICAgcmVxdWlyZSBUTFNCYXNlCgoyMDEwLTAyLTIzIDE4OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaDoKCiAgIGFkZGVkIGhvc3QgaWRlbnRpZmllciBhcyBvdXRwdXQKCjIwMTAtMDItMjMgMTg6MzUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVExTVENQRG9tYWluLmM6CgogICBzaWduaWZpY2FudCBtb3JlIHdvcmsgb24gdGhlIFRMUyBUQ1AgZG9tYWluCgoyMDEwLTAyLTIzIDE3OjQzICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODE5MyAoanNhZnJhbmVrKTogcmVyYW4gYXV0b3JlY29uZiBmb3IgdGhlIHRydW5rCiAgIGFuZCB0aGUgNS41IGJyYW5jaC4KCjIwMTAtMDItMjMgMTQ6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgTkVUU05NUF9QUkl6IGluc3RlYWQgb2YgJXoKCjIwMTAtMDItMjMgMTI6MjcgIGpzYWZyYW5lawoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBGaXhlZCBjb21waWxhdGlvbiB3aXRoIHJwbS00LjYuCiAgIFR1cm4gb24gdGhlIGxlZ2FjeSBBUEkgd2hlbiBycG0tNC42IGlzIGRldGVjdGVkLgoKMjAxMC0wMi0yMyAwNzozOCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmVydGVkIHIxODAwMCAoZGlzYWJsaW5nIFNJR0FMUk0gc3VwcG9ydCkgYmVjYXVzZSB0aGlzIGludm9sdmVzCiAgIGEgYmFja3dhcmRzLWluY29tcGF0aWJsZSBjaGFuZ2UuCgoyMDEwLTAyLTIzIDAwOjM2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBmaXggdHlwbyBpbiBjb21tZW50CgoyMDEwLTAyLTIzIDAwOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVidWcgbXNnIHR3ZWFrczsgdXNlIG5ldyB0cmFucG9ydCBmdW5jdGlvbnMKICAgLSBhZGQgZGVidWcgaGVhZGVyIGZvciBzbm1wIHZlcnNpb24KICAgLSBhZGQgbGVuZ3RoIHRvIGRlYnVnIHNlbmQvcmVjZWl2ZSBtZXNzYWdlcwogICAtIHVzZSBuZXcgdHJhbnBvcnQgZnVuY3Rpb25zIGZvciBzZW5kL3JlY3YvZmluZGluZyBwZWVyIGFkZHJlc3MKCjIwMTAtMDItMjMgMDA6MjUgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGFkZCBuZXRzbm1wX3RyYW5zcG9ydF9wZWVyX3N0cmluZywgbmV0c25tcF90cmFuc3BvcnRfc2VuZCAmCiAgIG5ldHNubXBfdHJhbnNwb3J0X3JlY3YKICAgLSBtb3ZlcyB0cmFuc3BvcnQgbWFuaXB1bGF0aW9uIGludG8gdHJhbnNwb3J0IGNvZGUKICAgLSBjZW50cmFsIHBsYWNlIGZvciBsb2dnaW5nL2RlYnVnZ2luZyBzZW50L3JlY2VpdmVkIGRhdGEKCjIwMTAtMDItMjIgMTk6MzMgIGJ2YXNzY2hlCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWw6CgogICBDSEFOR0VTOiBidWlsZGluZzogbWFkZSBzdXJlIHRoYXQgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lcyBubwogICBsb25nZXIgaW52b2tlICJ0YWlsIC0xIiwgd2hpY2ggaXMgbm90IFBPU0lYLWNvbXBsaWFudC4KCjIwMTAtMDItMjIgMTk6MjEgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBGb2xsb3ctdXAgZm9yIHIxODE4Ni4gUmVncmVzc2lvbiB0ZXN0IDM0ICh3aGV0aGVyIGF1dGhlbnRpY2F0aW9uCiAgIGZhaWx1cmUgdHJhcHMgYXJlIHNlbnQgYnkgc25tcGQpIHBhc3NlcyBub3cgYWdhaW4uCgoyMDEwLTAyLTIyIDA5OjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IG1hZGUgc3VyZSB0aGF0IGhhbmRsZXIgcmVnaXN0cmF0aW9uIGZhaWx1cmUgZG9lcwogICBub3QgY3JlYXRlIGRhbmdsaW5nIHBvaW50ZXJzIGluIHRoZSBNSUIgc3VidHJlZSByZWdpc3RyeS4KCjIwMTAtMDItMjIgMDk6MTEgIGJ2YXNzY2hlCgogICAqIGFnZW50LCBhcHBzLCBhcHBzL3NubXBuZXRzdGF0OgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAxMC0wMi0yMiAwODo0MiAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGxpYmVheTMyIChPcGVuU1NMKSBjb25maWd1cmUgdGVzdCBmb3IKICAgTWluR1cuCgoyMDEwLTAyLTIyIDA4OjMxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczoKCiAgIEZvbGxvdy11cCBmb3IgcjE4MDg0OiBmaXhlZCBsaWJlYXkzMiAoT3BlblNTTCkgY29uZmlndXJlIHRlc3QgZm9yCiAgIE1pbkdXLgoKMjAxMC0wMi0yMiAwODoxMyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBCdWlsZHMgYWdhaW4gd2l0aCBNaW5HVyB3aGVuIElQdjYgc3VwcG9ydCBpcyBlbmFibGVkLgoKMjAxMC0wMi0yMSAxODo1OCAgYnZhc3NjaGUKCiAgICogIFJFQURNRS53aW4zMiwgd2luMzIvbGlic2RsbC5kc3csICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgd2luMzIvd2luMzJkbGwuZHN3OgoKICAgQ0hBTkdFUzogV2luMzI6IGJ1aWxkaW5nOiByZW5hbWVkIGxpYnNkbGwuZHN3IGludG8gd2luMzJkbGwuZHN3LgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgbGlua2luZyB0aGUgTmV0LVNOTVAKICAgYXBwbGljYXRpb25zIHdpdGggbmV0c25tcC5kbGwgYnkgYWRkaW5nIGFsbCBhcHBsaWNhdGlvbiBwcm9qZWN0cwogICB0byB0aGUgc2FtZSB3b3Jrc3BhY2UgdGhhdCBpcyB1c2VkIGZvciBidWlsZGluZyB0aGUgRExMLgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IG1hZGUgYnVpbGRpbmcgbmV0c25tcC5kbGwgbGVzcyBlcnJvcgogICBwcm9uZSBieSBsZXR0aW5nIHRoZSBjb21waWxlciBwcmludCBhbiBlcnJvciBtZXNzYWdlIGlmIHRoZQogICBwcmVwcm9jZXNzb3Igc3ltYm9sIE5FVFNOTVBfVVNFX0RMTCBoYXMgbm90IGJlZW4gZGVmaW5lZC4KCjIwMTAtMDItMjEgMTg6NTEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogQWRkZWQgbGlic25tcC5kZWYgdG8gdGhlIGxpc3Qgb2YKICAgbGlic25tcF9kbGwuZHNwIHNvdXJjZSBmaWxlcyBzdWNoIHRoYXQgdGhlIERMTCBpcyByZWJ1aWx0IHdoZW4KICAgdGhlIC5kZWYgZmlsZSBoYXMgYmVlbiBtb2RpZmllZC4KCjIwMTAtMDItMjEgMTg6NDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBleHBvcnRlZCBuZXRzbm1wX3NldF9saW5lX2J1ZmZlcmluZygpIGZyb20KICAgbmV0c25tcC5kbGwuCgoyMDEwLTAyLTIxIDE3OjM5ICBidmFzc2NoZQoKICAgKiAgc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3JlIFdpbjMyIElQdjYgc291cmNlIGNvZGUgY29uc2lzdGVuY3kgaW1wcm92ZW1lbnRzOgogICAtIE1vdmVkICN1bmRlZiBIQVZFX0lGX05BTUVUT0lOREVYIGZyb20gc25tcGxpYi8qLmMgdG8KICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguCiAgIC0gQ2hhbmdlZCB0aGUgZ2xvYmFsIGluNmFkZHJfYW55IHZhcmlhYmxlIGludG8gYSBzdGF0aWMgdmFyaWFibGUKICAgc3VjaCB0aGF0CiAgIG11bHRpcGxlIGRlZmluaXRpb25zIGRvIG5vdCB0cmlnZ2VyIGEgbGlua2VyIGVycm9yLgogICAtIEFkZGVkIHR5cGVkZWZzIGZvciB1aW50OF90LCBpbnQ4X3QsIHVpbnQxNl90IGFuZCBpbnQxNl90LgogICAtIFJlcGxhY2VkICcjaWYgTkVUU05NUF9FTkFCTEVfSVBWNicgYnkgJyNpZmRlZgogICBORVRTTk1QX0VOQUJMRV9JUFY2Jy4KCjIwMTAtMDItMjEgMDg6MzAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmM6CgogICBtYWtlIHN1cmUgdGhhdCBJTkFERFJfTk9ORSBpcyBkZWZpbmVkIChmaXhlcyBidWlsZCBlcnJvciBvbgogICBTb2xhcmlzKQoKMjAxMC0wMi0xOSAxOTozOSAgYnZhc3NjaGUKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBTeW5jaHJvbml6ZWQgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggYW5kCiAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLgoKMjAxMC0wMi0xOSAxNDoxOCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGxpYnNubXAgYnVpbGRzIGFnYWluIGFzIGEgRExMIHdoZW4gSVB2NiBpcwogICBlbmFibGVkLgoKMjAxMC0wMi0xOSAxMzoyMiAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBGb2xsb3cgdXAgZm9yIHIxODE2NDogc3luY2hyb25pemVkIGxpYnNubXAuZGVmLmluIHdpdGgKICAgbGlic25tcC5kZWYKCjIwMTAtMDItMTkgMDk6MDUgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IGFkZGVkICNpbmNsdWRlIDxtYWxsb2MuaD4gaW4KICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggc3VjaCB0aGF0IHRoZSBNU1ZDIGNvbXBpbGVyCiAgIGRvZXNuJ3QgZ2V0IGNvbmZ1c2VkIGJ5IHRoZSBtYWxsb2MgcmVkZWZpbml0aW9uIHdoZW4gYnVpbGRpbmcKICAgbGlic25tcCBhcyBhIERMTC4KCjIwMTAtMDItMTkgMDg6NTkgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9wYXJzZV9hcmdzLmgsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRXhwb3J0ZWQgbmV0c25tcF9wYXJzZV9hcmdzKCkgc3VjaCB0aGF0IHRoZSBOZXQtU05NUCBhcHBsaWNhdGlvbnMKICAgYnVpbGQgYWdhaW4gd2hlbiBsaWJzbm1wIGlzIGJ1aWx0IGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODo1NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9rZXl0b29scy5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIENIQU5HRVM6IFdpbjMyOiBidWlsZGluZzogbW92ZWQgTVNWQyBPcGVuU1NMIGxpbmtlciBzZXR0aW5ncyBmcm9tCiAgIHNubXBsaWIva2V5dG9vbHMuYyB0byB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzdWNoIHRoYXQKICAgdGhlc2Ugc2V0dGluZ3MgYXJlIG5vdCBvbmx5IGVmZmVjdGl2ZSB3aGVuIGJ1aWxkaW5nIHNubXBsaWIgYXMgYQogICBzdGF0aWMgbGlicmFyeSBidXQgYWxzbyB3aGVuIGFueSBOZXQtU05NUCBhcHBsaWNhdGlvbiBpcyBidWlsdAogICB0aGF0IGxpbmtzIHdpdGggc25tcGxpYiBhcyBhIHN0YXRpYyBsaWJyYXJ5IG9yIGFzIGEgRExMLgoKMjAxMC0wMi0xOSAwODozMiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgV2luMzIgY2xlYW51cDogTVNWQyAvIERMTCB0ZXN0cyBub3cgdXNlIHRoZSBvZmZpY2lhbGx5IGVuZG9yc2VkCiAgIG1hY3JvIG5hbWVzLgoKMjAxMC0wMi0xOSAwNzo1MCAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgQnVpbGRzIGFnYWluLgoKMjAxMC0wMi0xOSAwNjo0NyAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLCAgIAogICAgICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDI5NDI5NDA6IGZyb20gIkJpbGwgRmVubmVyIjogQWRkIGEgbmV3CiAgIGZ1bmN0aW9uLCBuZXRzbm1wX3BhcnNlX2FyZ3MsIHRoYXQgaXMgbGlrZSBzbm1wX3BhcnNlX2FyZ3MgYnV0CiAgIHRha2VzIGFuIGFkZGl0aW9uYWwgYml0bWFzaywgZmxhZ3MsIHRvIGFmZmVjdCB0aGUgYmVoYXZpb3VyLiBBbHNvCiAgIHJlbW92ZSB0aGUgbWFnaWMgaGFuZGxpbmcgb2Ygc29tZSBhcHBsaWNhdGlvbiBuYW1lcy4KCjIwMTAtMDItMTggMTQ6MjIgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2JpbjoKCiAgIFVwZGF0ZWQgU3VidmVyc2lvbiBpZ25vcmUgbGlzdC4KCjIwMTAtMDItMTggMTQ6MjAgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCAgIAogICAgICB3aW4zMi9saWJuZXRzbm1wdHJhcGQvbGlibmV0c25tcHRyYXBkLmRzcCwgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgU29ydGVkIG5hbWVzIG9mIHNvdXJjZSBmaWxlcyBhbHBoYWJldGljYWxseS4KCjIwMTAtMDItMTggMTM6MDMgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIHNubXBsaWIvd2luc2VydmljZS5jLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCB3aW4zMi9uZXRzbm1wbWlic3NkaywgICAKICAgICAgd2luMzIvc25tcGRzZGssIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgICAKICAgICAgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3c6CgogICBDSEFOR0VTOiBXaW4zMjogZHJvcHBlZCBzdXBwb3J0IGZvciBidWlsZGluZyBOZXQtU05NUCB3aXRoCiAgIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvIDYuMCB3aXRob3V0IHBsYXRmb3JtIFNESy4gQnVpbGRpbmcKICAgTmV0LVNOTVAgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbyA2LjAgKyBQU0RLIG9yIGFueSBsYXRlcgogICB2ZXJzaW9uIG9mIE1TVkMgaXMgc3RpbGwgcG9zc2libGUgaG93ZXZlci4KICAgCiAgIE5vdGU6IGlmIGluIHRoZSBmdXR1cmUgZm9yIHdoYXRldmVyIHJlYXNvbiBpdCBzaG91bGQgYmVjb21lCiAgIG5lY2Vzc2FyeSBhZ2FpbiB0byBiZSBhYmxlIHRvIGJ1aWxkIE5ldC1TTk1QIHdpdGggTVNWQyB3aXRob3V0CiAgIHJlbHlpbmcgb24gdGhlIHBsYXRmb3JtIFNESyBoZWFkZXJzLCBwbGVhc2UgI2lmZGVmIG91dCB0aGUgTUlCCiAgIGNvZGUgdGhhdCByZWxpZXMgb24gdGhlIFBTREsgaGVhZGVycyBpbnN0ZWFkIG9mIHNwbGl0dGluZyB0aGUKICAgd29ya3NwYWNlIGZpbGVzIGFnYWluLgoKMjAxMC0wMi0xOCAxMjo1NyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wSVB2NkJhc2VEb21haW4uYzoKCiAgIGRvczJ1bml4LgoKMjAxMC0wMi0xOCAwOTo0NSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBTb3VyY2UgY29kZSBjbGVhbnVwOgogICAtIE1vdmVkIGRvY3VtZW50YXRpb24gb2YgbmV0c25tcF9sYXJnZV9mZF9zZXQgbWVtYmVycyB0byB0aGUKICAgY29tbWVudAogICBibG9jayBqdXN0IGFib3ZlIHRoZSBkZWZpbml0aW9uIG9mIHRoaXMgdHlwZS4KICAgLSBSZW1vdmVkIHN1cGVyZmx1b3VzICdleHRlcm4gIkMiJyBzcGVjaWZpZXI6IHRoaXMgbGlua2FnZQogICBzcGVjaWZpZXIKICAgb25seSBoYXMgYW4gZWZmZWN0IG9uIGRlY2xhcmF0aW9ucyBvZiB2YXJpYWJsZXMgb2YgZnVuY3Rpb25zIGFuZAogICBub3QKICAgb24gdHlwZWRlZnMgb3Igc3RydWN0IGRlZmluaXRpb25zLgogICAtIFJhbiB0aGlzIGhlYWRlciBmaWxlIHRocm91Z2ggaW5kZW50LgoKMjAxMC0wMi0xOCAwOToyNiAgYnZhc3NjaGUKCiAgICogIHNubXBsaWIvc25tcElQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBJUFY2QmFzZURvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBDaGFuZ2VzOgogICAtIEJ1aWxkcyBhZ2FpbiB3aXRoIE1TVkMuCiAgIC0gRml4ZWQgYSBmZXcgY29tcGlsZXIgd2FybmluZ3MgcmVwb3J0ZWQgYnkgTVNWQyAocGFzc2luZyBpbnQKICAgaW5zdGVhZCBvZiB1X3Nob3J0IHRvIGh0b25zKCkgLyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMgdGhhdCB3ZXJlCiAgIG1pc3NpbmcgYmVjYXVzZSBvZiBtaXNzaW5nICNpbmNsdWRlIGRpcmVjdGl2ZXMpLgoKMjAxMC0wMi0xNiAxNzoxNiAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogV2luMzI6IFRoZSBoZWFkZXIgZmlsZSA8c3lzL3RpbWViLmg+IGlzIG5vIGxvbmdlcgogICBpbmNsdWRlZCBmcm9tIDxuZXQtc25tcC90eXBlcy5oPi4gT3I6IHRoZSBoZWFkZXIgZmlsZQogICA8c3lzL3RpbWViLmg+IHdpbGwgaGF2ZSB0byBiZSBpbmNsdWRlZCBleHBsaWNpdGx5IGluIHNvdXJjZSBmaWxlcwogICB0aGF0IG5lZWQgdGhlIGRlY2xhcmF0aW9uIG9mIHRoZSBmdW5jdGlvbiBmdGltZSgpLgogICAKICAgTm90ZTogY29tcGFyZWQgdG8gcjE4MDI0IGFuZCBiZWZvcmUsIHRoaXMgY2hhbmdlIGRvZXMgbm90IGFmZmVjdAogICBCU0Qgc3lzdGVtcyAtLSA8c3lzL3RpbWViLmg+IHdhcyBvbmx5IGluY2x1ZGVkIGZyb20KICAgPG5ldC1zbm1wL3R5cGVzLmg+IG9uIEJTRCBzeXN0ZW1zIGluIHJldmlzaW9ucyByMTgwMjUuLnIxODE1Mi4KCjIwMTAtMDItMTQgMTk6MjkgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q4Lmg6CgogICBCdWlsZHMgbm93IG9uIEZyZWVCU0QgdmVyc2lvbiA4LjAuCgoyMDEwLTAyLTEzIDIwOjU5ICBtYWdmcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaDoKCiAgIEFkanVzdCB0aGUgcGxhY2VtZW50IG9mIDsncyBpbiBvcmRlciB0bwogICBhKSBBdm9pZCB3YXJuaW5ncyBhYm91dCBzcHVyaW91cyBzZW1pY29sb25zCiAgIGIpIE5vdCBoYXZlIHVudGVybWluYXRlZCBkZWNsYXJhdGlvbnMgaW4gaGVhZGVycwoKMjAxMC0wMi0xMiAwMjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IHVwZGF0ZSBpbmxpbmUgZG9jdW1lbnRhdGlvbjsgYWRkIHN0b3JhZ2V0eXBlIHRlc3QKICAgZm9yIGNvbHVtbnMKCjIwMTAtMDItMTIgMDE6NTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGZpeCB0eXBvIGluIGRlZmluZQoKMjAxMC0wMi0xMiAwMTowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBmaXggc2VkIHByb2Nlc3Npbmcgb24gd2hpdGUtc3BhY2UgYWRkaW5nIHNvbGFyaXMgbWFjaGluZXMKCjIwMTAtMDItMTAgMjM6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgYWRkIHRvcCBzcmNkaXIgdG8gY3BwIHNlYXJjaCBwYXRoCgoyMDEwLTAyLTEwIDIzOjUyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBmcmVlYnNkIG5lZWRzIHRpbWUuaCBhYm92ZSB0aW1lYi5oCgoyMDEwLTAyLTEwIDIzOjM3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIHVzZSBzZWQgd2l0aCBtdWx0aXJlcGxhY2Ugb24gYSBsaW5lIHRvIGZpeCBwb3NzaWJsZSB3aGl0ZXNwYWNlCiAgIGlzc3VlIG9uIHNvbGFyaXMKCjIwMTAtMDItMTAgMjM6MjIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNUQ1BEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRMU1RDUERvbWFpbi5jOgoKICAgYmVnaW5uaW5nIHdvcmsgZm9yIFRMUyBzZXBhcmF0aW9uIGludG8gc2VwYXJhdGUgZmlsZXMgd2l0aCBhIGJhc2UKICAgZmlsZQoKMjAxMC0wMi0xMCAyMzoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY0QmFzZURvbWFpbi5oOgoKICAgbW92ZSBiYXNlIHRyYW5zcG9ydCBjcmVhdGlvbiBmdW5jdGlvbiBvdXQgb2YgbGludXggaWZkZWZzCgoyMDEwLTAyLTEwIDIzOjIxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUTFNCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVExTQmFzZURvbWFpbi5jOgoKICAgbW92ZWQgYW5vdGhlciBlcnJvciBsb2dnaW5nIGZ1bmN0aW9uCgoyMDEwLTAyLTEwIDIzOjIwICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZGVkIFRMUyBvdmVyIFRDUAoKMjAxMC0wMi0xMCAxNjozOSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZGF0YV9hY2Nlc3MvZG90M3N0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IExpbnV4OiBJbXByb3ZlZCBFdGhlckxpa2UtTUlCIHN1cHBvcnQKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9zZWYgTW9lbGxlcnMKCjIwMTAtMDItMTAgMTA6MDQgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IFN1cHBvcnQgbnVsbC1ieXRlcyBpbiBvY3RldCBzdHJpbmdzCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFRvbW15IEJlYWRsZQoKMjAxMC0wMi0xMCAwMDo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRMU0Jhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBUTFNCYXNlRG9tYWluLmM6CgogICBtb3ZlZCBUTFMgaW5mcmFzdHJ1Y3R1cmUgaW50byBhIGJhc2UgZG9tYWluIGZpbGUKCjIwMTAtMDItMTAgMDA6MDQgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjZCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBtb3ZlZCBzb2NrZXQ2IGZ1bmN0aW9ucyB0byB0aGUgaXB2NiBiYXNlCgoyMDEwLTAyLTEwIDAwOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICB3aGl0ZSBzcGFjZSBmb3JtYXR0aW5nCgoyMDEwLTAyLTEwIDAwOjAzICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCB1ZHBfc2VuZC9yZWN2IHRvIHVkcGJhc2UKCjIwMTAtMDItMTAgMDA6MDIgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wU29ja2V0QmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmUgbmV0c25tcF9zb2NrX2J1ZmZlcl9zZXQgaW50byBzb2NrZXRiYXNlCgoyMDEwLTAyLTEwIDAwOjAyICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY0QmFzZURvbWFpbi5jOgoKICAgbW92ZSBpcHY0IHNwZWNpZmljIFVEUCB0cmFuc3BvcnQgY3JlYXRpb24gdG8gdWRwaXB2NCBiYXNlCgoyMDEwLTAyLTEwIDAwOjAxICBoYXJkYWtlcgoKICAgKiAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIG1hZGUgY29tbW9uIGZ1bmN0aW9ucyBiZSByZWZlcmVuY2VkIGRpcmVjdGx5IGJ5IHRoZSB0cmFuc3BvcnRzCiAgIGFuZCByZW1vdmVkIG9yaWdpbmFsIGZ1bmN0aW9uYWxpdHk7IHRoZXkgd2VyZSBzdGF0aWMgc28gdGhlcmUgaXMKICAgbm8gYmFja3dhcmRzIGNvbXBhdCBpc3N1ZXMKCjIwMTAtMDItMTAgMDA6MDAgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNvY2tldEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFNvY2tldEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBtb3ZlZCBzb2NrZXQgYmFzZWQgY2xvc2UgdG8gYSBzb2NrZXQgYmFzZWQgZG9tYWluIGNvbW1vbiB0byBtYW55CiAgIHRoaW5ncwoKMjAxMC0wMi0wOSAyMzo1OSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVENQQmFzZURvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgbW92ZSBUQ1AgY29tbW9uIGZ1bmN0aW9ucyB0byBhIFRDUEJhc2UgZG9tYWluIGltcGxlbWVudGF0aW9uCgoyMDEwLTAyLTA5IDIzOjU3ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICB3YXJuaW5nIGNsZWFudXAKCjIwMTAtMDItMDkgMjM6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oOgoKICAgdG1TdGF0ZVJlZmVyZW5jZSBzaG91bGQgYmUgdXNpbmcgdGhlIGluZGV4ZWQgYWRkcl9wYWlyCgoyMDEwLTAyLTA5IDIzOjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBtYWtlIG5ldHNubXBfZHRsc3VkcF9jbG9zZSBtYWtlIHVzZSBvZiBuZXRzbm1wX2Jhc2V1ZHBfY2xvc2UKCjIwMTAtMDItMDkgMjM6NTUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUEJhc2VEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgbW92ZWQgYmFzZSBVRFAgc29ja2V0IGNyZWF0aW9uIGludG8gYSBjb21tb24gYmFzZSBmdW5jdGlvbiBhbmQKICAgbWFkZSB1c2Ugb2YgaXQKCjIwMTAtMDItMDkgMjM6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmg6CgogICBwcm9wZXIgX0ggaWZkZWYgY2hlY2tzCgoyMDEwLTAyLTA5IDIzOjU0ICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQQmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUEJhc2VEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmM6CgogICBhZGRlZCBhIHJhdyBVRFAgYmFzZSBkb21haW4KCjIwMTAtMDItMDkgMjM6NTMgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcERUTFNVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUHY2QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQdjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGNyZWF0ZWQgYSBVRFAgSVB2NCBiYXNlOyBtb3ZlZCBhbmQgcmV1c2VkIG1vcmUgaW5mcmFzdHJ1Y3R1cmUKCjIwMTAtMDItMDkgMjM6NTEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vdmVkIGlwdjQgYWRkcmVzcyBmb3JtYXR0aW5nIGludG8gc25tcElQdjRCYXNlRG9tYWluCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUHY2QmFzZURvbWFpbi5jOgoKICAgdjYgZG9tYWluIGluZnJhc3RydWN0dXJlIGZpbGVzCgoyMDEwLTAyLTA5IDIzOjUxICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFY0QmFzZURvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQdjRCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVB2NkJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcElQVjRCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjZCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcElQdjRCYXNlRG9tYWluLmM6CgogICB2NiBkb21haW4gaW5mcmFzdHJ1Y3R1cmUgZmlsZXMKCjIwMTAtMDItMDkgMjM6NTAgIGhhcmRha2VyCgogICAqICBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBCYXNlRG9tYWluLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBWNEJhc2VEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgc25tcGxpYi9zbm1wSVBCYXNlRG9tYWluLmMsIHNubXBsaWIvc25tcElQVjRCYXNlRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgTmV3IElQdjQgYW5kIElQIGJhc2UgdHJhbnNwb3J0IGZpbGVzCgoyMDEwLTAyLTA5IDIzOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBkb24ndCBkb3VibGUgaW5jbHVkZSB0cmFuc3BvcnQgbW9kdWxlcwoKMjAxMC0wMi0wOSAyMzo0OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaDoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIG1vdmVkIGFyY2hpdGVjdHVyZSB0ZXN0cyBpbnRvIHRoZSBoZWFkZXIgZmlsZXMgdXNpbmcgY29uZmlnX2Vycm9yCiAgIGZvciBzaWduYWxpbmcgcHJvYmxlbXMKCjIwMTAtMDItMDkgMjM6NDUgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmg6CgogICBtb3ZlZCBhcmNoaXRlY3R1cmUgdGVzdHMgaW50byB0aGUgaGVhZGVyIGZpbGVzIHVzaW5nIGNvbmZpZ19lcnJvcgogICBmb3Igc2lnbmFsaW5nIHByb2JsZW1zCgoyMDEwLTAyLTA5IDIzOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWI6CgogICBjaGVjayBmb3IgYW5kIHJlcG9ydCBjb25maWdfZXJyb3JzIGluIHRyYW5zcG9ydCBoZWFkZXJzCgoyMDEwLTAyLTA5IDIzOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIGFsbG93IGEgTkVUU05NUF9RVUlDS19DSEVDSyBlbnYgdmFyaWFibGUgdG8gYnlwYXNzIGhlYWRlciBjaGVja3MKCjIwMTAtMDItMDkgMjM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYjoKCiAgIGJldHRlciBjb21tZW50cwoKMjAxMC0wMi0wOSAyMzo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliOgoKICAgY2hlY2sgZm9yIGNvbmZpZ19yZXF1aXJlIG1hY3JvcyBpbiB0cmFuc3BvcnQgaGVhZGVycyBmb3IKICAgZm9yY2UtaW5jbHVkaW5nIG9mIG90aGVyIHRoaW5ncwoKMjAxMC0wMi0wOSAyMzo0MSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBwZXJsL2FnZW50L2FnZW50LnhzLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRlZmluZSBhIHN0YW5kYXJkaXplZCBpbmRleGVkIGFkZHJfcGFpciBpbnN0ZWFkIG9mIHVzaW5nIG9uZQogICBsYWJlbGVkIG9ubHkgZm9yIFVEUCBldmVyeXdoZXJlCgoyMDEwLTAyLTA5IDIzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGZpeCB0cmFuc3BvcnQgcHJlZml4IGxpc3QgZm9yIGluY29taW5nIG1lc3NhZ2VzCgoyMDEwLTAyLTA5IDIzOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHRzbS5oLCBzbm1wbGliL3NubXB0c20uYzoKCiAgIHJlbW92ZSB0aGUgc2VjdXJpdHkgbGV2ZWwgZnJvbSB0aGUgVFNNIGNhY2hlOyBwcmV2aW91cyBleGlzdGVuY2UKICAgZnJvbSBmcm9tIGEgZHJhZnQgY29weSBvZiB0aGUgVFNNIFJGQyBhbmQgaXMgbm93IHN0b3JlZCBlbnRpcmVseQogICBpbiB0aGUgdG0gcmVmZXJlbmNlCgoyMDEwLTAyLTA5IDIzOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGltcGxlbWVudCBpbmNvbWluZyBUU00gcHJvY2VkdXJlcyBhY2NvcmRpbmcgdG8gUkZDIHRleHQKCjIwMTAtMDItMDkgMjM6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgaW1wbGVtZW50IG91dGdvaW5nIFRTTSBwcm9jZWR1cmVzIGFjY29yZGluZyB0byBSRkMgdGV4dAoKMjAxMC0wMi0wOSAyMzozOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBEVExTVURQRG9tYWluLmg6CgogICBjcmVhdGUgZGVmaW5lZCBzaXplZCBhcnJheSBhbmQgbGVuZ3RoIHZhcmlhYmxlCgoyMDEwLTAyLTA1IDA5OjUyICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeGVkIGZpbGVkZXNjcmlwdGlvciBsZWFrIGluIEV0aGVybGlrZS1NSUIgYW5kCiAgIFJNT04tTUlCCgoyMDEwLTAyLTA0IDE1OjU3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IHJlcG9ydCByZWFsIGlmU3BlZWQgb2YgbmV0d29yayBpbnRlcmZhY2UgZXZlbiBpdAogICBpcyBkb3duLgogICBTb21lIGludGVyZmFjZXMgY2FuIHJlcG9ydCB0aGVpciByZWFsIHNwZWVkLCBldmVuIHRoZXkgYXJlIGRvd24uCiAgIEFuZCBpZiB0aGV5IGNhbid0LCB0aGUgZmFsbGJhY2sgdG8gMTBNYnBzIGlzIHN0aWxsIHRoZXJlLgoKMjAxMC0wMi0wMSAxNDo0NyAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgRml4ZWQgdGhlIGNvbXBpbGVyIHdhcm5pbmdzIHRyaWdnZXJlZCBieSB0aGUgc291cmNlIGZpbGUKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLgoKMjAxMC0wMi0wMSAxNDo0NSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyLCBzbm1wbGliL2tleXRvb2xzLmM6CgogICBDSEFOR0VTOiBXaW4zMjogYnVpbGRpbmc6IHNpbXBsaWZpZWQgdGhlIHByb2NlZHVyZSBmb3IgYnVpbGRpbmcKICAgd2l0aCBTTk1QdjMgc3VwcG9ydCBlbmFibGVkIChPcGVuU1NMKS4KCjIwMTAtMDItMDEgMTQ6MzQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAgCiAgICAgIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvc25tcEFsaWFzRG9tYWluLmMsIAogICAgICAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBNYWRlIHN1cmUgdGhhdCBhbGwgY2FsbHMgdG8gZnJlZSgpIGFyZSBpbnRlcmNlcHRlZCB3aGVuIGJ1aWxkaW5nCiAgIHdpdGggZG1hbGxvYwogICBzdXBwb3J0IGVuYWJsZWQuIEluY2x1ZGVkIDxkbWFsbG9jLmg+IGluIHRob3NlIHNvdXJjZSBmaWxlcyB3aGVyZQogICBpdCB3YXMgbm90CiAgIHlldCBpbmNsdWRlZCwgYW5kIHByb3ZpZGVkIGEgd3JhcHBlciBmdW5jdGlvbiBmb3IgZnJlZSgpIHdoZXJlCiAgIHRoZSBhZGRyZXNzIG9mCiAgIHRoaXMgZnVuY3Rpb24gd2FzIHRha2VuIChEbWFsbG9jIGNhbiBvbmx5IGludGVyY2VwdCBmcmVlKCkgd2hlbgogICBpdCBpcyBjYWxsZWQKICAgZGlyZWN0bHkgYnV0IG5vdCB3aGVuIGl0IGlzIGNhbGxlZCB0aHJvdWdoIGEgZnVuY3Rpb24gcG9pbnRlcikuCgoyMDEwLTAyLTAxIDEwOjQ5ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBORVdTOiBidWlsZGluZzogQnVpbGRpbmcgTmV0LVNOTVAgd2l0aCBkbWFsbG9jIHN1cHBvcnQgZW5hYmxlZCBpcwogICBhZ2FpbiBwb3NzaWJsZS4KCjIwMTAtMDItMDEgMDE6MDUgIHRhbmRlcnMKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBDSEFOR0VTOiBidWlsZGluZzogJ21ha2UgdGVzdCBURVNUT1BUUz0iLVAgdGNwIicgd29ya3MgZmluZSBub3cKCjIwMTAtMDEtMzEgMDg6MDIgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyOgoKICAgRm9sbG93LXVwIGZvciByMTgwODQ6IGZpeGVkIGFuIHNoIHN5bnRheCBlcnJvciBpbiB0aGUgY29uZmlndXJlCiAgIHNjcmlwdAogICB0aGF0IHdhcyB0cmlnZ2VyZWQgb24gc3lzdGVtcyB3aXRob3V0IGxpYmNyeXB0byBhbmQgd2l0aG91dAogICBsaWJlYXkzMi4KICAgVGhlIGZvbGxvd2luZyBlcnJvciB3YXMgcmVwb3J0ZWQ6CiAgIGNvbmZpZ3VyZVszMzEzNl06IHg6IHVua25vd24gdGVzdCBvcGVyYXRvcgoKMjAxMC0wMS0yOSAyMDowNyAganNhZnJhbmVrCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEVsYWJvcmF0ZSBvbiByZXYuIDE4MDg5IGFuZCBhZGp1c3QgdGhlIHRlbXBvcmFyeSBkaXJlY3RvcnkgdG8gdGhlCiAgICogICAgKnJlYWxseSB3b3JraW5nIG9uZSouICAyMDEwLTAxLTI5IDE5OjExICBqc2FmcmFuZWsKCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIEZpeCB0ZXN0IDM1IHdoZW4gY29uZmlndXJlIG9wdGlvbiAnLS13aXRoLXRlbXAtZmlsZS1wYXR0ZXJuJyB3YXMKICAgdXNlZCBhbmQgdGhlIGRpcmVjdG9yeSBmb3IgdGVtcC4gZmlsZXMgZG9lcyBub3QgZXhpc3QgeWV0LgoKMjAxMC0wMS0yOSAxNTowNyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL2Nsb3NlZGlyLmMsICAgCiAgICAgIHNubXBsaWIvZ2V0dGltZW9mZGF5LmMsIHNubXBsaWIvb3BlbmRpci5jLCBzbm1wbGliL3JlYWRkaXIuYywgICAKICAgICAgc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIE1vdmVkIHRoZSBzb3VyY2UgY29kZSBvZiB0aGUgb3BlbmRpcigpLCByZWFkZGlyKCksIGNsb3NlZGlyKCkgYW5kCiAgIGdldHRpbWVvZmRheSgpIHJlcGxhY2VtZW50cyBmb3IgTVNWQyBmcm9tIHNubXBsaWIvc3lzdGVtLmMgdG8KICAgc2VwYXJhdGUgc291cmNlIGZpbGVzIGluIHNubXBsaWIuCgoyMDEwLTAxLTI5IDA4OjU3ICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ29uZmlndXJlIHNjcmlwdCBjb25zaXN0ZW5jeSBpbXByb3ZlbWVudDogcmVuYW1lZCB0aGUgdmFyaWFibGUKICAgInNhdmVkX0xJQlMiIGludG8gIm5ldHNubXBfc2F2ZV9MSUJTIi4KCjIwMTAtMDEtMjkgMDY6MzkgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19zdHJ1Y3RfbWVtYmVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDcyY29tMnNlY3VuaXg6CgogICBDSEFOR0VTOiB0ZXN0aW5nOiBDaGVjayB0aGUgc2l6ZSBvZiBzdW5fcGF0aCBhbmQgdXNlIHRoYXQgdG8KICAgZ2VuZXJhdGUgdGhlIG1heGltYWwgc2l6ZSBzdHJpbmdzIGZvciBzdHJlc3NpbmcgY29tMnNlY3VuaXguCgoyMDEwLTAxLTI3IDE1OjE2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBORVdTOiBNaW5HVzogcnVubmluZyB0aGUgcmVncmVzc2lvbiB0ZXN0IHN1aXRlIGlzIGFnYWluIHBvc3NpYmxlCiAgICgnbWFrZSB0ZXN0JykuCgoyMDEwLTAxLTI3IDE0OjQzICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogQ3lnd2luOiBidWlsZGluZyB3aXRoIGFub3RoZXIgT3BlblNTTCBwYWNrYWdlIHRoYW4gdGhlCiAgIEN5Z3dpbi1wcm92aWRlZCBwYWNrYWdlcyBvcGVuc3NsIGFuZCBvcGVuc3NsLWRldmVsIGlzIGFnYWluCiAgIHBvc3NpYmxlLgogICBORVdTOiBNaW5HVzogYnVpbGRpbmcgd2l0aCBPcGVuU1NMIHdvcmtzIGFnYWluLgoKMjAxMC0wMS0yNiAyMToyNyAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IE1ha2UgdGhlIGNvbnRleHQgYXJndW1lbnQgb2Ygc2VuZF92M3RyYXAsCiAgIHNlbmRfdHJhcF92YXJzX3dpdGhfY29udGV4dCBhbmQgbmV0c25tcF9zZW5kX3RyYXBzIHJlZmVyIHRvIGEKICAgY29uc3QgY2hhciouCgoyMDEwLTAxLTI2IDIxOjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9wa2dpbmZvLmM6CgogICBDb3JyZWN0IG1pc3NwZWxsaW5nIC0gI2Vsc2lmIHRvICNlbGlmCgoyMDEwLTAxLTI2IDIxOjIxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEFwcGFyZW50bHkgbm90IGFsbCBzeXN0ZW1zIGRlZmluZSBJTkVUX0FERFJTVFJMRU4gc28gYWRkIGl0IGlmIGl0CiAgIGlzIG1pc3NpbmcuCgoyMDEwLTAxLTI2IDE1OjQ2ICBidmFzc2NoZQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgQWRkZWQgbmV0c3RhdCBwYXRoIGZvciBNaW5HVy4KCjIwMTAtMDEtMjYgMTU6MDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZml4IHN0YXQgbmFtZXMKCjIwMTAtMDEtMjYgMTU6MDAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZGVmaW5lIG5ldHNubXBfYXNzZXJ0X29yX21zZ3JldHVybgoKMjAxMC0wMS0yNiAxNDo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdHNtLmM6CgogICB1c2UgbmV0c25tcF9hc3NlcnRfb3JfcmV0dXJuCgoyMDEwLTAxLTI2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGRlZmluZSBuZXRzbm1wX2Fzc2VydF9vcl9yZXR1cm4KCjIwMTAtMDEtMjYgMTQ6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgdXBkYXRlIGNvbW1lbnRzIHRvIHJlZmxlY3QgUkZDNTU5MSBhcyB0aGUgZG9jdW1lbnQgZGVzY3JpYmluZyB0aGUKICAgaW1wbGVtZW50YXRpb24KCjIwMTAtMDEtMjYgMTE6NDMgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oOgoKICAgTkVXUzogQ3lnd2luOiBCVUc6IDI5MzkxNjg6IGJ5dGUgb3JkZXIgb2YgdWRwTG9jYWxQb3J0IGlzIG5vdwogICBjb3JyZWN0LgoKMjAxMC0wMS0yNiAxMDo0NiAgYnZhc3NjaGUKCiAgICogIG5ldC1zbm1wLWNvbmZpZy5pbiwgdGVzdGluZy9URVNUQ09ORi5zaCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgTkVXUzogQ3lnd2luOiBCVUc6IDI5MzkxNjg6IGZpeGVkIHRlc3QgaW5mcmFzdHJ1Y3R1cmUgKCJtYWtlCiAgIHRlc3QiKS4gVGhpcyBoYXMgYmVlbiBmaXhlZCBieSB1c2luZyB0aGUgcHJvcGVyIGVudmlyb25tZW50CiAgIHNlcGFyYXRvciBjaGFyYWN0ZXIgYW5kIGJ5IGFkZGluZyB0aGUgcGF0aCBvZiB0aGUgbmV0c3RhdAogICBleGVjdXRhYmxlIGZvciBDeWd3aW4gaW4gdGVzdGluZy9URVNUQ09ORi5zaC4KCjIwMTAtMDEtMjYgMDk6MjcgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCByYXJlIHJhY2UgY29uZGl0aW9uIHdoZW4gcmVhZGluZyBSUE0KICAgZGF0YWJhc2UuCiAgIE9sZCBycG0gdmVyc2lvbnMgcmV0dXJuIE5VTEwgaW5zdGVhZCBvZiBIZWFkZXIgd2hlbiBhbm90aGVyIFJQTQogICBpbnN0YW5jZSBob2xkcwogICBkYXRhYmFzZSBsb2Nrcy4gSS5lLiBzbm1wZCBzb21ldGltZXMgY3Jhc2hlcyB3aGVuIHJlYWRpbmcKICAgaHJfc3dJbnN0IGFuZCBycG0gaXMKICAgaW5zdGFsbGluZy91cGRhdGluZy9yZW1vdmluZyBhbm90aGVyIHBhY2thZ2UuIEFzIGEgc29sdXRpb24sCiAgIHdob2xlIFJQTSBjYWNoZQogICBpcyB0aHJvd24gYXdheSBhbmQgcmUtcmVhZCB3aGVuIHdlIGdvdCBhbiBlcnJvciBmcm9tIGxpYnJwbS4gVGhlCiAgIHdob2xlIHByb2Nlc3MKICAgaXMgcmVzdGFydGVkIG9ubHkgdGhyZWUgdGltZXMsIHRvIHByZXZlbnQgZW5kbGVzcyBsb29wLgoKMjAxMC0wMS0yNSAyMjoxNiAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIHNubXBsaWIvc2NhcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6IERvIG5vdCBjaGVjayBpZiB2YWx1ZXMgb2YgdHlwZSBzaXplX3QKICAgYXJlIGxlc3MgdGhhbiAwLgoKMjAxMC0wMS0yNSAyMjoxMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQ2hlY2sgdGhlIHJhbmdlIG9mIG9pZCB2YWx1ZXMgdG93YXJkcyB0aGUgbWF4aW11bQogICBvaWQgdmFsdWUsIG5vdFVMT05HX01BWAoKMjAxMC0wMS0yNSAyMDowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBvbmx5IGJhaWwgb24gbWlzc2luZyBsaWJpcGhscGFwaSBmb3IgeHdpbnNvY2syCgoyMDEwLTAxLTI1IDE5OjU3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbmFtZSBNQVhfU1RBVFMgdG8gTkVUU05NUF9TVEFUX01BWF9TVEFUUwoKMjAxMC0wMS0yNSAxOTo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmM6CgogICB1cGRhdGUgZm9yIG5ldyBwYXRoIHRvIHNubXBfZ2V0X3N0YXRpc3RpY3M7IGNoZWNrIGZvciBpbmRleAogICBvdmVyZmxvdwoKMjAxMC0wMS0yNSAxOTo0NCAgcnN0b3J5CgogICAqICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81Lmg6CgogICB1cGRhdGUgZm9yIG5ldyBwYXRoIHRvIHNubXBfZ2V0X3N0YXRpc3RpY3MKCjIwMTAtMDEtMjUgMTY6MDMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgdXNlICpjdXJyZW50KiBjb3B5IG9mIHRoZSBNSUIgd2hlbiBnZW5lcmF0aW5nIHN0YXRzCgoyMDEwLTAxLTI1IDE2OjAxICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvc25tcF9nZXRfc3RhdGlzdGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9nZXRfc3RhdGlzdGljLmg6CgogICBtb3ZlIHNubXBfZ2V0X3N0YXRpc3RpYyBoZWxwZXIgdG8gaGVscGVycyBkaXI7IHVwZGF0ZSBhbGxfaGVscGVycwogICBoZWFkZXIKCjIwMTAtMDEtMjUgMTQ6MzQgIGJ2YXNzY2hlCgogICAqIGFwcHMvYWdlbnR4dHJhcC5jOgoKICAgUmVwbGFjZWQgZXhwbGljaXQgZGVjbGFyYXRpb25zIG9mIG9wdGluZCwgb3B0b3B0IGFuZCBvcHRhcmcgYnkKICAgI2luY2x1ZGUgPHVuaXN0ZC5oPiBiZWNhdXNlIGV4cGxpY2l0bHkgZGVjbGFyaW5nIHRoZXNlIHZhcmlhYmxlcwogICBpcyBub3QgY29tcGF0aWJsZSB3aXRoIEN5Z3dpbi4KCjIwMTAtMDEtMjUgMTQ6MjUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTkVXUzogQ3lnd2luOiBJUHY2IGlzIG9ubHkgc3VwcG9ydGVkIHVuZGVyIEN5Z3dpbiAxLjcgb3IgbGF0ZXIuCiAgIFRoZSBvbGQgaW1wbGVtZW50YXRpb24gb2YgSVB2NiBzdXBwb3J0IGluIE5ldC1TTk1QIHVuZGVyIEN5Z3dpbgogICBpbnZvbHZlZCBhIHN0cmFuZ2UgbWl4dHVyZSBvZiBDeWd3aW4gYW5kIFdpbnNvY2syIHNvY2tldCBjYWxscywKICAgd2hpY2ggd2FzIHRvbyBoYXJkIHRvIG1haW50YWluLgogICBORVdTOiBDeWd3aW46IGJ1aWxkcyBhZ2FpbiB3aXRoIElQdjYgc3VwcG9ydCBlbmFibGVkCiAgICgtLWVuYWJsZS1pcHY2KS4gQXQgbGVhc3QgTmV0LVNOTVAgNS41IGRvZXNuJ3QgYnVpbGQgdW5kZXIgQ3lnd2luCiAgIHdpdGggSVB2NiBzdXBwb3J0IGVuYWJsZWQuIFRoZSBjb25maWd1cmUgc2NyaXB0IHJlcG9ydGVkCiAgICJjaGVja2luZyBpcHY2IHN0YWNrIHR5cGUgLi4uIHJlc3VsdDogInVua25vd24sIG5vIiAuLi4gZXJyb3I6CiAgIElQdjYgdHJhbnNwb3J0cyBub3QgYXZhaWxhYmxlIGlmIElQdjYgc3VwcG9ydCBpcyBub3QgZW5hYmxlZCIuCgoyMDEwLTAxLTI1IDE0OjEzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgQWRkZWQgbWlzc2luZyAjaW5jbHVkZSA8c3RyaW5nLmg+LgoKMjAxMC0wMS0yNSAxNDoxMCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgQWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIHRoZSBJUHY2IHN0YWNrIGluY2x1ZGVkIGluIEN5Z3dpbgogICB2ZXJzaW9uIDEuNy4KICAgSVB2NiBzdXBwb3J0IGlzIG9uZSBvZiB0aGUgbmV3IGZlYXR1cmVzIG9mIEN5Z3dpbiAxLjcuIEZvciBtb3JlCiAgIGluZm9ybWF0aW9uLAogICBzZWUgYWxzbyBodHRwOi8vY3lnd2luLmNvbS9jeWd3aW4tdWctbmV0L292LW5ldzEuNy5odG1sLgoKMjAxMC0wMS0yNSAxMjo0MCAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgQ0hBTkdFUzogQ3lnd2luOiB0aGUgbWVzc2FnZSAiY29uZmlndXJlOiBXQVJOSU5HOiB3aW5zb2NrLmg6CiAgIHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgZG9lcyBubyBsb25nZXIgYXBwZWFyIHdoZW4KICAgcnVubmluZyB0aGUgY29uZmlndXJlIHNjcmlwdC4KICAgRm9sbG93LXVwIGZvciByMTgwNTA6IHJlLWVuYWJsZWQgbGliaXBobHBhcGkgYW5kIGlwaGxwYXBpLmggdGVzdHMKICAgZm9yIG5vbi1NaW5HVyBwbGF0Zm9ybXMgc2luY2UgdGhlIEN5Z3dpbiBidWlsZCBuZWVkcyB0aGVzZS4KCjIwMTAtMDEtMjUgMDc6MjggIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsIHNubXBsaWIvaW5ldF9udG9wLmMsICAKICAgICAgIHNubXBsaWIvaW5ldF9wdG9uLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogVXNlIGF1dG9jb25mIHRvIGRlY2lkZSBpZiBpbmV0X250b3AuYyBhbmQKICAgaW5ldF9wdG9uLmMgYXJlIHRvIGJlIGNvbXBpbGVkLgoKMjAxMC0wMS0yNSAwNzowOSAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnM6CgogICBDSEFOR0VTOiBNaW5HVzogc3RydWN0IHNvY2thZGRyX2luNi5zaW42X3Njb3BlX2lkIGNvbmZpZ3VyZSB0ZXN0CiAgIGRvZXMgbm93IHdvcmsuCgoyMDEwLTAxLTI1IDA1OjE0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIFRMU1RNIGNvdW50ZXIgc3RhdHMKCjIwMTAtMDEtMjUgMDU6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgYWRkIGluIFRTTSBuZWVkZWQgY291bnRlciBkZWZpbml0aW9ucwoKMjAxMC0wMS0yNSAwNToxMiAgaGFyZGFrZXIKCiAgICogbWlicy9TTk1QLVRTTS1NSUIudHh0LCBtaWJzL3JmY2xpc3Q6CgogICBhZGRlZCB0aGUgU05NUC1UU00tTUlCCgoyMDEwLTAxLTI0IDE0OjQzICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICBORVdTOiBzbm1wZDogTWFkZSBzdWJ0cmVlX2NvbnRleHRfY2FjaGU6OmNvbnRleHRfbmFtZSBhIGNvbnN0CiAgIGNoYXIqLgoKMjAxMC0wMS0yNCAxNDoyNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQcmV2ZW50IGdjYyBwZWQtd2FybmluZyBmb3IKICAgTkVUU05NUF9SRU1PVkVfQ09OU1QKCjIwMTAtMDEtMjQgMTM6MjcgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcHVzbTogUHJlZmVyIHRvIHVzZSBhIHZhcmlhYmxlIG9mIHRoZSByaWdodCB0eXBlIG92ZXIKICAgYW4gdWdseSBjYXN0LiBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSB2YXJpYWJsZSBhcyB3ZWxsLgoKMjAxMC0wMS0yNCAxMjo1OSAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3M6CgogICBDSEFOR0VTOiBidWlsZGluZzogSW50cm9kdWNlZCB0aGUgdmFyaWFibGUgJ3dpdGhfc29ja2xpYicgaW4gdGhlCiAgIGNvbmZpZ3VyZSBzY3JpcHQuIFRoaXMgdmFyaWFibGUgaXMgc2V0IHRvICJ3aW5zb2NrMiIgZm9yIE1pbkdXCiAgIGFuZCB0byAiZGVmYXVsdCIgZm9yIGFsbCBvdGhlciBzeXN0ZW1zLiBXaW5zb2NrMiB0ZXN0cyBhcmUgb25seQogICBydW4gaWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgdG8gIndpbnNvY2syIiAoTWluR1cpLgoKMjAxMC0wMS0yNCAxMjo1MyAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUmVtb3ZlIHN1cGVyZmx1b3VzIGRlYnVnIGxvZ3MuCgoyMDEwLTAxLTI0IDEyOjQ1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbmRvd3MsIGNvbXBpbGVyIHdhcm5pbmcgZml4ZXM6IGZpeGVkIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvCiAgIHVuc2lnbmVkIGNoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0yNCAxMjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBXaW5kb3dzLCBjb21waWxlciB3YXJuaW5nIGZpeDogbWFrZSBpbmV0X250b3AoKSBhbmQgaW5ldF9wdG9uKCkKICAgZGVjbGFyYXRpb25zCiAgIGF2YWlsYWJsZSB0byB0aGUgY29tcGlsZXIuCgoyMDEwLTAxLTI0IDEyOjQ0ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgV2luZG93cywgY29tcGlsZXIgd2FybmluZyBmaXg6IG1hZGUgc3VyZSB0aGF0IDx3czJ0Y3BpcC5oPiB3aWxsCiAgIGJlIGluY2x1ZGVkCiAgIGZyb20gPG5ldC1zbm1wL3R5cGVzLmg+IHN1Y2ggdGhhdCB0aGUgY29tcGlsZXIgZG9lc24ndCBjb21wbGFpbgogICBhYm91dCBzdHJ1Y3QKICAgc29ja2FkZHJfaW42IGJlaW5nIHVzZWQgYmVmb3JlIGJlaW5nIGRlZmluZWQuCgoyMDEwLTAxLTI0IDExOjQyICBidmFzc2NoZQoKICAgKiBtYW46CgogICBVcGRhdGVkIFN1YnZlcnNpb24gaWdub3JlIGxpc3QuCgoyMDEwLTAxLTI0IDExOjQxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgICAKICAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcGJ1bGtnZXQuYywgICAKICAgICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywgICAKICAgICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsICAgCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgICAKICAgICAgYXBwcy9zbm1wd2Fsay5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsIHNubXBsaWIvbGNkX3RpbWUuYywgICAKICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgQ2xlYW51cCAoV2luZG93cyk6IHJlbW92ZWQgc3VwZXJmbHVvdXMgI2luY2x1ZGUgPHN5cy90aW1lYi5oPgogICBkaXJlY3RpdmVzLiBUaGlzIGhlYWRlciBmaWxlCiAgIGhhcyBvbmx5IHRvIGJlIGluY2x1ZGVkIGZyb20gc25tcGxpYi9zeXN0ZW0uYyBiZWNhdXNlIG9mIHRoZQogICBfZnRpbWUoKSBjYWxsIGluIHRoYXQgZmlsZS4KCjIwMTAtMDEtMjQgMTA6NDMgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgVGhlIG1hY3JvICdDKCknIG5vdyBjYXN0cyBpdHMgcmVzdWx0IGZyb20gdW5zaWduZWQgbG9uZyB0bwogICB1bnNpZ25lZCBpbnQuCiAgIFRoaXMgY2hhbmdlIGZpeGVzIGEgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZm9ybWF0IHNwZWNpZmljYXRpb24KICAgbWlzbWF0Y2hlcwogICBhbmQgZml4ZXMgYSBidWcgKGluY29ycmVjdCBzbm1wbmV0c3RhdCBvdXRwdXQpIG9uIGJpZyBlbmRpYW4KICAgc3lzdGVtcy4KCjIwMTAtMDEtMjQgMTA6MzMgIGJ2YXNzY2hlCgogICAqIG1hbi9jb25maWdfYXBpLjM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzk0NjogcmVtb3ZlZCBnZW5lcmF0ZWQgbWFuIHBhZ2VzIGZyb20KICAgcmVwb3NpdG9yeS4KCjIwMTAtMDEtMjQgMTA6MzEgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS93aW5zZXJ2aWNlLmgsIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgTW92ZWQgdHdvIGRlY2xhcmF0aW9ucyBvZiBzdGF0aWMgZnVuY3Rpb25zIGZyb20gLmggdG8gLmMuCgoyMDEwLTAxLTI0IDEwOjIxICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMuCgoyMDEwLTAxLTI0IDEwOjE5ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBidWlsZHMgYWdhaW4gd2hlbiBIQVZFX0dFVEFERFJJTkZPIGlzIG5vdAogICBkZWZpbmVkLgoKMjAxMC0wMS0yNCAxMDowMyAgYnZhc3NjaGUKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9pbmV0X250b3AuYywgICAKICAgICAgc25tcGxpYi9pbmV0X250b3AuaCwgc25tcGxpYi9pbmV0X3B0b24uYywgc25tcGxpYi9pbmV0X3B0b24uaCwgICAKICAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBjb25maWd1cmUgdGVzdHMgZm9yIGluZXRfbnRvcCgpIGFuZCBpbmV0X3B0b24oKS4KICAgLSBBZGRlZCBoZWFkZXIgZmlsZXMgc25tcGxpYi9pbmV0X250b3AuaCBhbmQgc25tcGxpYi9pbmV0X3B0b24uaC4KICAgLSBSZXBsYWNlZCAiZXh0ZXJuIGluZXRfbnRvcCguLi4pOyIgYW5kICJleHRlcm4gaW5ldF9wdG9uKC4uLik7IgogICBieSAjaW5jbHVkZSAiaW5ldF9udG9wL3B0b24uaCIuCiAgIC0gQ29udmVydGVkIHNubXBsaWIvaW5ldF9udG9wLmMgYW5kIHNubXBsaWIvaW5ldF9wdG9uLmMgZnJvbSBLJlIKICAgQyB0byBBTlNJIEMuCiAgIC0gUmVwbGFjZWQgdGhlIGluZXRfYXRvbigpIGNhbGxzIHRoYXQgd2VyZSBpbnRyb2R1Y2VkIGluIHIxODAzMwogICBpbiBzbm1wbGliL3NubXBVRFBEb21haW4uYyBieSBpbmV0X3B0b24oKSBjYWxscyBzdWNoIHRoYXQgaXQgaXMKICAgYWdhaW4gcG9zc2libGUgdG8gYnVpbGQgTmV0LVNOTVAgb24gV2luZG93cy4KCjIwMTAtMDEtMjQgMDY6MDggIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIGRlY2xhcmF0aW9ucyBvZiBmdW5jdGlvbnMgdGhhdCBkb24ndAogICBleGlzdCBvciBhcmUgZGVjbGFyZWQgZWxzZXdoZXJlLgoKMjAxMC0wMS0yNCAwNTo0OCAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlZCB0aGUgdW51c2VkIHZhcmlhYmxlcyB3YXJtX3N0YXJ0X29pZCwKICAgbGlua19kb3duX29pZCwgbGlua191cF9vaWQsIGF1dGhfZmFpbF9vaWQgYW5kIGVncF94eHhfb2lkLgoKMjAxMC0wMS0yMyAyMjowNiAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIEJldHRlciBzZXQgb2YgU0tJUElGL1NLSVBJRk5PVFMKCjIwMTAtMDEtMjMgMjA6MzEgIG1hZ2ZyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIEJlIGNvcnJlY3QgaW4gd2hhdCBpdCBpcyB0aGF0IGlzIHRlc3RlZCBpbiB0aGUgaGVhZGVyLgoKMjAxMC0wMS0yMyAyMDoyNyAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZWQgdGhlIGNvbTJzZWMgZGlyZWN0aXZlcyB0byBmYWlsIGlmIHRoZXJlCiAgIGFyZSB0b28gZmV3IGFyZ3VtZW50cy4gQWRkaXRpb25hbGx5IGNoYW5nZWQgdGhlIHN0b3JhZ2Ugc3RydWN0dXJlCiAgIHRvIG5vdCBhbGxvY2F0ZSBtb3JlIHNwYWNlIHRoYW4gbmVjZXNzYXJ5LgoKMjAxMC0wMS0yMyAyMDoyMiAgbWFnZnIKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA3MGNvbTJzZWMsIHRlc3RpbmcvdGVzdHMvVDA3MWNvbTJzZWM2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNzJjb20yc2VjdW5peDoKCiAgIG5ldyB0ZXN0cyBjaGVja2luZyB0aGUgZXJyb3IgaGFuZGxpbmcgb2YgdGhlIGNvbTJzZWMqIGRpcmVjdGl2ZXMKCjIwMTAtMDEtMjMgMTk6MTcgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBGb2xsb3ctdXAgZm9yIHIxODAyNTogYnVpbGRzIGFnYWluIHdpdGggTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8uCgoyMDEwLTAxLTIzIDE3OjUxICBidmFzc2NoZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYzoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBPUyBoZWFkZXIgZGV0ZWN0aW9uIGNoZWNrIGlzIG5vdyBydW4gYmVmb3JlCiAgIElQdjYgc3RhY2sgZGV0ZWN0aW9uLgogICBDSEFOR0VTOiBTb2xhcmlzOiBzb2NrYWRkcl9pbjYuc2luNl9hZGRyIGNvbmZpZ3VyZSB0ZXN0IGRvZXMgbm93CiAgIHdvcmsuCgoyMDEwLTAxLTIzIDE3OjQyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2xhcmdlX2ZkX3NldC5jOgoKICAgRml4ZWQgYSBTb2xhcmlzLXNwZWNpZmljIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDEwLTAxLTIzIDE3OjAwICBidmFzc2NoZQoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBNaW5HVzogYWRkZWQgY29uZmlndXJlIHRlc3QgZm9yIDxzeXMvdGltZWIuaD4gYW5kIGFsc28gZm9yIHN0cnVjdAogICB0aW1lem9uZS4KCjIwMTAtMDEtMjMgMTY6MzIgIGJ2YXNzY2hlCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIE1pbkdXOiBtYWRlIHN1cmUgdGhhdCB0aGUgSVB2Ni1yZWxhdGVkIGRhdGF0eXBlcyBhcmUgYXZhaWxhYmxlCiAgIGJlZm9yZSBiZWluZyB1c2VkLgoKMjAxMC0wMS0yMyAxNjozMCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZGVkICN1bmRlZiBIQVZFX1dJTkRPV1NfSC4KCjIwMTAtMDEtMjMgMTY6MjggIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIE1pbkdXOiBtYWRlIGdldHRpbWVvZmRheSgpIGRlY2xhcmF0aW9uIGF2YWlsYWJsZSBmb3IgdGhlCiAgIGNvbXBpbGVyLgoKMjAxMC0wMS0yMyAxNjoyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWluR1c6IG1hZGUgZ2V0dGltZW9mZGF5KCkgZGVjbGFyYXRpb24gYXZhaWxhYmxlIGZvciB0aGUKICAgY29tcGlsZXIuCgoyMDEwLTAxLTIzIDE2OjI2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL2luZXRfcHRvbi5jOgoKICAgTWFkZSBzdXJlIHRoYXQgdGhlIGNvbXBpbGVyIGRvZXMgbm90IGNvbXBsYWluIGFib3V0IGEgbWlzc2luZwogICBwcm90b3R5cGUgZm9yIGlzZGlnaXQoKS4KCjIwMTAtMDEtMjMgMTY6MjQgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnM6CgogICBNaW5HVzogaXBobHBhcGkuaCBjb25maWd1cmUgdGVzdCBkb2VzIG5vdyB3b3JrLgoKMjAxMC0wMS0yMyAxNToxMCAgYnZhc3NjaGUKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzOgoKICAgUmVuYW1lZCB0aGUgV2luc29jazIgSVB2NiBzdGFjayBmcm9tICdtaW5ndycgaW50byAnd2luc29jazInLgoKMjAxMC0wMS0yMyAxNTowNyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvc25tcGQuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgIAogICAgICAgc25tcGxpYi9pbmV0X250b3AuYywgc25tcGxpYi9pbmV0X3B0b24uYywgICAKICAgICAgc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jLCBzbm1wbGliL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgSW1wcm92ZWQgcG9ydGFiaWxpdHkgYmV0d2VlbiB0aGUgc3VwcG9ydGVkIFdpbjMyIGNvbXBpbGF0aW9uCiAgIGVudmlyb25tZW50cyBhcyBmb2xsb3dzOgogICAtIE1hZGUgc3VyZSB0aGF0IHRoZSA8d2luc29jazIuaD4gYW5kIDx3czJ0Y3BpcC5oPiBoZWFkZXIgZmlsZXMKICAgYXJlIG9ubHkgaW5jbHVkZWQgZnJvbSA8bmV0LXNubXAvdHlwZXMuaD4uCiAgIC0gQWRkZWQgY29uZmlndXJlIGNoZWNrIGZvciA8aXBobHBhcGkuaD4uCiAgIC0gUmVwbGFjZWQgc2V2ZXJhbCBXSU4zMiAvIGN5Z3dpbiB0ZXN0cyBieSBhIEhBVkVfSVBITFBBUElfSAogICB0ZXN0LgogICAtIERvY3VtZW50ZWQgdGhhdCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBpcyBvbmx5IHVzZWQKICAgZm9yIHRoZSBNU1ZDIGJ1aWxkLgoKMjAxMC0wMS0yMiAxNjo0NiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MTA6IGJ1aWxkcyBhZ2FpbiB3aXRoIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvCiAgIDYuCgoyMDEwLTAxLTIyIDE2OjQxICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvTWdtdEFwaS13aW5FeHRETEwuaDoKCiAgIEZvbGxvdyB1cCBmb3IgcjE4MDE2OiBidWlsZHMgYWdhaW4gd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpby4KCjIwMTAtMDEtMjIgMTQ6MTMgIGJ2YXNzY2hlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBGb2xsb3ctdXAgZm9yIHIxODAxNjogbWFkZSBNaW5HVyBsaWJpcGhscGFwaSBjaGVjayBtb3JlIHJvYnVzdC4KCjIwMTAtMDEtMjIgMTM6MzIgIGJ2YXNzY2hlCgogICAqICBSRUFETUUud2luMzIsIGFjbG9jYWwubTQsIGFnZW50L2FnZW50X2luZGV4LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsICAgCiAgICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgICAKICAgICAgYXBwcy9zbm1wYnVsa2dldC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLCAgIAogICAgICBhcHBzL3NubXBkZi5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCAgIAogICAgICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCAgIAogICAgICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX3NxbC5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCAgIAogICAgICBhcHBzL3NubXB3YWxrLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbWluZ3czMi5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCAgIAogICAgICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgICAKICAgICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLCAgIAogICAgICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCAgIAogICAgICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfZGVidWcuYywgCiAgICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgICAKICAgICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdmFjbS5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYywgd2luMzIvU25tcC13aW5FeHRETEwuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogTWluR1c6IHdpbkV4dERMTCBjb21waWxlcyBub3cgdW5kZXIgTWluR1cuCiAgIENIQU5HRVM6IE1pbkdXOiBidWlsZGluZyBOZXQtU05NUCB3b3JrcyBhZ2Fpbi4KICAgCiAgIERldGFpbGVkIG92ZXJ2aWV3OgogICAqIENoYW5nZXMgaW4gdGhlIGNvbmZpZ3VyZSBzY3JpcHQ6CgogICAtIHNvY2tldCgpIGxpYnJhcnkgY2hlY2sgcGFzc2VzIGFnYWluIG9uIE1pbkdXLgogICAtIEFkZGVkIGxpYnJhcnkgY2hlY2tzIGZvciBsaWJ3czJfMzIsIGxpYnJlZ2V4IGFuZCBsaWJzbm1wYXBpLgogICAtIEFkZGVkIGNoZWNrIGZvciB0aGUgd2luc29jazIuaCBhbmQgd3MydGNwaXAuaCBoZWFkZXIgZmlsZXMuCiAgIC0gQWRkZWQgY2hlY2sgZm9yIHRoZSBjaG93bigpIGFuZCBsb2NhbHRpbWVfcigpIGZ1bmN0aW9ucy4KICAgLSBzb2NrYWRkcl9pbjYuc2luNl9zY29wZV9pZCBjaGVjayBkb2VzIG5vdyB3b3JrIG9uIE1pbkdXLgogICAtIEFkZGVkIElQdjYgc3RhY2sgdHlwZSBjYWxsZWQgIm1pbmd3Ii4KICAgKiBTb3VyY2UgY29kZSBjaGFuZ2VzOgoKICAgLSBJbmNsdWRlIDx3aW5zb2NrMi5oPiBmcm9tIDxuZXQtc25tcC90eXBlcy5oPiBpbnN0ZWFkIG9mCiAgIDx3aW5zb2NrLmg+CiAgIHVuZGVyIE1pbkdXIHN1Y2ggdGhhdCBJUHY2IHN1cHBvcnQgaXMgYXZhaWxhYmxlLgogICAtIE1vdmVkICNpbmNsdWRlIDx3aW5zb2NrLmg+IGZyb20gLmMgZmlsZXMgdG8gPG5ldC1zbm1wL3R5cGVzLmg+LgogICAtIEFkZGVkIGEgY29weSBvZiB0aGUgTWluR1cgaGVhZGVyIGZpbGUgPHNubXAuaD4gKHdoaWNoIGlzIG5vdAogICBjb3B5cmlnaHRlZCkKICAgYXMgd2luMzIvU25tcC13aW5FeHRETEwuaC4KICAgLSBhZ2VudDogb25seSBjYWxsIGNob3duKCkgd2hlbiBhdmFpbGFibGUgKEhBVkVfQ0hPV04pLgogICAqIERvY3VtZW50YXRpb24gY2hhbmdlczogdXBkYXRlZCBSRUFETUUud2luMzIuCgoKMjAxMC0wMS0yMiAwODozNCAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGNhc3QgZnJvbSBjaGFyKiB0byBjaGFyKgoKMjAxMC0wMS0yMiAwMDozOSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIENvcHlyaWdodCBmaWxlIHVwZGF0ZSBmb3IgU1BBUlRBLCBJbmMuCgoyMDEwLTAxLTIyIDAwOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB0c20uYzoKCiAgIGFkZCBwcm9wZXIgcHJlZml4ZXMgaW4gVFNNIGZvciBTU0gsIERUTFMsIGV0YywgYmFzZWQgb24gdGhlCiAgIGRvbWFpbgoKMjAxMC0wMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogZGlzdC9wYXRtZToKCiAgIGFkZGVkIDUuNSBicmFuY2gKCjIwMTAtMDEtMjIgMDA6MjAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgbWlub3IgZWNobyBvdXRwdXQgY2hhbmdlCgoyMDEwLTAxLTIxIDIwOjUxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgbW92ZSBjb21tZW50IG5leHQgdG8gY29kZSBpdCBpcyB0YWxraW5nIGFib3V0OyBObyBjb2RlIGNoYW5nZQoKMjAxMC0wMS0yMSAxNDo1NSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIENIQU5HRVM6IFBBVENIOiAyOTI2Mzc0OiBmcm9tIEVkIFN3aWVyazogZml4ZWQgcmVhZGluZyBvZgogICBpcEFkZHJlc3NUYWJsZSBmcm9tIC9wcm9jL25ldC9pZl9pbmV0NiBvbiBMaW51eAogICAKICAgVGhlIGtlcm5lbCBtaWdodCBwcm92aWRlIGxvbmdlciBmaWVsZHMsIGVzcGVjaWFsbHkgb24gNjQtYml0CiAgIHN5c3RlbXMuCgoyMDEwLTAxLTIwIDEyOjQyICBidmFzc2NoZQoKICAgKiBQT1JUSU5HLCBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgRml4ZWQgdHlwbzogcmVwbGFjZWQgJ25lY2lzc2FyeScgYnkgJ25lY2Vzc2FyeScuCgoyMDEwLTAxLTIwIDA4OjUzICBqc2FmcmFuZWsKCiAgICogbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgRml4IG1pbm9yIHR5cG8gaW4gbWFuIHBhZ2UsIGl0J3Mgc25tcG5ldHN0YXQgLUNwLCBub3QgLUNQLgoKMjAxMC0wMS0xNCAxMjozNCAganNhZnJhbmVrCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IGZpeGVkIG1lbW9yeSBsZWFrIGluIFJNT04tTUlCIGFuZCBFVEhFUkxJS0UtTUlCIHdoZW4KICAgdGhlcmUgYXJlIG11bHRpcGxlIGFsaWFzZXMgb2YgYW4gbmV0d29yayBpbnRlcmZhY2UKICAgUmF0aW9uYWxlOiB0aGUgYWxpYXNlZCBpbnRlcmZhY2VzIGhhdmUgdGhlIHNhbWUgaWZJbmRleCAtPgogICBDT05UQUlORVJfSU5TRVJUIGZhaWxzLCBidXQgdGhlIHJlamVjdGVkIGVudHJ5IHdhcyBub3QgZnJlZWQuCgoyMDEwLTAxLTEzIDExOjIxICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZpeCBtZW1vcnkgbGVhayBpbiBpcEFkZHJlc3NQcmVmaXhUYWJsZQogICAtIG5ldF9zbm1wX3NlYXJjaF91cGRhdGVfcHJlZml4X2luZm8gcmV0dXJucyBkaWZmZXJlbnQgY29kZSwgd2hlbgogICB0aGUgZW50cnkgd2FzIG5vdCBpbnNlcnRlZCB0byBsaXN0IGFuZCBjYW4gYmUgZnJlZWQuCgoyMDEwLTAxLTEyIDAwOjUyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBDSEFOR0VTOiBidWlsZDogcnVuIHJwbSBjb25maWd1cmUgY2hlY2tzIGZvciBocl9zd2luc3QgcmV3cml0ZQogICAocnBtCiAgIHZlcnNpb24gb25seSkKCjIwMTAtMDEtMTEgMjM6NTggIHRhbmRlcnMKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBQRVJMTERPUFRTX0ZPUl9BUFBTIHRvIGFnZW50eHRyYXAgbGluayBsaW5lIChmaXhlcwogICAibGlicGVybC5zbyBub3QKICAgZm91bmQiIGVycm9ycykKCjIwMTAtMDEtMTEgMDA6MTEgIHRhbmRlcnMKCiAgICogIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXAsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDExNGFnZW50eGFnZW50eHRyYXA6CgogICBnZXQgcmlkIG9mIHVzaW5nIGRlcHJlY2F0ZWQgc3ludGF4IGZvciB0cmFwL2luZm9ybSBzaW5rcwoKMjAxMC0wMS0wOCAwODo0MiAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IG9ic29sZXRlZCBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcuCiAgIEZyb20gbm93IG9uIHVzaW5nIFNJR0FMUk0gdG8gdHJpZ2dlciBOZXQtU05NUCBhbGFybSBoYW5kbGVycyBpcwogICBubyBsb25nZXIgc3VwcG9ydGVkLgogICAKICAgTW90aXZhdGlvbjogYXMga25vd24gbGlibmV0c25tcCBzdXBwb3J0cyB0aW1lLWJhc2VkIGFsYXJtcyB2aWEKICAgdGhlIGZ1bmN0aW9ucwogICBzbm1wX2FsYXJtX3JlZ2lzdGVyKCksIHJ1bl9hbGFybXMoKSBhbmQgb3RoZXIgZnVuY3Rpb25zLiBUd28KICAgZGlmZmVyZW50IHdheXMgdG8KICAgdHJpZ2dlciB0aGUgZnVuY3Rpb24gcnVuX2FsYXJtcygpIGFyZSBzdXBwb3J0ZWQgaW5zaWRlCiAgIGxpYm5ldHNubXA6CiAgIDEuIEJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIHRpbWVvdXQgYXJndW1lbnQgb2Ygc2VsZWN0KCkgaXMgc21hbGwKICAgZW5vdWdoIHN1Y2gKICAgdGhhdCBzZWxlY3QoKSByZXR1cm5zIGJlZm9yZSB0aGUgbmV4dCBhbGFybSBtdXN0IGJlIGhhbmRsZWQgKHdoZW4KICAgdGhlCiAgIHZhcmlhYmxlIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBpcyBzZXQgdG8gb25lLCB3aGljaAogICBpcyB0aGUKICAgZGVmYXVsdCkuCiAgIDIuIEJ5IG1ha2luZyBzdXJlIHRoYXQgdGhlIGtlcm5lbCBmaXJlcyBTSUdBTFJNIGF0IHRoZSB0aW1lIHdoZW4KICAgcnVuX2FsYXJtcygpCiAgIHNob3VsZCBiZSBjYWxsZWQgKHdoZW4gdGhlIHZhcmlhYmxlCiAgIE5FVFNOTVBfRFNfTElCX0FMQVJNX0RPTlRfVVNFX1NJRyBpcyBzZXQKICAgdG8gemVybywgd2hpY2ggaGFzIHRvIGJlIGNvbmZpZ3VyZWQgZXhwbGljaXRseSkuCiAgIAogICBUaGUgZm9sbG93aW5nIGlzc3VlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBzZWNvbmQgYXBwcm9hY2g6CiAgIDEuIEFsYXJtIGZ1bmN0aW9ucyBhcmUgdXNlZCBpbnNpZGUgTmV0LVNOTVAgdG8gZS5nLiByZWZyZXNoCiAgIGNhY2hlZCB0YWJsZQogICBjb250ZW50cy4gQXMgZmFyIGFzIEkgY2FuIHNlZSB0aGVyZSBpcyBub3RoaW5nIGluIHRoZSBOZXQtU05NUAogICBzb3VyY2UgY29kZQogICB0aGF0IHByZXZlbnRzIHRoZSBmb2xsb3dpbmcgZnJvbSBoYXBwZW5pbmc6IGEgdGFibGUgcmVmcmVzaAogICB0cmlnZ2VyZWQgdmlhCiAgIFNJR0FMUk0gd2hpbGUgYSByb3cgaXMgYmVpbmcgcmVtb3ZlZCBmcm9tIGEgY2FjaGVkIHRhYmxlLiBUaGlzCiAgIGNhbiByZXN1bHQKICAgaW4gZGFuZ2xpbmcgcG9pbnRlciBkZXJlZmVyZW5jZXMgYW5kIGV2ZW4gYSBjcmFzaC4KICAgMi4gUE9TSVggcmVzdHJpY3RzIHNpZ25hbCBoYW5kbGVycyB0byBjYWxsaW5nIGZ1bmN0aW9ucyB0aGF0IGFyZQogICBlaXRoZXIgcmVlbnRyYW50CiAgIG9yIG5vbi1pbnRlcnJ1cHRpYmxlCiAgIChodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2OTUzOTkvZnVuY3Rpb25zL3hzaF9jaGFwMDJfMDQuaHRtbCN0YWdfMDJfMDQpLgogICBTdGFuZGFyZCBJL08gZnVuY3Rpb25zIGxpa2UgcHJpbnRmKCkgYW5kIGZwcmludGYoKSBhcmUgbmVpdGhlcgogICByZWVudHJhbnQgbm9yCiAgIG5vbi1pbnRlcnJ1cHRpYmxlLiBydW5fYWxhcm1zKCkgaXMgY2FsbGVkIGZyb20gaW5zaWRlIGEgc2lnbmFsCiAgIGhhbmRsZXIsIHdoaWNoCiAgIG1lYW5zIHRoYXQgdGhpcyByZXN0cmljdGlvbiBhcHBsaWVzIHRvIHRoZSBmdW5jdGlvbiBydW5fYWxhcm1zKCkKICAgaXRzZWxmIGFuZAogICBhbGwgZnVuY3Rpb25zIGNhbGxlZCBieSBpdCAod2hpY2ggaW5jbHVkZXMgdGhlIGFsYXJtIGNhbGxiYWNrCiAgIGZ1bmN0aW9ucykuCiAgIE9yOiBlLmcuIHNubXBfbG9nKCkgYW5kIGl0cyBjYWxsZXJzIG11c3Qgbm90IGJlIGNhbGxlZCBmcm9tCiAgIGluc2lkZSBydW5fYWxhcm1zKCkKICAgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGludm9rZWQgZnJvbSBpbnNpZGUgYSBzaWduYWwgaGFuZGxlci4gVGhpcwogICBpcyBhIHNldmVyZQogICByZXN0cmljdGlvbiwgYW5kIG9uZSB0aGF0IGlzIGhhcmQgdG8gd29yayB3aXRoLgogICAzLiBOb3QgYWxsIHNvZnR3YXJlIGRldmVsb3BlcnMga25vdyBob3cgdG8gbWFrZSBzdXJlIHRoYXQgc2lnbmFsCiAgIGRlbGl2ZXJ5IHdvcmtzCiAgIGNvcnJlY3RseSBpbiBhIG11bHRpdGhyZWFkZWQgY29udGV4dC4gUE9TSVggZG9lcyBub3QgZ3VhcmFudGVlIHRvCiAgIHdoaWNoIHRocmVhZAogICBhIHNpZ25hbCBsaWtlIFNJR0FMUk0gd2lsbCBiZSBkZWxpdmVyZWQsIHVubGVzcyB0aGF0IHNpZ25hbCBoYXMKICAgYmVlbiBibG9ja2VkCiAgIGJlZm9yZSB0aHJlYWQgY3JlYXRpb24gYW5kIGlzIHVuYmxvY2tlZCBhZnRlciB0aHJlYWQgY3JlYXRpb24KICAgKHNlZSBhbHNvCiAgIGh0dHA6Ly93d3cub3Blbmdyb3VwLm9yZy9vbmxpbmVwdWJzLzAwOTY5NTM5OS9mdW5jdGlvbnMvcHRocmVhZF9zaWdtYXNrLmh0bWwpLgogICBUaGlzIGlzIHJlbGV2YW50IGZvciB0aGUgTmV0LVNOTVAgcHJvamVjdCBub3Qgb25seSBiZWNhdXNlIGEKICAgd29ya2VyIHRocmVhZCBpcwogICBjcmVhdGVkIGluc2lkZQogICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMgYnV0IGFsc28KICAgYmVjYXVzZSBsaWJuZXRzbm1wIGlzIG9mdGVuIHVzZWQgaW5zaWRlIG11bHRpdGhyZWFkZWQgc29mdHdhcmUuCiAgIEN1cnJlbnRseSBubwogICBhdHRlbXB0IGlzIG1hZGUgdG8gbWFrZSBzdXJlIHRoYXQgU0lHQUxSTSBpcyBwcm9jZXNzZWQgYnkgdGhlCiAgIE5ldC1TTk1QIGV2ZW50CiAgIHByb2Nlc3NpbmcgbG9vcCB0aHJlYWQuIElmIFNJR0FMUk0gaXMgcHJvY2Vzc2VkIGJ5IGFub3RoZXIKICAgdGhyZWFkLCB0aGlzIHdpbGwKICAgcmVzdWx0IGluIG9uZSBvciBtb3JlIGRhdGEgcmFjZXMuCiAgIAogICBCZWNhdXNlIGFsbCB0aGUgZGlmZmljdWx0aWVzIGFzc29jaWF0ZWQgd2l0aCBwcm9jZXNzaW5nIGFsYXJtcwogICBmcm9tIGluc2lkZSBhCiAgIHNpZ25hbCBoYW5kbGVyIGZ1bmN0aW9uLCBhbmQgYmVjYXVzZSBmaXhpbmcgdGhlc2Ugd291bGQgcmVxdWlyZQogICBtb3JlIGVmZm9ydCB0aGFuCiAgIGl0IGlzIHdvcnRoLCBORVRTTk1QX0RTX0xJQl9BTEFSTV9ET05UX1VTRV9TSUcgaGFzIGJlZW4KICAgZGVwcmVjYXRlZCBhbmQgZnJvbSBub3cKICAgb24gYXBwcm9hY2ggKDEpIGlzIHRoZSBvbmx5IHN1cHBvcnRlZCBhcHByb2FjaCB0byB0cmlnZ2VyIGFsYXJtCiAgIGhhbmRsZXJzLgoKMjAxMC0wMS0wNyAxOTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIFBhdGNoIGZyb20gU3RlcGhlbiBIZW1taW5nZXIgdG8gZml4IGEgbWlub3IgbWVtbGVhayBpbiBjcHUKICAgc3lzY3RybCBmZXRjaGluZwoKMjAxMC0wMS0wNyAxNjoyMSAgYnZhc3NjaGUKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsICAgCiAgICAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIFJlbW92ZWQgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSwgYW5kIG1hZGUgc3VyZSB0aGF0CiAgIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgJ1wwJy10ZXJtaW5hdGVzIHRoZSBvdXRwdXQgYnVmZmVyCiAgIGluIGFsbCBjYXNlcy4KICAgVXBkYXRlZCBkb2N1bWVudGF0aW9uIGFuZCB1bml0IHRlc3RzLgoKMjAxMC0wMS0wNyAxNDo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBSZW1vdmVkIHRocmVlIHN1cGVyZmx1b3VzIGNhc3RzIGJlY2F1c2UgdGhlc2UgdHJpZ2dlcmVkIGEKICAgY29tcGlsZXIgd2FybmluZwogICB3aGVuIGNvbXBpbGVkIHdpdGggTVNWQy4KCjIwMTAtMDEtMDcgMTM6MjggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJldmVydGVkIHRoZSByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIGNoYW5nZXMgZnJvbSByMTc5OTIKICAgYmVjYXVzZSB0aGVzZQogICBjYXVzZWQgdGhlIGZvbGxvd2luZyBWYWxncmluZCBjb21wbGFpbnQgZHVyaW5nIHNubXBkIHN0YXJ0dXA6CiAgIAogICA9PTI1MjAxPT0gQ29uZGl0aW9uYWwganVtcCBvciBtb3ZlIGRlcGVuZHMgb24gdW5pbml0aWFsaXNlZAogICB2YWx1ZShzKQogICA9PTI1MjAxPT0gYXQgMHg0MDQ3QjE0OiBuZXRzbm1wX3NlbmRfdHJhcHMgKGFnZW50X3RyYXAuYzo3OTgpCiAgID09MjUyMDE9PSBieSAweDQwNDgxMjg6IHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMKICAgKGFnZW50X3RyYXAuYzo4NTMpCiAgID09MjUyMDE9PSBieSAweDQwNDgxOUQ6IHNlbmRfdHJhcF92YXJzIChhZ2VudF90cmFwLmM6OTYzKQogICA9PTI1MjAxPT0gYnkgMHg0MDQ4MjVCOiBzZW5kX2Vhc3lfdHJhcCAoYWdlbnRfdHJhcC5jOjEwMTEpCiAgID09MjUyMDE9PSBieSAweDgwNEI1RDI6IG1haW4gKHNubXBkLmM6Mzk0KQoKMjAxMC0wMS0wNyAxMjozMCAgYnZhc3NjaGUKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXhlZCBhIGZvcm1hdCBzcGVjaWZpY2F0aW9uIG1pc21hdGNoLgoKMjAxMC0wMS0wNyAxMjoxOSAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBEZXBlbmRpbmcgb24gdGhlIGNvbnRleHQsIGFzc2lnbmluZyBhIGNoYXIgKiBwb2ludGVyIHRvCiAgIHN5c09SVGFibGU6Ok9SX2Rlc2NyIGRvZXMgb3IgZG9lcyBub3QgdHJhbnNmZXIKICAgb3duZXJzaGlwLiBTbyB3aGV0aGVyIE9SX2Rlc2NyIGlzIGRlY2xhcmVkIGFzIGNoYXIgKiBvciBhcyBjb25zdAogICBjaGFyICosIHRoZXJlIHdpbGwgYWx3YXlzIGJlIGF0CiAgIGxlYXN0IG9uZSBzdGF0ZW1lbnQgb24gd2hpY2ggdGhlIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIGNoYXIKICAgKiAgLyBjb25zdCBjaGFyICogbWlzbWF0Y2guIFRoZSBvbmx5ICAgIHNvbHV0aW9uIGlzIHRvIGNhc3QgYXdheQogICAgICBjb25zdCB3aGVyZSBhcHByb3ByaWF0ZSB0byBtYWtlIHN1cmUgICAgdGhhdCB0aGUgY29tcGlsZXIgZG9lcyBub3QKICAgICAgY29tcGxhaW4sICAgIGFzIGltcGxlbWVudGVkIGluIHRoaXMgcGF0Y2guICAyMDEwLTAxLTA3IDExOjQ2IAogICAgICBidmFzc2NoZQoKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICB1c21fc2F2ZV91c2VyKCk6IHdoZW4gd3JpdGluZyB1c2VyLT5uYW1lIGFuZCB1c2VyLT5zZWNOYW1lLCBvbmx5CiAgIHdyaXRlIHRoZSBBU0NJSSBkYXRhIGFuZCBub3QgdGhlCiAgIHRlcm1pbmF0aW5nICdcMCcuIFNpbmNlIGJvdGggaXRlbXMgYXJlIHJlYWQgYnkgY2FsbGluZwogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpLCB3cml0aW5nCiAgIHRoZSB0ZXJtaW5hdGluZyAnXDAnIGlzIG5vdCBuZWNlc3NhcnkgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGRhdGEKICAgcmVhZCBiYWNrIGlzIHRlcm1pbmF0ZWQgcHJvcGVybHkuCgoyMDEwLTAxLTA3IDA5OjEzICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDaGFuZ2VkIHRoZSBiZWhhdmlvciBvZiByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpOiB1bnRpbAogICBub3cgdGhpcwogICBmdW5jdGlvbiB0ZXJtaW5hdGVkIHRoZSBvdXRwdXQgYnVmZmVyIGluIHNvbWUgY2FzZXMgd2l0aCAnXDAnCiAgICh3aGVuIHRoZQogICBpbnB1dCB3YXMgaW4gdGhlIGZvcm1hdCAweC4uLiBhbmQgYSBidWZmZXIgb3ZlcmZsb3cgb2NjdXJyZWQgYW5kCiAgIGFsc28KICAgd2hlbiB0aGUgaW5wdXQgd2FzIGluIEFTQ0lJIGZvcm1hdCwgYnV0IG5vdCB3aGVuIHRoZSBpbnB1dCB3YXMgaW4KICAgZm9ybWF0CiAgIDB4Li4uIGFuZCBubyBidWZmZXIgb3ZlcmZsb3cgb2NjdXJyZWQpLiBDaGFuZ2VkIHRoaXMgc3VjaCB0aGF0CiAgIHRoaXMKICAgZnVuY3Rpb24gZG9lcyBubyBsb25nZXIgdGVybWluYXRlIHRoZSBpbnB1dCBidWZmZXIgd2l0aCAnXDAnLgogICBUaGlzCiAgIGNoYW5nZSB3YXMgcG9zc2libGUgYmVjYXVzZSBpbnNpZGUgdGhlIE5ldC1TTk1QIHByb2plY3QgYWxsCiAgIGNhbGxlcnMgdGhhdAogICBuZWVkZWQgYSAnXDAnIHRlcm1pbmF0ZWQgc3RyaW5nIGhhdmUgYmVlbiBjb252ZXJ0ZWQgdG8gdXNlCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkgaW5zdGVhZC4KCjIwMTAtMDEtMDYgMTc6NTIgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIFJldmVydGVkIHIxNzk2OCBhbmQgcjE3OTcyLgoKMjAxMC0wMS0wNiAxNTo0MCAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4ZWQgbW9yZSBjb21waWxlciB3YXJuaW5ncyByZWxhdGVkIHRvIHRoZSB1c2Ugb2YgdGhlIGNvbnN0CiAgIGtleXdvcmQuCgoyMDEwLTAxLTA2IDE1OjM4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jOgoKICAgRml4ZWQgYSBmb3JtYXQgc3BlY2lmaWNhdGlvbiBtaXNtYXRjaC4KCjIwMTAtMDEtMDYgMTU6MzYgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6CgogICBDaGFuZ2VkIGFyZ3VtZW50IHR5cGUgZnJvbSBjaGFyICogaW50byBjb25zdCBjaGFyICouIFNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQgaW4gcjE3OTc1LgoKMjAxMC0wMS0wNiAxNTozMyAgYnZhc3NjaGUKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBGaXhlZCBzZXZlcmFsIGNvbXBpbGVyIHdhcm5pbmdzIGFib3V0IGNoYXIgKiAvIHVfY2hhciAqCiAgIG1pc21hdGNoZXMuCgoyMDEwLTAxLTA2IDE1OjMxICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2NvbmZpZ19hcGkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQWRkZWQgdGhlIGZ1bmN0aW9ucyByZWdpc3Rlcl9jb25zdF9jb25maWdfaGFuZGxlcigpIGFuZAogICBzbm1wZF9yZWdpc3Rlcl9jb25zdF9jb25maWdfaGFuZGxlcigpLCB3aGljaAogICBhY2NlcHQgYSBwYXJzZXIgZnVuY3Rpb24gdGhhdCBkb2VzIG5vdCBtb2RpZnkgdGhlIHN0cmluZyB0aGF0IGl0CiAgIHBhcnNlcy4gVXNpbmcgdGhlc2UgZnVuY3Rpb25zIHJlc3VsdHMKICAgaW4gZWFzaWVyIHRvIHJlYWQgY29kZSB0aGFuIHVzaW5nIHRoZSBub24tY29uc3QgaGFuZGxlcgogICByZWdpc3RyYXRpb24gZnVuY3Rpb25zIGFuZCBjYXN0aW5nIHRoZSBwYXJzZXIKICAgZnVuY3Rpb24gZXhwbGljaXRseSBmcm9tICh2b2lkKCopKGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikpIHRvCiAgICh2b2lkKCopKGNvbnN0IGNoYXIqLCBjaGFyKikpLgoKMjAxMC0wMS0wNiAxNToyNyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDo0OCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFkZGVkIHJlYWRfY29uZmlnX3JlYWRfb2JqaWRfY29uc3QoKS4KCjIwMTAtMDEtMDYgMTQ6NDIgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIER1cGxpY2F0ZWQgdGhlIHNlY29uZCBhcmd1bWVudCBvZiBSRUdJU1RFUl9TWVNPUl9UQUJMRSgpIC8KICAgUkVHSVNURVJfU1lTT1JfRU5UUlkoKQogICBzaW5jZSB0aGF0IGFyZ3VtZW50IGlzIGZyZWVkIHdoaWxlIHVucmVnaXN0ZXJpbmcgc3VjaCBhbiBlbnRyeS4KICAgTm90IHN1cmUgd2hldGhlcgogICB0aGlzIGNvdWxkIGFjdHVhbGx5IHRyaWdnZXIgYSBjYWxsIG9mIGZyZWUoKSB3aXRoIGEgY29uc3RhbnQKICAgc3RyaW5nIGFzIGFyZ3VtZW50CiAgIGFuZCBJJ20gbmVpdGhlciBzdXJlIGFib3V0IHdoZXRoZXIgb3Igbm90IHRoaXMgY291bGQgaGF2ZQogICB0cmlnZ2VyZWQgYSBjcmFzaC4KCjIwMTAtMDEtMDYgMTQ6MzQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgRm9yIHRob3NlIFZBQ00gZnVuY3Rpb25zIHRoYXQgZG8gbm90IG1vZGlmeSB0aGUgc3RyaW5ncyBwYXNzZWQgYXMKICAgYXJndW1lbnRzLAogICBjaGFuZ2VkIHRoZSBhcmd1bWVudCB0eXBlIGZyb20gY2hhciAqIHRvIGNvbnN0IGNoYXIgKi4KCjIwMTAtMDEtMDYgMTQ6MjcgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmcgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAxNDoyNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfY29tbW9uLmM6CgogICBSZW1vdmVkIGFuIHVudXNlZCB2YXJpYWJsZS4KCjIwMTAtMDEtMDYgMTQ6MTQgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWJfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmM6CgogICBEdXBsaWNhdGVkIHRoZSBzZWNvbmQgYXJndW1lbnQgb2YgUkVHSVNURVJfU1lTT1JfVEFCTEUoKSAvCiAgIFJFR0lTVEVSX1NZU09SX0VOVFJZKCkKICAgc2luY2UgdGhhdCBhcmd1bWVudCBpcyBmcmVlZCB3aGlsZSB1bnJlZ2lzdGVyaW5nIHN1Y2ggYW4gZW50cnkuCiAgIE5vdCBzdXJlIHdoZXRoZXIKICAgdGhpcyBjb3VsZCBhY3R1YWxseSB0cmlnZ2VyIGEgY2FsbCBvZiBmcmVlKCkgd2l0aCBhIGNvbnN0YW50CiAgIHN0cmluZyBhcyBhcmd1bWVudAogICBhbmQgSSdtIG5laXRoZXIgc3VyZSBhYm91dCB3aGV0aGVyIG9yIG5vdCB0aGlzIGNvdWxkIGhhdmUKICAgdHJpZ2dlcmVkIGEgY3Jhc2guCgoyMDEwLTAxLTA2IDE0OjA4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5oOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBkaXNjYXJkaW5nIHRoZSBjb25zdAogICBxdWFsaWZpZXIuCgoyMDEwLTAxLTA2IDE0OjA2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgRml4ZWQgc2V2ZXJhbCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKgogICBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAxNDowNCAgYnZhc3NjaGUKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENoYW5nZXM6CiAgIC0gQWRkZWQgbmV3IGZ1bmN0aW9ucyBza2lwX3doaXRlX2NvbnN0KCksIHNraXBfbm90X3doaXRlX2NvbnN0KCksCiAgIHNraXBfdG9rZW5fY29uc3QoKSwgY29weV9ud29yZF9jb25zdCgpIGFuZAogICByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZ19jb25zdCgpLgogICAtIENoYW5nZWQgcmV0dXJuIHR5cGUgb2YgcmVhZF9jb25maWdfcmVhZF9hc2NpaV9zdHJpbmcoKSBmcm9tCiAgIGNoYXIgKiB0bwogICBjb25zdCBjaGFyICouIE5vdGU6IHRoaXMgZG9lcyBub3QgYWZmZWN0IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CiAgIHNpbmNlIHRoaXMKICAgZnVuY3Rpb24gaGFzIG5vdCB5ZXQgYmVlbiBpbmNsdWRlZCBpbiBhbnkgcmVsZWFzZS4KICAgLSBGaXhlZCBkb2N1bWVudGF0aW9uIG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkuCiAgIC0gUmVkdWNlZCBudW1iZXIgb2YgY2FzdC1hd2F5LWNvbnN0IGNvbnN0cnVjdHMgaW4gcmVhZF9jb25maWcuYy4KCjIwMTAtMDEtMDYgMTM6MzUgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgUmVmaW5lZCB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIG1hY3JvIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCk6CiAgIHdoZW4gdXNpbmcKICAgdGhlIGdjYyBjb21waWxlciwgaXQgaXMgbm93IHZlcmlmaWVkIHdoZXRoZXIgdGhlIHR5cGVzIChjb25zdCB0KQogICBhbmQgdHlwZW9mKGUpCiAgIGFyZSBjb21wYXRpYmxlLCB3aGVyZSB0IGlzIHRoZSBmaXJzdCBhcmd1bWVudCBhbmQgZSB0aGUgc2Vjb25kCiAgIGFyZ3VtZW50IG9mCiAgIHRoaXMgbWFjcm8uCgoyMDEwLTAxLTA2IDEzOjMzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaDoKCiAgIEFkZCBzdXBwb3J0IG9mIG5ldHdvcmsgaW50ZXJmYWNlcyB3aXRoIEhXIGFkZHJlc3MgYmlnZ2VyIHRoYW4gNgogICBieXRlcyB0byBhdFRhYmxlLiBTb21lIEhXLCBsaWtlIEluZmluaUJhbmQsIHVzZXMgSFcgYWRkcmVzc2VzCiAgIHdpdGggOSBhbmQgbW9yZSBieXRlcy4KCjIwMTAtMDEtMDYgMTI6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfa3N0YXQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAyOTI0MTQwOiBGaXggdGVybWluYXRpb24gb2YgQ1BVL0ZQVSB0eXBlcwoKMjAxMC0wMS0wNiAxMjozMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHUzogMjkyMjM5MDogRml4IHRlc3QgZm9yIG1pc3NpbmcgY29udGV4dE5hbWUKICAgcGFyYW1ldGVyCgoyMDEwLTAxLTA2IDExOjU3ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvc25tcF9wZXJsLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lci5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvcGFyc2UuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYzoKCiAgIENoYW5nZXM6CiAgIC0gSW50cm9kdWNlZCBhIG5ldyBtYWNybyBORVRTTk1QX1JFTU9WRV9DT05TVCgpIHRoYXQgYWxsb3dzIHRvCiAgIGNhc3QKICAgYXdheSBjb25zdG5lc3Mgd2l0aG91dCB0aGF0IGdjYyAtV2Nhc3QtcXVhbCByZXBvcnRzIGEgd2FybmluZy4KICAgLSBNYWRlIGNhc3RpbmcgYXdheSBjb25zdG5lc3MgZXhwbGljaXQgYnkgaW50cm9kdWNpbmcgdGhlCiAgIE5FVFNOTVBfUkVNT1ZFX0NPTlNUKCkgbWFjcm8uIFRoaXMgc3VwcHJlc3NlcyB0aGUgd2FybmluZwogICBnY2MgLVdjYXN0LXF1YWwgcHJpbnRlZCBmb3IgdGhlc2Ugc3RhdGVtZW50cy4KCjIwMTAtMDEtMDYgMTE6NDYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgZGlzY2FyZGluZyB0aGUgY29uc3QgcXVhbGlmaWVyLgoKMjAxMC0wMS0wNiAwOToxNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhcHBzL2FnZW50eHRyYXAuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRG8gbm90IHVzZSAwIHdoZW4gcmVmZXJyaW5nIHRvIE5VTEwuCgoyMDEwLTAxLTA2IDA4OjI2ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDaGFuZ2VkIGFyZ3VtZW50IHR5cGVzIG9mIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBhbmQKICAgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZigpCiAgIGZyb20gc3RydWN0IHRpbWV2YWwgKiB0byBjb25zdCBzdHJ1Y3QgdGltZXZhbCAqLiBOb3RlOiB0aGlzIGRvZXMKICAgbm90IGFmZmVjdAogICBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eS4KCjIwMTAtMDEtMDYgMDg6MjMgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ2hhbmdlcyAobm8gZnVuY3Rpb25hbGl0eSBoYXMgYmVlbiBtb2RpZmllZCk6CiAgIC0gUmVtb3ZlZCBkaXNraW9fcGFyc2VfY29uZmlnKCkgZGVjbGFyYXRpb24gYmVjYXVzZSB0aGF0IGZ1bmN0aW9uCiAgIGlzIG5laXRoZXIgY2FsbGVkIG5vciBkZWZpbmVkIGluIHRoZSBzb3VyY2UgZmlsZSBkaXNraW8uYy4KICAgLSBBZGRlZCBkZWNsYXJhdGlvbiBmb3IgZ2V0c3RhdHMoKSBzdWNoIHRoYXQgZ2NjIGRvZXMgbm90CiAgIGNvbXBsYWluIGFib3V0IGEgbWlzc2luZyBkZWNsYXJhdGlvbi4KICAgLSBMaW51eDogY2hhbmdlZCB2aXNpYmlsaXR5IG9mIGdldHN0YXRzKCkgZnJvbSBnbG9iYWwgdG8gc3RhdGljCiAgIGZvciBjb25zaXN0ZW5jeSB3aXRoIHRoZSBCU0QgYW5kIERhcndpbiBpbXBsZW1lbnRhdGlvbnMgb2YKICAgZ2V0c3RhdHMoKS4KCjIwMTAtMDEtMDYgMDg6MDAgIGJ2YXNzY2hlCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBGaXhlZCBjb21waWxlciB3YXJuaW5ncyBhYm91dCBjaGFyICogLyB1X2NoYXIgKiBtaXNtYXRjaGVzLgoKMjAxMC0wMS0wNiAwMjoxOCAgbWFnZnIKCiAgICogIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsICAgCiAgICAgIG1hbi9NYWtlZmlsZS5pbiwgdGVzdGluZy90ZXN0cy9UMTE0YWdlbnR4YWdlbnR4dHJhcDoKCiAgIENIQU5HRVM6IGFwcHM6IE9ubHkgYnVpbGQgYWdlbnR4dHJhcCBpZiB0aGUgYWdlbnR4IGxpYnJhcmllcyBhcmUKICAgYnVpbHQuIEFkZCBhIHRlc3QgY2FzZSBmb3IgYWdlbnR4dHJhcC4KICAgCiAgIFRoZSBlbmFibGVtZW50L2Rpc2FibGVtZW50IGlzIGluc3BpZXJlZCBieSBhdXRvbWFrZSBjb25kaXRpb25hbHMKCjIwMTAtMDEtMDYgMDE6NTkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyaWFibGUgc3RhcnR0aW1lLgoKMjAxMC0wMS0wNSAyMjo1NCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmg6CgogICBDSEFOR0VTOiBIaWRlIG1vc3QgZnVuY3Rpb25zIGFuZCB2YXJpYWJsZXMgaW4gdGhlIGxvZ21hdGNoCiAgIG1vZHVsZS4gQ2xlYW5lZCB1cCB0aGUgaGVhZGVyIGFjY29yZGluZ2x5LiBSZW1vdmUgdGhlIG5lZWQgZm9yCiAgIGZvcndhcmQgZGVjbGFyYXRpb25zIGJ5IHJlb3JkZXJpbmcgdGhlIGZ1bmN0aW9ucy4KCjIwMTAtMDEtMDUgMjI6MzMgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVR1M6IDI5MTkzNzk6IEluaXRpYWxpc2UgU05NUCBzZXNzaW9ucyBwcm9wZXJseQogICBQcm92aWRlZCBieSBEaWVnbyBCaWxsaQoKMjAxMC0wMS0wNSAyMjoyMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVR1M6IDI5MTkzMjA6IEF2b2lkIGFjY2Vzc2luZyBmcmVlZCBtZW1vcnkKICAgUmVwb3J0ZWQgYnkgVG9tYXN6IExpcwoKMjAxMC0wMS0wNSAxODo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDI5MTQ0MTA6IEZpeCBjcmFzaCBvbiBlbXB0eSBjb21tYW5kIGxpbmVzCgoyMDEwLTAxLTA1IDE1OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjkxMjU4NDogRml4IG51bGwgT0lEIGhhbmRsaW5nIGluIEFnZW50eAogICBvbiA2NGJpdAogICBQYXRjaCBzdXBwbGllZCBieSBMdXR6IEphZW5pY2tlCgoyMDEwLTAxLTA1IDEwOjExICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaDoKCiAgIENIQU5HRVM6IGhwdXg6IGZpeCBidWlsZCBlcnJvciBvbiBIUC1VWCAxMC4yMAoKMjAxMC0wMS0wNSAwODo0MiAganNhZnJhbmVrCgogICAqIG1hbiwgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgUmVtb3ZlIGdlbmVyYXRlZCBtYW4gcGFnZXMgZnJvbSByZXBvc2l0b3J5LgoKMjAxMC0wMS0wNCAxNjo0NCAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ZWQgYSBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZCB0aGF0IG9jY3VycmVkIHdoZW4gYW4gQVNDSUkKICAgc3RyaW5nIHdhcwogICBwYXNzZWQgYXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgLwogICByZWFkX2NvbmZpZ19yZWFkX2FzY2lpX3N0cmluZygpIGFuZCB0aGUgdGhpcmQgYXJndW1lbnQgKCpsZW4pCiAgIGVxdWFscyAwLgoKMjAxMC0wMS0wNCAxNjo0MSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgRml4ZWQgY29tcGlsZXIgd2FybmluZ3MgYWJvdXQgY2FzdGluZyBhd2F5ICdjb25zdCcuCgoyMDEwLTAxLTA0IDE2OjI3ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBBZGRlZCB1bml0IHRlc3QgZm9yIHJlYWRfY29uZmlnX3JlYWRfb2N0ZXRfc3RyaW5nKCkgYW5kCiAgIHJlYWRfY29uZmlnX3JlYWRfYXNjaWlfc3RyaW5nKCkuCgoyMDEwLTAxLTA0IDEwOjQ1ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBjb3JyZWN0IG9pZCBsZW5ndGggaW4gdGFibGUgaW5kZXhlcy4KCjIwMTAtMDEtMDQgMDg6MTAgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgTWFkZSBzdXJlIHRoYXQgc25tcF9hbGFybS5jIGNhbiBiZSBjb21waWxlZCBhZ2FpbiB3aXRoIEM4OQogICBjb21waWxlcnM6IGZvciBDODkKICAgaXQgaXMgcmVxdWlyZWQgdGhhdCBpbml0aWFsaXplcnMgYXJlIGNvbnN0YW50IGV4cHJlc3Npb25zLgoKMjAxMC0wMS0wMyAxNjoyOCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9zb2xhcmlzMi5jOgoKICAgUmVuYW1lIG5ldHNubXBfYXJjaF90Y3Bjb25uX2RlbGV0ZSB0bwogICBuZXRzbm1wX2FyY2hfdGNwY29ubl9lbnRyeV9kZWxldGUgaW4gb3JkZXIgdG8gYmUgY29uc2lzdGVudCB3aXRoCiAgIHRoZSBoZWFkZXIgZmlsZSBhbmQgYWxsIHRoZSBvdGhlciBmdW5jdGlvbnMgaW4gdGhlIG1vZHVsZS4KCjIwMTAtMDEtMDMgMTY6MjYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgsICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBfc2NhbGFycy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzLmg6CgogICBBZGQgbWlzc2luZyBkZWNsYXJhdGlvbnMuCgoyMDA5LTEyLTMwIDEyOjQ5ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90eXBlcy5oOgoKICAgRm9sbG93LXVwIGZvciByMTc5MzM6IGZpeGVkIHRoZSBpc3N1ZSB0aGF0IGluY2x1ZGluZyB0aGUgaGVhZGVyCiAgIGZpbGUKICAgPG5ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaD4gZnJvbSA8bmV0LXNubXAvbGlicmFyeS90b29scy5oPgogICB0cmlnZ2VycwogICBjb21waWxlciBlcnJvcnMgZHVyaW5nIHRoZSBjb25maWd1cmUgcHJvY2VzcyAoY29tcGxhaW50cyBhYm91dAogICA8bmV0c25tcC9uZXQtc25tcC1jb25maWcuaD4gbm90IGJlaW5nIGluY2x1ZGVkIGJlZm9yZQogICA8bmV0LXNubXAvdHlwZXMuaD4pLgogICBOb3RlOiB0aGlzIGRvZXMgbm90IHNvbHZlIHRoZSB1bmRlcmx5aW5nIHByb2JsZW0gdGhhdCBNSUIgY29kZQogICBtdXN0IG5vdAogICBpbmNsdWRlIHRoZSBoZWFkZXIgZmlsZSA8bmV0LXNubXAvdHlwZXMuaD4gYmVjYXVzZSBkb2luZyBzbyB3b3VsZAogICB0cmlnZ2VyIGEKICAgY2lyY3VsYXIgZGVwZW5kZW5jeSBkdXJpbmcgdGhlIGNvbmZpZ3VyZSBzdGVwIChNSUIgY29kZSBpcwogICBjb21waWxlZCBkdXJpbmcKICAgdGhlIGNvbmZpZ3VyZSBzdGVwLCB3aGlsZSB0aGUgY29uZmlndXJlIHN0ZXAgZ2VuZXJhdGVzCiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPiBhbmQgPG5ldC1zbm1wL3R5cGVzLmg+IG5lZWRzCiAgIDxuZXRzbm1wL25ldC1zbm1wLWNvbmZpZy5oPikuCgoyMDA5LTEyLTMwIDExOjQ4ICBidmFzc2NoZQoKICAgKiBhcHBzLCBtYW46CgogICBGb2xsb3ctdXAgZm9yIHIxNzkxOTogdXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0cy4KCjIwMDktMTItMjggMTg6MDMgIGJ2YXNzY2hlCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICBGaXhlZCBhIHBhc3QtZW5kLW9mLWJ1ZmZlciByZWFkLiBGb3VuZCB0aGlzIGJ5IGFuYWx5emluZyBjb21waWxlcgogICB3YXJuaW5ncy4KICAgTm90ZTogdGhlIGFmZmVjdGVkIGZ1bmN0aW9uLCByZWdpc3Rlcl9zdHJpbmdfaW5kZXgoKSwgaXNuJ3QKICAgY2FsbGVkIGZyb20KICAgYW55d2hlcmUgaW5zaWRlIHRoZSBOZXQtU05NUCBwcm9qZWN0IGl0c2VsZi4KCjIwMDktMTItMjMgMDk6NDkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIEZpeCBpbnZhbGlkIHJlYWQgcmVwb3J0ZWQgYnkgdmFsZ3JpbmQ6CiAgIEludmFsaWQgcmVhZCBvZiBzaXplIDEKICAgbWVtY3B5IChtY19yZXBsYWNlX3N0cm1lbS5jOjQwMikKICAgX25ldHNubXBfaW9jdGxfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkX3Y0CiAgIChpcGFkZHJlc3NfaW9jdGwuYzoyNDApCiAgIG5ldHNubXBfYXJjaF9pcGFkZHJlc3NfY29udGFpbmVyX2xvYWQgKGlwYWRkcmVzc19saW51eC5jOjE1OCkKICAgbmV0c25tcF9hY2Nlc3NfaXBhZGRyZXNzX2NvbnRhaW5lcl9sb2FkIChpcGFkZHJlc3NfY29tbW9uLmM6MTEyKQogICAKICAgUmV0dXJuaW5nIHN0cnVjdHVyZSB3aXRoIHBvaW50ZXJzIGluc2lkZSBpcyBub3QgdGhlIGJlc3QgdGhpbmcgdG8KICAgZG8uCgoyMDA5LTEyLTIyIDE2OjA1ICBidmFzc2NoZQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRml4ZWQgc2V2ZXJhbCBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZHMuCgoyMDA5LTEyLTIyIDEyOjAyICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfb3BlbmJzZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3N5c2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaCwgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCAKICAgICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIFJldmVydGVkIHRoZSBiYWNrd2FyZHMtaW5jb21wYXRpYmxlIGNoYW5nZXMgb2YgcjE3OTEzOgogICAtIFJlc3RvcmVkIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBESUZGVElNRVZBTCgpIG1hY3JvLgogICAtIFJlc3RvcmVkIHRoZSBkZWZpbml0aW9ucyBvZiB0aGUgZnVuY3Rpb25zCiAgIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSwKICAgdWF0aW1lX3JlYWR5KCksIG1hcmtlcl90dGlja3MoKSBhbmQgdGltZXZhbF90dGlja3MoKS4KICAgLSBzdGFydHRpbWUgaXMgYWdhaW4gYSBnbG9iYWwgdmFyaWFibGUgaW5zdGVhZCBvZiBhIHN0YXRpYyBvbmUuCiAgIEFsc28gaW1wbGVtZW50ZWQgdGhlIGZvbGxvd2luZyBjaGFuZ2VzOgogICAtIE1vdmVkIHRoZSBtYXJrZXJfdCB0eXBlZGVmIGZyb20gbmV0LXNubXAvbGlicmFyeS90b29scy5oIHRvCiAgIG5ldC1zbm1wL2xpYnJhcnkvdHlwZXMuaC4KICAgLSBBZGRlZCBhIG5ldyB0eXBlZGVmLCBjb25zdF9tYXJrZXJfdC4KICAgLSBGb3IgdGhvc2UgYXRpbWVfKigpIC8gdWF0aW1lXyooKSAvICpfdHRpY2tzKCkgZnVuY3Rpb25zIHRoYXQgZG8KICAgbm90IGNoYW5nZQogICB0aGVpciBhcmd1bWVudHMsIGRlY2xhcmVkIHRoZXNlIGFyZ3VtZW50cyBjb25zdF9tYXJrZXJfdCBpbnN0ZWFkCiAgIG9mIG1hcmtlcl90LgogICAtIFJlbmFtZWQgbmV0c25tcF9nZXRfc3RhcnR0aW1lKCkgYW5kIG5ldHNubXBfc2V0X3N0YXJ0dGltZSgpIHRvCiAgIG5ldHNubXBfZ2V0X2FnZW50X3N0YXJ0dGltZSgpIGFuZCBuZXRzbm1wX3NldF9hZ2VudF9zdGFydHRpbWUoKQogICByZXNwZWN0aXZlbHkuIE1vdmVkIHRoZXNlIGZ1bmN0aW9ucyBmcm9tIHRvb2xzLmMgdG8gc3lzdGVtLmMuCiAgIC0gUmVtb3ZlZCB0aGUgZnVuY3Rpb24gYXRpbWVfaHN1YnRyYWN0KCkgKHdhcyBpbnRyb2R1Y2VkIGluCiAgIHIxNzkxMykgYW5kCiAgIGludHJvZHVjZWQgYSBuZXcgZnVuY3Rpb24sIG5ldHNubXBfc2V0X2FnZW50X3VwdGltZSgpLgoKMjAwOS0xMi0yMiAwNzo1OSAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmV2ZXJ0ZWQgcjE3OTI2LCB3aGljaCBtYWRlIHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB6ZXJvLXRlcm1pbmF0ZWQuIEEgbmV3IHBhdGNoIHdpbGwKICAgZm9sbG93CiAgIHRoYXQgZml4ZXMgdGhlIGNhbGxlcnMgb2YgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSB0aGF0CiAgIHdlcmUKICAgYXNzdW1pbmcgdGhhdCByZWFkX2NvbmZpZ19yZWFkX29jdGV0X3N0cmluZygpIHplcm8tdGVybWluYXRlcyB0aGUKICAgc3RyaW5nCiAgIHJlYWQgYnkgdGhpcyBmdW5jdGlvbi4KCjIwMDktMTItMjEgMTQ6MjkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IGNyYXNoIGluIElGLU1JQiBhbmQgSVAtTUlCIHdoZW4gdGhlcmUgYXJlCiAgIHNvbWUgaW50ZXJmYWNlcyB3aXRoIGJyb2FkY2FzdCBJUCBhZGRyZXNzIGFuZCBzb21lIHdpdGhvdXQuCiAgIAogICBSZXNldCB0aGUgYmNhc3RlbnRyeSBpbiB0aGUgbG9vcCwgc28gaXQgY2Fubm90IGJlIGluc2VydGVkIHRvIHRoZQogICBjb250YWluZXIKICAgdHdpY2UuCiAgIAogICBXaXRob3V0IHRoaXMgcGF0Y2gsIHdoZW4gYW4gaW50ZXJmYWNlIHdpdGhvdXQgYnJvYWRjYXN0IGFkZHJlc3MKICAgaXMgcHJvY2Vzc2VkLAogICB0aGUgYmNhc3RhZGRyZXNzIGZyb20gcHJldmlvdXMgbG9vcCBpcyBpbnNlcnRlZCBpbnRvIHRoZQogICBjb250YWluZXIuIFRoaXMKICAgb2J2aW91c2x5IGZhaWxzIGFuZCB0aGUgYmNhc3RlbnRyeSBpcyBmcmVlZCwgYnV0IHRoZSBjb250YWluZXIKICAgc3RpbGwgY29udGFpbnMKICAgcmVmZXJlbmNlIHRvIGl0IC0+IFNJR1NFR1YuCgoyMDA5LTEyLTIxIDEzOjUyICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBGb2xsb3ctdXAgZm9yIHIxNzkyODogd2hpbGUgcjE3OTI4IGZpeGVkIGEgZGFuZ2xpbmcgcG9pbnRlcgogICBkZXJlZmVyZW5jZQogICBkZXRlY3RlZCBieSBydW5uaW5nIHRoZSBOZXQtU05NUCBzb2Z0d2FyZSBvbiBXaW5kb3dzLCB0aGF0IHBhdGNoCiAgIGludHJvZHVjZWQKICAgYSBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlIGFib3V0IHdoaWNoIG9ubHkgVmFsZ3JpbmQgb24gTGludXgKICAgY29tcGxhaW5lZC4KICAgVGhpcyBmb2xsb3ctdXAgcGF0Y2ggZml4ZXMgYm90aCBkYW5nbGluZyBwb2ludGVyIGRlcmVmZXJlbmNlcwogICB0cmlnZ2VyZWQgYnkKICAgcGFyc2luZyB0aGUgcGVyc2lzdGVudERpciBrZXl3b3JkLgoKMjAwOS0xMi0yMSAxMzozMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBBcHBsaWVkIGEgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjkwMTEyMi4gQ2hhbmdlczoKICAgLSBOZXcgZmVhdHVyZTogc3BlY2lmeWluZyBBU04gdHlwZSBTTk1QX05PU1VDSElOU1RBTkNFIGFzIHRoZQogICB0aGlyZCBhcmd1bWVudAogICBvZiBuZXRzbm1wX3NldF9yb3dfY29sdW1uKCkgd2lsbCBjYXVzZSBhbiBTTk1QIEdldFJlcXVlc3QgLwogICBHZXROZXh0UmVxdWVzdCB0bwogICByZXR1cm4gdGhlIGVycm9yIGNvZGUgbm9TdWNoSW5zdGFuY2UgKFNOTVB2Mikgb3Igbm9TdWNoTmFtZQogICAoU05NUHYxKS4gVGhpcwogICBtYWtlcyBpdCBwb3NzaWJsZSB0byBoYXZlIGEgY2FjaGVkIHRhYmxlIHdpdGggb25lIG9yIG1vcmUKICAgImhvbGVzIi4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvIG5vdCBmcmVlKCkgLyBtYWxsb2MoKSB0aGUgbWVtb3J5CiAgIGZvciBzdG9yaW5nCiAgIHRoZSBjYWNoZWQgdmFsdWUgaWYgdGhlIHZhbHVlIGhhcyBub3QgYmVlbiBtb2RpZmllZC4KICAgLSBQZXJmb3JtYW5jZSBvcHRpbWl6YXRpb246IGRvIG5vdCBmcmVlKCkgLyBtYWxsb2MoKSB0aGUgbWVtb3J5CiAgIGZvciBzdG9yaW5nCiAgIHRoZSBjYWNoZWQgdmFsdWUgaWYgdGhlIGxlbmd0aCBvZiB0aGUgdmFsdWUgaGFzIG5vdCBiZWVuCiAgIG1vZGlmaWVkLgogICAtIFBlcmZvcm1hbmNlIG9wdGltaXphdGlvbjogaWYgdGhlIHNpemUgb2YgdGhlIGNhY2hlZCB2YWx1ZQogICBzaHJ1bmssIHVzZQogICByZWFsbG9jKCkgaW5zdGVhZCBvZiBmcmVlKCkgYW5kIG1hbGxvYygpLgoKMjAwOS0xMi0yMSAxMjoyMyAgYnZhc3NjaGUKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXBwbGllZCBhIHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgcGF0Y2ggIzI5MTIwNTU6IG1ha2Ugc3VyZQogICB0aGF0CiAgIHBhcnNpbmcgdGhlICJwZXJzaXN0ZW50RGlyIiBrZXl3b3JkIGluIHNubXAuY29uZiBkb2VzIG5vdCB0cmlnZ2VyCiAgIGEKICAgZGFuZ2xpbmcgcG9pbnRlci4gVG8gbXkgc3VycHJpc2UgQm91bmRzQ2hlY2tlciBjb21wbGFpbmVkIGFib3V0CiAgIHRoaXMKICAgKG9uIFdpbmRvd3MpLCBidXQgVmFsZ3JpbmQgZGlkIG5vdCByZXBvcnQgdGhpcyBpc3N1ZSAob24gTGludXgpLgoKMjAwOS0xMi0yMSAxMjowOCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MjUgKGZpeCBtZW1vcnkgbGVhayBkdXJpbmcgc3RhcnR1cCk6IHdoaWxlCiAgIHIxNzkyNSBmaXhlZAogICBvbmx5IHRoZSBsZWFrIHRyaWdnZXJlZCBmcm9tIGluc2lkZSB0aGUgZm9yLWxvb3AsIHRoaXMgcGF0Y2ggZG9lcwogICBub3cgYWxzbwogICBmaXggdGhlIGxlYWsgdHJpZ2dlcmVkIGJ5IHRoZSBuZXRzbm1wX3RhYmxlX2RhdGFzZXRfYWRkX3JvdygpCiAgIGNhbGwgbmVhcgogICB0aGUgZW5kIG9mIGxvZ19ub3RpZmljYXRpb24oKS4KCjIwMDktMTItMjEgMTI6MDEgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzI5MTIwNjI6IG1ha2Ugc3VyZSB0aGF0IHRoZSBzdHJpbmcgcmV0dXJuZWQgYnkKICAgcmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcoKSBpcyBwcm9wZXJseSB0ZXJtaW5hdGVkLCBzdWNoIHRoYXQKICAgdGhlCiAgIGNhbGxlcnMgb2YgdGhpcyBmdW5jdGlvbiBkbyBub3QgdHJpZ2dlciBwYXN0LWVuZC1vZi1idWZmZXIgcmVhZHMuCiAgIEZvdW5kCiAgIHRoaXMgaXNzdWUgdmlhIEJvdW5kc0NoZWNrZXIuCgoyMDA5LTEyLTIxIDExOjA2ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBBcHBsaWVkIHBhdGNoICMyOTEyMDY4LCB3aGljaCBmaXhlcyBhIG1lbW9yeSBsZWFrIGR1cmluZyBzdGFydHVwLgogICBUaGUKICAgZnVuY3Rpb24gbG9nX25vdGlmaWNhdGlvbigpIGFkZHMgYSByb3cgdG8gdGhlIHRhYmxlCiAgIG5sbUxvZ1ZhclRhYmxlLCBidXQKICAgdGhpcyBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGJlZm9yZSB0aGF0IHRhYmxlIGhhcyBiZWVuCiAgIGluaXRpYWxpemVkLiBJZgogICB0aGF0IGhhcHBlbnMsIG1lbW9yeSBpcyBhbGxvY2F0ZWQgZm9yIGEgcm93IGJ1dCB0aGF0IG1lbW9yeSBpcwogICBuZXZlcgogICBhZGRlZCB0byB0aGUgY2FjaGVkIHRhYmxlIGRhdGEuIFRoZSBCb3VuZHNDaGVja2VyIHRvb2wgcmVwb3J0ZWQKICAgdGhpcyBhcwogICBhICJtZW1vcnkgbGVhayBsZWF2aW5nIHNjb3BlIi4KCjIwMDktMTItMjEgMTA6NTQgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIHRoZSBmb2xsb3dpbmcgdGV4dCB0byB0aGUgIkxpbWl0YXRpb25zIiBzZWN0aW9uIG9mCiAgIFJFQURNRS53aW4zMjoKICAgIldoZW4gdXNpbmcgd2luRXh0RExMLCB0aGVyZSBpcyBhbiBvZmZzZXQgb2YgdXAgdG8gb25lIHNlY29uZAogICBiZXR3ZWVuIHRoZQogICB2YWx1ZSBvZiB0aGUgc3lzVXBUaW1lIHZhcmJpbmQgaW5jbHVkZWQgaW4gdGhlIHRyYXBzIGdlbmVyYXRlZCBieQogICBTTk1QCiAgIGV4dGVuc2lvbiBETExzIChlLmcuIGxpbmtVcCBhbmQgbGlua0Rvd24pIGFuZCB0aGUgdmFsdWUgb2YgdGhlCiAgIHN5c1VwVGltZQogICB2YXJiaW5kIGluY2x1ZGVkIGluIHRyYXBzIGdlbmVyYXRlZCBieSBOZXQtU05NUCBpdHNlbGYgKGUuZy4KICAgY29sZFN0YXJ0KS4iCgoyMDA5LTEyLTIxIDEwOjA5ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgU3BlbGxpbmcgZml4OiByZXBsYWNlZCBhbGwgb2NjdXJyZW5jZXMgb2YgJ3NwZWNpZmMnIGJ5CiAgICdzcGVjaWZpYycuCgoyMDA5LTEyLTIxIDEwOjA2ICBidmFzc2NoZQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIFJlZmFjdG9yaW5nOiBlbGltaW5hdGVkIGR1cGxpY2F0ZWQgY29kZSBieSByZWltcGxlbWVudGluZwogICBzbm1wX2FsYXJtX3JlZ2lzdGVyKCkgdXNpbmcgc25tcF9hbGFybV9yZWdpc3Rlcl9ocigpLiBOZWl0aGVyIHRoZQogICBOZXQtU05NUCBBUEkgbm9yIHRoZSBiZWhhdmlvciBvZiBzbm1wX2FsYXJtX3JlZ2lzdGVyKCkgaGFzIGJlZW4KICAgY2hhbmdlZC4KCjIwMDktMTItMjAgMTE6MTAgIG1hZ2ZyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2FnZW50eHRyYXAuYywgbWFuL01ha2VmaWxlLmluLCAgIAogICAgICBtYW4vYWdlbnR4dHJhcC4xLmRlZjoKCiAgIE5FV1M6IGFwcHM6IEFkZCBjb21tYW5kIHRvIHNlbmQgQWdlbnRYIG5vdGlmeSByZXF1ZXN0cyB0byBhCiAgIG1hc3RlciBhZ2VudC4KCjIwMDktMTItMTcgMTY6NDQgIGJ2YXNzY2hlCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEZvbGxvdy11cCBmb3IgcjE3OTE3IC0tIGJ1aWxkcyBhZ2FpbiBvbiBXaW5kb3dzIHN5c3RlbXMuCgoyMDA5LTEyLTE3IDE2OjAzICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRm9sbG93LXVwIGZvciByMTc5MDMgLyBwYXRjaCAyOTExMzIzICJGaXggYWdlbnQgbG9ja3VwIHdoZW4KICAgbW9uaXRvcmluZwogICBBZ2VudFgtZGVsZWdhdGVkIGluZm9ybWF0aW9uIiAoc3VibWl0dGVkIGJ5IG15c2VsZikuIFRoYXQgcGF0Y2gKICAgZGlkIG5vdCBvbmx5CiAgIGZpeCB0aGUgbG9ja3VwIGJ1dCBhbHNvIG1hZGUgc25tcGQgcHJpbnQgYSB3YXJuaW5nIGR1cmluZyBzdGFydHVwCiAgIHdoZW4KICAgaXF1ZXJ5U2VjTmFtZSB3YXMgbm90IGNvbmZpZ3VyZWQuIFRoaXMgd2FybmluZyB3YXMgcHJpbnRlZCBldmVuCiAgIHdoZW4gbm8KICAgaW50ZXJuYWwgcXVlcmllcyB3ZXJlIHBlcmZvcm1lZC4gVGhpcyB3YXJuaW5nIGlzIG5vdyBvbmx5IHByaW50ZWQKICAganVzdCBiZWZvcmUKICAgdGhlIGZpcnN0IGludGVybmFsIHF1ZXJ5IGlzIG1hZGUgKGR1cmluZyB0aGUgZmlyc3QgY2FsbCBvZgogICBuZXRzbm1wX3F1ZXJ5X2dldF9kZWZhdWx0X3Nlc3Npb24oKSBpbnN0ZWFkIG9mIGR1cmluZyBjcmVhdGlvbiBvZgogICB0aGUgaW50ZXJuYWwKICAgc2Vzc2lvbikuCgoyMDA5LTEyLTE3IDEzOjU1ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jOgoKICAgUk1PTiBNSUIgc291cmNlIGNvZGUgY29tcGlsZXMgYWdhaW4gLS0gc2hvdWxkIGhhdmUgYmVlbiBpbmNsdWRlZAogICBpbiByMTc5MTMuCgoyMDA5LTEyLTE3IDEzOjE4ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTW9kaWZpZWQgdGhlIGltcGxlbWVudGF0aW9uIG9mIGNhbGN1bGF0ZV9zZWN0aW1lX2RpZmYoKSBhbmQKICAgQUdVVElMX3N5c191cF90aW1lKCkgc3VjaCB0aGF0IHRoZXNlIGZ1bmN0aW9ucyBub3JtYWxpemUgdGhlCiAgIHR2X3VzZWMgZmllbGQgb2YKICAgc3RydWN0IHRpbWV2YWwgcHJvcGVybHkuIE5vdGU6IHRoaXMgc291cmNlIGNvZGUgbW9kaWZpY2F0aW9uIGRvZXMKICAgbm90IGFmZmVjdAogICB0aGUgcmV0dXJuIHZhbHVlIG9mIHRoZSBhZm9yZW1lbnRpb25lZCB0d28gZnVuY3Rpb25zLgoKMjAwOS0xMi0xNyAxMzoxMSAgYnZhc3NjaGUKCiAgICogbWFuL25ldHNubXBfdXRpbC4zOgoKICAgUmVtb3ZlZCBkb2N1bWVudGF0aW9uIG9mIHRoZSBESUZGVElNRVZBTCgpIG1hY3JvIC0tIHNob3VsZCBoYXZlCiAgIGJlZW4gaW5jbHVkZWQKICAgaW4gcjE3OTEzLgoKMjAwOS0xMi0xNyAxMzowNSAgYnZhc3NjaGUKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIENvbnZlcnRlZCBzdGFydHRpbWUgZnJvbSBhIGdsb2JhbCB2YXJpYWJsZSBpbnRvIGEgc3RhdGljIHZhcmlhYmxlCiAgIGFuZCBhcHBsaWVkIHRoZSBmb2xsb3dpbmcgY2hhbmdlczoKICAgLSBBZGRlZCB0d28gbmV3IG1hY3JvczogTkVUU05NUF9USU1FUkFERCgpIGFuZAogICBORVRTTk1QX1RJTUVSU1VCKCkuCiAgIC0gQWRkZWQgdGhyZWUgbmV3IGZ1bmN0aW9uczogbmV0c25tcF9nZXRfc3RhcnR0aW1lKCksCiAgIG5ldHNubXBfc2V0X3N0YXJ0dGltZSgpIGFuZCBhdGltZV9oc3VidHJhY3QoKS4KICAgLSBSZXBsYWNlZCBnZXR0aW1lb2ZkYXkoKSArIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSBjYWxscyBieSBhIGNhbGwKICAgdG8gbmV0c25tcF9nZXRfYWdlbnRfdXB0aW1lKCkuCiAgIC0gUmVtb3ZlZCB0aGUgbWFjcm8gRElGRlRJTUVWQUwoKSBiZWNhdXNlIGl0IHdhcyBub3QgdXNlZCBpbnNpZGUKICAgdGhlIE5ldC1TTk1QIHByb2plY3QgYW5kIGJlY2F1c2UgaXQgY29udGFpbmVkIGEgYnVnLgogICAtIFJlbW92ZWQgdGhlIGZ1bmN0aW9ucyBjYWxjdWxhdGVfdGltZV9kaWZmKCksIHVhdGltZV9yZWFkeSgpLAogICBtYXJrZXJfdHRpY2tzKCkgYW5kIHRpbWV2YWxfdHRpY2tzKCkuCgoyMDA5LTEyLTE3IDEyOjQ0ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBCdWcgZml4OiBhY2NvcmRpbmcgdG8gUkZDIDI1NzEgdGhlIHVuaXQgb2Ygc25tcEVuZ2luZVRpbWUgaXMgb25lCiAgIHNlY29uZCwKICAgbm90IG9uZSBodW5kcmVkdGggb2YgYSBzZWNvbmQuCgoyMDA5LTEyLTE3IDEwOjAzICBkdHMxMgoKICAgKiBtYW4vc25tcHRlc3QuMS5kZWY6CgogICBGaXggdHlwby4KCjIwMDktMTItMTYgMTI6MzAgIGJ2YXNzY2hlCgogICAqICBzbm1wbGliL3Rvb2xzLmMsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3Mtb25seSBidWcgZml4ZXM6CiAgIC0gRml4ZWQgdGhlIHN0cmFuZ2UgYnVpbGQgZXJyb3JzIHRoYXQgb2NjdXJyZWQgd2hlbiBjb21waWxpbmcKICAgbGlibmV0c25tcCBhcyBhIERMTCBhbmQgd2hlbiBlaXRoZXIgPHN0ZGxpYi5oPiBvciA8c3RyaW5nLmg+IHdhcwogICBpbmNsdWRlZCBhZnRlciA8bmV0LXNubXAtY29uZmlnLmg+IGluc3RlYWQgb2YgYmVmb3JlLgogICAtIEZvciBkZWJ1ZyBidWlsZHMgd2l0aCBNaWNyb3NvZnQgVmlzdWFsIFN0dWRpbywgZml4ZWQgdGhlCiAgIG1pc21hdGNoZXMgYmV0d2VlbiB0aGUgX21hbGxvY19kYmcoKSBjYWxsIGludm9rZWQgYnkgc3RyZHVwKCkgYW5kCiAgIGZyZWUoKS1pbmcgc3RyZHVwKCktZWQgbWVtb3J5IGJ5IGluY2x1ZGluZyB0aGUgPGNydGRiZy5oPiBoZWFkZXIKICAgaW4gdG9vbHMuYyBhbmQgYnkgZGVmaW5pbmcgdGhlIHByZXByb2Nlc3NvciBzeW1ib2wKICAgX0NSVERCR19NQVBfQUxMT0MuIERldGVjdGVkIHZpYSB0aGUgbWVtb3J5IGNoZWNrZXIgaW5jbHVkZWQgaW4KICAgSW50ZWwgUGFyYWxsZWwgU3R1ZGlvLgoKMjAwOS0xMi0xNCAxNzoyMyAgdGFuZGVycwoKICAgKiAgcGVybC9hZ2VudC9hZ2VudC54cywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgc3luYyBkZWZpbml0aW9uIG9mIG5ldHNubXBfdWRwX2FkZHJfcGFpciBpbiBQZXJsIHdpdGggdGhlIGNoYW5nZXMKICAgaW4KICAgcjE3ODU1IGFuZCByMTc5MDgKCjIwMDktMTItMTQgMTM6NTUgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIEZpeCBUQ1AgdHJhbnNwb3J0IGJyb2tlbiBieSByZXYuIDE3ODU1IC0gY29waWVzIG9mCiAgIG5ldHNubXBfdWRwX2FkZHJfcGFpciBpbiBzbm1wVENQRG9tYWluLmMgYW5kIHNubXBVRFBEb21haW4uYyBtdXN0CiAgIGJlIHRoZSBzYW1lLgoKMjAwOS0xMi0xMSAxNDo0MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgQ0hBTkdFUzogc25tcHVzbTogcGF0Y2ggZnJvbSBNYXJ0aW4gQmpvcmtsdW5kIHRvIGFkZCBhIC1DdyBvcHRpb24KICAgdG8gdXNlIGNyZWF0ZUFuZFdhaXQgZm9yIGFnZW50cyB0aGF0IGFyZSBzdHJpY3QgYWJvdXQgbm90CiAgIGFsbG93aW5nIGEgcm93IHRvIGJlIHNldCB0byBhY3RpdmUgdW50aWwgdGhlIGF1dGhlbnRpY2F0aW9uCiAgIHBhc3N3b3JkIGhhcyBiZWVuIGNoYW5nZWQ7IHBsdXMgd2hpdGUtc3BhY2UgY2xlYW4gdXAsIG1hbnVhbAogICBhZGRpdGlvbnMgYW5kIGhlbHAgb3V0cHV0IG1vZGlmaWNhdGlvbnMgYnkgaGFyZGFrZXIKCjIwMDktMTItMTEgMTQ6MzUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeGVkIGEgY29tcGlsZXIgd2FybmluZyBhYm91dCBhIGZvcm1hdCBzcGVjaWZpZXIgbWlzbWF0Y2guCgoyMDA5LTEyLTExIDE0OjA2ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgd2luRXh0RExMIGJ1Z3MgZml4ZWQ6CiAgIC0gc3lzVXBUaW1lLjAgZG9lcyBub3cgcmVwb3J0IHRoZSBjb3JyZWN0IHZhbHVlLgogICAtIGEgbGlua1VwIG9yIGxpbmtEb3duIHRyYXAgaXMgbm93IHNlbnQgYWZ0ZXIgdGhlIHN0YXR1cyBvZiBhCiAgIG5ldHdvcmsgaW50ZXJmYWNlCiAgIGhhcyBjaGFuZ2VkLgogICAtIHRoZSB2YWx1ZSBvZiB0aGUgc3lzVXBUaW1lLjAgdmFyYmluZCBpbiBsaW5rVXAgYW5kIGxpbmtEb3duCiAgIHRyYXBzIGlzIG5vdwogICBjb3JyZWN0LgoKMjAwOS0xMi0xMCAxNTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0hFUzogMjkxMTk3MDogUHJvcGVybHkgdGVybWluYXRlIGxpbmtlZCBsaXN0CiAgIG9mIHJlZ2lzdHJhdGlvbnMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1pcmtvIERlY2tlcnQuCgoyMDA5LTEyLTEwIDE1OjQzICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMjkxMTMyMzogRml4IGFnZW50IGxvY2t1cCB3aGVuCiAgIG1vbml0b3JpbmcgQWdlbnRYLWRlbGVnYXRlZCBpbmZvcm1hdGlvbgoKMjAwOS0xMi0xMCAxMzo1OSAgYnZhc3NjaGUKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQ2hhbmdlczoKICAgLSBBZGRlZCBpbmZvcm1hdGlvbiBhYm91dCBNaWNyb3NvZnQncyBpbXBsZW1lbnRhdGlvbiBvZgogICBoclN5c3RlbVVwdGltZS4wLgogICAtIEZpeGVkIGEgZmV3IHR5cG9zLgoKMjAwOS0xMi0xMCAxMzowMSAgYnZhc3NjaGUKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEFkZGVkIG1pc3NpbmcgbmV3bGluZSBpbiBhIGxvZ2dpbmcgc3RhdGVtZW50LgoKMjAwOS0xMi0xMCAxMjo1NCAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBGaXhlZCB0aGUgZm9sbG93aW5nIHdpbkV4dERMTCBidWdzOgogICAtIEZpeGVkIGJ1ZyBpbiB0cmFwIGZvcndhcmRpbmc6IGxpbmtEb3duIHRyYXBzIHdlcmUgc2VudCBhcwogICB3YXJtU3RhcnQgdHJhcHMKICAgYW5kIGxpbmtVcCB0cmFwcyB3ZXJlIHNlbnQgYXMgbGlua0Rvd24gdHJhcHMuCiAgIC0gRml4ZWQgYSBtZW1vcnkgbGVhayB0cmlnZ2VyZWQgYnkgZXh0ZW5zaW9uIERMTCBsb2FkaW5nLgogICAtIEEgZGVidWcgdHJhY2Ugc3RhdGVtZW50IGlzIG5vdyBpbnZva2VkIHdoZW5ldmVyIGEgc2VyaW91cyBlcnJvcgogICBoYXMgYmVlbgogICBkZXRlY3RlZC4KCjIwMDktMTItMTAgMTI6MzcgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgT0lEcyBpbiBkZWJ1ZyBtZXNzYWdlcyBnZW5lcmF0ZWQgYnkgdGhlIHdpbkV4dERMTCBtb2R1bGUgYXJlIG5vdwogICBwcmludGVkIGluCiAgIHN5bWJvbGljIGZvcm0gaW5zdGVhZCBvZiBudW1lcmljIGZvcm0uCgoyMDA5LTEyLTEwIDA4OjU3ICBidmFzc2NoZQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBQcm9qZWN0IGRlcGVuZGVuY2llcyBzaG91bGQgbm93IHJlYWxseSBiZSBjb3JyZWN0LiBTaG91bGQgaGF2ZQogICBiZWVuIGluY2x1ZGVkCiAgIGluIHIxNzg3My4KCjIwMDktMTItMTAgMDg6NDEgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ2hhbmdlcyAob25seSBzb3VyY2UgY29kZSBjb21tZW50cyBoYXZlIGJlZW4gY2hhbmdlZCk6CiAgIC0gUmVtb3ZlZCBhIG5vdGUgdGhhdCBjb250cmFkaWN0ZWQgdGhlIGluc3RydWN0aW9ucyBpbgogICBSRUFETUUud2luMzIuCiAgIC0gVXBkYXRlZCBidWlsZCBpbnN0cnVjdGlvbnMgYWZ0ZXIgdGhlIGFkZGl0aW9uIG9mIHRoZSBmaWxlCiAgIHdpbjMyL1NubXAtd2luRXh0RExMLmggaW4gcjE3ODMwLgoKMjAwOS0xMi0xMCAwODoxNyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wc3RhdHVzLmM6CgogICBNYWRlIGZpbGUgaGVhZGVyIGNvbW1lbnRzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZGVzY3JpcHRpb25zIGluIHRoZQogICByZXNwZWN0aXZlIG1hbiBwYWdlcy4KCjIwMDktMTItMTAgMDM6MDQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTWFkZSBzdXJlIHRoYXQgYWdlbnRfc3lzT1JfY2FsbGJhY2sgd29uJ3QgdHJpZ2dlciBhIHdhcm5pbmcgd2hlbgogICByZWdpc3RlcmVkIGFzIGEgY2FsbGJhY2suIENoYW5nZSBhZ2VudHhfcmVvcGVuX3N5c09SVGFibGUgaW4KICAgb3JkZXIgdG8gYXZvaWQgd2FybmluZ3Mgb2YgY29uc3QgcmVtb3ZhbC4KCjIwMDktMTItMDkgMTU6MDUgIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIE1vdmVkIHRoZSBkZWNsYXJhdGlvbiBvZiB0aGUgdmFyaWFibGUgJ25ld2xpbmUnIGluc2lkZSB0aGUKICAgZnVuY3Rpb24KICAgbG9nX2hhbmRsZXJfc3Rkb3V0ZXJyKCkgYmVjYXVzZSB0aGlzIHZhcmlhYmxlIGlzIG9ubHkgdXNlZCBieQogICB0aGF0IGZ1bmN0aW9uLgogICAtIERvY3VtZW50ZWQgdGhlIHB1cnBvc2Ugb2YgdGhlIHZhcmlhYmxlICduZXdsaW5lJy4KICAgLSBCdWcgZml4OiBtYWRlIHN1cmUgdGhhdCB0aGUgY2FsbCBsb2dfaGFuZGxlcl9zdGRvdXRlcnIoKSBkb2VzCiAgIG5vdCB0cmlnZ2VyIGFuCiAgIGludmFsaWQgbWVtb3J5IGFjY2VzcyAoc3RyWy0xXSkgd2hlbiBhbiBlbXB0eSBzdHJpbmcgaXMgcGFzc2VkIHRvCiAgIHRoaXMgZnVuY3Rpb24uCgoyMDA5LTEyLTA5IDE0OjM3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgc3VwcG9ydCBvZiBuZXR3b3JrIGludGVyZmFjZXMgd2l0aCBIVyBhZGRyZXNzCiAgIGJpZ2dlciB0aGFuIDYgYnl0ZXMgdG8gaXBOZXRUb01lZGlhVGFibGUgYW5kCiAgIGlwTmV0VG9QaHlzaWNhbFRhYmxlLgogICBTb21lIEhXLCBsaWtlIEluZmluaUJhbmQsIHVzZXMgSFcgYWRkcmVzc2VzIHdpdGggOSBhbmQgbW9yZQogICBieXRlcy4gU25tcGQgb24gTGludXggd2FzIG5vdCBhYmxlIHRvIHBhcnNlIC9wcm9jL25ldC9hcnAgdGhlbgogICBhbmQgcHJvZHVjZWQgdWdseSAnaW9jdGwgMzUxMjMgcmV0dXJuZWQgLTEnIHRvIGxvZy4KCjIwMDktMTItMDkgMTI6MjcgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZGVkIG1pc3NpbmcgLUxvIGluIGEgY29tbWFuZCBsaW5lIGV4YW1wbGUuCgoyMDA5LTEyLTA5IDEyOjE2ICBidmFzc2NoZQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICBBZGRlZCBzbm1wYXBpLmxpYiB0byB0aGUgbGlua2VyIGlucHV0IGxpc3Qgb2Ygc25tcGQuZXhlLgogICBBcHBhcmVudGx5IFZpc3VhbAogICBTdHVkaW8gMjAwNSBhbmQgMjAwOCBuZWVkIHRoaXMgbGlicmFyeSBpbiB0aGUgbGlua2VyIGlucHV0IGxpc3QKICAgd2hlbiBsaW5raW5nCiAgIHRoZSBleGUsIHdoaWxlIGZvciBWaXN1YWwgU3R1ZGlvIDYgaXQgaXMgc3VmZmljaWVudCB3aGVuIHRoaXMKICAgbGlicmFyeSBpcwogICBwcmVzZW50IGluIHRoZSBsaW5rZXIgaW5wdXQgbGlzdCBvZiBuZXRzbm1wbWlicy5saWIuCgoyMDA5LTEyLTA5IDA4OjQ1ICBidmFzc2NoZQoKICAgKiBSRUFETUUud2luMzI6CgogICBVcGRhdGVkIFJFQURNRS53aW4zMjogYmVjYXVzZSBvZiByMTc4ODQgYW5kIHIxNzg3MywgdGhlIGJ1aWxkCiAgIHByb2Nlc3MgYmVjYW1lIHNpbXBsZXIuCgoyMDA5LTEyLTA5IDA4OjIyICBidmFzc2NoZQoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIEV4cG9ydCBzdHJ0b3VsbCAtLSBzaG91bGQgaGF2ZSBiZWVuIGluY2x1ZGVkIGluIHIxNzg4Ni4KCjIwMDktMTItMDkgMDg6MjEgIGJ2YXNzY2hlCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJldmVydGVkIHIxNzcwMCBmb3IgUkVBRE1FLndpbjMyOiBiZWNhdXNlIG9mIHIxNzg4NiwgbW9kaWZ5aW5nCiAgIHRoZQogICBzdHJ0b3VsbCBsaW5lIGluIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmIGlzIG5vIGxvbmdlcgogICBuZWNlc3NhcnkuCgoyMDA5LTEyLTA5IDA4OjEyICBidmFzc2NoZQoKICAgKiAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgCiAgICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFdpbmRvd3M6IHN3aXRjaGVkIGZyb20gX3N0cnRvdWk2NCgpIHRvIHN0cnRvdWxsKCkgZm9yIE1pY3Jvc29mdAogICBWaXN1YWwgU3R1ZGlvCiAgIDIwMDIgYW5kIGxhdGVyIGJlY2F1c2UgdGhlIGZvcm1lciBpcyBub3QgZnVsbHkgUE9TSVggY29tcGxpYW50LgogICBUaGUgc3RydG91bGwoKQogICB1bml0IHRlc3QgcHJvZHVjZXMgdGhlIGZvbGxvd2luZyBvdXRwdXQgZm9yIF9zdHJ0b3VpNjQoKSB3aXRoCiAgIE1TVkMgMjAwODoKICAgdGVzdCAxNCBmYWlsZWQgKGlucHV0ICIweCIpOiBleHBlY3RlZCBlbmQgMSwgZ290IGVuZCAwCiAgIHRlc3QgMTYgZmFpbGVkIChpbnB1dCAiMHgiKTogZXhwZWN0ZWQgZW5kIDEsIGdvdCBlbmQgMAoKMjAwOS0xMi0wOCAyMTo1NCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYiwgc25tcGQ6IE1ha2Ugc3VyZSB0aGF0IGEgbWFzayBpcyBnaXZlbiB0byBvcGVuCiAgIHdoZW4gT19DUkVBVCBpcyBzcGVjaWZpZWQKCjIwMDktMTItMDggMTY6MjAgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIE1hZGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gZXhlJ3MgYW5kIGxpYidzIGV4cGxpY2l0IHN1Y2ggdGhhdAogICBWaXN1YWwKICAgU3R1ZGlvIGNhbiBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgYnVpbGQgb3JkZXIgaW5zdGVhZCBvZiB0aGUgdXNlcgogICBoYXZpbmcKICAgdG8gZmlndXJlIHRoaXMgb3V0LgoKMjAwOS0xMi0wOCAxNTo0NyAgYnZhc3NjaGUKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEJ1aWxkcyBhZ2FpbiBvbiBVbml4IHN5c3RlbXMgKGZpeGVkIGEgdHlwbyBpbnRyb2R1Y2VkIGluIHIxNzg4MSkuCgoyMDA5LTEyLTA4IDE1OjM3ICBidmFzc2NoZQoKICAgKiB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3A6CgogICBBZGRlZCBtaXNzaW5nICNkZWZpbmUgSEFWRV9XSU4zMl9QTEFURk9STV9TREsuIFdpdGhvdXQgdGhpcwogICBkZWZpbmUgdGhlIE1pY3Jvc29mdAogICBWaXN1YWwgU3R1ZGlvIGNvbXBpbGVyIGNvbXBsYWlucyBhYm91dCBhIGJlbmlnbiByZWRlZmluaXRpb24gb2YKICAgdHlwZSBzb2NrbGVuX3QuCgoyMDA5LTEyLTA4IDE1OjI4ICBidmFzc2NoZQoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENsZWFuZWQgdXAgdGhlIGNvZGUgZm9yIHNldHRpbmcgbGluZSBidWZmZXJpbmc6CiAgIC0gSW5zdGVhZCBvZiBoYXZpbmcgY2FsbHMgdG8gc2V0dmJ1ZigpIGluIG11bHRpcGxlIGZpbGVzLCB0aGVyZQogICBpcyBub3cgb25lIGNhbGwKICAgdG8gc2V0dmJ1ZigpIGZyb20gdGhlIG5ldyBmdW5jdGlvbiBuZXRzbm1wX3NldF9maWxlbG9nLiBUaGVzZQogICBzb3VyY2UgZmlsZXMKICAgYXJlOiBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0YWJsZS5jCiAgIGFuZCBhZ2VudFxtaWJncm91cFxkaXNtYW5cdHJhY2Vyb3V0ZVx0cmFjZVJvdXRlQ3RsVGFibGUuYy4KICAgLSBVc2luZyAtTG8gLyAtTGUgZG9lcyBub3cgZW5hYmxlIGxpbmUgYnVmZmVyaW5nIGZvciBzdGRvdXQgLwogICBzdGRlcnIgcmVzcGVjdGl2ZWx5LgogICAtIFJlbW92ZWQgY29kZSBpbiBzbm1wZC5jIGFuZCBzbm1wdHJhcGQuYyBmb3Igc2V0dGluZyBsaW5lCiAgIGJ1ZmZlcmluZyBvbiBzdGRvdXQKICAgc2luY2Ugc2V0dGluZyBsaW5lIGJ1ZmZlcmluZyBvbiBzdGRvdXQgaXMgbm93IHRyaWdnZXJlZCBieSB0aGUKICAgY29tbWFuZC1saW5lCiAgIG9wdGlvbiAtTG8uCiAgIEJ1Z3MgZml4ZWQ6CiAgIC0gTGluZSBidWZmZXJpbmcgbW9kZSBpcyBub3cgYWxzbyBzZXQgZm9yIHN0ZGVyciB3aGVuIHRoZQogICBjb21tYW5kLWxpbmUgb3B0aW9uCiAgIC1MZSBoYXMgYmVlbiBzcGVjaWZpZWQuCiAgIC0gTGluZSBidWZmZXJpbmcgbW9kZSBpcyBub3cgc2V0IGNvcnJlY3RseSBmb3Igc3Rkb3V0IG9uIFdpbmRvd3MKICAgc3lzdGVtcwogICAoY29tbWFuZC1saW5lIG9wdGlvbiAtTG8pLgoKMjAwOS0xMi0wOCAxMjozMiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgRml4ZWQgYSBjb21waWxlciB3YXJuaW5nIGFib3V0IGxvY2FsIHZhcmlhYmxlcyB0aGF0IHdlcmUgZGVmaW5lZAogICBidXQKICAgbm90IHVzZWQgYnkgb25seSBlbmFibGluZyB0aGUgbG9jYWwgdmFyaWFibGUgZGVmaW5pdGlvbnMgb24gdGhlCiAgIHBsYXRmb3JtIHRoYXQgdXNlcyB0aGVzZSB2YXJpYWJsZXMgKExpbnV4KS4KCjIwMDktMTItMDggMTI6MjYgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIEFkZGVkICNpbmNsdWRlICJtaWJncm91cC91dGlsX2Z1bmNzLmgiLiBGaXhlcyBhIGNvbXBpbGVyIHdhcm5pbmcuCgoyMDA5LTEyLTA4IDEyOjI1ICBidmFzc2NoZQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIEluY2x1ZGUgdGhlIGdldGhvc3RlbnQoKSAvIHNldGhvc3RlbnQoKSBkZWNsYXJhdGlvbnMgYmVmb3JlIHVzaW5nCiAgIHRoZXNlCiAgIGZ1bmN0aW9ucy4gRml4ZXMgYSBjb21waWxlciB3YXJuaW5nIG9uIFdpbmRvd3Mgc3lzdGVtcy4KCjIwMDktMTItMDggMTI6MTEgIGJ2YXNzY2hlCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBGaXhlZCBhbiBpbmNvbnNpc3RlbmN5ICh3aGljaCBpcyBhbGxvd2VkIGJ5IHRoZSBBTlNJIEMgc3RhbmRhcmQpCiAgIGJldHdlZW4KICAgZnVuY3Rpb24gZGVjbGFyYXRpb24gYW5kIGZ1bmN0aW9uIGRlZmluaXRpb24gb2YKICAgbmV0c25tcF9hZGRfZ2xvYmFsX3RyYXBoYW5kbGVyIGFuZAogICBuZXRzbm1wX2FkZF9kZWZhdWx0X3RyYXBoYW5kbGVyIHN1Y2gKICAgdGhhdCB0aGUgTWljcm9zb2Z0IFZpc3VhbCBTdHVkaW8gY29tcGlsZXIgZG9lcyBubyBsb25nZXIgY29tcGxhaW4KICAgYWJvdXQKICAgdGhpcy4KCjIwMDktMTItMDggMTI6MDggIGJ2YXNzY2hlCgogICAqIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBGaXhlZCBhIGNvbXBpbGVyIHdhcm5pbmc6IG1hZGUgc3VyZSB0aGF0IHRoZSBjb21waWxlciBkb2VzIG5vdAogICBjb21wbGFpbiBhYm91dCBpbXBsaWNpdGx5IGNhc3RpbmcgYXdheSBjb25zdG5lc3MuCgoyMDA5LTEyLTA4IDEyOjA3ICBidmFzc2NoZQoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIE9ubHkgY29tcGlsZSB0aGUgd2luRXh0RExMIHNvdXJjZSBjb2RlIGlmIHRoZSBwcmVwcm9jZXNzb3IgbWFjcm8KICAgVVNJTkdfV0lORVhURExMX01PRFVMRSBoYXMgYmVlbiBkZWZpbmVkLgoKMjAwOS0xMi0wOCAxMjowMyAgYnZhc3NjaGUKCiAgICogd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIEFkZGVkIG1pc3NpbmcgI2RlZmluZSBIQVZFX1dJTjMyX1BMQVRGT1JNX1NESy4KCjIwMDktMTItMDggMTI6MDEgIGJ2YXNzY2hlCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIE1hZGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gZXhlJ3MgYW5kIGxpYidzIGV4cGxpY2l0IHN1Y2ggdGhhdAogICBWaXN1YWwKICAgU3R1ZGlvIGNhbiBmaWd1cmUgb3V0IHRoZSBwcm9wZXIgYnVpbGQgb3JkZXIgaW5zdGVhZCBvZiB0aGUgdXNlcgogICBoYXZpbmcKICAgdG8gZmlndXJlIG91dCB0aGUgYnVpbGQgb3JkZXIuCgoyMDA5LTEyLTA4IDA5OjQ2ICBidmFzc2NoZQoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luZG93cyAvIE1pY3Jvc29mdCBWaXN1YWwgU3R1ZGlvOiBkaXNhYmxlZCB0aGUgY29tcGlsZXIgd2FybmluZwogICBhYm91dAogICBzaWduZWQvdW5zaWduZWQgbWlzbWF0Y2hlcyAoNDAxOCkgYmVjYXVzZSB0aGlzIHdhcm5pbmcgZG9lcyBub3QKICAgeWllbGQKICAgYW55IHVzZWZ1bCBpbmZvcm1hdGlvbi4KCjIwMDktMTItMDggMDk6MTcgIGJ2YXNzY2hlCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRm9sbG93LXVwIGZvciByMTc2MzkgKHBhdGNoIDI3ODA0MTEgLS0gZml4IGNvbXBpbGVyIHdhcm5pbmdzKToKICAgYXBwbGllZAogICB0aGlzIHBhdGNoIHRvIG5ldC1zbm1wLWNvbmZpZy5oLmluIHRvbyBzdWNoIHRoYXQKICAgbmV0LXNubXAtY29uZmlnLmggYW5kCiAgIG5ldC1zbm1wLWNvbmZpZy5oLmluIG1hdGNoIGFnYWluLgoKMjAwOS0xMi0wOCAwODoxNiAgYnZhc3NjaGUKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBNYWRlIHN1cmUgdGhhdCBhZ2VudHhfc3lzT1JfY2FsbGJhY2soKSBkb2VzIG5vdCB0cmlnZ2VyIGEKICAgY29tcGlsZXIKICAgd2FybmluZyB3aGVuIHRoZSB0aGlyZCBhcmd1bWVudCBwYXNzZWQgdG8gdGhpcyBmdW5jdGlvbiBoYXMgYmVlbgogICBkZWNsYXJlZCBjb25zdC4KCjIwMDktMTItMDggMDg6MTQgIGJ2YXNzY2hlCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaDoKCiAgIENoYW5nZWQgdGhlIHJldHVybiB0eXBlIG9mIHN0cnRvdWxsKCkgZnJvbSAndW5zaWduZWQgbG9uZyBsb25nJwogICAod2hpY2gKICAgaXMgbm90IHZhbGlkIEM4OSkgdG8gJ3VpbnQ2NF90JyAoZGVjbGFyZWQgaW4KICAgPG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oPikuCiAgIFRoaXMgY2hhbmdlIG1ha2VzIHRoZSBOZXQtU05NUCBzb3VyY2UgY29kZSBjb21waWxlIGFnYWluIHdpdGgKICAgTVNWQyA2LjAuCgoyMDA5LTEyLTA3IDEwOjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgVHdlYWsgbWlzc2luZyBzdWJpZGVudGlmaWVyIHByb2Nlc3NpbmcgdG8gYmUgbW9yZSB0eXBlLWF3YXJlLgogICAoQW4gaXNzdWUgd2l0aCBBSVgsIGF0IGxlYXN0KQoKMjAwOS0xMi0wNiAxODozOCAgbWFnZnIKCiAgICogIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IE1ha2UgdGhlIGxpc3RzIG9mIGNvbTJTZWMqRW50cmllcyBzdGF0aWMKCjIwMDktMTItMDYgMTg6MzQgIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBNYWtlIHRoZSBpdGVyYXRvciB2YXJpYWJsZSBpbiBuZXRzbm1wXypfZ2V0U2VjTmFtZSBjb25zdAoKMjAwOS0xMi0wNiAxODoyOSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IENoYW5nZSB0aGUgdHlwZXMgb2YgdGhlIHJldHVybiB2YWx1ZXMgb2YKICAgbmV0c25tcF8qX2dldFNlY05hbWUgZnJvbSBjaGFyKiB0byBjb25zdCBjaGFyKiBzaW5jZSB0aGV5IHBvaW50CiAgIGludG8gaW50ZXJuYWwgc3RydWN0dXJlcy4KCjIwMDktMTItMDUgMjA6MTkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgZml4IGRlY2xhcmF0aW9uIG9mIHN0cnRvdWxsCgoyMDA5LTEyLTA1IDE3OjQyICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgY2FsbCBuZXRzbm1wX3JlYWRfbW9kdWxlIGluc3RlYWQgb2YgcmVhZF9tb2R1bGUgdG8gbWFrZSBpdAogICBjb21waWxlIHdpdGgKICAgTkVUU05NUF9DTEVBTl9OQU1FU1BBQ0UKCjIwMDktMTItMDIgMTU6MzkgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZpeGVkIGludmFsaWQgYWNjZXNzIHRvIG1lbW9yeSBpbiBUQ1AtTUlCCiAgIFRoaXMgcGFydGx5IHJldmVydHMgcGF0Y2ggMTc3MTkgLSB0aGUgZW50cmllcyAqYXJlKiB1c2VkIGFmdGVyCiAgIHJhd19kYXRhIGNvbnRhaW5lciBpcyBmcmVlZC4gVGhlc2UgZW50cmllcyBzaG91bGQgYmUgZnJlZWQgd2hlbgogICBhc3NvY2lhdGVkIHJvd3JlcV9jdHggaXMgZnJlZWQuCgoyMDA5LTEyLTAyIDA4OjMwICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCB1ZHBUYWJsZSBpbmRleGVzIG9uIGJpZy1lbmRpYW4gNjRiaXQgTGludXguCiAgIFRoZSBpbmRleCB3YXMgYWx3YXlzICcwLjAuMC4wJyBpbnN0ZWFkIG9mIHJlYWwgbG9jYWwgSVAgYWRkcmVzcy4KCjIwMDktMTItMDEgMTI6MzYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIFVwZGF0ZSBhIHJlZHVuZGFudCAoYW5kIHByb2JhYmx5IGluYWNjdXJhdGUpIGNvbW1lbnQuCgoyMDA5LTEyLTAxIDEyOjMxICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjgyMjM2MDogRml4IG1lbW9yeSBsZWFrIHdoZW4gYnVpbGRpbmcKICAgdGFibGUgT0lEcwoKMjAwOS0xMi0wMSAxMjowOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXB0YWJsZTogQlVHUzogMjgzNzk5ODogSGFuZGxlIG1pc3NpbmcgaW5zdGFuY2UKICAgc3ViaWRlbnRpZmllcnMgaW4gcmVzdWx0cwoKMjAwOS0xMi0wMSAxMTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVR1M6IDI4NDEwMDg6IFByb3RlY3QgYWdhaW5zdCBjcmFzaCBmb2xsb3dpbmcKICAgZmFpbGVkIEFnZW50WCByZXNwb25zZQoKMjAwOS0xMi0wMSAwNzozNCAganNhZnJhbmVrCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oLCAgIAogICAgICBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRml4IHJlc3BvbmRpbmcgdG8gYnJvYWRjYXN0IHJlcXVlc3RzLgogICBVRFAgcmVzcG9uc2VzIGFyZSBzZW50IHdpdGggc291cmNlIElQIGFkZHJlc3Mgd2hpY2ggd2FzCiAgIGRlc3RpbmF0aW9uIG9mCiAgIGFwcHJvcHJpYXRlIHJlcXVlc3RzIChpbXBsZW1lbnRlZCBpbiBTVk4gcmV2LiAxNTIxNSkuIEJ1dCBpZiB0aGUKICAgZGVzdGluYXRpb24KICAgb2YgYSByZXF1ZXN0IGlzIGJyb2FkY2FzdCBJUCBhZGRyZXNzLCB0aGUgcmVxdWVzdCB3YXMgc2VudCB3aXRoCiAgIHRoZSBicm9hZGNhc3QKICAgYWRkcmVzcyBhcyBzb3VyY2UuIHNlbmRtc2coKSBvbiBMaW51eCBkb2VzIG5vdCBzdXBwb3J0IHRoaXMgYW5kCiAgIHJldHVybnMgZXJyb3IKICAgLT4gcmVzcG9uc2UgaXMgbm90IHNlbnQuIEluIG9yZGVyIHRvIHNlbmQgcmVzcG9uc2VzIGZyb20gdGhlIHNhbWUKICAgaW50ZXJmYWNlLAogICBpbnRlcmZhY2UgaW5kZXggb2YgdGhlIGFwcHJvcHJpYXRlIGludGVyZmFjZSBtdXN0IGJlIHVzZWQuCgoyMDA5LTEyLTAxIDAwOjI5ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5IGNvbXBpbGUgYWZ0ZXIgMTc4NTIuCgoyMDA5LTEyLTAxIDAwOjI0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGFjdHVhbGx5IGNvbXBpbGUgYWZ0ZXIgMTc4NDIuCgoyMDA5LTExLTMwIDE2OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg3Mzg1ODogRml4IGhhbmRsaW5nIG9mIHNjaGVkT3duZXIgaW5kZXguCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1heCBTY2h1YmVydC4KCjIwMDktMTEtMzAgMTY6NDYgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUdTOiAyODg4NTY5OiBGaXggZ2VuZXJhdGlvbiBvZiB0YWJsZSBjb2x1bW5zCiAgIGFycmF5CgoyMDA5LTExLTMwIDE2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICBDSEFOR0VTOiBhZ2VudDogQlVHUzogMjg5NDA1OTogSGFuZGxlIGVycm9ycyB3aGVuIGNvdW50aW5nCiAgIGludGVyZmFjZXMKCjIwMDktMTEtMzAgMTY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IEJVRzogMjg5NzAwMDogU3VwcHJlc3MgMzItYml0IGNvdW50ZXIgdHJ1bmNhdGlvbgogICB3YXJuaW5ncy4KCjIwMDktMTEtMzAgMTU6MzQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjkwMzA5MjogRml4IGJyb2tlbiBoYW5kbGluZyBvZiBicm9hZGNhc3QKICAgZW50cmllcy4KCjIwMDktMTEtMzAgMTU6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyOTAxMDI5OiBGaXggY29tcGlsZXIgd2FybmluZyBvbgogICBDbG9zZUhhbmRsZSgpCiAgIEVuZGlhbiBwcm9ibGVtcyBhbHJlYWR5IGFkZHJlc3NlZCBieSBwYXRjaCAjMjgzNTU3NgoKMjAwOS0xMS0zMCAxNToxMyAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyODkwOTMxOiBCZXR0ZXIgaGFuZGxpbmcgb2YgQ291bnRlcjY0CiAgIHZhbHVlcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTWF4IFJvbWFub3YuCgoyMDA5LTExLTMwIDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4NzgxNjogUHJvdGVjdCBhZ2FpbnN0IGRpdmlzaW9uLWJ5LXplcm8KICAgY3Jhc2gKCjIwMDktMTEtMzAgMTU6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzIyMDogRml4IGNvbXBpbGF0aW9uIHByb2JsZW1zIHdoZW4KICAgaWZYVGFibGUgaXMgbm90IGluY2x1ZGVkLgoKMjAwOS0xMS0zMCAxNDo0OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMjg4MzE1NTogRml4IG1lbW9yeSBsZWFrIGluIHByb3h5CiAgIGhhbmRsaW5nLgogICBQYXRjaCBzdXBwbGllZCBieSBHb3d0aGFtIFRob21tYW5kcmEuCgoyMDA5LTExLTMwIDE0OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODgzMDkyOiBTdXBwb3J0IG1vbml0b3JpbmcgcHJvY2Vzc2VzIHRoYXQKICAgc2hvdWxkIG5vdCBiZSBydW5uaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBDaHJpc3RpYW4gKGNnNzUpLgogICAKICAgUW46IFNob3VsZCB0aGlzIGZ1bmN0aW9uYWxpdHkgYmUgYmFjay1wb3J0ZWQgdG8gZWFybGllciBsaW5lcz8KCjIwMDktMTEtMzAgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODc3NTE4OiBGaXggaGFuZGxpbmcgb2Ygc2NvcGVkIEFnZW50WAogICB2YXJpYWJsZXMKCjIwMDktMTEtMzAgMTQ6MDEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogYWdlbnQ6IFBBVENIOiAyODM1NTc2OiBGaXggZW5kaWFubmVzcyBpc3N1ZXMgaW4KICAgcGFzcy9wYXNzX3BlcnNpc3QKCjIwMDktMTEtMjcgMDg6NTQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jOgoKICAgUmVtb3ZlIGV4ZWN1dGFibGUgYXR0cmlidXRlIGZyb20gc291cmNlIGZpbGVzLgoKMjAwOS0xMS0yNSAyMDozNSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBsb2NhbC9taWIyYy5ub3RpZnkuY29uZjoKCiAgIENIQU5HRVM6IHNubXBkOiBNYWtlIGFsbCB0aGUgb2lkcyBhbmQgb2lkIGxlbmd0aHMgaW4gYWdlbnRfdHJhcC5jCiAgIGNvbnN0IGFuZCB1c2UgdGhlbSBmcm9tIGV2ZXJ5d2hlcmUuCgoyMDA5LTExLTI1IDIwOjI3ICBtYWdmcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogc25tcGxpYjogSW5zdGFsbCBsaWJyYXJ5L29pZC5oLiBUaGFua3MgdG8gIlRvbWFzeiBMaXMiCiAgIHdobyBzcG90dGVkIHRoZSBidWcuCgoyMDA5LTExLTI1IDA5OjQ3ICBidmFzc2NoZQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBDb21tZW50LW9ubHkgY2hhbmdlOiBjaGFuZ2VkIHRoZSBuYW1lIGluIHRoZSBmaWxlIGhlYWRlciBmcm9tCiAgIHRlc3RoYW5kbGVyLmgKICAgdG8gaW5zdGFuY2UuaCBzdWNoIHRoYXQgaXQgbm93IG1hdGNoZXMgdGhlIGZpbGVuYW1lLgoKMjAwOS0xMS0yNCAwNzo0OSAgbWFnZnIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVtb3ZlIHVubmVjZXNzYXJ5IGNhc3QKCjIwMDktMTEtMjMgMDc6MDcgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBDSEFOR0VTOiBzbm1wZDogTWFrZSB0aGUgZW50ZXJwcmlzZSBhcmd1bWVudCBvZgogICBuZXRzbm1wX3NlbmRfdHJhcHMgYW5kIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgY29uc3QKCjIwMDktMTEtMjMgMDc6MDIgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHRoZSBuYW1lIGFyZ3VtZW50IHRvIGZpbmRfdmFyYmluZF9pbl9saXN0CiAgIGNvbnN0CgoyMDA5LTExLTIyIDIzOjI1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgUmVtb3ZlIHNvbWUgbG9jYWwgcmVkZWNsYXJhdGlvbnMgb2YgZnVuY3Rpb25zCgoyMDA5LTExLTIyIDAxOjAzICBtYWdmcgoKICAgKiAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmcsIFdpbjMyOiBSZW1vdmUgYSBmZXcgdW51c2VkIGNvbmZpZ3VyZSBzeW1ib2xzCgoyMDA5LTExLTIxIDA4OjAxICBidmFzc2NoZQoKICAgKiB3aW4zMi9Tbm1wLXdpbkV4dERMTC5oLCB3aW4zMi9zbm1wLXdpbmV4dGRsbC5oOgoKICAgUmVwbGFjZWQgYW4gYWNjaWRlbnRhbGx5IGNvbW1pdHRlZCBmaWxlIGJ5IHRoZSBwcm9wZXIgY29udGVudHMuCgoyMDA5LTExLTIwIDE2OjI5ICBidmFzc2NoZQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIFJldmVydGVkIGFjY2lkZW50YWxseSBtZXJnZWQgY2hhbmdlcy4KCjIwMDktMTEtMjAgMTY6MjYgIGJ2YXNzY2hlCgogICAqICB3aW4zMi9saWIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9zbm1wLXdpbmV4dGRsbC5oOgoKICAgVXBkYXRlZCBTdWJ2ZXJzaW9uIGlnbm9yZSBsaXN0LgoKMjAwOS0xMS0yMCAxNjoxOCAgYnZhc3NjaGUKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywgIAogICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcENpZHJSb3V0ZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgICAKICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTcGVsbGluZyBmaXggaW4gQyBzb3VyY2UgY29kZSBjb21tZW50czogcmVwbGFjZWQgJ3JldHJpdmFsJyBieQogICAncmV0cmlldmFsJy4KCjIwMDktMTEtMjAgMTY6MTUgIGJ2YXNzY2hlCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgRml4ZWQgYSBuYW1pbmcgaW5jb25zaXN0ZW5jeTogcmVwbGFjZWQgdHdvIG9jY3VycmVuY2VzIHdpbkV4dERsbAogICBieSB3aW5FeHRETEwgaW4gc291cmNlIGNvZGUgY29tbWVudHMuCgoyMDA5LTExLTE5IDIyOjUyICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmg6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyOTAwMDc4OiBBZGQgc3VwcG9ydCBmb3IgT0lEIHZhcmlhYmxlcyB3aXRoCiAgIHNpemUgaW4gZWxlbWVudHMgaW5zdGVhZCBvZiBieXRlcywgY29ycmVjdCBzeXNPYmplY3RJRCB0byB1c2UKICAgdGhpcy4KCjIwMDktMTEtMTMgMTI6NTkgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBsb2dnaW5nIG9mICd0cnVuY2F0aW5nIGludGVnZXIgdmFsdWUgPiAzMgogICBiaXRzJyBpbiBJUC1NSUIgYW5kIFRDUC1NSUIKICAgVGhlIGNvdW50ZXJzLCB3aGljaCBncm93IGZhc3QgYXJlIG5vdyBjdXQgdG8gMzJiaXRzLgoKMjAwOS0xMS0xMiAwODoyNiAgbWFnZnIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFVzZSBiaWcgcHJpbnRmJ3MgaW5zdGVhZCBvZiBtYW55IHNtYWxsIG9uZXMgdG8gc2F2ZSBhIGZldyBodW5kcmVkCiAgIGJ5dGVzIG9uIHRoZSBmaW5hbCBleGVjdXRhYmxlIHNpemUuCgoyMDA5LTExLTEyIDAyOjI0ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL01ha2VmaWxlLmluLCAgIAogICAgICBzbm1wbGliL3N0cmxjcHkuYywgc25tcGxpYi9zdHJ0b2tfci5jLCBzbm1wbGliL3N0cnRvbC5jLCAgIAogICAgICBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBBQ19SRVBMQUNFX0ZVTkNTIHRvIGhhbmRsZSBjb2RlIHRoYXQgaXMKICAgbWlzc2luZyBvbiBzb21lIHBsYXRmb3Jtcy4KCjIwMDktMTEtMTEgMDk6MDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IGNhY2hlIGZyZWUgcm91dGluZSB0byBtYXRjaCBoZWFkZXIgZGVjbGFyYXRpb24uCiAgIFJldHVybiBzdWNjZXNzL2ZhaWx1cmUgdmFsdWVzIGZyb20gY2FjaGUgbG9hZCByb3V0aW5lLgogICBQcm9ibGVtIGlkZW50aWZpZWQgYnkgWHVhbi4KCjIwMDktMTAtMzAgMDk6NTEgIG1hZ2ZyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkLmgsICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIE5FV1M6IHNubXBsaWI6IFJldmVydCAxNzgwOCwgaW5zdGVhZCBmYWN0b3Igb3V0IHRoZSBkZWNsYXJhdGlvbgogICBvZiBvaWQgdG8gaXQncyBvd24gZmlsZSBhbmQgaW5jbHVkZSB0aGF0IGZpbGUgZnJvbSBib3RoIHR5cGVzLmgKICAgYW5kIGFzbjEuaAoKMjAwOS0xMC0zMCAwODoyOCAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgIAogICAgICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdXNtLmMsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkLCBzbm1wbmV0c3RhdDogQWRkIGNvcnJlY3Qgc2l6ZSBwcmVmaXhlcwogICB3aGVuIHByaW50aW5nIHZhcmlhYmxlcyBvZiB0eXBlIG9pZC4KCjIwMDktMTAtMzAgMDg6MDcgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENoYW5nZSBvaWQgdG8gYmUgYSAzMi1iaXQgdHlwZSBvbiBJTFA2NCBhbmQKICAgTFA2NCBwbGF0Zm9ybXMuCgoyMDA5LTEwLTMwIDA4OjA1ICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgTkVXUzogc25tcGxpYjogUmVtb3ZlIHRoZSBvaWQgdHlwZWRlZiBmcm9tCiAgIDxuZXQtc25tcC9saWJyYXJ5L2FzbjEuaD4uIEl0IGlzIHN0aWxsIHByZXNlbnQgaW4KICAgPG5ldC1zbm1wL3R5cGVzLmg+LCB1c2UgdGhhdCBmaWxlLgoKMjAwOS0xMC0yOCAxNjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBkb24ndCByZXF1aXJlIHN1YmFnZW50X2luaXQoKSBpZiBub3Qgb25seSBidWlsZGluZyBtYXN0ZXIgYWdlbnQKICAgY29kZQoKMjAwOS0xMC0yNyAwNjo0NCAgbWFnZnIKCiAgICogIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwgICAKICAgICAgbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLCBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5yb3cuY29uZiwgbG9jYWwvbWliMmMuc2NhbGFyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBSZW1vdmUgdW5uZWNlc3NhcnkgY2FzdHMgdG8gdV9jaGFyKgoKMjAwOS0xMC0xNCAyMzoxMiAgbWFnZnIKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvc2NhcGkuYzoKCiAgIENIQU5HRVM6IGFwcHMsIHNubXBsaWI6IFBBVENIOiAyODM1NTc3OiBpZGVudGlmaWVkIGJ5ICJCYXJ0IFZhbgogICBBc3NjaGUiOiBSZXBsYWNlIFNOTVBfWkVSTyBvZiBhcnJheXMgd2l0aCBhIG1lbXNldC4KCjIwMDktMTAtMTIgMjA6MjggIG1hZ2ZyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIHJwIHZhcmlhYmxlIHRvIHRoZSBzbWFsbGVzdCBwb3NzaWJsZSBvbmUuCgoyMDA5LTEwLTA5IDEyOjM4ICBqc2FmcmFuZWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6Mjg3MTc0NzogcGx1ZyBtZW1vcnkgbGVhayBpbiBPSUQKICAgcHJvY2Vzc2luZy4KICAgVGhlIG1lbW9yeSBsZWFrZWQgd2hlbiBzbWFsbCBPSUQsIHdoaWNoIGNvdWxkIGZpdCBwcmUtYWxsb2NhdGVkCiAgIHZwLT5uYW1lX2xvYywgd2FzIHBsYWNlZCBpbiBkaWZmZXJlbnQgKGFsbG9jYXRlZCkgb25lLgoKMjAwOS0xMC0wOSAwNTozMSAgbWFnZnIKCiAgICogc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogQlVHOiAyODM4MjQzOiBDb3JyZWN0IHRoZSBvdXRwdXQgb2YgdW5zaWduZWQgdmFsdWVzLgogICBUaGFua3MgdG8gSmFjayBIdWFuZyBvZiBRdWFsY29tbSB3aG8gcG9pbnRlZCBvdXQgdGhpcyBidWcuCgoyMDA5LTEwLTA5IDA1OjAwICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBDaGFuZ2UgdGhlIHBhcnNpbmcgb2YgcmFuZ2VzIHRvIGFjY2VwdCBhbGwKICAgdmFsaWQgdmFsdWVzLgoKMjAwOS0xMC0wNyAyMjoyNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IG1pc2M6IFBBVENIOiAyODM2MTEyOiBVc2UgdGhlIHJpZ2h0IG1vZGlmaWVyIHdoZW4KICAgcHJpbnRpbmcgc2l6ZV90IGFuZCBzc2l6ZV90IHZhcmlhYmxlcy4KCjIwMDktMTAtMDcgMTI6NTAgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBGaXhlZCBjcmVhdGlvbiBvZiB2aWV3cyB1c2luZyBzbm1wdXNtLCBPSURzIHdpdGgKICAgaW5kZXhlcyA+IDI1NSBhcmUgYWxsb3dlZCBub3cuCiAgIFRoaXMgcmV2ZXJ0cyBTVk4gY29tbWl0ICM3NDkyLgoKMjAwOS0xMC0wNSAxOToxOSAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RleHRfdXRpbHMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IENvcnJlY3QgdGhlIHNwZWxsaW5nIG9mIF9fY3BsdXNwbHVzIHdoZW4KICAgY2hlY2tpbmcgaWYgdGhlIGZpbGUgc2hvdWxkIGJlIHdyYXBwZWQgaW4gZXh0ZXJuICJDIi4KCjIwMDktMTAtMDUgMDY6MTMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIENIQU5HRVM6IHNubXB3YWxrOiBIYW5kbGUgdGhlIGNhc2Ugd2hlbiB0aGUgZW5kIG9pZCBpcyBsb25nZXIKICAgdGhhbiB0aGUgY3VycmVudCBvaWQgY29ycmVjdGx5CgoyMDA5LTA5LTMwIDEwOjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUHJvdGVjdCBhZ2FpbnN0IG1pc3NpbmcgcGFja2FnZSB2ZXJzaW9uCiAgIGluZm9ybWF0aW9uIGNyYXNoaW5nIHRoZSBhZ2VudC4KICAgUHJvYmxlbSByZXBvcnRlZCBieSBJbnlhdmVuIFNha2FyYWkuCgoyMDA5LTA5LTI3IDE0OjU5ICBhbGV4X2IKCiAgICogIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkucGwsICAgCiAgICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9tYW5kaXIyaHRtbDoKCiAgIFdpbjMyOiBCaW5hcnkgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFuZCBzY3JpcHQgdXBkYXRlcy4KCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucmMzIC0+IFY1LjUKCjIwMDktMDktMjMgMjM6NDIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDktMjMgMjM6NDAgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIHJlbW92ZSBTVk4gYnJhbmNoIHdvcmRpbmcKCjIwMDktMDktMjMgMjM6MzYgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIHByb3BlciBwcm9qZWN0IGNhcGl0YWxpemF0aW9uCgoyMDA5LTA5LTIzIDIzOjM1ICBoYXJkYWtlcgoKICAgKiAgRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDktMjMgMjM6MzAgIGhhcmRha2VyCgogICAqIG1hbi9wZHVfYXBpLjMsIG1hbi9zZXNzaW9uX2FwaS4zLCBtYW4vdmFyYmluZF9hcGkuMzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA5LTA5LTIyIDIxOjUxICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgZml4IHR5cG9zCgoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucmMyIC0+IFY1LjUucmMzCgkKMjAwOS0wOS0xNCAyMjozOSAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOS0xNCAyMjozNiAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjLCBtYW4vcGR1X2FwaS4zLCBtYW4vc2Vzc2lvbl9hcGkuMywgICAKICAgICAgbWFuL3ZhcmJpbmRfYXBpLjM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDktMTQgMjI6MTggIGhhcmRha2VyCgogICAqIFJFQURNRS5haXgsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBQYXRjaCBmcm9tIG1hZ2ZyIGZvciA1LjUgc3BlY2lmaWMgYWl4IGJ1aWxkIGZpeGVzCgoyMDA5LTA5LTAyIDA3OjEyICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcmVuYW1lIE1JQiBtYWNybyB0byBORVRTTk1QX01JQjJfT0lELCBNSUIgaXMKICAgdG9vIGdlbmVyaWMgYW5kIG1heSBjb25mbGljdCB3aXRoIGFwcGxpY2F0aW9ucy4KICAgCiAgIFRoZSBvbGQgTUlCIG1hY3JvIGlzIGtlcHQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHVubGVzcwogICBORVRTTk1QX05PX0xFR0FDWV9ERUZJTklUSU9OUyBpcyBkZWZpbmVkLgoKMjAwOS0wOC0zMSAxOTozOCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIEFkZGl0aW9uYWwgUkZDIG1pYnMKCjIwMDktMDgtMzEgMTk6MzcgIG5iYQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIElBTkEgZml4ZWQgYSBidWcKCjIwMDktMDgtMjkgMDc6MjkgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFJlbW92ZSB1bm5lZWRlZCBjYXN0cy4KCjIwMDktMDgtMjkgMDc6MjggIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IHJldCBpcyBvbmx5IHVzZWQgaW4gc2V0dGFibGUgdGFibGVzIHNvIG9ubHkgZGVjbGFyZSBpdAogICB0aGVuLgoKMjAwOS0wOC0yOSAwNzoyNCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogUmVwbGFjZSB0aGUgX29pZF9sZW4gdmFyaWFibGUgd2l0aCBhbiBleHBsaWNpdCBjYWxsIG9mCiAgIE9JRF9MRU5HVEguCgoyMDA5LTA4LTI5IDA3OjIxICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBNYWtlIGV2ZXJ5IGZ1bmN0aW9uIHRoYXQgY2FuIGJlIHN0YXRpYyBzdGF0aWMuIFJlbW92ZSB0aGUKICAgZGVjbGFyYXRpb25zIG9mIHRoZSBzdGF0aWMgZnVuY3Rpb25zIGFuZCB0aGUgcHJpdmF0ZSBkZWZpbmVzIGZyb20KICAgdGhlIGhlYWRlci4KCjIwMDktMDgtMjkgMDc6MTkgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFJlb3JkZXIgdGhlIGZ1bmN0aW9ucyBpbiBvcmRlciB0byBhdm9pZCB0aGUgbmVlZCBmb3IKICAgZm9yd2FyZCBkZWNsYXJhdGlvbnMuCgoyMDA5LTA4LTI5IDA3OjE2ICBtYWdmcgoKICAgKiBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIG1pYjJjOiBuZXRzbm1wX3RhYmxlX3JlZ2lzdGVyIHNob3VsZCBiZSBuZXRzbm1wX3JlZ2lzdGVyX3RhYmxlCiAgIGFuZCB0YWtlIG9ubHkgdHdvIGFyZ21lbnRzLgoKMjAwOS0wOC0yOSAwNzoxNCAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogYnVpbGRfb2lkIGV4cGVjdHMgYSBwb2ludGVyIHRvIGFsbG9jYXRlZCBvaWQuIENoYW5nZSB0bwogICB1c2UgYnVpbGRfb2lkX25vYWxsb2MgYW5kIHJlbW92ZSBvbmUgY29weSBvZiB0aGUgaW5kaWNlcy4KCjIwMDktMDgtMjkgMDc6MTAgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLnJhdy10YWJsZS5jb25mOgoKICAgbWliMmM6IFRoZXJlIGlzIG5vIGluZGV4X29pZF9sZW4gbWVtYmVyIGluIHN0cnVjdCBlbnRyeS4gVXNlIHRoZQogICBpbnRlbmRlZCBsb2NhbCB2YXJpYWJsZSBpbmRleF9vaWRfbGVuLgoKMjAwOS0wOC0yOSAwNzowNiAgbWFnZnIKCiAgICogbG9jYWwvbWliMmMucmF3LXRhYmxlLmNvbmY6CgogICBtaWIyYzogQ29ycmVjdCB0aGUgcmV0dXJuIHR5cGUgb2YgJHtpfV9nZXQqZW50cnkgdG8gbWF0Y2ggdGhlCiAgIHJldHVybmVkIHR5cGUuCgoyMDA5LTA4LTI2IDIyOjM3ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB3aHdvb3BzOyBibGV3IHRoZSBjaGFuZ2Vsb2cgZm9yIHJjMgoKMjAwOS0wOC0yNiAxNzozOCAgaGFyZGFrZXIKCiAgICogIG1hbi9uZXRzbm1wX2FjY2Vzc19tdWx0aXBsZXhlci4zLCBtYW4vbmV0c25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF9oYW5kbGVyLmguMywgbWFuL25ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2NhbGxiYWNrLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLmguMywgbWFuL25ldHNubXBfZGF0YV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgICAKICAgICAgbWFuL25ldHNubXBfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLCAgIAogICAgICBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgICAKICAgICAgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbW9uaXRvcl9jYWxsYmFja19oZWFkZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX251bGxfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9vbGRfYXBpLjMsIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLCBtYW4vbmV0c25tcF9yb3dfbWVyZ2UuMywgICAKICAgICAgbWFuL25ldHNubXBfc2NhbGFyLjMsIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zZXJpYWxpemUuMywgbWFuL25ldHNubXBfc25tcF9hZ2VudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2FsYXJtLjMsIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBtYW4vbmV0c25tcF9zbm1wX3BkdS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMywgICAKICAgICAgbWFuL25ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF90YWJsZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLCBtYW4vbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywgbWFuL25ldHNubXBfdGFibGVfaW5kZXhlcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvdy4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9yb3dzLjMsIG1hbi9uZXRzbm1wX3RkYXRhLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3Rvb2xzLmguMywgbWFuL25ldHNubXBfdXRpbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwOS0wOC0yNiAxNzoyOSAgaGFyZGFrZXIKCiAgICogIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5hYywgZGlzdC9NYWtlZmlsZSwgICAKICAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnJjMSAtPiBWNS41LnJjMgoJCjIwMDktMDgtMjYgMTc6MzggIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDgtMjYgMTc6MjkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wOC0yNiAxNzoyOCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICB1cGRhdGVkIGJhc2VkIG9uIG5ldyBTRiB1cGxvYWQgbWV0aG9kczsgbm8gbG9uZ2VyIGFzIGF1dG9tYXRhYmxlCgoyMDA5LTA4LTI2IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIGZyb20gSmFuIHRvIGVuZGxlc3MgbG9vcCBpbiBkZWZhdWx0IHJvdXRlcwogICBvbiBsaW51eAoKMjAwOS0wOC0yNiAxNzoyNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmg6CgogICBhcHBseSBwYXRjaCBmcm9tIEphbiB0byBmaXggQysrIHdyYXBwZXIKCjIwMDktMDgtMjYgMTQ6NTMgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYy5yYXctdGFibGUuY29uZjoKCiAgIEluaXRpYWwgc3RhYiBhdCBhIG1pbmltYWwtaGVscGVyIChyYXcpIHRhYmxlIHRlbXBsYXRlLAogICBsZWF2aW5nIG1vc3Qgb2YgdGhlIHdvcmsgdG8gdGhlIHVzZXItcHJvdmlkZWQgTUlCIGhhbmRsZXIuCgoyMDA5LTA4LTI2IDE0OjUwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcm90ZWN0IGFnYWluc3QgYm9ndXMgZmFpbHVyZXMgKHJldHVybmluZyAwKSBhbmQgc3Vic2VxdWVudAogICBkb3VibGUtZnJlZXMsCiAgIGR1ZSB0byAxNS0vMzEtYml0IG1hc2tpbmcgd2hlbiBzZWxlY3RpbmcgcmVxdWVzdCBJRHMuIElkZW50aWZpZWQKICAgYnkga3JvbWVza3kuCgoyMDA5LTA4LTIwIDEzOjMwICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGx1ZyBsZWFrcyBpbiBpcElmU3RhdHNUYWJsZSwKICAgaXB2NlNjb3BlWm9uZUluZGV4VGFibGUsIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQKICAgaXBEZWZhdWx0Um91dGVyVGFibGUuCiAgIAogICBJdCBzZWVtcyB0byBtZSB0aGUgdGFibGVzIHdlcmUgd3JvbmdseSBnZW5lcmF0ZWQgd2l0aAogICBtMmNfZGF0YV9hbGxvY2F0ZSBvcgogICBzb21lb25lIGZvcmdvdCB0byByZWxlYXNlIHRoZSB1c2VyIHByb3ZpZGVkIGRhdGEuCgoyMDA5LTA4LTEyIDE1OjAwICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBmaXggbGlidG9vbCB2ZXJzaW9uIGluIE5FV1MKCjIwMDktMDgtMTEgMDA6NDIgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIENoYW5nZUxvZzoKCiAgIHdob29wczsgYWRkIHJlYWwgY2hhbmdlbG9nIGVudGVyaWVzIGZvciAucmMxCgoyMDA5LTA4LTEwIDIzOjEwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCB0eXBvIGluIHN2bjJjbCBsaW5lCgoyMDA5LTA4LTEwIDIzOjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA4LTEwIDIxOjMyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS41LnByZTMgLT4gVjUuNS5yYzEKCjIwMDktMDgtMTAgMjM6MTAgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgZml4IHR5cG8gaW4gc3ZuMmNsIGxpbmUKCjIwMDktMDgtMTAgMjM6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDktMDgtMTAgMjE6MzIgIGhhcmRha2VyCgogICAqICBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgbWFuL25ldHNubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgICAKICAgICAgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgICAKICAgICAgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXIuMywgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDgtMTAgMjE6MjEgIGhhcmRha2VyCgogICAqICBkaXN0L21ha2VyZWxlYXNlLnhtbCwgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsICAgCiAgICAgIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgVmVyc2lvbiBudW1iZXIgdXBkYXRlCgoyMDA5LTA4LTA3IDEwOjMyICBkdHMxMgoKICAgKiBDSEFOR0VTLCBORVdTOgoKICAgQ29ycmVjdCwgY29uc29saWRhdGUsIGNsYXJpZnkgYW5kIGNsZWFudXAgdGhlIGNhdGFsb2cgb2YgY3VycmVudAogICBjaGFuZ2VzLgoKMjAwOS0wOC0wNiAwNzo1NyAgZHRzMTIKCiAgICogRkFROgoKICAgRXhwYW5kIG9uIGV4ZWMgdnMgZXh0ZW5kLgoKMjAwOS0wOC0wNSAyMDowNyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMjgyMjM1NTogRml4IG1lbW9yeSBsZWFrcyBvbgogICB1ZHBFbmRwb2ludFRhYmxlIChsaW51eCkKICAgUGF0Y2ggc3VwcGxpZWQgYnkgRnJhbmsgTGljaHRlbmhlbGQKCjIwMDktMDgtMDUgMTk6MDUgIGR0czEyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAyODIyMzM3OiBGaXggbWVtb3J5IGxlYWsgaW4KICAgaXBBZGRyZXNzUHJlZml4VGFibGUKCjIwMDktMDgtMDUgMTU6MTYgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gTmV0VG9NZWRpYVRhYmxlLgogICBXaGVuIGRlbGV0aW5nIHJvdyBjb250ZXh0LCBkZWxldGUgYWxzbyBhc3NvY2lhdGVkIGRhdGEuCgoyMDA5LTA4LTA1IDE1OjE1ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIEZpeCBtZW1vcnkgbGVhayBpbiBOZXRUb01lZGlhVGFibGUuCiAgIFRoZSBjb250YWluZXIgdXNlZCB0byB0cmFjayBlbnRyaWVzIHRvIGRlbGV0ZSBmcm9tIGNhY2hlIHNob3VsZAogICBiZSByZWxlYXNlZCB3aGVuIGl0J3Mgbm90IG5lZWRlZC4KCjIwMDktMDgtMDUgMTU6MTIgIGpzYWZyYW5lawoKICAgKiAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBGaXggbWVtb3J5IGxlYWsgaW4gVURQLSBhbmQgVENQLU1JQi4KICAgVGhlIGRhdGEgZnJvbSByYXdfZGF0YSBhcmUgY29waWVkIHRvIGNhY2hlLCBzbyBpdCBzaG91bGQgYmUKICAgZnJlZWQuCgoyMDA5LTA4LTA1IDEwOjE2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ0hBTkdFUzogYXBwczogQlVHOiAyODExNTc3OiBGaXggYnVnIGluIEdldEJ1bGsgaGFuZGxpbmcuCiAgIERvbid0IGdldCBjb25mdXNlZCBieSBpbmRleCB2YWx1ZXMgdGhhdCBjb250YWluIGEgJzonIGNoYXJhY3Rlci4KCjIwMDktMDgtMDQgMjE6NTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVRzogMjgyNzI2OTogU3VwcHJlc3Mgbm9uLW9yZGVyZWQgVE9ETyBjb21tZW50cy4KCjIwMDktMDgtMDQgMjE6MzUgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIEhhbmRsZSBnZW5lcmF0aW5nIGNvZGUgZm9yIGEgc2luZ2xlIHRhYmxlLAogICBhcyB3ZWxsIGFzIGEgbGFyZ2VyIGdyb3VwLgogICBBbHNvIGFkZHJlc3NlcyBidWcgMjE1MDI4NQoKMjAwOS0wOC0wNCAyMToxNiAgbWFnZnIKCiAgICogc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgc25tcGxpYjogZnJvbSAiQmFydCB2YW4gQXNzY2hlICYgTWFnbnVzIEZyb21yZWlkZSI6IE1vcmUgdXBkYXRlcwogICB0byBzdHJ0b3VsbC5jCgoyMDA5LTA4LTA0IDEwOjU3ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IGZyb20gIk1hcmN1cyBS54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOaei2tlcnQiOiBmaXggcG9zc2libGUgY3Jhc2ggd2hlbgogICA2NC1iaXQgY291bnRlcnMgaW4gaXBTeXN0ZW1TdGF0c1RhYmxlIGdldCBiaWdnZXIgdGhhbiAyXjMyCgoyMDA5LTA4LTAzIDE5OjI3ICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVycywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zdHJ0b3VsbC5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI4Mjc3MjI6IGZyb20gIkJhcnQgVmFuIEFzc2NoZSI6IEltcHJvdmUKICAgc3RydG91bGwgdG8gYmUgbGVzcyBNU1ZDLXNwZWNpZmljCgoyMDA5LTA4LTAzIDE4OjM4ICBtYWdmcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICByZW1vdmUgYW4gb2Jzb2xldGUgbWFudWFsIHBhZ2UgZnJvbSB0aGUgc2V0IG9mIGZpbGVzIHRoYXQgc2hvdWxkCiAgIGJlIGluc3RhbGxlZAoKMjAwOS0wNy0yNyAxMjo0MSAgaGFyZGFrZXIKCiAgICogIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsICAgCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA5LTA3LTI3IDEyOjExICBoYXJkYWtlcgoKICAgKiBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMzoKCiAgIHJlbW92ZSBhbiBvYnNvbGV0ZSBtYW51YWwgcGFnZQoKMjAwOS0wNy0yNyAxMjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIENIQU5HRVM6IGZyZWVic2Q6IHBhdGNoIGZyb20gQ2V6YXJ5IE1vcmdhIHRvIGZpeCBhIG1ha2UgdGVzdCBvbgogICBmcmVlYnNkCgoyMDA5LTA3LTI3IDEyOjAyICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA3LTI3IDExOjUyICBoYXJkYWtlcgoKICAgKiAgRkFRLCBORVdTLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBkaXN0L01ha2VmaWxlLCAgIAogICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCjIwMDktMDctMjcgMDg6MzkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICByZXZlcnQgYWNjaWRlbnRpYWxseSBhcHBsaWVkIHBhdGNoCgoyMDA5LTA3LTI3IDA4OjM3ICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgdGVzdGluZy90ZXN0cy9UMzYwZHRsc3VkcCwgICAKICAgICAgdGVzdGluZy90ZXN0cy90ZXN0LWxvY2FsaG9zdC5jZXJ0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL3Rlc3QtbG9jYWxob3N0LnByaXYsIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLmNlcnQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvdGVzdC11c2VyLnByaXY6CgogICBhZGRlZCBhIHRlc3QgY2FzZSBmb3IgdWRwL2R0bHMKCjIwMDktMDctMjcgMDg6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbid0IHJlcXVpcmUgYSBzZXNzaW9uIHRvIGNhcnJ5IGEgc2VjTmFtZQoKMjAwOS0wNy0yNiAyMTozNCAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIGZvciBXb3Jrc3BhY2UgYnVpbGQuCgoyMDA5LTA3LTI2IDE4OjIwICBhbGV4X2IKCiAgICogIFJFQURNRS53aW4zMiwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc3RydG91bGwuYywgICAKICAgICAgd2luMzIvZGlzdC9idWlsZC1iaW5hcnkuYmF0LCB3aW4zMi9kaXN0L2J1aWxkLWJpbmFyeS5wbCwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpLCB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgLUFkZGVkIHN0cnRvdWxsIGZ1bmN0aW9uIGFuZCBjb25maWd1cmUgY2hlY2sgZm9yIHN5c3RlbXMgd2l0aG91dAogICBpdCBzdWNoIGFzIFdpbjMyIE1TVkMgNgogICAtV2luMzI6IE1TVkMgNiBjb21waWxlIGZpeGVzIC0gcmVxdWlyZXMgbmV3IHN0cnRvdWxsLmMgZmlsZQogICAtV2luMzI6IE5ldyBidWlsZC1iaW5hcnkgc2NyaXB0IHRvIHNpbXBsaWZ5IGJ1aWxkaW5nIHRoZSBXaW5kb3dzCiAgIGJpbmFyeSBwYWNrYWdlLgoKMjAwOS0wNy0yNSAwNTozMSAgbWFnZnIKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBNYWtlIHN1cmUgYSBtZXNzYWdlIGlzIHdyaXR0ZW4gaWYgdGhlIHJlbGV2YW50IHRhYmxlIGlzIG1pc3NpbmcuCgoyMDA5LTA3LTIzIDIxOjI5ICBhbGV4X2IKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlIGVtYWlsIGFkZHJlc3MgaW4gUkVBRE1FLgoKMjAwOS0wNy0yMyAwMTowNyAgYWxleF9iCgogICAqICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwOCsgZml4ZXMuCgoyMDA5LTA3LTIzIDAwOjU1ICBhbGV4X2IKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgMjAwNSsgYnVpbGQgZml4ZXMuIFRoYW5rcyB0byBCYXJ0IFZhbiBBc3NjaGUuCgoyMDA5LTA3LTIxIDEyOjIyICBkdHMxMgoKICAgKiAgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgbG9jYWwvbWliMmMucm93LmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEFkZCBzaW1wbGUgZGVidWcgb3V0cHV0IHRvIG1pYjJjIHRlbXBsYXRlcy4KCjIwMDktMDctMjEgMTI6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEZpeCBtaXNzaW5nIHNlbWljb2xvbiB0eXBvcy4KCjIwMDktMDctMjEgMDk6MTUgIGR0czEyCgogICAqIEZBUToKCiAgIE5ldyBzdWdnZXN0ZWQgZW50cmllcy4KCjIwMDktMDctMjAgMTk6MjQgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09ESU5HIHNlY3Rpb24uCgoyMDA5LTA3LTIwIDExOjA5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi5oOgoKICAgQWRkIG1pc3NpbmcgaGVhZGVyIGZpbGUgZnJvbSBwYXRjaCAjMjA1MzI3My4KCjIwMDktMDctMTkgMTU6MDkgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQ09NUElMSU5HIHNlY3Rpb24uCgoyMDA5LTA3LTE2IDEyOjM4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBBZGQgSVB2NiBvY3RldCBjb3VudGVycy4KICAgTmV3IExpbnV4IGtlcm5lbHMgKGUuZy4gMi42LjMxLXJjMiwgbWF5YmUgc29tZSBlYXJsaWVyKSBwcm92aWRlCiAgIGNvdW50ZXJzIGZvcgogICBpbmNvbWluZy9vdXRnb2luZyBJUHY2IHRyYWZmaWMgZm9yIGlwU3lzdGVtU3RhdHNUYWJsZSBhbmQKICAgaXBJZlN0YXRzVGFibGUuCgoyMDA5LTA3LTE1IDIyOjQ2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDM1MHVuaXg6CgogICBwdXQgdGVtcG9yYXJ5IGRhdGEgdG8gd2hlcmUgdGhleSBiZWxvbmcKCjIwMDktMDctMTEgMjE6NTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgcmVnZW5lcmF0ZSBjb25maWd1cmUKCjIwMDktMDctMTEgMjE6MDQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBidWlsZCBmaXggKGUuZy4gZm9yIEZyZWVCU0QpOiBhZGp1c3Qga3ZtIGNvbmZpZ3VyZSB0ZXN0cwoKMjAwOS0wNy0xMCAxMjozNSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENoZWNrIElQdjYgcG9ydCByYW5nZXMgaW4gdGhlIHNhbWUgd2F5IGFzIElQdjQgcG9ydHMgYXJlIGNoZWNrZWQuCgoyMDA5LTA3LTEwIDA3OjQ2ICBqc2FmcmFuZWsKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAgbG9jYWwvbWliMmM6CgogICBGaXggYW5vdGhlciBJUHY0IGFkZHJlc3Mgc2l6ZSAtIGxvbmcgaGFzIDggYnl0ZXMgb24gNjRiaXQgTGludXguCiAgIEFsc28gZml4IHRoZSBkZWZhdWx0IHR5cGUgZm9eQ0FTTl9JUEFERFJFU1MgaW4gbWliMmMsIHNvIHRoZQogICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jIGNhbiBiZSBzYWZlbHkgcmVnZW5lcmF0ZWQuCgoyMDA5LTA3LTA5IDIzOjQyICBoYXJkYWtlcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzUwdW5peDoKCiAgIGNsZWFudXAgb2YgdGVzdGluZyBjYXNlcyB0byByZW1vdmUgZG91YmxlIGluY2x1ZGUgYW5kIGRvdWJsZQogICBleHBvcnRzCgoyMDA5LTA3LTA5IDIzOjA3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDMwMHVkcDoKCiAgIGJlIGNvbnNpc3RlbnQgd2l0aCB0aGUgVENQL0lQdjQgdGVzdAoKMjAwOS0wNy0wOSAyMjoxOCAgaGFyZGFrZXIKCiAgICogIHRlc3RpbmcvdGVzdHMvU3RyYW5zcG9ydCwgdGVzdGluZy90ZXN0cy9UMzAwdWRwLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMTB0Y3AsIHRlc3RpbmcvdGVzdHMvVDMyMHVkcHY2LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QzMzB0Y3B2NiwgdGVzdGluZy90ZXN0cy9UMzUwdW5peCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMzk5YWxpYXM6CgogICBuZXcgdGVzdHMgZm9yIHRlc3RpbmcgZGVmaW5lZCB0cmFuc3BvcnRzCgoyMDA5LTA3LTA5IDIyOjE3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhIENPTkZJR0FQUCBtYWNybyBmb3IgYWRkaW5nIHN0dWZmIHRvIHNubXAuY29uZgoKMjAwOS0wNy0wOCAxNToxMiAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGdldGhvc3RieWFkZHIgcGFyYW1ldGVyLCBuZXRzbm1wX3VkcF9mbXRhZGRyIG5ldmVyIHJldHVybmVkIGEKICAgaG9zdG5hbWUuCgoyMDA5LTA3LTA3IDE1OjQ2ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGVfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBGaXggSVAgYWRkcmVzcyBsZW5ndGggb24gNjQgYml0IHN5c3RlbXMgaW4gbWliSUksIHBhc3MgYW5kCiAgIHBhc3NfcGVyc2lzdCBtb2R1bGVzLgoKMjAwOS0wNy0wNyAxNToyNCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBVc2UgY29ycmVjdGx5IHNpemVkIElQIGFkZHJlc3NlcyBpbiBhZGRyZXNzIHRyYW5zbGF0aW9uIHRhYmxlCiAgIHByb2Nlc3NpbmcgLSB1X2xvbmcgY2FuIG1ha2UgcHJvYmxlbXMgb24gYmluIGVuZGlhbiA2NCBiaXQKICAgc3lzdGVtcwoKMjAwOS0wNi0yOSAxMzo1MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUzoKCiAgIHJlbW92ZSBlbnRyeSBmb3IgYSBwYXRjaCB0aGF0IGdvdCByZXZlcnRlZAoKMjAwOS0wNi0yNSAxNToyNCAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3R5cGVzLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIE1vdmUgbm9uLWNvcmUgZGF0YSB0eXBlcyBpbnRvIGEgc2VwYXJhdGUgKGxpYnJhcnkgaW50ZXJuYWxzKQogICBoZWFkZXIgZmlsZS4KICAgTW92ZSB0aGUgbGFyZ2VfZmRfc2V0IGRhdGEgc3RydWN0dXJlIGludG8gdGhpcyBoZWFkZXIgZmlsZS4KCjIwMDktMDYtMTggMjI6MjkgIHRhbmRlcnMKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBDSEFOR0VTOiBidWlsZDogYWxsb3cgYnVpbGRpbmcgd2l0aCBQZXJsIHZlcnNpb25zIHRoYXQgbGFjawogICBQRVJMX0VYSVRfREVTVFJVQ1RfRU5ECgoyMDA5LTA2LTE4IDIyOjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIENIQU5HRVM6IGJ1aWxkOiBidWlsZCBmaXggZm9yIFRydTY0IFVuaXggYW5kIElSSVg6IG1vdmUgX1hPUEVOKgogICBkZWZpbml0aW9ucyB0byB3aGVyZSB0aGV5IGFyZSBpbiA1LjQueCBhbmQgZWFybGllcgoKMjAwOS0wNi0xOCAwNjowMiAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2xlYW4gdXAgLS13aXRoLW5sIGNvbmZpZ3VyYXRpb24KICAgKiAgTW92ZSB0aGUgX0FSR19XSVRIIHRvIGNvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlICAyMDA5LTA2LTE2IDE1OjE3CiAgICAgICByc3RvcnkKCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBjaGVjayBmb3IgbnVsbCBwb2ludGVyIGJlZm9yZSBkZXJlZgoKMjAwOS0wNi0xNSAyMzo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGFkZCBjb21tZW50IGV4cGxhaW5pbmcgbm90IHF1aXRlIG9idmlvdXMgbGFjayBvZiBtZW1tb3ZlCgoyMDA5LTA2LTE1IDE5OjMyICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBSZW1vdmUgI2lmIDAgY29tbWVudGVkIGNvZGUKCjIwMDktMDYtMTUgMTU6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQUdFTlQgc2VjdGlvbi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucHJlMiAtPiBWNS41LnByZTMKCjIwMDktMDYtMTMgMDE6MTIgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNTY0NTUyOiBmcm9tIGFobWFrZTogcHJvdmlkZSBsaWJuZXRsaW5rCiAgIHN1cHBvcnQgZm9yIGxvYWRpbmcgdGhlIHRjcCB0YWJsZQoKMjAwOS0wNi0xMiAxOTowMiAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE0MDAxMDE6IHJlbW92ZSBkZWxldGVkIGludGVyZmFjZXMgZnJvbQogICBpZlRhYmxlCgoyMDA5LTA2LTExIDIzOjA5ICBoYXJkYWtlcgoKICAgKiAgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi93aW5waXBlLmMsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBDSEFOR0VTOiB3aW4zMjogUEFUQ0g6IDI2OTM3NDY6IGZyb20gYnZhc3NjaGU6IGltcHJvdmVkIHNvY2tldAogICBzdGFydHVwIHN1cHBvcnQKCjIwMDktMDYtMTEgMjI6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjAxMjQwMjogZG9uJ3QgZmFpbCBvbiBmYWlsdXJlIHRvIGxvb2sgdXAKICAgaW50ZXJmYWNlIGVycm9yIGNvdW50ZXJzLgoKMjAwOS0wNi0xMSAyMjowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgcmV2ZXJ0IHByZXZpb3VzIGNvbW1pdCB0byBtYWtlIGNpcmN1bGFyIGRlcGVuZGVuY2llcyBiYWNrIHRvCiAgIHRoZWlyIHJlZ3VsYXIgaW5zYW5lIG9yZGVyaW5nOyBJIGRvbid0IGxpa2UgdGhpcyBzaXR1YXRpb24gYXQgYWxsCgoyMDA5LTA2LTExIDIxOjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBpbmNsdWRlIGxhcmdlX2ZkX3NldC5oIGJlZm9yZSB0eXBlZGVmaW5nIHNvbWV0aGluZyBiYXNlZCBvbiB0aGUKICAgc3RydWN0dXJlCgoyMDA5LTA2LTAzIDEyOjM1ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIRVM6IDI3OTM4NTc6IFJlcG9ydCBmYWlsZWQgYXN5bmNocm9ub3VzCiAgIHJlcXVlc3RzLgoKMjAwOS0wNi0wMyAxMTo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgUmVtb3ZlIHBhdGNoICMyMTgyNTkyIC0gcmV2ZXJ0IHRvIFNWTiByZXZpc2lvbiAxNzY0NgogICBUaGUgY2xlYW51cCByb3V0aW5lcyBkb24ndCBhcHBlYXIgdG8gZXhpc3QuCgoyMDA5LTA2LTAzIDEwOjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIxODI1OTI6IENsZWFuIHVwIHZhY21Db250ZXh0VGFibGUgYWZ0ZXIKICAgdW5yZWdpc3RyYXRpb25zCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEpvaG4gRm9yc3l0aAoKMjAwOS0wNi0wMyAxMDoxMiAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDI3OTcyNTE6IFN1cHBvcnQgbXVsdGlwbGUgaW5pdGlhbGlzYXRpb24gYW5kCiAgIHNodXRkb3duLCBmaXggbWVtb3J5IGxlYWtzCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEl2b3NoCgoyMDA5LTA2LTAxIDE1OjUzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENIQU5FR1M6IGRvY3M6IFBBVENIRVM6IDI3ODgwNzI6IERvY3VtZW50ICdsb2dtYXRjaCcKICAgZnVuY3Rpb25hbGl0eS4KCjIwMDktMDYtMDEgMTU6NTAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIHNubXBsaWIvbWliLmMsICAgCiAgICAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCAgIAogICAgICBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSEVTOiAyNzgwNDExOiBGaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMDktMDYtMDEgMTU6MzcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2tpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2ZzX3N0YXR1cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2NpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJwc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wc3RhdC5jLCBjb25maWd1cmUsICAgCiAgICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL21vbml0b3IsIG00L2xpYnRvb2wubTQsICAgCiAgICAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBDSEFOR0VTOiBkb2NzOiBQQVRDSDogMjc5NTczOTogRml4IGluY29ycmVjdCBkaXNrL2ZpbGUgc2l6ZQogICBkZXNjcmlwdGlvbnMgJiB1bml0IHNwZWNpZmllcnMKCjIwMDktMDYtMDEgMTM6MTEgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBSZXdvcmsgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gbWF0Y2ggY3VycmVudCBzbm1wZC5jb25mKDUpCiAgIHN0cnVjdHVyZSwKICAgYW5kIG1vcmUgY2xlYXJseSBpbGx1c3RyYXRlIGN1cnJlbnQgYmVzdCBwcmFjdGlzZS4KCjIwMDktMDUtMzAgMDY6NTggIG1hZ2ZyCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICBSZW1vdmUgdW51c2VkIGluY2x1ZGUuCgoyMDA5LTA1LTI5IDA5OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmg6CgogICBBdXRvbWF0aWNhbGx5IGxvYWQgdGhlIGV4YW1wbGUgcGFzc3Rlc3QgTUlCCgoyMDA5LTA1LTI5IDA5OjA4ICBkdHMxMgoKICAgKiAgbG9jYWwvcGFzc3Rlc3QsIGxvY2FsL3Bhc3N0ZXN0LnBsLCBtaWJzL01ha2VmaWxlLmluLCAgIAogICAgICBtaWJzL05FVC1TTk1QLVBBU1MtTUlCLnR4dDoKCiAgIFJld29yayAicGFzc3Rlc3QiIGV4YW1wbGVzIHRvIGZ1bGx5IHZhbGlkYXRlIEdFVE5FWFQgcmVxdWVzdHMsCiAgIGFuZCB1c2UgYSBsZWdpdGltYXRlIE1JQiBzdHJ1Y3R1cmUgZm9yIG91dHB1dC4KICAgQWRkIGFuIGV4YW1wbGUgTUlCIHRvIGRlZmluZSB0aGF0IHN0cnVjdHVyZS4KCjIwMDktMDUtMjggMTI6NDEgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gTUlCcyBzZWN0aW9uCgoyMDA5LTA1LTI4IDExOjU2ICBkdHMxMgoKICAgKiBGQVE6CgogICBUd2VhayBwaHJhc2luZyBvZiBhbiAob3ZlcmxvbmcpIHF1ZXN0aW9uIGluIHRoZSBQZXJsIHNlY3Rpb24KCjIwMDktMDUtMjggMTE6MzEgIGR0czEyCgogICAqIEZBUToKCiAgIE5ldyBlbnRyeSBpbiB0aGUgQXBwbGljYXRpb25zIHNlY3Rpb24KCjIwMDktMDUtMjggMTA6NDEgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gQXBwbGljYXRpb25zIHNlY3Rpb24KCjIwMDktMDUtMjcgMTU6MjYgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gR0VORVJBTCBzZWN0aW9uLgoKMjAwOS0wNS0xOSAxNzo1MCAgYWxleF9iCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIFVwZGF0ZSBQZXJsIFRyYXBSZWNlaXZlciBleGFtcGxlIHRvIHByb3Blcmx5IG91dHB1dCB0aGUKICAgc2VjdXJpdHlFbmdpbmVJRCBhbmQgY29udGV4dEVuZ2luZUlELgoKMjAwOS0wNS0xOCAxMDowMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgQXZvaWQgZGl2aXNpb24gYnkgemVyby4KCjIwMDktMDUtMTUgMTk6MjIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMjc4MjcwMDogYnVpbGQgZmFpbHVyZSB3aGVuIHVzaW5nCiAgIC0td2l0aC1wa2NzIG9uCiAgIFNvbGFyaXMKCjIwMDktMDUtMTUgMTQ6NTkgIGpzYWZyYW5lawoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBGaXggY29tcGlsYXRpb24gb2YgcnBtIHBhY2thZ2VzIG9uIEZlZG9yYSA+PSAxMCAtIGl0IGhhcyBuZXdlcgogICBSUE0gYW5kIHRoZSBvbGQgQVBJIG5lZWRzIHRvIGJlIGV4cGxpY2l0bHkgZW5hYmxlZCBieSBhIG1hY3JvLgoKMjAwOS0wNS0xNCAxMzozOSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBUaGUgc25tcGNtZCBtYW4gcGFnZSBpcyBub3Qgc3BlY2lmaWMgaG93IHJhbmdlIG9mIGxvZyBwcmlvcml0aWVzCiAgIHNob3VsZCBiZSBzcGVjaWZpZWQgb24gY29tbWFuZCBsaW5lLAogICBpLmUuIGJvdGggLUxPIDQtMCBhbmQgLUxPIDAtNCBhcmUgdmFsaWQuIEFsbCBzbm1wIGNvbW1hbmRzIChpbmNsLgogICBzbm1wZCkgc2hvdWxkIHJlY29nbml6ZSB0aGF0LgoKMjAwOS0wNS0xNCAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQWxsb3cgIm1vbml0b3IiIHRvIGhhbmRsZSBuZWdhdGl2ZSB0aHJlc2hvbGQKICAgdmFsdWVzLgogICBSZXBvcnRlZCBieSBSaWNoYXJkIEdpcHBzLgoKMjAwOS0wNS0xMyAyMjozMiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjc5MTQxNzogZml4IHNubXBkIHNlZ2ZhdWx0IHdoZW4gcnVuIHdpdGgKICAgLURBTEwKICAgUGF0Y2ggc3VwcGxpZWQgYnkgUm9uIFJvc2tlbnMuCgoyMDA5LTA1LTEzIDA4OjAyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEJyaW5nIGRvY3VtZW50YXRpb24gb2Ygbm90aWZpY2F0aW9uRXZlbnQgc3ludGF4IGludG8gbGluZSB3aXRoCiAgIHJlYWxpdHkuCiAgIChVc2VzICItbSIgcmF0aGVyIHRoYW4gIi1uIiB0byByZWdpc3RlciBzdGFuZGFyZCBNSUIgcGF5bG9hZAogICBvYmplY3RzKQogICBJbmNvbnNpc3RlbmN5IHJlcG9ydGVkIGJ5IFJpY2hhcmQgR2lwcHMuCgoyMDA5LTA1LTEwIDIxOjEyICBhbGV4X2IKCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9saWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgV2luMzI6IEFkZGVkIGF1dG9tYXRpYyBtYW5pZmVzdCBtZXJnaW5nIHdpdGggbXQuZXhlIGZvciBNU1ZDIDIwMDgKICAgZXRjLgoKMjAwOS0wNS0wOCAxMzoxMiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ2hhbmdlczogV2luMzI6IEFkZCBzdXBwb3J0IGZvciBXaW5kb3dzIDcsIFZpc3RhIGFuZCAyMDA4IGZvcgogICB3aW5FeHRETEwuCgoyMDA5LTA1LTA4IDAyOjA3ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgV2luMzI6IEJ1aWxkIGZpeGVzIGZvciBETEwuCgoyMDA5LTA1LTA3IDIzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfaHB1eC5jOgoKICAgYnVpbGQgZml4IGZvciBIUC1VWDogaW5jbHVkZSA8c3lzL3BhcmFtLmg+IGZvciBERVZfQlNJWkUKCjIwMDktMDUtMDcgMDU6MTEgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3BlcmwuaDoKCiAgIFVwcywgbWlzc2VkIGEgbmV3IHByb3RvdHlwZSBoZWFkZXIKCjIwMDktMDUtMDYgMjI6MjYgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEEgbWFuIGxpbmUgY2Fubm90IHN0YXJ0IHdpdGggYSAnCgoyMDA5LTA1LTA2IDIyOjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgSVB2NiBhZHJlc3NlcyBhcmUgYSBiaXQgbW9yZSBjb21wbGljYXRlZCB0aGVuIDMyYml0cwoKMjAwOS0wNS0wNiAyMjowNiAgbmJhCgogICAqICBhZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3N5c09SVGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgU3ByaW5rbGUgc29tZSBjb25zdC1uZXNzIHdoZXJlIHJlbGV2YW50CgoyMDA5LTA1LTA2IDIyOjAyICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFRyaXZpYWwgd2FybmluZyBmaXhlcwoKMjAwOS0wNS0wNiAyMjowMCAgbmJhCgogICAqIG1pYnMvcmZjbWlicy5kaWZmOgoKICAgSG1tbSwgSUFOQSBmaXhlZCB0aGVpciBidWcgdG9vCgoyMDA5LTA1LTA2IDIxOjU5ICBuYmEKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlIGVtYWlsIHRvIGN1cnJlbnQKCjIwMDktMDUtMDYgMjE6NTkgIG5iYQoKICAgKiAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgICAKICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3BlcmwuYywgYWdlbnQvc25tcF92YXJzLmMsICAgCiAgICAgIGFnZW50L3NubXBkLmMsIHBlcmwvU05NUC9TTk1QLnhzLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCAKICAgICAgICBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgVHJpdmlhbCB3YXJuaW5nIGZpeGVzCgoyMDA5LTA1LTA2IDIxOjQ5ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBjb250ZXh0RW5naW5lSUQgaXMgYSBoZXhzdHJpbmcsIG5vdCBhbiBvYmplY3QgaWRlbnRpZmllcgoKMjAwOS0wNS0wNiAyMTo0NSAgbmJhCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzQ29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsICAgCiAgICAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2Rpcl91dGlscy5jLCBzbm1wbGliL2ludDY0LmMsICAgCiAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXB1c20uYywgICAKICAgICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEZpeCBmb3JtYXQgd2FybmluZ3MgZnJvbSBkZWJ1ZyBvdXRwdXQKCjIwMDktMDUtMDYgMjA6NDUgIG5iYQoKICAgKiBtaWJzL3NtaXN0cmlwOgoKICAgUHJvcGVybHkgcmVjb2duaXplIG1lc3NhZ2Ugc3ludGF4IG1vZHVsZXMgKHRvIGJlIGFibGUgdG8gaWdub3JlCiAgIHRoZW0pCgoyMDA5LTA1LTA2IDIwOjM2ICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgUkZDIHVwZGF0ZXMKCjIwMDktMDUtMDYgMjA6MzUgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIFN5bnRheCBmaXggZm9yIGN1cnJlbnQgSUFOQS1QUklOVEVSLU1JQgoKMjAwOS0wNS0wNiAyMDozNCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSUFOQSB2ZXJzaW9uCgoyMDA5LTA1LTA0IDEzOjQ3ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgV2luMzI6IEJ1aWxkIGZpeGVzIGZvciBETEwuCgoyMDA5LTA1LTAxIDE1OjQzICBtYWdmcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIE5FV1M6IHNubXBsaWI6IFN0b3AgdXNpbmcgYSBmaXhlZCBzdHJpbmcgZm9yIGluZGVudGF0aW9uLiBSZW1vdmUKICAgdGhlIERFQlVHSU5ERU5UKCkgbWFjcm8gKHRoYXQgZGlkIG5vdGhpbmcpLiBDaGFuZ2UgdGhlIG1lYW5pbmcgb2YKICAgdGhlIGludGVybmFsIF9fREJHSU5ERU5UKCkgbWFjcm8gdG8gcmV0dXJuIHRoZSBudW1iZXIgb2Ygc3BhY2VzCiAgIHRvIGluZGVudCBpbnN0ZWFkIG9mIGEgc3RyaW5nIHRoYXQgcmVwcmVzZW50IHRoZSBpbmRlbnRhdGlvbgogICBsZXZlbC4gRGVwcmVjYXRlIHRoZSBkZWJ1Z19pbmRlbnQgZnVuY3Rpb24uCgoyMDA5LTA0LTMwIDA2OjU3ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVzZSBzdGF0aWMgd2F0Y2hlcl9pbmZvIGZvciBhbGwgd2F0Y2hlZCB2YXJpYWJsZXMKICAgYW5kIGluIGludF93YXRjaC4KCjIwMDktMDQtMzAgMDY6NDEgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFNlcGFyYXRlIGluaXRpYWxpemF0aW9uIGZyb20gYWxsb2NhdGlvbiBmb3IKICAgbmV0c25tcF93YXRjaGVyX2luZm8gc3RydWN0dXJlcyB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIHVzZQogICBzdGF0aWNhbGx5IGFsbG9jYXRlZCBkYXRhLgoKMjAwOS0wNC0zMCAwNjozNCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wRFRMU1VEUERvbWFpbi5jOgoKICAgQWRkIG1pc3NpbmcgcmV0dXJuIHZhbHVlLgoKMjAwOS0wNC0zMCAwMDoxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgRFRMUyBzdXBwb3J0OyBzZW1pIGRvY3VtZW50IHRoZSBTU0ggc3VwcG9ydCBhbmQKICAgZG9jdW1lbnQgdGhlIC1zIHN3aXRjaCB0byBtYW55IFZBQ00gc2V0dGluZ3MKCjIwMDktMDQtMjkgMjM6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYzoKCiAgIHByb3RlY3QgYWdhaW5zdCBjb25uZWN0aW9uIG9wZW5pbmcgZXJyb3JzIGFuZCBmcmVlIG1lbW9yeSBvbgogICBmYWlsdXJlcwoKMjAwOS0wNC0yOSAxMjoxOSAgYWxleF9iCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogVXBkYXRlIGRlZmluZXMgZm9yIF9XSU4zMl9XSU5OVCBhbmQgTlRERElfVkVSU0lPTiB0bwogICBzdXBwb3J0IFdpbmRvd3MgMjAwMCBhbmQgaGlnaGVyIGFuZCBhZGQgSVBWNiBkZWZpbmUgdG8gYWxsb3cgSVBWNgogICBjb2RlIHRvIGNvbXBpbGUuCgoyMDA5LTA0LTI4IDA2OjM0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIHNubXBkLCBMaW51eDogUmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KCjIwMDktMDQtMjggMDY6MDcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBzbm1wZDogQWRkIG1pc3NpbmcgYXJndW1lbnQgdG8gcHJpbnRmLWxpa2UgY2FsbC4KCjIwMDktMDQtMjggMDU6NTMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIHNubXBkOiBNYXJrIG1vcmUgb2lkcyBhcyBjb25zdC4KCjIwMDktMDQtMjggMDU6NTEgIG1hZ2ZyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZXR1cm4gYSB2YWx1ZSBmcm9tIHNwcmludF9yZWFsbG9jX3ZhbHVlIGV2ZW4gaWYgbm8gc3VidHJlZSBpcwogICBsb2NhdGVkLgoKMjAwOS0wNC0yOCAwMToxMiAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IE1TVkM6IE9ubHkgdXNlIFdpbmRvd3MgQVBJIGZ1bmN0aW9ucyBhdmFpbGFibGUgb24gV2luWFAgb3IKICAgYmVmb3JlIChJUFY2KSBvciAyMDAwIG9yIGJlZm9yZSAobm8gSVBWNikuCgoyMDA5LTA0LTI2IDIzOjMwICBhbGV4X2IKCiAgICogIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcGRzZGsvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBXaW4zMjogUmVtb3ZlIG1hY2hpbmUgdHlwZSBvZiBJMzg2IGZyb20gTElOSzMyX0ZMQUdTIHRvIGFsbG93CiAgIGNvbXBpbGluZyB3aXRoIE1TVkMgMjAwOCBhcyBlaXRoZXIgMzIgb3IgNjQtYml0LgoKMjAwOS0wNC0yNiAxNzozOCAgYWxleF9iCgogICAqICB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLCB3aW4zMi9NYWtlZmlsZS5pbiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIHdpbjMyL3NubXBkL01ha2VmaWxlLmluLCAgIAogICAgICB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgTVNWQyAyMDA4LiBDb3B5IGFuZCBjbGVhbnVwCiAgIG1hbmlmZXN0IGZpbGVzLgoKMjAwOS0wNC0yNiAxNToyMSAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogUmUtZW5hYmxlIHBhc3MgYW5kIHBhc3NfcGVyc2lzdCBDb3VudGVyNjQgZm9yIE1TVkMuCgoyMDA5LTA0LTI2IDE0OjM0ICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgd2luMzIvYnVpbGQucGwsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IFdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgTVNWQyAyMDA4LiBJRlRZUEUgaXMgZGVmaW5lZCBieQogICBNU1ZDIDIwMDgsIHNvIGludGVyZmFjZXMuYyB2YXJpYWJsZXMgd2VyZSBjaGFuZ2VkIHRvIE5FVFNOTVBfLgoKMjAwOS0wNC0yNiAxMzowNiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IFVwZGF0ZSBidWlsZCBpbnN0cnVjdGlvbnMgaW4gY29tbWVudHMuCgoyMDA5LTA0LTI0IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZml4IHRoZSBBU05fT1BBUVVFIHBhdGNoIHRoYXQgd2FzIGNvbW1pdGVkIHdpdGhvdXQgcHJvcGVyIGRpZmYKICAgY29udGV4dAoKMjAwOS0wNC0yNCAwNzozMSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNDoKCiAgIENIQU5HRVM6IEhQLVVYOiBCVUc6IDI3Nzk0NzI6IEZpbGVzeXN0ZW1zIG1pc3NpbmcgaW4gaHJTdG9yYWdlCiAgIHRhYmxlIG9uIEhQLVVYIDExLjMxCiAgIChhbGxvdyBmb3IgbW50dGFiIHRoYXQgaXMgYSBjaGFyYWN0ZXIgc3BlY2lhbCBkZXZpY2UpCgoyMDA5LTA0LTI0IDAxOjM2ICBhbGV4X2IKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBDSEFOR0VTOiBXaW4zMjogQlVHOiAyNzc5NTQxIEZpeGVkIGhhbmRsZSBsZWFrIGluIHBhc3NfcGVyc2lzdC4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjUucHJlMSAtPiBWNS41LnByZTIKCjIwMDktMDQtMjMgMjI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMuaCwgc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBmaXggQysrIHN0eWxlIGNvbW1lbnRzCgoyMDA5LTA0LTIzIDIyOjI1ICBoYXJkYWtlcgoKICAgKiAgbWFuL25ldHNubXBfYWNjZXNzX211bHRpcGxleGVyLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X2hhbmRsZXIuaC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9hZ2VudF90cmFwLjMsIG1hbi9uZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywgbWFuL25ldHNubXBfYnVsa190b19uZXh0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jb250YWluZXJfaXRlcmF0b3IuaC4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9oYW5kbGVyLjMsIG1hbi9uZXRzbm1wX2luc3RhbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9tb25pdG9yX2NhbGxiYWNrX2hlYWRlcl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbnVsbF9jb250YWluZXIuMywgbWFuL25ldHNubXBfb2lkX3N0YXNoLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX29sZF9hcGkuMywgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgICAKICAgICAgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zY2FsYXIuMywgbWFuL25ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMywgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMywgbWFuL25ldHNubXBfdGFibGVfcm93LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMywgbWFuL25ldHNubXBfdGRhdGEuMywgICAKICAgICAgbWFuL25ldHNubXBfdG9vbHMuaC4zLCBtYW4vbmV0c25tcF91dGlsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA5LTA0LTIzIDIyOjIzICBoYXJkYWtlcgoKICAgKiAgbWFuL2NvbmZpZ19hcGkuMywgbWFuL3BkdV9hcGkuMywgbWFuL3Nlc3Npb25fYXBpLjMsICAgCiAgICAgIG1hbi92YXJiaW5kX2FwaS4zOgoKICAgaW5pdGlhbCBkb3h5Z2VuIGV4dHJhY3RzIGZvciB0aGUgbmV3IGhlYWRlcnMKCjIwMDktMDQtMjMgMjI6MTkgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFZlcnNpb24gbnVtYmVyIHVwZGF0ZQoKMjAwOS0wNC0yMyAyMjoxNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIGltcHJvdmUgZXJyb3IgbWVzc2FnZSB3aGVuIGZhaWxpbmcgdG8gb3BlbiBtbnR0YWIKCjIwMDktMDQtMjMgMjI6MTAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQ6CgogICBDSEFOR0VTOiBIUC1VWDogQlVHOiAyNzc5NDcyOiBGaWxlc3lzdGVtcyBtaXNzaW5nIGluIGhyU3RvcmFnZQogICB0YWJsZSBvbgogICBIUC1VWCAxMS4zMQoKMjAwOS0wNC0yMyAyMTo0OCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMjc1MTU4ODogSW5jb25zaXN0ZW50IGRhdGEgKGUuZy4gVURQL1RDUAogICBNSUIKICAgc2NhbGFyIHZhbHVlcyBvZiB6ZXJvKSBjYW4gYmUgcmVwb3J0ZWQgb24gU29sYXJpcyAxMFU0KwogICBQYXRjaCBwcm92aWRlZCBieSBBbmRlcnMgUGVyc3NvbgoKMjAwOS0wNC0yMyAxNzozMCAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE5MDE3NjQ6IGZyb20ga3Jpc3p0b2Zvcm8gZm9yIHN1cHBvcnRpbmcKICAgbG9nd2F0Y2ggZmlsZXMgdGhhdCBhcmUgZGF0ZSBiYXNlZAoKMjAwOS0wNC0yMyAxNzoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgTkVXUzogcGVybDogUEFUQ0ggMTk1NjE5MzogZnJvbSBjYWNveWxlOiBiZXRhIHRocmVhZGFibGUgcGVybAogICBtb2R1bGUgY29kZSBmb3IgU05NUHYxL1NOTVB2MmMgdXNhZ2UuCgoyMDA5LTA0LTIzIDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBzb2xhcmlzOiBQQVRDSDogMjAxMjQwNDogZGVhbCB3aXRoIG1vcmUgdGhhbiAxMAogICBpbnRlcmZhY2VzLiBOZXcgaGFyZGNvZGVkIGxpbWl0IGlzIDUwLiBBIGJldHRlciBzY2FsaW5nIHBhdGNoCiAgIHdvdWxkIGJlIGFwcHJlY2lhdGVkIDotKQoKMjAwOS0wNC0yMyAxNjo0NyAgaGFyZGFrZXIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgZG9jdW1lbnQgdGhhdCB0aGUgZXRoZXJsaWtlLW1pYiBoYXMgYW4gaW1wbGVtZW50YXRpb24KCjIwMDktMDQtMjMgMTY6NDAgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RhdGFfYWNjZXNzL2RvdDNzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX2dldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfZGF0YV9zZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXRoZXJsaWtlLW1pYi9kb3QzU3RhdHNUYWJsZS9kb3QzU3RhdHNUYWJsZV9kYXRhX3NldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2RvdDNTdGF0c1RhYmxlX2VudW1zLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V0aGVybGlrZS1taWIvZG90M1N0YXRzVGFibGUvZG90M1N0YXRzVGFibGVfb2lkcy5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9ldGhlcmxpa2UtbWliL2RvdDNTdGF0c1RhYmxlL2lvY3RsX2ltcF9jb21tb24uaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjA1MzI3MzogZnJvbSBuYXJlbmRyYV9rX2RlbGwgdG8gaW1scGVtZW50CiAgIHRoZSBldGhlcmxpa2UgbWliIChhdCBsZWFzdCBvbiBsaW51eCkKCjIwMDktMDQtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgQ0hBTkdFUzogbWliMmM6IFBBVENIOiAyMTM2NDM3OiBtYWtlIEZMQUcgZGVmaW5lcyBtb3JlIDY0Yml0CiAgIGZyaWVuZGx5IHdoZW4gaHVnZSB0YWJsZXMgYXJlIGVuY291bnRlcmVkCgoyMDA5LTA0LTIzIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2hwdXguYzoKCiAgIENIQU5HRVM6IGhwdXg6IFBBVENIOiAyMDg4NzI2OiBmcm9tIHJhdmluZHJhMTEwMyB0byBmaXggYW4gaXNzdWUKICAgd2l0aCBocHV4IHJlcG9ydGluZyBtZW1vcnkgaW4gbmVnYXRpdmUgdmFsdWVzLgoKMjAwOS0wNC0yMyAxNjoyMSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjA3NDgxNzogZnJvbSBmZW5uZXIgdG8gZml4IHJlZ2V4cCBlbmdpbmUKICAgQ1BVIHBlcmZvcm1hbmNlIGlzc3VlcwoKMjAwOS0wNC0yMyAxNjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIxNjI2NTI6IHBhdGNoIHRvIGZpeCBzaW1wbGUgaHJmcyBjaGVja3MKICAgd2hlbiBORlMgaXMgaW4gdXNlLgoKMjAwOS0wNC0yMyAxNjoxMSAgaGFyZGFrZXIKCiAgICogIHBlcmwvQVNOL0FTTi5wbSwgcGVybC9BbnlEYXRhX1NOTVAvRm9ybWF0LnBtLCAgIAogICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sIHBlcmwvU05NUC9TTk1QLnBtLCAKICAgICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgcGVybC9hZ2VudC9hZ2VudC5wbSwgICAKICAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBwZXJsL21hbmFnZXIvbWFuYWdlci5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMTgyMDc5OiBhcHBseSBwYXRjaCBmcm9tIGludDMyIHRvIGZpeCBhCiAgIG51bWJlciBvZiBwZXJsIHdhcm5pbmdzIGFuZCBmaXggdGhlIG1vZHVsZXMgc28gdGhhdCB1c2Ugc3RyaWN0IGlzCiAgIHBvc3NpYmxlCgoyMDA5LTA0LTIzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCAKICAgICAgICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsICAgCiAgICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDIxODQwMzk6IG1pc2MgZml4ZXMgZm9yIGZyZWVpbmcgbWVtb3J5CiAgIGR1cmluZyBlcnJvciBjb25kaXRpb25zLgoKMjAwOS0wNC0yMyAxNTo0NyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjM2MTcxMjogZnJvbSBrYnJpbnQgdG8gZml4IGdldGJ1bGsKICAgb3B0aW1pemF0aW9uIGR1cmluZyB3YWxrcyB3aGVyZSBlbmQgY29uZGl0aW9ubnMgYXJlIG1ldCBvbiBtaWRkbGUKICAgT0lEcyBmaXJzdC4KCjIwMDktMDQtMjMgMTU6MzUgIGFsZXhfYgoKICAgKiBSRUFETUU6CgogICBSRUFETUUgVGhhbmtzIHVwZGF0ZQoKMjAwOS0wNC0yMyAxNTowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2ggZnJvbSBUdXNoYXIgR29oYWQgdG8gY2xlYW4gdXAgbm90aWZpY2F0aW9uCiAgIHJlZ2lzdGVyYXRpb25zIGR1cmluZyBkaXNtYW4gZXZlbnQgbWliIGNsZWFudXAgcHJvY2Vzc2luZy4KCjIwMDktMDQtMjMgMTQ6NTUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jOgoKICAgRml4IG1lbW9yeSBsZWFrIGluIFNDVFAgY29udGFpbmVycy4KCjIwMDktMDQtMjMgMDg6MjkgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIG5ldHNubXBfbGFyZ2VfZmRfc2V0IGlzIHByb2JhYmx5IGJlc3QgcmVnYXJkZWQgYXMgYW4gIm9wYXF1ZSIKICAgZGF0YQogICBzdHJ1Y3R1cmUsIGFuZCBpc24ndCByZWFsbHkgaW50ZW5kZWQgZm9yIGRpcmVjdCBtYW5pcHVsYXRpb24uCiAgIE1vdmUgaXQgYmFjayBpbnRvIHRoZSA8bGlicmFyeS9sYXJnZV9mZF9zZXQuaD4gaGVhZGVyIGZpbGUuCiAgIChMaWtlIGl0IHdhcyBiZWZvcmUgRGF2ZSBzdHVjayBoaXMgb2FyIGluLi4uLikKCjIwMDktMDQtMjMgMDg6MTkgIGR0czEyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGFyZ2VfZmRfc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oLCAgIAogICAgICBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywgc25tcGxpYi9sYXJnZV9mZF9zZXQuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRnVlcnRoZXIgaW1wcm92ZW1lbnRzIHRvIHRoZSBsYXJnZSBGRCBzZXQgc3VwcG9ydAogICAoU2VlIHBhdGNoICMyNzcyNzg3KQoKMjAwOS0wNC0yMyAwNjo0NSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oOgoKICAgYnVpbGRpbmc6IFVzZSBjb25maWdfZXJyb3IoLi4uKSBpbnN0ZWFkIG9mCiAgIGNvbmZpZ19yZXF1aXJlKG5vbi1leGlzdGluZykgdG8gZ2V0IGJldHRlciBlcnJvciBtZXNzYWdlcy4KCjIwMDktMDQtMjMgMDY6NDEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9nZXRfcGlkX2Zyb21faW5vZGUuaDoKCiAgIHNubXBsaWIsIExpbnV4OiBNb3ZlIGdldF9waWRfZnJvbV9pbm9kZSB0byBpdCdzIG93biBmaWxlIGFuZCBvbmx5CiAgIGNvbXBpbGUgaXQgaWYgbmVlZGVkLCBhbHNvIHJlbmFtZSBpdCB0bwogICBuZXRzbm1wX2dldF9waWRfZnJvbV9pbm9kZS4KCjIwMDktMDQtMjMgMDQ6MzMgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwgYWdlbnQvc25tcGQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjQzMTM1MyBmcm9tIGhucm9zZSB0byBtYWtlIHNvbWUgQysrCiAgIGNvbXBpbGVycyBoYXBwaWVyCgoyMDA5LTA0LTIzIDAzOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNTA1NDg4OiBmcm9tIGRhYm9rZXkgdG8gZml4IGFsYXJtcyBub3QKICAgYmVpbmcgdHJpZ2dlcmVkIGF0IHRoZSByaWdodCB0aW1lcyBkdWUgdG8gbGFyZ2UgY2xvY2sgc2tld3MuCgoyMDA5LTA0LTIzIDAwOjAxICBoYXJkYWtlcgoKICAgKiAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgTkVXUzogc25tcG5ldHN0YXQ6IFBBVENIOiAyNTY0NTM4OiBmcm9tIGFobWFrZSB0byBzdXBwb3J0IEdFVEJVTEsKICAgaW4gdjJjKyBzbm1wIHZlcnNpb25zCgoyMDA5LTA0LTIyIDIzOjQ5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBwb3J0czogUEFUQ0g6IDI2ODgzNDI6IGZyb20gYWhtYWtlIHRvIGZpeCB2YXJpb3VzCiAgIGNvbXBpbGVyIHdhcm5pbmcKCjIwMDktMDQtMjIgMjM6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMjc2MzcxOiBmcm9tIGZoZXcgdG8gYWxsb3cgcGVybCB0byB1c2UKICAgT1BBUVVFcwoKMjAwOS0wNC0yMiAyMzoxNyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDI3NzU4MDA6IGZyb20gQWRhbSBSb21hbmVrIHRvIGFsbG93CiAgIHB5dGhvbiB0aHJlYWRpbmcgdG8gY29udGludWUgd2hlbiBhIHJlcXVlc3QgaXMgc2VudAoKMjAwOS0wNC0yMiAyMjoxMSAgYWxleF9iCgogICAqIFJFQURNRSwgUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIFRIQU5LUyBzZWN0aW9uLgoKMjAwOS0wNC0yMiAyMToyMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRm9sZCB0aGUgZnVuY3Rpb24gZXh0cmFjdF9pbm9kZS4gd2l0aCBvbmx5IG9uZSB1c2VyLCBpbnRvIGl0J3MKICAgdXNlci4KICAgUmVtb3ZlIHRoZSAjZGVmaW5lIEZJTEVfRElTUCwgd2l0aCBvbmx5IG9uZSB1c2VyLCB3aXRoIHRoZSBhY3R1YWwKICAgdmFsdWUuCgoyMDA5LTA0LTIyIDIxOjAzICBtYWdmcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCB3aXRoIFNNVVggZW5hYmxlZC4KCjIwMDktMDQtMjIgMTM6NDMgIGpzYWZyYW5lawoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIEFkZCBhIG5vdGUgaG93IHRoZSBuZXcgUk1PTi1NSUIgaW1wbGVtZW50YWlvbiB3b3JrcwoKMjAwOS0wNC0yMiAxMzo0MSAgZHRzMTIKCiAgICogbWFuL3ZhcmJpbmRfYXBpLjMuZGVmOgoKICAgRmlsbCBvdXQgdGhlIGRvY3VtZW50YXRpb24gb2YgdGhlIFZhcmJpbmQtcmVsYXRlZCBBUEkgY2FsbHMuCgoyMDA5LTA0LTIyIDEzOjM3ICBqc2FmcmFuZWsKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9ybW9uLW1pYiwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIuaCwgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2RhdGFfYWNjZXNzL2V0aGVyc3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZGF0YV9hY2Nlc3MvZXRoZXJzdGF0c19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9nZXQuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9kYXRhX2dldC5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2RhdGFfc2V0LmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3Jtb24tbWliL2V0aGVyU3RhdHNUYWJsZS9ldGhlclN0YXRzVGFibGVfZGF0YV9zZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2V0aGVyU3RhdHNUYWJsZV9lbnVtcy5oLCAgCiAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX2ludGVyZmFjZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9ybW9uLW1pYi9ldGhlclN0YXRzVGFibGUvZXRoZXJTdGF0c1RhYmxlX29pZHMuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvcm1vbi1taWIvZXRoZXJTdGF0c1RhYmxlL2lvY3RsX2ltcF9jb21tb24uaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjEwMzQ5MjogaW1wbGVtZW50CiAgIFJNT04tTUlCOjpldGhlclN0YXRzSmFiYmVycwogICBQYXRjaCBmcm9tIE5hcmVuZHJhIEsuLCBTYW5kZWVwIEsuIFNoYW5kaWx5YSBhbmQgU2h5YW0gSXllcgoKMjAwOS0wNC0yMiAxMDowOCAgZHRzMTIKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBDb3JyZWN0IGEgc2VyaW91c2x5IG1pc2xlYWRpbmcgKGkuZS4gd3JvbmcpIGRlc2NyaXB0aW9uIG9mIHRoZQogICBwdXJwb3NlCiAgIGFuZCBiZWhhdmlvdXIgb2YgdGhlIHByaW50X2Rlc2NyaXB0aW9uIGZhbWlseSBvZiBjYWxscy4KCjIwMDktMDQtMjIgMDk6MzIgIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgRnVydGhlciBwb2xpc2hpbmcgb2YgdGhlIGRlc2NyaXB0aW9ucyBvZiBNSUItcmVsYXRlZCBBUEkgY2FsbHMuCgoyMDA5LTA0LTIyIDA3OjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgdW5uZWNlc3NhcnkgcmFuZ2UgY2hlY2tzLgogICAoVGhlc2UgYXJlIGhhbmRsZWQgd2l0aGluIHRoZSBsYXJnZV9mZF9zZXQgcm91dGluZXMgdGhlbXNlbHZlcykuCgoyMDA5LTA0LTIxIDIzOjI3ICBhbGV4X2IKCiAgICogIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgICAKICAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIHdpbjMyOiBGaXggV2luZG93cyBidWlsZCBlbnZpcm9ubWVudCB0byBzdXBwb3J0IHBhdGNoIDI3NzI3ODcuCgoyMDA5LTA0LTIxIDE1OjMzICBkdHMxMgoKICAgKiAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZkX2V2ZW50X21hbmFnZXIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xhcmdlX2ZkX3NldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgICAKICAgICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9mZF9ldmVudF9tYW5hZ2VyLmMsICAgCiAgICAgIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldmlzZWQgdmVyc2lvbiBvZiBwYXRjaCAjMjc3Mjc4NwoKMjAwOS0wNC0yMSAxNToxNSAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYywgIAogICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIFVuZG8gcmV2aXNpb24gMTc1MTUKICAgKGJyb2tlbi9pbmNvbXBsZXRlIHBhdGNoKQoKMjAwOS0wNC0yMSAxNDozNyAgZHRzMTIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sYXJnZV9mZF9zZXQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvbGFyZ2VfZmRfc2V0LmMsIHNubXBsaWIvc25tcF9hcGkuYywgIAogICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNzcyNzg3OiBDbGVhbmVyIGFwcHJvYWNoIHRvIGhhbmRsaW5nCiAgIGxhcmdlIGZkX3NldHMuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IEJhcnQgVmFuIEFzc2NoZS4KCjIwMDktMDQtMjEgMTQ6MzQgIGR0czEyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIFByb3Blcmx5IGdlbmVyYXRlIG5ldyBjb3JlIEFQSSBtYW4gcGFnZXMuCgoyMDA5LTA0LTIxIDA5OjM4ICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9jb25maWdfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3BkdV9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvdmFyYmluZF9hcGkuaDoKCiAgIEZpcnN0LWN1dCBhdCBpZGVudGlmeWluZyB0aGUgY29yZSBOZXQtU05NUCBBUEkgY2FsbHMuCiAgIE1vdmUgdGhlc2UgaW50byB0aGUgYXBwcm9wcmlhdGUgdG9wLWxldmVsIGhlYWRlciBmaWxlcy4KCjIwMDktMDQtMjEgMDk6MzYgIGR0czEyCgogICAqICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9jb25maWdfYXBpLjMuZGVmLCBtYW4vcmVhZF9jb25maWcuMy5kZWYsICAgCiAgICAgIG1hbi9zZXNzaW9uX2FwaS4zLmRlZiwgbWFuL3NubXBfYXBpLjMuZGVmOgoKICAgUmVuYW1lIGNvbmZpZy9zZXNzaW9uIEFQSSBtYW4gcGFnZXMsIGluIGxpbmUgd2l0aCBvdGhlciBjb3JlIEFQSQogICBzdHJ1Y3R1cmUuCgoyMDA5LTA0LTIxIDA5OjMyICBkdHMxMgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL3BkdV9hcGkuMy5kZWYsICAgCiAgICAgIG1hbi9yZWFkX2NvbmZpZy4zLmRlZiwgbWFuL3NubXBfYXBpLjMuZGVmLCBtYW4vdmFyYmluZF9hcGkuMy5kZWY6CgogICBEb2N1bWVudCAob3IgcmVzdHJ1Y3R1cmUpIHRoZSBjb3JlIEFQSSBlbGVtZW50cy4KICAgQWxpZ24gdGhpcyBvcmdhbmlzYXRpb24gd2l0aCB0aGUgZmlyc3QtY3V0IHJlc3RydWN0dXJpbmcKICAgb2YgdGhlIG1haW4gaGVhZGVyIGZpbGVzLgoKMjAwOS0wNC0yMCAxMDoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU2tpcCBmaWxlIGhhbmRsZXMgdGhhdCBhcmUgdG9vIGxhcmdlIGZvciBmZF9zZXQgdG8gY29wZSB3aXRoLgogICBBIHNpbXBsZSBmaXggZm9yIHRoZSBpbW1lZGlhdGUgcHJvYmxlbSBhZGRyZXNzZWQgYnkgcGF0Y2gKICAgIzE2MjcwNDkuCgoyMDA5LTA0LTIwIDEwOjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmV2ZXJ0IHBhdGNoICMxNjI3MDQ5IChleHRlbnNpb24gdG8gZGVhbCB3aXRoIGxhcmdlIGZpbGUKICAgaGFuZGxlcnMpLgogICBTZWUgdGhlIGRpc2N1c3Npb24gb24gdGhhdCB0cmFja2VyIGVudHJ5IGZvciBiYWNrZ3JvdW5kIGFzIHRvCiAgIHdoeS4KCjIwMDktMDQtMjAgMDA6NTkgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsIHBlcmwvYWdlbnQvYWdlbnQueHMsICAgCiAgICAgIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvbGliYWdlbnQvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4sIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgCiAgICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIHdpbjMyOiBCdWlsZCBmaXhlcyBmb3IgV2luZG93cy4gcGFzcyBhbmQgcGFzc19wZXJzaXN0IHN0aWxsIG5lZWQKICAgdG8gYmUgZml4ZWQgdG8gc3VwcG9ydCBDb3VudGVyNjQgb24gV2luZG93cy4KCjIwMDktMDQtMjAgMDA6NDggIGFsZXhfYgoKICAgKiAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgd2luMzI6IFN5bmMgbmV0LXNubXAtY29uZmlnLmguaW4gYW5kIG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA5LTA0LTE3IDIxOjIxICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsIGx0bWFpbi5zaCwgbTQvbGlidG9vbC5tNCwgCiAgICAgICAgbTQvbHRvcHRpb25zLm00LCBtNC9sdHN1Z2FyLm00LCBtNC9sdHZlcnNpb24ubTQ6CgogICBDSEFOR0VTOiBidWlsZDogVXBncmFkZSBsaWJ0b29sIHZlcnNpb24gdG8gMi4yLjYgaW4gb3JkZXIgdG8gd29yawogICBhcm91bmQgYSBidWdsZXQgdGhhdCBtYWRlIGF1dG9yZWNvbmYgLXZpZiBlcmFzZSBjb25maWcuc3ViIGFuZAogICBjb25maWcuZ3Vlc3MuCgoyMDA5LTA0LTE0IDIxOjU5ICBtYWdmcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDE5NzY3NzI6IENoYW5nZWQgdGhlIG1pYiBwYXJzZXIgdG8gaGFuZGxlCiAgIGxvbmcgYmluYXJ5IGFuZCBoZXggc3RyaW5ncy4KCjIwMDktMDQtMTEgMTI6NTIgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHN1Z2dlc3QgdHJ1bmNhdGlvbiBvZiBDaGFuZ2VMb2cucmVhbGx5YWRkCgoyMDA5LTA0LTEwIDIzOjE4ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBXaW4zMjogUEFUQ0ggMjY5MTg3NjogQXBwbGllZCBwYXRjaCBieSByZGlleiB0byBhbGxvdwogICBjb21waWxpbmcgdGhlIHNlcnZpY2VzIHVzaW5nIHVuaWNvZGUuCgoyMDA5LTA0LTEwIDIyOjU1ICBhbGV4X2IKCiAgICogIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsICAgCiAgICAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcCwgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgICAKICAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcCwgICAKICAgICAgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgICAKICAgICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCB3aW4zMi9zbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgICAKICAgICAgd2luMzIvc25tcHRlc3Qvc25tcHRlc3QuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wdmFjbS9zbm1wdmFjbS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFdpbjMyOiBQQVRDSCAyNjg4MzA5OiBBcHBsaWVkIHBhdGNoIGJ5IEJhcnQgVmFuIEFzc2NoZSB0byByZW1vdmUKICAgTVNWQyAyMDA1LzIwMDggY29tcGlsZXIgd2FybmluZ3MuCgoyMDA5LTA0LTEwIDIxOjQ1ICBhbGV4X2IKCiAgICogIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCAgIAogICAgICB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBXaW4zMjogTWlub3IgYnVpbGQgYW5kIHJlYWRtZSB1cGRhdGVzLgoKMjAwOS0wNC0xMCAyMTozOCAgYWxleF9iCgogICAqICBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsICAgCiAgICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgTkVXUzogV2luMzI6IFBBVENIIDI2ODYyNDg6IEFwcGxpZWQgcGF0Y2ggYnkgQmFydCBWYW4gQXNzY2hlCiAgIHdoaWNoIGZpeGVzIHNldmVyYWwgd2luRXh0RExMIGJ1Z3MuCgoyMDA5LTA0LTEwIDIwOjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByZXN0b3JlIGFubm95aW5nIGxvZyBtZXNzYWdlLCBidXQgZml4IGNhdXNlIG9mIGl0IG9uICFmcmVlYnNkCiAgIHN5c3RlbXMKCjIwMDktMDQtMDkgMTI6MjggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU1MDczMDogUmVwb3J0IGVycm9ycyBmcm9tIGl0ZXJhdG9yLWJhc2VkCiAgIGhhbmRsZXJzLgogICBCYXNlZCBvbiBhIHBhdGNoIHByb3ZpZGVkIGJ5IFdheW5lIEdsYW50egoKMjAwOS0wNC0wOSAxMTo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjEyNDI4ODogRml4IHNldHRpbmcgb2YKICAgdXNtVXNlclByaXZQcm90b2NvbCBhdCBjcmVhdGlvbi4KICAgTG9naWMgYnVnLCByZXBvcnRlZCBieSBSYW1lc2ggS290YWJhZ2kKCjIwMDktMDQtMDkgMDk6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDIyNTgyMjk6IFJlbW92ZSBtaXNsZWFkaW5nIGNvbW1lbnQKICAgUGF0Y2ggcHJvdmlkZWQgYnkgRGFuIEFuZGVyc29uCgoyMDA5LTA0LTA5IDA5OjA4ICBkdHMxMgoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jOgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjI2MDgyODogRml4IHB5dGhvbiBzbm1wd2FsayBtZW1vcnkgbGVhawogICBQYXRjaCBwcm92aWRlZCBieSBHYWJyaWVsZSBNZXNzaW5lbwoKMjAwOS0wNC0wOSAwODo1OCAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIyNzIzNDc6IEltcGxlbWVudCAiaW1wbGllZCIgaW4gTUlCIGhhc2gKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQmlsbCBGZW5uZXIKCjIwMDktMDQtMDkgMDg6NTQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBDSEFOR0VTOiBtaWIyYzogUEFUQ0g6IDIzMTYxMjc6IEZpeCBidWcgaW4gaXRlcmF0ZV9hY2Nlc3MKICAgZ2VuZXJhdGVkIGNvZGUuCgoyMDA5LTA0LTA5IDA4OjQ4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjQzNTY4MTogRW5hYmxlIGlmLW1pYiByZXdyaXRlICh3aXRoCiAgIHN5c2N0bCBiYWNrZW5kKSBvbiBOZXRCU0QKCjIwMDktMDQtMDkgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc3lzY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI0MzU3OTM6IFN1cHBvcnQgNjQtYml0IElGLU1JQiBjb3VudGVycyBvbgogICBzeXNjdGwgKCpCU0QpIHN5c3RlbXMuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEphbiBBbmRyZXMKCjIwMDktMDQtMDkgMDg6MDAgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGZpeCBjb21waWxhdGlvbiB3YXJuaW5ncwoKMjAwOS0wNC0wOCAyMzoxNyAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgbW92ZSBjb21tZW50cyB0byBhIHBsYWNlIHdoZXJlIHRoZXkgYXJlIGxlZ2FsCgoyMDA5LTA0LTA4IDIzOjAzICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG0sIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICAtIHJlbmFtZSBuZXcgZ2V0UmVxdWVzdG9ySXAgdG8gZ2V0U291cmNlSVAgYW5kIGdldFRhcmdldElwIHRvCiAgIGdldERlc3RJcAogICAtIHJlbWluZCB0aGF0IHRoaXMgaXMgZnVsbHkgdHJhbnNwb3J0LXNwZWNpZmljLCBpLmUuIFVEUC9JUHY0CiAgIG9ubHkhCgoyMDA5LTA0LTA4IDE2OjAwICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIzODQ3Nzk6IEZpeCBoYW5kbGluZyBvZiBHZXRCdWxrIHdpdGgKICAgTj4wLE09PTAKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQW5ndXMgU2Fsa2VsZAoKMjAwOS0wNC0wOCAxNTo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAyNDA2Mzc4OiBGaXggaHJTV1J1blBlcmZNZW0gb24gNjQtYml0CiAgIFNvbGFyaXMgc3lzdGVtcwogICBQYXRjaCBwcm92aWRlZCBieSBOVHdvTwoKMjAwOS0wNC0wOCAxNTo0OCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyNDc5NzAwOiBGaXggem9uZWQgSVAgYWRkcmVzcyB1c2VkIGFzCiAgIHRhYmxlIGluZGljZXMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgQnJpYW4gUmV0Zm9yZC4KCjIwMDktMDQtMDggMTU6MzMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjQ5MjM3NzogRml4IHR5cG8vYnVnIGluCiAgIHNubXBfZW5hYmxlX2NhbGxiYWNrKCkKICAgUmVwb3J0ZWQgYnkgam95Y2Vhbm1hY2hpbmUKCjIwMDktMDQtMDggMTU6MjkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19mcmVlYnNkLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBUYWJsZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19mcmVlYnNkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI1MDcyNDk6IHNjdHAtbWliIHN1cHBvcnQgZm9yIEZyZWVCU0QuCgoyMDA5LTA0LTA4IDE1OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjUzODE2OTogUHJldmVudCBpbmZpbml0ZSByZXRyaWVzIGZvciBhbgogICBpbnZhbGlkIGVycm9yLWluZGV4LgogICBQYXRjaCBwcm92aWRlZCBieSBEb3VnIE1hbmxleQoKMjAwOS0wNC0wOCAxNDo1OCAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDI1ODA5Nzk6IEZpeCBweXRob24gc2Vzc2lvbiBwb2ludGVycyBvbgogICA2NC1iaXQgc3lzdGVtcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgSm9obiBLaHZhdG92LgoKMjAwOS0wNC0wOCAxNDo0OSAgZHRzMTIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMjY2NzQxNTogU3VwcG9ydCAiVXNlTnVtZXJpYyIgb3B0aW9uLgogICBSZW1vdmUgZGVidWdnaW5nIG91dHB1dCBpbiAic25tcHdhbGsiIGNvbW1hbmQuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IERpZWdvIEJpbGxpCgoyMDA5LTA0LTA4IDE0OjM0ICBkdHMxMgoKICAgKiAgcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtLCAgIAogICAgICBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIOiAyNzI2MzAyOiBQYXNzIHJlc3VsdHMgb2YgUGVybCB0cmFwCiAgIGhhbmRsZXJzIHRvIHRyYXAgZGFlbW9uCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1pY2hhZWwgU2NobWl0egoKMjAwOS0wNC0wOCAxNDozMCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMjcxMzg0MTogRml4IHJ1bnRpbWUgZXJyb3JzIHRyaWdnZXJlZCBieQogICBoaWdoLUFTQ0lJIGNoYXJzCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEJhcnQgVmFuIEFzc2NoZQoKMjAwOS0wNC0wOCAxNDoyNCAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbSwgcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyNzA5NzA1OiBSZXRyaWV2ZSBzcmMvdGFyZ2V0IElQIGFkZHJlc3MgaW4KICAgUGVybC1iYXNlZCBhZ2VudHMKICAgUGF0Y2ggcHJvdmlkZWQgYnkgZmhldwoKMjAwOS0wNC0wOCAxNDoxNiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDI2ODkzNjI6IEZpeCBoYW5kbGluZyBvZiBJUHY2IGhvc3RuYW1lcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgTmVzdG9yIE1lbG8uCgoyMDA5LTA0LTA4IDE0OjA1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IFBBVENIOiAyNjg4MzQ1OiBGaXggbmV0c25tcF9hc3NlcnQoKSBmb3IgVmlzdWFsCiAgIFN0dWRpbwogICBQYXRjaCBwcm92aWRlZCBieSBCYXJ0IFZhbiBBc3NjaGUKCjIwMDktMDQtMDggMTM6MzUgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDI2ODYyODA6IFJlcG9ydCBkdXBsaWNhdGUgcmVnaXN0cmF0aW9ucyBhcwogICBhbiBlcnJvciAocmF0aGVyIHRoYW4gYSBmYWlsZWQgYXNzZXJ0aW9uKS4KICAgRml4IHByb3ZpZGVkIGJ5IEJhcnQgVmFuIEFzc2NoZQogICAKICAgUW46IERvZXMgdGhpcyBldmVuIHF1YWxpZnkgYXMgYW4gZXJyb3I/IFdvdWxkbid0IGEgd2FybmluZyBiZQogICBzdWZmaWNpZW50PwoKMjAwOS0wNC0wNiAxOTozMyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIHNubXBsaWI6IE1ha2UgdGhlIG5vZGUgc3RydWN0IHByaXZhdGUuIEhpZGUgdGhlIG9yaGFuX25vZGVzCiAgIHZhcmlhYmxlLgoKMjAwOS0wNC0wNiAxODo0NSAgbWFnZnIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBzbm1wZCxwZXJsOiBJZiBteV9wZXJsIGlzIE5VTEwgd2hlbiBwYXNzZWQgdG8gcGVybF9kZXN0cnVjdCB0aGVuCiAgIHRoYXQgZnVuY3Rpb24gY3Jhc2hlcyBmb3Igc29tZSBwZXJsIHZlcnNpb25zIHNvIGNoZWNrIHRoYXQgaXQgaXMKICAgbm9uLW51bGwgYmVmb3JlIGRlc3Ryb3lpbmcgaXQuCgoyMDA5LTA0LTA2IDE4OjQyICBtYWdmcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgcGVybDogQXZvaWQgc3VycHJpc2VzIGlmIHRoZSBwZXJsIHN0cmluZyBjb250YWlucyBwcmludGYgZXNjYXBlCiAgIGNoYXJhY3RlcnMuCgoyMDA5LTA0LTA2IDE4OjIyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBQcm9wZXIgY2hlY2sgZm9yIGVtcHR5IHByb2Nlc3Mgc3RhdHVzIGZpbGUuCiAgIChBdm9pZHMgdHJ1bmNhdGVkIHdhbGsgb2YgaHJTV1J1blBhdGggb24gU3VTRSBzeXN0ZW1zKQogICBSZXBvcnRlZCBieSBLYW1pbCBLaXNpZWwuCgoyMDA5LTA0LTA2IDExOjU4ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHMsIHBlcmwvYWdlbnQvdHlwZW1hcDoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRyAxNTU0ODE3OiBmcm9tIHhhbmNvOiByZXZpc2VkIGZpeCBmb3IgdGhlIGNsYXNzCiAgIGFzc2lnbWVudCBzbwogICBnZXRSb290T0lEIHdvcmtzIHByb3Blcmx5LiBOb3cgcGFzc2VzICJtYWtlIHRlc3QiIGFuZCAibWFrZQogICBwZXJsdGVzdCIuCgoyMDA5LTA0LTA1IDEwOjA1ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgUmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCgoyMDA5LTA0LTA1IDA5OjUzICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQ2lkclJvdXRlVGFibGUuYywgICAKICAgICAgbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwgbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBNYWtlIGV2ZW4gbW9yZSB2YXJpYWJsZXMgYW5kIHRlbXBsYXRlcyBjb25zdC4KCjIwMDktMDQtMDQgMjI6MTMgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuaCwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VwZGF0ZXMuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oLAogICAgICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuaDoKCiAgIHNubXBkOiBNYWtlIG1vcmUgbG9jYWwgdmFyaWFibGVzIGNvbnN0IGFuZCBsb2NhbC4KCjIwMDktMDQtMDQgMTA6MDcgIG1hZ2ZyCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE1hcmsgdGhlIHJlY29uZmlnIHZhcmlhYmxlIGFzIHN0YXRpYyBzaW5jZSBpdCBpcyBwcml2YXRlIHRvIHRoZQogICBtb2R1bGUuCgoyMDA5LTA0LTA0IDEwOjAzICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIE1hcmsgdGhlIGZpbGUgc2NvcGUgcHJpdmF0ZSB2YXJpYWJsZSBtaW5pbXVtX3N3YXAgYXMgc3RhdGljLgoKMjAwOS0wNC0wNCAwOTo1OCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIHNubXBsaWI6IE1ha2UgbW9yZSBzeW1ib2xzIGNvbnN0IGluIG9yZGVyIHRvIG1vdmUgdGhlbSB0bwogICByZWFkb25seSBtZW1vcnkuCgoyMDA5LTA0LTAyIDIxOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBCVUcgMTEyNjk0OiBQYXRjaCBmcm9tIEJpbGwgRmVubmVyOiBkb24ndCBvcGVuIChhbmQKICAgY2xvYmJlcikgYW4gYWdlbnR4IHNvY2tldCBpZiB0aGUgb3RoZXIgdHJhbnNwb3J0cyBmYWlsIHRvIG9wZW4KCjIwMDktMDQtMDEgMjM6NDEgIGhhcmRha2VyCgogICAqIENIQU5HRVMsIE5FV1M6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwOS0wNC0wMSAyMzoxOSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDktMDQtMDEgMjM6MDQgIGhhcmRha2VyCgogICAqICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwOS0wNC0wMSAyMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmMsIHNubXBsaWIvc25tcHRzbS5jOgoKICAgY29udmVydCBjb21tZW50cyB0byBBTlNJIGNvbW1lbnRzCgoyMDA5LTA0LTAxIDIyOjIxICBoYXJkYWtlcgoKICAgKiAgbWFuL01ha2VmaWxlLmluLCBtYW4vbmV0c25tcF9hY2Nlc3NfbXVsdGlwbGV4ZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYWdlbnRfaGFuZGxlci5oLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgICAKICAgICAgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zLCAgIAogICAgICBtYW4vbmV0c25tcF9jYWxsYmFjay4zLCBtYW4vbmV0c25tcF9jb250YWluZXIuMywgICAKICAgICAgbWFuL25ldHNubXBfY29udGFpbmVyX2l0ZXJhdG9yLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2NvbnRhaW5lcl9pdGVyYXRvci5oLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9kZWJ1Zy4zLCBtYW4vbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG1hbi9uZXRzbm1wX2xlYWYuMywgICAKICAgICAgbWFuL25ldHNubXBfbGlicmFyeS4zLCBtYW4vbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywgICAKICAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21vbml0b3JfY2FsbGJhY2tfaGVhZGVyX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywgICAKICAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9udWxsX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgICAKICAgICAgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX2NvbmZpZy4zLCAgIAogICAgICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgICAKICAgICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9hbGFybS4zLCBtYW4vbmV0c25tcF9zbm1wX2NsaWVudC4zLCAgIAogICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywgICAKICAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMywgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsICAgCiAgICAgIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCAgIAogICAgICBtYW4vbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zLCBtYW4vbmV0c25tcF90YWJsZV9yb3cuMywgICAKICAgICAgbWFuL25ldHNubXBfdGFibGVfcm93cy4zLCBtYW4vbmV0c25tcF90ZGF0YS4zLCAgIAogICAgICBtYW4vbmV0c25tcF90b29scy5oLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywgICAKICAgICAgbWFuL25ldHNubXBfdXRpbGl0aWVzLjMsIG1hbi9uZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgICAKICAgICAgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDktMDQtMDEgMjI6MDMgIGhhcmRha2VyCgogICAqICBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuYWMsIGRpc3QvTWFrZWZpbGUsICAgCiAgICAgIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBWZXJzaW9uIG51bWJlciB1cGRhdGUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQgLT4gVjUuNS5wcmUxCgoyMDA5LTA0LTAxIDIxOjU4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGQuOC5kZWY6CgogICB1cGRhdGVzIGZvciBTU0gKCjIwMDktMDQtMDEgMTk6MzkgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBNYWtlIHRoZSBzcmMgcG9pbnRlciBvZiBzbm1wX2Nsb25lX21lbSBhIHBvaW50ZXIgdG8gY29uc3RhbnQuCgoyMDA5LTA0LTAxIDE4OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzOgoKICAgaWdub3JlICdzc2h0b3NubXAnCgoyMDA5LTA0LTAxIDE3OjMxICBoYXJkYWtlcgoKICAgKiAgYXBwcy9zc2h0b3NubXAuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgbWFuL3NubXBkLjguZGVmLCBzbm1wbGliL3NubXBTU0hEb21haW4uYzoKCiAgIE1ha2Ugc3NoIHRyYW5zcG9ydCBzdXBwb3J0IHVzZSBhIHVuaXggc29ja2V0IHdpdGggcHJvcGVyCiAgIGNyZWRlbnRpYWwgcGFzc2luZwoKMjAwOS0wNC0wMSAxNzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgbWFrZSB0aGUgZXhlYyBjYWNoZSByZWFkYWJsZSBvbmx5IGJ5IHRoZSB1c2VyCgoyMDA5LTA0LTAxIDE3OjI4ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgbW92ZSBzdHJpbmcgdG8gdWlkL2dpZCBmdW5jdGlvbmFsaXR5IHRvIHNubXBsaWIgZm9yIHJldXNlCgoyMDA5LTAzLTMxIDE1OjEyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBCYWxhbmNlIHBhcmVudGhlc2VzIGluIGNhY2hlLWJhc2VkIHJlZ2lzdHJhdGlvbiBjb2RlLgoKMjAwOS0wMy0zMSAxNTowNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQnV0IHRoZXkncmUgbm90IEMgY29tbWVudHMgYXQgYWxsLCBEYXZlLgogICBUaGV5IGFyZSBtaWIyYyB0ZW1wbGF0ZSBjb21tZW50cywKICAgYW5kIHNob3VsZCBiZSBvbWl0dGVkIGZyb20gdGhlIGdlbmVyYXRlZCBjb2RlLgogICA8c2lnaD4KCjIwMDktMDMtMzEgMTU6MDAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEMgY29tbWVudHMgdXNlIC8qIC4uLiAqLywgbm90ICMKCjIwMDktMDMtMzEgMDg6MDUgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmM6CgogICBGaXggY29tcGlsYXRpb24gd2l0aCBnbGliYyA8IDIuNCwgSUNNUHY2IG1lc3NhZ2UgdHlwZXMgc3RhcnRpbmcKICAgd2l0aCBNTERfKiBoYXZlIGRpZmZlcmVudCBuYW1lIHRoZXJlLgoKMjAwOS0wMy0yNCAwNjowNCAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX29wZW5zc2wuYzoKCiAgIERvIG5vdCBjb21waWxlIHRoZSBwYXJ0cyB0aGF0IGRlcGVuZCBvbiBsaWJzc2wgaWYgbGlic3NsIGlzCiAgIG1pc3NpbmcuCgoyMDA5LTAzLTIzIDA5OjIxICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCAKICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmg6CgogICBORVdTOiBzbm1wZDogaXBOZXRUb1BoeXNpY2FsTGFzdFVwZGF0ZWQgT0lEIGltcGxlbWVudGVkCiAgIAogICBUaGUgdmFsdWUgaXMgZXN0aW1hdGVkIHdpdGggZXZlcnkgY2FjaGUgcmVsb2FkLCB3aGljaCBpcyBvbmNlIGluCiAgIDYwIHNlY29uZHMgYnkgZGVmYXVsdC4KICAgVGhhdCBtZWFucyB0aGUgdmFsdWUgcmVwb3J0ZWQgYnkgc25tcGQgbWF5IGRpZmZlciBmcm9tIHJlYWxpdHkgYnkKICAgb25lIG1pbnV0ZS4KICAgSWYgYW55Ym9keSBuZWVkcyBiZXR0ZXIgcHJlY2lzaW9uLCB0aGUgY2FjaGUgdGltZW91dCBjYW4gYmUKICAgY29uZmlndXJlZCBieSBzZXR0aW5nCiAgIE5FVC1TTk1QLUFHRU5ULU1JQjo6bnNDYWNoZVRpbWVvdXQuMS4zLjYuMS4yLjEuNC4zNSB0bwogICBhcHByb3ByaWF0ZSB2YWx1ZSBieSBzbm1wc2V0LgoKMjAwOS0wMy0yMCAxOTozOCAgaGFyZGFrZXIKCiAgICogZGlzdC9leHRyYWN0bmV3czoKCiAgIGZpeCBsYWNrIG9mIHdyYXBwaW5nIGxpbmVzIHByb2JsZW0KCjIwMDktMDMtMjAgMTg6MzEgIGhhcmRha2VyCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBjb25maWcgb3B0aW9ucywgZXRjLCBmb3IgU1NIIGFuZCBEVExTCgoyMDA5LTAzLTIwIDE4OjI0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZiwgbWFuL3NubXBkLjguZGVmOgoKICAgY3VycmVudGx5IG1pbmltYWwgZG9jdW1lbnRhdGlvbiBvbiBkdGxzIGFuZCBzc2gKCjIwMDktMDMtMjAgMTY6NTAgIGhhcmRha2VyCgogICAqICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NzaHRvc25tcC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNTSERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBTU0hEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgQWRkZWQgYWxwaGEgc25tcCBvdmVyIHNzaCBzdXBwb3J0CgoyMDA5LTAzLTIwIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBEVExTVURQRG9tYWluLmM6CgogICBjaGVjayB0aGUgc2VjIG5hbWUgbGVuZ3RoLCBub3QganVzdCB0aGUgY29udGVudHMKCjIwMDktMDMtMjAgMTY6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgc2VxdWVuY2UgcGFyc2luZyBmaXgKCjIwMDktMDMtMjAgMTU6NTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGRlZCBhIG5ldyBmbGFnIHRvIGFsbG93IGZvciBzaWduYWxsaW5nIG9mIGxlZ2FsIGVtcHR5IHBhY2tldHMKICAgZnJvbSBhIHRyYW5zcG9ydAoKMjAwOS0wMy0xOCAxOTo0MiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgTWFrZSBpdCBwb3NzaWJsZSB0byBjb21waWxlIGFnYWluLgoKMjAwOS0wMy0xOCAxMDo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgY3B1X2xpbnV4OiBhdm9pZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlcgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAwOS0wMy0xOCAxMDo0MyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgbGludXg6IGluY3JlYXNlIHNpemUgb2YgaW5pdGlhbCBwcm9jIGkvbyBidWZmZXIKICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5ncwoKMjAwOS0wMy0xOCAxMDozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgbWVtb3J5X2xpbnV4OiBhdm9pZCByZWFkaW5nIHBhc3QgZW5kIG9mIGJ1ZmZlci4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgU3RlcGhlbiBIZW1taW5nZXIKCjIwMDktMDMtMTggMTA6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCB2YWxncmluZCB3YXJuaW5nLgogICBQYXRjaCBwcm92aWRlZCBieSBTdGVwaGVuIEhlbW1pbmdlcgoKMjAwOS0wMy0xNyAyMjo1NyAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIFBBVENIOiAyNjg4MzQyOiBmcm9tICJCYXJ0IFZhbiBBc3NjaGUiOiBVc2UgcHJvcGVyIGZ1bmN0aW9uCiAgIHBvaW50ZXJzCgoyMDA5LTAzLTEzIDIxOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIFByb2Nlc3MgaHJNZW1vcnlTaXplIChzY2FsYXIpIHNlcGFyYXRlbHkgZnJvbSBoclN0b3JhZ2VUYWJsZS4KICAgVGhpcyBzaW1wbGlmaWVzIHRoZSBoYW5kbGVyIGNvZGUgc3RydWN0dXJlLgoKMjAwOS0wMy0xMyAyMToyMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlZ2lzdGVyIENQVS9tZW1vcnkgaGFyZHdhcmUgbW9kdWxlcyB3aXRoCiAgIG5zQ2FjaGVUYWJsZS4KICAgQWxsb3dzIG1vbml0b3JpbmcgZnJlcXVlbmN5IHRvIGJlIGNvbmZpZ3VyZWQgZHluYW1pY2FsbHkuCgoyMDA5LTAzLTEzIDIxOjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEF2b2lkIGRpdjAgY3Jhc2guCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgTmljayBIaW5kbGV5CgoyMDA5LTAzLTEzIDIxOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2tzdGF0LmM6CgogICBTa2lwIG5ldyBDUFVzLCB0aGF0IGhhdmUgYXBwZWFyZWQgc2luY2UgdGhlIGFnZW50IGZpcnN0IHN0YXJ0ZWQuCiAgIChBbiBhbHRlcm5hdGl2ZSBtaWdodCBiZSB0byBjcmVhdGUgYSBuZXcgZW50cnkgaW5zdGVhZCkuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgTmljayBIaW5kbGV5CgoyMDA5LTAzLTEwIDE1OjI1ICBqc2FmcmFuZWsKCiAgICogUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmM6CgogICBORVdTOiBzbm1wZDogaXBBZGRyZXNzU3BpbkxvY2sgaW1wbGVtZW50ZWQKCjIwMDktMDMtMDIgMTE6MjMgIGR0czEyCgogICAqIENPUFlJTkc6CgogICBGaXggYXR0cmlidXRpb24gb2YgbGF0ZXN0IGNvcHlyaWdodCBub3RpY2UuCgoyMDA5LTAyLTI4IDE4OjIxICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vdmUgdGhlICNkZWZpbmUgY29uZmlnXyooLi4uKSBmcm9tIGFjY29uZmlnLmggdG8gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHQgc28gdGhhdCB0aGV5IGFyZSBuZXh0IHRvIHRoZSBjb2RlIHRoYXQgaGFuZGxlIHRoZQogICBjb3JyZXNwb25kaW5nIGNvbmZpZ18qIHRva2VuLgoKMjAwOS0wMi0yNyAxMzoyMCAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgR2V0IHJpZCBvZiBhbm5veWluZyAnZGlza2lvLmM6IGRvbid0IGtub3cgaG93IHRvIGhhbmRsZSA5CiAgIHJlcXVlc3QnIGluIGxvZy4KICAgSXQncyBiZWluZyB3cml0dGVuIHRvIGxvZyBldmVyeXRpbWUgc29tZW9uZSBxdWVyaWVzCiAgIFVDRC1TTk1QLURJU0tJTyBNSUIuCgoyMDA5LTAyLTI1IDA2OjQxICBtYWdmcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBVc2UgdGhlIGZlYXR1cmUgdGVzdCBtYWNyb3MgdG8gc2V0IHdoYXQgaXMgbmVlZGVkLgogICBEbyBub3QgdXNlIHRoZSBpbnRlcm5hbCBHTlUgbGliYyBtYWNyb3MgdGhhdCBhcmUgc2V0IGJ5IHNldHRpbmcKICAgdGhlIGZlYXR1cmUgdGVzdCBtYWNyb3MuCgoyMDA5LTAyLTI1IDA2OjM4ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBBZGQgbWlzc2luZyBpbmNsdWRlLgoKMjAwOS0wMi0yNCAwNzoyNiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IE1ha2UgLUxOIHN0b3AgZHVtcGluZyBjb3JlLiBNYWtlIGJhZCBkZWJ1ZyBsZXZlbHMgcmVwb3J0CiAgIHRoZSBvZmZlbmRpbmcgc3ltYm9sLgoKMjAwOS0wMi0yNCAwNjo1MCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1vdmUgdGhlIGRpcmVjdG9yeSBjcmVhdGlvbiBjb2RlIHRvIGhhcHBlbiBhZnRlciB0aGUgZG9tYWluCiAgIHNlbGVjdGlvbiBjb2RlIHNvIHRoYXQgdGhlIGRpcmVjdG9yeSBjcmVhdGlvbiBjb2RlIGtub3dzIHdoYXQKICAgZGlyZWN0b3J5IHRvIGNyZWF0ZS4KCjIwMDktMDItMjQgMDY6NDcgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDaGFuZ2UgdGhlIGVycm9yIGNoZWNraW5nIG9wdGlvbiAtLWVuYWJsZS1teXNxbCB0byBzdWdnZXN0IHRoYXQKICAgdGhhdCAtLXdpdGgtbXlzcWwgaXMgdXNlZCByYXRoZXIgdGhhdCAtLXdpdGgtb3BlbnNzbC4KCjIwMDktMDItMjQgMDY6NDQgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlZ2VuZXJhdGUgYXV0b2NvbmYgYXJ0aWZhY3RzLgoKMjAwOS0wMi0yMyAxODo0MyAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkX3NxbC5jOgoKICAgYWRkIGZvcmdvdHRlbiBmaWxlCgoyMDA5LTAyLTIwIDA0OjQxICBoYXJkYWtlcgoKICAgKiAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgCiAgICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3Byb2dzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3Nfc3RydWN0X21lbWJlcnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X21hbnVhbCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfcGF0aHMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBhZGRlZCBlbWFjcyBhdXRvY29uZiBtb2RlIHNwZWNpZmllcgoKMjAwOS0wMi0xOSAxODozMiAgcnN0b3J5CgogICAqIFJFQURNRS5zcWwsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG5ldyBzcWwgdHJhcCBsb2dnaW5nCgoyMDA5LTAyLTE5IDE4OjIwICByc3RvcnkKCiAgICogIENPUFlJTkcsIE5FV1MsIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsIGNvbmZpZ3VyZSwgIAogICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBkaXN0L3NjaGVtYS1zbm1wdHJhcGQuc3FsLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogc25tcHRyYXBkOiBhZGQgdHJhcCBoYW5kbGVyIGZvciBsb2dnaW5nIHRyYXBzIHRvIGEgbXlzcWwKICAgZGF0YWJhc2UKCjIwMDktMDItMTkgMTc6NTggIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jLCAgIAogICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIE5FV1M6IHNubXBsaWI6IGFkZGVkIGl0ZXJhdG9yIGZvciBzaW5nbHkgbGlua2VkIGxpc3RzOyBhZGQKICAgY29udGFpbmVyIG5hbWUgaW4gbW9yZSBlcnJvciBtc2dzCgoyMDA5LTAyLTE4IDE4OjUyICByc3RvcnkKCiAgICogYXBwcy9zbm1wdXNtLmMsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaDoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGNoYW5nZSBNQVhfRU5HSU5FSURfTEVOR1RIIHRvIDMyLCBwZXIKICAgU05NUC1GUkFNRVdPUkstTUlCIFNubXBFbmdpbmVJRCBUQwoKMjAwOS0wMi0xOCAxNDo0MSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmM6CgogICBDb25maWd1cmUgc2NyaXB0IGRvZXMgbm90IGxpa2UgbmV0LXNubXAtY29uZmlnLmggYmVpbmcgaW5jbHVkZWQKICAgZnJvbSBoZWFkZXIKICAgZmlsZXMsIHdoaWNoIGFyZSBhZGRlZCBieSAtLXdpdGgtbWliLW1vZHVsZXM9LCBsZXQncyByZW1vdmUgaXQKICAgZnJvbSB0aGVyZS4KCjIwMDktMDItMTYgMjE6MjQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBCVUcgMTU1NDgxNzogUGF0Y2ggZnJvbSB4YW5jbzogZml4IHRoZSBjbGFzcwogICBhc3NpZ21lbnQgc28gZ2V0Um9vdE9JRCB3b3JrcyBwcm9wZXJseS4KCjIwMDktMDItMTUgMDc6MjAgIG1hZ2ZyCgogICAqIGFjY29uZmlnLmg6CgogICBDb3JyZWN0IGNvcHkvcGFzdGUgbWlzdGFrZQoKMjAwOS0wMi0xMiAwMDoyNSAgaGFyZGFrZXIKCiAgICogIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wRFRMU1VEUERvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgbWlicy9ORVQtU05NUC1UQy50eHQsICAgCiAgICAgIHNubXBsaWIvc25tcERUTFNVRFBEb21haW4uYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYzoKCiAgIEFuIGVhcmx5IGV4cGVyaW1lbnRhbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgRFRMUyBvdmVyIFVEUAogICB0cmFuc3BvcnQgZnJvbSB0aGUgSUVURiBJU01TIHdvcmtpbmcgZ3JvdXAKCjIwMDktMDItMTEgMjM6MzAgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGVkIHJlbGVhc2UgaW5zdHJ1Y3Rpb25zCgoyMDA5LTAyLTA2IDIxOjM2ICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIGFzIEMrKyBhZ2Fpbi4KCjIwMDktMDItMDUgMjI6NTYgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9kaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlQ3RsVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfZnVuY3Rpb25zLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1Lmg6CgogICBDSEFOR0VTOiBidWlsZDogQXNzdW1lIHRoYXQgdGhlIHRhcmdldCBwbGF0Zm9ybSBzdXBwb3J0cyBtZW1jcHksCiAgIG1lbW1vdmUsIG1lbXNldCwgc3RyY2hyIGFuZCBzdHJyY2hyLgoKMjAwOS0wMi0wNCAwNjo1NyAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3NubXBfZGVidWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbnByaW50Zi5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBSZW1vdmUgc3VwcG9ydCBmb3IgdXNlIG9mIHZhcmFyZ3MuaC4gTm93IGFzc3VtZXMgdGhhdAogICBzdGRhcmcuaCBpcyBhdmFpbGFibGUuCgoyMDA5LTAyLTA0IDA2OjQ5ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF90cmFwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgIAogICAgICBzbm1wbGliL3NubXB2My5jOgoKICAgTkVXUzogc25tcGxpYjogSW50cm9kdWNlIHByaW50Zi1saWtlIHZlcnNpb25zIG9mIGNvbmZpZ19wZXJyb3IKICAgYW5kIGNvbmZpZ19wd2FybiAobmV0c25tcF9jb25maWdfZXJyb3IgYW5kIG5ldHNubXBfY29uZmlnX3dhcm4pLgogICBSZXBsYWNlIG1hbnkgaW5zdGFuY2VzIG9mIHsgdG1wYnVmWy4uLl07IHNwcmludGYodG1wYnVmLCAuLi4pOwogICBjb25maWdfcCoodG1wYnVmKTsgfSB3aXRoIG5ldHNubXBfY29uZmlnXyooLi4uKTsKCjIwMDktMDItMDMgMTY6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIGFkZCB0aGUgcmVnaW5mbyBhbmQgYW5kIHNlc3Npb24gcG9pbnRlciB0byB0aGUgUkVHSVNURVJfT0lECiAgIGNhbGxiYWNrCgoyMDA5LTAyLTAzIDAwOjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgZml4ZWQgLWxzc2wgY2hlY2sKCjIwMDktMDEtMjkgMDg6MzggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJldHVybiBhIGxlc3MgbWlzbGVhZGluZyBlcnJvciB3aGVuIGFkZGluZyBhbiB1bnJlY29nbmlzZWQgdmFsdWUuCgoyMDA5LTAxLTI4IDEwOjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBzcmMvZHN0IGNvbmZ1c2lvbgogICBQYXRjaCBwcm92aWRlZCBieSBLcnp5c3p0b2YgT2zniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLblm5h6a2kKCjIwMDktMDEtMjggMDk6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogRml4IHR3byBidWdzIHdpdGggc211eCBwYXNzd29yZCBzdXBwb3J0LgogICBQYXRjaCBzdXBwbGllZCBieSBLcnp5c3p0b2YgT2zniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLblm5h6a2kKCjIwMDktMDEtMjMgMTQ6NTMgIGpzYWZyYW5lawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRml4IHBhcnNpbmcgb2YgbGV2ZWwgcmFuZ2VzIGluICctTDxjYXBpdGFsPicuCgoyMDA5LTAxLTIwIDE0OjUxICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgY29uZmlndXJlLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIENoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIDxycG0vcnBtZmlsZXV0aWwuaD4gYmVmb3JlIGluY2x1ZGluZwogICBpdC4KCjIwMDktMDEtMTkgMjA6NTAgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgd2l0aG91dCBJUHY2IGFnYWluLgoKMjAwOS0wMS0xOSAxNTowMSAganNhZnJhbmVrCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkyNzc1MTogZnJvbSBNaXRzdXJ1IENoaW5lbjogaW1wbGVtZW50CiAgIGljbXBNc2dTdGF0c1RhYmxlIG9uIExpbnV4CgoyMDA5LTAxLTE5IDA5OjQxICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCAgIAogICAgICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDI0NDkyMTA6IGFkZCA2NC1iaXQgZGlzayB1c2FnZSBzdGF0aXN0aWNzIHRvCiAgIFVDRC1TTk1QLU1JQjo6ZHNrVGFibGUKCjIwMDktMDEtMTggMDc6NDAgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBCVUc6IDIxNjgxODA6IENoYW5nZWQgLS1kaXNhYmxlLXJlZW50cmFudCB0byBub3QKICAgYWN0aXZhdGUgdGhlIHJlZW50cmFudCBjb2RlIGFuZCBtYWRlIC0tZW5hYmxlLXJlZW50cmFudCBhY2NlcHQgbm8KICAgdmFsdWVzIG90aGVyIHRoYW4geWVzIGFuZCBuby4gRGlkIHRoZSBzYW1lIGZvcgogICAtLWVuYWJsZS1taWItY29uZmlnLWNoZWNrcywgLS1lbmFibGUtbWliLWNvbmZpZy1kZWJ1ZywKICAgLS13aXRoLWRlZmF1bHRzLCAtLWVuYWJsZS1kZXZlbG9wZXIgYW5kIC0tZW5hYmxlLXRlc3RpbmctY29kZSBhcwogICB3ZWxsLgoKMjAwOS0wMS0xMyAwOToxNyAganNhZnJhbmVrCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ2hlY2sgZW5jb2Rpbmcgb2YgT0lEcy4KICAgCiAgIEJFUiBlbmNvZGVkIE9JRHMgc2hvdWxkIGhhdmUgaGlnaCBiaXQgY2xlYXIgaW4gdGhlIGxhc3QgYnl0ZSBvZgogICBlYWNoIHN1YmlkZW50aWZpZXIuIFRoaXMgaXMgbm93IGNoZWNrZWQgYW5kIHBhcnNpbmcgb2YgT0lEIGZhaWxzLAogICBpZiB0aGlzIGNvbmRpdGlvbiBpcyBub3QgbWV0LgoKMjAwOS0wMS0xMSAyMTo1NCAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBDaGVjayB0aGF0IHRoZSB0ZW1wLWZpbGUtcGF0dGVybiBlbmRzIGluIDYgWCdzCiAgIGFzIG1rc3RlbXAgYW5kIG1rdGVtcCByZXF1aXJlIHRoYXQuCgoyMDA5LTAxLTExIDIxOjM4ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBCZSBhIGxvdCBtb3JlIHN0cmljdCBvbiB0aGUgdmFsdWVzIHRoYXQgYXJlCiAgIGFjY2VwdGFibGUgZm9yIC0td2l0aC1wZXJzaXN0ZW50LW1hc2sgKG9ubHkgYWxsb3cgdGhyZWUgb2N0YWwKICAgZGlnaXRzKQoKMjAwOS0wMS0xMSAyMDo0MiAgbWFnZnIKCiAgICogIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUsICAgCiAgICAgIG00L25ldHNubXBfYXJnLm00OgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFdlIGFyZSBjdXJyZW50bHkgdXNpbmcgdGhlIHByYWN0aWNlIG9mIGFkZGluZwogICBhIG1pcnJvcmluZyBBQ19BUkdfV0lUSC9FTkFCTEUgdG8gZWFjaCBBQ19BUkdfRU5BQkxFL1dJVEguIFRoaXMKICAgcGF0Y2ggYWRkcyBORVRTTk1QX0FSR19XSVRIL0VOQUJMRSBtYWNyb3MgdGhhdCBhdXRvbWF0aWNhbGx5IGFkZHMKICAgdGhlIG1pcnJvciB2YXJpYWJsZSBhbmQgdGhlbiBjb252ZXJ0cyB0aGUgY29uZmlndXJlIG1hY2hpbmVyeSB0bwogICB1c2UgdGhlbS4KCjIwMDktMDEtMTEgMjA6MzYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBNb3ZlIEFDX0RFRklORVMgaW4gY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGUgdG8gYmUgbG9jYXRlZCBuZXh0CiAgIHRvIHRoZSBBQ19BUkdfLi4uIHRoZXkgZGVwZW5kIG9uLgoKMjAwOS0wMS0xMSAyMDozNCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfbWFudWFsLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENoYW5nZSB0aGUgZGVmYXVsdCB2ZXJzaW9uIG51bWJlciBjaGVja2luZyB0byBiZSBlYXNpZXIgdG8gcmVhZAoKMjAwOS0wMS0xMSAxOToxOSAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjNCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBNb3ZlIHRoZSBsYXN0IEFDX0FSR18uLi4ncyB0byBjb25maWdfcHJvamVjdF93aXRoX2VuYWJsZS4KCjIwMDktMDEtMTEgMTk6MDggIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBDSEFOR0VTOiBidWlsZGluZzogQ2hhbmdlIHRoZSBtYWNybyBmb3IgLS13aXRoLWZlYXR1cmVzLW9mIGZyb20KICAgQUNfQVJHX0VOQUJMRSB0byBBQ19BUkdfV0lUSCBpbiBvcmRlciB0byBtYWtlIHRoZSBvcHRpb24gYmUKICAgLS13aXRoLWZlYXR1cmVzLW9mLgoKMjAwOS0wMS0wOCAxMDo0NSAganNhZnJhbmVrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgYXBwczogUGFyc2VyIG9mIC1MUyBjb21tYW5kIGxpbmUgYXJndW1lbnQgbm93CiAgIGFjY2VwdHMgYm90aCAnLUxTIDxsZXZlbD4gPGZhY2lsaXR5PicgYW5kICctTFMKICAgPGxldmVsPjxmYWNpbGl0eT4nLgogICAKICAgQmVmb3JlIHBhdGNoICMxODA2MzM2IHRoZSBmaXJzdCBzeW50YXggd2FzIHRoZSBvbmx5IG9uZQogICBzdXBwb3J0ZWQuIFRoZSBwYXRjaAogICBjaGFuZ2VkIHRoZSBzeW50YXggdG8gdGhlIHNlY29uZCBvbmUsIGNhdXNpbmcgaW5jb21wYXRpYmlsaXRpZXMKICAgaW4gc3RhYmxlCiAgIGJyYW5jaGVzLiBXZSBub3cgc3VwcG9ydCBib3RoIG9mIHRoZW0uCgoyMDA5LTAxLTA4IDAzOjUxICBtYWdmcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBEbyBub3QgZGVwZW5kIG9uIHRoZSBleGlzdGFuY2Ugb2YgL2Jpbi9zaC4gQWxzbyBmb2xsb3cgdGhlIGFkdmljZQogICBvZiB0aGUgYXV0b2NvbmYgbWFudWFsIGFuZCBmaW5hbGx5IGFsbG93IGZvciBsaWJ0b29sIHRoYXQgYWRvcHRzCiAgIHRoZSBnZW5lcmF0ZWQgc2NyaXB0IGFmdGVyIHRoZSBjYXBhYmlsaXRpZXMgb2YgU0hFTEwuCgoyMDA5LTAxLTA3IDE2OjAyICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfaGVhZGVyczoKCiAgIFJlb3JkZXIgdGhlIG5ldGluZXQvaWNtcF92YXIuaCBhbmQgbmV0aW5ldC9pcF9pY21wLmgsIHRoZSBsYXRlcgogICBvbmUgbXVzdCBiZSBjaGVja2VkIGZpcnN0IG9uIEZyZWVCU0QgNwoKMjAwOS0wMS0wNiAyMjoyMyAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHVwZGF0ZSBTUEFSVEEgZm9yIDIwMDkKCjIwMDktMDEtMDMgMjA6MjMgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgbTQvYWNfcHJvbXB0X3VzZXIubTQ6CgogICBVcGdyYWRlIHRoZSBBQ19QUk9NUFRfVVNFUiBtYWNyb3MgdG8gYXV0b2NvbmYgMi42MyB3aGVyZQogICBBQ19GRF9NU0cgaXMgZGVwcmVjYXRlZCBhbmQgQVNfTUVTU0FHRV9GRCBpcyByZWNvbW1lbmRlZC4KCjIwMDktMDEtMDMgMTQ6MjAgIG1hZ2ZyCgogICAqICBhY2luY2x1ZGUubTQsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgbTQvYWNfYWRkX3NlYXJjaF9wYXRoLm00LCAgIAogICAgICBtNC9hY19tc2dfY2FjaGUubTQsIG00L2FjX21zZ19tb2R1bGVfZGJnLm00LCAgIAogICAgICBtNC9hY19wcm9tcHRfdXNlci5tNCwgbTQvbmV0c25tcF9zZWFyY2hfbGlicy5tNDoKCiAgIFNwbGl0IGFjaW5jbHVkZS5tNCBpbnRvIHNtYWxsZXIgcGFydHMgYnkgZnVuY3Rpb24uCgoyMDA5LTAxLTAzIDE0OjE1ICBtYWdmcgoKICAgKiBNYWtlZmlsZS5hbToKCiAgIE1ha2UgYXV0b3JlY29uZiB3b3JrIGFnYWluLgoKMjAwOS0wMS0wMyAxNDoxMSAgbWFnZnIKCiAgICogIGFjbG9jYWwubTQsIGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBjb25maWd1cmUuYWMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgaW5zdGFsbC1zaCwgbHRtYWluLnNoLCBtNCwgCiAgICAgICAgbTQvbGlidG9vbC5tNCwgbTQvbHRvcHRpb25zLm00LCBtNC9sdHN1Z2FyLm00LCBtNC9sdHZlcnNpb24ubTQsIAogICAgICAgIG00L2x0fm9ic29sZXRlLm00OgoKICAgVXBkYXRlIHRvIGxpYnRvb2wtMi4yLjQKCjIwMDktMDEtMDMgMTM6MjggIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnM6CgogICBjb25maWd1cmUuZC9jb25maWdfb3NfbGliczogQ2hlY2sgZm9yIGEgZnVuY3Rpb24sIG5vdCBhIG1hY3JvLgogICBjb25maWd1cmU6IFJlZ2VuZXJhdGUKCjIwMDktMDEtMDMgMDE6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzOgoKICAgcmVxdWlyZSAtbHNzbDsgd2lsbCBiZSBjaGFuZ2VkIGxhdGVyIHRvIGRvICdpZiBuZWVkZWQnCgoyMDA5LTAxLTAzIDAwOjE5ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYl81XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHNfNV81LmgsIGFnZW50L21pYmdyb3VwL3RhcmdldC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnNfNV81LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9zbm1wX2dldF9zdGF0aXN0aWMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL3NubXBfZ2V0X3N0YXRpc3RpYy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVuaWZ5IGFsbCBzbm1wZCBzdGF0aXN0aWMgdmFyaWFibGVzIGFuZCBtYWtlIHRoZQogICBoYW5kbGVycyBpbnN0YW5jZXMgb2YgYSBjb21tb24gaGFuZGxlci4KCjIwMDktMDEtMDEgMTc6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgY2xlYW4gdXAgYSBmZXcgY29tbWVudHMgYW5kIHJlbW92ZSB1bnVzZWQgZnVuY3Rpb24KCjIwMDktMDEtMDEgMTc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHRzbS5jOgoKICAgZml4IHZhcmlvdXMgbWlub3IgbWVtb3J5IGxlYWsgaXNzdWVzCgoyMDA5LTAxLTAxIDE0OjI4ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmMsIAogICAgICAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiwgbG9jYWwvbWliMmMuY29udGFpbmVyLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mLCAgIAogICAgICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnJvdy5jb25mLCBsb2NhbC9taWIyYy5zY2FsYXIuY29uZiwgICAKICAgICAgbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgTkVXUzogc25tcGxpYjogQ2hhbmdlIHRoZSB0eXBlIG9mIHRoZSBvaWQgYXJndW1lbnRzIGZyb20gb2lkKiB0bwogICBjb25zdCBvaWQqLiBVcGRhdGUgbWliMmMgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgdGhlIGNoYW5nZS4KCjIwMDktMDEtMDEgMTM6NTYgIG1hZ2ZyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENoZWNrIHJldHVybiB2YWx1ZXMgYW5kIGZyZWUgYWxsb2NhdGVkIHJlc291cmNlcyBvbiBlcnJvci4KCjIwMDktMDEtMDEgMTI6NTQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIERvIG5vdCBsZWFrIGFsaWFzX2xpc3Qgb24gcmV0dXJuIGZyb20gX25leHRfYWxpYXMuCgoyMDA5LTAxLTAxIDExOjI2ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBNYWtlIHZhcmlhYmxlIGNvbnN0IGFzIGl0IG5ldmVyIGlzIGNoYW5nZWQuCgoyMDA5LTAxLTAxIDExOjI1ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDA4LTEyLTMxIDIxOjQxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfb3BlbnNzbC5jOgoKICAgZG9uJ3QgdXNlIHRoZSBmdW5jdGlvbnMgaWYgd2UncmUgbm90IGxpbmtlZCB3aXRoIG9wZW5zc2wKCjIwMDgtMTItMzEgMjA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL2NvbnN0LWMuaW5jLCBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC14cy5pbmM6CgogICBuZXdlciBwZXJsIGdlbmVyYXRlZCB1cGRhdGVzCgoyMDA4LTEyLTMxIDE4OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGRlZCBhIGZldyBtb3JlIHJlY3Yvc2VuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwOC0xMi0zMSAxODowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBBbGxvdyBxdW90ZWQgc2VjdXJpdHkgbmFtZXMgZm9yIG9uZXMgY29udGFpbmluZyBzcGFjZXMKCjIwMDgtMTItMzEgMTg6MDEgIGhhcmRha2VyCgogICAqICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9vcGVuc3NsLmgsIHNubXBsaWIvTWFrZWZpbGUuaW4sICAgCiAgICAgIHNubXBsaWIvc25tcF9vcGVuc3NsLmM6CgogICBhbiBvcGVuc3NsIGluaXRpYWxpemF0aW9uIHdyYXBwZXIKCjIwMDgtMTItMzAgMDA6MDMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRlc3QuYywgcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIFVzZSBzbm1wX2R1cGxpY2F0ZV9vYmppZCBpbnN0ZWFkIG9mIHZhcmlvdXMgbWFsbG9jK21lbWNweQogICB2YXJpYW50cyBpbiBvcmRlciB0byBtYWtlIGNsZWFyZXIgY29kZS4KCjIwMDgtMTItMjkgMjM6MzQgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmgsIHNubXBsaWIvYXNuMS5jOgoKICAgVXNlIGZvcm1hdCBzdHJpbmdzIGZvciBwcmludGYtbGlrZSBmdW5jdGlvbnMuCiAgIFByZWZlciBzdHJjcHkgb3ZlciBzcHJpbnRmKGRlc3QsICIlcyIsIHNyYykKICAgUHJlZmVyIERFQlVHTVNHVEwoKGZvcm1hdCwgYXJncykpIG92ZXIgc3ByaW50Zihsb2NhbCwgZm9ybWF0LAogICBhcmdzKTsgREVCVUdNU0dUTCgoIiVzIiwgbG9jYWwpKQoKMjAwOC0xMi0xOCAxNzowNCAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZXhwb3J0IG91dCBvZiB0aGUgZmlsZSBzb21lIGhlbHBmdWwgZ2VuZXJpYyB1ZHAgZnVuY3Rpb25zCgoyMDA4LTEyLTE2IDAwOjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIGNoYW5nZSBsb2NhbHNtIHNlY3VyaXR5IG1vZGVsIHRvIHRzbSAoYW5kIGFkZCAxKQoKMjAwOC0xMi0xNSAyMzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jOgoKICAgUGF0Y2ggdG8gY2hhbmdlIGEgdHlwZWRlZiBuYW1lIGZyb20gbGluayB0byBub2RlbGluayB0byBhdm9pZAogICBuYW1pbmcgY29uZmxpY3QgaXNzdWVzLgoKMjAwOC0xMi0wOSAwMTo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIHVzZSBpbnQzMl90IGluc3RlYWQgb2YgaW50XzMyIHdoaWNoIGRvZXNuJ3Qgd29yayBhdCBhbGwgb24gRjEwCgoyMDA4LTEyLTA5IDAxOjA3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgcmVtb3ZlIHRoZSBub3RlIHRoYXQgd2UgbW92ZWQgdG8gc3ZuLi4uIG9ic29sZXRlIGF0IHRoaXMgcG9pbnQsCiAgIHRvIHNheSB0aGUgbGVhc3QKCjIwMDgtMTItMDkgMDE6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIHRoZSBUU00gaW1wbGVtZW50YXRpb24KCjIwMDgtMTItMDkgMDA6NTggIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgZmxhZyBzb21lIHN0ZXBzIGFuZCBtYW5kYXRvcnkKCjIwMDgtMTItMDkgMDA6NTcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICByZW1vdmUgYWNjaWRlbnRpYWwgbmV3IGRlZmluZXMgdGhhdCBhcmVuJ3QgbmVlZGVkIHlldAoKMjAwOC0xMi0wOSAwMDo1NiAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGxvY2Fsc20uaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB0c20uaCwgc25tcGxpYi9zbm1wbG9jYWxzbS5jLCAgIAogICAgICBzbm1wbGliL3NubXB0c20uYzoKCiAgIHJlbW92ZSBvbGRlciBsb2NhbHNtIHNlY3VyaXR5IG1vZGVsIGFuZCByZXBsYWNlIHdpdGggYSBuZXdlciBUU00KICAgYmFzZWQgb24gdGhlIHVwY29taW5nIElFVEYgc3BlYwoKMjAwOC0xMi0wOSAwMDo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGlzc3VlIHdpdGggY29udGV4dCBwcm9iaW5nCgoyMDA4LTEyLTA0IDEyOjMzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIERhZW1vbml6ZSBhZnRlciB0cmFuc3BvcnRzIGFyZSBjcmVhdGVkIGFuZCBsaXN0ZW5pbmcgc29ja2V0cyBhcmUKICAgYm91bmQgdG8gYXBwcm9wcmlhdGUgcG9ydHMuIFRoaXMgYWxsb3dzIHRvIGV4aXQgd2l0aCBub3plcm8gZXhpdAogICBjb2RlIHdoZW4gdGhlIGJpbmRpbmcgZmFpbHMuCgoyMDA4LTEyLTA0IDExOjQ0ICBqc2FmcmFuZWsKCiAgICogIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgUHJpbnQgcG9ydHMgYXMgdW5zaWduZWQgbnVtYmVycy4KCjIwMDgtMTEtMjQgMTk6MDkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgX19FWFRFTlNJT05TX18gaXMgbm93IGhhbmRsZWQgYnkgY29uZmlndXJlCgoyMDA4LTExLTIyIDE4OjM2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50OgoKICAgRG8gbm90IHRyeSB0byB1c2UgdGhlIG1vZHVsZSBsaXN0IGFzIGEgZmlsZSB0aGF0IHNob3VsZCBiZQogICBpbmNsdWRlZCBpbiB0aGUgYnVpbGQsIHRodXMgbWFraW5nIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIG9uCiAgIFNvbGFyaXMuCgoyMDA4LTExLTIwIDIyOjMwICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF90cmFwLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX3Jvdy5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCAKICAgICAgICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUmVwbGFjZSBtZW1kdXAoKHVfY2hhcioqKSZ4LCAodV9jaGFyKil5LCB6ICogc2l6ZW9mKG9pZCkpIHdpdGggeAogICA9IHNubXBfZHVwbGljYXQKICAgZV9vYmppZCh5LCB6KSBzaW5jZSB0aGUgbGF0ZXIgaXMgZWFzaWVyIHRvIHJlYWQgYW5kIGV4cHJlc3NlcyB0aGUKICAgaW50ZW50aW9uIG9mIHQKICAgaGUgY29kZSBjbGVhcmVyLgoKMjAwOC0xMS0yMCAyMjowMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIG1lbWNweSBpbnN0ZWFkIG9mIG1lbW1vdmUgdG8gY29weSBvaWRzIGFzIGl0IGlzIGtub3duIHRoYXQKICAgdGhlIGFyZWFzIGFyZSBub25vdmVybGFwcGluZy4KCjIwMDgtMTEtMjAgMjA6NTEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFNURERvbWFpbi5jOgoKICAgTWFrZSBsb2cgcmVmZXIgdG8gdGhlIHJpZ2h0IGZ1bmN0aW9uLgoKMjAwOC0xMS0yMCAyMDo0NiAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IERvIG5vdCB1c2UgJW0gaW4gcHJpbnRmLWZvcm1hdHRlZCBzdHJpbmdzIHNpbmNlICVtIGluCiAgIHByaW50ZiBpcyBhIGdsaWJjIGV4dGVuc2lvbi4KCjIwMDgtMTEtMTYgMjI6MDEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZS5hYzoKCiAgIEJ1bXAgdGhlIHJlcXVpcmVkIGF1dG9jb25mIHZlcnNpb24gdG8gMi42MyBhcyBwZXIgMTczMDEuCgoyMDA4LTExLTE2IDIxOjU1ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnM6CgogICBSZW1vdmUgYW4gdW51c2VkIGZ1bmN0aW9uIGZyb20gdGhlIGNvbmZpZ3VyZSB0ZXN0IGZvciBfX2Z1bmNfXy4KCjIwMDgtMTEtMTYgMjE6NTEgIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNNCB1c2VzIGRubCwgbm90IFwgZm9yIGxpbmUgY29uY2F0ZW5hdGlvbi4KICAgXCBpbnRyb2R1Y2VkIGEgc3B1cmlvdXMgZGVmaW5lIGluIG5ldC1zbm1wLWNvbmZpZy5oLmluLCB0aHVzIHRoaXMKICAgY2hhbmdlLgogICBSZXJhbiBhdXRvY29uZiBhbmQgYXV0b2hlYWRlci4KCjIwMDgtMTEtMTMgMjI6MTQgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgTkVXUzogYnVpbGQ6IHVwZGF0ZSB0byBhdXRvY29uZiAyLjYzCgoyMDA4LTExLTEzIDAwOjMwICB0YW5kZXJzCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVRzogMjI1ODkzNTogUHl0aG9uIEV4dGVuc2lvbiBNb2R1bGUgZmFpbHMgb24KICAgU29sYXJpcwoKMjAwOC0xMS0xMyAwMDoyNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19hZ2VudDoKCiAgIGZpeCB0eXBvCgoyMDA4LTExLTEzIDAwOjI2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2FnZW50OgoKICAgZml4IHR5cG8KCjIwMDgtMTEtMTMgMDA6MTkgIHRhbmRlcnMKCiAgICogZGlzdC9leHRyYWN0bmV3czoKCiAgIG1ha2Ugc2NyaXB0cyBleGVjdXRhYmxlCgoyMDA4LTExLTEyIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGZpeCB0eXBvL3NwZWxsaW5nIGluIGFuIGVtYmVkZGVkIHBlcmwgZXJyb3IgbWVzc2FnZQoKMjAwOC0xMS0xMSAxMzoxMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIEZpeCBjb21waWxhdGlvbiBvbiBvbGRlciBMaW51eGVzIHdpdGhvdXQgU1BFRURfMTAwMDAgYW5kCiAgIFNQRUVEXzI1MDAuCgoyMDA4LTExLTAxIDE5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBORVdTOiBzbm1wZDogQXBwbHlpbmcgcGF0Y2ggZnJvbSBNYWdudXMgRnJvbXJlaWRlIHRvIGZpeCB0aGUKICAgZ2V0YnVsayBpc3N1ZSByZXBvcnRlZCBieSBPc2NhciBNaXJhLVNhbmNoZXoKCjIwMDgtMTAtMzAgMjI6MzQgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICByZW1vdmUgdGhlIG9sZGVyIChvYnNvbGV0ZSkgbWFrZXJlbGVhc2Ugc2NyaXB0CgoyMDA4LTEwLTIyIDE3OjI0ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgdGhlIGxpYiB1c2luZyBhIEMrKyBjb21waWxlciBvbmNlIG1vcmUuCgoyMDA4LTEwLTIyIDA3OjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBEb24ndCBjbGVhciBzZXNzaW9uIGZsYWdzIHdoZW4gdGVzdGluZyBvbmUgYml0LgoKMjAwOC0xMC0yMSAyMToxMCAgbWFnZnIKCiAgICogIEFHRU5ULnR4dCwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHJlc3Npb24vZXhwRXhwcmVzc2lvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL25zbG9va3VwL2xvb2t1cEN0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9uc2xvb2t1cC9sb29rdXBSZXN1bHRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVDdGxUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlSG9wc1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVQcm9iZUhpc3RvcnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZGFyd2luNy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLCBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmYsICAgCiAgICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvRkFRLmh0bWw6CgogICBORVdTOiBtaXNjOiBQQVRDSDogMTczNzcyNzogZnJvbSBqb3ljZWFubWFjaGluZTogQWRkIGEKICAgTkVUU05NUF9PTERBUElfIHByZWZpeCB0byB0aGUgYWNjZXNzIG1hY3JvcyB0aGF0IGFyZSB1c2VkIGluIHRoZQogICBvbGQtYXBpIGhlbHBlci4KICAgSSBkaWQgYWRkIHRoZSBwcmVmaXggdG8gYWxsIHVzZXJzIGluIG91ciBjb2RlLgoKMjAwOC0xMC0yMSAyMTowMCAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIAogICAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIE5FV1M6IG1pc2M6IFBBVENIOiAxNzM3NzI3OiBmcm9tIGpveWNlYW5tYWNoaW5lOiBSZXBsYWNlIGFsbCB1c2VzCiAgIG9mIE5FVFNOTVBfQ0xFQU5fTkFNRVNQQUNFIHdpdGggTkVUU05NUF9OT19MRUdBQ1lfREVGSU5JVElPTlMKCjIwMDgtMTAtMTYgMDk6NTYgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwODI3MjY6IGNvcnJlY3RseSByZXBvcnQgTklDIHNwZWVkcwogICBoaWdoZXIgdGhhbiA0R2JpdC9zCgoyMDA4LTEwLTE2IDA4OjAwICBqc2FmcmFuZWsKCiAgICogbWFuOgoKICAgU2NyYXRjaCBwcmV2aW91cyBjb21taXQsIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEgdG8gYmUgaWdub3JlZC4KCjIwMDgtMTAtMTYgMDc6MzcgIGpzYWZyYW5lawoKICAgKiBtYW46CgogICBBZGQgY29tcGlsZWQgbmV0LXNubXAtY29uZmlnLjEgdG8gc3ZuOmlnbm9yZSBsaXN0CgoyMDA4LTEwLTE1IDEyOjU3ICBqc2FmcmFuZWsKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9pcC1taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfZGF0YV9nZXQuYywKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX2RhdGFfZ2V0LmgsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9lbnVtcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBJZlN0YXRzVGFibGUvaXBJZlN0YXRzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcElmU3RhdHNUYWJsZS9pcElmU3RhdHNUYWJsZV9pbnRlcmZhY2UuaCwgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwSWZTdGF0c1RhYmxlL2lwSWZTdGF0c1RhYmxlX29pZHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcHN0YXRzLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAxNzk3MTExOiBpbXBsZW1lbnQgSVAtTUlCOjppcElmU3RhdHNUYWJsZQoKMjAwOC0xMC0xNSAwOToyNyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwb3J0YWJpbGl0eSBmaXg6IGF2b2lkIHZhcmlhYmxlIGRlY2xhcmF0aW9ucyBpbiB0aGUgbWlkZGxlIG9mCiAgIGNvZGUKCjIwMDgtMTAtMTQgMTg6NTUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDIwNDMwMTg6IGZpeCByZWN2ZnJvbSBoYW5ncwogICBBbHNvIGFkZHJlc3NlcyAoY2xvc2VkKSBidWdzIDExNzE5MDQgYW5kIDEzNDUyOTYKCjIwMDgtMTAtMTQgMDk6NDQgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogZml4IG1lbW9yeSBsZWFrIHdoZW4gbXVsdGlwbGUgaW50ZXJmYWNlcyBoYXZlIHRoZQogICBzYW1lIElQdjYgYWRkcmVzcwoKMjAwOC0xMC0xNCAwOTozNyAganNhZnJhbmVrCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2OTMwMzk6IGJlIHNpbGVudCB3aGVuIGluc2VydCBmYWlscy4KCjIwMDgtMTAtMTMgMTk6MDEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxOTc3NDM5OiBGaXggcGFzcy9fcGVyc2lzdCBidWcgd2l0aCBTRVQKICAgb2lkIHZhbHVlCgoyMDA4LTEwLTEyIDE3OjI0ICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0c181XzUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlaW1wbGVtZW50YXRpb24gb2Ygc25tcE1QRFN0YXRzLgoKMjAwOC0xMC0xMCAyMToxMyAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0OgoKICAgQ29uc29saWRhdGUgY2hlY2tzIG9uIGdlbmVyYWwgTy9TIGNoYXJhY3RlcmlzdGljcwoKMjAwOC0xMC0wNyAwODo1MCAganNhZnJhbmVrCgogICAqIGRpc3QvZmluZC1yZXF1aXJlczoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBCVUc6IDIwOTU5ODM6IGZpeCBzeW50YXggZXJyb3IgaW4KICAgZmluZC1yZXF1aXJlcyBoZWxwZXIgc2NyaXB0IGFuZCBtYWtlIGl0IGV4ZWN1dGFibGUKCjIwMDgtMTAtMDYgMTk6MzEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgaWZkZWYgc3lzL3BvbGwKCjIwMDgtMTAtMDMgMTQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjOgoKICAgcGF0Y2ggZnJvbSBTaGFjaGFyIFNjaGVtZXNoIHRvIGZpeCBhIHF1b3RlIGVzY2FwaW5nCgoyMDA4LTA5LTMwIDIyOjE5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYWRkZWQgYSBuZWVkZWQgdHJhaWxpbmcgbmV3bGluZQoKMjAwOC0wOS0zMCAyMjoxMSAgZHRzMTIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAyMDIyOTQ4OiBGaXggZm9yIENvdW50ZXI2NCBpbiBwZXJsIHN1YmFnZW50CgoyMDA4LTA5LTMwIDIxOjQwICBoYXJkYWtlcgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gTkVXUzogc25tcGxpYjogSW1wbGVtZW50ZWQgUkZDNTM0MyBjb250ZXh0RW5naW5lSUQgcHJvYmluZy4KICAgVGhpcyBhbGxvd3MgZm9yIHByb2Jpbmcgb2YgdGhlIGNvbnRleHRFbmdpbmVJRCB3aXRob3V0IHJlcXVpcmluZwogICB0aGUgVVNNIHNlY3VyaXR5IG1vZGVsLgogICAtIGltcGxlbWVudGVkIGVudGlyZWx5IHdpdGhpbiB0aGUgbGlicmFyeSBmb3IgYm90aCBjbGllbnRzIGFuZAogICBzZXJ2ZXJzLgoKMjAwOC0wOS0zMCAyMTozMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICBBZGQgYSBsb2NhbCBkZWZpbml0aW9uIGZvciBoYXZpbmcgc2VjdXJpdHkgbW9kZWxzIGRlZmluZSB0aGVpcgogICBvd24KICAgY29udGV4dEVuZ2luZUlEIHByb2JlCgoyMDA4LTA5LTMwIDIxOjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQWRkIGEgZGVmaW5pdGlvbiBmb3IgdGhlIFNTSCBkb21haW4KCjIwMDgtMDktMzAgMjE6MDggIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBQQVRDSDogMTI1NzM0NzogTm9uLWZpeGVkIHNpemUgY29ubmVjdGlvbiBidWZmZXIKCjIwMDgtMDktMzAgMDc6MzIgIGpzYWZyYW5lawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIE5FV1M6IGJ1aWxkaW5nOiBQQVRDSDogMjA5MTE1NjogY29ycmVjdGx5IGRlY2xhcmUgZGVwZW5kZW5jaWVzIGluCiAgIE1ha2VmaWxlLgogICAnbWFrZSAtaiA8Tj4nIHNob3VsZCB3b3JrIG5vdy4KCjIwMDgtMDktMjQgMjA6NTggIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzOgoKICAgSWRlbnRpZnkgd2hlcmUgcGFydGljdWxhciBjaGVja3MgYXJlIGFjdHVhbGx5IHVzZWQKICAgKGxpYnJhcnksIGFnZW50LCBhcHBsaWNhdGlvbnMgb3Igbm90IGF0IGFsbCkKCjIwMDgtMDktMjQgMTI6NTMgIGpzYWZyYW5lawoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlc19saW51eC5jOgoKICAgVXNlIHRoZSBsb25nZXN0IGludGVnZXIgZm9yIGlub2RlIG51bWJlcnMgYW5kIChwb3NzaWJseSA2NCBiaXQpCiAgIGNvdW50ZXJzLgoKMjAwOC0wOS0yMCAwOTowMSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzM6CgogICBORVdTOiBidWlsZDogRG8gbm90IHJlcXVpcmUgdXNlIG9mIC0td2l0aC1lbmRpYW5uZXNzIHdoZW4KICAgY3Jvc3MtY29tcGlsaW5nLgoKMjAwOC0wOS0xOSAxNToxOSAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIENvcnJlY3QgbG9jYXRpb24gb2YgZG9jdW1lbnRhdGlvbiBmaWxlcy4KCjIwMDgtMDktMTkgMDU6MjggIG1hZ2ZyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFuZCBhZGQgdGhlIGNodW5rIHRoYXQgSSBsb3N0LgoKMjAwOC0wOS0xOSAwNToyMyAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfbW9kdWxlc19saWIsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BlcmxfcHl0aG9uLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIE1vdmUgbW9yZSB0aGluZ3MgZnJvbSBhY2NvbmZpZy5oIHRvIHRoZSB0ZW1wbGF0ZXMgaW4gdGhlCiAgIGNvbmZpZ3VyZSBpbnB1dCBmaWxlcy4KCjIwMDgtMDktMTcgMTM6MzEgIGpzYWZyYW5lawoKICAgKiBkaXN0L2ZpbmQtcmVxdWlyZXM6CgogICBtYWtlIGZpbmQtcmVxdWlyZXMgZXhlY3V0YWJsZSBzbyBpdCdzIGFjdHVhbGx5IHVzYWJsZSBieSB0aGUKICAgbmV0LXNubXAuc3BlYwoKMjAwOC0wOS0xNyAxMjowOCAganNhZnJhbmVrCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldC1zbm1wLWNyZWF0ZS12My11c2VyLjEuZGVmOgoKICAgYWRkIG1hbiBwYWdlIGZvciBuZXQtc25tcC1jcmVhdGUtdjMtdXNlcgoKMjAwOC0wOS0xNiAxODowMiAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2xpYnMsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMSwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MyLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRnVydGhlciBtaW5pbWl6YXRpb24gb2YgYWNjb25maWcuaAoKMjAwOC0wOS0xMSAyMjoyOCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNb3ZlIGEgZmV3IG1vcmUgdmFyaWFibGVzIG91dCBvZiBhY2NvbmZpZy5oCgoyMDA4LTA5LTExIDIwOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3Mzc0Mzk6IGZyb20gZW1peTogYXV0b21hdGljIGxpbmsgdXAvZG93bgogICB0cmFwcyBvbiBhIHdhbGs7IHN0aWxsIG5lZWQgYSBiZXR0ZXIgaW50ZXJmYWNlIGZvciBtYW51YWxseSBkb2luZwogICB0aGluZ3Mgb24gYW4gb2NjYXNpb25hbCBiYXNpcwoKMjAwOC0wOS0xMSAyMDoyNSAgaGFyZGFrZXIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDcwMDY4MTogbGltaXRlZCBzdXBwb3J0IGZvciBVRFB2NCBicm9hZGNhc3QKICAgYWRkcmVzc2VzCgoyMDA4LTA5LTEwIDA2OjM5ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgQUNfQ0hFQ0tfVFlQRVMgaW5zdGVhZCBvZiBhIGhvbWVncm93bgogICBhbHRlcm5hdGl2ZSB0byBjaGVjayBmb3IgdHlwZXMKCjIwMDgtMDktMDkgMjA6MjcgIG1hZ2ZyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkIGFsbCB0aGUgcGFydHMgb2YgY29uZmlndXJlLmFjIHRvIHRoZSBkZXBlbmRlbmN5IGxpc3QKCjIwMDgtMDktMDkgMTg6MTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgdXBkYXRlIHRvIHJlZmxlY3QgY29uZmlndXJlLmluIC0+IGNvbmZpZ3VyZS5hYyBjaGFuZ2UKCjIwMDgtMDktMDkgMTY6MTUgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBkZWZhdWx0IHRvIC1wMAoKMjAwOC0wOS0wOCAyMzo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wbG9jYWxzbS5jOgoKICAgY2hlY2sgZm9yIGEgc2Vzc2lvbiB0dW5uZWxlZCBmbGFnIGJlZm9yZSByZXR1cm5pbmcgYW4KICAgYXV0aGVudGljYXRpb24gZmFpbHVyZQoKMjAwOC0wOS0wOCAyMzozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU2V0IHRoZSB0dW5uZWxlZCBmbGFnIHdoZW4gZGVhbGluZyB3aXRoIGEgdHVubmVsLWJhc2VkIHRyYW5zcG9ydDsKICAgZG9uJ3QgcmVxdWlyZSBhIHNlY3VyaXR5RW5naW5lSUQgaWYgdGhlIHNlY3VyaXR5IG1vZGVsIGRvZXNuJ3QKICAgaGF2ZSBvbmUgKGp1c3QgVVNNIG5lZWRzIGl0KQoKMjAwOC0wOS0wOCAyMDoyNCAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLXRjLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDIwOTk5ODU6IEFkZGVkIGNvbnN0IHF1YWxpZmllcnMgdG8gdGltZQogICBjb252ZXJzaW9uIHJvdXRpbnMKCjIwMDgtMDktMDUgMDc6NTEgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBVcGRhdGUgcmVsZWFzZSBpbnN0cnVjdGlvbnMsIGluIGxpbmUgd2l0aCBtYWtlcmVsZWFzZS54bWwKICAgKFFuOiBXaHkgaXNuJ3QgbWFrZXJlbGVhc2UueG1sIGJlaW5nIHBpY2tlZCB1cCBoZXJlPykKCjIwMDgtMDktMDQgMjI6NTIgIHRhbmRlcnMKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogQlVHOiAxODY4Mjc4OiBQeXRob24gc2VnZmF1bHQgKGludHJvZHVjZWQgYnkKICAgcjE2OTYyKQoKMjAwOC0wOS0wMyAxMzo0MyAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfbGliLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF93aXRoX2VuYWJsZToKCiAgIENIQU5HRVM6IGJ1aWxkOiBQQVRDSDogMjAwMDg3NDogQ2xlYW51cCB0cmFuc3BvcnQgc2VsZWN0aW9uLgoKMjAwOC0wOS0wMyAxMzoyOSAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbjoKCiAgIFRpZHkgdXAgcGVybC9weXRob24gYW5kIE8vUyBkYXRhIHN0cnVjdHVyZSB0ZXN0cy4KCjIwMDgtMDgtMzEgMTg6MTQgIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19mdW5jdGlvbnMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19oZWFkZXJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbGlicywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MxLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzIsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMywgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2M0LCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfcHJvZ3MsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X2lwdjZfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF90eXBlcywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3Rfd2l0aF9lbmFibGU6CgogICBUaWR5IHVwIChtb3N0IG9mKSB0aGUgaW5kaXZpZHVhbCBjb21wb25lbnRzIG9mIHRoZSBjb25maWd1cmUKICAgZnJhbWV3b3JrLgogICBUaGlzIGlzIG1vc3RseSByZS1pbmRlbnRhdGlvbiwgcmUtY29tbWVudGluZywgYW5kIGEgY2VydGFpbgogICBhbW91bnQKICAgb2YganVkaWNpb3VzIHJlLW9yZGVyaW5nIG9mIHRoZSB0ZXN0cyB3aXRoaW4gaW5kaXZpZHVhbAogICBzdWItc2NyaXB0LgoKMjAwOC0wOC0zMSAxNzozMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuYWM6CgogICBBbm5vdGF0ZSBjb25maWd1cmUgdGVtcGxhdGUgd2l0aCBzdWdnZXN0ZWQgYmVzdCBwcmFjdGljZQogICBzdHJ1Y3R1cmUuCiAgIE5vdGUgdGhhdCBub25lIG9mIHRoZXNlIGNoYW5nZXMgaGFzIGFsdGVyZWQgdGhlIGNvZGUgd2l0aGluCiAgICdjb25maWd1cmUnIGl0c2VsZiAob3RoZXIgdGhhbiBhZmZlY3RpbmcgbGluZSBudW1iZXJzKQoKMjAwOC0wOC0zMSAxNzoyNiAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmFjLCBjb25maWd1cmUuZCwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX21vZHVsZXNfYWdlbnQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19tb2R1bGVzX2xpYiwgCiAgICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX2Z1bmN0aW9ucywgY29uZmlndXJlLmQvY29uZmlnX29zX2hlYWRlcnMsIAogICAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19saWJzLCBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzEsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19taXNjMiwgY29uZmlndXJlLmQvY29uZmlnX29zX21pc2MzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfb3NfbWlzYzQsIGNvbmZpZ3VyZS5kL2NvbmZpZ19vc19wcm9ncywgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX29zX3N0cnVjdF9tZW1iZXJzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9pcHY2X3R5cGVzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9tYW51YWwsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3BhdGhzLCAgIAogICAgICBjb25maWd1cmUuZC9jb25maWdfcHJvamVjdF9wZXJsX3B5dGhvbiwgICAKICAgICAgY29uZmlndXJlLmQvY29uZmlnX3Byb2plY3RfdHlwZXMsICAgCiAgICAgIGNvbmZpZ3VyZS5kL2NvbmZpZ19wcm9qZWN0X3dpdGhfZW5hYmxlOgoKICAgTkVXUzogYnVpbGQ6IHNwbGl0IGNvbmZpZ3VyZSB0ZW1wbGF0ZSBpbnRvIHNlcGFyYXRlIHBpZWNlcy4KICAgKE1vc3RseSkgc2VsZi1jb250YWluZWQsIGFuZCBzaWduaWZpY2FudGx5IGxlc3MgY29uZnVzaW5nIQoKMjAwOC0wOC0zMSAxNzoyMyAgZHRzMTIKCiAgICogY29uZmlndXJlLmFjLCBjb25maWd1cmUuaW46CgogICBSZW5hbWUgY29uZmlndXJlIHRlbXBsYXRlIGluIGxpbmUgd2l0aCBjdXJyZW50IGJlc3QgcHJhY3RpY2UuCgoyMDA4LTA4LTI5IDE5OjU0ICBkdHMxMgoKICAgKiBkaXN0L2NoYW5nZWxvZ2ZpeDoKCiAgIFJldGFpbiBmaWxlbmFtZXMgd2hpY2ggZG9uJ3QgaW5jbHVkZSB0aGUgZXhwZWN0ZWQgcHJlZml4LgoKMjAwOC0wOC0yNyAyMTo1NSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzOgoKICAgaWdub3JlIC5saWJzIGRpcmVjdG9yaWVzCgoyMDA4LTA4LTI3IDEzOjM5ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgUy8zOTAgdXNlcyBzbGlnaHRseSBkaWZmZXJlbnQgZm9ybWF0IG9mIHRoZSAvcHJvYy9jcHVpbmZvIGZpbGU6CiAgIHByb2Nlc3NvciAwOiB2ZXJzaW9uID0gRkYsIGlkZW50aWZpY2F0aW9uID0gMDYwQUZFLCBtYWNoaW5lID0KICAgMjA5NAoKMjAwOC0wOC0yMiAyMzo0NyAgdGFuZGVycwoKICAgKiBGQVE6CgogICB1cGRhdGUgbGlzdCBvZiBzdXBwb3J0ZWQgb3BlcmF0aW5nIHN5c3RlbXMKCjIwMDgtMDgtMjIgMjM6MjcgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBORVdTOiBidWlsZDogQlVHOiAyMDIzODAzOiBDb21waWxhdGlvbiBwcm9ibGVtcyBvbiBIUC1VWCAxMS4zMQogICBDSEFOR0VTOiBidWlsZDogTGltaXQgdGhlIHVzZSBvZiBfS0VSTkVMIGRlZmluaXRpb25zIGluIGNvbmZpZ3VyZQogICB0ZXN0cyB0byBtYXRjaCB0aGUgdXNlCiAgIG9mIF9LRVJORUwgaW4gb3VyIGNvZGViYXNlCgoyMDA4LTA4LTIyIDAwOjE4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEZpeCBidWlsZCBmYWlsdXJlIG9uIEhQLVVYIDExLjMxOiB1c2UgZ2V0cGFnZXNpemUoKSBpbnN0ZWFkIG9mCiAgIFBHU0hJRlQuCiAgIFN1Y2Nlc3NmdWxseSB0ZXN0ZWQgb24gSFAtVVggMTAuMjAsIDExLjAwLCAxMS4xMSwgMTEuMjMgYW5kCiAgIDExLjMxLgoKMjAwOC0wOC0yMSAxMDowMyAganNhZnJhbmVrCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBTQ1RQLU1JQgoKMjAwOC0wOC0yMCAxNzozNyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBIYXZlIG9ubHkgb25lIHZhcmlhYmxlIG5hbWVkIHBhc3N3ZCBpbiBzbXV4X2F1dGhfcGVlci4KCjIwMDgtMDgtMTkgMjM6MjIgIHRhbmRlcnMKCiAgICogUkVBRE1FLnRydTY0OgoKICAgdXBkYXRlIFJFQURNRSBmb3IgVHJ1NjQgYWZ0ZXIgdGhlIHNlbmR0by9yZWN2ZnJvbSBmaXhlcwoKMjAwOC0wOC0xOSAyMDoyNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmg6CgogICBmaXggc2lnbmlmaWNhbnQgdHlwbwoKMjAwOC0wOC0xOSAxMzoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5oOgoKICAgRm9yY2UgdXNlIG9mIC9wcm9jLyVkL3BzaW5mbyBpbnRlcmZhY2Ugb24gU29sYXJpcy4KICAgVGVtcG9yYXJ5IGhhY2sgd2hpbGUgd2UgaW52ZXN0aWdhdGUgdGhlIGlzc3VlcyB3aXRoCiAgIHRoZSBrdm1fcHJvYygpIGNvZGUuCiAgIAogICBUaGUgJ2NvbmZpZ19yZXF1aXJlJyBwcm9jZXNzaW5nIGRvZXNuJ3QgY3VycmVudGx5CiAgIHBpY2sgdXAgdGhlIGZ1bGwgI2lmZGVmIGVudmlyb25tZW50LCBzbyBkZWZhdWx0cwogICB0byB1c2luZyBrdm1fcHJvYygpLiBJJ20gbm90IGNvbnZpbmNlZCB0aGlzIHdhcwogICB3b3JraW5nIGJlZm9yZSBhbnl3YXksCgoyMDA4LTA4LTE5IDEzOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYzoKCiAgIEZpeCBwcm9ibGVtcyBpbiAvcHJvYy8lZC9wc2luZm8gaW50ZXJmYWNlIHByb2Nlc3NpbmcuCgoyMDA4LTA4LTE5IDA4OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLCBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzOgoKICAgSWdub3JlIGxpYnJhcnkgYW5kIG9iamVjdCBmaWxlcwoKMjAwOC0wOC0xOSAwODozNiAgZHRzMTIKCiAgICogCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBBY3RpdmF0ZSBzdGF0aXN0aWNzIHRoYXQgYXJlIHN1cHBvcnRlZCBvbiBTb2xhcmlzIGFuZC9vciBMaW51eAogICBJUHY2CgoyMDA4LTA4LTE5IDA4OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIEltcHJvdmVkIHRyYWNpbmcgb2YgU01VWCBhdXRoZW50aWNhdGlvbiBwcm9ibGVtcy4KCjIwMDgtMDgtMTkgMDg6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzLmM6CgogICBCZXR0ZXIgdHJhY2luZyBvZiBEaXNNYW4gb2JqZWN0IHByb2Nlc3NpbmcuCgoyMDA4LTA4LTE4IDIyOjQzICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmg6CgogICByZW1vdmUgYm9ndXMgd2hpdGUgc3BhY2UKCjIwMDgtMDgtMTggMjI6MDEgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDIwMjE0NDQ6IFN1cHBvcnQgU05NUHYyYyBpbiBnZXR0YWJsZQogICBwcm9jZXNzaW5nCgoyMDA4LTA4LTE4IDIxOjQ0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAyMDAzNDUwOiBGaXggYSBjb3VwbGUgb2YgNjQtYml0CiAgIHByb2JsZW1zLgoKMjAwOC0wOC0xOCAxNDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICByZXZlcnQgMTcxNTcgc2luY2UgaXQgYnJva2Ugc29tZXRoaW5nCgoyMDA4LTA4LTE4IDA3OjA2ICBqc2FmcmFuZWsKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgU0NUUC1NSUIgaW1wbGVtZW50YXRpb24gKExpbnV4IG9ubHkpCgoyMDA4LTA4LTE3IDIxOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMjAyMjkzNjogRml4IEFnZW50WCBDb3VudGVyNjQgZGVjb2Rpbmcgb24KICAgNjQtYml0IGFyY2hpdGVjdHVyZXMKCjIwMDgtMDgtMTcgMjA6NTAgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDIwMTQyMDQ6IFN1cHBvcnQgLWcge2dyb3VwbmFtZX0KCjIwMDgtMDgtMTUgMTM6NDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgTkVXUzogc25tcHVzbTogUEFUQ0g6IDE1OTEzNTU6IGZyb20gcHBhc3NlcmE6IEFsbG93IGNsb25pbmcgdG8KICAgZW5naW5lSURzIHRoYXQgYXJlIGRpZmZlcmVudCBmcm9tIHRoZSBhZ2VudCdzIGVuZ2luZUlECgoyMDA4LTA4LTE0IDE1OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmM6CgogICBTV1J1biBwcm9jZXNzaW5nIG5lZWRzIGFjY2VzcyB0byB0aGUgaW50ZXJuYWxzIG9mICdzdHJ1Y3QgdXNlcicKICAgKFNvbGFyaXMpCgoyMDA4LTA4LTEzIDEzOjAyICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfbGludXguYzoKCiAgIENvcnJlY3RseSBwYXJzZSBpbnRlcmZhY2UgaW5kZXhlcyBoaWdoZXIgdGhhbiAweGZmLgoKMjAwOC0wOC0xMiAwODoyNyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENsb3NlIGZpbGUgd2hlbiBwYXJzaW5nIG9mIC9wcm9jL1hYWC9zdGF0dXMgZmFpbHMuCgoyMDA4LTA4LTEyIDA3OjI3ICBqc2FmcmFuZWsKCiAgICogIGFnZW50L21pYmdyb3VwL3NjdHAtbWliLCBhZ2VudC9taWJncm91cC9zY3RwLW1pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NMb2NhbEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwQXNzb2NSZW1BZGRyVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cEFzc29jUmVtQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBBc3NvY1RhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBMb2NhbFBvcnRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwTG9jYWxQb3J0VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUhvc3ROYW1lVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbUlQQWRkclRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1JUEFkZHJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUG9ydFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBMb29rdXBSZW1Qb3J0VGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cExvb2t1cFJlbVByaW1JUEFkZHJUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwTG9va3VwUmVtUHJpbUlQQWRkclRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NjdHAtbWliL3NjdHBTY2FsYXJzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwU2NhbGFyc19jb21tb24uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFNjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc2N0cC1taWIvc2N0cFRhYmxlcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2NvbW1vbi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zY3RwLW1pYi9zY3RwVGFibGVzX2xpbnV4LmMsIG1pYnMvTWFrZWZpbGUuaW4sICAgCiAgICAgIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL1NDVFAtTUlCLnR4dDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMjAyMzYzMzogYWRkIFNDVFAtTUlCIGltcGxlbWVudGF0aW9uIChMaW51eAogICBvbmx5KQoKMjAwOC0wOC0wNyAxMDowMyAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIEZpeCBpbmV0TmV0VG9NZWRpYVRhYmxlIHRhYmxlIHByb2Nlc3NpbmcgLSBjb250aW51ZSB3aXRoIG5leHQKICAgZW50cnkgd2hlbiBmaWxsdXBfZW50cnlfaW5mbygpIGZhaWxzLgoKMjAwOC0wOC0wNyAwOTowMCAganNhZnJhbmVrCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IGRvY3VtZW50YXRpb24gb2YgZXhlYyBzdGF0YW1lbnQgLSBpdCBkb2VzIG5vdCBjYWNoZSByZXN1bHRzCiAgIGFueW1vcmUuIFJlbGF0ZWQgdG8gYnVnIDg4MzEzNAoKMjAwOC0wNy0zMSAyMzozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jaW5mby5jOgoKICAgRml4IGEgdHlwbywgYW5kIGEgYm9ndXMgZmllbGQgbmFtZSBpbiB0aGUgQUlYIHByb2NpbmZvIHN0cnVjdHVyZS4KCjIwMDgtMDctMzEgMjM6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa3ZtX3Byb2MuYzoKCiAgIEluY2x1ZGUgbWlzc2luZyBoZWFkZXJzLCBhbmQgZml4IG9uZSBib2d1cyBmaWVsZCBuYW1lIGluIFNvbGFyaXMKICAgcHJvYyBzdHJ1Y3R1cmUuCgoyMDA4LTA3LTMwIDE3OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDIwMDMxNDQ6IEluY3JlYXNlIHNpemUgb2YgQWdlbnRYIHBhY2tldAogICBidWlsZCBidWZmZXIKCjIwMDgtMDctMzAgMDc6NTcgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IDIwMjc4MzQ6IEV4dGVuZCBzdHJpbmcgcHJpbnQgYnVmZmVyIGJ5IHRoZQogICBtaW5pbXVtIG5lY2Vzc2FyeS4KCjIwMDgtMDctMjkgMjM6MzQgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2N5Z3dpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX2t2bV9wcm9jLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbmxpc3QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfcHNpbmZvLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmM6CgogICBGaXggYXNzb3J0ZWQgc2lsbHkgdHlwb3MgLSB1bmJhbGFuY2VkIHBhcmVudGhlc2VzCiAgIGFuZCB0aGUgd3JvbmcgdHlwZSBlbnVtZXJhdGlvbiB2YWx1ZSBuYW1lcy4KCjIwMDgtMDctMjkgMjM6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uYzoKCiAgIEVuc3VyZSBzd3J1biBkYXRhIGlzIGF2YWlsYWJsZSBmb3IgdGhlIHByVGFibGUgY2FsbHMsCiAgIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gaHJTV1J1blRhYmxlIHRvIHRyaWdnZXIgdGhpcy4KCjIwMDgtMDctMjkgMTY6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgYSkgRml4IHRoZSBzaXplIG9mIHRoZSBidWZmZXIgaW4ganVzdCBvbmUgcGxhY2UKICAgKG1ha2VzIGl0IGVhc2llciB0byBjaGFuZ2UgaWYgbmVjZXNzYXJ5KQogICBiKSBGaXggdmFyaW91cyB1bmZvcnR1bmF0ZSBsaW5lLWJyZWFrcyAod2l0aGluICJwZHUtPmZsYWdzIikKCjIwMDgtMDctMjkgMTY6MDUgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3dydW4uaDoKCiAgIElmIHRoZSByZS13cml0dGVuIFNXUnVuIG1vZHVsZSBpZiBhdmFpbGFibGUsIHRoZW4gdXNlIGl0IGZvcgogICB0aGUgVUNELXNwZWNpZmljIHByVGFibGUgYXMgd2VsbCBhcyB0aGUgaHJTV1J1blRhYmxlLgogICBDb25zaXN0ZW5jeSBpcyBnb29kLi4uLgoKMjAwOC0wNy0yOSAxNToyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmM6CgogICBTdXBwcmVzcyBqdW5rIGluIGhyU1dSdW5OYW1lICYgaHJTV1J1blBhcmFtZXRlcnMgdmFsdWVzCgoyMDA4LTA3LTI5IDEwOjI3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jOgoKICAgVGhlIGNhY2hlL2NvbnRhaW5lciByZWxhdGUgdG8gdGhlIGRhdGEgaXRzZWxmLCBzbyBzaG91bGQKICAgbW9yZSBuYXR1cmFsbHkgYmUgaGFuZGxlZCBieSB0aGUgZGF0YV9hY2Nlc3MgbW9kdWxlLAogICByYXRoZXIgdGhhbiBhIHBhcnRpY3VsYXIgTUlCIHRhYmxlIG1vZHVsZS4KCjIwMDgtMDctMjggMjE6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvZnN5c19tbnRlbnQuYzoKCiAgICd1c2VkJyBhbmQgJ2ZyZWUnIGFyZSBub3QgdGhlIHNhbWUgdGhpbmcsIERhdmUuIFBheSBhdHRlbnRpb24gYXQKICAgdGhlIGJhY2suLi4uCgoyMDA4LTA3LTI4IDE0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIENIQU5HRVM6IGFnZW50OiBCVUc6IDIwMjM4MDM6IEVuc3VyZSBjb21waWxhdGlvbiBpcyBub3QgZGVwZW5kZW50CiAgIG9uIGFuIGlycmVsZXZhbnQgY29uZmlndXJlIGNoYXJhY3RlcmlzdGljIGZvciBIUC1VWCAxMQoKMjAwOC0wNy0yOCAxMDo1NiAgZHRzMTIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICBDSEFOR0VTOiBhcHBzOiBCVUc6IDE5NjQxMzY6IERyb3AgTlVMTCB0eXBlIGZyb20gc25tcHNldCB1c2FnZQogICBtZXNzYWdlLgoKMjAwOC0wNy0yNSAxNDoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oOgoKICAgVXNlICctLWVuYWJsZS1uZXctZmVhdHVyZXMnIG1lY2hhbmlzbSB0byBpbmNsdWRlIGhyU1cqIHJlLXdyaXRlcwoKMjAwOC0wNy0yNSAxNDoxMyAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X251bGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd2luc3RfcGtnaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3aW5zdF9ycG0uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fY3lnd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fZGFyd2luLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fa2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9rdm1fcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX25saXN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fbnVsbC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3Byb2Nmc19wc2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcm9jZnNfc3RhdHVzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW5fcHJvY2luZm8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9wcnBzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuX3BzdGF0LmM6CgogICBQcmVsaW1pbmFyeSBPUy1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMgb2YgUnVubmluZyBhbmQgSW5zdGFsbGVkCiAgIFNvZnR3YXJlIGRhdGEgYWNjZXNzLgoKMjAwOC0wNy0yNCAyMzoyMiAgdGFuZGVycwoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMjAyNzEyOTogZml4IHR5cG8gaW4gc25tcGNtZC4xCgoyMDA4LTA3LTI0IDEwOjAwICBqc2FmcmFuZWsKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgc2Vkc2NyaXB0LmluOgoKICAgcmVmbGVjdCBkZWZhdWx0IHRlbXAgZmlsZSBwYXR0ZXJuIGluIG1hbiBwYWdlIGlmIGl0J3MgbW9kaWZpZWQgYnkKICAgLi9jb25maWd1cmUgc2NyaXB0CgoyMDA4LTA3LTI0IDA4OjM2ICBqc2FmcmFuZWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBORVdTOiBidWlsZGluZzogYWRkIC0td2l0aC10ZW1wLWZpbGUtcGF0dGVybiBjb25maWd1cmUgb3B0aW9uCgoyMDA4LTA3LTI0IDA2OjUzICBqc2FmcmFuZWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyMzgwMDogcmVsZWFzZSBhbmQgcmVsb2FkIGFsbCB0cmFwCiAgIGRlc3RpbmF0aW9ucyBvbiBTSUdIVVAKCjIwMDgtMDctMjIgMTQ6MzMgIGpzYWZyYW5lawoKICAgKiBuZXQtc25tcC1jcmVhdGUtdjMtdXNlci5pbjoKCiAgIGZpeCBuZXQtc25tcC1jcmVhdGUtdjMtdXNlciB0byBydW4gd2l0aG91dCBhcmd1bWVudHMKCjIwMDgtMDctMjIgMTQ6MjEgIGpzYWZyYW5lawoKICAgKiAgLiwgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBuZXQtc25tcC1jb25maWcuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNyZWF0ZS12My11c2VyLmluOgoKICAgTkVXUzogbWlzYzogc2VwYXJhdGUgdXNlciBtYW5hZ2VtZW50IGZyb20gbmV0LXNubXAtY29uZmlnIGludG8KICAgbmV3IG5ldC1zbm1wLWNyZWF0ZS12My11c2VyIHNjcmlwdAoKMjAwOC0wNy0yMSAxMzo0NCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBDSEFOR0VTOiBhZ2VudDogUEFUQ0ggMTk0NDU4MTogUHJvdGVjdCBhZ2FpbnN0IGNvcmUgZHVtcHMgd2l0aAogICBsb25nIHN0cmluZyBpbmRleCB2YWx1ZXMuCgoyMDA4LTA3LTE4IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIG5ldyBzaWduaW5nIGtleQoKMjAwOC0wNy0xNyAxMDowNSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDIwMTgwMzE6IERvbid0IHByb2JlIGVuZ2luZUlEIGluIGludGVybmFsCiAgIG1vbml0b3Igc2Vzc2lvbnMuCgoyMDA4LTA3LTEwIDE5OjMzICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGZpeCBhIHJlZ2V4cCBxdW90ZQoKMjAwOC0wNy0xMCAxNDoxMiAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgYnVpbGQgZml4IGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSBnZXRhZGRyaW5mbyAoZS5nLiBIUC1VWAogICAxMS4wIGFuZCBlYXJsaWVyLCBTb2xhcmlzIDcgYW5kIGVhcmxpZXIpCgoyMDA4LTA3LTEwIDEzOjUwICBhbGV4X2IKCiAgICogd2luMzIvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQlVHOiAyMDE0NTI2OiBXaW4zMjoKICAgc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmggbm90IGluc3RhbGxlZAoKMjAwOC0wNy0wNiAxNTowNSAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvYnVpbGQucGwsICAgCiAgICAgIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgICAKICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBidWxkaW5nOiBBZGQgc3VwcG9ydCBmb3Igd2luRXh0RExMIHRvIGJ1aWxkLmJhdCAod2luMzIpCgoyMDA4LTA3LTA2IDEyOjM4ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluOgoKICAgV2luMzIgYnVpbGQgZml4ZXMgLSBhZGQgbWlzc2luZyBmdW5jdGlvbiBmb3IgRExMIGJ1aWxkLgoKMjAwOC0wNy0wMiAxMjozOSAganNhZnJhbmVrCgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAyMDA2Nzg2OiBJbnRlcmZhY2UgbmFtZSBjYW4gaGF2ZSBtb3JlIHRoYW4gOAogICBjaGFyYWN0ZXJzLgoKMjAwOC0wNi0yNSAxNzozOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCBhcHBzL3NubXB0cmFwLmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBtYW4vc25tcGQuY29uZi41LmRlZiwgICAKICAgICAgcGVybC9TTk1QL1NOTVAueHMsIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxOTE2ODQwOiBuZXcgY29uZmlnIG9wdGlvbiB0byBzZXQgU05NUHYxIHRyYXAKICAgYWdlbnQgYWRkcmVzcwogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTkxNjg0MDogaW50cm9kdWNlCiAgIG5ldHNubXBfZ2V0aG9zdGJ5bmFtZV92NAoKMjAwOC0wNi0yNSAxNToxNiAganNhZnJhbmVrCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGFzc2VydGlvbiB3aGVuIHVzZWQgd2l0aCBwZXJsIDUuMTAKCjIwMDgtMDYtMjQgMDU6MDEgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWIsIHNubXBkOiBCVUc6IDIwMDExMjQ6IEFsbG93IGVtYmVkZGVkIE5VTAogICBjaGFyYWN0ZXJzIGluIHVzbVVzZXJQdWJsaWMKCjIwMDgtMDYtMjMgMTk6NTcgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE9ubHkgcmVzZXJ2ZSBzcGFjZSBmb3IgdGhlIGV4dHJhIFwwIGFmdGVyIHRoZSBkYXRhIGZvciBPQ1RFVAogICBTVFJJTkcgdmFsdWVkIGVudGl0aWVzCgoyMDA4LTA2LTIzIDE5OjEzICBtYWdmcgoKICAgKiAgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQ6CgogICBDSEFOR0VTOiBidWlsZGluZzogRGlzYWJsZSB0ZXN0cyBpZiB0aGUgYWdlbnQgaXMgYnVpbHQgd2l0aG91dAogICB0aGUgbWliIG1vZHVsZSB0aGV5IGRlcGVuZCBvbi4KCjIwMDgtMDYtMjEgMTI6MTQgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIHNwdXJpb3VzIEFDX01TR19SRVNVTFQgaW5zaWRlIGFuIEFDX0NBQ0hFX0NIRUNLCgoyMDA4LTA2LTE4IDA1OjA3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEhhbmRsZSBzb2xhcmlzIGF3ayBhcyB3ZWxsLgoKMjAwOC0wNi0xNyAxNjowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE5OTU3NTM6IGZyb20gdm9sa292X3BldGVyOiBtaW5vciBjbGVhbnVwCiAgIGFnZW50L2F1dG9fbmxpc3QuYwoKMjAwOC0wNi0xNyAwODo1NyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgRml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gc3ByaW50ZiBmb3IgVENQL0lQdjYKICAgQ3Jvc3MtcG9ydCBvZiByZXZpc2lvbiAxNjY2OAoKMjAwOC0wNi0xNiAyMzo1NSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxOTk1MTcyOiBmaXggLS13aXRob3V0LWVsZiBjb25maWd1cmUgdXNhZ2UKICAgbWVzc2FnZQoKMjAwOC0wNi0xMyAyMjoxNiAgZHRzMTIKCiAgICogZGlzdC9maW5kLXJlcXVpcmVzLCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBidWlsZDogSW1wcm92ZWQgUlBNIHNwZWMgZmlsZXMsIGZvciBiZXR0ZXIgY29uc2lzdGVuY3kKICAgd2l0aCB2ZW5kb3ItcHJvdmlkZWQgcGFja2FnZXMuCiAgIFByb3ZpZGVkIGJ5IEphbiBTYWZyYW5lawoKMjAwOC0wNi0xMyAyMTowMyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE4OTk3NjI6IFR3ZWFrIGVtYmVkZGVkX3BlcmwgY29uZmlndXJlCiAgIGNoZWNrcy4KCjIwMDgtMDYtMTMgMDU6NDMgIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAKICAgICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVXUzogYnVpbGRpbmc6IFJldGlyZSB0aGUgY29uZmlnX29sZC9uZXdfcmVxdWlyZSBmZWF0dXJlIGFuZAogICByZXBsYWNlIGl0IHdpdGggY29uZmlnX3ZlcnNpb25fcmVxdWlyZSB0aGF0IGNvbXBhcmVzIHZlcnNpb24KICAgbnVtYmVycyB0byBhY2hpZXZlIGEgc2ltaWxhciB0aGluZwoKMjAwOC0wNi0xMiAxMjo1MCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIE9ubHkgYWRkIG5vbi1kZWZhdWx0IE1JQiBtb2R1bGVzIHRvIHRoZSB0ZXN0IGJ1aWxkcy4KICAgU3BlY2lmeWluZyB0aGUgaG9zdCBtb2R1bGUgaXMgbm90IG5lZWRlZCBvbiBMaW51eCBzeXN0ZW1zLAogICBhbmQgbWF5IGJyZWFrIG9uIG90aGVyIE8vU3MuIFNwZWNpZnlpbmcgdGhlIGRpc21hbi9ldmVudAogICBNSUIgaXMgdW5uZWNlc3Nhcnkgb24gYW55IHN5c3RlbS4KCjIwMDgtMDYtMTEgMTA6MTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBPbmx5IGVuYWJsZSBJUFggdHJhbnNwb3J0IG9uIExpbnV4IHN5c3RlbXMKCjIwMDgtMDYtMTAgMTQ6MzcgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBzbm1wZDogUEFUQ0g6IDE5MTgzODM6IEZpeCBEaXNNYW4gbW9uaXRvcmluZyBvZiBBZ2VudFggc3ViYWdlbnRzCiAgIE5vdGUgdGhhdCB0aGlzIGRvZXNuJ3QgYWN0dWFsbHkgdXNlIHRoZSBjb2RlIHN1Ym1pdHRlZCBpbiB0aGF0CiAgIHBhdGNoLgogICBJbnN0ZWFkIGl0IGluc2VydHMgYSBjYWxsYmFjayBob29rIGludG8gdGhlCiAgIHNubXBfc3luY2hfcmVzcG9uc2VfY2IKICAgcm91dGluZSAodXNpbmcgdGhlIG15dm9pZCBwb2ludGVyIGFuZCBhIG5ldyBzZXNzaW9uIGZsYWcpLCB3aGljaAogICBoYXMKICAgdGhlIHNhbWUgZWZmZWN0IHdpdGhvdXQgbmVlZGluZyB0byBkdXBsaWNhdGUgYW55IGNvZGUuCgoyMDA4LTA2LTEwIDEyOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgRml4IGxvZ2ljIGVycm9ycyBpbiBoYW5kbGluZyBvZiBvbGQvY3VycmVudCB2YXJiaW5kIGxpc3RzLgogICBSZXBvcnRlZCBieSBGcmVkIEdhbyBpbiBwYXRjaCAjMTkxODM4MwoKMjAwOC0wNi0wOSAxOTowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgdXBkYXRlIHRvIG1hdGNoIHB1Ymxpc2hlZCByZWxlYXNlCgoyMDA4LTA2LTA5IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIGFkZGVkIHNubXBfdmVyc2lvbi5jCgoyMDA4LTA2LTA5IDA5OjA1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHVzbS5jOgoKICAgQSBjb3VwbGUgbW9yZSBtaXNzaW5nIGVycm9yIGNoZWNrcy4KICAgQmFzZWQgb24gdGhvc2UgcmVwb3J0ZWQgYnkgQm95YSBTdW4KCjIwMDgtMDYtMDYgMTI6MDIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIGVtYmVkZGVkIHBlcmwgb24gTWFjIE9TL1gKICAgKG5lYXJseSB3b3JraW5nIG9uIExlb3BhcmQgbm93KQoKMjAwOC0wNi0wMyAyMzoxNCAgdGFuZGVycwoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAKICAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgTkVXUzogYWl4OiBBZGQgc3VwcG9ydCBmb3IgQUlYIDYueAoKMjAwOC0wNi0wMyAyMjo0NiAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgbHRtYWluLnNoOgoKICAgTkVXUzogYnVpbGQ6IFVwZGF0ZSB0byBsaWJ0b29sIDEuNS4yNiAoZnJvbSAxLjUuMjQpLCBlLmcuIHRvCiAgIGJldHRlciBzdXBwb3J0IEFJWCA2LjEgYW5kIE1hYyBPUyBYIExlb3BhcmQKCjIwMDgtMDYtMDMgMjI6MzkgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHdoeSBhZGQgbGVnYWN5IGRlZmluaXRpb25zIGZvciBuZXcgc3R1ZmY/CgoyMDA4LTA2LTAzIDA5OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBFbnN1cmUgdGhlIGRlZmF1bHQgaW50ZXJuYWwgcXVlcnkgc2Vzc2lvbiBoYXMgYSB2YWxpZCBlbmdpbmVJRCwKICAgdG8gYXZvaWQgaGF2aW5nIHRvIHByb2JlIGZvciBpdCBvbiB0aGUgZmlyc3QgdXNlLgoKMjAwOC0wNi0wMiAyMjoxNyAgbWFnZnIKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBORVdTOiBzbm1wbGliOiBDb252ZXJ0IGdlbmVyaWMgc291cmNlIGFyZ3VtZW50cyBmcm9tIGNvbnN0CiAgIHVfY2hhciogdG8gY29uc3Qgdm9pZCogZm9yIHNubXBfcGR1X2FkZF92YXJpYWJsZSwKICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSwgc25tcF9zZXRfdmFyX3ZhbHVlLAogICBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUgYW5kIG1lbWR1cC4KCjIwMDgtMDYtMDIgMTM6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBFbnN1cmUgdGhhdCB0aGUgInRyaWdnZXIgYXJtZWQiIGZsYWcgaXMgY2xlYXJlZCB3aGVuZXZlciB0aGUKICAgbWF0Y2hpbmcKICAgZXhwcmVzc2lvbiBpcyBmb3VuZCB0byBob2xkIC0gZXZlbiBpZiB0aGUgdHJpZ2dlciBkb2Vzbid0CiAgIGFjdHVhbGx5IGZpcmUuCiAgIFRoaXMgYWZmZWN0cyB0aGUgYmVoYXZpb3VyIG9mIGluaXRpYWxseS10cnVlIGV4cHJlc3Npb25zLCB3aGVuCiAgIHRoaXMKICAgaW5pdGlhbCBmaXJpbmcgaXMgc3VwcHJlc3NlZCB1c2luZyB0aGUgbXRlVHJpZ2dlcipTdGFydHVwIG9iamVjdC4KICAgV2l0aG91dCB0aGlzIHR3ZWFrLCB0aGUgdHJpZ2dlciB3aWxsIGZpcmUgb24gdGhlIHNlY29uZCBzYW1wbGluZwogICAoYXMgaWYgdGhlIGV4cHJlc3Npb24gaGFkIGV2YWx1YXRlZCBmYWxzZSBmaXJzdCB0aW1lIHJvdW5kKS4KCjIwMDgtMDYtMDEgMjA6MDIgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuaDoKCiAgIEhhbmRsZSB2YXJiaW5kIHBheWxvYWQgZm9yIGludGVybmFsIGxpbmtVcC9Eb3duIG5vdGlmaWNhdGlvbnMuCgoyMDA4LTA2LTAxIDA2OjQ1ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIE5FV1M6IHNubXB0cmFwZDogQlVHOiAxOTU1MjI3OiBNZW1vcnkgbGVhayBmb3IgZW1iZWRkZWQgUGVybCBvbgogICB4ODZfNjQKCjIwMDgtMDUtMzEgMTI6MDggIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogVGhlIHNjYWxhciBoZWxwZXIgdGhhdCB3YXMgY2FsbGVkIGZyb20gdGhlCiAgIHNjYWxhcl9ncm91cCBoZWxwZXIgZGlkIG5vdGhpbmcgc2F2ZSBhZGRpbmcgYSB0cmFpbGluZyAwIHRvIHRoZQogICBhcmd1bWVudC4gUmVtb3ZlIHRoZSB1c2Ugb2YgdGhlIHNjYWxhciBoZWxwZXIgZnJvbSB0aGUKICAgc2NhbGFyX2dyb3VwIGFuZCBhZGQgdGhlIHRyYWlsaW5nIDAgaW4gdGhlIHNjYWxhcl9ncm91cCBoZWxwZXIuCgoyMDA4LTA1LTMwIDEzOjU2ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgVHdlYWsgbGlzdCBvZiBvbi1saW5lIHNvZnR3YXJlIGRpcmVjdG9yaWVzIHRvIGJlIHVwZGF0ZWQuCgoyMDA4LTA1LTI5IDA5OjU5ICBkdHMxMgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jLCBhcHBzL3NubXB0ZXN0LmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgVmFyaW91cyBtaXNzaW5nIGVycm9yIGNoZWNrcywgZXRjLgogICBSZXBvcnRlZCBieSBCb3lhIFN1bi4KCjIwMDgtMDUtMjggMTE6NDggIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2ZyZWVic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBSZXBvcnQgY2FjaGVkIG1lbW9yeSBzaXplL3VzYWdlIHByb3Blcmx5IChwYXJ0aWN1bGFybHkgb24KICAgRnJlZUJTRCkuCgoyMDA4LTA1LTI4IDExOjIxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEJyaW5nIG1lbUJ1ZmZlciBjb2RlIGludG8gbGluZSB3aXRoIHJldmlzaW9uIDE2OTc1LgoKMjAwOC0wNS0yOCAxMToxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgTGludXggMi42IGtlcm5lbCBkb2VzIG5vdCByZXBvcnQgc2hhcmVkIG1lbW9yeSBpbmZvcm1hdGlvbi4KCjIwMDgtMDUtMjggMDk6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE5MzEzOTE6IEZpeCByZXBvcnRpbmcgb2YgTWVtb3J5IGJ1ZmZlcnMgYW5kCiAgIGNhY2hlZCBtZW1vcnkuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgZG9jb25laWxsLgoKMjAwOC0wNS0yOCAwODozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBUd2VhayB0aGUgZml4IGZvciBidWcgIzE5MTI2NDcKCjIwMDgtMDUtMjggMDY6NTYgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBDSEFOR0VTOiBzbm1wZDogRW5mb3JjZSB0aGUgbG93ZXIgbGltaXQgb24gc2NhbGFyX2dyb3VwcwogICBUaGlzIGZpeGVzIHRoZSBjYXNlIG9mIGdldG5leHQgaWNtcC4wIHJldHVybmluZyBpY21wLjAuMCBpbnN0ZWFkCiAgIG9mIHRoZQogICBleHBlY3RlZCBpY21wSW5Nc2dzLjAKCjIwMDgtMDUtMjcgMjI6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxOTEyNjQ3OiBGaXggbWVtb3J5IGxlYWsgZm9sbG93aW5nIGZhaWxlZAogICByZXF1ZXN0cy4KICAgRml4IHByb3ZpZGVkIGJ5IEFudG9uIFBhawoKMjAwOC0wNS0yNyAyMToyMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxOTU4MDQxOiBFbnN1cmUgSURzIGFyZSBub3QgdHJ1bmNhdGVkLgoKMjAwOC0wNS0yNyAxNDoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmM6CgogICBNb25pdG9yIG1lbW9yeSBidWZmZXJzIG9uIEZyZWVCU0Qgc3lzdGVtcy4KICAgQVBJIHN1Z2dlc3RlZCBieSBDaHJpcwoKMjAwOC0wNS0yNyAxMjo0NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIEZpeCBjYXJlbGVzcyB0eXBvIHdoZW4gYXBwbHlpbmcgTWF4aW0ncyBwYXRjaC4KCjIwMDgtMDUtMjUgMjE6MzcgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0c181XzUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzXzVfNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUmVpbXBsZW1lbnRhdGlvbiBvZiB1c21TdGF0cy4KCjIwMDgtMDUtMjUgMDc6MjQgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYzoKCiAgIFJlbW92ZSBhIGxvY2FsIHZhcmlhYmxlIG9ubHkgdXNlZCB0byB0cmFjayBhIGxvY2FsIHN0cmluZwogICBjb25zdGFudCBhbmQgcmVwbGFjZSB0IHdpdGggYSBkaXJlY3QgcmVmZXJlbmNlIHRvIHRoZSBzdHJpbmcKICAgY29uc3RhbnQuCiAgIE1hcmsgdHdvIGxvY2FsIGZ1bmN0aW9ucyBzdGF0aWMgYXMgd2VsbC4KCjIwMDgtMDUtMjUgMDc6MTcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIFJlb3JkZXIgdG8gYXZvaWQgb25lIHN0cmxlbiBjYWxsLgogICBBZGQgbWlzc2luZyBjYXN0LgoKMjAwOC0wNS0yNSAwNzoxNCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYzoKCiAgIE1ha2UgaXBmd19uYW1lIGEgc3RhdGljIGFycmF5IGluc3RlYWQgb2YgYSBwb2ludGVyIGFzIGl0IGlzCiAgIHByaXZhdGUgdG8gdGhpcyBtb2R1bGUuCgoyMDA4LTA1LTI1IDA3OjA1ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBXaGVuIGNhc3RpbmcsIGNhc3QgdG8gdGhlIHJpZ2h0IHR5cGUuCgoyMDA4LTA1LTI1IDA2OjA4ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUmVtb3ZlIHdhcm5pbmdzIGFib3V0IHVucmVhY2hhYmxlIGNvZGUgb24gc29sYXJpcy4KCjIwMDgtMDUtMjQgMjA6MzAgIGR0czEyCgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBDSEFOR0VTOiBweXRob246IEJVRzogMTgyNjE3NDogQ2hlY2sgZm9yIGJ1ZmZlciBvdmVyZmxvdyB3aGVuCiAgIHByaW50aW5nIHZhbHVlcy4KICAgQWRkcmVzc2VzIENWRS0yMDA4LTIyOTIKCjIwMDgtMDUtMjQgMTM6MTEgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgT24gQUlYIG5ldGluZXQvaW5fcGNiLmggZGVwZW5kcyBvbiBuZXQvcm91dGUuaC4gQWRkIHRoZSBpbmNsdWRlCiAgIGZvciBjb25maWd1cmUuCgoyMDA4LTA1LTI0IDA5OjA2ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBNYWtlIHRoZSBjaGVja3MgZm9yIG5ldGluZXQvaW5fcGNiLmggYW5kIHN5cy9kaXNrbGFiZWwuaCB1c2UgdGhlCiAgIG5vcm1hbAogICBtYWNoaW5lcnkuCiAgIEFkZCBhIG5ldHNubXAgcHJlZml4IHRvIHRoZSBjYWNoZSB2YXJpYWJsZQogICBjdl9zeXNfaW9jdGxfaF9oYXNfU0lPQ0dJRkFERFIgdG8KICAgcGFjaWZ5IGFjbG9jYWwuCgoyMDA4LTA1LTIzIDIwOjI3ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IEZpeCBmb3IgQ1BVIHN0YXRzIG9uIEZyZWVCU0QKICAgUHJvdmlkZWQgYnkgTWF4aW0gU29ib2xldgoKMjAwOC0wNS0yMyAyMDoxMiAgZHRzMTIKCiAgICogZGlzdC9zbm1wZC1pbml0LmQsIGRpc3Qvc25tcHRyYXBkLWluaXQuZDoKCiAgIENIQU5HRVM6IGluc3RhbGw6IFBBVENIOiAxOTY5NjI3OiBIYW5kbGUgZW1wdHkKICAgL2V0Yy9zeXNjb25maWcvbmV0d29yayBmaWxlCiAgIEZpeCBwcm92aWRlZCBieSBKb3NoIFdpbG1lcwoKMjAwOC0wNS0yMyAyMDowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE5NjcxOTQ6IFJlY29nbmlzZSBORlM0IG1vdW50cwogICBTdWJtaXR0ZWQgYnkgRmFicmljZSBCYWNjaGVsbGEKCjIwMDgtMDUtMjIgMjA6NTUgIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgRG9uJ3QgY2hhbmdlIGxlbmd0aCBvZiBPSUQgYnVmZmVyIGlmIHBhcnNpbmcgdGhlIE9JRCBmYWlscy4KICAgUmVwb3J0ZWQgYnkgc2FpZnVsbGEgTW9oZCBBYmR1bC4KCjIwMDgtMDUtMjIgMTM6MzQgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2UueG1sOgoKICAgdXBkYXRlIHRoZSBhZHZlcnRpc2luZyBzZWN0aW9uIGFuZCBjaGFuZ2Ugbm90ZSBhYm91dCBob3cgdG8KICAgdXBsb2FkIGZpbGVzIChhZGRpbmcgYW4gYXV0b21hdHRlZCByc3luYyBjb21tYW5kKQoKMjAwOC0wNS0yMiAwNDowOCAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmM6CgogICBBZGQgbWlzc2luZyBpbmNsdWRlLgoKMjAwOC0wNS0yMSAyMDoyNyAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYzoKCiAgIE1ha2UgaXQgcG9zc2libGUgdG8gYnVpbGQgdGhlIGFsaWFzIG1vZHVsZSB3aXRoIGEgQysrIGNvbXBpbGVyLgoKMjAwOC0wNS0yMSAxMzo0MCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhZGRlZCBGU0YgZGlyZWN0b3J5IGluZm8KCjIwMDgtMDUtMjEgMDk6MjEgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBBZGQgRnJlZSBTb2Z0d2FyZSBEaXJlY3RvcnkgdG8gdGhlIGxpc3Qgb2YgcGxhY2VzIHRvIGJlIHVwZGF0ZWQuCgoyMDA4LTA1LTIwIDIzOjAwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsIAogICAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2RhcndpbjcuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ocHV4LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbGludXguaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9NSUJfU1RBVFNfQ0FDSEVfVElNRU9VVC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzL2hlYWRlcl9nZW5lcmljLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX2dlbmVyaWMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy9oZWFkZXJfc2ltcGxlX3RhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MvaGVhZGVyX3NpbXBsZV90YWJsZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFRoZSBtYWpvcml0eSBvZiB0aGUgZGVwZW5kZW5jaWVzIG9uIHV0aWxfZnVuY3MgaXMKICAgZm9yIHRoZSBoZWFkZXJfKiBmdW5jdGlvbnMuIEZhY3RvciBvdXQgdGhlIGhlYWRlcl8qIGZ1bmN0aW9ucyBhbmQKICAgYWRqdXN0IHRoZSByZXF1aXJlbWVudHMuCgoyMDA4LTA1LTIwIDIyOjQwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmgsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5oLCBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmgsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmgsIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYywgCiAgICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYywgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmgsIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IERvIG5vdCBjb25maWdfcmVxdWlyZSh1dGlsX2Z1bmNzKSBpZiBub3RoaW5nIGZyb20KICAgdXRpbF9mdW5jcyBpcyB1c2VkCgoyMDA4LTA1LTE0IDEzOjM1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGZpeCBidWlsZCBmYWlsdXJlcyB3aXRoIGVhcmxpZXIgTGludXgga2VybmVscyAoZS5nLiB3aXRoIFJINy4xKQogICBpbnRyb2R1Y2VkIGJ5IHIxNjkwOQoKMjAwOC0wNS0xMyAxODo1NiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBjb21tZW50IHR5cG8KCjIwMDgtMDUtMTMgMTU6NDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCB0aGUgLXQgc3dpdGNoIGNoYW5nZQoKMjAwOC0wNS0xMyAxNTo0NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWY6CgogICBkb2N1bWVudCB0aGUgYWxpYXMga2V5d29yZAoKMjAwOC0wNS0xMyAxNTo0MSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMS5kZWYsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBhbGxvdyBmbG9hdGluZyBwb2ludCBudW1iZXJzIHRvIGJlIHVzZWQgZm9yIHRpbWVvdXQgdmFsdWVzCgoyMDA4LTA1LTEyIDIxOjExICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dCwgc25tcGxpYi9zbm1wQWxpYXNEb21haW4uYzoKCiAgIEFkZGVkIGEgcmVhbCBzbm1wQWxpYXNEb21haW4gT0lEIGRlZmluaXRpb24KCjIwMDgtMDUtMTIgMjE6MDcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGVkIE5FV1Mgd2l0aCBuZXcgYWxpYXMgYmx1cmIKCjIwMDgtMDUtMTIgMjE6MDcgIGhhcmRha2VyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBbGlhc0RvbWFpbi5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBtYW4vc25tcC5jb25mLjUuZGVmLCAgIAogICAgICBzbm1wbGliL3NubXBBbGlhc0RvbWFpbi5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBORVdTOiBzbm1wbGliOiBBZGRlZCBhIGFsaWFzIHRyYW5zcG9ydCBmb3IgbWFwcGluZyBjb21wbGV4CiAgIHRyYW5zcG9ydCBzdHJpbmdzIHRvIHNpbXBsZSBuYW1lIGRlZmluaXRpb25zCgoyMDA4LTA1LTEyIDE5OjM4ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHN0cmlwIG9mZiB0cmFpbGluZyBtb2R1bGUgbmFtZQoKMjAwOC0wNS0xMiAwNjowMyAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgIE1ha2UgbWliSUkvc25tcCB3b3JrIGFnYWluLgoKMjAwOC0wNS0xMCAyMTo0NyAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgoKMjAwOC0wNS0xMCAwOTo1NSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsICAgCiAgICAgIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IFJlcGxhY2UgdGhlIGludmFsaWQgJTA4cCBmb3JtYXQKICAgc3BlY2lmaWVyIHdpdGggdGhlIGNvcnJlY3QgJThwLgoKMjAwOC0wNS0xMCAwOTo1MSAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgYXBwcy9zbm1wZGVsdGEuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgICAKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcHRyYXBkLmMsICAgCiAgICAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcG5ldHN0YXQsIHNubXB0cmFwZCwgc25tcGRlbHRhOiBVc2UgTlVMTAogICBpbnN0ZWFkIG9mIDAgZm9yIE5VTEwgcG9pbnRlcnMuIFVzZSBjYXN0ZWQgMCdzIGluc3RlYWQgb2YgMCBmb3IKICAgTlVMTCBmdW5jdGlvbiBwb2ludGVycy4KCjIwMDgtMDUtMTAgMDk6NDAgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9zeXNPUlRhYmxlLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCgoyMDA4LTA1LTEwIDA5OjM5ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEV4cHJlc3Npb25Db25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBBZGQgbWlzc2luZyBpbmNsdWRlIGZpbGVzLgoKMjAwOC0wNS0xMCAwOTozMyAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsICAKICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYywgICAKICAgICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliLCBtaWIyYzogTW92ZSB0aGUgZGVmaW5pdGlvbiBvZiBpbmxpbmUKICAgZnVuY3Rpb25zIHNvIHRoYXQgdGhlIGNvbXBpbGVyIHNlZXMgdGhlbSBiZWZvcmUgaXQgc2VlcyB1c2VzIG9mCiAgIHRoZW0uCgoyMDA4LTA1LTEwIDA5OjMwICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaDoKCiAgIENIQU5HRVM6IHNubXBkLCBzbm1wbGliOiBSZW1vdmUgdGhlIGlubGluZSBkZWNsYXJhdGlvbnMgZm9yCiAgIGZ1bmN0aW9ucyB0aGF0IGxhY2sgYW4gaW5saW5lIGRlZmluaXRpb24uCgoyMDA4LTA1LTA5IDIxOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLCAgCiAgICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwVmFsdWVUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCAgCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywgIAogICAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsICAgCiAgICAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLCAgIAogICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsICAKICAgICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBDSEFOR0VTOiBzbm1wZCwgc25tcGxpYjogVXNlIE5VTEwgaW5zdGVhZCBvZiAwIGZvciBOVUxMIHBvaW50ZXJzLgogICBVc2UgY2FzdGVkIDAncyBpbnN0ZWFkIG9mIDAgZm9yIE5VTEwgZnVuY3Rpb24gcG9pbnRlcnMuCgoyMDA4LTA1LTA5IDIxOjI3ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIGFnZW50L3NubXBfYWdlbnQuYywgICAKICAgICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCAgCiAgICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgQ0hBTkdFUzogc25tcGQsIHNubXBsaWI6IGZpeHVwcyBmb3IgcHJvdG90eXBlIFsodm9pZCkgcmVwbGFjaW5nCiAgICgpXS4KCjIwMDgtMDUtMDkgMjE6MjMgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2NvbW1vbi5jOgoKICAgUmVtb3ZlIGRlYWQgY29kZS4KCjIwMDgtMDUtMDkgMTk6MTYgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBNaXNzaW5nIE1ENSBzaWduYXR1cmUgZmlsZSBmb3IgemlwIHJlbGVhc2UKCjIwMDgtMDUtMDkgMTk6MTUgIGR0czEyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBCYXNpYyBkb2N1bWVudGF0aW9uIGFuZCBoZWxwL3VzYWdlIG1lc3NhZ2VzLgoKMjAwOC0wNS0wOCAxNDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgRHJvcCBzdXBwb3J0IGZvciB0aGUgaW50ZXJpbSBTSU9DREVWUFJJVkFURS1iYXNlZCBpb2N0bCBjYWxscy4KICAgU0lPQ0dNSUlQSFkvU0lPQ0dNSUlSRUcgaGF2ZSBiZWVuIGRlZmluZWQgc2luY2UgYXQgbGVhc3QgU2VwdAogICAyMDAxIChrZXJuZWwgMi40LjEwKSwKICAgc28gdGhlIHJpc2sgb2YgY2FsbGluZyBhbiBpbmFwcHJvcHJpYXRlIHByaXZhdGUgaW9jdGwgaXMgcHJvYmFibHkKICAgZ3JlYXRlciB0aGFuCiAgIHRoYXQgb2YgbWlzc2luZyBpbmZvcm1hdGlvbiBmcm9tIGFuIGFuY2llbnQgc3lzdGVtLgoKMjAwOC0wNS0wOCAwOTowMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRG9uJ3QgdHJ5IHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGFub255bW91cyB1c2Vycy4KICAgKEFuIGludmFsaWQgdHJhcHNlc3MgZGlyZWN0aXZlIG1heSBjcmFzaCB0aGUgYWdlbnQpCgoyMDA4LTA1LTA2IDA4OjM4ICBqc2FmcmFuZWsKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSByZW1vdmUgJXtsaWJjdXJyZW50fQogICAtIGFkZCBvcGVuc3NsLWRldmVsIHRvIGJ1aWxkIHJlcXVpcmVtZW50cwogICAtIGRvbid0IHVzZSBQcm92aWRlczogdW5sZXNzIG5lY2Vzc2FyeSwgbGV0IHJwbWJ1aWxkIGNvbXB1dGUgdGhlCiAgIHByb3ZpZGVkIGxpYnJhcmllcwogICAtIGRvbid0IHNwZWNpZnkgUFJFRklYIGZvciBwZXJsCgoyMDA4LTA1LTA2IDA4OjM4ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgcmV2ZXJ0aW5nIGFjY2lkZW50YWx5IGNvbW1pdGVkIGZpbGVzCgoyMDA4LTA1LTA2IDA4OjM0ICBqc2FmcmFuZWsKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSByZW1vdmUgJXtsaWJjdXJyZW50fQogICAtIGFkZCBvcGVuc3NsLWRldmVsIHRvIGJ1aWxkIHJlcXVpcmVtZW50cwogICAtIGRvbid0IHVzZSBQcm92aWRlczogdW5sZXNzIG5lY2Vzc2FyeSwgbGV0IHJwbWJ1aWxkIGNvbXB1dGUgdGhlCiAgIHByb3ZpZGVkIGxpYnJhcmllcwogICAtIGRvbid0IHNwZWNpZnkgUFJFRklYIGZvciBwZXJsCgoyMDA4LTA1LTA1IDIxOjQzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE1lY2hhbmlzbSB0byBzZWxlY3QgdXBjb21pbmcgbW9kdWxlIHJlLXdyaXRlcyBhbmQvb3IKICAgcmVjZW50bHktZGVwcmVjYXRlZCBtb2R1bGVzLgoKMjAwOC0wNS0wMiAxMDoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgSGFuZGxlIHVkcFRhYmxlIGluZGV4aW5nIG9uIGJvdGggUFBDIGFuZCBJbnRlbCBoYXJkd2FyZS4KCjIwMDgtMDQtMzAgMTk6NDUgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUmVtb3ZlIHRoZSBzdXBwb3J0IGZvciBnZW5lcmF0aW9uIG9mIHN0YXRpc3RpY3MKICAgb2YgaG93IG9mdGVuIGEgY2VydGFpbiBkZWJ1ZyBsb2cgbGV2ZWwgaXMgdHJpZ2dlcmVkLgoKMjAwOC0wNC0zMCAxOTo0MSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBORVdTOiBzbm1wbGliOiBSZW1vdmUgdGhlIHZhcmlhYmxlIGRlYnVnX251bV9leGNsdWRlZC4KICAgVGhlcmUgaXMgbm90aGluZyB0aGF0IHNldHMgZGVidWdfbnVtX2V4Y2x1ZGVkIGFuZCB0aGVyZSBpcyBubyB3YXkKICAgdG8gZm9yIGl0CiAgIHRvIGFmZmVjdCB0aGUgcmVzdWx0IG9mIGFueSBmdW5jdGlvbi4KCjIwMDgtMDQtMzAgMDU6MjggIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgUmVtb3ZlIHVubmNlc3NhcnkgcHJvdG90eXBlcwoKMjAwOC0wNC0yMyAxNjozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBhY3R1YWxseSB1c2UgdGhlIGJyYW5jaCBwYXRoLCBkb24ndCBqdXN0IHNheSB5b3UncmUgZ29pbmcgdG8KCjIwMDgtMDQtMTkgMjI6MjAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBkb24ndCBkZXBlbmQgb24gT0lEIHJlc29sdXRpb24gZm9yIGRpc21hbiBsaW5rVXBEb3duTm90aWZpY2F0aW9ucwoKMjAwOC0wNC0wOCAyMDo0MyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBBY2NlcHQgdGhhdCBwZW9wbGUgd2lsbCB0cnkgdG8gY29tcGlsZSB0aGlzIGNvZGUgd2l0aCBwcmUtQU5TSQogICBjb21waWxlcnMgYW5kIGNoYW5nZSBpdCB0byBoYW5kbGUgdGhhdCBjYXNlLgoKMjAwOC0wNC0wOCAyMDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IGZpeGVkIGFuIGV4dHJhIGJyYWNlIGluIHRoZSBkb2NzIHBvaW50ZWQgb3V0IGJ5CiAgIEphc29uIE1hcnRpbgoKMjAwOC0wNC0wOCAyMDozNCAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICB1cGRhdGUgYW5kIHJlc3RydWN0dXJlIGEgYml0IHRvIGZpeCBhIGZldyBwcm9ibGVtcwoKMjAwOC0wNC0wNyAyMDowNiAgbWFnZnIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQXMgdGhlIG51bGwgaGFuZGxlciBpcyBwZXJmZWN0bHkgY2FwYWJsZSBvZgogICBoYW5kbGluZyBHRVRfQlVMSyByZXF1ZXN0cyBpdCBpcyBub3cgbWFya2VkIGFzIHN1Y2ggaW4gdGhlCiAgIHJlZ2lzdHJhdGlvbi4KCjIwMDgtMDQtMDcgMTQ6MDAgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFub3RoZXIgb3Zlci1zaG9ydCBERVNDUklQVElPTiBidWZmZXIuCgoyMDA4LTA0LTA3IDEzOjU3ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBIYW5kbGUgbG9uZ2VyIERFU0NSSVBUSU9OL1JFRkVSRU5DRSBzdHJpbmdzIGluIENhcGFiaWxpdGllcwogICBzdGF0ZW1lbnRzLgogICAoQ29uc2lzdGVudCBwcm9jZXNzaW5nIHdpdGggb3RoZXIgTUlCIGRlZmluaXRpb24gbWFjcm9zKS4KICAgRml4IHByb3ZpZGVkIGJ5IEFsZWtzYW5kciBMb21hbm92LgoKMjAwOC0wNC0wMiAxOTozNSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgbWVudGlvbiBsaWJlbGYgcGFja2FnZSByZW5hbWUKCjIwMDgtMDMtMjkgMDk6MjkgIG1hZ2ZyCgogICAqICBSRUFETUUuYWdlbnQtbWlicywgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsIAogICAgICAgIGFnZW50L3NubXBfdmFycy5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3N5c09SVGFibGUuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zeXNPUlRhYmxlLmg6CgogICBORVdTOiBzbm1wZDogRW5hYmxlIGF1dG9tYXRpYyByZXJlZ2lzdGVyaW5nIG9mIHN5c09SVGFibGUgZW50cmllcwogICBmcm9tIEFnZW50WCBzdWJhZ2VudHMuIEFkZCB0aGUgc3lzT1JUYWJsZSBpbnRlcmZhY2UgdG8gdGhlCiAgIGluY2x1ZGUgZGlyZWN0b3J5LiBSZXdyaXRlIHRoZSBzeXNPUlRhYmxlIG1vZHVsZSB0byB1c2UgdGhlCiAgIHRhYmxlX2NvbnRhaW5lciBoYW5kbGVyLgoKMjAwOC0wMy0yNyAwMzoyMSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZSwgZGlzdC9uZXQtc25tcC5zcGVjLCBkaXN0L3BhdG1lOgoKICAgdW5jb21taXQgMyBhY2NpZGVudGFsIG11bHRpcGxlIGZpbGUgY29tbWl0cwoKMjAwOC0wMy0yNyAwMzoxOCAgaGFyZGFrZXIKCiAgICogIGRpc3QvbWFrZXJlbGVhc2UsIGRpc3QvbWFrZXJlbGVhc2UueG1sLCBkaXN0L25ldC1zbm1wLnNwZWMsICAgCiAgICAgIGRpc3QvcGF0bWU6CgogICB2YXJpb3VzIHJld29yZGluZywgcmVzdHJ1Y3R1cmluZyBhbmQgcHJvcGVyIGZpbGUgcmVwbGFjZW1lbnQKICAgc2NoZW1lCgoyMDA4LTAzLTI2IDA3OjUyICBtYWdmcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBORVdTOiBzbm1wbGliOiBmcm9tICJBbGVrc2FuZHIgTG9tYW5vdiI6IENvcnJlY3RlZCByZWdpc3RlcmluZyBvZgogICBtdWx0aXBsZSBwcmVtaWIgY29uZmlnIGhhbmRsZXJzIHNvIHRoYXQgYWxsIG9mIHRoZW0gZ2V0CiAgIHJlZ2lzdGVyZWQgYXMgcHJlbWliIGhhbmRsZXJzIGFzIG9wcG9zZWQgdG8gdGhlIGVhcmxpZXIgYmVoYXZpb3VyCiAgIHdoZXJlIHRoZXkgYWx3YXlzIGdvdCByZWdpc3RlcmVkIGFzIG5vcm1hbCBjb25maWcgaXRlbXMuCgoyMDA4LTAzLTI2IDA3OjE2ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEdldCB0aGUgdGFibGVfY29udGFpbmVyIGRhdGEgZnJvbSB0aGUgcmlnaHQKICAgaGFuZGxlciB3aGVuIHVucmVnaXN0ZXJpbmcgYSB0YWJsZV9jb250YWluZXIuCgoyMDA4LTAzLTI1IDA2OjA3ICBtYWdmcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUmVtb3ZlIHNwdXJpb3VzIHByaW50ZiBmcm9tIHVucmVnaXN0ZXJfbWliX2NvbnRleHQKCjIwMDgtMDMtMjQgMTc6NTQgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQ0hBTkdFUzogbWliMmM6IEJVRzogMTg3NDA1OSwxNzM3MDY4OiBIYW5kbGUgTUlCIG9iamVjdHMgd2l0aAogICBlbWJlZGRlZCBoeXBoZW5zCgoyMDA4LTAzLTI0IDE3OjI5ICBkdHMxMgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTg2NjY1NTogSGFuZGxlIHBhcnNpbmcgaW52YWxpZCBPSUQKICAgc3ViaWRlbnRpZmllcnMKCjIwMDgtMDMtMjQgMTY6NTMgIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0g6IDE5MjE4NjE6IEF2b2lkIGVuZGxlc3MgbG9vcCBhZnRlcgogICB0cnVuY2F0aW5nIDY0Yml0IGludAoKMjAwOC0wMy0yNCAxNTowMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODIzMzgxOiBWYWxpZCBNSUIgZGlyZWN0b3J5IHNlYXJjaCBwYXRoIG9uCiAgIFdpbmRvd3MKCjIwMDgtMDMtMjIgMDg6NDIgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGJ1aWxkIHNubXB0cmFwZCB3aXRob3V0IGVtYmVkZGVkIHBlcmwgYWdhaW4uCgoyMDA4LTAzLTIxIDE3OjU1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCAgIAogICAgICBzbm1wbGliL3dpbnBpcGUuYzoKCiAgIE5FV1M6IGxpYnNubXA6IFBBVENIOiAxODk1OTI3OiBmcm9tIGpodW04MTExOiBjaGFuZ2Ugb2Jzb2xldGUKICAgcmVjdi9zZW5kIHRvIHJlY3Zmcm9tL3NlbmR0bwoKMjAwOC0wMy0yMSAxNzo0OSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIENIQU5HRVM6IHB5dGhvbjogUEFUQ0g6IDE4NjIxNzc6IGZyb20gd2FmZmxlc291ZmZsZTogbWFkZSBjb2RlCiAgIG1vcmUgd2luZG93cy9jeWd3aW4gY29tcGlsZXIgZnJpZW5kbAoKMjAwOC0wMy0yMSAxNzo0NSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50LnB5OgoKICAgQ0hBTkdFUzogcHl0aG9uOiBQQVRDSDogMTg3Nzg0MDogZml4IE1JQiBsYWJlbCBhbmQgaW5kZXhpbmcgZHVlCiAgIHRvIHNsaWdodGx5IGJyb2tlbiByZWdleHAKCjIwMDgtMDMtMjEgMTc6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE5MjAzOTA6IGZyb20gd2lsbWVzajogZml4IHJlZ2lzdHJhdGlvbiBvZgogICB0YWJsZXMgd2l0aCAuMCBhcyBJSURzCgoyMDA4LTAzLTIxIDE3OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTE0NjQ1OiBmcm9tIHdpbG1lc2o6IGJldHRlciBlbmQgb2YgbWliCiAgIHN1cHBvcnQKCjIwMDgtMDMtMjEgMTc6MjggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTkxNDY0MzogZnJvbSB3aWxtZXNqOiBmaXggaXNzdWVzIHdpdGgKICAgZW1iZWRkZWQgcGVybCByZXR1cm5pbmcgMCBiZWluZyByZWNsYXNzaWZpZWQgYXMgYSB3cm9uZyBkYXRhIHR5cGUKICAgd2hlbiBhbiBpbnQgd29ya3MuCgoyMDA4LTAzLTIxIDE3OjIyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSCAxOTE0Mzk4OiBmcm9tIHdpbG1lc2o6IGluc3RhbGwKICAgbWliMmMucGVybC5jb25mCgoyMDA4LTAzLTIxIDE3OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbToKCiAgIENIQU5HRVM6IHBlcmw6IFBBVENIOiAxOTE0MzkzOiBmcm9tIHdpbG1lc2o6IHJlZ2lzdGVyQWdlbnQgY2FuCiAgIG5vdyBiZSBydW4gbXVsdGlwbGUgdGltZXMKCjIwMDgtMDMtMjEgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTkwOTgxMzogZml4IHRhYmxlX2l0ZXJhdG9yIGhpbnQgdG8gZ2V0X2ZpcnN0CiAgIHdoZW4gU09SVEVEIGZsYWcgaXMgc2V0CgoyMDA4LTAzLTIxIDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE5FV1M6IHNubXB0cmFwZDogUEFUQ0g6IDE5MDgyODg6IGZyb20gYW5lZGVsOiBJZiBzbm1wdHJhcGQgLWYKICAgaW50ZXJydXB0ZWQgd2l0aCBjdHJsLUMgcnVuIHBlcmwgRU5EIGJsb2NrCgoyMDA4LTAzLTIxIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTkwMjExMzogZnJvbSBqc2FmcmFuZWs6IGZpeCBlcnJvciBsb2cgaW4KICAgaW5ldE5ldFRvTWVkaWF0YWJsZQoKMjAwOC0wMy0yMSAxNjoxMiAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTkwMjEwNTogZnJvbSBqc2FmcmFuZWs6IGhpZGUgYW5kIGltcHJvdmUgZGVidWcKICAgbG9nIG1lc3NhZ2VzIGNyZWF0ZWQgYnkgcGF0Y2ggMTcwNTU5NAoKMjAwOC0wMy0wNyAxNTo0MiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyaF9maWxlc3lzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJoX2ZpbGVzeXMuaDoKCiAgIEhBTC1iYXNlZCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgaHJGU1RhYmxlLgoKMjAwOC0wMy0wNyAxNTo0MCAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMsIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX2dldGZzc3RhdHMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9mc3lzX21udGVudC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9mc3lzL2h3X2ZzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9od19mc3lzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2ZzeXMvbW50dHlwZXMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvZnN5cy9tb3VudHMuaDoKCiAgIEluaXRpYWwgSEFMIGltcGxlbWVudGF0aW9uIG9mIEZpbGVTeXN0ZW0gaW5mb3JtYXRpb24KCjIwMDgtMDMtMDcgMTU6MzUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hlY2sgZm9yIGdldHZmc3N0YXQoKQoKMjAwOC0wMy0wNyAxNTozNCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODIzMzgxOiBVc2UgYSBzZW5zaWJsZSBkZWZhdWx0IE1JQkRJUiBwYXRoCiAgIG9uIEN5Z3dpbi9NaW5HVwogICAoU2hvdWxkIHRoaXMgYmUgYXBwbGllZCB0byBvdGhlciBicmFuY2hlcz8gSWYgc28sIHdoaWNoPykKCjIwMDgtMDItMjcgMjI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBGaXggQysrIHN0eWxlIGNvbW1lbnQKCjIwMDgtMDItMjcgMDc6NDkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgVGhlIExWTSBkaXNrIHBhdGNoIGludHJvZHVjZWQgYSBtZW1vcnkgbGVhay4gVGhpcyByZW1vdmVzIHRoZQogICBsZWFrLgoKMjAwOC0wMi0yNiAyMzoyNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZS54bWw6CgogICBtYWtlIHRoZSBzY3JpcHQgbW9yZSBoaWVyYXJjaGlhbC9zdHJ1Y3R1cmVkCgoyMDA4LTAyLTI2IDIxOjM2ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBDSEFOR0VTOiBJbml0YWxpemUgbG9nIHN1YnN5c3RlbQoKMjAwOC0wMi0yNiAyMTozNCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIENIQU5HRVM6IEZpeCBmb3IgcmVmcyB0byBPQkpFQ1QtR1JPVVAgaW4gYW5vdGhlciBNSUIKCjIwMDgtMDItMjYgMjE6MjMgIG5iYQoKICAgKiAgbWlicy9ESVNNQU4tRVZFTlQtTUlCLnR4dCwgbWlicy9ESVNNQU4tRVhQUkVTU0lPTi1NSUIudHh0LCAgIAogICAgICBtaWJzL0lQLUZPUldBUkQtTUlCLnR4dCwgbWlicy9JUC1NSUIudHh0LCAgIAogICAgICBtaWJzL0lQVjYtRkxPVy1MQUJFTC1NSUIudHh0LCBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dCwgICAKICAgICAgbWlicy9TTk1QLVVTTS1BRVMtTUlCLnR4dCwgbWlicy9TTk1QLVVTTS1ESC1PQkpFQ1RTLU1JQi50eHQsICAgCiAgICAgIG1pYnMvVFJBTlNQT1JULUFERFJFU1MtTUlCLnR4dCwgbWlicy9UVU5ORUwtTUlCLnR4dDoKCiAgIFVwZGF0ZSB0byBhdXRvZXh0cmFjdGVkIG1pYiBmaWxlcyAoYmxhbmsgbGluZSBjaGFubWdlcykKCjIwMDgtMDItMjYgMjA6NDYgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYiwgbWlicy9pYW5hbGlzdCwgbWlicy9yZmNsaXN0OgoKICAgVXBkYXRlIGZvciBjdXJyZW50bHkgcmVsZWFzZWQgUkZDIE1JQlMKCjIwMDgtMDItMjYgMjA6NDUgIG5iYQoKICAgKiAgbWlicy9JQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCwgICAKICAgICAgbWlicy9JQU5BLUxBTkdVQUdFLU1JQi50eHQsIG1pYnMvSUFOQS1SVFBST1RPLU1JQi50eHQsICAgCiAgICAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlIElBTkEgTUlCUyB0byBjdXJyZW50IHZlcnNpb24KCjIwMDgtMDItMjUgMjI6MjEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgYWRkIG1pc3NpbmcgI2luY2x1ZGU8cHRocmVhZC5oPiBmb3IgcHRocmVhZF9tdXRleF90CgoyMDA4LTAyLTI1IDIyOjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm1UYWJsZS5jOgoKICAgYSBiZXR0ZXIgcG9ydGFiaWxpdHkgZml4CgoyMDA4LTAyLTIzIDAwOjU5ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfY29uc3RhbnRzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTcwNTU5NDogZnJvbSBjX3ZhcnVuOiBGaXggdmFyaW91cyBhc3BlY3RzIG9mCiAgIGxpbnV4IGlwQWRkcmVzc1ByZWZpeFRhYmxlIHJlcG9ydGluZy4KCjIwMDgtMDItMjIgMjM6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg5NjExODogcGF0Y2ggZnJvbSBqc2FmcmFuZWs6IGZpeCBpZlRhYmxlCiAgIDMyYml0IGNvdW50ZXJzIG9uIGxpbnV4CgoyMDA4LTAyLTIyIDIzOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXB2NnNjb3Blem9uZV9saW51eC5jOgoKICAgcGF0Y2ggZnJvbSBqc2FmcmFuZWs6IENyZWF0ZSBpcHY2U2NvcGVab25lRW50cnkgb25seSBmb3IKICAgbGluay1sb2NhbCBhZGRyZXNzZXMgYW5kIG9ubHkgb25jZSBwZXIgaW50ZXJmYWNlLgoKMjAwOC0wMi0yMiAyMzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogbGlic25tcDogUEFUQ0g6IDE4OTgyMDQ6IGZyb20gTWlrZSBXZXNjb3R0OiBmaXggYnVnCiAgIDE4OTgxOTggaW4gcGFyc2UuYyB0byBhdm9pZCBhIHNlZ2ZhdWx0IHdoZW4gcGFyc2luZyBicm9rZW4gbWlicy4KCjIwMDgtMDItMTggMTI6MTEgIGR0czEyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgQ2xhcmlmeSB0aGUgbmVlZCB0byByZXNldCBidWZmZXIgbGVuZ3RoIHdoZW4gY2FsbGluZyAncmVhZF9vYmppZCcKICAgcmVwZWF0ZWRseS4KCjIwMDgtMDItMTggMTA6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmM6CgogICBwb3J0YWJpbGl0eSBmaXgKCjIwMDgtMDItMTggMDc6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmM6CgogICBtYWtlIHN1cmUgdGhhdCBuZXRzbm1wX2lxdWVyeV91c2VyX3Nlc3Npb24gZXQgYWwuIGFyZSBwcm9wZXJseQogICBkZWNsYXJlZAoKMjAwOC0wMi0xNyAxODowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUKCjIwMDgtMDItMTcgMDg6MzggIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHBvcnRhYmlsaXR5IGZpeAoKMjAwOC0wMi0xNSAxNzo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgbG93ZXJlZCBmYWlsdXJlIG1lc3NhZ2UgdG8gaW5zZXJ0IHRvIGRlYnVnOyByZW1vdmVkIENWUyBJRCBmcm9tCiAgIHRvcCBvZiBsaW5lCgoyMDA4LTAyLTE1IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBkb24ndCBpbnNlcnQgZW1wdHkgZW50cmllcwoKMjAwOC0wMi0xNSAxNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgcGF0Y2ggZnJvbSBqc2FmcmFuZSBvbiBpcmM6IG1ha2UgaXB2NiBlbnRyaWVzIHdvcmsgb24gNjQgYml0CiAgIG1hY2hpbmVzCgoyMDA4LTAyLTE1IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlLnhtbDoKCiAgIHBhc3MgMSBhdCBhIG5ldyBtYWtlcmVsZWFzZSBzY3JpcHQ7IGN1cnJlbnRseSBqdXN0IGNvbnZlcnRlZCBjb2RlCiAgIG1vc3RseQoKMjAwOC0wMi0xNSAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICByZW1vdmUgbGludXggY2hlY2tzCgoyMDA4LTAyLTE1IDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICByZW1vdmUgcmVmZXJlbmNlcyB0byBSREFfUlRBCgoyMDA4LTAyLTE1IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmM6CgogICBkb24ndCBjb21waWxlIGluIHRoZSBpcHY2IGNvZGUgaWYgTkRBX1JUQSBpc24ndCBkZWZpbmVkCgoyMDA4LTAyLTE1IDEzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBwb3J0YWJpbGl0eSBmaXgKCjIwMDgtMDItMTUgMDY6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIG1pbm9yIGJ1ZyB1cGRhdGUgZnJvbSBjX3ZhcnVuCgoyMDA4LTAyLTE1IDA1OjEzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNzA0MTA1OiBmcm9tIGNfdmFydW46IEFkZCBJUHY2IHN1cHBvcnQgdG8KICAgdGhlIGluZXROZXRUb01lZGlhVGFibGUgZm9yIGxpbnV4CgoyMDA4LTAyLTE1IDA1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIHJlcXVpcmUgbmV3IGlwdjZTY29wZVpvbmVJbmRleFRhYmxlIHRhYmxlCgoyMDA4LTAyLTE1IDA1OjAwICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwdjZzY29wZXpvbmVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcHY2c2NvcGV6b25lX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfZW51bXMuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlL2lwdjZTY29wZVpvbmVJbmRleFRhYmxlX2ludGVyZmFjZS5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NlNjb3BlWm9uZUluZGV4VGFibGUvaXB2NlNjb3BlWm9uZUluZGV4VGFibGVfaW50ZXJmYWNlLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2U2NvcGVab25lSW5kZXhUYWJsZS9pcHY2U2NvcGVab25lSW5kZXhUYWJsZV9vaWRzLmgsCiAgICAgICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc2NvcGV6b25lLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3MTU0MDU6IGZyb20gY192YXJ1bjogSW1wbGVtZW50IHRoZQogICBpcHY2U2NvcGVab25lSW5kZXhUYWJsZSBvbiBsaW51eAoKMjAwOC0wMi0xNSAwNDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcxNjU0ODogZnJvbSBteWFtYXRvOiBGaXggaGVscCBvdXRwdXQgc28KICAgbm8gc3BhY2UgaXMgcHJpbnRlZCBiZXR3ZWVuIC1EIGFuZCBhcmd1bWVudHMuCgoyMDA4LTAyLTE1IDA0OjI3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvUm1vbi5oLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybVRhYmxlLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3MjM2MTE6IGZyb20gRW1pIFlhbmFnaTogTmV3IGltcGxlbWVudGF0aW9uCiAgIG9mIHRoZSBybW9uIGFsYXJtVGFibGUKCjIwMDgtMDItMTUgMDM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4OTM0Njg6IGZyb20gZ2tvZW5pZzogZml4ZWQgcmVnaXN0cmF0aW9uIG9mCiAgIE9JRHMgd2l0aCByYW5nZXMKCjIwMDgtMDItMTQgMjE6NDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBmaXggdHlwbyBpbiB2YXJpYWJsZSBkZWNsYXJhdGlvbiAodW5icmVha3MgdGhlIGJ1aWxkIG9uIGEgZmV3CiAgIHN5c3RlbXMpCgoyMDA4LTAyLTE0IDAwOjI5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUgZm9yIHNwYXJ0YQoKMjAwOC0wMi0xMyAyMzozNyAgbWFnZnIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgTkVXUzogc25tcGxpYjogQ2hhbmdlIENPTlRBSU5FUl9JTlNFUlQgdG8gbm90IGRvIHBhcnRpYWwgaW5zZXJ0cwogICBpbiBjb250YWluZXJzIHdpdGggbXVsdGlwbGUgaW5kaWNlcyB3aGVuIG9uZSBpbnNlcnQgZmFpbHMuCgoyMDA4LTAyLTEzIDIzOjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeGVkIHRoZSBjcmVhdGVVc2VyIGxpbmUgdG8gc3BlY2lmeSB0aGUgLWUgZmxhZyAocmVzcG9uZGluZyB0byBhCiAgIGNvbXBsYWludCBhYm91dCBpdCBiZSBtaXNzaW5nKQoKMjAwOC0wMi0xMyAxNzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE3Nzk1NTg6IGZyb20gYnJ1bWJzOiBJbXBsZW1lbnQgdGhlCiAgIGRpc2tJT0xBMSw1LDEwIG9iamVjdGlvbnMgaW4gdGhlIGRpc2tpby1taWIgdW5kZXIgbGludXgKCjIwMDgtMDItMTMgMTc6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3ODM3MzM6IFB1dCB0aGUgcGFja2FnZSB2ZXJzaW9uIG51bWJlcgogICBpbnRvIHRoZSBoclNXSW5zdCB0YWJsZSBmb3Igc29sYXJpcy4KCjIwMDgtMDItMTMgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc4MzQyMzogZnJvbSBqc2FmcmFuZWs6IHJldHVybiBhIGNvcnJlY3QKICAgaXB2NkludGVyZmFjZUlkZW50aWZpZXIgb2YgbG9vcGJhY2sgb24gbGludXgKCjIwMDgtMDItMTMgMTY6MTIgIGhhcmRha2VyCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3ODQ3NDc6IGZyb20ganNhZnJhbmVrOiBGaXggbG9uZyB1c2FnZQogICBmb3IgaXAgYWRyZXNzZXMgb24gNjQgYml0IHN5c3RlbXMgaW4gdmFyaW91cyBNSUItSUkgdGFibGVzLgoKMjAwOC0wMi0xMyAxNjowNyAgaGFyZGFrZXIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4MDY1MDE6IGZyb20gam1hZ2RlcjogQWRkIGEgc25tcF92M3RyYXAKICAgZnVuY3Rpb24gZm9yIHNlbmRpbmcgdHJhcHMgd2l0aCBhIHNubXB2MyBjb250ZXh0CgoyMDA4LTAyLTEzIDE2OjAyICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgyNjEwMjogZnJvbSBqc2FmcmFuZWs6IHN1cHBvcnQgbG9uZ2VyCiAgIGludGVyZmFjZSBuYW1lcyBvbiBsaW51eAoKMjAwOC0wMi0xMiAyMzoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IFBBVENIOiAxODA3NDg5OiBmaXggaWdub3Jpbmcgb2YgZGlzcGxheSBoaW50cy4KCjIwMDgtMDItMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIAoKMjAwOC0wMi0xMiAyMzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoIDE4MjM0NjUgZnJvbSBqc2FmcmFuZWs6IGZpeCBpY21wIGNhY2hlCiAgIHJlZ2lzdHJhdGlvbgoKMjAwOC0wMi0xMiAyMjoxNiAgaGFyZGFrZXIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc2NhbGFyc19saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBfc2NhbGFycy5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxODI4NjAyOiBmcm9tIHRnb2hhZDogU3VwcG9ydCBpcERlZmF1bHRUVEwKICAgYW5kIGlwRm9yd2FyZGluZyBTRVRzIG9uIGxpbnV4CgoyMDA4LTAyLTEyIDIyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg2NjgyMzogZnJvbSBqc2FmcmFuZWs6IHRydW5jYXRlIDMyIGJpdAogICBjb3VudGVyIHZhbHVlcyBvbiA2NCBiaXQgbWFjaGluZXMgdG8gYXZvaWQgYm9ndXMgd2FybmluZ3MuCgoyMDA4LTAyLTEyIDE5OjA1ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4NDk5MDM6IGZyb20ganNhZnJhbmVrOiBkbyBub3Qgc3BhbSBsb2cKICAgd2l0aCBhc3NlcnRzIHdoZW4gWEVOIGlzIHVzZWQKCjIwMDgtMDItMTIgMTg6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIENIQU5HRVM6IGxpYnNubXA6IFBBVENIOiAxODc1MDIyOiBmcm9tIHNlbV9wcmc6IGltcHJvdmUgY2FsbGJhY2sKICAgbG9ja2luZyBtZWNoYW5pc21zCgoyMDA4LTAyLTEyIDE3OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTg3OTI2MTogZnJvbSBhbWVzYnVyeTogQWRkIGluIGluYWN0aXZlCiAgIG1lbW9yeSB0byB0aGUgY2FjaGVkIHJlcG9ydCBmb3IgZnJlZWJzZAoKMjAwOC0wMi0xMiAxNTozMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oLCBzbm1wbGliL3NubXB2My5jOgoKICAgTkVXUzogbGlic25tcDogUGF0Y2g6IDE4ODIwNjk6IGZyb20gbnNjaHJlbms6IEFkZCBhIGV4YWN0RW5naW5lSUQKICAgdG9rZW4gZm9yIHNwZWNpZnlpbmcgYW4gZXhhY3QgU05NUHYzIGVuZ2luZUlEIHRvIHVzZQoKMjAwOC0wMi0xMiAxNToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBtaW5vciBjbGVhbnVwcyBmcm9tIHJldmlld2luZyBwYXJ0cyBvZiB0aGUgY29kZQoKMjAwOC0wMi0xMiAxNToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE4ODI2MjE6IGZyb20ganNhZnJhbmVrOiBBZGQgTFZNIHN1cHBvcnQgdG8KICAgdGhlIHBhcnRpdGlvbiB0YWJsZQoKMjAwOC0wMi0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggcXVvdGVkIHN0cmluZ3MgaW4gaGVscCBvdXRwdXQKCjIwMDgtMDEtMzAgMTc6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkZWQgdmFjbV9jb25mIHRvIGV4aXN0aW5nIGNvbmZpZ3VyZSBmaWxlcyAoZm9yIHRyYXBkIHRvbykKCjIwMDgtMDEtMjAgMDc6NTUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogQlVHOiAxODcyMjY2OiBQRVJMQ0MgY2hlY2sgZmFpbHMgZm9yIENDIHdpdGgKICAgb3B0aW9ucwoKMjAwOC0wMS0xNyAwMToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmg6CgogICBmaXggZGVmYXVsdCBtaWJzIHRvIGluY2x1ZGUgdmFjbV9jb25mIHRvbwoKMjAwOC0wMS0xNyAwMDowOSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxODI2MDg4OiBmcm9tIEphbiBTYWZyYW5lazogVXNlIHRoZSByaWdodAogICBpbnRlcmZhY2UgdCByZWFkIHRoZSBuZXRtYXNrCgoyMDA4LTAxLTE2IDIxOjU0ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBIYW5kbGUgZGV2aWNlIG5hbWVzIHdpdGggZW1iZWRkZWQgc3BhY2VzIGluCiAgIFVDRC1TTk1QLU1JQjo6ZHNrRGV2aWNlCgoyMDA4LTAxLTE2IDAwOjQ3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE4Mjg4Mzk6IGZyb20ganNhZnJhbmVrIHRvIHByb3ZpZGUgYmV0dGVyCiAgIGhhbmRsaW5nIG9mIGRpc2tzIG1vdW50ZWQgb24gcGF0aHMgd2l0aCBlbWJlZGRlZCBzcGFjZXMKCjIwMDgtMDEtMTUgMTY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgY292ZXJpdHkgYnVnIDIwNTogZG91YmxlIGNoZWNrIHBvaW50ZXIgdGhhdCBzaG91bGQgbmV2ZXIgYmUgbnVsbAoKMjAwOC0wMS0xNCAyMzo1NSAgbWFnZnIKCiAgICogIFJFQURNRS5hZ2VudC1taWJzLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdXBkYXRlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS91cGRhdGVzLmg6CgogICBVcGRhdGUgdGhlIHNubXAgYW5kIHN5c3RlbSBtaWJzIHRvIGJlIGhhbmRsZXIgYmFzZWQKCjIwMDgtMDEtMTMgMDA6MDAgIG1hZ2ZyCgogICAqICBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMsICAKICAgICAgIGRveHlnZW4uY29uZiwgbG9jYWwvVmVyc2lvbi1NdW5nZS5wbCwgc2Vkc2NyaXB0LmluLCAgIAogICAgICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgTGVzc2VuIHRoZSBudW1iZXIgb2YgcGxhY2VzIHRoYXQgbmVlZCB0byBiZSBjaGFuZ2VkIGluIG9yZGVyIHRvCiAgIGRvIGEgcmVsZWFzZS4KICAgQ2hhbmdlIHRvIHVzZSB0aGUgY29uZmlndXJlIHZlcnNpb24gbnVtYmVyIGFzIHRoZSBwYWNrYWdlIHZlcnNpb24KICAgbnVtYmVyLgoKMjAwOC0wMS0wOSAyMTo1OCAgbWFnZnIKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBEZWxldGUgdW51c2VkIHN0YXRpYyBmdW5jdGlvbnMKCjIwMDgtMDEtMDYgMTM6MDEgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1ha2UgZXJyb3Jfc3RyaW5nIHByaXZhdGUgYW5kIHJlYWRvbmx5CgoyMDA3LTEyLTIyIDE5OjIyICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTgyNjE3NDogQ2hlY2sgZm9yIGJ1ZmZlciBvdmVyZmxvdyB3aGVuCiAgIHByaW50aW5nIHZhbHVlcy4KCjIwMDctMTItMjEgMjM6MTkgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxNzQ3NzMzOiBNb3JlIHJvYnVzdCBoYW5kbGluZyBvZiB1bmRlZmluZWQKICAgdmFsdWVzLgogICBQYXRjaCBzdXBwbGllZCBieSBNYXR0aSBMaW5uYW52dW9yaQoKMjAwNy0xMi0yMSAyMTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NDgyMDY6IFByb3RlY3QgYWdhaW5zdCBmYWlsdXJlcyB0byBvcGVuCiAgIC9ldGMvbXRhYiAob3IgZXF1aXYpCgoyMDA3LTEyLTIxIDE4OjQyICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBCcmluZyBvcmRlciBvZiBhZ2VudCBsaWJyYXJ5IGxpbmtpbmcgaW50byBsaW5lIHdpdGggYWdlbnQKICAgTWFrZWZpbGUuCiAgIFByb2JsZW0gcmVwb3J0ZWQgYnkgU3RldmUgTWNDYXJ0aHkuCiAgIFFuOiBTaG91bGQgNS4yLnggYW5kIDUuMy54IGFsc28gdXNlIHRoZSBzYW1lIG9yZGVyPwogICAoZm9yIGJvdGggYWdlbnQgTWFrZWZpbGUgYW5kIG5ldC1zbm1wLWNvbmZpZykKCjIwMDctMTItMjEgMTM6MTEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTgwMjgzMzogRW5zdXJlIHNubXB0cmFwZCBidWlsZHMgd2l0aAogICAtLWRpc2FibGUtc25tcHYxLzJjCgoyMDA3LTEyLTIwIDE2OjI2ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENIQU5HRVM6IHBlcmw6IEJVRzogMTgzNDUzOTogQ29uc2lzdGVudCBoYW5kbGluZyBvZiBPSUQgcGFyc2luZy4KICAgQXBwbGllcyBwYXRjaCAjMTgzNDk4MywgcHJvdmlkZWQgYnkgRG1pdHJ5IEthcmFzaWsKCjIwMDctMTItMjAgMTY6MDUgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1vcmUgaW50ZXJuYWwgcXVlcnkgZGVidWdnaW5nIG91dHB1dC4KCjIwMDctMTItMjAgMTQ6MjAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTgyMjM2MDogRml4IHNwaW5sb2NrIGhlbHBlciBlcnJvciBoYW5kbGluZy4KCjIwMDctMTItMjAgMTQ6MTggIGR0czEyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxNzk1ODQwOiBTaWduZWQgMzItYml0IHRydW5jYXRpb24gbG9nZ2VkCiAgIGFzIGRlYnVnIG1lc3NhZ2UgcmF0aGVyIHRoZW4gZXJyb3IuCgoyMDA3LTEyLTIwIDE0OjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3OTI4OTA6IGluY2x1ZGUgQ0lGUyBtb3VudHMgd2hlbiBza2lwcGluZwogICByZW1vdGUgZmlsZXN5c3RlbXMKCjIwMDctMTItMjAgMTQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NzEyMjE6IFJldGFpbiBpZkxhc3RDaGFuZ2UgaW5mb3JtYXRpb24gb24KICAgZGF0YSByZWxvYWQuCgoyMDA3LTEyLTIwIDE0OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNzU4MjEyOiBIYW5kbGluZyBtaXNzaW5nIHZhcmlhYmxlIHR5cGVzCiAgIChJcEFkZHJlc3MsQ291bnRlcixPcGFxdWUpCgoyMDA3LTEyLTE5IDIyOjM5ICBtYWdmcgoKICAgKiAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYywgICAKICAgICAgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCBzbm1wbGliL2RhdGFfbGlzdC5jLCAgIAogICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDb3JyZWN0IGRveHlnZW4gd2FybmluZ3MKCjIwMDctMTItMTkgMjI6MzEgIG1hZ2ZyCgogICAqICB0ZXN0aW5nL3Rlc3RzL1N2M3ZhY21jb25maWcsIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldCwgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDAyM3NubXB2M2dldE1ENUFFUywgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZSwgdGVzdGluZy90ZXN0cy9UMDYwdHJhcGRwZXJsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmwsIHRlc3RpbmcvdGVzdHMvVDA2NWFnZW50ZXh0ZW5kLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cCwgdGVzdGluZy90ZXN0cy9UMTE1YWdlbnR4cGVybCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsIHRlc3RpbmcvdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsICAKICAgICAgIHRlc3RpbmcvdGVzdHMvVDEzMXNubXB2MmN2YWNtZ2V0LCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsLCAgIAogICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTBzb2xhcmlzaG9zdGNwdSwgICAKICAgICAgdGVzdGluZy90ZXN0cy9UMTUxc29sYXJpc2hvc3RkaXNrLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lLCAgCiAgICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcCwgdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDIwMHNubXB2MmN3YWxrYWxsOgoKICAgVXNlIE5FVFNOTVBfLXByZWZpeGVkIHN5bWJvbHMgd2hlbiBkZWNpZGluZyB3aGF0IHRlc3RzIHRvIHJ1biBhcwogICB0aGUgY29tcGF0IHN5bWJvbHMgYXJlbid0IGRlZmluZWQuCgoyMDA3LTEyLTE5IDIyOjA2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBCVUcgMTgzMTU2ODogc3RyZHVwIG1pZ2h0IGZhaWwgYW5kIHJldHVybiBOVUxMIC0gdGFrZSBjYXJlIG9mIGl0CiAgIGluIHRoaXMgY2FzZSBhdCBsZWFzdC4KCjIwMDctMTItMTkgMjE6NDkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBCVUcgMTgyNDg4MzogUmVtb3ZlIG1lbW9yeSBsZWFrCgoyMDA3LTEyLTE5IDIwOjQ2ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYzoKCiAgIENIQU5HRVM6IEJVRzogMTg1MTA0NzogRG8gbm90IHRyeSB0byBkbyBtb3JlIGhhbmRsaW5nIG9mIGEgdmFsdWUKICAgb25jZSBpdCBpcyBmb3VuZCB0byBiZSBjb3JydXB0IGJ5IHRoZSB3YXRjaGVyIGhlbHBlciwgdGh1cwogICBhdm9pZGluZyBjb2RlIHRoYXQgY291bnRzIG9uIGdldHRpbmcgdGhlIHJpZ2h0IHR5cGUuIFRoaXMgYnVnIHdhcwogICBmb3VuZCBieSBDaGFybGllIE1pbGxlciwgSW5kZXBlbmRlbnQgU2VjdXJpdHkgRXZhbHVhdG9ycy4KCjIwMDctMTEtMjcgMDk6NTYgIGR0czEyCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBDbGFyaWZ5IHVzZSBvZiB0aGUgLUEgKGxvZyBhcHBlbmQpIG9wdGlvbi4KCjIwMDctMTEtMjIgMTU6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmMsIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKCiAgIGNoZWNrIHJlcXVlc3QsIG5vdCByZXF1ZXN0cy4gcmVwb3J0ZWQgYnkgdWxpbSBvbiBpcmMKCjIwMDctMTEtMjIgMTU6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYzoKCiAgIGNoZWNrIHJlcXVlc3QsIG5vdCByZXF1ZXN0cy4gcmVwb3J0ZWQgYnkgdWxpbSBvbiBpcmMKCjIwMDctMTEtMTkgMjE6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogUEFUQ0g6IDE4MzQ2OTk6IGZyb20gYXBlcnNzb246IEZpeCAxODMzMjk0OgogICBETFBJIHByb2JsZW1zIG9uIFNvbGFyaXMgMi42CgoyMDA3LTExLTE3IDE2OjI2ICBtYWdmcgoKICAgKiAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IFVzZSB0aGUgd29ya2VyIGhlbHBlcnMgZnJvbSB0aGUKICAgcmVnaXN0ZXJfKl9pbnN0YW5jZSBoZWxwZXJzIGFuZCBzY2hlZHVsZSB0aGUgaW5zdGFuY2UgaGVscGVycyBmb3IKICAgcmVtb3ZhbCBpbiA1LjYKCjIwMDctMTEtMTQgMTI6MjEgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2xtc2Vuc29yc192My5oOgoKICAgU3VwcG9ydCB2MyBsbXNlbnNvcnMgQVBJLgoKMjAwNy0xMS0xNCAxMjoxOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmM6CgogICBGaXggbWlzbGVhZGluZyBkZWJ1ZyBvdXRwdXQgbWVzc2FnZS4KCjIwMDctMTEtMTMgMTM6NTkgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvZHVtbXlfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2R1bW15X3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9od19zZW5zb3JzLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvaHdfc2Vuc29ycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL2tzdGF0X3NlbnNvcnMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvc2Vuc29ycy9rc3RhdF9zZW5zb3JzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvbG1zZW5zb3JzX3YyLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL3NlbnNvcnMvcGljbGRfc2Vuc29ycy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9zZW5zb3JzL3BpY2xkX3NlbnNvcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1zZW5zb3JzTWliLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtc2Vuc29yc01pYi5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgIAogICAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9zZW5zb3JzLmg6CgogICBQcmVsaW1pbmFyeSByZS13b3JraW5nIG9mIHRoZSBMTS1TRU5TT1JTLU1JQiwgdG8gc2VwYXJhdGUgb3V0CiAgIHRoZSBzZW5zb3IgaGFyZHdhcmUgcHJvY2Vzc2luZyBmcm9tIHRoZSBNSUIgdGFibGVzIHRoZW1zZWx2ZXMuCgoyMDA3LTExLTA4IDIzOjE3ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBQQVRDSDogMTgyNDE5Njoge2lmT3BlclN0YXR1cyxpcEFkRW50SWZJbmRleH0KICAgcmVwb3J0ZWQgaW5jb3JyZWN0bHkKICAgUGF0Y2ggc3VwcGxpZWQgYnkgQW5kZXJzIFBlcnNzb24uIEZpeGVzIEJ1Z3MgMTgyMjI3NSBhbmQgMTgxOTE4OS4KCjIwMDctMTAtMjYgMjE6MjIgIG1hZ2ZyCgogICAqICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd2F0Y2hlZC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaDoKCiAgIE5FV1M6IHNubXBkOiBBZGRlZCBzdXBwb3J0IGZvciBhIHVzZXIgcHJvdmlkZWQgbGVuZ3RoIHZhcmlhYmxlCiAgIGFuZCBDIHN0cmluZyB2YWx1ZXMgdG8gdGhlIHdhdGNoZXIgaGVscGVyLgoKMjAwNy0xMC0xNiAyMjozOSAgbWFnZnIKCiAgICogIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFNldFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywgICAKICAgICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgVXNlICVwIHRvIHByaW50IHBvaW50ZXJzLiBEbyBub3QgdXNlICVwIHRvIHByaW50IG51bWJlcnMuCgoyMDA3LTEwLTE2IDA3OjMxICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBNYWtlIHRoZSBsaWJyYXJ5IGJ1aWxkYWJsZSBhcyBDIGFnYWluLgoKMjAwNy0xMC0xNiAwNzoxNyAgbWFnZnIKCiAgICogIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBtaXNjOiBhdm9pZCBjYWxsaW5nIGRlYnVnIG1hY3JvcyB3aXRoIHRvbyBtYW55CiAgIGFyZ3VtZW50cy4KCjIwMDctMTAtMTYgMDY6MTggIG1hZ2ZyCgogICAqICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9zZXJ2aWNlLmMsICAgCiAgICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIE1ha2UgdGhlIGxpYnJhcnkgYnVpbGRhYmxlIGFzIEMrKyBhZ2Fpbi4KCjIwMDctMTAtMTUgMjA6NTIgIHJzdG9yeQoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIGRlY2xhcmUgbmV0c25tcF9iaW5hcnlfYXJyYXlfb3B0aW9uc19zZXQ7IGluY2x1ZGUgaGVhZGVyIGZvciBpdAogICBhcyBuZWVkZWQKCjIwMDctMTAtMTUgMjA6MzkgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlVGFibGUuYzoKCiAgIENvbnZlcnQgYW4gaW5maW5pdGUgbG9vcCB0byBhIGZpbml0ZSBvbmUuCiAgIFJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUuCgoyMDA3LTEwLTE0IDIyOjEwICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYzoKCiAgIENIQU5HRVM6IG1pc2M6IEF2b2lkIGNhbGxpbmcgZGVidWcgbWFjcm9zIHdpdGggdG9vIGZldyBhcmd1bWVudHMuCgoyMDA3LTEwLTE0IDIwOjUxICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxODExNDY5OiByZWFkX2NvbmZpZ19maWxlc19pbl9wYXRoKCkKICAgcmVhZHMgcGFzdCBtYWxsb2MnZCBidWZmZXIKCjIwMDctMTAtMTQgMjA6NDEgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBDSEFOR0VTOiBwZXJsOiBQQVRDSDogMTgxMTQ2MzogcGVybCBhc3luYyBjYWxsYmFjayBjb3JlZHVtcAogICBDSEFOR0VTOiBwZXJsOiBCVUc6IDE2MDYwNjI6IHBlcmwgYnVsa3dhbGsgKGFzeW5jKSBjb3JlZHVtcAoKMjAwNy0xMC0xNCAxOTowNyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE4MDYzMzY6IGZpeCAtTFMgb3B0aW9uIHBhcnNpbmcKCjIwMDctMTAtMTQgMTI6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIGZpeCBjb21tZW50CgoyMDA3LTEwLTEzIDIzOjI4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgQ0hBTkdFUzogdGVzdDogZW5oYW5jZSBzbm1wbmV0c3RhdCB0ZXN0IHRvIGNoZWNrIHRjcFRhYmxlIGluIFRDUAogICBtb2RlCgoyMDA3LTEwLTEzIDIyOjI4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBCVUc6IDE4MTA4MTQ6IHRjcFRhYmxlIG1pc3NpbmcgZW50cmllcyBhbmQKICAgd3JvbmcgcG9ydHMKCjIwMDctMTAtMTIgMjE6NDYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgQ0hBTkdFUzogU29sYXJpczogI2RlZmluZSBORVdfTUlCX0NPTVBMSUFOVCB0byBzdXBwb3J0IFNvbGFyaXMKICAgMTBVNCsKCjIwMDctMTAtMTEgMjA6NDYgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRG8gbm90IGxlYWsgbWVtb3J5IHdoZW5ldmVyIGFuIHVkcCBhZGRyZXNzIGlzCiAgIGZvcm1hdHRlZC4KCjIwMDctMTAtMDMgMDE6MDIgIGFsZXhfYgoKICAgKiAgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LCB3aW4zMi9kaXN0L1JFQURNRS50eHQsICAgCiAgICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL0FkZDJQYXRoLm5zaSwgICAKICAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgLUZpeCBmb3IgYnVnIDE3Njg3OTcuIE5TSVMgSW5zdGFsbGVyIHNjcmlwdCBub3cgd2FybnMgdGhlIHVzZXIgaWYKICAgdGhlIFBBVEgKICAgaXMgPiAxMDI0IGFzIE5TSVMgY2FuIG5vdCBoYW5kbGUgdmFyaWFibGVzIGxhcmdlciB0aGFuIDEwMjQuCiAgIC1VcGRhdGVzIHRvIGJ1aWxkIGluc3RydWN0aW9ucy4KCjIwMDctMDktMzAgMjA6NTkgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZXJ2aWNlLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgQ0hBTkdFUzogQlVHOiAxODAxODM1OiBBZGRlZCB0aGUgYWJpbGl0eSB0byBoYXZlIG11bHRpcGxlIGRlZmF1bHQKICAgdHJhbnNwb3J0cyBmb3IgYW4gYXBwbGljYXRpb24uIE9uIG9wZW4gdGhlIGRpZmZlcmVudCB0cmFuc3BvcnRzCiAgIHdpbGwgYmUgdHJpZWQgaW4gb3JkZXIuIEFzIGEgY29uc2VxdWVuY2Ugc25tcCBhbmQgc25tcHRyYXAgbm93CiAgIHdpbGwgdHJ5IGZpcnN0IHVkcCBhbmQgdGhlbiB1ZHA2IGFuZCBhZ2VudHggd2lsIHRyeSBmaXJzdCB1bml4CiAgIGFuZCB0aGVuIHRjcC4KCjIwMDctMDktMjkgMTM6MTAgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IERvIG5vdCB0cnkgdG8gbG9vayB1cCBlbXB0eSBzdHJpbmdzIGFzCiAgIGhvc3RuYW1lcyBmb3IgSVB2NgogICBBZGRpdGluYWxseSwgcHJpbnQgd2hhdCBzdHJpbmcgZmlsZWQgdG8gcmVzb2x2ZSB1c2luZyBnZXRhZGRyaW5mbwogICBmb3IgSVB2NgoKMjAwNy0wOS0yOSAwNjoyNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTgwNDQ0NTogZnJvbSBhcGVyc3NvbjogSGlnaCBvcmRlciBiaXRzIG9mCiAgIEhDSW5PY3RldHMgbm90IHNldCBvbiBTb2xhcmlzCgoyMDA3LTA5LTI0IDIwOjQzICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKCjIwMDctMDktMjMgMDY6MDMgIHRhbmRlcnMKCiAgICogc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIGZpeCAjZWxpZgoKMjAwNy0wOS0yMSAyMjowNCAgdGFuZGVycwoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHNubXBsaWIvZGlyX3V0aWxzLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBhdHRlbXB0IHRvIGZpeCBidWlsZCBmb3IgU29sYXJpcy9BSVgvSFAtVVgKICAgYnJva2VuIGJ5IHIxNjY4NAoKMjAwNy0wOS0yMCAyMTo1NSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NDY4MzE6IGZyb20gY3VubmlqZDogZml4IHByb2Nlc3MKICAgY2hlY2tpbmcgcmFjZQogICBjb25kaXRpb24gdW5kZXIgTGludXggYW5kIHBsYXRmb3JtICNpZmRlZnMKCjIwMDctMDktMTkgMjE6MDkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBCVUc6IENvdmVyaXR5ICMxODM6IGZpeCBtZW1vcnkgbGVhayBpZgogICBJUF9QS1RJTkZPIGZhaWxzCgoyMDA3LTA5LTE5IDE5OjU3ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgRml4IG1pc251bWJlcmluZ3Mgb2Ygc3RlcHMuCiAgIEl0IGlzICpzbyogZGlmZmljdWx0IHRvIGZpbmQgcHJvcGVybHkgbnVtZXJhdGUgc3RhZmYgdGhlc2UKICAgZGF5cy4uLi4KCjIwMDctMDktMTYgMDk6NTEgIG1hZ2ZyCgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIFJlbW92ZSBiYXNoaXNtcy4gVGhpcyBpcyBuZXRic2QgcGF0Y2gtZXQgZnJvbSBidWcgMTc0NTQwNC4KCjIwMDctMDktMTYgMDk6NDUgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmM6CgogICBVc2UgY29uc3QgY2hhciogZm9yIHRlbXBvcmFyeSBjb25zdGFudCBzdHJpbmcgdmFyaWFibGUuIFRoaXMgaXMKICAgbmV0YnNkIHBhdGNoLWVhIGZyb20gYnVnIDE3NDU0MDQuCgoyMDA3LTA5LTE2IDA5OjQwICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgdGhlIG5hdHVyYWwgdHlwZSBvZiBpbl9hZGRyX3QncyBmb3IgY29tcGFyaXNpb25zLiBUaGlzIGlzCiAgIG5ldGJzZCBwYXRjaC1lYSBmcm9tIGJ1ZyAxNzQ1NDA0LgoKMjAwNy0wOS0xNiAwNzowNiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQ0hBTkdFUzogQlVHOiAxNzkzNTQ1OiBUYWtlIHRoZSBuYW1lIGZyb20gdGhlIHNvY2thZGRyX3VuIGluCiAgIG9yZGVyIHRvIGF2b2lkIHRyYW5zcG9ydCBzcGVjaWZpZXJzIGFuZCBvdGhlciBkZWNvcmF0aW9ucy4KCjIwMDctMDktMTQgMTM6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3cnVuLmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gaGVhZGVyIGZvciBzd3J1biByZXdyaXRlCgoyMDA3LTA5LTE0IDEzOjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGFkZCB1dGlsaXR5IG1hY3JvCiAgIC0gYWN0aXZhdGUgbmV3IGhvc3QgcmVzb3VyY2UgcmV3cml0ZXMKCjIwMDctMDktMTQgMTM6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0Lmg6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gY29uZmlnX3JlcXVpcmUgZm9yIG5ldyByZXdyaXRlcywgaWYgZW5hYmxlZAoKMjAwNy0wOS0xNCAxMzoxMSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsICAKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmM6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gYWRkL2ZpeCBkaXNrL3BhcnRpdGlvbiB0YWJsZXMgb24gZGFyd2luCgoyMDA3LTA5LTE0IDEzOjA5ICByc3RvcnkKCiAgICogIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dpbnN0X2Rhcndpbi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dJbnN0YWxsZWRUYWJsZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3N3aW5zdC5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGFkZCBoclNXSW5zdGFsbGVkVGFibGUgZm9yIGRhcndpbgoKMjAwNy0wOS0xNCAwODo0NCAgZHRzMTIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIFByb3RlY3QgYWdhaW5zdCB1bmV4cGVjdGVkIGNvbW1hbmQgYXJndW1lbnRzLgoKMjAwNy0wOS0xNCAwODowMCAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIERvY3VtZW50IHVzZSBvZiAic3ZuIGV4cG9ydCIgcmF0aGVyIHRoYW4gInN2biBjaGVja291dCIuCiAgIENvdmVyIGdlbmVyYXRpb24gb2YgdGhlIHppcCBhcmNoaXZlIGFzIHdlbGwgYXMgdGhlIHRhcmJhbGwuCgoyMDA3LTA5LTEzIDIxOjI1ICB0YW5kZXJzCgogICAqIFJFQURNRToKCiAgIGRyb3Agb2Jzb2xldGUgbWlycm9ycwoKMjAwNy0wOS0xMyAxNzoyOSAgcnN0b3J5CgogICAqICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2RhdGFfYWNjZXNzL3N3cnVuLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvZGF0YV9hY2Nlc3Mvc3dydW4uaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9kYXRhX2FjY2Vzcy9zd3J1bl9kYXJ3aW4uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9oclNXUnVuUGVyZlRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJTV1J1blBlcmZUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyU1dSdW5UYWJsZS5oOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGhvc3QgcmVzb3VyY2VzIFNXUnVuIGFuZCBTV1J1blBlcmYgVGFibGUgZm9yIGRhcndpbjkKCjIwMDctMDktMTMgMTc6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBpbXByb3ZlIGVycm9yIGhhbmRsaW5nIGFuZCBjbGVhbnVwIGluIHJlZ2lzdHJhdGlvbiBmdW5jdGlvbnMKCjIwMDctMDktMTMgMTc6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQXBwbGUgcGF0Y2hlcwogICAtIGZvciBkYXJ3aW45LCByZXhlYyBhZnRlciBmb3JrIHRvIGF2b2lkIHByb2JsZW1zIHdpdGggc29tZSBtYWNoCiAgIGNhbGxzCgoyMDA3LTA5LTEyIDE4OjUxICByc3RvcnkKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kaXJfdXRpbHMuaCwgc25tcGxpYi9NYWtlZmlsZS5pbiwgICAKICAgICAgc25tcGxpYi9kaXJfdXRpbHMuYzoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBuZXcgdXRpbGl0eSBmdW5jdGlvbiB0byByZWFkIGEgZGlyZWN0b3J5IGhpZXJhcmN5IGludG8gYQogICBjb250YWluZXIKCjIwMDctMDktMTIgMTc6NTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBBcHBsZSBwYXRjaGVzCiAgIC0gbmV3IHN0cmluZyBjb21wYXJlIGNhbGxiYWNrCgoyMDA3LTA5LTEyIDE3OjUzICByc3RvcnkKCiAgICogIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIEFwcGxlIHBhdGNoZXMKICAgLSBuZXcgbmV0c25tcF9jYWNoZV9mcmVlIGZ1bmN0aW9uCgoyMDA3LTA5LTEyIDE3OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIGluIGRlYnVnIG1zZwoKMjAwNy0wOS0xMiAxNzo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mOgoKICAgUGF0Y2hlcyBmcm9tIEFwcGxlCiAgIC0gYWRkIG9wdGlvbmFsIGNhY2hlCiAgIC0gY2hlY2svaGFuZGxlIGVycm9ycyBmb3IgYWxsIGZ1bmN0aW9ucyBpbiBpbml0IGZ1bmMKICAgLSB0eXBlZGVmIGdlbmVyYXRlZCBzdHJ1Y3QKICAgLSBza2lwIHByb2Nlc3NlZCByZXF1ZXN0cwogICAtIGNoZWNrIGZvciBudWxsIHdoZW4gZXh0cmFjdGluZyByb3cKCjIwMDctMDktMTIgMTc6MzUgIHJzdG9yeQoKICAgKiBDT1BZSU5HOgoKICAgYWRkIG5ldyBjb3B5cmlnaHQvY29udHJpYnV0b3IKCjIwMDctMDktMDUgMjA6MTIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIENvbWJpbmUgc3lzdGVtX3BhcnNlX2NvbmZpZ19zeXN7bG9jLGNvbixuYW1lfSBpbnRvIG9uZSBmdW5jdGlvbgogICBzaW5jZSB0aGV5IGFsbCBkbyB0aGUgc2FtZSB0aGluZwoKMjAwNy0wOC0yNSAxNDoyNCAgbWFnZnIKCiAgICogIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgTWFrZSBtb3N0IG9mIG5vdGlmaWNhdGlvbl9sb2cgc3RhdGljLiBNaW5pbWl6ZSB0aGUgaGVhZGVyIGZpbGUuCgoyMDA3LTA4LTIyIDIxOjU2ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBORVdTOiBhZ2VudDogc3VwcHJlc3MgYW5ub3lpbmcgInJlZ2lzdHJhdGlvbiAhPSBkdXBsaWNhdGUiCiAgIHdhcm5pbmcgZm9yIHJvb3Qgb2lkcwogICAob3RoZXJ3aXNlLCB5b3UnbGwgZ2V0IHRoaXMgbWVzc2FnZSBvbiBhbG1vc3QgZXZlcnkgc3RhcnR1cCkKCjIwMDctMDgtMjAgMDg6MDYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgTkVXUzogc25tcGxpYjogZml4IHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gc3ByaW50ZiBmb3IKICAgVURQL0lQdjYKCjIwMDctMDgtMTcgMDk6MTAgIGR0czEyCgogICAqIEZBUToKCiAgIFN1YnZlcnNpb24sIG5vdCBDVlMuCgoyMDA3LTA4LTE3IDA4OjU5ICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IGhhbmRsaW5nIG9mIHVua25vd24gY29tbXVuaXRpZXMKCjIwMDctMDgtMTYgMTU6MzYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgRG9uJ3QganVzdCByZXBvcnQgdGhlIHByb2JsZW0gLSBpdCBtaWdodCBiZSBzZW5zaWJsZSB0byBhdm9pZAogICBjcmFzaGluZyB0aGUgYWdlbnQgYXMgd2VsbCEKCjIwMDctMDgtMTYgMTU6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzQ0MTU3OiBSZXBvcnQgZHVwbGljYXRlICJleHRlbmQvZXhlYyIKICAgaWRlbnRpZmllcnMuCgoyMDA3LTA4LTE2IDE1OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgYXBwcy9zbm1wdHJhcGRfZHMuaDoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogUEFUQ0g6IDE3NDY5OTI6IEltcHJvdmUgc25tcHRyYXBkCiAgIGFjY2Vzcy1jb250cm9sIGVycm9yIG1lc3NhZ2VzLgoKMjAwNy0wOC0xNiAxNDoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUyOTM0OiBGaXggb2ZmLWJ5LW9uZSBxc29ydCBlcnJvciBpbgogICB0YWJsZSB1dGlsaXRpZXMuCgoyMDA3LTA4LTE2IDEzOjMxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTM0Mzc6IEZpeCBlcnJvciBpbmRleCBvbiBmYWlsaW5nIFNFVAogICByZXF1ZXN0cwoKMjAwNy0wOC0xNiAxMzoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzUzNDQ5OiBGaXggQWdlbnRYIGVycm9yIHByb3BhZ2F0aW9uCgoyMDA3LTA4LTE2IDEyOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTc1MzQ2MzogRml4IEFnZW50WCBzdWJhZ2VudCBwaW5nIGFsYXJtCiAgIGhhbmRsaW5nCgoyMDA3LTA4LTE2IDEyOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3NTgyMDg6IEZpeCBtZW1vcnkgbGVhawoKMjAwNy0wOC0xNiAxMjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzc0NjEyOiBNb3JlIHJlc2lsaWVudCBwcm9jZXNzIHN0YXR1cwogICBoYW5kbGluZwoKMjAwNy0wOC0xNiAxMTo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTc3NTEyNDogRml4IGNsaWVudGFkZHIgZnVuY3Rpb25hbGl0eQoKMjAwNy0wOC0xNiAwOTozOCAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE3NjgyODU6IENvdW50IE1JQiBmaWxlcyBjb3JyZWN0bHkgaW4KICAgYWRkX21pYmRpcigpCgoyMDA3LTA4LTE2IDA5OjM1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTc2NzcyNTogQ2xvc2UgYWxsIG5vbiBzdGFuZGFyZCBmaWxlCiAgIGhhbmRsZXMKCjIwMDctMDgtMTYgMDk6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cFZhbHVlLmM6CgogICBEZWNsYXJlIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUgY29ycmVjdGx5LCBhbmQgb21pdCB1bnVzZWQKICAgdmFyaWFibGVzLgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTA4LTE2IDA4OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBSZWFkIGluIGFnZW50IGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgKmJlZm9yZSogdGhlIGhlYWRlcgogICBmaWxlcyB0aGF0IG1pZ2h0IHJlbHkgb24gdGhlbS4KCjIwMDctMDgtMDUgMTY6MTYgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIENoYW5nZSB3aW4zMiBidWlsZCByZWFkbWUgZmlsZXMgdG8gQ1JMRi4KCjIwMDctMDgtMDUgMTQ6MTYgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBXaW4zMjogQ2hhbmdlIGJ1aWxkIGRvY3MgdG8gdXNlIGR5bmFtaWMgKERMTCkgaW5zdGVhZCBvZiBzdGF0aWMuCgoyMDA3LTA4LTAyIDEzOjQ2ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBJdCBtaWdodCBiZSBzbGlnaHRseSBsZXNzIGNvbmZ1c2luZyBpZiB0aGUgbmV0U25tcEV4YW1wbGVTdHJpbmcKICAgTUlCIG9iamVjdCBkaWQgYWN0dWFsbHkgdGFrZSBzdHJpbmcgdmFsdWVzLiBQaWNreSwgSSBrbm93Li4uLgoKMjAwNy0wNy0yOCAxMzowMiAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICBmaXggdGFnIGV4dHJhY3Rpb247IGNoZWNrIGZvciBlbXB0eSB0YWcgZWFybGllcgoKMjAwNy0wNy0yNSAyMjo0MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE3NjA2MzM6IGZpeCB0eXBvIGluIGRlYnVnIG1lc3NhZ2UKCjIwMDctMDctMjEgMjE6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogZml4IGZvcndhcmRpbmcgZW5jb2RpbmcKCjIwMDctMDctMjAgMDg6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFR3ZWFrIHdhcm5pbmcgbWVzc2FnZSBmb3IgKG9sZC1zdHlsZSwgaW52YWxpZCBmb3JtYXQpICJleGVjIE9JRCIKICAgZGlyZWN0aXZlcy4KCjIwMDctMDctMTYgMjM6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBBcHBseSAoY29ycmVjdCkgcGF0Y2ggZnJvbSBNYXJjdXMgUnVlY2tlcnQgdG8gcmVtb3ZlIGFzc2VydHMKICAgdXNpbmcgc29ydC1vLWlsbGVnYWwgQyBzdHJpbmcgY29tcGFyZXMKCjIwMDctMDctMTYgMjM6NTkgIGhhcmRha2VyCgogICAqICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsICAgCiAgICAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICBSZW1vdmUgcHJldmlvdXMgcGF0Y2ggd2hpY2ggd2FzIHRoZSB3cm9uZyB2ZXJzaW9uCgoyMDA3LTA3LTE2IDIzOjU3ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCAgIAogICAgICBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBNYXJjdXMgUnVlY2tlcnQgdG8gcmVtb3ZlIGFzc2VydHMgdXNpbmcKICAgc29ydC1vLWlsbGVnYWwgQyBzdHJpbmcgY29tcGFyZXMKCjIwMDctMDctMTMgMTk6MjcgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBnZW5lcmF0ZSB6aXAgZmlsZXMKCjIwMDctMDctMTIgMjE6NTEgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIGZpeCBzdWJhZ2VudCBleGFtcGxlIChkb2N1bWVudGF0aW9uKQoKMjAwNy0wNy0xMiAyMToyNyAgdGFuZGVycwoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgIHNubXBfc2Vzc19yZWFkIHJldHVybnMgaW50LCBub3Qgdm9pZAoKMjAwNy0wNy0wNiAyMzozOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMsIE1ha2VmaWxlLnRvcDoKCiAgIENIQU5HRVM6IGJ1aWxkOiB1c2UgbGlidG9vbCBjbGVhbiBmb3IgcmVtb3ZpbmcgZmlsZXMgdG8gZW5zdXJlIHdlCiAgIGRlbGV0ZSBhbGwgbGlidG9vbCB0ZW1wb3JhcnkgZmlsZXMuCgoyMDA3LTA3LTA2IDIzOjM0ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgdXNlIGEgcmVjdXJzaXZlIHJldmVydCBpbnN0ZWFkIG9mIHJtL3VwZGF0ZTsgcmVtb3ZlIGRvdWJsZSAvIGZyb20KICAgZWRpdGluZyBjYWxscwoKMjAwNy0wNy0wNiAyMToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHN0b3Agc2VhcmNoaW5nIHBhdGhzIHdoZW4gZG9uZQoKMjAwNy0wNy0wNiAyMToxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGRvIG5vdCBmcmVlIGludGVyZmFjZSBlbnRyeSBqdXN0IGJlY2F1c2Ugd2UgY2FuIG5vdCBnZXQgc3RhdHMgZm9yCiAgIGl0CgoyMDA3LTA3LTA2IDE1OjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUcgMTc0NTExMzogSGFuZGxlIHNpbmdsZS1saW5lIChhbmQgemVyby1saW5lKQogICBvdXRwdXQgaW4gVUNEIGNvbXBhdGFiaWxpdHkgbW9kZS4KCjIwMDctMDctMDYgMDk6MDggIGR0czEyCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2NsaWVudC5jLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSCAxNzI4MjQ3OiBmcm9tIE1pdHN1cnUgQ2hpbmVuOiBjbGVhbnMgdXAKICAgdGhlIGludDY0IHR5cGUgY2hlY2tpbmcgYW5kIHVzYWdlIGZvciBidWlsZGluZyBwYWNrZXRzIGVzcGVjaWFsbHkKICAgdW5kZXIgTVNWQy4KCjIwMDctMDctMDUgMTQ6NDUgIHJzdG9yeQoKICAgKiAuLCBSRUFETUUub3NYOgoKICAgcjIwMDQ0QGRoY3AyMTE6IHJzdG9yeSB8IDIwMDctMDctMDUgMTA6NDQ6MDEgLTA0MDAKICAgcmVtb3ZlIGRpc2FibGUtc3RhdGljIGZyb20gcmVjb21tZW5kZWQgb3B0aW9ucwoKMjAwNy0wNy0wNSAxMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIHNraXAgc3RhdHMgcGFyc2luZyBvbiBpbnRlcmZhY2VzIHdpdGggbm8gc3RhdGlzdGljcwoKMjAwNy0wNy0wNSAxMTowMSAgcnN0b3J5CgogICAqIGRpc3QvY2hlY2stYXBpLWNoYW5nZToKCiAgIGNoZWNrIGZvciBkaXIgZXhpc3RlbmNlCgoyMDA3LTA3LTA0IDIzOjI2ICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogcGVybDogaW5zdGFsbCBlbWJlZGRlZCBwZXJsIGluaXQgZmlsZXMgZm9yCiAgIHNubXBkL3NubXB0cmFwZCB3aXRoIG1vZGUgNjQ0IGluc3RlYWQgb2YgNzU1CgoyMDA3LTA3LTA0IDIxOjQyICB0YW5kZXJzCgogICAqIFJFQURNRS5vc1g6CgogICBQZXJsIHByb2JsZW1zIChiZWxpZXZlZCB0byBiZSkgZml4ZWQKCjIwMDctMDctMDMgMTI6NTYgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICByZW1vdmUgZXhlY3V0YWJsZSBmbGFnIGZyb20gU1ZOIHByb3BlcnRpZXMKCjIwMDctMDctMDIgMDY6NTMgIG1hZ2ZyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHZhY20uYzoKCiAgIFJlbW92ZSB1bnVzZWQgb2lkIGRlY2xhcmF0aW9ucwoKMjAwNy0wNy0wMiAwNjowMiAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmM6CgogICBBZGQgbWlzc2luZyByZXR1cm4gdmFsdWUgdG8gX210ZUV2ZW50X2ZpcmVfbm90aWZ5LgoKMjAwNy0wNy0wMiAwNTozMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jOgoKICAgUmVtb3ZlIHRoZSBkZWNsYXJhdGlvbiBvZiBhbiB1bmRlZmluZWQgc3RhdGljIGZ1bmN0aW9uLgoKMjAwNy0wNy0wMSAyMDozMiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1uaWdodGx5LCBkaXN0L25zYi1wYWNrYWdlOgoKICAgbWFrZSBnZXRvcHRzIHdvcmsgb24gVHJ1NjQgYnkgcmVzcGF3bmluZyBpbiBQb3NpeCBtb2RlCgoyMDA3LTA3LTAxIDE5OjU2ICB0YW5kZXJzCgogICAqICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiAtLWRpc2FibGUtYXMtbmVlZGVkIG5vdyBhbGxvd3MgdG8gcmV2ZXJ0IHRvIHRoZQogICBmb3JtZXIgZGVmYXVsdCBiZWhhdmlvdXIgb2YgbGlua2luZyBsaWJwZXJsIHRvIGFwcGxpY2F0aW9ucwogICByYXRoZXIgdGhhbiBOZXQtU05NUCBMaWJyYXJpZXMgKGluIGNhc2Ugb2YgYW55IHByb2JsZW1zKQoKMjAwNy0wNi0zMCAwNjoxNyAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGFjdHVhbGx5IGNhbGwgcmVtb3ZlZmlsZXMKCjIwMDctMDYtMjggMjM6NTAgIG1hZ2ZyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBORVdTOiBzbm1wbGliOiBBZGRlZCBHQ0MgZm9ybWF0IGNoZWNraW5nIGF0dHJpYnV0ZXMgdG8gdGhlIGRlYnVnCiAgIGZ1bmN0aW9ucy4KCjIwMDctMDYtMjggMjM6MzcgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgUmVtb3ZlIGNhc3RzIG9mIHVudXNlZCB2YWx1ZXMKCjIwMDctMDYtMjggMjM6MzYgIG1hZ2ZyCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcwoKMjAwNy0wNi0yOCAyMjowOSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICByZW5hbWUgbGFzdCBvY2N1cmVuY2Ugb2YgREVGQVVMVF9NSUJbRElSXVMgdG8KICAgTkVUU05NUF9ERUZBVUxUX01JQltESVJdUwoKMjAwNy0wNi0yOCAwODoxNSAgbWFnZnIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIERvIG5vdCB0cmFuc2Zvcm0gdGhlIGlnbm9yZWQgcmVzdWx0IG9mIHJlYWxsb2NfZm9ybWF0X3RyYXAKCjIwMDctMDYtMjYgMjI6MTIgIHRhbmRlcnMKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiB3b3JrIGFyb3VuZCBsaWJuZXRzbm1wYWdlbnQvbGlibmV0c25tcGhlbHBlcnMKICAgZGVwZW5kZW5jeSBpc3N1ZXMgd2hlbiBsaW5raW5nIHNubXB0cmFwZAoKMjAwNy0wNi0yNiAyMTo0NSAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiB1c2UgTERGTEFHUyB3aGVuIGJ1aWxkaW5nIGFnZW50LCBoZWxwZXJzIGFuZCBtaWIKICAgbGliIHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBsaWJuZXRubXAKCjIwMDctMDYtMjYgMjE6MjggIHRhbmRlcnMKCiAgICogSU5TVEFMTDoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDctMDYtMjYgMTU6MTAgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZG9uJ3QgaW5pdGlhbGl6ZSB2YXIgaW4gZXh0ZXJuIGRlY2w7IGluc3RlYWQsIGluaXRpYWxpemUgYWN0dWFsCiAgIHZhcgoKMjAwNy0wNi0yNSAyMToyOSAgdGFuZGVycwoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgbHRtYWluLnNoOgoKICAgTkVXUzogYnVpbGQ6IHVwZGF0ZSB0byBsaWJ0b29sIDEuNS4yNCAoZnJvbSAxLjUuMjIpCgoyMDA3LTA2LTI0IDEyOjU3ICB0YW5kZXJzCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEhBVkVfU1NJWkVfVCBjbGVhbnVwCgoyMDA3LTA2LTIzIDIyOjU2ICB0YW5kZXJzCgogICAqIFJFQURNRS5ocHV4MTE6CgogICBkb24ndCBzdWdnZXN0IC0td2l0aC1saWJzPS1sbm0KCjIwMDctMDYtMjIgMTU6MDUgIGR0czEyCgogICAqICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCAgIAogICAgICB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsICAgCiAgICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLCB3aW4zMi9saWJzZGxsLmRzdywgICAKICAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCAgIAogICAgICB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsICAgCiAgICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgICAKICAgICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCwgICAKICAgICAgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCAgIAogICAgICB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsICAgCiAgICAgIHdpbjMyL3NubXB1c20vc25tcHVzbS5kc3AsIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgICAKICAgICAgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwLCB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIEVuZm9yY2UgRE9TLXN0eWxlIGxpbmUgZW5kaW5ncywgdG8ga2VlcCBWaXN1YWwgU3R1ZGlvIGhhcHB5LgoKMjAwNy0wNi0yMSAxNDowMSAgcnN0b3J5CgogICAqICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oOgoKICAgZGVmYXVsdCB0byB1c2luZyBpZlRhYmxlIHJld3JpdGVzCgoyMDA3LTA2LTIwIDIxOjM0ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX29wZW5ic2QuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIGZpeCB0eXBvCgoyMDA3LTA2LTE5IDIyOjIzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IFBlcmwtcmVsYXRlZCBhdXRvY29uZiBtZXNzYWdlcwoKMjAwNy0wNi0xOSAxNTowOCAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBDSEFOR0VTOiBidWlsZDogYWRkICJCdWlsZFJlcXVpcmVzOiBwZXJsLUV4dFV0aWxzLUVtYmVkIiB0byB0aGUKICAgc3BlYyBmaWxlLCBlLmcuIGZvciBGZWRvcmEgNwoKMjAwNy0wNi0xOCAyMjoyOCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggYnJva2VuIGNvbW1lbnQuCgoyMDA3LTA2LTE4IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgcmV2ZXJ0IGRvdWJsZSBsaW5raW5nIG9mIGxpYm5ldHNtbnAgcGFydCBvZiBwYXRjaCB0aGF0IHdhcwogICBzdXBwb3NlZCB0byBiZSBwdWxsZWQgYm9mZXIgYXBwbHlpbmcgaW4gcjE2NTM4ICh0aGFua3MgdGFuZGVycwogICBmb3IgY2F0Y2hpbmcgaXQpCgoyMDA3LTA2LTE4IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHBhdGNoIGZyb20gYXBwbGUgdG8gc2ltcGxpZnkgbWFrZWZpbGUgdGFyZ2V0CiAgIHJlZmVyZW5jZXMgaW4gc29tZSBydWxlcy4KCjIwMDctMDYtMTggMjE6MTcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBnZXQuMS5kZWY6CgogICBDSEFOR0VTOiBwYXRjaCBmcm9tIGFwcGxlIHRvIGZpeCBtaW5vciBkb2N1bWVudGF0aW9uIGJ1Z3MuCgoyMDA3LTA2LTE4IDIxOjEzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICAKCjIwMDctMDYtMTggMjE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmM6CgogICBDSEFOR0VTOiBwYXRjaCBmcm9tIGFwcGxlIHRvIGltcHJvdmUgbWVtb3J5IHJlcG9ydGluZwoKMjAwNy0wNi0xOCAyMTowOSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogcGF0Y2ggZnJvbSBhcHBsZSB0byBmaXggY3Jvc3MtY29tcGlsZSBidWlsZHMgaW4gYXBwbGVzCiAgIGJ1aWxkIGVudmlyb25tZW50LgoKMjAwNy0wNi0xOCAyMDo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIENIQU5HRVM6IHBhdGNoOiAxNzM3MDg1OiBmcm9tIGpzYWZyYW5lazogZml4IHRoZSAtTSBzd2l0Y2ggZm9yCiAgIG1pYiBwYXJzaW5nIGJ5IGxvYWRpbmcgZGVmYXVsdHMgZmlyc3QgYmVmb3JlIHBlcmZvcm1pbmcgdGhlIHNldAogICBzbyBpdCBkb2VzIG5vdCBnZXQgb3ZlcndyaXR0ZW4gYnkgdGhlIGRlZmF1bHRzIGxhdGVyLgoKMjAwNy0wNi0xOCAyMDo1MCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBORVdTOiBwZXJsOiBwYXRjaDogMTcyNTA0OTogZml4IGJ1bGt3YWxrIGluIGNhc2VzIG9mIG5vbi1yZXBlYXRlcgogICB1c2FnZS4KCjIwMDctMDYtMTggMTQ6MTAgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBwZXJsOiBmaXggcHJlcmVxdWlzaXRlcyBmb3IgTmV0U05NUDo6VHJhcFJlY2VpdmVyCgoyMDA3LTA2LTE4IDEzOjM5ICB0YW5kZXJzCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC9TdXBwb3J0LnBtOgoKICAgQ0hBTkdFUzogcGVybDogZml4IHN5bnRheCBlcnJvciBpbiBOZXRTTk1QOjphZ2VudDo6U3VwcG9ydAoKMjAwNy0wNi0xNiAyMzowMSAgdGFuZGVycwoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW46CgogICBORVdTOiBwZXJsOiBCVUc6IDE2MTk4Mjc6IGxpbmsgbGlibmV0c25tcGFnZW50L2xpYm5ldHNubXB0cmFwZAogICAocmF0aGVyIHRoYW4gc25tcGQvc25tcHRyYXBkKSBhZ2FpbnN0IGxpYnBlcmwuCgoyMDA3LTA2LTE0IDE1OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCB0eXBvIGluIHVzZXIgb3V0cHV0LCBhcyBub3RlZCBvbiBjb2RlcnMKCjIwMDctMDYtMTQgMTU6MzYgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3Nob3c6CgogICB1c2UgJ3N2biBpbmZvJyB0byBxdWVyeSBmb3IgdXJsCgoyMDA3LTA2LTE0IDA0OjM3ICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgIEFkZCBtaXNzaW5nIGFyZ3VtZW50IHR5cGUgaW4gb3JkZXIgdG8gc2lsZW5jZSBhIGdjYyB3YXJuaW5nCgoyMDA3LTA2LTEzIDA2OjM3ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvIG5vdCB0cnkgdG8gYmUgY2xldmVyIGluIHRoZSBoYW5kaW5nIG9mIC1sa3ZtIGluIExBR0VOVExJQlMuCiAgIEluY2x1ZGUgaXQgaWYgYW55IHNvdWdodCBmdW5jdGlvbiBpcyBpbiBpdC4KCjIwMDctMDYtMTEgMTA6MTEgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFpeDoKCiAgIGRvY3VtZW50IHhsYzwtPmNjX3IgY29tcGlsZXIgaXNzdWVzIHdpdGggUGVybCBvbiBBSVggKHNlZSBidWcKICAgIzE2MDAwOTkpCgoyMDA3LTA2LTEwIDIyOjI5ICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjQ3OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBBZGQgdHlwZQogICBjaGVjayBmb3IgaW50Pz9fdCBhbmQgdWludD8/X3QKCjIwMDctMDYtMTAgMjI6MjIgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyNDQ6IGZyb20gbWl0c3VydV9jaGluZW46IEFkZAogICBjb25maWd1cmUgY2hlY2sgZm9yIHNpbjZfc2NvcGVfaWQKCjIwMDctMDYtMTAgMjI6MTUgIHRhbmRlcnMKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNzI4MjQxOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBhZGQgY29uZmlndXJlIGNoZWNrCiAgIGZvciA8c3lzL3Vpby5oPiAobWFrZSBzdXJlIGlvdiBzdHJ1Y3R1cmUgaXMgZGVjbGFyZWQpCgoyMDA3LTA2LTEwIDA2OjMzICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIHN5c3RlbSBzcGVjaWZpYwogICBsaWJyYXJpZXMKCjIwMDctMDYtMTAgMDY6MjYgIG1hZ2ZyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVXNlIE5FVFNOTVBfU0VBUkNIX0xJQlMgdG8gc2ltcGxpZnkgc2VhcmNoaW5nIGZvciAtbHNlbnNvcnMKCjIwMDctMDYtMTAgMDY6MTggIG1hZ2ZyCgogICAqICBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxkZXZzdGF0CgoyMDA3LTA2LTEwIDA2OjEzICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxkbAoKMjAwNy0wNi0wOSAwODo1OCAgbWFnZnIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sa3ZtCgoyMDA3LTA2LTA4IDIwOjMyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluLCBkaXN0L21ha2VyZWxlYXNlOgoKICAgRml4IHJlZ3Jlc3Npb24gaW50cm9kdWNlZCBieSByMTY0Nzk6ICdtYWtlIHRlc3QgVEVTVE9QVFM9Ii1UCiAgIHRjcCInIG5vdwogICB3b3JrcyBhZ2Fpbi4gbWFrZXJlbGVhc2Ugbm93IHVzZXMgdGhlIHJpZ2h0IG9wdGlvbi4KCjIwMDctMDYtMDggMTA6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IEZFQVRVUkU6IDc0MTM3NTogRXh0ZW5kIC1GIGZsYWcgdG8gY292ZXIKICAgc3lzbG9nL2V4ZWN1dGUgZm9ybWF0IHN0cmluZ3MuCgoyMDA3LTA2LTA4IDEwOjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgSW1wcm92ZSBtZW1vcnkgaGFuZGxpbmcgb2Ygc3R5bGUtc3BlY2lmaWMgZm9ybWF0IHN0cmluZ3MuCgoyMDA3LTA2LTA4IDEwOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIERlZmF1bHQgdG8gcmVwb3J0aW5nIE5GUyBtb3VudHMgYXMgTmV0d29ya0Rpc2suCgoyMDA3LTA2LTA4IDA2OjAyICBtYWdmcgoKICAgKiAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSBORVRTTk1QX1NFQVJDSF9MSUJTIHRvIHNpbXBsaWZ5IHNlYXJjaGluZyBmb3IgLWxycG0gYW5kCiAgIHRoaW5ncyBpdCBkZXBlbmRzCiAgIG9uCgoyMDA3LTA2LTA4IDA1OjU5ICBtYWdmcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgQWRkIG1pc3NpbmcgXAoKMjAwNy0wNi0wOCAwNTozMSAgbWFnZnIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBVc2UgTkVUU05NUF9TRUFSQ0hfTElCUyB0byBzaW1wbGlmeSBzZWFyY2hpbmcgZm9yIC1sa3N0YXQKCjIwMDctMDYtMDggMDU6MjggIG1hZ2ZyCgogICAqIGFjaW5jbHVkZS5tNDoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBZGQgYSB2YXJpYXRpb24gb2YgQUNfU0VBUkNIX0xJQlMgd2hlcmUgdGhlCiAgIHJlc3VsdCB2YXJpYWJsZSBpcyBzZXR0YWJsZS4KCjIwMDctMDYtMDggMDU6MTYgIG1hZ2ZyCgogICAqICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZW1vdmUgdGhlIHVudXNlZCB1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVi4KICAgVGhlIFBlcmxfZXZhbF9wdiBmdW5jdGlvbnMgYXJlIGhhbmRsZWQgYnkgdGhlCiAgIEhBVkVfUEVSTF9FVkFMX1BWX1tVTF1DIGRlZmluZXMsCiAgIHRoaXMgb25lIGlzIG5ldmVyIHNldCBieSBvdXIgY29uZmlndXJlIHNjcmlwdC4KCjIwMDctMDYtMDcgMTY6MDIgIGR0czEyCgogICAqICAuY3ZzaWdub3JlLCBhZ2VudC8uY3ZzaWdub3JlLCBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL1Jtb24vLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL21pc2MvLmN2c2lnbm9yZSwgIAogICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3NtdXgvLmN2c2lnbm9yZSwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS8uY3ZzaWdub3JlLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvLmN2c2lnbm9yZSwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZSwKICAgICAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RhcmdldC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS8uY3ZzaWdub3JlLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlLCAgIAogICAgICBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIGRpc3QvLmN2c2lnbm9yZSwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC8uY3ZzaWdub3JlLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlLCBpbmNsdWRlL3VjZC1zbm1wLy5jdnNpZ25vcmUsIAogICAgICAgIGxvY2FsLy5jdnNpZ25vcmUsIG1hbi8uY3ZzaWdub3JlLCBtaWJzLy5jdnNpZ25vcmUsCiAgICAgIG92Ly5jdnNpZ25vcmUsICAgIHBlcmwvLmN2c2lnbm9yZSwgcGVybC9BU04vLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9BbnlEYXRhX1NOTVAvLmN2c2lnbm9yZSwgcGVybC9PSUQvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9TTk1QLy5jdnNpZ25vcmUsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyLy5jdnNpZ25vcmUsIHBlcmwvYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgcGVybC9hZ2VudC9TdXBwb3J0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS8uY3ZzaWdub3JlLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZSwgcGVybC9tYW5hZ2VyLy5jdnNpZ25vcmUsICAgCiAgICAgIHNubXBsaWIvLmN2c2lnbm9yZSwgdGVzdGluZy8uY3ZzaWdub3JlLCB3aW4zMi8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9iaW4vLmN2c2lnbm9yZSwgd2luMzIvZW5jb2RlX2tleWNoYW5nZS8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9saWIvLmN2c2lnbm9yZSwgd2luMzIvbGliYWdlbnQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGliaGVscGVycy8uY3ZzaWdub3JlLCB3aW4zMi9saWJuZXRzbm1wdHJhcGQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvbGlic25tcC8uY3ZzaWdub3JlLCB3aW4zMi9saWJzbm1wX2RsbC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9saWJ1Y2RtaWJzLy5jdnNpZ25vcmUsIHdpbjMyL25ldC1zbm1wLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSwgd2luMzIvbmV0c25tcG1pYnMvLmN2c2lnbm9yZSwgIAogICAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvLmN2c2lnbm9yZSwgd2luMzIvc25tcGJ1bGtnZXQvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcGJ1bGt3YWxrLy5jdnNpZ25vcmUsIHdpbjMyL3NubXBkLy5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXBkZWx0YS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wZGYvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcGRzZGsvLmN2c2lnbm9yZSwgd2luMzIvc25tcGdldC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wZ2V0bmV4dC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLCAgIAogICAgICB3aW4zMi9zbm1wc2V0Ly5jdnNpZ25vcmUsIHdpbjMyL3NubXBzdGF0dXMvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHRhYmxlLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0ZXN0Ly5jdnNpZ25vcmUsICAgCiAgICAgIHdpbjMyL3NubXB0cmFuc2xhdGUvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRyYXAvLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHRyYXBkLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB1c20vLmN2c2lnbm9yZSwgICAKICAgICAgd2luMzIvc25tcHZhY20vLmN2c2lnbm9yZSwgd2luMzIvc25tcHdhbGsvLmN2c2lnbm9yZToKCiAgIFJlbW92ZSByZWR1bmRhbnQgQ1ZTLWFkbWluIGZpbGVzLgoKMjAwNy0wNi0wNyAxMjo1NiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgSGFuZGxlIHVucmVnaXN0ZXJpbmcgdGhlIGZpcnN0IFNlY3VyaXR5IE1vZGVsIGluIHRoZSBsaXN0LgogICBSZXBvcnRlZCBieSBBbGVrc2FuZHIgTG9tYW5vdi4KCjIwMDctMDYtMDcgMDk6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIGhlYWRlciBmaWxlcyBmb3Igc3Rhc2hfY2FjaGUgYW5kIHN0YXNoX3RvX25leHQgaGVscGVycy4KCjIwMDctMDYtMDcgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBTZXBhcmF0ZSBvdXQgaGVhZGVyIGZpbGVzIHRoYXQgZG9uJ3QgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgQwogICBzb3VyY2UgZmlsZS4KCjIwMDctMDYtMDcgMDg6NTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBTb3J0IGxpc3RzIG9mIGhlbHBlcnMgKHNvdXJjZSBjb2RlLCBvYmplY3QgZmlsZXMgYW5kIGhlYWRlcnMpLgogICBUaGlzIHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBzcG90IGZpbGVzIHRoYXQgaGF2ZSBiZWVuIG9taXR0ZWQuCgoyMDA3LTA2LTA3IDA4OjQyICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBQcm90ZWN0IGFnYWluc3Qgc3lzdGVtcyB3aXRob3V0IFNfSVNESVIuCgoyMDA3LTA2LTA2IDIyOjM2ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFdlIGFyZW4ndCB1c2luZyBsaWJ0b29scyBkbG9wZW4gc3VwcG9ydCwgc28gdGhlcmUgaXMgbm8gbmVlZCB0bwogICBjb25maWd1cmUgZm9yIGl0CgoyMDA3LTA2LTA2IDEyOjM3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogQUlYOiB1c2UgIi1XbCwtYnJ0bCIgd2hlbiBjb21waWxpbmcgd2l0aCBnY2MKCjIwMDctMDYtMDYgMTA6MjYgIG1hZ2ZyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBSZW1vdmUgdGhlIHVudXNlZCB1bmRlZiBIQVZFX1BFUkxfRVZBTF9QVi4KICAgVGhlIFBlcmxfZXZhbF9wdiBmdW5jdGlvbnMgYXJlIGhhbmRsZWQgYnkgdGhlCiAgIEhBVkVfUEVSTF9FVkFMX1BWX1tVTF1DIGRlZmluZXMsCiAgIHRoaXMgb25lIGlzIG5ldmVyIHNldCBieSBvdXIgY29uZmlndXJlIHNjcmlwdC4KCjIwMDctMDYtMDYgMTA6MjAgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBFbnN1cmUgb3V0cHV0IGlzIHByb3Blcmx5IGRpcmVjdGVkIHRvIHN5c2xvZy4KICAgT3RoZXJ3aXNlLCBwcm9ibGVtcyBpbiB0aGUgY29uZmlnIGVudmlyb25tZW50IGNhbiB0cmlnZ2VyCiAgIGVycm9ycyBiZWluZyBkaXJlY3RlZCB0byBzdGRlcnIsIGFuZCBzdWJzZXF1ZW50IGxvZ2dpbmcKICAgb3V0cHV0IGdldHMgbG9zdC4KCjIwMDctMDYtMDYgMTA6MTMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1vcmUgaGVscGZ1bCBkZWJ1Z2dpbmcgb3V0cHV0LgoKMjAwNy0wNi0wNiAwNTo1MyAgbWFnZnIKCiAgICogIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsICAgCiAgICAgIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICBDSEFOR0VTOiBtaXNjOiBEb24ndCB1c2UgdGhlIGxlZ2FjeSBzeW1ib2wKICAgU05NUFRSQVBEX0RJU0FCTEVfQUdFTlRYCgoyMDA3LTA2LTA1IDE3OjQ5ICBtYWdmcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBleHBsaWNpdCBkZWZpbml0aW9ucyBvZiBpdGVtcyB0aGF0CiAgIGF1dG9oZWFkZXIgYWxzbyBkZWZpbmVzCgoyMDA3LTA2LTA1IDE1OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNzI5NjI5OiBGaXggbWVtb3J5IGxlYWsgaW4gZGlzbWFuCiAgIGFnZW50LgoKMjAwNy0wNi0wNSAxNDo1MiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogU3VwcG9ydCBwZXItdHJhcCBmb3JtYXQgc3BlY2lmaWNhdGlvbnMKCjIwMDctMDYtMDUgMDY6NTcgIG1hZ2ZyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE5FV1M6IG1pc2M6IEFkZCBjb25maWcgcmVyZWFkaW5nIHN1cHBvcnQgdG8gdGhlIHN1YmFnZW50CiAgIGdlbmVyYXRlZCBieSBuZXQtc25tcC1jb25maWcgLS1jb21waWxlLXN1YmFnZW50CgoyMDA3LTA2LTA0IDIyOjI5ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogU2ltcGxpZnkgdGhlIGRldGVjdGlvbiBvZiBsaWJyYXJpZXMgbmVlZGVkIGZvcgogICBnZXRob3N0YnluYW1lCgoyMDA3LTA2LTA0IDIyOjA2ICBtYWdmcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBORVdTOiBzbm1wbGliOiBDaGFuZ2Ugc25tcF9zZXNzX2FkZF9leCB0byBjb25zaXN0ZW50bHkgY2xvc2UgYW5kCiAgIGRlbGV0ZSB0aGUgdHJhbnNwb3J0IGFyZ3VtZW50IG9uIGZhaWx1cmUsIGVhcmxpZXIgdGhlIGxpdmVuZXNzIG9mCiAgIHRoZSB0cmFuc3BvcnQgYXJndW1lbnQgd2FzIHVuZGVjaWRlZC4KCjIwMDctMDYtMDQgMTQ6MzYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBkaXN0L21ha2VyZWxlYXNlLCB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgQ0hBTkdFUzogdGVzdDogc3VwcG9ydCBhIC1uIGZsYWcgdG8gUlVOVEVTVFMgdG8gcHJpbnQgdGhlIHRlc3QKICAgbnVtYmVyIGZvdW5kIGluIHRoZSB0ZXN0IGZpbGUgYXMgb3Bwb3NlZCB0byB0aGUgbnVtZXJpY2FsIGNvdW50CgoyMDA3LTA2LTA0IDEzOjA5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjM3OiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBNb3ZlCiAgIHZhcmlhYmxlIGRlY2xhcmF0aW9uIGF0IHRoZSB0b3Agb2YgbmV0c25tcF91ZHBfc2VuZHRvCgoyMDA3LTA2LTA0IDEyOjUyICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjMzOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtYWtlIHN1cmUKICAgdHlwZSBuZmRzX3QgaXMgZGVmaW5lZAoKMjAwNy0wNi0wNCAxMjoxMyAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3BpbmcvcGluZ0N0bFRhYmxlLmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjMwOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBhZGQKICAgY29uZmlndXJlIGNoZWNrIGZvciBnYWlfc3RyZXJyb3IoKQoKMjAwNy0wNi0wNCAxMDozNSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE3MjgyMjY6IGZyb20gbWl0c3VydV9jaGluZW46IG1ha2Ugc3VyZQogICBJRl9OQU1FU0laRSBpcyBkZWZpbmVkCgoyMDA3LTA2LTA0IDEwOjI4ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsIGNvbmZpZ3VyZSwgICAKICAgICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNzI4MjIzOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBhZGQKICAgY29uZmlndXJlIGNoZWNrIGZvciBuZXRsaW5rIHNvY2tldAoKMjAwNy0wNi0wNCAwOTo0NyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGFsc28gc2tpcCB0aGlzIHRlc3Qgb24gSVJJWDY0CgoyMDA3LTA2LTAyIDE2OjEzICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBGaXggY29tcGlsYXRpb24gb24gSVJJWAoKMjAwNy0wNi0wMiAwODoyNCAgbWFnZnIKCiAgICogIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHNubXBsaWIvc25tcF9hcGkuYywgICAKICAgICAgd2luMzIvY29uZmlnLmguYm9ybGFuZCwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGFwaTogRG8gbm90IHVzZSBnZXRzZXJ2YnluYW1lIHRvIGZpbmQgZGVmYXVsdCBwb3J0CiAgIG51bWJlcnMsIGp1c3QgaGFyZGNvZGUgdGhlbSBhbmQgbGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZW0gaWYKICAgbmVlZGVkLgoKMjAwNy0wNi0wMSAyMjo1NSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBMaW5rIGxpYmRsIGFnYWluc3QgbGlibmV0c25tcG1pYnMgaW5zdGVhZCBvZgogICBzbm1wZC4KICAgRml4ZXMgdGhlIGJ1aWxkIG9uIChzb21lKSBTb2xhcmlzIHN5c3RlbXMuCgoyMDA3LTA2LTAxIDIyOjM0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IE5FVFNOTVBfSUZORVRfTkVFRFNfS0VSTkVMIGNvbmZpZ3VyZSBjaGVjayBvbiBJUklYCiAgIChyZWdyZXNzaW9uIGZyb20gcjE2NDUxKQoKMjAwNy0wNi0wMSAxNDozMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE5FV1M6IHNubXB0cmFwZDogV2l0aGRyYXcgZGVwcmVjYXRlZCBvcHRpb25zLgogICAoVGhyZWUgYW5kIGEgaGFsZiB5ZWFycycgd2FybmluZyBzaG91bGQgYmUgZW5vdWdoIGZvciBhbnlvbmUhKQoKMjAwNy0wNS0zMSAyMzo1MSAgdGFuZGVycwoKICAgKiAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBidWlsZDogTGluayBsaWJrdm0gYW5kIGxpYndyYXAgdG8gbGlibmV0c25tcGFnZW50CiAgIGluc3RlYWQgb2Ygc25tcGQuCiAgIEZpeGVzIHRlc3QgIzQ0IChQZXJsIHN1YmFnZW50KSBvbiBzeXN0ZW1zIHVzaW5nIG9uZSBvZiB0aG9zZQogICBsaWJyYXJpZXMuCgoyMDA3LTA1LTMxIDIzOjQyICBtYWdmcgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmg6CgogICBDSEFOR0VTOiBzbm1wZDogTW92ZSBzeXNPUkxhc3RDaGFuZ2UgZnJvbSBtaWJJSS9zeXN0ZW1fbWliIHRvCiAgIG1pYklJL3N5c09SVGFibGUgaW4gb3JkZXIgdG8ga2VlcCB0aGUgZGF0YSBhbmQgdGhlIHVzZSB0b2dldGhlci4KCjIwMDctMDUtMzEgMTQ6MzkgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IGxvZ2dpbmcgb2YgYXV0aGVudGljYXRpb24gaW5mb3JtYXRpb24uCgoyMDA3LTA1LTMxIDEwOjEwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIFJlbW92ZSBib2d1cyBkZWJ1ZyBvdXRwdXQuCgoyMDA3LTA1LTMxIDA5OjQ4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBjb2RlLgoKMjAwNy0wNS0zMSAwOTo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogRkVBVFVSRTogMTE1OTk0NzogQWxsb3cgY29udHJvbCBvZiB0cmFwaGFuZGxlCiAgIGRhdGEgZm9ybWF0CgoyMDA3LTA1LTMwIDIyOjUzICB0YW5kZXJzCgogICAqICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcGVybC9BU04vTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvT0lEL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCAgIAogICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBDSEFOR0VTOiBBSVg6IGJ1aWxkIGZpeGVzIGZvciBlbWJlZGRlZCBQZXJsCgoyMDA3LTA1LTMwIDIyOjM0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgSFAtVVggMTEueCBhbmQgSVJJWCA2LjUgYnVpbGQgZml4IChyZWdyZXNzaW9uIGludHJvZHVjZWQgYnkKICAgcjE2NDUxKQoKMjAwNy0wNS0yOSAyMzowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBtYWtlIHVzZSBvZiBBQ19QUk9HX1NFRC9BQ19QUk9HX0dSRVAgYW5kIC8gdG8KICAgZnVydGhlciBtaW5pbWl6ZSBzZWQvZ3JlcCBwcm9ibGVtcwoKMjAwNy0wNS0yOSAyMjo0MiAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogVXNlIHRoZSBkZWZhdWx0X3RhcmdldCBhcmd1bWVudCBpZiBpdCBpcwogICBub24tTlVMTCwgbm90IGlmIGl0IGlzIE5VTEwuCgoyMDA3LTA1LTI5IDEwOjMwICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBtb3JlIG5ldC1zbm1wIHNwZWNpYWxzIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0cyB0byBlYXNlIG1haW50ZW5hbmNlLgogICBBbHNvIGNoYW5nZSByZWNlbnRseSBhZGRlZCBTVFJVQ1RfU09DS0FERFJfU1RPUkFHRV9IQVNfU1NfRkFNSUxZLgoKMjAwNy0wNS0yOSAxMDoyNyAgdGFuZGVycwoKICAgKiBSRUFETUUuYWdlbnQtbWliczoKCiAgIGFkZCByZWNlbnQgbWZkIHJld3JpdGVzCgoyMDA3LTA1LTI5IDEwOjIyICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFJlbW92ZSBtb3JlIG5ldC1zbm1wIHNwZWNpYWxzIGluIHRoZSBjb25maWd1cmUKICAgc2NyaXB0cyB0byBlYXNlIG1haW50ZW5hbmNlLgogICBBbHNvIGNoYW5nZSB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBmb3IgY29uc2lzdGVuY3kuCgoyMDA3LTA1LTI4IDIzOjMwICBtYWdmcgoKICAgKiAgUE9SVElORywgYWNjb25maWcuaCwgYWNpbmNsdWRlLm00LCAgIAogICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAKICAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1LmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLCAgIAogICAgICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsICAKICAgICAgIHNubXBsaWIvc3lzdGVtLmM6CgogICBDSEFOR0VTOiBidWlsZGluZzogUmVtb3ZlIG1vcmUgbmV0LXNubXAgc3BlY2lhbHMgaW4gdGhlIGNvbmZpZ3VyZQogICBzY3JpcHRzIHRvIGVhc2UgbWFpbnRlbmFuY2UuCgoyMDA3LTA1LTI4IDE2OjMxICBkdHMxMgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwgc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IGxpYnJhcnk6IEZFQVRVUkVTOiAxNDA3NDc2OiBSZW5hbWUgJ3N0cmljdENvbW1lbnRUZXJtJwogICB0byByZWZsZWN0IHRoZSBhY3R1YWwgYmVoYXZpb3VyLgoKMjAwNy0wNS0yOCAxNToyNSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogRkVBVFVSRVM6IDEwNDE4ODg6IENoZWNrIGRpcmVjdG9yeSBwYXRocyBmb3IKICAgY29uZmlnIGZpbGVzLgoKMjAwNy0wNS0yOCAxMzoxMyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogRkVBVFVSRVM6IDg1MTg4NzogUmVwb3J0IHJhbmdlIGluZm9ybWF0aW9uIGZvcgogICBpbnZhbGlkIFNFVCByZXF1ZXN0cy4KCjIwMDctMDUtMjggMTI6MDggIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3Nfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX3NvbGFyaXMyLmM6CgogICBORVdTOiBTb2xhcmlzOiBQQVRDSDogMTcxOTczMDogZnJvbSBhcGVyc3Nvbjogc3VwcG9ydCBmb3IKICAgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZCBpcEFkZHJlc3NUYWJsZQogICBQYXJ0IDIgKFNvbGFyaXMtc3BlY2lmaWMgbmV3IGZpbGVzKQoKMjAwNy0wNS0yOCAxMjowMiAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXIuaDoKCiAgIE5FV1M6IExpbnV4OiBQQVRDSDogMTcyNDYwMjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWZkLWJhc2VkCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlIGltcGxlbWVudGF0aW9uCgoyMDA3LTA1LTI4IDEyOjAwICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlci5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvZGVmYXVsdHJvdXRlcl9jb21tb24uYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2RlZmF1bHRyb3V0ZXJfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlLmMsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9kYXRhX2dldC5jLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfZGF0YV9nZXQuaCwKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2VudW1zLmgsCiAgICAgICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcERlZmF1bHRSb3V0ZXJUYWJsZS9pcERlZmF1bHRSb3V0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICAgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwRGVmYXVsdFJvdXRlclRhYmxlL2lwRGVmYXVsdFJvdXRlclRhYmxlX2ludGVyZmFjZS5oLAogICAgICAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBEZWZhdWx0Um91dGVyVGFibGUvaXBEZWZhdWx0Um91dGVyVGFibGVfb2lkcy5oOgoKICAgTkVXUzogTGludXg6IFBBVENIOiAxNzI0NjAyOiBmcm9tIG1pdHN1cnVfY2hpbmVuOiBtZmQtYmFzZWQKICAgaXBEZWZhdWx0Um91dGVyVGFibGUgaW1wbGVtZW50YXRpb24KCjIwMDctMDUtMjggMTE6NTkgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIE5FV1M6IExpbnV4OiBQQVRDSDogMTcyNDYwMjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogbWZkLWJhc2VkCiAgIGlwRGVmYXVsdFJvdXRlclRhYmxlIGltcGxlbWVudGF0aW9uCgoyMDA3LTA1LTI4IDEwOjA5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xLmRlZjoKCiAgIERvY3VtZW50IHRoZSAtQ0Ugb3B0aW9uLgoKMjAwNy0wNS0yNyAyMTo0MiAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9NYWtlZmlsZS5QTDoKCiAgIFNvbWUgbGFtZSBsaW5rZXJzIChlLmcuIG9uIEhQLVVYIDExLjIzL0lBNjQpIG5lZWQgcXVpdGUgYSBiaXQgb2YKICAgaGVscCB0byBzdWNjZXNzZnVsbHkgbGluayB0aGUgUGVybCBtb2R1bGVzLgoKMjAwNy0wNS0yNyAyMTozMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgQ0hBTkdFUzogc25tcHdhbGs6IFBBVENIOiAxNzIzNjIwOiBTcGVjaWZ5IGFuIGV4cGxpY2l0IGVuZC1wb2ludAogICBmb3IgdGhlIHdhbGsuCiAgIEFuIGFsdGVybmF0aXZlIChtb3JlIGZsZXhpYmxlKSBhcHByb2FjaCB0byB0aGUgcHJvcG9zZWQgcGF0Y2gsCiAgIGJ1dCBvbmUgdGhhdAogICBwcm92aWRlcyBlcXVpdmFsZW50IGZ1bmN0aW9uYWxpdHkuIEFsc28gYWRkcmVzc2VzIEZlYXR1cmUgUmVxdWVzdAogICAjNzIyNzg0LgoKMjAwNy0wNS0yNyAyMDo1MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEFkZCBkZXNjcmlwdGlvbnMgdG8gQUNfREVGSU5FOyBkcm9wIG9ic29sZXRlIEFDX0NIRUNLX0xJQihtLAogICBhc2luKS4KCjIwMDctMDUtMjcgMTk6MjggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBGRUFUVVJFUzogNDU0MDI4OiBEZXRlY3QgZW1wdHkgTUlCIGluZGV4IGZpbGVzLgoKMjAwNy0wNS0yNyAxOTowNiAgZHRzMTIKCiAgICogIGFnZW50L3NubXBkLmMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IEZFQVRVUkVTOiAxMDE5NDI5OiBTZXQgc3VwcGxlbWVudGFyeSBncm91cHMgdmlhCiAgIGluaXRncm91cHMoMykKCjIwMDctMDUtMjcgMDY6MjcgIHRhbmRlcnMKCiAgICogIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBORVdTOiBTb2xhcmlzOiBQQVRDSDogMTcxOTczMDogZnJvbSBhcGVyc3Nvbjogc3VwcG9ydCBmb3IKICAgaXBTeXN0ZW1TdGF0c1RhYmxlIGFuZCBpcEFkZHJlc3NUYWJsZQoKMjAwNy0wNS0yNyAwNjoyMCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4OgoKICAgZ3JhbW1hciBmaXgKCjIwMDctMDUtMjYgMTY6NDEgIGFsZXhfYgoKICAgKiAgUkVBRE1FLndpbjMyLCB3aW4zMi9Db25maWd1cmUsIHdpbjMyL2J1aWxkLnBsLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMiBJUHY2IGJ1aWxkIGZpeGVzLiBJUHY2IG5vdyByZXF1aXJlcyBQU0RLLgoKMjAwNy0wNS0yNiAxNToxNiAgYWxleF9iCgogICAqICBSRUFETUUud2luMzIsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIElQdjYgYnVpbGQgZml4ZXMgZm9yIGJ1aWxkLmJhdCwgQ29uZmlndXJlIGFuZCBSRUFETUUud2luMzIuCgoyMDA3LTA1LTI1IDIzOjAzICB0YW5kZXJzCgogICAqIFJFQURNRS5haXgsIFJFQURNRS5zb2xhcmlzLCBSRUFETUUudHJ1NjQ6CgogICBEb2N1bWVudGF0aW9uIHVwZGF0ZSB3LnIudC4gcmVjZW50IGNoYW5nZXMgKG1pYklJL2lwdjYgYW5kIEFJWAogICBzaGFyZWQgbGlicmFyeSBidWlsZGluZykuCgoyMDA3LTA1LTI1IDE4OjU0ICByc3RvcnkKCiAgICogZGlzdC9jdnNzaG93OgoKICAgdXBkYXRlIGZvciBuZXcgdXJsIGZvcm1hdCBpbiBzdm4gZW50cmllcwoKMjAwNy0wNS0yNSAxNToyOCAgdGFuZGVycwoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBTb21lIHN5c3RlbXMgKGUuZy4gSFAtVVggMTEuMjMvSUE2NCkgY3VycmVudGx5IHN0aWxsIG5lZWQKICAgIm5ldC1zbm1wLWNvbmZpZyAtLWxpYnMiIChpbnN0ZWFkIG9mIGp1c3QgLS1uZXRzbm1wLWxpYnMpIGZvcgogICBsaW5raW5nCiAgIGxpYm5ldHNubXAgdG8gYSBQZXJsIG1vZHVsZS4KCjIwMDctMDUtMjQgMjM6NTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBidWlsZDogb25seSBlbmFibGUgbWliSUkvaXB2NiB0aHJvdWdoIC0tZW5hYmxlLWlwdjYgb24KICAgc3lzdGVtcyBpdCBidWlsZHMgcHJvcGVybHkgb24gKExpbnV4IGFuZCAqQlNEKQoKMjAwNy0wNS0yNCAyMzoxNSAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBTb21lIHN5c3RlbXMgKGUuZy4gSFAtVVggMTEuMjMvSUE2NCkgY3VycmVudGx5IHN0aWxsIG5lZWQKICAgIm5ldC1zbm1wLWNvbmZpZyAtLWxpYnMiIChpbnN0ZWFkIG9mIGp1c3QgLS1uZXRzbm1wLWxpYnMpIGZvcgogICBsaW5raW5nIGxpYnNubXBhZ2VudCB0byBhIFBlcmwgbW9kdWxlLgoKMjAwNy0wNS0yNCAyMjowMSAgbWFnZnIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgQ29ycmVjdCBvYnZpb3VzbHkgYnJva2VuIHVzZSBvZiB0aGUgS0xPT0tVUCBtYWNybyB0byBiZQogICBjb25zaXN0ZW50IGF0IGxlYXN0CgoyMDA3LTA1LTI0IDIwOjUxICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q3Lmg6CgogICBDSEFOR0VTOiBGcmVlQlNEOiBhZGQgaW5pdGlhbCBzdXBwb3J0IGZvciB1cGNvbWluZyBGcmVlQlNEIDcKCjIwMDctMDUtMjQgMTQ6MDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBidW1wIGxpYmN1cnJlbnQgdG8gMjAgdG8gbGVhdmUgc3BhY2UgZm9yIDUuNC54IHJlbGVhc2VzCgoyMDA3LTA1LTI0IDEyOjQ4ICB0YW5kZXJzCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluOgoKICAgZml4IGxpYnJhcnkgbGlua2luZyBvbiBIUC1VWCAxMS4yMy9JQTY0CgoyMDA3LTA1LTIzIDE5OjA1ICB0YW5kZXJzCgogICAqICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXMsIGFnZW50L01ha2VmaWxlLmluLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBjb25maWd1cmUsICAgCiAgICAgIGNvbmZpZ3VyZS5pbiwgcGVybC9UcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsICAgCiAgICAgIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwsIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgICAKICAgICAgcGVybC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgTkVXUzogc25tcGxpYjogQlVHOiAxNjE5ODI3OiBsaW5rIG5ldC1zbm1wIGxpYnJhcmllcyBhbmQgYmluYXJpZXMKICAgYWdhaW5zdCB0aGUgbmV0LXNubXAgbGlicmFyaWVzIHRoZXkgcmVhbGx5IGRlcGVuZCBvbgogICAtIHJlZmxlY3QgbGlicmFyeSBpbnRlcmRlcGVuZGVuY2llcyBhdCBsaW5rIHRpbWUKICAgLSBmaXggZGVwZW5kZW5jaWVzIG9uIGxpYmNyeXB0bywgbGlicGtjczExIGFuZCBsaWJrc3RhdAogICAtIGluc3RhbGwgbGlicmFyaWVzIGluIGNvcnJlY3Qgb3JkZXIgKGltcG9ydGFudCBmb3IgbGlidG9vbAogICByZWxpbmtpbmcpCiAgIE5FV1M6IFBlcmw6IGxpbmsgUGVybCBtb2R1bGVzIGFnYWluc3QgdGhlIGV4YWN0IHNldCBvZiBsaWJyYXJpZXMKICAgdGhleSBkZXBlbmQgb24KCjIwMDctMDUtMjIgMTY6MjYgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICB1c2Ugc3ZuIGV4cG9ydCBpbnN0ZWFkIG9mIGNoZWNrb3V0CgoyMDA3LTA1LTIyIDAwOjAwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGlnbm9yZSB3aW5FeHRETEwgaW4gY29tbWVudCBjaGVjawoKMjAwNy0wNS0yMSAyMzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNpbmZvLmM6CgogICAvLyAtPiBDIGNvbW1lbnQKCjIwMDctMDUtMjEgMjM6MzMgIHRhbmRlcnMKCiAgICogIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjEwLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi45Lmg6CgogICBzeW5jIHdpdGggNS40LCB0aGVzZSBhcmUgb2Jzb2xldGUgbm93CgoyMDA3LTA1LTIxIDIzOjExICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBEaXNhYmxlIGlubGluaW5nIG9uIHNvbGFyaXMgYXMgdGhlcmUgYXJlIHNvbWUKICAgbGlua2luZyBlcnJvcnMgdGhhdCBzaG93IHVwIGlmIHRoZSBpbmxpbmUgc3VwcG9ydCBpcyBsZWZ0CiAgIGVuYWJsZWQuCgoyMDA3LTA1LTIxIDA2OjA1ICBtYWdmcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBBdCBsZWFzdCBTdW4gQyA1LjcgZmFpbHMgaWYgb25lIHRyaWVzIHRvCiAgIGFjY2VzcyBfX2Z1bmNfXyBpbiBhIGV4dGVybiBpbmxpbmUgZnVuY3Rpb24sIHNvIHRlc3QgZm9yIHRoYXQKICAgY2FzZS4KCjIwMDctMDUtMjAgMjE6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogc25tcGxpYjogQlVHOiAxNjE5ODI3OiBsaW5rIGFnYWluc3QgbmVlZGVkIGV4dGVybmFsCiAgIGxpYnJhcmllcyBhdCBsaWJyYXJ5IGxpbmsgdGltZSAod2hlcmUgdGhleSBhcmUgcmVmZXJlbmNlZCksCiAgIHJhdGhlciB0aGFuIGFwcGxpY2F0aW9uIGxpbmsgdGltZS4KICAgQWxyZWFkeSBjb3ZlcnMgbW9zdCBvZiBsaWJuZXRzbm1wbWlicycgZXh0ZXJuYWwgZGVwZW5kZW5jaWVzLgogICBGaXhlcyBidWlsZCBpc3N1ZXMgb24gc29tZSBwbGF0Zm9ybXMgKGUuZy4gYnVpbGRpbmcgd2l0aCBzaGFyZWQKICAgbGlicmFyaWVzIG9uIEFJWCkuIFRlc3RlZCBvbiBkaWZmZXJlbnQgdmVyc2lvbnMgb2YgTGludXgsCiAgIFNvbGFyaXMsIEhQLVVYLCBBSVggYW5kIElSSVguCgoyMDA3LTA1LTE5IDE1OjI3ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBidWlsZGluZzogQ2hlY2sgZm9yIHN1cHBvcnQgb2Ygc3RhdGljIGlubGluZSBmdW5jdGlvbnMKICAgaW5zdGVhZCBvZiBuZXN0ZWQgc3RhdGljIGlubGluZSBmdW5jdGlvbnMgd2hlbiBkZXRlcm1pbmluZyBpZgogICBzdGF0aWMgaW5saW5lIGZ1bmN0aW9ucyB3b3JrCgoyMDA3LTA1LTE5IDA4OjQwICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwgICAKICAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wbGliOiBNYWtlIHVzZSBvZiB0aGUgQzk5IHByZWRlZmluZWQgdmFyaWFibGUKICAgX19mdW5jX18gaW4gYWRkaXRpb24gdG8gdGhlIEdDQyBzeW1ib2wgX19GVU5DVElPTl9fIHRvIGdldCB0aGUKICAgbmFtZSBvZiB0aGUgY3VycmVudCBmdW5jdGlvbgoKMjAwNy0wNS0xOCAxODoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4Lmg6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MjEwOTY6IGZyb20gbWl0c3VydV9jaGluZW46IHJlbW92ZQogICB1bnVzZWQgdmFyaWFibGUgc3RhdHMgZnJvbSBrZXJuZWwgZXh0cmFjdGlvbiBmb3IgYmV0dGVyCiAgIHBvcnRhYmlsaXR5LgoKMjAwNy0wNS0xOCAxODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE3MTkyNTQ6IGZyb20gIkNocmlzdGFuIEp1bmciOiB1cGRhdGUKICAgSFJGU19pZ25vcmUgbGlzdCB0byBjdXJyZW50IGxpbnV4IGxpa2VseWhvb2RzCgoyMDA3LTA1LTE4IDE4OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaDogMTcxOTI1MzogZnJvbSAiQ2hyaXN0aWFuIEp1bmciOiBmaXgKICAgc2tpcE5GU0luSG9zdFJlc291cmNlcyBzbyBpdCBkb2VzIG5vdCBicmVhayBvbiB0aGUgc2Vjb25kIHdhbGsgb2YKICAgdGhlIHRhYmxlLgoKMjAwNy0wNS0xOCAxNzo1NSAgbWFnZnIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFJlcmFuIGF1dG9oZWFkZXIgYW5kIGFkanVzdGVkIGFjY29uZmlnLmggYWZ0ZXIgY2hhbmdlcyBpbiByMTYzODcKCjIwMDctMDUtMTggMTc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTcxNTQwNjogZnJvbSBtaXRzdXJ1X2NoaW5lbjogcmVnaXN0cmF0aW9uCiAgIG9yZGVyaW5nIGZpeGVzIGZvciBpY21wU3RhdHNUYWJsZQoKMjAwNy0wNS0xOCAxNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzE1Mzk1OiBmaXggaWNtcCB0YWJsZSBlcnJvcnMgaW4gbmV3IGljbXAKICAgY29kZQoKMjAwNy0wNS0xOCAxNzo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgCgoyMDA3LTA1LTE4IDE1OjA1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogQUlYOiBmaXggZGVmYXVsdCBzaGFyZWQgbGlicmFyeSBidWlsZGluZyBpbnN0ZWFkIG9mIGZvcmNpbmcKICAgc3RhdGljCgoyMDA3LTA1LTE4IDE0OjE4ICBtYWdmcgoKICAgKiAgYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sICAgCiAgICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCAgIAogICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkaW5nOiBVc2UgQUNfQ0hFQ0tfTUVNQkVSUyBpbnN0ZWFkIG9mCiAgIEFDX0NIRUNLX1NUUlVDVF9GT1Igd2hlbiBjaGVja2luZyBmb3Igc3RydWN0IGlwc3RhdCBtZW1iZXJzIGluCiAgIG9yZGVyIHRvIG1ha2UgY29uZmlndXJlLmluIHNtYWxsZXIKCjIwMDctMDUtMTggMTA6MjIgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IENvcnJlY3QgdGhlIGRlcGVuZGVuY3kgaW5mb3JtYXRpb24gZm9yCiAgIGhvc3QvaHJfc3RvcmFnZQoKMjAwNy0wNS0xOCAwOTo1NyAgbWFnZnIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIENIQU5HRVM6IHRlc3Rpbmc6IERvIG5vdCB0ZXJtaW5hdGUgb24gU0lHQ0hMRCBzaW5jZSBkYXNoIGFuZAogICBzb3VtZSBib3VybmUgc2hlbGxzIHdpbGwgZXhpdCB0aGUgbWFpbiBzaGVsbCB3aGVuIGEgc3Vic2hlbGwKICAgdGVybWluYXRlcyBpbiB0aGF0IGNhc2UuCgoyMDA3LTA1LTE4IDA5OjIyICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgVW5kb2luZyBhY2NpZGVudGFsIGNoYW5nZSBjb21taXR0ZWQgaW4gcjE2MzczLgoKMjAwNy0wNS0xNyAyMzoyMSAgbWFnZnIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMzc6IEltcGxlbWVudCBfc2Vzc19vcGVuIGluIHRlcm1zCiAgIG9mIHNubXBfc2Vzc19hZGQKCjIwMDctMDUtMTcgMjI6MTYgIG1hZ2ZyCgogICAqICBhZ2VudC9hZ2VudF90cmFwLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgICAKICAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgICAKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjIwNDI0OiBGaXggbm90aWZpY2F0aW9uIHNlbmRpbmcgc28gdGhhdAogICBleHBsaWNpdCBzcGVjaWZpY2F0aW9uIG9mIHBvcnQgMTYyIHNob3VsZCBiZSB1bm5lY2Vzc2FyeQogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFBBVENIOiAxNjIwNDI0OiBGaXggbm90aWZpY2F0aW9uIHJlY2VwdGlvbiBzbwogICB0aGF0IGV4cGxpY2l0IHNwZWNpZmljYXRpb24gb2YgcG9ydCAxNjIgc2hvdWxkIGJlIHVubmVjZXNzYXJ5CiAgIENIQU5HRVM6IGFwcHM6IFBBVENIOiAxNjIwNDI0OiBGaXggbm90aWZpY2F0aW9uIHNlbmRpbmcgc28gdGhhdAogICBleHBsaWNpdCBzcGVjaWZpY2F0aW9uIG9mIHBvcnQgMTYyIHNob3VsZCBiZSB1bm5lY2Vzc2FyeQogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTYyMDQyNDogSG9ub3IKICAgTkVUU05NUF9EU19MSUJfREVGQVVMVF9QT1JUIG92ZXIgdGhlIGRlZmF1bHQgc3lzdGVtCgoyMDA3LTA1LTE3IDIxOjUzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNzEwNjMyOiBmcm9tIG1hdmFybGV5OiBmaXggbWVtb3J5IGxlYWsgb24KICAgYnJva2VuIGNvbnRhaW5lciBpbnNlcnRpb25zIGZvciB0aGUgaXBBZGRyZXNzVGFibGUKCjIwMDctMDUtMTcgMTg6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNzE5MjQ0OiBmaXggbWZkIGdlbmVyYXRpbmcgbWFwIGZ1bmN0aW9uCgoyMDA3LTA1LTE3IDE3OjQ2ICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oOgoKICAgTkVXUzogc25tcGQ6IHBhdGNoOiAxNzA4MjQzOiBmcm9tIG5ob3JtYW46IGltcGxlbWVudCB0aGUKICAgaXBEZWZhdWx0Um91dGVUYWJsZSBvbiBsaW51eAoKMjAwNy0wNS0xNyAxNjozMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgTkVXUzogcG9ydHM6IHBhdGNoOiAxNzA2MzQ0OiBmcm9tIG5heWxvcjogZml4IGNvbXBpbGF0aW9uIHdpdGgKICAgY3lnd2luCgoyMDA3LTA1LTE3IDE2OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBORVdTOiBzbm1wZDogcGF0Y2g6IDE3MDAxNTc6IGZyb20gYWZyaWthOiBmaXhlcyBvcmRlcmluZyBvZiBleGVjCiAgIHRva2VucyBpbiB0aGUgcmVzdWx0aW5nIG1pYiB0cmVlCgoyMDA3LTA1LTE3IDE1OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTYxNzI1NTogZml4IGxlbmd0aCBvZiB0aGUgaGlzdG9yeSBhcnJheQogICB0byBtYXRjaCBjb2RlLgoKMjAwNy0wNS0xNyAxMzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBwYXRjaDogMTIyNTQ0MDogQXBwbHkgaW50ZW50IG9mIHBhdGNoOiB0byBkZWxheQogICBzaWdodXAgdGlsbCBpdCBpcyBzYWZlLgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IHBhdGNoOiAxMjI1NDQwOiBBcHBseSBpbnRlbnQgb2YgcGF0Y2g6IHRvCiAgIGRlbGF5IHNpZ2h1cCB0aWxsIGl0IGlzIHNhZmUuCgoyMDA3LTA1LTE3IDEzOjM1ICBtYWdmcgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oOgoKICAgQ0hBTkdFUzogYnVpbGRpbmc6IFVzZSBjb25maWdfZXJyb3IgaW5zdGVhZCBvZiBjb25maWdfcmVxdWlyZSBvZgogICBhIGJvZ3VzIGZpbGUvI2Vycm9yIHRvIGdlbmVyYXRlIGVycm9yIG1lc3NhZ2VzIGF0IGNvbmZpZ3VyZSB0aW1lLgoKMjAwNy0wNS0xNyAwNDozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvYXNuMS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogcGF0Y2g6IDE2NDU2OTg6IGZpeCA2NC1iaXQgc2lnbmVkIGludGVnZXIKICAgZW5jb2RpbmcKCjIwMDctMDUtMTYgMjM6NTMgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgQ0hBTkdFUzogSFAtVVg6IEhQLVVYIG5lZWRzIF9SRUVOVFJBTlQgZGVmaW5lZCB0byBwaWNrIHVwCiAgIHN0cnRva19yLgogICBPdGhlcndpc2UsIGF0IGxlYXN0IGZvciA2NC1iaXQgY29kZSwgc3RydG9rX3Igd2lsbCBub3Qgd29yawogICBhbmQgd2lsbCBtYWtlIG5ldC1zbm1wIHNlZ2ZhdWx0LgoKMjAwNy0wNS0xNiAyMzozOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCBwYXRjaCAxNjI1MDY5IChyMTYzNjUpIHRvIG5vdCBicmVhayB0aGUgYnVpbGQgb24gU29sYXJpcwogICAyLjYvNwoKMjAwNy0wNS0xNSAxNzozMyAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICAtIGFkZCB3YXJuaW5nIGlmIHN0YXIgbm90IGF2YWlsYWJsZQogICAtIGZpeCBwYXR0ZXJuIHRvIGV4Y2x1ZGUgLnN2biBkaXJzIGZyb20gdGFyYmFsbHMKCjIwMDctMDUtMTUgMTU6NTUgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgd2FybiBpZiBzdGFyIG5vdCBhdmFpbGFibGUKCjIwMDctMDUtMTUgMTQ6MzYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBmaXggdHlwbwoKMjAwNy0wNS0xNCAyMTo0OSAgdGFuZGVycwoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgYWRkIG1pc3NpbmcgQ0ZMQUdTIHRvIGxpbmsgbGluZQoKMjAwNy0wNS0xNCAyMTo0OCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgYWRkIG1pc3NpbmcgQ0ZMQUdTIHRvIGxpbmsgbGluZQoKMjAwNy0wNS0xNCAxNTo1NyAgaGFyZGFrZXIKCiAgICogIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfaGVhZGVycy5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDSEFOR0VTOiBzbm1wZDogcGF0Y2g6IDE2MjUwNjk6IHNwZWVkIGltcHJvdmVtZW50cyBmb3Igc29sYXJpcwogICByb3V0aW5nIHRhYmxlIGFjY2VzcwoKMjAwNy0wNS0xNCAxNDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IHBhdGNoOiAxNTk1NTY4OiBmcm9tIGN5cmlsX21hcmdhcmlhOiBmaXgKICAgZGVsZWdhdGVkIFNFVCByZXF1ZXN0cyBmcm9tIGFnZW50eCBzdWJhZ2VudHMKCjIwMDctMDUtMTQgMTQ6MDQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgdG8gcG9pbnQgdG8gd2lraSBhbmQgYSBmZXcgbW9yZSBjdnMgLT4gc3ZuIGNoYW5nZXMKCjIwMDctMDUtMTMgMTQ6MjcgIG1hZ2ZyCgogICAqIHNubXBsaWIvc25tcF9zZXJ2aWNlLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBSZWFkIHRoZSBjb25maWcgcGFyYW1ldGVycyBkZWZUYXJnZXQgYW5kCiAgIGRlZkRvbWFpbiBmcm9tIHNubXAuY29uZiBhcyB3ZWxsIGFzIGZyb20gPGFwcGxpY2F0aW9uPi5jb25mCgoyMDA3LTA1LTEyIDExOjE3ICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRGVhbGxvY2F0ZSB0aGUgX21pYmluZGV4ZXMgY2FjaGUgaW4KICAgc2h1dGRvd25fbWliIHRvIG1ha2UgZm9yIGEgY2xlYW5lciBleGl0IG9mIHRoZSBsaWJyYXJ5CgoyMDA3LTA1LTEyIDExOjE0ICBtYWdmcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogRGVhbGxvY2F0ZSB0aGUgY29uZm1pYnMgYW5kIGNvbmZtaWJkaXJzCiAgIHZhcmlhYmxlcyBpbiBzaHV0ZG93bl9taWIgdG8gbWFrZSBmb3IgYSBjbGVhbmVyIGV4aXQgb2YgdGhlCiAgIGxpYnJhcnkKCjIwMDctMDUtMTEgMjE6MDYgIG1hZ2ZyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2ODczMzY6IFN0YXJ0IHVzaW5nIHRoZSBlbmhhbmNlZAogICByZWFkX2NvbmZpZyBpbnRlcmZhY2UKCjIwMDctMDUtMTEgMjA6MzMgIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFBBVENIIDE2ODczMjk6IEFwcGxpZWQgcGFydCAyIG9mIHRoZSBwYXRjaCAtIFdoZW4gcmVnaXN0ZXJpbmcKICAgbXVsdGlwbGUgcHJlbWliIGhhbmRsZXJzIG9ubHkgdGhlIGxhc3Qgb25lIHdhcyByZWdpc3RlcmVkIHByZW1pYiwKICAgdGhlIG90aGVycyB3ZXJlIHJlZ2lzdGVyZCBhdCB0aGUgbm9ybWFsIHRpbWUuIFRoaXMgcGF0Y2ggcHV0cyBhbGwKICAgcmVnaXN0cmF0aW9uIGluIG9uZSBmdW5jdGlvbiB0aGF0IHRha2VzIHRoZSBwcm9ibGVtYXRpYyB2YWx1ZSBhcwogICBhbiBhcmd1bWVudCBhbmQgbWFrZXMgdGhlIG9sZCBmdW5jdGlvbnMgdGhpbiB3cmFwcGVycyBvZiB0aGUgbmV3CiAgIG9uZQoKMjAwNy0wNS0xMSAyMDoyNCAgbWFnZnIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFOiBzbm1wbGliOiBQQVRDSCAxNjg3MzI5OiBBcHBsaWVkIHBhcnQgMyBvZiB0aGUgcGF0Y2ggLSB1c2UKICAgdGhlIHNhbWUgYWxnb3JpdGhtIHRvIGRldGVybWluZSB3aGF0IHRvIHVucmVnaXN0ZXIgYXMgaXMgdXNlZCB0bwogICBkZXRlcm1pbmUgd2hhdCB0byByZWdzdGVyCgoyMDA3LTA1LTExIDE2OjMyICBtYWdmcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIERvbid0IGxvZyBob3N0L2hyX3Byb2MgZXZlbnRzIGluIHRoZSBzbm1wZCBkb21haW4KCjIwMDctMDUtMTEgMTY6MjcgIG1hZ2ZyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRGVjb3JhdGUgbW9yZSBkZWJ1ZyBsaW5lcyB3aXRoIHRoZSB0YWcgdGhhdCBjb250cm9scyB0aGUgbG9nCgoyMDA3LTA1LTExIDE1OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X3NvbGFyaXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2Mjg2MTM6IFJlc3RvcmUgbWVtVG90YWxGcmVlLjAgb24gU29sYXJpcwoKMjAwNy0wNS0xMCAyMTo1MiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbiwgcHl0aG9uL3NldHVwLnB5OgoKICAgTkVXUzogcHl0aG9uOiBQQVRDSDogMTcxNjExNDogTGV0IHB5dGhvbiBidWlsZCBpbiBzb3VyY2UgdHJlZQogICBQYXRjaCBwcm92aWRlZCBieSBKb2NoZW4gRnJpZWRyaWNoIChEZWJpYW4gcGF0Y2ggIzM4KS4KCjIwMDctMDUtMTAgMDU6MTggIG1hZ2ZyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFBBVENIIDE2ODczMjk6IEFwcGxpZWQgcGFydCAxIG9mIHRoZSBwYXRjaCAtIGxlc3NlbnMgdGhlIHNjb3BlIG9mCiAgIHRoZSBsdG1wMiB2YXJpYWJsZQoKMjAwNy0wNS0wOSAyMzo1NyAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIGRvY3VtZW50IG9wdGltaXplZCBJUklYIGNwdSBzdGF0cwoKMjAwNy0wNS0wOSAyMzo0OSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzaW5mby5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X3N5c2luZm8uaDoKCiAgIE5FV1M6IGlyaXg6IFBBVENIOiAxNzA5NzQ4OiBPcHRpbWl6ZWQgSVJJWCBjcHUgc3RhdHMKCjIwMDctMDUtMDkgMjE6MjMgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3Nob3c6CgogICB1cGRhdGUgdG8gc2hvdyBzdm4gcmVwbyB0b28KCjIwMDctMDUtMDkgMTU6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jOgoKICAgaWNtcFN0YXRzVGFibGUgaXMgb25seSBpbXBsZW1lbnRlZCBmb3IgTGludXgKCjIwMDctMDUtMDggMTk6NDggIG1hZ2ZyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJldmVydCBtaXN0YWtlbmx5IGNvbW1pdHRlZCBleHRyYSB0cmFjZSBsb2dzCgoyMDA3LTA1LTA3IDIwOjQ2ICBoYXJkYWtlcgoKICAgKiAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sICAgCiAgICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCAgIAogICAgICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvdGVzdC5wbDoKCiAgIHVwZGF0ZSBhZ2VudDo6ZGVmYXVsdF9zdG9yZSBwZXJsIG1vZHVsZSBmb3IgbmV3IGRlZnMKCjIwMDctMDUtMDcgMjA6MjQgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBtb3JlIHN2biBjb252ZXJzaW9uIGZpeGVzCgoyMDA3LTA1LTA3IDIwOjIzICBoYXJkYWtlcgoKICAgKiAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF9hZ2VudC5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgTkVXUzogc25tcGQ6IEJVRzogMTcxMjk4ODogZGVmYXVsdCBhbmQgY29uZmlndXJhYmxlIG1heGltdW0KICAgbnVtYmVyIG9mIHZhcmJpbmRzIHJldHVybmFibGUgdG8gYSBHRVRCVUxLIHJlcXVlc3QKCjIwMDctMDUtMDcgMjA6MDUgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICByZW5hbWUgb2YgYnJhbmNoIGRpcnMKCjIwMDctMDUtMDcgMTY6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvcGF0bWU6CgogICBhdHRlbXB0ZWQgKHVudGVzdGVkKSB1cGRhdGUKCjIwMDctMDUtMDcgMTM6NTUgIHJzdG9yeQoKICAgKiBkaXN0L3N2bnVwOgoKICAgZG9uJ3QgZGVsZXRlIHRhcmJhbGwgaWYgc2NwIGZhaWxzCgoyMDA3LTA1LTA0IDIwOjI3ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4IFNOTVAgU0VUIGZvciBJUCBhZGRyZXNzZXMgb24gNjQtYml0CgoyMDA3LTA1LTA0IDEwOjIyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBkcmFnb25mbHkuaAoKMjAwNy0wNS0wMyAyMzowMSAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kcmFnb25mbHkuaDoKCiAgIENIQU5HRVM6IEJVRzogMTcxMDkxMDogaW5pdGlhbCBzdXBwb3J0IGZvciBEcmFnb25GbHkgQlNECgoyMDA3LTA1LTAzIDIyOjEwICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogZml4IFNOTVAgU0VUIGZvciBJUCBhZGRyZXNzZXMgb24gNjQtYml0CiAgIFBhdGNoIHByb3Bvc2VkIGJ5IEplZmYgTGFuZ2UuCgoyMDA3LTA1LTAzIDE2OjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIGJ1aWxkIGZpeCAoZS5nLiBmb3IgZWFybHkgQUlYKTogdXNlIHVpbnQzMl90IGkucy5vLiBfX3VpbnQzMl90CgoyMDA3LTA1LTAyIDEzOjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEZpeCBwcm9ibGVtcyB3aXRoIHNpbmdsZS1saW5lIGV4dGVuZCBzY3JpcHRzLgoKMjAwNy0wNS0wMSAxOTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIC0gdGVzdCBmb3IgSUZBX0ZfVEVNUE9SQVJZIGJlZm9yZSB1c2luZwogICAtIHJlbW92ZSByZWR1bmRhbnQgaWZkZWYKCjIwMDctMDUtMDEgMTE6MzQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBDSEFOR0VTOiBzbm1wdHJhcGQ6IFN1cHBvcnQgZm9yIGZvcndhcmRpbmcgdHJhcHMgYnkgT0lEIHN1YnRyZWUuCiAgIChDb25zaXN0ZW50IHdpdGggc3VidHJlZS1iYXNlZCBzY3JpcHQgcHJvY2Vzc2luZykuCgoyMDA3LTA0LTMwIDE0OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMzAwNDogQ29uc29saWRhdGUgc25tcDYgaGFuZGxpbmcuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE5laWwgSG9ybWFuLCBwbHVzIHNvbWUgZXh0cmEgdGlkeWluZyB1cC4KCjIwMDctMDQtMzAgMTQ6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAyMzY2OiBTdXBwb3J0IGZvciBpY21wU3RhdHNUYWJsZQogICBQYXRjaCBwcm92aWRlZCBieSBOZWlsIEhvcm1hbgoKMjAwNy0wNC0zMCAxNDozMSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsIAogICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNzAyMzYxOiBSZWFkIHN0YXRzIGZyb20gL3Byb2MvbmV0L3NubXA2CgoyMDA3LTA0LTMwIDE0OjE0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBGaXggY29tcGlsYXRpb24gcHJvYmxlbXMgd2hlbiBJUHY2IHN1cHBvcnQgaXMgbm90IGVuYWJsZWQuCgoyMDA3LTA0LTMwIDEzOjI2ICBkdHMxMgoKICAgKiAgUkVBRE1FLmFnZW50LW1pYnMsIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL3NldFNlcmlhbE5vLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3Mzc6IFRpZHkgdXAgc2V0U2VyaWFsTm8KICAgaW1wbGVtZW50YXRpb25zLgoKMjAwNy0wNC0zMCAxMzowNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE3MDA3MzI6IEZpeCBkZWJ1ZyBvdXRwdXQgc3RhdGVtZW50cy4KCjIwMDctMDQtMzAgMTM6MDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTcwMDczMDogUmVtb3ZlIHVudXNlZCBleHRlcm4gZGVjbGFyYXRpb24uCgoyMDA3LTA0LTMwIDExOjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2OTgxODQ6IFJlZ2lzdGVyIG5vbi1kZWZhdWx0IGNvbnRleHQKICAgaW50ZWdlcnMgYXMgd3JpdGFibGUuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hcmsgTmF5bG9yLgoKMjAwNy0wNC0zMCAxMToyNiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjk4MTc6IEltcHJvdmVkIFJGQyA0MjkzIHN1cHBvcnQuCiAgIEluY2x1ZGVzIG5vbi11bmljYXN0IGFuZCByYW5kb21seSBjaG9zZW4gSVAgYWRkcmVzc2VzLgogICBQYXRjaCBwcm92aWRlZCBieSBWYXJ1biBDaGFuZHJhbW9oYW4KCjIwMDctMDQtMzAgMTE6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2OTI3Njg6IEZpeCBjb3B5aW5nIG9mIG5vbi1vY3RldC1hbGlnbmVkCiAgIElQIGFkZHJlc3MgcHJlZml4ZXMuCgoyMDA3LTA0LTMwIDEwOjUwICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmgsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgICAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjcwNTExOiBJbXBsZW1lbnQgbmV0d29yayBjb25uZWN0aW9uCiAgIHByb2Nlc3MgSUQgb2JqZWN0cy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgVmFydW4gQ2hhbmRyYW1vaGFuCgoyMDA3LTA0LTMwIDEwOjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIEZpeCBkZWNsYXJhdGlvbiBvZiBzbm1wX3Nlc3NfcmVhZF9leHRkKCkKCjIwMDctMDQtMzAgMTA6MjUgIGR0czEyCgogICAqIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMjU6IEZpeCBwcm9ibGVtIHdpdGggb3BlcmF0b3IKICAgcHJlY2VkZW5jZS4KCjIwMDctMDQtMzAgMTA6MjEgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODczMTk6IERlY2xhcmUgc25tcF9zZXNzX3JlYWRfZXh0ZCgpCgoyMDA3LTA0LTMwIDEwOjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxODogTWFrZSBfc2Vzc19zZWxwb2xfaW5mbyBzdGF0aWMuCgoyMDA3LTA0LTMwIDEwOjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxNzogUmVtb3ZlIGFuIHVudXNlZCBsb2NhbCB2YXJpYWJsZQoKMjAwNy0wNC0zMCAxMDowNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY4NzMxNjogRG9uJ3QgZHJvcCBjb25zdCBmcm9tIGNhc3RzLgoKMjAwNy0wNC0yNyAxMDoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIEJyaW5nIGR5bmFtaWMgbW9kdWxlIHVubG9hZCBwcm9jZXNzaW5nIG1vcmUgaW50byBsaW5lIHdpdGgKICAgIm5vcm1hbCIgTUlCIG1vZHVsZXMuIFN1Z2dlc3RlZCBieSBNYWdudXMgRnJvbXJlaWRlLgogICBTZWUgY29kZXJzIHRocmVhZCAic2h1dGRvd25fZm9vIG9yIGRlaW5pdF9mb28iLgoKMjAwNy0wNC0yNyAxMDoxNyAgZHRzMTIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIFVwZGF0ZSBwb3N0LXJlbGVhc2UgYW5ub3VuY2VtZW50IGluc3RydWN0aW9ucy4KCjIwMDctMDQtMjQgMTI6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgRml4IGluY29tcGxldGUgT0lEIGhhbmRsaW5nIG9mIHNpbmdsZS1saW5lIGV4dGVuZCBzY3JpcHRzLgogICBSZXBvcnRlZCBieSBNYXggb24gY29kZXJzIGxpc3QsIDd0aCBBcHJpbC4gU2VlIHRocmVhZAogICAiLi4uIHNlZ2ZhdWx0IC4uIHdoZW4gYXR0ZW1wdGluZyBTTk1QIEdFVCBvbiBleHRlbmQgb3IgZXhlYyBpdGVtIgoKMjAwNy0wNC0yMCAwODozMCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgYmVoYXZpb3VyIG9mIGEgbG9hZCB0aHJlc2hvbGQgb2YgMC4KICAgUmVwb3J0ZWQgYnkgRm9uZyBUc3VpLgoKMjAwNy0wNC0yMCAwODoyMSAgZHRzMTIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTG9uZy10ZXJtIGxvYWQgYXZlcmFnZSBpcyBjYWxjdWxhdGVkIG92ZXIgMTUgbWludXRlcywgbm90IDEwLgogICBSZXBvcnRlZCBieSBGb25nIFRzdWkKCjIwMDctMDQtMTkgMTI6NTMgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBUd2VhayBDaGFuZ2VMb2cgaW5zdHJ1Y3Rpb25zIGZvciBTVk4KCjIwMDctMDQtMTAgMTQ6MTYgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgRGV0ZWN0IE9JRCByZXRyYWNraW5nIChhcyB3ZWxsIGFzIHNpbXBsZSByZXBldGl0aW9ucykgd2hlbgogICBidWxrd2Fsa2luZyBhbiBPSUQgdHJlZS4KICAgU2VlIHVzZXJzIHRocmVhZCAibWlzc2luZyBpbmRpY2VzIGluIGJ1bGt3YWxrIHJlc3VsdCIuCgoyMDA3LTA0LTEwIDExOjQ5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmg6CgogICBDbGFyaWZ5IGNvcHlyaWdodCBzdGF0dXMgb2YgV2luMzIgQVBJIGRlZmluaXRpb25zLgoKMjAwNy0wNC0xMCAxMToyNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaDoKCiAgIENsYXJpZnkgY29weXJpZ2h0IHN0YXR1cyBvZiBCU0QtZGVyaXZlZCBUQ1BUViogZGVmaW5pdGlvbnMuCgoyMDA3LTA0LTA5IDE0OjAyICByc3RvcnkKCiAgICogZGlzdC9zdm51cDoKCiAgIC0gcmVtb3ZlIGRlYnVnZ2luZwogICAtIGNoZWNrIHJjIGZvciB0YXIsIGd6aXAgYW5kIHNjcCBzdGVwcwoKMjAwNy0wNC0wNiAxODozOCAgcnN0b3J5CgogICAqIGRpc3Qvc3ZudXA6CgogICBzdm4gZXF1aXZhbGVudCBvZiBjdnN1cAoKMjAwNy0wNC0wMyAwODo1NCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBFbXBoYXNpc2UgdGhlIHVzZSBvZiBTTk1QdjMgaW4gRGlzTWFuIG1vbml0b3JpbmcuCiAgIEZpeCB0aGUgc3ludGF4IG9mIG5vbi1leGlzdGFuY2UvdmFsdWUtY2hhbmdlIHRlc3RzLgoKMjAwNy0wNC0wMiAxNDo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTA0NjMyNzogUmVzZXQgImluY2x1ZGVBbGxEaXNrcyIgZmxhZyB3aGVuCiAgIHJlbG9hZGluZy4KCjIwMDctMDQtMDIgMTQ6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2MDIyODY6IERvbid0IGxldCB0YWJsZSBob2xlcyBibG9jayBsYXRlcgogICByb3dzLgoKMjAwNy0wNC0wMiAxMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTA3Mzc4MjogUmVzdG9yZSBQZXJmU3RhdCB2YWx1ZXMgZm9yIEZyZWVCU0QKICAgNS54IHN5c3RlbXMuCiAgIEl0J3MgdW5jbGVhciB3aHkgdGhlICJuZXciIGNhbGN1bGF0aW9uIHdhcyBhKSBwcm9wb3NlZCwgYikKICAgd2l0aGRyYXduLAogICBhbmQgYykgd2hhdCB3YXMgd3Jvbmcgd2l0aCB0aGUgcHJldmlvdXMgY2FsY3VsYXRpb24gKHdoaWNoIHNlZW1zCiAgIHRvCiAgIG1hdGNoIHRoZSBvdXRwdXQgb2YgJ3BzJykKCjIwMDctMDQtMDIgMTM6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogOTAyNjEwOiBEb24ndCBkaXNjYXJkIHBlbmRpbmcgZGF0YSBmb2xsb3dpbmcKICAgYSBUUkFQLgoKMjAwNy0wNC0wMiAxMjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiA5MDI4MDE6IEZpeCBvcmRlcmluZyBvZiBTTVVYLXJlZ2lzdGVyZWQKICAgc3VidHJlZXMuCgoyMDA3LTA0LTAyIDEyOjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2ODUwNjc6IE1vcmUgcHJlY2lzZSBoYW5kbGluZyBvZgogICBTTk1QdjMtYWRtaW4gTUlCIHRhYmxlcy4KICAgVGhpcyBhY3R1YWxseSBmaXhlcyB0aHJlZSBzZXBhcmF0ZSBwcm9ibGVtczoKICAgKiAgQSBHRVQgcmVxdWVzdCBmb3IgJ3ZhY21BY2Nlc3NTdGF0dXMuImdyb3VwIi4iIi4zLjQnIHdpbGwgICAKICAgICAgc3VjY2VlZCAgICAoc2luY2UgVkFDTSBjaGVja3MgYWNjZXB0IHRoZSBnaXZlbiBzZWN1cml0eSBsZXZlbAogICAgICAqb3IqaGlnaGVyKikgIDIwMDctMDQtMDIgMTI6MjYgIGR0czEyCgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIENoZWNrIHRoYXQgR0VUIHJlcXVlc3RzIG1hdGNoIGEgdmFsaWQgT0lELgogICAoT3RoZXJ3aXNlIGEgcmVxdWVzdCBmb3IgaHJTdG9yYWdle0NvbHVtbn0ue2luZGV4fS57YW55dGhpbmd9CiAgIHdpbGwgaWdub3JlIHRoZSBleHRyYSBzdWJpZHMsIGFuZCByZXR1cm4gc3VjY2VzcykKCjIwMDctMDQtMDIgMTI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVPYmplY3RzVGFibGUuYzoKCiAgIFByZXZlbnQgY3Jhc2ggd2hlbiB3YWxraW5nIChpbnZhbGlkPykgRXZlbnQtTUlCIE9iamVjdHMgVGFibGUuCgoyMDA3LTA0LTAyIDExOjMwICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgRml4IGEgY291cGxlIG9mIHR5cG9zIGluIHRoZSByZS13b3JrZWQgbWFrZXJlbGVhc2Ugc2NyaXB0LgoKMjAwNy0wMy0yOSAxMjoxNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBzeW50YXggZXJyb3IgKCI9PSIgaXMgYmFkKQoKMjAwNy0wMy0yNyAwODo1NSAgZHRzMTIKCiAgICogYWNpbmNsdWRlLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlYWQgdXNlci1wcm9tcHRlZCB2YWx1ZXMgZnJvbSBvcmlnaW5hbCBzdGRpbiAobm90IC9kZXYvbnVsbCkKCjIwMDctMDMtMjcgMDg6MzggIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWNjZXB0ICcyYycgYXMgYSB2YWxpZCByZXNwb25zZSB3aGVuIGNob29zaW5nIHRoZSBkZWZhdWx0IHZlcnNpb24KCjIwMDctMDMtMjcgMDg6MjkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogY29uZmlndXJlOiBCVUc6IDE1NjczMjQ6IENsYXJpZnkgcHJvbXB0aW5nIGZvcgogICB1c2VyLXN1cHBsaWVkIHZhbHVlcy4KICAgTm93IG9ubHkgcmVtZW1iZXJzIChhbmQgdXNlcykgcHJldmlvdXMgdmFsdWVzIHdoZW4gZXhwbGljaXRseQogICB0b2xkIHRvIGRvIHNvLAogICBlLmcuIGNvbmZpZ3VyZSAtQwoKMjAwNy0wMy0yNyAwODoyMyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggaW5jb25zaXN0ZW5jeSBpbiBwYXRjaCAjMTYyNzA0OSAtIDxwb2xsLmg+IHZzIDxzeXMvcG9sbC5oPgoKMjAwNy0wMy0yNSAyMjozMSAgZHRzMTIKCiAgICogIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsICAgCiAgICAgIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIFZhcmlhYmxlLWxlbmd0aCBzdHJpbmcgdmFsdWVzIGFyZSBtb3JlIGxpa2VseSB0aGFuIGZpeGVkIGxlbmd0aC4KCjIwMDctMDMtMjUgMjI6MjggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDgzMzY3MzogTW9yZSBmb2N1c2VkIHNpemUgY2hlY2tzLgoKMjAwNy0wMy0yNSAyMToyNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY3NzA2MzogQ2hlY2sgZm9yIGZhaWxlZCBtYWxsb2MgY2FsbHMuCgoyMDA3LTAzLTI1IDE5OjAzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jOgoKICAgQ2hlY2sgU0VUIHJlcXVlc3RzIGFnYWluc3QgdGhlIGNvcnJlY3QgdHlwZSAoSVAgQWRkcmVzcyAhPSBPY3RldAogICBTdHIpCgoyMDA3LTAzLTI1IDE4OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTY4NTA4MTogQ2hlY2sgZm9yIHZhbGlkIE9JRCBvbiBGcmVlL1VuZG8KICAgcGFzc2VzLgoKMjAwNy0wMy0yMyAwOTo0NCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBDSEFORUdTOiBzbm1wbGliOiBCVUc6IDE2ODYzODQ6IERvY3VtZW50IG5vbi11c2Ugb2YgJ3JlbW90ZV9wb3J0JwogICBmaWVsZC4KCjIwMDctMDMtMjMgMDk6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgQWxsb3cgc3BhY2UgZm9yIGV4dGVybmFsIGluZGV4ZXMgd2hlbiBzYXZpbmcgdGFibGUgZW50cmllcy4KICAgKFNlZSBwYXRjaCAjMTY0MjI1NSkKCjIwMDctMDMtMjMgMDk6MTQgIGR0czEyCgogICAqIAogICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0MjI1NTogSGFuZGxlIHNhdmluZyBsb25nCiAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZSBlbnRyaWVzLgoKMjAwNy0wMy0yMyAwOTowOSAgZHRzMTIKCiAgICogIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLCAgIAogICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2ODE5Nzc6IEFkZCBjYWxsYmFja3MgcHJpb3IgdG8gcmVhZGluZwogICBjb25maWcuCgoyMDA3LTAzLTIzIDA5OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjc2NDc4OiBmaXggdWRwRW5kcG9pbnRSZW1vdGVBZGRyZXNzCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2NzY0NzY6IGZpeCB1ZHBFbmRwb2ludFJlbW90ZUFkZHJlc3MKCjIwMDctMDMtMjMgMDk6MDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjUzNjcwOiBDb25zaXN0ZW50IFNOTVB2MyBiZWhhdmlvdXIKICAgd2hlbiBvcGVuaW5nIHNlc3Npb25zLgoKMjAwNy0wMy0yMyAwODo1NyAgZHRzMTIKCiAgICogIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgICAKICAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MjcwNDk6IE5ldyBBUEkgdG8gaGFuZGxlIGxhcmdlIG51bWJlcnMKICAgb2YgZmlsZSBkZXNjcmlwdG9ycy4KCjIwMDctMDMtMjIgMTk6MTQgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjgxMDMwOiBCZXR0ZXIgaGFuZGxpbmcgb2YgZW1wdHkKICAgYXBwdHlwZSBjb25maWdzLgoKMjAwNy0wMy0yMiAxOToxMiAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwgICAKICAgICAgYWdlbnQvc25tcGQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY3ODc4ODogQmV0dGVyIGhhbmRsaW5nIG9mIFNNVVggc29ja2V0CiAgIGRlc2NyaXB0b3JzLgoKMjAwNy0wMy0yMiAxOTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY4MzA1NDogc2V0IHVkcEVuZHBvaW50SW5zdGFuY2UgdG8KICAgaWRlbnRpZnkgZGlmZmVyZW50IHByb2Nlc3Nlcy4KCjIwMDctMDMtMjEgMTI6MzUgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbjoKCiAgIERlY2xhcmUgT0lEIGNvbnN0YW50cyBhcyBzdWNoIChyYXRoZXIgdGhhbiBBUEkgY2FsbHMpLgogICBQcm9wb3NlZCBieSBBbGV4IEJ1cmdlcgoKMjAwNy0wMy0yMCAyMDowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNjY2NzM3OiBpbmNsdWRlIGlwdjYgY291bnRzIGluCiAgIHVkcEluRGF0YWdyYW1zLCB1ZHBOb1BvcnRzLCB1ZHBJbkVycm9ycywgdWRwT3V0RGF0YWdyYW1zCgoyMDA3LTAzLTE5IDIyOjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfcGNwLmM6CgogICB1c2UgcG1GcmVlUmVzdWx0KCkgaW5zdGVhZCBvZiBmcmVlKCkKCjIwMDctMDMtMTkgMDk6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMy0xNiAxNDowNCAgZHRzMTIKCiAgICogIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlMsIGRpc3QvY2hhbmdlbG9nZml4LCBkaXN0L21ha2VyZWxlYXNlLCAgIAogICAgICBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgQ29udmVydCBidWlsZCBzeXN0ZW0gdG8gU1ZOIHZlcnNpb24uCgoyMDA3LTAzLTE1IDEwOjU5ICB0YW5kZXJzCgogICAqICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCAgIAogICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjgxMDczOiAjaWZkZWYgYmFzZWQgY29uZmlnX2Vycm9yIGluc3RlYWQKICAgb2Ygc3BlY2lhbCBjYXNlcyBpbiBjb25maWd1cmUKCjIwMDctMDMtMTUgMTA6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDMtMTQgMjM6MzEgIHRhbmRlcnMKCiAgICogIFJFQURNRS5pcml4LCBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaCwgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wY3AuaDoKCiAgIE5FV1M6IElSSVg6IFBBVENIOiAxNjc1ODY5OiBmcm9tIGJiaWNlOiBDUFUgc3RhdGlzdGljcyBmb3IgSVJJWAogICBiYXNlZCBvbiBQQ1AKCjIwMDctMDMtMTQgMjI6MDkgIHRhbmRlcnMKCiAgICogIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGFnZW50L2hlbHBlcnMvbnVsbC5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zY2FsYXJfZ3JvdXAuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywgICAKICAgICAgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLCBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYywgICAKICAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsICAgCiAgICAgIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCAgIAogICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjgxMDQzOiBmcm9tIG1hZ2ZyOiBjbGVhbiB1cCBoZWxwZXIKICAgaW5jbHVkZXMKCjIwMDctMDMtMTQgMjE6NTQgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2ODEwMzU6IGZyb20gbWFnZnI6IGltcHJvdmUgbmV0LXNubXAtY29uZmlnCiAgIC9iaW4vc2ggY29tcGF0aWJpbGl0eQoKMjAwNy0wMy0xNCAxODozMSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBidWlsZDogUEFUQ0g6IDE2NzgzMDA6IGZyb20gbWFnZnI6IGNvbXBpbGUtc3ViYWdlbnQKICAgZG9lc24ndCBjYWxsIHNodXRkb3duXyBtZXRob2RzCgoyMDA3LTAzLTE0IDE2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY0NDI4MDogRG9uJ3QgYXV0b21hdGljYWxseSBwcm9iZSBmb3IKICAgdjMgRW5naW5lSURzLgoKMjAwNy0wMy0xMyAxMDoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ2hlY2sgZm9yIHplcm8tc2l6ZSBwc2V1ZG8tZmlsZXN5c3RlbXMuIFJlcG9ydCB0aGVtIGFzIGVtcHR5CiAgIHJhdGhlciB0aGFuIGZ1bGwsIHNvIHRoZXkgd29uJ3QgYmUgdHJlYXRlZCBhcyBhbiBlcnJvci4KCjIwMDctMDMtMTMgMDU6NTkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5oOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDU6IGZyb20gbWFnZnI6IERlYWxsb2NhdGUgdGhlIGNhY2hlIGluCiAgIGhhcmR3YXJlL2NwdS9jcHUgb24gc2h1dGRvd24gKGhlYWRlciBwYXJ0KQoKMjAwNy0wMy0xMiAyMzowOSAgdGFuZGVycwoKICAgKiAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmg6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODMwNjogZnJvbSBtYWdmcjogRGVhbGxvY2F0ZSB0aGUgbG9nIGluCiAgIG5vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cKCjIwMDctMDMtMTIgMjM6MDQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzgzMDU6IGZyb20gbWFnZnI6IERlYWxsb2NhdGUgdGhlIGNhY2hlIGluCiAgIGhhcmR3YXJlL2NwdS9jcHUgb24gc2h1dGRvd24KCjIwMDctMDMtMTIgMjI6NTcgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzAyOiBmcm9tIG1hZ2ZyOiBuZXRzbm1wX21pYmluZGV4X2xvYWQgbGVha3MKICAgbWVtb3J5CgoyMDA3LTAzLTEyIDIyOjUwICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc4MzAxOiBmcm9tIG1hZ2ZyOiBkZWFsbG9jYXRlIGRvbWFpbiByZWdpc3RyeQogICBhdCBzaHV0ZG93bgoKMjAwNy0wMy0xMiAyMjozMSAgdGFuZGVycwoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDSEFOR0VTOiBQQVRDSDogMTY3ODI5ODogZnJvbSBtYWdmcjogY29tcGlsZS1zdWJhZ2VudCBjaGVja3MgZm9yCiAgIGJhZCBIQVZFX1NJR05BTF9ICgoyMDA3LTAzLTEyIDIxOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2OTA0ODogQWRkIHN1cHBvcnQgZm9yCiAgIGlwdjZJbnRlcmZhY2VJZGVudGlmaWVyCgoyMDA3LTAzLTEyIDIxOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxNDEzNzI4OiBSZWZlcmVuY2UgaW5kZXggdmFsdWVzIGluIGRlYnVnCiAgIG91dHB1dCBjb3JyZWN0bHkuCgoyMDA3LTAzLTEyIDIxOjM0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBDSEFOR0VTOiBzbm1wZDogQlVHOiAxMTAyMDU4OiBTa2lwIG5vbi1tb3VudGVkIGRpc2tzIChlLmcuIHN3YXAKICAgcGFydGl0aW9ucykKCjIwMDctMDMtMTIgMjE6MzAgIGR0czEyCgogICAqICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsICAgCiAgICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYywgICAKICAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4MTkzOiBVcGRhdGUgcmVnaXN0cmF0aW9uIG9mCiAgIFJlYXNtTWF4U2l6ZSBzdXBwb3J0LgoKMjAwNy0wMy0xMiAyMToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY4MTkzOiBGaXggY2hlY2sgZm9yIHY2IFJlYXNtTWF4U2l6ZQogICBzdXBwb3J0LgoKMjAwNy0wMy0xMiAxOTo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2Njg5NTI6IElnbm9yZSB6b21iaWUgcHJvY2Vzc2VzLgoKMjAwNy0wMy0xMiAxOTo1NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwX3NjYWxhcnMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjY1OTg1OiBJbXBsZW1lbnQgaXBSZWFzbVRpbWVvdXQKICAgVGhvdWdoIHRoaXMgcmVnaXN0ZXJzIGFuIGluc3RhbmNlLCByYXRoZXIgdGhhbiB0aGUgZnVsbCBzY2FsYXIKICAgb2JqZWN0CgoyMDA3LTAzLTEyIDE5OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiBQQVRDSEVTOiAxNjY1NTQzOiBIYW5kbGUgVkFDTSBjaGVja3MgY29ycmVjdGx5LgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0hFUzogMTY2NTU0OTogSGFuZGxlIGNyZWF0aW5nIFZBQ00gZW50cmllcwogICBjb3JyZWN0bHkuCiAgIFtCb3RoIHBhdGNoZXMgYXJlIHJlcXVpcmVkIGZvciBjb3JyZWN0IG9wZXJhdGlvbl0KCjIwMDctMDMtMTIgMTk6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NTk2MjM6IEhhbmRsZSBTTVVYIHBlZXJzIHdpdGggYW4gZW1wdHkKICAgcGFzc3dvcmQuCgoyMDA3LTAzLTEyIDE5OjQ0ICBkdHMxMgoKICAgKiAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjU3NzQxOiBIYW5kbGUgNjQtYml0IHR5cGVzIHZpYSBwYXNzCiAgIG1lY2hhbmlzbS4KCjIwMDctMDMtMTIgMTk6NDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSEVTOiAxNjQ0MjgwOiBVc2UgdGhlIGNvcnJlY3QgZW5naW5lSUQgd2hlbgogICBzZW5kaW5nIHYzIHRyYXBzLgoKMjAwNy0wMy0xMiAxOTozMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogbGlicmFyeTogUEFUQ0hFUzogMTY0MjA3MTogRG9uJ3QgZmlkZGxlIHdpdGggdGhlIHN0b3JhZ2UKICAgb2YgcHJlLWV4aXN0aW5nIHVzZXJzLgoKMjAwNy0wMy0xMiAxOTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2NDE4NjU6IERvbid0IGRvdWJsZSBjaGVjayBzbm1wVHJhcE9JRAogICBpbiB0aGUgZmlsdGVyIHRhYmxlLgoKMjAwNy0wMy0xMiAxOToyNSAgZHRzMTIKCiAgICogIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCAgIAogICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE2Mzk3MjY6IFJlcG9ydCBwaHlzaWNhbCBtZW1vcnkKICAgY29ycmVjdGx5IG9uICpCU0QKCjIwMDctMDMtMDkgMjE6MzEgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIENIQU5HRVM6IFBBVENIOiAxNjc0Mjk5OiBmcm9tIG1hZ2ZyOiBMZXNzZW4gdGhlIHNjb3BlIG9mIHRoZSB6b25lCiAgIHZhcmlhYmxlIGluIGR1bXBfcmVhbGxvY19vaWRfdG9faW5ldGFkZHJlc3MKCjIwMDctMDMtMDkgMjE6MjkgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2NzQzMDI6IGZyb20gbWFnZnI6IExlc3NlbiB0aGUgc2NvcGUgb2YgdGhlIGxlbgogICB2YXJpYWJsZSBpbiBjb252ZXJ0X3YycGR1X3RvX3YxCgoyMDA3LTAzLTA4IDE1OjUyICBkdHMxMgoKICAgKiAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsICAgCiAgICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaDoKCiAgIEluY2x1ZGUgSG9zdCBSZXNvdXJjZXMgTUlCIG9uIE5ldEJTRCBhbmQgT3BlbkJTRAoKMjAwNy0wMy0wNyAwOTo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBDSEFOR0VTOiBQQVRDSDogMTY3NDI5ODogZnJvbSBtYWdmcjogUmVtb3ZlIHVudXNlZCBzaW5rcG9ydAogICB2YXJpYWJsZQoKMjAwNy0wMy0wNiAxMzo1MSAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTE1OTkwODogRml4IG1lbW9yeSBsZWFrCgoyMDA3LTAzLTAyIDIyOjQwICB0YW5kZXJzCgogICAqIHNubXBsaWIvTVNHMDAwMDEuYmluOgoKICAgbm8gZW9sLXN0eWxlIGZvciBiaW5hcnkgZmlsZXMKCjIwMDctMDMtMDIgMjI6MjYgIHRhbmRlcnMKCiAgICogZG9jL3JmYy9zbWlWMi9yZmMyNTc5LmVycmF0YX46CgogICBkb24ndCBzaGlwIGVkaXRvciBiYWNrdXAgY29waWVzCgoyMDA3LTAzLTAyIDE2OjIwICB0YW5kZXJzCgogICAqIHNubXBsaWIvTVNHMDAwMDEuYmluOgoKICAgZmxhZyBhcyBiaW5hcnkKCjIwMDctMDMtMDIgMTI6NDQgIHRhbmRlcnMKCiAgICogQ29kaW5nU3R5bGU6CgogICBmaXggdHlwbwoKMjAwNy0wMy0wMiAwOTo1NyAgZHRzMTIKCiAgICogVE9ETzoKCiAgIE1pbm9yIHR3ZWFrIC0gcGxheWluZyB3aXRoIFNWTiBhcyBtdWNoIGFzIGFueXRoaW5nLi4uLgoKMjAwNy0wMy0wMSAyMzo1NyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gdGhhdCB3ZSBtb3ZlZCB0byBTVk4KCjIwMDctMDItMjggMTU6MjcgIGR0czEyCgogICAqIENIQU5HRVMsIENoYW5nZUxvZywgTkVXUzoKCiAgIENoZWNrcG9pbnQgc3VtbWFyeSBvZiBDVlMgY2hhbmdlcywgcHJlcGFyYXRvcnkgZm9yIHRoZSBTVk4KICAgc3dpdGNoLgoKMjAwNy0wMi0yNyAxMzozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgQ0hBTkdFUzogTGludXg6IEJVRzogMTY2NjAwNTogRmFpbCB0byB3YWxrIGlwdjZJbnRlcmZhY2VUYWJsZSBvbiBMaW51eAoKMjAwNy0wMi0yNyAxMzowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBQQVRDSDogMTY2ODE3MTogc2tpcCB1bmtub3duIGNvbHMgaW4gbWluL21heCByYW5nZSBmb3IgdGFibGVzLCBpbnN0ZWFkIG9mIGVycm9yCgoyMDA3LTAyLTI3IDEyOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmg6CgogICBhZGQgaGVhZGVyIGZvciBlYXNpZXIgY29uZmlndXJlIC0td2l0aC1taWItbW9kdWxlCgoyMDA3LTAyLTI2IDE0OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFJlLWNvcnJlY3QgaW50ZXJwcmV0YXRpb24gb2YgIm51bGwgT0lEIiBpbiB0aGUgQWdlbnRYIHNwZWNzLgogICAoZm9yIHRoZSBsYXN0IHRpbWUsIEkgdHJ1c3QhKQoKMjAwNy0wMi0yNiAxNDozNyAgZHRzMTIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmg6CgogICBGaXggcmVmZXJlbmNlIHRvIE5ldC1TTk1QIGluY2x1ZGUgbG9jYXRpb25zCgoyMDA3LTAyLTI2IDEyOjQ3ICBkdHMxMgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgICAgU05NUC9NYWtlZmlsZS5QTCwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLAogICAgIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBQcm9tcHRpbmcgZm9yIGEgc2luZ2xlIGRpcmVjdG9yeSwgbm90IGFuIGFycmF5LgoKMjAwNy0wMi0yNiAxMTozMiAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE0Mjk0NzI6IFByb3RlY3QgYWdhaW5zdCBtaXNzaW5nIGluc3RhbmNlcyAoYW5kIGludmFsaWQgb2JqZWN0cykKCjIwMDctMDItMjYgMTE6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm1mZC5jb25mOgoKICAgRml4IGludmFsaWQgbWliMmMgZGlyZWN0aXZlLgoKMjAwNy0wMi0yNiAxMToxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Q29uZi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTQxNjI3NjogSGFuZGxlIGRlcGVuZGVuY3kgb24gTUlCIHBhcnNpbmcgQVBJLgoKMjAwNy0wMi0yMyAyMTo1MyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGFkZCBxdW90ZXMgdG8gZml4IHNoZWxsIHN5bnRheCBlcnJvciB3aGVuIGVtcHR5CgoyMDA3LTAyLTIyIDIyOjM1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTGFzdCBjb21taXQgYnJva2UgdGhlIGJ1aWxkLiBOb3cgZXNjYXBlIGJhY2tzbGFzaGVzIHByb3Blcmx5LgoKMjAwNy0wMi0yMiAxNTozOCAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBCVUc6IDEyNDcxNjQ6IERvY3VtZW50IHVzZSBvZiBPSUQgbWFjcm9zCgoyMDA3LTAyLTIyIDAwOjI4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwLzogaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jLAogICAgIHVjZC1zbm1wL3Byb2MuYzoKCiAgIENIQU5HRVM6IEFJWDogUEFUQ0g6IDE2NjUwNzk6IGZyb20gIk1pY2hhZWwgS3VrYXQiOiBBSVggcGF0Y2hlcyBmb3IgY3B1IHN0YXRzIGFuZCBwcm9jZXNzIG1vbml0b3JpbmcKCjIwMDctMDItMjEgMTY6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGxhbWUtbWFrZSBzeXN0ZW1zIHRoYXQgY2FuJ3QgaGFuZGxlIHdoaXRlc3BhY2UgdGVybWluYXRpbmcgd3JhcHBlZCBsaW5lcwoKMjAwNy0wMi0yMSAxNTozMyAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS50b3A6CgogICBDSEFOR0VTOiBXaW4zMjogQlVHOiAxNjYyOTg3OiBjb21waWxlIGVycm9yIG9uIEN5Z3dpbgoKMjAwNy0wMi0yMSAxMzo1NiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCB0b29scy5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogQlVHOiAxNjYwMDYxOiBWYWxpZGF0ZSBlbmdpbmVJRHMgbW9yZSBzdHJpY3RseS4KCjIwMDctMDItMjEgMTM6NDkgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMS5kZWYsIHNubXAuY29uZi41LmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTQwNzQ3NjogQ2xhcmlmeSBNSUIgcGFyc2luZyB0b2dnbGUgb3B0aW9ucyBhbmQgTUlCIGNvbW1lbnQgaGFuZGxpbmcuCgoyMDA3LTAyLTIxIDEzOjM3ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIENIQU5HRVM6IGJ1aWxkOiBCVUc6IDEwOTYxNjY6IEhhbmRsZSAtLXdpdGhvdXQtbG9nZmlsZSBjb3JyZWN0bHkuCgoyMDA3LTAyLTE5IDE2OjM0ICBkdHMxMgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgTWVudGlvbiByZW1vdmFsIGZyb20gQ1ZTIG9mIGRlbGV0ZWQgZmlsZXMKCjIwMDctMDItMTkgMTU6NTYgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBSZXdvcmsgcmVsZWFzZSBpbnN0cnVjdGlvbnMgdG8gdGFrZSBhY2NvdW50IG9mICJtYWtlcmVsZWFzZSIgc2NyaXB0CgoyMDA3LTAyLTE5IDEwOjQ5ICBkdHMxMgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgRG9uJ3QgYXNzdW1lIGxvY2FsIHVzZXJuYW1lcyBtYXRjaCBDVlMgYWNjb3VudCBuYW1lcy4KCjIwMDctMDItMTkgMTA6NDEgIGR0czEyCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBJbXByb3ZlIGxheW91dCBvZiBDSEFOR0VTIGluZm9ybWF0aW9uLgoKMjAwNy0wMi0xOSAxMDowNiAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBEb24ndCBpbnZva2UgJ3ZlcnNpb250YWcnIGZvciB0YWdnaW5nIHRoZSBDVlMgdHJlZS4KICAgSXQgZG9lc24ndCBoYW5kbGUgdGhpcyBhbnkgbW9yZS4gIChVc2UgJ21ha2VyZWxlYXNlJyBpbnN0ZWFkKQoKMjAwNy0wMi0xOSAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIERvbid0IGZhaWwgc2lsZW50bHkgd2hlbiBjYWxsZWQgdG8gdGFnIHRoZSBDVlMgdHJlZS4KICAgUmV0dXJuIGluZGljYXRpb24gb2YgZmFpbHVyZSB0byB0aGUgY2FsbGluZyBhcHBsaWNhdGlvbiAoZS5nLiBtYWtlKQoKMjAwNy0wMi0xNiAxMjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBSZXZlcnQgdG8gcHJldmlvdXMgIm51bGwgT0lEIiBpbnRlcnByZXRhdGlvbiAoYnV0IHdpdGggdGhlIGNvcnJlY3QgZW5jb2RpbmcpLgoKMjAwNy0wMi0xNSAxMTowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTYwMDI2MTogSGFuZGxlIG5vbi14ODYgL3Byb2MvY3B1aW5mbyBmb3JtYXQKICAgKEEgd29ya2Fyb3VuZCwgcmF0aGVyIHRoYW4gYSBmaXggLSB3ZSByZWFsbHkgbmVlZCB0byBwYXJzZSB0aGVzZQogICAgb3RoZXIgZm9ybWF0cyBwcm9wZXJseSBpbiB0aGUgaW5pdCByb3V0aW5lKQoKMjAwNy0wMi0xNSAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDb3JyZWN0IG1pc2ludGVycHJldGF0aW9uIG9mICJudWxsIE9JRCIgaW4gQWdlbnRYIHNwZWNzLgoKMjAwNy0wMi0xNSAwOTo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUmVqZWN0IG92ZXJseS1zaG9ydCBUcmFwIE9JRHMuCiAgIERvbid0IGNyYXNoIG91dCBjb21wbGV0ZWx5IG9uIGZhaWxlZCB2MTwtPnYyIHRyYXAgY29udmVyc2lvbnMuCgoyMDA3LTAyLTEyIDEyOjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE2MzM1OTU6IEZpeCBBZ2VudFggaGFuZGxpbmcgb2YgQ291bnRlcjY0IHZhbHVlcwoKMjAwNy0wMi0wOSAyMToxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliX21vZHVsZXMuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDEzOTc4OTU6IGluY2x1ZGUgbWlzc2luZyBpbnRlcmZhY2UgZGVjbGFyYXRpb25zCgoyMDA3LTAyLTA4IDE3OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIE5FV1M6IHNubXBkOiBwYXRjaCBmcm9tIFdvanRlayBKYXdvciB0byBoYW5kbGUgcm93IGRlbGV0aW9uIGlzc3VlcyBpbiBkYXRhc2V0IHRhYmxlcwoKMjAwNy0wMi0wNyAxNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLmgsIG1pYnMvSVBWNi1GTE9XLUxBQkVMLU1JQi50eHQKOgoKICAgYWRkZWQgdGhlIGZsb3cgbGFibGUgbWliLCB3aGljaCB0aGUgdHVubmVsLW1pYiByZWZlcnMgdG8KCjIwMDctMDItMDUgMjM6MDIgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSBwb3J0YWJpbGl0eSBmaXhlcwoKMjAwNy0wMi0wNSAyMjo1MCAgdGFuZGVycwoKICAgKiBkaXN0L2NoZWNrLWFwaS1jaGFuZ2U6CgogICB1c2UgL2Jpbi9zaCB1bmxlc3MgYmFzaCBmZWF0dXJlcyBhcmUgcmVhbGx5IG5lZWRlZAoKMjAwNy0wMi0wNSAyMTo1MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIG5vdGUgdGhhdCBjdXJyZW50IHNob3VsZCBiZSBidW1wZWQgYnkgNSB3aGVuIGJ1bXBlZAoKMjAwNy0wMi0wNSAyMTo0OSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICAtIG5vdGUgdGhhdCBjdXJyZW50IHNob3VsZCBiZSBidW1wZWQgYnkgNSB3aGVuIHVwZGF0ZWQKICAgLSBhZGQgcG9pbnRlciB0byBuZXcgY2hlY2stYXBpLWNoYW5nZXMgc2NyaXB0CgoyMDA3LTAyLTA1IDIxOjQ2ICByc3RvcnkKCiAgICogZGlzdC9jaGVjay1hcGktY2hhbmdlOgoKICAgc2ltcGxpc3RpYyBuZXcgc2NyaXB0IHRvIGhlbHAgY2hlY2sgZm9yIGFwaSBjaGFuZ2VzIGJldHdlZW4gcmVsZWFzZXMKCjIwMDctMDItMDUgMjE6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaDoKCiAgIG1ha2UgbmV3IHN0cnVjdCBtZW1iZXIgY29uZGl0aW9uYWwsIHNpbmNlIHVzZSBpcyBjb25kaXRpb25hbAoKMjAwNy0wMi0wNSAyMToyMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBtb3ZlIGZ1bmN0aW9uIGNhbGwgb3V0IG9mIGFzc2VydAoKMjAwNy0wMi0wNSAxNToxNiAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY0MTg5NTogRXh0ZW5kIHNob3J0IHZpZXcgbWFza3MgKGFzIHBlciBSRkMgc3BlY3MpCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IE1pY2hhZWwgS2lya2hhbS4KCjIwMDctMDItMDUgMTQ6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmM6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE2MzkzNjA6IEZpeCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlIHJvdyBjcmVhdGlvbi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMi0wNSAxMTowMSAgZHRzMTIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgRml4IGNvbXBpbGF0aW9uIGlmIExPQ0tfUEVSX0NBTExCQUNLX1NVQklEIG5vdCBkZWZpbmVkLgogICBSZXBvcnRlZCBieSBFbWkgWWFuYWdpCgoyMDA3LTAyLTA1IDA5OjQ4ICBkdHMxMgoKICAgKiBGQVE6CgogICBTcGVsbGluZyBjb3JyZWN0aW9uOiAnc3VwZXJjZWRlZCcgLT4gJ3N1cGVyc2VkZWQnCiAgIChPaCwgdGhlIHNoYW1lIG9mIGl0ISkKCjIwMDctMDEtMzEgMTM6NTEgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUudG9wOgoKICAgQ0hBTkdFUzogYnVpbGQ6IEJVRzogMTY0Nzk3NjogQ3lnd2luL01pbkdXIFdpbmRvd3MgYnVpbGQgZmFpbHMgZHVlIHRvIGxpYnRvb2wgZXJyb3IKCjIwMDctMDEtMzAgMTM6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IHlldCBhbm90aGVyIGZpeCB0byBhZGRyZXNzIGJ1aWxkIGlzc3VlcyB3aXRoIGV0aHRvb2wgKG9uIFJIOSkuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTAxLTMwIDA5OjEwICBkdHMxMgoKICAgKiBGQVE6CgogICBDbGFyaWZ5IHdoZW4gc3ltbGluayBmaXggaXMvaXNuJ3QgYXBwcm9wcmlhdGUuICBTeW5jaCB3aXRoIFdpa2kuCgoyMDA3LTAxLTI5IDExOjEyICBkdHMxMgoKICAgKiBGQVE6CgogICBBdXRoZW50aWNhdGVkIFNOTVB2MyByZXF1ZXN0cyBzdGlsbCBuZWVkIGEgdXNlcm5hbWUuICAoU3luY2ggd2l0aCBXaWtpKQoKMjAwNy0wMS0yOSAxMTowMyAgdGFuZGVycwoKICAgKiBweXRob24vbmV0c25tcC9jbGllbnRfaW50Zi5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMjggMTM6MzYgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IGJhZCB0ZXN0CgoyMDA3LTAxLTI4IDEzOjA2ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbmFtZSB2YXJpYWJsZSB0byByZXNvbHZlIG5hbWUgY2xhc2ggYW5kIHRvIHVuYnJlYWsgbmlnaHRseSBidWlsZHMgb24gU29sYXJpcwoKMjAwNy0wMS0yOCAxMjo1MiAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMS0yNyAxNDo0MCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgZml4IHR5cG8KCjIwMDctMDEtMjcgMTQ6MjMgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNy0wMS0yNiAxMToxNSAgdGFuZGVycwoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHkKLCBuc2ItcGFja2FnZToKCiAgIG1vcmUgQm91cm5lIHNoZWxsIGNvbXBhdGliaWxpdHkgZml4ZXMKCjIwMDctMDEtMjUgMjI6NDEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDSEFOR0VTOiBGcmVlQlNEOiBmaXggY29uZmlndXJlIHdhcm5pbmcgZm9yIHN5cy9jb25mLmgKCjIwMDctMDEtMjUgMjI6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlOgoKICAgcmVwbGFjZSBieSBtb3JlIHJlYXNvbmFibGUgY29udGVudAoKMjAwNy0wMS0yNSAyMjowNSAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKLCBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgZml4IHR5cG8KCjIwMDctMDEtMjUgMjE6MzEgIHRhbmRlcnMKCiAgICogUkVBRE1FLmlyaXg6CgogICBDSEFOR0VTOiBkb2N1bWVudGF0aW9uOiBQQVRDSDogMTY0NDczNTogZnJvbSAiQnJlbnQgQmljZSI6IGFkZCBnY2MgYnVpbGQgaW5zdHJ1Y3Rpb25zIGZvciBJUklYCgoyMDA3LTAxLTI1IDIxOjExICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0NDcxNDogZnJvbSAiTGVsYW5kIFdhbGxhY2UiOiByZXBsYWNlIGxhc3QgcmVtYWluaW5nIGluc3RhbmNlIG9mIGRlcHJlY2F0ZWQgY29weV93b3JkIGJ5IGNvcHlfbndvcmQKCjIwMDctMDEtMjUgMTU6MzAgIHRhbmRlcnMKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5CiwgbnNiLXBhY2thZ2UsIG5zYi1wbGF0Zm9ybToKCiAgIG1hbnkgQm91cm5lIHNoZWxsIHBvcnRhYmlsaXR5IGZpeGVzCgoyMDA3LTAxLTI0IDE2OjM5ICBkdHMxMgoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHkKLCBuc2ItcGFja2FnZSwgbnNiLXBsYXRmb3JtOgoKICAgUHJlLVBvc2l4IEJvdXJuZSBzaGVsbCBjb21wYXRhYmlsaXR5LgoKMjAwNy0wMS0yNCAxNDowMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgVHdlYWsgZGVidWcgb3V0cHV0CgoyMDA3LTAxLTI0IDEzOjU4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBTaGVsbHNjcmlwdCBwb3J0YWJpbGl0eS4gIChFdmVyeXRoaW5nIGhhcyAvYmluL3NoKQoKMjAwNy0wMS0yNCAxMzo0OSAgZHRzMTIKCiAgICogZGlzdC86IGN2c3Nob3csIGN2c3VwLCBuc2ItY29uZmlnLAogICAgIG5zYi1mdW5jdGlvbnMsIG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZSwKICAgICBuc2ItcGxhdGZvcm06CgogICBJbXByb3ZlIHNoZWxsLXNjcmlwdCBwb3J0YWJpbGl0eS4gKEV2ZXJ5dGhpbmcgaGFzIC9iaW4vc2ghKQoKMjAwNy0wMS0yNCAxMzo0MCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcF9jbGllbnQuYzoKCiAgIEV4dHJhIGRlYnVnZ2luZyBvdXRwdXQKCjIwMDctMDEtMjQgMTM6MzggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBQcmVsaW1pbmFyeSB0YWJsZSB1bnJlZ2lzdHJhdGlvbiBBUEkuCgoyMDA3LTAxLTI0IDEzOjExICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIE1vdmUgaG9zdG5hbWUgdHJhbnNsYXRpb24gaW50byB0aGUgdHJhbnNwb3J0LXNwZWNpZmljIGxpYnJhcnkgcm91dGluZXMuCiAgIChXaGVyZSBpdCBiZWxvbmdzISkKCjIwMDctMDEtMjQgMTM6MDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICAgIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQmFzaWMgZnJhbWV3b3JrIGZvciB0cmFuc3BvcnQtc3BlY2lmaWMgdHJhbnNsYXRpb24gb2YgaG9zdG5hbWVzLgoKMjAwNy0wMS0yNCAxMjoyNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBTdXBwcmVzcyBhc3NvcnRlZCB3YXJuaW5ncy4KCjIwMDctMDEtMjQgMTI6MTggIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgbWFrZSBzdXJlIHVpbnRwdHJfdCBpcyBhbHdheXMgZGVmaW5lZCBhcyB1bnNpZ25lZC4gU3BvdHRlZCBieSBEYXZpZCBGb3JkLgoKMjAwNy0wMS0yMyAyMjo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgZG9uJ3QgdHJ5IHRvIHJlbW92ZSBhIHJvdyB0aGF0IHdhcyBuZXZlciBpbnNlcnRlZAoKMjAwNy0wMS0yMyAyMjozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGRvbid0IHRyeSB0byByZW1vdmUgYSByb3cgdGhhdCB3YXMgbmV2ZXIgaW5zZXJ0ZWQKCjIwMDctMDEtMjMgMTY6MjIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYzOTI4MjogU2F2ZSBwZXJzaXN0ZW50IHNubXBUYXJnZXRQYXJhbXNUYWJsZSBzZXR0aW5ncyBjb3JyZWN0bHkuCiAgIEZpeCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjM3Mjg3OiBIYW5kbGUgbXVsdGlwbGUgdGFyZ2V0IHRhZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNjoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNjM3Mjg3OiBIYW5kbGUgbXVsdGlwbGUgdGFyZ2V0IHRhZ3MgY29ycmVjdGx5LgogICBGaXggcHJvdmlkZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0yMyAxNTo0NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MzQ2MjA6IEZpeCBsZWFrcyBmcm9tIGNyZWF0ZV91c2VyX2Zyb21fc2Vzc2lvbiBmYWlsdXJlLgogICBQYXRjaCBwcm92aWRlZCBieSBNaWNoYWVsIEtpcmtoYW0uCgoyMDA3LTAxLTIzIDE0OjUxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIENIQU5HRVM6IHNubXB0cmFwZDogQlVHOiAxNjM4MjI1OiBGaXggaW50ZXJwcmV0YXRpb24gb2YgdHJhbnNwb3J0IGFkZHJlc3MgZGF0YS4KICAgKEtlZXAgdGhpcyBjb25zaXN0ZW50IHdpdGggc25tcFVEUERvbWFpbi5jKQogICBUaGlzIGRvZXMgbm90IGZlZWwgdGhlIHJpZ2h0IHdheSB0byBoYW5kbGUgdGhpcyEKCjIwMDctMDEtMjMgMTQ6MTAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEJyaW5nIHRyYXAgaGFuZGxpbmcgaW4gbGluZSB3aXRoIFJGQyAyNTc2LzM1ODQgLSBkcm9wIFNOTVB2MSB0cmFwcwogICBjb250YWluaW5nIENvdW50ZXI2NCB2YXJiaW5kcy4gIFJlcXVlc3RlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0yMiAyMjozMCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTY0MTk3MjogZnJvbSBtYWdmcjogYWRkIG1pc3NpbmcgY29uc3QKCjIwMDctMDEtMjIgMTY6NDAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTY0MTMzMjogSW5jbHVkZSBtaXNzaW5nIGFnZW50IGNvbmZpZyBkZWZpbml0aW9ucy4KCjIwMDctMDEtMjIgMTY6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICBmaXggdHlwbyBvdmVyd3JpdGluZyBjb250YWluZXIgbmFtZQoKMjAwNy0wMS0yMiAxNjoxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9hZG1pbi5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjQxNjg1OiBIYW5kbGUgdW5yZXNwb25zaXZlIEFnZW50WCBzdWJhZ2VudHMgbW9yZSByZWxpYWJseS4KICAgRml4IHByb3ZpZGVkIGJ5IEpvc2VmIE1vZWxsZXJzCgoyMDA3LTAxLTIyIDE1OjUxICBkdHMxMgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNjQwMTE0OiBEb24ndCBzdG9yZSB0cmFpbGluZyBudWxsIGNoYXJhY3Rlci4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xOSAxNjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmM6CgogICBORVdTOiBCVUdTIDE2MzM0ODM6IFN1cHBvcnQgQ1BVIEhBTCBvbiBGcmVlQlNENC54CiAgIChiZWZvcmUgQ1BVIGRlZmluaXRpb25zIHdlcmUgbW92ZWQgdG8gPHN5cy9yZXNvdXJjZS5oPikKCjIwMDctMDEtMTkgMTY6NTMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogRnJlZUJTRDogQlVHOiAxNjMzNDgzOiBTdXBwb3J0IENQVSBIQUwgb24gRnJlZUJTRDQueAogICAoYmVmb3JlIENQVSBkZWZpbml0aW9ucyB3ZXJlIG1vdmVkIHRvIDxzeXMvcmVzb3VyY2UuaD4pCgoyMDA3LTAxLTE5IDE2OjE1ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgbGlicmFyeSBsYXllcmluZyBpbXByb3ZlbWVudHM6ICptb3ZlKiAocmF0aGVyIHRoYW4gY29weSkgZ2xvYmFsIHZhcmlhYmxlcwogICBmcm9tIHNubXB0cmFwZCB0byBsaWJuZXRzbm1wdHJhcGQKCjIwMDctMDEtMTkgMTQ6MTggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgQ0hBTkdFUzogTGludXg6IGZpeCBldGh0b29sIGNvbmZpZ3VyZSBjaGVjayBmb3IgcmVjZW50IHN5c3RlbXMgKGUuZy4gRkM2LCBSSEVMNSkuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUuCgoyMDA3LTAxLTE5IDExOjI1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBDSEFOR0VTOiBidWlsZDogYWRkIGNvbmZpZ3VyZSBjaGVjayBmb3IgaGFzbW50b3B0IHRvIGZpeCB0aGUgYnVpbGQgb24gc3lzdGVtcyB0aGF0IGxhY2sgaXQKCjIwMDctMDEtMTggMTI6NTAgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGxpYnJhcnkgbGF5ZXJpbmcgaW1wcm92ZW1lbnRzOiBtb3ZlIGdsb2JhbCB2YXJpYWJsZXMgZnJvbSBzbm1wdHJhcGQgdG8gbGlibmV0c25tcHRyYXBkCgoyMDA3LTAxLTE4IDExOjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgbWFuL3NubXB0cmFwZC44LmRlZiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZHJvcCAiLWUiL3ByaW50RXZlbnROdW1iZXJzIHN1cHBvcnQgZm9yIHNubXB0cmFwZCAob2Jzb2xldGUsIGRlcHJlY2F0ZWQgYW5kIGJyZWFrcyBsaWJyYXJ5IGxheWVyaW5nKQoKMjAwNy0wMS0xNiAxMDowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgUmVzZXQgJ3NlbmQnIGZsYWcgdG8gY29uc2lkZXIgZWFjaCBzaW5rIGluZGl2aWR1YWxseS4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xNiAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHNlbmRpbmcgbWlzbWF0Y2hlZCB0cmFwcyAodjEgdHJhcCBvbiB2MiBzaW5rKS4KICAgUmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtLgoKMjAwNy0wMS0xNiAwOTo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBEb24ndCBoYXJkY29kZSB0aGUgc2l6ZSBvZiBjb3VudGVyNjQgc3RydWN0dXJlIChtYXkgYmUgd3Jvbmcgb24gNjQtYml0IGJveGVzKQoKMjAwNy0wMS0xNiAwOTowMCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRXh0cmEgZGVidWdnaW5nIG91dHB1dC4KCjIwMDctMDEtMTEgMjI6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jCjoKCiAgIENIQU5HRVM6IHNubXBsaWI6IGxpYnJhcnkgbGF5ZXJpbmcgaW1wcm92ZW1lbnRzOiBpbnRyb2R1Y2UgbmV0c25tcF9ta3RlbXAgdG8gcHJldmVudCBsaWJuZXRzbm1wYWdlbnQgZnJvbSBkZXBlbmRpbmcgb24gbGlibmV0c25tcG1pYnMKCjIwMDctMDEtMTEgMjE6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGNoYW5nZWQgYXV0b2NvbmYgcmVxIHRvIDIuNjEKCjIwMDctMDEtMTEgMjE6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgICAgc25tcFNURERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsCiAgICAgc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBfc2VydmljZS5jLAogICAgIHNubXBfdHJhbnNwb3J0LmM6CgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUgdG8gbWFrZSB0aGUgdHJhbnNwb3J0IHN5c3RlbXMgQysrIGNvbXBhdGlibGUKCjIwMDctMDEtMTEgMDk6MTcgIGR0czEyCgogICAqIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBGaXggc29tZSBtYW5nbGVkIHRleHQuCgoyMDA3LTAxLTEwIDIwOjU4ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIENIQU5HRVM6IGRvY3VtZW50YXRpb246IEJVRzogMTYxNDEwNDogYnJva2VuIHNubXBkKDgpIG1hbnVhbCBwYWdlIGluIDUuNAoKMjAwNy0wMS0wOSAyMTo1MCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBDSEFOR0VTOiBTb2xhcmlzOiBJRi1NSUIgZml4OiBhZGQgbWlzc2luZyByZXR1cm4gYXQgZW5kIG9mIGdldF9pZl9zdGF0cwoKMjAwNy0wMS0wOCAwODozMCAgdGFuZGVycwoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIENIQU5HRVM6IGJ1aWxkOiBsaWJyYXJ5IGxheWVyaW5nIGltcHJvdmVtZW50czogYnVpbGQgbGlicmFyaWVzIGluIHRoZSBjb3JyZWN0IG9yZGVyIChsaWJuZXRzbm1wYWdlbnQgYmVmb3JlIGxpYm5ldHNubXBoZWxwZXJzIGJlZm9yZSBsaWJuZXRzbm1wbWlicykKCjIwMDctMDEtMDcgMTk6NDcgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VydmljZS5oOgoKICAgYWRkIG1pc3NpbmcgZGVjbGFyYXRpb24gZm9yIG5ldHNubXBfcmVnaXN0ZXJfc2VydmljZV9oYW5kbGVycyAoZnJvbSBtYWdmcikKCjIwMDctMDEtMDYgMDA6NTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgQ0hBTkdFUzogU29sYXJpczogQlVHOiAxNjI2MTUzOiBubyBoclNXUnVuIGluZm9ybWF0aW9ucyBvbiBTb2xhcmlzIHpvbmVzCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IEtsYXVzIE11ZWhsZmVsZAoKMjAwNy0wMS0wNiAwMDozMCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQ0hBTkdFUzogcGVybDogQlVHOiAxNDUwNjY5OiBQQVRDSDogMTYyNzk0OTogZnJvbSBtYXJ0aW45ODc6IGEgcGVybCBhZ2VudHggY29uc3VtZXMgbWVtb3J5CgoyMDA3LTAxLTAzIDIyOjQyICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZ2V0IHJpZCBvZiBDKysgY29tbWVudHMKCjIwMDctMDEtMDIgMjM6MzMgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEJVRzogQ292ZXJpdHkgIzE3MzogcmVtb3ZlIHN1cGVyZmx1b3VzIE5VTEwgY2hlY2sgKGFscmVhZHkgZGVyZWZlcmVuY2VkIGVhcmxpZXIgYW55d2F5KQoKMjAwNy0wMS0wMiAyMzowOCAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgb25seSBsb2cgYSBtZXNzYWdlIHdoZW4gdGhlIG1pYl9pbmRleGVzIGRpcmVjdG9yeSBpcyAqcmVhbGx5KiBjcmVhdGVkCgoyMDA3LTAxLTAyIDIyOjUzICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQlVHOiBDb3Zlcml0eSAjMTc4OiBuZXZlciBwYXNzIGEgTlVMTCBvaWRfYXJyX2xlbiBwb2ludGVyIHRvIF9fY29uY2F0X29pZF9zdHIgKHdoaWNoIGRlcmVmZXJlbmNlcyBpdCkKCjIwMDctMDEtMDIgMjI6MDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTkzOiBwcm9wZXJseSBpbml0aWFsaXplIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNlCgoyMDA3LTAxLTAyIDIwOjEzICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBiYWNrIG91dCBwcmV2aW91cyBiYWQgY2hhbmdlIHRvIGFnZW50IHJlZ2lzdHJ5CgoyMDA3LTAxLTAyIDE5OjUyICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTYwMTQ1MzogZnJvbSAiUm9iZXJ0IFdpbGNveCI6IER5bmFtaWMgTWVtb3J5IGZhaWx1cmUgaGFuZGxpbmcgaW1wcm92ZW1lbnRzCgoyMDA3LTAxLTAyIDE5OjUyICB0YW5kZXJzCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvaGVscGVycy9udWxsLmMsCiAgICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYwosIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgQ0hBTkdFUzogUEFUQ0g6IDE2MDE0NTM6IGZyb20gIlJvYmVydCBXaWxjb3giOiBEeW5hbWljIE1lbW9yeSBmYWlsdXJlIGhhbmRsaW5nIGltcHJvdmVtZW50cwoKMjAwNy0wMS0wMiAxNzo1NiAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBMRF9SVU5fUEFUSCBjb21tZW50IGZvciBweXRob24KCjIwMDctMDEtMDIgMTc6MzggIHRhbmRlcnMKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIG5ldC1zbm1wLWNvbmZpZy5pbgo6CgogICBDSEFOR0VTOiBidWlsZDogdXBkYXRlIHRvIGF1dG9jb25mIDIuNjEKCjIwMDctMDEtMDIgMTc6MjMgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW4sIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2tmcmVlYnNkLmg6CgogICBORVdTOiBQb3J0czogUEFUQ0g6IDE2MjM4NzQ6IGZyb20gIlBldHIgU2FsaW5nZXIiOiBhZGQgR05VL2tGcmVlQlNEIHN1cHBvcnQKCjIwMDctMDEtMDIgMTc6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgQ0hBTkdFUzogYnVpbGQ6IGFkZCB3b3JrYXJvdW5kIGZvciBBQ19GVU5DX0dFVE1OVEVOVCgpIGJ1ZyBpbiBhdXRvY29uZiAyLjYwYiBhbmQgMi42MSAoc2VlIERlYmlhbiBidWdzICM0MDMyNDMsICM0MDMwNzkpCgoyMDA3LTAxLTAyIDE2OjQ4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENIQU5HRVM6IG1pYjJjOiBCVUc6IDE1ODI5NzI6IEhhbmRsZSBAd2hpbGVAL0BlbmRAIHByb3Blcmx5LgogICBQYXRjaCBwcm92aWRlZCBieSBEb3VnbGFzIERlYW4KCjIwMDctMDEtMDIgMTY6MDAgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcFVuaXhEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IEJVRzogMTYwMDE3MTogU3VwcG9ydCBsb25nZXIgY29tbXVuaXR5IHN0cmluZ3MgaW4gVkFDTSBjb25maWcuCiAgIFBhdGNoIHByb3ZpZGVkIGJ5IFJvYmVydCBXaWxjb3gKCjIwMDctMDEtMDIgMTE6MjQgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUc6IDE1NDY4MTc6IEZpeCBzbm1wRW50ZXJwcmlzZSB2YXJiaW5kIHdoZW4gZm9yd2FyZGluZyB2MSB0cmFwcy4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgUGFibG8gUGFzc2VyYS4KCjIwMDctMDEtMDIgMTA6MzQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjI1MTM1OiBjb25maWd1cmUgbG9jYXRpb24gb2YgcHl0aG9uIGludGVycHJldGVyCiAgIFByb3ZpZGVkIGJ5IEFuZHJldyBMYW5nbWVhZAoKMjAwNy0wMS0wMiAxMDozNCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcDoKCiAgIE5FV1M6IGNvbmZpZ3VyZTogUEFUQ0ggMTYyNTEzNTogY29uZmlndXJlIGxvY2F0aW9uIG9mIHB5dGhvbiBpbnRlcnByZXRlcgogICBQcm92aWRlZCBieSBBbmRyZXcgTGFuZ21lYWQKCjIwMDctMDEtMDIgMTA6MjIgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgQ0hBTkdFUzogYnVpbGQ6IFBBVENIOiAxNjI0NDA2OiBvcHRpb24gdG8gaGFyZGNvZGUgbG9jYXRpb24gb2YgbW91bnQgdGFibGUKICAgU3VibWl0dGVkIGJ5IEpvY2hlbgoKMjAwNy0wMS0wMSAxNzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNjAxMTg4LCBCVUc6IDE2MDA0MzI6IEhhbmRsZSBzaWduYWxzIHByb3Blcmx5IHdoZW4gcmVzdGFydGluZyB0aGUgYWdlbnQuCiAgIEZpeCBwcm92aWRlZCBieSBMb2ljIERvbWFpZ25lLgoKMjAwNy0wMS0wMSAxNzozNSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEhhbmRsZSBub24td3JpdGFibGUgTUlCIGluZGV4ZXMgKGUuZy4gcnVuIGFzIG5vbi1wcml2aWxlZ2VkIHVzZXIpCgoyMDA3LTAxLTAxIDE2OjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jCjoKCiAgIE5FV1M6IHNubXBsaWI6IFBBVENIRVMgMTU5MjcwNjogRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xvbmluZyB2YXJiaW5kcy4KICAgQmFzZWQgb24gYSBzdWdnZXN0aW9uIGJ5IFN0ZXZlbiBEb3JpZ290dGkuCgoyMDA3LTAxLTAxIDE2OjA5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU5MjcwNjogRml4IG1lbW9yeSBsZWFrIHdoZW4gY2xvbmluZyB2YXJiaW5kcy4KICAgQmFzZWQgb24gYSBzdWdnZXN0aW9uIGJ5IFN0ZXZlbiBEb3JpZ290dGkuCgoyMDA3LTAxLTAxIDE1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBORVdTOiBhZ2VudDogUEFUQ0ggMTU4NTE0NjogRXh0ZW5kIHJhbmdlIG9mIGF2YWlsYWJsZSBlcnJvciBjb2RlcwogICBTdWJtaXR0ZWQgYnkgQW50aG9ueSBOb3ZhdHNpcy4KCjIwMDctMDEtMDEgMTU6MjkgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSDogMTU0ODY3MDogRml4IHJhbmdlIGNoZWNrcyBmb3IgdW5zaWduZWQgaW50ZWdlcnMKICAgRnJvbSBLZXZpbiBIdW1waHJpZXMuIFNlZSBodHRwOi8vYnVncy5kZWJpYW4ub3JnL2NnaS1iaW4vYnVncmVwb3J0LmNnaT9idWc9MzgzMzgwCgoyMDA3LTAxLTAxIDE1OjE2ICBkdHMxMgoKICAgKiBhcHBzLzogc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmM6CgogICBNb3ZlIGdsb2JhbCAnZmFpbHVyZXMnIHZhcmlhYmxlIGNsb3NlciB0byB3aGVyZSBpdCBpcyB1c2VkLgogICBDSEFOR0VTOiBhcHBzOiBQQVRDSDogMTUyOTUyMzogQ2xvc2UgU05NUCBzZXNzaW9uIG9uIGZhaWx1cmUuCgoyMDA3LTAxLTAxIDE0OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfc2VydmljZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHBvdGVudGlhbCBkb3VibGUgZGVsZXRlLgogICBQYXRjaCBwcm92aWRlZCBieSBNYWdudXMgRnJvbXJlaWRlLgoKMjAwNy0wMS0wMSAxNDoyMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICAgIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1haW50YWluIE1JQiBkaXJlY3RvcnkgaW5kZXggZmlsZXMgdW5kZXIgL3Zhci9uZXQtc25tcAogICAoaW4gbGluZSB3aXRoIEZpbGUgSGllcmFyY2h5IFN0YW5kYXJkIHNwZWNpZmljYXRpb25zKQogICBTZWUgaHR0cDovL2J1Z3MuZGViaWFuLm9yZy9jZ2ktYmluL2J1Z3JlcG9ydC5jZ2k/YnVnPTM4OTQzNAogICBhbmQgZGlzY3Vzc2lvbiAiTUlCcyBpbiBuZXQtc25tcCIgb24gY29kZXJzIGxpc3QgKE9jdCAyMDA2KQoKMjAwNy0wMS0wMSAxMToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgRW5zdXJlIHN5c09SRGVzY3JpcHRpb25zIGFyZSBudWxsLXRlcm1pbmF0ZWQsIHNvIHRoZXkgY2FuIGJlCiAgIHNhZmVseSBwYXNzZWQgdG8gJ3N0cmR1cCgpJy4gIFJlcG9ydGVkIGJ5IFdvbGZnYW5nIFBlZG90LgoKMjAwNi0xMi0yOSAxNzoyNSAgZHRzMTIKCiAgICogRkFROgoKICAgU3luY2hyb25pc2Ugd2l0aCBXaWtpIHZlcnNpb24uCgoyMDA2LTEyLTI4IDIzOjI5ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQ0hBTkdFUzogc25tcGxpYjogUEFUQ0g6IDE2MTY5MTI6IGZyb20gIk1hZ251cyBGcm9tcmVpZGUiOiBmaXggbWVtb3J5IGxlYWsgaW4gc25tcF91ZHBfdHJhbnNwb3J0CgoyMDA2LTEyLTI4IDIzOjAwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIENIQU5HRVM6IFNvbGFyaXM6IFBBVENIOiAxNjIzNDQ3OiBmcm9tICJIcnZvamUgSGFiamFuaWMiOiBoclNXUnVuIGZpeDogPGV4aXRlZD4gaW5zdGVhZCBvZiBlbmRPZlRhYmxlIGZvciB0ZXJtaW5hdGVkIHByb2Nlc3NlcwoKMjAwNi0xMi0yNyAxOToxNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBmaXggZXh0ZXJuYWwgcmVmZXJlbmNlIHRvIE5FVFNOTVBfS0xPT0tVUCBvbiBIUC1VWCAxMC4yMCAobWF5YmUgb3RoZXJzKQoKMjAwNi0xMi0yNiAxNjo1MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0hBTkdFUzogV2luMzI6IFBBVENIOiAxNjIyMDgwOiBmcm9tIEdydWVuaW5nZXIgQTogcGFzcyBXaW4zMiBoYW5kbGVzIHJlbWFpbiBvcGVuLgoKMjAwNi0xMi0xNyAxODowMSAgYWxleF9iCgogICAqIHdpbjMyLzogTWFrZWZpbGUtYXBwcy5pbiwgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sCiAgICAgc25tcGQvTWFrZWZpbGUuaW4sIHNubXBkc2RrL01ha2VmaWxlLmluLAogICAgIHNubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBBZGQgZ2RpMzIubGliIHRvIGZpeCBsaW5raW5nIHByb2JsZW0gd2hlbiB1c2luZyB0aGUgc3RhdGljIHZlcnNpb24gb2YgdGhlCiAgIFNTTCBsaWJyYXJpZXMuICBUaGFua3MgdG8gU2ltb24gRWR3YXJkcyBmb3IgdGhlIGZpeC4KCjIwMDYtMTItMTcgMTY6NTEgIGFsZXhfYgoKICAgKiBGQVE6CgogICBVcGRhdGUgV2luZG93cyBpbmZvIGluIHRoZSBGQVEKCjIwMDYtMTItMTIgMjM6NTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jOgoKICAgQ0hBTkdFUzogTGludXg6IFBBVENIOiAxNTgxMjk0OiBmcm9tICJNaWNoYWVsIFRhdGFyaW5vdiI6IGhvc3QtcmVzb3VyY2VzIGltcHJvdmVtZW50cwoKMjAwNi0xMi0xMiAyMToyNyAgdGFuZGVycwoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICByZS1hZGQgVURQX0FERFJFU1NFU19JTl9IT1NUX09SREVSCgoyMDA2LTEyLTEyIDIxOjAxICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgc3luYyB3aXRoIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCgoyMDA2LTEyLTEyIDIwOjMxICB0YW5kZXJzCgogICAqIHdpbjMyL0NvbmZpZ3VyZToKCiAgIENIQU5HRVM6IFdpbjMyOiBmaXggd2luMzIvQ29uZmlndXJlIC0td2l0aC1pcHY2CgoyMDA2LTEyLTEyIDE4OjEwICB0YW5kZXJzCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgTkVXUzogV2luMzI6IGZpeCBBRVMgc3VwcG9ydAoKMjAwNi0xMi0xMiAwMzowMSAgYWxleF9iCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgQWRkIHZlcnNpb24gdG8gRkFRLmh0bWwuCgoyMDA2LTEyLTA5IDE3OjExICBhbGV4X2IKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG1ha2VfaW5kZXgucGwsIG1hbl9zZWN0aW9ucy50eHQKOgoKICAgLUNyZWF0ZSBodG1sIHBhZ2VzIGZvciBBTEwgbWFuIHBhZ2VzLgogICAtSW1wcm92ZSBlcnJvciBtZXNzYWdlIHdoZW4gY3JlYXRpbmcgdGhlIGluZGV4Lmh0bWwgZmlsZS4KCjIwMDYtMTItMDkgMTc6MDYgIGFsZXhfYgoKICAgKiBsb2NhbC86IGh0bWwtYWRkLWhlYWRlci1mb290ZXIucGwsIGh0bWwtdGV4dGZpbGUtZml4LnBsCjoKCiAgIEFkZCB0aWR5IGNvbW1hbmQgbGluZSBvcHRpb24gYW5kIGFkZCBtaXNzaW5nIFJFQURNRSBmaWxlcy4KCjIwMDYtMTItMDkgMDA6MTYgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBkYXJ3aW44LmgsIGRhcndpbjkuaDoKCiAgIENIQU5HRVM6IE1hY09TWDogUEFUQ0g6IDE2MDA0NTM6IGZyb20gIkNocmlzIEphbGJlcnQiOiBPUyBYIGNvbXBpbGUtdGltZSBlbmRpYW4gZGV0ZXJtaW5hdGlvbgoKMjAwNi0xMi0wOCAyMjo0NyAgdGFuZGVycwoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgc29tZSBtb3JlIHBvc3QtcmVsZWFzZSB0YXNrcwoKMjAwNi0xMi0wOCAyMjoyNiAgdGFuZGVycwoKICAgKiBtYW4vbmV0c25tcF9hZ2VudC4zLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMwosIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfY2FsbGJhY2suMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMKLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgbWFuL25ldHNubXBfZGVidWcuMwosIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbWFuL25ldHNubXBfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLAogICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMKLCBtYW4vbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgICAgbWFuL25ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiwgbWFuL25ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX29pZF9zdGFzaC4zLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbWFuL25ldHNubXBfcmVhZF9jb25maWcuMywgbWFuL25ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbWFuL25ldHNubXBfcm93X21lcmdlLjMsIG1hbi9uZXRzbm1wX3NjYWxhci4zLAogICAgIG1hbi9uZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBtYW4vbmV0c25tcF9zZXJpYWxpemUuMwosIG1hbi9uZXRzbm1wX3NubXBfYWdlbnQuMywgbWFuL25ldHNubXBfc25tcF9hbGFybS4zCiwgbWFuL25ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbWFuL25ldHNubXBfc25tcF9wZHUuMywKICAgICBtYW4vbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbWFuL25ldHNubXBfc3Rhc2hfY2FjaGUuMwosIG1hbi9uZXRzbm1wX3N0YXNoX3RvX25leHQuMywgbWFuL25ldHNubXBfdGFibGUuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgICBtYW4vbmV0c25tcF90YWJsZV9nZW5lcmljLjMsIG1hbi9uZXRzbm1wX3RhYmxlX2luZGV4ZXMuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMwosIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zCiwgbWFuL25ldHNubXBfd2F0Y2hlci4zLCBwZXJsL0FTTi9BU04ucG0sCiAgICAgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSwgcGVybC9PSUQvT0lELnBtLAogICAgIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0KLCBwZXJsL2FnZW50L2FnZW50LnBtLCBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbQosIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBjb25maWd1cmUsCiAgICAgY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmYsIHNlZHNjcmlwdC5pbiwKICAgICBkaXN0L01ha2VmaWxlLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLCBSRUFETUU6CgogICAtIHZlcnNpb24gdGFnICggNS41LmRldiApCgoyMDA2LTEyLTA4IDIyOjIwICB0YW5kZXJzCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBmaXggZGlzdC9NYWtlZmlsZSBtdW5naW5nCgoyMDA2LTEyLTA4IDE0OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBORVdTOiBCVUc6IDE2MTE1MjQ6IGZpeCB0Y3AgY29ubmVjdGlvbiB0YWJsZSBmZCBsZWFrCgoyMDA2LTEyLTA4IDEzOjE3ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtOgoKICAgcmV2ZXJ0IHVuaW5mb3JtZWQgdmVyc2lvbiBjaGFuZ2UKCjIwMDYtMTItMDcgMjE6NTAgIHVpZDM5MDM5CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBTTk1QLnBtLCBTTk1QLnhzLAogICAgIHQvY29uZi50OgoKICAgY2xlYW4gdXAgY29tcGlsZSBhbmQgZml4IHRlc3RzCgoyMDA2LTEyLTA3IDE2OjQ4ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY29tbWVudCBmaXgKCjIwMDYtMTItMDcgMTU6NTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgY3B1L2NwdV9tYWNoLmMsCiAgICAgY3B1L2NwdV9tYWNoLmg6CgogICBORVdTOiBNYWNPU1g6IFBBVENIOiAxNjAwNTIyOiBmcm9tICJCaWxsIEZlbm5lciI6IENQVSBIQUwgaW1wbGVtZW50YXRpb24gZm9yIG1hY2gvZGFyd2luCgoyMDA2LTEyLTA3IDEzOjEwICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogUEFUQ0g6IDE2MDQ1ODA6IFNOTVAoMykgbWFudWFsIHBhZ2UgY29ycmVjdGlvbnMgKHNwb3R0ZWQgYnkgdGVrLW9wcykKCjIwMDYtMTItMDYgMjA6MzAgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb2N1bWVudCB2YXJpb3VzIGFzcGVjdHMgb2YgcG9zdC1yZWxlYXNlIHRoaW5ncyB0byBkbwoKMjAwNi0xMi0wNiAxNTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIGFkZCBuZWVkZWQgaGVhZGVyCgoyMDA2LTEyLTA2IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICBORVdTOiBzbm1wZDogQlVHOiAxNTU4ODIzOiBmaXggaXBBZGRyZXNzVGFibGUgbWVtb3J5IGxlYWsKCjIwMDYtMTItMDYgMTU6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jOgoKICAgTkVXUzogQlVHOiAxNTk2NjM4OiBtZW1vcnkgbGVhayBpbiBpcENpZHJSb3V0ZVRhYmxlLCBpbmV0Q2lkclJvdXRlVGFibGUKCjIwMDYtMTItMDYgMTQ6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICB0d2Vhay9hZGQgZGVidWcgbXNncyBpbiBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfaWZpbmRleF9nZXQKCjIwMDYtMTItMDUgMjM6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgZml4IGRlYnVnIG1lc3NhZ2UKCjIwMDYtMTItMDUgMjM6MjggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBDSEFOR0VTOiBCVUc6IDE2MDAwOTM6IGF1dG9jb25mIDIuNjAgYnJlYWtzIHRoZSBidWlsZAoKMjAwNi0xMi0wNCAxNzo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGNoYW5nZSB0b3AgdGV4dCB0byByZW1vdmUgaGlzdG9yeSBzZWN0aW9uIHdoaWNoIHdhcyBvdXQgb2YgZGF0ZQoKMjAwNi0xMi0wMyAyMzoyMCAgYWxleF9iCgogICAqIHdpbjMyLzogZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyOiAgV29ya3NwYWNlIGNvbXBpbGUgZml4LCBidWlsZCBpbnN0cnVjdGlvbnMgdXBkYXRlLgoKMjAwNi0xMS0yNCAxNzo1MyAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgc2Vkc2NyaXB0LmluLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICAgIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQgKQoKMjAwNi0xMS0yNCAxNzo1MiAgaGFyZGFrZXIKCiAgICogQ0hBTkdFUywgTkVXUzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA2LTExLTI0IDE3OjQ4ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5yYzMgLT4gVjUuNAoKMjAwNi0xMS0yNCAwOTo0NCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTEtMjQgMDk6NDMgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQgKQoKMjAwNi0xMS0yNCAwOToxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgcGF0Y2ggZnJvbSBBbGV4IEJ1cmdlciB0byBmaXggTVNWQyBpc3N1ZXMKCjIwMDYtMTEtMjQgMDg6MDkgIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZXMgdG8gdGhlIENPRElORyBzZWN0aW9uLgogICBJJ20gc3VyZSB0aGVyZSBhcmUgbW9yZSBjaGFuZ2VzIHRoYXQgY291bGQgdXNlZnVsbHkgYmUgbWFkZSwKICAgYnV0IExpZmUncyBUb28gU2hvcnQuICAgT0ssIFdlcyAtIGl0J3MgYWxsIHlvdXJzLi4uLgoKMjAwNi0xMS0yNCAwNzozOCAgZHRzMTIKCiAgICogUkVBRE1FOgoKICAgVHdlYWsgd2ViIGxpbmtzIHNsaWdodGx5LCBhbmQgbWVudGlvbiB0aGUgV2lraS4KCjIwMDYtMTEtMjQgMDc6MDkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBkb2MgdXBkYXRlIGJhc2VkIG9uIHBlcmwgY2hhbmdlcwoKMjAwNi0xMS0yNCAwNjoyNiAgZHRzMTIKCiAgICogRkFROgoKICAgRHJvcCBvYnNvbGV0ZSBlbnRyaWVzLgoKMjAwNi0xMS0yNCAwNjoyMyAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRlcyB0byB0aGUgQ09NUElMSU5HIHNlY3Rpb24uCgoyMDA2LTExLTI0IDA2OjAyICBkdHMxMgoKICAgKiBGQVE6CgogICBVcGRhdGVzIHRvIHRoZSByZXN0IG9mIHRoZSBBR0VOVFMgc2VjdGlvbi4KCjIwMDYtMTEtMjQgMDU6NDEgIGR0czEyCgogICAqIEZBUToKCiAgIENvbW1pdCByZXZpc2lvbnMgdG8gdGhlIE1JQlMgYW5kIChtb3N0IG9mKSB0aGUgQUdFTlRTIHNlY3Rpb25zLgogICA0MyBwYWdlcyBkb3duLCAxOCB0byBnby4uLi4KCjIwMDYtMTEtMjQgMDU6MTMgIHRhbmRlcnMKCiAgICogRkFROgoKICAgYWRkIHNvbWUgbW9yZSB3b3JraW5nIHBsYXRmb3JtczsgcGVybCAtPiBQZXJsCgoyMDA2LTExLTI0IDAzOjIxICBkdHMxMgoKICAgKiBGQVE6CgogICBSZXZpc2lvbiBvZiB0aGUgZmlyc3QgdGhyZWUgc2VjdGlvbnMgKEdFTkVSQUwsIEFQUExJQ0FUSU9OUywgUEVSTCkuCiAgIFByb2JhYmx5IHJhY2luZyBhIGxvc2luZyBiYXR0bGUgYWdhaW5zdCBwYWNrYWdpbmcgdGhlIHVwY29taW5nIHJlbGVhc2UhCgoyMDA2LTExLTIzIDE5OjMwICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgdXBkYXRlcyBhbmQgY2xlYW51cCBmb3IgNS40CgoyMDA2LTExLTIzIDE3OjExICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRS5zbXV4OgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogUEFUQ0g6IDE2MDEyNjE6IGZyb20gIlN0ZXBoZW4gSi4gRnJpZWRsIjogdXBkYXRlIFJFQURNRS5zbXV4CgoyMDA2LTExLTIzIDE2OjM4ICB0YW5kZXJzCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIENIQU5HRVM6IG1pc2M6IFJQTSBzcGVjIGZpbGUgZml4ZXMgZm9yIDY0LWJpdCBwbGF0Zm9ybXMKCjIwMDYtMTEtMjMgMDE6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgUmVtb3ZlIGlycmVsZXZhbnQgY29tbWVudHMgKGxlZnQgb3ZlciBmcm9tIHRoZSBkZXZlbG9wbWVudCBwaGFzZSkuCgoyMDA2LTExLTIyIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgdXNlIC0td2l0aG91dCBmb3IgcGVybCBub3cgaWYgb2ZmCgoyMDA2LTExLTIyIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgZmluYWwgdmVyaXNvbiBjaGFuZ2UKCjIwMDYtMTEtMjIgMTU6MjUgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgcmV2ZXJ0IHRvIGNvcnJlY3QgdmVyc2lvbgoKMjAwNi0xMS0yMiAxNToyMyAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHJlbW92ZSBiYWQgcGF0Y2ggcmVmZXJlbmNlCiAgIC0gZW5hYmxlIFBlcmwgYnkgZGVmYXVsdCwgYnV0IGFsbG93IGZvciAtLXdpdGhvdXQgcGVybF9tb2R1bGVzfGVtYmVkZGVkX3BlcmwKICAgLSBhZGQgbmV0c25tcF8gcHJlZml4IGZvciBsb2NhbCBkZWZpbmVzCgoyMDA2LTExLTIyIDA4OjQ5ICBkdHMxMgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBDbGFyaWZpY2F0aW9uIG9mIHRoZSBiZWhhdmlvdXIgb2Ygb2JqZWN0cyBpbiB0aGUgbWVtb3J5ICYgc3lzdGVtU3RhdHMgZ3JvdXBzLAogICBhbmQgb2JqZWN0cyB1c2VkIGZvciByZXBvcnRpbmcvZml4aW5nIGVycm9ycy4KCjIwMDYtMTEtMjIgMDc6MDcgIGhhcmRha2VyCgogICAqIG1hbi86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluOgoKICAgbWFuYWxpYXMgYWx3YXlzLW1hZGUgZml4OyBub3cgdG91Y2hlcyBhIHRlbXAgZmlsZSAoYW5kIGNsZWFucyBsYXRlcikKCjIwMDYtMTEtMjIgMDU6MjUgIHRhbmRlcnMKCiAgICogLmN2c2lnbm9yZToKCiAgIGFkZCBuZXcgJ21rJyBzdWJkaXIKCjIwMDYtMTEtMjIgMDU6MjQgIHRhbmRlcnMKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBhZGQgbmV3IG1hbnVhbCBwYWdlcwoKMjAwNi0xMS0yMiAwNTowMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTk4OTY2OiBmcm9tICJQZXRlciBFY2tlbCI6IEZpeCBidWcgIzE1OTg5Mjc6ICNlbGlmIGJ1aWxkIGZpeAoKMjAwNi0xMS0yMiAwNDo1OCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgQ0hBTkdFUzogc25tcHRyYXBkOiBQQVRDSDogMTU5ODk2ODogZnJvbSAiUGV0ZXIgRWNrZWwiOiBGaXggYnVnICMxNTg3NzU5OiBzbm1wdHJhcGQgZG9lc24ndCByZWNvZ25pemUgLUEgb3B0aW9uCgoyMDA2LTExLTE4IDA5OjU2ICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudF9pbnRmLmM6CgogICBmaXhlcyBmb3IgTm9uZSByZXR1cm4gdHB5ZSBhbmQgb2N0ZXQgdmFsIGhhbmRsaW5nCgoyMDA2LTExLTE4IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzMgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5yYzIgLT4gVjUuNC5yYzMKCjIwMDYtMTEtMTggMDc6MTQgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG5ldHNubXBfYWdlbnRfdHJhcC4zLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsCiAgICAgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgICAgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsIG5ldHNubXBfY2FsbGJhY2suMywKICAgICBuZXRzbm1wX2NvbnRhaW5lci4zLCBuZXRzbm1wX2RhdGFfbGlzdC4zLAogICAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsCiAgICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfbWFpbnRlbmFuY2UuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfc3Rhc2hfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2dlbmVyaWMuMywKICAgICBuZXRzbm1wX3RhYmxlX2luZGV4ZXMuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuaC4zLCBuZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMKLCBuZXRzbm1wX3RhYmxlX3Jvd3MuMywgbmV0c25tcF90ZGF0YS4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTExLTE4IDA3OjEzICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMyApCgoyMDA2LTExLTE4IDA2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIGZpeCBtaXNzaW5nIG1lbUNhY2hlZC4wIHBhdGNoIGZyb20gVGhvbWFzIEFuZGVycwoKMjAwNi0xMS0xNiAyMDo0NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcGF0Y2ggZnJvbSBUaG9tYXMgQW5kZXJzIHRvIGZpeCBwZXJsIENDIGV4dHJhY3Rpb24gdG8gYWxsb3cgZm9yIHBhdGhzCgoyMDA2LTExLTE2IDIwOjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIFRob21hcyBBbmRlcnMgdG8gZml4IHBlcmwgQ0MgZXh0cmFjdGlvbiB0byBhbGxvdyBmb3IgcGF0aHMKCjIwMDYtMTEtMTYgMTM6MzggIHRhbmRlcnMKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldyBtYW51YWwgcGFnZXMgdG8gdGhlIGJ1aWxkIHByb2Nlc3MKCjIwMDYtMTEtMTYgMDE6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHByb3Blcmx5IHByb3RlY3Qgbmxpc3QgY29kZSB0byBmaXggYnVpbGQgaXNzdWVzIHcvIC0td2l0aG91dC1rbWVtLXVzYWdlCgoyMDA2LTExLTE1IDE2OjIyICB0YW5kZXJzCgogICAqIG1hbi86IGVuY29kZV9rZXljaGFuZ2UuMS5kZWYsIGZpeHByb2MuMS5kZWYsCiAgICAgbWliMmMtdXBkYXRlLjEuZGVmLCBuZXQtc25tcC1jb25maWcuMS5kZWYsCiAgICAgdGttaWIuMS5kZWYsIHRyYXB0b2VtYWlsLjEuZGVmOgoKICAgQ0hBTkdFUzogZG9jdW1lbnRhdGlvbjogQlVHOiAxNTc3OTEzOiBhZGQgbWlzc2luZyBtYW51YWwgcGFnZXMgZm9yIGV4ZWN1dGFibGVzLCBzdXBwbGllZCBieSBEZWJpYW4KCjIwMDYtMTEtMTUgMTU6MzUgIHRhbmRlcnMKCiAgICogbWFuL3NubXBuZXRzdGF0LjEuZGVmOgoKICAgVXBkYXRlIHRvIHRoZSBuZXcgc3ludGF4IG9mIHRoZSBzbm1wbmV0c3RhdCByZXdyaXRlLiBJbnNwaXJlZCBieSBEZWJpYW4uCgoyMDA2LTExLTE1IDE0OjQ1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wc2V0LjEuZGVmOgoKICAgZm9ybWF0IGZpeCAoZnJvbSBEZWJpYW4gcGF0Y2ggMDdfZG9jZmlsZXMucGF0Y2gpCgoyMDA2LTExLTE1IDExOjM1ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgUHV0IGRlc2NyaXB0aW9uIG9uIGEgc2luZ2xlIGxpbmUuIFRha2VuIGZyb20gRGViaWFuIHBhdGNoIDA3X2RvY2ZpbGVzLnBhdGNoCgoyMDA2LTExLTE0IDE2OjAxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X25saXN0LmM6CgogICBGaXggaW5pdGlhbGlzYXRpb24gcHJvYmxlbSAod2hpY2ggcmVzdWx0cyBpbiB0aGUgYWdlbnQgZmFpbGluZwogICB0byBzdGFydCBvbiBGcmVlQlNEIHN5c3RlbXMsIHdoZW4gcnVuIGFzIGFuIHVucHJpdmlsZWdlZCB1c2VyKS4KCjIwMDYtMTEtMTQgMTU6NDQgIHRhbmRlcnMKCiAgICogZG9jL3JmYy9zbWlWMi9yZmMyNTc5LmVycmF0YX46CgogICBkbyB3ZSBhZ3JlZSB0byBub3Qgc2hpcCBlZGl0b3IgYmFja3VwIGNvcGllcz8KCjIwMDYtMTEtMTQgMDM6MTggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICB1ZHBUYWJsZSByZXF1aXJlcyAvZGV2L2ttZW0gYWNjZXNzIG9uIElSSVggYW5kIFRydTY0IFVuaXgKCjIwMDYtMTEtMTQgMDE6NTYgIHRhbmRlcnMKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICBDSEFOR0VTOiBQQVRDSDogMTU5NjAyODogZnJvbSAiU3RlcGhlbiBKLiBGcmllZGwiOiBjb25zdCBmaXhlcyBmb3IgdGhlIG1pYl9hcGkoMykgbWFudWFsIHBhZ2UKCjIwMDYtMTEtMTMgMTY6MTcgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgQ0hBTkdFUzogcGVybDogbWFrZSBwZXJsdGVzdCBmaXhlcyBmb3IgU29sYXJpcyAyLjYgYW5kIGVhcmxpZXIKCjIwMDYtMTEtMTMgMTU6NTQgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBORVdTOiBwZXJsOiBTTk1QLnBtIGZpeGVzIGZvciA2NC1iaXQgcGxhdGZvcm1zCgoyMDA2LTExLTEzIDE1OjQ5ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBwZXJsOiBtYWtlIHBlcmx0ZXN0IGZpeGVzIGZvciBIUC1VWAoKMjAwNi0xMS0xMyAxNToyNiAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBEcm9wIERhdGE6OkR1bXBlciBzaW5jZSBQZXJsIDUuMDA0MDUgYXMgc2hpcHBlZCB3aXRoIElSSVggNi41IGRvZXNuJ3QgaW5jbHVkZSBpdC4KCjIwMDYtMTEtMTMgMTQ6NTEgIHRhbmRlcnMKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIERyb3AgdW5uZWVkZWQgZGVwZW5kZW5jeSBvbiBEYXRhOjpEdW1wZXIuCgoyMDA2LTExLTEzIDE0OjQ2ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICBDSEFOR0VTOiBwZXJsOiBtYWtlIHBlcmx0ZXN0IGZpeGVzIGZvciBJUklYCgoyMDA2LTExLTEyIDE3OjUzICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9NYWtlZmlsZS1hcHBzLmluLAogICAgIHdpbjMyL01ha2VmaWxlLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9zbm1wZHNkay9NYWtlZmlsZS5pbiwgd2luMzIvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgd2FybmluZ3MgYWJvdXQgY29tcGlsaW5nIHdpdGggdGhlIFNOTVAgbGlicmFyeSBETEwuCgoyMDA2LTExLTEwIDAzOjI0ICB0YW5kZXJzCgogICAqIFJFQURNRS5vc1g6CgogICByZW1vdmUgLS1lbmFibGUtbWluaS1hZ2VudCByZWNvbW1lbmRhdGlvbiBiZWNhdXNlIC0td2l0aG91dC1rbWVtLXVzYWdlIG5vIGxvbmdlciByZXF1aXJlcyBpdAoKMjAwNi0xMS0xMCAwMToyMSAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgUmVmZXJlbmNlIHRoZSBjb3JyZWN0IG1hbiBwYWdlIGZvciBzbm1wX3RyYXBfYXBpIGFsaWFzZXMuCiAgIFJlcG9ydGVkIGFuZCBmaXhlZCBieSBDaHJpcyBKYWxiZXJ0LgoKMjAwNi0xMS0wOCAwODoyNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnJjMiApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnJjMSAtPiBWNS40LnJjMgoKMjAwNi0xMS0wOCAwNzo1NiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMTEtMDggMDc6NTUgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucmMyICkKCjIwMDYtMTEtMDggMDc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBQYXRjaCBmcm9tIFJvYmVydCB0byBjaGVjayBwcm9jZXNzZWQgZmxhZyBiZWZvcmUgcHJvY2VlZGluZwoKMjAwNi0xMS0wNyAxNTozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBGaXggZHVwbGljYXRlIGNhc2Ugc3RhdGVtZW50cyAoYW5kIGluZGljYXRlIHdoaWNoIGFyZSB0aGUgZGVwcmVjYXRlZCBvYmplY3RzKQoKMjAwNi0xMS0wNyAxNDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICBDbGFyaWZ5IG1lYW5pbmcgb2YgbWVtKlRleHQgb2JqZWN0cyAoYW5kIGRlZmluZSBuZXcgY29uc2lzdGVudCB2ZXJzaW9ucykuCgoyMDA2LTExLTA3IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIGFkZCBhIG1pc3NpbmcgcGFyZW4gdG8gYSBkZXNjcmlwdGlvbiBmaWVsZAoKMjAwNi0xMS0wNyAwNjo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIE1ha2VmaWxlLmluLAogICAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBwYXRjaCB0byBmaXggc2VkIHVzYWdlIG9uIHN5c3RlbXMgd2l0aCBhIHZlcnkgb2xkIHNlZAoKMjAwNi0xMS0wNiAxNTo1MCAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIG1lbnRpb24gLS13aXRob3V0LWttZW0tdXNhZ2UKCjIwMDYtMTEtMDYgMTU6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwQWRkci5jCiwgaXB2Ni5jLCB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jLAogICAgIHZhcl9yb3V0ZS5jOgoKICAgaW1wcm92ZWQga2xvb2t1cCBlcnJvciBoYW5kbGluZwoKMjAwNi0xMS0wNiAxNTo0MSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIFJFQURNRS5haXgsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9rZXJuZWwuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBidWlsZCBmaXggZm9yIC0td2l0aG91dC1rbWVtLXVzYWdlCgoyMDA2LTExLTA2IDA3OjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgICBUMTIycHJveHlzZXRmYWlsOgoKICAgc2ggZG9lc24ndCBsaWtlICI9PSIsIG9mIGNvdXJzZS4KCjIwMDYtMTEtMDYgMDM6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICAgIFQxMjJwcm94eXNldGZhaWw6CgogICBza2lwIHByb3h5IHRlc3RzIGZvciBUQ1AgYmVjYXVzZSB0aGUgcHJveHkgY29kZSBkb2Vzbid0IHN1cHBvcnQgVENQIHlldAoKMjAwNi0xMS0wMyAxNzozOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1OGFnZW50YXV0aHRyYXAsIFQwNjVhZ2VudGV4dGVuZCwKICAgICBUMjAwc25tcHYyY3dhbGthbGw6CgogICBDSEFOR0VTOiBtaXNjOiAibWFrZSB0ZXN0IiBmaXhlcyBmb3Igbm9uLVVEUCB0cmFuc3BvcnRzCgoyMDA2LTExLTAzIDA4OjQwICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50LnB5LCBjbGllbnRfaW50Zi5jOgoKICAgbWVtb3J5IGxlYWsgZml4ZXMgZm9yIHB5dGhvbiBpbnRlcmZhY2UKCjIwMDYtMTEtMDIgMTU6MzAgIHRhbmRlcnMKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBhZGQgbmV3IG1hbiBwYWdlIGFsaWFzZXMKCjIwMDYtMTEtMDEgMTU6NTMgIHRhbmRlcnMKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlTG9nIHNoYWxsIG9ubHkgZG9jdW1lbnQgY2hhbmdlcyBvZiB0aGUgYnJhbmNoIGl0J3MgY29udGFpbmVkIGluCgoyMDA2LTExLTAxIDA4OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgQ0hBTkdFUzogQlVHOiAxNTg1ODE1OiBmaXggbWZkIGJpdHMgbGVuZ3RoIGNhbGN1bGF0aW9uCgoyMDA2LTEwLTMxIDE0OjI5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzEgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmU0IC0+IFY1LjQucmMxCgoyMDA2LTEwLTMxIDEyOjUxICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMC0zMSAxMjo1MSAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5yYzEgKQoKMjAwNi0xMC0zMSAxMjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmg6CgogICByZW1vdmUgdGhlIGtsb29rdXAgZGVmaW5lIGFzICgwKSBzaW5jZSBEYXZlIGZvdW5kIGRlZmluaXRlIHNwb3RzIHdoZXJlIHRoaXMgd2FzIHVuc2FmZQoKMjAwNi0xMC0zMSAwNzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBQYXRjaCBmcm9tIFRob21hcyBBbmRlcnMgdG8gYXR0ZW1wdCB0byBmaXggbGFjayBvZiBrbWVtIHN1cHBvcnQgZm9yIHZhcmlvdXMgcGxhdGZvcm1zIHdoZW4ga21lbSBpc24ndCBhdmFpbGFibGUKCjIwMDYtMTAtMzEgMDc6MjcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGZpeCBhIHByb2JsZW0gd2l0aCB0aGUgbWFuIGdlbmVyYXRpb24gcGF0Y2ggYXMgcG9pbnRlZCBvdXQgYnkgQ2hyaXMgSmFsYmVydAoKMjAwNi0xMC0zMSAwNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBtaW5vciBwYXRjaCBmcm9tIEJydWNlIFNoYXcgdG8gZml4IGxtc2Vuc29ycyAyNDAgY2xhc3MgbWFjaGluZXMKCjIwMDYtMTAtMzAgMTM6NDMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBDSEFOR0VTOiBzbm1wZDogbWVtVG90YWxGcmVlIHNob3VsZCByZXBvcnQgdG90YWwgdmlydHVhbCBpbnN0ZWFkIG9mIHBoeXNpY2FsIG1lbW9yeQoKMjAwNi0xMC0zMCAwOTo1MiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2lyaXguYzoKCiAgIG1lbSBIQUwgZml4ZXMgZm9yIElSSVgKCjIwMDYtMTAtMzAgMDc6NDAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIHVzZSBnZW5lcmF0ZWQgYWxpYXMgbWFuIHBhZ2VzCgoyMDA2LTEwLTI4IDE4OjIzICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQWRkZWQgLS1kaXNhYmxlLWVtYmVkZGVkLXBlcmwgLS13aXRob3V0LXBlcmwtbW9kdWxlcyBmb3IgTWluR1cgLyBDeWd3aW4uCgoyMDA2LTEwLTI3IDEzOjE5ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHdpbjMyL01ha2VmaWxlLWFwcHMuaW4sIHdpbjMyL2J1aWxkLnBsLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCB3aW4zMi9zbm1wZC9NYWtlZmlsZS5pbgosIHdpbjMyL3NubXBkc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCB3aW4zMi9zbm1wdHJhcGQvTWFrZWZpbGUuaW4KOgoKICAgLUFsbG93IGJ1aWxkaW5nIG9mIGFwcGxpY2F0aW9ucyB3aXRoIGxpYnJhcnkgRExMIGluIGJ1aWxkLmJhdCBidWlsZCBzeXN0ZW0uCiAgIC1GaXggRExMIGV4cG9ydC9pbXBvcnQgdmFyaWFibGVzIGZvciBsaWJyYXJ5IERMTAoKMjAwNi0xMC0yNyAwNzo0NyAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGZpeCB3YWxraW5nIG9mZiBvZiBhIGNsaWZmCgoyMDA2LTEwLTI3IDA3OjMyICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wL2NsaWVudC5weToKCiAgIGNsaWVudC5weQoKMjAwNi0xMC0yNyAwMjowNCAgdGFuZGVycwoKICAgKiBsb2NhbC9zbm1wLXVjZC5zaDoKCiAgIENIQU5HRVM6IG1pc2M6IEJVR1M6IDE1ODUyNTA6IGRvbid0IHVzZSBkZXByZWNhdGVkIG9wdGlvbnMgaW4gc3RhcnQgc2NyaXB0CgoyMDA2LTEwLTI2IDE3OjUwICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogIEFkZCBhIGNvdXBsZSBERUJVRyBsaW5lcy4KCjIwMDYtMTAtMjYgMTc6MTUgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIFdpbjMyOiBSRUFETUUgdXBkYXRlLCBidWlsZCBzdGVwcyB1cGRhdGUuCgoyMDA2LTEwLTI2IDA5OjIxICB0YW5kZXJzCgogICAqIENvZGluZ1N0eWxlOgoKICAgbWlub3IgdXBkYXRlcwoKMjAwNi0xMC0yNiAwNDoxNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1pbm9yIGZpeGVzIGZvciAiY29uZmlndXJlIC0taGVscCIgb3V0cHV0LCBlc3BlY2lhbGx5IGZvciBNSUIgbW9kdWxlcwoKMjAwNi0xMC0yNiAwMzoyNCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGRhcndpbjguaCwgZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogTWFjT1NYOiBidWlsZCBmaXggZm9yIG1pYklJL3VkcFRhYmxlCgoyMDA2LTEwLTI1IDExOjUxICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgTkVUU05NUF8gcHJlZml4IG1pc3NpbmcgZm9yIE9QRU5TU0wuCgoyMDA2LTEwLTI1IDA5OjE2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgcGVybC9PSUQvT0lELnhzLAogICAgIHBlcmwvU05NUC9SRUFETUUsIHBlcmwvU05NUC9TTk1QLnhzLAogICAgIHBlcmwvYWdlbnQvYWdlbnQueHMsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBsaWJyYXJ5OiByZW5hbWUgaW5pdF9taWIgdG8gbmV0c25tcF9pbml0X21pYiB0byBhdm9pZCBzeW1ib2wgY2xhc2ggd2l0aCBIUC1VWCdzIGxpYm5tCgoyMDA2LTEwLTIzIDE0OjAwICB0YW5kZXJzCgogICAqIE5FV1M6CgogICBBSVggc2hpcHMgaG9zdCBieSBkZWZhdWx0CgoyMDA2LTEwLTIyIDE4OjAxICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC86IFJFQURNRS5idWlsZC53aW4zMi50eHQsCiAgICAgaHRtbGhlbHAvRGV2ZWxvcGVyX0ZBUS5odG1sLCBodG1saGVscC9GQVEuaHRtbCwKICAgICBodG1saGVscC9zbm1wLmNvbmYud2luMzIuaHRtbCwKICAgICBodG1saGVscC9zbm1wZC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcHRyYXBkLmNvbmYud2luMzIuaHRtbCwgaW5zdGFsbGVyL25ldC1zbm1wLm5zaQo6CgogICBVcGRhdGUgV2luZG93cyBiaW5hcnkgYnVpbGQgZmlsZXMuCgoyMDA2LTEwLTIxIDA5OjQyICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgd2luRXh0RExMIHVwZGF0ZS4KCjIwMDYtMTAtMjEgMDk6MzYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlYWRtZSB1cGRhdGUgZm9yIHdpbkV4dERMTCwgY2hhbmdlIGNvbW1hbmQgbGluZSBmb3Igd2luRXh0RExMLgoKMjAwNi0xMC0yMSAwNzowNyAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgQ29kZSBjbGVhbnVwLiAgQWRkIHN1cHBvcnQgZm9yIHhTbm1wRXh0ZW5zaW9uUXVlcnlFeCBmb3IgU0VUL0dFVE5FWFQuCgoyMDA2LTEwLTIxIDA1OjQ1ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiBzbm1wc2V0IHN0cmluZywgRExMIGxvYWRpbmcgYW5kIHNubXB3YWxrIGZpeGVzLgoKMjAwNi0xMC0yMSAwNTowOSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICByZW1vdmUgbm90LWV4aXN0ZW50IFNCU00gZGVmaW5pdGlvbiBmcm9tIHRlc3QgY2FzZXMKCjIwMDYtMTAtMjAgMTc6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlNCApCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS40LnByZTMgLT4gVjUuNC5wcmU0CgoyMDA2LTEwLTIwIDE2OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCBmcm9tIEFuZGVycyBQZXJzc29uIHRvIGNoYW5nZSB0X3VzY2FsYXJfdCB0byBzb21ldGhpbmcgbW9yZSBwb3J0YWJsZSAodWludDMyX3QpCgoyMDA2LTEwLTIwIDEzOjQzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYWdlbnQvZHNfYWdlbnQuaCwKICAgICBsaWJyYXJ5L2RlZmF1bHRfc3RvcmUuaDoKCiAgIERvY3VtZW50IHRoZSBuZWVkIHRvIHVwZGF0ZSB0aGUgY29ycmVzcG9uZGluZyBwZXJsIGludGVyZmFjZXMKICAgd2hlbiBjaGFuZ2VzIGFyZSBtYWRlLgoKMjAwNi0xMC0yMCAwODo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgdXNlIGNwdV9udWxsIGZvciBhbGwgZGFyd2luLCB1bnRpbCBjb2RlIHdvcmtzCgoyMDA2LTEwLTIwIDA4OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfbmxpc3QuYywgY3B1X3N5c2N0bC5jCjoKCiAgIENsYXJpZnkgY29tbWVudHMgdG8gcmVmbGVjdCByZWFsaXR5LgoKMjAwNi0xMC0yMCAwODoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIGZpeCBzeW50YXggZXJyb3I7IG1ha2Ugc3VyZSB3ZSBnZXQgY3B1X251bGwgZm9yIGRhcndpbjYvNywgY3B1X3N5c2N0bCBmb3IgZGFyd2luOCsKCjIwMDYtMTAtMjAgMDc6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIHVzZSBjcHVfbnVsbCBmb3IgZGFyd2luNyBhbmQgZGFyd2luNgoKMjAwNi0xMC0yMCAwMTo0NCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIG9wZW5ic2Q0IGFuZCBkYXJ3aW4gc2hvdWxkIHVzZSBjcHVfc3lzY3RsCgoyMDA2LTEwLTE5IDIyOjEwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0xMC0xOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmU0ICkKCjIwMDYtMTAtMTkgMTY6NDQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9ubGlzdC5jOgoKICAgZml4IHVwIGhlYWRlciBpbmNsdXNpb24gYSBiaXQKCjIwMDYtMTAtMTkgMTU6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIHRlc3QgZm9yIGRhcndpbmcgYmVmb3JlIGZyZWVic2QsIHNpbmNlIGRhcndpbiBkZWZpbmVzIGZyZWVic2QKCjIwMDYtMTAtMTkgMTQ6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICBmaXggYnJva2VuIGJhZCBldmlsIGlmVGFibGUuaCB1c2FnZQoKMjAwNi0xMC0xOSAxMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaAosIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZV9kZWZzLmgsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGRvbid0IGxldCBpZlRhYmxlLmggcmVkZWZpbmUgcmFuZG9tIHN5bWJvbHMgYWZmZWN0aW5nIG90aGVyIGNvZGUKCjIwMDYtMTAtMTkgMDg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGxpYmhlbHBlcnMgZnJvbSB0aGUgbGluayBsaW5lIG9mIGxpYmFnZW50cwoKMjAwNi0xMC0xOSAwODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IHRyYW5zcG9ydCBzb2NrIHBhdGNoCgoyMDA2LTEwLTE5IDA3OjE1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGRhcndpbjguaCwgZGFyd2luOS5oOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTc5MzY0OiBmcm9tIGphbGJlcnQ6IFVwZGF0ZWQgZGFyd2luIHBhdGNoIHRvIGZpeCBjb21waWxhdGlvbiBvbiBUaWdlciBhbmQgTGVhcG9yZAoKMjAwNi0xMC0xOCAxNjo1MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jOgoKICAgV2luMzI6IHdpbkV4dERMTDogIEZpbmlzaCBhZGRpbmcgc3VwcG9ydCBmb3IgRExMcyB0aGF0IHN1cHBvcnQgbXVsdGlwbGUKICAgcmFuZ2VzLgoKMjAwNi0xMC0xOCAxNDoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnRDb25mLmMsCiAgICAgbXRlRXZlbnRDb25mLmgsIG10ZU9iamVjdHNDb25mLmMsIG10ZU9iamVjdHNDb25mLmgKLCBtdGVUcmlnZ2VyQ29uZi5jLCBtdGVUcmlnZ2VyQ29uZi5oOgoKICAgQ2xlYW5seSBoYW5kbGUgcmUtbG9hZGluZyAibW9uaXRvciIgKGFuZCByZWxhdGVkKSBkaXJlY3RpdmVzLgoKMjAwNi0xMC0xOCAxNDowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBIYW5kbGUgaW52YWxpZCBwYXlsb2FkIG9iamVjdCBPSURzLgoKMjAwNi0xMC0xOCAxMjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBDbGVhbmx5IGhhbmRsZSByZS1sb2FkaW5nICJleHRlbmQiIGRpcmVjdGl2ZXMuCgoyMDA2LTEwLTE4IDA3OjQ1ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIC0gdXNlciAvdXNyL2Jpbi9lbnYgZm9yIHBvcnRhYmlsaXR5CiAgIC0gb25seSB0ZXN0IGZvciB0YXIgaWYgd2UncmUgZ29pbmcgdG8gdXNlIGl0CgoyMDA2LTEwLTE4IDAzOjI5ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgbmV3IHBhc3NfcGVyc2lzdCBlcnJvciBtZXNzYWdlcyBpbnRyb2R1Y2VkIGJ5IHBhdGNoIDE1NjgxNTAKCjIwMDYtMTAtMTcgMjE6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRS5vc1g6CgogICB1cGRhdGUgZnJvbSBDaHJpcyBKYWxiZXJ0CgoyMDA2LTEwLTE3IDIwOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgYWdlbnRfcmVnaXN0cnkuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSCAxNTY1NzAzOiBwYXRjaCB0byBmaXggcmFwaWQgcmVnaXN0cmF0aW9ucy9kZXJlZ2lzdHJhdGlvbiBpc3N1ZXMKCjIwMDYtMTAtMTcgMjA6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIIDE1NjI2ODg6IGZpeCBwaW5nL3JlYXR0YWNoIGFnZW50eCBjb2RlCgoyMDA2LTEwLTE3IDIwOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDSEFOR0VTOiBzbm1wbGliOiBQQVRDSCAxNTYyMTY4OiBjaGVjayBmb3IgYSBzb2NrIGZkIGxlc3MgdGhhbiAwLgoKMjAwNi0xMC0xNyAxOTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCjoKCiAgIHVzaW5nIHZmb3JrIGFuZCBuYW1lZCBwaXBlczogTkVXUzogc25tcGQ6IFBBVENIOiAxNTUxOTQ4OiBmcm9tIGFwcm9lbWVsOiBNYWtlIHBhc3NfcGVyc2lzdCB1c2FibGUgb24gdUNsaW51eAoKMjAwNi0xMC0xNyAxOToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NjgxNTA6IGZyb20gZ2F2aW5faGFuOiBFeHRlbmQgcGFzc19wZXJzaXN0IGVycm9yIG1lc3NhZ2VzIHRoYXQgY2FuIGJlIHBhc3NlZCBiYWNrIGZyb20gdGhlIHNjcmlwdAoKMjAwNi0xMC0xNyAxOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNTcwNjUwOiBmcm9tICJCZW5vaXQgQW1pYXV4IjogY3JlYXRlIGEgbG9nZ2luZyBzaHV0ZG93biBmdW5jdGlvbiB0byBwcm9wZXJseSBjbGVhbiB1cCBsb2cgcmVnaXN0cmF0aW9ucyBpZiBuZWVkZWQuCgoyMDA2LTEwLTE3IDE5OjA1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBDSEFOR0VTOiBzbm1wZDogUEFUQ0g6IDE1NzA2NTA6IGZyb20gIkJlbm9pdCBBbWlhdXgiOiBtYWtlIGRlbGV0ZSB0YWJsZSBmdW5jdGlvbiBwdWJsaWMKCjIwMDYtMTAtMTcgMTg6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQ0hBTkdFUzogcGVybDogUEFUQ0g6IDE1NzU5Mzc6IGZyb20gbWFydGluOTg3OiBmaXggdXNlbnVtZXJpYyBvdXRwdXQgaW4gYXN5bmMgdmFyYmluZHMgc28gdGhleSByZXR1cm4gT0lEcyBpbnN0ZWFkIG9mIGVtcHR5IHN0cmluZ3MuCgoyMDA2LTEwLTE3IDE4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIOiAxNTc1OTg0OiBmcm9tIHJ0eWxlOiBibG9jayBTSUdIVVAgZHVyaW5nIHJlY29uZmlnCgoyMDA2LTEwLTE3IDE4OjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgcmVtb3ZlIGNvcnJlY3Qgc3ViIGRpcmVjdG9yeQoKMjAwNi0xMC0xNyAxODozMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlLnhzLCBnZW4sIHRlc3QucGw6CgogICB1cGRhdGUgdG8gbGF0ZXN0IGRzX2FnZW50LmggZGVmaW5lcwoKMjAwNi0xMC0xNyAxNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwgZGVmYXVsdF9zdG9yZS54cwosIGdlbiwgdGVzdC5wbDoKCiAgIHN1cHBvcnQgbGF0ZXN0IGgyeHM7IE5FV1M6IHBlcmw6IHVwZGF0ZSBkZWZhdWx0X3N0b3JlIG1vZHVsZSB0byBsYXRlc3QgZGVmYXVsdF9zdG9yZSBjLWJpbmRpbmcgdG9rZW5zCgoyMDA2LTEwLTE3IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBjb25maWcgZ2VuZXJhdGVkIGZpbGVzIG9uIGEgbWFrZSBkaXN0Y2xlYW4KCjIwMDYtMTAtMTcgMTU6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgo6CgogICBwcm9wZXJseSBmaXggdGhlIHNlZCBpc3N1ZXMgd2l0aG91dCByZW1vdmluZyBmdW5jdGlvbmFsaXR5IGJ5IHVzaW5nIGZpbGVzIGluc3RlYWQgb2Ygc2VkIGV4cHJlc3Npb25zCgoyMDA2LTEwLTE3IDE0OjA4ICB0YW5kZXJzCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgbWFrZSBrbG9va3VwIGRlYnVnZ2luZyBsZXNzIHZlcmJvc2UKCjIwMDYtMTAtMTcgMTM6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQva2VybmVsLmM6CgogICBhZGQga2xvb2t1cCBkZWJ1Z2dpbmcKCjIwMDYtMTAtMTcgMTA6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgc3RpbGwgYnVpbGQgaWYga2VybmVsIHN5bWJvbHMgdW5kZWZpbmVkCgoyMDA2LTEwLTE3IDA5OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIEFzc29jaWF0ZSBlcnJvcnMgZnJvbSBkZWxlZ2F0ZWQgcmVxdWVzdHMgd2l0aCB0aGUgY29ycmVjdCB2YXJiaW5kLAogICBhbmQgZml4IHByb2JsZW1zIHdpdGggZmFpbGVkIHByb3hpZWQgcmVxdWVzdHMgdGltaW5nIG91dC4KICAgUmVwb3J0ZWQgYnkgUGFibG8gUGFzc2VyYSAgKFNlZSBjb2RlcnMgbGlzdCAtIDV0aCBPY3QgZmYpCgoyMDA2LTEwLTE3IDA5OjEwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIE5FV1M6IGJ1aWxkOiAtLWVuYWJsZS1hcy1uZWVkZWQgd2lsbCB0cnkgdG8gbGluayBidWlsdCBsaWJyYXJpZXMgYWdhaW5zdCBuZWVkZWQgbGlicmFyaWVzIGF0IGxpYnJhcnkgbGluayB0aW1lLCByYXRoZXIgdGhhbiBhcHBsaWNhdGlvbiBsaW5rIHRpbWUuCgoyMDA2LTEwLTE3IDA3OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICByZW1vdmUgZHVwbGljYXRlICdjb21waWxlciBvcHRpb25zJyBoZWFkZXIgaW4gaGVscCBvdXRwdXQKCjIwMDYtMTAtMTcgMDc6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgYmFjayBvdXQgaG9zdC9ocl9zd3J1biBwYXJ0IG9mIHRoZSBBSVgganVtYm8gcGF0Y2ggc2luY2UgaXQgb3Zlcndyb3RlIGEgbW9yZSBjb21wbGV0ZSwgd29ya2luZyBpbXBsZW1lbnRhdGlvbiB3aXRoIGEgc2VnZmF1bHRpbmcgb25lCgoyMDA2LTEwLTE2IDE2OjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIENIQU5HRVM6IElSSVg6IHByb3BlciBpbXBsZW1lbnRhdGlvbiBmb3IgVUNELVNOTVAtTUlCOjpsYVRhYmxlIChhdm9pZGluZyBubGlzdCkKCjIwMDYtMTAtMTYgMTE6NDMgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnQucHksIHRlc3RzL3Rlc3QucHk6CgogICBudW1lcmljIGFuZCBPSUQgc2V0cyB3aXRoIHRlc3RpbmcKCjIwMDYtMTAtMTYgMDg6NTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgZGlzYWJsaW5nIG5saXN0IHNob3VsZG4ndCBkaXNhYmxlIHBlcmZzdGF0CgoyMDA2LTEwLTE2IDA4OjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICBkZWFsIHdpdGggbWlzc2luZyBBUlBUQUJfU0laRV9TWU1CT0wKCjIwMDYtMTAtMTYgMDc6NTQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3NmNS5oOgoKICAgQ0hBTkdFUzogVHJ1NjQ6IC0gZml4ICJhdXRvX25saXN0IGZhaWxlZCBvbiBhcnB0YWJfc2l6ZSBhdCBsb2NhdGlvbiAwIiBlcnJvcnMKCjIwMDYtMTAtMTUgMTc6MjMgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEwgZml4ZXMgZm9yIHNubXB3YWxrIC8gc25tcGdldG5leHQuCgoyMDA2LTEwLTE1IDE0OjQ0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRG9uJ3QgbW9hbiBhYm91dCBub3JtYWwgY29ubmVjdGlvbi1iYXNlZCB0cmFuc3BvcnQgYWN0aXZpdHkKICAgKGFuZCAqZG8qIG1vYW4gc2Vuc2libHkgYWJvdXQgZmFpbGVkIHNlbmRzKS4KCjIwMDYtMTAtMTUgMTQ6NDMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgU3RvcmUgVENQL0lQdjQgYWRkcmVzcyBpbmZvcm1hdGlvbiBpbiB0aGUgc2FtZSBmb3JtYXQgYXMgVURQL0lQdjQuCiAgIFRoaXMgYWxsb3dzIHRoZSBjb21tdW5pdHkgLT4gc2VjdXJpdHkgbmFtZSBtYXBwaW5nIHRvIHdvcmsgY29ycmVjdGx5LgogICBGaXhlcyBCdWcgIzE1NzE5NDUuCiAgICAgIEEgYmV0dGVyIChtb3JlIG1vZHVsYXIpIHNvbHV0aW9uIHdvdWxkIGJlIHByZWZlcmFibGUgKHNlZSBkaXNjdXNzaW9ucwogICBvbiB0aGUgbWFpbGluZyBsaXN0cyksIGJ1dCB0aGlzIHNob3VsZCBhdCBsZWFzdCBhbGxvdyA1LjQgdG8gcHJvY2VlZC4KCjIwMDYtMTAtMTUgMTA6MDMgIHRhbmRlcnMKCiAgICogYWdlbnQva2VybmVsLmg6CgogICBrbG9va3VwIHRha2VzIHRocmVlIGFyZ3VtZW50cywgbm90IG9uZQoKMjAwNi0xMC0xNCAxNDoyOCAgdGFuZGVycwoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywga2VybmVsLmgsCiAgICAgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBtaWJncm91cC9taWJJSS9hdC5jLAogICAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMKLCBtaWJncm91cC9taWJJSS9pcHY2LmMsIG1pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgcHJlcGFyZSBmb3IgNjQtYml0IG5saXN0IGNoYW5nZXMKCjIwMDYtMTAtMTQgMTA6MzcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6ICBGaXggT0lEIHNldHMsIG1lbW9yeSBsZWFrcy4KCjIwMDYtMTAtMTQgMDY6NDkgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiB3aW5FeHRETEw6IFVzZSBhbGFybSBpbnN0ZWFkIG9mIHRocmVhZCBmb3IgdHJhcHMuICBWYXJpb3VzIHRyYXAKICAgZml4ZXMuCgoyMDA2LTEwLTEzIDE2OjEzICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMOiAgQWRkIHRyYXAgc3VwcG9ydCBmb3IgcmVtYWluaW5nIHR5cGVzLCBmaXgKICAgQVNOX0lQQUREUkVTUyBHRVQgc3VwcG9ydC4KCjIwMDYtMTAtMTMgMTU6MTYgIHRhbmRlcnMKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiwgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBzbXV4c29ja2V0IG5lZWRzIHRvIGJlIGFuIElQdjQgYWRkcmVzcwoKMjAwNi0xMC0xMyAxNDo0OSAgZHRzMTIKCiAgICogUkVBRE1FLm9zWDoKCiAgIFVwZGF0ZSB3aXRoIHJlY2VudCBidWlsZCByZXBvcnRzIGZyb20gQ2hyaXMgSmFsYmVydC4KCjIwMDYtMTAtMTMgMTQ6NDUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgU3YzdXNtY29uZmlnYWdlbnQsCiAgICAgU3Zhbnljb25maWc6CgogICBzbXV4c29ja2V0IG5lZWRzIHRvIGJlIGFuIElQdjQgYWRkcmVzcwoKMjAwNi0xMC0xMyAxNDozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBIYW5kbGUgZXJyb3JzIGZyb20gcmVjdigpIC0gc2VlIEJ1ZyAjMTUyNzkzMAoKMjAwNi0xMC0xMyAxNDoyNSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBFeHBsaWNpdGx5IHJlZmVyZW5jZWQgVk5BTUUgdG9rZW4gd2hlbiBkZXNjcmliaW5nICJ2aWV3IiB0b2tlbiB1c2FnZS4KICAgKFN1Z2dlc3RlZCBieSBKb2huIFJvdWlsbGFyZCkKCjIwMDYtMTAtMTMgMTM6NTAgIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgICBkZWZhdWx0X3N0b3JlLnhzOgoKICAgcmVtb3ZlIE5FVFNOTVBfRFNfQUdFTlRfSCB3aGljaCBpc24ndCBhIGRlZmF1bHQgc3RvcmUgdmFyaWFibGUKCjIwMDYtMTAtMTMgMDc6MTQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgZml4IHN5bnRheCB0eXBvCgoyMDA2LTEwLTEzIDAyOjE3ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZG9uJ3QgY29tbWl0IGJvb2xlYW4gbG9naWMgbGF0ZSBhdCBuaWdodAoKMjAwNi0xMC0xMyAwMToyOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDbGFyaWZ5IHRoZSBwYXJzaW5nIG9mIGJvb2xlYW4gIm1vbml0b3IiIGV4cHJlc3Npb25zLgoKMjAwNi0xMC0xMiAxNTo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgdXNlIG1lbW9yeV9kYXJ3aW4gZm9yIGRhcndpbjcKCjIwMDYtMTAtMTIgMTU6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIEVuc3VyZSBpbnRlcm5hbCBxdWVyeSBjb25maWd1cmF0aW9uIGlzIGF2YWlsYWJsZSAoYW5kIGFjdGl2ZSkKICAgKmJlZm9yZSogbW9uaXRvciBkaXJlY3RpdmVzIGF0dGVtcHQgdG8gdXNlIGl0LgoKMjAwNi0xMC0xMiAxNToxOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGJ1aWxkIGZpeCBmb3Igc3lzdGVtcyB3aXRoIG5vIFJUSE9TVF9TWU1CT0wgb3Igbm8gUlRORVRfU1lNQk9MIChsaWtlIEFJWCkKCjIwMDYtMTAtMTIgMDk6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgZml4IHR5cG8KCjIwMDYtMTAtMTIgMDk6MDMgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBDSEFOR0VTOiBBSVg6IHVzZSBjb3JyZWN0IEFSUFRBQl9TWU1CT0wgYW5kIEFSUFRBQl9TSVpFX1NZTUJPTAoKMjAwNi0xMC0xMiAwODoxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9hdXRvX25saXN0LmMsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2FpeC5oOgoKICAgQ0hBTkdFUzogQUlYOiBCVUcgMTIwNTMwMDogbmxpc3QgZXJyOiBuZWl0aGVyIG5wcm9jIG5vciBfbnByb2MgZm91bmQgKHNhbWUgZm9yIHJ0X3RhYmxlLCBydGhhc2hzaXplLCBydGhvc3QsIHJ0bmV0KQoKMjAwNi0xMC0xMiAwNDo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIFN1cHByZXNzIHRoZSBzdWJzdGl0dXRpb24gb2YgdGhlIGxpc3Qgb2YgbW9kdWxlIGhlYWRlciBmaWxlcy4KICAgVGhpcyBpcyBwdXJlbHkgYSB0ZW1wb3Jhcnkgc3RvcC1nYXAgZml4LCB0byBoYW5kbGUgc2VkIGNvbW1hbmRzIHdoaWNoCiAgIGNob2tlIG9uIG92ZXItbG9uZyBzdWJzdGl0dXRpb25zLiAgQSBiZXR0ZXIgYXBwcm9hY2ggaXMgbmVlZGVkLgoKMjAwNi0xMC0xMiAwNDo0MCAgZHRzMTIKCiAgICogTkVXUzoKCiAgIERvY3VtZW50IEhhcmR3YXJlIEFic3RyYWN0aW9uIExheWVyIChpbmNsdWRpbmcgYmVoYXZpb3VyIGNoYW5nZXMpLgoKMjAwNi0xMC0xMiAwMzowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRml4IGhhbmRsaW5nIG9mIGFzc2lnbm1lbnRzIHRvIG10ZVRyaWdnZXJWYWx1ZUlECiAgICAgICBbQnVnICMxNTc0NzEzLCBQYXRjaCAjMTU3NDc0MywgZnJvbSBSb3NzIFR5bGVyXQoKMjAwNi0xMC0xMiAwMjo1NCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW45Lmg6CgogICBUd2Vha3MgZm9yIERhcndpbiA5IHN1cHBvcnQgLSBbUGF0Y2ggIzE1NzU0MzMsIGZyb20gQ2hyaXMgSmFsYmVydF0KCjIwMDYtMTAtMTIgMDI6NDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2RhcndpbjguaDoKCiAgIFVwZGF0ZWQgc3lzdGVtIGhlYWRlciBmaWxlIGZvciBEYXJ3aW44IC0gW1BhdGNoIDE1NzU0MzAsIGJ5IENocmlzIEphbGJlcnRdCgoyMDA2LTEwLTEyIDAyOjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS5oLCBtZW1vcnkuaDoKCiAgIEluY2x1ZGUgdGhlIGFwcHJvcHJpYXRlIEhBTCBtb2R1bGVzIGZvciBEYXJ3aW4gKERhcndpbjkpIHN5c3RlbXMuCiAgIFN1cHBsaWVkIGJ5IENocmlzIEphbGJlcnQuCgoyMDA2LTEwLTExIDA5OjIxICByc3RvcnkKCiAgICogTkVXUzoKCiAgIC0gYWRkIG5vdGUgdGhhdCAtLWVuYWJsZS1tZmQtcmV3cml0ZXMgaXMgbmVlZGVkIGZvciBleHBlcmltZW50YWwgaWYtbWliIHBvcnRzCiAgIC0gcmVtb3ZlIGxpbmUgb24gcGF0Y2ggdG8gcHJldmlvdXNseSB1bnJlbGVhc2UgY29kZQoKMjAwNi0xMC0xMSAwOToxNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogZnJlZWJzZC5oLCBvcGVuYnNkLmg6CgogICBpbmNsdWRlIGlmLW1pYiByZXdyaXRlcyBpZiBtZmQgcmV3cml0ZXMgaXMgZGVmaW5lZAoKMjAwNi0xMC0xMSAwODowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIGluY2x1ZGUgaWYtbWliIHJld3JpdGVzIGlmIG1mZCByZXdyaXRlcyBpcyBkZWZpbmVkCgoyMDA2LTEwLTEwIDE3OjEyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFByaXZveHlXaW5kb3dPcGVuPyBNdXN0IGhhdmUgYmVlbiBtaXNzaW5nIGEgbWFqb3IgZmVhdHVyZSBhZGRpdGlvbjotKQoKMjAwNi0xMC0xMCAxNTozMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBmaXggdHlwb3MKCjIwMDYtMTAtMTAgMTQ6MTMgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm4uaCwKICAgICB0Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fc29sYXJpczIuYywKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludC5oLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X3NvbGFyaXMyLmM6CgogICBORVdTOiBTb2xhcmlzOiBQQVRDSDogMTU2OTUzNywxNTY5NTM5OiBuZXcgVURQLU1JQiBhbmQgVENQLU1JQiBpbXBsZW1lbnRhdGlvbiAoZW5hYmxlIHRocm91Z2ggLS13aXRoLW1pYi1tb2R1bGVzPXVkcC1taWIsdGNwLW1pYikKCjIwMDYtMTAtMTAgMTM6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NzA5ODIgU29sYXJpcyBJRi1NSUI6IFN1cHBvcnQgZm9yIElQdjYtb25seSBpbnRlcmZhY2VzCgoyMDA2LTEwLTEwIDA3OjMyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3IgcHJlYWQ2NCAoQUlYKSBhbmQgbmxpc3Q2NCAoSVJJWCkKCjIwMDYtMTAtMTAgMDY6MTYgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGFkZCBtaXNzaW5nIFNUUlVDVF9OTElTVDY0X0hBU19OX1ZBTFVFIHZhcmlhYmxlIHNvIHRoYXQgdGhlIHRlc3QgcmVzdWx0IGlzIGFjdHVhbGx5IHNhdmVkCgoyMDA2LTEwLTEwIDAzOjUyICB0YW5kZXJzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBzaGVsbCBzeW50YXggZXJyb3JzIHJlcG9ydGVkIGJ5IFJpY2hhcmQgQ2hvbmFrCgoyMDA2LTEwLTA5IDA2OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgbW9yZSByb2J1c3QgU29sYXJpcyBDUFUgdGVzdGluZzogdGhlIGluZGV4IGZvciB0aGUgZmlyc3QgQ1BVIG1heSB2YXJ5IGFjcm9zcyBzeXN0ZW1zIChDUFUgMCA9IGluZGV4IDc2OCwgQ1BVIDEgPSBpbmRleCA3NjkgZXRjLikKCjIwMDYtMTAtMDkgMDQ6MjEgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgZmFpbCBvbiBERUJVR01TRyoKCjIwMDYtMTAtMDggMTM6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1LmgsIGNwdS9jcHVfcHN0YXQuYzoKCiAgIEFjdGl2YXRlIHBzdGF0LWJhc2VkIENQVSBoYW5kbGluZyBvbiBIUC1VWCBzeXN0ZW1zLgoKMjAwNi0xMC0wOCAxMzoyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgRG9uJ3QgcmVkZWZpbmUgYW4gZXhpc3RpbmcgdG9rZW4gd2l0aG91dCB1bmRlZmluaW5nIGl0IGZpcnN0LgoKMjAwNi0xMC0wOCAxMzoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBFbnN1cmUgdGhhdCBoaXN0b3JpY2FsIGRhdGEgaXMgYXZhaWxhYmxlIGJlZm9yZSB3ZSBhdHRlbXB0IHRvIHVzZSBpdC4KCjIwMDYtMTAtMDcgMTQ6NTQgIGR0czEyCgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgRml4IHNpemUgY2hlY2sgZm9yIHNwZWNpYWxpc2VkIGludGVnZXItYmFzZWQgYXNzaWdubWVudHMuCiAgIChCdWcgIzE1NzIzOTQgLSBwYXRjaCBwcm92aWRlZCBieSBQaGlsIFdpbHNvbikKCjIwMDYtMTAtMDcgMDY6NDkgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTUwc29sYXJpc2hvc3RjcHUsIFQxNTNzb2xhcmlzc3dhcDoKCiAgIEFkanVzdCB0byBjaGFuZ2VzIGluIGNlcnRhaW4gSG9zdFJlcyBpbmRleGluZy4KCjIwMDYtMTAtMDUgMTU6NDQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgV2hhdCdzIGEgc3RyYXkgdW5kZXJzY29yZSBoZXJlIG9yIHRoZXJlIGJldHdlZW4gZnJpZW5kcz8KCjIwMDYtMTAtMDUgMDg6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdS5jLCBjcHVfa3N0YXQuYzoKCiAgIERlYnVnZ2luZyBjb2RlLgoKMjAwNi0xMC0wNSAwODo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jOgoKICAgQmUgY29uc2lzdGVudCBpbiB0aGUgdXNlIG9mIENQVSBpbmRleGluZy4KCjIwMDYtMTAtMDQgMTU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogbWVtb3J5LmgsIG1lbW9yeS9tZW1vcnlfbnVsbC5jCjoKCiAgIEFsbG93IHN5c3RlbXMgd2l0aG91dCBhbiBleHBsaWNpdCBIQUwgbWVtb3J5IG1vZHVsZSB0byBjb21waWxlCiAgIChldmVuIGlmIHRoZSBhZ2VudCBjYW4ndCByZXBvcnQgdGhlIHJlbGV2YW50IHN0YXRpc3RpY3MpLgoKMjAwNi0xMC0wNCAxNDo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvOiBjcHUuaCwgY3B1L2NwdV9rc3RhdC5jOgoKICAgSW5jbHVkZSBrc3RhdC1iYXNlZCBDUFUgcHJvY2Vzc2luZyBvbiBTb2xhcmlzIHN5c3RlbXMsIGFuZCBhbWVuZCB0aGlzIGNvZGUKICAgdG8gYWN0dWFsbHkgY29tcGlsZS93b3JrLiAgKE11Y2ggb2YgdGhpcyBzdXBwbGllZCBieSBCcnVjZSBTaGF3KQoKMjAwNi0xMC0wMyAxMTozMCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBUZXN0IGZvciB0aGUgYWN0dWFsIGJlaGF2aW91ciBvZiAtVXggLUR4PXgsIGFuZCBvbmx5IHVzZSB0aGlzIGlmIGl0IHdvcmtzIGFzIGV4cGVjdGVkLgoKMjAwNi0xMC0wMSAwODo0MyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyOiAgQWRkIE5TSVMgaW5zdGFsbGVyIG9wdGlvbiBmb3IgaW5zdGFsbGluZyB3aW5FeHRETEwgdmVyc2lvbiBvZgogICBzbm1wZC5leGUKCjIwMDYtMTAtMDEgMDY6NDIgIGFsZXhfYgoKICAgKiBORVdTLCBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5jCjoKCiAgIFdpbjMyOiAgQWRkIHRyYXAgc3VwcG9ydCB0byB3aW5FeHRETEwgYW5kIGNsZWFuIHVwIGRlYnVnZ2luZyBvdXRwdXQuCgoyMDA2LTA5LTI5IDE5OjAwICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbjMyOiAgUmVtb3ZlIHdpbkV4dERMTCBzbm1wZC5jb25mIG9wdGlvbiwgYWRkIFNOTVAgdjIgc3VwcG9ydC4KCjIwMDYtMDktMjkgMTM6MjggIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnRfaW50Zi5jLCB0ZXN0cy90ZXN0LnB5OgoKICAgdGVzdCBmaXgKCjIwMDYtMDktMjkgMTM6MTggIGhhcmRha2VyCgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50X2ludGYuYywgY2xpZW50X2ludGYuYzoKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cwoKMjAwNi0wOS0yOSAxMzoxOCAgaGFyZGFrZXIKCiAgICogcHl0aG9uL25ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHRlc3RpbmcgdXBkYXRlcwoKMjAwNi0wOS0yOSAxMzowMyAgaGFyZGFrZXIKCiAgICogcHl0aG9uLzogUkVBRE1FLCBuZXRzbm1wL2NsaWVudC5weSwKICAgICBuZXRzbm1wL2NsaWVudF9pbnRmLmMsIG5ldHNubXAvdGVzdHMvdGVzdC5weToKCiAgIHN1cHBvcnQgZm9yIGEgZ2VuZXJpYyB3YWxrIHdyYXBwZXIKCjIwMDYtMDktMjkgMTI6MzEgIG1hcnoKCiAgICogcHl0aG9uL25ldHNubXAvOiBjbGllbnRfaW50Zi5jLCB0ZXN0cy90ZXN0LnB5OgoKICAgY2xlYW51cAoKMjAwNi0wOS0yOCAxODo1MCAgbWFyegoKICAgKiBweXRob24vOiBSRUFETUUsIG5ldHNubXAvY2xpZW50X2ludGYuYzoKCiAgIGFkZGVkICdzZXQnIG1ldGhvZCwgZml4ZXMvYWRkaXRpb25zIHRvIHJlYWRtZQoKMjAwNi0wOS0yNyAyMzowMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2Rhcndpbi5jOgoKICAgQ0hBTkdFUzogTWFjT1NYOiBQQVRDSDogMTU2Njc3NzogZnJvbSBqYWxiZXJ0OiBidWlsZCBmaXhlcyBmb3IgbWVtb3J5X2Rhcndpbi5jCgoyMDA2LTA5LTI3IDE1OjIxICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWlub3IgcmV3b3JkaW5nCgoyMDA2LTA5LTI3IDE0OjMyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgICAgZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUzICkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjQucHJlMiAtPiBWNS40LnByZTMKCQoyMDA2LTA5LTI3IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywKICAgICBuZXRzbm1wX2FnZW50X3RyYXAuMywgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NhbGxiYWNrLjMsCiAgICAgbmV0c25tcF9jb250YWluZXIuMywgbmV0c25tcF9kYXRhX2xpc3QuMywKICAgICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMsCiAgICAgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbmV0c25tcF9sZWFmLjMsCiAgICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfb2lkX3N0YXNoLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICAgIG5ldHNubXBfcmVhZF9jb25maWcuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgICBuZXRzbm1wX3Jvd19tZXJnZS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICAgIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgICAgbmV0c25tcF9zbm1wX2FnZW50LjMsIG5ldHNubXBfc25tcF9hbGFybS4zLAogICAgIG5ldHNubXBfc25tcF9jbGllbnQuMywgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywKICAgICBuZXRzbm1wX3NubXBfcGR1LjMsIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsCiAgICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3N0YXNoX3RvX25leHQuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9nZW5lcmljLjMsCiAgICAgbmV0c25tcF90YWJsZV9pbmRleGVzLjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywgbmV0c25tcF90YWJsZV9tYWludGVuYW5jZS4zCiwgbmV0c25tcF90YWJsZV9yb3dzLjMsIG5ldHNubXBfdGRhdGEuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNi0wOS0yNyAxNDoyOCAgaGFyZGFrZXIKCiAgICogZG94eWdlbi5jb25mOgoKICAgLSB2ZXJzaW9uIHRhZyAoIDUuNC5wcmUzICkKCjIwMDYtMDktMjcgMTQ6MTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4OmNmbGFncyAtPjpjY2ZsYWdzCgoyMDA2LTA5LTI3IDEzOjM2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2Vfc29sYXJpczIuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTU2NjUyMzogZnJvbSBhcGVyc3NvbjogTWVtb3J5IGxlYWsgaW4gaWYtbWliIChTb2xhcmlzKQogICAtIHRha2UgYWR2YW50YWdlIG9mIGlmX25hbWV0b2luZGV4KCkgd2hlbiBwb3NzaWJsZQogICAtIGdyYWIgdGhlIElQdjYgaW50ZXJmYWNlIElkZW50aWZpZXIgaWYgYXZhaWxhYmxlCgoyMDA2LTA5LTI3IDEwOjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zeXNjdGwuYzoKCiAgIC0gdXBkYXRlIGZvciBuZXcgcmVhc21fbWF4IHY0L3Y2IHNwbGl0CiAgIC0gYWRkICdsJyB0byBwcmludGYgc3BlYyBmb3Igc2l6ZV90IHBhcmFtCgoyMDA2LTA5LTI3IDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBsYXJnZWZpbGUgc3VwcG9ydCBvbiBzb2xhcmlzIGFuZCBkaXNhYmxlIGVtYmVkZGVkIHBlcmwgd2hlbiBvbgoKMjAwNi0wOS0yNyAwOTo1MSAgdGFuZGVycwoKICAgKiBGQVE6CgogICB1cGRhdGUgcGxhdGZvcm0gbGlzdAoKMjAwNi0wOS0yNyAwNjo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGhvdXQtcHl0aG9uLW1vZHVsZXMKCjIwMDYtMDktMjYgMTY6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBhZGQgb3BlbmJzZDQgdG8gc3lzY3RsIGludGVyZmFjZSBsaXN0CgoyMDA2LTA5LTI2IDE1OjQ0ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBhZGQgc3VwcG9ydCBmb3Igb3BlbmJzZDQKCjIwMDYtMDktMjYgMTU6MzkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBhZGQgc3VwcG9ydCBmb3Igb3BlbmJzZDQKCjIwMDYtMDktMjYgMTQ6NDAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDb25zaXN0ZW50bHkgc2F5ICJQZXJsIiwgbm90ICJwZXJsIi4KCjIwMDYtMDktMjYgMTQ6MjEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgbmVlZCB0byBkb3VibGUgY2xlYW4gcHl0aG9uCgoyMDA2LTA5LTI2IDE0OjE5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IC0td2l0aG91dC1wZXJsLW1vZHVsZXMKCjIwMDYtMDktMjYgMTI6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfZGFyd2luLmM6CgogICBJbmNsdWRlIHNvbWUgKHByb2JhYmx5IG5vdCBhbGwpIG5lY2Vzc2FyeSBoZWFkZXIgZmlsZXMuCgoyMDA2LTA5LTI2IDEyOjIzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXhlZCBweXRob24gbWFrZSBjbGVhbiB3aGVuIG5vIHB5dGhvbiBzdXBwb3J0IHdhcyByZXF1ZXN0ZWQKCjIwMDYtMDktMjYgMDk6MzkgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgc2V0IHVwIHN5bWxpbmtzIGJlZm9yZSBydW5uaW5nIGNvbmZpZ3VyZSB0byBzdXJ2aXZlIHRoZSBuZXcgcGVybCB0ZXN0cwoKMjAwNi0wOS0yNiAwOTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGFuZ2UgdGhlIHBlcmwgdGVzdHMgdG8gYWxsb3cgZm9yIHN5bWxpbmtzCgoyMDA2LTA5LTI2IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGZpeGVkIHJwbSBjaGVja3MuLi4gIG9wcHBzCgoyMDA2LTA5LTI2IDA5OjA5ICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICBkb2N1bWVudGVkIEFJWCBzZWQgaXNzdWVzCgoyMDA2LTA5LTI2IDA3OjQ5ICBtYXJ6CgogICAqIHB5dGhvbi86IFJFQURNRSwgbmV0c25tcC9jbGllbnQucHksCiAgICAgbmV0c25tcC9jbGllbnRfaW50Zi5jLCBuZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBjbGVhbnVwLCB3ZWlyZCBsZWFmIG9iaiBoYW5kbGluZywgYWRkZWQgc25tcGdldGJ1bGsKCjIwMDYtMDktMjUgMjE6NTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIHNlZHNjcmlwdC5pbiwgZGlzdC9uZXQtc25tcC5zcGVjLAogICAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuNC5wcmUxIC0+IFY1LjQucHJlMgoKMjAwNi0wOS0yNSAyMTo0OSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jYWxsYmFjay4zLAogICAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGF0YV9saXN0LjMsCiAgICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl9tYWludGVuYW5jZS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDktMjUgMjE6NDkgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMiApCgoyMDA2LTA5LTI1IDIxOjM3ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZml4ZWQgc3ludGF4IGVycm9yCgoyMDA2LTA5LTI1IDE3OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmFuIGF1dG9oZWFkZXIKCjIwMDYtMDktMjUgMTc6MjYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFVwZGF0ZSBmb3IgYSAtLXdpdGgtcHl0aG9uLW1vZHVsZXMgZmxhZzsgd2lsbCBydW4gaW50byBzb21lIG9mIHRoZSBzYW1lIGJ1aWxkLWluLXBsYWNlIGlzc3VlcyB0aGF0IHBlcmwgaGFzIGJ1dCBpdCdzIGEgc3RhcnQKCjIwMDYtMDktMjUgMTc6MDQgIGhhcmRha2VyCgogICAqIHB5dGhvbi9SRUFETUU6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZXMKCjIwMDYtMDktMjUgMTY6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVRzogMTU1OTM1ODogZnJvbSB0cmFta2VyOiBjaGVjayBzY2FuZiByZXN1bHRzIGZvciBkaXNraW8gc2Nhbm5pbmcKCjIwMDYtMDktMjUgMTY6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ0hBTkdFUzogc25tcGQ6IEJVR1M6IDE1NjQyMzM6IEhhdmUgY29uZmlndXJlIHRlc3QgZm9yIHJwbSBoZWFkZXJzIG5vdCBqdXN0IHRoZSBsaWJyYXJpZXMKCjIwMDYtMDktMjUgMTQ6NTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3Qgd2FybiBhYm91dCBleGNsdWRpbmcgcmVxdWlyZWQgbW9kdWxlcyB3aGVuIHRoZSBjdXJyZW50IGZpbGUgaXMgZGVmYXVsdF9taWJzCgoyMDA2LTA5LTI1IDE0OjMzICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIENIQU5HRVM6IHNubXBsaWI6IFBBVENIOiAxNTY1MjkzOiBmcm9tIGFkcDogVURQSVB2NiB0cmFuc3BvcnQgcmVwb3J0cyB3cm9uZyBwb3J0IG51bWJlcgoKMjAwNi0wOS0yNSAxMDo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB0ZXN0cyB0byBzZWUgaWYgd2UncmUgaW4gdGhlIG1haW4gc291cmNlIHRyZWUgc28gd2UgY2FuIGluc3RhbGwgdGhlIHBlcmwgbW9kdWxlcyBvciBub3QKCjIwMDYtMDktMjUgMDk6MjUgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3QvOiBhc3luYy50LCBidWxrd2Fsay50LCBjb25mLnQsCiAgICAgZ2V0LnQsIGdldG5leHQudCwgbWliLnQsIG1pYmxvYWQudCwKICAgICBub3RpZnkudCwgc2Vzc2lvbi50LCBzZXQudDoKCiAgIE1ha2UgcGVybCB0ZXN0IHN1aXRlIHdvcmsgZXZlbiBpZiBuZXQtc25tcCBpc24ndCBpbnN0YWxsZWQgeWV0LgoKMjAwNi0wOS0yNSAwODo0OCAgdGFuZGVycwoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBOZXRTTk1QOjphZ2VudCB0ZXN0cyBuZWl0aGVyIG5lZWQgY29uZmlnIG5vciBNSUJzCgoyMDA2LTA5LTI1IDA4OjIxICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGV4Y2x1ZGUgQ1ZTIGZpbGVzIGZyb20gbmlnaGx5IHRhcmJhbGxzCgoyMDA2LTA5LTI1IDA3OjMwICBtYXJ6CgogICAqIHB5dGhvbi9uZXRzbm1wLzogY2xpZW50LnB5LCBjbGllbnRfaW50Zi5jLAogICAgIHRlc3RzL3Rlc3QucHk6CgogICBhZGRpbmcgZ2V0YnVsaywgcmVtb3Zpbmcgc29tZSBkZWJ1ZwoKMjAwNi0wOS0yNSAwNTozNSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgRG9uJ3QgbWl4IHRhYnMgYW5kIHNwYWNlcyBmb3IgaW5kZW50YXRpb24uIENvbnZlcnQgYWxsIChyYXJlbHkgdXNlZCkgdGFicyB0byBzcGFjZXMuCgoyMDA2LTA5LTI1IDAxOjQyICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oCiwgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgRGlzdGluZ3Vpc2ggYmV0d2VlbiAiT0lELioiIGFuZCAiT0lEKiIgd2lsZGNhcmQgc3ludGF4IChleGNsdXNpdmUgYW5kCiAgIGluY2x1c2l2ZSBzdWJ0cmVlIG1hdGNoZXMgcmVzcGVjdGl2ZWx5KS4KCjIwMDYtMDktMjUgMDE6MzggIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZgo6CgogICBJbXBsZW1lbnQgKGFuZCBkb2N1bWVudCkgIk9JRC4qIiBzeW50YXggZm9yIHN1YnRyZWUgbWF0Y2hpbmcuCgoyMDA2LTA5LTI0IDE1OjI4ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvd2luRXh0RExMLmM6CgogICBXaW4zMjogd2luRXh0RExMIC0gRml4IGJ1ZyB3aXRoIHNldCByZXF1ZXN0cywgc3RhcnQgdG8gYWRkIFNOTVB2MiBzdXBwb3J0LgoKMjAwNi0wOS0yMyAwMDoxMyAgdGFuZGVycwoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgT0lELnBtIHRlc3RzIHNob3VsZG4ndCBkZXBlbmQgb24gKmluc3RhbGxlZCogTUlCcwoKMjAwNi0wOS0yMiAxNDoxOCAgdGFuZGVycwoKICAgKiBweXRob24vUkVBRE1FOgoKICAgc29tZSBuaXQtcGlja2luZwoKMjAwNi0wOS0yMiAxMzo1NiAgdGFuZGVycwoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgU05NUC5wbSBwZXJsIHRlc3RzIHNob3VsZG4ndCBkZXBlbmQgb24gKmluc3RhbGxlZCogTUlCcwoKMjAwNi0wOS0yMiAxMjo0NyAgbWFyegoKICAgKiBweXRob24vUkVBRE1FOgoKICAgUkVBRE1FIGVkaXRzCgoyMDA2LTA5LTIyIDEyOjAzICBtYXJ6CgogICAqIHB5dGhvbi9SRUFETUU6CgogICBtb2RzIHRvIFJFQURNRSB3aXRoIHNvbWUgdXNhZ2UgaW5mbwoKMjAwNi0wOS0yMiAxMDoyNSAgaGFyZGFrZXIKCiAgICogcHl0aG9uL1JFQURNRToKCiAgIHByb3BlciBuYW1pbmcKCjIwMDYtMDktMjIgMTA6MjUgIGhhcmRha2VyCgogICAqIHB5dGhvbi86IExJQ0VOU0UsIFJFQURNRToKCiAgIGFkZGVkIGEgcmVhZG1lIGFuZCBsaWNlbnNlIGZpbGUKCjIwMDYtMDktMjIgMTA6MjAgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBkYXRlIHVwZGF0ZQoKMjAwNi0wOS0yMiAwNzo1OCAgbWFyegoKICAgKiBweXRob24vOiBzZXR1cC5weSwgbmV0c25tcC9fX2luaXRfXy5weSwKICAgICBuZXRzbm1wL2NsaWVudC5weSwgbmV0c25tcC9jbGllbnRfaW50Zi5jLAogICAgIG5ldHNubXAvdGVzdHMvX19pbml0X18ucHksIG5ldHNubXAvdGVzdHMvc25tcGQuY29uZiwKICAgICBuZXRzbm1wL3Rlc3RzL3Rlc3QucHk6CgogICBBZGRpbmcgaW5pdGlhbCBhbHBoYSBzdXBwb3J0IGZvciBuZXQtc25tcCBweXRob24gYmluZGluZwoKMjAwNi0wOS0yMiAwNDo0NyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBEb24ndCBmYWlsIG9uICJMT0dfRVJSIi4KCjIwMDYtMDktMjIgMDM6MjkgIHRhbmRlcnMKCiAgICogcGVybC9TTk1QL3QvOiBub3RpZnkudCwgc3RhcnRhZ2VudC5wbDoKCiAgIGZpeCBTTk1QLnBtIG5vdGlmeSB0ZXN0IChzdGFydCBzbm1wdHJhcGQgd2l0aCB2YWxpZCBvcHRpb25zKQoKMjAwNi0wOS0yMSAwOToxNSAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcC9NYWtlZmlsZS5pbiwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgICBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW4sIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAo6CgogICBXaW5kb3dzIGJ1aWxkIGZpeGVzLgoKMjAwNi0wOS0yMSAwNzo0MyAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9wZXJsX3NubXB0cmFwZC5oOgoKICAgU3luYyBzdHJ1Y3QgbmV0c25tcF90cmFwZF9oYW5kbGVyX3Mgd2l0aCB0aGUgbGlicmFyeSBjb2RlIGFnYWluIChhZGQgImZsYWdzIikuCgoyMDA2LTA5LTIxIDA2OjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGZpeCBwb3RlbnRpYWwgc2VnZmF1bHQgaW50cm9kdWNlZCBieSBwYXRjaCAxNTYxMjc3CgoyMDA2LTA5LTIxIDA1OjIxICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgI2luY2x1ZGUgPG5ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaD4gZm9yIFNOTVBfU1RST1JOVUxMCgoyMDA2LTA5LTIxIDAzOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgKnJlYWxseSoga2VlcCBwcmVYL3JjWCBpbiB2ZXJzaW9uIHN0cmluZ3MKCjIwMDYtMDktMjAgMTk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBjaGFuZ2UgYWdlbnR4IHNvY2tldCBkZWZpbmUgdG8gTkVUU05NUF8gcHJlZml4ZWQKCjIwMDYtMDktMjAgMTM6MjYgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBDaGVjayBpbmNvbWluZyB0cmFwIE9JRHMgYXMgYW4gZXh0ZW5zaW9uIG9mIHRoZSB0cmFwaGFuZGxlIE9JRAogICAoYnV0IG5vdCB0aGUgb3RoZXIgd2F5IHJvdW5kISkKCjIwMDYtMDktMjAgMDk6NDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgY2hhbmdlIHByZSB0YWdzIHRvIDAuIHRvIGF2b2lkIGJhZGx5IGdlbmVyYXRlZCB2ZXJzaW9uIG51bWJlcnMKCjIwMDYtMDktMjAgMDc6NDUgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBhdXRvbWF0dGVkIHRlc3Rpbmcgb2YgdGhlIHByb2R1Y2VkIHRhci1iYWxsCgoyMDA2LTA5LTE5IDIyOjIzICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZml4IHBhdGggdG8gZXh0cmFjdG5ld3MKCjIwMDYtMDktMTkgMjI6MTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbgosIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIGNvbmZpZ3VyZSwKICAgICBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIHZlcnNpb24gdGFnICggNS40LnByZTEgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMyAtPiBWNS40LnByZTEKCjIwMDYtMDktMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX21haW50ZW5hbmNlLjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF9zdGFzaF90b19uZXh0LjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfZ2VuZXJpYy4zLAogICAgIG5ldHNubXBfdGFibGVfaW5kZXhlcy4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci5oLjMsIG5ldHNubXBfdGFibGVfbWFpbnRlbmFuY2UuMwosIG5ldHNubXBfdGFibGVfcm93cy4zLCBuZXRzbm1wX3RkYXRhLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgZG9jdW1lbnRhdGlvbiB1cGRhdGUKCjIwMDYtMDktMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdmVyc2lvbiB0YWcgKCA1LjQucHJlMSApCgoyMDA2LTA5LTE5IDE3OjEyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICBjYXZlIHRvIHB1dHRpbmcgaW4gc29tZSBidWZmZXIgc3BhY2UgZm9yIGxpYmN1cnJlbnQ7IDUuMyB3YXMgMTAgYW5kIGluY3JlbWVudHMgb2YgNSBtYWtlIGl0IGVhc3ksIHNvIDUgaXQgaXMuCgoyMDA2LTA5LTE5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBkaXN0LzogZXh0cmFjdG5ld3MsIG1ha2VyZWxlYXNlOgoKICAgeWV0IG1vcmUgdXBkYXRlcyBmb3IgbWFraW5nIHJlbGVhc2VzCgoyMDA2LTA5LTE5IDE2OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIG1vcmUgZml4ZXMgZm9yIHVkcCBkb21haW5zOiByZW1vdmUgcmVxdWlyZW1lbnQgZm9yIGluZXRfYXRvbiB3aGljaCBvbiBzb21lIHN5c3RlbXMgZXhpc3RzIGluIGxpYnJlc29sdgoKMjAwNi0wOS0xOSAxNjozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICB1ZHAgZG9tYWluIGZpeGVzCgoyMDA2LTA5LTE5IDE2OjA0ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYnVpbGQgZml4IGZvciBJUklYIHdpdGggU0dJJ3MgY2MKCjIwMDYtMDktMTkgMTU6NTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgKLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBORVdTOiBzbm1wdHJhcGQ6IHRoZSB0cmFwaGFuZGxlIGRpcmVjdGl2ZSBub3cgc3VwcG9ydHMgYSAtdCBzd2l0Y2ggdG8gaW5kaWNhdGUgbWF0Y2hpbmcgYW55IE9JRCBpbiB0aGUgdHJlZSBiZWxvdyB0aGUgc3BlY2lmaWVkIE9JRAoKMjAwNi0wOS0xOSAxNToxOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L1N1cHBvcnQucG06CgogICBjbGVhbmVkIHVwIHBlcmwgdmFycyBmb3Igc3VwcG9ydCBvbiBvbGRlciBwZXJsIHZlcnNpb25zCgoyMDA2LTA5LTE5IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBlcnJvciBsb2dpYyBpbiBwZXJsIHRlc3RzCgoyMDA2LTA5LTE5IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHNtYXJ0IGRldGVjdGlvbiBvZiBhdmFpbGFibGUgcGVybCBzdXBwb3J0CgoyMDA2LTA5LTE5IDExOjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBwZXJsIGNjIHRlc3QgdG8gYWxsb3cgZm9yIGRhc2ggb3B0aW9ucwoKMjAwNi0wOS0xOSAxMDo1OCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVwb3J0IHRoZSBhcHByb3ByaWF0ZSBwcmVmaXggbWF0Y2ggd2hlbiBvbmUgT0lEIGlzIGEgcHJlZml4IG9mIHRoZSBvdGhlci4KICAgVGhlIHByZXZpb3VzIGNvZGUgdHJlYXRlZCB0aGlzIGFzIGEgbm9uLW1hdGNoIChyZXR1cm5pbmcgMCkuCiAgIEknbSBub3QgYXQgYWxsIGNvbnZpbmNlZCBieSB0aGUgIisxIiBoYW5kbGluZyBlaXRoZXIuCgoyMDA2LTA5LTE5IDEwOjI1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFub3RoZXIgYXR0ZW1wdCB0byBmaXggdGhlIGl0ZW1zIGNhbGN1bGF0aW9uIHdpdGhvdXQgcG9wcGluZyBhIG1hcmsKCjIwMDYtMDktMTkgMDk6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBORVdTOiBzbm1wZDogUEFUQ0g6IDE1NTA3MjU6IGZyb20gJ1dheW5lIEdsYW50eic6IEEgbmV3IHVpbnQgaW5zdGFuY2UgaGVscGVyIHRvIG1hdGNoIHRoZSBleGlzdGluZyBpbnQsIGxvbmcgYW5kIHVsb25nIGhlbHBlcnMKCjIwMDYtMDktMTkgMDk6MzQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBORVdTOiBzbm1wZDogQlVHOiAxNTI3OTMwOiBmaXggc211eCBhdXRoZW50aWNhdGlvbgoKMjAwNi0wOS0xOSAwOToxNyAgaGFyZGFrZXIKCiAgICogZGlzdC86IFJFTEVBU0UtSU5TVFJVQ1RJT05TLCBleHRyYWN0bmV3czoKCiAgIHJlbW92ZSBmcm9tIHVzZXIgc3RyaW5ncyBpbiBORVdTIGFuZCBDSEFOR0VTIGxpbmVzCgoyMDA2LTA5LTE5IDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgcmVtb3ZlIHJvYmVydCdzIHNlbGYtY2FsbGVkIGhhY2sgZm9yIG1ha2luZyBzbm1wdHJhcGQgaGFuZGxlIHBhcnRpYWwgT0lEcy4gIEFzIGFncmVlZCB0byBvbiBjb2RlcnMgdGhpcyBjYW4ndCBiZSBkb25lIGFzIGlzIGJlY2F1c2UgaXQgY29tcGxldGVseSBjaGFuZ2VzIGV4aXN0aW5nIHVzYWdlLiAgQSBuZXcgbWVjaGFuaXNtIGlzIG5lZWRlZCB0byBzdXBwb3J0IHRoaXMgYmVoYXZpb3VyIHNvIGl0IGRvZXNuJ3QgYnJlYWsgYmFja3dhcmRzIGNvbXBhdGliaXR5IHdpdGggcG90ZW50aWFsIHNlY3VyaXR5IHJhbWlmaWNhdGlvbnMKCjIwMDYtMDktMTkgMDc6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlcnZpY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wU1RERG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX3NlcnZpY2UuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgTkVXUzogc25tcGxpYjogUEFUQ0g6IDEyODI1NjY6IGZyb20gbWFnZnIgdG8gcmV3b3JrIHRyYW5zcG9ydCBjcmVhdGlvbiB0byBhbGxvdyBmb3IgYWx0ZXJuYXRpdmUgaW50ZXJwcmV0YXRpb25zIG9mIHRoZSBhZGRyZXNzIGFuZCBhIG1vcmUgZmxleGlibGUgdHJhbnNwb3J0IHJlZ2lzdHJhdGlvbiBzeXN0ZW0KCjIwMDYtMDktMTkgMDY6MTcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgTkVXUzogc25tcGQ6IFBBVENIOiAxNTYxMjc3OiB1c2UgbmV0LmlwdjYubmVpZ2gubG8uYmFzZV9yZWFjaGFibGVfdGltZV9tcyBpbnN0ZWFkIG9mIGRlcHJlY2F0ZWQgYmFzZV9yZWFjaGFibGVfdGltZQoKMjAwNi0wOS0xOSAwNDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlRXZlbnQuYywgbXRlT2JqZWN0cy5jCjoKCiAgIERvbid0IHJlLWluaXRpYWxpc2UgYnVpbHQtaW4gRXZlbnQtTUlCIGV2ZW50cywgZXRjLgoKMjAwNi0wOS0xOSAwMzoyNCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIEZpcnN0IHN0ZXBzIGluIHN1cHBvcnRpbmcgc2luZ2xlLWluc3RhbmNlIHJlZ2lzdHJhdGlvbnMuCgoyMDA2LTA5LTE4IDIxOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIENIQU5HRVM6IHNubXBkOiBCVUdTOiAxNDc0NDY4OiBpZkNvbm5lY3RvclByZXNlbnQgYWx3YXlzIHJldHVybnMgMAoKMjAwNi0wOS0xOCAyMDo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBtb2RpZmllZCB0aGUgaG9zdCByZXNvdXJjZXMgc2tpcCBORlMgcGF0Y2ggdG8gZml4IGEgYnVnIGFuZCB0byB1c2UgdGhlIGRlZmF1bHQgc3RvcmFnZSBjb25maWcgaW5zdGVhZAoKMjAwNi0wOS0xOCAyMDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaDoKCiAgIENIQU5HRVM6IHNubXBkOiBQQVRDSDogMTUyNDc1NTogZnJvbSBhcGVyc3NvbiB0byBiZXR0ZXIgc3VwcG9ydCB0aGUgVURQVGFibGUgZm9yIHVua25vd24gYWRkcmVzcyB0eXBlcwoKMjAwNi0wOS0xOCAyMDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIE5FV1M6IHNubXBkOiBQQVRDSDogMTUzNDg3NzogZnJvbSBidWNraCB0byBhZGQgc3VwcG9ydCBmb3Igc2tpcHBpbmcgTkZTIGVudHJpZXMgaW4gdGhlIGhvc3QgcmVzb3VyY2VzIGhyU3RvcmFnZVRhYmxlLiAgU2VlIHRoZSBza2lwTkZTSW5Ib3N0UmVzb3VyY2VzIHRva2VuIGluIHRoZSBzbm1wZC5jb25mIGZpbGUgZm9yIGRldGFpbHMuCgoyMDA2LTA5LTE4IDIwOjAwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgYWNjZXB0aWxlIE5FV1MgdG9rZW5zCgoyMDA2LTA5LTE4IDE3OjMwICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG9jdW1lbnQgdGhlIG5ldyBDVlMgTkVXUyB0YWcgc3lzdGVtCgoyMDA2LTA5LTE4IDE2OjA1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBORVdTOiBzbm1wdHJhcGQ6IC0gUEFUQ0g6IDE1MzY3NzM6IHN1cHBvcnQgcGFydGlhbCBvaWQgbWF0Y2hpbmcKCiAgIFdlIGNhbiBzdGlsbCBhZGQvcmVxdWlyZSBhIHNwZWNpYWwgdG9rZW4vc3ludGF4IGZvciB0aGlzIGFmdGVyIHByZTEKICAgaWYgdGhpcyB3YXMgdGhlIGNvbnNlbnN1cy4KCjIwMDYtMDktMTggMTU6MjQgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX3NvbGFyaXMyLmM6CgogICBmaXggcmVjZW50IGJ1aWxkIGlzc3VlcyBvbiBTb2xhcmlzIDcgKHBhdGNoIHByb3ZpZGVkIGJ5IEFuZGVycyBQZXJzc29uKQoKMjAwNi0wOS0xOCAwNzoxOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2lyaXguYzoKCiAgIGFkZCBkZWJ1Z2dpbmcsIGZpeCBzb21lIGZpZ3VyZXMKCjIwMDYtMDktMTggMDI6MDggIHRhbmRlcnMKCiAgICogcGVybC9hZ2VudC9NQU5JRkVTVDoKCiAgIGFkZCBOZXRTTk1QOjphZ2VudDo6U3VwcG9ydCBmaWxlcwoKMjAwNi0wOS0xOCAwMToxNyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1Lmg6CgogICBNb3ZlIHVwIGFuZCByZW5hbWUgdGhlICNpZm5kZWYgdG8gcHJldmVudCBkdXBsaWNhdGUgaW5jbHVkZS4gRml4ZXMgY29tcGlsZSBlcnJvcnMgd3J0LiBDb3VudGVyNjQgb24gU29sYXJpcyA3IGFuZCBlYXJsaWVyLgoKMjAwNi0wOS0xNiAxNjozMyAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFJFQURNRSB1cGRhdGUgZm9yIHdpbkV4dERMTC4KCjIwMDYtMDktMTYgMTU6MjIgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYzoKCiAgIFdpbmRvd3Mgd2luRXh0RExMOiBVc2UgcmVnaXN0cnkgZW50cmllcyBmb3IgV2luZG93cyBTTk1QIGV4dGVuc2lvbiB0byBnZXQKICAgdGhlIGxpc3Qgb2YgRExMcyB0byBsb2FkLgoKMjAwNi0wOS0xNiAxMzo0OSAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgTkVUU05NUF8gZGVmaW5lIGZpeGVzLgoKMjAwNi0wOS0xNiAxMjo1NiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgY29uZmlndXJlLmluOgoKICAgZml4IGNoZWNrIGZvciA8c3lzL3N5c3RlbWNmZy5oPiAoQUlYKQoKMjAwNi0wOS0xNiAxMTowMSAgdGFuZGVycwoKICAgKiB3aW4zMi86IGNvbmZpZy5oLmJvcmxhbmQsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIGZpeCBzb21lIE5FVFNOTVBfTkVUU05NUF8qICJkb3VibGUgcmVuYW1lIiBlcnJvcnMgZm9yIFdpbmRvd3MKCjIwMDYtMDktMTYgMTA6NTYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICByZXZlcnQgdG8gKGxvY2FsKSBPTERfSEVJTURBTCBkZWZpbmUKCjIwMDYtMDktMTYgMTA6MjMgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlbmFtZSBsYXN0IG9jY3VyZW5jZSBvZiBET05UX1VTRV9OTElTVAoKMjAwNi0wOS0xNiAxMDoxMCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9oZWFkZXIKCjIwMDYtMDktMTYgMDg6NDQgIGFsZXhfYgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC86IGxpYnNubXAuZGVmLCBsaWJzbm1wLmRlZi5pbjoKCiAgIFdpbmRvd3MgTVNWQyBQZXJsIGNvbXBpbGUgZml4ZXMuCgoyMDA2LTA5LTE2IDA4OjE5ICBhbGV4X2IKCiAgICogcGVybC9hZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMOgoKICAgRml4IGZvciBidWlsZGluZyB1bmRlciBXaW5kb3dzIChNU1ZDKS4KCjIwMDYtMDktMTUgMDk6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBhY3RpdmF0ZSBtZW1vcnkgSEFMIGNvZGUgZm9yIElSSVgKCjIwMDYtMDktMTUgMDk6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9pcml4LmM6CgogICBpbml0aWFsIElSSVggdmVyc2lvbiBvZiBtZW1vcnkgSEFMIGludGVyZmFjZQoKMjAwNi0wOS0xNSAwNzo0OCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciA8c3lzL3N5c2dldC5oPiAoSVJJWCkKCjIwMDYtMDktMTUgMDc6MTQgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oLCBzbm1wbGliL3N5c3RlbS5jCjoKCiAgIGludHJvZHVjZSBuZXRzbm1wX29zX2tlcm5lbF93aWR0aCgpIHRvIGJlIGFibGUgdG8gZGV0ZWN0IDY0Yml0IGtlcm5lbHMgYXQgcnVudGltZQoKMjAwNi0wOS0xNSAwNjoxMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBzeXMvc3lzdGVtY2ZnLmggKEFJWCkgYW5kIHN5cy9zeXN0ZW1pbmZvLmggKElSSVgpCgoyMDA2LTA5LTE1IDA1OjQ2ICB0YW5kZXJzCgogICAqIFJFQURNRS53aW4zMiwgYWNjb25maWcuaCwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwgc25tcGxpYi9rZXl0b29scy5jLAogICAgIHNubXBsaWIvc2NhcGkuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLAogICAgIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ2Jhc2UKLCB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVBRVMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNHNubXB2M2dldFNIQTEsCiAgICAgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNnNubXB2M2dldFNIQUFFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgICAgdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm1wcml2LAogICAgIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXAsIHdpbjMyL0NvbmZpZ3VyZToKCiAgIG1vcmUgcmVuYW1lcyBhbmQgZml4ZXMKCjIwMDYtMDktMTUgMDQ6MTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IHN5bnRheCBlcnJvciB0aGF0IGJyb2tlIHRoZSBTb2xhcmlzIGJ1aWxkCgoyMDA2LTA5LTE1IDAzOjQ0ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHdyb25nIHJlbmFtZXMKCjIwMDYtMDktMTUgMDM6MzAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICByZXN0cmljdCBJUF9QS1RJTkZPIGNvZGUgdG8gTGludXgKCjIwMDYtMDktMTUgMDI6MTYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIGZpeCBzeW50YXggZXJyb3JzIHdoaWNoIGJyb2tlIHRoZSBidWlsZCBvbiBTb2xhcmlzCgoyMDA2LTA5LTE0IDIxOjAzICBhbGV4X2IKCiAgICogd2luMzIvOiBjb25maWcuaC5ib3JsYW5kLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAosIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hhbmdlIE5ldC1TTk1QIGRlZmluZXMgdG8gdXNlIE5FVFNOTVBfIHByZWZpeC4KCjIwMDYtMDktMTQgMTc6NDggIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgICBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvYXJwX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2FpeDQuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZGFyd2luNy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9haXg0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2RhcndpbjcuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfaHB1eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYywKICAgICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdXNtLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvYXJwLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3JvdXRlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2FzbjEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wU1RERG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICAgIHBlcmwvU05NUC9TTk1QLnhzLCBzbm1wbGliL2FzbjEuYywKICAgICBzbm1wbGliL2luZXRfbnRvcC5jLCBzbm1wbGliL2luZXRfcHRvbi5jLAogICAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9tdF9zdXBwb3J0LmMsCiAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BrY3MuYywKICAgICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgICBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jCiwgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdG9vbHMuYwosIHRlc3RpbmcvZXRpbWV0ZXN0LmMsIHRlc3RpbmcvbWlzY3Rlc3QuYywKICAgICB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmg6CgogICBBbHdheXMgdXNlIHRoZSBuZXcgbmV0LXNubXAtY29uZmlnLmggZGVmaW5pdGlvbnMgZnJvbSB3aXRoaW4gdGhlIE5FVFNOTVBfCiAgIG5hbWVzcGFjZS4KCjIwMDYtMDktMTQgMTY6NTUgIGhhcmRha2VyCgogICAqIGRpc3QvZXh0cmFjdG5ld3M6CgogICBmaXJzdCBwYXNzIGF0IGV4dHJhY3RpbmcgTkVXUy9DSEFOR0VTIGZpbGVzIGZyb20gY3ZzIGxvZ3MKCjIwMDYtMDktMTQgMTY6MzIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBkZXRlY3Qgc29sYXJpcyBpYmQvaXAudHVuL2F0aCBpbnRlcmZhY2UgdHlwZXMgcHJvcGVybHkKCjIwMDYtMDktMTQgMTU6MjggIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gU29sYXJpcyBpZi1taWIgcmV3cml0ZQoKMjAwNi0wOS0xNCAxNToxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgW25vIGxvZyBtZXNzYWdlXQoKMjAwNi0wOS0xNCAxNToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBORVdTOiBQQVRDSEVTOiAxNTA5OTQzOiByZXNwb25zZXMgd2lsbCBnZXQgc2VudCBmcm9tIHRoZSBvcmlnaW5hbCBkZXN0IElQIGFkZHJlc3Mgd2hlbiBwb3NzaWJsZS4KCjIwMDYtMDktMTQgMTQ6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBDSEFOR0VTOiBQQVRDSEVTOiAxNTU0ODI3OiBmcm9tIHJ0eWxlOiBmaXggaGFuZGxpbmcgb2YgZmFpbGVkIHByb3h5IFNFVCByZXF1ZXN0cwoKMjAwNi0wOS0xNCAxMzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMKOgoKICAgQ0hBTkdFUzogc25tcGQ6IFBBVENIRVM6IDE1NTc1MTQgZnJvbSBydHlsZTogRG8gbm90IGF0dGVtcHQgdG8gY29sbGVjdCBkYXRhIGR1cmluZyBTRVQgcHJvY2Vzc2luZy4KCjIwMDYtMDktMTQgMTM6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGFzcyAyIGF0IGdldHRpbmcgYXV0by1idWlsZCBzdXBwb3J0IGZvciAuc28gZmlsZXMuICBJJ20gbm93IGNvbnZpZW5jZWQgaXQncyBjbG9zZSB0byBpbXBvc3NpYmxlIHRvIGRvIGNvcnJlY3RseSB3aXRoIGRlcGVuZGVuY3kgaXNzdWVzIGFuZCBubyBzdXBwb3J0IGZvciByZWN1cnNpdmUgZnVuY3Rpb25zIGluIHNoCgoyMDA2LTA5LTE0IDEyOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9zb2xhcmlzMi5jOgoKICAgc29sYXJpcyBzdXBwb3J0IGZvciBpZi1taWIgNjRiaXQgY291bnRlcnMKCjIwMDYtMDktMTQgMTA6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGlwQWRkci5jLCB2YXJfcm91dGUuYwo6CgogICB1c2UgbmV3IGRhdGEgYWNjZXNzIHJvdXRpbmUgZm9yIHNvbGFyaXMsIGlmIHJld3JpdGUgaW4gZWZmZWN0CgoyMDA2LTA5LTE0IDEwOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIHVzZSBORVRTTk1QX0lOQ0xVREVfSUZUQUJMRV9SRVdSSVRFUyB0byBkZWNpZGUgYWJvdXQgaWYtbWliIHN1cHBvcnQKCjIwMDYtMDktMTQgMTA6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oLAogICAgIGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIHNvbGFyaXMgc3VwcG9ydCBmb3IgaWYtbWliIDY0Yml0IGNvdW50ZXJzCgoyMDA2LTA5LTE0IDEwOjIzICByc3RvcnkKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9jb25mICYmIGF1dG9oZWFkZXIKCjIwMDYtMDktMTQgMTA6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICB0eXBlIGNoZWNrIGZvciBzb2xhcmlzIENvdW50ZXI2NAoKMjAwNi0wOS0xNCAxMDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBzcGxpdCByZWFzbV9tYXggaW50IHR3byB2YXJzICh2Ni92NikKCjIwMDYtMDktMTQgMDc6NTEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oOgoKICAgZGVmaW5lIE5FVFNOTVBfSU5DTFVERV9JRlRBQkxFX1JFV1JJVEVTCgoyMDA2LTA5LTE0IDA3OjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgbWliSUkvaWZUYWJsZS5oOgoKICAgT25seSB0cnkgdG8gdXNlIG1mZCBjb2RlIGlmZiBORVRTTk1QX0lOQ0xVREVfSUZUQUJMRV9SRVdSSVRFUyBpcyBkZWZpbmVkCgoyMDA2LTA5LTE0IDA3OjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFkZCBkZWZpbmVkIGZvciBuZXcgaWZPcGVyU3RhdHVzIHZhbHVlcwoKMjAwNi0wOS0xNCAwMjo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9yb3cuYwosIGxvY2FsL21pYjJjLnJvdy5jb25mOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgYSBzaW5nbGUtcm93IGhlbHBlci4KCjIwMDYtMDktMTMgMTA6MDAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgcGFzcyBvbmUgYXQgc3BlY2lmeWluZyBkbGxzIHRvIGJ1aWxkIHZpYSBtb2R1bGVzLiAgRG8gbm90IHVzZSB0aGlzIHlldCBhcyB0aGVyZSBhcmUgY29uZmxpY3QgaXNzdWVzIHRoYXQgbmVlZCB0byBiZSB3b3JrZWQgb3V0CgoyMDA2LTA5LTEyIDE4OjMyICBhbGV4X2IKCiAgICogTkVXUywgUkVBRE1FLndpbjMyLCBhZ2VudC9taWJncm91cC93aW5FeHRETEwuYwosIGFnZW50L21pYmdyb3VwL3dpbkV4dERMTC5oLAogICAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luZG93czogbmV3IHdpbkV4dERMTCBleHRlbnNpb24gbW9kdWxlIHRvIGFsbG93IHNubXBkIHRvIGxvYWQgV2luZG93cwogICBTTk1QIHNlcnZpY2UgZXh0ZW5zaW9uIERMTHMgdG8gcHJvdmlkZSBzdXBwb3J0IGZvciBIT1NULVJFU09VUkNFUy1NSUIKICAgYW5kIG90aGVyIE1JQnMgcHJvdmlkZWQgd2l0aCBXaW5kb3dzLgoKMjAwNi0wOS0xMiAxNjoxNSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ0FOX1VTRV9TWVNDVEwgLT4gTkVUU05NUF9DQU5fVVNFX1NZU0NUTAoKMjAwNi0wOS0xMiAxNTo0MiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1pbm9yIGZpeGVzCgoyMDA2LTA5LTEyIDE1OjM1ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIHNlZHNjcmlwdC5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjYuaDoKCiAgIE5FV1M6IG1pc2M6IC0gTW9zdCBuZXQtc25tcCBzcGVjaWZpYyBkZWZpbmVzIGFyZSBub3cgKGFsc28pIGF2YWlsYWJsZSB1bmRlciBhIHByb3BlciBORVRTTk1QXyBwcmVmaXguIFRoZSBvbGRlciwgcG90ZW50aWFsbHkgY29uZmxpY3RpbmcgbmFtZXMgYXMgd2VsbCBhcyB0aGUgYXV0b2NvbmYgdmFyaWFibGVzIGNhbiBub3cgYmUgdHVybmVkIG9mZiBieSBhIHNwZWNpYWwgZGVmaW5lLgoKMjAwNi0wOS0xMiAxMDozMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgTkVXUzogYWdlbnQ6IC0gW0JVR1M6IDE0Mjc0MTBdIFNldCBhdXRoIGVuZ2luZUlEIGZvciBTTk1QdjMgdHJhcHMuCiAgIChyYXRoZXIgdGhhbiBzZW5kaW5nIGEgdHJhcCB3aXRoIG5vIGF1dGggZW5naW5lSUQpCgoyMDA2LTA5LTEyIDEwOjMwICBkdHMxMgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgTkVXUzogYnVpbGQ6IC0gW0JVR1MgMTQxNjQ4MV0gU3VwcG9ydCBzcGVjaWZ5aW5nIGFuIGV4cGxpY2l0IGxpbmtlci4KICAgRGVmYXVsdHMgdG8gJENDIGlmIG5vdCBleHBsaWNpdGx5IHNldC4KCjIwMDYtMDktMTIgMTA6MjcgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgTkVXUzogYWdlbnQ6IC0gW0JVR1MgMTUwMjI2N10gQnVpbGQgYWNjZXNzIGxpc3QgaW4gdGhlIGNvcnJlY3Qgb3JkZXIuCgoyMDA2LTA5LTEyIDA2OjA2ICB0YW5kZXJzCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZW5hYmxlIGVtYmVkZGVkIFBlcmwgYW5kIHRoZSBQZXJsIG1vZHVsZXMgYnkgZGVmYXVsdAoKMjAwNi0wOS0wOCAwODo0MyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIE5FV1M6IG1pYjJjOiAtIFtCVUdTOiAxNDc5OTE2XSBSZXN0b3JlIGNvbnNpc3RlbmN5IGluIHJvdyBjcmVhdGlvbiBjb2RlLgoKMjAwNi0wOS0wOCAwNTo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBORVdTOiBzbm1wZDogLSBbQlVHUzogMTUzNTkwM10gU3VwcG9ydCBzcGFjZXMgd2l0aGluIHNlY3VyaXR5IG5hbWVzCgoyMDA2LTA5LTA3IDIwOjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCwgSSB0aGluaywgdGhlIGJ1bGt3YWxrIHByb2JsZW1zOyBhbGwgdGVzdHMgcGFzcy4gIEkgYmVsaWV2ZSB0aGUgcGF0Y2ggaXMgdGhlIGNvcnJlY3QgY29tYmluYXRpb24gYmV0d2VlbiB0aGUgdHdvIGRpZmZlcmVudCBwYXRjaGVzICh0aGUgb2xkIG9uZSBhbmQgdGhlIG5ldyBvbmUpIHRoYXQgc2hvdWxkIGZpeCBib3RoIHByb2JsZW1zLiAgTkVXUzogcGVybCAtIEZpeGVkIHRoZSBwZXJsIGJ1bGt3YWxrIGZ1bmN0aW9uCgoyMDA2LTA5LTA3IDA5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZml4IHR5cG8gd2hpY2ggYnJva2UgcGVyc2lzdGVuY2UKCjIwMDYtMDktMDcgMDk6MTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIFVzZSB0aGUgY29ycmVjdCBBUEkgY2FsbCBmb3IgcmVtZW1iZXJpbmcgYSBuZXdseS1jcmVhdGVkIHJvdy4KICAgKFNwb3R0ZWQgYnkgWmhhbmcgQ2h1YW4pLgoKMjAwNi0wOS0wNyAwNDozNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIE5FV1M6IHNubXBkZjogLSBbQlVHUzogMTUxNTUwN10gSGFuZGxlIGZhaWxlZCByZXF1ZXN0cyBiZXR0ZXIKICAgKERvbid0IGdvIGludG8gYW4gaW5maW5pdGUgbG9vcCEpCgoyMDA2LTA5LTA3IDA0OjMwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jLAogICAgIHNubXBsaWIvbWliLmM6CgogICBORVdTOiBzbm1wbGliIC0gW0JVR1M6IDE1Mzc0NTksIEJVR1M6IDE1NDA3NDVdIEZpeCBtaXNzaW5nIE1JQiBwYXJzaW5nIHRva2VucwoKMjAwNi0wOS0wNyAwNDoyNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIE5FV1MsCiAgICAgbWFuL3NubXBkLmNvbmYuNS5kZWYsIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQKOgoKICAgUmV2ZXJ0IGRlZmF1bHQgYmVoYXZpb3VyIG9mIGNvbnZlbmllbmNlIGFjY2VzcyBjb250cm9sIGRpcmVjdGl2ZXMKICAgdG8gbWF0Y2hpbmcgYWxsIGNvbnRleHQuICBBbiBleHBsaWNpdCBjb250ZXh0IGZpZWxkIHdpbGwgYmUgdGFrZW4KICAgYXMgYW4gZXhhY3QgbWF0Y2gsIHVubGVzcyBpdCBlbmRzIGluICcqJy4KCjIwMDYtMDktMDYgMTA6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpZlRhYmxlL2lmVGFibGUuaDoKCiAgIGZpeCBzb21lIG1pc3Npbmcgc3RhdHMgaW4gaWZUYWJsZS9pZlhUYWJsZQoKMjAwNi0wOS0wNiAwNjo0NSAgcnN0b3J5CgogICAqIE5FV1M6CgogICBhZGQgbm90ZSBvbiBleHBlcmltZW50IEZyZWVCU0QvT3BlbkJTRCBpZlhUYWJsZSBzdXBwb3J0CgoyMDA2LTA5LTA2IDA2OjQyICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgRnJlZUJEUyBhbmQgT3BlbkJTRCBmb3IgaWYtbWliCgoyMDA2LTA5LTA1IDEyOjM0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIGRlYWwgdy9wcmV2IHB0cnMgdG9vCgoyMDA2LTA5LTA1IDA3OjU4ICBkdHMxMgoKICAgKiBORVdTLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IG5ldyBhY2Nlc3MgY29udHJvbCAoYW5kIGNvbnRleHQpIGJlaGF2aW91ci4KCjIwMDYtMDktMDUgMDU6NDkgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYWdlbnQ6CgogICBFeHBsaWNpdGx5IGF1dGhvcmlzZSBhbGwgY29udGV4dHMuCiAgIChUaGlzIHJlc3VsdHMgZnJvbSBhIG1pbm9yIGFsdGVyYXRpb24gaW4gYmVoYXZpb3VyIGZvbGxvd2luZyBhbm90aGVyIGNvZGUKICAgIGNoYW5nZSwgYnV0IGZlZWxzIG1vcmUgc2VjdXJlIHRoYW4gYXV0b21hdGljYWxseSBvcGVuaW5nIHVwIGFsbCBjb250ZXh0cwogICAgYnkgZGVmYXVsdC4gIFRob3VnaCBJJ20gaGFwcHkgdG8gYmUgcGVyc3VhZGVkIG90aGVyd2lzZS4uLikKCjIwMDYtMDktMDUgMDI6NDQgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncyAoYWdhaW4pCgoyMDA2LTA5LTA1IDAxOjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50X21pYnMuaCwgYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuaAo6CgogICBJbmNsdWRlIE5ldC1TTk1QIGV4dGVuc2lvbiBhY2Nlc3MgdGFibGUgKGFuZCBNSUIpIGluIHRoZSBkZWZhdWx0IGJ1aWxkLgoKMjAwNi0wOS0wNSAwMTozNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGUgbnNWYWNtQWNjZXNzVGFibGUgbm90IGJlaW5nIGluY2x1ZGVkLgogICAoYW5kIHNpbWlsYXIgZm9yIHVzbVVzZXJUYWJsZSAtIGEgY2xlYW5lciBjaGVjayB0aGFuIGJlZm9yZSkKCjIwMDYtMDktMDUgMDE6MjggIGR0czEyCgogICAqIGFwcHMvc25tcHZhY20uYywgbWFuL3NubXB2YWNtLjEuZGVmOgoKICAgU3VwcG9ydCBtYW5pcHVsYXRpb24gb2YgdGhlIE5ldC1TTk1QIGV4dGVuc2lvbiBhY2Nlc3MgdGFibGUuCgoyMDA2LTA5LTA1IDAxOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFN1cHBvcnQgYm90aCBleGFjdCBhbmQgY29udGV4dCBwcmVmaXggbWF0Y2hlcyBmb3IgdGhlIGNvbnZlbmllbmNlIGRpcmVjdGl2ZXMKICAgKGFzIHdlbGwgYXMgJ2F1dGhhY2Nlc3MnKS4KCjIwMDYtMDktMDUgMDE6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmM6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2Ygcm93IGNyZWF0aW9uL2RlbGV0aW9uLgogICBTdXBwcmVzcyB2YXJpb3VzIG1pbm9yIHR5cGUgbWlzbWF0Y2hlcy4KCjIwMDYtMDktMDQgMTY6MDcgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBhZGQgKHByZWxpbWluYXJ5KSBpbmZvcm1hdGlvbiBvbiBuZXcgTkVULVNOTVAtVkFDTS1NSUIKCjIwMDYtMDktMDQgMTY6MDAgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0Y3AtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvLmN2c2lnbm9yZSwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvLmN2c2lnbm9yZSwKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLy5jdnNpZ25vcmU6CgogICB0d2VhayAuY3ZzaWdub3JlIGZpbGVzIGZvciBuZXcgdWRwLW1pYi90Y3AtbWliCgoyMDA2LTA5LTA0IDE1OjU1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZ3MKCjIwMDYtMDktMDQgMDc6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIFRlbGwgYSBmdXNzeSBjb21waWxlciAoUy9XLCBub3QgaHVtYW4pIHRvIHNodXQgdXAuCgoyMDA2LTA5LTA0IDA2OjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIGFnZW50L2V4dGVuZC5jLAogICAgIHVjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIERyb3AgdGhlIG9sZCBVQ0QgZXh0ZW5zaWJsZSBtb2R1bGUgZnJvbSB0aGUgZGVmYXVsdCBidWlsZC4KICAgUmVseSBvbiB0aGUgcmV3b3JrZWQgKGNhY2hlZCwgdmFsaWQgc3ludGF4KSAiZXh0ZW5kIiBtb2R1bGUgaW5zdGVhZC4KCjIwMDYtMDktMDQgMDQ6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsIGFwcHMvc25tcHRyYXBkLmMKOgoKICAgU3VwcG9ydCByZWdpc3RlcmluZyBWQUNNIGV4dGVuc2lvbnMgaW4gYSBub24tZGVmYXVsdCBjb250ZXh0CiAgIChzdWNoIGFzIHVzZWQgYnkgJ3NubXB0cmFwZCcpCgoyMDA2LTA5LTA0IDA0OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgU3VwcG9ydCBub24tZGVmYXVsdCBjb250ZXh0cyB3aXRoIHRoZSBhdXRoKiBjb252ZW5pZW5jZSBkaXJlY3RpdmVzLgoKMjAwNi0wOS0wNCAwNDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBUd2VhayB2YXJpYWJsZSBuYW1lcyB0byBiZSBsZXNzIGNvbmZ1c2luZy4KICAgKCJhdXRodHlwZSIgbm93IGhhcyBhIHNwZWNpZmljIG1lYW5pbmcsIGNvbnRyYXJ5IHRvIHRoZSB1c2UgaGVyZSkuCgoyMDA2LTA5LTAxIDE3OjM0ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIGZpeCBjdnNyb290CgoyMDA2LTA5LTAxIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIGRvY3VtZW50IC1ZCgoyMDA2LTA5LTAxIDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgbWFrZSBzbm1wZCBzdXBwb3J0IHRoZSAtWSBjb25maWcgZmxhZyBsaWtlIHRoZSBvdGhlciBjb21tYW5kcyBkbwoKMjAwNi0wOS0wMSAxNTozMSAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIFVwZGF0ZSB0byA1LjQuZGV2CiAgIC0gaW50cm9kdWNlICV7bGliY3VycmVudH0KICAgLSB1c2UgbmV3IGRpc21hbi9ldmVudCBuYW1lCiAgIC0gYWRkOiBSRUFETUUuYWl4IFJFQURNRS5vc1ggUkVBRE1FLnRydTY0IFJFQURNRS5pcml4IFJFQURNRS5hZ2VudC1taWJzCiAgICAgUkVBRE1FLlBhbmFzb25pY19BTTNYLnR4dAogICAtIGFkZCBuZXcgTmV0U05NUDo6YWdlbnQ6OlN1cHBvcnQKCjIwMDYtMDktMDEgMTA6NTggIHJzdG9yeQoKICAgKiBORVdTOgoKICAgLSBub3RlIG5ldyBtaWIyYy5lbXVsYXRpb24uY29uZgogICAtIG5vdGUgbmV3IGxpbnV4IGlwdjYgYXdhcmUgZGVmYXVsdCBtaWJzCiAgIC0gZXhwYW5kIHNjb3B5IG9mIG5vdGUgb24gZml4ZXMgdG8gbm9uLWxpbnV4IGlwYWRkcmVzcyBzaXplCgoyMDA2LTA5LTAxIDEwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIGFkZCB0Y3AgYW5kIHVkcCBtaWIgdGFibGVzIHRvIGxpbnV4IG1pYklJIG1vZHVsZSBsaXN0CgoyMDA2LTA5LTAxIDEwOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmM6CgogICBmaXggYnl0ZW9yZGVyIHByb2JsZW1zCgoyMDA2LTA5LTAxIDEwOjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy90Y3BDb25uLmg6CgogICAtIG9ubHkgbG9nIGVycm9yIG9uY2UgaWYgd2UgY2FuJ3Qgb3BlbiAvcHJvYy9uZXQvdGNwNgogICAtIGFkZCBhYmlsaXR5IHRvIG9ubHkgbG9hZCBpcHY0IGRhdGEKCjIwMDYtMDktMDEgMTA6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jOgoKICAgZml4IGJ5dGVvcmRlciBwcm9ibGVtcwoKMjAwNi0wOS0wMSAxMDozOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gJ2J5dGVzd2FwJyBoZXgtc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGFuIGFkZHJlc3MKCjIwMDYtMDktMDEgMDc6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIHVkcFRhYmxlLmMsCiAgICAgdmFyX3JvdXRlLmM6CgogICBtb3JlIGlwIGFkZHJlc3Mgc2l6ZSBmaXhlcwoKMjAwNi0wOS0wMSAwNTo0MSAgdGFuZGVycwoKICAgKiBwZXJsLzogVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywgYWdlbnQvYWdlbnQueHMKOgoKICAgYWxpZ24gdGhlIG5ldHNubXBfb2lkIHN0cnVjdCBkZWZpbml0aW9uIChvaWQsIHNpemVfdCEpIHdpdGggdGhlIG9uZSBmcm9tIE5ldFNOTVA6Ok9JRAoKMjAwNi0wOS0wMSAwMjo0NCAgdGFuZGVycwoKICAgKiBSRUFETUUuYWl4LCBSRUFETUUuc29sYXJpcywgUkVBRE1FLnRydTY0OgoKICAgYWRkIG5vdGVzIG9uIElQdjYKCjIwMDYtMDgtMzEgMTc6NDMgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZpeCB0eXBvCgoyMDA2LTA4LTMxIDE3OjE1ICB0YW5kZXJzCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIE9JRCBsZW4gc2hvdWxkIGJlIGEgc2l6ZV90CgoyMDA2LTA4LTMxIDE1OjQ3ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFVzZSBjb3JyZWN0IHNvY2thZGRyX3N0b3JhZ2UuW19fXXNzX2ZhbWlseSBkZXBlbmRpbmcgb24gdGhlIHJlc3VsdCBvZiB0aGUgY29ycmVzcG9uZGluZyBjb25maWd1cmUgdGVzdC4gTWFrZXMgdGhlIFVEUElQdjYgdHJhbnNwb3J0IGNvZGUgd29yayBvbiBhdCBsZWFzdCBBSVggYW5kIFRydTY0IFVuaXguCgoyMDA2LTA4LTMxIDE1OjQ0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhY2NvbmZpZy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBjaGVjayBmb3Igc29ja2FkZHJfc3RvcmFnZS5bX19dc3NfZmFtaWx5IHVzZWQgaW4gdGhlIFVEUElQdjYgdHJhbnNwb3J0IGNvZGUKCjIwMDYtMDgtMzEgMTI6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIGZpeCBJcEFkZHJlc3MgbGVuZ3RocyBvbiBub24tTGludXggNjRiaXQgcGxhdGZvcm1zCgoyMDA2LTA4LTMxIDAxOjM0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2xpbnV4LmM6CgogICBhZGQgbWlzc2luZyBzZW1pY29sb24gKGV2ZW4gb25lLWxpbmUgcGF0Y2hlcyBjYW4gZWFzaWx5IGJyZWFrIHRoZSBidWlsZCA7LSkpCgoyMDA2LTA4LTMwIDE3OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgY292ZXJ0aXkgYnVnIDEyNzogZG91YmxlIGNoZWNrIG5hbWVfcCBwb2ludGVyIGFjdHVhbGx5IGdvdCBmaWxsZWQgYmVmb3JlICB1c2luZyBpdAoKMjAwNi0wOC0zMCAxNzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIG1ha2Ugc3VyZSBzbm1wX2xvZ19vcHRpb25zIGNoZWNrcyBmb3IgTlVMTHMgb2YgYXJndiBpbiBpbGxlZ2FsIGNhbGxzIChzaG91bGQgbmV2ZXIgaGFwcGVuKQoKMjAwNi0wOC0zMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgY292ZXJ0eSBidWcgNTk6IGRvdWJsZSBjaGVjayBzeXN0ZW0gaGFuZGxlcyBpbnQvdWludCBjb252ZXJzaW9ucyBwcm9wZXJseQoKMjAwNi0wOC0zMCAxNzoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3NjYWxhcnNfbGludXguYzoKCiAgIGNvdmVydHkgYnVnIDE1NTogZnJlZSBmaWxlIHBvaW50ZXIgZHVyaW5nIGlwdjYgZm9yd2FyZGluZwoKMjAwNi0wOC0zMCAxNzoyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgY292ZXJ0eSBidWcgMTU2OiBmcmVlIHJlc291cmNlcyBkdXJpbmcgbWliIHBhcnNpbmcgZmFpbHVyZXMKCjIwMDYtMDgtMzAgMTc6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGNvdmVydHkgYnVnIDYwOiBkb3VibGUgY2hlY2sgdGhhdCBzeXN0ZW1zIGhhbmRsZSBuZWdhdGl2ZSByZXR1cm5zIHRvIHVuc2lnbmVkIHZhcmlhYmxlcyBwcm9wZXJseQoKMjAwNi0wOC0zMCAwODozNSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBwcmludGluZyBvZiBvcGFxdWUgZmxvYXQgYW5kIGRvdWJsZSBjb21waWxlIHdhcm5pbmdzCgoyMDA2LTA4LTMwIDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1ZhY21BY2Nlc3NUYWJsZS5jOgoKICAgU2ltcGxlIFNFVCBzdXBwb3J0IGZvciB0aGUgTmV0LVNOTVAgVkFDTSBleHRlbnNpb25zLgoKMjAwNi0wOC0zMCAwODoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICBQZXJzaXN0ZW50IHN0b3JhZ2UgZm9yIE5ldC1TTk1QIFZBQ00gZXh0ZW5zaW9uIGF1dGh0eXBlcy4KCjIwMDYtMDgtMjkgMTc6NTkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgZ2VuZXJpYyBJUHY2IHN0YWNrIGRldGVjdGlvbiwgZS5nLiBmb3IgU29sYXJpcwoKMjAwNi0wOC0yOSAwOTowNSAgZHRzMTIKCiAgICogbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQ6CgogICBGaXggaW5jb25zaXN0ZW50IG5hbWluZy4KCjIwMDYtMDgtMjkgMDY6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgR3VhcmQgYWdhaW5zdCBtaXNzaW5nIChvciBpbmNvbXBsZXRlKSBDUFUgaGlzdG9yeSBzdGF0cy4KCjIwMDYtMDgtMjkgMDY6MTkgIHRhbmRlcnMKCiAgICogbWlicy9ORVQtU05NUC1WQUNNLU1JQi50eHQ6CgogICBmaXggc29tZSBiYXNpYyBzbWlsaW50IGNvbXBsYWludHMKCjIwMDYtMDgtMjkgMDU6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVmFjbUFjY2Vzc1RhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNWYWNtQWNjZXNzVGFibGUuaCwKICAgICBtaWJzL05FVC1TTk1QLVZBQ00tTUlCLnR4dDoKCiAgIFByb3Zpc2lvbmFsIChyZWFkLW9ubHkpIGltcGxlbWVudGF0aW9uIG9mIGEgTUlCIGZvciB0aGUgTmV0LVNOTVAKICAgYWNjZXNzIGNvbnRyb2wgZXh0ZW5zaW9ucy4KCjIwMDYtMDgtMjkgMDM6MTEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEdldC1OZXh0IHByb2Nlc3NpbmcgZGlkbid0IGhhbmRsZSB1cGRhdGluZyB0aGUgaW5kZXggbGlzdCBmb3IgbXVsdGktaW5kZXhlZAogICB0YWJsZXMgcHJvcGVybHkuICBJdCB3b3JrZWQgT0sgZm9yIHRoZSBmaXJzdCBjYW5kaWRhdGUgZm91bmQsIGJ1dCBzdWJzZXF1ZW50CiAgIChiZXR0ZXIpIGNhbmRpZGF0ZXMgb25seSB1cGRhdGVkIHRoZSBmaXJzdCBpbmRleCB2YWx1ZS4KICAgICBUaGlzIGNvZGUgaXMgc2xpZ2h0bHkgbGVzcyBlZmZpY2llbnQsIGJ1dCB3b3JrcyBhcyBleHBlY3RlZC4KCjIwMDYtMDgtMjkgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X2xpbnV4LmMsIHZtc3RhdF9saW51eC5oCjoKCiAgIFNoaXAgb2xkZXIgdm1zdGF0IGltcGxlbWVudGF0aW9uIGNvZGUgLSBhbGxvdyBhZG1pbnMgdGhlIG9wdGlvbiBvZiByZXZlcnRpbmcuCgoyMDA2LTA4LTI5IDAzOjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfbmxpc3QuYywgY3B1X3N5c2N0bC5jCjoKCiAgIEJldHRlciBoYW5kbGluZyBvZiBzaW5nbGUtQ1BVIHN5c3RlbXMuCiAgIERvbid0IGNyZWF0ZSBuZXcgQ1BVIGVudHJpZXMgd2hlbiBsb2FkaW5nIHN0YXRzLgogICBbRG9uJ3QgY29tbWl0IGZyb20gbW9yZSB0aGFuIG9uZSB3b3JraW5nIHN5c3RlbSwgRGF2ZSFdCgoyMDA2LTA4LTI5IDAyOjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIEtlZXAgYnJhY2VzIGJhbGFuY2VkIC0gaXQgbWFrZXMgdHJhY2luZyBjb2RlICpzbyogbXVjaCBlYXNpZXIhCgoyMDA2LTA4LTI3IDE0OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgdWRwVGFibGUgcmVxdWlyZXMgL2Rldi9rbWVtIGFjY2VzcyAocm9vdDpzeXN0ZW0pIG9uIEFJWAoKMjAwNi0wOC0yNyAxMDowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCBob3N0L2hyX3Byb2MuYywKICAgICBob3N0L2hyX3Byb2MuaDoKCiAgIFVzZSBIQUwgQ1BVIGludGVyZmFjZSBmb3IgYm90aCBVQ0Qtc3BlY2lmaWMgYW5kIEhvc3RSZXMgcHJvY2Vzc29yIG1vZHVsZXMuCgoyMDA2LTA4LTI3IDEwOjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIEVuc3VyZSB0aGF0IHNvbWUgZm9ybSBvZiBIQUwgQ1BVIG1vZHVsZSBpcyBpbmNsdWRlZCBmb3IgYWxsIHN5c3RlbXMuCgoyMDA2LTA4LTI3IDEwOjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfbnVsbC5jLCBjcHVfbnVsbC5oOgoKICAgRHVtbXkgSEFMIENQVSBtb2R1bGUsIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgdXNlIGFueSBvZiB0aGUKICAgc3VwcG9ydGVkIGludGVyZmFjZXMuCgoyMDA2LTA4LTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgSGFuZGxlIGhvbGVzIGluIHRoZSB0YWJsZSBwcm9wZXJseS4KCjIwMDYtMDgtMjcgMDk6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdS5jLCBjcHVfa2VybmRhdGEuYywKICAgICBjcHVfcGVyZnN0YXQuYywgY3B1X3BzdGF0LmM6CgogICBCZXR0ZXIgaGFuZGxpbmcgb2Ygc2luZ2xlLUNQVSBzeXN0ZW1zLgogICBEb24ndCBjcmVhdGUgbmV3IENQVSBlbnRyaWVzIHdoZW4gbG9hZGluZyBzdGF0cy4KCjIwMDYtMDgtMjcgMDk6NDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9rc3RhdC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfbGludXguYzoKCiAgIFJlcG9ydCBwcm9jZXNzb3Igc3RhdHVzCgoyMDA2LTA4LTI2IDE2OjIzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBtYWtlIGF1dG9oZWFkZXIgcHJvdGVjdCBQQUNLQUdFXyogdmFyaWFibGVzCgoyMDA2LTA4LTI1IDE2OjIzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFN2M3VzbWNvbmZpZ2FnZW50LAogICAgIFN2YW55Y29uZmlnOgoKICAgRml4IHNtdXhzb2NrZXQgY29uZmlnIHRvIHBvaW50IHRvIC9zbXV4X3NvY2tldCBpbnN0ZWFkIG9mIC9kZXYvbnVsbCB0byBhdm9pZCByZW1vdmluZyAvZGV2L251bGwgd2hlbiBydW5uaW5nIGFzIHJvb3QuCgoyMDA2LTA4LTI1IDA5OjQzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIENsYXJpZnkgZGlzY3Vzc2lvbiBvZiB2aWV3IG1hc2tzLiAgVGhhbmtzIHRvIERvbWluaXF1ZSBCYXN0aWVuLgoKMjAwNi0wOC0yNSAwNzoyMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGFsbG93IGZvciB3aGl0ZXNwYWNlIGluIFBlcmwgY2MgKGUuZy4gb24gSVJJWCA2LjUpCgoyMDA2LTA4LTI1IDA2OjU1ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHByb3Blcmx5IGNhc3Qgd2hlbiBwcmludGluZyBwb2ludGVycwoKMjAwNi0wOC0yNSAwNjozNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgbmV0c25tcF90cmFwZF9jaGVja19hdXRoKCkgb25seSB0YWtlcyBhIHNpbmdsZSBhcmd1bWVudAoKMjAwNi0wOC0yNSAwNToxMyAgdGFuZGVycwoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBmaXg6ICdyZXR1cm4nIHdpdGggbm8gdmFsdWUsIGluIGZ1bmN0aW9uIHJldHVybmluZyBub24tdm9pZAoKMjAwNi0wOC0yNSAwNDo1MSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmg6CgogICBhZGQgcHJvdG90eXBlIGZvciBuZXRzbm1wX3RyYXBkX2NoZWNrX2F1dGgoKQoKMjAwNi0wOC0yNSAwNDo0NiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgI2luY2x1ZGUgIm1pYklJL3ZhY21fY29uZi5oIiBmb3IgdmFjbV9zdGFuZGFyZF92aWV3cwoKMjAwNi0wOC0yNSAwNDozOCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIHByaW50IG9pZCBhcyB1bnNpZ25lZCBsb25nCgoyMDA2LTA4LTI1IDAyOjU3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBtYWtlIHN1cmUgd2UgY2FuIGZ1bGZpbGwgZXh0ZXJuYWwgbGlicmFyeSBkZXBlbmRlbmNpZXMKCjIwMDYtMDgtMjUgMDI6NDEgIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLCBzbm1wbGliL2NvbnRhaW5lci5jCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGluaXRpYWxpemUgdmFyaWFibGVzCgoyMDA2LTA4LTI1IDAyOjMzICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHByb3BlciB0eXBlcyBpbiBmb3JtYXQgc3RyaW5nCgoyMDA2LTA4LTI1IDAxOjQ5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkICItVXgiIGJlZm9yZSAiLUR4PXgiIGZvciBnY2MgdG8gYXZvaWQgYW5ub3lpbmcgY29tcGlsZXIgd2FybmluZ3MKICAgb24gcGxhdGZvcm1zIHRoYXQgYWxyZWFkeSBkZWZpbmUgeCAodG8gMSkuCgoyMDA2LTA4LTI0IDE3OjQxICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgdXNlIG5ldyBzbm1wX2NzdHJjYXQKCjIwMDYtMDgtMjQgMTc6MzYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9taWIuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBJbnRyb2R1Y2Ugc25tcF9jc3RyY2F0IHRoYXQgdGFrZXMgYSAoY2hhciAqKSBhcyB0aGUgbGFzdCBhcmd1bWVudCwKICAgY2FzdHMgaXQgdG8gYSAoY29uc3QgdV9jaGFyICopIGFuZCBjYWxscyBzbm1wX3N0cmNhdC4gU2ltcGxpZmllcyBjb2RlCiAgIGFuZCBmaXhlcyBhICpsb3QqIG9mIGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwNi0wOC0yNCAxNjowNCAgdGFuZGVycwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYywgcGVybC9TTk1QL1NOTVAueHMsCiAgICAgc25tcGxpYi9tZDUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvdGV4dF91dGlscy5jOgoKICAgLSBwb2ludGVyIHNpemUgZml4ZXMgZnJvbSBkYXJpeAogICAtIGluaXRpYWxpemUgdmFyaWFibGVzCiAgIC0gcHJpbnQgc2l6ZV90IGFzIHVuc2lnbmVkIGxvbmcKCjIwMDYtMDgtMjQgMTU6NDUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBJU08gQzkwIGZvcmJpZHMgbWl4ZWQgZGVjbGFyYXRpb25zIGFuZCBjb2RlCgoyMDA2LTA4LTI0IDEzOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJ1biBhdXRvaGVhZGVyCgoyMDA2LTA4LTI0IDEzOjIxICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBIQVZFX1BFUkxfRVZBTF9QViB1bmRlZiBmb3Igd2hvZXZlciBmb3Jnb3QgdG8gYWRkIGl0CgoyMDA2LTA4LTI0IDEzOjE5ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIGFkZCBjb25maWdfZXJyb3IgYW5kIGNvbmZpZ193YXJuaW5nIGVtcHR5IG1hY3JvcwoKMjAwNi0wOC0yNCAwOToxNCAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFByaW50IHNpemVfdCBhcyB1bnNpZ25lZCBsb25nLgoKMjAwNi0wOC0yNCAwODo0MSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBLZWVwIHByaW50aW5nIHNvbWUga25vdy10by1iZS1zbWFsbCBzaXplX3QgdmFsdWVzIGFzIGludGVnZXJzLCBidXQgcHJvcGVybHkKICAgY2FzdCB0aGVtIHRvIHF1aWV0IHRoZSBjb21waWxlci4KCjIwMDYtMDgtMjQgMDc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICB1c2UgbmV3IGludGVyZmFjZV9zeXNjdGwgZm9yIE9wZW5CU0QgMiwgRnJlZUJTRCA0LTYKCjIwMDYtMDgtMjQgMDc6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2Vfb3BlbmJzZC5jLAogICAgIGludGVyZmFjZV9zeXNjdGwuYywgaW50ZXJmYWNlX3N5c2N0bC5oOgoKICAgcmVtb3ZlIE9TIHNwZWNpZmljIGZpbGUgaW4gZmF2b3Igb2YgbWV0aG9kIHNwZWNpZmljIGZpbGVzCgoyMDA2LTA4LTI0IDA1OjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfa3N0YXQuYywgY3B1X25saXN0LmMKLCBjcHVfcHN0YXQuYywgY3B1X3N5c2N0bC5jOgoKICAgSW5jbHVkZSBkZXNjcmlwdGlvbnMgZm9yIGluZGl2aWR1YWwgQ1BVIGVudHJpZXMuCgoyMDA2LTA4LTI0IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvOiBjcHVfa2VybmRhdGEuaCwKICAgICBjcHVfa2VybmRhdGEuYzoKCiAgIEltcGxlbWVudGF0aW9uIGZvciBEeW5peCAoYW5kIHNpbWlsYXIpIHN5c3RlbXMuCgoyMDA2LTA4LTI0IDA1OjQ4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jOgoKICAgUmVtZW1iZXIgdGhlIG51bWJlciBvZiBDUFVzIGRldGVjdGVkLgogICAoUTogd2hhdCB0byBkbyBpZiB0aGlzIGNoYW5nZXM/KQoKMjAwNi0wOC0yMyAxNzozMyAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQcmludCBzaXplX3QgYXMgdW5zaWduZWQgbG9uZy4gRml4ZXMgNjQtYml0IGNvbXBpbGVyIHdhcm5pbmdzLgoKMjAwNi0wOC0yMyAxNzoxMiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBBQ19QUk9HX0VHUkVQIGFuZCB1c2UgJEVHUkVQIGluc3RlYWQgb2YgZWdyZXAKCjIwMDYtMDgtMjMgMTY6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9zdGFzaC5jOgoKICAgZml4IHN0cnVjdCB0eXBlIGluIGNhc2UKCjIwMDYtMDgtMjMgMTY6MzUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNi0wOC0yMyAxNjozNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBiYWNrIGNoZWNrIGZvciBzZWQKCjIwMDYtMDgtMjMgMTM6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHNraXAgaWZDb25uZWN0b3JQcmVzZW50L2lmTGlua1VwRG93blRyYXBFbmFibGUgaWYgbm8gZGF0YQoKMjAwNi0wOC0yMyAxMjoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgY29ycmVjdCBzY2FsZSB3aGVuIHVzaW5nIGlmU3BlZWQgYXMgaWZIaWdoU3BlZWQKCjIwMDYtMDgtMjMgMTE6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHVzZSBpZlNwZWVkIGlmIGlmSGlnaFNwZWVkPT0wCgoyMDA2LTA4LTIzIDA4OjUzICB0YW5kZXJzCgogICAqIHNubXBsaWIvOiBjb250YWluZXIuYywgY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLAogICAgIGRhdGFfbGlzdC5jLCBrZXl0b29scy5jLCBtaWIuYywgb2lkX3N0YXNoLmMKLCBzY2FwaS5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywKICAgICBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmMsIHRleHRfdXRpbHMuYywKICAgICB0b29scy5jOgoKICAgQ2FzdCBhd2F5IGNvbXBpbGVyIHdhcm5pbmdzL2Vycm9ycyBhdCBhIGxvdCBvZiBwbGFjZXMuCgoyMDA2LTA4LTIzIDA2OjAyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS5oOgoKICAgYWN0aXZhdGUgY3B1IEhBTCBjb2RlIGZvciBBSVggNC54CgoyMDA2LTA4LTIzIDAzOjIzICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRG9uJ3QgY2hlY2sgdHdpY2UgZm9yIHNlZC4KCjIwMDYtMDgtMjMgMDM6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgTW9yZSBwb3J0YWJsZSBoYW5kbGluZyBvZiBzdHJpbmcgYXNzaWdubWVudHMuCiAgIFJlbW92ZSBDKystc3R5bGUgY29tbWVudHMuCgoyMDA2LTA4LTIzIDAzOjA3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IG1vcmUgd2hpdGVzcGFjZSBpc3N1ZXMgaW4gbWliIG1vZHVsZSBjb25maWcKCjIwMDYtMDgtMjIgMTQ6NDggIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCBoYXJkd2FyZS9jcHUuaDoKCiAgIGFjdGl2YXRlIG1lbS9jcHUgSEFMIGNvZGUgZm9yIEFJWAoKMjAwNi0wOC0yMiAwOToxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9wZXJmc3RhdC5jOgoKICAgVXNlIGNvcnJlY3QgQVBJIGNhbGxzLgoKMjAwNi0wOC0yMiAwNzowMCAgdGFuZGVycwoKICAgKiBSRUFETUUudHJ1NjQ6CgogICBVcGRhdGUgZm9yIDUuNCBhbmQgZW1iZWRkZWQgUGVybC4KCjIwMDYtMDgtMjIgMDY6NTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS86IGNwdV9rc3RhdC5oLCBjcHVfcGVyZnN0YXQuaAosIGNwdV9wc3RhdC5oOgoKICAgTWlzc2luZyBIQUwgQ1BVIEFQSS1zcGVjaWZpYyBoZWFkZXIgZmlsZXMKCjIwMDYtMDgtMjIgMDY6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBIYW5kbGUgY2hhbmdlIGludHJvZHVjZWQgd2l0aCBOZXRCU0QgMy4wLgogICBzeXNjdGwoIEtFUk5fQ1BfVElNRSApIG5vdyByZXR1cm5zIDY0LWJpdCB2YWx1ZXMuCgoyMDA2LTA4LTIyIDA1OjE1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSwKICAgICBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdXNlIG9mIEV2ZW50LU1JQiBtb2R1bGUgdGVybWlub2xvZ3kuCgoyMDA2LTA4LTIyIDAzOjM0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgSW1wcm92ZSByb2J1c3RuZXNzIG9mIHRoZSBlbWJlZGRlZCBwZXJsIGNoZWNrcy4KCjIwMDYtMDgtMjIgMDI6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBDaGFuZ2UgIiNpZiBmcmVlYnNkNCIgdG8gIiNpZmRlZiBmcmVlYnNkNCIgdG8gbWF0Y2ggY3VycmVudCAtRGZyZWVic2Q0PWZyZWVic2Q0LgoKMjAwNi0wOC0yMiAwMjoyMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N3cnVuLmMKLCBtaWJJSS9yb3V0ZV9oZWFkZXJzLmg6CgogICBDaGFuZ2UgIiNpZiBzb2xhcmlzMiIgdG8gIiNpZmRlZiBzb2xhcmlzMiIgdG8gbWF0Y2ggY3VycmVudCAtRHNvbGFyaXMyPXNvbGFyaXMyLgoKMjAwNi0wOC0yMSAxNzo0NyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgICItVSIgZG9lc24ndCB3b3JrIGFzIGV4cGVjdGVkIHdpdGggU3VuJ3MgY2MuCgoyMDA2LTA4LTIxIDE3OjI2ICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgUGVybF9ldmFsX3B2ICh0aGUgdXBwZXItY2FzZSB2YXJpYW50KSBuZWVkcyB0aHJlZSBhcmd1bWVudHMgaW5zdGVhZCBvZiB0d28uCgoyMDA2LTA4LTIxIDE3OjA0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgWWV0IGFub3RoZXIgYXR0ZW1wdCB0byBmaXggdGhlIFBBUlRJQUxUQVJHRVRPUyAoZS5nLiBzb2xhcmlzMikgZGVmaW5pdGlvbnMuCgoyMDA2LTA4LTIxIDE2OjMzICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmVwbGFjZW1lbnQgZm9yIG5ld1NWdXYoKSBiZWNhdXNlIHBlcmwgZGlkbid0IGhhdmUgaXQgdW50aWwgNS42LjAKCjIwMDYtMDgtMjEgMTU6NDAgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBSZXdvcmRpbmcgb2YgcGVybCBjYyBjaGVjayBlcnJvcnMuCgoyMDA2LTA4LTIxIDE0OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGFuZ2UgdGhlIE9TIGRlZmluZSB0byByZWRlZmluZSBhcyB0aGUgc2FtZSBuYW1lCgoyMDA2LTA4LTIxIDA5OjQ0ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gYWRkIHBlcmwgY2MgY2hlY2tzIGZvciBlbWJlZGRlZCBwZXJsCiAgIC0gaW50cm9kdWNlIC0tZGlzYWJsZS1wZXJsLWNjLWNoZWNrcyB0byBkaXNhYmxlIHRoZXNlIHRlc3RzCgoyMDA2LTA4LTIxIDA5OjQyICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZS5pbgoKMjAwNi0wOC0yMSAwMzo1MyAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gZml4IGNvbmZpZ19hcmNoX3JlcXVpcmUKICAgLSByZW1vdmUgb2Jzb2xldGUgQUNfRVhFRVhUCgoyMDA2LTA4LTIxIDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUuaDoKCiAgIEFjdGl2ZSBIQUwgQ1BVIG1vZHVsZSBmb3IgKkJTRCBzeXN0ZW1zLgoKMjAwNi0wOC0yMSAwMjoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9zeXNjdGwuYzoKCiAgIFJldHJpZXZlIGFuZCByZXBvcnQgbWVtb3J5LXJlbGF0ZWQgc3RhdGlzdGljcy4KICAgKFN0aWxsIG5vdCBjb252aW5jZWQgdGhlc2UgcmVhbGx5IGJlbG9uZyBoZXJlLi4uLikKCjIwMDYtMDgtMjEgMDI6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHVfc3lzY3RsLmM6CgogICBSZXRyaWV2ZSBDUFUgc3RhdHMgY29ycmVjdGx5LgoKMjAwNi0wOC0xOCAxNToyOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBwZXJsIC1WOmNjCgoyMDA2LTA4LTE4IDA5OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jLCB2bXN0YXQuaDoKCiAgIFVzZSB0aGUgSEFMIENQVSBtb2R1bGVzIHRvIGltcGxlbWVudCBVQ0QtU05NUC1NSUI6OnN5c3RlbVN0YXRzLgogICBJbml0aWFsbHkgb25seSB1c2VkIGJ5IExpbnV4IHN5c3RlbXMsIGJ1dCB0aGlzIGNvZGUgaXMgbm93CiAgIGZ1bmRhbWVudGFsbHkgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50LgoKMjAwNi0wOC0xOCAwODo1OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9jcHUuaDoKCiAgIEFkZGl0aW9uYWwgZmllbGRzIGZvciBDUFUtcmVsYXRlZCAoc29ydC1vZikgaGlzdG9yeSwgZXRjLgoKMjAwNi0wOC0xOCAwODo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LzogY3B1LmMsIGNwdV9rZXJuZGF0YS5jLAogICAgIGNwdV9rc3RhdC5jLCBjcHVfbGludXguYywgY3B1X25saXN0LmMsCiAgICAgY3B1X25saXN0LmgsIGNwdV9wZXJmc3RhdC5jLCBjcHVfcHN0YXQuYywKICAgICBjcHVfc3lzY3RsLmMsIGNwdV9zeXNjdGwuaDoKCiAgIFByb3Zpc2lvbmFsIGhhcmR3YXJlLWFic3RyYWN0aW9uIG1vZHVsZXMgZm9yIGFzc29ydGVkIENQVSBzdGF0aXN0aWNzLgogICAoaW5jbHVkaW5nIG11bHRpLUNQVSBpbmZvcm1hdGlvbikKCjIwMDYtMDgtMTggMDg6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgeWV0IG1vcmUgcG90ZW50aWFsIHBlcmwgZml4ZXMKCjIwMDYtMDgtMTggMDg6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgbW9yZSBwb3RlbnRpYWwgcGVybCBmaXhlcwoKMjAwNi0wOC0xOCAwNzo0NCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHVzZSAicGVybCAtVjpjYyIgdG8gZmluZCBQZXJsJ3MgY2MKCjIwMDYtMDgtMTggMDc6MzcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY29tbWVudGluZyBhbmQgYSBiaXQgb2Ygc3BhY2luZyBpbiB0aGUgbW9kdWxlIGxpc3QgY29kZQoKMjAwNi0wOC0xNyAxNzoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFjY29uZmlnLmgsCiAgICAgYWdlbnQvc25tcF9wZXJsLmMsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgbWFrZSBjb25maWd1cmUgYmFpbCB3aGVuIGVtYmVkZGVkIHBlcmwgZnVuY3Rpb24gY2FuIG5vdCBiZSBmb3VuZCA7IGZpeCB0aGUgZmFjdCB0aGF0IDMgZnVuY3Rpb25zIGFyZSBuZWVkZWQgbm90IDIgYW5kIHdvcmsgYXJvdW5kIGF1dG9jb25mIHVwcGVyLWNhc2Ugb25seSBkZWZpbmVzIHRoYXQgY2F1c2VzIHRoZSBleGlzdGluZyBicm9rZW4tcGVybCBwcm9ibGVtOyBORVdTIC0gcGVybDogZml4IHRoZSAnYnJva2VuIHBlcmwnIGlzc3VlIHdpdGggZW1iZWRkZWQgcGVybAoKMjAwNi0wOC0xNyAxNjoxNCAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGJzZGkzLmgsIGJzZGk0LmgsIGRhcndpbi5oCiwgZGFyd2luNy5oLCBkeW5peC5oLCBmcmVlYnNkMy5oLAogICAgIGZyZWVic2Q0LmgsIGZyZWVic2Q1LmgsIGZyZWVic2Q2LmgsIGdlbmVyaWMuaAosIGhwdXguaCwgbWluZ3czMm1zdmMuaCwgbmV0YnNkLmgsCiAgICAgb3BlbmJzZC5oLCBvc2Y1Lmg6CgogICAiI2RlZmluZSB4IHgiIGluc3RlYWQgb2YgIiNkZWZpbmUgeCAxIiBmb3IgYWxsIHBsYXRmb3JtIG5hbWVzCgoyMDA2LTA4LTE3IDA4OjQ0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBCVUc6IENvdmVyaXR5ICMxNDk6IHBvdGVudGlhbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UKCjIwMDYtMDgtMTcgMDg6NDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaDoKCiAgIERyb3AgRGlzTWFuIEV2ZW50IE1JQiByZS13cml0ZSB3YXJuaW5nLgoKMjAwNi0wOC0xNyAwODoxNiAgdGFuZGVycwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQlVHOiBDb3Zlcml0eSAjMTU5OiBwb3RlbnRpYWwgcmVzb3VyY2UgbGVhayBhZnRlciBtYWxsb2MgZmFpbHVyZQoKMjAwNi0wOC0xNyAwODowMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuYywKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLCB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMKLCB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYwosIHVkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIEJVRzogQ292ZXJpdHkgIzU2OiBkb24ndCBjb250aW51ZSBpZiBtYWxsb2MgZmFpbHMKCjIwMDYtMDgtMTcgMDc6NTAgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMKLCBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBCVUc6IENvdmVyaXR5ICM1NjogZG9uJ3QgY29udGludWUgYWZ0ZXIgZmFpbGVkIG1hbGxvYwoKMjAwNi0wOC0xNyAwNzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmM6CgogICBCVUc6IENvdmVyaXR5ICMxNzQ6IGRvbid0IHJldHVybiBwdHIgdG8gZnJlZWQgbWVtb3J5CgoyMDA2LTA4LTE3IDAxOjUyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIEZpeCB2YXJpYWJsZSB0eXBlcyB0byBtYXRjaCBwYXJhbWV0ZXIgdXNhZ2UuICBTcG90dGVkIGJ5IFNjb3R0IE1veW5lcy4KCjIwMDYtMDgtMTYgMTk6MjkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGlzc3VlIHdpdGggT1MgbmFtZSBiZWluZyBkZWZpbmVkIGFzIDEKCjIwMDYtMDgtMTYgMTY6MDggIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICB1cGRhdGUgZm9yIHJld29ya2VkIFNvbGFyaXMgaGVhZGVycwoKMjAwNi0wOC0xNSAyMjo1NCAgdGFuZGVycwoKICAgKiBtYW4vOiBzbm1wZC44LmRlZiwgc25tcGQuY29uZi41LmRlZiwKICAgICBzbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIGZpeCB0eXBvCgoyMDA2LTA4LTE1IDE0OjIwICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBGaXggZW1haWwgYWRkcmVzcwoKMjAwNi0wOC0xNSAwODo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjbGVhbiB1cCB0aGUgdG1wIGNyZWF0ZWQgZmlsZQoKMjAwNi0wOC0xNSAwNzoyNyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXhlZCBjb25maWdfYXJjaF9yZXF1aXJlCgoyMDA2LTA4LTE1IDA3OjI2ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBmb3JjZSAiI3VuZGVmIElGTkVUX05FRURTX0tFUk5FTCIgb24gRnJlZUJTRCA1Lnggb25seQoKMjAwNi0wOC0xNSAwNzowNyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IHNvbGFyaXMyLjEwLmgsIHNvbGFyaXMyLjcuaAosIHNvbGFyaXMyLjguaCwgc29sYXJpczIuOS5oOgoKICAgcmVtb3ZlIG9ic29sZXRlIGhlYWRlciBmaWxlcwoKMjAwNi0wOC0xNSAwNToxNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9kZWZhdWx0X21vZHVsZXMuaDoKCiAgIGF2b2lkIGNvbW1lbnQgaW5zaWRlIGNvbW1lbnQKCjIwMDYtMDgtMTUgMDE6NDggIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIG1hbi9zbm1wdHJhcGQuOC5kZWY6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZXMKCjIwMDYtMDgtMTQgMjA6MjUgIGhhcmRha2VyCgogICAqIGFjaW5jbHVkZS5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIENsZWFuZWQgdXAgdGhlIGRlYnVnZ2luZyBjb2RlIGZvciB0aGUgbW9kdWxlIHNlY3Rpb24KICAgICAtIEFkZGVkIGEgQUNfTVNHX01PRFVMRV9EQkcgbWFjcm8gdG8gY2xlYW4gdXAgdGhlIHppbGxpb25zIG9mIGlmcwogICAtIFJld29ya2VkIHRoZSBtNCBxdW90aW5nIG9mIHRoZSBzZWN0aW9uIHRvIG9ubHkgY2hhbmdlcXVvdGUgd2hlbgogICAgIGFjdHVhbGx5IG5lZWRlZCwgcmF0aGVyIHRoYW4gZG9pbmcgdGhlIHJldmVyc2UgYW5kIGhhdmluZyB0byBjaGFuZ2UKICAgICB0byAibm9ybWFsIiBxdW90aW5nIHdoZW4gYSBtYWNybyBjYWxsIGlzIG5lZWRlZC4KCjIwMDYtMDgtMTQgMTY6MjkgIHRhbmRlcnMKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBmcmVlYnNkNC5oLCBmcmVlYnNkNS5oLAogICAgIGZyZWVic2Q2Lmg6CgogICBzaW1wbGlmeS9hZ2dyZWdhdGUgRnJlZUJTRCBoZWFkZXJzCgoyMDA2LTA4LTE0IDE1OjU3ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogc29sYXJpcy5oLCBzb2xhcmlzMi4zLmgsCiAgICAgc29sYXJpczIuNC5oLCBzb2xhcmlzMi41LmgsIHNvbGFyaXMyLjYuaDoKCiAgIFJld29yayBvZiBoZWFkZXIgZmlsZXMgZm9yIFNvbGFyaXMuIHNvbGFyaXMuaCBub3cgY292ZXJzIFNvbGFyaXMgNyBhbmQgdXAgKGluY2x1ZGluZyBhbnkgZnV0dXJlIHZlcnNpb25zKSB3aGlsZSBzb2xhcmlzMi5bMy02XS5oIGNvdmVycyBsZWdhY3kgc3VwcG9ydC4KCjIwMDYtMDgtMTQgMTM6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZQoKMjAwNi0wOC0xNCAxMzoyNCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHVwZGF0ZWQgVUNEIHJlZmVyZW5jZXMgdG8gTmV0LVNOTVAsIHVwZGF0ZWQgY29udGFjdCBpbmZvCgoyMDA2LTA4LTE0IDEzOjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvZGVmYXVsdF9tb2R1bGVzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmg6CgogICBOZXcgY29uZmlndXJlIGJhc2VkIGRlZmF1bHRfbW9kdWxlcy5oIGZpbGUgdG8gZGVjaWRlIHdoaWNoIG1vZHVsZXMgdG8KICAgYnVpbGQgaW50byB0aGUgYWdlbnQuCiAgIE5FV1M6IHNubXBkIC0tIEFnZW50IGJ1aWxkcyBkZWZhdWx0IG1vZHVsZSBsaXN0IGZyb20gYSBkZWZhdWx0X21pYnMuaCByYXRoZXIgdGhhbiBhIGhhcmQgY29kZWQgY29uZmlndXJlIGxpc3QKCjIwMDYtMDgtMTQgMTM6MjAgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICB1cGRhdGVkIHJlZmVyZW5jZXMgdG8gVUNEIHRvIE5ldC1TTk1QLCB1cGRhdGVkIGNvbnRhY3QgaW5mbwoKMjAwNi0wOC0xMSAxODoxNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX3N1YmFnZW50LmMKLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIG1hbi9zbm1wZC44LmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgICAgbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIEludHJvZHVjZSAtLXdpdGgtYWdlbnR4LXNvY2tldD1GSUxFIGNvbmZpZ3VyZSBvcHRpb24uIEhlbHBzIHBhY2thZ2VycyB0byAqcHJvcGVybHkqIGN1c3RvbWl6ZSB0aGF0IHBhdGggKG5vdCBlbmNvdXJhZ2VkLCBidXQgcXVpdGUgY29tbW9uKS4KCjIwMDYtMDgtMTEgMDc6NTYgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHZzbnByaW50ZigpIG5lZWRzIHRvIGJlIGZvbGxvd2VkIGJ5IHZhX2VuZAoKMjAwNi0wOC0xMSAwNjo0NSAgdGFuZGVycwoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZG9uJ3QgY2FsbCB2YV9lbmQoKSBpZiB3ZSd2ZSBvbmx5IG1lbWNweSgpZWQKCjIwMDYtMDgtMTEgMDI6NTkgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHNpbXBsZSBhdHRlbXB0IHRvIGZpeCByZWNlbnRseSBpbnRyb2R1Y2VkIHZhX2NvcHkoKSBidWlsZCBpc3N1ZXMKCjIwMDYtMDgtMTAgMDc6MTEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlcG9ydCBhIGZhaWx1cmUgdG8gYnVpbGQgdGhlIFBEVS4gIChSZWYgQnVnICMxMzk5MzcwKQoKMjAwNi0wOC0xMCAwMTo1OCAgZHRzMTIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIFdpdGggZmVhciBhbmQgdHJlcGlkYXRpb24sIHJlbW92ZSB0aGUgd2FybmluZ3MgYWdhaW5zdCB1c2Ugb2YgQWdlbnRYLgogICBEb29tZWQsIHdlJ3JlIGFhYWFsbCBkb29vb29tZWQuLi4uCgoyMDA2LTA4LTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L01BTklGRVNUOgoKICAgdXBkYXRlZCB0byBjb3JyZWN0IGxpc3QKCjIwMDYtMDgtMDkgMTA6MTMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuc3Vicy5wbCwKICAgICBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTAosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBhbm90aGVyIHBhc3MgYXQgcGVybC9DUEFOIHNwZWNpZmljIHZlcnNpb25pbmcgY2hlY2tzCgoyMDA2LTA4LTA5IDA5OjU3ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgYWxsb3cgZm9yIHZlcnkgbWlub3IgZGV2aWF0aW9ucyBpbiBwZXJsIENQQU4gc291cmNlIHZlcnNpb25zIGZyb20gbmV0LXNubXAgdmVyc2lvbnMKCjIwMDYtMDgtMDkgMDk6NDYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBtYWpvciB1cGRhdGUgZm9yIENQQU4gcmVsZWFzZQoKMjAwNi0wOC0wOSAwOTo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01BTklGRVNUOgoKICAgbWF0Y2ggNS4zIHRyZWUgZm9yIG9yZGVyaW5nCgoyMDA2LTA4LTA5IDA5OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTUFOSUZFU1Q6CgogICB1cGRhdGUgZm9yIHJlY2VudCBuZWVkZWQgdGVzdGluZyBmaWxlcwoKMjAwNi0wOC0wOCAxNzo1MSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGJ1aWxkIGZpeAoKMjAwNi0wOC0wOCAxNToxNiAgdGFuZGVycwoKICAgKiBhY2luY2x1ZGUubTQ6CgogICBNb3ZlIG91ciBvd24gbTQgbWFjcm9zIGZyb20gYWNsb2NhbC5tNCBpbnRvIGFjaW5jbHVkZS5tNCBhbmQgcHJvcGVybHkgcXVvdGUgdGhlbS4gRm9sbG93cyBsaWJ0b29sL2F1dG9tYWtlIHJlY29tbWVuZGF0aW9ucyBhbmQgYWxsb3dzIHRvIHJlZ2VuZXJhdGUgYWNsb2NhbC5tNCAoY29udGFpbmluZyBsaWJ0b29sLm00KSBieSBjYWxsaW5nIGFjbG9jYWwgd2hpY2ggSSd2ZSBqdXN0IGRvbmUuIEluc3BpcmVkIGJ5IERlYmlhbiBwYXRjaCAjMjEuCgoyMDA2LTA4LTA4IDE1OjA3ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIG1pbm9yIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA2LTA4LTA4IDE1OjAyICB0YW5kZXJzCgogICAqIGFjbG9jYWwubTQ6CgogICBNb3ZlIG91ciBvd24gbTQgbWFjcm9zIGZyb20gYWNsb2NhbC5tNCBpbnRvIGFjaW5jbHVkZS5tNCBhbmQgcHJvcGVybHkgcXVvdGUgdGhlbS4gRm9sbG93cyBsaWJ0b29sL2F1dG9tYWtlIHJlY29tbWVuZGF0aW9ucyBhbmQgYWxsb3dzIHRvIHJlZ2VuZXJhdGUgYWNsb2NhbC5tNCAoY29udGFpbmluZyBsaWJ0b29sLm00KSBieSBjYWxsaW5nIGFjbG9jYWwgd2hpY2ggSSd2ZSBqdXN0IGRvbmUuIEluc3BpcmVkIGJ5IERlYmlhbiBwYXRjaCAjMjEuYWNpbmNsdWRlLm00CgoyMDA2LTA4LTA4IDA2OjE4ICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBydW4gYXV0b2hlYWRlcgoKMjAwNi0wOC0wOCAwNjoxOCAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oOgoKICAgYWRkIEhBVkVfTElCTk0gaW4gb3JkZXIgdG8gbWFrZSBhdXRvaGVhZGVyIHdvcmsgYWdhaW4KCjIwMDYtMDgtMDcgMTU6NTMgIHRhbmRlcnMKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUKLCBORVdTLCBsdG1haW4uc2g6CgogICBsaWJ0b29sIHVwZGF0ZSB0byAxLjUuMjIgKGZyb20gMS40KS4gU3VwZXJzZWRlcyBwYXRjaCAxNDk2OTQ1IGFuZCBmaXhlcyBidWcgMTUxODExNyAocHJvYmFibHkgcGx1cyBhIGZldyBtb3JlKS4KCjIwMDYtMDgtMDcgMDg6MzMgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIEFscmVhZHkgcmFuZG9taXplIHRoZSBpbml0aWFsIHBvcnQgd2UgdHJ5LiBMb3dlcnMgdGhlIGNoYW5jZSBvZiBjb2xsaXNpb25zIGlmIG11bHRpcGxlIHRlc3Qgc3VpdGVzIHJ1biBpbiBwYXJhbGxlbC4KCjIwMDYtMDgtMDcgMDU6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGV4cGxpY2l0IGNhc3QgdG8ga2VlcCBjb21waWxlciBoYXBweQoKMjAwNi0wOC0wNyAwMzowMyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggdHlwby4gIFNwb3R0ZWQgYnkgTGVvIExlaQoKMjAwNi0wOC0wNSAxNzowMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jLCBocl9zd3J1bi5jOgoKICAgQnVpbGQgZml4ZXMgZm9yIEFJWCBIT1NULVJFU09VUkNFUy1NSUIgc3VwcG9ydAoKMjAwNi0wOC0wNSAxMjoxNyAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwZXJsLnNvIHRvIExEX1JVTl9QQVRICgoyMDA2LTA4LTA0IDE1OjM2ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEU0NTAgcmVwb3J0aW5nIFBTIHRlbXBzIGFzIHZvbHRhZ2UsIG90aGVyIHByb2JsZW1zCgoyMDA2LTA4LTAzIDE4OjAyICB0YW5kZXJzCgogICAqIE1ha2VmaWxlLmluOgoKICAgb3ZlcnJpZGUgTERfUlVOX1BBVEggZm9yIHRoZSBwZXJsIG1vZHVsZXMgdG8gYXZvaWQgZGVwZW5kZW5jaWVzIG9uIHRoZSBidWlsZCBkaXJlY3RvcnkgKHBhdGNoIGZyb20gZGFyaXgpCgoyMDA2LTA4LTAxIDA0OjQzICB0YW5kZXJzCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBvbmUgbW9yZSBjb3JyZWN0aW9uCgoyMDA2LTA3LTMxIDIyOjUyICB0YW5kZXJzCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaW5vciB1cGRhdGVzCgoyMDA2LTA3LTMxIDE2OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWJsb2FkLnQ6CgogICBmaXggYSB0ZXN0IHRoYXQgbWF5IHN1Y2NlZWQgd2hlbiBpdCBzaG91bGRuJ3QKCjIwMDYtMDctMzEgMTY6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGdldHRhYmxlIHBhdGNoCgoyMDA2LTA3LTMxIDE2OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGZpeCBnZXRidWxrIGF0IGVuZC1vZi1taWJ2aWV3IGJvdW5kYXJpZXMKCjIwMDYtMDctMzEgMTU6NDQgIGhhcmRha2VyCgogICAqIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICB1cGRhdGUgYWdhaW4gdG8gbW9zdCByZWNlbnQKCjIwMDYtMDctMzEgMTU6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvVFVOTkVMLU1JQi50eHQ6CgogICB1cGRhdGUgZnJvbSB0aGUgbGF0ZXN0IHZlcnNpb24uCgoyMDA2LTA3LTMxIDE1OjQwICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdmVyc2lvbiB0YWcgZG94eWdlbiBmaWxlcwoKMjAwNi0wNy0zMSAxNTozOSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1pbm9yIHVwZGF0ZXMKCjIwMDYtMDctMzEgMTM6MzEgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGluaXRpYWxpemUgc25tcHRyYXBkIGF1dGhvcml6YXRpb24gdW5jb25kaXRpb25hbGx5IG9mIHVzaW5nIEFnZW50WCAoZml4ZXMgYnVnIDE1Mjc2NjEpCgoyMDA2LTA3LTMxIDA3OjI1ICBtYXJ6CgogICAqIGRvYy9yZmMvOiBhZ2VudHgvcmZjMjc0MS50eHQsIG1pc2MvcmZjMzUxMi50eHQsCiAgICAgbWlzYy9yZmMzNTg0LnR4dCwgc21pVjIvcmZjMjU3OC50eHQsCiAgICAgc21pVjIvcmZjMjU3OS5lcnJhdGEsIHNtaVYyL3JmYzI1NzkuZXJyYXRhfiwKICAgICBzbWlWMi9yZmMyNTc5LnR4dCwgc21pVjIvcmZjMjU4MC50eHQsCiAgICAgc25tcFYxL3JmYzExNTUudHh0LCBzbm1wVjEvcmZjMTE1Ny50eHQsCiAgICAgc25tcFYxL3JmYzEyMTIudHh0LCBzbm1wVjEvcmZjMTIxMy50eHQsCiAgICAgc25tcFYyL3JmYzE5MDEudHh0LCBzbm1wVjIvcmZjMTkwMi50eHQsCiAgICAgc25tcFYyL3JmYzE5MDMudHh0LCBzbm1wVjIvcmZjMTkwNC50eHQsCiAgICAgc25tcFYyL3JmYzE5MDUudHh0LCBzbm1wVjIvcmZjMTkwNi50eHQsCiAgICAgc25tcFYyL3JmYzE5MDcudHh0LCBzbm1wVjIvcmZjMTkwOC50eHQsCiAgICAgc25tcFYyL3JmYzIwODkudHh0LCBzbm1wVjMvcmZjMzQxMC5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTAudHh0LCBzbm1wVjMvcmZjMzQxMS50eHQsCiAgICAgc25tcFYzL3JmYzM0MTIudHh0LCBzbm1wVjMvcmZjMzQxMy5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTMudHh0LCBzbm1wVjMvcmZjMzQxNC5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTQudHh0LCBzbm1wVjMvcmZjMzQxNS5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTUudHh0LCBzbm1wVjMvcmZjMzQxNi50eHQsCiAgICAgc25tcFYzL3JmYzM0MTcudHh0LCBzbm1wVjMvcmZjMzQxOC5lcnJhdGEsCiAgICAgc25tcFYzL3JmYzM0MTgudHh0OgoKICAgYWRkaW5nIHJmY3MgYW5kIGVycmF0YSB0byBkaXN0cmlidXRpb24KCjIwMDYtMDctMzEgMDU6NDMgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgRG9uJ3QgY2F0Y2ggIi4uLiBzbm1wbmV0c3RhdCBmaW5kcyAuLi4iICh0ZXN0IDU4KSBhcyBhbiBlcnJvci4KCjIwMDYtMDctMzAgMTc6MjggIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgQ2F0Y2ggIlBlcm1pc3Npb24gZGVuaWVkIiBlcnJvcnMsIGUuZy4gZHVyaW5nICJtYWtlIGluc3RhbGwiLgoKMjAwNi0wNy0zMCAxNjowOCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjYXRjaCAiQ2FuJ3QgZmluZCAuLi4iIGVycm9ycywgZS5nLiBmcm9tIGxkCgoyMDA2LTA3LTMwIDE1OjQxICB0YW5kZXJzCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBwYXNzIExERkxBR1MgdG8gYWxsb3cgZm9yIG5vbi1zdGFuZGFyZCBsaWJjcnlwdG8gbG9jYXRpb24KCjIwMDYtMDctMjkgMTY6NTggIHRhbmRlcnMKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICAoY29ycmVjdGx5KSBtYWtlIHVzZSBvZiByZWNlbnRseSBpbnRyb2R1Y2VkIFNOTVBfU1RST1JOVUxMKHgpCgoyMDA2LTA3LTI5IDE2OjE4ICB0YW5kZXJzCgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgbWFrZSB1c2Ugb2YgcmVjZW50bHkgaW50cm9kdWNlZCBTTk1QX1NUUk9STlVMTCh4KQoKMjAwNi0wNy0yOCAwNToyMyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBTdXBwb3J0IHNldHRpbmcgdGhlIHBlcnNpc3RlbnQgbWFzayB2aWEgY29uZmlndXJlLiAgKGJhc2VkIG9uIFBhdGNoICMxNDM3Mzg1KQoKMjAwNi0wNy0yOCAwNDo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICctYXMtbmVlZGVkJyBzdXBwb3J0IGZvciBsaW5raW5nIGxpYnJhcmllcy4gIChQYXRjaGVzICMxMzk4ODczICYgMTQ5MzUyMikKCjIwMDYtMDctMjggMDI6MzkgIGR0czEyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBzbm1wbGliL2tleXRvb2xzLmMKLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICBKdW1ibyBwYXRjaCBmb3IgaW1wcm92ZWQgQUlYIDUueCBzdXBwb3J0LiAgKFBhdGNoICMxNDg2MzA3KQogICBOb3RlIHRoYXQgdGhlIG1lbW9yeS1yZWxhdGVkIHByb2Nlc3NpbmcgKGhvc3QvaHJfZnN0b3JhZ2UuYykKICAgaXMgbm93IG1vc3RseSBoYW5kbGVkIGJ5IGhhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMKCjIwMDYtMDctMjcgMTI6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgcGF0Y2ggZnJvbSBKdWxpZW4gUGlub24gdG8gZml4IGEgZmV3IHRrbWliIHByb2JsZW1zCgoyMDA2LTA3LTI3IDA4OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFN1cHBvcnQgZm9yIEhGUyBzeXN0ZW1zLCBwbHVzIE5GUyBmaXhlcyBmb3IgRGFyd2luLiAgKFBhdGNoICMxNTIwMjg5KQoKMjAwNi0wNy0yNyAwNjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQcmV2ZW50IHBvdGVudGlhbCBjcmFzaCBpbiBEYXJ3aW4uICAoUGF0Y2ggIzE1MjAyODYpCgoyMDA2LTA3LTI3IDA2OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9rZXJuZWwuaDoKCiAgIFN1cHBvcnQgJy0td2l0aG91dC1rbWVtLXVzYWdlJyBvbiBub24tTGludXggc3lzdGVtcy4gIChQYXRjaCAjMTUyMDI3OCkKCjIwMDYtMDctMjcgMDU6MjUgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbmNsdWRlICdwa2NzJyBpbiB0aGUgbGlzdCBvZiBmaWxlcyB0byBjb21waWxlLiAgKFBhdGNoICMxNTE0ODY3KQoKMjAwNi0wNy0yNyAwNToxMiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYzoKCiAgIEFjY2VwdCAtWiAwIHZhbHVlcyBmb3IgZW5naW5lQm9vdC9lbmdpbmVUaW1lLiAgKFBhdGNoICMxNTEwMDMyKQoKMjAwNi0wNy0yNyAwNDozNyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFN1cHBvcnQgcnVubmluZyB0cmFwIHJlY2VpdmVyIGFzIG5vbi1yb290IHVzZXIvZ3JvdXAuICAoUGF0Y2ggIzE0OTc0NjcpCgoyMDA2LTA3LTI3IDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBBdHRlbXB0IHRvIHVzZSB0aGUgbW9zdCB1cC10by1kYXRlIHN5c2N0bCBBUElzLiAgKFBhdGNoICMxNDgyMTY5KQoKMjAwNi0wNy0yNiAwODo1OCAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mLAogICAgIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEdlbmVyYXRlIHByb3BlciBjb2RlIGZvciBub24taW50ZWdlciB2YWx1ZSBvYmplY3RzLCBhbmQgZGV0ZXJtaW5lCiAgIHRoZSBmaXJzdCBhbmQgbGFzdCBhY2Nlc3NpYmxlIGNvbHVtbiBvYmplY3RzLiAgKFBhdGNoICMxNDI3NzEyKQoKICAgUTogSXMgaXQgd29ydGggcHVsbGluZyBzb21lIG9mIHRoaXMgY29kZSBvdXQgaW50byBhIHNlcGFyYXRlIG1pYjJjCiAgICAgIHV0aWxpdHkgZmlsZSwgc2luY2UgbXVjaCBvZiB0aGUgcHJvY2Vzc2luZyBpcyBlZmZlY3RpdmVseSBpZGVudGljYWwKICAgICAgaW4gYWxsIHRocmVlIGNhc2VzPwoKMjAwNi0wNy0yNiAwNDo1NiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEhhbmRsZSBsb25nIChkeW5hbWljLWJ1ZmZlcmVkKSBtZXNzYWdlcyBjb3JyZWN0bHkuICAoQnVnICMxNTE2MDQ1KQoKMjAwNi0wNy0yNiAwNDo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgRW5zdXJlIHRoZSBzZWNNb2RlbCBpcyBpbml0aWFsaXNlZCBmb3IgU05NUHYzIG5vdGlmaWNhdGlvbnMuIChCdWcgIzE1MTc0NTQpCgoyMDA2LTA3LTI2IDA0OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBPbmx5IHNvcnQgcmVsb2NhdGFibGUgZXh0ZW5zaW9uIGVudHJpZXMuICBUaG9zZSBpbiB0aGUgbWFpbiBleHRUYWJsZQogICBkb24ndCBoYXZlIGFuIE9JRCB0byBzb3J0IG9uLCBzbyBhdHRlbXB0aW5nIHRvIGRvIHNvIG1heSBzY3JhbWJsZQogICB0aGVtIGludG8gYSByYW5kb20gb3JkZXIuICAoQnVnICMxNTA2NzA3KQoKMjAwNi0wNy0yNSAwODo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2Rpc2suaCwgaHJfbmV0d29yay5oLAogICAgIGhyX290aGVyLmgsIGhyX3BhcnRpdGlvbi5oLCBocl9wcmludC5oLAogICAgIGhyX3Byb2MuaCwgaHJfc3RvcmFnZS5oOgoKICAgSW5kaWNhdGUgZGVwZW5kZW5jaWVzIGJldHdlZW4gSG9zdFJlcyBtb2R1bGVzLiAgKEJ1ZyAjMTUwNTMyNSkKCjIwMDYtMDctMjUgMDg6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRW5zdXJlIHRoYXQgSVAgQWRkcmVzcyB2YWx1ZXMgYXJlIHJlcG9ydGVkIGFzIDQtb2N0ZXQKICAgdmFsdWVzIG9uIDY0LWJpdCBhcmNoaXRlY3R1cmVzLiAgKEJ1ZyAjMTUwNDUwMSkKCjIwMDYtMDctMjUgMDY6NDggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBIYW5kbGUgbWFsZm9ybWVkIERpc3BsYXkgSGludHMgc2Vuc2libHksIHJhdGhlciB0aGFuCiAgIGdvaW5nIGludG8gYW4gaW5maW5pdGUgbG9vcC4gIChCdWcgIzE0NTk2NjUpCgoyMDA2LTA3LTI1IDA1OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBEb24ndCBhc3N1bWUgdGhhdCBhbGwgcmVxdWVzdHMgYXJlIG5lY2Vzc2FyaWx5IHZhbGlkLiAoQnVnICMxNDQ1MTE2KQoKMjAwNi0wNy0yNSAwNTowMCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgVXNlIHRoZSBkZWZpbmVkIGRlZmF1bHQgcG9ydCAoaWYgc3BlY2lmaWVkKSBmb3IgbnVtZXJpYyBJUHY2CiAgIGFkZHJlc3NlcywgcmF0aGVyIHRoYW4gaGFyZHdpcmluZyBTTk1QX1BPUlQuICAoQnVnICMxNDQ1MDg5KQoKMjAwNi0wNy0yNSAwMzowOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBEb24ndCBjaG9rZSBvbiBtaXNzaW5nIGxhYmVscyAoQnVnICMxNDI5NDY5KQoKMjAwNi0wNy0yNSAwMjoyOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgSW5jbHVkZSBtaXNzaW5nIGZsYWdzIHBhcmFtZXRlciAoQnVnICMxNDIyNzA4KQoKMjAwNi0wNy0yNSAwMTozMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVtb3ZlIGJyb2tlbiBhc3NlcnRpb24gKEJ1ZyAjMTM5OTM3MCkKCjIwMDYtMDctMjUgMDE6MTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdjMuYzoKCiAgIFJlLWZpeCB1bnNpZ25lZCBjb21wYXJpc29ucyBhZ2FpbnN0IDAgKEJ1ZyAjMTM5Nzg5MSkKICAgaW5jbHVkaW5nIGZpeCBmb3IgdGVzdCAjMjQKCjIwMDYtMDctMjUgMDE6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEZpeCBzaWduZWRuZXNzIG9mIHJldHVybiB2YWx1ZXMgKEJ1ZyAjMTM5NzkwNikKCjIwMDYtMDctMTggMDc6MDMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbnRhaW5lci5jb25mOgoKICAgU05NUF9UWVBFREVGX01BTExPQyAtPiBTTk1QX01BTExPQ19UWVBFREVGCgoyMDA2LTA3LTEzIDE0OjMwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbmV3cyB1cGRhdGUgZm9yIHJlY2VudCBmZWF0dXJlcwoKMjAwNi0wNy0xMyAwODoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjYWxsYmFjayBzdXBwb3J0IGZvciBnZXR0YWJsZSgpLgogICAgIC0gbm90IGV4dGVuc2l2ZWx5IHdlbGwgdGVzdGVkLCBidXQgaXQgZG9lcyB3b3JrCgoyMDA2LTA3LTEyIDAyOjQwICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGZpeCBpZkluT2N0ZXRzIHN0YXRpc3RpY3Mgb24gU29sYXJpcyAocGF0Y2ggMTUyMDYwMyBmcm9tIEpvaG4gR3JlZW4pCgoyMDA2LTA3LTA3IDE1OjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHR5cG8gZml4CgoyMDA2LTA3LTA3IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERhdmUncyBwYXRjaCB0byByZW1vdmUgaG9zdCBtaWIgc3VwcG9ydCBmb3Igd2luZG93cyBieSBkZWZhdWx0CgoyMDA2LTA3LTA3IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBEYXZlJ3MgcGF0Y2ggZm9yIGNvbXBpbGF0aW9uIGZpeGVzIGZvciB3aW5kb3dzCgoyMDA2LTA3LTA3IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCwgc25tcGxpYi9sY2RfdGltZS5jCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBNYXRoZXcgQmllbGVqZXNraSB0byBmcmVlIHVzZXIgbGlzdCBhbmQgZW5naW5lIHRpbWUgY2FjaGUgYXQgc2h1dGRvd24KCjIwMDYtMDctMDcgMTQ6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICBmaXggcG9zc2JpbGUgbnVsbCBkZXJlZmVuY2UsIG5vdGVkIG9uIGNvZGVycwoKMjAwNi0wNy0wNiAxNToxOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcDoKCiAgIGFkanVzdCBPSUQgZm9yIFNvbGFyaXMgc3dhcCBzcGFjZSBzaXplCgoyMDA2LTA3LTA2IDE1OjAxICB0YW5kZXJzCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBhc3NpZ25tZW50IGluIHJlYWRfY29uZmlnX3N0b3JlX2RhdGFfcHJlZml4KCkgZm9yIEFTTl9JUEFERFJFU1MKCjIwMDYtMDctMDUgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5lbXVsYXRpb24uY29uZjoKCiAgIC0gYWRkIHdhcm5pbmcgY29tbWVudCBmb3IgZGVwcmVjYXRlZCBvYmplY3RzCiAgIC0gc2hvcnRlbiBzY2FsYXIgbm9kZSBjb21tZW50cyBieSBhIGxpbmUKICAgLSBzaG9ydGVuIGNvbHVtbiBub2RlIGNvbW1lbnRzCgoyMDA2LTA3LTA1IDE0OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIHVuc2lnbmVkIHRvIGFzbnR5cGVzCgoyMDA2LTA3LTA1IDE0OjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICBhZGQgKiBuZXh0IHRvIHNjYWxhciBlbnVtIGRlZnZhbAoKMjAwNi0wNy0wNSAxNDoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmVtdWxhdGlvbi5jb25mOgoKICAgLSAnb3ZlcnJpZGUnIGFuZCAnYWRkX3JvdycgZGVmYXVsdCB0byBjb21tZW50ZWQgb3V0CiAgIC0gYWRkIG1pc3NpbmcgdHlwZSBpbmZvIHRvIG92ZXJyaWRlCiAgIC0gbWFrZSBjb25mIGZpbGUgaGVhZGVyIG1pYjJjIGNvbW1lbnRzIHNvIGl0J3Mgbm90IGluY2x1ZGVkIGluIG91dHB1dAoKMjAwNi0wNy0wNSAwNzo0MiAgcnN0b3J5CgogICAqIG1pYnMvOiBESVNNQU4tTlNMT09LVVAtTUlCLnR4dCwgRElTTUFOLVBJTkctTUlCLnR4dCwKICAgICBESVNNQU4tVFJBQ0VST1VURS1NSUIudHh0OgoKICAgdXBkYXRlIGZyb20gUkZDIDQ1NjAKCjIwMDYtMDctMDMgMjE6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFByb3Blcmx5IGhhbmRsZSBzbm1wIGVudW1zIHVzaW5nIHRoZSB3b3JkICJkZXByZWNhdGVkIgoKMjAwNi0wNy0wMyAyMDo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgYXBwcm9wcmlhdGVseSBtYXJrIGRlcHJlY2F0ZWQgdGFibGUgb2JqZWN0cwoKMjAwNi0wNi0zMCAyMjoxMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIHN1cHBvcnQgZm9yIG9wdGlvbmFsIGZpbGVzIChkb24ndCBleGlzdCBpbiBldmVyeSBicmFuY2gpCgoyMDA2LTA2LTMwIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgZG94eWdlbi5jb25mIHN1cHBvcnQKCjIwMDYtMDYtMzAgMjE6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBjaGVjayBmb3IgZmlsZSBleGlzdGVuY2UKCjIwMDYtMDYtMzAgMjE6MDcgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBleGl0IHdpdGggdGhlIGN2cyBjb21taXQgc3RhdHVzIGlmIHJ1bgoKMjAwNi0wNi0zMCAxNTo1MyAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLAogICAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMCiwgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTAosIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBiZXR0ZXIgZW52IG5hbWUgZm9yIG5vdCBjaGVja2luZyB0aGUgdmVyc2lvbgoKMjAwNi0wNi0zMCAxNToxNyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICByZW1vdmUgdmVyc2lvbiBjaGFuZ2luZyBzdXBwb3J0OyBub3cgaW4gbWFrZXJlbGVhc2UKCjIwMDYtMDYtMzAgMTU6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZW1vdmUgdGFnIHN1cHBvcnQgZnJvbSB2ZXJzaW9udGFnOyBub3cgaW4gbWFrZXJlbGVhc2UKCjIwMDYtMDYtMzAgMTU6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBtdWNoIGJldHRlciBzdXBwb3J0IGZvciBjdnMgY29tbWl0LCB2ZXJzaW9uIG51bWJlcmluZywgZXRjCgoyMDA2LTA2LTMwIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgdmFyaW91cyBmaXhlcyBhbmQgaW1wcm92ZW1lbnRzCgoyMDA2LTA2LTMwIDE1OjEzICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIEFTTi9BU04ucG0sIEFTTi9NYWtlZmlsZS5QTAosIEFueURhdGFfU05NUC9TdG9yYWdlLnBtLCBPSUQvTWFrZWZpbGUuUEwsCiAgICAgT0lEL09JRC5wbSwgU05NUC9NYWtlZmlsZS5QTCwgU05NUC9TTk1QLnBtLAogICAgIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbQosIGFnZW50L01ha2VmaWxlLlBMLCBhZ2VudC9hZ2VudC5wbSwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtCjoKCiAgIHBlcmwgdmVyc2lvbiBudW1iZXJpbmcgY2hhbmdlcwoKMjAwNi0wNi0zMCAxNToxMiAgaGFyZGFrZXIKCiAgICogcGVybC9NYWtlZmlsZS5zdWJzLnBsOgoKICAgVXBkYXRlIHRvIGNoZWNrIGZvciBDUEFOIHJlcXVpcmVkIHBlcmwgdmVyc2lvbiBudW1iZXJzCgoyMDA2LTA2LTI5IDE2OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuZW11bGF0aW9uLmNvbmY6CgogICBmaXJzdCBwYXNzIGF0IGF1dG9nZW5lcmF0aW5nIG92ZXJyaWRlL3RhYmxlL2FkZF9yb3cgZW50cmllcyBmb3IgYSBNSUIKCjIwMDYtMDYtMjcgMTE6NDAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNjFhZ2VudHBlcmwsIFQxMTVhZ2VudHhwZXJsOgoKICAgc2V0IERZTERfTElCUkFSWV9QQVRIIGZvciBPU1ggYW5kIFNITElCX1BBVEggZm9yIEhQLVVYCgoyMDA2LTA2LTI3IDExOjA5ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggbW9yZSB1ZHBUYWJsZSBieXRlLW9yZGVyIGlzc3VlcyAoaW5kaWNlcykgb24gKkJTRCBhbmQgU29sYXJpcy94ODYKCjIwMDYtMDYtMjcgMDk6NDIgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgcmVtb3ZlIGVtYmVkZWQgcGVybCBpbmZvOyBhZGQgcGVybCBhZ2VudHggaW5mbwoKMjAwNi0wNi0yNiAxNToyOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgYWRkIG5ldHN0YXQgcGF0aCBmb3IgSVJJWAoKMjAwNi0wNi0yNiAwODozMyAgdGFuZGVycwoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIHVkcFRhYmxlIGJ5dGUtb3JkZXIgZml4ICh2YWx1ZXMgb25seSkgZm9yIE5ldEJTRCBhbmQgT3BlbkJTRAoKMjAwNi0wNi0yNSAxNDo0MyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBwcmVwZW5kIChpbnN0ZWFkIG9mIHJlcGxhY2UpIGEgbm9uLWVtcHR5IExEX0xJQlJBUllfUEFUSDsgZml4ZXMgdGVzdCBlcnJvcnMgb24gc3lzdGVtcyB0aGF0IHJlbHkgb24gaXQKCjIwMDYtMDYtMjUgMTQ6MjUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBmaXggdGVzdCBlcnJvciBvbiBTb2xhcmlzIGV0Yy46IG9ubHkgdXNlICJpZCAtdSIgb24gc3lzdGVtcyB0aGF0IHN1cHBvcnQgaXQKCjIwMDYtMDYtMjUgMDg6NDMgIGFsZXhfYgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLm1ha2VmaWxlcywKICAgICBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTAosIFNOTVAvTWFrZWZpbGUuUEwsIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIC0ncGVybCBNYWtlZmlsZS5QTCAtTkVULVNOTVAtSU4tU09VUkNFPXRydWUnIHdhcyBub3Qgd29ya2luZy4gIEZpeDogY2FsbAogICAgJ25zY29uZmlnJyAtLXZlcnNpb24gaW5zaWRlIG9mIEluaXRNYWtlUGFyYW1zIGluc3RlYWQgb2YgQ2hlY2tfVmVyc2lvbgogICAtU3VwcG9ydCBtb2R1bGU6IE5ldFNOTVBHZXRPcHRzIGNhbGwgc2hvdWxkIHBhc3MgcGFyZW50IGZvbGRlciBzbyBuZXQtc25tcC1jb25maWcKICAgIGNhbiBiZSBmb3VuZAogICAtU3VwcG9ydC9NYWtlZmlsZS5QTCB3YXMgbWlzc2luZyBmcm9tIE1ha2VmaWxlLm1ha2VmaWxlcwoKMjAwNi0wNi0yNCAwOTowMCAgYWxleF9iCgogICAqIHBlcmwvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUubWFrZWZpbGVzLAogICAgIE1ha2VmaWxlLnN1YnMucGwsIG1ha2UtcGVybC1tYWtlZmlsZXMsCiAgICAgQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwKLCBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgLVNraXAgdmVyc2lvbiBjaGVjayBmb3IgV2luMzIgTVNWQwogICAtYWRkIFRyYXBSZWNlaXZlciB0byBNYWtlZmlsZS5tYWtlZmlsZXMKICAgLW1ha2UtcGVybC1tYWtlZmlsZXM6ICByZW5hbWUgZmlsZXMgQUZURVIgY2xvc2luZyB0aGVtLCBub3QgYmVmb3JlCgoyMDA2LTA2LTIzIDEyOjUwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgY2hlY2sgZm9yIDEyNy4wLjAuMS4sIG5vdCBqdXN0ICwgdG8gaWRlbnRpZnkgYnl0ZS1vcmRlciBpc3N1ZXMKCjIwMDYtMDYtMjMgMDk6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaDoKCiAgIENsZWFuIGZpeGluZyBvZiBvcmRlcmluZyBwcm9ibGVtcyB3aXRoIGtlcm5lbCBzdG9yYWdlIG9mIFVEUCB2YWx1ZXMKCjIwMDYtMDYtMjMgMDg6NTIgIGR0czEyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBEb2N1bWVudCBjdXJyZW50IGJlc3QtcHJhY3Rpc2UgZm9yIGFubm91bmNpbmcgbmV3IHJlbGVhc2VzCiAgIChpbmNsdWRpbmcgcHJlLXJlbGVhc2VzIGFuZCByZWxlYXNlIGNhbmRpZGF0ZXMpLgogICBTYXkgd2hhdCB3ZSBkbywgcmF0aGVyIHRoYW4gZG8gd2hhdCB3ZSBzYXkuCgoyMDA2LTA2LTIzIDA1OjE5ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBmaXggdHlwb3MKCjIwMDYtMDYtMjMgMDI6NDcgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCBlYXJsaWVyICJkb24ndCByZXZlcnNlIGFkZHJlc3MgYnl0ZSBvcmRlciBmb3Igc29sYXJpcyAoc3BlY2lmaWNhbGx5IHg4NikgZm9yIGxvY2FsIGFkZHJlc3NlcyIgcGF0Y2ggdGhhdCBicm9rZSBieXRlIG9yZGVyIGZvciBhbGwgcGxhdGZvcm1zCgoyMDA2LTA2LTIwIDE1OjM1ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGludHJvZHVjZSBOU0JfUFJFRklYIGFuZCBzd2l0Y2ggdG8gLS1wcmVmaXg9L3VzciBub3cgdGhhdCB3ZSBzdXBwb3J0IERFU1RESVIgZm9yIGV2ZXJ5dGhpbmc7IGUuZy4gdG8gYXZvaWQgdGhhdCB0aGUgaW5zdGFsbGF0aW9uIGVuZHMgaW4gL2Rlc3RkaXIvZGVzdGRpcgoKMjAwNi0wNi0yMCAxNDo0NiAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbnRyb2R1Y2UgTlNCX0VYVFJBX0lOU1RBTEwgdG8gYmUgYWJsZSB0byBwYXNzIGV4dHJhIGFyZ3MgdG8gIm1ha2UgaW5zdGFsbCIKCjIwMDYtMDYtMjAgMTI6MTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgZXhwb3J0aW5nCgoyMDA2LTA2LTIwIDA1OjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA2MWFnZW50cGVybDoKCiAgIHNldCBMRF9MSUJSQVJZX1BBVEggdG8gbWFrZSBzdXJlIHRoYXQgTmV0U05NUDo6YWdlbnQncyBhZ2VudC5zbyBjYW4gbG9hZCAodW5pbnN0YWxsZWQpIGxpYm5ldHNubXAqLnNvOyBvdGhlcndpc2UgdGVzdCBmYWlscyBhdCBsZWFzdCBvbiBGcmVlQlNECgoyMDA2LTA2LTE1IDE1OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHN1cHByZXNzIHN0ZGVyciB3YXJuaW5ncyBmb3IgInBzIC1lIiBpbiBvcmRlciB0byBmaXggW2ZhbHNlXSBuaWdodGx5IGJ1aWxkIGVycm9yIG1lc3NhZ2VzIG9uIFNGIENGIGhvc3QgYWxwaGEtbGludXgxCgoyMDA2LTA2LTE1IDA2OjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgYWRkIE9wZW5CU0QgYW5kIE5ldEJTRCB0byB0aGUgbGlzdCBvZiBzeXN0ZW1zIHRoYXQgcmVxdWlyZSByb290IHByaXZpbGVnZXMgZm9yIHVkcFRhYmxlIChhY2NvcmRpbmcgdG8gRGF2ZSdzIHRlc3RpbmcpCgoyMDA2LTA2LTEzIDE0OjU5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBzZXQgTkVUU05NUF9EU19BR0VOVF9OT19ST09UX0FDQ0VTUyAobmVlZGVkIGZvciBlLmcuIFNvbGFyaXMgMi42KQoKMjAwNi0wNi0xMyAwNTo0MiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvY2FsbGJhY2suYwosIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBmaXggYnVnIDE1MDUzNDE6IGFnZW50IHNlZ2ZhdWx0cyBvbiBTb2xhcmlzIHdpdGggLURBTEwKCjIwMDYtMDYtMTIgMTY6NTUgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBjb21taXQgdGhlIGRveHlnZW4uY29uZiBmaWxlCgoyMDA2LTA2LTEyIDE2OjQyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBpbnRyb2R1Y2UgIm5ldC1zbm1wLWNvbmZpZyAtLXBlcmxwcm9nIiBhbmQgdXNlIGl0IGluIHRoZSAiQWdlbnRYIHN1YmFnZW50IGluIHBlcmwiIHRlc3QKCjIwMDYtMDYtMTIgMTY6MDAgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCB0ZXN0aW5nL3Rlc3RzL1QxMTVhZ2VudHhwZXJsOgoKICAgaW50cm9kdWNlICJuZXQtc25tcC1jb25maWcgLS1wZXJscHJvZyIgYW5kIHVzZSBpdCBpbiB0aGUgIkFnZW50WCBzdWJhZ2VudCBpbiBwZXJsIiB0ZXN0CgoyMDA2LTA2LTEyIDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZGVmaW5lIG1mZF8qX3Jvd3JlcV9mcm9tX2luZGV4IGlmIHBlcnNpc3RlbnQgZW5hYmxlZAoKMjAwNi0wNi0xMiAxNTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgaW5jbHVkZSBpcGFkZHIgaW5zdGVhZCBvZiByZWRlZmluaW5nIGNvbnN0YW50cwoKMjAwNi0wNi0xMiAxNTozOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBhZGQgY29tbWVudCB3L2ludGVnZXIgdmFsdWUgZm9yIGVhc3kgZ3JlcHBpbmcKCjIwMDYtMDYtMTIgMTM6MjMgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldDYuYywgcm91dGUuYzoKCiAgIGFkZCBzeXMvdHlwZXMuaCB0byBmaXggT1MgWCBidWlsZAoKMjAwNi0wNi0xMiAxMzowNSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCjoKCiAgIC0gZml4IGJhZCBwYXJhbWV0ZXIgaW4gc2NhbGFyIHJlZ2lzdHJhdGlvbgogICAtIGtlZXAgc2NhbGFyIHZhbHVlIGZyZXNoIHVzaW5nIHRhYmxlIGNhY2hlICsgY2FjaGUgaGVscGVyCgoyMDA2LTA2LTEyIDEzOjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgYWRkIGFjY2VzcyB0byB0YWJsZSBjYWNoZQoKMjAwNi0wNi0xMiAxMDozMCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgZml4IGZvciBuZXcgZmFpbHVyZSBlcnJvciBjb2RlCgoyMDA2LTA2LTEyIDEwOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBGaXggYnVnIHJlcG9ydGVkIGJ5IFJvYmVydCBXaWxjb3g6IHJldHVybiBubyBhY2Nlc3MgaW5zdGVhZCBvZiBub3Qgd3JpdGFibGUgb24gVkFDTSBkZW5pYWxzCgoyMDA2LTA2LTEyIDA5OjAwICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgZmluYWxseSBhIHdvcmtpbmcgdmVyc2lvbiBvZiB0aGUgdmVyc2lvbiB3b3JraW5nIGNoZWNrCgoyMDA2LTA2LTEyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuc3Vicy5wbCwgQVNOL01ha2VmaWxlLlBMLAogICAgIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwKICAgICBUcmFwUmVjZWl2ZXIvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L1N1cHBvcnQvTWFrZWZpbGUuUEwsIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgZml4IHByZVggdmVyc2lvbiBudW1iZXJzIGJlZm9yZSBjaGVja2luZwoKMjAwNi0wNi0xMiAwODo0NiAgaGFyZGFrZXIKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9TdXBwb3J0L01ha2VmaWxlLlBMLCBhZ2VudC9TdXBwb3J0L1N1cHBvcnQucG0sCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIGNoZWNrIHRoZSBwZXJsIG1vZHVsZSB2ZXJzaW9uIG51bWJlciBhZ2FpbnN0IHRoZSBuZXQtc25tcCB2ZXJzaW9uIG51bWJlcgoKMjAwNi0wNi0xMiAwMToxOSAgdGFuZGVycwoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIG1hbnVhbCBzdGVwIHRvIHVwZGF0ZSB2ZXJzaW9uIG51bWJlciBpbiBkb3h5Z2VuLmNvbmYKCjIwMDYtMDYtMTIgMDE6MTYgIHRhbmRlcnMKCiAgICogZG94eWdlbi5jb25mOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDYtMDYtMTAgMDU6NTcgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgZml4IHN5bnRheCBlcnJvciBpbnRyb2R1Y2VkIGluIGxhc3QgY29tbWl0CgoyMDA2LTA2LTA5IDEzOjQyICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZml4IHR5cG8KCjIwMDYtMDYtMDkgMDU6NTYgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICAtIGRvbid0IGZyZWUgcGR1IGlmIGl0J3Mgbm90IGEgY2xvbmUKICAgLSBpZmRlZiBtb3JlIGNvZGUgbm90IHVzZWQgaWYgc25tcHYxIGRpc2FibGVkCgoyMDA2LTA2LTA3IDA1OjI0ICB0YW5kZXJzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBwYXRjaCBmcm9tIERhdmUgdG8gcHJldmVudCBjcmFzaCB3aXRoIC1EcmVnaXN0ZXJfbWliCgoyMDA2LTA2LTA3IDA1OjEzICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGFuZCBhcnBhL2luZXQuaCB0byBwaWNrIHVwIG50b2hsIG9uIGhwdXgxMC4yMAoKMjAwNi0wNi0wNSAxNTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggZG91YmxlLWZyZWUgb2YgZGVsZWdhdGVkIGNhY2hlCgoyMDA2LTA2LTA1IDE0OjI3ICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsOgoKICAgYWRkIHZhY20gc2V0IHRlc3RzCgoyMDA2LTA2LTA1IDE0OjIxICByc3RvcnkKCiAgICogdGVzdGluZy90ZXN0cy9TdmFjbWNvbmZpZzoKCiAgIGFkZCAocm98cncpY29tbXVuaXR5IGNvbmZpZyBmb3IgcncgdmFjbSB0ZXN0CgoyMDA2LTA2LTA1IDExOjA2ICByc3RvcnkKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBhZGQgc29tZSB2YWNtIG1hdGNoaW5nIGRlYnVnIG1zZ3MKCjIwMDYtMDYtMDUgMTA6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlci5jOgoKICAgLSB1c2UgbmV3IGFiaWxpdHkgdG8gc2NoZWR1bGUgYWxhcm0gaW4gMCBzZWMgdG8gcnVuIG10ZSB0aXJnZ2VycyBhc2FwIGFmdGVyCiAgICAgc3RhcnR1cCwgaW5zdGVhZCBvZiBkdXJpbmcgY29uZmlnIGZpbGUgcGFyc2luZwogICAtIGFkZCBtaXNzaW5nIFxuIHRvIGxvZyBtc2cKCjIwMDYtMDYtMDUgMTA6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gYWxsb3cgYSAwIHRpbWUgaW4gc25tcF9hbGFybV9yZWdpc3RlciwgdG8gbWVhbiBydW4gQVNBUCAoaS5lLiAxIHVzZWMpCiAgIC0gYWxsb3cgc2VjL3VzZWMgb2YgMCBpbiBzYV91cGRhdGVfZW50cnksIGV4Y2VwdCBmb3IgU0FfUkVQRUFUIGNhc2UKCjIwMDYtMDYtMDUgMTA6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIC0gbG9nIGVycm9yIChhbmQgZG9uJ3QgY3JlYXRlIGVudHJ5KSBpZiBzZXNzIHVzZXIgbm90IGZvdW5kCiAgIC0gbG9nIGVycm9yIGlmIGFnZW50U2VjTmFtZSAoZGVmYXVsdCB1c2VyKSBub3Qgc3BlY2lmaWVkCiAgIC0gYWRkIG1pc3NpbmcgXG4gdG8gZGVidWcgbXNnCgoyMDA2LTA2LTA1IDA5OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgY2hhbmdlIGxlbiB0eXBlIHRvIHNpemVfdAoKMjAwNi0wNi0wNSAwOTozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZS5jLAogICAgIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIGFkZCBjb250YWluZXIgbmFtZXMKCjIwMDYtMDYtMDEgMDY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBlbmZvcmNlIE1JQiBvYmplY3QgbGVuZ3RocwoKMjAwNi0wNS0yOSAwMjo0MCAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmdXJ0aGVyIHR3ZWFrIHRoZSBlcnJvciByZWdleAoKMjAwNi0wNS0yOSAwMTozNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmw6CgogICByZS1maXggbmV3bGluZSBpc3N1ZXMKCjIwMDYtMDUtMjggMTM6MTMgIHRhbmRlcnMKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgdGVtcG9yYXJ5IHdvcmthcm91bmQgdG8gcHJldmVudCBzbm1wdHJhcGQgZW1iZWRkZWQgcGVybCBjcmFzaCBvbiB4ODZfNjQgKGJ1ZyAxNDk0ODgyKQoKMjAwNi0wNS0yNyAyMzo1OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICB1c2UgQ0hFQ0tPUkRJRSBpbnN0ZWFkIG9mIENIRUNLRklMRSB3aGVuIGRvaW5nIG11bHRpcGxlIGNoZWNrcyAod2FzIHN1Y2NlZWRpbmcgd2hlbiBpdCBzaG91bGRuJ3QgaGF2ZSkuICBBbHNvLCBvcGVuIGVtYmVkZGVkIHBlcmwgTE9HIGluIGFwcGVuZCBtb2RlIHNvIHNlY29uZCByb3V0aW5lIGRvZXNuJ3QgdHJ1bXAgdGhlIGZpcnN0CgoyMDA2LTA1LTI3IDIyOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBpbmNsdWRlIG5ldGluZXQvaW4uaCBhbmQgYXJwYS9pbmV0LmggdG8gcGljayB1cCBodG9ubCwgZXRjLCBvbiBocHV4MTAuMjAKCjIwMDYtMDUtMjcgMjI6MTYgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHdheSBzaW1wbGUgREVTVERJUiBzdXBwb3J0CgoyMDA2LTA1LTI3IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBhIGZldyBwZW9wbGUgZnJvbSBwcmV2aW91cyBwYXRjaGVzCgoyMDA2LTA1LTI3IDA3OjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBzZXQgbGlidG9vbC1saWtlIExEX0xJQlJBUllfUEFUSCB0byBtYWtlIHN1cmUgdGhlIHBlcmwgYWdlbnQgc3RhcnRzIHByb3Blcmx5IChmaXhlcyBidWcgMTQ5NTQzMykKCjIwMDYtMDUtMjYgMTU6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBkb24ndCByZXZlcnNlIGFkZHJlc3MgYnl0ZSBvcmRlciBmb3Igc29sYXJpcyAoc3BlY2lmaWNhbGx5IHg4NikgZm9yIGxvY2FsIGFkZHJlc3NlcwoKMjAwNi0wNS0yNiAxNToyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmg6CgogICByZW1vdmUgZG91YmxlIGVudHJ5IGNvbW1lbnQKCjIwMDYtMDUtMjYgMDk6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb25lIGludHB0cl90IGNhc3QgZnJvbSBhIHBvaW50ZXIKCjIwMDYtMDUtMjYgMDk6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwgY29uZmlndXJlOgoKICAgY2hlY2sgZm9yIHVpbnRwdHJfdCBhbmQgaW50cHRyX3QKCjIwMDYtMDUtMjYgMDY6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIEFub3RoZXIgcHJvcGVyIHBvaW50ZXIgY2FzdAoKMjAwNi0wNS0yNiAwNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvU05NUC54cywgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54cywKICAgICBhZ2VudC9hZ2VudC54czoKCiAgIFBhdGNoIGZyb20gZGFyaXggdG8gcHJvcGVybHkgY2FzdCBwb2ludGVycyB0byBhbiBJViBpbnN0ZWFkIG9mIGFuIGludCB0byBmaXggNjRiaXQgaXNzdWVzCgoyMDA2LTA1LTI2IDAxOjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1ha2UgZGFlbW9ucyBiaW5kIHRvIGxvY2FsaG9zdCBieSBkZWZhdWx0IG9ubHkgKGZpeGVzIGJ1ZyAxNDI0MjkzKQoKMjAwNi0wNS0yNSAxNToxMyAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgc2V0IFNOTVBfUEVSU0lTVEVOVF9ESVIgZm9yIGFsbCBhcHBzL2RhZW1vbnMKCjIwMDYtMDUtMjUgMTU6MDcgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIHNldCBTTk1QQ09ORlBBVEggZm9yIGFsbCBhcHBzL2RhZW1vbnMKCjIwMDYtMDUtMjUgMDk6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBkb24ndCBvcGVuIGRlZmF1bHQgc211eCBwb3J0L3NvY2tldAoKMjAwNi0wNS0yNSAwODowNSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzdXNtY29uZmlnYWdlbnQsIFN2YW55Y29uZmlnOgoKICAgZG9uJ3Qgb3BlbiBkZWZhdWx0IHNtdXggcG9ydC9zb2NrZXQKCjIwMDYtMDUtMjQgMDg6MzIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgY2FsbGluZyBwZXJsCgoyMDA2LTA1LTI0IDA4OjI2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBkb3VibGUtZm9yayB0aGUgcGVybCBzdWJhZ2VudCB0byBhdm9pZCBzaGVsbCBvdXRwdXQgZnJvbSBqb2IgaGFuZGxpbmcKCjIwMDYtMDUtMjQgMDY6NDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGludHJvZHVjZSBhZGRpdGlvbmFsIHZhcmlhYmxlcyBmb3Igc3ViYWdlbnQgdGVzdHM6IEFHRU5UWF9DT05GSUdfRklMRSwgU05NUF9BR0VOVFhfUElEX0ZJTEUsIFNOTVBfQUdFTlRYX0xPR19GSUxFCgoyMDA2LTA1LTI0IDA2OjM5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDExNWFnZW50eHBlcmw6CgogICBuZXcgdGVzdDogJ0FnZW50WCBzdWJhZ2VudCBpbiBQZXJsICh1c2luZyBOZXRTTk1QOjphZ2VudCknCgoyMDA2LTA1LTIyIDE1OjQ4ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzazoKCiAgIHRoaXMgdGVzdCByZXF1aXJlcyBob3N0L2hyX3N5c3RlbSBpbiBwYXJ0aWN1bGFyIGFuZCB1c2VzIHYxLCBub3QgdjJjCgoyMDA2LTA1LTIyIDE1OjQyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1OgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfZGV2aWNlIGluIHBhcnRpY3VsYXIgYW5kIHVzZXMgdjEsIG5vdCB2MmMKCjIwMDYtMDUtMjIgMTU6MzYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICB0aGlzIHRlc3QgdXNlcyB2MSwgbm90IHYyYwoKMjAwNi0wNS0yMiAxNToxOCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lOgoKICAgdGhpcyB0ZXN0IHJlcXVpcmVzIGhvc3QvaHJfc3lzdGVtIGluIHBhcnRpY3VsYXIKCjIwMDYtMDUtMjIgMDM6MDggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTUzc29sYXJpc3N3YXA6CgogICB0aGlzIHRlc3QgcmVxdWlyZXMgaG9zdC9ocl9zdG9yYWdlIGluIHBhcnRpY3VsYXIKCjIwMDYtMDUtMTkgMTE6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGZpeCBmb3IgYnVnIDEzMTM2NjcgcmVtb3ZlZCBzeW5jaCBzZW5kLCBhbGxvd2luZyB1cyB0byB1bmNvbW1lbnQgdGhlCiAgICAgY29tbWVudGVkIG91dCBwZHUgZnJlZSBvbiBlcnJvciwgcGx1Z2dpbmcgYSBtZW1vcnkgbGVhayBpZGVudGlmaWVkCiAgICAgb24gY29kZXJzIGJ5IGRlcmVrbCBhdCBibHVleW9uZGVyIGNvIHVrCgoyMDA2LTA1LTE5IDEwOjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICAtIHVzZSBucnByb2NzLTEgYXMgaW5kZXggaW5zdGVhZCBvZiBpLCB3aGljaCB3aWxsIGJlIG5lZ2F0aXZlIGlmIGNwdWluZm8KICAgICBkb2Vzbid0IGNvbnRhaW4gYSAncHJvY2Vzc29yJyBsaW5lCgoyMDA2LTA1LTE3IDE1OjExICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGRfYXV0aC5jOgoKICAgbmVlZCBzeXMvdHlwZXMuaCBiZWZvcmUgbmV0aW5ldC9pbi5oIG9uIHNvbWUgcGxhdGZvcm1zCgoyMDA2LTA1LTEzIDAwOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXBkYXRlIENWUyBob3N0IG5hbWUKCjIwMDYtMDUtMTIgMTU6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vTWFrZWZpbGUuUEwsIE9JRC9NYWtlZmlsZS5QTCwKICAgICBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1NOTVAucG0sIFNOTVAvU05NUC54cwosIFRyYXBSZWNlaXZlci9NYWtlZmlsZS5QTCwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAosIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgLVcgZmxhZyBzdWJzdGl0aW9uIHRvIGJlIGV4YWN0IG1hdGNoIG9mIGZsYWdzIHRvIHJlbW92ZSwgcmF0aGVyIHRoYW4gcmVtb3ZpbmcgYW55IC1XIGZsYWcgZm9yIHBvcnRhYmlsaXR5IHJlYXNvbnMKCjIwMDYtMDUtMTIgMDk6MTAgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbWlzYy4gYWRkaXRpb25zIGZvciBtb3JlIGNvbmZpZ3VyYXRpb24gY29udHJvbCBvbiBidWlsZCBmYXJtcywgaW5jbHVkaW5nIGVtYmVkZGVkIHBlcmwgYnVpbGRpbmcKCjIwMDYtMDUtMTIgMDg6MTYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNjB0cmFwZHBlcmwsIFQwNjFhZ2VudHBlcmw6CgogICBmaXggbmV3bGluZSBpc3N1ZXMKCjIwMDYtMDUtMTIgMDg6MTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgICBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXAsCiAgICAgVDExM2FnZW50eHRyYXA6CgogICBlbnN1cmUgdGhlIHRlc3RzIHdvcmsgZXZlbiBpZiBVQ0QtU05NUC1NSUIgaXNuJ3QgaW4gZGVmYXVsdHMgTUlCUyBsaXN0CgoyMDA2LTA1LTEyIDA4OjEwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICBpbnRyb2R1Y2UgZGVsYXlzIHRvIG5vdCBsb3NlIHRyYXBzCgoyMDA2LTA1LTEyIDA3OjU0ICB0YW5kZXJzCgogICAqIFJFQURNRS5haXg6CgogICB1cGRhdGUgUkVBRE1FIGZvciBBSVggYmFzZWQgb24gYnVpbGQgdGVzdCBleHBlcmllbmNlIG9uIEFJWCA0LjMuMy81LjEvNS4yLzUuMwoKMjAwNi0wNS0wOCAwMzowNyAgdGFuZGVycwoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBpbnRyb2R1Y2UgTlNCX0xJQldSQVAgdG8gYmUgYWJsZSB0byBzcGVjaWZ5IC0td2l0aFtvdXRdLWxpYndyYXA9eHh4CgoyMDA2LTA1LTA4IDAxOjExICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHJlbW92ZSBzbXV4IGZyb20gTlNCX0RJU1RfTU9EVUxFUyAoaXQncyBhbHJlYWR5IGluIE5TQl9FWFRSQV9NT0RVTEVTKQoKMjAwNi0wNS0wOCAwMDo0NyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaDoKCiAgIGJ1aWxkIGZpeCBmb3IgQzg5IGNvbXBpbGVycyAoZS5nLiB4bGMgb24gQUlYIDQuMy4zKTogbm8gdHJhaWxpbmcgY29tbWEgYWZ0ZXIgbGFzdCBlbnRyeSBvZiBhICJ0eXBlZGVmIGVudW0iCgoyMDA2LTA1LTA1IDE2OjAzICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZ1cnRoZXIgdHdlYWtpbmcgb2YgdGhlIGV4Y2VwdGlvbiByZWdleAoKMjAwNi0wNS0wNSAxNToyOCAgdGFuZGVycwoKICAgKiBSRUFETUUuaXJpeDoKCiAgIEluaXRpYWwgUkVBRE1FIGZvciBJUklYCgoyMDA2LTA1LTA1IDE0OjUxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIHB1dCB0aGUgc25wcmludGYgbGVuZ3RoIGludG8gYSBkZXJlZmVyZW5jZWQgcG9pbnRlcgoKMjAwNi0wNS0wNCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY292ZXJ0aXkgMTM1OiBkb3VibGUgY2hlY2sgbmV0c25tcF9vaWRfZmluZF9wcmVmaXggcmV0dXJucyBhIHBvc2l0aXZlIHJlc3VsdCAoc2hvdWxkIG9ubHkgaGFwcGVuIGluIGJyb2tlbi10cmVlIGNhc2VzKQoKMjAwNi0wNS0wNCAxNDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjb3Zlcml0eSAjMTM2OiBmcmVlIG1lbSBsZWFrIGluIHJhcmUgYmFkLWFnZW50eCBwYWNrZXQgY2FzZQoKMjAwNi0wNS0wMyAxMzo1OSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgTkVXUzoKCiAgIFsgMTQ4MTAxMiBdIEhQLVVYIDExLjAvMTFpOiBpcEFkRW50QmNhc3RBZGRyIHdyb25nIChwYXRjaCBzdWJtaXR0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyKQoKMjAwNi0wNC0zMCAyMjowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBbIDE0Nzg2MTYgXSBzbm1wdXNtIG91dHB1dHMgdG8gc3RkZXJyIG9uIHN1Y2Nlc3MKCjIwMDYtMDQtMzAgMjI6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgWyAxNDc5MDcxIF0gNjQgYml0cyBjb3VudGVyIG9uIExpbnV4ICYgZ29vZCBwYXJzaW5nIG9mIGRpc2tzdGF0cyAoYWdhaW4pIFttb2RpZmllZF0gZnJvbSBGYWJyaWNlIEJhY2NoZWxsYQoKMjAwNi0wNC0yNSAxMDozMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgWyAxNDY2NDUwIF0gZml4IGNvbXBpbGF0aW9uIHdpdGggbGludXgvZXRodG9vbC4gIEluIG90aGVyIHdvcmRzOiB1Z2ggbmFzdHkgYnV0IG5lZWRlZCBwYXRjaAoKMjAwNi0wNC0yNSAxMDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBtb2RpZmllZCB2ZXJzaW9uIG9mIFsgMTQ2NjQ1MSBdIGlwQWRkcmVzcyBzaXplIHdpdGggNjRiaXQgdG8gdXNlIHNpemVvZigpIGZvciB0aGUgZGF0YXR5cGUgaW4gcXVlc3Rpb24KCjIwMDYtMDQtMjEgMDU6MzAgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBTa2lwIG1pc3NpbmcgZW50cmllcyAocmF0aGVyIHRoYW4gY3Jhc2hpbmcgb3V0IGNvbXBsZXRlbHkpCgoyMDA2LTA0LTIwIDE3OjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvOiBjb250YWluZXIuYywgc25tcHVzbS5jOgoKICAgZml4IHR5cG9zCgoyMDA2LTA0LTIwIDE3OjEzICB0YW5kZXJzCgogICAqIE5FV1M6CgogICByZXBocmFzZWQKCjIwMDYtMDQtMjAgMTY6NTUgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IGNoYW5nZXMgc2luY2UgNS4zLjAuMQoKMjAwNi0wNC0yMCAxNjoxOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTY6MDMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTl0cmFwZHRyYXBoYW5kbGUsIFQwNjB0cmFwZHBlcmw6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTU6MjcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBmaXggYnVnIDE0NzMyODk6IFJlLWluaXQgb2YgNS4zLjAuMSBkYWVtb25zIGZhaWwgYWZ0ZXIgU0lHSFVQCgoyMDA2LTA0LTIwIDE1OjI0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICBhZGQgU0lHSFVQIHRlc3QKCjIwMDYtMDQtMjAgMTU6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSBmaXggYnVnIDE0NzMyODk6IFJlLWluaXQgb2YgNS4zLjAuMSBhZ2VudCBmYWlscyBhZnRlciBTSUdIVVAKCjIwMDYtMDQtMjAgMTU6MTUgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgYWRkIFNJR0hVUCB0ZXN0CgoyMDA2LTA0LTIwIDE1OjA5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGludHJvZHVjZSBIVVBQUk9HKCksIEhVUEFHRU5UKCkgYW5kIEhVUFRSQVBEKCkgZm9yIHVwY29taW5nIFNJR0hVUCB0ZXN0cwoKMjAwNi0wNC0xOCAxMjoxNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBCdWcgIzE0MzIxNjU6IHR5cG9zIGluIHRoZSBmaWxlbmFtZXMKCjIwMDYtMDQtMTggMTE6MDEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IGJ1ZyAxNDU4Njg1OiBtYW4gcGFnZSBmb3Igc2V0YWNjZXNzIHdhcyBtaXNzaW5nIGEgdG9rZW4gaW4gdGhlIHN1bW1hcnkgbGluZQoKMjAwNi0wNC0xOCAxMDo1OCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggYnVnIDE0NTg4MTg6IGF1dGhjb21tdW5pdHkgYW5kIGZyaWVuZHMgdXNlIC1WIG5vdCAtdiB0byBzcGVjaWZ5IGEgdmlldwoKMjAwNi0wNC0xOCAxMDozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgWyAxMzQxMDk4IF0gRml4IG1pYjJjLm9sZC1hcGkuY29uZiBvaWQgc3VmZml4ZXMsIHN1ZmZpeCBsZW5ndGhzIGZyb20gbnNodWxtYW4KCjIwMDYtMDQtMTggMTA6MzIgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIFN1cHBvcnQgZnVuY3Rpb25zIGZvciBlYXNpZXIgZW1iZWRkZWQgcGVybCBpbnRlZ3JhdGlvbjogWyAxMzY5OTk2IF0gbWliIHRvIHBlcmwgc3VwcG9ydCBieSBQZXRlciBNYXJ0aW4KCjIwMDYtMDQtMTggMTA6MjggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvU3VwcG9ydC8uY3ZzaWdub3JlLAogICAgIHBlcmwvYWdlbnQvU3VwcG9ydC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL2FnZW50L1N1cHBvcnQvU3VwcG9ydC5wbSwgbG9jYWwvbWliMmMucGVybC5jb25mOgoKICAgU3VwcG9ydCBmdW5jdGlvbnMgZm9yIGVhc2llciBlbWJlZGRlZCBwZXJsIGludGVncmF0aW9uOiBbIDEzNjk5OTYgXSBtaWIgdG8gcGVybCBzdXBwb3J0IGJ5IFBldGVyIE1hcnRpbgoKMjAwNi0wNC0xOCAxMDoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgWyAxNDY1NDg1IF0gbmV0c25tcF9jb25maWdfcmVtZW1iZXJfZnJlZV9saXN0IG1lbSBsZWFrIGZyb20gUm9iZXJ0IFdpbGNveAoKMjAwNi0wNC0xOCAwNjo1OCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQLUZPUldBUkQtTUlCLnR4dCwgSVAtTUlCLnR4dCwgcmZjbGlzdAo6CgogICB1cGRhdGUgZnJvbSBuZXdseSBwdWJsaXNoZWQgUkZDcwoKMjAwNi0wNC0xMyAxMzoyNyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgWyAxMzY0MjQ4IF0gQWRkIG5ldC1zbm1wLWNvbmZpZyAtLWNvbXBpbGUtc3ViYWdlbnQgcGFyYW1ldGVyczogZ2VuZXJhbCByZXdvcmsgb2YgdGhlIG1haW4gd3JhcHBlciBmb3IgYXV0by1zdWJhZ2VudHMgZnJvbSBtYWdmcgoKMjAwNi0wNC0xMyAxMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBbIDEzNzE3NzggXSBkaXNrSU9UYWJsZSBjb250YWlucyBpbnZhbGlkIGRhdGEgZm9yIHNvbWUgZGV2aWNlcyBvbiBMaW51eAoKMjAwNi0wNC0xMyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBbIDEzODYyNjQgXSA1LjIuMiAtIGZpeCBMaW51eCBDUFUgY291bnRlcnMgb24gU01QIG1hY2hpbmVzCgoyMDA2LTA0LTEyIDEyOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXggcGFyc2luZyBvZiBhZGRyZXNzZXMgdGhhdCBJIGJyb2tlIHdoZW4gaW1wbGVtZW50aW5nIHBhcnNpbmcgb2YgZml4ZWQtd2lkdGggc3RyaW5ncwoKMjAwNi0wNC0xMiAxMDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBmaXggYSBidWcgcmVwb3J0ZWQgaW4gMTExODgxNCB3aGVyZSBpbml0IGxlbmd0aCB3YXNuJ3QgZ2V0dGluZyBpbml0aWFsaXplZCBwcm9wZXJseQoKMjAwNi0wNC0xMiAwOTo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgZml4ZXMgZm9yIGZpeGVkIGxlbmd0aCBzdHJpbmcgcGFyc2luZwoKMjAwNi0wNC0xMiAwOToyMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzCgoyMDA2LTA0LTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICBmaXhlZCBsZW5ndGggc3RyaW5nIHBhcnNpbmcKCjIwMDYtMDQtMTEgMDQ6MDkgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jOgoKICAgQnVpbGQgZml4IGZvciAiY29uZmlndXJlIC0td2l0aC1vdXQtdHJhbnNwb3J0cz1DYWxsYmFjayIgKGZpeGVzIGZpcnN0IHBhcnQKICAgb2YgYnVnIDE0Njc3MjQpLgogICBXaHkgZG8gdGVzdHMgMjEtMjUgYW5kIDM0LTM1IChhbGwgaW52b2x2aW5nIHNubXB0cmFwZCkgZmFpbCBpbiA1LjMrICh1bmxpa2UKICAgNS4yLngpIGlmIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQgaXNuJ3QgYXZhaWxhYmxlPwoKMjAwNi0wNC0xMCAwNzoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBbIDEzNjQ2NDggXSBGaXggc2VnZmF1bHQgb24gcGVybCBhc3luYyBidWxrd2FsayBmcm9tIE9sZSBCam9ybgoKMjAwNi0wNC0xMCAwNzoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgWyAxNDE1NTg2IF0gNS4zLjAuMSBob3N0L2hyX3N3cnVuLmMgcGF0Y2hlcyBmb3IgQUlYIDQsMy81LjIgZnJvbSBKb2UgQnVlaGxlcgoKMjAwNi0wNC0wOSAyMTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9vcGVuYnNkLmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLCBtaWJJSS9pZlRhYmxlLmgKOgoKICAgWyAxNDI3NzkzIF0gaWYoWClUYWJsZSBpbXBsZW1lbnRhdGlvbiBmb3IgT3BlbkJTRCAzLnggZnJvbSBOb3J0aHRyb04KCjIwMDYtMDQtMDkgMjE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFsgMTQyOTQ1NSBdIGVuZGxlc3MgbG9vcCwgdGFibGVfaXRlcmF0b3IsIDUuMyBmcm9tIEtyaXMgKHRpbmtlcjEwNSkKCjIwMDYtMDQtMDkgMjE6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZmRfZXZlbnRfbWFuYWdlci5jOgoKICAgWyAxNDYwMDgyIF0gW1BBVENIXTogRml4IGV4dGVybmFsIGZkIGhhbmRsaW5nIChhbm9uKQoKMjAwNi0wMy0yNyAxNjo1MiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIHJlbW92ZSAodXNlZnVsKSAiLUNwIC1DdCIgc3RkZXJyIG91dHB1dCBzaW5jZSBpdCBoYXMgYmVlbiBzZWVuIHRvIGludGVyZmVyZSB3aXRoIHRoZSBzdGRvdXQgbWVzc2FnZXMgdG8gYmUgY2hlY2tlZAoKMjAwNi0wMy0yNCAwODo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBSZWNvZ25pc2UgZmFpbGVkL2R1cGxpY2F0ZSByZWdpc3RyYXRpb25zLCBhbmQgZG9uJ3QgcGxvdWdoIG9uIHJlZ2FyZGxlc3MKCjIwMDYtMDMtMjQgMDg6NDMgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgRG9uJ3QgY2hva2Ugb24gU05NUHYyIGV4Y2VwdGlvbnMKICAgKFN0aWxsIG5lZWQgdG8gaGFuZGxlIFNOTVB2MSBlcnJvcnMpCiAgIEZpeCBhIGNvdXBsZSBvZiBtaW5vciBvdXRwdXQgdHlwb3MuCgoyMDA2LTAzLTIzIDE2OjAwICB0YW5kZXJzCgogICAqIG1hbi9taWIyYy5jb25mLjUuaW46CgogICBGaXggc2VjdGlvbiBvZiBtaWIyYy5jb25mLjUgKERlYmlhbiBwYXRjaCAjMTYgZnJvbSA1LjIuMi0zKQoKMjAwNi0wMy0yMyAxMToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgUGF0Y2ggZnJvbSBkYXJpeCB0byBvcHRpb25hbGx5IHR1cm4gb2ZmIGNvbm5lY3Rpb24gbG9nZ2luZyBmb3IgdGNwX3dyYXBwZXJzCgoyMDA2LTAzLTE2IDAxOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIFJvb3Qgc2Vjb25kIG91dHB1dCB0YWJsZSBjb3JyZWN0bHkKCjIwMDYtMDMtMTYgMDE6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBDb3JyZWN0IGxvZ2ljIG9mIHN0YXJ0dXAgdGVzdHMKCjIwMDYtMDMtMTUgMDg6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfc29sYXJpcy5jOgoKICAgRml4IFNDX0FJTkZPIHN3YXBjdGwoKSBjYWxsLgoKMjAwNi0wMy0xNSAwNTo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBSZWNvZ25pc2UgYnVpbHQtaW4gdmVyc3VzIGNvbmZpZy1kZWZpbmVkIG5vdGlmaWNhdGlvbnMsCiAgIGFuZCBzZXQgb3duZXIgYWNjb3JkaW5nbHkuCgoyMDA2LTAzLTEwIDA3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGRvbid0IHVzZSBwZXJmZWN0bHkgbGVnYWwgcGVybCBzdHJ1Y3R1cmVzIGluIEMgY29kZQoKMjAwNi0wMy0wOSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggdHlwb3MKCjIwMDYtMDMtMDkgMTY6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvcmUuYzoKCiAgIGZpeCBzY2hlZHVsZSB0eXBvCgoyMDA2LTAzLTA5IDE0OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmcmVlIG1hbGxvYyBpbiBlcnJvciBjb25kaXRpb24gd2hlbiBkZWNvZGUgZnVuY3Rpb24gbm90IHNwZWNpZmllZAoKMjAwNi0wMy0wOSAxMzo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXB2My5jOgoKICAgZW5zdXJlIHRoYXQgaWYgb3AgPT0gcmVjZWl2ZWQgbWVzc2FnZSB0aGF0IHdlIGhhdmUgYSBQRFUgdG9vIChhbHdheXMgd2lsbCBiZSB0aGUgY2FzZSkKCjIwMDYtMDMtMDkgMTM6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRvbnQgZGVsdmUgaW50byBmdXR1cmUgaWYgc3RhdGVtZW50IHdoZW4gc2Vzc2lvbiBmYWlscyB0byBwcm9iZQoKMjAwNi0wMy0wOSAxMzozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZnJlZSBhIHBkdSBvbiB0aGUgZXJyb3IgY2FzZSBvZiBubyBzZXNzaW9uLi4uCgoyMDA2LTAzLTA5IDEzOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIHJldmVyc2UgYSBwYXRjaCB0aGF0IHdhcyB0cnlpbmcgdG8gZnJlZSBhbiBhcnJheQoKMjAwNi0wMy0wOSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGNvdmVyaXR5IDc1OiBlbnN1cmUgZnJlZSBpbiByYXJlIGNhc2Ugd2hlcmUgb3RoZXIgc2lkZSBvZiB0cmFuc3BvcnQgbm90IGZvdW5kIChzaG91bGRuJ3QgZXZlciBoYXBwZW4pCgoyMDA2LTAzLTA5IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgbWlzYyBlcnJvciBjaGVja2luZyAodW5uZWVkZWQgYnkgb3RoZXIgbG9naWMsIGJ1dC4uLiAgd2h5IG5vdCkKCjIwMDYtMDMtMDkgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgY292ZXJpdHkgMzQ6IGNoZWNrIHRoYXQgdXNtIHdhc24ndCBhY3R1YWxseSBpbGxlZ2FsbHkgcGFzc2VkIGEgbnVsbCBzZXNzaW9uIChzaG91bGQgaGF2ZSBiZWVuIHN0b3BwZWQgbG9uZyBiZWZvcmUgbm93KQoKMjAwNi0wMy0wOSAxMzowMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBjb3Zlcml0eSBtdWx0aXBsZTogY2hlY2sgYSBmZXcgcG9pbnRlcnMgZm9yIG51bGwgcmVmcyBqdXN0IGluIGNhc2UKCjIwMDYtMDMtMDkgMTI6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB0ZXh0X3V0aWxzLmMsIHZhY20uYzoKCiAgIGNvdmVyaXR5IDc5OiBmcmVlIG1lbW9yeSBpbiBlcnJvciBjb25kaXRpb24gc3BvdHMKCjIwMDYtMDMtMDkgMTI6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgYWxsb3cgZm9yIHF1ZXN0aW9uYWJseSBsZWdhbCBudWxsIGNvbW11bml0eSBzdHJpbmdzCgoyMDA2LTAzLTA5IDEyOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjb3Zlcml0eSA2MTogY2hlY2sgcmV0dXJuIHZhbHVlIGZyb20gaW4gdHJlZSB0byBlbnN1cmUgaXQncyBub3QgbmVnYXRpdmUKCjIwMDYtMDMtMDkgMTI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGNvdmVyaXR5IDgwOiBmcmVlIHZibGlzdCBpbiBzb21lIGZhaWx1cmUgY2FzZXMKCjIwMDYtMDMtMDkgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYzoKCiAgIGNvdmVyaXR5IDgzOiBmcmVlIG1lbSBvbiBzaG91bGQtbmV2ZXItZ2V0LWhlcmUgc3BvdAoKMjAwNi0wMy0wOSAxMDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgZnJlZSBtZW1vcnkgb24gb3RoZXIgbWFsbG9jIGZhaWx1cmVzCgoyMDA2LTAzLTA5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgbW9yZSBjb21tYW5kIGxpbmUgZmxhZ3MgZm9yIGZhc3RlciBwYXRjaCBhcHBsaWNhdGlvbgoKMjAwNi0wMy0wOSAxMDoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5jOgoKICAgY2hlY2sgZm9yIG51bGwgb3duZXIgaW4gMiBvdGhlciBzcG90cwoKMjAwNi0wMy0wOSAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgY292ZXJpdHkgOTcvNDg6IGZyZWUgbG9zdCBtZW1vcnkgb24gaWxsZWdhbCB0YWJsZTsgY2hlY2sgZm9yIG51bGwgdGhhdCBzaG91bGRuJ3QgZXZlciBiZQoKMjAwNi0wMy0wOSAxMDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgY292ZXJpdHkgOTY6IGZpeCBwb3RlbnRpYWwgbGVhayB3aGVuIG1hbGxvYyBmYWlscwoKMjAwNi0wMy0wOSAxMDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jOgoKICAgZnJlZSBhIGhhbmRsZXIgaWYgYSBzdWJzZXF1ZW5jZSBtYWxsb2MgZmFpbHMKCjIwMDYtMDMtMDkgMDk6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGNvdmVyaXR5IDk4LTEwMDogZnJlZSBzdWNjZXNzIG1hbGxvY3Mgd2hlbiBvbmUgZmFpbHMKCjIwMDYtMDMtMDkgMDk6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgY292ZXJpdHkgMTAyLzEwMTogaW4gY2FzZSBvZiBtYWxsb2MgZmFpbHVyZXMgZnJlZSB3aGF0IHlvdSBoYXZlIHN1Y2NlZWQgaW4gbWFsbG9jaW5nCgoyMDA2LTAzLTA5IDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jOgoKICAgZG91YmxlIGNoZWNrIHRoYXQgbmV2ZXItc2hvdWxkLWJlLW51bGwgY29uZGl0aW9ucyBhcmUgdHJ1ZQoKMjAwNi0wMy0wOSAwOTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBjb3Zlcml0eSA5MTogZnJlZSB2YXJpb3VzIG1lbW9yeSBhbGxvY2F0aW9ucyB3aGVuIHN1YnNlcXVlbnQgYWxsb2NhdGlvbnMgZmFpbAoKMjAwNi0wMy0wOSAwOTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGNvdmVyaXR5ICM0MTogbm90IGxpa2VseSBhIHJlYWwgbnVsbCBkZXJlZiBmb3IgdmFsaWQgdXNlIGNhc2VzOyBjYXNlcy4gIGRvdWJsZSBjaGVjayBmb3IgaXNzdWVzIGFueXdheQoKMjAwNi0wMy0wOSAwOToyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBGdWxsZXIgaW1wbGVtZW50YXRpb24gb2YgbWVtb3J5IEhBTCBmb3IgU29sYXJpcyAoMTAgYXQgbGVhc3QpCgoyMDA2LTAzLTA5IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIGNvdmVyaXR5IDUwOiBkb3VibGUgY2hlY2sgd2UgY291bGQgZmluZCB0aGUgZXh0ZW5zaW9uIHRvIHJlbW92ZQoKMjAwNi0wMy0wOSAwODozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBjb3Zlcml0eSA1MTogZG91YmxlIGNoZWNrIHdlIGNvdWxkIGZpbmQgdGhlIGV4dGVuc2lvbiB0byByZW1vdmUKCjIwMDYtMDMtMDkgMDg6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgZW5zdXJlIGlsbGVnYWwgY29uZmlndXJhdGlvbiBvZiB0b28gbG9uZyBPSURzIGRvZXNuJ3Qgb2NjdXIKCjIwMDYtMDMtMDkgMDg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBjb3Zlcml0eSA2NjogY2hlY2sgdGhhdCBudWxsIGlzbid0IHdyaXR0ZW4gYmV5b25kIGVuZAoKMjAwNi0wMy0wOSAwODoxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgY292ZXJpdHkgNjc6IGVuc3VyZSB3ZSBkb24ndCB3cml0ZSB0aGUgbnVsbCBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyCgoyMDA2LTAzLTA5IDA4OjA3ICBoYXJkYWtlcgoKICAgKiBkaXN0L3BhdG1lOgoKICAgYSBzY3JpcHQgdG8gaGVscCBhdXRvbWF0dGVkIHBhdGNoIG1hbmFnZW1lbnQgYW5kIGFwcGx5IHBhdGNoZXMgdG8gbXVsdGlwbGUgYnJhY2hlcyBvZiB0aGUgbmV0LXNubXAgdHJlZQoKMjAwNi0wMy0wOSAwODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBjb3Zlcml0eSA5MjogZnJlZSBkYXRhIHN0cnVjdHVyZSBpbiBldmVudCBzb21laG93IGFuIHVuc3VwcG9ydGVkIGRhdGEgdHlwZSBpcyBwYXNzZWQgaW4gKGNhbid0IGFjdHVhbGx5IGhhcHBlbiB3aXRoIGN1cnJlbnQgY29kZSkKCjIwMDYtMDMtMDkgMDg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jOgoKICAgY292ZXJpdHkgOTM6IGZyZWUgcG9pbnRlcnMgd2hlcmUgbWFsbG9jIHN1Y2NlZWRlZCBpZiBpdCBzdWRkZW5seSBzdG9wcGVkIHN1Y2NlZWRpbmcKCjIwMDYtMDMtMDkgMDc6MzMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICB0eXBvCgoyMDA2LTAzLTA5IDA3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgY292ZXJpdHkgIzEwNTogZnJlZSBzdG9yYWdlIGluIGVycm9yIGxvb3AKCjIwMDYtMDMtMDggMjE6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGNvdmVyaXR5IDUyOiByYXJlIChuZXZlcikgZGVyZWZlcmVuY2UgaW4gaWxsZWdhbCBjb2RlIGNhc2VzLgoKMjAwNi0wMy0wOCAyMTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjb3Zlcml0eSAxMDY6IHJhcmUgbWVtb3J5IGxlYWsgb24gaWxsZWdhbCBhZ2VudHggcGR1J3MgYmVpbmcgcGFzc2VkIHRvIHRoZSBjbGllbnQKCjIwMDYtMDMtMDggMjE6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnBfbGludXguYzoKCiAgIGNvdmVyaXR5IDExMjogY2xvc2UgZmlsZSBoYW5kbGUgZm9yIC9wcm9jL25ldC9hcnAKCjIwMDYtMDMtMDggMjE6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgY292ZXJpdHkgYnVnICMxMTM6IGZjbG9zZSBhbiBvcGVuIGZpbGUgZGVzY3JpcHRvciBpbiBlcnJvciBsb29wCgoyMDA2LTAzLTA4IDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICBjb3Zlcml0eSBidWcgIzUzOiBjaGVjayB0aGF0IGNsb3NlX2FnZW50eF9zZXNzaW9uIHdhc24ndCBwYXNzZWQgYSBOVUxMIHNlc3Npb24KCjIwMDYtMDMtMDggMTY6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGNvdmVyaXR5ICMxMDc6IGZpeCByYXJlIHBkdSBtZW1vcnkgbGVhayB3aGVuIGZ1bmN0aW9uIGNhbGxlZCBpbGxlZ2FseQoKMjAwNi0wMy0wOCAxNjowMyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgKmF0IGxlYXN0KiBpc3N1ZSBhIFdBUk5JTkcgaWYgd2UnbGwgY3JlYXRlIG5vbi1wb3J0YWJsZSB0YXIgYXJjaGl2ZXMganVzdCBiZWNhdXNlIHRoZSByZWxlYXNlIG1hbmFnZXIgZmFpbGVkIHRvIGluc3RhbGwgc3Rhci4KCjIwMDYtMDMtMDggMTU6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTA4OiBzdGlsbCBzaG91bGQgZnJlZSBtZW1vcnkgaW4gdGhlIG5ldmVyLXNob3VsZC1oYXBwZW4gY2FzZQoKMjAwNi0wMy0wOCAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBjb3Zlcml0eSAjMTA5OiBjbG9zZSBmaWxlIHBvaW50ZXIgaW4gZXJyb3IgY29uZHRpb25zIHRvIGF2b2lkIHBvdGVudGlhbCByYXJlIGxlYWtzCgoyMDA2LTAzLTA4IDE1OjEwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgY292ZXJpdHkgYnVnIDg1LCByMTU6IGZpeCBwb3RlbnRpYWwgbWVtb3J5IGxlYWsKCjIwMDYtMDMtMDggMTQ6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICAtIGNvdmVyaXR5IGJ1ZyA0MCwgcnVuIDE1OiBmaXggcG90ZW50aWFsIG51bGwgZGVyZWZlcmVuY2UKICAgLSBtaXNjIG90aGVyIGNsZWFudXAvZXJyb3IgaGFuZGxpbmcKICAgICAtIHJlbGVhc2UgbWVtb3J5IHRoYXQgd29uJ3QgYmUgdXNlZCBiZWZvcmUgcmV0dXJuaW5nIGVycm9ycwogICAgIC0gY2hlY2sgZm9yIHBvdGVudGlhbCBudWxsIHJldHVybiBmcm9tIGZ1bmN0aW9uCiAgICAgLSBhc3NpZ24gdmFsdWVzIHRvIGNvcnJlY3QgdmFyaWFibGUKCjIwMDYtMDMtMDggMTQ6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBjb3Zlcml0eSBidWcgIyAxMjk6IGNoZWNrIHNlc3Npb24gb3BlbiByZXN1bHRzIHdoZW4gZm9yd2FyZGluZyBhbmQgYmFpbCBpZiBmYWlsZWQgdG8gb3BlbgoKMjAwNi0wMy0wOCAxNDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIGNoZWNrIGZvciBudWxsIGJlZm9yZSBkZXJlZmVyZW5jaW5nCgoyMDA2LTAzLTA4IDE0OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIDExNTogY2hlY2sgZm9yIG1hbGxvYyBmYWlsdXJlIGJlZm9yZSB1c2luZyB0aGUgcmVzdWx0cwoKMjAwNi0wMy0wOCAxMzo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjIDExNjogY2hlY2sgKGFueXdheSkgZm9yIG51bGwgaW4gdmFyaWFibGVzIHRoYXQgc2hvdWxkIG5ldmVyIGJlIG51bGwKCjIwMDYtMDMtMDggMTM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTE3OiBkb3VibGUgY2hlY2sgdGhhdCBwb2ludGVyIGlzbid0IG51bGwgZm9yIHNhZmUgcHJvZ3JhbW1pbmcgKHNob3VsZCBuZXZlciBoYXBwZW4pCgoyMDA2LTAzLTA4IDEzOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICBjb3Zlcml0eSBidWcgIzExODogZG91YmxlIGNoZWNrIHRoYXQgcG9pbnRlciBpc24ndCBudWxsIGZvciBzYWZlIHByb2dyYW1taW5nIChzaG91bGQgbmV2ZXIgaGFwcGVuKQoKMjAwNi0wMy0wOCAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTIwOiBhdm9pZCBhIHBvc3NpYmxlIGRlZmVyZW5jZSB0byBhIGZyZWVkIHZhcmlhYmxlCgoyMDA2LTAzLTA4IDEzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBjb3Zlcml0eSBidWcgIzEyMjogcmV0dXJuIE5VTEwgYWZ0ZXIgZmFpbGluZyB0byBvcGVuIHRyYW5zcG9ydC4KCjIwMDYtMDMtMDggMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTIzOiBhdm9pZCBkb3VibGUgZnJlZSBmb3IgbG9uZyBPSUQgY2FzZXMgZHVyaW5nIGdldG5leHQKCjIwMDYtMDMtMDggMTA6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hlY2sgZm9yIHN0YXIgYmVmb3JlIHVzaW5nCgoyMDA2LTAzLTA4IDEwOjQ4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHVzZSBzdGFyIGlmIGF2YWlsYWJsZQoKMjAwNi0wMy0wOCAwNjo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBhIHZlcnkgcmFyZSBvaWQgcGFyc2luZyBidWcgZm9yIHN0cmluZ3MgaW4gdHJ1bmNhdGVkIE9JRHMKCjIwMDYtMDMtMDggMDY6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfd2luLmM6CgogICBXaW5kb3dzIHZlcnNpb24gb2YgbWVtb3J5IEhBTCBpbnRlcmZhY2UKCjIwMDYtMDMtMDggMDY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgRXh0cmEgcHJvdGVjdGlvbiB3aGVuIGNvbXBpbGluZyB1bmRlciBXaW5kb3dzCgoyMDA2LTAzLTA3IDIyOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTA0OiByYXJlIGNhc2UgbWVtb3J5IGxlYWsgaWYgeW91J3JlIG91dCBvZiBtZW1vcnkgaW4gdGhlIGZpcnN0IHBsYWNlCgoyMDA2LTAzLTA3IDIyOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGNvdmVyaXR5IGJ1Z3MgIzExOSBpbml0aWFsaXplIDIgcG9pbnRlcnMgdG8gMAoKMjAwNi0wMy0wNyAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBjb3Zlcml0eSBidWcgIzEzMjogZnJlZSB2YXJpb3VzIHBvaW50ZXJzIGluIGVycm9yIGxvb3BzCgoyMDA2LTAzLTA3IDIyOjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIGNvdmVyaXR5IGJ1ZyAjMTMzOiBmcmVlIGtleSBhZnRlciBtYWxsb2MgaW4gZXhpdCBsb29wIGFmdGVyIG9wZW5zc2wgZmFpbGVkCgoyMDA2LTAzLTA3IDIyOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBjb3Zlcml0eSBidWcgIzEzNDogZnJlZSBuZXdwZHUgZHVyaW5nIGEgdmFjbS1ub3QtY29uZmlndXJlZCBiYWlsLW91dAoKMjAwNi0wMy0wNiAwODoyMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L2h3X21lbS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfYWl4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9kYXJ3aW4uYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2R5bml4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9mcmVlYnNkLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbmV0YnNkLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9zb2xhcmlzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9oYXJkd2FyZS9tZW1vcnkuaDoKCiAgIFVwZGF0ZSBNZW1vcnkgSEFMIGZyYW1ld29yayB0byBzdXBwb3J0IEhvc3RSZXMgc3RvcmFnZQogICBpbmZvcm1hdGlvbiwgYW5kIHR3ZWFrIGhyU3RvcmFnZVRhYmxlIGltcGxlbWVudGF0aW9uIHRvIHVzZSBpdC4KICAgVGhpcyBoYXMgYmVlbiB0ZXN0ZWQgb24ge0ZyZWUsTmV0LE9wZW59QlNELCBMaW51eCBhbmQgSFAtVVguCiAgIEl0J3MgcHJvYmFibHkgc3RpbGwgYnJva2VuIG9uIEFJWCwgRGFyd2luLCBEeW5peCBhbmQgU29sYXJpcwogICAoYW5kIGFueSBzeXN0ZW0gbm90IGV4cGxpY2l0bHkgbWVudGlvbmVkPykKCjIwMDYtMDMtMDYgMDM6NTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgRml4IHJldHJpZXZhbCBvZiBmaWxlc3lzdGVtIGluZm9ybWF0aW9uIG9uIE5ldEJTRAoKMjAwNi0wMy0wNiAwMzozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFN1cHBvcnQgVUNEIG1lbW9yeS9jcHUgTUlCcyBvbiBPcGVuQlNEIDMueAoKMjAwNi0wMi0yNyAwNDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIFR3ZWFrIFVDRCBtZW1vcnkgY29uZmlndXJlIHByb2Nlc3NpbmcgdG8gd29yayB3aXRoIHRoZSBtb3N0IHJlY2VudAogICBPcGVuQlNEIGFuZCBOZXRCU0QgcmVsZWFzZXMsIGFuZCB0byB1c2UgdGhlIG1lbW9yeSBIQUwKCjIwMDYtMDItMjcgMDQ6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS5oOgoKICAgVHdlYWsgbWVtb3J5IEhBTCBjb25maWd1cmUgcHJvY2Vzc2luZyB0byB3b3JrIHdpdGggdGhlIG1vc3QgcmVjZW50CiAgIE9wZW5CU0QgYW5kIE5ldEJTRCByZWxlYXNlcwoKMjAwNi0wMi0yNyAwNDoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LzogbWVtb3J5X2ZyZWVic2QuYywKICAgICBtZW1vcnlfbmV0YnNkLmM6CgogICBGaXggcHJvYmxlbXMgd2l0aCBtZW1vcnkgSEFMIGNvZGUgb24gKkJTRCBzeXN0ZW1zCgoyMDA2LTAyLTI3IDA0OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeS5jLCBtZW1vcnkuaDoKCiAgIFVwZGF0ZSBVQ0QgbWVtb3J5IGdyb3VwIHRvIG1ha2UgcHJvcGVyIHVzZSBvZiBtZW1vcnkgSEFMIHJvdXRpbmVzCgoyMDA2LTAyLTI3IDA0OjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL21lbW9yeS5oOgoKICAgVXBkYXRlIGRlZmluaXRpb25zIHRvIG1hdGNoIG5ldyBtZW1vcnkgSEFMIGNvZGUKCjIwMDYtMDItMjQgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvbWVtb3J5LmMsCiAgICAgdWNkLXNubXAvbWVtb3J5Lmg6CgogICBVc2UgbWVtb3J5IEhBTCBmb3IgdGhlIFVDRCBtZW1vcnkgZ3JvdXAgKGFsbCBhcmNoaXRlY3R1cmVzKS4KICAgVGhpcyB3aWxsIHByb2JhYmx5IGJyZWFrIHRoZSBhZ2VudCBvbiBhbGwgYmFyIExpbnV4IHN5c3RlbXMKICAgYW5kIG1ha2UgZXZlcnlvbmUgKGluY2x1ZGluZyBUaG9tYXMpIHVuaGFwcHkuCiAgIFNvIHRoZSBjeWNsZSBvZiBsaWZlIGNvbnRpbnVlcy4gIE9oIEZvcnR1bmEuLi4uCgoyMDA2LTAyLTI0IDA4OjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IG1lbW9yeS5oLCBtZW1vcnkvbWVtb3J5X2FpeC5jCiwgbWVtb3J5L21lbW9yeV9kYXJ3aW4uYywgbWVtb3J5L21lbW9yeV9keW5peC5jLAogICAgIG1lbW9yeS9tZW1vcnlfZnJlZWJzZC5jLCBtZW1vcnkvbWVtb3J5X2hwdXguYywKICAgICBtZW1vcnkvbWVtb3J5X2xpbnV4LmMsIG1lbW9yeS9tZW1vcnlfbmV0YnNkLmMsCiAgICAgbWVtb3J5L21lbW9yeV9zb2xhcmlzLmM6CgogICBFeHRlbmQgbWVtb3J5IEhBTCB0byBjb3ZlciBhbGwgKHdlbGwsIG1vc3QpIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLgogICBOb3QgeWV0IHRlc3RlZCBvbiBtb3N0IG9mIHRoZXNlIHN5c3RlbXMsIHNvIHRoZXJlIG1heSBlYXNpbHkgYmUgcHJvYmxlbXMuCiAgIEJ1dCBhdCBsZWFzdCB0aGlzIHNob3VsZCBzZXJ2ZSB0byBrZWVwIFRob21hcyBoYXBweS4uLi4KCjIwMDYtMDItMjIgMDg6NTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByLzogZXhwRXJyb3JUYWJsZS5jLAogICAgIGV4cEV4cHJlc3Npb24uYywgZXhwRXhwcmVzc2lvbi5oLCBleHBFeHByZXNzaW9uQ29uZi5jCiwgZXhwRXhwcmVzc2lvbkNvbmYuaCwgZXhwRXhwcmVzc2lvblRhYmxlLmMsCiAgICAgZXhwT2JqZWN0LmMsIGV4cFZhbHVlLmMsIGV4cFZhbHVlLmgsCiAgICAgZXhwVmFsdWVUYWJsZS5jLCBleHBfZW51bS5oOgoKICAgSW1wcm92ZWQgZXhwcmVzc2lvbiBwYXJzaW5nLCBhbmQgcHJlbGltaW5hcnkgZXZhbHVhdGlvbiBvZiBleHByZXNzaW9ucy4KCjIwMDYtMDItMjAgMTU6NDQgIHRhbmRlcnMKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBSZW1vdmUgaGlzdG9yaWMgcmVmZXJlbmNlcyB0byB0YXIgcHJvYmxlbXMgKGF0IGV2ZW4gbW9yZSBwbGFjZXMpCgoyMDA2LTAyLTIwIDE1OjM4ICB0YW5kZXJzCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgUmVtb3ZlIGhpc3RvcmljIHBhcmFncmFwaCBvbiB0YXIgcHJvYmxlbXM6LSkKCjIwMDYtMDItMjAgMTU6MjIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIChmdXJ0aGVyKSBjbGFyaWZ5IHRoZSBvcmlnaW5hbCBHTlUgdGFyIHByb2JsZW1zCgoyMDA2LTAyLTIwIDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgdXNlIHN0YXIgaW5zdGVhZCBvZiB0YXIgZm9yIGNyZWF0aW5nIGFyY2hpdmVzIHRvIGdldCBhcm91bmQgZ251IHRhciBpbmNvbXBhdGliaWxpdGllcwoKMjAwNi0wMi0xNyAwNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgIC1maXggYnVnIDEzOTk0MjE6IDUuMis6IHR1bm5lbCBtaWIgZmFpbHMgdG8gYnVpbGQgdy8gaWYtbWliIHJld3JpdGUKCjIwMDYtMDItMTYgMTU6MTkgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCBUMDQ5c25tcHYzaW5mb3JtCiwgVDA0OXNubXB2M2luZm9ybWF1dGgsIFQwNDlzbm1wdjNpbmZvcm1wcml2LAogICAgIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDU3dHJhcGRhdXRodGVzdCwKICAgICBUMDU3dHJhcGRhdXRodGVzdDIsIFQwNTd0cmFwZGF1dGh0ZXN0MywKICAgICBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgYWRkICItdCAkU05NUF9TTEVFUCIgdG8gc25tcGluZm9ybSBpbiBvcmRlciB0byBhdm9pZCB0ZXN0IGZhaWx1cmVzIG9uIHNsb3cgbWFjaGluZXMgZXZlbiB3aXRoIGFuIGluY3JlYXNlZCBTTk1QX1NMRUVQIChmaXhlcyBidWcgMTQwMzY4OCkKCjIwMDYtMDItMTUgMTY6MjcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgICBUMDU2YWdlbnR2MmNtaW50cmFwOgoKICAgZG9uJ3QgbGV0IHNubXB0cmFwZCBvcGVuIHN5c3RlbSBhZ2VudHggc29ja2V0IGR1cmluZyB0ZXN0aW5nIChzZWUgYnVnIDE0MjQyOTMpCgoyMDA2LTAyLTE1IDE2OjAyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtLCBUMDQ5c25tcHYzaW5mb3JtYXV0aAosIFQwNDlzbm1wdjNpbmZvcm1wcml2LCBUMDUwc25tcHYzdHJhcCwKICAgICBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDUzYWdlbnR2MXRyYXAKLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLAogICAgIFQwNTd0cmFwZGF1dGh0ZXN0LCBUMDU3dHJhcGRhdXRodGVzdDIsCiAgICAgVDA1N3RyYXBkYXV0aHRlc3QzLCBUMDU4YWdlbnRhdXRodHJhcCwKICAgICBUMDU5dHJhcGR0cmFwaGFuZGxlLCBUMDYwdHJhcGRwZXJsOgoKICAgZG9uJ3QgbGV0IHNubXB0cmFwZCBvcGVuIHN5c3RlbSBhZ2VudHggc29ja2V0IGR1cmluZyB0ZXN0aW5nIChzZWUgYnVnIDE0MjQyOTMpCgoyMDA2LTAyLTE1IDEwOjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGdldHRhYmxlOiAgZml4IHJlcGVhdCBjb3VudCBmb3IgU05NUHYxICYgZml4IC1jb2x1bW5zIHRvIGFjdHVhbGx5IHdvcmsKCjIwMDYtMDItMTQgMDY6NDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfY29uc3RhbnRzLmg6CgogICBSZWdpc3RlciBpZk51bWJlciBhcyBhIHNjYWxhciBvYmplY3QsIG5vdCBhbiBpbnN0YW5jZSwgc28gdGhhdAogICBpdCBoYW5kbGVzIGludmFsaWQgaW5zdGFuY2VzIHByb3Blcmx5LCBhbmQgZml4IE9JRCByZWdpc3RyYXRpb24uCgoyMDA2LTAyLTEzIDE3OjQyICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyOgoKICAgVXBkYXRlIFBTREsgZG93bmxvYWQgaW5zdHJ1Y3Rpb25zLgoKMjAwNi0wMi0xMyAxNTo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfY29uc3RhbnRzLmg6CgogICBmaXggYnVnIDEzOTkzNjk6IGlmTnVtYmVyIGJyb2tlbgoKMjAwNi0wMi0xMyAxMDo0OSAgdGFuZGVycwoKICAgKiBORVdTOgoKICAgYWRkIDUuMy4wLjEgc2VjdXJpdHkgZml4IGFuZCBzbXV4IHRyYXAgcGF0Y2gKCjIwMDYtMDItMTMgMTA6MzIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBmaXggdHJhcCBwcm9jZXNzaW5nIGZyb20gU01VWCBwZWVycyAocGF0Y2ggMTQzMDgyNCBmcm9tIERlbGwsIHN1Ym1pdHRlZCBieSBTdVNFKQoKMjAwNi0wMi0xMyAwNzo0MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgaW5jcmVhc2UgbnVtYmVyIG9mIHJldHJpZXMgZm9yIHBvcnQgcHJvYmluZyB0byBsb3dlciB0aGUgY2hhbmNlIGZvciBzcHVyaW91cyB0ZXN0IGZhaWx1cmVzCgoyMDA2LTAyLTExIDE1OjM0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OXRyYXBkdHJhcGhhbmRsZToKCiAgIHNldCBwZXJzaXN0ZW50RGlyIGZvciBzbm1wdHJhcGQgaW4gb3JkZXIgdG8gYXZvaWQgYmVpbmcgaW52YXNpdmUgKHNlZSBidWdzIDE0MDM2ODgsIDE0MjQyOTMpCgoyMDA2LTAyLTEwIDE1OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIGhlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgICAgaGVscGVycy9pbnN0YW5jZS5jOgoKICAgLSBhIHRhbmdsZWQgd2ViIG9mIGZpeGVzIGZvciBvdmVycmlkZQogICAgIC0gYmFjayBvdXQgZml4IGZvciA3MTE0NjU6IG92ZXJyaWRlIGRpcmVjdGl2ZSBpZ25vcmVkIHdpdGggc25tcGJ1bGtnZXQKICAgICAtIGFwcGx5IG5ldyBmaXhlcyBmb3IgNzExNDY1IChzZWUgYnVnIHJlcG9ydCBmb3IgZ29yeSBkZXRhaWxzKQogICAgIC0gYWxzbyBmaXggb3ZlcnJpZGUgb2YgdGFibGUgaW5zdGFuY2UsIHJlcG9ydGVkIG9uIGNvZGVycwogICAtIGFuZCwgcXVvdGluZyBEYXZlOgoKICAgSSdtIG5vdCBhdCBhbGwgc3VyZSB0aGF0IHRoaXMgaXMgbmVjZXNzYXJpbHkgdGhlIGNvcnJlY3QgZml4LCBidXQKICAgaXQgd2Fzbid0IHZlcnkgY2xlYXIgYXMgdG8gZXhhY3RseSB3aGF0IGlzIGJlaW5nIGhhbmRsZWQgaGVyZS4KICAgVGhpcyBjaGFuZ2UgY2VydGFpbmx5IGFkZHJlc3NlcyB0aGUgYWJvdmUgYnVnIHJlcG9ydCwgd2l0aG91dAogICBzZWVtaW5nIHRvIGJyZWFrIGFueXRoaW5nIGVsc2UuCgogICBMZXQncyBnaXZlIHRoaXMgcGF0Y2ggdGltZSB0byBzZXR0bGUgaW50byB0aGUgbWFpbiBkZXZlbG9wbWVudCBjb2RlLAogICBhbmQgdGhlbiBjb25zaWRlciBiYWNrLXBvcnRpbmcgaXQgdG8gZWFybGllciBsaW5lcy4uLi4uCgoyMDA2LTAyLTA2IDE1OjM2ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIGNoZWNrcyBmb3IgInN0cnVjdCBubGlzdDY0Iiwgb2ZmNjRfdCBhbmQgbHNlZWs2NCAoZm9yIElSSVggYW5kIGZyaWVuZHMpCgoyMDA2LTAyLTA0IDE0OjMyICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGZhaWwgIm1ha2UiIG9uIFNOTVBfRVJSX05PRVJST1IKCjIwMDYtMDItMDMgMTc6MzIgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGJhY2tpbmcgb3V0IHByZXZpb3VzIHBhdGNoICh3aGljaCBicmVha3MgdGVzdCAjMjQgIlNOTVB2MyB0cmFwcyByZWNlaXZlZCBhbmQgc2VudCBieSB0b29scyIpIHVudGlsIHNvbWVvbmUgZmluZHMgdGhlIHRpbWUgdG8gcmV2aWV3IGl0IGFnYWluCgoyMDA2LTAyLTAzIDE2OjM2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlndHJhcGQ6CgogICBmaXggdHlwbwoKMjAwNi0wMi0wMiAxOTozMSAgYWxleF9iCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggZm9yIGJ1ZyAxNDIwNzU4LiAgTWlzc2luZyBjYWxsICh0eXBvPykgZm9yIEZEX1pFUk8oJmV4Y2VwdGZkcykuCgoyMDA2LTAyLTAyIDE0OjA4ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gdXNlIHRyZWVfaGVhZCBpZiB0cmVlX3RvcCB3YXMgTlVMTC4gaGFuZGxlcyBib3RoIE9JRCBhbmQgbmFtZSBsb29rdXBzCgoyMDA2LTAyLTAxIDE4OjU4ICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGxtU2Vuc29ycy5jLCBsbVNlbnNvcnMuaDoKCiAgIGluY29ycG9yYXRlIG1ham9yIHBhdGNoZXMgYnkgTWlrZSBGaXNoZXIgYW5kIFRvbSBFLiBMYWNrbGV5CgoyMDA2LTAyLTAxIDA5OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcmV2ZXJ0IGNoYW5nZXMgZnJvbSB2ZXJzaW9uIDUuODgsIHdoaWNoIGJyb2tlIHBhcnNpbmcgZnVsbHkgcXVhbGlmaWVkCiAgICAgbmFtZWQgT0lEcyAoZWcgLmlzby5vcmcpLiBBbm90aGVyIGZpeCBmb3IgcGFyc2luZyBudW1lcmljIE9JRHMgYmVmb3JlCiAgICAgTUlCIGZpbGVzIGFyZSBsb2FkZWQgbmVlZHMgdG8gYmUgaW52ZXN0aWdhdGVkLgoKMjAwNi0wMS0zMSAxMDozMSAgdGFuZGVycwoKICAgKiBtYW4vOiBtaWIyYy5leHRyYWN0LnBsLCBzbm1wbmV0c3RhdC4xLmRlZjoKCiAgIGZpeCBtYW51YWwgcGFnZSBmb3JtYXR0aW5nIGVycm9ycyAoRGViaWFuIHBhdGNoICMxNywgb3JpZ2luYWwgYXV0aG9yIE5pY29sYXMgRnJhbmNvaXMpCgoyMDA2LTAxLTMxIDA5OjI3ICBhbGV4X2IKCiAgICogd2luMzIvbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgRml4IEJlZ2luIHNvdXJjZSAvIGVuZCBzb3VyY2UgbGluZXMuICBCdWcgMTQwNDQwMi4KCjIwMDYtMDEtMzEgMDQ6NTEgIGR0czEyCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHVzbS5jCjoKCiAgIEZpeCBhc3NvcnRlZCBzaWduZWRuZXNzIG1pc21hdGNoZXMuCgoyMDA2LTAxLTMxIDA0OjEwICBkdHMxMgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgICAgc25tcFVEUERvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsCiAgICAgdG9vbHMuYzoKCiAgIEZpeCBhc3NvcnRlZCBzaWduZWRuZXNzIG1pc21hdGNoZXMuCgoyMDA2LTAxLTMwIDA0OjA3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc2NhcGkuYywgc25tcHYzLmM6CgogICBGaXggYXNzb3J0ZWQgdW5zaWduZWQgY29tcGFyaXNvbnMgYWdhaW5zdCAwLiAgKFNlZSBCdWcgIzEzOTc4OTEpCgoyMDA2LTAxLTMwIDAzOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBDb3JyZWN0IGltcHJvcGVyIHVzZSBvZiAnbmV0c25tcF9oZXhfdG9fYmluYXJ5JwogICAoTXkgbWlzdGFrZSwgbm90IFJhZGVrJ3MpCgoyMDA2LTAxLTMwIDAzOjE4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBIYW5kbGUgZnVsbC1sZW5ndGggSVB2NiBhZGRyZXNzZXMuICBGaXggc3VwcGxpZWQgYnkgUmFkZWsgVm9r54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOOAlQoKMjAwNi0wMS0zMCAwMTo1MiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIERvbid0IHNhdmUgcGVyc2lzdGVudCBjb25maWd1cmF0aW9uIHVudGlsIHJ1bm5pbmcgdXNlci9ncm91cCBoYXZlIGJlZW4KICAgcmVzZXQuICBCYXNlZCBvbiBwYXRjaCAjMTM3MTA3OC4KCjIwMDYtMDEtMzAgMDE6NDUgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFVwZGF0ZSBoYW5kbGluZyBvZiBlbmRPZk1pYlZpZXcgZXhjZXB0aW9ucy4gIFBhdGNoICMxMDQ3NzA2CgoyMDA2LTAxLTMwIDAxOjM1ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTdXBwb3J0IGZvciByZWFkaW5nL3N0b3JpbmcgSVAgYWRkcmVzcyB2YWx1ZXMuICBFeHBhbmRlZCBmcm9tIHBhdGNoICMxMDc3MDAKCjIwMDYtMDEtMzAgMDE6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIERvbid0IHJlbGVhc2UgdGhlIHJlc3BvbnNlIFBEVSBwcmVtYXR1cmVseSwgYmVmb3JlIHRyeWluZyB0bwogICBleHRyYWN0IE9JRHMgZnJvbSBpdC4gIFBhdGNoICMxMjc3NTA4LgoKMjAwNi0wMS0zMCAwMToyNiAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGZpeCBQQVRIIHR5cG8KCjIwMDYtMDEtMjcgMTE6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuaCwKICAgICBpZlRhYmxlX2ludGVyZmFjZS5jOgoKICAgZG8gdW5kbyByZWYgY291bnQgdmlhIHJvd3JlcV9jdHgsIG5vdCBkYXRhX2xpc3QKCjIwMDYtMDEtMjcgMDk6MjYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBwZXJsL1NOTVAvU05NUC54cwosIHNubXBsaWIvc25tcF9hcGkuYywgcGVybC9TTk1QL1NOTVAucG06CgogICBIYW5kbGUgbm9uLWluY3JlYXNpbmcgT0lEcyBkdXJpbmcgYSAocGVybCkgYnVsa3dhbGsuCiAgIFBhdGNoICMxMzY0NjUwIGZyb20gT2xlIEJq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAj7HniK31gJGL772k9YCMtOWXt24gSGVzc2VuCgoyMDA2LTAxLTI3IDAzOjA3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBIYW5kbGUgbWlzc2luZyB2YWx1ZXMgbW9yZSBncmFjZWZ1bGx5LgoKMjAwNi0wMS0yNiAwOTowMiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpLAogICAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLCBtZmQtdG9wLm0yYwo6CgogICBBcHBseSBQYXRjaCAjMTM5NDA2OCB0byBNZkQgZ2VuZXJhdGVkIHRlbXBsYXRlcy4KCjIwMDYtMDEtMjUgMDg6MjUgIGR0czEyCgogICAqIGRveHlnZW4uY29uZiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgICBhZ2VudC9vYmplY3RfbW9uaXRvci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYwosIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jCiwgYWdlbnQvaGVscGVycy9zY2FsYXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jCiwgYWdlbnQvaGVscGVycy9zdGFzaF9jYWNoZS5jLAogICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywKICAgICBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zucy5jLAogICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NQcmVmaXhUYWJsZS9pcEFkZHJlc3NQcmVmaXhUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYwosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9saW51eC5jCiwgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGUuYwosIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi9jYWxsYmFjay5jCiwgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLCBzbm1wbGliL2RhdGFfbGlzdC5jCiwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvaW50NjQuYywKICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL29pZF9zdGFzaC5jLAogICAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvdGV4dF91dGlscy5jLAogICAgIHNubXBsaWIvdG9vbHMuYzoKCiAgIENvbXByZWhlbnNpdmUgcmV2aWV3IG9mIGluLWxpbmUgZG9jdW1lbnRhdGlvbi4KICAgQSBtb3N0IGltcHJlc3NpdmUgZWZmb3J0IGJ5ICBOYXppbSBCYWl6aWQgIChQYXRjaCAjMTM5NDA2OCkKCjIwMDYtMDEtMjUgMDc6MzcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBEb24ndCBiZSBpbiBzdWNoIGEgcnVzaCB0byByZWxlYXNlIE1JQiByZWdpc3RyYXRpb24gc3RydWN0dXJlLgogICBTZWUgUGF0Y2ggIzEzODY1MjgKCjIwMDYtMDEtMjUgMDc6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBBZGRpdGlvbmFsIGRlYnVnZ2luZyBpbmZvCgoyMDA2LTAxLTI0IDA4OjIxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZWxlYXNlIG1lbW9yeSBiZWZvcmUgcmUtYWxsb2NhdGluZyBpdC4gIFNlZSBQYXRjaCAjMTQwNzE3MwoKMjAwNi0wMS0yNCAwODowMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBJbXByb3ZlZC9maXhlZCBwZXJsIHdhcm5pbmdzLiAgU2VlIFBhdGNoICMxMzM0NTk4CgoyMDA2LTAxLTI0IDA2OjQwICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIENoZWNrICJUaW1lU3RhbXAiIHJlZmVyZW5jZSBiZWZvcmUgdXNlIChpbiBsaW5lIHdpdGgKICAgdGhlIG90aGVyIG9jY3VyYW5jZXMgaW4gdGhpcyBmaWxlKS4gIFNlZSBCdWcgIzEzNzUyODIKCjIwMDYtMDEtMjQgMDY6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmM6CgogICBDaGVjayBmb3IgbWlzc2luZyBtb25pdG9yZWQgdmFsdWVzIChzZWUgQnVnICMxNDA0NjA1KQoKMjAwNi0wMS0yNCAwNTo0NyAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBEb24ndCBvdmVycmlkZSBhbiBleHBsaWNpdCBERUZQUklWVFlQRSBzZXR0aW5nLAogICBldmVuIGlmIHRoZSBsaWJyYXJ5IGRvZXNuJ3Qgc3VwcG9ydCBlbmNyeXB0aW9uLgoKMjAwNi0wMS0yNCAwMTo1MSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJlcGxhY2UgIj09IiBieSAiPSIgd2hlbiB1c2luZyAidGVzdCIgKHJlcG9ydGVkIGJ5IE1hZ251cyBGcm9tcmVpZGUpCgoyMDA2LTAxLTIzIDA3OjA1ICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9oYW5kbGVycy5oOgoKICAgTmV3IGhhbmRsZXIgdG8gZm9yd2FyZCB0cmFwcyB2aWEgdGhlIEFnZW50WCBtYXN0ZXIgYWdlbnQuCgoyMDA2LTAxLTIwIDE1OjE2ICB0YW5kZXJzCgogICAqIE5FV1MsIGFwcHMvc25tcHVzbS5jLCBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIGludHJvZHVjZSBuZXcgc25tcHVzbSBvcHRpb24gLUNwIHRvIHNldCB1c21Vc2VyUHVibGljIHZhbHVlCgoyMDA2LTAxLTIwIDA5OjAxICBkdHMxMgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIHRlc3RzL1QwMzVzbm1wdjN0cmFwZHVzZXJtZ210CiwgdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdHMvVDExMWFnZW50eHNldCwKICAgICB0ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwgdGVzdHMvVDExM2FnZW50eHRyYXAsCiAgICAgdGVzdHMvVDEyMHByb3h5Z2V0LCB0ZXN0cy9UMTIxcHJveHlzZXQsCiAgICAgdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIE1vZHVsYXIgYXBwcm9hY2ggZm9yIHByb2JpbmcgdG8gZGV0ZWN0IGZyZWUgcG9ydHMuICBTZWUgQnVnICMxMzM1NzY3CgoyMDA2LTAxLTE4IDE2OjA2ICB0YW5kZXJzCgogICAqIE5FV1MsIGFwcHMvc25tcHVzbS5jOgoKICAgQXZvaWQgZXhwZW5zaXZlIGdlbmVyYXRlX0t1KCkgaWYgbmV3cGFzcyBpcyBhIGxvY2FsaXplZCBrZXkgKGluc3RlYWQgb2YgYSBwYXNzcGhyYXNlKS4gTWFrZXMgYSBodWdlIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IHRoZW4uCgoyMDA2LTAxLTE4IDExOjM0ICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHVzZSBiYXNlIGFyY2ggKGVnIGkzODYsIG5vdCBpNjg2KTsgdXNlIFJQTV9CQVNFIGZvciB0b3BkaXIKCjIwMDYtMDEtMTggMDg6MjcgIGR0czEyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFJlZ2lzdGVyIFJQTXMgYXMgYmVpbmcgYnVpbHQgYnkgdGhlIE5ldC1TTk1QIHByb2plY3QuCgoyMDA2LTAxLTE4IDA4OjIxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgYWRkIGJlZWNyeXB0LWRldmVsLCBlbGZ1dGlscy1saWJlbGYtZGV2ZWwgdG8gQnVpbGRSZXF1aXJlcwoKMjAwNi0wMS0xOCAwNzozNSAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICByZXN0b3JlIGZpbGUgKGxvb2tzIGxpa2UgVmVyc2lvbk11bmdlIG51a2VkIGl0Pyk7IGJ1bXAgdmVyc2lvbiB0byA1LjQuZGV2CgoyMDA2LTAxLTE4IDA3OjE4ICB0YW5kZXJzCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgZml4IHR5cG8KCjIwMDYtMDEtMTcgMDc6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSByZWZlcmVuY2VzIHRvIG9ic29sZXRlIChhbmQgbWlzc2luZykgcm91dGluZS4gIFNlZSBCdWcgIzEwMTEwNTEKCjIwMDYtMDEtMTcgMDY6MjYgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlY29nbmlzZSByYW5nZSBwYXJzaW5nIGVycm9ycyBwcm9wZXJseS4KCjIwMDYtMDEtMTUgMTE6NTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOgogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gYmV0dGVyIGNvb3BlcmF0aW9uIGZvciBpbnRlcmZhY2UgdGFibGVzIHVzaW5nIHNoYXJlZCBjb250YWluZXIKICAgICAtIHVzZSBvbmUgZGlydHkgdmFyaWFibGUKICAgICAtIHVzZSBuZXcgcmVmIGNvdW50aW5nIHVuZG8gYWxsb2MvZnJlZSBmdW5jdGlvbiBmcm9tIGlmVGFibGUKCjIwMDYtMDEtMTUgMDY6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHJlbW92ZSB1bmRvIGlmZW50cnkgaGFuZGxpbmcgKGRvbmUgZWxzZXdoZXJlKQoKMjAwNi0wMS0xNSAwNjoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIG1vdmUgdW5kbyBpZmVudHJ5IGhhbmRsaW5nIGhlcmUKICAgLSBhZGQgcmVmZXJlbmNlIGNvdW50aW5nIGZvciB1bmRvCgoyMDA2LTAxLTE1IDA2OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgbW92ZSB1bmRvIGlmZW50cnkgaGFuZGxpbmcgaW50byBpbnRlcmZhY2UKCjIwMDYtMDEtMTMgMTc6MDUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIGFsbG93IHdyaXRlIHN1cHBvcnQgZm9yIG5ldyB1c2VyIHRvIHRlc3QgcGFzd29yZCBjaGFuZ2VzCgoyMDA2LTAxLTEzIDE1OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBmaXggYml0d2lzZSB0ZXN0IHRvIHVzZSBiaXR3aXNlIG1hY3JvcwoKMjAwNi0wMS0xMyAwODo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGRvbid0IGRvdWJsZSBhbGxvY2F0ZSB1bmRvIGlmZW50cnkKCjIwMDYtMDEtMTMgMDg6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIC0gbW92ZSBhbGwgcmVmcyB0byB1bmRvIHByb21pc2MgbW9kZSBpbnNpZGUgcHJvbWlzYyBzZXQgZW5hYmxlIGlmZGVmcwogICAtIGlmIHByb21pc2MgbW9kZSBzZXQgZW5hYmxlZCwgbWFrZSBzdXJlIHRvIGFsbG9jYXRlIHVuZG8gaWZlbnRyeQoKMjAwNi0wMS0xMyAwNzo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gY29ycmVjdCBwcm9jIHBhdGggZm9yIGJhc2UgcmVhY2hhYmxlIHRpbWUKICAgLSB1c2UgY29ycmVjdCBmbGFnIGZvciBiYXNlIHJlYWNoYWJsZSBhdmFpbGFiaWxpdHkKICAgLSBhY3R1YWxseSBwdXQgYmFzZSByZWFjaGFibGUgdGltZSBpbiBpZmVudHJ5IGFmdGVyIHJlYWRpbmcgaXQKCjIwMDYtMDEtMTEgMTU6MjYgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oCjoKCiAgIElSSVggYXRUYWJsZSBmaXg6IHVzZSBzeXNjdGwoKSBpbnN0ZWFkIG9mIG5saXN0KCkgdG8gc3VwcG9ydAogICBJUklYICphbmQqIElSSVg2NCBrZXJuZWxzIGF0IG9uY2UgYW5kIG5vdCByZXF1aXJlIC9kZXYva21lbSBhY2Nlc3MKICAgKHByb3Bvc2VkIGJ5IEhlcnZlIEJvdWxvdWlzKQoKMjAwNi0wMS0xMSAxNDowOSAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgcy90aGUgYWdlbnQvc25tcHRyYXBkLwoKMjAwNi0wMS0xMSAxNDowNSAgdGFuZGVycwoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDYtMDEtMTEgMTM6MzcgIHRhbmRlcnMKCiAgICogRkFROgoKICAgZml4IGFjY2lkZW50YWwgbWFuZ2xpbmcKCjIwMDYtMDEtMTEgMTI6NDAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBidWlsZCBmaXg6ICNpbmNsdWRlIDxsaW1pdHMuaD4gdG8gY292ZXIgcmVjZW50bHkgaW50cm9kdWNlZCBMT05HX01BWAogICAtIHdyYXAgIiNpZiBIQVZFX1NZU19TVEFUX0giIGFyb3VuZCAiI2luY2x1ZGUgPHN5cy9zdGF0Lmg+IgogICAtIHJlbW92ZSBvbGQgY2hhbmdlbG9nIGZyb20gdGhlIHRvcCBvZiB0aGUgZmlsZQoKMjAwNi0wMS0xMSAwODozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBTRVQgc3VwcG9ydCBmb3IgbWFuaXB1bGF0aW5nIHRoZSByb3V0aW5nIHRhYmxlIGlzbid0IHJlYWxseSBpbXBsZW1lbnRlZAogICBwcm9wZXJseSAoZXhjZXB0IG9uIEN5Z3dpbiksIHNvIHdlIHNob3VsZG4ndCBwcmV0ZW5kIGl0IGlzLgoKMjAwNi0wMS0xMSAwODozMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBSZWR1Y2UgcmVsaWFuY2Ugb24gKG5vbi10aHJlYWQtc2FmZSkgZ2V0aG9zdGJ5bmFtZS4gIFNlZSBCdWcgIzgzOTY3NQoKMjAwNi0wMS0xMSAwODowMCAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRG93bmdyYWRlIHVwcGVyLWJvdW5kIHBhcnNpbmcgcHJvYmxlbXMgdG8gYSB3YXJuaW5nIC0ga2VlcCBUcm9nTCBoYXBweTotKQogICBEb24ndCB0aGluayB0aGUgY2hlY2sgaXMgcXVpdGUgcmlnaHQgeWV0IHRob3VnaDotKAoKMjAwNi0wMS0xMSAwNzoxNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgQnJpbmcgY29kZSB0ZW1wbGF0ZSBpbnRvIGxpbmUgd2l0aCBmaW5hbCBoZWxwZXIgQVBJLgoKMjAwNi0wMS0xMSAwNzowOSAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQ29ycmVjdCBhIG1pc2xlYWRpbmcgY29tbWVudC4KCjIwMDYtMDEtMTEgMDc6MDIgIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFzc29jaWF0ZSBNSUIgbm9kZSB0eXBlcyB3aXRoIHRoZSAqbGFzdCogZW50cnkgcGFyc2VkIGZyb20gdGhlCiAgIGRlZmluaXRpb24gdmFsdWUsIG5vdCB0aGUgZmlyc3QuICBGaXhlcyBwcm9ibGVtIHdpdGggTUlCIGRlZmluaXRpb25zCiAgIHRoYXQgdXNlIGludGVybWVkaWF0ZSBzdWJpZGVudGlmaWVycyAoc2VlIGJ1ZyAjNzU5NDEyKQoKMjAwNi0wMS0xMSAwNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBDbGFyaWZ5IHRoZSBiZWhhdmlvdXIgb2YgbmV0c25tcF90YWJsZV9kYXRhc2V0X3JlbW92ZV9yb3coKQoKMjAwNi0wMS0xMCAxMzo0NSAgdGFuZGVycwoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBmaXggZm9ybWF0IHN0cmluZyBidWcgKHJlcG9ydGVkIGJ5IGRhcml4IG9uIElSQykKCjIwMDYtMDEtMTAgMDg6MzUgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERvbid0IHJldHJ5ICJvdXQgb2YgcmFuZ2UiIHJlc3BvbnNlcyB1bmxlc3MgdGhlcmUncyBhY3R1YWxseSBhIHZhbHVlCiAgIHRvIGJlIG91dCBvZiByYW5nZS4gIFRoaXMgcHJvdmVkIHRvIGJlIHRoZSB1bmRlcmx5aW5nIGNhdXNlIG9mIEdldEJ1bGsKICAgcmVxdWVzdHMgZmFpbGluZyB0byBoYW5kbGUgaW5zdGFuY2UtYmFzZWQgcmVnaXN0cmF0aW9ucywgc3VjaCBhcwogICAib3ZlcnJpZGUiIGRpcmVjdGl2ZXMgKFNlZSBCdWcgIzcxMTQ2NSkKCiAgIEknbSBub3QgYXQgYWxsIHN1cmUgdGhhdCB0aGlzIGlzIG5lY2Vzc2FyaWx5IHRoZSBjb3JyZWN0IGZpeCwgYnV0CiAgIGl0IHdhc24ndCB2ZXJ5IGNsZWFyIGFzIHRvIGV4YWN0bHkgd2hhdCBpcyBiZWluZyBoYW5kbGVkIGhlcmUuCiAgIFRoaXMgY2hhbmdlIGNlcnRhaW5seSBhZGRyZXNzZXMgdGhlIGFib3ZlIGJ1ZyByZXBvcnQsIHdpdGhvdXQKICAgc2VlbWluZyB0byBicmVhayBhbnl0aGluZyBlbHNlLgoKICAgTGV0J3MgZ2l2ZSB0aGlzIHBhdGNoIHRpbWUgdG8gc2V0dGxlIGludG8gdGhlIG1haW4gZGV2ZWxvcG1lbnQgY29kZSwKICAgYW5kIHRoZW4gY29uc2lkZXIgYmFjay1wb3J0aW5nIGl0IHRvIGVhcmxpZXIgbGluZXMuLi4uLgoKMjAwNi0wMS0xMCAwMzowNyAgdGFuZGVycwoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgQzg5IGNvbXBpbGVyIGJ1aWxkIGZpeCAoYnVnIDEzOTg1NDUpIHBhcnQgMjogIkEgZGVjbGFyYXRpb24gY2Fubm90IGFwcGVhciBhZnRlciBhbiBleGVjdXRhYmxlIHN0YXRlbWVudCBpbiBhIGJsb2NrLiIKCjIwMDYtMDEtMDkgMTc6NDEgIHRhbmRlcnMKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlL3NubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIEM4OSBjb21waWxlciBidWlsZCBmaXggKGJ1ZyAxMzk4NTQ1KQoKMjAwNi0wMS0wOSAxNzoxMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9taWJJSV9jb21tb24uaDoKCiAgIElSSVggNi41IGJ1aWxkIGZpeDogZG9uJ3QgaW5jbHVkZSBzeXMvc29ja2V0dmFyLmggYmVjYXVzZSBpdCdzIG5vdCBuZWVkZWQgYW5kIF9LTUVNVVNFUiBicmVha3MgdGhlIGJ1aWxkCgoyMDA2LTAxLTA5IDE3OjA1ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBJUklYIDYuNSAicHJlc2VudCBidXQgY2Fubm90IGJlIGNvbXBpbGVkIiB3YXJuaW5nIGZvciBzeXMvdm5vZGUuaCBhbmQgc3lzL2hhc2hpbmcuaAoKMjAwNi0wMS0wOSAxMzo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvdWNkLXNubXAvLmN2c2lnbm9yZToKCiAgIGRvbid0IGlnbm9yZSB1Y2Qtc25tcC1jb25maWcuaCwgc2luY2UgaXQncyBubyBsb25nZXIgYSBnZW5lcmF0ZWQgZmlsZQoKMjAwNi0wMS0wOSAxMzozOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHJldmVydCB0byAtLWRpc2FibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eSBiZWluZyB0aGUgZGVmYXVsdCBhZ2FpbgoKMjAwNi0wMS0wOSAxMTowNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBpbmNsdWRlIGFsbCBlcnIgbG9ncyBpbiByZXN1bHRzCgoyMDA2LTAxLTA5IDA5OjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgcmVzdG9yZSBsb3N0IGlmTGFzdENoYW5nZSB0cmFja2luZwoKMjAwNi0wMS0wOSAwNzowNiAgZHRzMTIKCiAgICogbWFuL25ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG1hbi9uZXRzbm1wX2FnZW50LjMKLCBtYW4vbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50X3RyYXAuMywgbWFuL25ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMwosIG1hbi9uZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfY2FsbGJhY2suMywgbWFuL25ldHNubXBfY29udGFpbmVyLjMKLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMywgbWFuL25ldHNubXBfZGVidWcuMwosIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbWFuL25ldHNubXBfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgICBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywgbWFuL25ldHNubXBfbGVhZi4zLAogICAgIG1hbi9uZXRzbm1wX2xpYnJhcnkuMywgc25tcGxpYi9jb250YWluZXJfbnVsbC5jLAogICAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMKLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLAogICAgIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMKLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYywKICAgICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jCiwgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywKICAgICBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhci5jLAogICAgIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmMsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMKLCBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsCiAgICAgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX3RkYXRhLmMsIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jCiwgbWFuL25ldHNubXBfbWliX21haW50ZW5hbmNlLjMsCiAgICAgbWFuL25ldHNubXBfbWliX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMKLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMKLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMwosIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMKLCBtYW4vbmV0c25tcF9zdGFzaF90b19uZXh0LjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMKLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMKLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfZ2VuZXJpYy4zLCBtYW4vbmV0c25tcF90YWJsZV9pbmRleGVzLjMKLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG1hbi9uZXRzbm1wX3RhYmxlX21haW50ZW5hbmNlLjMsIG1hbi9uZXRzbm1wX3RhYmxlX3Jvd3MuMwosIG1hbi9uZXRzbm1wX3RkYXRhLjMsIG1hbi9uZXRzbm1wX3V0aWwuMywKICAgICBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywgbWFuL25ldHNubXBfdmFyaWFibGVfbGlzdC4zCiwgbWFuL25ldHNubXBfd2F0Y2hlci4zOgoKICAgQWRqdXN0IGRveHlnZW4gImRlZmdyb3VwIiBjb21tZW50cyB0byBpbXByb3ZlIGF1dG8tZ2VuZXJhdGVkIG1hbiBwYWdlIGZvcm1hdC4KICAgU2VlIGJ1ZyAjODM1MzIxCgoyMDA2LTAxLTA5IDA1OjAxICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSZXBvcnQgZmFpbHVyZSB0byBwYXJzZSByYW5nZXMgY29ycmVjdGx5IChCdWcgIzQxMTU5NC83NTcxMjEpCgoyMDA2LTAxLTA2IDE1OjE1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICBmaXggdWRwVGFibGUgb24gU29sYXJpcy94ODY6IGhvc3QgYnl0ZSBvcmRlciBmb3IgdWRwTG9jYWxQb3J0IChidWcgMTM5MzE5NykKCjIwMDYtMDEtMDYgMTM6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKOgoKICAgLSBhZGQgaW5zdGFuY2UgaGFuZGxlciBmb3IgaW5ldENpZHJSb3V0ZU51bWJlcgoKMjAwNi0wMS0wNiAwOTo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gc3VidHJhY3QgbXVsdGljYXN0IHBhY2tldHMgZnJvbSB0b3RhbCBwYWNrZXRzIGZvciB1bmljYXN0IHBhY2tldHMKICAgICAodGhlcmUgaXMgbm8gYnJvYWRjYXN0IHBhY2tldCBjb3VudGVyIHRvIHN1YnRyYWN0KQoKMjAwNi0wMS0wNSAxNjoyMSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIGZpeCBtdWx0aXBsZSA8bmV0aW5ldC90Y3BfdmFyLmg+IGluY2x1c2lvbiAoYnVnIDEzOTY2MzksIElSSVggYnVpbGQgZml4KQoKMjAwNi0wMS0wNSAxNTo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gZG9uJ3Qgc2F2ZS9yZXN0b3JlIHByb21pc2N1b3VzIG1vZGUKCjIwMDYtMDEtMDUgMTU6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIC0gdXBkYXRlIHRvIHJlcG9ydCBwcm9wZXIgdmFsdWUgZnJvbSBwcm9taXNjdW91cyBtb2RlCgoyMDA2LTAxLTA1IDE1OjQ4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oOgoKICAgLSBjbGVhciBwcm9taXNjdW91cyBtb2RlIGZyb20gc2V0dGFibGUgZmxhZ3MKCjIwMDYtMDEtMDUgMTU6NDEgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBidW1wIGxpYnJhcnkgdmVyc2lvbiBudW1iZXIgaW4gcHJvdmlkZXMKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzcgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNyAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM3ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICAtIChkaXN0L01ha2VmaWxlKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzYgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNiAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS40LmRldiApCgoyMDA2LTAxLTA1IDE1OjM2ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MzUgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuNC5kZXYgKQoKMjAwNi0wMS0wNSAxNTozNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjQuZGV2ICkKCjIwMDYtMDEtMDUgMTU6MjggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBidW1wIExJQkNVUlJFTlQgdmVyc2lvbgoKMjAwNi0wMS0wNSAxNToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gZGVsZXRlIHVudXNlZCBkdW1teSB2YXIgKHN0cnVjdCBzaXplIGNoYW5nZSBvayBpbiB1bnJlbGVhc2VkIGJyYW5jaGVzKQoKMjAwNi0wMS0wNSAxNToyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIC0gcG9pbnQgcHJvbWlzY3VvdXMgbW9kZSByZWZzIHRvIGludGVyZmFjZSBlbnRyeSB2YWx1ZQogICAtIHJlbmFtZSBvbGQgdmFyIChkb24ndCBkZWxldGUsIHNvIHN0cnVjdCBzaXplIGRvZXNuJ3QgY2hhbmdlKQoKMjAwNi0wMS0wNSAxNToxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIHNldCBwcm9taXNjdW91cyBmbGFnIGZvciBpbnRlcmZhY2VzCgoyMDA2LTAxLTA1IDE1OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICBhZGQgbWlzc2luZyBcbiB0byBsb2cgbXNncwoKMjAwNi0wMS0wNSAwODozMCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgRGlzcGxheSBjb3JyZWN0IE1JQiBncm91cCBuYW1lcyBpbiBjb21tZW50cy4gIChCdWcgIzEwNzY2NTUpCgoyMDA2LTAxLTA0IDE1OjA2ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50Q29uZi5jLAogICAgIG10ZU9iamVjdHNDb25mLmMsIG10ZVRyaWdnZXIuYywgbXRlVHJpZ2dlckNvbmYuYwo6CgogICBnZXQgcmlkIG9mIEMrKyBjb21tZW50cwoKMjAwNi0wMS0wMiAxNjowNCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGZpeCBtaW5vciB0eXBvcwoKMjAwNi0wMS0wMiAxNTo0MCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0tZGlzYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5IGFuZCAtLWVuYWJsZS11Y2Qtc25tcC1jb21wYXRpYmlsaXR5PW5vIG5vdyBhY3R1YWxseSAqZGlzYWJsZSogVUNELVNOTVAgY29tcGF0aWJpbGl0eSBpbnN0ZWFkIG9mIGVuYWJsaW5nIGl0CgoyMDA1LTEyLTMwIDIwOjM2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtIHNldCB1cCBsZW4gZm9yIHBhcnNlIGluZGV4IGhhY2sgZm9yIGZpeGVkIGxlbmd0aCBzdHIvb2lkIGluZGV4ZXMKCjIwMDUtMTItMzAgMjA6MzUgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBwYXJzZSBpbmRleCBoYWNrIGZvciBtdWx0aXBsZSBmaXhlZCBsZW5ndGggc3RyL29pZCBpbmRleGVzCgoyMDA1LTEyLTMwIDE4OjA1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBzdGVwIGZvciBjcmVhdGluZyBwYXRjaGVzIGJyYW5jaCBmb3IgbmV3IHJlbGVhc2VzCgoyMDA1LTEyLTMwIDExOjQyICBhbGV4X2IKCiAgICogTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZG9jc211bmdlIGFzIGl0IGlzIG5vIGxvbmdlciBuZWVkZWQgYnkgdGhlIHdlYiBzaXRlLgoKMjAwNS0xMi0yOSAyMTozOCAgYWxleF9iCgogICAqIGxvY2FsL2h0bWwtdGV4dGZpbGUtZml4LnBsOgoKICAgQWRkcyBzb21lIEhUTUwgZW50aXRpZXMgdG8gdGhlIHRleHQgZmlsZXMgdG8gcHJldmVudCBtaXNzaW5nIGNoYXJhY3RlcnMKICAgd2hlbiBpbmNsdWRpbmcgaW4gSFRNTC4KCjIwMDUtMTItMjggMTE6MTAgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjIgLT4gVjUuMwoKMjAwNS0xMi0yOCAxMjo0OSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDkgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDkgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ5ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0OCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDggIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMyApCgoyMDA1LTEyLTI4IDEyOjQ3ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMgKQoKMjAwNS0xMi0yOCAxMjo0NyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zICkKCjIwMDUtMTItMjggMTI6NDEgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF91dGlsLjMsCiAgICAgbmV0c25tcF91dGlsaXRpZXMuMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMi0yOCAxMjoyMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMjcgMTc6MDYgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBMYXN0LW1pbnV0ZSB1cGRhdGUgZm9yIDUuMzoKICAgLSB1Y2Qtc25tcC9sbVNlbnNvcnMgaW1wbGVtZW50cyBMTS1TRU5TT1JTLU1JQiwgbm90IFVDRC1TTk1QLU1JQiEKICAgLSBkaXNtYW4vc2NoZWR1bGUgbm93IHNoaXBzIHdpdGggNS4zCgoyMDA1LTEyLTI3IDE2OjQ1ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIExhc3QtbWludXRlIHVwZGF0ZXMgZm9yIDUuMzoKICAgLSByZW1vdmUgdHdvIG1pcnJvciBzZXJ2ZXJzIHRoYXQgZG9uJ3QgZXhpc3QgYW55bW9yZQogICAtIHR3ZWFrIGxpc3Qgb2Ygc3VwcG9ydGVkIHBsYXRmb3JtcyB0byBsaXN0IHRoZSBiZXR0ZXIgc3VwcG9ydGVkIG9uZXMgZmlyc3QKICAgLSBmaXggc25tcHRyYXBkIGV4YW1wbGVzIHRvIG5vdCB1c2UgZGVwcmVjYXRlZCBvcHRpb25zCiAgIC0gbWVudGlvbiB0aGUgNS4zIHNubXB0cmFwZCBhdXRob3JpemF0aW9uIGNoYW5nZQogICAtIG1lbnRpb24gdGhhdCBkaXNtYW4vZXZlbnQgYW5kIGhvc3QgYXJlIGVuYWJsZWQgYnkgZGVmYXVsdCBpbiA1LjMKICAgLSBtZW50aW9uIGRpc21hbi9zY2hlZHVsZSBNSUIKCjIwMDUtMTItMjEgMDY6MDggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgTWlub3IgdHdlYWtzLgoKMjAwNS0xMi0yMSAwNDozMSAgZHRzMTIKCiAgICogTkVXUzoKCiAgIENvcnJlY3QgdGhlIGRlc2NyaXB0aW9uIG9mICdzbm1wbmV0c3RhdCcgY2hhbmdlcy4KICAgVGhlIHN0YXR1cyBvZiB0aGUgNS4zIGxpbmUgaXMgKm5vdCogdGhlIHNhbWUgYXMgdGhlIDUuMiB2ZXJzaW9uLgoKMjAwNS0xMi0yMSAwMDowNyAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNiAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA2ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA1ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA1ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDUgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzIgKQoKMjAwNS0xMi0yMSAwMDowNSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA0ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucmMyICkKCjIwMDUtMTItMjEgMDA6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMiApCgoyMDA1LTEyLTIxIDAwOjA0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMjAgMjM6NTggIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF91dGlsLjMsCiAgICAgbmV0c25tcF91dGlsaXRpZXMuMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMi0yMCAyMzo0MCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTItMjAgMjM6MTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTIwIDEwOjMzICB0YW5kZXJzCgogICAqIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mOgoKICAgZml4IGJ1ZyAxMzg2MDg4OiB1c2UgTE9HX0VSUiBpbnN0ZWFkIG9mIExPR19FUlJPUgoKMjAwNS0xMi0xOSAyMDo0NiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIHRyYXBzIC0+IG5vdGlmaWNhdGlvbnMKCjIwMDUtMTItMTkgMjA6MzcgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIGZpeCB0eXBvCgoyMDA1LTEyLTE5IDIwOjMzICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgc25tcF9wZXJsLnBsICppcyogaW5zdGFsbGVkIGF1dG9tYXRpY2FsbHkgKGF0IGxlYXN0IGZvciBtZSkuCgoyMDA1LTEyLTE5IDIwOjE2ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBnZXQgcmlkIG9mICJkZWZhdWx0IGRlZmF1bHQiCgoyMDA1LTEyLTE5IDE4OjU5ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBiZXR0ZXIgaGVscCBvdXRwdXQgZm9yIGRlcHJlY2F0ZWQgIi1QIgoKMjAwNS0xMi0xOSAwNTozNSAgZHRzMTIKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wY21kLjEuZGVmLCBzbm1wZC44LmRlZgosIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC44LmRlZiwKICAgICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIEdlbmVyYWwgcmV2aXNpb24gb2YgY29tbWFuZCBhbmQgY29uZmlndXJhdGlvbiBmaWxlIGRvY3VtZW50YXRpb24uCgoyMDA1LTEyLTE4IDE2OjM2ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGV4ZWN1dGUgYWxzbyBjb3ZlcnMgZW1iZWRkZWQgcGVybAoKMjAwNS0xMi0xOCAxNjozMCAgdGFuZGVycwoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBkb05vdFJldGFpblRyYXBMb2dzIC0+IGRvTm90UmV0YWluTm90aWZpY2F0aW9uTG9ncwoKMjAwNS0xMi0xNCAxMTo0MCAgZHRzMTIKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgUmV3b3JraW5nIG9mIHRoZSB0cmFwZCBjb25maWd1cmF0aW9uIGRvY3VtZW50YXRpb24uCgoyMDA1LTEyLTE0IDA1OjM5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9hdXRoLmM6CgogICBXaXRoZHJhdyBhbHRlcm5hdGl2ZSAiYWNjZXB0QWxsVHJhcHMiIGRpcmVjdGl2ZS4KICAgKEtlZXAgaXQgc2FmZSBmb3IgYW5vdGhlciBkYXkpLgoKMjAwNS0xMi0xMyAwNzo1MCAgdGFuZGVycwoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgb3VyIGJpbmFyeSByZWxlYXNlcyAqZG8qIHN1cHBvcnQgZW5jcnlwdGlvbgoKMjAwNS0xMi0xMyAwNzoyOSAgdGFuZGVycwoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgYWRkIEFFUwoKMjAwNS0xMi0xMSAxNToxNSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE1ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxNSAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTQgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjE0ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEzICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTMgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5yYzEgKQoKMjAwNS0xMi0xMSAxNToxMyAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEyICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucmMxICkKCjIwMDUtMTItMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4zLnJjMSApCgoyMDA1LTEyLTExIDE1OjEyICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTItMTEgMTU6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMi0xMSAxNTowMCAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX29pZF9zdGFzaC4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgICBuZXRzbm1wX3JlYWRfY29uZmlnLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc25tcF9hZ2VudC4zLCBuZXRzbm1wX3NubXBfYWxhcm0uMywKICAgICBuZXRzbm1wX3NubXBfY2xpZW50LjMsIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsCiAgICAgbmV0c25tcF9zbm1wX3BkdS4zLCBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3V0aWwuMywKICAgICBuZXRzbm1wX3V0aWxpdGllcy4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEyLTExIDE0OjEzICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jCiwgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29yZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcF9zY2FsYXJzLmgsIGFwcHMvc25tcHRyYXBkX2F1dGguYwosIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgQWRkIGNvbnN0IGFuZCAjaW5jbHVkZSB0byBmaXggd2FybmluZ3MKCjIwMDUtMTItMTEgMTM6NTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTExIDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGRvbid0IHVzZSBDVlNVU0VSIGlmIGFscmVhZHkgaW4gYSBjdnMgZGlyCgoyMDA1LTEyLTExIDEzOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYzoKCiAgIGFkdmFuY2UgbmV4dCBwb2ludGVyIGJlZm9yZSBjb250aW51ZQoKMjAwNS0xMi0xMSAxMjo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtbWliL2RhdGFfYWNjZXNzL2FycF9jb21tb24uYywKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIHRjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywKICAgICB1ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9jb21tb24uYzoKCiAgIGRvbid0IGZyZWUgdGhlIGNvbnRhaW5lciBpZiBhc2tlZCBub3QgdG8KCjIwMDUtMTItMTEgMTI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICAtIGZpeCAxMzYyMzI0OiB0ZXN0aGFuZGxlciBtb2R1bGUgY2F1c2VzIGluZmluaXRlIGxvb3AKICAgICAtICBkb24ndCByZXRyeSBmb3IgQVNOX05VTEw7IHRoaXMgcmV0cmllcyB3aGVuIHRoZSBoYW5kbGVyIGRvZXMgbm90aGluZywKICAgICAgICB3aGljaCBpcyB3aGF0IHdlIHRlbGwgcGVvcGxlIHRvIGRvIGF0IHRoZSBlbmQgb2YgYSB0YWJsZS4KICAgLSBhZGQgY29tbWVudHMKCjIwMDUtMTItMTEgMTA6MzcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBjaGFuZ2UgbmVzdGVkIGNvbW1lbnQgdG8gaWZkZWYgMAoKMjAwNS0xMi0xMCAyMDowNyAgdGFuZGVycwoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZml4IHR5cG8KCjIwMDUtMTItMTAgMjA6MDIgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL0RFVkVOVjoKCiAgIGNsZWFudXAKCjIwMDUtMTItMTAgMTk6NTAgIHRhbmRlcnMKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkL25ldC1zbm1wLTUuMC42LWJ1aWxkOgoKICAgcmVwbGFjZWQgYnkgdXBkYXRlZCBidWlsZHBhY2thZ2Utc29sYXJpcwoKMjAwNS0xMi0xMCAxOTo0MSAgdGFuZGVycwoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvOiBSRUFETUUsIGJ1aWxkcGFja2FnZS1zb2xhcmlzCjoKCiAgIHNjcmlwdCB0byBjcmVhdGUgbmF0aXZlIFNvbGFyaXMgcGFja2FnZXMsIHJlcGxhY2VzIG5ldC1zbm1wLTUuMC42LWJ1aWxkCgoyMDA1LTEyLTEwIDE4OjUwICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZnVydGhlciBpbXByb3ZlIG1pYiBtb2R1bGUgZGVzY3JpcHRpb25zCgoyMDA1LTEyLTEwIDE4OjI5ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGgtZW50ZXJwcmlzZS1ub3RpZmljYXRpb24tb2lkIGRlc2NyaXB0aW9uCgoyMDA1LTEyLTEwIDE4OjE3ICB0YW5kZXJzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgaW1wcm92ZSB0ZXh0IGFsaWdubWVudCBpbiAiY29uZmlndXJlIC0taGVscCIgb3V0cHV0CgoyMDA1LTEyLTEwIDEyOjMwICBhbGV4X2IKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBXaW4zMjogTVNWQyBidWlsZCBmaXhlcwoKMjAwNS0xMi0xMCAxMjoyOCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHB1dCBwcml2L2F1dGggcmVsYXRlZCBvcHRpb25zIGNsb3NlciB0byBlYWNoIG90aGVyCgoyMDA1LTEyLTEwIDExOjM3ICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzIG9yIGNvbnZlcnQgdG8gQyBjb21tZW50cwoKMjAwNS0xMi0xMCAxMTozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmMsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIHRjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jLAogICAgIHVkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50X2xpbnV4LmM6CgogICBjaGFuZ2UgY3BwIHdhcm5pbmdzIHRvIGNvbW1lbnRzCgoyMDA1LTEyLTEwIDExOjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTItMTAgMTE6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBuZXcgJ29zIHNwZWNpZmljJyBzZWN0aW9uIGluIG1pYiBtb2R1bGUgaGVscAoKMjAwNS0xMi0wOSAyMToyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50Q29uZi5oLAogICAgIG10ZVRyaWdnZXJDb25mLmgsIG10ZVRyaWdnZXJUYWJsZS5oOgoKICAgY29uZmlnX3JlcXVpcmUgaXF1ZXJ5CgoyMDA1LTEyLTA5IDIxOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBtaXNjIGdlbmVyYXRlZCBmaWxlcwoKMjAwNS0xMi0wOSAyMDo1OCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICB1cGRhdGUgcmVuYW1lZCB2YXJpYWJsZQoKMjAwNS0xMi0wOSAyMDo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmgKOgoKICAgZml4IGNvbmZpZ19yZXF1aXJlIHBhdGgKCjIwMDUtMTItMDkgMjA6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLzoKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmg6CgogICByZW1vdmUgZXhwZXJpbWVudGFsIGNvbmZpZ19ub2luY2x1ZGUgZGlyZWN0aXZlcwoKMjAwNS0xMi0wOSAyMDo1NyAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgZml4IGN1dC1uLXBhc3RlCgoyMDA1LTEyLTA5IDIwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzoKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgYWRkIG1pc3NpbmcgcmVnaXN0cmF0aW9uIG9mIGxhc3QgY2hhbmdlIG9iamVjdAoKMjAwNS0xMi0wOSAyMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGlwdjRJbnRlcmZhY2VUYWJsZS5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS5oOgoKICAgYWRkIG1pc3NpbmcgaW50ZXJtZWRpYXRlIGNvbmZpZ19yZXEgaGVhZGVycwoKMjAwNS0xMi0wOSAyMDozMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIHVwZGF0ZSBjb21wYXQgbWFwcGluZyB0b28KCjIwMDUtMTItMDkgMTk6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBwcm9wZXIgbmFtaW5nIGNvbnZlbnRpb25zIHN0YW5kYXJkaXplZCBhbmQgd2lkZWx5IGFkb3B0ZWQgYnkgdGhlIEludGVybmV0IEVuZ2luZWVyaW5nIFRhc2sgRm9yY2UKCjIwMDUtMTItMDkgMTc6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgLSBkZWZpbmUgbmV3IGFnZW50IGRzIGlkIGZvciByZXRhaW5pbmcgdHJhcHMKCjIwMDUtMTItMDkgMTA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIHRyYXAgLT4gbm90aWZpY2F0aW9uCgoyMDA1LTEyLTA5IDEwOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgLSByZXN0b3JlIGRvbnRSZXRhaW5Mb2dzCiAgIC0gbmV3LCBjbGVhcmVyIGRvTm90UmV0YWluVHJhcExvZ3MgdXNlIHNhbWUgZHMgaWQKCjIwMDUtMTItMDkgMDg6NDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2UgdGhlIGNvbW1vbiBib29sZWFuIHBhcnNpbmcgcm91dGluZSAodG8gcmVjb2duaXNlCiAgIHRoZSBmdWxsIGxpc3Qgb2YgZG9jdW1lbnRlZCB2YWx1ZXMsIG5vdCBzaW1wbHkgJzEnISkKCjIwMDUtMTItMDkgMDg6NDMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBQdWxsIHBhcnNpbmcgb2YgYm9vbGVhbiBjb25maWcgdmFsdWVzIG91dCBpbnRvIGEgc2VwYXJhdGUgcm91dGluZS4KCjIwMDUtMTItMDkgMDc6MDEgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEV4cGFuZCB0aGUgc291cmNlIGJ1ZmZlciBzbyBpdCBjYW4gaG9sZCBhIG1heGltdW0tbGVuZ3RoIElQdjYgc3BlY2lmaWNhdGlvbi4KICAgUGF0Y2ggcHJvdmlkZWQgYnkgU2h1a2kgU2Fzc29uLgoKMjAwNS0xMi0wOCAwODoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYwo6CgogICBJc3N1ZSB3YXJuaW5ncyB3aGVuICdzbm1wdHJhcGQnIGlzIHJ1biB3aXRob3V0IGFueSBhY2Nlc3MgY29uZmlndXJhdGlvbi4KICAgQm90aCBhdCBzdGFydHVwLCBhbmQgd2hlbiBpbmNvbWluZyB0cmFwcyBhcmUgcmVjZWl2ZWQgKGFuZCBkcm9wcGVkKS4KCiAgIEFsc28gZGVmaW5lIGFuIGFsdGVybmF0aXZlIG5hbWUgZm9yIHRoZSAnZGlzYWJsZUF1dGhvcml6YXRpb24nIGRpcmVjdGl2ZSwKICAgdGhhdCBpcyAoSU1PKSBtb3JlIGRlc2NyaXB0aXZlIG9mIHdoYXQgYSBuZXR3b3JrIGFkbWluaXN0cmF0b3IgbWlnaHQgd2FudCB0byBkby4KCjIwMDUtMTItMDggMDg6MDcgIGR0czEyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgUHJvcGVybHkgcmVjb2duaXNlIHdoZW4gbm8gYWNjZXNzIHNldHRpbmdzIGhhdmUgYmVlbiBjb25maWd1cmVkLgogICAoVGhlIG5ldyBidWlsdC1pbiB2aWV3cyBicm9rZSB0aGUgcHJldmlvdXMgdGVzdCkuCgoyMDA1LTEyLTA4IDA2OjA4ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEluY2x1ZGUgKGFuZCBjaGVjayBmb3IpIGFub3RoZXIgaGVhZGVyIGZpbGUgLSBuZWVkZWQgb24gUmVkSGF0IDkgc3lzdGVtcy4KCjIwMDUtMTItMDcgMTc6NTUgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBmaXggdHlwbwoKMjAwNS0xMi0wNyAwNzoyOSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEyLTA3IDA3OjI3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBmaXggbWluaS1hZ2VudCB0ZXN0cyBzbyB0aGF0IC0tZGlzYWJsZSBkb2Vzbid0IGFjdHVhbGx5IGVuYWJsZSBpdAoKMjAwNS0xMi0wNiAxNzo1MCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IFJGQyBpc3N1ZXMKCjIwMDUtMTItMDYgMTI6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmg6CgogICByZWR1Y2UgY2FjaGUgcmVsb2FkIHRpbWVvdXQgYmVsb3cgd3JhcCB0aHJlc2hvbGQgZm9yIGdpZ2FiaXQgaW50ZXJmYWNlcwoKMjAwNS0xMi0wNiAwODo1MCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmludGVybmFsLjUuZGVmOgoKICAgQnJpZWYgKGFuZCBzb21ld2hhdCByZXBldGF0aXZlKSBkb2N1bWVudGF0aW9uIG9mIGludGVybmFsIGRpcmVjdGl2ZXMuCgoyMDA1LTEyLTA2IDA4OjExICBkdHMxMgoKICAgKiBtYW4vc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBGbGVzaCBvdXQgRXZlbnQgTUlCLCBTY2hlZHVsZSBNSUIgYW5kIHByb3h5IGV4YW1wbGVzCiAgIChwbHVzIHZhcmlvdXMgbWlub3IgdHdlYWtzKS4KCjIwMDUtMTItMDYgMDU6NDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZUV2ZW50LmMsIG10ZU9iamVjdHMuYwosIG10ZVRyaWdnZXJDb25mLmMsIG10ZVRyaWdnZXJDb25mLmg6CgogICBJbXBsZW1lbnQgbWlzc2luZyAibGlua1VwRG93bk5vdGlmaWNhdGlvbnMiIGRpcmVjdGl2ZQogICAodG9nZXRoZXIgd2l0aCBzdWl0YWJsZSBzdGFuZGFyZCBlbnRyaWVzKQoKMjAwNS0xMi0wNSAxMTo0NCAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgZG9uJ3QgcmVtb3ZlIGRpc3QKCjIwMDUtMTItMDUgMTA6NTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaXggbWlzc2VkIHZhciByZW5hbWUgaW4gY29uZGl0aW9uYWwKCjIwMDUtMTItMDUgMDc6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBjb25maWdfYWRkX21pYiBpbiBoZWFkZXIKCjIwMDUtMTItMDUgMDc6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIHR3ZWFrcyBwZXIgY29tbWVudHMgZnJvbSB3ZXM7IHNlZSBjb2RlcnMgbm90ZQoKMjAwNS0xMi0wNSAwNzoyMiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgRmxlc2ggb3V0IEFnZW50WCBleGFtcGxlcy4KCjIwMDUtMTItMDUgMDc6MjEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5leGFtcGxlcy41LmRlZjoKCiAgIEZsZXNoIG91dCB0cmFwIGhhbmRsaW5nIGFuZCBlbWJlZGRlZCBwZXJsIGV4YW1wbGVzLgoKMjAwNS0xMi0wNSAwNzoyMCAgZHRzMTIKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiwgc25tcGQuZXhhbXBsZXMuNS5kZWY6CgogICBBc3NvcnRlZCB3b3Jkc21pdGhpbmcsIGFuZCBwaWNrIHVwIGEgY291cGxlIG9mIHVuZG9jdW1lbnRlZCBvcHRpb25zLgoKMjAwNS0xMi0wNSAwNzoxNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgSW1wbGVtZW50ICdnZXRfZXhlY19vdXRwdXQnIGFzIGEgd3JhcHBlciByb3VuZCAncnVuX2V4ZWNfY29tbWFuZCcKICAgdG8gZ2l2ZSBwcm9wZXIgaGFuZGxpbmcgb2YgY29tbWFuZCB0b2tlbml6YXRpb24uICAoU2VlIEJ1ZyAjMTMyNDA1NykKICAgTm90ZSB0aGlzIGRvZXNuJ3QgYXBwbHkgdG8gV2luZG93cyBzeXN0ZW1zIC0gdGhhdCBleGVjIGhhbmRsaW5nCiAgIHByb2JhYmx5IG5lZWRzIHRvIGJlIG1vdmVkIHRvICdydW5fZXhlY19jb21tYW5kJyBhcyB3ZWxsLgoKMjAwNS0xMi0wNCAxODowMyAgcnN0b3J5CgogICAqIHJlbW92ZS1maWxlczoKCiAgIGFkZCAtUiBmb3IgZGlzdCBkaXIKCjIwMDUtMTItMDQgMTc6NTQgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTQgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTUgKQoKMjAwNS0xMi0wNCAxNzo1MyAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUzICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTMgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUyICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUyICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUyICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUyICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNSApCgoyMDA1LTEyLTA0IDE3OjUxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU1ICkKCjIwMDUtMTItMDQgMTc6NTEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMi0wNCAxNzo0MyAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTItMDQgMTc6MjYgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF91dGlsLjMsCiAgICAgbmV0c25tcF91dGlsaXRpZXMuMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMi0wNCAxNzoyMyAgcnN0b3J5CgogICAqIHJlbW92ZS1maWxlczoKCiAgIHJlbW92ZSBkaXN0IGFuZCB3aW4zMi9kaXN0CgoyMDA1LTEyLTA0IDE3OjE0ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGRvIGRpc3RjbGVhbiBiZWZvcmUgY29uZmlndXJlIGlmIE1ha2VmaWxlIGV4aXN0cwoKMjAwNS0xMi0wNCAxNjo0OSAgcnN0b3J5CgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBub3RlIHRoYXQgTWFrZWZpbGUudG9wIHVzdWFsbHkgb25seSBjaGFuZ2UgZm9yIGZpcnN0IHByZXJlbGVhc2UKCjIwMDUtMTItMDQgMTY6NDggIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTEyLTA0IDE2OjQ3ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGFkZCAtcSB0byB1cGRhdGUgc28gcG90ZW50aWFsIGNoYW5nZXMgZG9uJ3Qgc2Nyb2xsIG9mZiBzY3JlZW4KCjIwMDUtMTItMDQgMTY6MjkgIHJzdG9yeQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIGZpeCBzeW50YXggZXJyb3JzCgoyMDA1LTEyLTA0IDEzOjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGxvZyByYyB3L2Vycm9yIG1zZwoKMjAwNS0xMi0wNCAxMzo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBsb2cgY29udGFpbmVyIG5hbWUsIGlmIGF2YWlsLCBpbiBsb2cgbXNnCgoyMDA1LTEyLTA0IDEzOjM4ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gYWRkIGxvZyBmaWxlIGFwcGVuZCAoLUEpIG9wdGlvbgogICAtIHJlbW92ZSBMb2cvUHJpbnQvU3lzbG9nIGRpc3RpbmN0aW9uCiAgIC0gYnJpbmcgc3RhcnR1cC9yZWNvbmZpZyBsb2cgbWVzc2FnZSBpbiBsaW5lIHcvc25tcGQKCjIwMDUtMTItMDQgMTM6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gZml4IGJ1ZyAxMjk3ODc4OiBoZWFkZXJfZ2VuZXJpYyBhbmQgaGVhZGVyX3NpbXBsZV90YWJsZSBwcm90b3R5cGVzCiAgICAgLSBleHRyYSBoZWFkZXIgbGlzdC9pbnN0YWxsIHRhcmdldAogICAtIGdyb3VwIHBlcmwgaW5zdGFsbC91bmluc3RhbGwgdG9nZXRoZXIKCjIwMDUtMTItMDQgMTM6MTkgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgaW1wb3J0YW50IG5vdGVzIGZvciA1LjMKCjIwMDUtMTItMDQgMDk6NDIgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMi0wNCAwOTo0MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gZml4IGJ1ZyAgMTM2NTEyODogc25tcGQgcXVpZXRseSBkaWVzIG9uIGhwdXggMTEuMTEKICAgICAtIGFkZCBjb25maWd1cmUgY2hlY2sgZm9yIC1sbm0KCjIwMDUtMTItMDQgMDk6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIC0gYWRkaXRpb25hbCBmaXggZm9yIGJ1ZyAxMTAzNjQ0LCBGcmVlQlNEIG1lbW9yeSBsZWFrCiAgICAgLSBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IHJvamVyIG9uIGlyYwogICAgIC0gdXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYy9tZW1zZXQKCjIwMDUtMTItMDIgMTk6MTMgIHJzdG9yeQoKICAgKiBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dDoKCiAgIHVwZGF0ZSB0byAyMDA1MTAxMDAwMDBaIHZlcnNpb24KCjIwMDUtMTItMDIgMTg6NDggIHJzdG9yeQoKICAgKiBtaWJzL0lQLU1JQi50eHQ6CgogICAtIHVwZGF0ZSBmcm9tIGRyYWZ0LWlldGYtaXB2Ni1yZmMyMDExLXVwZGF0ZS0xMC50eHQsIGN1cnJlbnRseSBpbiB0aGUgUkZDCiAgICAgZWRpdG9yJ3MgcXVldWUKCjIwMDUtMTItMDIgMTc6NDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIGJ1ZyAxMzM3NTM0OiBSZWFkIHByb2JsZW0gb24gc3RyZWFtIHNvY2tldHMKICAgICAtIHByb3Blcmx5IHNhdmUgcGFydGlhbCBwYWNrZXQgd2hpY2ggaXNuJ3QgYXQgc3RhcnQgb2YgYnVmZmVyCgoyMDA1LTEyLTAyIDE3OjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBidWcgMTM3MDg1NjogaXAgYWRkcmVzcyBlbmNvZGluZyBvbiA2NGJpdAogICAgIC0gdXNlIGluZXRfYWRkcl90IGZvciBpbmV0IGFkZHIKCjIwMDUtMTItMDIgMTc6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIGJ1ZyAxMzcwODU2OiBpcCBhZGRyZXNzIGVuY29kaW5nIG9uIDY0Yml0CiAgICAgLSBzeW5jIHNubXBfc2V0X3Zhcl92YWx1ZSB3L3NubXBfYnVpbGRfdmFyX29wOiBBU05fSVBBRERSRVNTIGFzIGEgc3RyaW5nCgoyMDA1LTEyLTAyIDEzOjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1ZHAtbWliLmgsIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS5oCiwgdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlLmg6CgogICBhZGQgbWlzc2luZyBjb25maWdfcmVxIGZpbGVzCgoyMDA1LTEyLTAyIDEzOjEyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtbm9kZS5tMmk6CgogICBvbmx5IHByaW50IHJhbmdlcyBpZiB0aGV5IGV4aXN0CgoyMDA1LTEyLTAyIDEzOjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi5oOgoKICAgcmVtb3ZlIGV4dHJhIDsKCjIwMDUtMTItMDIgMTM6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvOiB1ZHBFbmRwb2ludFRhYmxlLmMKLCB1ZHBFbmRwb2ludFRhYmxlLmgsIHVkcEVuZHBvaW50VGFibGVfY29uc3RhbnRzLmgKLCB1ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdWRwRW5kcG9pbnRUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHVkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmMsIHVkcEVuZHBvaW50VGFibGVfaW50ZXJmYWNlLmgKOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMiAxMzowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS86IHRjcExpc3RlbmVyVGFibGUuYwosIHRjcExpc3RlbmVyVGFibGUuaCwgdGNwTGlzdGVuZXJUYWJsZV9jb25zdGFudHMuaAosIHRjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB0Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYywgdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuaAo6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAyIDExOjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBjb3VudGVyNjQncyB3aGVuIGRlZmluZWQgd2l0aCA2NGJpdCBsb25nIHZhcmlhYmxlcyBpbiB0aGUgQzY0IHN0cnVjdHVyZQoKMjAwNS0xMi0wMiAxMDo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYzoKCiAgIFVzZSAnY29weV9ud29yZCcgdG8gdG9rZW5pemUgZXh0ZXJuYWwgY29tbWFuZHMuCiAgIFRoaXMgbWVhbnMgdGhhdCBxdW90ZWQgc3RyaW5ncyBhcmUgaGFuZGxlZCBpbiB0aGUgbmF0dXJhbCBtYW5uZXIuCgoyMDA1LTEyLTAyIDEwOjMzICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBJdCBoZWxwcyBpZiB5b3UgYWN0dWFsbHkgY3JlYXRlIHRoZSBtYW4gcGFnZSBhcyB3ZWxsLCBEYXZlIQoKMjAwNS0xMi0wMiAwOTo1NSAgdGFuZGVycwoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIGFkZCB0aGUgcmVjZW50bHkgaW50cm9kdWNlZCBtYW51YWwgcGFnZXMKCjIwMDUtMTItMDIgMDk6NTAgIGR0czEyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wZC5pbnRlcm5hbC41LmRlZjoKCiAgIFRlbXBsYXRlIGZvciBkb2N1bWVudGluZyBpbnRlcm5hbCBzbm1wZCBjb25maWcgZGlyZWN0aXZlcy4KICAgKEkndmUgaWRlbnRpZmllZCBhbmQgbGlzdGVkIHRoZSBkaXJlY3RpdmVzIGNvbmNlcm5lZCwKICAgIGJ1dCBoYXZlbid0IHByb3ZpZGVkIGFueSBkZXNjcmlwdGlvbnMgb2Ygd2hhdCB0aGV5IGRvISkKCjIwMDUtMTItMDIgMDU6MzYgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgaW5ldC5jLCBpbmV0Ni5jLAogICAgIG1haW4uYywgbWFpbi5oLCBuZXRzdGF0LmgsIHJvdXRlLmM6CgogICBBbGlnbiB3aXRoIHdhcm5pbmcgZml4ZXMgZm9yIDUuMi4yCgoyMDA1LTEyLTAyIDA1OjMzICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBzbm1wdHJhbnNsYXRlIC1UZCBkaXNwbGF5IG9mIFVOSVRTCgoyMDA1LTEyLTAyIDAwOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGFkZGVkIG1mZC1wZXJzaXN0ZW5jZS5tMmkKCjIwMDUtMTItMDEgMTY6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS86IHRjcENvbm5lY3Rpb25UYWJsZS5jCiwgdGNwQ29ubmVjdGlvblRhYmxlLmgsIHRjcENvbm5lY3Rpb25UYWJsZV9jb25zdGFudHMuaAosIHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDE2OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvOgogICAgIHVzbURIVXNlcktleVRhYmxlLmMsIHVzbURIVXNlcktleVRhYmxlLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgsIHVzbURIVXNlcktleVRhYmxlX2VudW1zLmgKLCB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaCwgdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCjoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMTY6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlLzoKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlX2NvbnN0YW50cy5oLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHNubXBOb3RpZnlGaWx0ZXJUYWJsZV9pbnRlcmZhY2UuYywKICAgICBzbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTEyLTAxIDE1OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLzogaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5jCiwgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZS5jLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGUuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwdjZJbnRlcmZhY2VUYWJsZS9pcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlL2lwdjZJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGUvaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxNToxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvOiBpcFN5c3RlbVN0YXRzVGFibGUuYwosIGlwU3lzdGVtU3RhdHNUYWJsZS5oLCBpcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgKLCBpcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxMjowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaAosIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMi0wMSAxMToxMyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBBc3NvcnRlZCBtaW5vciB0d2Vha3MgYW5kIHdvcmRzbWl0aGluZy4KCjIwMDUtMTItMDEgMTA6NTAgIGR0czEyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBzbm1wZC5jb25mLjUuZGVmLAogICAgIHNubXBkLmV4YW1wbGVzLjUuZGVmOgoKICAgTW92ZSBzbm1wZC5jb25mIGV4YW1wbGVzIGludG8gYSBzZXBhcmF0ZSBtYW4gcGFnZSwKICAgYW5kIGV4YW1wbGUgdGhlIHJhbmdlIG9mIGV4YW1wbGVzIHByb3ZpZGVkLgogICAoTm90IGZpbmlzaGVkIHlldCwgYnV0IGl0J3MgcHJvYmFibHkgd29ydGggc3VibWl0dGluZwogICB0aGlzIHdoaWxlIHdlJ3JlIHN0aWxsIGluIHByZS1yZWxlYXNlIG1vZGUpCgoyMDA1LTEyLTAxIDEwOjQ5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLzoKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZS5jLCBpcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTItMDEgMDg6MDkgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgRHJvcCBib2d1cyAiLXAiIHBvcnQgb3B0aW9uIChhbmQgYXBwbHkgY29uc2lzdGVudCBpbmRlbnRhdGlvbikuCiAgIFNob3VsZCB0aGUgb3RoZXIgY2hhbmdlcyBzdWdnZXN0ZWQgaW4gYnVnICMxMjQ3MTY0IGJlIGFwcGxpZWQsIHRvbz8KCjIwMDUtMTItMDEgMDc6NDUgIGR0czEyCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgRG9uJ3QgY3Jhc2gtYW5kLWJ1cm4gb24gU05NUCBleGNlcHRpb25zIChzZWUgYnVnICMxMjc4ODA5KQoKMjAwNS0xMS0zMCAxOTo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLzogaW5ldE5ldFRvTWVkaWFUYWJsZS5jCiwgaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTMwIDE4OjQ3ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1MHNubXB2M3RyYXA6CgogICBSZXdyaXR0ZW4gZnJvbSBzY3JhdGNoIHRvIHZlcmlmeSBub0F1dGhOb1ByaXYsIGF1dGhOb1ByaXYgKmFuZCogYXV0aFByaXYgU05NUHYzIHRyYXBzLiBMZXQncyBuZXZlciBicmVhayB0aGlzIGFnYWluLgoKMjAwNS0xMS0zMCAxODo0NCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M3VzbWNvbmZpZ3RyYXBkOgoKICAgY3JlYXRlIG5vQXV0aE5vUHJpdiB1c2VyCgoyMDA1LTExLTMwIDE4OjQzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYmFzZToKCiAgIGludHJvZHVjZSAgdG8gc3BlY2lmeSB0aGUgZW5naW5lIElEIGZvciBjcmVhdGVVc2VyCgoyMDA1LTExLTMwIDE3OjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5jLCBpcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0zMCAxNzoyNSAgcnN0b3J5CgogICAqIHNubXBsaWIvZmlsZV91dGlscy5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmc7IGluaXQgdmFyCgoyMDA1LTExLTMwIDE2OjA4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIGZpeCBhdXRvbWF0aWMgdXNlciBjcmVhdGlvbiBmb3Igc2Vzc2lvbnMgdGhhdCBoYXZlIHByb2Jpbmcgb2ZmIG9yIGRlbGF5ZWQKCjIwMDUtMTEtMzAgMTY6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHJlZ2VuZXJhdGUgbWZkIGNvZGUKCjIwMDUtMTEtMzAgMTU6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCiwgaWZYVGFibGVfY29uc3RhbnRzLmgsIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwgaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICByZWdlbmVyYXRlIG1mZCBjb2RlCgoyMDA1LTExLTMwIDEzOjEwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLXNvbGFyaXMtYnVpbGQvUkVBRE1FOgoKICAgYWRkZWQgYSBSRUFETUUgZmlsZSB0aGF0IGhhcyBiZWVuIHNpdHRpbmcgaW4gbXkgZGlyZWN0b3J5IHVuLWNoZWNrZWQtaW4KCjIwMDUtMTEtMjkgMTg6MzYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLmluOgoKICAgcmVmZXIgdG8gYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUUgcmF0aGVyIHRoYW4gInRoZSB1Y2Qtc25tcCBmdHAgc2l0ZSIgZm9yIGlwZndjaGFpbnMKCjIwMDUtMTEtMjkgMTc6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywgaWZUYWJsZS5oCiwgaWZUYWJsZV9jb25zdGFudHMuaCwgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuaCwgaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBtZmQgY29kZQoKMjAwNS0xMS0yOSAxNDoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgdHlwbyBpbiBsb2cgbXNnCgoyMDA1LTExLTI1IDA5OjE2ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTYwc25tcG5ldHN0YXQsIFQyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIHVzZSBTS0lQCgoyMDA1LTExLTI1IDA1OjEyICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE2MHNubXBuZXRzdGF0LCBUMjAwc25tcHYyY3dhbGthbGw6CgogICBTa2lwIHRlc3RzIHRoYXQgYXJlIGtub3duIHRvIGZhaWwgd2hlbiBub3QgcnVuIGFzIHJvb3QuCiAgIChNYXkgbmVlZCB0byBiZSBleHRlbmRlZCB0byBvdGhlciBPL1MncyBhcyB3ZWxsKS4KCjIwMDUtMTEtMjQgMTg6MjQgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggdHlwbyBhbmQgbGF5b3V0CgoyMDA1LTExLTI0IDE4OjE0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICAgIFQwMzVzbm1wdjN0cmFwZHVzZXJtZ210LCBUMDQ5c25tcHYzaW5mb3JtcHJpdjoKCiAgIGZpeCB0ZXN0cyB0byB3b3JrIHdpdGggLS1kaXNhYmxlLXByaXZhY3kKCjIwMDUtMTEtMjMgMTk6NTYgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA1LTExLTIzIDE5OjIyICB0YW5kZXJzCgogICAqIE5FV1MsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW46CgogICBtYWtlICJjb25maWd1cmUgLS1kaXNhYmxlLWFnZW50IiBmaW5hbGx5IHdvcmsgKGZpeGVzIGJ1Z3MgMTAwNjQxNSwgOTA4NTcxKQoKMjAwNS0xMS0yMyAwODoxNCAgYWxleF9iCgogICAqIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcDoKCiAgIFdpbjMyOiBNU1ZDIGJ1aWxkIGZpeCBmb3IgbmV0c25tcG1pYnMuZHNwCgoyMDA1LTExLTIzIDA0OjExICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgTW92ZSBvcGVuaW5nIGJyYWNlIG91dCBvZiBhbHRlcm5hdGUgI2lmZGVmIGNsYXVzZXMKICAgKGNvbmZ1c2VzIGJyYWNlLW1hdGNoaW5nIGVkaXRvcnMhKQoKMjAwNS0xMS0yMiAxNjoyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZDoKCiAgIHVwZGF0ZSBkZXBzIGZvciBkZWxldGVkIGZpbGUKCjIwMDUtMTEtMjIgMDU6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIEJlZWYgdXAgdGhlICJyZWxvY2F0YWJsZSBleGVjIiB3YXJuaW5nIG1lc3NhZ2UuCgoyMDA1LTExLTIyIDA1OjM3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IFNjaGVkdWxlIE1JQiBjb25maWd1cmF0aW9uLgoKMjAwNS0xMS0yMSAyMDo0MCAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCB3aW4zMi9hZ2VudF9tb2R1bGVfaW5pdHMuaAosIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMjogIE1TVkMgYW5kIEN5Z3dpbiBjb21waWxlIGZpeGVzCgoyMDA1LTExLTIxIDE5OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmg6CgogICByZW1vdmUgdW51c2VkIGZpbGVzOyByZWltcGxlbWVudGVkIGluIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUKCjIwMDUtMTEtMjEgMDY6MjcgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aXNlIHRoZSBEaXNNYW4gRXZlbnQtTUlCIGRvY3VtZW50YXRpb24gdG8gbWF0Y2ggdGhlIG5ldyBpbXBsZW1lbnRhdGlvbi4KCjIwMDUtMTEtMjEgMDY6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgUHJvcGVybHkgZGV0ZWN0IGFsbCB0aHJlZSBzdHlsZXMgb2YgbW9uaXRvciBleHByZXNzaW9uIGF1dG9tYXRpY2FsbHkuCiAgIChUaGlzIG1ha2VzIHRoZSAnLXQnIG9wdGlvbiByZWR1bmRhbnQsIHRob3VnaCBpdCdzIHN0aWxsIGFjY2VwdGVkKQoKMjAwNS0xMS0yMCAxODo1MSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBDSEVDS0FORERJRSgpIHNob3VsZCBFWFBFQ1RSRVNVTFQgMAoKMjAwNS0xMS0yMCAxODozMCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIG1ha2UgdGhlIHRlc3QgYWxzbyBGQUlMIG9uICJXcm9uZyBUeXBlIChzaG91bGQgYmUgLi4uKSIKCjIwMDUtMTEtMjAgMTg6MjggIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgaW50cm9kdWNlIENIRUNLQU5ERElFKCkgdG8gRkFJTCBpZiBhIHBhdHRlcm4gKmlzKiBmb3VuZAoKMjAwNS0xMS0yMCAxODowMCAgdGFuZGVycwoKICAgKiBtaWJzL05FVC1TTk1QLVRDLnR4dDoKCiAgIHVwZGF0ZSBMQVNULVVQREFURUQgZmllbGQgdG8gcmVmbGVjdCByZWNlbnQgY2hhbmdlcwoKMjAwNS0xMS0yMCAxNzo0OCAgdGFuZGVycwoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGNsYXJpZnkgdGhhdCAiaG9zdCIgaXMgb25seSBlbmFibGVkIGJ5IGRlZmF1bHQgb24gdGhlIG1ham9yIHN1cHBvcnRlZCBwbGF0Zm9ybXMKCjIwMDUtMTEtMjAgMTc6MzUgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBmaXggZGVzY3JpcHRpb24gZm9yIGVuZ2luZUlECgoyMDA1LTExLTIwIDE3OjI3ICB0YW5kZXJzCgogICAqIE5FV1MsIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBub1BlcnNpc3RlbnRMb2FkIGFuZCBub1BlcnNpc3RlbnRTYXZlCgoyMDA1LTExLTIwIDE2OjMwICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIHVzZSAtcSBvbiBmaW5hbCBjdnN1cGRhdGU7IGFkZCBzcGFjaW5nCgoyMDA1LTExLTIwIDE2OjE3ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE3ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTcgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmU0ICkKCjIwMDUtMTEtMjAgMTY6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjE2ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNSAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4zLnByZTQgKQoKMjAwNS0xMS0yMCAxNjoxNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlNCApCgoyMDA1LTExLTIwIDE2OjEzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMjAgMTY6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTEtMjAgMTY6MDUgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF91dGlsLjMsCiAgICAgbmV0c25tcF91dGlsaXRpZXMuMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMS0yMCAxNTo1NSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICAtIHJlbW92ZSBob3d0byBvbiBsaWJ0b29sIHZlcnNpb25pbmcgbWF0Y2ggcmVsZWFzZSBudW1iZXJzCiAgIC0gdXBkYXRlIHN1Z2dlc3RlZCBjb25maWd1cmUgdGVzdCBvcHRpb25zCgoyMDA1LTExLTIwIDE1OjM4ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIHVzZSBlbmFibGUtaXB2NiBpbnN0ZWFkIG9mIHNwZWNpZnlpbmcgdHJhbnNwb3J0cwoKMjAwNS0xMS0yMCAxNTozNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMjAgMTU6MzUgIHJzdG9yeQoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYWRkIG1pc3NpbmcgOwoKMjAwNS0xMS0yMCAxNDo0MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIGJ1ZyAxMzQ3NzA5OiBzbm1wZCBkb2VzbnQgaGFuZGxlIGxhcmdlIGxvZyBmaWxlcyAoPj0gMkdCKSBncmFjZWZ1bGx5CiAgICAgLSBwYXJ0aWFsIGZpeDogb3Blbi90cnVuY2F0ZSBsb2cgZmlsZXMgYXQgc3RhcnR1cAoKMjAwNS0xMS0yMCAxNDozOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICB1c2UgbmV3IGRzIGJvb2xlYW4gZm9yIGFwcGVuZCBsb2dmaWxlcywgaW5zdGVhZCBvZiBsb2NhbCB2YXIKCjIwMDUtMTEtMjAgMTQ6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgbmV3IGxpYiBib29sZWFuIGZvciBhcHBlbmQgbG9nZmlsZXMKCjIwMDUtMTEtMTggMTY6NTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBzdXBwb3J0IGZvciBjb3VudGVycyBpbiByZWFkX2NvbmZpZ19yZWFkX21lbW9yeQoKMjAwNS0xMS0xOCAxNDoyMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFsbG93IHNlc3Npb24gcGFyYW1zIHRvIG92ZXJyaWRlIGdsb2JhbCBkZWZhdWx0cwoKMjAwNS0xMS0xOCAxMDo1MSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpc2UgdGhlIGludHJvZHVjdGlvbiB0byBzbm1wZCBjb25maWcgZmlsZXMuCgoyMDA1LTExLTE4IDEwOjM2ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBEaXNNYW4gRXZlbnQgTUlCIGRvY3VtZW50YXRpb24uCgoyMDA1LTExLTE3IDIwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYzoKCiAgIGFjY291bnQgZm9yIHBvc3NpYmxlIE5VTEwgdmFsdWUgZnJvbSBmdW5jdGlvbgoKMjAwNS0xMS0xNyAxNzo0NSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBpbmNsdWRlIENPTkZJR1VSRV9PUFRJT05TIGluIHJlc3VsdHMgZW1haWwKCjIwMDUtMTEtMTcgMTc6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgaWZkZWYgX19hcGxoYSwgaWZkZWYgb3V0IG9wdGltaXphdGlvbiBjYXVzaW5nIGFscGhhLWxpbnV4MSB0byBzZWdmYXVsdAoKMjAwNS0xMS0xNyAxNDoyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBhZGQgbWVtb3J5L3Ztc3RhdHMgZm9yIGZyZWVic2Q2CgoyMDA1LTExLTE3IDEyOjU2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZG9uJ3QgZXhwbGljdGx5IGNvbmZpZyBpcHY2IHRyYW5zcG9ydHM7IGVuYWJsZS1pcHY2IGluc3RlYWQKCjIwMDUtMTEtMTcgMTI6NDEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgLSB1c2Ugc2VuZG1haWwgb24gZnJlZWJzZCB0b28KICAgLSBhZGQgRXJyb3JzLVRvIGhlYWRlciB0byBtYWlsCiAgIC0gZWNobyB0by9zdWJqZWN0IHRvIHN0ZG91dAoKMjAwNS0xMS0xNyAxMTo0NSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0cmFwIGRlc3RpbmF0aW9uIGhhbmRsaW5nLgoKMjAwNS0xMS0xNyAxMToxNiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBNaW5vciB3b3Jkc21pdGhpbmcgYW5kIGZvcm1hdHRpbmcgY29ycmVjdGlvbnMuCgoyMDA1LTExLTE3IDExOjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgZXhjbHVkZSBpbnRlcmZhY2UgZ2V0L25leHQgcHJvdG90eXBlcyBpZiB1c2luZyBtZmQgcmV3cml0ZXMKCjIwMDUtMTEtMTcgMTE6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBleHBsaWNpdCBjYXN0IHRvIG1hdGNoIHByb3RvdHlwZQoKMjAwNS0xMS0xNyAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZTsgYWRkIEMrKyBleHRlcm4gd3JhcHBlcnMKCjIwMDUtMTEtMTcgMTE6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgcXVpdGUgY29tcGlsZXI6IGFkZCBoZWFkZXJzIGZvciBtaXNzaW5nIHByb3RvdHlwZXMKCjIwMDUtMTEtMTcgMTA6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgc3BlY2lhbCBjYXNlIGZvciBvcGVuYnNkIG1haWwKCjIwMDUtMTEtMTcgMDk6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaDoKCiAgIENsYXJpZnkgdGhhdCB0aGUgImV2ZW50LW1pYi5oIiB3YXJuaW5nICppcyogYSB3YXJuaW5nIHJhdGhlciB0aGFuCiAgIHNpbXBseSBhIG5vdGUgKHdoaWNoIHdvdWxkIGJlbG9uZyBpbiB0aGUgZG9jdW1lbnRhdGlvbikKCjIwMDUtMTEtMTYgMTY6MzYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMS0xNiAxNjozMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG5ldGJzZCB3YW50cyBuZXRpbmV0L2lwNi5oIGJlZm9yZSBuZXRpbmV0Ni9pbjZfcGNiLmgKCjIwMDUtMTEtMTYgMTY6MjYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMS0xNiAxNjoyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGRpc2FsbG93IGlwdjYgdHJhbnNwb3J0cyBpZiBpcHY2IG5vdCBlbmFibGVkCgoyMDA1LTExLTE2IDE1OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOgogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKOgoKICAga2VlcCBjb21waWxlciBoYXBweTogZXhwbGljaXQgYXJndW1lbnQgY2FzdAoKMjAwNS0xMS0xNiAxNToyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKLCB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmMKLCB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBDKysgY2xlYW51cDogZG9uJ3QgdXNlIG5ldyBhcyB2YXJpYWJsZSBuYW1lCgoyMDA1LTExLTE2IDE1OjIwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlCgoyMDA1LTExLTE2IDE1OjE4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGtlZXAgY29tcGlsZXIgaGFwcHk6IGV4cGxpY2l0IGFyZ3VtZW50IGNhc3QKCjIwMDUtMTEtMTYgMTU6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCjoKCiAgIG1vdmUgaW5pdGlhbGl6ZV90YWJsZV9pZlhUYWJsZSBwcm90b3R5cGUgdG8gaGVhZGVyCgoyMDA1LTExLTE2IDE1OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFkZCBwcm90b3R5cGVzIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBpbnRlcmZhY2UgZnVuY3Rpb25zCgoyMDA1LTExLTE2IDE1OjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgQysrIGV4dGVybiAiQyIgd3JhcHBlcnMKCjIwMDUtMTEtMTYgMTU6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBpbmNsdWRlIGhlYWRlciB3L25lZWRlZCBwcm90b3R5cGUKCjIwMDUtMTEtMTYgMTQ6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9pbnRlcmZhY2UuaAosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgQysrIGNsZWFudXA6IGRvbid0IHVzZSBuZXcgYXMgdmFyaWFibGUgbmFtZQoKMjAwNS0xMS0xNiAxNDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIC0gQysrIGNsZWFudXAKICAgICAtIGRvbid0IHVzZSBfX1AoKSAobm93aGVyZSBlbHNlIGluIHRoZSBjb2RlIHVzZXMgaXQpCiAgICAgLSBkb24ndCB1c2UgbmV3IGFzIGEgdmFyaWFibGUgbmFtZQoKMjAwNS0xMS0xNiAxMjoxNyAgaGFyZGFrZXIKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnhzOgoKICAgLy8gLT4gLyogKi8KCjIwMDUtMTEtMTYgMTA6NDIgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5oOgoKICAgUHJvdmlkZSBhIGRlZmluaXRpb24gZm9yIE5JX01BWEhPU1QgaWYgbWlzc2luZy4KCjIwMDUtMTEtMTYgMTA6MTAgIHRhbmRlcnMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYwosIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXAKLCB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lOgoKICAgYnVpbGQgZml4ZXMgZm9yIHNvbGUgLS1kaXNhYmxlLXNubXB2MSAoKndpdGhvdXQqIC0tZGlzYWJsZS1zbm1wdjJjKQoKMjAwNS0xMS0xNiAwODowNiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmMsIGFwcHMvc25tcHRyYXBkX2F1dGguYwo6CgogICBidWlsZCBmaXggZm9yIC0tZGlzYWJsZS1zbm1wdjEvLS1kaXNhYmxlLXNubXB2MmMKCjIwMDUtMTEtMTYgMDY6MjAgIHRhbmRlcnMKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGJ1aWxkIGZpeCBmb3IgLS1kaXNhYmxlLXNubXB2MS8tLWRpc2FibGUtc25tcHYyYwoKMjAwNS0xMS0xNiAwNTo1OCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBCZXR0ZXIgbGF5b3V0IG9mICdpbmplY3RfaGFuZGxlcicgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTEtMTYgMDU6MDkgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgbG9hZCBhdmVyYWdlIGFuZCBmaWxlIG1vbml0b3JpbmcgY29uZmlndXJhdGlvbi4KICAgKHBsdXMgYXNzb3J0ZWQgdGlkeWluZyB1cCkuCgoyMDA1LTExLTE2IDA0OjU4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHRoZSBkaXNrIG1vbml0b3JpbmcgY29uZmlndXJhdGlvbgoKMjAwNS0xMS0xNiAwNDo1NyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSB0aGUgcHJvY2VzcyBtb25pdG9yaW5nIGNvbmZpZ3VyYXRpb24KCjIwMDUtMTEtMTYgMDQ6NTcgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIEhvc3QgUmVzb3VyY2VzIGNvbmZpZ3VyYXRpb24KCjIwMDUtMTEtMTYgMDQ6NTYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUmV2aWV3IGFuZCByZXZpc2UgdGhlIHN5c3RlbSBncm91cCBjb25maWd1cmF0aW9uLgoKMjAwNS0xMS0xNiAwNDo1NSAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBDb25zb2xpZGF0ZSB0aGUgInN5c3RlbSBpbmZvcm1hdGlvbiIsIGFuZCAiYWdlbnQgYmVoYXZpb3VyIiBjb25maWd1cmF0aW9uCiAgIGRpcmVjdGl2ZXMgdG8gYmUgZG9jdW1lbnRlZCB0b2dldGhlciAoYXMgdHdvIGRpc3RpbmN0IHNlY3Rpb25zKS4KCjIwMDUtMTEtMTUgMjE6MTQgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHVuY29tbWVudCBvdXQgY2xlYW51cCBjb2RlCgoyMDA1LTExLTE1IDIxOjEwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBleHRyYSBlcnJvciBjaGVja2luZyBmb3IgZnJlZWJzZAoKMjAwNS0xMS0xNSAyMTowOCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCjoKCiAgIHJlbW92ZSBjcHAgI3dhcm5pbmcgbGluZXMKCjIwMDUtMTEtMTUgMjE6MDQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wOgoKICAgLSB1c2UgZmluZCBmb3VuZCBieSBjb25maWd1cmUKICAgLSB0d2VhayBjb21tZW50Y2hlY2sgcmVnZXhwIHRvIG1pc3MgcmVnZXhwIGluIHBlcmwgaGVhZGVyCgoyMDA1LTExLTE1IDIwOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIC0gc29sYXJpcyBmaXhlcwogICAgIC0gZG9uJ3Qgc2V0IHNvcnRlZCBmbGFnIGZvciBzb2xhcmlzIChkYXRhIG9uIHNmIGNmIDUuOSBpcyBub3Qgc29ydGVkKQogICAgIC0gcmV2ZXJzZSBjb25kaXRpb24gb24gaWRsZSB0ZXN0IHNvIHNvbWUgZGF0YSBnZXRzIHJldHVybmVkCgoyMDA1LTExLTE1IDE5OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jCjoKCiAgIHVzZSBzdGF0ZSBmcm9tIGFycCBlbnRyeSBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZQoKMjAwNS0xMS0xNSAxOToyNCAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIGRlZmF1bHQgcm93IHN0YXR1cyB0byBhY3RpdmUKCjIwMDUtMTEtMTUgMTk6MjQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDY1YWdlbnRleHRlbmQ6CgogICBpbnRyb2R1Y2Ugc25tcGQgdGVzdCBmb3IgZXh0ZW5kCgoyMDA1LTExLTE1IDE5OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jOgoKICAgLSBkb24ndCBpZ25vcmUgaW5jb21wbGV0ZSBlbnRyaWVzCiAgIC0gc2V0IHN0YXRlIHRvIHJlYWNoYWJsZSBpZiAhIGluY29tcGxldGUKCjIwMDUtMTEtMTUgMTk6MDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMjAwc25tcHYyY3dhbGthbGw6CgogICBmaXggdHlwbwoKMjAwNS0xMS0xNSAxODo0NiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjFhZ2VudHBlcmw6CgogICBzb21lIG9wdGltaXphdGlvbgoKMjAwNS0xMS0xNSAxODozMiAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudHg6CgogICBkb2N1bWVudCBkZWZhdWx0IHBpbmcgaW50ZXJ2YWwKCjIwMDUtMTEtMTUgMTg6MTIgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciB0d2Vha3MKCjIwMDUtMTEtMTUgMTc6NDYgIHRhbmRlcnMKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIG1pbm9yIHR3ZWFrcwoKMjAwNS0xMS0xNSAxMTozNyAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBwaW5nLCBwb25nOyByZXN0b3JlIG5ldHNubXBfcnVubmluZyBjaGFuZ2VzCgoyMDA1LTExLTE1IDEwOjUxICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIEFnZW50WCBjb25maWcuCgoyMDA1LTExLTE1IDA5OjM1ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIGRsbW9kLCBwcm94eSBhbmQgU01VWCBkZXNjcmlwdGlvbnMKICAgKHBsdXMgYXNzb3J0ZWQgbWlub3IgdHdlYWtzKQoKMjAwNS0xMS0xNSAwNToyOCAgZHRzMTIKCiAgICogRkFROgoKICAgRXhwYW5kIGRpc2N1c3Npb24gb2YgbWliMmMgY29uZmlncy4KCjIwMDUtMTEtMTQgMjA6MTkgIGFsZXhfYgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBXaW4zMjogIHNubXBuZXRzdGF0IElQdjYgYnVpbGQgZml4ZXMKCjIwMDUtMTEtMTQgMTk6MTEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDYxYWdlbnRwZXJsOgoKICAgV2UgZmluYWxseSBoYXZlIHNubXBkIGVtYmVkZGVkIHBlcmwgdGVzdGluZy4gRmVlbCBmcmVlIHRvIHJldmlldy9zY3JlYW0vYmFjayBvdXQgLS0gb3IgYXBwbGF1ZC4KCjIwMDUtMTEtMTQgMTg6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2ZpbGVfdXRpbHMuYzoKCiAgIC0gcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50cwogICAtIGFkZCBhZGRpdGlvbmFsIGVycm9yIGhhbmRsaW5nL2xvZ2dpbmcKICAgLSBtb3JlIGNvbW1lbnRzCiAgIC0gZG94eWdlbiBkb2NzCgoyMDA1LTExLTE0IDE4OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFNURERvbWFpbi5jLCBzbm1wbG9jYWxzbS5jOgoKICAgcmVtb3ZlIEMrKyByZWxhdGVkIGNvbW1lbnRzCgoyMDA1LTExLTE0IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgZG9uJ3QgbWFudWFsIHVwZGF0ZSB0byBTRiBzZXJ2ZXJzCgoyMDA1LTExLTE0IDE3OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgLSB1bmRlZmluZSAgTkVUU05NUF9QQVJBTk9JRF9MRVZFTF9ISUdILCBkb2N1bWVudCB3aGF0IGl0IGRvZXMKICAgLSB1cGRhdGUgbG9jayBhc3NlcnQvd2FybiBjYXNlcyBmb3IgbG9jayBwZXIgY2FsbGJhY2sgZXhwZWN0YXRpb25zCgoyMDA1LTExLTE0IDE3OjI4ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzUHJlZml4VGFibGUvaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICByZW1vdmUgY29tbWVudGVkIG91dCBjb2RlCgoyMDA1LTExLTE0IDE3OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfaW9jdGwuYzoKCiAgIHJlbW92ZSBjb21tZW50ZWQgb3V0IGluY2x1ZGVzCgoyMDA1LTExLTE0IDE3OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jOgoKICAgcmVtb3ZlIGMrKyBzdHlsZSBjb21tZW50ZWQgb3V0IGNvZGUKCjIwMDUtMTEtMTQgMTc6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgcmVtb3ZlIHRlbXBvcmFyeSBjb21tZW50cwoKMjAwNS0xMS0xNCAxMzoxNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBmaXggYnVnIDEzNTI1NTQ6IFNlZyBmYXVsdCBpbiBuZXRzbm1wX2NvbnRhaW5lcl90YWJsZV9yb3dfaW5zZXJ0CgoyMDA1LTExLTE0IDEzOjEyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gbW92ZSBydW5uaW5nIGZsYWcgYmFjayBpbnRvIGFwcGxpY2F0aW9ucwogICAtIHJlc3RvcmUgaW5maW5pdGUgbG9vcCBpbiBnZXQtbmV4dCBsb29wIGhhbmRsaW5nCgoyMDA1LTExLTE0IDExOjMyICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgc211eHNvY2tldCBhbmQgZW5oYW5jZSBBZ2VudFgqCgoyMDA1LTExLTE0IDEwOjU0ICB0YW5kZXJzCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWlub3IgZml4ZXMgYWZ0ZXIgcmV2aWV3aW5nIERhdmUncyBjaGFuZ2VzCgoyMDA1LTExLTE0IDEwOjQzICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIGVtYmVkZGVkIHBlcmwgZG9jdW1lbnRhdGlvbi4KCjIwMDUtMTEtMTQgMDY6MzUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRml4IGEgY291cGxlIG9mIHR5cG9zLCBhbmQgc3BlY2lmeSBhIG1vcmUgZGVmaW5pdGUgU0VUCiAgIHByb3RvY29sIGZvciAncGFzc19wZXJzaXN0JyAtIGNvbXBhdGlibGUgd2l0aCB0aGUKICAgY3VycmVudCBiZWhhdmlvdXIsIGJ1dCBvcGVuaW5nIHRoZSBkb29yIGZvciBtb3JlCiAgIGZsZXhpYmxlIGhhbmRsaW5nIGluIHRoZSBmdXR1cmUuCgoyMDA1LTExLTE0IDA2OjI5ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFJldmlldyBhbmQgcmV2aXNlIHBhc3MtdGhyb3VnaCBzdXBwb3J0LgoKMjAwNS0xMS0xNCAwNjoyMiAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgYW5kIHJldmlzZSAiZXhlYyIvImV4dGVuZCIgZG9jdW1lbnRpb24KCjIwMDUtMTEtMTQgMDU6NTUgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQ29uc29saWRhdGUgYWxsIHRoZSBleHRlbnNpb24gbWVjaGFuaXNtcyB0byBiZSBkb2N1bWVudGVkIHRvZ2V0aGVyLgoKMjAwNS0xMS0xNCAwNTo1MyAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBSZXZpZXcgdGhlIEFjY2VzcyBDb250cm9sIHNlY3Rpb24sIGluY2x1ZGluZyBzZXBhcmF0aW9uIGludG8KICAgZGlzdGluY3Qgc3Vic2VjdGlvbnMuCgoyMDA1LTExLTE0IDA1OjUyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFNpbXBsZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYXV0aCogZGlyZWN0aXZlcy4KCjIwMDUtMTEtMTQgMDQ6NDEgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYzoKCiAgIGZpeCB0eXBvCgoyMDA1LTExLTE0IDAxOjUyICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGNoZWNrIGZvciBncGcga2V5IGluc3RlYWQgb2YgdXNlcmlkCgoyMDA1LTExLTE0IDAxOjQ3ICByc3RvcnkKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGFkZCBvcHRpb24gdG8gcmVwZWF0IGZhaWxlZCBzdGVwcwoKMjAwNS0xMS0xNCAwMTo0NCAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBwZXJsL09JRC9PSUQucG0sCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0xNCAwMTozOSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM5ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM4ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozOCAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4zLnByZTMgKQoKMjAwNS0xMS0xNCAwMTozNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMyApCgoyMDA1LTExLTE0IDAxOjM3ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMTQgMDE6MzYgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbm90ZSBhZ2VudHggc3ViYWdlbnQgY29ubmVjdCBhZnRlciBjb25maWdzIGZpeAoKMjAwNS0xMS0xNCAwMToyNiAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTEtMTQgMDE6MjUgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9vaWRfc3Rhc2guMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG5ldHNubXBfcm93X21lcmdlLjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgICBuZXRzbm1wX3NubXBfYWdlbnQuMywgbmV0c25tcF9zbm1wX2FsYXJtLjMsCiAgICAgbmV0c25tcF9zbm1wX2NsaWVudC4zLCBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLAogICAgIG5ldHNubXBfc25tcF9wZHUuMywgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywKICAgICBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsIG5ldHNubXBfdGFibGUuMywKICAgICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhLjMsIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICAgIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywgbmV0c25tcF91dGlsLjMsCiAgICAgbmV0c25tcF91dGlsaXRpZXMuMywgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsCiAgICAgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMS0xNCAwMToxOSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA1LTExLTE0IDAxOjEwICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0xNCAwMDoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZW1vdmUgdW5uZWVkZWQgcmVwb3NpdG9yeSBzcGVjCgoyMDA1LTExLTEzIDIyOjEwICBhbGV4X2IKCiAgICogd2luMzIvOiBNYWtlZmlsZS5pbiwgaW5zdGFsbC1uZXQtc25tcC5iYXQsCiAgICAgZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgLVdpbjMyOiBBZGQgbWlzc2luZyBtaWIyYy1kYXRhIHRvIGluc3RhbGxlcgogICAtV2luMzI6IFVzZSB3aWxkY2FyZHMgaW4gaW5zdGFsbGVyIGZvciBpbnN0YWxsaW5nIGZpbGVzIHRvIGhlbHAgcHJldmVudAogICAgbWlzc2luZyBmaWxlcy4KCjIwMDUtMTEtMTMgMjI6MDAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW4sIGFnZW50L3NubXBfYWdlbnQuYywKICAgICBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBuZXcgbmV0c25tcF9ydW5uaW5nIGdsb2JhbCBpbiBhZ2VudCBsaWIKICAgICAtIHVzZWQgaW4gcGxhY2Ugb2Ygd2hpbGUoMSkgaW4gZ2V0IG5leHQgcHJvY2Vzc2luZyBsb29wCiAgICAgLSBkYWVtb25zIHcvc2lnaGFuZGxlciB1cGRhdGVkIHRvIGNsZWFyIGZsYWcgb24gc2lndGVybQoKMjAwNS0xMS0xMSAyMTo1NSAgYWxleF9iCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIFdpbjMyOiAgRml4IE5JX01BWEhPU1QgZGVmaW5lLgoKMjAwNS0xMS0xMSAyMToxMSAgYWxleF9iCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgV2luMzI6IFdvcmsgYXJvdW5kIGZvciBidWcgMTI3ODc0MzogIElmIHRyeWluZyB0byByZXZlcnNlIGxvb2t1cAogICAxMjcuMC4wLjEsIHJldHVybiAnbG9jYWxob3N0JyB0byBwcmV2ZW50IFdpbmRvd3MgZnJvbSByZXR1cm5pbmcgdGhlCiAgIGxvY2FsIGNvbXB1dGVyIG5hbWUgYmVjYXVzZSBpdCBpZ25vcmVzIHRoZSBob3N0cyBmaWxlLgoKMjAwNS0xMS0xMCAxOTo0OCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMTYwc25tcHYyY2J1bGtnZXQ6CgogICBmaXggdHlwbwoKMjAwNS0xMS0xMCAxOToxOCAgdGFuZGVycwoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGZpeCBzeW50YXggdHlwbwoKMjAwNS0xMS0xMCAxODo1NSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNjBzbm1wbmV0c3RhdDoKCiAgIGNsYXJpZnkgdGhhdCB0aGlzIHRlc3QgcmVxdWlyZXMgYSB3b3JraW5nIHVkcFRhYmxlCgoyMDA1LTExLTEwIDE4OjIyICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaDoKCiAgIGJ1aWxkIGZpeCBmb3IgT3BlbkJTRC9TUEFSQyAzLjcKCjIwMDUtMTEtMTAgMTQ6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrCiAgICAgLSBwcm90ZWN0IGFnYWluc3QgbXVsdGlwbGUgY2FsbHMgdG8gc3ViYWdlbnRfaW5pdAogICAgIC0gZG9uJ3QgY29ubmVjdCB0byBtYXN0ZXIgaW4gc3ViYWdlbnRfaW5pdCwgaW5zdGVhZCByZWdpc3RlciBQT1NUX0NPTkZJRwogICAgICAgY2FsbGJhY2sgdG8gZG8gc28KCjIwMDUtMTEtMTAgMTQ6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICAtIGZpbmVyIGdyYWluZWQgbG9ja2luZyBvZiBjYWxsYmFja3MgKHBlciBzdWJpZCksIGFsbG93aW5nIGEgY2FsbGJhY2sgdG8KICAgICBtYW5pcHVsYXRlIChyZWcvdW5yZWcpIG90aGVyIGNhbGxiYWNrcwogICAtIG1vcmUgZGVidWdnaW5nCiAgIC0gYWRkIHN0YXRpYyBmbGFnIGZvciBpbml0CiAgICAgLSBtZW1zZXQgYW5kIGluaXQgdmFyaWFibGVzIGluIGluaXRfY2FsbGJhY2sgaWYgbm90IGRvbmUgeWV0CiAgICAgLSBjYWxsIGluaXRfY2FsbGJhY2ssIGlmIG5lZWRlZCwgZnJvbSBhbGwgZnVuY3Rpb25zCgoyMDA1LTExLTEwIDE0OjE1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcmsKICAgICByZXN0b3JlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChubyBzdWJhZ2VudCBpbml0IGluIGluaXRfbWFzdGVyX2FnZW50KCkpCgoyMDA1LTExLTEwIDE0OjEyICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIGFnZW50eCBpbml0IHJld29yazoKICAgICByZXN0b3JlIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IChjYWxsIHN1YmFnZW50IGluIGluIGluaXRfYWdlbnQpCgoyMDA1LTExLTEwIDA1OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC5oLCBldmVudC1taWIuaCwKICAgICBvbGQtZXZlbnQtbWliLmg6CgogICBTcGxpdCBvcmlnaW5hbCBhbmQgbmV3IEV2ZW50IE1JQiBpbXBsZW1lbnRhdGlvbnMgaW50byBkaXN0aW5jdAogICAibW9kdWxlIGdyb3VwIiBoZWFkZXJzLCBhbmQgdXNlIHRoZSBvcmlnaW5hbCBuYW1lIHRvIHdhcm4gb2YgdGhlIGNoYW5nZXMuCgoyMDA1LTExLTEwIDA1OjEwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBzdXBwb3J0IGZvciBNSUIgbW9kdWxlcyB0byBnZW5lcmF0ZSBjb25maWd1cmUgd2FybmluZ3Mgb3IgZXJyb3JzCgoyMDA1LTExLTEwIDA0OjQ2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogbWFpbi5jLCBuZXRzdGF0LmgsIHJvdXRlLmM6CgogICBTaWxlbmNlIGEgY291cGxlIG9mIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA1LTExLTEwIDA0OjQ1ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBEb24ndCBjaG9rZSBvbiBtaXNzaW5nIGludGVyZmFjZXMgKGFuZCBzaWxlbmNlIGEgY291cGxlIG9mIGNvbXBpbGVyIHdhcm5pbmdzKQoKMjAwNS0xMS0xMCAwNDo0NCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQuYywgaW5ldDYuYzoKCiAgIFN1cHByZXNzIGhlYWRlcnMgZm9yIGVtcHR5IFRDUCBkaXNwbGF5cyAoYW5kIGZpeCBhIG1pbm9yIHR5cG8pCgoyMDA1LTExLTA5IDIxOjMzICBhbGV4X2IKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIC1XaW4zMjogRm9yY2UgRXZlbnQgTG9nLCBTQ00sIHJlZ2lzdHJ5IGV0YyB0byB1c2UgbG9uZwogICAgbmFtZSBmb3Igc2VydmljZSAoTmV0LVNOTVAgQWdlbnQgaW5zdGVhZCBvZiBzbm1wZCkuICBOZWVkZWQKICAgIGJlY2F1c2Ugb2YgbmV3IC1uIG9wdGlvbiBpbiBzbm1wZC4gIE5vdGU6ICBUaGUgc25tcGQgLW4gb3B0aW9uCiAgICBkb2VzIG5vdCBjaGFuZ2UgdGhlIFdpbmRvd3Mgc2VydmljZSBuYW1lIGV0Yywgb25seSB0aGUgY29uZmlnCiAgICBmaWxlIGxvYWRlZC4KCjIwMDUtMTEtMDkgMTk6MzQgIHRhbmRlcnMKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgICJtYWtlIHRlc3QtbWlicyIgc3RpbGwgd29uJ3Qgd29yayBpZiBidWlsZCBkaXIgIT0gc291cmNlIGRpciwgYnV0IGl0J3MgY2xvc2VyIG5vdwoKMjAwNS0xMS0wOSAxODo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGFnZW50eF9jb25maWcuaCwgc3ViYWdlbnQuaDoKCiAgIGFnZW50eCBpbml0IHJld29yazogdXBkYXRlIHByb3RvdHlwZXMgZm9yIHJlbmFtZWQgZnVuY3Rpb25zCgoyMDA1LTExLTA5IDE4OjI0ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZGVidWcgbWVzc2FnZSBzaG91bGQgbWF0Y2ggY29kZQoKMjAwNS0xMS0wOSAxNzozOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvLmN2c2lnbm9yZSwKICAgICB1ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBleGVjdXRhYmxlcywgbWFrZWZpbGVzLCB0eHQgZmlsZXMsIHN1YmFnZW50IGZpbGVzCgoyMDA1LTExLTA5IDE3OjMxICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBpbmNsdWRlCgoyMDA1LTExLTA5IDE3OjI4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSBzcGVjaWZpYyBlcnJvciByZWdleHAKCjIwMDUtMTEtMDkgMTc6MjYgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYWdlbnR4IGluaXQgcmV3b3JrOiB1cGRhdGUgZm9yIGZ1bmN0aW9uIG5hbWUgY2hhbmdlcwoKMjAwNS0xMS0wOSAxNzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcmsKICAgICAtIGlmZGVmIGVudGlyZSBtb2R1bGUgYmFzZWQgb24gdXNpbmcgYWdlbnR4IHN1YmFnZW50IG1vZHVsZQogICAgIC0gcmVuYW1lIGluaXQgZnVjbnRpb24gc28gd2UgY2FuIGNvbnRyb2wgd2hlbiBpdCBpcyBjYWxsZWQKICAgICAtIHJlbW92ZSBzdWJhZ2VudF9wcmVfaW5pdAogICAgICAgLSBjb25maWcgc3R1ZmYgbW92ZWQgaW50byBhZ2VudHhfY29uZmlnLmMKICAgICAgIC0gY29ubmVjdGlvbiBlc3RhYmxpc2htZW50IG1vdmVkIHRvIHN1YmFnZW50X2luaXQsIG5vdyB0aGF0IGl0J3MgY2FsbGVkCiAgICAgICAgIGFmdGVyIGNvbmZpZ3MgaGF2ZSBiZWVuIHJlYWQKCjIwMDUtMTEtMDkgMTc6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgLSBjb25zb2xpZGF0ZSBtYXN0ZXIgYW5kIHN1YmFnZW50IGNvbmZpZ3MgaW4gdGhpcyBmaWxlCiAgICAgLSBzbGlnaHQgY29kZSByZS1vcmcgKG5vIGNoYW5nZXM7IG1vdmUgYWdlbnR4IHNvY2tldCBwYXJzaW5nIHRvIHRvcCkKICAgICAtIHJlZ2lzdGVyIHBpbmcgaW50ZXJ2YWwgY29uZmlnIGFuZCBzZXQgZGVmYXVsdAogICAgIC0gcmVuYW1lIGluaXQgZnVuY3Rpb24gc28gY29uZmlndXJlIHdvbid0IGFkZCBpdCB0byBtb2R1bGVzIGluaXRzLCBzbyB3ZQogICAgICAgY2FuIGNhbGwgaXQgd2hlbiB3ZSB3YW50IGl0IHRvIGJlIGNhbGxlZAoKMjAwNS0xMS0wOSAxNzoxOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gYWdlbnR4IGluaXQgcmV3b3JrOiBpbml0IHN1YmFnZW50IGluIGluaXRfbWFzdGVyX2FnZW50CiAgIC0gYXNzZXJ0IGlmIHJvbGUgaXNuJ3QgbWFzdGVyIG9yIHN1Yi1hZ2VudAoKMjAwNS0xMS0wOSAxNzoxNiAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBhZ2VudHggaW5pdCByZXdvcmsKICAgICAtIGRvbid0IGluaXQgc3ViYWdlbnQgaGVyZSAoY29uZmlncyBoYXZlbid0IGJlZW4gcmVhZCB5ZXQpCiAgICAgLSBvbmx5IGluaXQgbWFzdGVyL3N1YiBjb25maWdzCgoyMDA1LTExLTA5IDE3OjEyICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICB1cGRhdGUgZm9yIG5ldyB0YWJsZXMKCjIwMDUtMTEtMDggMDc6MjEgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBpZi5jLCBtYWluLmMsIG5ldHN0YXQuaDoKCiAgIEltcGxlbWVudCBPcGVuL05ldEJTRC1zdHlsZSBvY3RldCBpbnRlcmZhY2UgZGlzcGxheS4KCjIwMDUtMTEtMDggMDc6MTcgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIFJpZ2h0LWp1c3RpZnkgaGVhZGluZ3MgZm9yIGNvdW50ZXIgdmFsdWVzLgogICAobG9va3MgbmVhdGVyIHdoZW4gaW5kaXZpZHVhbCB2YWx1ZXMgYmVjb21lIHJlbGF0aXZlbHkgd2lkZSkKCjIwMDUtMTEtMDggMDc6MDQgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYzoKCiAgIEZpeCBwcm9ibGVtcyB3YWxraW5nIHRoZSBJUHY2IGNvbm5lY3Rpb24gdGFibGVzLgoKMjAwNS0xMS0wOCAwNjo1OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBPbmx5IHNjaGVkdWxlIGF1dG9tYXRpYyBsb2FkaW5nIG9uY2UgZm9yIGFueSBnaXZlbiBjYWNoZS4KCjIwMDUtMTEtMDcgMjI6NDYgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBDaGFuZ2VMb2cgbm90ZQoKMjAwNS0xMS0wNyAyMTo0NSAgYWxleF9iCgogICAqIHdpbjMyLzogbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwOgoKICAgV2luMzI6ICBNU1ZDIGJ1aWxkIGZpeGVzLgoKMjAwNS0xMS0wNyAxOTo0OSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNjB0cmFwZHBlcmw6CgogICBpbnRyb2R1Y2UgZW1iZWRkZWQgcGVybCB0ZXN0IGZvciBzbm1wdHJhcGQgKHRvbyBmYW5jeSB0byByZXNpc3QpCgoyMDA1LTExLTA3IDE5OjQyICB0YW5kZXJzCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBidWlsZCBmaXg6IGZzcy0+ZmZzCgoyMDA1LTExLTA3IDE4OjU0ICB0YW5kZXJzCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIGZpeCB0eXBvCgoyMDA1LTExLTA3IDE4OjM0ICB0YW5kZXJzCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIGZpeCB0eXBvcwoKMjAwNS0xMS0wNyAxMzo0MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBkcm9wIGRlZmF1bHQgdGltZW91dCBkb3duIHRvIElOVF9NQVgsIGFuZCBkb2N1bWVudCB3aHkKCjIwMDUtMTEtMDcgMDk6MzkgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBNYWtlZmlsZS5pbiwgZmZzLmMsIGlmLmMsCiAgICAgbWFpbi5jLCBuZXRzdGF0LmgsIHJvdXRlLmM6CgogICBUd2Vha3MgdG8gc3VwcG9ydCBidWlsZGluZyB1bmRlciBXaW5kb3dzCiAgICAgKGluY2x1ZGluZyByZW5hbWVkICdmZnMoKScgcm91dGluZSwgdGFrZW4gZnJvbSBPcGVuQlNEIHNvdXJjZSB0cmVlKQoKMjAwNS0xMS0wNyAwNjo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgRGlzcGxheSBpbnRlcmZhY2UgYWRkcmVzc2luZyBpbmZvcm1hdGlvbi4KCjIwMDUtMTEtMDcgMDE6NTcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTcgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4zLnByZTIgKQoKMjAwNS0xMS0wNyAwMTo1NiAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTYgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU1ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU1ICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU1ICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU0ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjMucHJlMiApCgoyMDA1LTExLTA3IDAxOjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMy5wcmUyICkKCjIwMDUtMTEtMDcgMDE6NTQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMS0wNyAwMTo0NCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDUtMTEtMDcgMDE6NDMgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMKLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zCiwgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMwosIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZQoKMjAwNS0xMS0wNyAwMTozOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgdmVyc2lvbiB1cGRhdGUKCjIwMDUtMTEtMDcgMDE6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBkb24ndCB0cnkgdG8gdXNlIGFnZW50IHZhciBpbiBiYXNlIGxpYiAoaXQgd2FzIGxhdGUsIG9rPykKCjIwMDUtMTEtMDcgMDA6MTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBicmVhayBvdXQgb2Ygd2FpdGluZyBsb29wcyBpZiAhIHJ1bm5pbmcKCjIwMDUtMTEtMDYgMjI6MzQgIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBXaW4zMjogIE1vdmUgdWludDE2X3QgZGVmaW5pdGlvbiB0byBzdGF0aWMgd2luMzIgbmV0LXNubXAtY29uZmlnLmgKCjIwMDUtMTEtMDYgMjE6MjcgIGFsZXhfYgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluLAogICAgIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcDoKCiAgIFdpbjMyIE1TVkMgYnVpbGQgZml4ZXMKCjIwMDUtMTEtMDUgMTg6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBicmVhayBvdXQgb2YgZ2V0bmV4dCBsb29wIGlmICEgcnVubmluZwoKMjAwNS0xMS0wNSAxNzo0NiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgb25seSB1c2UgInVsaW1pdCAtdiIgaW4gYmFzaAoKMjAwNS0xMS0wNSAxNzo0MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTExLTA1IDE3OjI0ICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkanVzdCBlcnJvciByZWdleDogZG9uJ3QgZmFpbCBvbiAmZW50cnktPnNjaGVkTGFzdEZhaWxlZCwgJmZhaWwgZXRjLgoKMjAwNS0xMS0wNSAxNzowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIC0gYWxsb3cgb3Zlci1yaWRlIG9mIE5TQl8oRElTVHxFWFRSQSlfTU9EVUxFUwogICAtIHJlbW92ZSB0ZXN0aGFuZGxlciBmcm9tIEVYVFJBIG1vZHVsZXMgKGhhbmdzIHNubXB3YWxrKQogICAtIHNldCBTTk1QX1RNUERJUl9CQVNFIChmdXR1cmUgdXNlKQoKMjAwNS0xMS0wNSAxNzowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgSSdsbCB0YWtlIG15IHBvcnQgbnVtYmVycyB1bnNpZ25lZCwgcGxlYXNlCgoyMDA1LTExLTA1IDE2OjQwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBpbmNsdWRlIG5ldGluZXQvdGNwX3Zhci5oLCBpZiBhdmFpbGFibGUKCjIwMDUtMTEtMDUgMTY6MzggIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGRlbGliZXJhdGVseSBpZ25vcmUgdWxpbWl0IGZhaWx1cmVzCgoyMDA1LTExLTA1IDE2OjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICByZW1vdmUgc3lzL3NvY2tldHZhci5oLCBzaW5jZSBtaWJJSV9jb21tb24uaCBhbHJlYWR5IGhhcyBpdAoKMjAwNS0xMS0wNSAxNDo0MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gc3dpdGNoIGRpc21hbiBtb2R1bGUgbGlzdCBiYWNrIHRvIGV2ZW50LW1pYiAoc3RpbGwgdXNlcyBuZXcgY29kZSkKICAgLSByZW1vdmUgZXZlbnQgbWliIGNvbmZsaWN0IGNoZWNrIChoYW5kbGVkIGJ5IGNvbmZpZ19leGNsdWRlcykKCjIwMDUtMTEtMDUgMTQ6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQtbWliLmg6CgogICAtIGNlbnRyYWxpemUgZXZlbnQgbWliIHJlcXVpcmVzIGluIG9yaWdpbmFsIGV2ZW50LW1pYi5oCiAgIC0gZGVmYXVsdCB0byByZS13cml0ZXMKICAgLSB3aGljaGV2ZXIgaW1wbGVtZW50YXRpb24gaXMgc2VsZWN0ZWQsIGNvbmZpZ19leGNsdWRlIHRoZSBvdGhlcgoKMjAwNS0xMS0wNSAxNDo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC5oOgoKICAgLSBjZW50cmFsaXplIGV2ZW50IG1pYiByZXF1aXJlcyBpbiBvcmlnaW5hbCBldmVudC1taWIuaAoKMjAwNS0xMS0wNSAxMzoxNSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIGZpeCBvcHRQcm9jIHNpZ25hdHVyZQoKMjAwNS0xMS0wNCAxODo0NiAgdGFuZGVycwoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBCdWlsZCBmaXg6IHByb3RlY3QgI2luY2x1ZGUgPHN5cy9jZGVmcy5oPgoKMjAwNS0xMS0wNCAxMzowNSAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIHJlbW92ZSByZWR1bmRhbnQgaW5jbHVkZQoKMjAwNS0xMS0wNCAxMzowNSAgcnN0b3J5CgogICAqIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oOgoKICAgY2hlY2sgaWYgd2UgaGF2ZSBoZWFkZXIgYmVmb3JlIGluY2x1ZGluZyBpdAoKMjAwNS0xMS0wNCAxMTo1OSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IG1haW4uYywgbmV0c3RhdC5oOgoKICAgTW92ZSB0aGUgb3B0aW9uIGZsYWcgdmFyaWFibGUgZGVjbGFyYXRpb25zIGludG8gYSBjb2RlIGZpbGUuCgoyMDA1LTExLTA0IDExOjUxICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmM6CgogICBQb2VydGFiaWxpdHkgb2YgJ3NpbjZfbGVuJyBmaWVsZCBpcyB1bmNsZWFyCiAgIChhbmQgaXQgZG9lc24ndCBpbW1lZGlhdGVseSBzZWVtIHRvIGJlIG5lZWRlZCkKCjIwMDUtMTEtMDQgMTE6NDQgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaDoKCiAgIGFkZCB2b2lkIHRvIGVtcHR5IHByb3RvdHlwZSBwYXJhbSBsaXN0CgoyMDA1LTExLTA0IDA5OjQ1ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIERldGVjdCAoYW5kIHJlamVjdCkgdXNlIG9mIGNvbmZsaWN0aW5nIEV2ZW50LU1JQiBpbXBsZW1lbnRhdGlvbnMuCgoyMDA1LTExLTA0IDA3OjQxICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldDYuYywgbWFpbi5jLCBtYWluLmgsCiAgICAgbmV0c3RhdC5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgSVB2NiBzdXBwb3J0CgoyMDA1LTExLTA0IDA3OjMxICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIFBsdWcgbWlub3IgbWVtb3J5IGxlYWsuCgoyMDA1LTExLTAzIDIwOjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9wZXJsX3NubXB0cmFwZC5oOgoKICAgdXBkYXRlIC5oIGZyb20gdGhlIHRyYXBkLmggZmlsZXMKCjIwMDUtMTEtMDMgMTk6NTkgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIG1ha2UgcGVybCBvbmx5IHJlcXVpcmUgdGhlIGV4ZWN1dGUgYml0CgoyMDA1LTExLTAzIDExOjUyICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDE2MHNubXBuZXRzdGF0OgoKICAgYWRqdXN0IHRvIG5ldyBzbm1wbmV0c3RhdCBvcHRpb25zCgoyMDA1LTExLTAzIDExOjQ3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldDYuYywgbWFpbi5jLCByb3V0ZS5jOgoKICAgRW5zdXJlIElQdjYgY29kZSBpcyBvbWl0dGVkICh1bnRpbCBpdCBjYW4gYmUgcHJvcGVybHkgcG9ydGVkL3Rlc3RlZCkKCjIwMDUtMTEtMDMgMTE6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgT21pdCByZWR1bmRlbnQgZGVjbGFyYXRpb25zLgoKMjAwNS0xMS0wMyAxMToyOCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICBSZW1vdmUgY29kZSBmb3IgZGV0ZXJtaW5pbmcgUlBDIHNlcnZpY2UgbmFtZXMKICAgKG5vdCByZWxldmFudC9hcHByb3ByaWF0ZSBmb3IgU05NUC1iYXNlZCBxdWVyaWVzKQoKMjAwNS0xMS0wMyAwODo1OCAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgQmV0dGVyIGhhbmRsaW5nIG9mIGhvc3Qtc3BlY2lmaWMgcm91dGVzLCBhbmQgZGlzcGxheWluZyBnYXRld2F5L2hvc3QgbmFtZXMuCgoyMDA1LTExLTAzIDA3OjIxICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogbWFpbi5jLCByb3V0ZS5jOgoKICAgUmUtaW1wbGVtZW50IHJvdXRpbmcgdGFibGUgZGlzcGxheSAoYmFzZWQgb24gT3BlbkJTRCBjb2RlKQoKMjAwNS0xMS0wMyAwNzoxOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgRml4IHByb2JsZW1zIHdpdGggcmVwZWF0ZWQgaW50ZXJmYWNlIGRpc3BsYXkuCgoyMDA1LTExLTAyIDE2OjIxICByc3RvcnkKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgbW92ZSBpbmNsdWRlIGFmdGVyIG5ldC1zbm1wLWluY2x1ZGVzLmg7IGZpeCBnbG9iYWwgc2Vzc2lvbiBuYW1lCgoyMDA1LTExLTAyIDEyOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5oOgoKICAgcmVtb3ZlIGJvZ3VzIGV4cGVyaW1lbnRhbCBjb25maWcgbWFjcm8KCjIwMDUtMTEtMDIgMTI6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmg6CgogICBhZGQgbWlzc2luZyBzZW1pLWNvbG9uCgoyMDA1LTExLTAyIDA5OjI1ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgaW5ldC5jLCBtYWluLmMsCiAgICAgbWFpbi5oLCBuZXRzdGF0Lmg6CgogICBQcmVsaW1pbmFyeSByZS1pbXBsZW1lbnRhdGlvbiwgYmFzZWQgb24gcmUtZGlzdHJpYnV0YWJsZSBPcGVuQlNEIGNvZGUuCiAgIChOb3RlIHRoYXQgaWYuYyBkcmF3cyBoZWF2aWx5IG9uIHRoZSBGcmVlQlNEIGludGVyZmFjZSBkaXNwbGF5IGJlaGF2aW91ciwKICAgIHdoaWNoIGlzIHNvbWV3aGF0IGRpZmZlcmVudCB0byB0aGUgTmV0L09wZW5CU0QgYXBwcm9hY2gpCgoyMDA1LTExLTAyIDAxOjU2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlub3Igd29yZCB0d2lkZGxlcwoKMjAwNS0xMS0wMiAwMTo1MCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfcGVybC5jOgoKICAgZml4IGVtYmVkZGVkIHBlcmwgYW5kIGVuc3VyZSBjb21waWxhdGlvbiBmYWlsdXJlcyBpZiB0dXJuZWQgb24gYnV0IGZ1bmN0aW9ucyBtaXNzaW5nCgoyMDA1LTExLTAxIDE1OjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGRvbid0IGFkZCBub3RpZnkgb2JqZWN0cyB0byB0aGUgc2NhbGFyIGxpc3QKCjIwMDUtMTEtMDEgMDQ6MDIgIHRhbmRlcnMKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIG1vcmUgcG9ydGFibGUgd2F5IG9mIGNhbGxpbmcgdWxpbWl0CgoyMDA1LTEwLTMxIDA3OjQwICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29zZjUuaDoKCiAgIFRydTY0IFVuaXggNS4xIGJ1aWxkIGZpeDogbWFrZSBzdXJlIFVJTlQzMl9NQVggaXMgZGVmaW5lZAoKMjAwNS0xMC0zMSAwNjoxMSAgdGFuZGVycwoKICAgKiBkaXN0LzogbnNiLW5pZ2h0bHksIG5zYi1wYWNrYWdlOgoKICAgbW9yZSBwb3J0YWJsZSB3YXkgb2YgY2FsbGluZyBiYXNoCgoyMDA1LTEwLTMxIDA1OjM2ICB0YW5kZXJzCgogICAqIHNubXBsaWIvdGV4dF91dGlscy5jOgoKICAgU29sYXJpcyBidWlsZCBmaXg6IGluY2x1ZGUgbGltaXRzLmggZm9yIFtVXUxPTkdfTUFYIGFuZCBMT05HX01JTgoKMjAwNS0xMC0zMSAwNDoyOSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNS0xMC0zMSAwNDoyNyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMwosIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMKLCBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zCiwgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMKLCBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlCgoyMDA1LTEwLTMxIDA0OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICB2ZXJzaW9uIHVwZGF0ZQoKMjAwNS0xMC0zMSAwNDoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgcGF0Y2hlcyBmcm9tIGFwcGxlCgoyMDA1LTEwLTMxIDA0OjAxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oLAogICAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBwYXRjaGVzIGZyb20gYXBwbGUKCjIwMDUtMTAtMzEgMDQ6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9kYXJ3aW43LmMsCiAgICAgbWVtb3J5X2RhcndpbjcuaCwgdm1zdGF0X2RhcndpbjcuYywgdm1zdGF0X2RhcndpbjcuaAo6CgogICBtZW1vcnkvdm1zdGF0cyBjb2RlIGZyb20gYXBwbGUKCjIwMDUtMTAtMzEgMDM6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi91ZHBFbmRwb2ludFRhYmxlL3VkcEVuZHBvaW50VGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3VkcC1taWIvdWRwRW5kcG9pbnRUYWJsZS91ZHBFbmRwb2ludFRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL3VkcEVuZHBvaW50VGFibGUvdWRwRW5kcG9pbnRUYWJsZV9pbnRlcmZhY2UuaAosIGFnZW50L21pYmdyb3VwL3VkcC1taWIvZGF0YV9hY2Nlc3MvdWRwX2VuZHBvaW50LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWRwLW1pYi9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnRfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC91ZHAtbWliL2RhdGFfYWNjZXNzL3VkcF9lbmRwb2ludF9wcml2YXRlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy91ZHBfZW5kcG9pbnQuaDoKCiAgIGZpcnN0IHBhc3MgYXQgdWRwRW5kcG9pbnRUYWJsZQoKMjAwNS0xMC0zMSAwMzo0OCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgc2V0IGNwdSBhbmQgbWVtb3J5IGxpbWl0cyB0byBwcmV2ZW50IG1ham9yIGRhbWFnZSwgZXNwZWNpYWxseSBzaW5jZSB3ZSBub3cgaGF2ZSBhIGZ1bGwgc25tcHdhbGsgdGVzdAoKMjAwNS0xMC0zMCAyMzozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICBxdWlldCBjb21waWxlcgoKMjAwNS0xMC0zMCAyMzozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGRhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlL2lwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICByZW1vdmUgdW51c2VkIHZhcgoKMjAwNS0xMC0zMCAyMzoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgY2FsY3VsYXRlIHByZWZpeCBvaWQgYXMgbmVlZGVkCgoyMDA1LTEwLTMwIDIzOjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgcmVtb3ZlIHByZWZpeCBvaWQ7IGFkZCBwcmVmaXggbGVuCgoyMDA1LTEwLTMwIDIzOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIHJlbW92ZSBwcmVmaXggb2lkCgoyMDA1LTEwLTMwIDIzOjI2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIC0gZ2V0IHJpZCBvZiBwcmVmaXggb2lkCiAgIC0gYWRkIHByZWZpeCBsZW4KICAgLSBhZGQgcHJlZml4IGZ1bmN0aW9uIHByb3RvdHlwZXMKCjIwMDUtMTAtMzAgMjI6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgLSBkb24ndCB1c2UgdGVzdCBjb3JyZWN0IGZsYWcgYml0CiAgIC0gYWRkIHByZWZpeCB1dGlsaXR5IHJvdXRpbmVzCgoyMDA1LTEwLTMwIDIyOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCjoKCiAgIGFkZCBhY2Nlc3MgdG8gY29udGFpbmVyCgoyMDA1LTEwLTMwIDIyOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgZG8gbm90IHVzZSBpbml0IGZsYWcgd2l0aCBsb2FkIHJvdXRpbmUKCjIwMDUtMTAtMzAgMjI6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmM6CgogICAtIHJlbW92ZSBpbmV0NiBjb2RlLCBzaW5jZSB0aGVyZSB3ZSBhcmVuJ3QgdXNpbmcgaXB2NiBpb2N0bHMKICAgLSBhZGQgcHJlZml4IGxlbgoKMjAwNS0xMC0zMCAyMjozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi86IGlwQWRkcmVzc1RhYmxlLmgsCiAgICAgaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaDoKCiAgIG1vdmUgZGV0YWlsZWQgY29uZmlnX3JlcXVpcmUgbWFjcm9zIGRvd24gYSBsZXZlbAoKMjAwNS0xMC0zMCAyMjozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICB1c2UgbmV3IHV0aWwgZnVuYyB0byBjYWxjdWxhdGUgcHJlZml4IGxlbgoKMjAwNS0xMC0zMCAyMjozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIG9ubHkgY2hlY2sgZGlydHkgZmxhZyBmb3Igd3JpdGFibGUgdGFibGVzCgoyMDA1LTEwLTMwIDIyOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1ByZWZpeFRhYmxlLzoKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZS5jLCBpcEFkZHJlc3NQcmVmaXhUYWJsZS5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1ByZWZpeFRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBBZGRyZXNzUHJlZml4VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcEFkZHJlc3NQcmVmaXhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIGluaXRpYWwgcGFzcyBhdCBpcEFkZHJlc3NQcmVmaXhUYWJsZQoKMjAwNS0xMC0zMCAxNTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIG5ldyBuZXRzbm1wX2N2YWx1ZSB1bmlvbgoKMjAwNS0xMC0zMCAxNTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90ZXh0X3V0aWxzLmgsIHNubXBsaWIvdGV4dF91dGlscy5jCjoKCiAgIG1vcmUgbmV3IHV0aWxpdHkgZnVuY3Rpb25zCgoyMDA1LTEwLTMwIDE0OjAxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZpbGVfdXRpbHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdGV4dF91dGlscy5oLCBzbm1wbGliL01ha2VmaWxlLmluCiwgc25tcGxpYi9maWxlX3V0aWxzLmMsIHNubXBsaWIvdGV4dF91dGlscy5jOgoKICAgbmV3IHV0aWwgZmlsZXMKCjIwMDUtMTAtMzAgMTM6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBzdXBwb3J0IGZvciB1bnNvcnRlZCBmbGFnCgoyMDA1LTEwLTMwIDEzOjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIC0gYWRkIGNvbXBhcmUgZnVuY3Rpb24gcHRyIHRvIGNvbnRhaW5lciB0eXBlIHN0cnVjdAogICAtIHNldCBjb21wYXJlIGZ1bmMgZnJvbSBjb250YWluZXIgdHlwZSBzdHJ1Y3QKICAgLSByZWdpc3RlciBzb21lIHN0cmluZyBjb21wYXJlIGJhc2VkIGJpbmFyeSBhcnJheSB0eXBlcwoKMjAwNS0xMC0zMCAxMzo0NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIC0gbmV3IGNvbnRhaW5lciByZWdpc3RlciB3aXRoIGNvbXBhcmUgcHJvdG90eXBlCiAgIC0gYWRkIHVuc29ydGVkIGNvbnRhaW5lciBmbGFnCiAgIC0gZml4IGNvbnRhaW5lciBvcHRpb25zIG1hY3JvcwogICAgIC0gYWRkIHJjIHBhcmFtCiAgICAgLSBtaXNzaW5nIH0KCjIwMDUtMTAtMjkgMTg6MTIgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdDoKCiAgIHRlc3QgY2hhbmdlIGFuZCB1c2FnZSBvZiBsb2NhbGl6ZWQga2V5cwoKMjAwNS0xMC0yOSAxNzoyOSAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTl0cmFwZHRyYXBoYW5kbGU6CgogICBpbnRyb2R1Y2Ugc25tcHRyYXBkIHRyYXBoYW5kbGUgdGVzdAoKMjAwNS0xMC0yOSAxNTo1OCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QyMDBzbm1wdjJjd2Fsa2FsbDoKCiAgIEludHJvZHVjZSBmdWxsIHNubXB3YWxrIHRlc3QuIE5lZWRzIGEgc2lnbmlmaWNhbnQgYW1vdW50IG9mIENQVSBjeWNsZXMsIGJ1dCB3aWxsIGNhdGNoIGltcG9ydGFudCBpc3N1ZXMgbGlrZSB3aGVuIGEgc2ltcGxlIHdhbGsgY3Jhc2hlcy9oYW5ncyB0aGUgYWdlbnQuCgoyMDA1LTEwLTI5IDA4OjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBkYXRhX3NldC5oLCBkZWxheWVkX2luc3RhbmNlLmgKLCBleGFtcGxlLmgsIG5ldFNubXBIb3N0c1RhYmxlLmgsCiAgICAgbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmgsIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmgKLCBuZXRTbm1wSG9zdHNUYWJsZV9jaGVja2Zuc19sb2NhbC5oLCBub3RpZmljYXRpb24uaAosIHNjYWxhcl9pbnQuaCwgdWNkRGVtb1B1YmxpYy5oOgoKICAgYWRkIG1pc3NpbmcgaGVhZGVyIHByb3RlY3QgYW5kL29yIGNwbHVzcGx1cyBpZmRlZnMKCjIwMDUtMTAtMjkgMDg6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmg6CgogICBhZGQgbWlzc2luZyBoZWFkZXIgZm9yIHdhdGNoZWQuaAoKMjAwNS0xMC0yOCAyMzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9hcnAuaDoKCiAgIC0gcmVtb3ZlIGV4dHJhIDsKICAgLSBmaXggdHlwbyBpbiBjb25maWd1cmUgbWFjcm8KCjIwMDUtMTAtMjggMjM6MzAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2VfaW9jdGwuYywKICAgICBpbnRlcmZhY2VfaW9jdGwuaDoKCiAgIHJlZHVjZSBzY29wZSBvZiBpb2N0bCB2ZXJzaW9uIGNoZWNraW5nIHRvIHY0IG9ubHkgKG5vIGlwdjYgaW9jdGxzKQoKMjAwNS0xMC0yOCAyMzoyNyAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwdjRJbnRlcmZhY2VUYWJsZS9pcHY0SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgY29ycmVjdCBjdXQtbi1wYXN0ZSBlcnJvciBpbiBwcm90b3R5cGUKCjIwMDUtMTAtMjggMjM6MjYgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHlhbmsgbW9yZSBjb2RlIHdoaWNoIGlzIHVudXNlZCBkdWUgdG8gY29udGFpbmVyIHNoYXJpbmcKCjIwMDUtMTAtMjggMjM6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlL2lwdjRJbnRlcmZhY2VUYWJsZS5oCjoKCiAgIHVwZGF0ZSBmb3IgY2hhbmdlZCBpZmVudHJ5IHZhciBuYW1lcwoKMjAwNS0xMC0yOCAyMzoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY0SW50ZXJmYWNlVGFibGUvaXB2NEludGVyZmFjZVRhYmxlLmMKOgoKICAgc2tpcCB2YXJzIHRoYXQgZG8gbm90IGhhdmUgaWZlbnRyeSBmbGFnIHNldAoKMjAwNS0xMC0yOCAyMzoyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIC0gYWRkIG1pc3NpbmcgZmxhZ3MgcGFyYW0gdG8gYXJjaCBjb250YWluZXIgbG9hZAogICAtIHN1cHBvcnQgZm9yIGlwdig0fDYpIG9ubHkgbG9hZCBmbGFnCiAgIC0gdHJ5IHRvIGxvYWQgaXB2NiBldmVuIGlmIGlwdjQgZmFpbHMKCjIwMDUtMTAtMjggMjM6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jOgoKICAgcGFzcyBjb3JyZWN0IGZsYWdzIHRvIGNvbnRhaW5lciBpbml0IGR1cmluZyBsb2FkCgoyMDA1LTEwLTI4IDIzOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgdHdlYWtzIGFuZCBzdXBwb3J0IGZvciBpcHY2SW50ZXJmYWNlVGFibGUKCjIwMDUtMTAtMjggMjM6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgbmV3IGxvYWQgZmxhZ3MKCjIwMDUtMTAtMjggMjM6MTcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgYWRkIGluc2VydCBmaWx0ZXJpbmcKCjIwMDUtMTAtMjggMjM6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gcmVkdWNlIGRlcGVuZGVuY3kgbGlzdCBvbiBzbm1wX3ZhcnMubG8gdG8gYWdlbnRfbW9kdWxlX2xpc3RfaAogICAtIGFkZCBtaWJfbW9kdWxlX2xpc3RfaCBhcyBkZXAgZm9yIG1pYl9tb2R1bGVzLmxvCiAgIC0gZG9jdW1lbnQgd2h5IHJlYWRfY29uZi5sbyBkZXBzIGFyZSBoZXJlIGFuZCBub3QgaW4gc25tcGxpYi9NYWtlZmlsZS5pbgoKMjAwNS0xMC0yOCAyMzowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcHY2SW50ZXJmYWNlVGFibGUvOiBpcHY2SW50ZXJmYWNlVGFibGUuYwosIGlwdjZJbnRlcmZhY2VUYWJsZS5oLCBpcHY2SW50ZXJmYWNlVGFibGVfY29uc3RhbnRzLmgKLCBpcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcHY2SW50ZXJmYWNlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcHY2SW50ZXJmYWNlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXB2NkludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgaW1wbGVtZW50IGlwdjZJbnRlcmZhY2VUYWJsZQoKMjAwNS0xMC0yOCAyMzowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGFkZCBzaHV0ZG93biBwcm90b3R5cGUKCjIwMDUtMTAtMjggMTg6MzggIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgcG9ydGFibGUgd2F5IG9mIGV4cG9ydGluZyBTTk1QQ09ORlBBVEgKCjIwMDUtMTAtMjggMTc6MjggIGJzaGF3NjY2CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGxvZ2ljIGNoYW5nZSBvbiBnZXRLc3RhdEludAoKMjAwNS0xMC0yOCAxNjowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHJlbW92ZSA7IGZyb20gY29uZmlnX3JlcXVpcmUgbWFjcm9zCgoyMDA1LTEwLTI4IDE1OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5jOgoKICAgLSBtb3ZlIGxvY2FsIGluY2x1ZGUgd2l0aCBvdGhlciBsb2NhbCBpbmNsdWRlcwogICAtIGlmZGVmIHByb3B0eXBlcyB0aGF0IHdvbid0IGJlIGRlZmluZWQgZm9yIE5PQVJDSCBjYXNlCgoyMDA1LTEwLTI4IDE1OjQwICBic2hhdzY2NgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmM6CgogICBmb3Jnb3QgdGhlIGluY2x1ZGUgZm9yIHNvbWUgbmV0c25tcF9hcmNoX2ludGVyZmFjZSBzdHVmZgoKMjAwNS0xMC0yOCAxNDo0OSAgYnNoYXc2NjYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmM6CgogICB5b3UgY2FuJ3Qgbm90IGRlY2xhcmUgSFJOX2luZGV4IGZvciBzb2xhcmlzIHRoZW4gZXhwZWN0IGl0IHRvIHJldHVybiBhIGZldyBsaW5lcyBsYXRlcgoKMjAwNS0xMC0yOCAxNDoyMCAgYnNoYXc2NjYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGl0J3MgdWludDE2X3Qgbm90IHVfaW50MTZfdAoKMjAwNS0xMC0yOCAxMjo1NSAgdGFuZGVycwoKICAgKiBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIHVwZGF0ZSBvbiAtQ0UgYW5kIC1DawoKMjAwNS0xMC0yOCAxMjozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuaDoKCiAgIHJlbW92ZSBhY2NpZGVudGFsIGNoZWNraW4gb2YgdW5pbXBsZW1lbnRlZCBjb25maWcgbWFjcm8KCjIwMDUtMTAtMjggMTI6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0yOCAxMjozMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBuZXcgYXJndW1lbnQgdG8gdHVybiBvbiBkZWJ1ZyBkdXJpbmcgbWliIG1vZHVsZSBwcm9jZXNzaW5nCgoyMDA1LTEwLTI4IDEyOjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oOgoKICAgcmVxdWlyZSBtaWJJSS9pZlRhYmxlIGluc3RlYWQgb2YgbWliSUkvaW50ZXJmYWNlcwoKMjAwNS0xMC0yOCAxMjoxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gcmVuYW1lL3JldmFtcCBpbnRlcmZhY2UgY291bnQgZnVuY3Rpb24KICAgICAtIGFsbG9jYXRlIGxvY2FsIGlmY29uZiBpZiBjYWxsZWQgZGlkbid0IHBhc3Mgb24KICAgICAtIGRvY3VtZW50IHRoYXQgZnVuY3Rpb24gYWxsb2NhdGVzIG1lbW9yeSB0aGF0IGNhbGxlciBtdXN0IHJlbGVhc2UgaWYKICAgICAgIHRoZXkgcGFzcyBpbiB0aGVpciBvd24gaWZjb25mIHBvaW50ZXIKCjIwMDUtMTAtMjggMTI6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaDoKCiAgIC0gcmVtb3ZlICc7JyBmb3JtIGNvbmZpZ18qIG1hY3JvcwogICAtIGNvbmZpZ19yZXF1aXJlIGlmVGFibGUsIGluY2x1ZGUgaWZUYWJsZSBoZWFkZXIKCjIwMDUtMTAtMjggMTI6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGNhbGwgaWZUYWJsZSBpbml0IHRvIG1hbmFnZSBpZlhUYWJsZSBpbml0CgoyMDA1LTEwLTI4IDEyOjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBhZGQgY2FsbHMgdG8gaXB2KDR8NikgaW50ZXJmYWNlIHRhYmxlcyB3aGVuIHVwZGF0aW5nIHJvd3MKICAgLSBjb3JyZWN0IGlmVGFibGVMYXN0Q2hhbmdlIGJlaGF2aW91ciB0byBjb21wbHkgd2l0aCBvYmplY3QgZGVmaW5pdGlvbgogICAtIGNsYXJpZnkgc29tZSBjb21tZW50cwogICAtIGFkZCBhc3NlcnQgdG8gbm90aWZ5IHVzIHdoZW4vaWYgYW5kIG9zIHRyYWNrcyBsYXN0IGNoYW5nZWQgb24gaXQncyBvd24KCjIwMDUtMTAtMjggMTI6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIGZpeCBjb25maWdfcmVxdWlyZSBtYWNyb3MKICAgLSBhZGQgcmVxdWlyZSBmb3IgZGF0YV9hY2Nlc3MvaW50ZXJmYWNlCiAgIC0gcmVtb3ZlIGxhc3QgY2hhbmdlIGZyb20gZGF0YSBjb250ZXh0LCB1c2UgaWZlbnRyeSB2ZXJzaW9uIGluc3RlYWQKCjIwMDUtMTAtMjggMTE6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICAtIG1ha2UgaW5pdF9pZlRhYmxlIHRoZSBjb21tb24gaW5pdCBmdW5jdGlvbiBmb3IgaW50ZXJmYWNlIG1vZHVsZXMKICAgICAtIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBjYWxscwogICAgIC0gcHJvcGVyIGluaXQgZnVuY3Rpb24gY2FsbHMgZm9yIGlwdig0fDYpSW50ZXJmYWNlVGFibGUvaWZYVGFibGUKCjIwMDUtMTAtMjggMTE6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICAtIG1vdmUgc3RhdHMgcGFyc2luZyB0byBpdCdzIG93biBmdW5jdGlvbgogICAtIHN1cHBvcnQgbmV3IGxvYWQgZmxhZ3M6IGlwdjQgb25seSwgbm8gc3RhdHMKICAgLSBhZGQgKGhhcmRjb2RlZCByZWFzbV9tYXgpCiAgIC0gZ2V0IGFycCByZXRyYW5zbWl0IHRpbWUgZnJvbSAvcHJvYwoKMjAwNS0xMC0yOCAxMTo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuaDoKCiAgIGFkZCBjb25maWdfcmVxdWlyZSBvZiBkYXRhX2FjY2Vzcy9pcGFkZHJlc3MKCjIwMDUtMTAtMjggMTE6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmM6CgogICBuZXcgZnVuY3Rpb24gdG8gY2hlY2sgYW4gaW50ZXJmYWNlIGZvciBpcHYoNHw2KSBpcCBhZGRyZXNzZXMKCjIwMDUtMTAtMjggMTE6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBhZGQgd2FybmluZ3MgdG8gdXBkYXRlIGZ1bmN0aW9ucyB3aGVuIGFkZGluZy9kZWxldGluZyBzdHVjdCBtZW1iZXJzCiAgIC0gbWFrZSBmbGFncyBmaWVsZCB1bnNpZ25lZAogICAtIHVuc2lnbmVkIGludCAtPiB1X2ludAogICAtIGFkZCBmaWVsZHMgZm9yIGlwdjRJbnRlcmZhY2VUYWJsZQogICAtIGZpeCBvc19mbGFncyBjb21tZW50CiAgIC0gbmV3IG5zX2ZsYWdzIGRlZmluZXMgZm9yIGlwdig0fDYpSW50ZXJmYWNlVGFibGUKICAgLSBuZXcgbG9hZCBmbGFncyBkZWZpbmVzCgoyMDA1LTEwLTI4IDExOjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYzoKCiAgIHJlbmFtZSB0byBpbnRlcmZhY2UuYwoKMjAwNS0xMC0yOCAxMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuYzoKCiAgIHJlbmFtZSBpbnRlcmZhY2VfY29tbW9uLmMgdG8gaW50ZXJmYWNlLmMgdG8gZWFzeSBjb25maWd1cmUgcHJvY2Vzc2luZwoKMjAwNS0xMC0yOCAxMTozNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIHJldmVydCB0byBwcmV2aW91cyBiZWhhdmlvciBvZiBpZkRlc2NyID0gaW50ZXJmYWNlIG5hbWUKICAgLSBhZGQgbmV3L21pc3Npbmcgc3RydWN0dXJlIG1lbWJlcnMgdG8gaW50ZXJmYWNlIGNvcHkgcm91dGluZQogICAtIHJlbmFtZSBpbml0IGZ1bmN0aW9uIGZvciBwZW5kaW5nIGZpbGUgcmVuYW1lCgoyMDA1LTEwLTI4IDExOjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS5oLCBpZi1taWIvaWZYVGFibGUuaCwKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLCBpcC1taWIvaXBBZGRyZXNzVGFibGUuaAosIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUuaCwgaXAtbWliL2lwX3NjYWxhcnMuaAosIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaCwKICAgICBpcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5oLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9zY2FsYXJzX2NvbW1vbi5oLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0cy5oLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlLmgKLCB0Y3AtbWliL3RjcENvbm5UYWJsZS5oLCB0Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS5oCiwgdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uLmgsCiAgICAgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuaDoKCiAgIC0gbW9zdGx5IHJlbW92aW5nIGV4dHJhbmVvdXMgJzsnIG9uIGNvbmZpZ18qIG1hY3JvcwogICAtIGEgZmV3IHR3ZWFrIGNvbmZpZ18qIG1hY3JvcwoKMjAwNS0xMC0yOCAxMToxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTEwLTI4IDExOjE3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBjaGVjayBmb3IgcHJvZ3JhbSAnZmluZCcKICAgLSBvbmx5IGFkZCBoZWFkZXIgdG8gKGFnZW50fG1pYilfbW9kdWxlX2luY2x1ZGVzLmggaWYgaW5pdC9zaHV0ZG93biBmb3VuZAoKMjAwNS0xMC0yOCAxMDoyNiAgdGFuZGVycwoKICAgKiBkaXN0LzogUkVBRE1FLmJ1aWxkLXNjcmlwdHMsIG5zYi1uaWdodGx5LAogICAgIG5zYi1wYWNrYWdlOgoKICAgZml4IHR5cG8KCjIwMDUtMTAtMjggMDk6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXB2NEludGVyZmFjZVRhYmxlLzogaXB2NEludGVyZmFjZVRhYmxlLmMKLCBpcHY0SW50ZXJmYWNlVGFibGUuaCwgaXB2NEludGVyZmFjZVRhYmxlX2NvbnN0YW50cy5oCiwgaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXB2NEludGVyZmFjZVRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwdjRJbnRlcmZhY2VUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBpcHY0SW50ZXJmYWNlVGFibGVfc3ViYWdlbnQuYzoKCiAgIGltcGxlbWVudCBpcHY0SW50ZXJmYWNlVGFibGUKCjIwMDUtMTAtMjggMDg6MTMgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBtYWtlIHN1cmUgc25tcG5ldHN0YXQgY2FuIGJlIGV4ZWN1dGVkOyBza2lwIG90aGVyd2lzZQoKMjAwNS0xMC0yNyAwNTo0MiAgZHRzMTIKCiAgICogc25tcGxpYi86IGdldG9wdC5jLCBzdHJ0b2wuYywgc3RydG91bC5jOgoKICAgUmVtb3ZlIFVDQiBhZHZlcnRpc2luZyBjbGF1c2UgKHJlc2NpbmRlZCAyMiBKdWx5IDE5OTkpCgoyMDA1LTEwLTI3IDA1OjM4ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcG5ldHN0YXQuMS5kZWY6CgogICBVcGRhdGUgQlNEIGNvcHlyaWdodCBsaWNlbnNlIHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbi4KCjIwMDUtMTAtMjYgMTg6NTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMTYwc25tcG5ldHN0YXQ6CgogICBhZGQgc2ltcGxlIHRlc3QgZm9yIHNubXBuZXRzdGF0IHRvIHZlcmlmeSB0aGUgdXBjb21pbmcgcmV3cml0ZQoKMjAwNS0xMC0yNiAxODozNCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBza2lwIG9uIERJU0FCTEVfU0VUX1NVUFBPUlQKCjIwMDUtMTAtMjYgMTc6NDcgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgZG9jdW1lbnQgZ2VuZXJpYyAtLTxuYW1lPj08dmFsdWU+IGNvbW1hbmQtbGluZSBvcHRpb24KCjIwMDUtMTAtMjYgMTc6MjIgIHRhbmRlcnMKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIGRvY3VtZW50IGdlbmVyaWMgLS08bmFtZT49PHZhbHVlPiBjb21tYW5kLWxpbmUgb3B0aW9uCgoyMDA1LTEwLTI2IDEzOjE1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgYWxsb3dzIHRvIHVzZSBvbGQgYW5kL29yIG5ldyBsb2NhbGl6ZWQga2V5IGluc3RlYWQgb2YgcGFzcy1waHJhc2Ugd2l0aCAtQ2sKCjIwMDUtMTAtMjYgMTI6MjYgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgbWFqb3IgcmV3cml0ZTogYWRkcyBtb3JlIHRlc3RzIGFuZCB1c2VzIG5ldyBTdjN1c21jb25maWcqCgoyMDA1LTEwLTI2IDEyOjIzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzdXNtY29uZmlnYmFzZToKCiAgIGZpeCBzb21lIHZhcmlhYmxlIG5hbWVzCgoyMDA1LTEwLTI2IDA4OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgcmVtb3ZlIHBhdGNoIGZsdWIKCjIwMDUtMTAtMjYgMDc6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgRXh0cmEgZGVidWdnaW5nIHRvIGhlbHAgZGlzdGluZ3Vpc2ggYmV0d2VlbiBkaWZmZXJlbnQgY2FjaGUgdGltZXJzLgoKMjAwNS0xMC0yNiAwNzowMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBTbGlnaHQgcmV0aGluayBhYm91dCBob3cgdG8gaGFuZGxlIHRoZSByZW1vdmFsIG9mIGEgTUlCIHJlZ2lzdHJhdGlvbi4KICAgKFRoaXMgaXMgZGVmaW5pdGVseSBvbmUgZm9yIDUuNCwgbWV0aGlua3MhKQoKMjAwNS0xMC0yNiAwNjo1NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9nZW5lcmljLmM6CgogICBNaW5vciB0d2Vha3MgdG8gZ2VuZXJpYyB0YWJsZSBBUEkgcm91dGluZSBuYW1lcy4KCjIwMDUtMTAtMjYgMDY6NTYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfdGRhdGEuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnRTZXRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c0NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0c1RhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cEVycm9yVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbkNvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3QuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBPYmplY3RDb25mLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwT2JqZWN0VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXhwci9leHBWYWx1ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZHVsZS9zY2hlZENvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb3JlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkVGFibGUuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX3RkYXRhLmg6CgogICBCcmluZyAndGRhdGEnIHJvdXRpbmUgbmFtZXMgaW50byBsaW5lIHdpdGggdGhlIHByb3Bvc2VkIHRhYmxlIEFQSQoKMjAwNS0xMC0yNiAwNjoyMCAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIGZpeCBjb21waWxlIGVycm9yIGR1ZSB0byB3cm9uZyBocHV4MTEgdGVzdAoKMjAwNS0xMC0yNiAwNTo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBNb3ZlIHJlZ2lzdHJhdGlvbiBvZiBzdGFuZGFyZCB2aWV3cyBzbyB0aGF0IHRoZXkncmUgcGlja2VkIHVwCiAgIGJ5IGJvdGggYWdlbnQgYW5kIHRyYXAgaGFuZGxlciBpbml0aWFsaXNhdGlvbi4KICAgQ2xhcmlmeSB3aGljaCBpbml0aWFsaXNhdGlvbiByb3V0aW5lcyBhcmUgY2FsbGVkIGJ5IHdoaWNoIGFwcHMuCgoyMDA1LTEwLTI1IDE5OjA4ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgdGVtcG9yYXJ5IHdvcmthcm91bmQgYXMgc3VnZ2VzdGVkIGJ5IERhdmUgdG8gZ2V0IHNubXB0cmFwZCB3b3JraW5nIGFnYWluCgoyMDA1LTEwLTI1IDE5OjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9yb3dfbWVyZ2UuYzoKCiAgIC0gbmFycm93IHNjb3BlIG9mIGFzc2VydCB0ZXN0CiAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrCgoyMDA1LTEwLTI1IDE2OjU2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMjUgMTY6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggdGVzdHMgZm9yIGVtcHR5IHZhciBjYXNlCgoyMDA1LTEwLTI1IDEyOjQxICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybToKCiAgIC4uLiBhbmQgc2F5IHNvLgoKMjAwNS0xMC0yNSAxMjo0MCAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm06CgogICBjbGFyaWZ5IGFzIGJlaW5nIGEgbm9BdXRoTm9Qcml2IHRlc3QKCjIwMDUtMTAtMjUgMTE6NTkgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggT3BlbkJTRCAzLjQgInByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgd2FybmluZzogc3lzL3N3YXAuaCBuZWVkcyBzeXMvcGFyYW0uaCBmb3IgTUFYUEFUSExFTgoKMjAwNS0xMC0yNSAxMTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHJlbW92ZSBNRkRfUkVXUklURSBkZWZpbmUgdGVzdHMKCjIwMDUtMTAtMjUgMTE6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICAtIGNvbW1lbnQgZm9ybWF0dGluZwogICAtIGNvbmZpZ19leGNsdWRlIGlmLW1pYi9pZlRhYmxlL2lmVGFibGUKCjIwMDUtMTAtMjUgMTE6NDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBhZGQgSVRFUkFUT1JfUkVMRUFTRSBtYWNybwoKMjAwNS0xMC0yNSAwODozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX2NvbmYuYywgdmFjbV9jb25mLmg6CgogICBBbHRlcm5hdGl2ZSB2aWV3dHlwZS1iYXNlZCBhY2Nlc3MgY29uZmlndXJhdGlvbiBkaXJlY3RpdmUgKCJhdXRoYWNjZXNzIikuCiAgIFNpbWlsYXIgdG8gInNldGFjY2VzcyIsIGJ1dCBjbG9zZXIgaW4gZmVlbCB0byB0aGUgb3RoZXIgYXV0aCogZGlyZWN0aXZlcy4KICAgVGhpcyBhbHNvIGFsbG93cyB0aGUgc2VjdXJpdHkgbW9kZWwsIGxldmVsIGFuZCBjb250ZXh0IGluZm9ybWF0aW9uIHRvIGJlCiAgIG9taXR0ZWQgKGRlZmF1bHRpbmcgdG8gc2Vuc2libGUgdmFsdWVzKS4KCjIwMDUtMTAtMjUgMDg6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgQXJnZ2doaGhoISEhICBJZiB5b3UndmUgZ290IGNvZGUgdGhhdCB3b3JrcywgZG9uJ3QgY2hhbmdlIGl0IGJlZm9yZSBjb21taXR0aW5nIGl0LgogICBJZiB5b3UgKm11c3QqIGNoYW5nZSBpdCwgdGhlbiBhdCBsZWFzdCBoYXZlIHRoZSBndW1wdGlvbiB0byB0ZXN0IGl0IGFnYWluIGZpcnN0IQogICA8aGVhdnkgc2lnaD4KCjIwMDUtMTAtMjUgMDg6MDEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgVGVsbCB5b3Ugd2hhdCwgRGF2ZS4gIFdoeSBkb24ndCB5b3UgdHJ5IGNvbW1pdHRpbmcgdGhlIGNvZGUgZm9yIHRoZQogICAiYXV0aGdyb3VwIiBkaXJlY3RpdmUgLSByYXRoZXIgdGhhbiBqdXN0IHRoZSBoZWFkZXIgZmlsZT8KICAgPHNpZ2g+CiAgIFlvdSBqdXN0IGNhbid0IGdldCB0aGUgc3RhZmYgdGhlc2UgZGF5cy4KCjIwMDUtMTAtMjUgMDc6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oOgoKICAgRGlyZWN0aXZlIHRvIHN1cHBvcnQgdmlld3R5cGUtYmFzZWQgY29uZmlndXJhdGlvbiBvZiBncm91cHMgKCJhdXRoZ3JvdXAiKQoKMjAwNS0xMC0yNSAwNzo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBBbGxvdyBjb21tdW5pdHktYmFzZWQgZGlyZWN0aXZlcyAoYXV0aGNvbW11bml0eSwgZXRjKSB0byBzcGVjaWZ5CiAgIGEgcGFydGljdWxhciBTTk1QIHZlcnNpb24gKHYxLW9ubHkgb3IgdjJjLW9ubHkpCgoyMDA1LTEwLTI1IDA3OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFN1cHBvcnQgc2ltcGxlIGFjY2VzcyBkaXJlY3RpdmVzIGNvbmZpZ3VyZWQgd2l0aCBuYW1lZCB2aWV3cyAoLVYpCiAgIGFzIHdlbGwgYXMgT0lEIHN1YnRyZWVzLgoKMjAwNS0xMC0yNSAwNzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX2NvbmYuYywgdmFjbV9jb25mLmg6CgogICBEZWZpbmUgInN0YW5kYXJkIiB2aWV3cyAoYWxsIG9yIG5vdGhpbmcpCgoyMDA1LTEwLTI1IDA3OjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgV29yayB3aXRoIHRoZSBhY3RpdmUgcm9vdCBvZiB0aGUgTUlCIHRyZWUgKHJhdGhlciB0aGFuIHRoZSBiYWNrd2FyZAogICBjb21wYXRpYmlsaXR5IHZlcnNpb24pLiAgVGhpcyBhbGxvd3MgJ3JlYWRfb2JqaWQnIHRvIHdvcmsgY29ycmVjdGx5CiAgICh3aXRoIG51bWVyaWMgT0lEcykgYmVmb3JlIHRoZSBNSUIgZmlsZXMgYXJlIGxvYWRlZC4KCjIwMDUtMTAtMjQgMTk6MzEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9UMDM1c25tcHYzdHJhcGR1c2VybWdtdDoKCiAgIHJld29ya2VkIHRvIHVzZSBuZXcgU3YzdXNtY29uZmlnKiBmcmFtZXdvcmsKCjIwMDUtMTAtMjQgMTk6MzAgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNDlzbm1wdjNpbmZvcm1hdXRoLCBUMDQ5c25tcHYzaW5mb3JtcHJpdgo6CgogICBTTk1QdjMgYXV0aE5vUHJpdi9hdXRoUHJpdiBJTkZPUk0gdGVzdHMgYmFzZWQgb24gbmV3IFN2M3VzbWNvbmZpZyoKCjIwMDUtMTAtMjQgMTk6MjcgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M3VzbWNvbmZpZ2FnZW50LCBTdjN1c21jb25maWdiYXNlLAogICAgIFN2M3VzbWNvbmZpZ3RyYXBkOgoKICAgcmV3cml0dGVuIFNOTVB2MyBVU00gY29uZmlnOiBiYXNpYywgYWdlbnQsIHRyYXBkCgoyMDA1LTEwLTI0IDE5OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIEZpeCBmb3IgY29tcGlsYXRpb24gaXNzdWVzOgogICAgIC0gcmVhcnJhbmdlIGZ1bmN0aW9uIG9yZGVyIHRvIGdldCBwcm9wZXIgcHJvdG90eXBlIG9yZGVyaW5nIHdpdGhvdXQKICAgICAgIHByb3RvdHlwZXMuCiAgICAgLSBSZW1vdmVkIGRhdGEgdHlwZSBmb3IgYSB2YXJpYWJsZSBuYW1lIHRoYXQgd2FzIGdldHRpbmcgcGFzc2VkIGluCiAgICAgICBhcyB3ZWxsLgoKMjAwNS0xMC0yNCAxODo0MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmM6CgogICB1c2UgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2luZGV4X2ZpbmQgaW5zdGVhZCBvZiBJbnRlcmZhY2VfSW5kZXhfQnlfTmFtZQoKMjAwNS0xMC0yNCAxODozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICByZW1vdmUgTUZEX1JFV1JJVEUgY2hlY2ssIHVzZSBVU0lOR19NSUJJSV9JTlRFUkZBQ0VTX01PRFVMRSBpbnN0ZWFkCgoyMDA1LTEwLTI0IDE4OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgY29uZmlnX2V4Y2x1ZGUgbWliSUkvaW50ZXJmYWNlcwoKMjAwNS0xMC0yNCAxODozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICAtIHJlcXVpcmUgbmV3IG1pYklJL2lmVGFibGUgaW5zdGVhZCBvZiBtaWJJSS9pbnRlcmZhY2VzCiAgIC0gcmVtb3ZlIE1GRF9SRVdSSVRFIGNoZWNrCiAgIC0gY29uc29saWRhdGUgbGludXggcmVxdWlyZXMgdG8gb25lIGxpbmUKCjIwMDUtMTAtMjQgMTg6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYzoKCiAgIGZpeCBpZkluZGV4IG1pcy1tYXRjaCAoYWRkIHN1cHBvcnQgZm9yIG5ldHNubXBfaW50ZXJmYWNlX2VudHJ5KQoKMjAwNS0xMC0yNCAxODozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oOgoKICAgLSByZXF1aXJlIG5ldyBtaWJJSS9pZlRhYmxlIGluc3RlYWQgb2YgbWliSUkvaW50ZXJmYWNlcwogICAtIHJlcXVpcmUgaG9zdC9ocl9kZXZpY2UgdG9vLCBzaW5jZSBpdCBkZWNsYXJlcyBnbG9iYWxzIHdlIG5lZWQKCjIwMDUtMTAtMjQgMTg6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBpbXBsZW1lbnQgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkgZnVuY3Rpb25zIEludGVyZmFjZV9TY2FuXyhJbml0fE5leHQpIHNvCiAgICAgYWxsIG1vZHVsZXMgY2FuIGFncmVlIG9uIGlmSW5kZXggdmFsdWVzCgoyMDA1LTEwLTI0IDE3OjUyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggY3V0LW4tcGFzdGUgYnVnIGluIGl0ZXJhdG9yOyByZXNldCBwdHIgb3ZlcndyaXR0ZW4gYnkgcmVsZWFzZQoKMjAwNS0xMC0yNCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIGRyb3AgcGFja2V0cyB3aXRoIHNlc3Npb24gZXJybm9zIGF0dGFjaGVkIHRvIHRoZW0KCjIwMDUtMTAtMjQgMTM6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIHJlbW92ZSBNRkQgcmV3cml0ZSBneXJhdGlvbnMKCjIwMDUtMTAtMjQgMTM6NDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0xMC0yNCAxMzo0MyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCB0ZXN0cyBmb3IgaW52YWxpZCBvcHRpb25zIChtaW5pYWdlbnQpCgoyMDA1LTEwLTI0IDEzOjQyICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgYWRkIGRldGFpbHMgdG8gbG9nL2RlYnVnIG1lc3NhZ2UKCjIwMDUtMTAtMjQgMTM6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oOgoKICAgdXNlIG5ldyBtaWJJSS9pZlRhYmxlIGluIHBsYWNlIG9mIG1pYklJL2ludGVyZmFjZXMKCjIwMDUtMTAtMjQgMTM6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmg6CgogICBuZXcgbW9kdWxlIGZvciBvdGhlciBtb2R1bGVzIHRvIHJlZmVyZW5jZSwgaW4gcGxhY2Ugb2YgbWliSUkvaW50ZXJmYWNlcwoKMjAwNS0xMC0yNCAxMzoyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZml4IGlmSW5kZXggbG9va3VwIG9uIGxpbnV4ICh1c2UgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2luZGV4X2ZpbmQpCgoyMDA1LTEwLTI0IDExOjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgR2VuZXJpYyB0YWJsZSBBUEk6ICJSb3cgb3BlcmF0aW9ucyIgICAoZXhwZXJpbWVudGFsIGltcGxlbWVudGF0aW9uKQoKMjAwNS0xMC0yNCAxMToxNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBpbnRyb2R1Y2UgU0tJUCgpCgoyMDA1LTEwLTI0IDEwOjE5ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNERVNjb25maWcsIFN2M1NIQURFU2NvbmZpZzoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBTTk1QdjMgY29uZmlnIGZpbGVzCgoyMDA1LTEwLTI0IDA3OjAyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIEdlbmVyaWMgdGFibGUgQVBJOiBSb3cgb3BlcmF0aW9ucwoKMjAwNS0xMC0yNCAwNjo1OCAgZHRzMTIKCiAgICogbG9jYWwvc25tcGR1bXAucGw6CgogICBGb3IgVGhvbWFzCgoyMDA1LTEwLTI0IDA2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQcm92aXNpb25hbCBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgIlRhYmxlIG1haW50ZW5hbmNlIiBnZW5lcmljIEFQSS4KICAgTW9zdCBvZiB0aGlzIGlzIG5vdCByZWFsbHkgYXBwbGljYWJsZSB0byB0aGUgaXRlcmF0b3IgaGVscGVyLCBidXQKICAgaGF2aW5nIGEgc3RhbmRhcmQgbWVjaGFuaXNtIGZvciBjb25zdHJ1Y3RpbmcgKGFuZCBmcmVlaW5nKSB0aGUKICAgbWFpbiBpdGVyYXRvciBzdHJ1Y3R1cmUgbWlnaHQgYmUgdXNlZnVsLgoKMjAwNS0xMC0yNCAwNjoyMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQ291bnQgdGhlIG51bWJlciBvZiByb3dzIGluIGFuIGl0ZXJhdG9yLWJhc2VkIHRhYmxlLgoKMjAwNS0xMC0yNCAwNjoxOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIEFzc29jaWF0ZSB0YWJsZSBpbmRleCBpbmZvcm1hdGlvbiB3aXRoIHRoZSBpdGVyYXRvciBzdHJ1Y3R1cmUuCiAgIChFeHBlcmltZW50YWwgY29kZSAtIGludHJvZHVjZXMgYSBtaW5vciBvbmUtb2ZmIG1lbW9yeSBsZWFrLAogICAgYnV0IHNob3VsZG4ndCBvdGhlcndpc2UgYWZmZWN0IGV4aXN0aW5nIGNvZGUpCgoyMDA1LTEwLTIzIDIwOjExICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvVDAzNXNubXB2M3RyYXBkdXNlcm1nbXQ6CgogICBpbml0aWFsIHRlc3QgZm9yIFNOTVB2MyBzbm1wdHJhcGQgVVNNIHVzZXIgbWFuYWdlbWVudCB3aXRoIHNubXB1c20KCjIwMDUtMTAtMjMgMTk6NTcgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgZml4IENIRUNLQUdFTlQoKSBhbmQgaW50cm9kdWNlIENIRUNLVFJBUERPUkRJRSgpCgoyMDA1LTEwLTIzIDE5OjQ1ICB0YW5kZXJzCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBmaXggdHlwbwoKMjAwNS0xMC0yMyAxNToxNSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZmxhZ3Mgc3VwcG9ydDsgZGVmYXVsdCB0byBubyBkdXBsaWNhdGUga2V5cwoKMjAwNS0xMC0yMyAxNToxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHR3ZWFrIG9wdGlvbnMgZnVuY3Rpb24gdG8gYWxsb3cgdGVzdCBhbmQgc2V0CgoyMDA1LTEwLTIzIDE1OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgYWRkIGZ1bmN0aW9uIHRvIHNldCBjb250YWluZXIgb3B0aW9ucwoKMjAwNS0xMC0yMiAxODoyNiAgdGFuZGVycwoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIHRlc3RzL1N2M2NvbmZpZywKICAgICB0ZXN0cy9TdjN2YWNtY29uZmlnLCB0ZXN0cy9TdmFjbWNvbmZpZywKICAgICB0ZXN0cy9TdmFueWNvbmZpZzoKCiAgIGZpeCB0eXBvIGluIHZhcmlhYmxlIG5hbWUKCjIwMDUtMTAtMjIgMTg6MTQgIHRhbmRlcnMKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcmVwbGFjZSBvYnNvbGV0ZSBzbm1wdHJhcGQgIi11IiBmbGFnIGJ5ICItcCIKCjIwMDUtMTAtMjIgMTg6MTIgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLy5jdnNpZ25vcmU6CgogICBpcC1taWIgY2hhbmdlcyBub3cgcmVxdWlyZSAuY3ZzaWdub3JlCgoyMDA1LTEwLTIyIDE4OjA0ICB0YW5kZXJzCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnc2hhOgoKICAgb2Jzb2xldGVkIGJ5IFN2M2NvbmZpZwoKMjAwNS0xMC0yMiAwMDo1NCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTd0cmFwZGF1dGh0ZXN0LCBUMDU3dHJhcGRhdXRodGVzdDIKLCBUMDU3dHJhcGRhdXRodGVzdDM6CgogICBwcm9wZXIgY2hlY2tzIGZvciBmYWlsdXJlIG9mIHVuYXV0aG9yaXplZCB0cmFwcwoKMjAwNS0xMC0yMiAwMDo1MSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU3dHJhcGRhdXRodGVzdDI6CgogICB0ZXN0IGZvciB3cm9uZyB0cmFwIG9pZHMKCjIwMDUtMTAtMjIgMDA6NDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtLCBUMDUwc25tcHYzdHJhcCwKICAgICBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDUzYWdlbnR2MXRyYXAKLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAsCiAgICAgVDA1NmFnZW50djJjbWludHJhcCwgVDA1OGFnZW50YXV0aHRyYXAsCiAgICAgVDExM2FnZW50eHRyYXA6CgogICBuZXcgY29uZmlnIHRva2VucyByb3VuZCAyCgoyMDA1LTEwLTIyIDAwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuaCwgYXBwcy9zbm1wdHJhcGRfYXV0aC5jCjoKCiAgIERvIHRyYXAgYXV0aCBwYXJzaW5nIHRoZSB3YXkgRGF2ZSB3YW50cy4KCjIwMDUtMTAtMjEgMjA6MzAgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbm90ZSBuZXcgaGVscGVyIGFuZCBzY2FsYXJzCgoyMDA1LTEwLTIxIDIwOjI3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliLmg6CgogICBhZGQgbmV3IElQLU1JQiBzY2FsYXJzCgoyMDA1LTEwLTIxIDIwOjI2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcF9zY2FsYXJzLmg6CgogICBkYXRhIGFjY2VzcyBmb3Igc29tZSBJUC1NSUIgc2NhbGFycwoKMjAwNS0xMC0yMSAyMDoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy86IHNjYWxhcnNfY29tbW9uLmgsCiAgICAgc2NhbGFyc19saW51eC5jOgoKICAgZGF0YSBhY2Nlc3MgZm9yIGxpbnV4IHNjYWxhcnMKCjIwMDUtMTAtMjEgMjA6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpcF9zY2FsYXJzLmMsIGlwX3NjYWxhcnMuaDoKCiAgIHNvbWUgbmV3IHNjYWxhcnMgaW4gdGhlIElQLU1JQgoKMjAwNS0xMC0yMSAyMDoyMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICAtIG5ldyBoZWxwZXIgZm9yIHJ3IGFjY2VzcyB0byBhbiBpbnRlZ2VyIGJhc2VkIHZhcmlhYmxlIHdoaWNoIGlzIHN0b3JlZAogICAgIGFzIGFzY2lpIGluIGEgZmlsZQoKMjAwNS0xMC0yMSAxODozMSAgdGFuZGVycwoKICAgKiBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBBZGQgIi1DRSBFTkdJTkUtSUQiIG9wdGlvbiB0byBzcGVjaWZ5IHRoZSB1c21Vc2VyRW5naW5lSUQuIEVuYWJsZXMgc25tcHVzbSB0byBtYW5hZ2Ugc25tcHRyYXBkJ3MgdXNtVXNlclRhYmxlIChmaXhlcyBidWcgIzEzMzM2NTUpLgoKMjAwNS0xMC0yMSAxODowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIC0gZml4IGZ1biBjb21tZW50IGhlYWRlciBmb3IgZG94eWdlbiAoa2VlcCB3ZXMgaGFwcHkpCiAgIC0gZG9jdW1lbnQgc2xpZ2h0bHkgbm9uLW9idmlvdXMgaW5kZXggdXNlIChrZWVwIGRhdmUgaGFwcHkpCgoyMDA1LTEwLTIxIDEyOjI5ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQXBwbHkgcGF0Y2ggMTI5OTU1NCBmcm9tIFRhbyB0byBmaXggc2VnZmF1bHQgaW4gdmFyX2lmRW50cnkoKQoKMjAwNS0xMC0yMSAwNjo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkdWxlL3NjaGVkQ29uZi5jOgoKICAgTW9yZSBwb3J0YWJsZSBoYW5kbGluZyBvZiAnb3ZlcnNob290JyBkZWNsYXJhdGlvbi4KCjIwMDUtMTAtMjEgMDY6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZV9jb250YWluZXIuYywgdGFibGVfZGF0YS5jLAogICAgIHRhYmxlX2l0ZXJhdG9yLmM6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgIlRhYmxlIG1haW50ZW5hbmNlIiBzZWN0aW9uCiAgIG9mIHRoZSBnZW5lcmljIHRhYmxlIEFQSS4KCjIwMDUtMTAtMjEgMDY6NDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jOgoKICAgTWlub3IgdHdlYWtzIHRvIGdlbmVyaWMgdGFibGUgQVBJIG5hbWVzLAogICBhbmQgY29ycmVjdCBhIGNvdXBsZSBvZiBmbGF3ZWQgZnVuY3Rpb24gcHJvdG90eXBlcy4KCjIwMDUtMTAtMjEgMDU6MjIgIHRhbmRlcnMKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSBnZW5lcmFsaXplZCBleGNlcHRpb24gcmVnZXggdG8gbGV0IGFueSAidGVzdGluZyAuLi4gZmFpbHVyZSAuLi4iIGdvIHRocm91Z2gsIGUuZy4gdGhlIG5ldyBzbm1wdHJhcGQgdGVzdCByZWNlbnRseSBpbnRyb2R1Y2VkCgoyMDA1LTEwLTIxIDAxOjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBpbml0IHZhY20KCjIwMDUtMTAtMjEgMDE6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5oOgoKICAgaW5jbHVkZSB0aGUgbmV3IHNubXB0cmFwZF9kcy5oIGZpbGUKCjIwMDUtMTAtMjEgMDE6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIEFkZGVkIGEgd2FybmluZyBub3RlIGFib3V0IHBvdGVudGlhbCBjb25mbGljdHMgd2l0aCBzbm1wdHJhcGQsIHdoaWNoCiAgIGhhZCBhY3R1YWxseSBiZWVuIGJ5cGFzc2VkIHJlY2VudGx5IGFuZCBubyBvbmUgbm90aWNlZC4KCjIwMDUtMTAtMjEgMDE6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1N3RyYXBkYXV0aHRlc3Q6CgogICB0ZXN0IHRyYXBkIGF1dGhvcml6YXRpb24gZmFpbHVyZXMKCjIwMDUtMTAtMjEgMDE6NDAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDQ5c25tcHYzaW5mb3JtLCBUMDUwc25tcHYzdHJhcCwKICAgICBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLCBUMDUzYWdlbnR2MXRyYXAKLCBUMDU0YWdlbnR2MmN0cmFwLCBUMDU1YWdlbnR2MW1pbnRyYXAsCiAgICAgVDA1NmFnZW50djJjbWludHJhcCwgVDA1OGFnZW50YXV0aHRyYXAsCiAgICAgVDExM2FnZW50eHRyYXA6CgogICBNb2RpZmllZCB0aGUgdGVzdHMgdG8gYWNjb21tb2RhdGUgdGhlIG5ldyB0cmFwZCBhdXRoIHNjaGVtZQoKMjAwNS0xMC0yMSAwMTozOCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2F1dGguYwosIHNubXB0cmFwZF9hdXRoLmgsIHNubXB0cmFwZF9kcy5oLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIEFkZGVkIGEgbmV3IGF1dGhvcml6YXRpb24gaGFuZGxlciBhbmQgcmVsYXRlZCBjb25maWd1cmF0aW9uIHRva2VucyB0bwogICBhbGxvdyBzbm1wdHJhcGQgdG8gYWNjZXB0IG9yIGRyb3Agbm90aWZpY2F0aW9ucyBiYXNlZCBvbiB0aGUKICAgYXV0aG9yaXphdGlvbiBhc3NpZ25lZCB0byBhIGNvbW11bml0eS91c2VyIHBhaXJlZCB3aXRoIHRoZSBhY3Rpb24gdG8KICAgYmUgdGFrZW4gKGxvZywgZm9yd2FyZCwgZXhlY3V0ZSkuICBUaGVyZSBhcmUgYSBudW1iZXIgb2YgY29uZmlndXJhdGlvbgogICB0b2tlbnMgdGhhdCB3ZXJlIGFkZGVkIHRvIGFjaGlldmUgdGhpcy4gIDMgb2YgdGhlIFZBQ00gb25lcyBjYW4gYmUKICAgdXNlZCBhcyBub3JtYWwgKHZpZXcsIGNvbTJzZWMsIGdyb3VwKSBhbmQgb25lIGFkZGl0aW9uYWwgb25lCiAgIChzZXRhY2Nlc3MpIG5lZWRzIHRvIGJlIHVzZWQgdG8gc2V0IGluZGl2aWR1YWwgdmlld3MgZm9yIGFjY2VzcyB0bwogICBiaW5kIGV2ZXJ5dGhpbmcgdG9nZXRoZXIuICBUaGVyZSBhcmUgYSBudW1iZXIgb2YgY29udmVuaWVuY2Ugd3JhcHBlcnMKICAgYXMgd2VsbCBmb3IgdGhlc2UgdG9rZW4gc2V0cy4gIEZpbmFsbHksIHRoZXJlIGlzIGEKICAgZGlzYWJsZUF1dGhvcml6YXRpb24gdG9rZW4gdGhhdCBjYW4gYmUgc2V0IHRvIHRydWUgdG8gc2ltcGx5IGFsbG93CiAgIGV2ZXJ5dGhpbmcgdGhyb3VnaC4KCjIwMDUtMTAtMjEgMDE6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgLSByZXN0cnVjdHVyZWQgdGhlIFZBQ00gY29kZSB0byBwcm92aWRlIGZvciB0aGUgbm90aW9uIG9mIGFkZGl0aW9uYWwKICAgICB2aWV3cyBiZXNpZGVzIHRoZSBzdGFuZGFyZCByZWFkL3dyaXRlL25vdGlmeSB2aWV3cwogICAgIC0gbXVjaCBvZiB0aGUgY2hlY2tpbmcgY29kZSB3YXMgcmVzdHJ1Y3R1cmVkIHRvIGJlIG1vcmUgbW9kdWxhcgogICAgIC0gYWRkZWQgYSBuZXcgc2V0YWNjZXNzIGNvbmZpZyB0b2tlbiB0aGF0IGNhbiBzZXQgdGhlIHZpZXcgbmFtZSBmb3IKICAgICAgIGEgcGFydGljdWxhciBhY2Nlc3MgbGV2ZWwKICAgICAtIGFkZGVkIDMgbmV3IGFjY2VzcyBsZXZlbHM6IGxvZywgZXhlY3V0ZSwgbmV0CiAgICAgICAtIGFkZGVkIGVudW0gc3RydWN0dXJlIGZvciB0aGVzZQoKMjAwNS0xMC0yMCAxMzoyMiAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IHJlbWFpbmluZyBJUCBhZGRyZXNzIGJ5dGUgb3JkZXIgYnVnCgoyMDA1LTEwLTIwIDA4OjI2ICBkdHMxMgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgRXZlbnQgTUlCLgoKICAgKFFuOiB3aGVyZSBkb2VzICdkZWZhdWx0X21pYnNfaW5zdGFsbCcgZ2V0IHNldD8pCgoyMDA1LTEwLTIwIDA4OjI1ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCBzY2hlZHVsZSBNSUIgaW1wbGVtZW50YXRpb24gdG8gdGhlIGRlZmF1bHQgbGlzdC4KCiAgIFRoaXMgcXVhbGlmaWVzIGZvciBib3RoOgogICAgICAgJ1RyYWRpdGlvbmFsbHkgaXQncyBiZWVuICJ0dXJuIGl0IG9uIGlmIGl0IGNvbXBpbGVzIDEwMCUKICAgICAgICBvZiB0aGUgdGltZS4uLi4nCiAgIHNpbmNlIGl0J3MgYWxsIG5vbi1hcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29kZSwgYW5kOgogICAgICAgJy4uLiBhbmQgaWYgaXQgcmVxdWlyZXMgcnVuIHRpbWUgZW5hYmxpbmcgYXMgd2VsbCIKCjIwMDUtMTAtMjAgMDg6MDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC5oOgoKICAgQWRkIHRoZSBFdmVudCBNSUIgdG8gdGhlIGxpc3Qgb2YgTUlCcyB0byBsb2FkLgoKMjAwNS0xMC0yMCAwNzozMyAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtIHJtZGlyIC0+IHJtIC1mUiwgc2luY2UgZGlyZWN0b3J5IGlzbid0IGVtcHR5CiAgIC0gYWRkIC1wL1NOTVBfVEVTVF9QUkVGSVggdG8gYWxsb3cgbm9uLXN0YW5kYXJkIHRlc3RzIHRvIGJlIHJ1bgoKMjAwNS0xMC0yMCAwNTozMSAgdGFuZGVycwoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHByb3BhZ2F0ZSB0ZXN0LW1pYnMgdGFyZ2V0CgoyMDA1LTEwLTIwIDA0OjMxICB0YW5kZXJzCgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZ1cnRoZXIgdHdlYWsgZXhjZXB0aW9uIHJlZ2V4CgoyMDA1LTEwLTE5IDIzOjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywgaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgYWRkIGlmVGFibGVMYXN0Q2hhbmdlIHNjYWxhcgoKMjAwNS0xMC0xOSAxNzo1OSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUuaW46CgogICBkb2N1bWVudCB0aGF0IC0tZW5hYmxlLWVtYmVkZGVkLXBlcmwgYWZmZWN0cyBzbm1wdHJhcGQgYWxzbwoKMjAwNS0xMC0xOSAxMTowMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrIGVycm9yIHJlZ2V4cCBleGNlcHRpb25zCgoyMDA1LTEwLTE5IDA3OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBXaXRoZHJhdyAndGFibGVfZGF0YXNldDInIGhlbHBlcgoKMjAwNS0xMC0xOSAwMToxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgYWRkICdkZWZhdWx0JyBhcyB0aGUgb2lkIGZvciBleGVjaW5nIHRoZSBleGFtcGxlIHRyYXBoYW5kbGUKCjIwMDUtMTAtMTkgMDE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIEZpeCBidWcgIzEzMTM2Njc6IGluZm9ybXMgYXJlIHNlbnQgYXN5Y2hyb25vdXNseSB0byBhdm9pZCBjcmFzaGluZyB0aGUgYWdlbnQgd2hlbiB0aGUgcmVjZWl2ZXIgaXMgZG93bgoKMjAwNS0xMC0xOCAyMjoyNCAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LCBSRUFETUUudHh0LAogICAgIGluc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMjogUmVuYW1lIE5ldC1TTk1QLnBwZCB0byBOZXRTTk1QLnBwZCwgYWRkIGEgY291cGxlCiAgIGhlYWRlciBmaWxlcyB0byBXaW4zMiB1bmluc3RhbGxlci4KCjIwMDUtMTAtMTggMTg6MjIgIHRhbmRlcnMKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGFkZCAjaWZkZWZzIGZvciBNSUIgbW9kdWxlIGRlcGVuZGVudCBjb2RlCgoyMDA1LTEwLTE4IDE3OjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaXggaW5kZXggZ2VuZXJhdGlvbiBmb3IgZml4ZWQgbGVuZ3RoIG9jdGV0IHN0cmluZ3MKCjIwMDUtMTAtMTggMTI6MDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldDIuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQyLmgsCiAgICAgd2luMzIvbGliaGVscGVycy9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwOgoKICAgV2l0aGRyYXcgJ3RhYmxlX2RhdGFzZXQyJyBoZWxwZXIuCgoyMDA1LTEwLTE4IDExOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgICAgbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLCBtdGVFdmVudFRhYmxlLmM6CgogICBSZXZlcnQgdG8gb3JpZ2luYWwgJ3RhYmxlX2RhdGFzZXQnIGhlbHBlci4KCjIwMDUtMTAtMTggMTE6NDMgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgc3luYyByZWFkbWUgaW4gYWxsIGJyYW5jaGVzCgoyMDA1LTEwLTE4IDExOjMzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICBSZXZlcnQgdG8gdXNpbmcgdGhlIG9yaWdpbmFsICd0YWJsZV9kYXRhc2V0JyBoZWxwZXIuCgoyMDA1LTEwLTE4IDExOjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFByb3ZpZGUgbWlzc2luZyB0YWJsZS10cmF2ZXJzYWwgcm91dGluZXMuCgoyMDA1LTEwLTE4IDEwOjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWR1bGUvc2NoZWRDb25mLmg6CgogICBPb3BzISAgT25lIGxvY2F0aW9uIGNoYW5nZSBnb3Qgb3Zlcmxvb2tlZCEKCjIwMDUtMTAtMTggMTA6NDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtYWtlIGdyZXBzIGZvciBlcnJvciBjYXNlIGluc2Vuc2l0aXZlCgoyMDA1LTEwLTE4IDEwOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGRvIG5vdCBpbnN0YWxsIHJlbW92ZWQvcmVkdW5kYW50IGhlYWRlcgoKMjAwNS0xMC0xOCAxMDoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jCiwgYWdlbnQvaGVscGVycy90YWJsZV90ZGF0YS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV90ZGF0YS5oLAogICAgIHdpbjMyL2xpYmhlbHBlcnMvTWFrZWZpbGUuaW46CgogICBSZW5hbWUgJ3RhYmxlX2RhdGEyJyBoZWxwZXIgYXMgJ3RhYmxlX3RkYXRhJwoKMjAwNS0xMC0xOCAwNzo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmg6CgogICBQcmVwYXJlIHRoZSB3YXkgZm9yIHJlbmFtaW5nICd0YWJsZV9kYXRhMicgbW9yZSBzZW5zaWJseS4KCjIwMDUtMTAtMTggMDc6MzggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlRXZlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlT2JqZWN0cy5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V4cHIvZXhwRXhwcmVzc2lvbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9leHByL2V4cE9iamVjdC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIFJlbW92ZSB1bndhbnRlZCB2ZXN0aWdhdGVzIG9mICd0YWJsZV9kYXRhJyBzdHJ1Y3R1cmVzLCBhbmQgYnJpbmcKICAgdGFibGUgY3JlYXRpb24gbW9yZSBjbG9zZWx5IGludG8gbGluZSB3aXRoIHRoZSBnZW5lcmljIEFQSSB0ZW1wbGF0ZS4KCjIwMDUtMTAtMTggMDc6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIE1pc3NpbmcgcmV0dXJuIHZhbHVlLgoKMjAwNS0xMC0xOCAwNzoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZU9iamVjdHMuYzoKCiAgIE1pc3NpbmcgcmV0dXJuIHZhbHVlcy4KCjIwMDUtMTAtMTggMDc6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jOgoKICAgSWYgbm8gaXF1ZXJ5IHNlc3Npb24gaXMgY29uZmlndXJlZCBmb3IgYSBwYXJ0aWN1bGFyIGV2ZW50LAogICB0cnkgdGhlIHNldHRpbmdzIGZyb20gdGhlIHRyaWdnZXIsIGJlZm9yZSBmYWxsaW5nIGJhY2sgdG8KICAgdGhlIGRlZmF1bHQgaW50ZXJuYWwgcXVlcnkgc2Vzc2lvbi4KCjIwMDUtMTAtMTggMDc6MTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgVXNlICdpcXVlcnlTZWNOYW1lJyBzZXR0aW5ncyBhdCBjb25maWd1cmUgdGltZSwgcmF0aGVyIHRoYW4gd2hlbgogICB0aGUgdHJpZ2dlciBpcyBhY3R1YWxseSBpbnZva2VkLiAgVGhpcyBhbGxvd3M6CiAgICAgICAgaXF1ZXJ5U2VjTmFtZSBtZQogICAgICAgIG1vbml0b3IgbXlNb25pdG9yIC4uLi4uCiAgICAgICAgbW9uaXRvciBteU90aGVyTW9uaXRvciAuLi4uLgogICAgICAgIGlxdWVyeVNlY05hbWUgeW91CiAgICAgICAgbW9uaXRvciB5b3VyTW9uaXRvciAuLi4uLgogICB0byB3b3JrIGluIHRoZSBtb3N0IG5hdHVyYWwgbWFubmVyLgogICBJZiBubyBpcXVlcnkgc2VjdXJpdHkgbmFtZSBpcyBhdmFpbGFibGUgYXQgY29uZmlndXJlIHRpbWUsCiAgIHRoaXMgd2lsbCBiZSBldmFsdWF0ZWQgYXQgcnVuIHRpbWUgaW5zdGVhZC4KCjIwMDUtMTAtMTggMDc6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkQ29uZi5jLCBzY2hlZENvbmYuaCwKICAgICBzY2hlZENvcmUuYywgc2NoZWRDb3JlLmgsIHNjaGVkVGFibGUuYywKICAgICBzY2hlZFRhYmxlLmg6CgogICBSZW1vdmUgcHJldmlvdXMgU2NoZWR1bGUgTUlCIGltcGxlbWVudGF0aW9uLgoKMjAwNS0xMC0xOCAwNzowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWR1bGUuaCwgc2NoZWR1bGUvLmN2c2lnbm9yZQosIHNjaGVkdWxlL3NjaGVkQ29uZi5jLCBzY2hlZHVsZS9zY2hlZENvbmYuaCwKICAgICBzY2hlZHVsZS9zY2hlZENvcmUuYywgc2NoZWR1bGUvc2NoZWRDb3JlLmgsCiAgICAgc2NoZWR1bGUvc2NoZWRUYWJsZS5jLCBzY2hlZHVsZS9zY2hlZFRhYmxlLmg6CgogICBSZS13b3JrZWQgU2NoZWR1bGUgTUlCIGltcGxlbWVudGF0aW9uLgogICBDbGVhbmVyLCBsZWFuZXIsIGFuZCBtb3JlIGNvbXBsZXRlLgogICBOb3cgd2l0aCBhZGRlZCB2aXRhbWlucy4KCjIwMDUtMTAtMTcgMTg6MjQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBhZGQgbW92ZSB2ZXJib3NlIGRlYnVnZ2luZzsgaW5pdCBpbm5lciBsb29wIGNvdW50ZXIgYWZ0ZXIgZWFjaCBpdGVyYXRpb24KCjIwMDUtMTAtMTcgMTc6MDIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgcG9ydGFibGUgZXhwb3J0IG9mIGVudiB2YXIKCjIwMDUtMTAtMTcgMTY6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBGaXggYSBmbGlwcGluZyBsbyBpbnRlcmZhY2UgYnkgZml4aW5nIGdldEtzdGF0SW50IHRvIGRvIGFzIGRvY3VtZW50ZWQKCjIwMDUtMTAtMTcgMTQ6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgYWRkIHByb3RvdHlwZSBiZWZvcmUgdXNlOyBjaGVjayBzdGF0dXMgb2YgY29ycmVjdCBzdHJ1Y3QgbWVtYmVyCgoyMDA1LTEwLTE3IDEyOjUyICByc3RvcnkKCiAgICogUkVBRE1FLm9zWDoKCiAgIC0gbm90ZSBsZCBmbGFncyBmb3IgMTAuNC54IGJ1aWxkaW5nIHcvcGVybAoKMjAwNS0xMC0xNyAxMTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBFbnN1cmUgdGhlIGV2ZW50IG5hbWUgYnVmZmVyIGlzIHByb3Blcmx5IGNsZWFyZWQgYmVmb3JlIHVzZS4KCjIwMDUtMTAtMTcgMDc6MzYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBNb2RpZnkgZXhpc3RpbmcgdGFibGUgaGVscGVycyBpbiBsaW5lIHdpdGggdGhlIHByb3Bvc2VkIGdlbmVyaWMgQVBJLgoKICAgVGhpcyBkb2VzICpOT1QqIGNoYW5nZSBhbnkgZXhpc3RpbmcgY29kZSAoYXQgbGVhc3Qgbm90IGludGVudGlvbmFsbHkpLAogICBvciBhZGQgYW55IG9mIHRoZSAibWlzc2luZyIgQVBJIHJvdXRpbmVzLiAgSSd2ZSBzaW1wbHkgcmUtc2h1ZmZsZWQKICAgdGhlIG9yZGVyIG9mIHRoZSBleGlzdGluZyByb3V0aW5lcyB0byBtYXRjaCB0aGUgZ2VuZXJpYyB0ZW1wbGF0ZS4KCjIwMDUtMTAtMTcgMDc6MjkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZ2VuZXJpYy5jOgoKICAgUHJvcGVyIGRlZmluaXRpb24vZG9jdW1lbnRhdGlvbiBvZiBhIGdlbmVyaWMgdGFibGUgQVBJIGZyYW1ld29yay4KICAgVGhlIGV4YWN0IGRldGFpbHMgbWF5IG5vdCBiZSBkaXJlY3RseSBhcHByb3ByaWF0ZSBpbiBmdWxsIGZvciBldmVyeQogICB0YWJsZSBoZWxwZXIsIGJ1dCB0aGlzIHNob3VsZCBwcm92ZGUgYSB1c2VmdWwgYmFzaWMgZGVzaWduIHRlbXBsYXRlLgoKMjAwNS0xMC0xNyAwMDowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZW1vdmVkIGZvcmNlZCBkZWJ1Z2dpbmcgb3V0cHV0CgoyMDA1LTEwLTE0IDE5OjM3ICBic2hhdzY2NgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGF1dG9jb25mIHJlY29nbml0aW9uCgoyMDA1LTEwLTE0IDE4OjQ1ICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBzdXBwb3J0IE5ldEJTRCAxLnggYW5kIDIueCB1bmRlciB0aGUgKGNvbW1vbikgIm5ldGJzZCIgc3lzT2JqZWN0SUQuMAoKMjAwNS0xMC0xNCAxNzoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gdXBkYXRlIGNvbW1lbnRzIGFuZCBkZWJ1ZyBtZXNzYWdlcwogICAtIGRvbid0IHJlbGVhc2Ugcm93IG9uIGVyciAoaXQncyBzdGlsbCBpbiB0aGUgY29udGFpbmVyISkKICAgLSBkb24ndCBpbnNlcnQgcm93IG9uIHN1Y2Nlc3MgKGl0J3MgYWxyZWFkeSBpbiB0aGUgY29udGFpbmVyISkKCjIwMDUtMTAtMTQgMTc6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgIG1pYmdyb3VwL3V0aWxpdGllcy9pcXVlcnkuYzoKCiAgIHJlcGxhY2UgaGFyZGNvZGVkICJzbm1wZCIgdy9ORVRTTk1QX0RTX0xJQl9BUFBUWVBFCgoyMDA1LTEwLTE0IDExOjI1ICB0YW5kZXJzCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICByZWdpc3RlciB0aGUgc25tcEVuZ2luZSBNSUIgZ3JvdXAgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQgdG8gYWxsb3cgZm9yIGVuZ2luZUlEIHByb2JlcyB2aWEgdGhlIG1hc3RlciBhZ2VudCwgZS5nLiBieSBzbm1wdXNtCgoyMDA1LTEwLTE0IDExOjI1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My86IHNubXBFbmdpbmUuYywgc25tcEVuZ2luZS5oOgoKICAgYWxsb3cgc3ViYWdlbnRzIChsaWtlIHNubXB0cmFwZCkgdG8gcmVnaXN0ZXIgdGhlIHNubXBFbmdpbmUgTUlCIGdyb3VwIHVuZGVyIGEgY29udGV4dCBieSBpbnRyb2R1Y2luZyByZWdpc3Rlcl9zbm1wRW5naW5lX3NjYWxhcnNfY29udGV4dCgpCgoyMDA1LTEwLTE0IDA5OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBleHByZXNzaW9uLmgsIGV4cHIvLmN2c2lnbm9yZQosIGV4cHIvZXhwRXJyb3JUYWJsZS5jLCBleHByL2V4cEVycm9yVGFibGUuaCwKICAgICBleHByL2V4cEV4cHJlc3Npb24uYywgZXhwci9leHBFeHByZXNzaW9uLmgsCiAgICAgZXhwci9leHBFeHByZXNzaW9uQ29uZi5jLCBleHByL2V4cEV4cHJlc3Npb25Db25mLmgsCiAgICAgZXhwci9leHBFeHByZXNzaW9uVGFibGUuYywgZXhwci9leHBFeHByZXNzaW9uVGFibGUuaCwKICAgICBleHByL2V4cE9iamVjdC5jLCBleHByL2V4cE9iamVjdC5oLAogICAgIGV4cHIvZXhwT2JqZWN0Q29uZi5jLCBleHByL2V4cE9iamVjdENvbmYuaCwKICAgICBleHByL2V4cE9iamVjdFRhYmxlLmMsIGV4cHIvZXhwT2JqZWN0VGFibGUuaCwKICAgICBleHByL2V4cFNjYWxhcnMuYywgZXhwci9leHBTY2FsYXJzLmgsIGV4cHIvZXhwVmFsdWUuYwosIGV4cHIvZXhwVmFsdWUuaCwgZXhwci9leHBWYWx1ZVRhYmxlLmMsCiAgICAgZXhwci9leHBWYWx1ZVRhYmxlLmg6CgogICBQcmVsaW1pbmFyeSAocmUtKWltcGxlbWVudGF0aW9uIG9mIHRoZSBFeHByZXNzaW9uIE1JQi4KICAgVGhlIGV4cEV4cHJlc3Npb25UYWJsZSBhbmQgZXhwT2JqZWN0VGFibGUgYXJlIHJlYXNvbmFibHkgY29tcGxldGUuCiAgIFRoZSBleHBWYWx1ZVRhYmxlIChhbmQgZXhwcmVzc2lvbiBldmFsdWF0aW9uKSBpcyBzdGlsbCBqdXN0IGEKICAgYmFzaWMgZnJhbWV3b3JrIC0gZXhwcmVzc2lvbnMgYXJlIGRpc3BsYXllZCByYXRoZXIgdGhhbiBldmFsdWF0ZWQuCiAgIEFuZCB0aGVyZSdzIG5vIHVzZXItbGV2ZWwgY29uZmlndXJhdGlvbiBvZiBleHByZXNzaW9ucyB5ZXQuCgogICBCdXQgdGhlcmUncyBlbm91Z2ggd29ya2luZyBjb2RlIHRvIGJlIHdvcnRoIGNvbW1pdHRpbmcgLSBldmVuIGlmCiAgIG9ubHkgYXMgYSBzYWZldHkgbWVjaGFuaXNtLgoKMjAwNS0xMC0xMyAxNzowNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGZpeCBzcGFyc2UgaGFuZGxlciBjYXNlOiBubyBtb3JlIHJvd3MsIGxhc3QgY29sdW1uCgoyMDA1LTEwLTEzIDEyOjQ5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICAtIGZpeCB0YWJsZSB0b2tlbiB0YWJsZSBpbmRleGVzIGZvciBhdWdtZW50ZWQgdGFibGUKICAgLSB0d2VhayBkZWJ1ZwogICAtIGFkZCB3YXJuaW5nIGlmIHRvbyBtdWNoIGRhdGEgc3BlY2lmaWVkIGZvciBhZGRfcm93CgoyMDA1LTEwLTEzIDExOjI4ICByc3RvcnkKCiAgICogZG90Z2RiaW5pdDoKCiAgIGFkZCBwcmludGluZGV4IGZvciBuZXRzbm1wX2luZGV4IHN0cnVjdHMKCjIwMDUtMTAtMTMgMTA6MTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjb25maWd1cmUgcHJlZml4IChpbnN0ZWFkIG9mIHVzaW5nIGluc3RhbGwgcHJlZml4PSkKCjIwMDUtMTAtMTMgMDU6MTUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgU3dpdGNoIHRvIHVzaW5nIHRoZSBuZXcgRXZlbnQtTUlCIGltcGxlbWVudGF0aW9uIGJ5IGRlZmF1bHQuCgogICBUaGUgcHJldmlvdXMgdmVyc2lvbiBpcyBzdGlsbCBhdmFpbGFibGUgZm9yIHRob3NlIHRoYXQgcHJlZmVyCiAgIHRvIHVzZSB0aGF0LCBidXQgSSdtIHN1cmUgc29tZW9uZSB3aWxsIGNvbXBsYWluIGFueXdheTotKAoKMjAwNS0xMC0xMiAxODo1OSAgdGFuZGVycwoKICAgKiBhY2NvbmZpZy5oOgoKICAgb3BlbmJzZCBzeXNPYmplY3RJRC4wIGZvciBPcGVuQlNEIDMueAoKMjAwNS0xMC0xMiAxODoxNiAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluCjoKCiAgIGVuaGFuY2UgcmVjZW50bHkgaW50cm9kdWNlZCAibmV0LXNubXAtY29uZmlnIC0tc25tcGNvbmZwYXRoIiB0byBvdXRwdXQgZnVsbCBjb25maWcgcGF0aAoKMjAwNS0xMC0xMiAxMDo0NiAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGRlZiBmaWxlcyBhcmUgaW4gc3JjZGlyCgoyMDA1LTEwLTEyIDA2OjI4ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBjaGFuZ2Ugbm8tb3AgbWFjcm8gZGVmIHRvIGVtcHR5IGlzbnRlYWQgb2YgKHZvaWQpCgoyMDA1LTEwLTExIDE5OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmM6CgogICByZXdvcmsgNjQgYml0IG92ZXJmbG93IGNoZWNraW5nLCBhY2NvdW50aW5nIGZvciBzaWduZWRlZG5lc3MKCjIwMDUtMTAtMTEgMTY6MzAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggdmFyaWF0aW9ucyBpbiB0YWlsIHBhcmFtZXRlciBmb3JtYXQKCjIwMDUtMTAtMTEgMTQ6NTMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICByZW1vdmUgbGVmdG92ZXIgRU9GIGZyb20gcmV2IDEuMzE0CgoyMDA1LTEwLTExIDA3OjUyICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIG9rLCBsaW51eCBtYWlsIGRvZXNuJ3QgbGlrZSBbY2Vuc29yZWRdIHNvbGFyaXMgc3R5bGU7IGZpeAoKMjAwNS0xMC0xMSAwNzo0OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbWFrZSBzdXJlIG5ldC1zbm1wLWNvbmZpZyBpcyBleGVjdXRlYWJsZSBiZWZvcmUgYnVpbGRpbmcgcGVybCBtYWtlIGZpbGVzCgoyMDA1LTEwLTExIDA1OjI3ICBkdHMxMgoKICAgKiBwZXJsLzogU05NUC9leGFtcGxlcy9idWxrd2Fsay5wbCwKICAgICBTTk1QL2V4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbCwgU05NUC90L2J1bGt3YWxrLnQsCiAgICAgbWFuYWdlci9tYW5hZ2VyLnBtOgoKICAgQmUgY29uc2lzdGVudCBpbiBob3cgdmFyaW91cyBwZXJsIHNjcmlwdHMgYXJlIGludm9rZWQuCgoyMDA1LTEwLTEwIDE5OjQyICB0YW5kZXJzCgogICAqIGFjY29uZmlnLmgsIG1pYnMvTkVULVNOTVAtVEMudHh0LCBvdi9vaWRfdG9fc3ltLmluCiwgb3Yvb2lkX3RvX3R5cGUuaW46CgogICBhZGQgc3lzT2JqZWN0SUQgdmFsdWUgZm9yIE1hYyBPUyBYCgoyMDA1LTEwLTEwIDE4OjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgdXBkYXRlIGxpbnV4IGdldF9pZl9zcGVlZCBmdW5jdGlvbiBuYW1lCgoyMDA1LTEwLTEwIDE4OjAxICB0YW5kZXJzCgogICAqIG92Lzogb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW46CgogICBhZGQgc3lzT2JqZWN0SUQgdmFsdWUgZm9yIEFJWAoKMjAwNS0xMC0xMCAxNzo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gYnJlYWsgYXBhcnQgcmVhZGluZyBvZiBjb25maWcgZmlsZXMgYW5kIHBlcnNpc3RlbnQgY29uZmlnIGZpbGVzIChhbGxvd3MKICAgICBwcm9wZXIgaGFuZGxpbmcgb2YgcGVyc2lzdGVudERpciB0b2tlbiBpbiBjb25maWcgZmlsZXMpCiAgIC0gcmVtb3ZlIGNvbW1lbnRlZCBvdXQgY29kZQoKMjAwNS0xMC0xMCAxNzo1MSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluOgoKICAgcmVwYWxjZSBwZXJsIHcvICQoUEVSTCkKCjIwMDUtMTAtMTAgMTc6NDQgIHRhbmRlcnMKCiAgICogYWNjb25maWcuaCwgbWlicy9ORVQtU05NUC1UQy50eHQ6CgogICBhZGQgc3lzT2JqZWN0SUQgdmFsdWUgZm9yIEFJWAoKMjAwNS0xMC0xMCAxNzowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBmaXggZnJvbSBvcHRhcmcgcHJvY2Vzc2luZwoKMjAwNS0xMC0xMCAxNjoyOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBhZGQgb3B0aW9uIGZvciBmcm9tIGFkZHJlc3MgZm9yIGVtYWlsIHJlc3VsdHMKCjIwMDUtMTAtMTAgMTY6MjUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgLSBhZGQgZGlzdGluY3QgZW1haWwgYWRkcmVzc2VzIGZvciBzdWNjZXNzL2Vycm9yIGNhc2VzCiAgIC0gZml4ZXMgZm9yICMlQCQqJiBzb2xhcmlzIG1haWwgZXhlCiAgIC0gZG9uJ3QgcmVtb3ZlIGRpcmVjdG9yeSB0aWwgdmVyeSBlbmQKCjIwMDUtMTAtMTAgMTY6MjQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBleGNsdWRlIGVycm9yIGxpbmVzIGZvciAnSW4gZnVuY3Rpb24nIChlZyBmdW5jIG5hbWUgY29udGFpbnMgd29yZCBlcnJvcikKCjIwMDUtMTAtMTAgMTQ6NTYgIHJzdG9yeQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIGJhc2UgbWliMmMuY29uZiBnZW5lcmF0aW9uIG9uICRQRVJMLCBub3QgLWQgQ1ZTCiAgIC0gaWYgbm8gcGVybCwgdG91Y2ggZmlsZSBzbyBpbnN0YWxsIGRvZXNuJ3QgZmFpbAoKMjAwNS0xMC0xMCAxNDo0NyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsIGxvY2FsL01ha2VmaWxlLmluCiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gZGVmaW5lIFBFUkwgaW4gYWxsIG1ha2VmaWxlcyAodmlhIE1ha2VmaWxlLnRvcCkKICAgLSByZXBsYWNlIGFsbCBjYWxscyB0byBwZXJsIHdpdGggJChQRVJMKQogICAtIHJlcGxhY2UgZXhpc3RpbmcgUEVSTFBST0cgd2l0aCBQRVJMIGluIG1ha2VmaWxlcwoKMjAwNS0xMC0xMCAxNDozOCAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBQRVJMTERPUFRTIHRvIGFnZW50IGxpYnMKCjIwMDUtMTAtMTAgMDk6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVFdmVudENvbmYuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBBbGxvdyB0aGUgYWRtaW5pc3RyYXRvciB0byBjaG9vc2UgYmV0d2VlbiBmb2xsb3dpbmcgdGhlIERpc01hbgogICBzcGVjaWZpY2F0aW9ucyBzdHJpY3RseSwgb3IgdXNpbmcgYW4gYXBwcm9hY2ggdGhhdCBhY3R1YWxseSB3b3JrcyEKICAgKFRoZSBvZmZpY2lhbCBvcmRlcmluZyBmb3IgYWRkaW5nIHZhcmJpbmRzIHRvIGEgbm90aWZpY2F0aW9uCiAgICBwYXlsb2FkIGxpc3QgbWFrZXMgaXQgaW1wb3NzaWJsZSB0byB1c2Ugc3BlY2lmeSBUcmlnZ2VyIGFuZAogICAgRXZlbnQgb2JqZWN0cyBpbiBhIHNlbnNpYmxlIGZhc2hpb24pLgoKMjAwNS0xMC0xMCAwOTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIERvbid0IHJlcG9ydCByb3dzIHRoYXQgaGF2ZW4ndCBmaW5pc2hlZCBiZWluZyBjcmVhdGVkLCBhbmQKICAgZG9uJ3Qga2VlcCBzY2hlZHVsaW5nIHNhbXBsZXMgZm9yIHJvd3MgdGhhdCBhcmUgZGlzYWJsZWQgb3IgcmVtb3ZlZC4KCjIwMDUtMTAtMTAgMDk6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jOgoKICAgUmVkdW5kZW50IChhdXRvLSljb21tZW50LgoKMjAwNS0xMC0xMCAwOToyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIENvbnZlcnRpbmcgYmV0d2VlbiBpbmRleCByZXByZXNlbnRhdGlvbnMgaXMgbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkuCgoyMDA1LTEwLTEwIDA4OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBDb3BlIHdpdGggYSBtaXNzaW5nIGludGVybmFsIHF1ZXJ5IHVzZXJuYW1lCiAgIChyYXRoZXIgdGhhbiBmb3JjaW5nIGEgaGFyZHdpcmVkIG9uZSkKCjIwMDUtMTAtMTAgMDc6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFJldHVybiB0aGUgZnVsbCBsaXN0IG9mIHJlc3VsdHMgZnJvbSBhbiBpbnRlcm5hbCBxdWVyeSwKICAgcmF0aGVyIHRoYW4gdHJ1bmNhdGluZyBpdCBhZnRlciB0aGUgZmlyc3QgdmFyYmluZC4KICAgKFdoeSAnY2xvbmVfdmFyJyBzdG9tcHMgb24gdGhlIG5leHQgbGluayBpcyBhIG15c3RlcnkgdG8gbWUhKQoKMjAwNS0xMC0xMCAwNzo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgSW5kaWNhdGUgdGhhdCAnaWZfc3BlZWQnIEFQSXMgYXJlIExpbnV4LXNwZWNpZmljCiAgIChhbmQgbm90IHBhcnQgb2YgdGhlIGdlbmVyaWMgSUYtTUlCIGRhdGFfYWNjZXNzIGZyYW1ld29yaykKCjIwMDUtMTAtMDcgMTc6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmM6CgogICBpZmRlZiBvdXQgY29kZSBpZiBtb2R1bGUgbm90IGVuYWJsZWQKCjIwMDUtMTAtMDcgMTY6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIG1vdmUgbWlzYXBwbGllZCBwYXRjaCB0byBjb3JyZWN0IGxvY2F0aW9uCgoyMDA1LTEwLTA3IDE2OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgdHlwbwoKMjAwNS0xMC0wNyAxNjo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIG9ubHkgc2F2ZSBzZXR0YWJsZSBjb2xzCgoyMDA1LTEwLTA3IDE2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oOgoKICAgZGVmaW5lIHNldHRhYmxlIGNvbHMKCjIwMDUtMTAtMDcgMTY6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIGdldCByaWQgb2Ygb2xkIHBlcnNpc3RlbnQgc2F2ZSBmdW5jcywgaW4gZmF2b3Igb2YgbmV3IGdlbmVyYXRlZCBzdHVmZgoKMjAwNS0xMC0wNyAxNjo0MiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICB0eXBvCgoyMDA1LTEwLTA3IDE2OjM4ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIE1ham9yIG92ZXJoYXVsIG9mIGxpc3Qgb2Ygc3VwcG9ydGVkIHBsYXRmb3JtcyBiYXNlZCBvbiA1LjIuMi5wcmVYIHRlc3RpbmcKCjIwMDUtMTAtMDcgMTY6MjUgIHRhbmRlcnMKCiAgICogTkVXUzoKCiAgIGZpeCB0eXBvcyBpbiA1LjIgTkVXUwoKMjAwNS0xMC0wNyAxMDoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXJDb25mLmM6CgogICBIbW1tbS4uLi4gcmVtb3ZpbmcgdGhlIG9iamVjdCBlbnRyaWVzIGZvbGxvd2luZyBhIGR1cGxpY2F0ZSB0cmlnZ2VyCiAgIHNlZW1zIHRvIGJlIHByb2JsZW1hdGljYWwuICAoQXMgaW4gdGhlIGFnZW50IGNyYXNoZXMhKSAgSXQncyBub3QKICAgY2xlYXIgd2hldGhlciB0aGlzIGlzIGFwcHJvcHJpYXRlIGJlaGF2aW91ciBhbnl3YXkuCgogICBOZWVkIHRvIHRoaW5rIGFib3V0IHRoaXMgYSBiaXQgbW9yZS4KCjIwMDUtMTAtMDcgMDk6MjcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXJDb25mLmMsCiAgICAgbXRlVHJpZ2dlckNvbmYuaDoKCiAgIENvbmZpZ3VyZSBtb25pdG9yaW5nIG9mIFVDRC1zcGVjaWZpYyB0YWJsZXMKICAgKGNvbXBhdGFiaWxpdHkgd2l0aCBwcmV2aW91cyBFdmVudC1NSUIgaW1wbGVtZW50YXRpb24pLgoKICAgTm90IHlldCBmdWxseSB0ZXN0ZWQsIGJ1dCBzZWVtcyB0byBiZSBPSy4KCjIwMDUtMTAtMDcgMDk6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LmgsIGV2ZW50L210ZVNjYWxhcnMuYywKICAgICBldmVudC9tdGVTY2FsYXJzLmg6CgogICBJbXBsZW1lbnQgdGhlIEV2ZW50LU1JQiBzY2FsYXIgb2JqZWN0cy4KCjIwMDUtMTAtMDcgMDk6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywgbXRlVHJpZ2dlci5oCjoKCiAgIEFQSSBmb3IgY291bnRpbmcgdGhlIG51bWJlciBvZiB2YWx1ZXMgYmVpbmcgbW9uaXRvcmVkLgoKMjAwNS0xMC0wNyAwODo0MiAgdGFuZGVycwoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBnZXQgcmlkIG9mIEMrKyBrZXl3b3JkICJuZXciLiBNZkQtYmFzZWQgY29kZSBzdGlsbCBuZWVkcyB0byBiZSByZWdlbmVyYXRlZC4KCjIwMDUtMTAtMDcgMDU6NTUgIHRhbmRlcnMKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgbWlzc2luZyBkYXJ3aW44LmggYW5kIHNvbGFyaXMyLjEwLmgKCjIwMDUtMTAtMDYgMjA6MzEgIHRhbmRlcnMKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgaW1wcm92ZSBoZWxwIG91dHB1dAoKMjAwNS0xMC0wNiAyMDoyMSAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluCjoKCiAgIEFkZCBuZXQtc25tcC1jb25maWcgb3B0aW9ucyAtLWRlZmF1bHQtbWlicywgLS1kZWZhdWx0LW1pYmRpcnMsIC0tcGVyc2lzdGVudC1kaXJlY3RvcnkgYW5kIC0tc25tcGNvbmZwYXRoCgoyMDA1LTEwLTA2IDE5OjAxICByc3RvcnkKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCB0ZXN0cy9TdjNjb25maWcsCiAgICAgdGVzdHMvU3YzdmFjbWNvbmZpZywgdGVzdHMvU3ZhY21jb25maWcsCiAgICAgdGVzdHMvU3Zhbnljb25maWc6CgogICAtIGNyZWF0ZSBhbmQgdXNlIHBlcnNpc3RlbnQgZGlyIGluIHRlc3QgZGlyZWN0b3J5IChzbyBtYWtlIHRlc3QgYXMgcm9vdAogICAgIGRvZXNuJ3QgbXVjayB3aXRoIHN5c3RlbSBwZXJzaXN0ZW50IGNvbmYpCgoyMDA1LTEwLTA2IDE4OjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY291bnRlcjY0IHN1cHBvcnQgdG8gc25tcF9hZGRfdmFyIChzbyB0aGV5IGNhbiBiZSBzZW50IHcvc25tcHRyYXApCgoyMDA1LTEwLTA2IDE4OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfY29tbW9uLmM6CgogICBleHBsaWNpdCBicmFjZXMgdG8ga2VlcCBjb21waWxlciBoYXBweQoKMjAwNS0xMC0wNiAxODo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgaW5jbHVkZSB1dG1wL3V0bXB4IGhlYWRlciAoZml4IGZvciBvbmUgb2YgdGhlIEJTRHMpCgoyMDA1LTEwLTA2IDE4OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jOgoKICAgLSBpbmNyZWFzZSBkZWZhdWx0IGJ1ZmZlciBzaXplCiAgIC0gY2hlY2sgb3BlbiByYwogICAtIGxvZyBlcnIgaWYgbm8gZGF0YSBhdmFpbGFibGUKCjIwMDUtMTAtMDYgMTg6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS86IGNwdS9jcHUuYywgbWVtb3J5L2h3X21lbS5jOgoKICAgdGhpcyAoQysrIHJlc2VydmVkIHdvcmQpIC0+IHRoaXNfcHRyCgoyMDA1LTEwLTA2IDE4OjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBjYWxsIGluaXRfYWdlbnR4X2NvbmZpZyBpbnN0ZWFkIG9mIHJlZ2lzdGVyaW5nIGhhbmRsZXIgZGlyZWN0bHkKCjIwMDUtMTAtMDYgMTg6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgLSBzbGlnaHQgcmVvcmcgb2YgaW5pdF9hZ2VudHhfY29uZmlnKCkKICAgICAtIGlmZGVmIHNvbWUgc3R1ZmYgYmFzZWQgb24gbWFzdGVyIGFnZW50IHN1cHBvcnQKICAgICAtIG1vdmUgYWdlbnR4KHBlcm1zfHRpbWVvdXQpIGluIGNvbmRpdGlvbmFsIGZvciBhZ2VudCByb2xlID09IG1hc3RlcgoKMjAwNS0xMC0wNiAwODo0NSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNhdCBjb3JyZWN0IGZpbGUgb24gZXJyb3JzCgoyMDA1LTEwLTA2IDA4OjMyICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGFkZCBvcHRpb24gdG8gZW1haWwgcmVzdWx0cwoKMjAwNS0xMC0wNiAwNzozOSAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2lyaXguaDoKCiAgIElSSVggdGNwLW1pYiBjbGVhbnVwIHBhdGNoIChmcm9tIEFsYmVydCBDaGluKQoKMjAwNS0xMC0wNiAwNTozMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIFByZWxpbWluYXJ5IGhhbmRsaW5nIG9mIGVycm9ycy4KCjIwMDUtMTAtMDYgMDU6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQmxvY2sgY29uZmlndXJhdGlvbiBvZiBkZWx0YS10aHJlc2hvbGRzIG9uIGRlbHRhLXNhbXBsZXMuCgoyMDA1LTEwLTA2IDA1OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvOiBtdGVUcmlnZ2VyLmMsIG10ZVRyaWdnZXIuaAosIG10ZVRyaWdnZXJDb25mLmMsIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmM6CgogICBDb25zb2xpZGF0ZSBoYW5kbGluZyBvZiBzeXNVcFRpbWUgaW5zdGFuY2UgZGlzY29udGludWl0eSBtYXJrZXIuCgoyMDA1LTEwLTA2IDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vZXZlbnQvbXRlVHJpZ2dlckNvbmYuYzoKCiAgIFN1cHBvcnQgdGhlIGNvbmZpZ3VyYXRpb24gb2YgKmp1c3QqIGRlbHRhIHRocmVzaG9sZCB0ZXN0cy4KCjIwMDUtMTAtMDYgMDU6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywKICAgICBtdGVUcmlnZ2VyQ29uZi5jOgoKICAgSW1wbGVtZW50IGRlbHRhLXRocmVzaG9sZCB0ZXN0cy4KCjIwMDUtMTAtMDYgMDU6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC9tdGVUcmlnZ2VyQ29uZi5jOgoKICAgQWNjZXB0IG5lZ2F0aXZlIHZhbHVlcyAocmF0aGVyIHRoYW4gcmVqZWN0aW5nIHRoZW0gYXMgaW52YWxpZCBvcHRpb25zKQoKMjAwNS0xMC0wNiAwNTowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIERvbid0IGJvdGhlciB0cnlpbmcgdG8gZmlyZSBtaXNzaW5nIHRocmVzaG9sZCBldmVudHMuCgoyMDA1LTEwLTA1IDA4OjI2ICB0YW5kZXJzCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZ2V0IHJpZCBvZiBDKysga2V5d29yZCAiY2xhc3MiCgoyMDA1LTEwLTA1IDA0OjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYzoKCiAgIFNpZ2ggLSByZWFkIHRoZSB3aG9sZSBlbWFpbCBtZXNzYWdlLCBEYXZlIQoKMjAwNS0xMC0wNSAwNDo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBSZW1vdmUgYm9ndXMgdHJhaWxpbmcgY29tbWEgKHJlcG9ydGVkIGJ5IEFsYmVydCBDaGluKQoKMjAwNS0xMC0wNCAxNzo1MSAgaGFyZGFrZXIKCiAgICogZGlzdC9tYWtlcmVsZWFzZToKCiAgIGNoZWNrIHJlc3VsdHMgb2YgZXZlcnkgc3lzdGVtIGNhbGwgaW5zdGVhZCBvZiBqdXN0IHNwZWNpYWwgb25lcy4KCjIwMDUtMTAtMDQgMTA6MzIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC86IG10ZVRyaWdnZXIuYywgbXRlVHJpZ2dlci5oCiwgbXRlVHJpZ2dlckNvbmYuYywgbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBkZWx0YS12YWx1ZWQgc2FtcGxlcy4KICAgT25seSB0ZXN0ZWQgd2l0aCBCb29sZWFuIGVudHJpZXMsIGFuZCBhIGJhc2ljIHN5c1VwVGltZS4wCiAgIGRpc2NvbnRpbnVpdHkgbWFya2VyLiAgVGhyZXNob2xkIGRlbHRhLXZhbHVlZCBzYW1wbGVzIGFuZAogICB3aWxkY2FyZGVkIGRpc2NvbnRpbnVpdHkgT0lEcyBvdWdodCB0byB3b3JrLCBidXQgc3RpbGwgbmVlZCB0ZXN0aW5nLgoKMjAwNS0xMC0wNCAxMDoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50L210ZVRyaWdnZXIuYzoKCiAgIENhbm9uaWNhbGlzZSBwcmV2aW91cy9jdXJyZW50IHJlc3VsdHMgLSBtYXRjaGluZyBlbnRyaWVzIGxlYWRzIHRvCiAgIHNpbXBsZXIgdGVzdCBjb2RlLiAgQWRqdXN0IEV4aXN0ZW5jZSB0ZXN0cyB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzLgoKMjAwNS0xMC0wMyAxOTo0NyAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGluc3RhbGxlcjogIEZpeCB0eXBvIGluIHNjcmlwdCwgZml4ICV3aW5kaXIlIGVudiB2YXIgY2hlY2suCgoyMDA1LTEwLTAzIDA3OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYzoKCiAgIFJ1biBTRVQgYXNzaWdubWVudHMgZHVyaW5nIHRoZSBBQ1RJT04gcGFzcywgc28gZXJyb3JzIGNhbiBiZSByZXBvcnRlZC4KICAgKFNob3VsZCBmaXggQnVnICM4NjQyODEsIGFuZCBiZSBjb25zaXN0ZW50IHdpdGggcGFzcy5jIGJlaGF2aW91cikKCjIwMDUtMTAtMDEgMTY6NTEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgYWRkIG9wdGlvbiBmb3IgZW1haWwgb2YgZXJyb3IgcmVzdWx0cwoKMjAwNS0xMC0wMSAxNTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBmaXggdXRtcCBpbmNsdWRlIGlmZGVmIGxvZ2ljCgoyMDA1LTEwLTAxIDEyOjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBjb25maWd1cmUuaW4KCjIwMDUtMTAtMDEgMTI6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgY2hlY2sgZm9yIG1ic3RhdC5tX21idWZzIGJlZm9yZSB1c2luZwoKMjAwNS0wOS0yOSAxODo1MSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIEZpeCBidWcgIzExNTAwMTg6IER5bmFtaWMgYWxsb2NhdGlvbiBvZiBkaXNrIHN0b3JhZ2UgYXJyYXkuCgoyMDA1LTA5LTI5IDE4OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIEZpeCBidWcgIzExNTAwMTg6IER5bmFtaWMgYWxsb2NhdGlvbiBvZiBkaXNrIHN0b3JhZ2UgYXJyYXkuCgoyMDA1LTA5LTI5IDE4OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgUGF0Y2ggZnJvbSBidWcjMTIzNDgzNDogZml4ZXMgdGFyZ2V0YWRkcnRpbWVvdXQgc28gaXRzIHdyaXRhYmxlCgoyMDA1LTA5LTI5IDE4OjE2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb2x1bW5fZW51bXMuY29uZjoKCiAgIGFkZGVkIGdlbmVyYXRpb24gb2YgZW51bXMgZm9yIHNjYWxhcnMKCjIwMDUtMDktMjkgMTM6MTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBzZXQgc29jayBidWYgc2l6ZSBmb3IgdW5peCBkb21haW4gc29ja2V0cwoKMjAwNS0wOS0yOSAwNjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LzogbXRlVHJpZ2dlci5jLAogICAgIG10ZVRyaWdnZXJDb25mLmM6CgogICBJbXBsZW1lbnQgc2luZ2xlLXZhbHVlZCB0aHJlc2hvbGQgdHJpZ2dlcnMuCgoyMDA1LTA5LTI4IDE4OjI4ICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgV2luMzIgTVNWQzogIEVuYWJsZSBBRVMgZW5jcnlwdGlvbiB3aGVuIFNTTCBpcyBlbmFibGVkLgoKMjAwNS0wOS0yOCAxNzoyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2NvbW1vbi5jOgoKICAgc3dhcCByZXZlcnNlZCBpZi9lbHNlIGNvZGUKCjIwMDUtMDktMjggMTU6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvaXF1ZXJ5LmM6CgogICBwcm92aWRlIGRlZmF1bHQgZm9yIGludGVybmFsIHNlY25hbWUKCjIwMDUtMDktMjggMTI6MzggIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggbGFzdCByZW1haW5pbmcgInByZXNlbnQsIGJ1dCBjYW5ub3QgYmUgY29tcGlsZWQiIHdhcm5pbmcgb24gU29sYXJpcyA5CgoyMDA1LTA5LTI4IDExOjM2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC5oLCBldmVudC8uY3ZzaWdub3JlLAogICAgIGV2ZW50L210ZUV2ZW50LmMsIGV2ZW50L210ZUV2ZW50LmgsCiAgICAgZXZlbnQvbXRlRXZlbnRDb25mLmMsIGV2ZW50L210ZUV2ZW50Q29uZi5oLAogICAgIGV2ZW50L210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgICBldmVudC9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmgsIGV2ZW50L210ZUV2ZW50U2V0VGFibGUuYwosIGV2ZW50L210ZUV2ZW50U2V0VGFibGUuaCwgZXZlbnQvbXRlRXZlbnRUYWJsZS5jCiwgZXZlbnQvbXRlRXZlbnRUYWJsZS5oLCBldmVudC9tdGVPYmplY3RzLmMsCiAgICAgZXZlbnQvbXRlT2JqZWN0cy5oLCBldmVudC9tdGVPYmplY3RzQ29uZi5jLAogICAgIGV2ZW50L210ZU9iamVjdHNDb25mLmgsIGV2ZW50L210ZU9iamVjdHNUYWJsZS5jLAogICAgIGV2ZW50L210ZU9iamVjdHNUYWJsZS5oLCBldmVudC9tdGVUcmlnZ2VyLmMsCiAgICAgZXZlbnQvbXRlVHJpZ2dlci5oLCBldmVudC9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgICAgZXZlbnQvbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oLCBldmVudC9tdGVUcmlnZ2VyQ29uZi5jCiwgZXZlbnQvbXRlVHJpZ2dlckNvbmYuaCwgZXZlbnQvbXRlVHJpZ2dlckRlbHRhVGFibGUuYwosIGV2ZW50L210ZVRyaWdnZXJEZWx0YVRhYmxlLmgsCiAgICAgZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgICAgZXZlbnQvbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsIGV2ZW50L210ZVRyaWdnZXJUYWJsZS5jCiwgZXZlbnQvbXRlVHJpZ2dlclRhYmxlLmgsCiAgICAgZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgICAgZXZlbnQvbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmg6CgogICBOZXcgaW1wbGVtZW50YXRpb24gb2YgdGhlIERpc01hbiBFdmVudCBNSUIuCgoyMDA1LTA5LTI4IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGFkZGVkIGRvY3VtZW50YXRpb24gZGVzY3JpYmluZyB0aGUgZXhlYygpIHBhdGggcmVxdWlyZW1lbnQKCjIwMDUtMDktMjggMTA6MjEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgVXBkYXRlZCBkb2NzIG9uIC1JYiB0byBkb2N1bWVudCBleHRyYSBsaW1pdGF0aW9ucwoKMjAwNS0wOS0yOCAwNjowOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIEV4dGVuZCB0YWJsZSBpbnRlcmZhY2Ugd2l0aCByb3cgY29tcGFyaXNvbiBBUEkgcm91dGluZXMuCgoyMDA1LTA5LTI4IDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvOiBpcXVlcnkuYywgaXF1ZXJ5Lmg6CgogICBVc2UgdGhlIGRlZmF1bHQgcXVlcnkgc2Vzc2lvbiBmcm9tIHRoZSBsaWJyYXJ5LgoKMjAwNS0wOS0yOCAwNjowMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsCiAgICAgc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgU3VwcG9ydCB0aGUgaWRlYSBvZiBhICJkZWZhdWx0IHNlc3Npb24iIGZvciB0aGUgcXVlcnkgY29udmVuaWVuY2Ugcm91dGluZXMuCgoyMDA1LTA5LTI4IDA1OjAwICB0YW5kZXJzCgogICAqIFJFQURNRToKCiAgIHJldmVhbCBteSBjb250aW51ZWQgcHJlc2VuY2UgYXJvdW5kIGhlcmUKCjIwMDUtMDktMjggMDQ6NTMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENhbGxiYWNrIHRvIHJlcG9ydCBlc3RhYmxpc2htZW50IG9mIGEgY29ubmVjdGlvbiAoZnJvbSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNS0wOS0yNyAyMjowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIGNvbnZlcnQgbWFzayB0byBuZXR3b3JrIGJ5dGUgb3JkZXIKICAgLSB1cGRhdGUgcGZ4X2xlbiBjb3VudGluZyBmb3IgbmV0d29yayBieXRlIG9yZGVyCiAgIC0gYWRkIGxpdHRsZSBlbmRpYW4gL3Byb2MvbmV0L3JvdXRlIGV4YW1wbGUgbGluZQogICAtIG9ubHkgc2V0IHJvdXRlIHBvbGljeSBmb3IgZGVmYXVsdCBnYXRld2F5IHJvdXRlcwogICAtIHVwZGF0ZSBmb3IgbmV3IHN0YXRpYyBwb2xpY3kgZmxhZwogICAtIG5ldyByb3V0ZSBjcmVhdGUvZGVsZXRlIGZ1bmN0aW9ucwoKMjAwNS0wOS0yNyAxOToyNSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5jCjoKCiAgIC0gbW92ZSBhY3RpdmUgcm93IHNldCByZXN0cmljdGlvbiB0byBkZXBlbmRlbmN5IGNoZWNrIGZ1bmN0aW9uCiAgIC0gdXBkYXRlIGFzc2VydCB0byB0ZXN0IGFnYWluc3QgbmV3IGV4cGVjdGVkIHZhbHVlCgoyMDA1LTA5LTI3IDE5OjEyICB0YW5kZXJzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjEwLmg6CgogICBhZGQgU29sYXJpcyAxMCBzdXBwb3J0CgoyMDA1LTA5LTI3IDE5OjA4ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gZHluYW1pYyBpcHY0IHJvdXRlIGNyZWF0aW9uL2RlbGV0aW9uCgoyMDA1LTA5LTI3IDE3OjQ1ICB0YW5kZXJzCgogICAqIFJFQURNRS50cnU2NCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgVHJ1NjQgVW5peCA1LnggYnVpbGQgZml4ZXMgKGJ1ZyAjMTIxNzUwOSkKCjIwMDUtMDktMjcgMTQ6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIHByaW50IHJhbmdlIGluZm9ybWF0aW9uCgoyMDA1LTA5LTI3IDEzOjE0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIHVzZSBuZXcgcm91dGVfZW50cnkgZnVuY3Rpb25zIGZvciBkeW5hbWljIGlwdjQgcm91dGUgY3JlYXRpb24vZGVsZXRpb24KICAgLSBudWtlIGdlbmVyYXRlZCBjb2x1bW4gdW5kbyBmdW5jcywgdXNlIG5ldyB0YWJsZSBsZXZlbCBvbmUgaW5zdGVhZAogICAtIGFkZCBzb21lIGRlcGVkZW5jeSB2YWxpZGF0aW9uIChhZGRyIHR5cGUgJiBleHBlY3RlZCBhZGRyIGxlbikKCjIwMDUtMDktMjcgMTM6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIHJlbW92ZSBkZWJ1Z2dpbmcgY29tbWVudHMKCjIwMDUtMDktMjcgMTI6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIHBhdGNoICMxMzA0NDAwOiBiZXR0ZXIgaHJTV1J1blR5cGUgc3VwcG9ydAoKMjAwNS0wOS0yNyAxMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBwYXRjaCAjMTIyNTM2MCB0byBmaXggdGhlIHNtdXggZW5jb2Rpbmcgb2YgdGhlIHJlcXVlc3RpZCB0byBhIHNpZ25lZCBpbnQKCjIwMDUtMDktMjcgMTI6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIGtleSB2YWNtICJubyBhY2Nlc3MiIHdhcm5pbmcgb2ZmIGFnZW50X21vZGUgaW5zdGVhZCBvZiBhcHAgdHlwZQoKMjAwNS0wOS0yNyAxMjowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICByZW1vdmUgdW5uZWNlc3Nhcnkgc29jayBzdGFydHVwCgoyMDA1LTA5LTI3IDEyOjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgLSBkb2N1bWVudCB0aGF0IGFkZHJlc3NlcyBhcmUgaW4gbmV0d29yayBieXRlIG9yZGVyCiAgIC0gYnVtcCBtYXggcG9saWN5IG9pZCBsZW5ndGggdG8gMiwgdG8gaGFuZGxlIGRlZmF1bHQgbnVsbCBvaWQgY2FzZQogICAtIG1vdmUgcG9saWN5IHN0YXRpYyBmbGFnIGRlZmluaXRpb24gd2l0aCBvdGhlciBmbGFncwogICAtIGNoYW5nZSBwb2xpY3kgc3RhdGljIGZsYWcgc28gYXMgbm90IHRvIGNvbmZsaWN0IHdpdGggaXRlbSBjaGFuZ2VkIGZsYWdzCiAgIC0gYWRkIG5ldyBwb2xpY3kgZGVlcCBjb3B5IGZsYWcKICAgLSBhZGQgbWFjcm8gb2YgJ2NoYW5nZSBpdGVtJyBmbGFncyBtYXNrCgoyMDA1LTA5LTI3IDEyOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgYWRkIC0tZm9yd2FyZCBmbGFnIHRvIHBhdGNoIGNvbW1hbmQKCjIwMDUtMDktMjcgMTI6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIC0gdXNlIG5ldyBtaWIyYyBsZWZ0L3JpZ2h0IGhhbmQgbGVuZ3RoIHVuaXRzIGZvciBwcm9wZXIgc2l6ZXMgd2hlbiBjb3B5aW5nCiAgICAgYW5kIGNvbXBhcmluZyBkYXRhCgoyMDA1LTA5LTI3IDExOjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgLSBvdmVycmlkZSBkZWZhdWx0IGxlZnQvcmlnaHQgaGFuZCBsZW5ndGggdW5pdHM7IGJvdGggYXJlIGVsZW1lbnRzCiAgIC0gdXBkYXRlIGluaXRpYWwgc2V0IG9mIG1heCBsZW4gdG8gYmUgZWxlbWVudHMKCjIwMDUtMDktMjcgMTE6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgZGVmaW5lIGRlZmF1bHQgbGVmdC9yaWdodCBoYW5kIGxlbmdodCB1bml0cyAoYnl0ZXMvZWxlbWVudHMpCgoyMDA1LTA5LTI3IDExOjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICAtIGRlZmluZSBzZXBhcmF0ZSBzZXR0YWJsZSBmbGFncwogICAtIGRlZmluZSBzZXR0YWJsZSBjb2x1bW4gbWFjcm8KCjIwMDUtMDktMjcgMTE6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIGZpeCBpbmNvcnJlY3QgcmV0dXJuIGRlZmluZSBzdWdnZXN0aW9uIGluIGNvbW1lbnQKCjIwMDUtMDktMjcgMTE6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGFsd2F5cyB0cmFjayBpZiBkYXRhIGNvbnRleHQgd2FzIHByb3ZpZGVkIGJ5IHVzZXIKICAgLSBkb24ndCBjYWxsIGRhdGEgY3R4IGluaXQgcm91dGluZSBmb3IgdXNlciBwcm92aWRlZCBkYXRhCiAgIC0gcmVtb3ZlIGludGVybmFsL3ZlcmJvc2UgcHJlZml4IGZyb20gYWxsIGRlYnVnIGVycm9yIGNhc2VzCiAgIC0gZG9uJ3QgdHJ5IHRvIGNvcHkgaW5kZXhlcyBpZiBpbmRleCBjaGVjayBmYWlsZWQgKGFuZCBjdHggd2FzIHJlbGVhc2VkISkKICAgLSBjYWxsIHJvd19wcmVwIGZvciBuZXdseSBjcmVhdGVkIHJvd3MgKGR5bmFtaWMgcm93IGNyZWF0aW9uKQogICAtIGNhbGwgbmV3IHRhYmxlIHVuZG8gYmVmb3JlIGNvbHVtbiB1bmRvCgoyMDA1LTA5LTI3IDExOjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICAtIG9ubHkgaW5jbHVkZSBzZXR0YWJsZSBvYmplY3Qgd2hlbiBjYWxjdWxhdGluZyB0bXAgc3RvcmFnZSBzaXplCiAgIC0gZG9uJ3QgY2FsbCBjb2xfc2F2ZSByb3V0aW5lIGlmIGNvbHVtbiBpc24ndCBzZXR0YWJsZQoKMjAwNS0wOS0yNyAxMTo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGFkZCB0YWJsZSBsZXZlbCB1bmRvIGJlZm9yZSBjb2x1bW4gbGV2ZWwgdW5kbwoKMjAwNS0wOS0yNyAxMTo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICBoYW5kbGUgbmV3bHkgY3JlYXRlZCByb3cgdy9yb3cgc3RhdHVzIG9mIGRlc3Ryb3kKCjIwMDUtMDktMjcgMTE6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIC0gZG9uJ3QgZnJlZSBydF9wb2xpY3kgaWYgc3RhdGljIGZsYWcgc2V0CiAgIC0gbmV3IGZ1bmN0aW9uIHRvIHNldCByb3V0ZSBjaGFuZ2VzCiAgIC0gbmV3IGZ1bmN0aW9uIHRvIGNvcHkgcm91dGVfZW50cmllcwoKMjAwNS0wOS0yNyAxMTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlLmg6CgogICByZXF1aXJlIG5ldyByb3V0ZV9pb2N0bCBmb3IgbGludXgKCjIwMDUtMDktMjcgMTE6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmM6CgogICAtIHVwZGF0ZSB0aW1lb3V0IGZvciBhdXRvLXVwZGF0ZSBjYWNoZXMgd2hlbiBtaWIgdmFsdWUgY2hhbmdlZAoKMjAwNS0wOS0yNyAxMTozNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIG1vdmUgY29kZSBmb3IgaGVscCBjYXNlIGFmdGVyIGFsbCBjb21tYW5kIGxpbmUgYXJncyBoYXZlIGJlZW4gcHJvY2Vzc2VkCiAgIC0gYWRkIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uICgtbikgZm9yICdhcHBsaWNhdGlvbiBuYW1lJzsgdmVyeSB1c2VmdWwgZm9yCiAgICAgaGF2aW5nIG11bHRpcGxlIGNvbmZpZ3MsIGFuZCB3b3JrcyB3ZWxsIHdpdGggcGVyc2lzdGVudCBzdG9yZSB0b28uIE9wZW4KICAgICBmb3Igc3VnZ2VzdGlvbnMgb24gYSBkaWZmZXJlbnQgY2hhciAob3IgbWVyZ2Ugdy9zb21lIGV4aXN0aW5nIG11bHRpLWNoYXIKICAgICBzZXQ7IG1heWJlIC1DKS4KCjIwMDUtMDktMjcgMTE6MjYgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0wOS0yNyAxMToyNiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gYWRkIGRpc21hbi9ldmVudC1taWIgdG8gZGVmYXVsdCBtb2R1bGUgbGlzdAogICAtIGFkZCBob3N0IHRvIGRlZmF1bHQgbW9kdWxlIGxpc3QgZm9yCiAgICAgbGludXgqIHwgbWluZ3czMiogfCBjeWd3aW4qIHwgZnJlZWJzZCogfCBkeW5peCogfCBzb2xhcmlzMiogfCBocHV4KgoKMjAwNS0wOS0yNyAxMDo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwKICAgICBpZi1taWIvaWZYVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIHNvbWUgbm9uLXNvdXJjZSBmaWxlcyBnZW5lcmF0ZWQgYnkgTUZECgoyMDA1LTA5LTI3IDEwOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3MvOiByb3V0ZV9pb2N0bC5jLAogICAgIHJvdXRlX2lvY3RsLmgsIHJvdXRlX2xpbnV4Lmg6CgogICBjb3B5IHJvdXRlIGlvY3RscyBmcm9tIG1pYklJL3JvdXRlX3dyaXRlICYgdXBkYXRlIGZvciByb3V0ZV9lbnRyeQoKMjAwNS0wOS0yNiAxOTo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBidWcgMTI5Mjg5NiBjaGVja2luZyBmb3IgLTEgYmVmb3JlIHNlYXJjaGluZyBmb3IgVEMgdHlwZQoKMjAwNS0wOS0yNiAxODo1NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTA5LTI2IDE4OjQwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZG9uJ3QgbWFrZSBkZWNpc2lvbnMgYmFzZWQgb24gdGFyZ2V0X29zIHVudGlsIGFmdGVyIGl0J3Mgc2V0IQoKMjAwNS0wOS0yNiAxODozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBCdWcgUGF0Y2ggIzEyOTY4NDI6IGRvbid0IHJldHVybiBmcm9tIHZvaWQgZnVuY3Rpb24KCjIwMDUtMDktMjYgMTY6MjEgIHRhbmRlcnMKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWc6CgogICBmaXggU05NUHYzIGNvbmZpZyBpZiBBRVMgaXNuJ3QgYXZhaWxhYmxlCgoyMDA1LTA5LTI2IDEzOjAwICB0YW5kZXJzCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBGaXggIi14IiBvcHRpb24KCjIwMDUtMDktMjYgMDg6MjUgIHRhbmRlcnMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBPcGVuQlNEIGJ1aWxkIGZpeDogYnJpbmcgaW4gc3lzL3RpbWVvdXQuaAoKMjAwNS0wOS0yNCAxNTowMiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGluc3RhbGxlcjogIFB1dCBiYWNrIG1pc3NpbmcgJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBjb21wbGV0ZWx5CiAgIHJlbW92ZScgbWVzc2FnZSB3aGVuIHVuaW5zdGFsbGluZy4KCjIwMDUtMDktMjMgMjE6NDUgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBpbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgV2luMzIgaW5zdGFsbGVyOiAgQWRkIG9wdGlvbmFsIGNoZWNrIGZvciBPcGVuU1NMIERMTCAobGliZWF5MzIuZGxsKQoKMjAwNS0wOS0yMyAxMjoyNCAgcnN0b3J5CgogICAqIE5FV1M6CgogICBub3RlIHRoYXQgc25tcGQgbm93IGltcGxlbWVudGVkIG5vdGlmaWNhdGlvbiBsb2dnaW5nIGFuZCBmaWx0ZXJpbmcKCjIwMDUtMDktMjMgMTA6NDEgIHRhbmRlcnMKCiAgICogY29uZmlndXJlOgoKICAgUmVydW4gYXV0b2NvbmYKCjIwMDUtMDktMjMgMTA6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgc2hyaW5rIGJ1ZmZlciBzaXplIHNvIE1JQiBzaXplIGxpbWl0IG5vdCBleGNlZWRlZAoKMjAwNS0wOS0yMiAxOTowMiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG1vdmUgc29ja2V0dmFyLmggYWZ0ZXIgc29ja2V0LmgKCjIwMDUtMDktMjIgMTc6MjEgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBXaW4zMiBpbnN0YWxsZXI6ICBEZWZhdWx0IHRvIGRpc2xhYmVkIGZvciBkZXZlbG9wbWVudCBmaWxlcy4KCjIwMDUtMDktMjIgMTU6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBwdXQgdmFyIG5hbWUgaW4gYnJhY2VzIHRvIHNlcGFyYXRlIGZyb20gYXBwZW5kZWQgdGV4dAoKMjAwNS0wOS0yMCAwOToyMyAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgU2luY2UgdGhlIGxlbmd0aCBwYXJhbWV0ZXIgaXNuJ3QgYWx3YXlzIHJlcXVpcmVkIHdoZW4gc3RvcmluZyBkYXRhLAogICBhbGxvdyBpdCB0byBiZSBvbWl0dGVkIChhbmQgY29ycmVjdCB0aGUgbWlzbGVhZGluZyBjb21tZW50IGFzIHRvCiAgIGhvdyB0aGlzIGlzIGFjdHVhbGx5IHVzZWQhKQoKMjAwNS0wOS0xNiAxNTozMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCBmcm9tIFBhdHJpY2sgV2VsY2hlIHRvIGZpeCBxdW90aW5nIGZvciBuZXdlciBhdXRvY29uZnMKCjIwMDUtMDktMTYgMTU6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmM6CgogICBjb3JyZWN0IG1pc3NpbmcgZnVuY3Rpb24gY2FsbHMgbm93IHJlcGxhY2VkIGJ5IHRkYXRhLgoKMjAwNS0wOS0xNiAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgc3VwcG9ydCBmb3Igc3RyaW5nIHBhcnNpbmcgb2YgY291bnRlcjY0cwoKMjAwNS0wOS0xNiAxNDozNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgY29uZmlndXJlLmluCgoyMDA1LTA5LTE2IDE0OjMzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBkaXN0L25ldC1zbm1wLnNwZWM6CgogICB1cGRhdGUgb3V0LW9mLXN5bmMgdmVyc2lvbiBudW1iZXJzCgoyMDA1LTA5LTE2IDEzOjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIGRvbid0IHRyeSB0byB1c2UgU0lPQyhBRER8REVMKVJUIGlmIHRoZXkgYXJlbid0IGRlZmluZWQKCjIwMDUtMDktMTYgMTI6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBIUlNXUlVOUEVSRl9NRU0gZG9uJ3Qgd29yayBvbiBkYXJ3aW44CgoyMDA1LTA5LTE2IDEyOjQxICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICB1c2UgbmV3IGNvbmZpZ3VyZSB2YXIgUEVSTExET1BUUwoKMjAwNS0wOS0xNiAxMjoxMCAgdGFuZGVycwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBtaXNzaW5nIHNlY29uZCBzZW1pY29sb24KCjIwMDUtMDktMTYgMTE6NTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBjaGVja192YXJiaW5kLmMsIHNubXBfYXBpLmMsCiAgICAgc25tcF9sb2dnaW5nLmM6CgogICBQaWNrIHVwIGEgY291cGxlIG9mIHN0cmF5ICdzdHJpbmdzJyB0aGF0IHNsaXBwZWQgdGhyb3VnaC4KICAgKGFuZCBhIGJvZ3VzIEFTTiB0eXBlIG5hbWUpCgoyMDA1LTA5LTE2IDEwOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgcmVmaW5lIGNvbmRpdGlvbmFsIGluY2x1ZGVzIGxvZ2ljCgoyMDA1LTA5LTE2IDEwOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBpbmNsdWRlIHN5cy9zb2NrZXR2YXIuaCBpZmYgYXZhaWxhYmxlCgoyMDA1LTA5LTE2IDEwOjQzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYnJlYWsgcGVybCBsZCBvcHRzIGludG8gaXRzIG93biB2YXIKCjIwMDUtMDktMTYgMTA6NDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIGNvbmZpZ3VyZS5pbgoKMjAwNS0wOS0xNiAxMDozMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGNvbmZpZ3VyZS5pbgoKMjAwNS0wOS0xNiAwODo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgVHdlYWsgdG8gdXNlIHRoZSByZXZpc2VkICd0ZGF0YScgQVBJLgoKMjAwNS0wOS0xNiAwNzo0OCAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgVXNlIHRoZSBhcHByb3ByaWF0ZSBsaWJyYXJ5IHV0aWxpdHkgcm91dGluZXMgZm9yIHJldHVybmluZyBhCiAgIGNvbHVtbiB2YWx1ZSwgYW5kIGNoZWNraW5nIHRoZSB2YWxpZGl0eSBvZiBhbiBhc3NpZ25tZW50LgoKMjAwNS0wOS0xNiAwNzozMyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgVXNlIHRoZSAocmV2aXNlZCkgY29udGFpbmVyLWJhc2VkICd0YWJsZV9kYXRhMicgaGVscGVyLgoKMjAwNS0wOS0xNiAwNzoyMSAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5jb250YWluZXIuY29uZiwgbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IHR5cG8gd2hlbiBkZWZpbmluZyByYW5nZSBvZiB2YWxpZCBjb2x1bW5zLgoKMjAwNS0wOS0xNiAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhMi5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Mi5oOgoKICAgSSd2ZSBuZXZlciBsaWtlIHRoZSByZW5hbWluZyBvZiB0aGUgY29udGFpbmVyLWJhc2VkIHRhYmxlX2RhdGEKICAgQVBJIGNhbGxzIGFuZCBkYXRhIHN0cnVjdHVyZXMuICBJZiB3ZSdyZSBzdGFydGluZyB0byB0aGluayBhYm91dAogICByZWxlYXNpbmcgdGhpcyBjb2RlLCB0aGVuIGFueSBhbHRlcmF0aW9ucyBtdXN0IGJlIG1hZGUgKmJlZm9yZSoKICAgdGhpcyBnb2VzIGxpdmUsIG9yIGVsc2UgaXQnbGwgYmUgdG9vIGxhdGUuCgogICBJJ3ZlIGZpbmFsbHkgY29tZSB1cCB3aXRoIGEgZm9ybSBvZiBuYW1pbmcgZm9yIHRoZSB0YWJsZV9kYXRhMgogICBjb2RlIHRoYXQgSSdtIHJlYXNvbmFibHkgaGFwcHkgd2l0aCAoYmFzZWQgYXJvdW5kICd0ZGF0YScpLAogICBzbyB0aGlzIHBhdGNoIHJld3JpdGVzIHRoaXMgaGVscGVyIHRvIHVzZSB0aGF0IHN0eWxlIChhcyB3ZWxsCiAgIGFzIHR3ZWFraW5nIHRoZSBkYXRhc2V0MiBjb2RlIHRvIG1hdGNoKS4KICAgICBUaGUgbWFpbiBkYXRhc2V0MiBBUEkgaGFzbid0IGJlZW4gcHJvcGVybHkgdXBkYXRlZCwgYnV0IHRoaXMKICAgc2hvdWxkIHByb2JhYmx5IGFsc28gYmUgYWRkcmVzc2VkIGJlZm9yZSA1LjMgZ29lcyBvdXQgb2YgdGhlIGRvb3IuCgogICBUaGlzIHZlcnNpb24gYWxzbyBpbGx1c3RyYXRlcyBhIHN1aXRhYmxlICJnZW5lcmljIHRhYmxlIEFQSSIsCiAgIHRoYXQgY291bGQgdXNlZnVsbHkgYmUgY29uc2lkZXJlZCBmb3Igb3RoZXIgdGFibGUgaGVscGVycyBhcwogICB3ZWxsLiAgU29tZSBhc3BlY3RzIG9mIGl0IG1heSBiZSBzcGVjaWZpYyB0byB0aGUgdGFibGVfZGF0YQogICBmcmFtZXdvcmssIGJ1dCB0aGUgYmFzaWMgaWRlYXMgYXJlIG1vcmUgd2lkZWx5IHJlbGV2YW50LgoKMjAwNS0wOS0xNiAwNjo0NCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Mi5jOgoKICAgQSBjb250YWluZXItYmFzZWQgJ2RhdGFzZXQnIGltcGxlbWVudGF0aW9uIHdpbGwgYXV0b21hdGljYWxseSBjb252ZXJ0CiAgIEdFVE5FWFQvQlVMSyByZXF1ZXN0cyBpbnRvIGFuIGVxdWl2YWxlbnQgR0VUIHJlcXVlc3QgKGluY2x1ZGluZyB1cGRhdGluZwogICB0aGUgT0lEKS4gIFNvIGFsbCB0aGF0J3MgcmVxdWlyZWQgaXMgdG8gcmV0dXJuIHRoZSBhcHByb3ByaWF0ZSB2YWx1ZS4KICAgVGhlICduZXRzbm1wX3RhYmxlX2RhdGEyX2J1aWxkX3Jlc3VsdCcgcm91dGluZSBpcyB0aGVyZWZvcmUgcmVkdW5kZW50LgoKMjAwNS0wOS0xNiAwNjozNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIERlZmluZSBhIG5ldyBjaGVjayB1dGlsaXR5IHJvdXRpbmUgZm9yIHVuc2lnbmVkIGludGVnZXJzLgogICBJbnRlZ2VycyBhcmUgbWVhbnQgdG8gYmUgcmVwcmVzZW50ZWQgYXMgJ2xvbmcnIHJhdGhlciB0aGFuICdpbnQnIHZhbHVlcy4KCjIwMDUtMDktMTYgMDY6MzAgIGR0czEyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGludDY0LmMsIHBhcnNlLmMsCiAgICAgcmVhZF9jb25maWcuYywgc25tcC10Yy5jLCBzbm1wQUFMNVBWQ0RvbWFpbi5jLAogICAgIHNubXBJUFhEb21haW4uYywgc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBEb21haW4uYywKICAgICBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYwosIHNubXBfdHJhbnNwb3J0LmM6CgogICBCbGl0eiB1c2Ugb2YgJ3N0cmluZycgYXMgYSB2YXJpYWJsZSBuYW1lLgoKMjAwNS0wOS0xNiAwNTo0OSAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgUmVnZW5lcmF0ZSB0byBtYXRjaCB1cGRhdGVkICdjb25maWd1cmUuaW4nCgoyMDA1LTA5LTE2IDAxOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFVzZSBhIHNlY3VyaXR5IG1vZGVsIG51bWJlciBkZWZpbmVkIGluIHRoZSBnbG9iYWwgaGVhZGVyIGluc3RlYWQgb2YgYQogICBoYXJkLWNvZGVkIG51bWJlcgoKMjAwNS0wOS0xNiAwMToxNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmg6CgogICBkZWZpbmUgc2VjdXJpdHkgbW9kZWwgbnVtYmVycyBmb3IgbmV0LXNubXAgc3BlY2lmaWMgc2VjdXJpdHkgbW9kZWxzCiAgIGhlcmUgdG8ga2VlcCBhIHJlZ2lzdHJ5IGluIGEgY2VudHJhbCBwbGFjZS4KCjIwMDUtMDktMTYgMDE6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wbG9jYWxzbS5oLAogICAgIHNubXBsaWIvc25tcGxvY2Fsc20uYzoKCiAgIC0gRGVmaW5lZCBhIGxvY2FsIHNlY3VyaXR5IG1vZGVsIHRoYXQgYXNzdW1lcyB0aGUgcGVyc29uIHRoYXQgZXhlY3V0ZWQKICAgICB0aGUgYWdlbnQgaXMgdGhlIG9uZSB3aG8gc2hvdWxkIGJlIGF1dGhvcml6ZWQuICBJdCByZXF1aXJlcyB0aGF0IGEKICAgICB0cmFuc3BvcnQgd2FzIHVzZWQgdGhhdCB3YXMgbm90IGEgZGlyZWN0IG5ldHdvcmsgdHJhbnNwb3J0IChFRywKICAgICBjdXJyZW50bHkgdGhpcyBtZWFucyBpdCB3YXMgdHVubmVsZWQgb3Igc2VudCB0aHJvdWdoIHN0ZGluL291dAogICAgIGNoYW5uZWwpLiAgQXV0aGVudGljYXRpb24gYW5kIGVuY3J5cHRpb24gbGV2ZWwsIGJlaW5nIHVua25vd24sIGlzCiAgICAgbGVmdCBhdCBub0F1dGhOb1ByaXYuCgogICAgIFRoaXMgbW9kZWwgaXMgZXhwZWN0ZWQgdG8gYmUgdXNlZCBmb3IgZXhwZXJpbWVudGFsIGFuZCBwdXJwb3NlcyBvbmx5CiAgICAgYXQgdGhpcyB0aW1lIGFuZCBzaG91bGQgcHJvYmFibHkgbm90IGJlIHVzZWQgaW4gcHJvZHVjdGlvbi4KCjIwMDUtMDktMTYgMDA6NDUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmg6CgogICBkZWZpbmUgYSBQRFUgdHVubmVsZWQgZmxhZwoKMjAwNS0wOS0xNSAxMTo1OCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGNoZWNrIGZvciBtbnRfZGlyIGluIHN0YXR2ZnMKCjIwMDUtMDktMTUgMDk6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvbWFrZWh0bWwucGw6CgogICBBZGRlZCBhIGxpbmsgdG8gdGhlIGNvbmZvcm1hbmNlIHN1bW1hcnkuCgoyMDA1LTA5LTE1IDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICAtIEFkZGVkIFNURCBpbml0CgoyMDA1LTA5LTE1IDA5OjQ2ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFNURERvbWFpbi5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICAgIHNubXBsaWIvc25tcFNURERvbWFpbi5jOgoKICAgLSBBZGRlZCBhYmlsaXR5IGZvciBTVEQgaGFuZGxlciB0byBjYWxsIGV4dGVybmFsIHRoaW5ncyB0byBwaXBlIHRvL2Zyb20KICAgLSBCZWdpbm5pbmcgc3VwcG9ydCBmb3IgYSB0cmFuc3BvcnQgYmVpbmcga25vd24gYXMgInR1bm5lbGVkIi4KCjIwMDUtMDktMTUgMDk6NDUgIGhhcmRha2VyCgogICAqIGRpc3QvbWFrZXJlbGVhc2U6CgogICBtaW5vciBmaXhlcwoKMjAwNS0wOS0xNSAwOTo0NCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIERlZmluaXRpb25zIGZvciBuZXcgZmVhdHVyZXMgKHN0ZCBhbmQgYSBmdXR1cmUgU00gbW9kZWwpCgoyMDA1LTA5LTE0IDIzOjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBjaGVjayBmb3Igc3RydWN0IG1lbWJlciBiZWZvcmUgdXNpbmcKCjIwMDUtMDktMTQgMjA6MjQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIGNoZWNrIGZvciBzeXMvc29ja2V0dmFyLmggZWFybGllcgogICAtIGluY2x1ZGUgc3lzL3NvY2tldHZhci5oIGluIG5ldHdvcmsgaGVhZGVyIHRlc3RzCiAgIC0gZml4IHdpdGhvdXQtZWxmIHRlc3QKCjIwMDUtMDktMTQgMjA6MDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW44Lmg6CgogICBtaXNzaW5nIGRlZmluZXMgZm9yIGRhcndpbjggKE9TIFggMTAuNC4yKQoKMjAwNS0wOS0xNCAxNDoxOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBTVEREb21haW4uaCwKICAgICBzbm1wbGliL3NubXBTVEREb21haW4uYzoKCiAgIEFkZGVkIGEgb2RkIHRyYW5zcG9ydCB0byBkbyBzdHVmZiB0aHJvdWdoIHN0ZGluL291dAoKMjAwNS0wOS0xMyAxNDo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaDoKCiAgIHJlbW92ZSB1bnVzZWQgZmlsZQoKMjAwNS0wOS0xMiAxMTozNiAgZHRzMTIKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIFByb3ZpZGUgYSBtYWtlIHRhcmdldCBmb3IgdGVzdGluZyB0aGUgTUlCcyBpbXBsZW1lbnRlZCBieSBhbiBhZ2VudC4KICAgVGhlIGJlaGF2aW91ciBvZiB0aGlzIHRhcmdldCBtYXkgbmVlZCBzb21lIGFkanVzdG1lbnQsIGJ1dCBpdCdzIGEgc3RhcnQuLi4KCjIwMDUtMDktMTIgMTE6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIERvY3VtZW50IHRoYXQgJ2RlbGV0ZV9yb3cnIGhvb2sgZG9lc24ndCByZXR1cm4gYSB1c2VmdWwgcmVzdWx0LgoKMjAwNS0wOS0xMiAxMToxNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgSW5jbHVkZSB0aGUgdGFibGVfYXJyYXkgaGVscGVyIChhcyB1c2VkIGJ5IHRoZSAibWliMmMuYXJyYXktdXNlci5jb25mIgogICB0ZW1wbGF0ZSkgaW4gdGhlIGNvbWJpbmVkIGhlbHBlciBoZWFkZXIgZmlsZS4KICAgICAoTm93IHdlJ2xsIGZpbmQgb3V0IHdoeSBpdCB3YXMgb21pdHRlZC4uLi4uKQoKMjAwNS0wOS0xMiAxMDo1MCAgZHRzMTIKCiAgICogc25tcGxpYi86IGNoZWNrX3ZhcmJpbmQuYywgc25tcC10Yy5jOgoKICAgRW5zdXJlIHRoYXQgaW52YWxpZCBSb3dTdGF0dXMgYXNzaWdubWVudHMgcmV0dXJuIGEgJ3dyb25nVmFsdWUnIGVycm9yLgoKMjAwNS0wOS0xMiAxMDo0NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgICBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIEFkZGl0aW9uYWwgU0VUIHZhbGlkYXRpb24gdXRpbGl0eSByb3V0aW5lcwogICAoZm9yIE9JRCBhbmQgZ2VuZXJhbCBJTlRFR0VSIGFzc2lnbm1lbnRzKQoKMjAwNS0wOS0xMiAxMDoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsaXRpZXMuaCwgdXRpbGl0aWVzL2lxdWVyeS5oOgoKICAgSW5jbHVkZSB0aGUgbmV3ICJpbnRlcm5hbCBxdWVyeSIgbW9kdWxlCgoyMDA1LTA5LTA5IDA3OjExICBkdHMxMgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgbmV3IG1pYjJjIGNvbmZpZyBmaWxlcy4gKEJ1ZyAjMTI4NDMxNSkKCjIwMDUtMDktMDkgMDY6MDkgIGR0czEyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIEVuc3VyZSB0aGF0IHRoZSBNSUIgaW50ZXJuYWxzIGFyZSBpbml0aWFsaXNlZCBiZWZvcmUgdXNpbmcgdGhlbS4gIChCdWcgIzcwNTUzNikKCjIwMDUtMDktMDggMTQ6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIHJlbW92ZSBzaHV0ZG93biBjb2RlIChoYW5kbGVkIGJ5IGlmVGFibGUpCgoyMDA1LTA5LTA3IDEwOjMwICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBGaXggYSAnbXknIGxpc3QgZGVjbGFyYXRpb24gdGhhdCBzbGlwcGVkIHRocm91Z2ggdGhlIG5ldC4KICAgQ2FuIGZpbmFsbHkgY2xvc2UgYnVncyAjNTc5NzA1ICYgIzYwMTE5MC4KCjIwMDUtMDktMDcgMDc6MjggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFJlcG9ydCBlcnJvcnMgZm9yIGludmFsaWQgdGFibGUgT0lEcyBhcHByb3ByaWF0ZWx5IGZvciB0aGUgdHlwZSBvZiByZXF1ZXN0LgogICAoQmFzZWQgb24gcGF0Y2ggIzEyNzY5OTkgYnkgUm9iZXJ0IFdpbGNveCkKCjIwMDUtMDktMDcgMDU6MTMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgVHdlYWsgdG8gVVNNIGRlYnVnZ2luZyAtIGhlbHAgZGV0ZWN0IGVuZ2luZUlEIG1pc21hdGNoZXMKCjIwMDUtMDktMDYgMjE6NDggIGFsZXhfYgoKICAgKiB3aW4zMi86IGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLmluLCBuZXRzbm1wbWlicy9NYWtlZmlsZS5pbiwKICAgICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsIG5ldHNubXBtaWJzc2RrL01ha2VmaWxlLmluCiwgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgV2luMzIgYnVpbGQgZml4ZXMKCjIwMDUtMDktMDYgMjA6MzcgIGFsZXhfYgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBXaW4zMiBNU1ZDIGNvbXBpbGUgZml4IC0gZGVjbGFyZSB2YXJpYWJsZXMgYXQgdGhlIHRvcCBvZiB0aGUgZnVuY3Rpb24uCgoyMDA1LTA5LTA2IDIwOjA3ICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgQ2hhbmdlIGRlZmF1bHQgdmVyc2lvbiBmb3IgYmluYXJ5LgoKMjAwNS0wOS0wNiAyMDowNiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvTWFrZWZpbGUuaW4sIHdpbjMyL2J1aWxkLnBsCiwgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgQWRkICdEZXZlbG9wbWVudCBmaWxlcycgc2VjdGlvbiB0byB3aW4zMiBiaW5hcnkKCjIwMDUtMDktMDYgMTk6MjkgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBXaW4zMjogVXBkYXRlIGJpbmFyeSBSRUFETUUudHh0IHRvIHJlZmVyZW5jZSBSRUFETUUud2luMzIKCjIwMDUtMDktMDYgMTk6MTcgIHRhbmRlcnMKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlLy5jdnNpZ25vcmUKOgoKICAgYWRkIC5saWJzIGFuZCAqLmxvCgoyMDA1LTA5LTA2IDE2OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOgogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosIG1pYklJL3VkcFRhYmxlLmM6CgogICBmaXggcmV2ZXJzZWQgaXBBZGRyZXNzIG9uIGxpdHRsZSBlbmRpYW4gYXJjaGl0ZWN0dXJlcwoKMjAwNS0wOS0wNiAxMToxOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIG1vdmUgdG8gbGlidG9vbCByZWNvbW1lbmRlZCB2ZXJzaW9uaW5nCgoyMDA1LTA5LTA1IDE5OjAwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jCiwgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLCBpZlhUYWJsZS9pZlhUYWJsZS5jCiwgaWZYVGFibGUvaWZYVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgKLCBpZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDUtMDktMDUgMTY6MTYgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIGNoZWNrIGZvciBPcGVuU1NMIGJlZm9yZSB0cnlpbmcgdG8gdXNlIEFFUwoKMjAwNS0wOS0wNCAxMjowOCAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICB1c2UgZXhpc3RpbmcgU05NUF9WRVJCT1NFIGVudiB2YWx1ZSwgaWYgc2V0CgoyMDA1LTA5LTA0IDExOjU2ICByc3RvcnkKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgdGVzdCBjb25kaXRpb25hbCBpbnN0ZWFkIG9mIGlnbm9yaW5nIGV4ZWN1dGlvbiBlcnJvcgoKMjAwNS0wOS0wMiAyMDozMyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZF9hdXRoLmMsIHNubXB0cmFwZF9hdXRoLmg6CgogICBhZGRlZCB0ZW1wbGF0ZSBmdW5jdGlvbnMgZm9yIGF1dGhvcml6YXRpb24gZGVjaXNpb25zCgoyMDA1LTA5LTAyIDE5OjMyICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICByZW1vdmUgLmN2c2lnbm9yZSBmaWxlcwoKMjAwNS0wOS0wMSAxNzowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcGVyc2lzdGVuY2UubTJpOgoKICAgZXh0cmEgcGFyYW5vaWQgbGVuZ3RoIGNoZWNrcwoKMjAwNS0wOS0wMSAxNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jOgoKICAgYWNjb3VudCBmb3IgaGV4aWZpZWQgdGV4dCBsZW4gb24gcGVyc2lzdGVudCBzdG9yZSBzYXZlCgoyMDA1LTA4LTMxIDIyOjI5ICBhbGV4X2IKCiAgICogTkVXUywgcGVybC9TTk1QL1NOTVAueHM6CgogICBBcHBseSBwYXRjaCBmb3IgYnVnIDEyMDY3MTI6IFBlcmwgZ2V0bmV4dCBkb2Vzbid0IGhvbm9yIGV4cGxpY2l0IHJlZmVyZW5jZQogICB0byBNSUIgZmlsZQoKMjAwNS0wOC0zMCAxMTo0MCAgcnN0b3J5CgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTYwcmZjMTIxMywgVDE2MXJmYzEyMTMsIFQxNjJyZmMxMjEzCjoKCiAgIHJlbW92ZSBub24tY29uZGl0aW9uYWwgdGVzdHMgb2YgcG90ZW50aWFsbHkgdW5pbXBsZW1lbnRlZCBvYmplY3RzCgoyMDA1LTA4LTMwIDA4OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBrZWVwIHJ1bm5pbmcgY291bnQgb2YgdHJhcHMgc2VudAoKMjAwNS0wOC0zMCAwODoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGFkZCBub3RpZmljYXRpb24gZmlsdGVyaW5nIHBlciBSRkMgMzQxMywgc2VjdGlvbiA2CgoyMDA1LTA4LTMwIDA4OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLmg6CgogICB1c2UgbmV3IG1mZCBzbm1wTm90aWZ5RmlsdGVyVGFibGUKCjIwMDUtMDgtMzAgMDg6MDYgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2NvbnN0YW50cy5oCjoKCiAgIG5ldyBmaWxlCgoyMDA1LTA4LTI5IDIxOjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgdGNwLW1pYi90Y3BDb25uZWN0aW9uVGFibGUvLmN2c2lnbm9yZSwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSB0eHQgZmlsZXMKCjIwMDUtMDgtMjkgMjE6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXAtbm90aWZpY2F0aW9uLW1pYi5oLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgICBzbm1wLW5vdGlmaWNhdGlvbi1taWIvc25tcE5vdGlmeUZpbHRlclRhYmxlLy5jdnNpZ25vcmUsCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaAosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgc25tcC1ub3RpZmljYXRpb24tbWliL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS9zbm1wTm90aWZ5RmlsdGVyVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtbm90aWZpY2F0aW9uLW1pYi9zbm1wTm90aWZ5RmlsdGVyVGFibGUvc25tcE5vdGlmeUZpbHRlclRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIC0gbmV3IE1GRCBzbm1wTm90aWZ5RmlsdGVyVGFibGUKCjIwMDUtMDgtMjkgMjA6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICAtIHJlbW92ZSBjb21tZW50ZWQgb3V0IG1pYjJjIGNvZGUKICAgLSBzZXQgcm93IGRpcnR5IGZsYWcgb24gc3VjY2VzZmZ1bCBjb21taXQKICAgLSBjbGVhciByb3cgZGlydHkgZmxhZyBvbiBzdWNjZXNzZnVsIHVuZG8gY29tbWl0CgoyMDA1LTA4LTI5IDIwOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSBjaGFuZ2UgZGlydHkgZmxhZyB0byB1X2ludAogICAtIGFsd2F5cyBnZW5lcmF0ZWQgaW50ZXJmYWNlIGlycmV2ZXJzaWJsZV9jb21taXQKICAgICAtIG1vdmUgYXV0byByb3cgaW5zZXJ0L2RlbGV0ZSB0byBpcnJldmVyc2libGVfY29tbWl0CiAgIC0gcmVsZWFzZSBkZWxldGVkIHJvd3MgaW4gcG9zdF9yZXF1ZXN0LCBiZWZvcmUgY2FsbGluZyB1c2VyCiAgIC0gd2FybmluZyBpZiBkaXJ0eSBmbGFnIHNldCBvbiB1bnN1Y2Nlc3NmdWwgcGFja2V0CiAgIC0gbWVtc2V0IGxvY2FsIHN0cnVjdCB0byAweDAwIGJlZm9yZSB1c2UKICAgLSBjb3B5IGluZGV4ZXMgdG8gcm93cmVxIG9pZF9pZHggb24gY3JlYXRlCiAgIC0gc2V0IChpbmNyKSBnbG9iYWwgZGlydHkgaWYgdXNlciBzZXQgcm93IGRpcnR5CiAgIC0gY2xlYXIgKGRlY3IpIGdsb2JhbCBkaXJ0eSBpZiB1c2UgY2xlYXJlZCBmbGFnIG9uIHVuZG8KCjIwMDUtMDgtMjkgMjA6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhdXRvY3JlYXRlIGN1cnJlbnQgZGlyLCBpZiBuZWVkZWQKCjIwMDUtMDgtMjkgMjA6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21mZC5oOgoKICAgLSBmaXggY29tbWVudHMgb24gdXNlciBmbGFncwogICAtIGFkZCB1c2VyIGZsYWcgbWFzawogICAtIGFkZCBtZmQgcm93IG1hc2sKICAgLSBhZGQgTUZEX1JPV19ESVJUWSBmbGFnCgoyMDA1LTA4LTI5IDIwOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1wZXJzaXN0ZW5jZS5tMmk6CgogICBhZGQgY29tbWVudHMKCjIwMDUtMDgtMjkgMjA6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGFkZCBjb21tZW50cwogICAtIG1vdmUgZmxhZyBjbGVhciBhIGxpdHRsZSBsYXRlcgoKMjAwNS0wOC0yOSAyMDozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB0d2VhayBjb21tZW50CgoyMDA1LTA4LTI5IDIwOjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIC0gZml4IHJlcXVpcmVkIGNvbHVtbnMgdGVzdCAodGhleSBhcmUgYSBtaW4sIG5vdCBleGFjdCByZXF1aXJlbWVudCkKICAgLSBhdXRvLXRyYW5zaXRpb24gY3JlYXRlQW5kR28gdG8gYWN0aXZlCiAgIC0gc2V0IE1GRF9ST1dfREVMRVRFRCBvbiBkZXN0cm95CiAgIC0gdHdlYWsgbG9nIG1lc3NhZ2Ugb24gY3JlYXRpb24gZXJyb3JzCgoyMDA1LTA4LTI5IDIwOjM2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmM6CgogICAtIHJld29yayB2aWV3IGxpc3QgZnVuY3Rpb25zIHRvIHRha2UgcG9pbnRlciB0byBoZWFkICh2cyBoYXJkY29kZWQgaGVhZCkKCjIwMDUtMDgtMjkgMjA6MzIgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBpdGVyYXRvciBzdXBwb3J0CgoyMDA1LTA4LTI5IDIwOjMxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgLSBmaXggc29tZSBjb21tZW50cwogICAtIHR3ZWFrcyBmb3IgaXRlcmF0b3Igc3VwcG9ydAogICAtIHJlbW92ZSB1bnVzZWQgc290ZWRfY29udGFpbmVyIHR5cGVkZWYKCjIwMDUtMDgtMjkgMjA6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDUtMDgtMjkgMjA6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtIHNldCBuZXcgdGFyZ2V0IHBhcmFtTmFtZSBpbiBzZXNzaW9uCiAgIC0gZml4IGJ1Zzogc3RyZHVwIHNlY3VyaXR5TmFtZSwgc2luY2UgaXQgd2lsbCBiZSBmcmVlZCBvbiBzZXNzaW9uIGNsb3NlCgoyMDA1LTA4LTI5IDIwOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBhZGQgdGFyZ2V0IHBhcmFtTmFtZQoKMjAwNS0wOC0yOSAyMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYwosIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaDoKCiAgIHJlbmFtZSBnZXRfRmlsdGVyTmFtZSAtPiBnZXRfRmlsZ2VyUHJvZmlsZU5hbWUKCjIwMDUtMDgtMjkgMjA6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgbG9nIHdhcm5pbmcgb24gZHVwbGljYXRlIGFkZF9kYXRhCgoyMDA1LTA4LTI5IDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIGFkZCBkZWJ1ZwoKMjAwNS0wOC0yOSAyMDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICAtIG1vdmUgbWliIG1vZHVsZSBzaHV0ZG93bnMgdG8gYSBTSFVURE9XTiBjYWxsYmFjayBzbyB0aGV5IGFyZSBjYWxsZWQKICAgICBhZnRlciB0aGUgbGFzdCBzbm1wX3N0b3JlKCkgYW5kIGNhbiByZWxlYXNlIHRhYmxlIGRhdGEKICAgLSBhZGQgbG9naWMgZm9yIHRlc3RpbmcgZXh0cmEgaW5pdF9taWJfbW9kdWxlcygpIGNhbGxzCgoyMDA1LTA4LTI5IDIwOjEyICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gbW92ZSBtaWIgbW9kdWxlIHNodXRkb3ducyB0byBhIFNIVVRET1dOIGNhbGxiYWNrIHNvIHRoZXkgYXJlIGNhbGxlZAogICAgIGFmdGVyIHRoZSBsYXN0IHNubXBfc3RvcmUoKSwgYW5kIGNhbiByZWxlYXNlIHRhYmxlIGRhdGEKCjIwMDUtMDgtMjkgMjA6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBtb3ZlIGZpbmRfdmFyYmluZF9pbnRfbGlzdCB0byBzbm1wX2NsaWVudC5jCgoyMDA1LTA4LTI5IDIwOjA4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBtb3ZlIGZpbmRfdmFyYmluZF9pbnRfbGlzdCB0byBzbm1wX2NsaWVudC5jCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgdGV4dCBpbiBkZWJ1ZyBtc2cKCjIwMDUtMDgtMjkgMjA6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBpZiBzaW5rIGNvbnRhaW5zICc6JywgcGFzcyB3aG9sZSB0aGluZyBhcyBwZWVybmFtZS4gKGFsbG93cyB0Y3Agc2lua3MpCgoyMDA1LTA4LTI5IDE4OjI1ICB0YW5kZXJzCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL2RhdGFfbGlzdC5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgaW50cm9kdWNlIGdyYW51bGFyIGNvbmZpZy9wZXJzaXN0ZW50IGZpbGUgZGlzYWJsZW1lbnQgKFBhdGNoICMxMjU5MjU3IGJ5IFN0ZXZlbiBGcmllZGwpCgoyMDA1LTA4LTI2IDA5OjE1ICBkdHMxMgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBBZHZlcnRpc2UgdGhlIG1haW4gUlBNIGFzIHByb3ZpZGluZyB0aGUgZXF1aXZhbGVudCBvZiB0aGUgUmVkSGF0L0ZlZG9yYQogICAnbmV0LXNubXAtdXRpbHMnIFJQTS4gIEJyaW5nIHRoZSBtYWluIGluZm9ybWF0aW9uIHNldHRpbmdzIGludG8gbGluZQogICB3aXRoIGN1cnJlbnQgcnBtYnVpbGQgZXhwZWN0YXRpb25zICgnTGljZW5zZScgcmF0aGVyIHRoYW4gJ0NvcHlyaWdodCcpCgoyMDA1LTA4LTI1IDA1OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fY29uZi5jLCB2YWNtX3ZhcnMuYzoKCiAgIFRoZSB2aWV3IG1hc2sgaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGxlbmd0aCBhcyB0aGUgT0lEIGl0J3MKICAgbWFza2luZyBhZ2FpbnN0LiBDb25maWd1cmUgYW5kIHJlcG9ydCB0aGlzIHByb3Blcmx5LiAoQnVnICMxMjAyNjkyKQoKMjAwNS0wOC0yNSAwNTowNiAgZHRzMTIKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBWYXJiaW5kIGNoZWNrcyBzaG91bGQgcmV0dXJuIGFuIFNOTVB2MiBlcnJvciAod3JvbmdWYWx1ZSkKICAgcmF0aGVyIHRoYW4gdGhlIGVxdWl2YWxlbnQgU05NUHYxIGVycm9yIChiYWRWYWx1ZSkuCgoyMDA1LTA4LTIzIDEwOjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgVXNlICdpcHNfZnJhZ21lbnRzJyBmaWVsZCBvZiBJUCBzdGF0aXN0aWNzIHN0cnVjdHVyZSwgaWYgYXZhaWxhYmxlCiAgIChTZWUgcGF0Y2ggIzExMDM3MzkpCgoyMDA1LTA4LTIzIDEwOjA0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFRlc3QgZm9yICdpcHNfZnJhZ21lbnRzJyBmaWVsZCBpbiBJUCBzdGF0aXN0aWNzIHN0cnVjdHVyZS4KICAgKFNlZSBwYXRjaCAjMTEwMzczOSkKCjIwMDUtMDgtMjMgMDk6NTEgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBSZW1vdmUgJy1sJyBvcHRpb24gZnJvbSBvcHRhcmcgcHJvY2Vzc2luZwogICAoc2luY2UgdGhlIGNvcnJlc3BvbmRpbmcgY2FzZSBzdGF0ZW1lbnQgd2FzIGRlbGV0ZWQgbW9udGhzIGFnbyEpCiAgIFJlcG9ydGVkIGJ5IEpvaG4gUGZhZmYuCgoyMDA1LTA4LTIyIDIxOjE3ICBhbGV4X2IKCiAgICogTkVXUywgYXBwcy9zbm1wZGVsdGEuYzoKCiAgIHdpbjMyOiBGaXggZm9yICdzZWxlY3Q6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnknIGluIHNubXBkZWx0YQoKMjAwNS0wOC0yMiAxNDowOCAgdGFuZGVycwoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2F1dGhvcHRzOgoKICAgYWRkIG1pc3NpbmcgQUVTIHN1cHBvcnQKCjIwMDUtMDgtMjIgMTM6NDkgIHRhbmRlcnMKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICAgIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZnVsbHkgZG9jdW1lbnQgQUVTCgoyMDA1LTA4LTE5IDE5OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBncnJyOyAqcmVhbGx5KiBmaXggdHlwbwoKMjAwNS0wOC0xOSAxOTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgZml4IHR5cG8KCjIwMDUtMDgtMTkgMTA6MzUgIHRhbmRlcnMKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBlbXBoYXNpemUgdG8gdXNlICJwcm94eSAuLi4gLjEuMyIgKG5vdCBqdXN0IC4xKSB0byBwcm94eSB0aGUgZW50aXJlIE1JQiB0cmVlIChCdWcgIzEyNDk1OTQpCgoyMDA1LTA4LTE5IDEwOjA2ICB0YW5kZXJzCgogICAqIGFnZW50L3NubXBkLmM6CgogICBpbXByb3ZlIGhlbHAgb3V0cHV0IGZvciAiLUQiIChCdWcgIzEyNDk1NTYpIGFuZCAiLWMiCgoyMDA1LTA4LTE5IDA5OjI0ICB0YW5kZXJzCgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgYWRkIG1pc3NpbmcgcmV0dXJuIHN0YXRlbWVudCB0byBuZXRzbm1wX2NoZWNrX3ZiX3NpemVfcmFuZ2UoKSAoQnVnICMxMjYzNTIzKQoKMjAwNS0wOC0xOSAwNzo1OSAgdGFuZGVycwoKICAgKiBtYW4vc25tcGRlbHRhLjEuZGVmOgoKICAgZml4IHR5cG8KCjIwMDUtMDgtMTkgMDU6NTUgIHRhbmRlcnMKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLWxvZy1taWIvLmN2c2lnbm9yZToKCiAgIGluaXRpYWwgLmN2c2lnbm9yZQoKMjAwNS0wOC0xOSAwNTo0MyAgdGFuZGVycwoKICAgKiBhZ2VudC9taWJncm91cC86IGhhcmR3YXJlL2NwdS8uY3ZzaWdub3JlLAogICAgIGhhcmR3YXJlL21lbW9yeS8uY3ZzaWdub3JlLCBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlCiwgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmUsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIC5saWJzIGF0IG1vcmUgcGxhY2VzCgoyMDA1LTA4LTE5IDA1OjA4ICB0YW5kZXJzCgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgbGlzdCBjb250ZXh0IHN1cHBvcnQgYW5kIGZpeCB0eXBvCgoyMDA1LTA4LTE4IDE4OjUxICBhbGV4X2IKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgV2luMzIgTVNWQzogIFVzZSBfX2ludDY0IGluc3RlYWQgb2YgbG9uZyBsb25nLgoKMjAwNS0wOC0xOCAxODowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gbW92ZSB0ZXN0IGFmdGVyIGZvcmVhY2ggbG9vcAogICAtIHNldCBpbnRlcmFjdGl2ZSBmbGF0IGFmdGVyIG92ZXJ3cml0ZQoKMjAwNS0wOC0xOCAxODowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgcmV0dXJuIGVycm9yIGlmIGFzbiBidWZmZXIgZXhjZWVkcyBvYmppZCBkZXN0IGJ1ZmZlcgoKMjAwNS0wOC0xOCAxNzo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYzoKCiAgIC0gcmVtb3ZlIHVudXNlZCBpbmRleF9vaWQvbGVuCiAgIC0gcmVzdG9yZSBuZXRzbm1wX3RhYmxlX2RhdGEyX2J1aWxkX3Jlc3VsdAoKMjAwNS0wOC0xOCAxNzo1MiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIHJlbW92ZSB1bnVzZWQgaW5kZXhfb2lkL2xlbgoKMjAwNS0wOC0xOCAxNzo1MCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBxdWlldCBjb21waWxlcgoKMjAwNS0wOC0xOCAxNzozNSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIC0gZG9uJ3Qgb3ZlcndyaXRlIGV4aXN0aW5nIGNvbmZpZ3VyZSBleHRyYXMKICAgLSBhZGQgbWFrZSBleHRyYXMKCjIwMDUtMDgtMTggMTc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBicmluZyBocHV4IGZ1bmN0aW9uIGRlY2wgaW4gbGluZSB3L3Byb3R5cGUKCjIwMDUtMDgtMTggMTc6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMKOgoKICAgZml4IGJ1ZyAxMjU5MDQ5OiBzbm1wZCBzZWdmYXVsdHMgaW4gSVAtTUlCIGR1cmluZyBzbm1wd2FsawoKMjAwNS0wOC0xOCAwOTo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBhc24xLmMsIGludDY0LmMsIHNubXBfY2xpZW50LmM6CgogICAtIGxvdHMgb2YgNjQgYml0IGNoZWNrcyBhZGRlZCBpZmYgU0laRU9GX0xPTkcgIT0gNAogICAgIC0gY2hlY2sgY291bnRlcjY0IGhpZ2gvbG93IG92ZXJmbG93cyAoaW50NjQuYykKICAgICAtIHRydW5jYXRlIHJlY2VpdmVkIHZhbHVlcyB0byAzMiBiaXRzIChhc24xLmMpCiAgICAgLSB0cnVuY2F0ZSBzZW50IHZhbHVlcyB0byAzMiBiaXRzIGJlZm9yZSBlbmNvZGluZyAoYXNuMS5jKQogICAtIHVwZGF0ZSBzZXRfdmFyX3ZhbHVlIChzbm1wX2NsaWVudC5jKQogICAgIC0gdHJ1bmNhdGUgdmFyYmluZCB2YWx1ZSBzZXRzIHRvIDMyIGJpdHMKICAgICAtIGhhbmRsZSBzZXQgb2YgaW50ZWdlcnMgb2YgdmFyaW91cyBsZW5ndGhzICgxLCAyLCA0LCA4IGJ5dGVzKQoKMjAwNS0wOC0xOCAwNjowNSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRG9uJ3QgZ2VuZXJhdGUgYXV0aEZhaWwgdHJhcHMgaWYgdGhlc2UgYXJlIG5vdCByZXF1aXJlZC4KICAgKEJ1ZyAjMTIyNjc4OCwgcmVwb3J0ZWQgYnkgV2FuZyBUZWsgS2VlKQoKMjAwNS0wOC0xNyAyMDo0NCAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgICB3aW4zMi9saWJzbm1wL01ha2VmaWxlLmluLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCiwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgV2luMzIgTVNWQyBidWlsZCBmaXhlczogTE9OR19NSU4gbm90IGRlZmluZWQgKGxpbWl0cy5oKSBhbmQgYWRkZWQKICAgZmRfZXZlbnRfbWFuYWdlci5jIHRvIGJ1aWxkIGZpbGVzLgoKMjAwNS0wOC0xNyAyMDoyOSAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZCAnQ28tZXhpc3RlbmNlIHdpdGggTWljcm9zb2Z0IFNOTVAgc2VydmljZXMnIHNlY3Rpb24gYW5kIHVwZGF0ZSB0aGUKICAgJ0ludGVyYWN0aW9ucyB3aXRoIE90aGVyIFZlbmRvcidzIFByb2R1Y3RzJyBzZWN0aW9uLgoKMjAwNS0wOC0xNyAxNzo1MCAgdGFuZGVycwoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgSW1wcm92ZSBkb2N1bWVudGF0aW9uIG9uIGNsaWVudEFkZHIgdG9rZW46IGFsc28gdXNlZCBieSBzbm1wZCB3aGVuIHNlbmRpbmcgbm90aWZpY2F0aW9ucwoKMjAwNS0wOC0xNyAwOTo0MSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgRml4IHByb2JsZW1zIHdpdGggMzIvNjQtYml0IHR5cGUgZGVmaW5pdGlvbnMgKEJ1ZyAjMTI1NDk5MCkKCjIwMDUtMDgtMTcgMDg6MzYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICAgIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICAgIGFnZW50L3NubXBkLmMsIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMsIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jCiwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsCiAgICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYwosIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMKLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYwosIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsIGFnZW50L2hlbHBlcnMvc2NhbGFyLmMKLCBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLAogICAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYwosIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgICAgYWdlbnQvaGVscGVycy93YXRjaGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLCBzbm1wbGliL2RhdGFfbGlzdC5jCiwgc25tcGxpYi9vaWRfc3Rhc2guYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV9oZWFkZXJzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9ocHV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCAnI2luY2x1ZGUgPGRtYWxsb2MuaD4nIHN0YXRlbWVudHMsIHNpbmNlIHRoaXMgaXMgaGFuZGxlZCBpbgogICB0aGUgaGVhZGVyIGZpbGUgd2hpY2ggaXMgaW5jbHVkZWQgYW55d2F5LiAgKFBhdGNoICMxMTA4MDUzIGJ5IEp1biBLdXJpeWFtYSkKCjIwMDUtMDgtMTcgMDc6NTAgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTEwYWdlbnR4Z2V0LCBUMTExYWdlbnR4c2V0LAogICAgIFQxMTJhZ2VudHhzZXRmYWlsLCBUMTEzYWdlbnR4dHJhcDoKCiAgIFN1cHBvcnQgcnVubmluZyBBZ2VudFggdGVzdHMgd2hlbiBjb25maWd1cmVkIHVzaW5nIHNlcGFyYXRlCiAgICdhZ2VudHgvbWFzdGVyIGFnZW50eC9zdWJhZ2VudCcgbW9kdWxlcyAoUGF0Y2ggIzEwNDk3OTQgZnJvbSBtYWdmcikKCjIwMDUtMDgtMTcgMDU6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRXh0ZW5kIGxlbmd0aCBvZiBjb20yc2VjICJzb3VyY2UiIGJ1ZmZlciAoUGF0Y2ggIzEyMjUxMzAgZnJvbSBBbmRyZXcgU3RlZXRzKQoKMjAwNS0wOC0xNyAwNDo0NSAgZHRzMTIKCiAgICogc25tcGxpYi93aW5waXBlLmM6CgogICBGaXggdHlwbyAocGF0Y2ggIzEyNTU3MTMgYnkgQmVybmhhcmQgUGVueikKCjIwMDUtMDgtMTYgMjA6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBmaXggYnVnIDEyNTkwNTE6IHNubXBkIHNlZ2ZhdWx0cyBvbiBhbWQ2NAoKMjAwNS0wOC0xNiAxNzoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgYWxsb3cgaXB2NCBzdGF0cyB0byB3b3JrIGlmIHY2IHN0YXRzIGFyZSBub3QgYXZhaWxhYmxlCgoyMDA1LTA4LTE2IDE2OjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBmaXggYnVnIDEyNTkwNTQ6IHNubXBkOiBjYW5ub3Qgb3BlbiAvcHJvYy9uZXQvc25tcDYKCjIwMDUtMDgtMTYgMTI6MjkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgVHlwbyBpbiB0aGUgZGVzY3JpcHRpb24gb2YgLS1lbmFibGUtbWliLWNvbmZpZy1jaGVja2luZyAoYnVnICMxMjM4MzAxKQoKMjAwNS0wOC0xNiAxMTo1OSAgcnN0b3J5CgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgYWx3YXlzIHNwZWNpZnkgcGVybXMgdG8gbWtkaXIsIGFzIGl0IGlzIG5vdCBvcHRpb24gZm9yIG9sZGVyIHBlcmwgdmVyc2lvbnMKCjIwMDUtMDgtMTUgMTg6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBzZXQgdGltZW91dC9yZXRyaWVzIHRvIGRlZmF1bHQgZm9yIGluZm9ybSBzZXNzaW9ucwoKMjAwNS0wOC0xNSAxODozNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBmaXggdHlwbwoKMjAwNS0wOC0xNSAxODoyMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiBpbnN0YW5jZS5jLCBzY2FsYXJfZ3JvdXAuYywgdGFibGUuYwo6CgogICB3YWl0IGZvciBkZWxlZ2F0ZWQgcmVxdWVzdHMgYmVmb3JlIHJldHJpZXMKCjIwMDUtMDgtMTQgMTc6MjIgIGFsZXhfYgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICBGaXggc3BlbGxpbmcgbWlzdGFrZSBpbiBkZXNjcmlwdGlvbiBvZiBhIGRlZmluZS4KCjIwMDUtMDgtMTEgMTM6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBmaXggbGVuZ3RoIG9mIHN5c09iamVjdElECgoyMDA1LTA4LTAxIDA3OjM5ICBhbGV4X2IKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC1kb24ndCB1c2UgZ2V0ZHRhYmxlc2l6ZSgpIGZvciBXSU4zMgoKMjAwNS0wOC0wMSAwNzozOSAgYWxleF9iCgogICAqIHdpbjMyLzogbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgICBsaWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW4sCiAgICAgbGlibmV0c25tcHRyYXBkL2xpYm5ldHNubXB0cmFwZC5kc3AsIHNubXB0cmFwZC9NYWtlZmlsZS5pbgosIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgLVdpbjMyOiAgVXBkYXRlIHByb2plY3QgZmlsZXMgd2l0aCBuZXcgbG9jYXRpb24gZm9yIG5vdGlmaWNhdGlvbl9sb2cuYyBhbmQKICAgIG1pc3NpbmcgdGFibGVfZGF0YTIuYyBmb3IgTVNWQyBHVUkKCjIwMDUtMDgtMDEgMDc6MzcgIGFsZXhfYgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLUZpeCB3aW4zMiBidWlsZCBwcm9ibGVtIC0gZGVjbGFyZSB2YXJpYWJsZXMgYmVmb3JlIHVzaW5nLgoKMjAwNS0wNy0yOCAwNzo0NyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmM6CgogICBTaW1wbGUgJ3doaWxlJyBsb29wLCBhbmQgKG5vbi1lcnJvcikgcXVpdCBzdGF0ZW1lbnQuCgoyMDA1LTA3LTI2IDA4OjA2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFByb2JlIGZvciBlbmdpbmVJRCBpbml0aWFsbHksIHNvIHRoYXQgaXQncyBhdmFpbGFibGUgZm9yIGNvbnN0cnVjdGluZwogICB0aGUgdXNtVXNlclRhYmxlIE9JRHMuCgoyMDA1LTA3LTI2IDA2OjE5ICB0YW5kZXJzCgogICAqIEZBUToKCiAgIFVwZGF0ZSBPUyBzdXBwb3J0IHNlY3Rpb24uIFN0aWxsIGxpa2VseSB0byBiZSBvdXRkYXRlZCBmb3Igc29tZSBwbGF0Zm9ybXMuCgoyMDA1LTA3LTI1IDE5OjUzICB0YW5kZXJzCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBmaXggYnVnIDEyMzAzNjY6IGFkZCAiLW4iIHRvICJuZXRzdGF0IC1hIiB0byBtYWtlIGl0IHdvcmsgZXZlbiBpZiBwb3J0IG51bWJlcnMgaGF2ZSBjb3JyZXNwb25kaW5nIHNlcnZpY2UgbmFtZXMKCjIwMDUtMDctMjUgMTk6MjggIHJzdG9yeQoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBhdXRvX25saXN0LmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyBpbmNsdWRlIGhlYWRlciB3L3Byb3RvdHlwZQoKMjAwNS0wNy0yNSAxOToyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAga2VlcCBjb21waWxlciBoYXBweTsgbW92ZSBwYXJhbSB0eXBlIGRlY2wgaW50byBwYXJhbSBkZWNsIGxpc3QKCjIwMDUtMDctMjUgMTk6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmk6CgogICAtIG1vdmUgY29tbWVudCBlbmQgb3V0IG9mIGNvbmRpdGlvbmFsIChzaW5jZSBzdGFydCBpcyBhcyB3ZWxsKQogICAtIGluY2x1ZGUgY3R4IHNldCBmb3Igbm9uLWVudW0gdHlwZXMKCjIwMDUtMDctMjUgMTk6MjUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1nZXQubTJpLAogICAgIGdlbmVyaWMtY3R4LXNldC5tMmk6CgogICBkZWFsIHdpdGggb2lkIGxlbmd0aCB2cyBzaXplIGR1cmluZyBnZXQvc2V0CgoyMDA1LTA3LTI1IDE1OjU3ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA1LTA3LTI1IDE1OjU2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIG5vdGlmaWNhdGlvbi1sb2ctbWliIHRvIGRlZmF1bHQgbWliIGxpc3QKCjIwMDUtMDctMjUgMTU6NTUgIHJzdG9yeQoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSBmaXggbm90aWZjYXRpb24gbG9nIGluY2x1ZGUgcGF0aAogICAtIG9ubHkgaW5jbHVkZSBub3RpZmljYXRpb24gbG9nIGNvZGUgaWYgbW9kdWxlIGluY2x1ZGVkCgoyMDA1LTA3LTI1IDE0OjM1ICBtYXJ6CgogICAqIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlLzogY3B1Ly5jdnNpZ25vcmUsIG1lbW9yeS8uY3ZzaWdub3JlCjoKCiAgIGZpeGluZyBjdnMgaWdub3JlIGZvciBzaGFyZWQgbGlicwoKMjAwNS0wNy0yNSAxMzoyMiAgcnN0b3J5CgogICAqIGFwcHMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyBvbi9mb3Igbm90aWZpY2F0aW9uX2xvZwoKMjAwNS0wNy0yNSAxMTozOSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBHZW5lcmF0ZSBkaWZmZXJlbnQgY29kZSBmb3IgY2FjaGluZyBhbmQgbm9uLWNhY2hpbmcgY29udGFpbmVyIGZyYW1ld29ya3MKICAgKHJhdGhlciB0aGFuIGluY2x1ZGluZyBjYWNoaW5nIHN1cHBvcnQgcmVnYXJkbGVzcykKCjIwMDUtMDctMjUgMTE6MzcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsCiAgICAgbTJjX3RhYmxlX3NhdmVfZGVmYXVsdHMubTJpLCBtZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjCiwgbWZkLW1ha2VmaWxlLm0ybSwgbWZkLXRvcC5tMmM6CgogICBBZ2VudFggbWFrZWZpbGUgYW5kIHN1YmFnZW50IGRyaXZlciBjb2RlIHdlcmVuJ3QgZ2V0dGluZyBnZW5lcmF0ZWQKICAgKGV2ZW4gaWYgdGhleSB3ZXJlIHJlcXVlc3RlZCkuICBGaXggdGhpcy4KCjIwMDUtMDctMjUgMTE6MzQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENvbnZlbmllbmNlIHJvdXRpbmUgZm9yIHNldHRpbmcgYW4gaW50ZWdlciB2YXJiaW5kIHZhbHVlLgoKMjAwNS0wNy0yMSAyMTo1NCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGFkZCAgTkVUU05NUF9EU19OT1RJRl9MT0dfQ1RYIHN0cmluZwoKMjAwNS0wNy0yMSAyMTo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGxvZyBub3RpZmljYXRpb24gaWYgdXNpbmcgbm90aWZpY2F0aW9uIGxvZyBtaWIgbW9kdWxlCgoyMDA1LTA3LTIxIDIxOjUxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGFkZCB0b2RvIGNvbW1lbgoKMjAwNS0wNy0yMSAyMTo0OSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHJlbW92ZSBjb21tZW50ZWQgb3V0IHZhciBkZWNsCiAgIC0gcmVtb3ZlIHVudXNlZCBudW1fcmVjZWl2ZWQKICAgLSBzZXQgc25tcHRyYXBkIGNvbnRleHQgZm9yIG5vdGlmaWNhdGlvbiBsb2cgbW9kdWxlCgoyMDA1LTA3LTIxIDIxOjQ3ICByc3RvcnkKCiAgICogYXBwcy86IHNubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIGFkZCBpbnRlcmZhY2UgdG8gbm90aWZpY2F0aW9uIGxvZyBhZ2VudCBtb2R1bGUKCjIwMDUtMDctMjEgMjE6NDcgIHJzdG9yeQoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4sIG5vdGlmaWNhdGlvbl9sb2cuYywKICAgICBub3RpZmljYXRpb25fbG9nLmg6CgogICByZW1vdmUgdW51c2VkIG5vdGlmaWNhdGlvbl9sb2cgZmlsZXMKCjIwMDUtMDctMjEgMjE6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmM6CgogICAtIG1ha2UgbnVtX3JlY2VpdmVkIHN0YXRpYwogICAtIGFkZCBsb2NhbCBlbmFibGVkIGZsYWcsIHNldCB3aGVuIG1vZHVsZSBpbml0IGNhbGxlZAogICAtIHJldHVybiBpbW1lZGlhdGVseSBmcm9tIGxvZ19ub3RpZmljYXRpb24gaWYgbm90IGVuYWJsZWQKICAgLSB1c2UgY29ycmVjdCBpbmRleCBpbiBjb21wYXJlLCBzbyB3ZSBoYXZlIGEgY2hhbmNlIGF0IGZpbmRpbmcgdGhlIHJpZ2h0IHJvdwogICAgICh0aGlzIGZpeGVzIHRoZSB2YXJiaW5kIG1lbW9yeSBsZWFrKQoKMjAwNS0wNy0yMSAyMDoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHN0cmR1cCB0bXAgZHMgc3RyaW5nIHRoYXQgd2lsbCBiZSByZWxlYXNlZAoKMjAwNS0wNy0yMSAxOTowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi1sb2ctbWliL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGFkZCBtaXNzaW5nIHNlbWktY29sb24KCjIwMDUtMDctMjEgMTk6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24tbG9nLW1pYi86IG5vdGlmaWNhdGlvbl9sb2cuYywKICAgICBub3RpZmljYXRpb25fbG9nLmg6CgogICAtIHJlbW92ZSBhZ2VudHggY29uZGl0aW9uYWwgY29tcGlsZQogICAtIHJlbW92ZSBzbm1wdHJhcGQgaGVhZGVycwogICAtIHJlLXdvcmsgbG9nIHNpemUgbWFuYWdlbWVudAogICAtIGFkZCBjb250ZXh0IHBhcmFtZXRlciBmb3IgdGFibGUgaW5pdCByb3V0aW5lcwogICAtIG5ldyBkc19hcHAgZm9yIG1vZHVsZSBpbml0IHRvIGRldGVybWluZSBjb250ZXh0CiAgIC0gcmVtb3ZlIGRvbnRSZXRhaW5Mb2dzIGNvbmZpZyAodXNlIC1JIC1ub3RpZmljYXRpb25fbG9nKQogICAtIGNoZyBkZWJ1ZyBzeW1ib2wgKGxvZ19ub3RpZmljYXRpb24tPm5vdGlmaWNhdGlvbl9sb2cpCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgY29tbWVudHMKICAgLSBtYWtlIHN1cmUgdHJhbnNwb3J0IHB0ciBoYXMgdmFsdWUgYmVmb3JlIHVzaW5nCgoyMDA1LTA3LTIxIDE4OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24tbG9nLW1pYi9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgbm90aWZpY2F0aW9uLWxvZy1taWIvbm90aWZpY2F0aW9uX2xvZy5oLAogICAgIG5vdGlmaWNhdGlvbi1sb2ctbWliLmg6CgogICBvcmlnaW5hbCB2ZXJzaW9ucwoKMjAwNS0wNy0yMCAyMDozNCAgYWxleF9iCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLUFkZCB3cmFwcGVyIGZvciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgKG15X2dldGVudikgdG8gYWRkIFdpbmRvd3MgcmVnaXN0cnkKICAgIHN1cHBvcnQgZm9yIHBlcnNpc3RlbnQgZm9sZGVyL2ZpbGUgY2hlY2sKICAgLUZpeCBidWcgaW4gZ2V0X3BlcnNpc3RlbnREaXIgY2FsbCAoaXQgd2FzIG5vdCBwYXNzaW5nIHRoZSBmaWxlbmFtZSBvZgogICAgc25tcC5jb25mCgoyMDA1LTA3LTIwIDE4OjE5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG1vdmUgaGVhZGVyIGluY2x1ZGUgdG8gdG9wIG9mIGZpbGUKCjIwMDUtMDctMjAgMTg6MTcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBhZGQgbWlzc2luZyBoZWFkZXIKCjIwMDUtMDctMjAgMTg6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmM6CgogICBmaXggaW5jbHVkZSBvZiBvd24gaGVhZGVyIChjdXQtbi1wYXN0ZSBlcnJvcikKCjIwMDUtMDctMjAgMTg6MTAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBtaWIuaCwgc25tcF9hcGkuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZQoKMjAwNS0wNy0yMCAxODowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaDoKCiAgIHJlbW92ZSBwcm90b3R5cGUgZm9yIG5vbi1leGlzdGVudCBmdW5jOyBhZGQgbWlzc2luZyBwcm90b3R5cGUKCjIwMDUtMDctMjAgMTg6MDggIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgdHdlYWsgcGFyYW1ldGVycyBmb3IgbnNiLWNvbmZpZyBleGFtcGxlCgoyMDA1LTA3LTIwIDE4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5jOgoKICAga2VlcCBjb21waWxlciBoYXBweTsgcmVtb3ZlIHJlZHVuZGFudCBzZW1pY29sb24KCjIwMDUtMDctMjAgMTg6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBrZWVwIGNvbXBpbGVyIGhhcHB5OyBhZGQgbWlzc2luZyBpbmNsdWRlcy9wcm90b3R5cGUKCjIwMDUtMDctMjAgMTg6MDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgYmFkIG9wdGlvbiBbd2l0aHxlbmFibGVdLXNzbAoKMjAwNS0wNy0yMCAxNzo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbWFrZSBzdXJlIGNoZWNrIHJ1biBmaW5kIG9uIHNyY2RpcgoKMjAwNS0wNy0yMCAxMTozMCAgZHRzMTIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIEd1YXJkIGFnYWluc3QgdXNpbmcgbmFtZWxlc3MgZGF0YSBsaXN0cy4gIFRoaXMgc3RpbGwKICAgd29uJ3Qgd29yayBwcm9wZXJseSwgYnV0IGF0IGxlYXN0IHRoZSBhZ2VudCB3b24ndCBjcmFzaC4KICAgKFllcywgSSBrbm93IHRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiAtIGJ1dCB5b3UgY2FuJ3QgdHJ1c3QKICAgc29tZSBwZW9wbGUgbm90IHRvIGRvIHNvbWV0aGluZyBzdHVwaWQgLSBuYW1pbmcgbm8gbmFtZXMpCgoyMDA1LTA3LTIwIDExOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBJbmNsdWRlIHRoZSBoYW5kbGVyIG5hbWUgd2hlbiByZWdpc3RlcmluZyBhIHRhYmxlX2FycmF5LgoKMjAwNS0wNy0xOSAxMzo0NCAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgZml4IGN1dC1uLXBhc3RlOyBuZXcgdGFibGVzIGFyZSBsaW51eCBvbmx5CgoyMDA1LTA3LTE5IDEwOjUyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb250YWluZXIuY29uZjoKCiAgIEltcHJvdmUgaGFuZGxpbmcgb2YgdmFyaWFibGUtbGVuZ3RoIGluZGV4IGFuZCBjb2x1bW4gdmFsdWVzLgoKMjAwNS0wNy0xOSAxMDo1MiAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRml4IGhhbmRsaW5nIG9mIHZhcmlhYmxlLWxlbmd0aCBpbmRleGVzLgoKMjAwNS0wNy0xOSAxMDo0OSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIFByb3ZpZGUgYW5vdGhlciByZWdpc3RyYXRpb24gQVBJIHRvIGhpZGUgdGhlIGhlbHBlciBpbnRlcm5hbHMKICAgZnJvbSB1c2VyLWxldmVsIGNvZGUuCgoyMDA1LTA3LTE4IDE3OjU3ICByc3RvcnkKCiAgICogTkVXUywgUkVBRE1FLmFnZW50LW1pYnM6CgogICB1cGRhdGUgZm9yIG5ldyB0Y3BDb25uZWN0aW9uVGFibGUgYW5kIHRjcExpc3RlbmVyVGFibGUKCjIwMDUtMDctMTggMTc6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvOiB0Y3BMaXN0ZW5lclRhYmxlLmMKLCB0Y3BMaXN0ZW5lclRhYmxlLmgsIHRjcExpc3RlbmVyVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBpbml0aWFsIHdvcmtpbmcgdmVyc2lvbgoKMjAwNS0wNy0xOCAxNzozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLW1pYi5oLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlLmMsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGUuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9jb25zdGFudHMuaCwKICAgICB0Y3AtbWliL3RjcExpc3RlbmVyVGFibGUvdGNwTGlzdGVuZXJUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcC1taWIvdGNwTGlzdGVuZXJUYWJsZS90Y3BMaXN0ZW5lclRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgdGNwLW1pYi90Y3BMaXN0ZW5lclRhYmxlL3RjcExpc3RlbmVyVGFibGVfaW50ZXJmYWNlLmg6CgogICBpbml0aWFsIGNvZGUgZm9yIHRjcExpc3RlbmVyVGFibGUKCjIwMDUtMDctMTggMTc6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5lY3Rpb25UYWJsZS86IHRjcENvbm5lY3Rpb25UYWJsZS5jCiwgdGNwQ29ubmVjdGlvblRhYmxlLmgsIHRjcENvbm5lY3Rpb25UYWJsZV9jb25zdGFudHMuaAosIHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZV9pbnRlcmZhY2UuYywKICAgICB0Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmg6CgogICAtIGxvYWQgY2FjaGUgZnJvbSBkYXRhIGFjY2VzcwogICAtIG1hcCBhZGRyZXNzIHR5cGUKICAgLSBzaHJpbmsgc3RvcmFnZSBmb3IgaW5kZXhlcwoKMjAwNS0wNy0xOCAxNzoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYzoKCiAgIC0gZml4IGluZGV4IG9pZCBwb2ludGVyCiAgIC0gYWRkIHVwZGF0ZSBvZiBwaWQKCjIwMDUtMDctMTggMTc6MjggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIC0gdXNlIG5ldyBwcml2YXRlIGhlYWRlcgogICAtIGZpeCBsb2FkIHByb3RvdHlwZXMKICAgLSBjaGVjayBuZXcgbGlzdGVuIHN0YXRlIHJlcXVpcmUvZXhjbHVkZSBsb2FkIGZsYWcKICAgLSBmaXggY29weSBvZiByZW1vdGUgYWRkcmVzcwoKMjAwNS0wNy0xOCAxNjoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgcHJpbnQgYmFkIGxpbmUgd2hlbiBiYWlsaW5nIG9uIGVycm9yCgoyMDA1LTA3LTE4IDE2OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBmaXggY3V0LW4tcGFzdGUgZmx1YgoKMjAwNS0wNy0xOCAxNjoyNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICByZW1vdmUgZHVwbGljYXRlIGNvbW1lbnQgYmxvY2sKCjIwMDUtMDctMTggMTY6MjMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIC0gcmVtb3ZlIHVudXNlZCBkZWZpbmVzL2NvbW1lbnRzCiAgIC0gYWRkIHBpZCB0byBzdHJ1Y3QKICAgLSBhZGQgbG9hZCBmbGFncyB0byByZXF1aXJlL2V4bHVkZSBsaXN0ZW4gc3RhdGUKCjIwMDUtMDctMTggMTY6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBhZGQgZGVidWcgdG8gZnJlZUJTRCAoZXNwIGVycm9yIGNhc2VzKQoKMjAwNS0wNy0xOCAxNTo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5jCjoKCiAgIGNvcnJlY3QgZGF0YSBzdHJ1Y3QgbmFtZQoKMjAwNS0wNy0xOCAxNTo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvOiB0Y3BDb25uZWN0aW9uVGFibGUuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlLmMsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZS5oLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfY29uc3RhbnRzLmgsCiAgICAgdGNwQ29ubmVjdGlvblRhYmxlL3RjcENvbm5lY3Rpb25UYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB0Y3BDb25uZWN0aW9uVGFibGUvdGNwQ29ubmVjdGlvblRhYmxlX2ludGVyZmFjZS5jLAogICAgIHRjcENvbm5lY3Rpb25UYWJsZS90Y3BDb25uZWN0aW9uVGFibGVfaW50ZXJmYWNlLmg6CgogICBpbml0aWFsIHZlcnNpb25zCgoyMDA1LTA3LTE4IDE0OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX3ByaXZhdGUuaDoKCiAgIHByaXZhdGUgaW1wbGVtZW50YXRpb24gaGVhZGVyCgoyMDA1LTA3LTE1IDE4OjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjLAogICAgIGdlbmVyaWMtdGFibGUtZW51bXMubTJjLCBnZW5lcmljLXRhYmxlLW9pZHMubTJjLAogICAgIG1mZC1pbnRlcmZhY2UubTJjOgoKICAgcXVvdGUgc3RyaW5nIGFyZ3VtZW50IGluIGFzc2lnbm1lbnQKCjIwMDUtMDctMTUgMTg6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjbGVhciBzZXNzaW9uIGZyb20gY2FsbGJhY2sgY2xpZW50IGFyZ3Mgb24gZnJlZQoKMjAwNS0wNy0xNCAxOTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgZml4IGludHIvY3R4IG92ZXJmbG93cwoKMjAwNS0wNy0xNCAxODo1MCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oOgoKICAgY29uZmlnX3JlcXVpcmUgdXRpbGl0aWVzL2V4ZWN1dGUgKGZvciBzbm1wdHJhcGQpCgoyMDA1LTA3LTA3IDEyOjMwICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGRvIG5vdCBjbG9zZSBhbGwgbm9uLXN0ZCBmZHMgaW4gZGFlbW9uaXplIChhcyB3ZSBoYXZlIHByb2JhYmx5IG9wZW5lZCBzb21lKQoKMjAwNS0wNy0wNyAxMjoyNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIGNsb3NlIGFsbCBub24tc3RhbmRhcmQgZmRzIGluaGVyaXRlZCBmcm9tIHNoZWxsIGltbWVkaWF0ZWx5CiAgIC0gcmVnaXN0ZXIgc2lnbmFsIGhhbmRsZXJzIG11Y2ggc29vbmVyLCBzbyBlYXJseSBzaWduYWwgZG9lc24ndCBjb3JlCgoyMDA1LTA3LTA2IDEyOjM0ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICB0d2VhayB0YXJnZXQgdG8gYnVpbGQgIChhbGwpIGxpYnMgdG8gdXNlIGV4aXN0aW5nIElOU1RBTExMSUJTCgoyMDA1LTA3LTAxIDE4OjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gdXNlIHV0aWxpdHkgcm91dGluZSB0byBjbGVhciBkZWxlZ2F0ZWQgZmxhZwogICAtIGRvbid0IHNldCBlcnJvciBmb3IgdGltZW91dCBvbiBnZXQtbmV4dAogICAtIHJlbGVhc2UgZGVsZWdhdGVkIGNhY2hlIHdoZW4gdW5kZWxlZ2F0aW5nIHJlcXVlc3RzCgoyMDA1LTA2LTMwIDExOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBpZmYgbm90IGFwcGxpZWQsIGZpeCBmcmVlIG9mIHBrdCB0byB1c2UgYWxsb2MnZCBwdHIsIG5vdCBvZmZzZXQgaW4gcGt0CiAgIC0gaWZmIGFwcGxpZWQsIHJlbW92ZSByZWR1bmRhbnQgcHJ0IGNsZWFyIGFmdGVyIFNOTVBfRlJFRQoKMjAwNS0wNi0zMCAwNToyNyAgdGFuZGVycwoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBjbWQuMS5kZWYsIHNubXBkLjguZGVmCiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBQYXRjaCAxMjI2MTg3OiBkb2N1bWVudCBtaXNzaW5nIGNvbmZpZyBmaWxlIHRva2VucyBhbmQgY21kbGluZSBvcHRpb25zCgoyMDA1LTA2LTMwIDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIENhbGN1bGF0ZSAiY29va2VkIiB2YWx1ZXMgZnJvbSBoaXN0b3JpY2FsIGRhdGEuCiAgIFRoaXMgY2hhbmdlcyB0aGUgbWVhbmluZyBvZiB0aGVzZSBmaWd1cmVzIGZyb20gYSBzeXN0ZW0KICAgbGlmZS10aW1lIGF2ZXJhZ2UgdG8gYSAobW9yZSB1c2VmdWwpIG9uZS1taW51dGUgYXZlcmFnZSwKICAgYW5kIGJyaW5ncyB0aGUgTGludXggaW1wbGVtZW50YXRpb24gaW50byBsaW5lIHdpdGggbW9zdAogICBvdGhlciBhcmNoaXRlY3R1cmVzLgoKMjAwNS0wNi0zMCAwNDozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvY3B1Lmg6CgogICBTdGFuZGFyZCAoc3lzdGVtLWluZGVwZW5kZW50KSBtZWNoYW5pc20gZm9yIHRyYWNraW5nIGhpc3RvcmljYWwgQ1BVCiAgIHN0YXRpc3RpY3MsIGluIG9yZGVyIHRvIGNhbGN1bGF0ZSByb2xsaW5nIGF2ZXJhZ2VzLgoKMjAwNS0wNi0yOSAxNzoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRG8gcHJvcGVyIGNoZWNrcyBmb3IgemVybyByZXR1cm4gYW5kIHdhaXQgcmF0aGVyIHRoYW4gY2xvc2luZyB0aGUgY29ubmVjdGlvbgoKMjAwNS0wNi0yOSAxMzo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBSb21hbiBUc2lyb3Vsbmlrb3YgdG8gY2F0Y2ggLTEgcmV0dXJuIGNvZGUgZnJvbSBjaGVja19wYWNrZXQgZnVuY3Rpb25zCgoyMDA1LTA2LTI4IDA4OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvbWVtb3J5X2xpbnV4Lmg6CgogICBUd2VhayB0aGUgbmFtZSBvZiB0aGUgY29yZSBIQUwgbWVtb3J5IG1vZHVsZS4KCjIwMDUtMDYtMjcgMTQ6MDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMsIGV4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbDoKCiAgIFBhdGNoIGZyb20gRGF2aWQgQmVhdHRpZSB0byBmaXggdHJhcCByZWNlcHRpb24KCjIwMDUtMDYtMjcgMDU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3RvcmFnZS5oCiwgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeS5oOgoKICAgVXNlIEhhcmR3YXJlIEFic3RyYWN0aW9uIExheWVyIHRvIGltcGxlbWVudCBNZW1vcnkgbW9uaXRvcmluZyBvbiBMaW51eCBzeXN0ZW1zLgoKMjAwNS0wNi0yNyAwNTowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3Byb2MuYywgaG9zdC9ocl9wcm9jLmgsCiAgICAgdWNkLXNubXAvdm1zdGF0LmMsIHVjZC1zbm1wL3Ztc3RhdC5oOgoKICAgVXNlIEhhcmR3YXJlIEFic3RyYWN0aW9uIExheWVyIHRvIGltcGxlbWVudCBDUFUgbW9uaXRvcmluZyBvbiBMaW51eCBzeXN0ZW1zLgoKMjAwNS0wNi0yNyAwNDo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5LmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdS5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL2NwdS9jcHUuaCwKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9jcHUvY3B1X2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvY3B1L2NwdV9saW51eC5oLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9od19tZW0uYywKICAgICBhZ2VudC9taWJncm91cC9oYXJkd2FyZS9tZW1vcnkvaHdfbWVtLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaGFyZHdhcmUvbWVtb3J5L21lbW9yeV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2hhcmR3YXJlL21lbW9yeS9tZW1vcnlfbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2hhcmR3YXJlL2NwdS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaGFyZHdhcmUvbWVtb3J5Lmg6CgogICBQcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBhIEhhcmR3YXJlIEFic3RyYWN0aW9uIExheWVyCiAgIChKdXN0IGNvdmVyaW5nIENQVSBhbmQgbWVtb3J5IGluZm9ybWF0aW9uIGZvciBub3csIGFuZAogICAgb25seSBpbXBsZW1lbnRlZCBvbiBMaW51eC1iYXNlZCBzeXN0ZW1zLiBCdXQgaXQncyBhIHN0YXJ0ISkKCjIwMDUtMDYtMjcgMDQ6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIEhhbmRsZSB3ZWVrLWRheSBiaXQgc3BlY2lmaWNhdGlvbnMuCgoyMDA1LTA2LTI3IDA0OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBIYW5kbGUgcmV2ZXJzZS1kYXkgYml0IHNwZWNpZmljYXRpb25zLgoKMjAwNS0wNi0yNCAwNjoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgSW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBjYWxhbmRhci1iYXNlZCBzY2hlZHVsaW5nLgogICBUaGlzIGRvZXNuJ3QgaGFuZGxlIHJldmVyc2UtZGF5IG9yIHdlZWtkYXkgYml0cyB5ZXQsCiAgIGJ1dCBzaG91bGQgcHJvdmlkZSB0aGUgYmFzaWMgZnVuY3Rpb25hbGl0eSBuZWVkZWQgZm9yCiAgIHRoZSAiY3JvbiIgYW5kICJhdCIgY29uZmlndXJlIGRpcmVjdGl2ZXMuCgoyMDA1LTA2LTIzIDA4OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb3JlLmM6CgogICBNb3JlIG1lYW5pbmdmdWwgZGVidWcgb3V0cHV0LgoKMjAwNS0wNi0yMiAyMDoxNiAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBkb2N1bWVudCBsb2dtYXRjaCwgYWdlbnR4cGVybXMsIGNvbTJzZWN1bml4LCBlbmdpbmVJRFR5cGUsIGVuZ2luZUlETmljCiAgICAgYW5kIGxlYXZlX3BpZGZpbGUgdG9rZW5zCgoyMDA1LTA2LTIyIDIwOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICByZW1vdmUgc25tcGQgZGlza2lvIHRva2VuIGFuZCB0aGUgdW51c2VkIHN0YXRpYyB2YXJpYWJsZSBpdCBzZXRzCgoyMDA1LTA2LTIyIDE5OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG9vcHMuIGRlY2xhcmUgdmFyaWFibGUgdXNlZCBpbiBuZXcgY29kZS4KCjIwMDUtMDYtMjIgMTk6MzUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBhcHBseSBwYXRjaCBmcm9tIDEyMTk1NDg6IGRvbid0IHVzZSBkZXByZWNhdGVkIG9wdGlvbgoKMjAwNS0wNi0yMiAxOTozMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIGFwcGx5IHBhdGNoIGZyb20gMTIxOTU0ODogZG9uJ3QgdW5saW5rIG51bGwgZmlsZW5hbWUKCjIwMDUtMDYtMjIgMTk6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgY2xvc2UgYWxsIGZkcyBhZnRlciBkYWVtb25pemluZwoKMjAwNS0wNi0yMiAxNzowMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbmV3IGNoZWNrIHRhcmdldCBmb3IgZnVsbCBwYXRocyBpbiBkZXBlbmRlbmN5IGZpbGVzCgoyMDA1LTA2LTIyIDE2OjA0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGFwcGx5IHNsaWdodGx5IG1vZGlmaWVkIHZlcnNpb24gb2YgMTIyNTQ0MDogcmVnaXN0ZXIgc2luZ2FsIGhhbmRsZXJzIGVhcmxpZXIKCjIwMDUtMDYtMjIgMTU6NTcgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYXBwbHkgc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbiBvZiAxMjI1NDQwOiByZWdpc3RlciBzaW5nbGEgaGFuZGxlcyBlYXJsaWVyCgoyMDA1LTA2LTIyIDEzOjIyICByc3RvcnkKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBtb3ZlIGlmZGVmIHRlc3QgYWZ0ZXIgaGVhZGVyIHdpdGggZGVmaW5lIGlzIGluY2x1ZGVkCgoyMDA1LTA2LTIyIDA2OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBzY2hlZENvbmYuYywgc2NoZWRUYWJsZS5jOgoKICAgVXNlIHRoZSBuZXcgc2NoZWRUYWJsZSBlbnRyeSBjcmVhdGlvbiByb3V0aW5lcy4KCjIwMDUtMDYtMjIgMDY6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIEVuc3VyZSBzZW5zaWJsZSBkZWZhdWx0IHNldHRpbmdzIGZvciBhbiBpbnRlcm5hbCBzZXNzaW9uLgoKMjAwNS0wNi0yMiAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL2lxdWVyeS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIFN1cHBvcnQgY29uZmlndXJhdGlvbiBvZiB0aGUgdmVyc2lvbiBhbmQgc2VjdXJpdHkgbGV2ZWwKICAgdXNlZCB0byBtYWtlIGludGVybmFsIHF1ZXJpZXMuCiAgICAgVW5mb3J0dW5hdGVseSwgY29tbXVuaXR5LWJhc2VkIHJlcXVlc3RzIGRvbid0IGN1cnJlbnRseQogICB3b3JrIG92ZXIgdGhlIGNhbGxiYWNrIHRyYW5zcG9ydCwgYnV0IEknbSB3b3JraW5nIG9uIHRoYXQuCgoyMDA1LTA2LTIyIDA1OjM5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsIHNubXBsaWIvc25tcHYzLmM6CgogICBTZXBhcmF0ZSBvdXQgcGFyc2luZyBzZWN1cml0eSBsZXZlbCB0b2tlbnMgaW50byBhIHNlcGFyYXRlIHJvdXRpbmUuCgoyMDA1LTA2LTIxIDE3OjM5ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCgoyMDA1LTA2LTIxIDE3OjM2ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHJlZHVuZGFudCBhc3NlcnQKCjIwMDUtMDYtMjEgMTc6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBwcm90b3R5cGUgZm9yIG5ldHNubXBfbG9nZ2luZ19yZXN0YXJ0CgoyMDA1LTA2LTIxIDE3OjMzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIHByb3RvdHlwZXMgZm9yIHNob3VsZF9pbml0IGFuZCBhZGRfdG9faW5pdF9saXN0CgoyMDA1LTA2LTIxIDE3OjMyICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwosIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC0gbmV3IC0tZGlzYWJsZS1zbm1wdHJhcGQtc3ViYWdlbnQgY29uZmlndXJlIG9wdGlvbgogICAtIGNoZWNrIG5ldyBvcHRpb24gdG8gZGlzYWJsZSBzdWItYWdlbnQgY29kZQogICAtIGFkZCAnSScgb3B0aW9uIHRvIGNvbW1hbmQgbGluZSBwcm9jZXNzaW5nLCB0byBkaXNhYmxlIG1vZHVsZXMKICAgLSB1c2Ugc2hvdWxkX2luaXQgdG8gZGV0ZXJtaW5lIGlmIG5vdGlmaWNhdGlvbiBsb2cgbWliIGlzIGRpc2FibGVkCiAgIC0gdXNlIG5ldyBzbm1wX2xvZ2dpbmdfcmVzdGFydCBvbiBIVVAKCjIwMDUtMDYtMjEgMTE6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBwcm90b3R5cGUgZm9yIHNubXBfc3RkZXJybG9nX3N0YXR1cwoKMjAwNS0wNi0yMSAxMTo0MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogc2NoZWRDb3JlLmMsIHNjaGVkQ29yZS5oOgoKICAgQSBjbGVhbmVyIGFwcHJvYWNoIHRvIGNyZWF0aW5nIGVudHJpZXMgaW4gdGhlIHNjaGVkVGFibGUKCjIwMDUtMDYtMjEgMTE6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IGlxdWVyeS5jLCBpcXVlcnkuaDoKCiAgIENvbnNpc3RlbnRseSB3b3JrIHdpdGggU05NUCB2ZXJzaW9ucywgbm90ICJwcm9jZXNzaW5nIG1vZGVscyIuCgoyMDA1LTA2LTIxIDExOjMzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBDb3JyZWN0IHRlbXBsYXRlIGZvciBjYWNoZWQgdGFibGVfZGF0YSByZWdpc3RyYXRpb24uCgoyMDA1LTA2LTIxIDEwOjQ1ICBkdHMxMgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgUmVmZXIgdG8gdGhlIGNvcnJlY3QgbG9jYXRpb24gZm9yIGNvbmZpZyBmaWxlcy4KICAgKFNwb3R0ZWQgYnkgTGVvIExlaSkKCjIwMDUtMDYtMjEgMTA6MDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBvbmx5IGFkZCBub3RpZmljYXRpb24gaGFuZGxlciBpZmYgd2UgYXJlIGFuIGFnZW50eCBzdWJhZ2VudAoKMjAwNS0wNi0yMCAxODowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gZml4IHNldHRpbmcgb2YgZXhwZWN0IHJlc3BvbnNlIHBkdSBmbGFnIChJIGJyb2tlIGl0IGZpeGluZyB0aGUgU05NUHYzCiAgICAgZGVsYXllZCBlbmdpbmVJRCBwcm9iZSkKCjIwMDUtMDYtMjAgMTg6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgZml4IHByb3h5IGhhbmRsaW5nIG9mIE5PU1VDSE5BTUUgb24gYSBnZXQtbmV4dCwgbm90ZWQgb24gdXNlcnMgYnkgSm9obiBIYXJkaW4KCjIwMDUtMDYtMjAgMTc6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSByZW1vdmUgdW51c2VkIGxvZyBmbGFncyBpbiBhZ2VudAogICAtIHNldCBubyBkZWZhdWx0IGxvZyBmbGFnIGZvciBzeXNsb2cgY2FzZXMKICAgLSBuZXcgc25tcF9zdGRlcnJsb2dfc3RhdHVzKCkgY2hlY2tzIGZvciBlbmFibGVkIHN0ZGVyciBsb2cgaGFuZGxlcnMKICAgLSBmaXggcmUtZW5hYmxlIG9mIHN5c2xvZyBpbiBsb2dnaW5nIHJlc3RhcnQgZnVuY3Rpb24KICAgLSB1c2UgY29ycmVjdCBmdW5jdGlvbiBuYW1lIHRvIHJlLWVuYWJlIGZpbGUgbG9ncwogICAtIEMrKyBjb21tZW50cyAtPiBDIGNvbW1lbnRzCgoyMDA1LTA2LTIwIDE2OjM4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gbmV3IG5ldHNubXBfbG9nZ2luZ19yZXN0YXJ0KCkgdG8gY2xvc2UvcmVvcGVuIGZpbGUgYmFzZWQgbG9ncwogICAtIHB1cmdlIGFnZW50IHNldHVwX2xvZwogICAtIG9ubHkgZW5hYmxlIGRlZmF1bHQgTE9HRklMRSBpZiBubyBvdGhlciBsb2cgb3B0aW9uIGRlZmluZWQKCjIwMDUtMDYtMTggMTE6MTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBydW4gYXV0b2NvbmYKCjIwMDUtMDYtMTggMTA6NDQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtbW92ZSBzb21lIGFyZyBjaGVja3MgZWFybGllcgogICAtbW92ZSBsaWJ3cmFwL3JwbSBjaGVja3MgYmFjayBhZnRlciBzZXR0aW5nIE5PTkFHRU5UTElCUywgc28gdGhleSBhcmVuJ3QKICAgIGxpc3RlZCBpbiBhcHAgbGlicyBieSBuZXQtc25tcC1jb25maWcKCjIwMDUtMDYtMTYgMTM6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIG9vcHMtIHBhc3MgYWRkciBvZiB2YXIgdG8gc3NjYW5mCgoyMDA1LTA2LTE1IDE3OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgYWRkIHByb3RvdHlwZSBmb3IgZnVuYyB1c2VkIGJlZm9yZSBkZWZpbmVkCgoyMDA1LTA2LTE1IDA4OjA1ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRnJlZSB0aGUgc2FtZSBwb2ludGVyIHRoYXQgd2FzIHJldHVybmVkIGJ5ICdzdHJkdXAnCgoyMDA1LTA2LTE0IDE2OjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSByZXdvcmsgc25tcHYzIGVuZ2luZUlEIHByb2JlIGRlbGF5IHRvIGZpeCBwcm9ibGVtcyBub3RlZCBvbiBjb2RlcnMKICAgICAtIHNldCB1cC9jaGVjayBzZXNzL3BkdSB2ZXJzaW9uIGEgbGl0dGxlIGVhcmxpZXIKICAgICAtIHNldCBFWFBFQ1RfUkVTUE9OU0UgZmxhZyBjb3JyZWN0bHkgaW5pdGlhbGx5LCBpbnN0ZWFkIG9mIGdsb2JhbCBzZXQKICAgICAgIGFuZCB1bnNldCBmb3IgY2VydGFpbiBjYXNlcy4gYWxzbyBkbyBpdCBhIGxpdHRsZSBlYXJsaWVyCiAgICAgLSBtb3ZlIGNoZWNrIGZvciBwcm9iZSBoaWdoZXIgdXAgY2FsbCBzdGFjayAtIG5vdyB3aWxsIGJlIGRvbmUgdGhlIGZpcnN0CiAgICAgICB0aW1lIGEgc2Vzc2lvbiBzZW5kcyBhIHYzIHBkdSB0aGF0IGV4cGVjdHMgYSByZXNwb25zZQoKMjAwNS0wNi0xNCAxMjo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29uZi5jOgoKICAgVXNlICJhZ2VudFNlY05hbWUiIGZvciByZXRyaWV2aW5nIHNjaGVkdWxlIGluZm9ybWF0aW9uLgoKMjAwNS0wNi0xNCAxMjowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgZml4IGJ1ZyAxMTk3MTgzOiBzc1Jhd0NwdSogc3RheXMgb24gMl4zMi0xIGluc3RlYWQgb2Ygcm9sbGluZyBvdmVyCgoyMDA1LTA2LTE0IDExOjU0ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgb29wcy0gbW92ZSB2YXIgZGVjbCB0byBmdW5jIHRoYXQgdmFyIHdhcyBtb3ZlZCB0bwoKMjAwNS0wNi0xNCAxMTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGZpeCBidWcgMTIxNzI2MTogSUYtTUlCIHJlcG9ydHMgaW5jb3JyZWN0IHN0YXRzIG9uIEFNRDY0CgoyMDA1LTA2LTE0IDEwOjQxICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBwcm9jZXNzIG9wdGlvbmFsIGNvbmZpZyBmaWxlcyBkdXJpbmcgcHJlLW1pYiBjb25maWcgdG9vCiAgIC0gaWYgb3B0aW9uYWwgY29uZmlncyBwcmVmaXhlZCB3aXRoICctJywgcHJvY2VzcyBiZWZvcmUgZGVmYXVsdCBjb25maWdzCgoyMDA1LTA2LTE0IDA3OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgICBkaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsIHV0aWxpdGllcy9pcXVlcnkuYzoKCiAgIE1vdmUgImFnZW50U2VjTmFtZSIgY29uZmlnIGRpcmVjdGl2ZSB0byB0aGUgaXF1ZXJ5IHV0aWxpdHkgbW9kdWxlLgoKMjAwNS0wNi0xNCAwNzozNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgRGlzdGluZ3Vpc2ggc25tcF9zZW5kIGVycm9ycyBmcm9tIFNOTVAgZXJyU3RhdCBlcnJvcnMKCjIwMDUtMDYtMTQgMDc6MzcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBQb3B1bGF0ZSBjYWxsYmFjayBQRFUgd2l0aCBTTk1QdjMgZGVmYXVsdHMgZnJvbSB0aGUgc2Vzc2lvbiBzdHJ1Y3R1cmUuCgoyMDA1LTA2LTEzIDE5OjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcnVuIGF1dG9oZWFkZXIsIGF1dG9jb25mCgoyMDA1LTA2LTEzIDE5OjIwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIGFwcGx5IHBhdGNoIDExOTgyMTA6IHVzaW5nIGV0aHRvb2wgZm9yIGdpZ2FiaXQgTklDcwoKMjAwNS0wNi0xMyAxOTowMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYzoKCiAgIHVwZGF0ZSBmb3IgcHJldmlvdXMgY2FjaGVfaGludCBtZXRob2QKCjIwMDUtMDYtMTMgMTc6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIGFsd2F5IHBhc3MgaGludHMgdG8gbG93ZXIgaGFuZGxlcnMKCjIwMDUtMDYtMTMgMTc6MTUgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtYWtlIG1pYnMsIG1pYmRpcnMgYW5kIG1pYmZpbGVzIGhhbmRsaW5nIGNvbnNpc3RlbnQ6CiAgICAgLSAnLVhYWCcgYWRkcyBYWFggYmVmb3JlIGV4aXN0aW5nCiAgICAgLSAnK1hYWCcgYWRkcyBYWFggYWZ0ZXIgZXhpc3RpbmcKICAgICAgIE5PVEU6IHRoaXMgcmVzdG9yZXMgb3JpZ2luYWwgYmVoYXZpb3Igb2YgJysnIHRvIHRoYXQgb2YgNS4wLjEuIEFmdGVyCiAgICAgICAgICAgICA1LjAuMiwgaWYgSSByZWFkIHRoZSBjb2RlIHJpZ2h0LCAnKycgYmVoYXZpb3VyIG9uIHRoZSBjbWQgbGluZSBhbmQKICAgICAgICAgICAgIGluIE1JQkRJUlMgd2FzIHJldmVyc2VkIGFuZCBub3QgY29uc2lzdGVudCB3aXRoIGhhbmRsZV9taWJzX2NvbmYuCgoyMDA1LTA2LTEzIDE1OjM0ICByc3RvcnkKCiAgICogUkVBRE1FLnRydTY0OgoKICAgbmV3IHJlYWQgbWUgZm9yIFRydTY0CgoyMDA1LTA2LTEzIDEyOjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlmVGFibGUuYywgaWZUYWJsZS5oLAogICAgIGlmVGFibGVfY29sdW1ucy5oLCBpZlhUYWJsZV9jb2x1bW5zLmg6CgogICBSZW1vdmUgb2Jzb2xldGUgaWZUYWJsZSByZXdyaXRlLgoKMjAwNS0wNi0xMyAxMjoyNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFJ1biB0cmFwIGhhbmRsZXJzIHVzaW5nICdzeXN0ZW0oKScgcmF0aGVyIHRoYW4gJ2V4ZWN2KCknLAogICB0byBzdXBwb3J0IHRyYXAgaGFuZGxlciBzaGVsbCBzY3JpcHRzLgoKMjAwNS0wNi0xMyAxMjoxNiAgZHRzMTIKCiAgICogc25tcGxpYi86IGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgcGFyc2UuYywKICAgICBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc3lzdGVtLmMKLCB3aW5zZXJ2aWNlLmM6CgogICBHdWFyZCBhZ2FpbnN0IGFzc29ydGVkIG1hbGxvYyBmYWlsdXJlcy4KICAgUmVwb3J0ZWQgYnkgQW5kcmVhcyBNb3JvZGVyLgoKMjAwNS0wNi0xMyAxMTozOCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSBib2d1cyBoYW5kbGluZyBvZiB6ZXJvLXdpZHRoIGhpbnRzLgogICBUaGVzZSBtaWdodCBiZSBwb2ludGxlc3MsIGJ1dCB0aGV5IGFyZSBzdHJpY3RseSB2YWxpZC4KICAgKFNlZSBSRkMgMjU3OSwgU2VjdGlvbiAzLjEgKDEpKQoKMjAwNS0wNi0xMyAxMDo1MiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYywKICAgICBzbm1wbGliL21pYi5jOgoKICAgUG9zc2libGUgbWVjaGFuaXNtIGZvciBhZGRyZXNzaW5nIG5hbWVzcGFjZSBjbGFzaGVzCiAgIChpbiByZXNwb25zZSB0byBNYXR0aGV3IEJvZWhtJyBBc3RlcmlzayBwcm9ibGVtKQoKMjAwNS0wNi0xMCAxNjowNCAgaGFyZGFrZXIKCiAgICogbWlicy9VRFAtTUlCLnR4dDoKCiAgIHVwZGF0ZSBmcm9tIFJGQzQxMTMKCjIwMDUtMDYtMTAgMTY6MDIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvcnVuOgoKICAgYXBwbHkgdGVzdGluZy1yZmMxMjEzLXJ1bi5kaWZmIGZyb20gcGF0Y2ggMTIxNzQ3NTogYnVpbGQgZml4ZXMKCjIwMDUtMDYtMTAgMTU6NTcgIGhhcmRha2VyCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIHVwZGF0ZSB0aGUgVURQLU1JQiB0byBqdXN0IHB1Ymxpc2hlZCBSRkM0MTEzCgoyMDA1LTA2LTEwIDE1OjU0ICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGFwcGx5IHRlc3RpbmctdGVzdGNvbmYuZGlmZiBmcm9tIHBhdGNoIDEyMTc0NzU6IGJ1aWxkIGZpeGVzCgoyMDA1LTA2LTEwIDE1OjUxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGFwcGx5IGFnZW50LWhlbHBlcnMtbWFrZWZpbGUuZGlmZiBmcm9tIHBhdGNoIDEyMTc0NzU6IGJ1aWxkIGZpeGVzCgoyMDA1LTA2LTEwIDEzOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBpbml0IGhhbmRsZXIgZm9yIGFnZW50eHNvY2tldCBmb3Igc3ViYWdlbnRzIHRvbwoKMjAwNS0wNi0xMCAxMDo1NSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBZZXQgQW5vdGhlciBBdHRlbXB0IHRvIGZpbmQgdGhlIGNvcnJlY3QgcXVvdGluZyBvZiBjb25maWd1cmUgb3B0aW9ucy4KCjIwMDUtMDYtMTAgMDc6MzMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvcmUuYzoKCiAgIFVwZGF0ZSB0byB1c2UgdGhlIHJlbmFtZWQgaW50ZXJuYWwgYW5kIGxpYnJhcnkgcXVlcnkgQVBJIGNhbGxzLgoKMjAwNS0wNi0xMCAwNzozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogaXF1ZXJ5LmMsIGlxdWVyeS5oOgoKICAgVHdlYWsgdGhlIHNwZWNpZmljYWxseSBhZ2VudC1pbnRlcm5hbCBxdWVyeSByb3V0aW5lcyB0byB1c2UgdGhlIFNOTVAKICAgbGlicmFyeSB2ZXJzaW9ucy4KCjIwMDUtMDYtMTAgMDc6MjkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIE1vdmUgKGFuZCByZW5hbWUpIHNlc3Npb24tYmFzZWQgImludGVybmFsIHF1ZXJ5IiBBUEkgY2FsbHMgaW50byB0aGUgU05NUAogICBsaWJyYXJ5LCBzbyB0aGV5J3JlIGF2YWlsYWJsZSBhcyBhIGNvbnZlbmllbmNlIHRvIGFsbCBTTk1QIGFwcGxpY2F0aW9ucy4KCjIwMDUtMDYtMTAgMDU6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIE1vdmUgc3BlY2lhbCBoYW5kbGluZyBmb3IgImlwIiBpbnRlcmZhY2VzIHRvIFNVTlYzLW9ubHkgY29kZSBibG9jay4KICAgTm8tb25lIGNhbiByZW1lbWJlciB3aGF0IHRoaXMgd2FzIGludGVuZGVkIGZvciwgYW5kIGl0IGJyZWFrcwogICBMaW51eCBJUHY2IHR1bm5lbCBpbnRlcmZhY2VzLgoKMjAwNS0wNi0xMCAwNDoyMyAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgQnJpbmcgYXV0aGVudGljYXRpb24vZW5jcnlwdGlvbiBmbGFncyBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgY29tbWFuZHMuCiAgIEluIGZhY3QsIHRyZWF0cyAnLUEvLWEnIGFzIGVxdWl2YWxlbnQsIGFuZCB1c2VzIHRoZSB2YWx1ZSB0byBkaXN0aW5ndWlzaAogICBiZXR3ZWVuIHByb3RvY29scyBhbmQgcGFzcyBwaHJhc2VzLiAgKEFuZCBzaW1pbGFybHkgZm9yIC1YLy14KQoKMjAwNS0wNi0wOSAxNzo0NSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBidWcgMTIwNzAyMzogc25tcGQgY3Jhc2ggb24gdGNwIGRpc2Nvbm5lY3QKCjIwMDUtMDYtMDkgMTc6MTkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gbW92ZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHNpemUgY2hlY2tzIHRvIHNubXBfc2V0X3Zhcl92YWx1ZQogICAgIC0gdXNlIHNubXBfc2V0X3Zhcl92YWx1ZSBpbiBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlCgoyMDA1LTA2LTA5IDExOjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi9kYXRhX2FjY2Vzcy90Y3BDb25uX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9saW51eC5jOgoKICAgYWRkIGlwdjYgc3VwcG9ydAoKMjAwNS0wNi0wOSAxMTo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmM6CgogICByZW5hbWUgcGFyYW0sIHVwZGF0ZSBkb2NzLCB0byByZWR1Y2UgY29uZnVzaW9uCgoyMDA1LTA2LTA5IDA1OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vc2NoZWRDb25mLmM6CgogICBJbXBsZW1lbnQgcGFyc2luZyBvZiB0aGUgImF0IiBhbmQgImNyb24iIGNvbmZpZyBkaXJlY3RpdmVzLgogICBUaGVzZSBzdGlsbCBkb24ndCBhY3R1YWxseSB3b3JrLCBidXQgeW91IGNhbid0IGhhdmUgZXZlcnl0aGluZy4uLi4KCjIwMDUtMDYtMDkgMDU6MTIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9zY2hlZENvbmYuYzoKCiAgIEZpeCBwYXJzaW5nIG9mICJyZXBlYXQiIGRpcmVjdGl2ZS4KCjIwMDUtMDYtMDkgMDU6MDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IHNjaGVkQ29uZi5jLCBzY2hlZENvcmUuaDoKCiAgIEl0IHdvdWxkIGJlIHZhZ3VlbHkgaGVscGZ1bCBpZiBJIGtuZXcgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbgogICBob3VycyBhbmQgbW9udGhzLCBhbmQgaG93IG1hbnkgb2YgZWFjaCB0aGVyZSB3ZXJlIQoKMjAwNS0wNi0wOSAwNTowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL3NjaGVkQ29yZS5jOgoKICAgRGlzYWJsZSB0ZXN0aW5nIGNvZGUuCiAgIChpbml0aWFsaXNpbmcgdGhlIGxpYnJhcnkgdG9vIGVhcmx5IGJyZWFrcyBjb25maWcgZmlsZSBwcm9jZXNzaW5nOi0oKQoKMjAwNS0wNi0wOCAxNTo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jOgoKICAgc2tpcCBpcHY2IGNvZGUgaWYgaXB2NiBub3QgZW5hYmxlZDsgbm90ZWQgb24gY29kZXJzIGJ5IGVpcmlrIG5vcmRicm9kZW4KCjIwMDUtMDYtMDcgMTA6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzbWFuLmgsIGRpc21hbi9zY2hlZENvbmYuYywKICAgICBkaXNtYW4vc2NoZWRDb25mLmgsIGRpc21hbi9zY2hlZENvcmUuYywKICAgICBkaXNtYW4vc2NoZWRDb3JlLmgsIGRpc21hbi9zY2hlZFRhYmxlLmMsCiAgICAgZGlzbWFuL3NjaGVkVGFibGUuaCwgZGlzbWFuL3NjaGVkdWxlLmg6CgogICBQcmVsaW1pbmFyeSAoYW5kIGluY29tcGxldGUpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBEaXNNYW4gU2NoZWR1bGUgTUlCLgoKMjAwNS0wNi0wNiAwNTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogaXF1ZXJ5LmMsIGlxdWVyeS5oOgoKICAgVXRpbGl0eSByb3V0aW5lcyBmb3IgbWFraW5nICJpbnRlcm5hbCBxdWVyaWVzIiwgdG8gcmV0cmlldmUgb3IgYXNzaWduCiAgIHZhbHVlcyBmcm9tIGVsc2V3aGVyZSBpbiB0aGUgY3VycmVudCBhZ2VudC4KCjIwMDUtMDYtMDYgMDU6MjMgIGR0czEyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBQb3B1bGF0ZSBjYWxsYmFjayBQRFUgd2l0aCBkZWZhdWx0cyBmcm9tIHRoZSBzZXNzaW9uIHN0cnVjdHVyZS4KICAgVGhpcyBhbGxvd3MgY29tbXVuaXR5LWJhc2VkIFBEVXMgdG8gYmUgc2VudCBvdmVyIGEgY2FsbGJhY2sgdHJhbnNwb3J0LgoKMjAwNS0wNi0wMiAxOToxNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlbGF5IFNOTVB2MyBFbmdpbmVJRCBwcm9iZSB1bnRpbCBuZWVkZWQKCjIwMDUtMDYtMDIgMTk6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIGFwcGx5L3JlLWFwcGx5IGZpeCBmb3IgYnVnIDExMDM2NDQsIEZyZWVCU0QgbWVtb3J5IGxlYWsKCjIwMDUtMDYtMDIgMTg6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogY2FjaGVfaGFuZGxlci5jLCBtdWx0aXBsZXhlci5jLAogICAgIG51bGwuYywgcmVhZF9vbmx5LmM6CgogICBhcHBseSBwYXRjaCAxMjEwNjMyOiBSZXBsYWNlIG5ldHNubXBfc2V0X2FsbF9yZXF1ZXN0c19lcnJvcgoKMjAwNS0wNS0zMCAxNzoyMSAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFJGQyA0MDQ0OiBGQy1NR01ULU1JQgoKMjAwNS0wNS0zMCAxNzoxNyAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgQ3VycmVudCBJQU5BIHZlcnNpb24KCjIwMDUtMDUtMjcgMTQ6MDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgY29tbWl0IG1pc3Npbmcgc3RydG9rX3IgY2hhbmdlcyAqY291Z2gqCgoyMDA1LTA1LTIzIDE4OjQ4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGVybF90cmFwZC5wbCwgcGVybC9BU04vQVNOLnBtLAogICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLCBzbm1wbGliL3NubXBfZGVidWcuYwosIHNubXBsaWIvc25tcHYzLmM6CgogICBBcHBsaWVkIG1pbm9yIGJ1ZyBmaXgvZG9jIHBhdGNoZXMgZnJvbSBUaG9tYXMgQW5kZXJzIGluICMxMjA2OTgyCgoyMDA1LTA1LTIzIDE2OjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgVXNlIG1rc3RlbXAgYXBwcm9wcmlhdGUgdG8gZ2VuZXJhdGUgdGVtcCBmaWxlcwoKMjAwNS0wNS0yMCAxMDowMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJyaW5nICctSCcgaW5pdGlhbGlzYXRpb24gaW50byBsaW5lIHdpdGggbm9ybWFsIHN0YXJ0dXAuCgoyMDA1LTA1LTE2IDE1OjUwICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBEb24ndCBhdXRvLWJ1aWxkIGRlcGVuZGVuY2llcy4gIFNwZWNpZnkgYSBsaXN0IGluc3RlYWQuCgoyMDA1LTA1LTE2IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgQSBiaXQgb2YgcmVudW1iZXJpbmcuCgoyMDA1LTA1LTE2IDE1OjQzICBoYXJkYWtlcgoKICAgKiBkaXN0L21ha2VyZWxlYXNlOgoKICAgYXV0b21hdHRlZCByZWxlYXNlIHByb2R1Y2VyIHNjcmlwdAoKMjAwNS0wNS0xMSAxOTo1MSAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgRml4IHR5cG8gaW4gY29tbWVudAoKMjAwNS0wNS0xMSAxMDowMiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvOiBodG1saGVscC9OZXQtU05NUC5oaGMsIGh0bWxoZWxwL05ldC1TTk1QLmhocAosIHNjcmlwdHMvcmVhZG1lMmh0bWw6CgogICBBZGQgUkVBRE1FLmFnZW50LW1pYnMgdG8gV2luZG93cyBiaW5hcnkKCjIwMDUtMDUtMTEgMDU6MjAgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBNb3JlIFJGQ3Mgd2l0aCBNSUJzCgoyMDA1LTA1LTEwIDIxOjEzICBhbGV4X2IKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgc25tcGNvbmY6CgogICBzbm1wY29uZjogQWxsb3cgU05NUENPTkZQQVRIIHRvIGhhdmUgbXVsdGlwbGUgcGF0aHMgZGVmaW5lZCBzdWNoIGFzIHdoZW4gdGhlCiAgIHBlcnNpc3RlbnQgZm9sZGVyIGlzIGluY2x1ZGVkLiAgc25tcGNvbmYgd2lsbCBhbHNvIGRldGVybWluZSB0aGUgY29uZmlndXJlZAogICBwZXJzaXN0ZW50IGZvbGRlciBhbmQgcHJldmVudCBpdCBmcm9tIGJlaW5nIHRyZWF0ZWQgYXMgYSByZWd1bGFyIGNvbmZpZ3VyYXRpb24KICAgZmlsZS4KCjIwMDUtMDUtMTAgMjA6NDQgIGFsZXhfYgoKICAgKiBORVdTOgoKICAgQWRkIGZpeGVzIHRvIE5FV1MgZm9yIG5leHQgcmVsZWFzZQoKMjAwNS0wNS0wOSAyMTowNyAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlOgoKICAgQXV0b3VwZGF0ZQoKMjAwNS0wNS0wOSAyMDo1MyAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgVGhlIGtlcm5lbCBsaXZlcyBpbiAvYm9vdC9rZXJuZWwva2VybmVsIG9uIHJlY2VudCBGcmVlQlNEJ3MKCjIwMDUtMDUtMDkgMTk6MzUgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLnR4dCwKICAgICBodG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsCiAgICAgaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFdpbjMyIGJpbmFyeTogQWRkIHBlcnNpc3QgZm9sZGVyIHRvIFNOTVBDT05GUEFUSAoKMjAwNS0wNS0wOSAxOTowMCAgYWxleF9iCgogICAqIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBkLjguZGVmLAogICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC1QZXJzaXN0ZW50IGZpbGVzIHdlcmUgbm90IGJlaW5nIHJlYWQgYXQgc3RhcnR1cCB3aGVuIHVzaW5nCiAgIHNubXAuY29uZiBwZXJzaXN0ZW50RGlyCiAgIC1VcGRhdGUgcGVyc2lzdGVudCBzdG9yYWdlIHNlY3Rpb25zIG9mIHNubXBfY29uZmlnIGFuZCBzbm1wZAogICBtYW4gcGFnZXMKCjIwMDUtMDUtMDkgMTg6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIHVzZSBtb3JlIGZsZXhpYmxlIGNzcyBmb3IgbWFya3VwIGFuZCBhbGxvdyBhIHBhc3NlZCBpbiBmaWxlCgoyMDA1LTA1LTA5IDE4OjEyICBhbGV4X2IKCiAgICogQ09QWUlORzoKCiAgIEFkZCBGYWJhc29mdCBSJkQgU29mdHdhcmUgKGMpIG5vdGljZQoKMjAwNS0wNS0wOSAxNjozNyAgbmJhCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBkZXRlY3QgZXh0cmEgYXJndW1lbnRzCgoyMDA1LTA1LTA5IDE2OjMzICBuYmEKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIHNubXBnZXQgPT4gc25tcGRmCgoyMDA1LTA1LTA5IDE2OjIxICBuYmEKCiAgICogbWlicy9yZmNsaXN0OgoKICAgUkZDIDQwMDggaXMgTkFULU1JQgoKMjAwNS0wNS0wOSAxNjoyMCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIEZpbmQgZGVjbGFyYXRpb25zIGZvciBzaWdob2xkL3NpZ3NldC9zaWdwYXVzZQoKMjAwNS0wNS0wOSAxNjoxOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgRW5zdXJlIDAtdGVybWluYXRpb24gb2YgcmVhZCBmaWxlIGRhdGEKCjIwMDUtMDUtMDkgMTY6MTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIERldGVjdCB0b28gbWFueSBkZWZpbmVkIHBlZXJzLiBQcm9wZXJseSBwYXJzZSBzeW1ib2xpYyBwZWVycwoKMjAwNS0wNS0wOSAxNjoxMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgTmVlZGVkIGV4dGVybmFsCgoyMDA1LTA1LTA5IDE2OjEwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRml4IGZvcm1hdCB3YXJuaW5nCgoyMDA1LTA1LTA5IDE2OjA5ICBuYmEKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBGaXggZm9yIGluc3RhbGxpbmcgcmVtb3RlIGZyb20gc291cmNlIGRpcgoKMjAwNS0wNS0wOSAxNjowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEZpeCBmb3IgTmV0QlNECgoyMDA1LTA1LTA5IDE2OjAxICBuYmEKCiAgICogY29uZmlndXJlLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgR2VuZXJhdGVkCgoyMDA1LTA1LTA5IDE1OjQ1ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oOgoKICAgRml4ZXMgZm9yIE5ldEJTRC9GcmVlQlNEIGZvciBzd2FwIGRhdGEKCjIwMDUtMDUtMDkgMTU6MTcgIG5iYQoKICAgKiBhY2NvbmZpZy5oOgoKICAgRml4IG1pbmd3IHRlc3QgdGhhdCB3YXMgb25seSBhcHBsaWVkIHRvIG5ldC1zbm1wLWNvbmZpZy5oLmluCgoyMDA1LTA1LTA5IDE1OjEzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBGaXggYm9ndXMgcHJlcHJvY2Vzc29yIGlmCgoyMDA1LTA1LTA5IDA0OjU5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbGx1c3RyYXRlIGhhbmRsaW5nIG9mIGNhY2hlZCB0YWJsZXMgdXNpbmcgdGhlIHRhYmxlX2RhdGEgaGVscGVyLgogICAoQWN0aXZhdGUgdXNpbmcgIm1pYjJjIC1TY2FjaGU9dHJ1ZSAuLi4iKQoKMjAwNS0wNS0wOSAwNDo1OCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMudGFibGVfZGF0YS5jb25mOgoKICAgRXh0cmFjdCByZXF1aXJlZCB0YWJsZSBzdHJ1Y3R1cmVzIHdoZW4gcHJvY2Vzc2luZyBSb3dTdGF0dXMgYXNzaWdubWVudHMuCgoyMDA1LTA1LTA5IDA0OjEzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBGaXggdGFibGUgbWF4L21pbiBjb2x1bW4gcmVnaXN0cmF0aW9uLgoKMjAwNS0wNS0wNiAxNToxNCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlOgoKICAgQXV0b3VwZGF0ZQoKMjAwNS0wNS0wNiAxNToxMSAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgUGxhY2F0ZSBhdXRvY29uZjI1OSBieSB0ZXN0aW5nIGFuZCBpbmNsdWRpbmcgPHZtL3ZtLmg+IGJlZm9yZSB0ZXN0aW5nCiAgIDx2bS9zd2FwX3BhZ2VyLmg+CgoyMDA1LTA1LTA1IDIwOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBBcHBsaWVkIHBhdGNoICMxMTA2NDQzIGZyb20gdG9sZ2EgY2V5bGFuIHRvIHVzZSBhIHByb3BlciByZXR1cm4gY29kZSBjaGVjayBmb3IgZ2V0S3N0YXRJbnQKCjIwMDUtMDUtMDUgMjA6MDQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEFwcGxpZWQgcGF0Y2ggIzExMDk3MTIgdG8gZml4IFZQQVRIIGZvciByYyBmaWxlcyBvbiBjeWd3aW4KCjIwMDUtMDUtMDUgMTk6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYzoKCiAgIFBhdGNoICMxMTEwNTcxIGZyb20gS2F0c3VoaXNhIEFCRSB0byBzZXQgaXB2NiB0Y3Agc29ja2V0cyB0byBpcHY2IG9ubHkgaWYgcG9zc2libGUKCjIwMDUtMDUtMDUgMTk6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIEFwcGxpZWQgcGFydCBvZiBwYXRjaCAjMTExMDYxMCBmcm9tIFBldGVyIEJyZWl0ZW5sb2huZXIgZm9yIGNvbXBpbGVyIHdhcm5pbmdzCgoyMDA1LTA1LTA1IDE5OjI5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgbWFuL3NubXB0cmFuc2xhdGUuMS5kZWYsCiAgICAgc25tcGxpYi9taWIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzExMjMyNDIgZnJvbSBNaWtlIE1jSGVucnkgdG8gYWRkIG1pYjJzY2hlbWEgY29tcGxpYW50IG91dHB1dCB0byBzbm1wdHJhbnNsYXRlCgoyMDA1LTA1LTA1IDE5OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzExMjQ1NjkgZnJvbSBNYXJjdXMgTWVpc3NuZXIgdG8gZHluYW1pY2FsbHkgZGVjaWRlIGhvdwogICBtYW55IGNwdXMgdGhlcmUgb24gbGludXggYW5kIHRvIGJldHRlciBwYXJzZSBpbmZvcm1hdGlvbiBhYm91dCB0aGVtLgogICAgIC0gbW9kaWZpZWQgdG8gYmUgY29tcGxpYW50IHdpdGggQU5TSSBhbmQgdGhlIGNvZGluZyBzdHlsZS4KCjIwMDUtMDUtMDUgMTk6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBQYXRjaCAjMTA2MjExNCBieSAic25tcHBvcnRhbCIgdG8gY2xlYW4gdXAgYSBmZXcgbWVtb3J5IGxlYWtzLgoKMjAwNS0wNS0wNSAwNzoxOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgc25tcGxpYi9taWIuYzoKCiAgIFBhdGNoICMxMTE3MjcxICh2YXJpYW50KSAtIGNoZWNrIHRoZSBidWZmZXIgbGVuZ3RoIHdoZW4gZm9ybWF0dGluZwogICBhbiB1cHRpbWUgc3RyaW5nICh0aG91Z2ggd2l0aG91dCBjaGFuZ2luZyB0aGUgZXhpc3RpbmcgQVBJIGNhbGwpLgoKMjAwNS0wNS0wNSAwNTowNyAgZHRzMTIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgYWRkaXRpb25hbCBnZW5lcmF0ZWQgY2xpZW50IG1hbiBwYWdlcwoKMjAwNS0wNS0wNCAyMDo1OCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlOgoKICAgQXV0b3VwZGF0ZQoKMjAwNS0wNS0wNCAyMDo1NiAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgVXNlIHRoZSBhY2N1bXVsYXRlZCB3aXNkb20gb2YgdGhlIHByZXZpb3VzIEFDX0hFQURFUkNIRUNLUyBmb3IKICAgSEFWRV9ORVRJTkVUX0lQX0gsIEhBVkVfTkVUSU5FVF9JRl9ILCBIQVZFX05FVElORVRfSVBfSUNNUF9IIGFuZAogICBIQVZFX05FVElORVRfVURQX0ggKGluIGFkZGl0aW9uIHRvIHRoZSBvbmVzIGFscmVhZHkgcHJlc2VudCkuCiAgIFRoaXMgdW5icmVha3MgdGhlIGJ1aWxkIG9uIEZyZWVCU0QgNS4zIGFuZCA0LjEwIChidXQgdGhlIGxhdHRlcgogICBzdGlsbCBpc24ndCBwbGF5aW5nIHdpdGggdGhlIGZ1bGwgdm1fc3dhcCBkZWNrKS4KCjIwMDUtMDUtMDQgMjA6NDggIGRyaWVodWlzCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q1Lmg6CgogICBGcmVlQlNEIDUuMyBpcyByZWFsbHkgdW5oYXBweSBhYm91dCBnZXR0aW5nIF9LRVJORUwgZGVmaW5lZC4gQnkgZm9yY2luZwogICBJRk5FVF9ORUVEU19LRVJORUwgb2ZmIHdlIGZpeCB0aGF0IChhZnRlciBhbGwsIGRlZmluaW5nIF9LRVJORUwgcmVhbGx5CiAgIGlzIGEgZ3Jvc3MgaGFjayBmb3IgcGxhdGZvcm1zIHRoYXQgZG9uJ3QgcHJvcGVybHkgZXhwb3J0IHN5c3RlbQogICBpbnRlcm5hbHMgLS0gZmFtb3VzIGxhc3Qgd29yZHM6LSkKCjIwMDUtMDUtMDQgMTE6NDggIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgUGF0Y2ggIzExMjQ2NTI6IG9wdGlvbnMgdG8gZXhwbGljaXRseSBpbmNsdWRlL2V4Y2x1ZGUgZWxmIGFuZCBiemlwIGxpYnJhcmllcwoKMjAwNS0wNS0wNCAxMToxMiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUGF0Y2ggIzEwNDI0NDcgLSBjbG9uZSB6ZXJvLWxlbmd0aCwgbm9uLU5VTEwtcG9pbnRlciBzdHJpbmdzLgoKMjAwNS0wNS0wNCAwODo1NyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgUGF0Y2ggIzEwNTEwMDEgLSBza2lwIHVubmVjZXNzYXJ5IGNhbGwgdG8gJ2F1dG9fbmxpc3QnIHVuZGVyIE5ldEJTRAoKMjAwNS0wNS0wNCAwODo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5oOgoKICAgUGF0Y2ggIzEwOTY0NzkgLSBmaXggZGVjbGFyYXRpb24gb2YgaW5pdGlhbGlzYXRpb24gcm91dGluZS4KCjIwMDUtMDUtMDQgMDg6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgUGF0Y2ggIzEwOTY0ODMgLSBmaXggYSBtaW5vciBpbmNvbnN0aXN0ZW5jeQoKMjAwNS0wNS0wNCAwODoyMiAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgUGF0Y2ggIzExMDM3NTEgLSBza2lwIGVkaXRvciBiYWNrdXBzIHdoZW4gbG9hZGluZyBNSUIgZmlsZXMuCgoyMDA1LTA1LTA0IDA4OjA3ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFBhdGNoICMxMTA5NzE5OiBSZW1vdmUgKGFwcGFyZW50bHkpIHJlZHVuZGFudCBxdW90aW5nIG9mIGNvbmZpZ3VyZSBvcHRpb25zLgogICBUaGlzIHF1b3Rpbmcgd2FzIGludHJvZHVjZWQgZWFybHkgaW4gdGhlIHY1IGxpZmV0aW1lIHRvIHN1cHBvcnQgIm9wdGlvbnMKICAgY29udGFpbmluZyBzcGFjZXMiIChzZWUgcmV2aXNpb24gNS4yNikuICBTaW1wbGUgdGVzdGluZyBzZWVtcyB0byBpbmRpY2F0ZQogICB0aGF0IGl0J3Mgbm8gbG9uZ2VyIG5lZWRlZCwgYW5kIGl0IGJyZWFrcyBBSVggKHBvc3NpYmx5IGFtb25nIG90aGVycyksIHNvCiAgIGxldCdzIHRyeSB3aXRob3V0IGl0LgogICAgIElmIG5vLW9uZSBjb21wbGFpbnMsIHRoaXMgcGF0Y2ggbWF5IG5lZWQgdG8gYmUgYXBwbGllZCB0byB0aGUgb3RoZXIgYnJhbmNoZXMKICAgYXMgd2VsbC4KCjIwMDUtMDUtMDQgMDc6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIFBhdGNoICMxMTE4MTMyIC0gaGFuZGxlIGRpc2FwcGVhcmluZyBMaW51eCBwcm9jZXNzZXMuCgoyMDA1LTA1LTA0IDA2OjQyICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4ZWQgI2lmZGVmIHR5cG8KCjIwMDUtMDUtMDQgMDY6MTMgIGR0czEyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIFBhdGNoICMxMTE3Mjc2IC0gdHdlYWsgRVZQX0RpZ2VzdEZpbmFsIHBhcmFtZXRlcnMgdG8gbWF0Y2ggZXhwZWN0ZWQgdHlwZXMuCgoyMDA1LTA1LTA0IDA2OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jOgoKICAgUGF0Y2ggIzExMTcyNjUgLSBvcGVuIGRldmljZXMgd2l0aCBOREVMQVkgd2hlbiBwb3NzaWJsZS4KICAgQXZvaWRzIGFnZW50IGhhbmdpbmcgb24gbWlzc2luZyByZW1vdmFibGUgZGV2aWNlcy4KCjIwMDUtMDUtMDMgMTg6MjYgIGFsZXhfYgoKICAgKiBORVdTLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIFdpbjMyOiBBcHBseSBwYXRjaCAxMTUzMjcxIGJ5IEVra2VoYXJkIERvbW5pbmcgZm9yIHNubXBkIHBhc3NfcGVyc2lzdCBzdXBwb3J0CiAgIGZvciBNU1ZDLiAgQXBwbHkgcGF0Y2ggYmFzZWQgb24gMTE1MzI3MSBmb3IgcGFzcyBzdXBwb3J0IGZvciBNU1ZDIGFuZCBNaW5HVy4KCjIwMDUtMDUtMDMgMTA6MzggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmludF93YXRjaC5jb25mOgoKICAgVXNlIHRoZSB3YXRjaGVkIHNjYWxhciBoZWxwZXIgKHJhdGhlciB0aGFuIHNwZWNpYWxpc2VkIGluc3RhbmNlIGhlbHBlcnMpCiAgIGZvciBpbXBsZW1lbnRpbmcgaW50ZWdlci1iYXNlZCBzY2FsYXIgb2JqZWN0cy4gIFBpY2tzIHVwIG9uIHVuc2lnbmVkCiAgIGludGVnZXIgb2JqZWN0cywgYXMgd2VsbCBhcyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIHJlYWQtb25seS9yZWFkLXdyaXRlCiAgIE1JQiBkZWZpbml0aW9ucy4KCjIwMDUtMDUtMDMgMTA6MjggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIElsbHVzdHJhdGUgaGFuZGxpbmcgb2YgY2FjaGVkIHRhYmxlcyB1c2luZyB0aGUgaXRlcmF0b3IgaGVscGVyLgogICAoQWN0aXZhdGUgdXNpbmcgIm1pYjJjIC1TY2FjaGU9dHJ1ZSAuLi4iKQoKMjAwNS0wNS0wMyAxMDoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIFN0YXNoIGxvb2t1cCBkZWJ1Z2dpbmcgY29kZS4KCjIwMDUtMDUtMDMgMTA6MTkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBDb252ZW5pZW5jZSBzaW5nbGUtY2FsbCBBUElzIGZvciBpbnRlZ2VyLWJhc2VkIHdhdGNoZWQgc2NhbGFycy4KICAgKE1vZGVsbGVkIG9uIHRoZSBleGlzdGluZyBpbnN0YW5jZS1iYXNlZCBjYWxscykuCgoyMDA1LTA1LTAzIDA5OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIFByb3ZpZGUgYSAodHJpdmlhbCkgZ2V0X3tmaXJzdCxuZXh0fSBBUEkuCiAgIE5vdCBzdHJpY3RseSBuZWNlc3NhcnkgaW4gaXRzZWxmLCBidXQgc2hvdWxkIGFpZCB0aGUKICAgdHJhbnNpdGlvbiB0byBhIGNvbnRhaW5lci1iYXNlZCB0YWJsZV9kYXRhIHN0eWxlLgoKMjAwNS0wNS0wMiAyMDo0MiAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEFkZCBsaW1pdHMuaCBoZWFkZXIgZmlsZQoKMjAwNS0wNS0wMiAxODo0NiAgYWxleF9iCgogICAqIHdpbjMyLzogbGlic25tcC9NYWtlZmlsZS5pbiwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgICBsaWJzbm1wX2RsbC9NYWtlZmlsZS5pbiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIFdpbjMyIE1TVkMgc3VwcG9ydCBmb3IgZmRfZXZlbnRfbWFuYWdlci5bY2hdCgoyMDA1LTA1LTAxIDEzOjQ3ICBhbGV4X2IKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgRml4IHN5c0Rlc2NyIHN1cHBvcnQgZm9yIE1pbkdXCgoyMDA1LTA1LTAxIDA5OjIwICBhbGV4X2IKCiAgICogbG9jYWwvcGFzc3Rlc3QucGw6CgogICBBZGRlZCBQZXJsIHZlcnNpb24gb2YgL2xvY2FsL3Bhc3N0ZXN0IHNoZWxsIHNjcmlwdAoKMjAwNS0wNC0zMCAyMDozOCAgYWxleF9iCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIEN5Z3dpbjogQWRkIG1pc3NpbmcgcmVnaXN0cnkgc3VwcG9ydCBmb3IgU05NUENPTkZQQVRIIGV0Yy4KCjIwMDUtMDQtMzAgMjA6MzYgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYwosIGFnZW50L21pYmdyb3VwL21pYklJL21pYklJX2NvbW1vbi5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX2hlYWRlcnMuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgcGVybC9TTk1QL1JFQURNRToKCiAgIC1SZW1vdmUgJ2RlZmluZSBXSU4zMicgZm9yIEN5Z3dpbiBhbmQgY2hhbmdlIGlmZGVmcyB0byBjaGVjayBmb3IgZWl0aGVyCiAgIFdJTjMyIG9yIGN5Z3dpbi4KICAgLUFkZCBzZWN0aW9uIHRvIFJFQURNRS53aW4zMiBkZXNjcmliaW5nIHRoZSB2YXJpb3VzIFdpbmRvd3MgZGVmaW5lcy4KICAgLUFkZCBub3RlIHRvIFJFQURNRSBmaWxlcyBhYm91dCBzcGFjZXMgaW4gZm9sZGVyIG5hbWVzIHdoZW4gY29tcGlsaW5nLgoKMjAwNS0wNC0zMCAxODozNiAgYWxleF9iCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvOiBNYWtlZmlsZS5pbiwgbGliaGVscGVycy5kc3A6CgogICBXaW4zMiBNU1ZDIGJ1aWxkIGZpeGVzCgoyMDA1LTA0LTI5IDEyOjE0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGF0Y2ggIzExNDk0MjAgLSB1c2UgbmV3IGV4dGVybmFsIGZkIGhhbmRsZXIgcm91dGluZXMsCiAgIHRvIHBhdmUgdGhlIHdheSBmb3IgbW9yZSBpbnRlZ3JhdGVkIHRyYXAgaGFuZGxlcnMuCgoyMDA1LTA0LTI5IDEyOjEyICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2ZkX2V2ZW50X21hbmFnZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmRfZXZlbnRfbWFuYWdlci5oOgoKICAgUGF0Y2ggIzExNDk0MjAgLSBzZXBhcmF0ZSBleHRlcm5hbCBmZCBoYW5kbGluZyBvZmYgaW50bwogICBhIGRpc3RpbmN0IGxpYnJhcnkgbW9kdWxlLiAgU3VibWl0dGVkIGJ5IFN0ZW4gSi4gT2xzc29uCgoyMDA1LTA0LTI5IDExOjU2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBQYXRjaCAjMTE1NDQ4OCAtIG9wdGlvbiB0byBzcGVjaWZ5IHByaW9yaXR5IG9mICJwYXNzIiBwcm9jZXNzaW5nCgoyMDA1LTA0LTI5IDExOjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIEFwcGx5IHBhdGNoICMxMTU1MzM3IC0gZml4IGRpc2tJTyBhdmVyYWdlIHN1cHBvcnQgZm9yIEZyZWVCU0Q1CgoyMDA1LTA0LTI3IDIwOjIyICBhbGV4X2IKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIFdpbjMyIE1TVkM6IEFib3J0IGNvbXBpbGUgaWYgYSBzcGFjZSBpcyBkZXRlY3RlZCBpbiB0aGUgYmFzZSBmb2xkZXIKICAgd2hlbiBjb21waWxpbmcuCgoyMDA1LTA0LTI3IDIwOjEwICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHM6CgogICBNYXNzaXZlIGRlYnVnZ2luZyBvZiBtZW1vcnkgbGVha3MuICBJdCBpcyBub3cgbWVtb3J5LWxlYWsgZnJlZSEKCjIwMDUtMDQtMjcgMjA6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIGZyZWUgdGhlIHN1Yi1uYW1lIGlmIG5vdCBhdHRhY2hlZCB0byB0aGUgcGFyZW50IHN0cnVjdHVyZS4KCjIwMDUtMDQtMjcgMTg6NTUgIGFsZXhfYgoKICAgKiBORVdTLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIEN5Z3dpbjogUmVwbGFjZSBQSURfWk9NQklFIHJlZmVyZW5jZXMgYXMgdGhlIGZsYWcgd2FzIHJlbW92ZWQgZnJvbQogICBDeWd3aW4gaW4gbWlkIEphbiAyMDA1LgoKMjAwNS0wNC0yNiAxODoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIC0gc3luYyBzb21lIGNvbW1lbnRzCiAgIC0gZml4IGhhbmRsaW5nIG9mIE9JRHMgaW4gcm93X2NvcHkgY29kZSwgbm90ZWQgb24gSVJDIGJ5IGRhdmVqXwoKMjAwNS0wNC0yNSAxMjozMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHVwZGF0ZSB0YWJsZV9pdGVyYXRvciB0byB1c2UgdmFsaWRfY29sdW1uIGluZm8KCjIwMDUtMDQtMjIgMTE6MTggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIEltcHJvdmUgaGFuZGxpbmcgb2Ygbm9uLWludGVnZXItYmFzZWQgb2JqZWN0cyBpbiB0YWJsZV9kYXRhIHRlbXBsYXRlIGNvZGUuCgoyMDA1LTA0LTIyIDExOjExICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBJZiBhbiBpbnN0YW5jZS1iYXNlZCBoYW5kbGVyIHJldHVybnMgYW4gZXJyb3IgZm9yIGEgR2V0TmV4dCByZXF1ZXN0LAogICB3ZSBuZWVkIHRvIHNraXAgb24gdG8gdGhlIG5leHQgdmFsaWQgaW5zdGFuY2UuCgoyMDA1LTA0LTIyIDEwOjU0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBmYWlsdXJlIHRvIGNyZWF0ZSBpbml0aWFsIHVzZXIuCgoyMDA1LTA0LTIxIDEyOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBkb24ndCB0cmFjayBkZWJ1ZyBzdGF0cyBieSBkZWZhdWx0OyBhZGQgc3RhdHMgcHJvdG90eXBlcwoKMjAwNS0wNC0yMSAxMDo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLCBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dAosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgYXBwbHkgcGF0Y2ggMTA4NTI0MzogQWRkIDY0LWJpdCBjb3VudGVycyB0byBkaXNrSU9UYWJsZQoKMjAwNS0wNC0yMSAxMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgaW5pdCBzdGF0IHB0ciB0byBudWxsCgoyMDA1LTA0LTIxIDEwOjI2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYwo6CgogICAtIHN0YXRpYyBkZWxldGVfZHVwbGljYXRlcyAtPiBwdWJsaWMgbmV0c25tcF9jYWxsYmFja19jbGVhcl9jbGllbnRfYXJnCiAgIC0gdGFicyB0byBzcGFjZXMKCjIwMDUtMDQtMjEgMTA6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwgc25tcGxpYi9jYWxsYmFjay5jCjoKCiAgIGFkZC91c2UgY2FsbGJhY2sgcHJpb3JpdHkgbWFjcm9zCgoyMDA1LTA0LTIxIDEwOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBhZGQgZGVidWcgdG9rZW4gZXhjbHVzaW9uCgoyMDA1LTA0LTIxIDA5OjMyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jOgoKICAgc2tpcCBleGNsdWRlZCB0b2tlbnMgKHRpbCBtaWIgaXMgdXBkYXRlZCkKCjIwMDUtMDQtMjAgMjM6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIHVwZGF0ZSBmb3IgY2hhbmdlIHRvIGN0eCBpbml0IGRlZmF1bHQKCjIwMDUtMDQtMjAgMjM6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBhZGQgY29kZSBmb3IgREVGVkFMcyBpbiBjdHggaW5pdAoKMjAwNS0wNC0yMCAyMzowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgZGVmYXVsdCB0byBnZW5lcmF0ZSBjdHggaW5pdAoKMjAwNS0wNC0yMCAxOToyMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgYWRkIG5vdGUgb24gaW5kZXggYXR0cmlidXRlcyBhbHJlYWR5IHRlc3RlZAoKMjAwNS0wNC0yMCAxODo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gZml4IGNvbW1lbnRzCiAgIC0gcmV2YW1wIGNoZWNrX2luZGV4ZXMgdG8gZG8gYmFzaWMgdmFsaWRhdGlvbiBiZWZvcmUgY2FsbGluZyB1c2VyIGZ1bmMKICAgLSBleHBsaWNpdCBub3Qgd3JpdGFibGUgY2FzZSBmb3IgaW5kZXgvcmVhZC1vbmx5IHZhcnMgaW4gc2V0IGNvbHMKCjIwMDUtMDQtMjAgMTg6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtYWNjZXNzLm0yYzoKCiAgIGFkZCBjb21tZW50cyBpbiBpbmRleCBoYW5kbGluZyBmdW5jdGlvbiBoZWFkZXJzCgoyMDA1LTA0LTIwIDE4OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICAtIHJlbW92ZSBoYXJkY29kZWQgdGFibGUgbmFtZQogICAtIHJlbW92ZSByZWR1bmRhbnQgcHJvdG90eXBlCiAgIC0gYWRkIHNvbWUgY29tbWVudHMKICAgLSBkZWZpbmUgcHJvdG90eXBlIGJlZm9yZSB1c2UKICAgLSBmaXggYmFjayBmdW5jdGlvbiBuYW1lCiAgIC0gZml4IHRvbyBtYW55IHBhcmFtcyBmb3IgZnVuY3Rpb24KCjIwMDUtMDQtMjAgMTg6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBub2RlLXZhbGlkYXRlLm0yaSwKICAgICBub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgLSBicmVhayB2YWx1ZSB2YWxpZGF0aW9uIG91dCBvZiB2YXJiaW5kLXZhbGlkYXRlCiAgIC0gY29tcGFyZSB2YWx1ZXMvbGVuZ3RocyBkaXJlY3RseSwgaW5zdGVhZCBvZiBjYWxsaW5nIGZ1bmN0aW9uCiAgIC0gZGV0ZWN0L2hhbmRsZSByYW5nZXMgdGhhdCBhcmUgcmVhbGx5IHNpbmdsZSB2YWx1ZXMKCjIwMDUtMDQtMjAgMTg6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBmaXggZGlyZWN0b3J5IGNvcHkKCjIwMDUtMDQtMjAgMTU6MDggIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIGZyZWUgc3RyaW5nIHBhc3NlZCB0byBwZXJsIGFmdGVyIGl0J3MgcGFzc2VkCgoyMDA1LTA0LTIwIDE0OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMuaDoKCiAgIGFkZCB3YXRjaGVkIGV4YW1wbGUKCjIwMDUtMDQtMjAgMTQ6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy93YXRjaGVkLmMsCiAgICAgbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgLSBhZGQgZXhhbXBsZSBzdHJpbmcgdG8gbWliCiAgIC0gYWRkIGV4YW1wbGUgb2YgYSB3YXRjaGVkIHN0cmluZwoKMjAwNS0wNC0xOSAxNjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaToKCiAgIHF1aWV0IGNvbXBpbGVyICglZCAtPiAlbGQpCgoyMDA1LTA0LTE4IDE4OjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgcXVpZXQgY29tcGlsZXIgKCVkIC0+ICVsZCkKCjIwMDUtMDQtMTggMTg6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIC0gZml4ZXMgZm9yIGNyZWF0ZV9mZXdlcl9maWxlcyBzZXR0aW5nCiAgIC0gZGVmaW5lIHRhYmxlIG5hbWUgb25jZSwgYXQgdG9wLCBmb3IgcXVpY2tlciB1cGRhdGluZwoKMjAwNS0wNC0xOCAxODoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gcmV2YW1wIGRlZmF1bHRzIGhhbmRsaW5nCiAgICAgLSBnZW5lcmF0ZSBkZWZhdWx0cyBpbiB0b3AsIGluc3RlYWQgb2Ygc2V0dXBfdGFibGUKICAgLSBhZGQgdG9wL3RhYmxlIGxldmVsIHNodXRkb3duIGZ1bmN0aW9ucwogICAtIGRlZmluZSB1c2VyIGNvbnRleHQKCjIwMDUtMDQtMTggMTg6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywKICAgICBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICAtIHVzZSBuZXcgbTJjX2RhdGFfY2FjaGUgdG8gZGV0ZXJtaW5lIGlmIHdlIHNob3VsZCBnZW5lcmF0ZSBjYWNoZSBjb2RlCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIGdldCB0YWJsZSBjb250YWluZXIKICAgLSBtb3N0IGNhY2hlXyogZnVuY3Rpb25zIHJlbmFtZWQgdG8gY29udGFpbmVyXyo7IHJlbWFpbmluZyBjYWNoZSB2ZXJzaW9ucwogICAgIGNhbGwgY29udGFpbmVyIHZlcnNpb25zCiAgIC0gYWRkIHRhYmxlL2NvbnRhaW5lciBzaHV0ZG93biBmdW5jdGlvbnMKCjIwMDUtMDQtMTggMTg6MDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBtb3ZlIGluZGV4ZXNfc2V0IHJlYWRtZSBoZXJlIChmcm9tIGNvbnRhaW5lci1jYWNoZWQpCgoyMDA1LTA0LTE4IDE4OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZ2V0Lm0yaToKCiAgIC0gcXVpZXQgY29tcGlsZXIgKCVkIC0+ICVsZCkKICAgLSByZW1vdmUgaGFyZGNvZGVkIG5vZGUgbmFtZQoKMjAwNS0wNC0xOCAxODowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgLSByZXZhbXAgZGVmYXVsdHMgaGFuZGxpbmcKICAgICAtIGdlbmVyYXRlIGRlZmF1bHRzIGluIHRvcCwgaW5zdGVhZCBvZiBzZXR1cF90YWJsZQogICAgIC0gYWx3YXlzIHdyaXRlIGRlZmF1bHRzLCBzbyBuZXcgb3B0aW9ucyBhcHBlYXIgZm9yIHVzZXIKICAgICAtIG5ldyBvcHRpb25zOiBkYXRhX2NhY2hlLCBkYXRhX3NwYXJzZQogICAgIC0gbW9yZSBpbnRlcmFjdGl2ZSBxdWVzdGlvbnM6CiAgICAgICBza2lwIG1hcHBpbmcsIHNwYXJzZSwgdW5jYWNoZWQgY29udGFpbmVyLCBnZW5lcmF0ZSBtYWtlZmlsZS9hZ2VudHgKCjIwMDUtMDQtMTggMTc6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIHR3ZWFrIGV4Y2x1c2lvbiBvZiBtYXBwaW5nIGZ1bmN0aW9ucwoKMjAwNS0wNC0xOCAxNzo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfdGFibGVfc2F2ZV9kZWZhdWx0cy5tMmk6CgogICBuZXcgbTJpIHRvIHNhdmUgYWxsIHRhYmxlIGRlZmF1bHRzCgoyMDA1LTA0LTE4IDE3OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywKICAgICBtMmNfc2V0dXBfdGFibGUubTJpOgoKICAgLSByZXZhbXAgZGVmYXVsdHMgaGFuZGxpbmcKICAgICAtIGdlbmVyYXRlIGRlZmF1bHRzIGluIHRvcCwgaW5zdGVhZCBvZiBzZXR1cF90YWJsZQogICAgIC0gYWx3YXlzIHdyaXRlIGRlZmF1bHRzLCBzbyBuZXcgb3B0aW9ucyBhcHBlYXIgZm9yIHVzZXIKCjIwMDUtMDQtMTggMTc6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICAtIGNoZWNrIGZvciBiYWQgaGRyIGxlbgogICAtIGRvbid0IGZyZWUgTlVMTCBwdHIKCjIwMDUtMDQtMTggMTc6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIHVzZSBuYW1lZCB2YXJzIGluc3RlYWQgb2YgcG9zaXRpb25hbCwgZm9yIGNsYXJpdHkKICAgLSB0d2Vha3MgdG8gY29weSB1cGRhdGVkIGRlZmF1bHRzIGZpbGVzCgoyMDA1LTA0LTE1IDE3OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdGNwLW1pYi5oOgoKICAgYWRkIGNvbmZpZ19hZGRfbWliCgoyMDA1LTA0LTE0IDE4OjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA1LTA0LTE0IDE3OjE0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbW92ZSBnZW5lcmF0aW9uIG9mIGVtcHR5IGluY2x1ZGVzIG91dHNpZGUgb2YgYWdlbnQgZW5hYmxlZCBjb25kaXRpb25hbAoKMjAwNS0wNC0xMyAyMjo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaToKCiAgIHVwZGF0ZSBwYXJhbWV0ZXIgbmFtZXMgdG8gYmUgaW5saW5lIHcvZXZlcnlvbmUgZWxzZQoKMjAwNS0wNC0xMyAyMjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gZ2VuZXJhdGUgaW5kZXggY2hlY2sgcm91dGluZXMgaWYgdGFibGUgcGVyc2lzdGVudCBpcyBzZXQKICAgLSBkb24ndCByZWZlcm5jZSBzZXRfY29sdW1ucyB1bmxlc3MgdGFibGUgc2V0dGFibGUKICAgLSBkb24ndCBjaGVjay9pbnNlcnQgbmV3IHJvd3MgdW5ubGVzcyByb3cgY3JlYXRpb24gaXMgc2V0CgoyMDA1LTA0LTEzIDIyOjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWRhdGEtc2V0Lm0yYwosIHBhcmVudC1zZXQubTJpOgoKICAgLSBnZW5lcmF0ZSBpbmRleCBjaGVjayByb3V0aW5lcyBpZiB0YWJsZSBwZXJzaXN0ZW50IGlzIHNldAogICAtIG1vdmUgaW5kZXggY2hlY2sgZnVuY3Rpb25zIHRvIGRhdGEgYWNjZXNzIGZpbGUgc28gdGhleSBjYW4gYmUgdXNlZCBieQogICAgIHRoZSBwZXJzaXN0ZW5jZSByb3V0aW5lcwoKMjAwNS0wNC0xMyAwOTozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliLmgsIGlwLWZvcndhcmQtbWliLmgsIGlwLW1pYi5oCjoKCiAgIGFkZCBhcHByb3ByaWF0ZSBtaWJzIHRvIGRlZmF1bHQgbG9hZCBsaXN0CgoyMDA1LTA0LTA4IDEwOjM4ICBhbGV4X2IKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENoYW5nZSBpbmRleCBhbmQgcmluZGV4IGRlZmluZXMgZm9yIE1pbkdXIHRvIGZpeCBjb21waWxlIHByb2JsZW0uCgoyMDA1LTA0LTA3IDE5OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCiwgc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgLSBhZGQgYXBpIGZvciByZWZlcmVuY2UgY291bnRpbmcKICAgLSBhZGQgYXBpIHRvIGZpbmQgcm93IGZyb20gdGFibGUgbWliIGluZGV4IHN0cnVjdAoKMjAwNS0wNC0wNyAxODoyMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHBhc3MgaW4gaGludCB0byBnZXRfZmlyc3QgaWYgc29ydGVkIChzdWdnZXN0ZWQgYnkgTWlrZSBUaGF0Y2hlciBvbiBjb2RlcnMpCgoyMDA1LTA0LTA3IDEzOjAyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gZG9uJ3QgZGlzYWJsZSBhbGwgZmlsZWxvZ3Mgd2hlbiBhIG5ldyBvbmUgaXMgZW5hYmxlZC4KICAgLSBhZ2FpbiB3aXRoIHRoZSBDKysgY29tbWVudHMsIHNvIHRoaXMgaXMgcmUtdGhvdWdodCBiZWZvcmUgNS4zCgoyMDA1LTA0LTA2IDEyOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgZXhjbHVkZSBjdnMgSWQgbGluZXMgZnJvbSBkaWZmCgoyMDA1LTA0LTA2IDExOjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgcmVtb3ZlIGV4dHJhbmVvdXMgOwoKMjAwNS0wNC0wNiAxMTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGFkZCBtaXNzaW5nIGNvbW1lbnQgY2xvc2UKCjIwMDUtMDQtMDYgMTE6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKLCBwYXJlbnQtc2V0Lm0yaToKCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIGdldCBjb250YWluZXIgc2l6ZQogICAtIHRyYWNrIHRhYmxlIGxldmVsIGRpcnR5IGZsYWcgZm9yIHNldHRhYmxlIHRhYmxlcwogICAtIGNoZWNrIGRpcnR5ICYgc3VjY2VzcyB0byBjYWxsIHNubXBfc3RvcmUgZm9yIHNldHRhYmxlIHBlcnNpc3RlbnQgdGFibGVzCgoyMDA1LTA0LTA1IDEyOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICAtIHVwZGF0ZSBpbnRlcmFjdGl2ZSBzZXR1cCB0byBwcm9tcHQgZm9yIHBlcnNpc3RlbnQgc3RvcmUKCjIwMDUtMDQtMDUgMTI6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYzoKCiAgIHJlbW92ZSBvbGQgY29kZSBub3QgdXNlZCBmb3IgdGhlIGNvbnRhaW5lciB2ZXJzaW9uCgoyMDA1LTA0LTA1IDEyOjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX3RhYmxlLm0yaSwKICAgICBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXBlcnNpc3RlbmNlLm0yaSwgbWZkLXRvcC5tMmMKOgoKICAgLSBtb3ZlIHBlcnNpc3RlbnQgc3RvcmUgY29kZSB0byBpdHMgb3duIGZpbGUKICAgLSB1cGRhdGUgaW50ZXJhY3RpdmUgc2V0dXAgdG8gcHJvbXB0IGZvciBwZXJzaXN0ZW50IHN0b3JlCiAgIC0gbW92ZSBzaG91bGRfc2F2ZSgpIG91dCBvZiBpbnRlcmZhY2UgY29kZSwgaW50byAqVGFibGUuYwogICAtIGxvZyBlcnJvciBpZiBubyBjb2x1bW5zIGZvdW5kIGR1cmluZyByZXN0b3JlCgoyMDA1LTA0LTA0IDE1OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQoKMjAwNS0wNC0wNCAxNDo0OSAgcnN0b3J5CgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGNsZWFyIGR1cGxpY2F0ZXMgc28gdGhleSBhcmVuJ3QgZG91YmxlLWZyZWVkCgoyMDA1LTA0LTAxIDEzOjU4ICByc3RvcnkKCiAgICogZGlzdC9zbm1wdHJhcGQtaW5pdC5kOgoKICAgbmV3IHN0YXJ0dXAgc2NyaXB0CgoyMDA1LTA0LTAxIDAzOjA2ICBuYmEKCiAgICogbWFuL21pYjJjLmNvbmYuNToKCiAgIFRoaXMgaXMgYSBnZW5lcmF0ZWQgZmlsZQoKMjAwNS0wMy0zMSAxOTowNiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIHllYXIgdXBkYXRlCgoyMDA1LTAzLTMxIDE4OjIyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIG1lbnRpb24gQUVTIHRvbwoKMjAwNS0wMy0zMSAxNzo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgY2FsbCBzbm1wX3NodXRkb3duCgoyMDA1LTAzLTMxIDE3OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgYWRkIHJlc3VsdCBjb2RlIHRvIHNubXBfbG9nIG1lc3NhZ2UKCjIwMDUtMDMtMzEgMTc6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YTIuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsCiAgICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YTIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQyLmg6CgogICBUaGUgbmV3IGRhdGEgYW5kIGRhdGFzZXQgaGVscGVyIGltcGxlbWVudGF0aW9ucyBicmVhayBvbGRlciBjb2RlIGFuZAogICB0aHVzIGJyZWFrIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgogICAgIC0gTWFyayB0aGUgb2xkIGRhdGEgYW5kIGRhdGFzZXQgaW1wbGVtZW50YXRpb25zIGFzIG9ic29sZXRlIGJ1dCByZXN0b3JlCiAgICAgICB0aGVtIGZyb20gcHJldmlvdXMgQ1ZTIHZlcnNpb25zLiAgUmVmZXJlbmNlIHRoZSBuZXcgb25lcyBpbiB0aGUgZG9jcwogICAgICAgZm9yIHRoZSBvbGQgb25lcy4KICAgICAtIENyZWF0ZSBuZXcgZGF0YTIgYW5kIGRhdGFzZXQyIHZlcnNpb25zIHdoaWNoIGFyZSB0aGUgbmV3IGNvbnRhaW5lcgogICAgICAgaW1wbGVtZW50YXRpb25zLgogICAgIC0gTWFrZSB0aGUgY3VycmVudCBkYXRhc2V0IGltcGxlbWVudGF0aW9ucyB1c2UgdGhlIG5ld2VyIHZlcnNpb24uCiAgICAgICAtIGV4Y2VwdCB0aGUgdGFibGUgYW5kIGFkZF9yb3cgaW1wbGVtZW50YXRpb25zIHdoaWNoIGJyb2tlCiAgICAgICAgIGVudGlyZWx5IHVuZGVyIHRoZSBuZXcgY29kZS4KCjIwMDUtMDMtMzAgMjM6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IHJvdyBjcmVhdGlvbiBmb3IgdmFjbSBmYW1pbHkgdHJlZSByb3dzIHRoYXQgYXJlIGJlbmVhdGggYSBwYXJlbnQgcm93LgoKMjAwNS0wMy0zMCAxODo0NSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICAtIGFkZCBkZWJ1ZwogICAtIGRvbid0IGFzc2VydCBvbiBjb25kaXRpb24gZm9yIG5leHQvYnVsawogICAgIC0gdGhlIHdob2xlIG1vZGUgY291bnRpbmcgaWRlYSBuZWVkcyByZS10aGlua2luZy4uCiAgIC0gdXNlIFNOTVBfRlJFRSBpbnN0ZWFkIG9mIGZyZWUsIG5vdyB0aGF0IG51bGwgcHRycyBhcmUgYSBwb3NzaWJpbGl0eQoKMjAwNS0wMy0zMCAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmMKOgoKICAgcnVuIGh0b25sIG9uIHRoZSBpbmRleCBhZGRycwoKMjAwNS0wMy0yOSAyMjozOCAgYWxleF9iCgogICAqIHdpbjMyL2xpYmhlbHBlcnMvOiBNYWtlZmlsZS5pbiwgbGliaGVscGVycy5kc3A6CgogICBBZGQgc3Rhc2hfdG9fbmV4dCB0byBXSU4zMiBNU1ZDIE1ha2VmaWxlIGFuZCB3b3Jrc3BhY2UuCgoyMDA1LTAzLTI5IDIwOjExICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gY29tbWVudCBvdXQgZGVmYXVsdCBkaXNhYmxlIG9mIHN0ZGVyciBsb2csIHNpbmNlIGl0IG1ha2VzIGl0IGltcG9zc2libGUKICAgICB0byB1c2Ugc3Rkb3V0L3N0ZGVyciBmb3IgbG9nZ2luZyAobm93IHRoYXQgbG9nLT5lbmFibGVkIGlzIGNoZWNrZWQpLiB1c2UKICAgICBDKysgY29tbWVudHMsIHNpbmNlIHRoZSB3aG9sZSBsb2cgc2V0dXAgbmVlZHMgcmUtdGhpbmtpbmcgYmVmb3JlIDUuMy4KCjIwMDUtMDMtMjkgMTY6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmM6CgogICBGaXggYmFkIGZvcm1hdCBwYXJhbWV0ZXJzIHRvIHNubXBfbG9nCgoyMDA1LTAzLTI5IDE1OjA1ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwgc25tcGxpYi9jbXVfY29tcGF0LmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIERldGVjdCBhbmQgcmVwb3J0IGludmFsaWQgUERVcyBzZW50IGFzIHJlc3BvbnNlCgoyMDA1LTAzLTI4IDE1OjI0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSB1c2UgbmV3IGNoZWNrX2FsbF9yZXF1ZXN0c19lcnJvciB0byBjaGVjayB0aGUgcmMgaW4gQUxMIHZhcmJpbmRzLCBub3QganVzdAogICAgIGN1cnJlbnQgcm93L2hhbmRsZXIgdmFyYmluZHMKCjIwMDUtMDMtMjggMTU6MTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgLSBmaXggYnVnIDExNzA2MDQgc25tcF9kaXNhYmxlX3N0ZGVycmxvZygpIGlzIGlnbm9yZWQKICAgLSBjaGVjIGZvciBudWxsIGJlZm9yZSBkZXJlZiAoZml4IHNubXB0cmFwZCBjcmFzaCBub3RlZCBvbiBpcmMpCgoyMDA1LTAzLTI4IDE0OjI5ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgZml4IGFkZHJlc3MgdHlwZSBpbiBpbmRleCBvaWQKCjIwMDUtMDMtMjggMTQ6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oCjoKCiAgIG5ldyBmdW5jdGlvbiB0byByZWFsbHkgcmVhbGx5IGNoZWNrIGVycm9yIHN0YXR1cyBvZiBhbGwgcmVxdWVzdHMKCjIwMDUtMDMtMjUgMjA6NTYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY2hlY2sgc2l6ZSBvZiBhcnJheSBpbiBnZXR0YWJsZSBiZWZvcmUgYXNzdW1pbmcgaXQgaGFzIHNvbWV0aGluZyBpbiBpdAoKMjAwNS0wMy0yNSAwOTo0OSAgYWxleF9iCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWY6CgogICBBZGQgaGV4T3V0cHV0TGVuZ3RoIHRvIG1hbiBwYWdlLgoKMjAwNS0wMy0yNCAyMjowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gcGFzcyBOVUxMIHRvIGNvbmZpZyBoYW5kbGVyIHJlZywgdG8gdXNlIGN1cnJlbnQgYXBwdHlwZQogICAtIGFkZCBzZXBhcmF0b3JzIGFuZCBoZWFkZXJzIHdoZW4gc2F2aW5nIHBlcnNpc3RlbnQgZGF0YQogICAtIHJlbW92ZSBleHRyYW5lb3VzIG5ld2xpbmUgaW4gcGVyc2lzdGVudCBkYXRhCgoyMDA1LTAzLTI0IDIyOjA2ICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgbmV3IGVudiB2YXI6IFNOTVBfUEVSU0lTVEVOVF9ESVIKCjIwMDUtMDMtMjQgMTY6NDggIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgZG9uJ3QgZGlzYWJsZSBjYWNoZSwganVzdCBmb3JjZSByZWxvYWQgZm9yIGV2ZXJ5IHJlcXVlc3QKCjIwMDUtMDMtMjMgMTk6NDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmk6CgogICBhZGQgbW9kdWxlIG5hbWUKCjIwMDUtMDMtMjMgMTk6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGZpeCB0eXBvCiAgIC0gdXBkYXRlIGNvbmZpZ19yZXF1aXJlKCkgcGF0aCB0byBzb21ldGhpbmcgYmV0dGVyIGZvciBjb25maWd1cmUKCjIwMDUtMDMtMjMgMTk6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIHJlbW92ZSAqIGZyb20gZGVmYXVsdCBjb250ZXh0IHJlZyB0eXBlICh0eXBlZGVmIGlzIGZvciBzdHJ1Y3QsIG5vdCBwdHIpCgoyMDA1LTAzLTIyIDE3OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIG1hdGNoIHVwIHRvZG8gd2l0aCBhY3R1YWwgZ2VuZXJhdGVkIGNvZGUKCjIwMDUtMDMtMjIgMTc6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmk6CgogICBhZGQgbWlzc2luZyBwYXJhbSB0byBzbm1wX2xvZwoKMjAwNS0wMy0xOCAxODowOSAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBtYWtlIHNpZ25hbCBjYWxscyBjb25kaXRpb25hbCBiYXNlZCBvbiBkZWZpbml0aW9uIG9mIHNpZ25hbCAobGlrZSBzbm1wZCkKCjIwMDUtMDMtMTggMTg6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC0gYWRkIGRlZmF1bHQgKDApIGZvciBzcGFyc2UgdGFibGVzCiAgIC0gb25seSBta2RpciBpZiBpdCBkb2Vzbid0IGFscmVhZHkgZXhpc3QKICAgLSBkb24ndCBpZ25vcmUgbWtkaXIgZXJyb3JzCgoyMDA1LTAzLTE4IDE4OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICBtb3ZlIHRlbXAgc3RvcmFnZSBmb3IgaW5kZXhlcyBvdXRzaWRlIG9mIGV4YW1wbGUgY29uZGl0aW9uYWwKCjIwMDUtMDMtMTggMTg6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIGZpeCBkZWZhdWx0IGZvciBkYXRhIHRyYW5zaWVudCAob2ZmIGJ5IDEpCgoyMDA1LTAzLTE4IDE4OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZG9uJ3QgZ2VuZXJhdGUgY29sdW1uX2V4aXN0c19mbGFncyBjb2RlIGlmIHNwYXJzZSB0YWJsZSBub3Qgc2V0CgoyMDA1LTAzLTE4IDE4OjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgZml4IGdlbmVyYXRlZCByb3dyZXFfY3R4X2luaXQgcHJvdG90eXBlCgoyMDA1LTAzLTE4IDE4OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy1lbnVtcy5tMmksCiAgICAgZ2VuZXJpYy1nZXQtY2hhci5tMmksIGdlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLCBzeW50YXgtUm93U3RhdHVzLWdldC5tMmkKOgoKICAgY2hhbmdlIElOVEVSTkFMXyogZW51bSBkZWZpbmVzIHRvIGluY2x1ZGUgY29udGV4dCAodGFibGUpIG5hbWUKCjIwMDUtMDMtMTggMTc6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBmaXggc29tZSB0eXBvcyBub3RlZCBvbiBtYWlsaW5nIGxpc3RzCgoyMDA1LTAzLTE4IDE3OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSBkZXRlY3QgZmlyc3QgcnVuIHNvIHdlIGtub3cgdG8gY29weSBnZW5lcmF0ZSBkZWZhdWx0cyB0byBjdXJyIGRpcgogICAtIGRpZmYgaW5kaXZpZHVhbCBmaWxlcyBpbnN0ZWFkIG9mIHJlY3Vyc2l2ZSBkaWZmIHcvZXhjbHVkZXMKICAgLSB1cGRhdGVzIGZvciBuZXcgZGVmYXVsdCBkaXJlY3Rvcnkgc3R5bGUgZGVmYXVsdHMKCjIwMDUtMDMtMTggMTc6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gYWRkIHRhYmxlIHRlc3QgZm9yIGxhc3RjaGFuZ2UgYW5kIHN0b3JhZ2V0eXBlIHRjCiAgIC0gdHdlYWsgZG9jIGNvbW1lbnRzCiAgIC0gZG9jdW1lbnQgaWZjb25mIGFuZCBuZXcgaWZkaXIKCjIwMDUtMDMtMTggMDU6MzEgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBUQ1AtTUlCLnR4dCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSBUQ1AtTUlCIHRvIFJGQyA0MDIyCgoyMDA1LTAzLTE4IDA1OjMwICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICBVcGRhdGVkIElBTkEtaWZUeXBlLU1JQgoKMjAwNS0wMy0xOCAwNToyNiAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBGaXggYSB3YXJuaW5nIGZyb20gQlNEIHN5c3RlbXMKCjIwMDUtMDMtMTggMDQ6NTIgIG5iYQoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIG1pYjJjLmNvbmYuNSBpcyBhIGdlbmVyYXRlZCBmaWxlCgoyMDA1LTAzLTE3IDA1OjMyICBuYmEKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvY29uc3QtYy5pbmM6CgogICBVcHMsIHVuaW50ZW5kZWQgcGF0Y2ggdW5kb25lCgoyMDA1LTAzLTE3IDA0OjMwICBuYmEKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBwZXJsL1RyYXBSZWNlaXZlci9jb25zdC1jLmluYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9zZWNtb2QuYzoKCiAgIEFkZCBmb3JtYXQgY2hlY2tpbmcgdG8gY2FsbHMgdG8gc25tcF9sb2csIGFuZCBmaXggdGhlIHVuY292ZXJlZCBlcnJvcnMKCjIwMDUtMDMtMTUgMDE6MTMgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgSW5jbHVkZSBzbXV4IGhlYWRlcnMgd2hlbiBuZWVkZWQKCjIwMDUtMDMtMTQgMTY6MTQgIG5iYQoKICAgKiBjb25maWd1cmU6CgogICBTeW5jIHRvIGNvbmZpZ3VyZS5pbgoKMjAwNS0wMy0xNCAxNTo1MyAgbmJhCgogICAqIG1pYnMvOiBJTkVULUFERFJFU1MtTUlCLnR4dCwgTWFrZWZpbGUubWliLCByZmNsaXN0CjoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IElORVQtQUREUkVTUy1NSUIKCjIwMDUtMDMtMTQgMTU6NDggIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggY29uZmlndXJlIGhlYWRlciBhbGVydHMgZm9yIFNvbGFyaXMgOCBhbmQgOSwgTmV0QlNEIDIgYW5kIEZyZWVCU0QgNQoKMjAwNS0wMy0wNCAxNToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgLSBkb24ndCBvdmVyd3JpdGUgZXhpc3RpbmcgbWFrZWZpbGUKICAgLSBpbmRlbnRpb24gY2hhbmdlcwogICAtIGV4cGxpY2l0IGNsb3NlIG9mIGZpbGUKCjIwMDUtMDMtMDQgMTU6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGFkZCBmdW5jdGlvbiB0byBnZXQvc2V0IHVzZXIgY29udGV4dAogICAtIHVzZSBuZXcgcm93X21lcmdlIGZpcnN0L2xhc3QgYXBpIHRvIG1ha2Ugc3VyZSBwcmUvcG9zdCBjYWxsZWQgMS9wZXIgaGFuZGxlcgogICAtIGFkZCByYyBwYXJhbSB0byBwb3N0X3JlcXVlc3QgKHl1bSwgbXkgb3duIHdvcmRzIHdlcmUgZGVsaWNpb3VzKQogICAtIHVzZSBhc3Agc3RhdHVzLCBub3Qgc3RhdHVzIG9mIGhhbmRsZXJzIHJlcXVlc3RzLCB3aGVuIGNoZWNraW5nIGZvcgogICAgIHN1Y2Nlc3NmdWwgcmVxdWVzdCBjb21wbGV0aW9uCiAgIC0gYWRkIHN1cHBvcnQgZm9yIHNraXBwaW5nIG5vbi1leGlzdGVudCByb3dzIGluIHNwYXJzZSB0YWJsZXMKICAgLSBhZGQgbW9yZSBpbmZvIHRvIHNvbWUgZGVidWcgbXNncwogICAtIHVzZSBTTk1QX05PU1VDSElOU1RBTkNFIGluc3RlYWQgb2YgQVNOX1BSSVZfUkVUUlkKICAgLSBhZGQgbW9yZSBkZWJ1Z3MgbXNncwogICAtIGRvbid0IGNsZWFyIHNldCBmbGFncyB0aWwgcG9zdCBjb21taXQKICAgLSByZW1vdmUgcmVkdW5kYW50IHZhcmJpbmQgbGVuZ3RoIGNoZWNrCiAgIC0gdXBkYXRlIGZvciBuZXcgY29sdW1uIGZsYWcgbmFtZXMKCjIwMDUtMDMtMDQgMTU6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC0gZml4IHRlc3QgZm9yIGRlZmF1bHRzIGluIG9sZCBsb2NhdGlvbgogICAtIGFkZCBvcHRpb24gdG8gcmUtcnVuIGludGVyYWN0aXZlIHNldHVwIGlmIGV4aXN0aW4gZGVmYXVsdHMKCjIwMDUtMDMtMDQgMTU6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICAtIGFkZCBzdXBwb3J0IGZvciBza2lwcGluZyBub24tZXhpc3RlbnQgcm93cyBpbiBzcGFyc2UgdGFibGVzCiAgIC0gYWRkIHJjIHBhcmFtIHRvIHBvc3RfcmVxdWVzdCAoeXVtLCBteSBvd24gd29yZHMgd2VyZSBkZWxpY2lvdXMpCiAgIC0gY2hlY2sgbmV3IHZhcnMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRvIGdlbmVyYXRlIHN1cHBvcnQgZmlsZXMKICAgICAoZG94eWdlbiwgbWFrZWZpbGUsIHN1YmFnZW50KQoKMjAwNS0wMy0wNCAxNToxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICAtIGFkZCBjb21tZW50cyBvbiBub2RlIGxlbmd0aHMKICAgLSB1cGRhdGUgZm9yIGNoYW5nZXMgaW4gdmFsdWUgbWFwIHJldmVyc2UKCjIwMDUtMDMtMDQgMTU6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaToKCiAgIC0gdXBkYXRlIEJJVFMgZmllbGRzIHRvIHVzZSBkZWZpbmUgSU5URVJOQUxfKl9GTEFHIGRlZmluZXMsIGluc3RlYWQgb2YgSVNfU0VUXyoKICAgLSBhZGQgb2J2aW91cyBub3RlIG9uIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gQyBiaXQgb3JkZXIgYW5kIFNOTVAgYml0IG9yZGVyCiAgIC0gYWRkIEJJVFMgbWFwcGluZyB0byByZXZlcnNlIHZhbHVlIG1hcAoKMjAwNS0wMy0wNCAxNTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtb2lkcy5tMmMsCiAgICAgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksIHBhcmVudC1zZXQubTJpLAogICAgIHN5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGNoYW5nZSBjb2x1bW4gZmxhZyBuYW1lcyB0byByZWR1Y2UgY29uZnVzaW9uIHdpdGggb3RoZXIgZGVmaW5lZCBuYW1lcwoKMjAwNS0wMy0wNCAxNDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjOgoKICAgYWRkIG5ldyBtMmNfdGFibGVfc3BhcnNlIHRvIGRlZmF1bHRzCgoyMDA1LTAzLTA0IDE0OjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9lbnVtLm0yaToKCiAgIHVzZSBuZXcgdmFyIGZvciBlbnVtIHN1ZmZpeAoKMjAwNS0wMy0wNCAxNDo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBuZXcgdmFyIGZvciBlbnVtIHN1ZmZpeCwgc2V0IHRvIF9mbGFnIGZvciBiaXRzIG9iamVjdHMKCjIwMDUtMDMtMDQgMTM6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICAtIG1vdmUgSU5URVJOQUxfKiBlbnVtIG1hY3JvcyBpbnNpZGUgaWZkZWZzIGZvciBUQwogICAtIGdlbmVyYXRlIElOVEVSTkFMXyogZW51bXMgZmxhZ3MgZm9yIEJJVFMKCjIwMDUtMDMtMDMgMTk6NDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIHVwZGF0ZSBjb21tZW50cwoKMjAwNS0wMy0wMyAxOToxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgZml4IG5ldHNubXBfY2hlY2tfdmJfcmFuZ2UgKGNoZWNrIHZhbHVlcywgbm90IHNpemVzKQoKMjAwNS0wMy0wMyAxOToxMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yb3dfbWVyZ2UuaDoKCiAgIC0ga2VlcCBzYXZlZCBzdGF0dXMgZGF0YSBiZXR3ZWVuIG1vZGUgY2FsbHMgKGluIHJlcWluZm8pLCBzbyB3ZSBjYW4uLgogICAtIGJ1aWxkIGFsbCB0ZW1wb3JhcnkgcmVxdWVzdCBsaXN0cyBiZWZvcmUgY2FsbGluZyBuZXh0IGhhbmRsZXIsIHNvIHdlIGNhbi4uCiAgIC0gdHJhY2sgbnVtYmVyIG9mIHJlcXVlc3RzIGFuZCBudW1iZXIgb2Ygcm93cywgc28gd2UgY2FuLi4KICAgLSBwcm92aWRlIGFwaSBmb3IgbG93ZXIgaGFuZGxlciB0byBrbm93IGlmIGN1cnJlbnQgY2FsbCBpcyBmb3IgZmlyc3QvbGFzdCByb3cKICAgLSBsb2cgYSB3YXJuaW5nIGlmIGhhbmRsZXIgZm9yIHJvdyByZXR1cm5zIGVycm9yLCBidXQgRE9OVCBleGl0IGxvb3AKICAgICAtIGlmIGxvd2VyIGhhbmRsZXIgcmV0dXJucyBlcnIsIHBhc3MgaXQgdG8gcGFyZW50CiAgIC0gYWRkIG1vcmUgZGVidWdnaW5nCgoyMDA1LTAzLTAzIDE1OjMzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy93YXRjaGVyLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oCjoKCiAgIGFkZCBvcHRpb24gdG8gd2F0Y2hlZCB0aW1lc3RhbXAgdG8gaGF2ZSBhIHBvaW50ZXIgdG8gYSBkaXJlY3QgdmFsdWUKCjIwMDUtMDMtMDIgMTg6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIC0gbW92ZSBjb2x1bW4gYml0IGZsYWcgbWFjcm9zIHVwIHdpdGggY29sdW1uIG51bWJlciBtYWNyb3MKICAgLSBiYWlsIGlmZiBtb3JlIHRoYW4gMzIgY29sdW1ucy4gZml4IHRoaXMgbGF0ZXIuLi4KCjIwMDUtMDMtMDIgMTg6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIC0gZG9uJ3QgcnVuIGV4dHJhIGZpbGUgZnJvbSB0b3A7IG1vdmUgZG93biBzbyBjYW4gYmUgY29udHJvbGxlZCBieSBkZWZhdWx0cwoKMjAwNS0wMy0wMiAxODo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICAtIHJlbW92ZSB1bnVzZWQgc2V0dXAgb2YgbTJjX252dl9zaXplb2YKCjIwMDUtMDMtMDIgMTg6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIC0gcmV3b3JrIGluaXRpYWwgY2hlY2tfdmJfKiBsb2dpYywgY2hlY2tpbmcgbWF4X3NpemUgZm9yIG9jdGV0IHN0cmluZ3MKICAgLSBmaXggcmFuZ2UgY2hlY2tzIGZvciBvY3RldCBzdHJpbmdzCiAgIC0gdXNlIG0yYyBkYXRhX2l0ZW0gYW5kIG5vZGUgZGlyZWN0b3J5LCBlbGltaW5hdGluZyBhIHZhciBmcm9tIG5vZGUgc2V0dXAKICAgLSByZW1vdmUgZ2VuZXJhdGVkIGNvbW1lbnQgYW5kIHNvbWUgY29tbWVudGVkIG91dCBjb25mIHN0dWZmCgoyMDA1LTAzLTAyIDE4OjE5ICByc3RvcnkKCiAgICogc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBwcm9wZXIgaW1wbGVtZW50YXRpb24gZm9yIGNoZWNrX3ZiX3NpemVfcmFuZ2UKCjIwMDUtMDMtMDIgMTY6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgLSBtb3ZlIFRPRE8gY29tbWVudCBhd2F5IGZyb20gbGlua2UgbGlrZWx5IHRvIGJlIGRlbGV0ZWQKICAgLSBhIGxvZyBtZXNzYWdlIGluZGljYXRpbmcgYSBub2RlIGlzIG5vdCBpbXBsZW1lbnRlZAoKMjAwNS0wMy0wMiAxNTowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gYWxsb3cgb2N0ZXN0IHN0cmluZyByZWFkIHRvIGZpbGwgYnVmZmVyCiAgIC0gZG9uJ3QgbnVsbCB0ZXJtaW5hdGUgb2N0ZXQgc3RyaW5nIGlmIGJ1ZmZlciBmdWxsCiAgIC0gd2FybiBpZiBpbnB1dCBpcyBsYXJnZXIgdGhhbiBidWZmZXIKCjIwMDUtMDMtMDIgMTQ6NTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBjaGFuZ2UgZGVmYXVsdCByZWdpc3RyYXRpb24gdHlwZWRlZiB0byBzdHJ1Y3QgKG5vdCBhIHB0ciB0byBzdHJ1Y3QpCgoyMDA1LTAzLTAyIDE0OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgY2hhbmdlIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHR5cGVkZWYgdG8gc3RydWN0IChub3QgYSBwdHIgdG8gc3RydWN0KQoKMjAwNS0wMy0wMiAxNDozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKLCBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtcmVhZG1lLm0yYywKICAgICBwYXJlbnQtc2V0Lm0yaToKCiAgIGNoYW5nZSBkZWZhdWx0IHJlZ2lzdHJhdGlvbiB0eXBlZGVmIHRvIHN0cnVjdCAobm90IGEgcHRyIHRvIHN0cnVjdCkKCjIwMDUtMDMtMDIgMTQ6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgZml4IG1pcy1uYW1lZCBmdW5jdGlvbjsgYWRkIHByb3RvIGZvciBjb3JyZWN0IG5hbWUKCjIwMDUtMDMtMDIgMTQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIGFsbG93IHNubXBkLmNvbmYgc211eCBPSURzIHRvIGJlIHRleHQsIG5vdCBqdXN0IG51bWVyaWMKCjIwMDUtMDMtMDIgMTQ6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY2llcwogICAgIC0gdXNlIG5ldyBzeXNPUiByZWdpc3RyYXRpb24gY2FsbGJhY2sgaW5zdGVhZCBvZiBkaXJlY3QgZnVuY3Rpb24gY2FsbHMKCjIwMDUtMDMtMDIgMTM6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICBhZGQvcmVnaXN0ZXIgY2FsbGJhY2tzIGZvciByZWcvdW5yZWcgc3lzT1IgZW50cmllcwoKMjAwNS0wMy0wMiAxMzo1NiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmg6CgogICBhZGQgY2FsbGJhY2tzIGZvciByZWcvdW5yZWcgc3lzT1IgZW50cmllcwoKMjAwNS0wMy0wMiAxMzo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBsb2cgSU5GTyBtZXNzYWdlIG9uIHN1Y2Nlc3NmdWwgY29ubmVjdCB0byBtYXN0ZXIKICAgLSBhbHdheXMgbG9nIHBlZXJuYW1lIG9uIHVuc3VjY2Vzc2Z1bCBjb25uZWN0IGF0dGVtcHQKCjIwMDUtMDMtMDIgMTM6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBhbHdheXMgbG9nIGFnZW50eCBwZWVyIG5hbWUgb24gY29ubmVjdCBmYWlsdXJlCgoyMDA1LTAzLTAyIDEzOjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgLSBsb2cgbWVzc2FnZSBvbiBmYWlsZWQgcmVnaXN0cmF0aW9uCiAgIC0gdXBkYXRlIGZvciBuZXcgdmVyc2lvbl9zeXNvaWQgbG9jYXRpb24KCjIwMDUtMDMtMDIgMTM6NDMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBtb3JlIGRlYnVnL2Vycm9yIGxvZyBmb3IgcHJvYmxlbXMgd2l0aCBjYWNoZSBmaWxlCgoyMDA1LTAzLTAyIDEzOjM2ICByc3RvcnkKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIC0gZml4IGxpYnJhcnkgZGVwZW5kZW5jaWVzCiAgICAgLSBtb3ZlIHZlcnNpb25fc3lzb2lkIGludG8gdGhlIGFnZW50IChmaXggbGlicmFyeSBkZXBlbmRlbmNpZXMpCiAgICAgLSB1cGRhdGUgc3lzdGVtX21pYiBmb3IgbmV3IHN5c29pZCBsb2NhdGlvbgogICAtIGRvbid0IGNhbGwgaG9zdHNfY3RsIGZvciBjYWxsYmFjayBjb25uZWN0aW9uCiAgIC0gbG9nIGFkZHJfc3RyaW5nIGZvciBVTktOT1dOIGNvbm5lY3Rpb25zCgoyMDA1LTAzLTAyIDEyOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtZGVwZW5kZW5jaWVzLm0yaToKCiAgIGFkZCBkZWJ1ZwoKMjAwNS0wMy0wMiAxMjoxNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICAtIGFkZCAteCBwYXJhbSBmb3IgbWFzdGVyIGFkZHJlc3MKICAgLSBhZGQgd2luZG93cyBTT0NLXyogbWFjcm9zCgoyMDA1LTAzLTAyIDEyOjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kb3h5Z2VuLm0yYzoKCiAgIGRvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBjb25mIGZpbGUKCjIwMDUtMDMtMDIgMTE6NTggIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIGZpeCBzcGVjIHNvIHJwbWJ1aWxkIHcvcGFyYW1ldGVycyBzaG91bGQgd29yayBvawogICAgIC0gbWFrZSBzdXJlIHBlcmwgdXNlcyBSUE0gcHJlZml4LCBpbnN0ZWEgb2YgaGFyZGNvZGVkIC91c3IgKGNvbmZpZywgcGF0aHN1YikKICAgICAtIG1ha2Ugc3VyZSBtYWtlaW5zdGFsbCB1c2VzIHByb3BlciBpbmNsdWRlIGRpciBwYXRoCgoyMDA1LTAyLTI4IDA3OjUyICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBBZGRlZCBXSU4zMiBpZmRlZiBibG9ja3MgdG8gYWNjb21vZGF0ZSBjb21waWxpbmcgdGhlIEhPU1QtUkVTT1VSQ0UgbWliIG9uCiAgIFdpbmRvd3MuCgoyMDA1LTAyLTI4IDA3OjUwICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBXaW5kb3dzIEhPU1QtUkVTT1VSQ0UgbWliIGltcGxlbWVudGF0aW9uLiBzdHJ1Y3Qgd2luX3N0YXRmcyBoYXMgYmVlbiBtb3ZlZAogICB0byBocl9zdG9yYWdlLmguCgoyMDA1LTAyLTI4IDA3OjQ4ICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmg6CgogICBXaW5kb3dzIEhSIG1pYiBpbXBsZW1lbnRhdGlvbi4KCjIwMDUtMDItMjcgMjI6MzQgIGFsZXhfYgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCB0L21pYi50LCB0L3N0YXJ0YWdlbnQucGw6CgogICBBcHBseSBNYXggQmFrZXIncyBwYXRjaCAxMTE3Njk2IHdoaWNoIGZpeGVzIGEgcmVnZXggdGhhdCBzcGxpdHMgYSB0YWcgZnJvbQogICBhbiBpaWQuICBBbHNvIGFkZGVkIGFkZGl0aW9uYWwgdGVzdHMgdG8gbWliLnQgdGVzdCBzY3JpcHQuCgoyMDA1LTAyLTI2IDA3OjIxICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmM6CgogICBUaGlzIGlzIHBhcnQgb2YgdGhlIEhPU1QtUkVTT1VSQ0UgV2luZG93cyBpbXBsZW1lbnRhdGlvbi4gaHJfbmV0d29yay5jIHdpbGwKICAgbm93IGNvbXBpbGUgd2l0aCBNaW5HVyBidXQgbXVjaCBvZiB0aGUgZnVuY3Rpb25hbGl0eSBzdGlsbCBuZWVkcyB0byBiZSBpbXBsZW1lbnRlZC4KCjIwMDUtMDItMjUgMTc6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgc2V0IGEgZ29vZCBleGFtcGxlIGFuZCBjYWxsIFNPQ0tfQ0xFQU5VUCBiZWZvcmUgZXhpdAoKMjAwNS0wMi0yNSAxNzozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgbTJjX3NldHVwX3RhYmxlLm0yaSwgbWZkLWludGVyZmFjZS5tMmM6CgogICBmaXggdHlwbyBpbiB2YXJpYWJsZSBuYW1lCgoyMDA1LTAyLTI1IDE3OjA2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSBmaXggcHJvdG90eXBlcywgbm90ZWQgYnkgbmllbHMKICAgLSBkb24ndCBnZW5lcmF0ZSBkb3h5Z2VuIGNvbmYgZmlsZQoKMjAwNS0wMi0yNSAxNzowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIGlnbm9yZSBjdnMgSWQgdGFncyB3aGVuIHBlcmZvcm1haW5nIGRpZmYKCjIwMDUtMDItMjUgMTY6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3NtdXgvc211eC5oLCBtaWJfbW9kdWxlcy5jLAogICAgIHNubXBfdmFycy5jOgoKICAgLSBlbGltaW5hdGUgbGlibmV0c25tcGFnZW50IHJlZnMgdG8gbGlibmV0c25tcG1pYnMKICAgICAtIG1vdmUgbW9kdWxlX2luaXRfbGlzdCBzdHVmZiBpbnRvIGFnZW50IGxpYnMKICAgICAtIG1vdmUgc211eCBjb2RlIGludG8gYWdlbnQgbGlicwoKMjAwNS0wMi0yNSAxNjozMSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGFkZCBjb250ZXh0IHRvIHJlZ2lzdGVyX21pYiBkZWJ1ZwogICAtIHdhcm4gaWYgcGFzc2VkIGNvbnRleHQgZG9lc24ndCBtYXRjaCByZWdpbmZvLT5jb250ZXh0TmFtZQoKMjAwNS0wMi0yNSAxNjoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIHJlZ2lzdGVyIHdpdGggY29udGV4dCwgaWYgc3BlY2lmaWVkCgoyMDA1LTAyLTI1IDE2OjEwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSBmaXggbGlicmFyeSBvcmRlcnMgaW4gbGluayBsaW5lcwogICAtIGFkZCB3aW5kb3dzIFNPQ0tfKiBtYWNyb3MgdG8gZ2VuZXJhdGVkIHN1YmFnZW50CgoyMDA1LTAyLTE5IDA3OjAwICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBQYXJ0IG9mIHRoZSBIT1NULVJFU09VUkNFIGltcGxlbWVudGF0aW9uIGZvciBXaW5kb3dzLgoKICAgKiBEZWZpbmVkIHdpbl9zdGF0ZnMgc3RydWN0dXJlLgogICAqIERlZmluZWQgcGFnZXNpemUgZm9yIFdpbmRvd3MgYXMgNDA5NiAoNGsgaXMgd2hhdCBJIGhhdmUgZm91bmQgdGhyb3VnaCBteQogICAJcmVzZWFyY2guIFRoZXJlIGlzIHByb2JhYmx5IGEgdmFyaWFibGUgb3IgZnVuY3Rpb24gdG8gZ2V0IHRoZSBpbmZvcm1hdGlvbgogICAJb24gV2luZG93cyBidXQgSSBoYXZlIG5vdCBmb3VuZCBpdCB5ZXQuKQogICAqIEFkZGVkIGZ1bmN0aW9ucyB3aW5fc3RhdGZzKCkgYW5kIHdpbl9yZWFscGF0aCgpLgoKMjAwNS0wMi0xNiAxNjo0OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgS2lsbGluZyB3YXJuaW5ncwoKMjAwNS0wMi0xNiAxNjo0OCAgbmJhCgogICAqIG1pYnMvOiBORVQtU05NUC1FWEFNUExFUy1NSUIudHh0LCBORVQtU05NUC1FWFRFTkQtTUlCLnR4dAosIE5FVC1TTk1QLVRDLnR4dDoKCiAgIHNtaWxpbnQnaW5nCgoyMDA1LTAyLTE1IDExOjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEltcGxlbWVudCBwcm9wZXIgU0VUIHN1cHBvcnQgZm9yIG5zRXh0ZW5kUnVuVHlwZS4KCjIwMDUtMDItMTIgMDg6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIE1vdmUgdmFyaWFibGUgdW51c2VkIHdoZW4gPHBpY2wuaD4gdW5hdmFpbGFibGUgZm9yIFNvbGFyaXMKCjIwMDUtMDItMTIgMDg6MzIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzLmgsCiAgICAgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgRml4IHdhcm5pbmdzCgoyMDA1LTAyLTEyIDA4OjA3ICBuYmEKCiAgICogYWdlbnQvOiBoZWxwZXJzL2luc3RhbmNlLmMsIGhlbHBlcnMvd2F0Y2hlci5jLAogICAgIG1pYmdyb3VwL2FnZW50L2V4dGVuZC5jLCBtaWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIFNvbGFyaXMgZ2NjIC1tNjQgZml4ZXMKCjIwMDUtMDItMTIgMDY6NDIgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBNb3JlIGRldGFpbHMgd2hlbiByZXNwb25zZSBmYWlscy4gR29vZCBmb3IgbG9jYXRpbmcgNjQtYml0IHByb2JsZW1zCgoyMDA1LTAyLTEyIDA1OjU4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIEZpeGluZyB3YXJuaW5ncwoKMjAwNS0wMi0xMiAwNToxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaDoKCiAgIEludGVncmF0ZSBmaXhlcyBmcm9tIE5ldEJTRCBwb3J0CgoyMDA1LTAyLTEwIDE0OjUzICBuYmEKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgRml4IG1pc2xlYWRpbmcgY29tbWVudC4gVGhhbmtzIHRvIGJ1ZyAxMDg2ODcwCgoyMDA1LTAyLTEwIDEzOjQzICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW5jbHVkZSBzeXNsb2cuaCBhbHNvIGlmIG5vdCB1c2luZyBsaWJ3cmFwCgoyMDA1LTAyLTEwIDEzOjI0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBGaXggc3lzSU9SYXdTZW50L1JlY2VpdmVkIHdoaWNoIGFyZSByZXZlcnNlZCBmb3IgTGludXguIEJ1ZyAxMTAyNTE4CgoyMDA1LTAyLTEwIDEwOjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBGaXggRnJlZUJTRCBtZW1vcnkgbGVhaywgdGhhbmtzIHRvIEpvaG4gU2VsbGVucywgYnVnIDExMDM2NDQKCjIwMDUtMDItMTAgMDg6MTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIEZpeGluZyB3YXJuaW5ncwoKMjAwNS0wMi0xMCAwNzozNSAgbmJhCgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBGaXhpbmcgd2FybmluZ3MKCjIwMDUtMDItMTAgMDc6MjIgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGFuIGV4dHJhbmVvdXMgbmV3bGluZSBlbmRpbmcgaGV4c3RyaW5ncwoKMjAwNS0wMi0wOSAxNjozNCAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgRml4IGJhZCBpbmRleCwgcG9pbnRlZCBvdXQgaW4gYnVnIDExMTY2NTIKCjIwMDUtMDItMDkgMTY6MzAgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IGEgYmFkIGVycm9yIG1lc3NhZ2UKCjIwMDUtMDItMDkgMTY6MjUgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlIHdhcm5pbmdzCgoyMDA1LTAyLTA5IDE2OjE1ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlbW92ZSB3YXJuaW5ncwoKMjAwNS0wMi0wOSAxNjowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBBbm90aGVyIGh1bnQgZml4aW5nIHdhcm5pbmdzCgoyMDA1LTAyLTA5IDE0OjQ2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgQWRkIHNvbWUgbWlzc2luZyBjb25zdC1uZXNzIGZvciBwYXJhbWV0ZXJzCgoyMDA1LTAyLTA4IDE2OjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMKLCBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2NvbW1vbi5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMKLCBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIEZpeCBhIGJ1bmNoIG9mIHRyaXZpYWwgd2FybmluZ3MKCjIwMDUtMDItMDggMTU6MDYgIG5iYQoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCBTTVVYLU1JQi50eHQsIGlhbmFsaXN0CiwgcmZjbGlzdCwgc21pc3RyaXA6CgogICBVcGRhdGUgdG8gY3VycmVudCB2ZXJzaW9ucwoKMjAwNS0wMi0wOCAxNDo1NCAgbmJhCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEZpeGVzIHRvIGFsbG93IGl0IHRvIHBhc3Mgc21pbGludAoKMjAwNS0wMS0yNyAyMjo1MiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICBkaXNhYmxlIGNhY2hpbmcgc2luY2Ugb3RoZXIgY29kZSBtb2RpZmllcyB1bmRlcmx5aW5nIGRhdGEKCjIwMDUtMDEtMjUgMTY6MjQgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmVtb3ZlIG5vdGUgb24gY3ZzMmNsIHdvcmthcm91bmQsIGFkZCBub3RlIG9uIGhvdyB0byBnZXQgY3VycmVudCB2ZXJzaW9uCgoyMDA1LTAxLTI1IDA4OjUxICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgRml4IG1pc25hbWVkIHJvdyBzdHJ1Y3R1cmUuCgoyMDA1LTAxLTIyIDE2OjQ5ICBhbGV4X2IKCiAgICogbG9jYWwvRkFRMkhUTUwsIGxvY2FsL2h0bWwtYWRkLWhlYWRlci1mb290ZXIucGwsCiAgICAgbWFuL21ha2VfaW5kZXgucGwsIG1hbi9tYW5fc2VjdGlvbnMudHh0LAogICAgIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvbWFrZWh0bWwucGw6CgogICBVcGRhdGVkIHNjcmlwdHMgZXRjIGZvciBnZW5lcmF0aW5nIHdlYiBjb250ZW50LgoKMjAwNS0wMS0yMiAxNTozOCAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9SRUFETUUudHh0LAogICAgIHdpbjMyL2Rpc3QvaHRtbGhlbHAvQ29uZmlndXJhdGlvbl9PdmVydmlldy5odG1sOgoKICAgV2luMzIgcmVnaXN0cnkgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHMKCjIwMDUtMDEtMjIgMTA6NDIgIHdhc21pdGgzMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgQWRkZWQgY291bnRfdXNlcnMgZnVuY3Rpb25hbGl0eSBmb3IgV2luZG93cy4gVGhlIGZ1bmN0aW9uIGN1cnJlbnRseSByZXR1cm5zCiAgIDAgZm9yIGEgZmFpbGVkIGNhbGwgdG8gTmV0V2tzdGFHZXRJbmZvKCkgYW5kIG1heSByZXF1aXJlIG1vcmUgZXJyb3IgY2hlY2tpbmcKICAgb24gV2luZG93cyBzeXN0ZW1zIHRvIHJldHVybiBhIGNvcnJlY3QgdmFsdWUgZm9yIGZhaWx1cmUuCgoyMDA1LTAxLTIxIDExOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jOgoKICAgVXNlIHRoZSAobmV3KSB0YWJsZV9kYXRhc2V0IGl0ZXJhdG9yIEFQSSByb3V0aW5lcywKICAgcmF0aGVyIHRoYW4gdGhlIGludGVybmFsIGZpZWxkcyBkaXJlY3RseS4KCiAgIChJIHdvbmRlciBob3cgbWFueSBtb3JlIGJpdHMgSSBicm9rZT8pCgoyMDA1LTAxLTIxIDA1OjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX3RvX25leHQuYzoKCiAgIERvbid0IGJlIHN1Y2ggYW4gaW1wYXRpZW50IGNoaWxkLCBEYXZlISAgSWYgSSd2ZQogICB0b2xkIHlvdSBvbmNlLCBJJ3ZlIHRvbGQgeW91IGEgdGhvdXNhbmQgdGltZXM6CgogICBUaWR5IHVwIHByb3Blcmx5IGFmdGVyIG9uZSByZXF1ZXN0IGJlZm9yZSBzdGFydGluZyBvbiB0aGUgbmV4dC4KCiAgIDxzaGFrZXMgaGVhZCBzb3Jyb3dmdWxseT4KICAgU29tZSBwZW9wbGUhIC0gSSBibGFtZSB0aGUgcGFyZW50cy4uLi4uCgoyMDA1LTAxLTIwIDA5OjI1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIFJlLWltcGxlbWVudCAndGFibGVfZGF0YScgdXNpbmcgdGhlICd0YWJsZV9jb250YWluZXInIGhlbHBlci4KICAgVGhlIHR3byBhcmUgYWxtb3N0IGlkZW50aWNhbCBpbiBiZWhhdmlvdXIgYW55d2F5IC0ganVzdCB3aXRoCiAgIGRpZmZlcmVudCBleHBlY3RhdGlvbnMgb3ZlciB0aGUgZm9ybWF0IG9mIGEgcGVyLXJvdyBzdHJ1Y3R1cmUuCgoyMDA1LTAxLTIwIDA5OjA5ICBkdHMxMgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIFVzZSB0aGUgKG5ldykgdGFibGVfZGF0YXNldCBpdGVyYXRpb24gQVBJLAogICByYXRoZXIgdGhhbiBmaWRkbGluZyB3aXRoIHRoZSBpbnRlcm5hbCBpbXBsZW1lbnRhdGlvbi4KCjIwMDUtMDEtMjAgMDk6MDcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgUHJvdmlkZSBhIGNsZWFuIEFQSSBmb3Igd2Fsa2luZyB0aHJvdWdoIHRoZSByb3dzIG9mIGEgdGFibGUKICAgKFJhdGhlciB0aGFuIHJlbHlpbmcgb24gYSBwYXJ0aWN1bGFyIGludGVybmFsIHJlcHJlc2VudGF0aW9uKS4KCjIwMDUtMDEtMjAgMDk6MDIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgVGhlIEFQSSBmb3IgY291bnRpbmcgdGhlIG51bWJlciBvZiByb3dzIHdhcyBjb25mdXNpbmdseQogICBuYW1lZCwgYW5kIG5vdCBhY3R1YWxseSBkZWNsYXJlZCBpbiB0aGUgaGVhZGVyIGZpbGUuCiAgIEludHJvZHVjZSBhIG1vcmUgc2Vuc2libGUgdmVyc2lvbi4KCjIwMDUtMDEtMTkgMDk6MTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIFdlIHNlZW0gdG8gaGF2ZSBhbiBpbmNvbnNpc3RlbnRseSBuYW1lZCBBUEksIGRlcGVuZGluZyBvbiB3aGV0aGVyIGl0CiAgIGlzIGJlaW5nIGRlZmluZWQgaW5saW5lIG9yIG5vdC4gIFRoaXMgZG9lcyBub3QgZmVlbCBsaWtlIGEgR29vZCBJZGVhLgogICBFbnN1cmUgdGhhdCB0aGUgc2FtZSBuYW1lcyB3b3JrLCByZWdhcmRsZXNzIG9mIGlubGluaW5nLgogICAoVGhhdCBpbnRyb2R1Y2VzIGEgY2VydGFpbiBkdXBsaWNhdGlvbiBvZiBjb2RlLCBidXQgc3VjaCBpcyBsaWZlKQoKMjAwNS0wMS0xMyAxMToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgTmV3ZXIgSVAtRk9SV0FSRC1NSUIgZnJvbSBhbiBJRCBzZXQgdG8gYmVjb21lIGFuIFJGQwoKMjAwNS0wMS0xMyAxMToyNCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQLUZPUldBUkQtTUlCLnR4dCwgSUFOQS1SVFBST1RPLU1JQi50eHQsCiAgICAgTWFrZWZpbGUuaW46CgogICBOZXdlciBJUC1GT1JXQVJELU1JQiBmcm9tIGFuIElEIHNldCB0byBiZWNvbWUgYW4gUkZDCgoyMDA1LTAxLTEyIDExOjUwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgUHJvdmlkZSBhIG1lYW5zIGZvciBzbm1wdHJhcGQgdG8gcmVwb3J0IC9ldGMvaG9zdHMue2FsbG93LGRlbnl9CiAgIHN0eWxlIGFjY2VzcyBjb250cm9sIGFjdGl2aXR5LgogICBUaGlzIHNob3VsZCBwZXJoYXBzIGJlIGxvZ2dlZCB2aWEgJ3NubXBfbG9nJyAoYy5mIGFnZW50L3NubXBfYWdlbnQuYykKICAgYnV0IEkgc2VlbSB0byByZWNhbGwgcHJvYmxlbXMgd2l0aCBkdXBsaWNhdGUgc3ltYm9scy4gIEJ1dCBhIGRlYnVnCiAgIG1lc3NhZ2Ugc2hvdWxkIGJlIHNhZmUgZW5vdWdoLi4uLgoKMjAwNS0wMS0xMiAxMToyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBkZWZpbmUgc2V0UGVycm9yc3RhdHVzIHVudGlsIHByb3BlciBmaXggaW1wbGVtZW50ZWQKCjIwMDUtMDEtMTIgMDk6NDMgIGFsZXhfYgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBBcHBseSBwYXRjaCBmcm9tIFBoaWxpcCBXIEdpbGxpcyBhbmQgRGFuaWVsIEtlcm5zIGZvciB3aW4zMiBnZXRlbnYgY3Jhc2guCgoyMDA1LTAxLTEyIDA2OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oOgoKICAgU3VwcG9ydCBjb25maWd1cmF0aW9uIG9mIHN0YXNoLWNhY2hlIHRpbWVvdXRzLCBib3RoIGF0CiAgIHJlZ2lzdHJhdGlvbiBhbmQgdmlhIHRoZSBORVQtU05NUC1BR0VOVC1NSUI6Om5zQ2FjaGVUYWJsZS4KICAgKERvbid0IG11Y2ggbGlrZSB0aGUgQVBJIG5hbWVzLCB0aG91Z2ggLSBpbXByb3ZlZCBzdWdnZXN0aW9ucwogICBncmF0ZWZ1bGx5IHJlY2VpdmVkKS4KCjIwMDUtMDEtMTIgMDY6MjMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYzoKCiAgIFVzZSB0aGUgc3RhbmRhcmQgY2FjaGUgaGVscGVyLCByYXRoZXIgdGhhbiBoYW5kbGluZyB0aGlzIGludGVybmFsbHkuCgoyMDA1LTAxLTEyIDA2OjIyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIE1ha2UgdGhlIGhhbmRsZXIgY2hhaW4gaW5mb3JtYXRpb24gYXZhaWxhYmxlIHRvIHRoZSBjYWNoZSBsb2FkIHJvdXRpbmUuCiAgIChBbmQgZml4IGEgYnJva2VuIGRlYnVnIG1lc3NhZ2UpCgoyMDA1LTAxLTEyIDA1OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgSW5jbHVkZSB0aGUgbmV3ICdzdGFzaF90b19uZXh0JyBoZWxwZXIgaW4gdGhlIGhlbHBlciBsaWJyYXJ5LgoKMjAwNS0wMS0xMSAxMDoxMSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zdGFzaF9jYWNoZS5oLAogICAgIGFnZW50L2hlbHBlcnMvc3Rhc2hfY2FjaGUuYywgYWdlbnQvaGVscGVycy9zdGFzaF90b19uZXh0LmMKOgoKICAgQXV0b21hdGljYWxseSBpbmplY3QgdGhlIHN0YXNoX3RvX25leHQgaGVscGVyIGF0IHJlZ2lzdHJhdGlvbiwKICAgcmF0aGVyIHRoYW4gZHluYW1pY2FsbHkgZHVyaW5nIHJlcXVlc3QgcHJvY2Vzc2luZy4KICAgKFdlIG11c3QgdHJ5IHRvIGtlZXAgb3VyIGJlbG92ZWQgbGVhZGVyIGhhcHB5IGFuZCBjb250ZW50IGFuZCB1bnN1c3BlY3RpbmcuLi4uKQoKMjAwNS0wMS0xMSAxMDowMiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgU3VwcG9ydCB0aGUgaW5qZWN0aW9uIG9mIGEgaGFuZGxlciBzdWItY2hhaW4KICAgKHJhdGhlciB0aGFuIGp1c3QgYSBzaW5nbGUgaGFuZGxlcikKCjIwMDUtMDEtMDkgMTE6MzEgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGNvbmZpZy5oIC0+IG5ldC1zbm1wLWNvbmZpZy5oCgoyMDA1LTAxLTA4IDEwOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICByZWFkL2NyZWF0ZSBkZWZhdWx0IGZpbGVzIGZyb20vaW4gc3ViZGlyCgoyMDA1LTAxLTA4IDEwOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywKICAgICBnZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwgbTJjX3NldHVwX25vZGUubTJpLAogICAgIG1mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmMsIG1mZC1yZWFkbWUubTJjOgoKICAgcmVhZC9jcmVhdGUgZGVmYXVsdCBmaWxlcyBmcm9tL2luIHN1YmRpcgoKMjAwNS0wMS0wOCAwNzo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gcmVuYW1lIHNvbWUgb2YgdGhlIG5ldyBwZXJzaXN0ZW50IGZ1bmN0aW9ucy92YXJzCiAgIC0gZml4IGxlbmd0aCBoYW5kbGluZyBmb3IgQklUUwogICAtIHVzZSBzdGFjayBmb3IgbGluZSBidWZmZXIKICAgLSBhZGQvdHdlYWsgc29tZSBkZWJ1ZyBtc2dzCgoyMDA1LTAxLTA3IDA3OjIyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3N0YXNoX2NhY2hlLmMsIGFnZW50L2hlbHBlcnMvc3Rhc2hfdG9fbmV4dC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfdG9fbmV4dC5oOgoKICAgRXh0ZW5kIHRoZSBhcHBsaWNhYmlsaXR5IG9mIFdlcycgInN0YXNoX2NhY2hlIiBoZWxwZXIsIGJ5CiAgIGF1dG9tYXRpY2FsbHkgY29udmVydGluZyBhIEdFVFNUQVNIIHJlcXVlc3QgaW50byBhIEdFVE5FWFQKICAgd2FsayBmb3IgdGhvc2UgY2hhaW5zIHRoYXQgZG9uJ3Qgc3VwcG9ydCB0aGlzIG1vZGUgZGlyZWN0bHkuCiAgIChBbmQgcHJvdmlkZSBhIHdheSBmb3IgY2hhaW5zIHRoYXQgZG8sIHRvIHNheSBzbyEpCgoyMDA1LTAxLTA3IDA0OjM3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIFVzZSBuZXRzbm1wX2NoZWNrX3ZiX3R5cGUgZm9yIGNoZWNraW5nIFNFVCByZXF1ZXN0cy4KCjIwMDUtMDEtMDYgMTI6MzMgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgbm90IHBlcnNpc3RlbmNlIHN1cHBvcnQgZm9yIG1mZAoKMjAwNS0wMS0wNiAxMjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWRkIGluY2x1ZGUgdG8gcXVpdGUgd2FybmluZwogICAtIGFkZCBwZXJzaXN0ZW5jZQoKMjAwNS0wMS0wNiAxMjoyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHJlbW92ZSBjb25kaXRpb24gb24gcHJvdG90eXBlIGdlbiBub3cgdGhhdCBmdW5jdGlvbiBpcyBhbHdheXMgZ2VuZXJhdGVkCgoyMDA1LTAxLTA2IDEwOjE2ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gbmV3IG9wdGlvbiB0byBkaXNhYmxlIHNldCByZXF1ZXN0cwoKMjAwNS0wMS0wNiAxMDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBuZXcgb3B0aW9uIHRvIGRpc2FibGUgc2V0IHJlcXVlc3RzIChkb2VzIG5vdCBleGNsdWRlIHNldCBwcm9jZXNzaW5nIGNvZGUgLSB5ZXQpCgoyMDA1LTAxLTA2IDEwOjA4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA1LTAxLTA2IDA5OjU3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBuZXcgb3B0aW9uIHRvIGRpc2FibGUgc2V0IHJlcXVlc3RzIChkb2VzIG5vdCBleGNsdWRlIHNldCBwcm9jZXNzaW5nIGNvZGUgLSB5ZXQpCgoyMDA1LTAxLTA2IDA5OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgcmVtb3ZlIGNvbmRpdGlvbmFsIGZvciB2YXIgZGVjbCwgc2luY2UgdXNlIGlzbid0IGNvbmRpdGlvbmFsCgoyMDA1LTAxLTA2IDA5OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICBhZGQgY29tbWVudCBvbiBob3cgdG8gZGlzYWJsZSBjYWNoaW5nCgoyMDA1LTAxLTA2IDA5OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpOgoKICAgLSBhZGQgbWlzc2luZyAlIHNwZWMgaW4gbG9nIG1zZwogICAtIGdlbiBjb2RlIHRvIGNvcHkgdmFsdWUgb25jZSBhZGRyVHlwZSBpcyBrbm93bgoKMjAwNS0wMS0wNSAxNzoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zdWJhZ2VudC5tMmM6CgogICBpbml0IG1pYnMgYmVmb3JlIHNubXAgc28gY29uZiBmaWxlIHJlZ2lzdHJhdGlvbnMgd29yawoKMjAwNS0wMS0wNSAxNToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGFsd2F5cyBnZW5lcmF0ZSByb3cgdW5kb19zZXR1cC91bmRvX2NsZWFudXAKCjIwMDUtMDEtMDUgMTA6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgY2FzZSBsYWJlbCB0byBtYXRjaCBsYWJsZWwgZ2l2ZW4gaW4gdXNhZ2UgbXNnCgoyMDA1LTAxLTAzIDEwOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgY29tbWVudCBvdXQgb3ZlcnJpZGUgY2hlY2tzIHdoZXJlIHdlIGRvbid0IGhhdmUgdGhlIGludGVyZmFjZSBuYW1lCgoyMDA1LTAxLTAyIDIwOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFJlY29nbmlzZSB3aGl0ZXNwYWNlIGNoYXJhY3RlcnMgYXMgcHJpbnRhYmxlLgoKMjAwNS0wMS0wMiAyMDozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgT25seSBpc3N1ZSAiYWNjZXNzIGNvbnRyb2wgbm90IGNvbmZpZ3VyZWQiIHdhcm5pbmcgZm9yIHRoZSBhZ2VudAogICAobm90IHNubXB0cmFwZCkKCjIwMDUtMDEtMDIgMTk6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIG1mZC1kYXRhLWdldC5tMmMsIG1mZC1pbnRlcmZhY2UubTJjOgoKICAgZG9uJ3QgZ2VuZXJhdGUgVE9ETyBpdGVtIGZvciBjb2RlIGluIGludGVyZmFjZXMgZmlsZQoKMjAwNS0wMS0wMiAxODoyNCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gZG9uJ3QgYmluZCBsb2NhbCB0cmFwc2lua3MgdG8gbG9jYWxob3N0IGlmIGNsaWVudEFkZHIgaXMgc2V0CgoyMDA0LTEyLTMxIDA5OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgY29tbWVudCBjbGFyaWZpY2F0aW9uCgoyMDA0LTEyLTI4IDE4OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICBmaXggbG9naWMgZm9yIG1mZCB0YWJsZSB0ZXN0CgoyMDA0LTEyLTI4IDE3OjI4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdXBkYXRlIHJmYyByZWZlcmVuY2UKCjIwMDQtMTItMjggMTY6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICAtIGRvbid0IHJlZ2lzdGVyIHJvbmx5IGhhbmRsZXJzIGFzIFJXUklURQogICAtIGFkZCBtaXNzaW5nIG5ldHNubXBfcmVnaXN0ZXJfaW50X2luc3RhbmNlX2NvbnRleHQKCjIwMDQtMTItMjggMTU6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIHVzZSBtYWNybyBjb25zdGFudHMgZm9yIHJldHVybiB2YWx1ZXMsIGluc3RlYWQgb2YgaGFyZGNvZGVkIHZhbHVlcwoKMjAwNC0xMi0yOCAxNTo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgZGVidWcgbXNnIHcvZXJybm8gd2hlbiBzZW5kdG8gZmFpbHMKCjIwMDQtMTItMjggMTU6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgbmV0c25tcF9hc3NlcnQgb24gYmFkIEFTTiBidWlsZAoKMjAwNC0xMi0yOCAxNToxNiAgcnN0b3J5CgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgaGVscGVycy9vbGRfYXBpLmM6CgogICAtIGFsd2F5cyBzcGVjaWZ5IGNvbnRleHQsIGlmIGF2YWlsYWJsZSkgZm9yIHJlZ2lzdGVyIGNhbGxiYWNrcwogICAgIChzbyBkaXNjb25uZWN0ZWQgYWdlbnR4IHN1YmFnZW50cyByZWNvbm5lY3Qgdy9wcm9wZXIgY29udGV4dCkKICAgLSBtZW1zZXQgc3RydWN0IG9uIHN0YWNrIHRvIDAKCjIwMDQtMTItMjggMTI6MDIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBmaXggYnVnIDEwNDk2MDc6IG5ldC1zbm1wLWNvbmZpZyAtLWNvbXBpbGUtc3ViYWdlbnQgYnJva2VuCgoyMDA0LTEyLTI3IDEwOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgYWRkIHBvaW50ZXIgdG8gdHV0b3JpYWwgYW5kIGNvbW1hbmRsaW5lIHRvIGdlbmVyYXRlIHBzZXVkby10b2RvIGxpc3QKCjIwMDQtMTItMjUgMDA6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIGJhaWwgb24gbm9uLXRhYmxlIE9JRCB1bnRpbCBtdWx0aXBsZSB0YWJsZXMgcGVyIGZpbGUgYXJlIHN1cHBvcnRlZAoKMjAwNC0xMi0yNSAwMDoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgZml4IGJ1ZyAxMDYyOTg2OiBwYXNzIGFuZCBwYXNzX3BlcnNpc3QgZmFpbCBhbmQgY3Jhc2ggc25tcGQKCjIwMDQtMTItMjQgMjM6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgZml4IGJ1ZyAxMDcyNDA2OiBpbnZhbGlkIG9wZXJhdG9yIHByZWNlZGVuY2UgaW4gb3BlbmRpcigpCgoyMDA0LTEyLTI0IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGZpeCBidWcgMTA4NDQxMzogQ2FuJ3QgZGlzYWJsZSBmaWxlIGxvZ2dpbmcKCjIwMDQtMTItMjQgMTA6MzIgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgZml4IGJ1ZyAxMDQwNzExOiBzbm1wdHJhcGQ6IFNJR0hVUCBkdXBsaWNhdGVzIHRyYXBoYW5kbGVycyAocmVwZWF0ZWRseSkKCjIwMDQtMTItMjQgMDk6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBhZGQgLXAgdG8gbWtkaXIgcGFybQoKMjAwNC0xMi0yNCAwOTo0MiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIHJlbW92ZSBoYXJkY29kZWQgSEFWRV9JRk5BTUVUT0lOREVYIG5vdyB0aGF0IGNvbmZpZ3VyZSBjaGVja3MgZm9yIGl0CgoyMDA0LTEyLTI0IDA5OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICAtIGRvbid0IG9wZW4gc3Rkb3V0IHRpbCB3ZSBuZWVkIGl0CiAgIC0gZXhwbGljaXQgY2xvc2UgZm9yIG9wZW5lZCBmaWxlCiAgIC0gY2hhbmdlIGRlZmF1bHQgdG8gYXNraW5nIHF1ZXN0aW9ucyBpbnN0ZWFkIG9mIHVzaW5nIGRlZmF1bHRzCgoyMDA0LTEyLTI0IDA5OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICAtIGNoYW5nZSBkZWZhdWx0IGZvciBpbnRlcmFjdGl2ZSBzZXR1cCB0byBvbgogICAtIGRvbid0IG92ZXJyaWRlIHJlcG9ydCBwcm9ncmVzcyB2YXIgaWYgYWxyZWFkeSBzZXQKCjIwMDQtMTItMjMgMTc6NTcgIGFsZXhfYgoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgICB3aW4zMi9Db25maWd1cmUsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgV2luMzI6IEZpeCBjb21waWxpbmcgd2l0aG91dCBQU0RLLgoKMjAwNC0xMi0yMyAxNDoxOSAgYWxleF9iCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZi5pbiwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9uZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBXaW4zMiBNU1ZDIGNvbXBpbGUgZml4ZXMKCjIwMDQtMTItMjIgMTg6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBmaXggYnVnIDEwODg3NjU6IEFnZW50IGZhaWxzIHRvIHNlbmQgdHJhcHMgdG8gcmVtb3RlIHRhcmdldAoKMjAwNC0xMi0yMiAxNjoyOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMi0yMiAxNjoxMiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICAtIHRlc3QgZm9yIGlmX25hbWV0b2luZGV4CgoyMDA0LTEyLTIyIDEzOjM3ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRS50aHJlYWQ6CgogICBtZW50aW9uIHRoYXQgdjMgaXNuJ3QgdGhyZWFkIHNhZmUKCjIwMDQtMTItMTYgMjE6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBsb2cgd2FybmluZyBvbiBiYWQgaGV4IGxlbmd0aCAoaGlnaGVyIHJvdXRpbmVzIGRvbid0IGdldCBlcnJvciBpbmRpY2F0aW9uKQoKMjAwNC0xMi0xNiAyMDo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBpZmRlZiBvdXQgdjEvdjIgY29kZSB3aGVuIGJvdGggZGlzYWJsZWQKCjIwMDQtMTItMTYgMTg6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC1jaGVjayBmb3IgZHVwbGljYXRlIHRhYmxlIGRlZnMgaW4gc25tcGQuY29uZgogICAtbW9yZSBpbmZvcm1hdGl2ZSBlcnJvciBtZXNzYWdlcwogICAtc3VwcG9ydCBydW4tdGltZSB0YWJsZXMgd2hpY2ggYXJlIGF1Z21lbnRhdGlvbnMKICAgLWxvZyBlcnJvciBpZiBydW4tdGltZSByb3cgYWRkIGZhaWxzCgoyMDA0LTEyLTE2IDE3OjAzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBtb3JlIGluZm9ybWF0aXZlIGVycm9yIG1lc3NhZ2VzCgoyMDA0LTEyLTE2IDE0OjU5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgY2hlY2sgZm9yIG51bGwgdmFyIGJlZm9yZSBkZXJlZgoKMjAwNC0xMi0xNiAxNDo1NSAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBjYWNoZSBuZXh0IHB0ciBiNCBvYmplY3QgY291bGQgYmUgZnJlZWQKCjIwMDQtMTItMTYgMTQ6NDIgIHJzdG9yeQoKICAgKiBsdG1haW4uc2g6CgogICBtb3JlIGhlbHBmdWwgZXJyb3IgbWVzc2FnZSBvbiBtaXNzaW5nIGxpYnJhcnkKCjIwMDQtMTItMTYgMTQ6NDAgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGFkZCBJTlNUQUxMX1BSRUZJWCB0byBwcm9ncmVzcyBtZXNzYWdlcwoKMjAwNC0xMi0xNSAxMToxNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMi0xNCAwODoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBkZWxldGUgZXh0cmEgJzsnCgoyMDA0LTEyLTE0IDA2OjQyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IHF1b3Rpbmcgb24gZXZhbCBsaW5lcwoKMjAwNC0xMi0xMyAxMjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHJlZ2lzdHJhdGlvbiBsb29rdXAgb3B0aW1pemF0aW9uIGFsbG93aW5nIGluY29taW5nIHJlcXVlc3RzIHRvIG1vcmUgcXVpY2tseSBzZWFyY2ggdGhyb3VnaCB0aGUgbGlua2VkIGxpc3QgYW5kIGRvIHNpbmdsZSBpbnQgY29tcGFyZXMgaW5zdGVhZCBvZiBmdWxsIE9JRCBjb21wYXJlcyBmb3IgbXVjaCBvZiB0aGUgc2VhcmNoIHRyZWUuICBTaG91bGQgc2lnbmZpY2FudGx5IGluY3JlYXNlIHRoZSBzZWFyY2ggc3BlZWQgZm9yIG5ldyByZXF1ZXN0cy4KCjIwMDQtMTItMTMgMTI6MzcgIHJzdG9yeQoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0sIHBlcmwvQVNOL0FTTi5wbSwKICAgICBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtLCBwZXJsL09JRC9PSUQucG0sCiAgICAgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvYWdlbnQvYWdlbnQucG0sCiAgICAgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgICAgcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sIEZBUSwgUkVBRE1FCiwgc2Vkc2NyaXB0LmluLCBkaXN0L25ldC1zbm1wLnNwZWMsCiAgICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKCk6IHZlcnNpb24gdGFnICggNS4zLmRldiApCgoyMDA0LTEyLTEzIDEyOjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBZGRlZCBhIG5ldyBvaWQtY29tcGFyZSBmdW5jdGlvbiB3aGljaCByZXR1cm5zIHdoZXJlIHRoZSBPSURzIGRpZmZlcmVkCgoyMDA0LTEyLTEzIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIGFkZCBhbiBleHRyYSBzb3J0aW5nIHZhcmlhYmxlOiBvaWRfb2ZmCgoyMDA0LTEyLTEzIDA4OjI1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEyLTEzIDA4OjI0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IG1pc3NpbmcgZW5kIHF1b3RlCgoyMDA0LTEyLTEwIDE1OjE1ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgcmVjZW50IGNoZWNraW5zCgoyMDA0LTEyLTEwIDE1OjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgLWNvbW1lbnQgdHdlYWtzCiAgIC1mcmVlIHZhcmJpbmQgaW5kZXhlcyBiZWZvcmUgcGFyc2luZyBuZXcgb25lcwogICAtYWRkL3VzZSBwcm9wZXIgZGF0YV9saXN0IGZyZWUgZnVuY3Rpb24gZm9yIHJvdyBzdGFzaGVzCgoyMDA0LTEyLTEwIDE0OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgZml4IGZvciB1c2luZyBpZk5hbWUgZm9yIGlmRGVzY3Igd2hlbiBpZkRlc2NyIG5vdCBhdmFpbGFibGUKCjIwMDQtMTItMTAgMTQ6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIC1maXggYnVnIDEwMzQwMDg6IG1lbW9yeSBsZWFrIHVzaW5nIFNFVCBmb3IgdGFibGVfZGF0YXNldAogICAtcmVtb3ZlIHVuc3VwcG9ydGQgJSBzcGVjIGluIGNvbmZpZ19wd2FybgoKMjAwNC0xMi0xMCAxMzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBhcHBseSBwYXRjaCAxMDUyNDYwOiBhZ2VudCBkZWFkbG9jayBvbiBleGVjCgoyMDA0LTEyLTEwIDEzOjAxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZYVGFibGUvaWZYVGFibGUuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYywgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5jCiwgaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oOgoKICAgYXBwbHkgcGF0Y2ggMTA1NTAzNjogaWYtbWliIGluaXQgb3JkZXIgZml4CgoyMDA0LTEyLTEwIDEyOjU2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmM6CgogICBhcHBseSBwYXRjaCAxMDU3MDU3OiBpcFN5c3RlbVN0YXRzVGFibGUgaW5kZXggZml4LCBhZGQgaXB2NgoKMjAwNC0xMi0xMCAxMTowNiAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLW5ldyB0YXJnZXRzIHRvIG1ha2UgYWdlbnRsaWIsIG1pYmxpYiBvciBib3RoCiAgIC1yZW1vdmUgYWdlbnQgbGliIGRlcGVuZGVuY3kgb24gbWliIGxpYgoKMjAwNC0xMi0xMCAxMTowNCAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbmV3IHRhcmdldHMgdG8gbWFrZSBzbm1wbGliLCBhZ2VudCwgYWxsIG9yIGluZGl2aWR1YWwgYXBwcwoKMjAwNC0xMi0xMCAxMTowMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMi0xMCAxMTowMCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC1maXggZGlzYWJsZSBzbm1wdjJjCiAgIC1hZGQgcGFydGlhbCB0YXJnZXQgb3MgdG8gbW9kdWxlIGNmbGFncwogICAtcmVzdG9yZSBtaXNzaW5nIHZhciBpbml0IChmaXggY29uZmlndXJlIHNsb3dkb3duKQogICAtbW9yZSBkZWJ1Z2dpbmcKCjIwMDQtMTItMTAgMTA6MTUgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL3JmYzEyMTMvc25tcGZ1bi5zaDoKCiAgIGZpeCB0YWJsZSBjaGVja3MgYnkgYWRkaW5nIG1pc3NpbmcgbnVsbCBwYXJhbWV0ZXIKCjIwMDQtMTItMTAgMTA6MDcgIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGNvbW1lbnQgY2hhbmdlIG9ubHktIGRvY3VtZW50IHdoeSB0ZXN0IG1heSBub3QgYWx3YXlzIGJlIGZhbHNlCgoyMDA0LTEyLTEwIDA5OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgY29uc2lzdGVudCB0YWJsZSBuYW1pbmcgaW4gZXhhbXBsZSBmbG93LCBub3RlZCBvbiBjb2RlcnMgYnkgRGF2ZQoKMjAwNC0xMi0xMCAwOTo0OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmgsCiAgICAgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLWFkZCBmbGFnIGZvciByb3cgZGVsZXRlZAogICAtaWYgbm8gZXJyb3JzLCBpbnNlcnQvZGVsZXRlIG5ldy9kZWxldGVkIHJvdyBpbnRvIGNvbnRhaW5lcgoKMjAwNC0xMi0xMCAwOTo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC5tMmk6CgogICBmaXggY2FzZSBvZiBtaXNzaW5nIGdldCBjb2RlCgoyMDA0LTEyLTEwIDA5OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICB1c2Ugc2FtZSBjYWNoZSB0aW1lb3V0IG9uIGFsbCBwbGF0Zm9ybXMKCjIwMDQtMTItMTAgMDk6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGFwcGx5IHBhdGNoIDEwNTY5Mjc6IDUuMi1wMDM6IGZyZWVic2QgaW50ZXJmYWNlIGJ1Z3MKICAgICAtIGZpeCBidWcgMTA1NTc4MTogZ2V0LW5leHQgZmFpbHMgdG8gc3RlcCBpbnRvIGludGVyZmFjZXMgZ3JvdXAgY29ycmVjdGx5CiAgICAgLSBmaXggYnVnIDEwNTY3NjA6IGFnZW50IGlnbm9yZXMgaWZzcGVlZCwgdHlwZSBzZXR0aW5ncyBpbiBzbm1wZC5jb25mCiAgIC0gYWxzbyBmaXggYnVnIDEwNTY3NjAgZm8gSFAtVVgsIHNvbGFyaXMsIFdpbjMyIGFuZCBvdGhlcnMKCjIwMDQtMTItMTAgMDg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgYXBwbHkgcGF0Y2ggMTA3Mzg5NzogZml4IGlmLW1pYiBkYXRhIGFjY2VzcyA2NGJpdCBjb3VudGVyIHdyYXAgZGV0ZWN0aW9uCgoyMDA0LTEyLTA5IDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgLSBkZWxldGUgcmVtb3ZlZCByb3cgYWZ0ZXIgdXNlciBjb21taXQgZnVuY3Rpb24gY2FsbGVkCiAgIC0gcmVtb3ZlIHJvdyBpbnNlcnQvZGVsZXRlIGluIHVuZG8gLSBoYW5kbGVkIGluIGNvbW1pdAoKMjAwNC0xMi0wOSAyMjoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgY2hlY2sgcmVxdWVzdHMgZm9yIGVycm9ycyBvbiBnZXQgbW9kZXMgdG9vCgoyMDA0LTEyLTA5IDIxOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgZG9uJ3QgZnJlZSBudWxsIHBvaW50ZXIKCjIwMDQtMTItMDkgMTE6NTcgIGR0czEyCgogICAqIG1hbi86IHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBTbGlnaHRseSBjbGVhbmVyIHN1bW1hcmllcyBvZiBjb25maWcgZmlsZSBoYW5kbGluZy4KCjIwMDQtMTItMDkgMTE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBBbGxvdyB0aGUgdHJhcCBkYWVtb24gdG8gc3BlY2lmeSBhIG5vbi1kZWZhdWx0IEFnZW50WCBzb2NrZXQuCgoyMDA0LTEyLTA5IDExOjUyICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oLAogICAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgTmV3IHV0aWxpdHkgcm91dGluZXMgZm9yIGNoZWNraW5nIG1heGltdW0gKHJhdGhlciB0aGFuIGV4YWN0KSBzaXplIGxpbWl0cy4KCjIwMDQtMTItMDkgMTE6NDkgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBVc2UgdGhlIGxlbmd0aCBzdXBwbGllZCBkdXJpbmcgcmVnaXN0cmF0aW9uIHdoZW4gZGVjaWRpbmcgaG93CiAgIG11Y2ggb2YgdGhlIE9JRCB0byBza2lwIGJlZm9yZSBjb21wYXJpbmcgaW5zdGFuY2Ugc3ViaWRlbnRpZmllcnMsCiAgIHJhdGhlciB0aGFuIHRyeWluZyB0byBzZWNvbmQtZ3Vlc3Mgd2hhdCB0aGUgTUlCIGltcGxlbWVudGVyIHdhbnRlZC4KCiAgIFRoZSBNZkQgZnJhbWV3b3JrICh3aGljaCBpcyB0aGUgb25seSBwbGFjZSB0aGlzIGhlbHBlciBpcyBjdXJyZW50bHkKICAgdXNlZCkgYWxyZWFkeSB0YWtlcyB0aGUgb2JqZWN0IHN1YmlkZW50aWZpZXIgaW50byBhY2NvdW50IHdoZW4KICAgaW5zZXJ0aW5nIHRoZSBoZWxwZXIsIHRodXMgZG9pbmcgc28gYWdhaW4gd2lsbCBicmVhayB0aGluZ3MuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4xIC0+IFY1LjIKCjIwMDQtMTEtMjQgMTc6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKMjAwNC0xMS0yNCAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMyICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMiApCgoyMDA0LTExLTI0IDE3OjMyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yICkKCjIwMDQtMTEtMjQgMTc6MTUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB3b3JkaW5nIGNoYW5nZXMgc3VnZ2VzdGVkIGJ5IFJvYmVydAoKMjAwNC0xMS0yNCAxNzoxMiAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgZG9jdW1lbnQgZ2V0X2luZGV4ZXMoKSBieSBleGFtcGxlCgoyMDA0LTExLTI0IDE3OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGRvY3VtZW50IGdldHRhYmxlKCkKCjIwMDQtMTEtMjQgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBDb252ZXJ0IEdOVSBzcGVjaWZpYyBtYWtlIGhhY2tzIHRvIHBvcnRhYmxlIHZlcnNpb24KCjIwMDQtMTEtMjQgMTY6NDIgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaW5vciB1cGRhdGVzCgoyMDA0LTExLTI0IDE2OjQxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgVXBkYXRlIGZvciA1LjIgYWRkaW5nIGEgdG9uIG9mIG5ldyBzdHVmZgoKMjAwNC0xMS0yNCAxNDozNSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgVXBkYXRlIGZvciA1LjIKCjIwMDQtMTEtMjQgMTA6NTUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIHVwZGF0ZSBmb3IgNS4yLiAgQWRkZWQgYSBmZXcgcmVmZXJlbmNlcyB0byB0aGUgb3RoZXIgUkVBRE1FIGZpbGVzCgoyMDA0LTExLTI0IDEwOjMzICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9hZ2VudF9yZWdpc3RyeS4zLCBuZXRzbm1wX2FnZW50X3RyYXAuMywKICAgICBuZXRzbm1wX2FzbjFfcGFja2V0X3BhcnNlLjMsIG5ldHNubXBfYmFieV9zdGVwcy4zLAogICAgIG5ldHNubXBfYnVsa190b19uZXh0LjMsIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLAogICAgIG5ldHNubXBfY2FsbGJhY2suMywgbmV0c25tcF9jb250YWluZXIuMywKICAgICBuZXRzbm1wX2RhdGFfbGlzdC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgICAgbmV0c25tcF9kZWZhdWx0X3N0b3JlLjMsIG5ldHNubXBfaGFuZGxlci4zLAogICAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX2xlYWYuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgICAgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLAogICAgIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgICBuZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfY29sdW1uX2luZm9fdC4zLAogICAgIG5ldHNubXBfbmV0c25tcF9kYXRhX2xpc3Rfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9hY2Nlc3NfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfcmVxdWVzdF9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZXF1ZXN0X2luZm9fcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9jb25maWcuMywKICAgICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICAgIG5ldHNubXBfc2NhbGFyLjMsIG5ldHNubXBfc2NhbGFyX2dyb3VwX2dyb3VwLjMsCiAgICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF9zbm1wX2FnZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2FsYXJtLjMsIG5ldHNubXBfc25tcF9jbGllbnQuMywKICAgICBuZXRzbm1wX3NubXBfbG9nZ2luZy4zLCBuZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbmV0c25tcF9zbm1wX3Nlc3Npb24uMywgbmV0c25tcF9zdGFzaF9jYWNoZS4zLAogICAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICAgIG5ldHNubXBfdGFibGVfY29udGFpbmVyLjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgICAgbmV0c25tcF91dGlsLjMsIG5ldHNubXBfdXRpbGl0aWVzLjMsCiAgICAgbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgTWFuIHBhZ2UgdXBkYXRlIGZvciA1LjIKCjIwMDQtMTEtMjQgMTA6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgdG8gNS4yCgoyMDA0LTExLTI0IDA4OjQwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHN0cmljdCBtYW4gcGFnZSBmaXhlcyBmcm9tIEVyaWMgUy4gUmF5bW9uZAoKMjAwNC0xMS0xOCAwNToyNyAgcnN0b3J5CgogICAqIFJFQURNRS5vc1g6CgogICBmaXggdHlwZSBub3RlZCBvbiBjb2RlcnMKCjIwMDQtMTEtMTcgMTA6MTcgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgLSBkb2N1bWVudCBmbGFncyB0byB1c2UgdG8gaW5zdGFsbCBvdmVyIEFwcGxlJ3MgdmVyc2lvbiAod2hpY2ggaGFzIGEgYmFkCiAgICAgY29weSBvZiBuZXQtc25tcC1jb25maWcKICAgLSBkb2N1bWVudCBleGx1ZGluZyB0aGUgdW5zdXBwb3J0ZWQgaWNtcCB0YWJsZQoKMjAwNC0xMS0xNyAwNjo0OSAgZHRzMTIKCiAgICogQUdFTlQudHh0OgoKICAgRml4IHR5cG8gYW5kIG1pc3NpbmcgY29uZmlnIGRpcmVjdGl2ZSwgcmVwb3J0ZWQgYnkgV2lsbGlhbSBCdWNrbGV5LgogICBFbXBoYXNpc2UgKGluIGFuIHVuZGVyc3RhdGVkIEJyaXRpc2ggc29ydCBvZiB3YXkpIHRoYXQgdGhpcyBpcyBwcmltYXJpbHkKICAgZGVzY3JpYmluZyB0aGUgdjQgYWdlbnQsIGFuZCB0aGluZ3MgbWF5IGJlIGRpZmZlcmVudCB3aXRoIHRoZSB2NSB0b29sa2l0LgoKMjAwNC0xMS0xNyAwNToyOSAgcnN0b3J5CgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI5ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyOCAgcnN0b3J5CgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjggIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI4ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI3ICByc3RvcnkKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjcgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzQgKQoKMjAwNC0xMS0xNyAwNToyNyAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE3IDA1OjI2ICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogdmVyc2lvbiB0YWcgKCA1LjIucmM0ICkKCjIwMDQtMTEtMTcgMDU6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjNCApCgoyMDA0LTExLTE2IDE2OjU2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTExLTE2IDE2OjU1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmY6CgogICB1cGRhdGUgdmVyc2lvbiB0byByYzQKCjIwMDQtMTEtMTYgMTU6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwKICAgICBpbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGRvbid0IGNvbmZpZ3VyZSBpbiBpbnRlcmZhY2UgaW9jdGwgY29kZSBieSBkZWZhdWx0CiAgIC0gaWZkZWYgb3V0IGFyY2ggZGVwZW5kZW50IGNvZGUgaW4gaW50ZXJmYWNlIGNvbW1vbgoKMjAwNC0xMS0xMiAwNzozNiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pbm9yIHR3ZWFrcwoKMjAwNC0xMS0xMSAwNjozNiAgcnN0b3J5CgogICAqIE5FV1M6CgogICBtZW50aW9uIG1vcmUgY2hhbmdlcyBhbmQgZml4ZXMKCjIwMDQtMTEtMDkgMDg6MjEgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgRG9jdW1lbnQgdGhlIG5vbi1vcHRpb25hbCBuYXR1cmUgb2Ygc25tcGQuY29uZgogICAoc3BvdHRlZCBieSBXaWxsaWFtIEJ1Y2tsZXkpCgoyMDA0LTExLTA5IDA4OjEyICBkdHMxMgoKICAgKiBGQVE6CgogICBSYWlkIFJvYmVydCdzIEZBUSBmb3Igc29tZSB1c2VmdWwgZW50cmllcy4KCjIwMDQtMTEtMDkgMDU6MTYgIGR0czEyCgogICAqIFRPRE86CgogICBJdCdzIGFib3V0IHRpbWUgd2UgaGFkIGEgZnJlc2ggVE9ETyBsaXN0LgogICBUaGVyZSBtYXkgd2VsbCBiZSBiaXRzIHRoYXQgY2FuIGJlIHNhbHZhZ2VkIGZyb20gdGhlCiAgIG9sZCB2ZXJzaW9uLCBidXQgSSdsbCBsZWF2ZSB0aGF0IHRvIHNvbWVvbmUgZWxzZS4KCjIwMDQtMTEtMDUgMjE6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICAtIChkaXN0L25ldC1zbm1wLnNwZWMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzMgKQoKMjAwNC0xMS0wNSAyMTozMyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIucmMzICkKCjIwMDQtMTEtMDUgMjE6MzMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4yLnJjMyApCgoyMDA0LTExLTA1IDIxOjMxICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmYsIG1hbi9uZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLAogICAgIG1hbi9uZXRzbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbWFuL25ldHNubXBfYWdlbnRfdHJhcC4zLCBtYW4vbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zCiwgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLCBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMwosIG1hbi9uZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbWFuL25ldHNubXBfY2FsbGJhY2suMwosIG1hbi9uZXRzbm1wX2NvbnRhaW5lci4zLCBtYW4vbmV0c25tcF9kYXRhX2xpc3QuMwosIG1hbi9uZXRzbm1wX2RlYnVnLjMsIG1hbi9uZXRzbm1wX2RlZmF1bHRfc3RvcmUuMwosIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywgbWFuL25ldHNubXBfaW5zdGFuY2UuMwosIG1hbi9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBtYW4vbmV0c25tcF9sZWFmLjMKLCBtYW4vbmV0c25tcF9saWJyYXJ5LjMsIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMwosIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfYWdlbnRfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbWFuL25ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVnaXN0cmF0aW9uX2luZm9fcy4zLAogICAgIG1hbi9uZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywKICAgICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICAgIG1hbi9uZXRzbm1wX3JlYWRfY29uZmlnLjMsIG1hbi9uZXRzbm1wX3JlYWRfb25seS4zLAogICAgIG1hbi9uZXRzbm1wX3Jvd19tZXJnZS4zLCBtYW4vbmV0c25tcF9zY2FsYXIuMywKICAgICBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbWFuL25ldHNubXBfc2VyaWFsaXplLjMKLCBtYW4vbmV0c25tcF9zbm1wX2FnZW50LjMsIG1hbi9uZXRzbm1wX3NubXBfYWxhcm0uMwosIG1hbi9uZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9sb2dnaW5nLjMsIG1hbi9uZXRzbm1wX3NubXBfcGR1LjMsCiAgICAgbWFuL25ldHNubXBfc25tcF9zZXNzaW9uLjMsIG1hbi9uZXRzbm1wX3N0YXNoX2NhY2hlLjMKLCBtYW4vbmV0c25tcF90YWJsZS4zLCBtYW4vbmV0c25tcF90YWJsZV9hcnJheS4zCiwgbWFuL25ldHNubXBfdGFibGVfY29udGFpbmVyLjMsCiAgICAgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMKLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBtYW4vbmV0c25tcF91dGlsLjMKLCBtYW4vbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBtYW4vbmV0c25tcF92YXJpYWJsZV9saXN0LjMsIG1hbi9uZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA0LTExLTA1IDIxOjIxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA0LTExLTA1IDIwOjI3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHVwZGF0ZSBmcm9tIEJydWNlCgoyMDA0LTExLTA1IDEzOjA4ICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgVGhpcyBwYXRjaCBmaXhlcyBhIGNvbmZpZ3VyZSBwcm9ibGVtIHdoZW4gY29tcGlsaW5nIHdpdGggc29tZSBXaW5kb3dzIGNvbXBpbGVycy4KICAgVGhlIGFmZmVjdGVkIHBsYXRmb3JtcyB3ZXJlIE1pbkdXIGFuZCBDeWd3aW4sIHRoZSBwYXRjaCBzaG91bGQgbm90IGVmZmVjdCBNU1ZDKysKICAgYnVpbGRzLgoKMjAwNC0xMS0wNSAwMjowNSAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBkZWx0YS4xLCBzbm1wZGVsdGEuMS5kZWYKLCBzbm1wZGYuMSwgc25tcGRmLjEuZGVmLCBzbm1wbmV0c3RhdC4xLAogICAgIHNubXBuZXRzdGF0LjEuZGVmOgoKICAgR2VuZXJhdGUgImZpeGVkIGluZm9ybWF0aW9uIiBjb21tYW5kIG1hbiBwYWdlcyBkeW5hbWljYWxseQogICAoc28gdGhleSBwaWNrIHVwIHRoZSB2ZXJzaW9uIGhlYWRlcikgcmF0aGVyIHRoYW4gaGF2ZSB0aGVtIHN0YXRpYy4KCjIwMDQtMTEtMDUgMDE6MjggIGR0czEyCgogICAqIG1hbi86IG1pYjJjLjEuZGVmLCBzbm1wYnVsa2dldC4xLmRlZiwKICAgICBzbm1wYnVsa3dhbGsuMS5kZWYsIHNubXBjbWQuMS5kZWYsIHNubXBkZWx0YS4xCiwgc25tcGRmLjEsIHNubXBnZXQuMS5kZWYsIHNubXBnZXRuZXh0LjEuZGVmCiwgc25tcG5ldHN0YXQuMSwgc25tcHNldC4xLmRlZiwgc25tcHN0YXR1cy4xLmRlZgosIHNubXB0YWJsZS4xLmRlZiwgc25tcHRyYW5zbGF0ZS4xLmRlZiwKICAgICBzbm1wdHJhcC4xLmRlZiwgc25tcHVzbS4xLmRlZiwgc25tcHZhY20uMS5kZWYsCiAgICAgc25tcHdhbGsuMS5kZWY6CgogICBUd2VhayB0aGUgb25lLWxpbmUgZGVzY3JpcHRpb25zIG9mIHZhcmlvdXMgY29tbWFuZHMgdG8gaW1wcm92ZQogICBjb25zaXN0ZW5jeSBhbmQgY2xhcml0eQoKMjAwNC0xMS0wNCAyMTozOCAgcnN0b3J5CgogICAqIFJFQURNRS5hZ2VudC1taWJzOgoKICAgdXBkYXRlcyAobW9zdGx5IHN0dWZmIHdlIGRvbid0IHN1cHBvcnQpCgoyMDA0LTEwLTI5IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucmMyICkKCjIwMDQtMTAtMjkgMjI6MTQgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnJjMiApCgoyMDA0LTEwLTI5IDIyOjE0ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzIgKQoKMjAwNC0xMC0yOSAyMjoxMCAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMsCiAgICAgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIC0+IDUuMi5yYzIKCjIwMDQtMTAtMjkgMjI6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBkb3h5Z2VuLmNvbmY6CgogICAtPiA1LjIucmMyCgoyMDA0LTEwLTI5IDEzOjI4ICByc3RvcnkKCiAgICogUkVBRE1FLmFnZW50LW1pYnM6CgogICBmaXJzdCBwYXNzIGF0IGFnZW50IG1pYnMgcmVhZG1lCgoyMDA0LTEwLTI2IDA1OjQwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTI2IDA1OjM3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZG9uJ3QgdW5jb25kaXRpb25hbGx5IGFkZCBsaWJyYXJpZXMgKGZyZWVic2QgZG9lc24ndCBoYXZlIGxpYmRsKQoKMjAwNC0xMC0yMiAxODowNiAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgZml4IGNvbmZsaWN0CgoyMDA0LTEwLTIyIDE4OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG06CgogICAtIChwZXJsL1RyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMSAgaGFyZGFrZXIKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTg6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxODowMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE4OjAwICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1OSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucmMxICkKCjIwMDQtMTAtMjIgMTc6NTkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnJjMSApCgoyMDA0LTEwLTIyIDE3OjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5yYzEgKQoKMjAwNC0xMC0yMiAxNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKCjIwMDQtMTAtMjIgMTc6NDYgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfQ29udGFpbmVyX2l0ZXJhdG9yLjMsIG5ldHNubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsIG5ldHNubXBfYWdlbnRfdHJhcC4zLAogICAgIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywgbmV0c25tcF9iYWJ5X3N0ZXBzLjMsCiAgICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9jYWxsYmFjay4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2RlZmF1bHRfc3RvcmUuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgICAgbmV0c25tcF9pbnN0YW5jZS4zLCBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICAgIG5ldHNubXBfbGVhZi4zLCBuZXRzbm1wX2xpYnJhcnkuMywKICAgICBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsCiAgICAgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX2FjY2Vzc19tZXRob2RzLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX2NvbmZpZy4zLAogICAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfcm93X21lcmdlLjMsCiAgICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywKICAgICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgICAgbmV0c25tcF90YWJsZV9jb250YWluZXIuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBtYWtlIGRvY3MKCjIwMDQtMTAtMjIgMTc6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgICBjb25maWd1cmUuaW4sIGRveHlnZW4uY29uZjoKCiAgIHZlcnNpb24gdXBkYXRlCgoyMDA0LTEwLTIyIDExOjQxICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTIyIDExOjQwICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgLSBtb3ZlIFBJQyBjaGVjayBhZnRlciBtb2R1bGUgcHJvY2Vzc2luZywgJiBjaGVjayBhZ2FpbnN0IGNvbXBsZXRlIG1vZHVsZSBsaXN0CiAgIC0gY2hlY2sgZGlza2lvIGFuZCBsbVNlbnNvcnMgYWdhaW5zdCBjb21wbGV0ZSBtb2R1bGUgbGlzdAoKMjAwNC0xMC0yMiAxMTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5jLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIGZpeGVzIGZvciBidWlsZGluZyBpZlRhYmxlIHcvb3V0IGlmWFRhYmxlCgoyMDA0LTEwLTIyIDAyOjE3ICBkdHMxMgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSWYgd2UncmUgZ29pbmcgdG8gaW5jbHVkZSB0aGUgTkVULVNOTVAtRVhURU5ELU1JQiBzdXBwb3J0IGJ5IGRlZmF1bHQsCiAgIChhbmQgbG9hZCBpdCBhdXRvbWF0aWNhbGx5KSwgaXQgd291bGQgYmUgZXZlbiBtb3JlIHVzZWZ1bCB0byBhY3R1YWxseQogICBpbnN0YWxsIGl0LCBzbyBpdCB3YXMgYXZhaWxhYmxlIHRvIF9iZV8gbG9hZGVkIQoKMjAwNC0xMC0yMiAwMjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmg6CgogICBJZiB3ZSdyZSBnb2luZyB0byBpbmNsdWRlIHRoZSBORVQtU05NUC1FWFRFTkQtTUlCIHN1cHBvcnQgYnkgZGVmYXVsdCwKICAgaXQgd291bGQgYmUgc2Vuc2libGUgdG8gbG9hZCB0aGF0IE1JQiBhdXRvbWF0aWNhbGx5LgoKMjAwNC0xMC0yMSAxNTo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIGlmZGVmIHVzZSBvZiB2YXJpYWJsZSB0aGF0IGlzbid0IGFsd2F5cyBkZWZpbmVkCgoyMDA0LTEwLTIxIDExOjQyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaXggZm9yIG11bHRpcGxlIHJvd3MvdGFibGVzIHNldCBwcm9ibGVtLCBub3RlZCBieSBTdmVuIEpvbmFzIG9uIGNvZGVycwoKMjAwNC0xMC0yMCAyMTowMiAgc2xpZgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGludm9rZSBwZXJscmVhbGNsZWFuIGZpcnN0IGluIHRoZSBkaXN0Y2xlYW4gc2VxdWVuY2UuCgoyMDA0LTEwLTIwIDE5OjU1ICBzbGlmCgogICAqIE1ha2VmaWxlLmluOgoKICAgcGVyZm9ybSBkZWVwIGNsZWFuaW5nIG9uIFBlcmwgdHJlZSB0byBmaXggYnVnICM4OTQ0MjUuCgoyMDA0LTEwLTIwIDE5OjM1ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIGZpeCB0YWJsZSBvdmVyZmxvdyAoaW5zcGlyZWQgYnkgRGViaWFuIHBhdGNoIHRvIDUuMS4yKS4KCjIwMDQtMTAtMjAgMTg6NTIgIHNsaWYKCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICByZW1vdmUgc2Vjb25kIHJlYWRfb2JqaWQgZnJvbSBtZXRob2RzIGxpc3QgKEluc3BpcmVkIGJ5IGN1cnJlbnQgRGViaWFuIHBhdGNoKQoKMjAwNC0xMC0yMCAxNjo1MiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGZpeCBidWcjMTA0MzE5NyAoMikgLSB0ZXN0IG9zIHZlcnNpb24gYW5kIHJlbGVhc2UgdXNpbmcgdW5hbWUgdG8gcXVhbGlmeSBhY3Rpb24KCjIwMDQtMTAtMTkgMTY6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgbW92ZSBycG0gaGVhZGVyIGluY2x1ZGVzIGluc2lkZSBIQVZFX0xJQlJQTSBiZWNhdXNlIG9mIGhlYWRlciBkZXBlbmRlbmNpZXMKCjIwMDQtMTAtMTkgMTY6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIG1vdmUgcnBtIGNoZWNrcyBiYWNrIGFmdGVyIG1vZHVsZSBwcm9jZXNzaW5nLCBzaW5jZSBycG0gb25seSBpbmNsdWRlZAogICAgIGlmZiBocl9zd2luc3QgZ2V0cyBjb25maWd1cmVkIGluCgoyMDA0LTEwLTE5IDE0OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICByZW1vdmUgY3BwIHdhcm5pbmcKCjIwMDQtMTAtMTkgMTQ6MDEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMTAtMTkgMTQ6MDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIHVwZGF0ZSByZWxlYXNlCiAgIC0gZm9yIGV2ZXJ5IEFDX0FSR19FTkFCTEUsIGFkZCBjb3JyZXNwb25kaW5nIEFDX0FSR19XSVRIIHdpdGggZXJyb3IgbWVzc2FnZQogICAtIGZvciBldmVyeSBBQ19BUkdfV0lUSCwgYWRkIGNvcnJlc3BvbmRpbmcgQUNfQVJHX0VOQUJMRSB3aXRoIGVycm9yIG1lc3NhZ2UKICAgLSBtb3ZlIGxpYnJ3YXAvcnBtIGNoZWNrcyBlYXJsaWVyLCBzbyB0aGV5IHdpbGwgZmFpbCBiZWZvcmUgbW9kdWxlIHByb2Nlc3NpbmcKICAgLSBjaGVjayBtYnN0YXQgc3RydWN0IGZvciBtX2NsdXN0ZXJzIChmcmVlYnNkIGFwcGFyZW50bHkgZHJvcHBlZCBpdCkKCjIwMDQtMTAtMTkgMDM6MTkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIERvbid0IGdlbmVyYXRlICdHZXQnIGNvZGUgZm9yIGluYWNjZXNzaWJsZSBvYmplY3RzLgoKMjAwNC0xMC0xOSAwMzoxMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHRoZSBhZ2VudCBjcmFzaGluZyBpZiBubyAnZGVsZXRlX3Jvdycgb3IKICAgJ2R1cGxpY2F0ZV9yb3cnIHJvdXRpbmVzIHdlcmUgY29uZmlndXJlZC4KCjIwMDQtMTAtMTkgMDM6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIFByZXZlbnQgdGhlIGFnZW50IGZyb20gc3Bpbm5pbmcgaW4gYW4gaW5maW5pdGUgbG9vcAogICBhdCB0aGUgZW5kIG9mIHRoZSB0YWJsZS4KCjIwMDQtMTAtMTkgMDM6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFJlcG9ydCAqd2hpY2gqIGFnZW50eCBzb2NrZXQgY291bGRuJ3QgYmUgb3BlbmVkLgoKMjAwNC0xMC0xOCAyMDoyNCAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSByZWxlYXNlCgoyMDA0LTEwLTE4IDIwOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgcmVwbGFjZSBpbmNvcnJlY3QgY29tbWVudCBibG9jayB3L25vdGUgYWJvdXQgcG9zc2libGUgZnV0dXJlIG9wdGltaXphdGlvbgoKMjAwNC0xMC0xOCAyMDoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gdXNlIG5ldyBpb2N0bCBpZkluZGV4IGZpbmQKICAgLSBtYWtlIG5leHQgYWxpYXMgZnVuYyBzdGF0aWMKCjIwMDQtMTAtMTggMjA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYzoKCiAgIC0gdXNlIG5ldyBpcGFkZHJlc3MgZW50cnkgY29weSBmdW5jdGlvbiBmb3IgdGFibGUgbGV2ZWwgdW5kbyBzZXR1cAogICAtIHJlbW92ZSBub2RlIGxldmVsIHVuZG8gc2V0dXAKICAgLSBpbXBsZW1lbnQgdW5kb19jb21taXQKCjIwMDQtMTAtMTggMjA6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmg6CgogICBuZXcgbmV0c25tcF9hY2Nlc3NfaXBhZGRyZXNzX2VudHJ5X2NvcHkgdG8gY29weSBlbnRyaWVzCgoyMDA0LTEwLTE3IDIwOjU2ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBmaXggc2xpZ2h0IG1lbW9yeSBsZWFrCgoyMDA0LTEwLTE3IDIwOjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOgogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTEwLTE3IDIwOjQ5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2lvY3RsLmgsCiAgICAgaW50ZXJmYWNlX2xpbnV4LmM6CgogICBhZGQgZmQgcGFyYW1ldGVyIHRvIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9pZmluZGV4X2dldAoKMjAwNC0xMC0xNyAxOTo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQosIG1mZC1pbnRlcmZhY2UubTJjOgoKICAgb25seSB0cmFjayB3aGV0aGVyIHVzZXIgYWxsb2NhdGVkIGRhdGEgY29udGV4dCBmb3Igbm9uLXRyYW5zaWVudCBkYXRhCgoyMDA0LTEwLTE2IDE5OjUzICBhbGV4X2IKCiAgICogd2luMzIvZGlzdC9zY3JpcHRzL21hbmRpcjJodG1sOgoKICAgV2luMzIgbWFuZGlyMmh0bWwgc2NyaXB0IHdhcyBjdXR0aW5nIG9mZiB0aGUgYm90dG9tIHRoZSBtYW4gcGFnZXMuICBGaXhlZC4KCjIwMDQtMTAtMTYgMTk6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgLSB1c2UgbmV3IGZkIHBhcmFtIGZvciBpZmluZGV4IGxvb2t1cCwgd2l0aCBsb2NhbCBzb2NrZXQKICAgLSBkb24ndCBsb29rdXAgaW50ZXJmYWNlIGlmIG5vIG5hbWUKCjIwMDQtMTAtMTYgMTg6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGRvbid0IHVzZSBtX2NsdXN0ZXJzIGlmIG5vdCBhdmFpbGFibGUKCjIwMDQtMTAtMTYgMTg6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBzaW1wbHkgcmVxdWlyZSBpbnRlcmZhY2UsIGxldCBpdCBkZWNpZGUgYWJvdXQgc3BlY2lmaWMgYXJjaCByZXF1aXJlcwoKMjAwNC0xMC0xNiAxODo1MiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIC0gYWx3YXlzIGRlZmluZSBpZmluZGV4IGZ1bmN0aW9uOyBzaW1wbHkgcmV0dXJuIDAgaWYgU0lPQ0dJRklOREVYIG5vdCBhdmFpbAogICAtIGFkZCBmZCBwYXJhbSB0byBpZmluZGV4IGdldCwgZm9yIG9wdGltaXphdGlvbgoKMjAwNC0xMC0xNiAxODo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIHNlcGFyYXRlIGludGVyZmFjZV9jb21tb24gaW5pdCBmcm9tIGFjY2Vzc19pbnRlcmZhY2UgaW5pdAogICAtIGNhbGwgYWNjZXNzIGZ1bmN0aW9uLCBub3QgYXJjaCAoc28gdW5zdXBwb3J0ZWQgYXJjaGVzIHdvcmspCgoyMDA0LTEwLTE2IDE4OjQ5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgYWx3YXlzIGluY2x1ZGUgaW9jdGwgdy9pbnRlcmZhY2Ugc3R1ZmYKCjIwMDQtMTAtMTYgMTg6NDggIHJzdG9yeQoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jOgoKICAgbW92ZSBhY2Nlc3MgaW5pdCBmcm9tIGFnZW50IHRvIG1pYiBpbml0CgoyMDA0LTEwLTE2IDEzOjQ0ICByc3RvcnkKCiAgICogdGVzdGluZy9yZmMxMjEzL3Rlc3RfZnVuOgoKICAgLSBjb21tZW50IG91dCBhbnNpIGNvbG9ycyAoaW5jb25zaXN0ZW50IHVzZSkKICAgLSBwcmVmaXggc3ViLXRlc3RzICYgc3VtbWFyeSB3aXRoIG1haW4gdGVzdCBudW1iZXIgdG8gcmVkdWNlIGNvbmZ1c2lvbgoKMjAwNC0xMC0xNiAxMzo0MyAgcnN0b3J5CgogICAqIHRlc3RpbmcvcmZjMTIxMy9zbm1wZnVuLnNoOgoKICAgdXNlIHNubXBnZXRuZXh0IGluc3RlYWQgb2Ygc25tcHRhYmxlIHRlc3RpbmcgdGFibGVzCgoyMDA0LTEwLTE2IDEzOjQyICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSBjaGVjayBmb3Igbm8gcGlkIGZpbGVzIGZvdW5kCiAgIC0gY2hlY2sgZm9yIHBpZGZpbGUgdmFuaXNoaW5nCgoyMDA0LTEwLTE2IDEzOjQwICByc3RvcnkKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHJlbW92ZSBzdHJheSBxdW90ZQoKMjAwNC0xMC0xNiAxMDozMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBpZiBuZXRzdGF0IGlzIGF2YWlsYWJsZSwgdGVzdCBmb3IgcG9ydCBpbiB1c2UgYW5kIHRyeSAyIG1vcmUgcmFuZG9tIHBvcnRzCgoyMDA0LTEwLTE1IDIxOjAxICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIxOjAwICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjE6MDAgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjE6MDAgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUzICkKCjIwMDQtMTAtMTUgMjA6NTkgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU5ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OCAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjU4ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1OCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1NyAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1NyAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1NyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnByZTMgKQoKMjAwNC0xMC0xNSAyMDo1NiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMyApCgoyMDA0LTEwLTE1IDIwOjQ4ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCwKICAgICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDA0LTEwLTE1IDIwOjQ4ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfYWdlbnRfcmVnaXN0cnkuMywgbmV0c25tcF9hZ2VudF90cmFwLjMsCiAgICAgbmV0c25tcF9hc24xX3BhY2tldF9wYXJzZS4zLCBuZXRzbm1wX2JhYnlfc3RlcHMuMywKICAgICBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfY29udGFpbmVyLjMsCiAgICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICAgIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgICBuZXRzbm1wX2luc3RhbmNlLjMsIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywKICAgICBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2FnZW50X3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2NvbHVtbl9pbmZvX3QuMywKICAgICBuZXRzbm1wX25ldHNubXBfZGF0YV9saXN0X3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlZ2lzdHJhdGlvbl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfdGFibGVfcmVxdWVzdF9pbmZvX3MuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfY29uZmlnLjMsCiAgICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9yb3dfbWVyZ2UuMywKICAgICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLAogICAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfc25tcF9hbGFybS4zLCBuZXRzbm1wX3NubXBfY2xpZW50LjMsCiAgICAgbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgbmV0c25tcF9zbm1wX3BkdS4zLAogICAgIG5ldHNubXBfc25tcF9zZXNzaW9uLjMsIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywKICAgICBuZXRzbm1wX3RhYmxlLjMsIG5ldHNubXBfdGFibGVfYXJyYXkuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICAgIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3V0aWxpdGllcy4zLAogICAgIG5ldHNubXBfdmFyaWFibGVfbGlzdC4zLCBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHVwZGF0ZSBmb3IgNS4yLnByZTMKCjIwMDQtMTAtMTUgMjA6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYzoKCiAgIHJlbW92ZSBDKysgc3R5bGUgY29tbWVudHMKCjIwMDQtMTAtMTUgMjA6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICB1cGRhdGUgZm9yIGRhdGEgYWNjY2VzcyBjaGFuZ2UKCjIwMDQtMTAtMTUgMjA6MDQgIHJzdG9yeQoKICAgKiBSRUFETUUuc29sYXJpcywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMKOgoKICAgbG1TZW5zb3JzIGNoYW5nZXMgZnJvbSBCcnVjZQoKMjAwNC0xMC0xNSAxODowMCAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3Qvc2NyaXB0cy9tYW5kaXIyaHRtbDoKCiAgIFdpbjMyIG1hbmRpcjJodG1sIHNjcmlwdCB3YXMgY3V0dGluZyBvZmYgdGhlIHRvcCBvZiB0aGUgbWFuIHBhZ2VzLiAgRml4ZWQuCgoyMDA0LTEwLTE1IDE3OjM1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvOgogICAgIHVzbURIVXNlcktleVRhYmxlLmgsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oLCB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYwosIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX29pZHMuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvOiBpcFN5c3RlbVN0YXRzVGFibGUuYwosIGlwU3lzdGVtU3RhdHNUYWJsZS5oLCBpcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgKLCBpcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5oOgoKICAgcmVnZW5lcmF0ZSBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE3OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgsIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jCiwgaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS86IGluZXROZXRUb01lZGlhVGFibGUuYwosIGluZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgcnVuIGluZGVudAoKMjAwNC0xMC0xNSAxNzoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGUuYywgaXBDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywgaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAo6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTc6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS5jLCBpbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlOyBydW4gaW5kZW50CgoyMDA0LTEwLTE1IDE2OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogaWZYVGFibGUuYywgaWZYVGFibGUuaAosIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmWFRhYmxlX2ludGVyZmFjZS5jCiwgaWZYVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTY6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywgaWZUYWJsZS5oCiwgaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmVGFibGVfaW50ZXJmYWNlLmg6CgogICB1cGRhdGUgZ2VuZXJhdGVkIGNvZGU7IHJ1biBpbmRlbnQKCjIwMDQtMTAtMTUgMTU6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLzoKICAgICBpcFN5c3RlbVN0YXRzVGFibGUtUkVBRE1FLUZJUlNULnR4dCwKICAgICBpcFN5c3RlbVN0YXRzVGFibGUtUkVBRE1FLWlwU3lzdGVtU3RhdHNUYWJsZS50eHQ6CgogICByZW1vdmUgbm9uLXNvdXJjZSBmaWxlcwoKMjAwNC0xMC0xNSAxNToyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oCjoKCiAgIGZpeCBtYXggaW5kZXggbGVuCgoyMDA0LTEwLTE1IDE1OjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGlwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIGZpeCBjdXQtbi1wYXN0ZSBpbiBsb2cgbXNnCgoyMDA0LTEwLTE1IDE1OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgdXNlIFNJT0NHSUZJTkRFWCBpb2N0bCBmb3IgaWZJbmRleAoKMjAwNC0xMC0xNSAxNTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9jb21tb24uYywKICAgICBpbnRlcmZhY2VfaW9jdGwuYywgaW50ZXJmYWNlX2lvY3RsLmgsCiAgICAgaW50ZXJmYWNlX2xpbnV4LmM6CgogICB1c2UgU0lPQ0dJRklOREVYIGlvY3RsIGZvciBpZkluZGV4CgoyMDA0LTEwLTE1IDExOjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgdHdlYWsgYnVmZmVyIHNpemUgY29kZSBhbmQgYXBwbHkgdG8gdGNwIHNvY2tldHMgdG9vCgoyMDA0LTEwLTE0IDIwOjI5ICB3YXNtaXRoMzIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaDoKCiAgIE1vZGlmaWVkIGluY2x1ZGVzIGZvciBXaW5kb3dzIGJ1aWxkcyB0byBpbmNsdWRlIHdpbnNvY2sgcmF0aGVyIHRoYW4gVW5peCBzb2NrZXRzLgoKMjAwNC0xMC0xNCAxODoxNSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oCjoKCiAgIG9wdGltaXplIG1pYiBpbmRleCBzaXplIGRlZnMgKHJlZHVjZSBjYWNoZSBzaXplIGJ5IGhhbGYhKQoKMjAwNC0xMC0xNCAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlLzoKICAgICB1c21ESFVzZXJLZXlUYWJsZS5oLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmMKLCB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZTsgZG9uJ3QgdXNlIHN0cnVjdCBwdHIgYXMgZGF0YSBjb250ZXh0CgoyMDA0LTEwLTE0IDE3OjUzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgZGVmaW5lIG1heCBwb2xpY3kgbGVuZ3RoCgoyMDA0LTEwLTE0IDE3OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIG1pbm9yIHR3ZWFrIHRvIGNvbW1lbnRzLCByZWR1Y2UgZGlmZnMgb24gc3dpdGNoIGZyb20gZW1iZWRkZWQtPmFsbG9jYXRlZCBkYXRhCgoyMDA0LTEwLTE0IDE3OjUxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaCwKICAgICBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpCiwgbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZG9uJ3QgZnJlZSBhIGRhdGEgY29udGV4dCB3ZSBkaWRuJ3QgYWxsb2NhdGUKCjIwMDQtMTAtMTQgMTc6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIGNsYXJpZnkgdGhhdCBhIHBvaW50ZXIgc2hvdWxkbid0IGJlIHVzZWQgYXMgdGhlIGRhdGEgY29udGV4dCB0eXBlCgoyMDA0LTEwLTE0IDE3OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICBhY2NvdW50IGZvciBpcGFkZHJlcy0+T0lEIGNvbnZlcnNpb24gaW4gaW5kZXggc3BhY2UgYWxsb2NhdGlvbnMKCjIwMDQtMTAtMTQgMTc6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1zZXQubTJpLAogICAgIG0yY19zZXR1cF90YWJsZS5tMmksIHN5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaToKCiAgIG1pbm9yIHR3ZWFrIHRvIGNvbW1lbnRzLCByZWR1Y2UgZGlmZnMgb24gc3dpdGNoIGZyb20gZW1iZWRkZWQtPmFsbG9jYXRlZCBkYXRhCgoyMDA0LTEwLTE0IDE3OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGZpeCB2YXIgbmFtZQoKMjAwNC0xMC0xNCAwNTo1NyAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsIG1pYjJjLmNvbnRhaW5lci5jb25mCiwgbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5zY2FsYXIuY29uZiwKICAgICBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBSZXR1cm4gJ1NOTVBfRVJSX05PRVJST1InIG9uICJub3JtYWwiIFNFVCBlcnJvcnMuCiAgIChTdWNoIGVycm9ycyBzaG91bGQgb25seSBiZSByZXBvcnRlZCB2aWEgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvcikKCjIwMDQtMTAtMTMgMTk6MjEgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHVzZSBjb3JyZWN0IGZhY2lsaXR5IHdoZW4gaW5pdGlhbGl6aW5nIHN5c2xvZyBsb2cgaGFuZGxlci4KCjIwMDQtMTAtMTMgMTg6MzYgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBpbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgUmVtb3ZlIHJlYm9vdCB3YXJuaW5nIGZyb20gcmVnaXN0ZXIgc2NyaXB0cyBhbmQgY2xhcmlmeSBzdGVwIGluIGJ1aWxkIHN0ZXBzCgoyMDA0LTEwLTEzIDE1OjI0ICBhbGV4X2IKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9Db25maWd1cmUsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYuaW46CgogICBDcmVhdGUgbGlic25tcC5kZWYuaW4gZmlsZSBmb3Igc25tcGxpYl9kbGwgYW5kIG1vZGlmeSB3aW4zMlxDb25maWd1cmUgdG8KICAgZ2VuZXJhdGUgbGlic25tcC5kZWYgaWYgZHluYW1pYyBpcyBzcGVjaWZpZWQgYW5kIHdpdGggb3Igd2l0aG91dCB0aGUgSVB2NgogICBsaW5lcyBpbiBsaWJzbm1wLmRlZi4KCjIwMDQtMTAtMTIgMjE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCBidWcgWyAxMDQ1NjA1IF0gc3ludGF4IGVycm9yIGluIHNubXB0cmFwZC5jICh3cm9uZyBhcmcgb3JkZXIpCgoyMDA0LTEwLTEyIDE3OjA0ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGFsbG93IGJ1aWxkX29pZF9ub2FsbG9jIHRvIGNvbXBsZXRlbHkgZmlsbCBpbmNvbWluZyBidWZmZXIKCjIwMDQtMTAtMTIgMTY6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvaWZYVGFibGUuYzoKCiAgIC1tb3ZlIGluaXRpYWxpemF0aW9uIG9mIGludGVybmFscyBiYWNrIGJlZm9yZSB3ZSB1c2UgdGhlbQogICAgICAgICAgICAoYWgsIHRoZSBqb3lzIG9mIGF1dG9tYXRlZCBwYXRjaGluZykKCjIwMDQtMTAtMTIgMTQ6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpZi1taWIvaWZUYWJsZS9kZWZhdWx0LXRhYmxlLWlmVGFibGUubTJkLAogICAgIGlmLW1pYi9pZlhUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2RlZmF1bHQtdGFibGUtaWZYVGFibGUubTJkLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2RlZmF1bHQtdGFibGUtaW5ldENpZHJSb3V0ZVRhYmxlLm0yZAosIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvZGVmYXVsdC10YWJsZS1pcENpZHJSb3V0ZVRhYmxlLm0yZAosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9kZWZhdWx0LXRhYmxlLWluZXROZXRUb01lZGlhVGFibGUubTJkCiwgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvZGVmYXVsdC10YWJsZS1pcEFkZHJlc3NUYWJsZS5tMmQsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9kZWZhdWx0LXRhYmxlLWlwU3lzdGVtU3RhdHNUYWJsZS5tMmQKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL2RlZmF1bHQtdGFibGUtdXNtREhVc2VyS2V5VGFibGUubTJkCjoKCiAgIHJlbW92ZSBmaWxlcyB1c2VkIGZvciBjb2RlIGdlbiAobW92ZWQgdG8gbmV0c25tcC9tb2R1bGUtdGVtcGxhdGVzIGN2cyB0cmVlKQoKMjAwNC0xMC0xMiAxMzoyNCAgYWxleF9iCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRml4IElQVjYgY29tcGlsZSBpc3N1ZXMgd2l0aCBQZXJsCgoyMDA0LTEwLTEyIDEzOjAzICBhbGV4X2IKCiAgICogd2luMzIvOiBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgICBuZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBGaXggUGVybCBjb21waWxlIGlzc3VlIHdpdGggZGJnX3Rva2VucyBhbmQgZGVidWdfbnVtX3Rva2Vucy4gIEZpeCBzbm1wdHJhcGQKICAgY29tcGlsZSBpc3N1ZSBieSBhZGRpbmcgaXBobGFwaS5saWIgdG8gbmV0c25tcG1pYnNzZGsuCgoyMDA0LTEwLTEyIDEwOjQwICB3YXNtaXRoMzIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBTb21lIHZlcnNpb25zIG9mIGdjYyB3aXRoIE1pbkdXIGRvIG5vdCBsaWtlIGEgbGFibGUgd2l0aCBubyBzdGF0ZW1lbnRzIGZvbGxvd2luZy4KICAgVGhlIHNvbGx1dGlvbiB3YXMgdG8gYWRkIGFuIGVtcHR5IHN0YXRlbWVudCBpbiB0aGUgc3VkbyBleGNlcHRpb24gaGFuZGxpbmcKICAgY29kZSBpbiB3aW5zZXJ2aWNlLmMuIE5ldC1TTk1QIHdpbGwgbm93IGNvbXBpbGUgdXNpbmcgYSBMaW51eCBob3N0ZWQgV2luZG93cwogICBjcm9zcyBjb21waWxlci4KCjIwMDQtMTAtMTEgMjE6MDYgIHNsaWYKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGZpeCBzaWduZWQvdW5zaWduZWQgY29tcGFyZSBvZiByYW5nZV9zdWJpZAoKMjAwNC0xMC0xMSAyMTowMyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIgc2Vzc19jb21tdW5pdHkKCjIwMDQtMTAtMTEgMjE6MDIgIHNsaWYKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBnZXQgZGVmaW5pdGlvbiBvZiBzaG91bGRfaW5pdAoKMjAwNC0xMC0xMSAyMTowMiAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBwaWNrdXAgbmV3IGRlZmluaXRpb24gb2Ygc3RydG9rX3IgYXMgbmVlZGVkLgoKMjAwNC0xMC0xMCAyMToyOCAgYnNoYXc2NjYKCiAgICogUkVBRE1FLnNvbGFyaXMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgTE0tU0VOU09SUy1NSUIgZm9yIFNvbGFyaXMKCjIwMDQtMTAtMDkgMDc6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtb3ZlIHZhciBkZWNsIHRvIHRvcCBvZiBmdW5jOyByZW1vdmUgZXh0cmEgfQoKMjAwNC0xMC0wOSAwNDo0OCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jCjoKCiAgIHJlbW92ZSBidWdmaXggIzEwNDMxOTcgLSB3cm9uZyBwYXRjaCBkb25lIHRoZSB3cm9uZyB3YXkgYXQgdGhlIHdyb25nIHRpbWUKCjIwMDQtMTAtMDggMjI6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIC0gKHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvQVNOL0FTTi5wbToKCiAgIC0gKHBlcmwvQVNOL0FTTi5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIC0gKGRpc3QvTWFrZWZpbGUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjI6MDAgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMjowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgLSAoZGlzdC9uZXQtc25tcC5zcGVjKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMiApCgoyMDA0LTEwLTA4IDIyOjAwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjE6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnByZTIgKQoKMjAwNC0xMC0wOCAyMTo1OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUyICkKCjIwMDQtMTAtMDggMjE6NTggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaW5vciBlZGl0cwoKMjAwNC0xMC0wOCAyMTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAoKMjAwNC0xMC0wOCAyMTo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBhdXRvY29uZiB2ZXJzaW9uIHJlcTsgdXBkYXRlIG5ldC1zbm1wIHZlcnNpb24gdG8gLnBybzIKCjIwMDQtMTAtMDggMjE6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgY2hhbmdlIHRoZSBhbm9uIGdyb3Vwcy9ldGMgY3JlYXRlZCBieSB0aGUgc2ltcGxlIHRva2VucyB0byBiZSBtb3JlIGRlc2NyaXB0aXZlIGFuZCB1bmlxdWUKCjIwMDQtMTAtMDggMjE6NDIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICB0ZXN0IHRoZSByaWdodCB2YXJpYWJsZQoKMjAwNC0xMC0wOCAyMTo0MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgbWFrZSB0aGUgYmFja2dyb3VuZCBvZiB0aGUgb2Jzb2xldGUgc2VjdGlvbiBwaW5raXNoCgoyMDA0LTEwLTA4IDIxOjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGVuYWJsZSBzdGRlcnJsb2cKCjIwMDQtMTAtMDggMjA6MDkgIGhhcmRha2VyCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgZml4IGluY29uc2lzdGVuY2llcyBwb2ludGVkIG91dCBieSBQYXRyaWNrIFdlbGNoZQoKMjAwNC0xMC0wOCAyMDowNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIG1ha2Ugc3VyZSBzbm1wRW5naW5lVGltZSBjYWxjdWxhdGlvbnMgZG9uJ3Qgd3JhcCBwYXN0IGFuIHVpbnQgc2l6ZQoKMjAwNC0xMC0wOCAxOToyNyAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBmdW5jdGlvbgoKMjAwNC0xMC0wOCAxOToyNSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKOgoKICAgZml4IHR5cG8KCjIwMDQtMTAtMDggMTk6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICB0d2VhayBzb21lIG1hY3JvIGFuZCBmdWN0aW9uIG5hbWVzL3ZhbHVlcwoKMjAwNC0xMC0wOCAxOTowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGUuaCwKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZi1taWIvaWZUYWJsZS9pZlRhYmxlX2ludGVyZmFjZS5oLAogICAgIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5jLCBpZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaAosIGlmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9jb25zdGFudHMuaCwKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZi1taWIvaWZYVGFibGUvaWZYVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLCBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAosIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZW51bXMuaAosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfaW50ZXJmYWNlLmMKLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9vaWRzLmgKOgoKICAgdXBkYXRlIGdlbmVyZWF0ZWQgY29kCgoyMDA0LTEwLTA4IDE5OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICB0d2VhayBtYXggb2lkIGd1ZXNzd29yawoKMjAwNC0xMC0wOCAxNjo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC1yZWR1Y2Ugc29tZSBnZW5lcmF0ZWQgY29tbWVudHMgaWYgdmVyYm9zZSBub3Qgc2V0CgoyMDA0LTEwLTA4IDE2OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLXJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQogICAtdXNlIG5ldyBtYWNybyBmb3Igc2l6ZSBvZiBpbmRleCBvaWQgYnVmZmVyCgoyMDA0LTEwLTA4IDE2OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICAtaW5pdCBpcnJldmVyc2libGUgY29tbWl0IHRvIDAKCjIwMDQtMTAtMDggMTY6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIGFnZW50L3NubXBfYWdlbnQuYwo6CgogICBBcHBseSBwYXRjaCBmb3VuZCBpbiBidWcgIzEwNDA0MzEgdG8gaW5jbHVkZSB0cmFuc3BvcnQgaW5mb3JtYXRpb24gaW4gdGhlIGR1bXAgb3V0cHV0CgoyMDA0LTEwLTA4IDE2OjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC11c2UgbmV3IGRlZmluZSBpbiBoZWFkZXIgZm9yIGNhY2hlIHRpbW91ZXQKCjIwMDQtMTAtMDggMTY6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC1yZW1vdmUgc29tZSByZWR1bmRhbnQgY29tbWVudHMKCjIwMDQtMTAtMDggMTY6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIC1yZXZhbXAvYWRkIGNvbW1lbnRzIChnaXZlIGRpZmYgbW9yZSBjb250ZXh0OyBmYWNpbGl0YXRlIGF1dG8tZ2VuIG9mIHRhc2sgbGlzdCkKICAgLXRyeSB0byBzaG9ydGVuIHNpemUgb2Ygb2lkIGJ1ZmZlcnMgZm9yIGluZGV4ZXMKCjIwMDQtMTAtMDggMTY6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICAtcmV2YW1wL2FkZCBjb21tZW50cyAoZ2l2ZSBkaWZmIG1vcmUgY29udGV4dDsgZmFjaWxpdGF0ZSBhdXRvLWdlbiBvZiB0YXNrIGxpc3QpCiAgIC1kb24ndCBnZW4gaW50ZXJuYWwgZW51bXMgaWYgbm90IG1hcHBpbmcKCjIwMDQtMTAtMDggMTY6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1jb3B5Lm0yaSwKICAgICBnZW5lcmljLWN0eC1zZXQubTJpLCBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICAgIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwgZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwgZ2VuZXJpYy10YWJsZS1vaWRzLm0yYwosIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1mZC1kYXRhLWFjY2Vzcy5tMmMsIG1mZC1kYXRhLWdldC5tMmMsCiAgICAgbWZkLWRhdGEtc2V0Lm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG5vZGUtZ2V0Lm0yaQosIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLCBwYXJlbnQtc2V0Lm0yaSwKICAgICBzeW50YXgtQ09VTlRFUjY0LWdldC5tMmksIHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpLAogICAgIHN5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLCBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmkKLCBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLXNldC5tMmksCiAgICAgc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpLCBzeW50YXgtVGVzdEFuZEluY3ItZ2V0Lm0yaToKCiAgIHJldmFtcC9hZGQgY29tbWVudHMgKGdpdmUgZGlmZiBtb3JlIGNvbnRleHQ7IGZhY2lsaXRhdGUgYXV0by1nZW4gb2YgdGFzayBsaXN0KQoKMjAwNC0xMC0wOCAxNjowMiAgc2xpZgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBGcm9tIERlYmlhbiBwYXRjaCBuZXQtc25tcF81LjEuMi01LmRpZmYuZ3ogLS0gcHJvcGFnYXRlIFdSQVBMSUJTCgoyMDA0LTEwLTA4IDE1OjMyICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhcHBseSB0aGUgaW50ZW50IG9mIHBhdGNoIDk0NzAzMyBmcm9tIENsYXVzIEtsZWluIHRvIGFsbG93IGZvciBjcm9zcyBjb21waWxhdGlvbiBzdXBwb3J0IHRocm91Z2ggdGhlIHVzZSBvZiAtLXByZWZpeD0gYW5kIC0tZXhlYy1wcmVmaXg9IGZsYWdzLiAgRGlkbid0IGFwcGx5IHRoZSB3aGl0ZSBzcGFjZSwgcmVmb3JtYXR0aW5nLCBldGMgcG9ydGlvbnMgc2luY2UgaXRzIGFnYWluc3Qgb3VyIHBhdGNoIGFjY2VwdGFuY2Ugc3RhbmRhcmRzLiAgQWxzbyBtYWRlIGEgc21hbGwgZml4IHNvIHRoYXQgLS1wZXJmaXg9L3NvbWV0aGluZyBkb2Vzbid0IGFkZCBhIC9uZXQtc25tcCBzdWZmaXggdG8gdGhlIGluY2x1ZGUgZGlyZWN0b3J5CgoyMDA0LTEwLTA4IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFsgMTAyMjc4NyBdIFBhdGNoIChmcm9tIEdlZXJ0IERlIFBldXRlcikgdGhhdCBhbGxvd3MgVURQIGJ1ZmZlciB0dW5pbmcuLi4gIFRha2UgMiBhZnRlciBkaXNjdXNzaW9uIG9uIC1jb2RlcnMKCjIwMDQtMTAtMDggMTQ6MTUgIHNsaWYKCiAgICogcGVybC86IEFTTi9BU04ucG0sIE9JRC9PSUQucG0sCiAgICAgVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbSwgYWdlbnQvYWdlbnQucG0sCiAgICAgYWdlbnQvbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG0sCiAgICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwgbWFuYWdlci9kaXNwbGF5dGFibGUucG0KOgoKICAgU2VlbiBpbiBhIERlYmlhbiBwYXRjaC4gIEluc2VydCByZXF1aXJlZCBibGFuayBsaW5lIGZvbGxvd2luZyBfX0VORF9fIGN1dCBtYXJrLgoKMjAwNC0xMC0wOCAxMzo1MCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIERvbid0IHNob3cgc211eCBwZWVyIHBhc3N3b3JkIGluIGNvbm5lY3QgYWNjZXB0L3JlZnVzZSBsb2cgbWVzc2FnZXMuCgoyMDA0LTEwLTA4IDExOjUyICBzbGlmCgogICAqIHRlc3RpbmcvOiByZmMxMjEzL1JFQURNRSwgcmZjMTIxMy9ydW4sCiAgICAgcmZjMTIxMy9zbm1wZnVuLnNoLCByZmMxMjEzL3Rlc3RfZnVuLAogICAgIHJmYzEyMTMvdGVzdG1pYjEuc2gsIHJmYzEyMTMvdGVzdG1pYjIuc2gsCiAgICAgcmZjMTIxMy90ZXN0bWliMy5zaCwgdGVzdHMvVDE2MHJmYzEyMTMsCiAgICAgdGVzdHMvVDE2MXJmYzEyMTMsIHRlc3RzL1QxNjJyZmMxMjEzOgoKICAgcGF0Y2ggIzY4OTc1NyAtIGFkZCB0ZXN0IGNhc2VzIGZvciBhY2Nlc3NpbmcgUkZDLTEyMTMgTUlCIHZhcmlhYmxlcy4KICAgdGhhbmtzIHRvIExpbmcgWGlhb2ZlbmcgZm9yIHRoZSBvcmlnaW5hbCB3b3JrLgoKMjAwNC0xMC0wOCAxMDo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgaW5pdGlhbGl6ZSBwdHIgdG8gTlVMTAoKMjAwNC0xMC0wOCAxMDozMSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3N5c3RlbS5jCjoKCiAgIGZpeCBidWcjMTA0MzE5NyAtIHByb3ZpZGUgYSBmdW5jdGlvbiB0byB0ZXN0IG9zIHZlcnNpb24gYW5kIHJlbGVhc2UKCjIwMDQtMTAtMDggMTA6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jOgoKICAgLSBmaXggYnVnIFsgMTAyNTQ1NCBdIHVuZGVmaW5lZCBzeW1ib2xzIGluIHNubXB0cmFwZAogICAgIC0gbW92ZSBpbmNsdWRlICJhZ2VudF9tb2R1bGVfaW5pdHMuaCIgaW5jbHVkZSBpbnNpZGUgaW5pdF9hZ2VudAoKMjAwNC0xMC0wOCAwOToyOSAgd2FzbWl0aDMyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzJtc3ZjLmg6CgogICBUaGUgTGludXggaG9zdGVkIHZlcnNpb24gb2YgTWluR1cgcmVwb3J0cyBpdHNlbGYgYXMgbWluZ3czMm1zdmMuIFRoaXMgc3lzdGVtCiAgIGhlYWRlciBkb2VzIG5vdGhpbmcgbW9yZSB0aGFuIGRlZmluZSBtaW5ndzMyIGFuZCBpbmNsdWRlIG1pbmd3MzIuaC4gQWxsIGNoYW5nZXMKICAgc2hvdWxkIGJlIG1hZGUgaW4gbWluZ3czMi5oLgoKMjAwNC0xMC0wOCAwOTowNCAgYWxleF9iCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIG5ldHNubXBfZ2V0ZW52KCk6IE1vdmUgdmFyaWFibGUgZGVjbGFyYXRpb24gaW50byBXSU4zMiBJRkRFRgoKMjAwNC0xMC0wOCAwOTowMSAgYWxleF9iCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBsb2NhbC9zbm1wY29uZiwKICAgICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgc25tcGxpYi90b29scy5jLCB3aW4zMi9kaXN0L1JFQURNRS50eHQsCiAgICAgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uX092ZXJ2aWV3Lmh0bWwsCiAgICAgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgQWRkIG5ldHNubXBfZ2V0ZW52KCkgd2hpY2ggaXMgYSB3cmFwcGVyIGZvciBnZXRlbnYoKSB0byBhZGQKICAgYmFzaWMgV2luZG93cyByZWdpc3RyeSBzdXBwb3J0LgoKMjAwNC0xMC0wNyAxOTozMSAgc2xpZgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaCBhbmQgbmV0LXNubXAvdHlwZXMuaAogICBmb3IgaW1wcm92ZWQgVUNEX0NPTVBBVElCTEUgdXNlcyAoZnJvbSBGZWRvcmEgbmV0LXNubXAtNS4wLjYtY29tcGF0LnBhdGNoKS4KCjIwMDQtMTAtMDcgMTg6NDQgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZW1vdmUgbWliMmMuaXRlcmF0ZTIuY29uZgoKMjAwNC0xMC0wNyAxNzoxNSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFJlLWluc3RhbGwgcGF0aCBmaXgsIHByb21wdCBvdmVyd3JpdGUgc25tcC5jb25mCgoyMDA0LTEwLTA3IDE2OjE1ICBhbGV4X2IKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBXaW4zMiBETEwgc3VwcG9ydCBmb3Igc3RydG9rX3IKCjIwMDQtMTAtMDcgMTU6MjEgIGFsZXhfYgoKICAgKiBzbm1wbGliL3N0cnRva19yLmMsIHdpbjMyL2xpYnNubXAvTWFrZWZpbGUuaW4sCiAgICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcF9kbGwvTWFrZWZpbGUuaW4KLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICBXaW4zMiBNU1ZDIHN1cHBvcnQgZm9yIHN0cnRva19yCgoyMDA0LTEwLTA3IDE0OjU3ICBhbGV4X2IKCiAgICogd2luMzIvbmV0LXNubXAvOiBuZXQtc25tcC1jb25maWcuaCwgbmV0LXNubXAtY29uZmlnLmguaW4KOgoKICAgZGVmaW5lZCBORVRTTk1QXyogZGVmaW5lcwoKMjAwNC0xMC0wNyAwNToxMiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgc3RydG9rX3IuYzoKCiAgIGFkZCBzdHJ0b2tfcgoKMjAwNC0xMC0wNiAyMTowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmg6CgogICBtYWtlIHByb3h5IG5vLWNvbW11bml0eSBzdXBwb3J0IHVzaW5nIC1DYyBpbnN0ZWFkIG9mIGFzc3VtaW5nIHlvdSB3YW50ZWQgaXQgdGhhdCB3YXkKCjIwMDQtMTAtMDYgMTk6MjIgIHNsaWYKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgaW5jbHVkZSB0ZW1wIHZhciAiaSIgaW50cm9kdWNlZCBieSByZWNlbnQgaXB2NiBwYXRjaC4KCjIwMDQtMTAtMDYgMTk6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaDoKCiAgIHJlbmFtZSB0byBORVRTTk1QX1JORC4gKGZvcmdvdCB0byBjaGVjayB0aGlzIGZpbGUgaW4gZnJvbSBlYXJsaWVyIGNoZWNraW4KCjIwMDQtMTAtMDYgMTc6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IGtzbSBwYXRjaCBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IEJ1Y2sgSHVwcG1hbm4KCjIwMDQtMTAtMDYgMTc6NDkgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB2My5oOgoKICAgYWRkIG1pc3NpbmcgZGVmaW5lIEVOR0lORUlEX1RZUEVfTkVUU05NUF9STkQgMjU2CgoyMDA0LTEwLTA2IDE2OjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBmaXggYnVnIFsgOTg2MjM4IF0gc25tcGQgbG9vcHMgZm9yZXZlcgoKMjAwNC0xMC0wNiAxNjowMSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIGZpeCBidWcjMTA0MDQyOTogdGVzdCBldmVyeSBmX2ZtdGFkZHIgY2FsbCBiZWZvcmUgZGVyZWZlcmVuY2luZyBvciBmcmVlaW5nLgogICBDYXRjaCBtZW1vcnkgbGVha3MgaW4gc25tcHRlc3QsIHNubXB0cmFwZCwgYW5kIHNubXBzdGF0dXMuCgoyMDA0LTEwLTA2IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFBhdGNoIFsgOTIzNDk0IF0gZnJvbSBCdWNrOiBpbXByb3ZlZCBhdXRvY29uZiBzdXBwb3J0IGFuZCBoZWltZGFsIHN1cHBvcnQgZm9yIGtzbS4KCjIwMDQtMTAtMDYgMTQ6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBhdGNoIFsgOTQyMTU1IF0gRnJvbSBEYWkuSDsgSVB2NiBhZGRyX3N0cmluZyBmaXggZm9yIGxpYndyYXAKCjIwMDQtMTAtMDYgMTQ6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggYnVnIFsgNjE1NzQ0IF0gU3B1cmlvdXMgRElTTUFOLUVWRU5UIHRyYXAKCjIwMDQtMTAtMDYgMTQ6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFBhdGNoIFsgMTA0MDcxOCBdIGZyb20gQmVuIFJvZ2VyczogQWdlbnR4IGVycm9yIHByb3BhZ2F0aW9uIGFuZCBpbmZpbml0ZSBsb29wCgoyMDA0LTEwLTA2IDE0OjExICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHJlc3RvcmUgcHRyIGluaXQgYmVmb3JlIGRlcmVmZXJlbmNlOyBubyBpZGVhIGhvdyB0aGlzIGhhcyBiZWVuIHdvcmtpbmcgZm9yIHRoZQogICBsYXN0IDYgbW9udGhzLCBhbmQgd2h5IGl0IHN0YXJ0ZWQgY3Jhc2hpbmcgb24gbWUgdG9kYXkuCgoyMDA0LTEwLTA2IDEzOjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgLSBiYWNrIG91dCBhbGwgb2YgZml4IGZvciBidWcgODY1NDE1CiAgICAgLSBoZWFkZXJfaWZFbnRyeSBkZXBlbmRzIG9uIGNvbnRpZ3VvdXMgaWZJbmRleCB2YWx1ZXMsIGFuZCBJJ20gbm90IGFib3V0CiAgICAgICB0byB0cnkgYW5kIGZpeCB0aGF0IGluIHRoaXMgaWZkZWYgaGVsbC1ob2xlLiBUaG9zZSB3YW50aW5nIG5vbi1jaGFuZ2luZwogICAgICAgaWZJbmRleGVzIHdpbGwganVzdCBoYXZlIHRvIG1vdmUgdG8gdGhlIG1mZC1yZXdyaXRlLgoKMjAwNC0xMC0wNiAxMzoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gYmFjayBvdXQgYWxsIG9mIGZpeCBmb3IgYnVnIDg2NTQxNQogICAgIC0gaGVhZGVyX2lmRW50cnkgZGVwZW5kcyBvbiBjb250aWd1b3VzIGlmSW5kZXggdmFsdWVzLCBhbmQgSSdtIG5vdCBhYm91dAogICAgICAgdG8gdHJ5IGFuZCBmaXggdGhhdCBpbiB0aGlzIGlmZGVmIGhlbGwtaG9sZS4gVGhvc2Ugd2FudGluZyBub24tY2hhbmdpbmcKICAgICAgIGlmSW5kZXhlcyB3aWxsIGp1c3QgaGF2ZSB0byBtb3ZlIHRvIHRoZSBtZmQtcmV3cml0ZS4KCjIwMDQtMTAtMDYgMTI6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGJhY2sgb3V0IHBhcnQgb2YgZml4IGZvciBidWcgODY1NDE1LCBpdCBicm9rZSBzb2xhcmlzICYgcHJvYmFibHkgb3RoZXJzCiAgICAgKG5vdCBhbGwgcGxhdGZvcm1zIGhhdmUgSW50ZXJmYWNlX1NjYW5fSW5pdCxJbnRlcmZhY2VfU2Nhbl9OZXh0KQoKMjAwNC0xMC0wNiAxMDozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBQYXRjaCAjMTA0MTM3OCBmcm9tIFRob21hcyBBbmRlcnMgdG8gZml4IHRoZSBkZXNjcmlwdGlvbiBvZiBob3cgZW5nZUlEcyBhcmUgY3JlYXRlZC4KCjIwMDQtMTAtMDYgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBGaXggdGhlIGNvbXBsYWludCBvdXRsaW5lZCBieSBUaG9tYXMgQW5kZXJzIGluIFBhdGNoIDEwNDM3OCB1c2luZyB0aGUgbmV0LXNubXAgZW50ZXJwcmlzZSBudW1iZXIgaW5zdGVhZCBvZiB0aGUgVUNEIG9uZSBmb3IgcmFuZG9tbHkgY29tcG9zZWQgZW5naW5lSURzCgoyMDA0LTEwLTA2IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZGVmaW5lZCBORVRTTk1QXyogZGVmaW5lcwoKMjAwNC0xMC0wNSAyMjoyNyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIGFkZCBNYWdudXMgRnJvbXJlaWRlLCBNYXJjdXMgTWVpc3NuZXIsIEFuZHJldyBSdWNrZXIgSm9uZXMsIERhaS5ILgoKMjAwNC0xMC0wNSAyMTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIGFwcGx5IHBhcnQgb2YgcGF0Y2ggWyA5Mzk1OTUgXSBmcm9tIHN1biAodXBkYXRlIGNhY2hlIHRpbWVzKQoKMjAwNC0xMC0wNSAyMTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gYXBwbHkgdGlueSBwaWVjZSBvZiBwYXRjaCBbIDgzNjM5MCBdCiAgICAgLSBhcHBsaWVkIG1vcmUgaWZuYW1lIHRvIGlmdHlwZSBtYXBwaW5ncwoKMjAwNC0xMC0wNSAyMTowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKOgoKICAgLSBhcHBseSBwYXRjaCBbIDgxMTY4NyBdIFByb3h5IHN1cHBvcnQgaWdub3JlcyBjb21tdW5pdHkgc3RyaW5nIGlmIC1jIG9wdGlvbiBvbWl0dGVkCgoyMDA0LTEwLTA1IDIwOjQ3ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBhcHBseSBwYXRjaCBbIDU1MTE4MyBdIExSVSByZXBsYWNlbWVudCBmb3IgYWRkcmVzcyBjYWNoZQoKMjAwNC0xMC0wNSAyMDowNiAgYWxleF9iCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIG1pc3NpbmcgcmVmZXJlbmNlIGZvciB3aW5zZXJ2aWNlcmMgaW4gTWluR1cgc2VjdGlvbgoKMjAwNC0xMC0wNSAxOToyNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSBhcHBseSBwYXRjaCBbIDk5NjQ2MiBdIGFnZW50eCBmYWlscyBvbiBsaXR0bGUgZW5kaWFuIDY0Yml0CgoyMDA0LTEwLTA1IDE5OjE1ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gYXBwbHkgcGF0Y2ggWyAxMDA5Nzk5IF0gQWdlbnRYIFJlZ2lzdGVyLVBEVSB3aXRoIG11bHRpcGxlIGl0ZW1zCgoyMDA0LTEwLTA1IDE5OjAyICByc3RvcnkKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gYXBwbHkgWyAxMDExNDcxIF0gTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzICsgaW5saW5lIG1hY3JvIHByb2JsZW1zCiAgICAgLSBkZWZpbmUgbWFjcm8gZm9yIHVuaXh3YXJlIGluY2x1ZGVzCgoyMDA0LTEwLTA1IDE5OjAxICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlbW92ZSBleHRyYW5lb3VzIGVuZGlmCgoyMDA0LTEwLTA1IDE4OjM4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0xMC0wNSAxNzo0NiAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gYXBwbHkgWyAxMDExNDcxIF0gTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzICsgaW5saW5lIG1hY3JvIHByb2JsZW1zCiAgICAgLSBjaGVjayBmb3IgbmVzdGVkIHN0YXRpYyBpbmxpbmUgc3VwcG9ydAoKMjAwNC0xMC0wNSAxNzozOCAgYWxleF9iCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgICAgc25tcGxpYi93aW5zZXJ2aWNlcmMucmM6CgogICBBcHBseSBwYXRjaCAxMDQwMzI1IC0gd2luMzIgTWluR1cgYWdlbnQvdHJhcGQgc2VydmljZSBFdmVudGxvZyBmaXhlcwoKMjAwNC0xMC0wNSAxNjozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgYXBwbHkgcGF0Y2ggWyAxMDQwMjU0IF0gU3RyZW5ndGhlbiBBR0VOVFggT0lEIGNoZWNrcwoKMjAwNC0xMC0wNSAxNjoyNiAgcnN0b3J5CgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoIFsgMTA0MDI2MSBdIE1ha2UgaXQgcG9zc2libGUgdG8gc2VsZWN0IHRlc3RzIG9uIGFnZW50IG1vZHVsZXMKCjIwMDQtMTAtMDUgMTY6MTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgY29uZmlndXJlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTEwLTA1IDE2OjE0ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIGFkZCBjaGVjayBmb3Igc3RydG9rX3IgYW5kIHJ1biBhdXRvaGVhZGVyCgoyMDA0LTEwLTA1IDE2OjEzICByc3RvcnkKCiAgICogUkVBRE1FOgoKICAgYWRkIEdlZXJ0IERlIFBldXRlciB0byBjb250cmlidXRvcnMKCjIwMDQtMTAtMDUgMTY6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLCBhcHBzL3NubXB2YWNtLmMsCiAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsIHNubXBsaWIvY29udGFpbmVyLmMsCiAgICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgICBzbm1wbGliL3N5c3RlbS5jOgoKICAgYXBwbHkgcGF0Y2ggWyAxMDQwMzMwIF0gR2V0dGluZyByaWQgb2Ygc3RydG9rCgoyMDA0LTEwLTA1IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgcmVtb3ZlIGF0dHJpYnV0aW9uIGNvbW1lbnQKCjIwMDQtMTAtMDUgMDc6MDYgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBSZW1vdmUgLUMgYW5kIC1jIHJlZ2lzdGVyIG9wdGlvbnMgYW5kIGFkZCBub3RlIGFib3V0IHJlYm9vdAoKMjAwNC0xMC0wNSAwMDo1MCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBwYXRjaCBmcm9tIGpwcmFrYXNoYmFidTogbW92ZSBlbmRmc2VudCBjYWxsIG5lYXIgc2V0ZnNlbnQgdG8gYXZvaWQgY29tcGlsZSBlcnJvcgoKMjAwNC0xMC0wNCAyMDoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGVsbWluYXRlIHVzZSBvZiBUT0RPX2ZpbmRfKiB1bmRlZmluZWQgbWFjcm9zCgoyMDA0LTEwLTA0IDIwOjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmFjdGl2ZS1zZXR1cC5tMmM6CgogICBwdXQgaXJyZXZlcnNpYmxlX2NvbW1pdCBzZXR0aW5nIGluIGdlbmVyYXRlZCBkZWZhdWx0LXRhYmxlLSoKCjIwMDQtMTAtMDQgMjA6MTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpOgoKICAgZWxtaW5hdGUgdXNlIG9mIFRPRE9fZmluZF8qIHVuZGVmaW5lZCBtYWNyb3MKCjIwMDQtMTAtMDQgMTU6MDkgIGFsZXhfYgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgUmVuYW1lIGdfc3pBcHBOYW1lIHRvIGFwcF9uYW1lIHRvIGZvbGxvdyBuYW1pbmcgc3RhbmRhcmRzCgoyMDA0LTEwLTA0IDExOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwgbm9kZS1zZXQubTJpCjoKCiAgIC0gbWFrZSBjb21tZW50cyBtb3JlIHVuaXF1ZSAoaGVscCBvdXQgZGlmZikKICAgLSByZW1vdmUgc29tZSBleHRyYW5lb3VzIGNvbW1lbnRzCgoyMDA0LTEwLTA0IDExOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgdXNlIGZ1bGwgcGF0aHMgaW5zdGVhZCBvZiByZWxhdGl2ZQoKMjAwNC0xMC0wNCAxMTo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBhZGQgZGVidWcgdG9rZW5zCgoyMDA0LTEwLTA0IDA5OjUzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgc3RvcmUgcGVybWFuZW50IHJvd3MgdG9vCgoyMDA0LTEwLTA0IDA5OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9saW51eC5jOgoKICAgZG9uJ3QgcmVzZXQgb3Blcl9zdGF0dXMgZmxhZ3MsIGlvY3RsIGNvZGUgaGFzIGFscmVhZHkgc2V0IHRoZW0KCjIwMDQtMTAtMDQgMDk6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBsaXN0IGFsbCBsb2NhdGlvbnMgdG8gdXBkYXRlIGluIGZsb3djaGFydCBjb21tZW50cwoKMjAwNC0xMC0wMyAxODoyMiAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIFVucmVnaXN0ZXIgc2VydmljZXMgb24gdW5pbnN0YWxsLCBhZGQgbWlzc2luZyBtaWJzLCBtaWIyYyBhbmQgaGVhZGVyIGZpbGVzLgoKMjAwNC0xMC0wMyAxNDoyMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGZyb20gQ29yZXkgV3JpZ2h0OiBmaXggc2Vuc29yX2FycmF5IHNpemUgbGltaXQgdGVzdAoKMjAwNC0xMC0wMyAxMDoxOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgYXBwbHkgbWlzc2VkIGJpdCBmcm9tIHByZXZpb3VzIHBhdGNoCgoyMDA0LTEwLTAzIDA4OjQ3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICAtIGFwcGx5IHBhdGNoIGZyb20gR2VlcnQgRGUgUGV1dGVyIFsgMTAyMjk0MSBdIFNwZWVkIHVwIGFkZGluZyBhIHJvdyB0byBhIHRhYmxlCiAgICAgLSAoc2xpZ2h0bHkgbW9kaWZpZWQgdmVyc2lvbikKICAgICAtIHRlc3QgZm9yIGFwcGVuZCBiZWZvcmUgbGluZWFyIHNlYXJjaAogICAgIC0gc2F2ZSByYyBpbnN0ZWFkIG9mIHJlcGVhdGluZyBmdW5jdGlvbiBjYWxsCgoyMDA0LTEwLTAzIDA3OjUyICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHBhdGNoIGZyb20gUGF0cmljayBXZWxjaGU7IGNoZWNrIGZvciBOVUxMIGJlZm9yZSBkZXJlZgoKMjAwNC0xMC0wMiAyMDo1MSAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIEFkZCBzdGVwIHRvIGNvbXBhcmUgY29tcGlsZWQgYW5kIGluc3RhbGxlZCBmb2xkZXJzIHRvIGxvY2F0ZSBtaXNzaW5nIGZpbGVzCgoyMDA0LTEwLTAxIDIwOjUyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hlY2sgZm9yIHN5c2NvbmYgYW5kIHRpbWVzIGZ1bmN0aW9ucyBhbmQgc3lzL3RpbWVzLmggaGVhZGVyCgoyMDA0LTEwLTAxIDIwOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbGNkX3RpbWUuYywgc25tcHYzLmM6CgogICBQcm9wZXIgZml4IGl0IHYzIGVuZ2luZXRpbWUgd3JhcHBpbmcgcHJvYmxlbS4gIEZhaXJseSBwb3J0YWJsZSAmJiB1c2VzIHRpbWVzKCkuCgoyMDA0LTEwLTAxIDIwOjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBjcmVhdGUgYSBuZXcgY2FsY3VsYXRlX3NlY3RpbWVfZGlmZiBmdW5jdGlvbgoKMjAwNC0xMC0wMSAyMDo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHNldCBoZW50IHZhcmlhYmxlIHRvIE5VTEwgdG8gc3F1YXNoIGJvZ3VzIGNvbXBpbGVyIHdhcm5pbmcKCjIwMDQtMTAtMDEgMTU6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oOgoKICAgZml4IGJ1ZyBbIDg2NTQxNSBdIGluY29ycmVjdCBpZkFkRW50SWZJbmRleCBmaWVsZAoKMjAwNC0xMC0wMSAwODo1OCAgYWxleF9iCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIFNpbXBsaWZ5IGJ1aWxkIHN0ZXBzCgoyMDA0LTEwLTAxIDA1OjI4ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUyLmNvbmYsCiAgICAgbG9jYWwvbWliMmMuY29uZiwgTkVXUzoKCiAgIEJyZWFrIHRoZSBoYWJpdCBvZiBhIGxpZmV0aW1lLCBoYXZlIHRoZSBjb3VyYWdlIG9mIG15IGNvbnZpY3Rpb25zLAogICBhbmQgcHVzaCB0aGUgbmV3IChmdWxsZXIpIGl0ZXJhdGUgY29uZmlnIGluIHByZWZlcmVuY2UgdG8gdGhlIGVhcmxpZXIKICAgKHJlbGF0aXZlbHkgZW1wdHkpIGZyYW1ld29yay4KICAgICBbSSBqdXN0IGtub3cgSSdtIGdvaW5nIHRvIHJlZ3JldCBkb2luZyB0aGlzLi4uLi5dCgoyMDA0LTA5LTMwIDIwOjEwICB3YXNtaXRoMzIKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgVXBkYXRlZCB0aGUgc2VydmljZSByZWdpc3RyYXRpb24gYmF0Y2ggZmlsZXMgZm9yIHRoZSBXaW5kb3dzIGluc3RhbGxlciBzY3JpcHQuCiAgIEFwcGxpZWQgYSBtb2RpZmllZCBwYXRjaCBbIDEwMzc2OTUgXSB3aXRoIGVkaXRzIG1hZGUgYnkgQWxleCBCdXJnZXIgYW5kIG15c2VsZi4KICAgVGhlIHBhdGNoIGFsc28gcmVtb3ZlcyBjb25maWd1cmF0aW9uIGZpbGVzIGZyb20gdGhlIHNjcmlwdCB0aGF0IHdlcmUgbm90CiAgIGJlaW5nIGluc3RhbGxlZC4KCjIwMDQtMDktMzAgMTE6MTIgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBjaGFuZ2UgNSAtPiB2YXJpb3VzIHNvIHdlIHN0b3AgZ2V0dGluZyBpdCB3cm9uZwoKMjAwNC0wOS0zMCAwODo1OSAgYWxleF9iCgogICAqIHdpbjMyL2J1aWxkLnBsOgoKICAgRm9yIGJ1ZyAxMDM3NTI0OiBTZXQgcGF0aCB0byAuRExMIGZvciBQZXJsIGJ1aWxkIC8gdGVzdAoKMjAwNC0wOS0zMCAwNTo0OCAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgSGF2ZSAncmVhZF9jb25maWdfcmVhZF9vY3RldF9zdHJpbmcnIHRha2Ugbm90ZSBvZiB0aGUKICAgaW5pdGlhbCBsZW5ndGggd2hlbiB1c2luZyBleGlzdGluZyBidWZmZXJzLgoKMjAwNC0wOS0zMCAwMjo1NSAgc2xpZgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBpZ25vcmUgZXJyb3JzIGZvciBhbnkgbWlzc2luZyBNQU41RyBmaWxlcyAoZS5nLiwgbWliMmMuY29uZi41KQoKMjAwNC0wOS0zMCAwMjo0MyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTNhZ2VudHh0cmFwOgoKICAgYWRkIERFTEFZIGFmdGVyIHNldCB0byBhbGxvdyB0aW1lIGZvciB0cmFwIHRvIGZpcmUgYW5kIGJlIGxvZ2dlZC4KCjIwMDQtMDktMzAgMDE6MzggIHNsaWYKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBmaXggIkluY29uc2lzdGVudCBvcGVyYXRvciBmb3IgdGVzdCIgd2hpY2ggd2FzIGludHJvZHVjZWQgd2hlbgogICB3aGl0ZXNwYWNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIGxpbmUgaW4gaW5zdGFsbHN1YmRpcmhlYWRlcnMuCiAgIEluZGVudCBsaW5lcyBvZiBydWxlIGJvZGllcyB1c2luZyB0YWIgb25seSAoYSByZXF1aXJlbWVudCBmb3Igc29tZSAibWFrZSIpLgogICBSZW1vdmUgZXh0cmFuZW91cyB3aGl0ZXNwYWNlIG5lYXIgdGhlIGVuZCBvZiBjb250aW51YXRpb24gbGluZXMuCgoyMDA0LTA5LTI5IDIzOjE4ICBzbGlmCgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgdHJ5IHRvIGluc3RhbGwgdWNkLXNubXAvYWdlbnRfbW9kdWxlX2NvbmZpZy5oIChubyBzdWNoIGZpbGUpCgoyMDA0LTA5LTI5IDE4OjAyICBhbGV4X2IKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLmM6CgogICBzbnByaW50ZiBub3cgdXNlcyBzaXplb2Yob2JqZWN0KQoKMjAwNC0wOS0yOSAxNzozNSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgbm90ZSBpbXBvcnRhbmNlIG9mIG1hdGNoaW5nIE1lc3NhZ2VJZCB2YWx1ZSBmb3IgUmVwb3J0RXZlbnQuCgoyMDA0LTA5LTI5IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBQYXRjaDogMTAzMTA0NiB3aGl0ZSBzcGFjZSB0YWIgZGFtYWdlCgoyMDA0LTA5LTI5IDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIG1hbi9zbm1wLmNvbmYuNS5kZWYsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLAogICAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFtubyBsb2cgbWVzc2FnZV0KCjIwMDQtMDktMjkgMTU6MzggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgUGF0Y2g6IFsgMTAzNDE1NiBdIENsYXJpZnkgT3BlblNTTCByZXEuIGluIHNubXBkLmNvbmYuNQoKMjAwNC0wOS0yOSAxNTozNiAgYWxleF9iCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFVwZGF0ZSBzZXJ2aWNlIHJlZ2lzdHJhdGlvbiBzZWN0aW9uIHRvIG1lbnRpb24gdGhlIG5lZWQgZm9yIGEgcmVib290IHRvCiAgIGFsbG93IHN5c3RlbSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYmUgdXNlZC4KCjIwMDQtMDktMjkgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgWyAxMDExMzMxIF0gdmFjbV9kZXN0cm95QWNjZXNzRW50cnkgd2FzIGRvdWJsZSBjaGVja2luZyBhIHZhbHVlIGFuZCBtaXNzbmlnIGFub3RoZXIuCgoyMDA0LTA5LTI5IDE1OjAxICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIHJlbW92ZSBqYXBhbiBtaXJyb3IgYXMgdGhlIG1haW50YWluZXIgcGFzc2VkIGF3YXkKCjIwMDQtMDktMjkgMTQ6MjMgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGZpeCBidWcgI0lGb3Jnb3QgdG8gZml4IGFnZW50eCB1c2FnZSBvbiB3aW5kb3dzIHRvIHVzZSBhIHJlYWwgc25tcGQuY29uZiB0b2tlbiBmb3Igc29ja2V0IGFkZHJlc3Mgc3VwcG9ydAoKMjAwNC0wOS0yOSAxMjo1OCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICByZW1vdmUgbm9uLXBvcnRhYmxlIChidXQgbmljZSBnb2FsKSBvcHRpbWl6ZWQgaGVhZGVyIGluc3RhbGxhdGlvbi4gIEJyZWFrcyBvbiBmcmVlYnNkIHN5c3RlbXMgd2hlcmUgY21wIGV4aXRzIHdpdGggc3RhdHVzIDIKCjIwMDQtMDktMjkgMTA6MzQgIGFsZXhfYgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBtYW4vbmV0c25tcF9zbm1wX2xvZ2dpbmcuMywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEFwcGx5IHBhdGNoIGluIGJ1ZyA5MjYzODkgYnkgTWlrZSBTbGlmY2FrIHRvIGZpeCBXaW4zMiBldmVudCBsb2cgbG9nZ2luZwogICBmb3Igc25tcHRyYXBkIGFuZCBzbm1wZC4gIEFkZHMgc25tcF9sb2dfc3lzbG9nbmFtZSgpIGZ1bmN0aW9uIHdoaWNoCiAgIGlzIG5vdyB1c2VkIGJ5IG9wZW5sb2coKS4KCjIwMDQtMDktMjkgMDc6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHJlbW92ZSB4eHggY29tbWVudHMgaW4gZ2VuZXJhdGVkIGNvZGUKICAgLSB1cGRhdGUgZm9yIHJlbmFtZSB0YWJsZV9jb250YWluZXIgZnVuY3Rpb25zCgoyMDA0LTA5LTI5IDA3OjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmksCiAgICAgbWZkLXRvcC5tMmM6CgogICByZW1vdmUgeHh4IGNvbW1lbnRzIGluIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA5LTI5IDA3OjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgY29udmVydCBtaXNzaW5nIGRpciBlcnJvciBtc2cgdG8gZGVidWcgbXNnCgoyMDA0LTA5LTI4IDE4OjQ2ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgdXBkYXRlIGZvciBuZXcgY29uZmlndXJlLmluCgoyMDA0LTA5LTI4IDE4OjQ1ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIC0gY2hlY2sgZm9yIG5ldC9pZl9hcnAuaCBoZWFkZXIKICAgLSBydW4gYXV0b2hlYWRlciB0byB1cGRhdGUgbmV0LXNubXAtY29uZmlnLmguaW4KCjIwMDQtMDktMjggMTg6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBhZGQgdm1uZXQgdG8gdHlwZS1ieS1uYW1lIGRldGVjdGlvbgoKMjAwNC0wOS0yOCAxODozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYzoKCiAgIC0gaW5jbHVkZSBuZXQvaWZfYXJwLmggc28gYXJwIHR5cGUgZGV0ZWN0aW9uIGhhcyBhIGNoYW5jZSB0byB3b3JrCiAgIC0gaWZkZWYgYXJwaHJkIHR5cGVzIHRoYXQgYXJlbid0IGNvbW1vbiAocHJldHR5IG11Y2ggYWxsIG9mIHRoZW0pCiAgIC0gZGVidWcgbXNnIG9uIHVua25vd24gdHlwZQoKMjAwNC0wOS0yOCAxNToyNCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIHVzZSB0aGUgY29ycmVjdCBodG9ucyBmdW5jdGlvbiB0byBhc3NpZ24gdG8gYSBOQk8gb2JqZWN0LgoKMjAwNC0wOS0yOCAxMzo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIC0gZmlyc3QgdXBkYXRlIGluIGEgd2hpbGUKICAgLSB1c2UgY3JlYXRlX2Zld2VyX2ZpbGVzIHRvIGRldGVybWluZSBjb3JyZWN0IGZpbGUgbmFtZQogICAtIGNoZyBpbmRleCBjb250ZXh0IHRvIG1pYiBjb250ZXh0CiAgIC0gY2hnIHRhYmxlIGNvbnRleHQgdG8gcm93IHJlcXVlc3QgY29udGV4dAogICAtIHJlbW92ZSBhc3N1bXB0aW9ucyBhYm91dCBkYXRhIGFjY2VzcyBtZXRob2QKICAgLSBhZGQgZXhhbXBsZSBmdW5jdGlvbiBmbG93ICh3L3NvdXJjZSBmaWxlKSBmb3IgdmFyaW91cyByZXF1ZXN0IHNjZW5hcmlvcwoKMjAwNC0wOS0yOCAwNjowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIGFkZCBkZWJ1ZwoKMjAwNC0wOS0yOCAwNTo1OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICBmaXggbGVuZ3RoIGZvciBtZW1jcHkKCjIwMDQtMDktMjcgMTc6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIGZpeCBhIGZldyBkZWJ1ZyBtZXNzYWdlcwogICAtIGxvZyBlcnJvciBvbiB1a25vd24gY29sdW1uCiAgIC0gZG9uJ3QgcHV0IHVuZG9fKHNldHVwfGNsZWFudXApIGluIGludGVyZmFjZSBjb2RlIGZvciBnZW5lcmF0ZWQgc3RydWN0dXJlcwogICAtIGNhbGwgbm9kZSB1bmRvX3NldHVwIGZ1bmN0aW9ucyBhZnRlciByb3cgdW5kb19zZXR1cAoKMjAwNC0wOS0yNyAxNzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICByZW1vdmUgYSBibGFuayBsaW5lIHRoYXQgc251Y2sgaW4KCjIwMDQtMDktMjcgMTc6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIGZpeCBsb2dpYyB0ZXN0IChkZWZ2YWwgaXMgYSBzdHJpbmcsIG5vdCBhIGZsYWcpCgoyMDA0LTA5LTI3IDE3OjE1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICBza2lwIHVuZG9fY2xlYW51cCBpZiB1bmRvX3NldHVwIHdhc24ndCBydW4KCjIwMDQtMDktMjcgMTQ6MzYgIGFsZXhfYgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBSZW1vdmUgbWVudGlvbiBvZiBmaXhpbmcgU1lOT1BTSVMgaW4gc25tcG5ldHN0YXQsIHNubXBkZWx0YSBhbmQgc25tcGRmCgoyMDA0LTA5LTI3IDE0OjIxICBhbGV4X2IKCiAgICogbWFuLzogc25tcGRlbHRhLjEsIHNubXBkZi4xLCBzbm1wbmV0c3RhdC4xOgoKICAgTWFrZSBjb21tYW5kcyBpbiBTWU5PUFNJUyAvIERFU0NSSVBUSU9OIHNlY3Rpb24gYm9sZAoKMjAwNC0wOS0yNyAxMjowNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGFsbG93IGZvciBmaW5lciBncmFpbmVkIGRlYnVnIGNvbnRyb2wKCjIwMDQtMDktMjcgMTA6NDQgIGFsZXhfYgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIE1lcmdlZCBtb3N0IFdyaXRlVG9FdmVudExvZyBhbmQgRGlzcGxheUVycm9yIGNhbGxzIGludG8gUHJvY2Vzc0Vycm9yIHNvIGV2ZW50LCBjb25zb2xlICYgcG9wLXVwIG1lc3NhZ2VzIGFyZSBjb25zaXN0ZW50LiAgQ2hhbmdlZCBhbGwgc3RwcmludGYncyB0byBzbnByaW50ZnMuCgoyMDA0LTA5LTI3IDA2OjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGZpeCB0eXBvCgoyMDA0LTA5LTI3IDA1OjUxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYzoKCiAgIGRvbid0IG1vZGlmeSB0YWJsZSByZXF1ZXN0IGRhdGEgaWYgbm8gbmV4dCBjb2x1bW4KCjIwMDQtMDktMjYgMTM6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIC0gZGVidWcgdG9rZW4gY29uc2lzdGVuY3kKICAgLSByZW1vdmUgZHVwbGljYXRlIHZhbHVlIG1hcCBmb3IgaW5kZXhlcwoKMjAwNC0wOS0yNiAxMzozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwKICAgICBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKLCBub2RlLWdldC5tMmksIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLAogICAgIHBhcmVudC1zZXQubTJpOgoKICAgLSBkZWJ1ZyB0b2tlbiBjb25zaXN0ZW5jeQogICAtIGFkZCBtaXNzaW5nIGRlYnVncwoKMjAwNC0wOS0yNiAxMzozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oOgoKICAgZml4IHBhdGhzCgoyMDA0LTA5LTI0IDEyOjAzICBzbGlmCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgd2hlbiBjcmVhdGluZyBhZGRyZXNzIGZyb20gb3N0cmluZywgY29udmVydCBwb3J0IHRvIG5ldHdvcmsgYnl0ZSBvcmRlcgoKMjAwNC0wOS0yNCAwOToxNSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIGZpeCBjb21tYXMgaW4gY29tbWVudGVkIG91dCBpdGVtcwoKMjAwNC0wOS0yNCAwNzo1NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIExpbnV4IG1lbW9yeSBidWZmZXJzIHBhdGNoIGZyb20gS2FqIE5pZW1pIChGZWRvcmEgKmhyX3N0b3JhZ2UtbWJ1Zi12Mi5wYXRjaCkKCjIwMDQtMDktMjQgMDc6NDYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBpbml0IGlucHV0L291dHB1dCB2YXJpYWJsZSBzYV9lbnRlcnByaXNlb2lkX2xlbiAoRmVkb3JhICpzbXV4LXN0YWNrLXZhci5wYXRjaCkKCjIwMDQtMDktMjQgMDc6MzggIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIHdoZW4gY3JlYXRpbmcgYWRkcmVzcyBmcm9tIG9zdHJpbmcsIGNvbnZlcnQgcG9ydCB0byBuZXR3b3JrIGJ5dGUgb3JkZXIKCjIwMDQtMDktMjQgMDY6MTggIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL3NubXBrc20uYzoKCiAgIHBhdGNoIDkyMzUxMSBhZGRzIHN1cHBvcnQgZm9yIG5vbi1ob3N0IHNlcnZpY2UgcHJpbmNpcGFsIGZvciBrc20KCjIwMDQtMDktMjQgMDU6NTAgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBwYXRjaCAxMDEwMzk1IHJlbW92ZSBkdXBsaWNhdGUgY2hlY2tzIGZvciBzbnByaW50ZiBhbmQgc3RydG91bAogICBwYXRjaCAxMDA5NzEyIGNoZWNrIGZvciBnZXRob3N0YnluYW1lIGluIC1sc29ja2V0IGZvciBVbml4d2FyZQoKMjAwNC0wOS0yNCAwNTozMCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIHBhdGNoIDEwMzI2MDIgc3VwcG9ydHMgTGludXggY3Jvc3MgY29tcGlsZXIgZm9yIFdpbmRvd3MgKHRhcmdldCBtaW5ndzMybXN2YykuCgoyMDA0LTA5LTIzIDE2OjE1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICAgIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0OgoKICAgdW5kbyBwYXRjaCAjMTAyNzUyMiBhcyBpdCB2aW9sYXRlcyBSRkMgMTkwMiBzZWN0aW9uIDEwLjIKICAgd2hlbiB0aGUgTUlCIG9iamVjdHMgd2VyZSBjaGFuZ2VkLgoKMjAwNC0wOS0yMyAxNDo1NyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmgsIHNubXBsaWIvc2NhcGkuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byByZXR1cm4gdGhlIHJlcXVpcmVkIGxlbmd0aCBvZiBhIHByaXZhY3kga2V5CgoyMDA0LTA5LTIzIDEzOjI0ICByc3RvcnkKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCjoKCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZQogICAtIGZpeCBmdW5jdGlvbiBjYWxsCiAgIC0gZml4IHJlbmFtZWQgdmFyIG1pc3NlZCBpbiBtZXJnZQoKMjAwNC0wOS0yMyAwOToxOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgICBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dDoKCiAgIGFwcGx5IHBhdGNoICMxMDI3NTIyIHRvIHBlcm1pdCByZXBvcnRpbmcgbmVnYXRpdmUgc2Vuc29yIHZhbHVlcwoKMjAwNC0wOS0yMyAwOTowOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYzoKCiAgIGFwcGx5IG1vZGlmaWVkIHBhdGNoICMxMDI3NTIxIHRvIGZpeCBwcm9ibGVtcyB3aXRoIHNlbnNvciBjYXRlZ29yaWVzICh0eXBlcykuCgoyMDA0LTA5LTIzIDA4OjU4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgYXBwbHkgcGFydCBvZiBwYXRjaCAjOTYwMjY5IHRvIHJlbGVhc2UgbWVtb3J5IHJldHVybmVkIGZyb20gc2Vuc29yX2dldF9sYWJlbAoKMjAwNC0wOS0yMiAxNzo1MSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2h0bWxoZWxwLzogc25tcC5jb25mLndpbjMyLmh0bWwsCiAgICAgc25tcGQuY29uZi53aW4zMi5odG1sLCBzbm1wdHJhcGQuY29uZi53aW4zMi5odG1sOgoKICAgcGF0Y2ggMTAzMzA1MiBmcm9tIEFsZXggQnVyZ2VyOiBXaW4zMjogVXBkYXRlZCBodG1saGVscCBmaWxlcyBmb3IgKi5jb25mCgoyMDA0LTA5LTIyIDExOjIwICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKOgoKICAgYXBwbHkgcGF0Y2ggIzEwMzA5MTMgdG8gc3VwcHJlc3Mgd2luZG93cyBwb3B1cHMgZm9yIHNlcnZpY2UgcmVnL3VucmVnIGVycm9ycy4KICAgZXJyb3JzIGFyZSBwcmludGVkIHRvIHN0ZGVyciBpZiAtcXVpZXQgcGFyYW1ldGVyIGlzIHN1cHBsaWVkLgoKMjAwNC0wOS0yMiAxMTowNiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICBodG1saGVscC9JbnRyb2R1Y3Rpb24uaHRtbDoKCiAgIGFwcGx5IHBhdGNoIzEwMzkwMCBzbyB0aGF0IGludHJvIG1vcmUgY2xvc2VseSBtYXRjaGVzIGN1cnJlbnQgd2ViIHNpdGUgaG9tZSBwYWdlLgogICBhbHNvIGFkanVzdCBidWlsZCBpbnN0cnVjdGlvbnMgdG8gcmVtb3ZlIGV4YW1wbGUgYW5kIGRlbW8gTUlCcyBmcm9tIGJ1aWxkLgoKMjAwNC0wOS0yMiAxMTowMSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFwcGx5IHBhdGNoIzEwMjg5NzYgY2hlY2sgdmFsdWVzIGZvciBsYWJlbCwgaWlkIGJlZm9yZSBkZXJlZmVyZW5jZS4KICAgRml4ZXMgcGVybCBtb2R1bGUgZmF1bHQsIGFzeW5jIGNhbGxiYWNrLiBTZWUgUmVkSGF0IGJ1ZyAjMTExMzE5CgoyMDA0LTA5LTIyIDA5OjM2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHVzbS4xLmRlZjoKCiAgIHBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hZ2Fya2FyIHRvIHN1cHBvcnQga2V5IGNoYW5naW5nIGZvciBsb2NhbGl6ZWQtb25seSBrZXlzCgoyMDA0LTA5LTIyIDA3OjA2ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBhdGNoIDEwMjg5MjcgZnJvbSBBbmR5IFNtaXRoIGZpeGVzIGJ1ZyA5NzI3OTc7IHJlZ2lzdGVyaW5nIHdpbjMyCiAgIHNubXBkL3NubXB0cmFwZCBzZXJ2aWNlcyBpbmNsdWRlcyBwYXRocyB0byBjb25maWcgZmlsZSBhbmQgdG8gbG9nIGZpbGUuCgoyMDA0LTA5LTIyIDA3OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvOgogICAgIHVzbURIVXNlcktleVRhYmxlLmMsIHVzbURIVXNlcktleVRhYmxlLmgsCiAgICAgdXNtREhVc2VyS2V5VGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmMsIHVzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLCB1c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jLAogICAgIHVzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgsIHVzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIHVwZGF0ZSBmb3IgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMjEgMTk6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOiBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIHVwZGF0ZSBmb3IgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDktMjEgMTk6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBkb24ndCBnZW5lcmF0ZSBtYWNyb3MgdGhhdCBhcmUgaW4gbWZkLmgKCjIwMDQtMDktMjEgMTk6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBmaXggdHlwbwoKMjAwNC0wOS0yMSAxOTozMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWRlcGVuZGVuY2llcy5tMmk6CgogICBvbmx5IGdlbmVyYXRlIHJvdyBjcmVhdGlvbiBjaGVjayBpZiBtMmNfdGFibGVfcm93X2NyZWF0aW9uIHNldAoKMjAwNC0wOS0yMSAxOToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLW9pZHMubTJjOgoKICAgLSBzZXQgdXAgbWFjcm8gdy9yZXF1aXJlZCBjb2x1bW5zIGZvciByb3cgY3JlYXRpb24KCjIwMDQtMDktMjEgMTY6NDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5jb2x1bW5fc3RvcmFnZS5jb25mOgoKICAgc3RvcmFnZSBmb3IgdGFibGUgaW5kZXhlcyBhbmQgY29sdW1ucwoKMjAwNC0wOS0yMSAxNjozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gbW92ZSByb3dfbWVyZ2UgYWZ0ZXIgdGFibGVfY29udGFpbmVyIGluIGhhbmRsZXIgY2hhaW4KCjIwMDQtMDktMjEgMTY6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIGluY3JlYXNlIGNvbnRleHQgZm9yIGRpZmYKICAgLSBpbmNyZWFzZSBmdXp6IGZvciBwYXRjaAoKMjAwNC0wOS0yMSAxNjoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIC0gYWxsb2NhdGUgdGFnIHN0b3JhZ2UgZWFybGllciwgd2l0aCBzcGFjZSBmb3IgbnVsbCB0ZXJtaW5hdGlvbgogICAtIGFsbG9jIHNwYWNlIGZvciBudWxsIHRlcm1pbmF0aW9uIG9mIG5hbWUKICAgLSByZXR1cm4gZXJyb3IgaWYgYWxsb2NhdGlvbnMgZmFpbAoKMjAwNC0wOS0yMSAxNjoyNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBzZXQgZW5kb2ZtaWJ2aWV3IHdoZW4gZ2V0bmV4dCBnb2VzIGJleW9uZCBsYXN0IGl0ZW0gaW4gdGFibGUKCjIwMDQtMDktMjEgMTY6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jOgoKICAgbWFyayBwcm9jZXNzZWQgcmVxdWVzdHMgYXMgRE9ORSBzbyB0aGV5IGFyZW4ndCBtZXJnZWQKCjIwMDQtMDktMjEgMTQ6NTkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBpZmRlZi9jb21tZW50IHNvbWUgZGVidWcgYXNzZXJ0IGNvZGUgdGhhdCBnZXRzIGhpdCBpbiByYXJlIGNhc2VzCgoyMDA0LTA5LTIxIDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIHBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hZ2Fya2FyIHRvIHN1cHBvcnQga2V5IGNoYW5naW5nIGZvciBsb2NhbGl6ZWQtb25seSBrZXlzCgoyMDA0LTA5LTIxIDA2OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIFBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hIHRvIGZpeCBESCBrZXkgbGVuZ3RocwoKMjAwNC0wOS0yMSAwNjo0MyAgaGFyZGFrZXIKCiAgICoKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCjoKCiAgIGNoZWNrIGEgZmV3IHBvaW50ZXJzIGJlZm9yZSB1c2luZyB0aGVtCgoyMDA0LTA5LTE3IDAxOjIyICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ2hlY2sgZm9yIGFuZCBpbmNsdWRlIHJwbS9ycG1kYi5oCgoyMDA0LTA5LTE3IDAxOjA0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBUaGlzIHdhcyBub3QgYWx3YXlzIGFuIHVudXNlZCB2YXJpYWJsZQoKMjAwNC0wOS0xNyAwMDo1OCAgbmJhCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgRml4IE9wZW5TU0wgY2hlY2ggdG8gd29yayBvbiA2NC1iaXQgU29sYXJpcyBjb21waWxlIHdpdGggMzItYml0IE9wZW5TU0wKICAgaW5zdGFsbGVkIC4uLgoKMjAwNC0wOS0xNiAxMDozNCAgcnN0b3J5CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWIyYy5jb2x1bW5fc3RvcmFnZS5jb25mCgoyMDA0LTA5LTE2IDEwOjM0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSBkb24ndCBmcmVlIE5VTEwgcG9pbnRlcgogICAtIHVwY2FzZSBmaXJzdCB3b3JkIGluIHNlbnRlbmNlCiAgIC0gZXhwYW5kIG1vcmUgb24gbm9DcmVhdGlvbiBleHBsYW5pdG9yeSBtZXNzYWdlCiAgIC0gYWRkIGV4cGxhbml0b3J5IG1lc3NhZ2UgZm9yIGluY29uc2lzdGVudE5hbWUKCjIwMDQtMDktMTYgMTA6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBsb2cgZXJyb3IgbWVzc2FnZSBpZiBhIE1JQiBkaXJlY3RvcnkgY2Fubm90IGJlIG9wZW5lZAoKMjAwNC0wOS0xNiAwODozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3RjcC1taWIuaCwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL3RjcENvbm5UYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZSwKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL01ha2VmaWxlLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubi5oLAogICAgIGFnZW50L21pYmdyb3VwL3RjcC1taWIvZGF0YV9hY2Nlc3MvdGNwQ29ubl9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC90Y3AtbWliL2RhdGFfYWNjZXNzL3RjcENvbm5fbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL3RjcENvbm4uaDoKCiAgIGRhdGEgYWNjZXNzIGZvciB0Y3AtbWliIHRjcCBjb25uZWN0aW9ucyAoaXB2NCBvbmx5KQoKMjAwNC0wOS0xNiAwODoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICAtIHJlbW92ZSB1bnVzZWQgdmFycwogICAtIGNyZWF0ZSBkZWZhdWx0LW5vZGUtJHtub2RlfS5tMmQgdy9jdXJyZW50IHZhbHVlcywgaWZmIGRvZXNuJ3QgZXhpc3QKCjIwMDQtMDktMTYgMDg6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgZG9uJ3QgZ2VuZXJhdGUgbWFwcGluZyBjb2RlIGlmIHNraXAgbWFwcGluZyBzZXQKCjIwMDQtMDktMTUgMTc6MjIgIHNsaWYKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIGZyZWVic2Q1LzYgaGVhZGVycwoKMjAwNC0wOS0xNSAxNTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXggYW4gb3Bwcy4gIERlbGV0ZSB0aGUgdXNtIHN0YXRlIHJlZiBiZWZvcmUgdGhlIGhhbmRsaW5nIG9mIHJlcG9ydHMgc2luY2UgaXQgZGlkbid0IG5lZWQgaXQgYmVmb3JlCgoyMDA0LTA5LTE1IDA5OjU3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaDoKCiAgIG1ha2UgdGhlIEhhbmRsZVJlcG9ydCBjYWxsYmFjayB0YWtlIGEgdHJhbnNwb3J0IHBvaW50ZXIKCjIwMDQtMDktMTUgMDk6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgTWFrZSB0aGUgdXNtIG1vZHVsZSBoYW5kbGUgaXRzIG93biByZXByb3RzCgoyMDA0LTA5LTE1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkb24ndCBmcmVlIHRoZSBzdGF0ZSByZWZlcmVuY2UgdGlsbCBhZnRlciB0aGUgaGFuZGxlX3JlcG9ydF9wZHUgY2FsbGJhY2sgaXMgY2FsbGVkLiAgQWxzbyBwYXNzIGluIHRoZSB0cmFuc3BvcnQgdG8gdGhlIHNhbWUgaG9vay4KCjIwMDQtMDktMTUgMDk6MTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgZGFyd2luNyBoZWFkZXIKCjIwMDQtMDktMTUgMDc6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpOgoKICAgLSBjaGVjayBjb2x1bW5fc2V0X2ZsYWdzIHRvIHNlZSBpZiByb3dzdGF0dXMgc2V0CiAgICAgLSBvbmx5IGNoZWNrIHRyYW5zaXRpb24gaWYgc2V0CiAgICAgLSBjaGVjayByZXF1aXJlZCByb3dzIG9uIGNyZWF0ZUFuZEdvCiAgICAgLSBkb24ndCBhbGxvdyBkZXN0cm95IGlmIG90aGVyIGNvbHVtbnMgc2V0CiAgIC0gZG9uJ3QgYWxsb3cgY3JlYXRpb24gaWYgcm93c3RhdHVzIG5vdCBzZXQKCjIwMDQtMDktMTUgMDc6MjEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaSwKICAgICBwYXJlbnQtc2V0Lm0yaToKCiAgIC0gcmVuYW1lIHNldF9mbGFncwogICAtIGFkZCBjb21tZW50IGFib3V0IHJvdyBjcmVhdGVkIGZsYWcgaW4gcm93cmVxX2ZsYWdzCgoyMDA0LTA5LTE1IDA3OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGNvbW1lbnQgZ3JhbW1hciB0d2VhawoKMjAwNC0wOS0xNSAwNzoxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIC0gYWRkIHJvd3JlcV9mbGFncwogICAtIHJlbmFtZSBzZXRfZmxhZ3MgdG8gY29sdW1uX3NldF9mbGFncwogICAtIHVzZSBjb250ZXh0IG5hbWUgZm9yIGV4YW1wbGUgdXNlciBjb250ZXh0IGRhdGEgbGlzdAoKMjAwNC0wOS0xNSAwNzoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gdXNlIG5ldyBtYWNybyB0byB2YWxpZGF0ZSBTTk1QIGVycm9yIGNvZGVzCiAgIC0gdXNlIG5ldyByb3dyZXFfZmxhZ3MgdG8gc2V0L2NsZWFyIG5ldyByb3cgZmxhZwogICAtIHNldCByZXF1ZXN0IGVycm9yIG9uIGludmFsaWQgb2lkIGZvciBuZXcgcm93CiAgIC0gY2xlYXIgdW5kbyBwb2ludGVyIGFmdGVyIHJlbGVhc2luZyBpdAogICAtIHNldCBXUk9OR0xFTkdUSCBmb3IgYmFkIHZhcmlhYmxlIHNpemUKCjIwMDQtMDktMTUgMDc6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIGFkZCBpbmNsdWRlIHRvIHF1aWV0IGNvbXBpbGVyCgoyMDA0LTA5LTE1IDA3OjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oOgoKICAgLSBhZGQgcHJvdG90eXBlIGZvciBzZV9maW5kX3NsaXN0CiAgIC0gdHdlYWsgY29tbWVudAoKMjAwNC0wOS0xNSAwNzoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmg6CgogICBuZXcgbWFjcm8gdG8gdmFsaWRhdGUgU05NUCBlcnJvciBjb2RlcwoKMjAwNC0wOS0xNSAwNzoxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWZkLmg6CgogICAtIGRlZmluZSBmbGFncyBmb3Igcm93cmVxX2ZsYWdzCgoyMDA0LTA5LTE1IDA3OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMuaCwKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYwo6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwogICAtIG1vdmUgc3RvcmFnZSB0eXBlIGludG8gZGF0YSBhY2Nlc3MgaW50ZXJmYWNlCiAgIC0gYWRkL3VzZSB1bmRvIHN0b3JhZ2UgZm9yIExhc3RDaGFuZ2VkCiAgIC0gYWRkIHN1cHBvcnQgZm9yIGNyZWF0aW9uL2RlbGV0aW9uIG9mIGlwYWRkcmVzc2VzIHZpYSBSb3dTdGF0dXMKICAgLSBhZGQgZmxhZ3MgZm9yIHJlcXVpcmVkIGNvbHVtbnMKCjIwMDQtMDktMTUgMDY6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIHJlbmFtZSBhcmNoIGZ1bmN0aW9ucwoKMjAwNC0wOS0xNSAwNjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCiAgIC0gdHdlYWsgbG9nIG1lc3NhZ2UsIGNvbW1lbnRzCgoyMDA0LTA5LTE1IDA2OjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5oLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSByZW5hbWUgYXJjaCBmdW5jdGlvbnMKICAgLSByZW1vdmUgYXJjaCBmbGFncywgYWRkIGRhdGEgbGlzdCBmb3IgYXJjaCBkYXRhCiAgICAgLSBhZGQgJiBjYWxsIGFyY2ggZnVuY3Rpb25zIG9uIGNyZWF0ZSwgY29weSwgZGVsZXRlIGlwYWRkcmVzcyBlbnRyeQogICAtIGFkZCBwcm90b3R5cGUgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgLSBuZXcgaXBhZGRyZXNzIHNldCAoY3JlYXRlL2RlbGV0ZSBpcCBhZGRyZXNzIGFsaWFzZXMpCiAgIC0gY2hhbmdlIG1hY3JvIG5hbWUKICAgLSBhZGQgZmxhZyBmb3IgYWxpYXNlcwoKMjAwNC0wOS0xNSAwNjo1MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVuYW1lIGFyY2ggZnVuY3Rpb25zCiAgIC0gYWRkIHByb3RvdHlwZSB0byBmaXggY29tcGlsZXIgd2FybmluZwogICAtIG5ldyBmdW5jdGlvbiB0byBmaW5kIGludGVyZmFjZSBuYW1lIGZyb20gaWZJbmRleAoKMjAwNC0wOS0xNCAxNTowMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBVcGRhdGUgdG8gbW9kdWxhcml6ZSBhIGJpdCBtb3JlIHRoZSBzZWN1cml0eSBtb2RlbCBpbmZyYXN0cnVjdHVyZTogcmVwb3J0IGhhbmRsaW5nIG91dHNvdXJjZWQgdG8gdGhlIHNlY21vZAoKMjAwNC0wOS0xMyAxOToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfY29uc3RhbnRzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2NvbnN0YW50cy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLCBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9jb25zdGFudHMuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfZGF0YV9hY2Nlc3MuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfaW50ZXJmYWNlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfZ2V0LmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2RhdGFfc2V0LmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2VudW1zLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9vaWRzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Jvd19tZXJnZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2NhbGFyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXJfZ3JvdXAuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9hcnAuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcHN0YXRzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9pdGVyYXRvci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfbGlzdF9zc2xsLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9udWxsLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ZhY3RvcnkuaCwKICAgICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYsCiAgICAgbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtaGVhZGVyLWJvdHRvbS5tMmksCiAgICAgc25tcGxpYi9tdF9zdXBwb3J0LmM6CgogICAtIHBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSB0byByZW1vdmUgJzsnIGZyb20gZXh0ZXJuICdDJyBoZWFkZXIgY29udHJ1Y3RzCiAgICAgKGFsbG93IGcrKyAzLjQgYW5kIGFib3ZlIHRvIGNvbXBpbGUgbmV0LXNubXApCgoyMDA0LTA5LTEzIDAzOjM0ICBzbGlmCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9TdjNjb25maWc6CgogICB3aGVuIG1hdGNoaW5nIENQUCBkZWZpbmVzLCBtYXRjaCB0aGUgb25lcyB3aGljaCBiZWdpbiB0aGUgc291cmNlIGhlYWRlciBsaW5lLgoKMjAwNC0wOS0xMyAwMzoyMCAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwKICAgICB3aW4zMi9kaXN0L1JFQURNRS50eHQsIHdpbjMyL2Rpc3QvaHRtbGhlbHAvTmV0LVNOTVAuaGhjCiwgd2luMzIvZGlzdC9odG1saGVscC9OZXQtU05NUC5oaHAsCiAgICAgd2luMzIvZGlzdC9zY3JpcHRzL3BvZGRpcjJodG1sLAogICAgIHdpbjMyL2Rpc3Qvc2NyaXB0cy9yZWFkbWUyaHRtbDoKCiAgIGFwcGx5IHBhdGNoICMxMDI2NjkgV2luMzIgNS4yIGJ1aWxkIHVwZGF0ZXNgCgoyMDA0LTA5LTEyIDIyOjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYzoKCiAgIC0gaW5jbHVkZSBpcEFkZHJlc3NUYWJsZV9jb25zdGFudHMKICAgLSBpbml0aWFsaXplIGRlZmF1bHRzIHBlciB0aGUgbWliCgoyMDA0LTA5LTEyIDIyOjIwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pcGFkZHJlc3MuaDoKCiAgIC0gY2hhbmdlIGNvbW1lbnQKICAgLSBhZGQgc3RvcmFnZSB0eXBlCiAgIC0gZGVmaW5lIGZsYWdzIGZvciBzZXQgc3VwcG9ydAoKMjAwNC0wOS0xMiAyMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBmaXggZGF0YSBsb29rdXAgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgdmFyYmluZHMKCjIwMDQtMDktMTIgMjI6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIC0gZml4IHNraXBwaW5nIG9mIHVuLXJlZ2lzdGVyZWQgbW9kZXMKICAgLSByZW1vdmUgcmVxdWVzdCBuZXh0X21vZGUgc3R1ZmYgKG5ldmVyIHVzZWQpCiAgIC0gc2hvcnRlbiBtdXggZGVidWcgdG9rZW4KCjIwMDQtMDktMTAgMTU6NTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgZG9uJ3QgbWFzayByZXR1cm4gY29kZXMgaW4gaW50ZXJuYWwgZnVuY3Rpb25zCgoyMDA0LTA5LTEwIDE1OjExICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmg6CgogICBhZGQgdW5kbyBzdG9yYWdlIGZvciByb3dzdGF0dXMgYW5kIHN0b3JhZ2UgdHlwZQoKMjAwNC0wOS0xMCAxNDo0NyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgLSBuZXcgZnVuY3Rpb24gbmV0c25tcF9iYWJ5X3N0ZXBfbW9kZTJmbGFnCiAgIC0gdXNlIG5ldyBmdW5jdGlvbiwgc28gc2tpcHBpbmcgdW5yZWdpc3RlcmVkIG1vZGVzIHdvcmtzCgoyMDA0LTA5LTEwIDE0OjQyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgLSB1c2UgbWZkIHN1Y2NlIG1hY3JvIGluc3RlYWQgb2Ygc25tcCBtYWNybwogICAtIGlmIGNoZWNrIHJldHVybnMgYW4gZXJyb3IsIHJldHVybiBpbW1lZGlhdGVseQoKMjAwNC0wOS0xMCAxNDozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtU3RvcmFnZVR5cGUtZGVwZW5kZW5jaWVzLm0yaToKCiAgIHVzZSBjb3JyZWN0IGZ1bmN0aW9uIG5hbWUKCjIwMDQtMDktMTAgMTM6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBhZGQgZGVmaW5lIHRvIGFsbG93IHJvdy1jcmVhdGlvbgoKMjAwNC0wOS0xMCAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS86IGlwQWRkcmVzc1RhYmxlLmMsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA5LTEwIDA1OjMwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENoZWNrIHRoYXQgYSB2YXJpYWJsZSBjb3JyZXNwb25kcyB0byBhIHZhbGlkIE1JQiBvYmplY3QsCiAgIGJlZm9yZSB0cnlpbmcgdG8gbG9vayBhdCBjaGFyYWN0ZXJpc3RpY3Mgb2YgdGhpcyBvYmplY3QuCiAgIChGaXhlcyBhIHByb2JsZW0gd2l0aCB0aGUgTUZEIHNjcmlwdHMsIHdoaWNoIHVzZSB0aGUgbWliMmMKICAgIHZhcmlhYmxlIGV4cGFuc2lvbnMgZm9yIG5vbi1NSUItb2JqZWN0IG5hbWVzIGFzIHdlbGwpLgoKMjAwNC0wOS0wOSAxNjoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gZml4IGxvZyBtc2cgdHlwbwogICAtIHNldCByZXF1ZXN0IGVycm9ycyBpbnN0ZWFkIG9mIHJldHVybmluZyBlcnJvciBmcm9tIGhhbmRsZXIKICAgLSBkZWJ1ZyBtc2dzIGZvciByZXF1ZXN0IGVycm9ycwoKMjAwNC0wOS0wOSAxNjoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXZhcmJpbmQtdmFsaWRhdGUubTJpOgoKICAgYWRkIG1pc3NpbmcgcXVvdGUKCjIwMDQtMDktMDkgMDk6MTcgIGR0czEyCgogICAqIE5FV1M6CgogICBNZW50aW9uIG5ldyBORVQtU05NUC1FWFRFTkQtTUlCIHN1cHBvcnQKICAgKHBsdXMgbWlub3IgZ3JhbW1hciBhbmQgZm9ybWF0dGluZyB0d2Vha3MpCgoyMDA0LTA5LTA5IDA3OjAxICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIGFwcGx5IHBhdGNoICMxMDI0MzUyIENoYW5nZXMgV2luZG93cyBpbnN0YWxsZXIgdG8gYWxsb3cgc25tcHRyYXBkIGFzIHNlcnZpY2UuCgoyMDA0LTA5LTA5IDA2OjQ5ICBzbGlmCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci5wbToKCiAgIGZvcm1hdHRpbmcgcGF0Y2ggIzEwMjQ3NDYgKG9uZS1saW5lcikgZnJvbSBBbGV4IEJ1cmdlci4KCjIwMDQtMDktMDkgMDM6NDMgIHNsaWYKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgICBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYywgc25tcGxpYi9jb250YWluZXIuYywKICAgICBzbm1wbGliL2NvbnRhaW5lcl9saXN0X3NzbGwuYzoKCiAgIGZpeCBidWcjMTAyNTAxNCAtIHJlbW92ZSB1bnVzZWRzLCBxdWVsbCBzaWduZWQvdW5zaWduZWQgd2FybmluZ3MgaW4gNS4yLnByZTEKCjIwMDQtMDktMDkgMDM6MzEgIHNsaWYKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGRlY2xhcmUgZXh0ZXJuYWwgZnVuY3Rpb24gd2l0aGluIHNjb3BlIHVzZWQuCgoyMDA0LTA5LTA5IDAzOjIyICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggYnVnIzEwMjUwMDQgYXBwbHkgbWlub3IgY29tbWVudCBhbmQgZ3JhbW1hciBmaXhlcyB0byBzbm1wZCxzbm1wdHJhcGQKCjIwMDQtMDktMDggMjA6NTIgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHBhcnRpYWwgZml4IGJ1ZyAjOTA5MjIyIC0gbW92ZSB3aW4zMiBjaGFuZ2VzIGluc2lkZSAgX2Rpc2FibGVfc3lzbG9ne2VudHJ5fSwKICAgZG9udCB3cml0ZSBzdGFuZGFyZCBlcnJvciBvbiBmYWlsdXJlIHRvIGNsb3NlIGV2ZW50IGxvZyBmcm9tIGRpc2FibGVfc3lzbG9nLgoKMjAwNC0wOS0wOCAxODo0MyAgc2xpZgoKICAgKiB3aW4zMi86IGFnZW50X21vZHVsZV9kb3RfY29uZi5oLCBhZ2VudF9tb2R1bGVfaW5jbHVkZXMuaAosIGFnZW50X21vZHVsZV9pbml0cy5oLCBidWlsZC5wbCwKICAgICBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsIG1pYl9tb2R1bGVfaW5pdHMuaCwKICAgICBtaWJfbW9kdWxlX3NodXRkb3duLmgsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIG5ldC1zbm1wL2FnZW50L2FnZW50X21vZHVsZV9jb25maWcuaCwKICAgICBuZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oLCBuZXRzbm1wbWlicy9NYWtlZmlsZS5pbgosIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICBuZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbiwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3A6CgogICBBcHBseSBtb2RzIGluIHBhdGNoICMxMDI0ODEwIGluIG9yZGVyIHRvIGJ1aWxkIDUuMi5wcmUxIG9uIHdpbjMyIE1TVkMrTWluR1cuCgoyMDA0LTA5LTA4IDA4OjM5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICBmaXggYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkgbWFjcm8gbmFtZQoKMjAwNC0wOS0wNyAyMDo0OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5jOgoKICAgbWFwIGRhdGEgYWNjZXNzIGlmIGFkZHJlc3MgdHlwZSB0byBtaWIgdHlwZSBpbiBpbmRleAoKMjAwNC0wOS0wNyAyMDo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIHBhc3MgY29ycmVjdCBjb250YWluZXIgdG8gdXBkYXRlIGNoZWNrIGZ1bmN0aW9uc28gbWlzc2luZyBhZGRycyBhcmUgcmVtb3ZlZAoKMjAwNC0wOS0wNyAyMDo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIG51bGwgcm93cmVxX2N0eCBpcyB2YWxpZCBpbiB1bmRvX2NsZWFudXA7IHNpbXBseSByZXR1cm4gc3VjY2VzcwoKMjAwNC0wOS0wNyAyMDozOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gZml4IGlmSW5kZXggbG9va3VwIGZvciBpbnRlcmZhY2UgYWxpYXNlcwogICAtIGFkZCBkZWJ1ZyBtZXNzYWdlCiAgIC0gbmV3IGZ1bmN0aW9uIHRvIHNldCBpcGFkZHJlc3MKCjIwMDQtMDktMDcgMjA6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBhZGQgc2UgcGFpcnMgZm9yIGJhYnkgc3RlcCBtb2RlcwoKMjAwNC0wOS0wNyAyMDozMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvYmFieV9zdGVwcy5jOgoKICAgLSBrZWVwIHJlZ2lzdGVyZWQgbW9kZXMgd2l0aCBtaWIgaGFuZGxlcgogICAtIHNraXAgbG93ZXIgaGFuZGxlcnMgZm9yIG1vZGVzIHRoYXQgaGFuZGxlciBkaWRudCByZWdpc3RlciBmb3IKICAgLSBza2lwIHVuZG8gY29tbWl0IGlmIGhhbmRsZXIgd2FzbnQgY2FsbGVkIGZvciBjb21taXQKICAgLSBkb250IGJyZWFrIG9uIHJlcXVlc3QgZXJyb3IgaW4gZmluYWwgc3RlcHMgKGVxdWl2YWxlbnQgb2YgY29tbWl0L3VuZG8vZnJlZSkKICAgLSBtb3JlIGRlYnVnIG1zZ3MKCjIwMDQtMDktMDcgMjA6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2JhYnlfc3RlcHMuaDoKCiAgIC0gc3luYyBuYW1lcyBvZiBCQUJZX1NURVBfKiB3aXRoIE1PREVfQlNURVBfKgogICAtIGRlZmluZSBzdHJ1Y3R1cmUgZm9yIGJhYnkgc3RlcHMgaGFuZGxlciBtb2RlIHRyYWNraW5nCgoyMDA0LTA5LTA3IDIwOjE5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICBhZGQgZGVidWcgbXNnCgoyMDA0LTA5LTA2IDIwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICAtIGFkZCBwZXJzaXN0ZW5jZSBmb3IgaWZBbGlhcywgaWZMaW5rVXBEb3duVHJhcEVuYWJsZQogICAtIGRvbid0IGFsbG93IHNldCBvZiBwcm9taXNjdW91cyBtb2RlLCBzaW5jZSBpdCdzIG5vdCBpbXBsZW1lbnRlZAoKMjAwNC0wOS0wNiAxOToyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gZml4IGZpeGVkIHNpemUgY2hlY2sKICAgLSBhZGQgYWNjZXNzIHRvIGNvbnRhaW5lciBwb2ludGVyCgoyMDA0LTA5LTA2IDE5OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICBkb24ndCBnZW5lcmF0ZSBmaXhlZCBzaXplIGNoZWNrIGZvciBvY3RldCBzdHJpbmdzCgoyMDA0LTA5LTA2IDE5OjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIHNldCB1cCB2YXJzIGZvciBsZW5ndGhzIHRvIGJlIGNvcGllZCBjb3JyZWN0bHkKCjIwMDQtMDktMDUgMTg6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIHJlbW92ZSBleHRlcm4gb2Ygbm9uLWV4aXN0YW50IHZhcgoKMjAwNC0wOS0wMiAwNzoyMiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBkb250IGluY2x1ZGUgYnl0ZW9yZGVyLmggLS0gYXZvaWRzIHdhcm5pbmcgc2VlbiBvbiBSZWRIYXQKCjIwMDQtMDktMDIgMDY6NTggIGR0czEyCgogICAqIE5FV1M6CgogICBNZW50aW9uIHRoZSBvdGhlciBuZXcgbWliMmMgY29uZmlnIHRlbXBsYXRlcywgYW5kIHByb3ZpZGUgYSBsaXR0bGUKICAgbW9yZSBleHBsYW5hdGlvbi4gIChQbHVzIGZpeGluZyBhIGNvdXBsZSBvZiB0eXBvcykKCjIwMDQtMDktMDIgMDY6NTIgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZml4ICM5OTU0ODkgYnkgb2J0YWluaW5nIHN5c0Rlc2NyIGFuZCBzeXNDb250YWN0IHRocm91Z2ggd2luZG93cyBuYXRpdmUgbWV0aG9kcy4KCjIwMDQtMDktMDIgMDA6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICAtIHJlcXVpcmUgYWxsIGlmLW1pYiBpbnRlcmZhY2UgZm9yIGxpbnV4CgoyMDA0LTA5LTAyIDAwOjA0ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjA0ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDMgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDMgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5wcmUxICkKCjIwMDQtMDktMDIgMDA6MDMgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAyICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAyIDAwOjAyICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMSAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMCAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMCAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4yLnByZTEgKQoKMjAwNC0wOS0wMiAwMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIucHJlMSApCgoyMDA0LTA5LTAxIDIzOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIHJlcXVpcmUgZXhwbGljaXQgY29uZmlndXJlIGZsYWcgZm9yIGV4cGVyaW1lbnRhbCBtZmQgcmV3cml0ZSBtb2R1bGVzCgoyMDA0LTA5LTAxIDIzOjUxICByc3RvcnkKCiAgICogTkVXUzoKCiAgIC0gbWVyZ2UgNS4xLjIgbmV3cwogICAtIGFkZCBvdGhlciB0aWRiaXRzIGdsZWFuZWQgZnJvbSBDaGFuZ2Vsb2cKCjIwMDQtMDktMDEgMjM6NTEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIDUuMi5wcmUxCgoyMDA0LTA5LTAxIDIyOjU3ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywgbmV0c25tcF9hZ2VudC4zLAogICAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICAgIG5ldHNubXBfY2FjaGVfaGFuZGxlci4zLCBuZXRzbm1wX2NvbnRhaW5lci4zLAogICAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICAgIG5ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsIG5ldHNubXBfbGVhZi4zLAogICAgIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29pZF9zdGFzaC4zCiwgbmV0c25tcF9vbGRfYXBpLjMsIG5ldHNubXBfcmVhZF9vbmx5LjMsCiAgICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICAgIG5ldHNubXBfc3Rhc2hfY2FjaGUuMywgbmV0c25tcF90YWJsZS4zLAogICAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgICBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMywKICAgICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIHVwZGF0ZSBtYW4gcGFnZXMKCjIwMDQtMDktMDEgMjI6NTEgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfYWNjZXNzX21ldGhvZHMuMywKICAgICBuZXRzbm1wX3RhYmxlX2NvbnRhaW5lci4zLCBuZXRzbm1wX2FnZW50X3JlZ2lzdHJ5LjMsCiAgICAgbmV0c25tcF9hZ2VudF90cmFwLjMsIG5ldHNubXBfYXNuMV9wYWNrZXRfcGFyc2UuMywKICAgICBuZXRzbm1wX2NhbGxiYWNrLjMsIG5ldHNubXBfZGVmYXVsdF9zdG9yZS4zLAogICAgIG5ldHNubXBfbmV0c25tcF9hZ2VudF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9jb2x1bW5faW5mb190LjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2RhdGFfbGlzdF9zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX3MuMywKICAgICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF9yZXF1ZXN0X2luZm9fcy4zLAogICAgIG5ldHNubXBfbmV0c25tcF90YWJsZV9yZWdpc3RyYXRpb25faW5mb19zLjMsCiAgICAgbmV0c25tcF9uZXRzbm1wX3RhYmxlX3JlcXVlc3RfaW5mb19zLjMsCiAgICAgbmV0c25tcF9yZWFkX2NvbmZpZy4zLCBuZXRzbm1wX3NubXBfYWdlbnQuMywKICAgICBuZXRzbm1wX3NubXBfYWxhcm0uMywgbmV0c25tcF9zbm1wX2NsaWVudC4zLAogICAgIG5ldHNubXBfc25tcF9sb2dnaW5nLjMsIG5ldHNubXBfc25tcF9wZHUuMywKICAgICBuZXRzbm1wX3NubXBfc2Vzc2lvbi4zLCBuZXRzbm1wX3ZhcmlhYmxlX2xpc3QuMzoKCiAgIGNoZWNrIGluIG5ldyBtYW4gcGFnZXMKCjIwMDQtMDktMDEgMjI6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAosIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLAogICAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKCjIwMDQtMDktMDEgMjI6MTYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXBkYXRlIGFmdGVyIHJ1bm5pbmcgYXV0b2hlYWRlcgoKMjAwNC0wOS0wMSAyMjoxNCAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIC0gdXBkYXRlIGZvciA1LjIucHJlMQoKMjAwNC0wOS0wMSAyMjoxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oLCBpZi1taWIvaWZYVGFibGUvaWZYVGFibGUuaAosIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwgaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9zeXN0ZW1zdGF0c19jb21tb24uYywKICAgICBpcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBjb252ZXJ0IEMrKyBzdHlsZSBjb21tZW50cyB0byBDIHN0eWxlIGNvbW1lbnRzIChvciByZW1vdmUgdGhlbSkKCjIwMDQtMDktMDEgMjI6MDUgIHJzdG9yeQoKICAgKiBSRUFETUUub3NYOgoKICAgcmVhZG1lIGZvciBNYWMgT1MgWAoKMjAwNC0wOS0wMSAyMjowNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDktMDEgMjI6MDMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjIucHJlMQoKMjAwNC0wOS0wMSAyMToyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV4cHJlc3Npb24vZ251Yy5oLCBleHByZXNzaW9uL2luNi5oCiwgZXhwcmVzc2lvbi9pcF92YXIuaCwgZXhwcmVzc2lvbi9pcHY2LmgsCiAgICAgZXhwcmVzc2lvbi91ZHBfdmFyLmgsIHBpbmcvZ251Yy5oLCBwaW5nL2luNi5oLAogICAgIHBpbmcvaXBfdmFyLmgsIHBpbmcvaXB2Ni5oLCBwaW5nL3VkcF92YXIuaCwKICAgICB0cmFjZXJvdXRlL2dudWMuaCwgdHJhY2Vyb3V0ZS9pbjYuaCwKICAgICB0cmFjZXJvdXRlL2lwX3Zhci5oLCB0cmFjZXJvdXRlL2lwdjYuaCwKICAgICB0cmFjZXJvdXRlL3VkcF92YXIuaCwgbnNsb29rdXAvZ251Yy5oLCBuc2xvb2t1cC9pbjYuaAosIG5zbG9va3VwL2lwX3Zhci5oLCBuc2xvb2t1cC9pcHY2LmgsCiAgICAgbnNsb29rdXAvdWRwX3Zhci5oOgoKICAgcmVtb3ZlIEdQTCBsaWNlbnNlIGNvZGUsIHBsdXMgc29tZSBndWlsdHktYnktYXNzb2NpYXRpb24gZmlsZXMKCjIwMDQtMDktMDEgMjA6MTQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wOS0wMSAyMDoxMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIG9wZW5ic2QgbmVlZHMgc3lzL3R5cGVzIGJlZm9yZSB0Y3BkLmgKCjIwMDQtMDktMDEgMTk6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIHR3ZWFrIGNvbW1lbnQgYW5kIGxvZyBtZXNzYWdlIGZvcm1hdAoKMjAwNC0wOS0wMSAxOTozMiAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgLSB3aGl0ZXNwYWNlIGNoYW5nZSB0byBhZGQgcmVhbCBsb2cgbWVzc2FnZSAobGFzdCBjaGVja2luZyBoYWQgd3JvbmcgbG9nIG1lc3NhZ2UpCiAgIC0gYWRkIHBvcnQgbnVtYmVyIHRvIGRlYnVnIHN0YXRlbWVudAoKMjAwNC0wOS0wMSAxOToyOCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jOgoKICAgLSBpbmNyZWFzZSBtYXhfc2Vuc29ycwogICAtIGJyZWFrIHdoZW4gbnVtYmVyIG9mIHNlbnNvcnMgZXhjZWVkcyBtYXhfc2Vuc29ycwogICAtIGFkZCBkZWJ1ZwoKMjAwNC0wOS0wMSAxOToyNSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWd1cmUuaW4KCjIwMDQtMDktMDEgMTk6MjQgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBiYWlsIGlmIGxtX3NlbnNvcnMgaGVhZGVyL2xpYiBjaGVja3MgZmFpbAoKMjAwNC0wOS0wMSAxNzoxNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyX2dyb3VwLmM6CgogICAtIGRvbid0IHJldHVybiBoYW5kbGVyIGlmIGNhbid0IGFsbG9jYXRlIHNncm91cAogICAtIHVzZSBsb2NhbCB2YXIgZm9yIHJvb3RvaWQgbWFjaGluYXRpb25zLCBpbnN0ZWFkIG9mIHJlZ2luZm8gcm9vdG9pZAogICAgIChyZWFsbG9jIG9mIGV4dHJhIHN1Ym9pZHMgZG9lc24ndCBzdXJ2aXZlIHJlZ2lzdHJhdGlvbiwgd2hlbiBzdWJ0cmVlX3NwbGl0CiAgICAgY2FsbHMgbmV0c25tcF9zdWJ0cmVlX2RlZXBjb3B5KCkpIFtzY29yZSBvbmUgZm9yIGxpYmVmZW5jZV0KCjIwMDQtMDktMDEgMTc6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmg6CgogICBvbmx5IGNvbmZpZ19yZXF1aXJlIGlmLW1pYiBpbnRlcmZhY2VfY29tbW9uLCBub3QgYWxsIG9mIGlmLW1pYiBpbnRlcmZhY2UKCjIwMDQtMDktMDEgMTc6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgcmVtb3ZlIGNvbmZpZ19yZXF1aXJlIGZvciBwbGF0Zm9ybXMgd2hpY2ggaGF2ZW4ndCBiZWVuIHBvcnRlZCB5ZXQKCjIwMDQtMDktMDEgMTc6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwKICAgICBpbnRlcmZhY2VfY29tbW9uLmM6CgogICBpZmRlZiBvdXQgYXJjaCBzcGVjaWZpYyBmdW5jdGlvbnMgaWYgYXJjaCBub3Qgc3VwcG9ydGVkCgoyMDA0LTA5LTAxIDE3OjAzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIG9ubHkgcmVxdWlyZSBuZXcgbWZkIG1vZHVsZXMgZm9yIGxpbnV4LCB1bnRpbCBvdGhlciBwbGF0Zm9ybXMgYXJlIHBvcnRlZAoKMjAwNC0wOS0wMSAxNToyNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICBpbmNsdWRlIGFzbS90eXBlcy5oIHNvIHRoYXQgYWdlbnQgd2lsbCBidWlsZCBvbiBNYW5kcmFrZSBmbGF2b3JlZCBMaW51eC4KCjIwMDQtMDktMDEgMTQ6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICAtIHJlbW92ZSBDKysgc3R5bGUgY29tbWVudAogICAtIGRvY3VtZW50IHVzZSBvZiBzaW1wbGlzdGljIF9sb2NrCgoyMDA0LTA5LTAxIDE0OjMwICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q2Lmg6CgogICBwcm92aWRlIGhlYWRlciBmb3IgRnJlZUJTRCA2LiBmaXhlcyBidWcjMTAxODIwOQoKMjAwNC0wOS0wMSAxNDoxMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguYzoKCiAgIC0gb25seSBsb2cgb3BlbiBlcnIgb25jZSAodW50aWwgc3VjY2VzcywgdGhlbiByZXNldCBmbGFnKQoKMjAwNC0wOS0wMSAxNDowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzoKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUvaW5ldENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgY2hlY2sgZm9yIE5VTEwgcG9pbnRlciBmcm9tIGRhdGEgYWNjZXNzIHJvdXRpbmVzLCAmIHJldHVybiByZXNvdXJjZSB1bmF2YWlsYWJsZQoKMjAwNC0wOS0wMSAxMTozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIG9ubHkgbG9nIGZpbGUgb3BlbiBlcnJvciBvbmNlICh1bnRpbCBhIHN1Y2Nlc3NmdWwgb3BlbikKICAgLSByZXR1cm4gbm8gZXJyb3IgaWYgY291bGRuJ3Qgb3BlbiBpcHY2LCBzbyB3ZSBjYW4gY29udGludWUgdy9pcHY0CgoyMDA0LTA5LTAxIDEwOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gZWxpbWluYXRlIGRvdWJsZSBmcmVlIG9uIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24KICAgLSBmaXggcG90ZW50aWFsIG1lbW9yeSBsZWFrcyBvbiBmYWlsZWQgcmVnaXN0cmF0aW9uCiAgICAgKGkuZS4gYWx3YXlzIGZyZWUgcmVnaW5mbyBpZiByZWdpc3RyYXRpb24gZmFpbHMpCgoyMDA0LTA5LTAxIDEwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBlbGltaW5hdGUgZG91YmxlIGZyZWUgb24gZHVwbGljYXRlIHJlZ2lzdHJhdGlvbgoKMjAwNC0wOS0wMSAwODoyNSAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBBdHRlbXB0IHRvIGVuc3VyZSB0aGF0ICdpbnQzMl90JyBhbmQgKGlmIGFwcHJvcHJpYXRlKSAnaW50NjRfdCcKICAgdHlwZXMgKHBsdXMgdW5zaWduZWQgZXF1aXZhbGVudHMpIGFyZSBhdmFpbGFibGUuCgoyMDA0LTA5LTAxIDA2OjE5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBSZW1vdmUgdW5iYWxhbmNlZCAiQGVuZEAiIHN0YXRlbWVudHMuCgoyMDA0LTA5LTAxIDA1OjU3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgUHJvdmlkZSBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRhYmxlIGNvbmZpZyB0ZW1wbGF0ZXMsIGFuZAogICBkZXNjcmliZSB0aGUgZGlmZmVyZW5jZXMgYmV0d2VlbiB0aGVtIGEgbGl0dGxlIG1vcmUgZnVsbHkuCgoyMDA0LTA5LTAxIDA1OjU0ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlMi5jb25mOgoKICAgRml4IG1pbm9yIHR5cG8KCjIwMDQtMDgtMzEgMjE6MzYgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgLSB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uIGluZm9ybWF0aW9uCiAgIC0gYWRkIG5vdGUgb24gcnVubmluZyBjdnMyY2wgb24gYSBicmFuY2gKCjIwMDQtMDgtMzEgMjE6MjYgIHJzdG9yeQoKICAgKiBtYW4vbWliMmMuMS5kZWYsIGxvY2FsL21pYjJjLmNvbmY6CgogICBhZGQgaW5mb3JtYXRpb24gYWJvdXQgbWliMmMubWZkLmNvbmYKCjIwMDQtMDgtMzEgMjA6MDQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICAtIHVwZGF0ZSBjb21tZW50cyBvbiBsaWJ0b29sIHZlcnNpb25pbmcKICAgLSB1cGRhdGUgZm9yIDUuMgoKMjAwNC0wOC0zMSAxNjo0MyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBmaXggZmxvYXQgY2FsYyBpbiB2YXJfZXh0ZW5zaWJsZV9kaXNrIHBlciBIYXJhbGQgU3RyYeeIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXjg4NlcmdlciA8aHNAc3lzbG9nLmF0PgoKMjAwNC0wOC0zMSAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIGFnZW50X21vZHVsZV9jb25maWcuaAoKMjAwNC0wOC0zMSAwMzoyOCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgRGVjbGFyZSBoYW5kbGVycyBhcyBSV1JJVEUvUk9OTFkgYXMgYXBwcm9wcmlhdGUuCiAgIFN1cHByZXNzIFNFVCBoYW5kbGluZyBjb2RlIGZvciByZWFkLW9ubHkgdGFibGVzLgoKMjAwNC0wOC0zMSAwMzoyNSAgZHRzMTIKCiAgICogbG9jYWwvOiBzbm1wY29uZiwgbWliMmMtY29uZi5kL2RldGFpbHMtbm9kZS5tMmksCiAgICAgbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpLAogICAgIG1pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwKICAgICBtaWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtaWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBEYXZlJ3MgYmVpbmcgcGVybmlja2l0eSBhYm91dCBncmFtbWFyIGFnYWluLgogICAiSXQncyIgaXMgc2hvcnQgZm9yICJpdCBpcyIuCiAgICJCZWxvbmdpbmcgdG8gaXQiIGlzICJpdHMiIC0gbm8gYXBvc3Ryb3BoZS4KCjIwMDQtMDgtMzEgMDM6MjMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBJbXByb3ZlIGVycm9yIGhhbmRsaW5nIGZvciBpbnZhbGlkIFNFVCByZXF1ZXN0cy4KCjIwMDQtMDgtMzEgMDM6MjAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICBTdXBwcmVzcyBTRVQgaGFuZGxpbmcgY29kZSBmb3IgcmVhZC1vbmx5IHRhYmxlcy4KCjIwMDQtMDgtMzEgMDM6MTggIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5pdGVyYXRlX2FjY2Vzcy5jb25mCjoKCiAgIE9vcHMhICBtaWIyYyBjb25maWcgdHlwbwoKMjAwNC0wOC0zMSAwMzoxNiAgZHRzMTIKCiAgICogbG9jYWwvOiBtaWIyYy5pdGVyYXRlLmNvbmYsIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmYKOgoKICAgRGVjbGFyZSBoYW5kbGVycyBhcyBSV1JJVEUvUk9OTFkgYXMgYXBwcm9wcmlhdGUuCgoyMDA0LTA4LTMxIDAzOjExICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlMi5jb25mOgoKICAgQWx0ZXJuYXRpdmUgaXRlcmF0b3IgdGVtcGxhdGUuICBCYXNlZCBvbiBhIHNpbmdsZSBoYW5kbGVyICh1bmxpa2UKICAgJ2l0ZXJhdG9yX2FjY2VzcycpLCBidXQgc29tZXdoYXQgbW9yZSBjb21wbGV0ZSB0aGFuIHRoZSBvcmlnaW5hbCwKICAgcGFydGljdWxhcmx5IHcuci50LiBTRVQgaGFuZGxpbmcuCgoyMDA0LTA4LTMxIDAzOjA5ICBkdHMxMgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbnRhaW5lci5jb25mLCBtaWIyYy50YWJsZV9kYXRhLmNvbmY6CgogICBJbXByb3ZlIHRoZSBleGFtcGxlIGRhdGEgc3RydWN0dXJlIGRlZmluaXRpb24gKGVzcC4gdy5yLnQuIGluZGV4IHZhbHVlcykKCjIwMDQtMDgtMzEgMDA6MzcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIG5ldyBzdHJ1Y3QgdHlwZWRlZiwgbmV0c25tcF9oYW5kbGVyX2FyZ3MKCjIwMDQtMDgtMzEgMDA6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIC0gYWRkIG5ldyB2b2lkIHBvaW50ZXIgZm9yIGNhY2hlIGhpbnQKICAgLSBkZWZpbmUgbmV3IGZsYWcgZm9yIGhhbmRsZXIgYXJncyBjYWNoZSBoaW50CiAgIC0gcGFzcyBoYW5kbGVyIGFyZ3MgY2FjaGUgaGludCB3aGVuIGZsYWcgc2V0CgoyMDA0LTA4LTI4IDE1OjU0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oOgoKICAgY29uZmlnX3JlcXVpcmUgbWliSUkvdmFyX3JvdXRlIChVU0VfU1lTQ1RMX0lGIG5lZWRzIGdldF9hZGRyZXNzKQoKMjAwNC0wOC0yOCAxMjozOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIC0gbmV0c25tcF9hc3NlcnQgb24gc2VsZi1yZWZlcmVuY2UgaW4gbGlua2VkIGxpc3QKCjIwMDQtMDgtMjggMTI6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfZGF0YV9hY2Nlc3MuYwo6CgogICAtIGFkZCBjb21tZW50cwoKMjAwNC0wOC0yOCAxMjozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gY29tbWVudCBvdXQgY29uZmlnX3JlcXVpcmUgbWFjcm9zIGZvciB1bndyaXR0ZW4gbW9kdWxlcwoKMjAwNC0wOC0yOCAxMjoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gZG9jdW1lbnQgc2NhbmxpbmUgZm9ybWF0CgoyMDA0LTA4LTI4IDEyOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIC0gcmVtb3ZlIGV4dHJhbmVvdXMgJzsnCiAgICAgKGlzc3VlIG5vdGVkIGluIGJ1Zy9wYXRjaCAxMDExNDcxIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcykKCjIwMDQtMDgtMjggMTI6MTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIC0gaW5saW5lIGZpeGVzIGZyb20gU3RlcGhlbiBKLiBGcmllZGwsIHBsdXMgYSBmZXcgSSBmb3VuZAogICAgIChpc3N1ZXMgbm90ZWQgaW4gYnVnL3BhdGNoIDEwMTE0NzEgTW9yZSBTQ08gVW5peHdhcmUgNyBwYXRjaGVzKQoKMjAwNC0wOC0yOCAxMjoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICB1cGRhdGUgZm9yIG5ldyBhY2NvbmZpZy5oCgoyMDA0LTA4LTI4IDEyOjA4ICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIC0gb25seSBkZWZpbmUgaW5saW5lIG1hY3JvcyBpZiBlbmFibGVkCiAgICAgKGlzc3VlIG5vdGVkIGluIGJ1ZyAxMDExNDcxIE1vcmUgU0NPIFVuaXh3YXJlIDcgcGF0Y2hlcykKCjIwMDQtMDgtMjcgMjM6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIGZpeCAxLzIgb2YgYnVnIDcwMjQzNTogbWVtb3J5IGxlYWsgWy4uLl0gZm9yIGFnZW50eCBzdWJhZ2VudHMKICAgICAtIFBhdGNoIHN1cHBsaWVkIGJ5IEZyYW56IEcuIEZpc2NoZXIKCjIwMDQtMDgtMjcgMjM6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIHJlbW92ZSB1bnVzZWQgdmFyIGFuZCBwcm90b3R5cGVzCiAgIC0gYWRkIGNvbW1lbnQgZG9jdW1lbnRpbmcgc2NhbiBsaW5lIGZvcm1hdAoKMjAwNC0wOC0yNyAyMzoyMiAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jCjoKCiAgIC0gb21pdCByb3V0ZXMgdGhhdCBhcmUgZG93bgogICAtIGhhcmRjb2RlIGFjdGl2ZSByb3cgc3RhdHVzIGZvciBuZXdseSBkaXNjb3ZlcmVkIHJvdXRlcwoKMjAwNC0wOC0yNyAyMzoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmM6CgogICAtIHR3ZWFrIGxvZyBtZXNzYWdlcyBzeW50YXgKICAgLSBmaXggaXB2NCBtYXNrIGNhbGN1bGF0aW9uCiAgIC0gaW1wbGVtZW50IGlwdjYgcm91dGVzCiAgIC0gY29tbW9uIGZ1bmN0aW9uIHRvIHNldCByb3V0ZSB0eXBlIGZyb20gZmxhZ3MKICAgLSBzZXQgcG9saWN5IG9pZCBiYXNlZCBvbiBhcmJpdHJhcnkgaW5kZXgKCjIwMDQtMDgtMjcgMjM6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYzoKCiAgIGRvbnQgZnJlZSBwb2xpY3kgb2lkIGlmIHN0YXRpYyBmbGFnIHNldAoKMjAwNC0wOC0yNyAyMzoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gYWRkIGZsYWcgZm9yIHN0YXRpYyBwb2xpY3kgb2lkCiAgIC0gY2hhbmdlIGludGVybmFsIGluZGV4IHR5cGUgdG8gb2lkCgoyMDA0LTA4LTI3IDA3OjI5ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIFRyeSBhIGRpZmZlcmVudCBhcHByb2FjaCB0byBtdWx0aS10eXBlIGNvbmZpZyBoYW5kbGluZy4KICAgRG9uJ3QgYXV0b21hdGljYWxseSByZWdpc3RlciBjb25maWcgdG9rZW5zIGFnYWluc3QgbXVsdGlwbGUgdHlwZXMuCiAgIEluc3RlYWQsIGV4cGxpY2l0bHkgcmVnaXN0ZXIgQWdlbnRYLXJlbGF0ZWQgY29uZmlnIHRva2VucyBhcyBzdWNoLgogICAoVGhlIGNvbmZpZyBtZWNoYW5pc20gd2lsbCBhbHJlYWR5IGF1dG9tYXRpY2FsbHkgbG9hZCBhbnkgY29uZmlnCiAgIGZpbGUgdHlwZXMgdGhhdCBpdCBrbm93cyBhYm91dCkuCgoyMDA0LTA4LTI3IDAzOjE1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBVc2UgYSBjb25zaXN0ZW50ICJob3N0cy57YWxsb3csZGVueX0iIHRva2VuIGZvciBrbm93biBhbmQgdW5rbm93biBhZGRyZXNzZXMuCgoyMDA0LTA4LTI3IDAzOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBJZiB3ZSdyZSByZWFkaW5nIGluIHRoZSBtdWx0aWNhc3Qgc3RhdHMsIHRoZW4gdGhlIHNjYW4gbGluZSBuZWVkcyB0byBiZQogICB0d2Vha2VkIG5vdCB0byBza2lwIHRoaXMgdmFsdWUhCgoyMDA0LTA4LTI2IDA3OjMxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICBTdXBwcmVzcyAzMi1iaXQgc2hpZnQgd2FybmluZ3Mgb24gMzItYml0IHN5c3RlbXMuCiAgIChUaG91Z2ggdGhpcyBtYXkgbm90IGJlIHRoZSBiZXN0IHdheSB0byBkZXRlY3Qgc3VjaCBzeXN0ZW1zISkKCjIwMDQtMDgtMjYgMDc6MjQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIERlY2xhcmUgbWlzc2luZyB2YXJpYWJsZSBvbiBub24tU0NOdU1BWCBzeXN0ZW1zLgoKMjAwNC0wOC0yNSAxMjozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbmFtZSBuZXRzbm1wX2ludGVyZmFjZV9lbnRyeSBtZW1iZXJzIHRvIGF2b2lkIG5hbWVzcGFjZSBjb25mbGljdHMKICAgICAtIG5vdGVkIG9uIHVzZXJzIGJ5IEFraWhpcm8gSUlKSU1BCgoyMDA0LTA4LTI1IDA5OjI1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBhcHBseSByZXZpc2VkIHBhdGNoIGZvciBidWcgODk3MDAyOiBzbm1wZCBjYW5ub3QgaGFuZGxlIDY0IGJpdCBpbnRlcmZhY2UgY291bnRlcnMKICAgICAoaGFkIGJlZW4gbWFya2VkIGFzIGZpeGVkIGJ1dCB3YXNuJ3QpCgoyMDA0LTA4LTI1IDA4OjM4ICBkdHMxMgoKICAgKiBtYW4vbWliMmMuY29uZi41OgoKICAgRG9jdW1lbnQgdGhlIG5ldyBtaWIyYyBub2RlIHRhZ3MuCgoyMDA0LTA4LTI1IDA4OjM1ICBkdHMxMgoKICAgKiBtaWJzLzogRElTTUFOLUVYUFJFU1NJT04tTUlCLnR4dCwgRElTTUFOLU5TTE9PS1VQLU1JQi50eHQKLCBESVNNQU4tUElORy1NSUIudHh0LCBESVNNQU4tVFJBQ0VST1VURS1NSUIudHh0CjoKCiAgIEFkZCBEaXNNYW4gUmVtb3RlIE9wZXJhdGlvbnMgTUlCIGZpbGVzCgoyMDA0LTA4LTI1IDA4OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBleHByZXNzaW9uL2dudWMuaCwgZXhwcmVzc2lvbi9pbjYuaAosIGV4cHJlc3Npb24vaXBfdmFyLmgsIGV4cHJlc3Npb24vaXB2Ni5oLAogICAgIGV4cHJlc3Npb24vdWRwX3Zhci5oLCBuc2xvb2t1cC9nbnVjLmgsIG5zbG9va3VwL2luNi5oCiwgbnNsb29rdXAvaXBfdmFyLmgsIG5zbG9va3VwL2lwdjYuaCwKICAgICBuc2xvb2t1cC91ZHBfdmFyLmgsIHBpbmcvZ251Yy5oLCBwaW5nL2luNi5oLAogICAgIHBpbmcvaXBfdmFyLmgsIHBpbmcvaXB2Ni5oLCBwaW5nL3VkcF92YXIuaCwKICAgICB0cmFjZXJvdXRlL2dudWMuaCwgdHJhY2Vyb3V0ZS9pbjYuaCwKICAgICB0cmFjZXJvdXRlL2lwX3Zhci5oLCB0cmFjZXJvdXRlL2lwdjYuaCwKICAgICB0cmFjZXJvdXRlL3VkcF92YXIuaDoKCiAgIExvY2FsbHktdHdlYWtlZCB2ZXJzaW9ucyBvZiBzdGFuZGFyZCBoZWFkZXIgZmlsZXMuCiAgIFRoaXMgaXMgbm90IHRoZSBtb3N0IGFwcHJvcHJpYXRlIHdheSB0byBwcm9jZWVkLAogICBidXQgaXMgbmVlZGVkIHRvIGdldCB0aGUgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiB3b3JraW5nLgoKMjAwNC0wOC0yNSAwNzozMSAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIFN1cHBvcnQgaG9sZXMgaW4gIml0ZXJhdGVfYWNjZXNzIiB0YWJsZXMuCgoyMDA0LTA4LTI1IDAxOjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmM6CgogICBGaXggYSBtZW1vcnkgbGVhayBpbiB0aGUgUm1vbiBjb2RlLiAoUmVwb3J0ZWQgYnkgRm9uZyBUc3VpKQoKMjAwNC0wOC0yNCAxODoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfaW9jdGwuYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmgsIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSByZW5hbWUgbmV0c25tcF9pbnRlcmZhY2VfZW50cnkgbWVtYmVycyB0byBhdm9pZCBuYW1lc3BhY2UgY29uZmxpY3RzCiAgICAgLSBub3RlZCBvbiB1c2VycyBieSBBa2loaXJvIElJSklNQQoKMjAwNC0wOC0yNCAwOToyOCAgZHRzMTIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcAo6CgogICBGaXggdGhlIG1pbmltYWwgY29uZmlnIHRlc3RzIHRvIHVzZSB0aGUgY29ycmVjdCBzZXQgb2YgTUlCIG1vZHVsZXMuCiAgIChSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0yNCAwOToyNCAgZHRzMTIKCiAgICogdGVzdGluZy86IFJFQURNRSwgUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2g6CgogICBTdXBwb3J0IGFkZGl0aW9uYWwgdHJhcGQgZmxhZ3MgKHBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKICAgKEFuZCB1cGRhdGUgdGhlIFJFQURNRSB0byBrZWVwIE1pa2UgaGFwcHkhKQoKMjAwNC0wOC0yNCAwOToxOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIExvZyByZWNvbmZpZy9zaHV0ZG93biBtZXNzYWdlcyBtb3JlIHJlbGlhYmx5LiAgKFBhdGNoIGZyb20gTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMjQgMDk6MTYgIGR0czEyCgogICAqIENPUFlJTkc6CgogICBBZGQgQ2lzY28vQlVQVE5JQyBjb3B5cmlnaHQgbm90aWNlLCB0byBjb3ZlciB0aGUgbmV3IERpc01hbiBSZW1PcHMgY29kZS4KCjIwMDQtMDgtMjQgMDg6MTUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogZGlzbWFuLmgsIGRpc21hbi9leHByZXNzaW9uLW1pYi5oLAogICAgIGRpc21hbi9uc2xvb2t1cC1taWIuaCwgZGlzbWFuL3BpbmctbWliLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUtbWliLmgsIGRpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuYwosIGRpc21hbi9leHByZXNzaW9uL2V4cEVycm9yVGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuYywKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBFeHByZXNzaW9uVGFibGUuaCwKICAgICBkaXNtYW4vZXhwcmVzc2lvbi9leHBPYmplY3RUYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cE9iamVjdFRhYmxlLmgsCiAgICAgZGlzbWFuL2V4cHJlc3Npb24vZXhwVmFsdWVUYWJsZS5jLAogICAgIGRpc21hbi9leHByZXNzaW9uL2V4cFZhbHVlVGFibGUuaCwKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuYywKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwQ3RsVGFibGUuaCwKICAgICBkaXNtYW4vbnNsb29rdXAvbG9va3VwUmVzdWx0c1RhYmxlLmMsCiAgICAgZGlzbWFuL25zbG9va3VwL2xvb2t1cFJlc3VsdHNUYWJsZS5oLAogICAgIGRpc21hbi9waW5nL3BpbmdDdGxUYWJsZS5jLCBkaXNtYW4vcGluZy9waW5nQ3RsVGFibGUuaAosIGRpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5jLAogICAgIGRpc21hbi9waW5nL3BpbmdQcm9iZUhpc3RvcnlUYWJsZS5oLAogICAgIGRpc21hbi9waW5nL3BpbmdSZXN1bHRzVGFibGUuYywKICAgICBkaXNtYW4vcGluZy9waW5nUmVzdWx0c1RhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUN0bFRhYmxlLmgsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZUhvcHNUYWJsZS5jLAogICAgIGRpc21hbi90cmFjZXJvdXRlL3RyYWNlUm91dGVIb3BzVGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuYywKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUHJvYmVIaXN0b3J5VGFibGUuaCwKICAgICBkaXNtYW4vdHJhY2Vyb3V0ZS90cmFjZVJvdXRlUmVzdWx0c1RhYmxlLmMsCiAgICAgZGlzbWFuL3RyYWNlcm91dGUvdHJhY2VSb3V0ZVJlc3VsdHNUYWJsZS5oOgoKICAgUHJlbGltaW5hcnkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERpc01hbiBSZW1vdGUgT3BlcmF0aW9uIE1JQiBncm91cHMuCiAgIE5vdGUgdGhhdCB0aGVzZSBhcmUgbm90IHlldCByZWFkeSBmb3IgcHJvZHVjdGlvbiB1c2UuCgoyMDA0LTA4LTIzIDA4OjA2ICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBuZXcgdGFyZ2V0IHRvIG9ubHkgbWFrZSBvYmplY3RzIGZvciBjdXJyZW50IGRpcmVjdG9yeSAobm8gc3ViZGlycykKCjIwMDQtMDgtMjMgMDc6MzUgIGR0czEyCgogICAqIGFwcHMvc25tcHdhbGsuYywgbWFuL3NubXB3YWxrLjEuZGVmOgoKICAgT3B0aW9uIHRvIGV4Y2x1ZGUgdGhlIGZpbmFsIEdFVCByZXF1ZXN0IHdoZW4gd2Fsa2luZyBhIHNpbmdsZSBpbnN0YW5jZS4KCjIwMDQtMDgtMjMgMDI6MzkgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuY29udGFpbmVyLmNvbmYsIG1pYjJjLnRhYmxlX2RhdGEuY29uZjoKCiAgIE5ldyB0ZW1wbGF0ZSBjb25maWdzIGZvciByb3ctYmFzZWQgImludGVybmFsLWRhdGEiIGltcGxlbWVudGF0aW9ucy4KCjIwMDQtMDgtMjMgMDI6MjkgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgTmV3IHZhcmlhYmxlIHRva2VucyB0byBpZGVudGlmeSAiY3JlYXRhYmxlIiBvciBSb3dTdGF0dXMgY29sdW1uIG9iamVjdHMuCiAgIEV4dGVuZCB0aGVzZSB0d28gdG9rZW5zLCBwbHVzICJzZXR0YWJsZSIgdG8gYXBwbHkgdG8gdGFibGVzIGFzIHdlbGwKICAgKHJlcG9ydGluZyBvbiB0aGUgY29uc3RpdHVlbnQgY29sdW1uIG9iamVjdHMpLgoKMjAwNC0wOC0yMyAwMTo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jOgoKICAgSW1wbGVtZW50IGNvbnRleHQgZXJyb3IgY291bnRlcnMgYXMgcHJvcGVyIHNjYWxhciBvYmplY3RzCiAgIChyYXRoZXIgdGhhbiBzaW1wbHkgaW5zdGFuY2VzKQoKMjAwNC0wOC0yMyAwMTo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc2V0U2VyaWFsTm8uYzoKCiAgIEZ1bGxlciBpbXBsZW1lbnRhdGlvbiBvZiBzbm1wU2V0U2VyaWFsTm8gb2JqZWN0LCBpbmNsdWRpbmcgcGVyc2lzdGFuY2UgYWNyb3NzCiAgIGFnZW50IHJlc3RhcnQsIHJhbmRvbSBpbml0aWFsaXNhdGlvbiB2YWx1ZSAoYm90aCBwZXIgVGVzdEFuZEluY3IgZGVzY3JpcHRpb24pCiAgIGFuZCBwcm9wZXIgb2JqZWN0IGluc3RhbmNlIGJlaGF2aW91ci4KCjIwMDQtMDgtMjMgMDE6NTYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBEb24ndCBpbnZva2UgY2FsbGJhY2sgcmVnaXN0cmF0aW9ucyBpZiB0aGUgb3JpZ2luYWwgcmVnaXN0cmF0aW9uIGZhaWxzLgogICAoU2VlIGJ1ZyAjOTkwMDcwKQoKMjAwNC0wOC0yMCAwODo1MSAgcnN0b3J5CgogICAqIGRveHlnZW4uY29uZjoKCiAgIHVwZGF0ZSBwcm9qZWN0IG51bWJlciB0byA1LjIuZGV2CgoyMDA0LTA4LTIwIDA4OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgLSByZW1vdmUgc3RhdGljIGF0dHJpYnV0ZSBmb3IgZnVuY3Rpb24KICAgLSBmaXggcGFyZW4gZ3JvdXBpbmcKCjIwMDQtMDgtMjAgMDg6NDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtIGRvIG5vdCBpbmNsdWRlIGRhdGEgYWNjZXNzIGhlYWRlcnMsIGFzIHRoZXkgYXJlIG5vdCBpbnN0YWxsZWQKCjIwMDQtMDgtMjAgMDg6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBpbmNsdWRlIGludGVyZmFjZSBkYXRhIGFjY2VzcyBoZWFkZXIKCjIwMDQtMDgtMjAgMDE6NTMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBUaWR5IHVwIGhhbmRsaW5nIG9mIHBpZF9maWxlLiAoUGF0Y2hlcyBmcm9tIE1hZ251cyBGcm9tcmVpZGUpCgoyMDA0LTA4LTE5IDAyOjIzICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgSW1wcm92ZWQgaGFuZGxpbmcgb2Ygc25tcHRyYXBkIFBJRCBmaWxlLgogICBQYXRjaCBmcm9tIE1hZ251cyBGcm9tcmVpZGUuCgoyMDA0LTA4LTE5IDAyOjE3ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEhhbmRsZSBhZ2VudF9tb2R1bGUgaGVhZGVyIGZpbGVzIGluIHRoZSBzYW1lIHdheSBhcyBtaWJfbW9kdWxlIG9uZXMuCiAgIChSZW1vdmluZyB0aGVtIHdoZW4gY2xlYW5pbmcgdXAsIGFuZCBpbnN0YWxsaW5nIHRoZSBjb25maWcgaGVhZGVyKQoKMjAwNC0wOC0xOSAwMjoxMiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgQWRkIGFnZW50X21vZHVsZSBjb25maWd1cmF0aW9uIHRva2VucyB0byB0aGUgbGlzdCBvZgogICBzdGFuZGFyZCBhZ2VudCBpbmNsdWRlcy4gIChSZXBvcnRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xOSAwMjoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbUNvbmYuaDoKCiAgIENvcnJlY3QgYWdlbnRfbW9kdWxlIGNvbmZpZyBzZXR0aW5nLgogICAoU3BvdHRlZCBieSBNYWdudXMgRnJvbXJlaWRlKQoKMjAwNC0wOC0xOCAxNToxMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEFsbG93IFRPS0VOUklORy1NSUIgYW5kIERTMS1NSUIgdG8gb3ZlcnJpZGUgb2xkZXIgUkZDIG1pYnMKCjIwMDQtMDgtMTggMDI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFVzZSB0aGUgY29udGV4dCBuYW1lIGZyb20gdGhlIHJlZ2lzdHJhdGlvbiBjYWxsLAogICByYXRoZXIgdGhhbiB0aGUgY29udGV4dCBmcm9tIHRoZSBpbmNvbWluZyByZXF1ZXN0LgogICBUaGVzZSBvdWdodCB0byBiZSB0aGUgc2FtZSwgYnV0IGFyZSBzdWJ0bHkgZGlmZmVyZW50IHdoZW4KICAgbm8gY29udGV4dCBpcyBzcGVjaWZpZWQuICAoUGF0Y2ggc3VwcGxpZWQgYnkgTWFnbnVzIEZyb21yZWlkZSkKCjIwMDQtMDgtMTcgMDg6NDAgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgTW9yZSBwb3J0YWJsZSBhcHByb2FjaCB0byBhdm9pZGluZyB1bm5lY2Vzc2FyeSBoZWFkZXIgaW5zdGFsbHMuCiAgIChUaGFua3MgdG8gYm90aCBCZW4gUm9nZXJzIGFuZCBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDgtMTcgMDI6MDggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgQXR0ZW1wdCB0byBzdXBwb3J0IG11bHRpcGxlICd7eHh4eH0uY29uZicgYXBwbGljYXRpb24gdHlwZXMuCgoyMDA0LTA4LTE3IDAyOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgSW5jbHVkZSB0aGUgbmV3ICdORVQtU05NUC1FWFRFTkQtTUlCJyBtb2R1bGUgaW4gYSBkZWZhdWx0IGNvbmZpZy4KCjIwMDQtMDgtMTcgMDI6MDQgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBBbGxvdyAidHJhcGhhbmRsZSIgZGlyZWN0aXZlcyB0byBtYXRjaCBhIHN1YnRyZWUgcmF0aGVyCiAgIHRoYW4ganVzdCBhIHNpbmdsZSB0cmFwLiAgKFN1Z2dlc3RlZCBieSBCb3NrbyBNaWxla2ljKQoKMjAwNC0wOC0xNyAwMTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIERvbid0IGJvdGhlciBsb29raW5nIHVwIHRoZSBob3N0bmFtZSB1bmxlc3MgaXQnbGwgYWN0dWFsbHkKICAgYmUgbmVlZGVkIGZvciBnZW5lcmF0aW5nIHRoZSBlbmdpbmVJRC4gIFN1Z2dlc3RlZCBieSBKb2UgQy4KCjIwMDQtMDgtMTcgMDE6NTEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcFVuaXhEb21haW4uYzoKCiAgIEVuc3VyZSB0aGF0IGEgbm9uLW1hdGNoaW5nIGNvbTJzZWMgbG9va3VwIHdpbGwgcmV0dXJuIGEgTlVMTCAnc2VjTmFtZScKICAgKEJhc2VkIG9uIGEgc3VnZ2VzdGlvbiBieSBPbGVnIEl2YW5vdikKCjIwMDQtMDgtMTcgMDE6NDEgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIERvbid0IGFwcGx5ICdob3N0cy57YWxsb3csZGVueX0nIGNoZWNraW5nIHRvIGNhbGxiYWNrIGNvbm5lY3Rpb25zCiAgICh3aGljaCB0eXBpY2FsbHkgd29uJ3QgbWF0Y2ggYW55dGhpbmcgb3RoZXIgdGhhbiAiQUxMIikKCjIwMDQtMDgtMTcgMDE6MzggIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQcm90ZWN0IGFnYWluc3QgbWlzc2luZyBwYXJhbWV0ZXJzLiAgKFN1Z2dlc3RlZCBieSBKb2huIExhc2gpCgoyMDA0LTA4LTE3IDAxOjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfY29udGFpbmVyLmg6CgogICBBUEkgZm9yIGFkZGluZyBhIChuZXdseSBjcmVhdGVkKSByb3cgdG8gdGhlIHZhcmJpbmQgcmVxdWVzdCBsaXN0LAogICBzbyBpdCdzIGF2YWlsYWJsZSBkdXJpbmcgbGF0ZXIgU0VUIHBhc3Nlcy4gICBUaGVyZSdzIHByb2JhYmx5CiAgIGEgYmV0dGVyIHdheSBvZiBjb21wYXJpbmcgaW5kZXggdmFsdWVzLCBidXQgdGhpcyBzZWVtcyB0byB3b3JrLgoKMjAwNC0wOC0xNyAwMToyNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wdjNtaWJzLmgsIHNubXB2My91c21Db25mLmMsCiAgICAgc25tcHYzL3VzbUNvbmYuaCwgc25tcHYzL3VzbVVzZXIuYzoKCiAgIFNwbGl0IG9mZiBVU00gY29uZmlnIGhhbmRsaW5nIGludG8gYSBzZXBhcmF0ZSBtb2R1bGUKICAgKGFuZCBtb3ZlIHRoaXMgaW50byB0aGUgYWdlbnQgbGlicmFyeSkKCjIwMDQtMDgtMTcgMDE6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4L2FnZW50eF9jb25maWcuaCwgYWdlbnR4L2NsaWVudC5oCiwgYWdlbnR4L21hc3Rlci5oLCBhZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgICAgYWdlbnR4L3Byb3RvY29sLmgsIGFnZW50eC9zdWJhZ2VudC5oLAogICAgIG1pYklJL3ZhY21fY29uZi5oOgoKICAgTW92ZSBWQUNNIGNvbmZpZyBoYW5kbGluZyBhbmQgQWdlbnRYIHN1cHBvcnQgaW50byB0aGUgYWdlbnQgbGlicmFyeS4KCjIwMDQtMDgtMTcgMDE6MjMgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgbWliX21vZHVsZXMuYzoKCiAgIFBpY2sgdXAgYWdlbnRfbW9kdWxlIGluaXRpYWxpc2F0aW9uIGFuZCBkb3RfY29uZiByb3V0aW5lcy4KICAgKE5vdCBjb252aW5jZWQgdGhpcyBpcyB0aGUgYmVzdCBwbGFjZSBmb3IgdGhlIGFnZW50X21vZHVsZQogICAgaW5pdCByb3V0aW5lcyB0byBiZSBjYWxsZWQsIGJ1dCBpdCdsbCBkbyBmb3Igbm93LikKCjIwMDQtMDgtMTcgMDE6MjEgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgU3dpdGNoIGxpbmtpbmcgb3JkZXIgb2YgYWdlbnQgYW5kIG1pYiBsaWJyYXJpZXMgKHNpbmNlIGxpYm5ldHNubXBtaWJzCiAgIG1heSB3ZWxsIHVzZSByb3V0aW5lcyBkZWZpbmVkIGluIGxpYm5ldHNubXBhZ2VudCwgYnV0IG5vdCB2aWNlIHZlcnNhKQoKMjAwNC0wOC0xNyAwMToxNSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBFbnN1cmUgYWdlbnQgdnMgbWliIG1vZHVsZXMgYXJlIHBpY2tlZCB1cCBjb3JyZWN0bHkgKGVzcC4gZm9yIG1vZHVsZXMKICAgd2l0aG91dCBhIGhlYWRlciBmaWxlLCB3aGljaCBzaG91bGQgZGVmYXVsdCB0byAnbWliX21vZHVsZXMnKQoKMjAwNC0wOC0xNyAwMToxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICBTbGlnaHRseSBwcmVmZXJhYmxlIGNvbmZpZyB0b2tlbiBmb3IgdGhlIG5ldyBleHRlbnNpYmxlIHNjcmlwdGluZyBtaWIsCiAgIGRvY3VtZW50IHRoaXMgZmVhdHVyZSwgYW5kIGFkZCBhIHdhcm5pbmcgcmVnYXJkaW5nIHRoZSBvbGQgKGludmFsaWQpCiAgIHJlbG9jYXRhYmxlIG91dHB1dCBmb3JtYXQuCgoyMDA0LTA4LTE2IDIwOjI1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBkb24ndCBkcm9wIHJlLWF0dGFjaGVkIGhlYWQgKHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW4pCiAgIC0gZml4IHR5cG8KCjIwMDQtMDgtMTYgMTQ6NTcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtZmQuaAoKMjAwNC0wOC0xNiAxNDo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBuZXcgdmVyc2lvbiBmcm9tIGF1dG9jb25mCgoyMDA0LTA4LTE2IDE0OjIzICByc3RvcnkKCiAgICogYWNjb25maWcuaDoKCiAgIC0gYWRkIHVuZGVmIGZvciBTVFJVQ1RfVE1fSEFTX1RNX0dNVE9GRkYKICAgLSBkZWZpbmUgY29uZmlnX2JlbG9uZ3NfaW4gdG8gbm90aGluZwoKMjAwNC0wOC0xNiAxMjoxMyAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoLCBzbWlzdHJpcDoKCiAgIE1vcmUgYXV0b21hdGljIGluc3RhbGxhdGlvbiBvZiBSRkMgYmFzZWQgbWlicwoKMjAwNC0wOC0xMyAwNjo1OSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgSWdub3JlIGNvbmZpZy1nZW5lcmF0ZWQgJ2FnZW50X21vZHVsZScgZmlsZXMKCjIwMDQtMDgtMTMgMDY6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgY29uZmlnLWdlbmVyYXRlZCAnYWdlbnRfbW9kdWxlJyBmaWxlcwoKMjAwNC0wOC0xMyAwNjo0MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgbG9jYWwvTWFrZWZpbGUuaW4sCiAgICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL2F1dGhlbnRpY2F0aW9uLAogICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9sb2dnaW5nLAogICAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wdHJhcGQtZGF0YS9ydW50aW1lLAogICAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpCjoKCiAgIEFkZCBzbm1wdHJhcGQgY29uZmlnIHN1cHBvcnQgZm9yIGxvZ2dpbmcsIGF1dGhlbnRpY2F0aW9uIGFuZCBydW50aW1lIG9wdGlvbnMuCiAgIChQYXRjaCAjOTgxMzE5IGZyb20gQWxleCBCdXJnZXIpCgoyMDA0LTA4LTEzIDA2OjMzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFN0cmlwIHBvcnQtbnVtYmVyIHNwZWNpZmljYXRpb24gZnJvbSAicGVlcm5hbWUiIHdoZW4gY29uc3RydWN0aW5nIEtTTSBjcmVkZW50aWFscy4KICAgKEJhc2VkIG9uIHBhdGNoICM5OTI0NDApCgoyMDA0LTA4LTEzIDAzOjA4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBIYW5kbGUgImdlbmVyYWwiIEFnZW50WCBlcnJvcnMsIG5vdCBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyB2YXJiaW5kLgogICAoQmFzZWQgb24gcGF0Y2ggIzk4Mzk3MiBmcm9tIGxvcmVuemltKQoKMjAwNC0wOC0xMyAwMjo1NCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBQcm92aWRlIG1pc3NpbmcgZGVmaW5pdGlvbiBvZiAnaW5zdGFsbHN1YmRpcmhlYWRlcnMnIHJ1bGUuCiAgIChQYXRjaCAjOTkxNjY0IGZyb20gQmVuIFJvZ2VycykKCjIwMDQtMDgtMTMgMDI6NTMgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgIkxhenkiIGluc3RhbGxhdGlvbiBvZiBoZWFkZXIgZmlsZXMuICBPbmx5IGluc3RhbGwgYSBoZWFkZXIgZmlsZSBpZgogICBpdCdzIG5ld2VyIHRoYW4gdGhlIGV4aXN0aW5nIG9uZS4gIChQYXRjaCAjOTkxNjY0IGZyb20gQmVuIFJvZ2VycykKCjIwMDQtMDgtMTMgMDI6NTAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBsaWIvc25tcC10Yy5jCjoKCiAgIFVzZSBhbiBleHBsaWNpdCBjaGVjayBmb3IgJ3RtX2dtdG9mZicsIHJhdGhlciB0aGFuIHBlci1hcmNoaXRlY3R1cmUgI2RlZmluZXMKICAgKFBhdGNoICMxMDA2Mjk4IGZyb20gU3RlcGhlbiBKLiBGcmllZGwpCgoyMDA0LTA4LTEzIDAyOjE3ICBuYmEKCiAgICogbWlicy86IElBTkFpZlR5cGUtTUlCLnR4dCwgaWFuYWxpc3QsIHJmY2xpc3Q6CgogICBVcGRhdGVkIFJGQyBNSUIgaW5mb3JtYXRpb24KCjIwMDQtMDgtMTIgMDc6NDkgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEhhbmRsZSBhIGNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mICJhcHBsaWNhdGlvbi10eXBlIiBjb25maWcgZmlsZXMuCiAgIChlLmcuICJhZ2VudHg6c25tcGQiIHRvIHNlYXJjaCAqYm90aCogJ3NubXBkLmNvbmYnICphbmQqICdhZ2VudHguY29uZicpCiAgIFNlZSBjb2RlcnMtdGhyZWFkICJBZ2VudFggY29uZmlndXJhdGlvbiIgLSBKdWwgJzA0CgoyMDA0LTA4LTEyIDA1OjIwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5oOgoKICAgQW4gZXhhbXBsZSBvZiBjb25maWd1cmluZyBjb2RlIGludG8gdGhlIGFnZW50IHJhdGhlciB0aGFuIHRoZSBtaWIgbGlicmFyeS4KCjIwMDQtMDgtMTIgMDU6MTggIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4KLCBjb25maWd1cmU6CgogICBTdXBwb3J0IGEgbWVjaGFuaXNtIGZvciBpbmNsdWRpbmcgcGFydGljdWxhciBjb2RlIG1vZHVsZXMgd2l0aGluIGVpdGhlcgogICB0aGUgbWliIGxpYnJhcnkgb3IgdGhlIGFnZW50IGxpYnJhcnkgKG9yIHBvdGVudGlhbGx5IGVsc2V3aGVyZSBhcyB3ZWxsKS4KICAgKFNlZSBjb2RlcnMtdGhyZWFkICJNb3ZpbmcgQWdlbnRYIG91dCBvZiB0aGUgbWlibW9kdWxlcyIgLSBKdW5lICcwNCkKCjIwMDQtMDgtMTIgMDU6MTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIEluY2x1ZGUgYW4gb2Z0LW92ZXJsb29rZWQgaGVscGVyLgoKMjAwNC0wOC0xMiAwNToxMSAgZHRzMTIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZm9sbG93aW5nIE5VTEwgcG9pbnRlcnMKICAgKHBsdXMgc29tZSBwZXR0eSBncmFtbWF0aWNhc3RpZ2F0aW9uKQoKMjAwNC0wOC0xMSAxMzo1NyAgcnN0b3J5CgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIGxvb2sgZm9yIC5pbiBmaWxlIGluIHNyY2Rpciwgd2hpY2ggbWF5ICE9IGN1cnJlbnQgZGlyCgoyMDA0LTA4LTExIDA1OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIE9ubHkgc3RvcmUgdGhlIHRhYmxlIHN0cnVjdHVyZSBvbiB0aGUgZmlyc3QgcGFzcyB0aHJvdWdoLgogICBTdWJzZXF1ZW50IHBhc3NlcyBjYW4gcmV0cmlldmUgdGhpcyBzdG9yZWQgdmFsdWUgYW55d2F5LgoKMjAwNC0wOC0xMSAwNDo1NSAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGRlbGV0ZWQgbWFuIHBhZ2VzICh0b2RvICYgZGVwcmVjYXRlZCkKCjIwMDQtMDgtMTAgMDg6NTMgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgbGlidG9vbCB2ZXJzaW9uaW5nIGEgYml0CgoyMDA0LTA4LTA0IDA1OjUxICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfZGVwcmVjYXRlZC4zLAogICAgIG1hbi9uZXRzbm1wX3RvZG8uMzoKCiAgIERvbid0IGluc3RhbGwgJ3RvZG8nIG9yICdkZXByZWNhdGVkJyBtYW4gcGFnZXMKICAgKHNpbmNlIHRoZXNlIGFyZSBjb25zdHJ1Y3RlZCB3aXRoIHN1c3BlY3QgZm9ybWF0dGluZykKCjIwMDQtMDgtMDMgMDg6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGxlbmd0aCBvZiBzdHJpbmcgZm9yIEFFUyAnc3RybmNtcCcgY29tcGFyaXNvbnMuCiAgIChTZWUgYnVnICM5OTY4OTQpCgoyMDA0LTA4LTAyIDE0OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IGNvbnRleHQgcmVnaXN0cmF0aW9uIHNvIG5ldyBjb250ZXh0IHRyZWVzIGdldCBwcm9wZXJseSBpbml0aWFsaXplZC4KCjIwMDQtMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIG1pYnMvbWFrZWh0bWwucGw6CgogICBEb24ndCBkb3VibGUtcHJvZHVjZSBIVE1MIG91dHB1dCBmb3IgcmVwZWF0ZWQgTUlCcy4KCjIwMDQtMDctMzAgMTc6MzIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIGRvY3VtZW50IEFnZW50WCBjb250ZXh0IGZpeGluZwogICAtIGRvY3VtZW50IHRoZSB1c21Vc2VyIHRhYmxlIHBvcHVsYXRpb24gdW5kZXIgc25tcHRyYXBkCgoyMDA0LTA3LTMwIDE3OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHNubXBVbml4RG9tYWluLmM6CgogICBEb3VibGUgY2hlY2sgdGhhdCB0aGUgY29udGV4dE5hbWUgYXJyYXkgaXMgcHJvcGVybHkgaW5pdGlhbGl6ZS4KCjIwMDQtMDctMzAgMTc6MzAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIEFkZCBjb250ZXh0TmFtZSB0byB0aGUgcmVnaXN0cmF0aW9uIHBhcmFtYXRlcnMgc3RydWN0dXJlLgoKMjAwNC0wNy0zMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlZ2lzdGVyIHRoZSB1c21Vc2VyVGFibGUgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQKCjIwMDQtMDctMzAgMTc6MjggIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgLSByZWdpc3RlciBhbGwgdGhlIHNubXB0cmFwZCBtaWIgbm9kZXMgdW5kZXIgdGhlICJzbm1wdHJhcGQiIGNvbnRleHQKCjIwMDQtMDctMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My86IHVzbVVzZXIuYywgdXNtVXNlci5oOgoKICAgQ3JlYXRlIGEgZnVuY3Rpb24gdG8gcmVnaXN0ZXIgdGhlIHVzbVVzZXIgdGFibGUgb3RoZXIgYSBkaWZmZXJlbnQgY29udGV4dC4KCjIwMDQtMDctMzAgMTc6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwgbWFzdGVyLmMKLCBzdWJhZ2VudC5jOgoKICAgLSBGaXggYWdlbnR4IHRvIHdvcmsgcHJvcGVybHkgdW5kZXIgbm9uLWRlZmF1bHQgY29udGV4dHMuCgoyMDA0LTA3LTMwIDE3OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBBZGQgYSBidW5jaCBvZiBmdW5jdGlvbnMgdG8gcmVnaXN0ZXIgaW5zdGFuY2VzIHVuZGVyIG5vbiBkZWZhdWx0IGNvbnRleHRzLgoKMjAwNC0wNy0zMCAxNzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gZml4IGFkZF9zdWJ0cmVlIHNvIGl0IHJlZ2lzdGVycyB0b3AgbGV2ZWwgbnVsbCBoYW5kbGVycyB0b28KICAgICAtIGZpeGVzIGEgbnVtYmVyIG9mIGNvbnRleHQgcHJvYmxlbXMKICAgLSBwYXNzIGNvbnRleHQgaW5mb3JtYXRpb24gZG93biBpbnRvIHJlZ2lzdHJhdGlvbiBpbmZvIHN0cnVjdCAodXNlZCBieSBhZ2VudHgpCgoyMDA0LTA3LTMwIDE3OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmg6CgogICAtIGFkZCBhIG51bGwgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIGZvciBjb250ZXh0cyBvdGhlciB0aGFuIHRoZSBkZWZhdWx0LgoKMjAwNC0wNy0zMCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCjoKCiAgIFBhdGNoIGZyb20gQWJoaWppdCBIYXlhdG5hZ2Fya2FyIHRvIGZpeCBVU00gcHJpdmFjeSBrZXkgbGVuZ3RocwoKMjAwNC0wNy0zMCAxMzozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb25mLmM6CgogICBJIHdhcyBzbGVlcGluZyBlYXJsaWVyIHdoZW4gSSBmaXhlZCBjb2RlIHRoYXQgd2Fzbid0IGJyb2tlbi4KCjIwMDQtMDctMzAgMTM6MDcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGNvbW11bml0eSBzdHJpbmcgLT4gY29udGV4dCBtYXBwaW5ncwoKMjAwNC0wNy0zMCAxMzowNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgbmV3IGNvbTJzZWMgdG9rZW4gb3B0aW9ucy4KCjIwMDQtMDctMzAgMTM6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIE1ha2UgdGhlIGNvbTJzZWMqIHRva2VucyBhY2NlcHQgYSAtQ24gQ09OVEVYVCBmbGFnIHRvIGFsbG93IHRoZQogICBtYXBwaW5nIG9mIGNvbW11bml0eSBzdHJpbmdzIHRvIFNOTVB2MyBjb250ZXh0cy4KCjIwMDQtMDctMzAgMTI6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhc3MgdGhlIGFjdHVhbCBwZHUgYmVpbmcgcHJvY2Vzc2VkIGludG8gY2hlY2tfYWNjZXNzIGluc3RlYWQgb2YgdGhlIGNvcHkKCjIwMDQtMDctMzAgMTE6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29uZi5jOgoKICAgRml4IGNvbnRleHQgY2hlY2tpbmcgc28gaXQgYWN0dWFsbHkgd29ya3MgZm9yIG5vbiBkZWZhdWx0IGNvbnRleHRzCgoyMDA0LTA3LTI4IDEyOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBjb25maWd1cmVfcmVxdWlyZSAtPiBjb25maWdfcmVxdWlyZQoKMjAwNC0wNy0yOCAwNTo0MCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgT3BlblNTTCBpcyBuZWVkZWQgZm9yIFNIQS1iYXNlZCBhdXRoZW50aWNhdGlvbiwgcmF0aGVyIHRoYW4gTUQ1LgogICAoSXQncyB1c2VkIGZvciBib3RoIGlmIGF2YWlsYWJsZSwgYnV0IGl0J3Mgb25seSAqbmVlZGVkKiBmb3IgU0hBKQoKMjAwNC0wNy0yOCAwMjoxNyAgZHRzMTIKCiAgICogRkFROgoKICAgRGlzY3VzcyBSUE0tZGVwZW5kZWN5IHByb2JsZW1zLgoKMjAwNC0wNy0yOCAwMTowNCAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMub2xkLWFwaS5jb25mOgoKICAgUGVyLW9iamVjdCBzd2l0Y2ggc3RhdGVtZW50IGlzIG1pc3NpbmcgdGhlICJjYXNlIiBrZXl3b3JkLgogICAoUmVwb3J0ZWQgYnkgV2lsbGlhbSBCdWNrbGV5KQoKMjAwNC0wNy0yMiAxNzo1NSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBmb3Igd2luMzIgYWdlbnQsIGludGVycHJldCBpZk9wZXJTdGF0dXMgY29ycmVjdGx5LAogICBhbmQgc2V0IGlmTGFzdENoYW5nZSB0byB6ZXJvLiBUaGVzZSBjaGFuZ2VzIGZpeGVzIGJ1ZyAjOTA3NzE2LgoKMjAwNC0wNy0yMiAxMzowNiAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC86IG5ldC1zbm1wLWNvbmZpZy5oLCBuZXQtc25tcC1jb25maWcuaC5pbgo6CgogICB0eXBlZGVmIGxvbmcgaW50MzJfdCB0byBzdWNjZWVkIGJ1aWxkaW5nIHdpdGggTVNWQysrLgoKMjAwNC0wNy0yMiAxMDo0NSAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBwYXRjaCAjOTgyNjI4IGFwcGxpZWQgdG8gZml4IGxlYWsgb24gZXJyb3JzIGluIG5ldHNubXBfdWRwNl90cmFuc3BvcnQKCjIwMDQtMDctMjIgMDg6NDkgIGR0czEyCgogICAqIEZBUToKCiAgIEVtcGhhc2lzZSB0aGUgbmVlZCB0byBleHBsaWNpdGx5IGNyZWF0ZSB1c2Vycy4KCjIwMDQtMDctMjAgMjM6MjYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgZml4IGJ1ZyAjOTkyNzM1IE9TWCAxMC4zLjQgbWFrZSBmYWlscyBieSBpbmNsdWRpbmcgZGFyd2luIGluICNpZiBleHByZXNzaW9ucy4KCjIwMDQtMDctMjAgMjI6MjkgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luNy5oOgoKICAgY3JlYXRlIHN5c3RlbSBoZWFkZXIgZm9yIC1EZGFyd2luNy4gcGFydGlhbCBmaXggZm9yIGJ1ZyA5OTI3MzUuCgoyMDA0LTA3LTIwIDE5OjQwICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpeCBidWcgOTk0MTk0IGJ5IGNoZWNraW5nIGZvciBudWxsIGJlZm9yZSBkZS1yZWZlcmVuY2luZyBwb2ludGVyIGFyZ3VtZW50LgoKMjAwNC0wNy0yMCAxMzozMSAgc2xpZgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIHBhdGNoIDk4ODI4NiBmcm9tIEJydWNlIFNoYXcgLSBMb3RzIG9mIHVwZGF0ZXMgb24gUkVBRE1FLnNvbGFyaXMKCjIwMDQtMDctMjAgMTM6MjIgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGtpbGwuZXhlIG9ubHkgaWZmIE9TVFlQRSA9IG1zeXMgKHBhdGNoICM5ODc2MjYgYXBwbGllZCkKCjIwMDQtMDctMTkgMDk6MjggIGR0czEyCgogICAqIG1hbi9zbm1wdmFjbS4xLmRlZjoKCiAgIEZpeCBlcnJvbmVvdXMgdHJvZmYgbWFjcm8sIGFzIHJlcG9ydGVkIGJ5IEVyaWMgUmF5bW9uZAoKMjAwNC0wNy0xNiAyMjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBtaWJJSV9jb21tb24uaCwgdGNwVGFibGUuYzoKCiAgIEF0dGVtcHRlZCBmaXhlcyBmb3IgZGFyd2luCgoyMDA0LTA3LTE2IDExOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlLmg6CgogICBBZGRlZCBtaXNzaW5nIGlwU3lzdGVtU3RhdHNUYWJsZS5oIGZpbGUgd2hpY2ggUm9iZXJ0IHByb2JhYmx5IGZvcmdvdCB0byBjaGVjayBpbi4gIEknbSBndWVzc2luZyBhdCB0aGUgIHByb3BlcmNvbnRlbnRzLCBidXQgaXQgc2hvdWxkIGJlIHJpZ2h0CgoyMDA0LTA3LTE2IDA5OjA4ICBkdHMxMgoKICAgKiBGQVE6CgogICBBIGZldyBhZGRpdGlvbmFsIGVudHJpZXMgKGVzcC4gcmVsYXRpbmcgdG8gZ2VuZXJhdGluZyB0cmFwcykKICAgcGx1cyBzb21lIG1pbm9yIHJlc3RydWN0dXJpbmcgYW5kIHdvcmRzbWl0aGluZy4KCjIwMDQtMDctMTAgMjE6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfbGludXguYzoKCiAgIC0gcmVtb3ZlIGRlYnVnIG1zZwogICAtIGxvZyB3YXJuaW5nIGlmIGhlYWRlciBsZW5ndGggaXNuJ3Qgd2hhdCB3ZSBleHBlY3QKCjIwMDQtMDctMTAgMjE6MjggIHJzdG9yeQoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICAtIGZpeCBpbnZlcnRlZCBjb25kaXRpb25hbCB0ZXN0CiAgIC0gZG9uJ3QgYXNzdW1lIDY0IGlmIHdyYXBjaGVjayBza2lwcGVkCgoyMDA0LTA3LTEwIDE5OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gYWRkIGNvbW1lbnQgdG8gZG9jdW1lbnQgc3RydWN0dXJlIHZhcgoKMjAwNC0wNy0xMCAxOTo1MSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMKOgoKICAgLSBidW1wIHVwIHRpbWVvdXQgdG8gMzAgc2Vjb25kcywgaW5zdGVhZCBvZiAzCgoyMDA0LTA3LTEwIDE5OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGVfbGludXguYzoKCiAgIC0gcmVtb3ZlIHJlbWluZGVyIGNvbW1lbnQKICAgLSBmaXggdHlwbywgaW5kZW50ZW50YXRpb24KCjIwMDQtMDctMTAgMTk6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmM6CgogICB1c2UgdWludG1heF90IHZhcnMgZm9yIHBhcnNpbmcgZGF0YQoKMjAwNC0wNy0xMCAxMzowNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBtYWtlIGxvY2FsIGZ1bmN0aW9uIG1vcmUgZ2VuZXJpYyBhbmQgbW92ZSB0byBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUKCjIwMDQtMDctMTAgMTM6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvOiBpbmV0TmV0VG9NZWRpYVRhYmxlLmgsCiAgICAgaXBBZGRyZXNzVGFibGUuaCwgaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLCBpcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oOgoKICAgbW92ZSBjb25maWcgcmVxdWlyZXMgdXAgYSBsZXZlbAoKMjAwNC0wNy0xMCAxMzowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvbmV0LXNubXAtZGF0YS1hY2Nlc3MtaW5jbHVkZXMuaAo6CgogICBhZGQgaXBzdGF0cy9zeXN0ZW1zdGF0cyBoZWFkZXJzCgoyMDA0LTA3LTEwIDEzOjAxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2ludDY0LmgsIHNubXBsaWIvaW50NjQuYzoKCiAgIG5ldyBmdW5jdGlvbiBuZXRzbm1wX2M2NF9jaGVjazMyX2FuZF91cGRhdGUKCjIwMDQtMDctMTAgMTI6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIuaDoKCiAgIGFkZCBpcFN5c3RlbVN0YXRzVGFibGUKCjIwMDQtMDctMTAgMTE6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaCwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHNfY29tbW9uLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL3N5c3RlbXN0YXRzX2xpbnV4LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS8uY3ZzaWdub3JlLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvZGVmYXVsdC10YWJsZS1pcFN5c3RlbVN0YXRzVGFibGUubTJkCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtRklSU1QudHh0CiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZS1SRUFETUUtaXBTeXN0ZW1TdGF0c1RhYmxlLnR4dAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuYwosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGUuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwU3lzdGVtU3RhdHNUYWJsZS9pcFN5c3RlbVN0YXRzVGFibGVfY29uc3RhbnRzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmMKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2RhdGFfYWNjZXNzLmgKLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcFN5c3RlbVN0YXRzVGFibGUvaXBTeXN0ZW1TdGF0c1RhYmxlX2ludGVyZmFjZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvaXBTeXN0ZW1TdGF0c1RhYmxlL2lwU3lzdGVtU3RhdHNUYWJsZV9pbnRlcmZhY2UuaAosIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBzdGF0cy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvc3lzdGVtc3RhdHMuaDoKCiAgIGltcGxlbWVudCBpcFN5c3RlbVN0YXRzVGFibGUKCjIwMDQtMDctMDkgMjI6NTggIGhhcmRha2VyCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9zZXQuYwo6CgogICAtIHJlbW92ZSBteSBxdWljayAvLyBjb21tZW50cwogICAtIHJlbW92ZSBhIGZldyBYWFggY29tbWVudHMgdGhhdCB3ZXJlIGZlZWRiYWNrIGZvciBSb2JlcnQgKG5vdyBlbWFpbGVkKS4KCjIwMDQtMDctMDkgMTU6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSBQdWxsIHRoZSBESCBwYXJhbWV0ZXJzIGZyb20gdGhlIGFnZW50IHRvIHVzZSBpdHMgY3VycmVudGx5IGNvbmZpZ3VyZWQgcGFyYW1zLgogICAtIHByb3RlY3QgYWdhaW5zdCAhb3BlbnNzbCB1c2VycwoKMjAwNC0wNy0wOSAxNToyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBQdWxsIHRoZSBESCBwYXJhbWV0ZXJzIGZyb20gdGhlIGFnZW50IHRvIHVzZSBpdHMgY3VycmVudGx5IGNvbmZpZ3VyZWQgcGFyYW1zLgoKMjAwNC0wNy0wOSAxNToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy5oLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy8uY3ZzaWdub3JlLAogICAgIHNubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIUGFyYW1ldGVycy91c21ESFBhcmFtZXRlcnMuYywKICAgICBzbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFBhcmFtZXRlcnMvdXNtREhQYXJhbWV0ZXJzLmgsCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGUuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuYwosCiAgICAgc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfZGF0YV9nZXQuaAo6CgogICBBZGRlZCB0aGUgdXNtREhQYXJhbWV0ZXJzIG9iamVjdCBmb3IgbWFuYWdlbWVudCBvZiB0aGUgREggcGFyYW1ldGVycwoKMjAwNC0wNy0wOSAxMToxOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWFrZSB0aGUgcGVyc2lzdGVudCBmaWxlIHdhcm5pbmcgYSBiaXQsIHVtLCBtb3JlIHN0cm9uZwoKMjAwNC0wNy0wOSAwOTo1OCAgaGFyZGFrZXIKCiAgICogTkVXUywgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIuaCwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL2RlZmF1bHQtdGFibGUtdXNtREhVc2VyS2V5VGFibGUubTJkCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZS5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2FjY2Vzcy5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX2dldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kYXRhX3NldC5oCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9kb3h5Z2VuLmNvbmYKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2VudW1zLmgKLAogICAgIGFnZW50L21pYmdyb3VwL3NubXAtdXNtLWRoLW9iamVjdHMtbWliL3VzbURIVXNlcktleVRhYmxlL3VzbURIVXNlcktleVRhYmxlX2ludGVyZmFjZS5jCiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wLXVzbS1kaC1vYmplY3RzLW1pYi91c21ESFVzZXJLZXlUYWJsZS91c21ESFVzZXJLZXlUYWJsZV9pbnRlcmZhY2UuaAosCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvdXNtREhVc2VyS2V5VGFibGVfb2lkcy5oCjoKCiAgIEltcGxlbWVudGVkIHRoZSBTTk1QLVVTTS1ESC1PQkpFQ1RTLU1JQiB1c21ESFVzZXJLZXlUYWJsZSB0YWJsZS4KCjIwMDQtMDctMDkgMDk6NTcgIGhhcmRha2VyCgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcC11c20tZGgtb2JqZWN0cy1taWIvdXNtREhVc2VyS2V5VGFibGUvLmN2c2lnbm9yZQo6CgogICBpZ25vcmUgZmlsZQoKMjAwNC0wNy0wOSAwOTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmMsIG1hbi9zbm1wdXNtLjEuZGVmOgoKICAgU3VwcG9ydCBhIGRpZmZpZS1oZWxtYW4gYmFzZWQgImNoYW5nZWtleSIgY29tbWFuZC4KCjIwMDQtMDctMDkgMDk6MjYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmg6CgogICBBZGQgZGlmZmllLWhlbG1hbiB2b2lkICogY29udGFpbmVyIHBvaW50ZXJzLgoKMjAwNC0wNy0wOSAwOToyNCAgaGFyZGFrZXIKCiAgICogbWlicy86IFNOTVAtVVNNLURILU9CSkVDVFMtTUlCLnR4dCwgTWFrZWZpbGUuaW46CgogICByZmMyNzg2OiBkaCB1c20gbWliCgoyMDA0LTA3LTA5IDA5OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVGVzdCBmb3Igb3BlbnNzbC9kaC5oCgoyMDA0LTA3LTA4IDE3OjMxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIC0gTGludXg6IHVzZSBub24gMCBzb2NrZXQgcHJvdG9jb2wgd2hlbiBjcmVhdGluZyBzb2NrZXQgKG9yIGNhbGwgZmFpbHMpCiAgIC0gZG9uJ3QgcmV0dXJuIHN1Y2Nlc3MgaWYgc29ja2V0IGNhbGwgZmFpbHMKICAgLSBjbG9zZSBzb2NrZXQgYmVmb3JlIHJldHVybmluZwogICAtIGZpeCB0eXBvIGluIGNvbW1lbnQKCjIwMDQtMDctMDggMTc6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIC0gbW92ZSB3cml0ZV9tZXRob2QgYXNzaWdubWVudCBiZWZvcmUgY2hlY2sgZm9yIGV4aXN0aW5nIG5vZGUsIHNvIHJvdyBjcmVhdGlvbgogICAgIGNhbiBiZSBzdXBwb3J0ZWQKCjIwMDQtMDctMDggMTc6MjcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1nZXQubTJpOgoKICAgdXBkYXRlIHRlc3QgZm9yIGNvcnJlY3Qgbm9kZSBkZWNsIHR5cGUKCjIwMDQtMDctMDggMTc6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtZ2V0Lm0yaToKCiAgIGdlbmVyYXRlIGhpZ2ggJiBsb3cgYXNzaWdubWVudHMgZm9yIGNvdW50ZXI2NCBub2RlcwoKMjAwNC0wNy0wOCAxNTozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgY2xvc2UgZmlsZXMgYmVmb3JlIGV4aXQsIHRvIGZsdXNoIHBlbmRpbmcgb3V0cHV0CgoyMDA0LTA3LTA4IDA5OjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYzoKCiAgIC0gYXNzaWduIGRzdCBhZGRyIHRvIG5ldyBjYWNoZSBlbnRyeSwgc28gd2UgY2FuIGZpbmQgaXQgaW4gbmV4dCBwYXNzCgoyMDA0LTA3LTA4IDA4OjM3ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBiYWNrIG91ciBwcmV2aW91cyB0cmFwIGJpbmRpbmcgY2hhbmdlCiAgIC0gc2V0IG5ldyBzZXNzaW9uLmxvY2FsbmFtZSB0byBsb2NhbGhvc3QgZm9yIHYxL3YyYyB0cmFwcyAoYnV0IG5vdCBpbmZvcm1zKQoKMjAwNC0wNy0wOCAwODozNiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgLSBhbGxvdyBwZXIgc2Vzc2lvbiBiaW5kaW5nIHRvIHNwZWNpZmljIGxvY2FsIGFkZHJlc3MgZm9yIHVkcCB0cmFuc3BvcnRzCgoyMDA0LTA3LTA4IDA3OjE4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBiaW5kIHYxIHRyYXAgc2Vzc2lvbnMgY2xpZW50IGFkZHJlc3MgdG8gbG9jYWxob3N0CgoyMDA0LTA3LTA4IDA2OjUyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jOgoKICAgLSBjbG9zZSBmaWxlIHdoZW4gZG9uZSB3aXRoIGl0CgoyMDA0LTA3LTA3IDE2OjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgLSBzd2l0Y2ggdG8gdW5pZmllZCBkaWZmCgoyMDA0LTA3LTA3IDE2OjUwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSByZW1vdmUgc29tZSBkdXBsaWNhdGVkIGNvZGUgKHVzZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgdmVyc2lvbnMpCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDQtMDctMDcgMTY6MjQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIFByb3Blcmx5IHF1b3RlIG1pYjJjIHZhcmlhYmxlIGluIGEgQGlmQCBjbGF1c2UuCgoyMDA0LTA3LTA3IDE2OjIzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5oLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIGNoYW5nZSByb3cgc3RhdHVzIG9iamVjdCBuYW1lIHRvIG1hdGNoIG1pYiAod2hpY2ggZG9lc24ndCBlbmQgaW4gUm93U3RhdHVzKQoKMjAwNC0wNy0wNyAxNjoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS86CiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlLmMsIGluZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9jb25zdGFudHMuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDctMDcgMTM6NTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gYWdyZWUgb24gdmFyaWFibGUgbmFtZQoKMjAwNC0wNy0wNyAxMzo0MSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jCjoKCiAgIC0gcmVnaXN0ZXIgdGFibGUgYXMgQ0FOX1JPTkxZCgoyMDA0LTA3LTA3IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZS5jLCBpcENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSBpbXBsZW1lbnQgcm93IHN0YXR1cyAoaGFyZGNvZGVkIGFzIGFjdGl2ZSkKCjIwMDQtMDctMDcgMTM6MzEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIC0gcmVwbGFjZSB1X2ludE5fdCB3aXRoIG1vcmUgcG9ydGFibGUgdWludE5fdAoKMjAwNC0wNy0wNyAxMDo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lmVGFibGUuaDoKCiAgIC0gaW5jbHVkZSBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgaGVhZGVyIGZvciBzdHJ1Y3QvZW51bXMKCjIwMDQtMDctMDcgMTA6NDEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pZlRhYmxlLmM6CgogICAtIGluaXRpYWxpc2UgY29udGFpbmVyIHZpYSBkYXRhIGFjY2VzcyBsaWJyYXJ5CgoyMDA0LTA3LTA3IDEwOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19pb2N0bC5jOgoKICAgLSB1c2UgZW51bXMgZnJvbSBtaWIgaW5zdGVhZCBvZiBoYXJkY29kZWQgdmFsdWVzCgoyMDA0LTA3LTA3IDEwOjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oCjoKCiAgIC0gYWRkIG1pc3NpbmcgVEMgdmFsdWUKCjIwMDQtMDctMDcgMTA6MjEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2xpbnV4LmM6CgogICAtIHVwZGF0ZSBpcHY2IGltcGxlbWVudGF0aW9uICh0YWtlIGEgc3RhYiBhdCBzdGF0dXMsIHR5cGUsIG9yaWdpbikKCjIwMDQtMDctMDcgMDc6MTMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHR3ZWFrIGNvbW1lbnQgY2hlY2sgcGF0dGVybiB0byBleGNsdWRlIGxvZ3Mgb2YgbWZkIG1hdGNoZXMKCjIwMDQtMDctMDcgMDc6MDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLAogICAgIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgLSBhZGQgdW5zb3J0ZWQgc2luZ2x5IGxpbmtlZCBsaXN0IChmaWZvIG9yIGxpZm8pCgoyMDA0LTA3LTA3IDA1OjI0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFF1b3RlICJyW293XWNvbW11bml0eSIgc3RyaW5nIGJlZm9yZSBwYXNzaW5nIHRvIGNvbTJzZWMtc3R5bGUgcGFyc2VyLAogICB0byByZXRhaW4gYW55IGludGVybmFsIHdoaXRlc3BhY2UuCgoyMDA0LTA3LTA3IDA1OjIxICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgVXNlIGNvcHlfbndvcmQgcmF0aGVyIHRoYW4gc3RydG9rIGZvciBwYXJzaW5nIGNvbTJzZWMgZW50cmllcy4KICAgKFRvIGhhbmRsZSBxdW90ZWQgc3RyaW5ncyBwcm9wZXJseSkKCjIwMDQtMDctMDcgMDI6MTQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgQ29udmVydCB0byB1c2UgdGhlIG5vbi1yZWN1cnNpdmUgJ0FVVE9fTkVYVCcgYXBwcm9hY2gKICAgZm9yIGFsbCBiYXIgR0VUTkVYVC9HRVRCVUxLIHJlcXVlc3RzLgoKMjAwNC0wNy0wNyAwMjoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFNwYXJzZSB0YWJsZXMgYXJlIGhhbmRsZWQgd2l0aGluIHRoZSB0YWJsZXIgaGVscGVyLAogICBzbyBkb24ndCBuZWVkIHRvIGJlIGNvbnNpZGVyZWQgaGVyZS4KCjIwMDQtMDctMDcgMDI6MTEgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIERvbid0IHRocm93IGFuIGVycm9yIGlmIHRoZSBmaW5hbCBoYW5kbGVyIHJlZ2lzdHJhdGlvbiBkaWRuJ3QKICAgaW5jbHVkZSBhbiBleHBsaWNpdCBoYW5kbGVyIHJvdXRpbmUuICBUaGlzIGlzIHBlcmZlY3RseSByZWFzb25hYmxlCiAgIGlmIHRoZSBNSUIgb2JqZWN0IGlzIGhhbmRsZWQgaW50ZXJuYWxseSBieSB0aGUgcHJlY2VkaW5nIGhlbHBlcnMuCgoyMDA0LTA3LTA2IDIxOjE4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLzogaXBBZGRyZXNzVGFibGUuYywKICAgICBpcEFkZHJlc3NUYWJsZS5oLCBpcEFkZHJlc3NUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jOgoKICAgLSBpbXBsZW1lbnQvZW5hYmxlIGlwQWRkcmVzc1R5cGUsIGlwQWRkcmVzc0NyZWF0ZWQsIGlwQWRkcmVzc0xhc3RDaGFuZ2VkCiAgICAgaXBBZGRyZXNzUm93U3RhdHVzIChoYXJkY29kZWQgYWN0aXZlKSwgaXBBZGRyZXNzU3RvcmFnZVR5cGUgKGhhcmRjb2RlZCB2b2xhdGlsZSkKICAgLSByZXR1cm4gbm90IHdyaXRhYmxlL25vIGNyZWF0aW9uIHVudGlsIHNldCBzdXBwb3J0IGltcGxlbWVudGVkCiAgIC0gY29uZmlnX3JlcXVpcmUgaW50ZXJmYWNlIGRhdGEgYWNjZXNzCiAgIC0gdXBkYXRlIGNhY2hlIHBvbGljeSB0byBhdXRvIHJlbG9hZCwgZm9yIGxhc3QgY2hhbmdlZC9jcmVhdGVkCgoyMDA0LTA3LTA2IDIxOjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgLSBuZXcgZnVuYyB0byBjb21wYXJlIGFuZCB1cGRhdGUgaXBhZGRyZXNzIGVudHJpZXMKICAgLSBuZXcgZmxhZy9jb2RlIGZvciBzZWNvbmQgY29udGFpbmVyIGluZGV4LCBieSBhZGRyZXNzCgoyMDA0LTA3LTA2IDIxOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgLSByZXR1cm4gcmVzb3VyY2UgdW5hdmFpbGFibGUgb24gZW1wdHkgaW50ZXJmYWNlIGNvbnRhaW5lcgogICAtIGxvZyBtYWxsb2MgZmFpbHVyZQoKMjAwNC0wNy0wNiAyMTowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gcmVuYW1lIGludGVyZmFjZSBkYXRhIGFjY2VzcyBpbml0IHJvdXRpbmUKICAgLSBjcmVhdGUgY29udGFpbmVyIG9uY2UgZHVyaW5nIGluaXQsIHRvIGRpc2NvdmVyIGlmSW5kZXhlcwoKMjAwNC0wNy0wNiAyMDo1OCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgaW5pdCBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MgaW4gaW5pdF9hZ2VudAoKMjAwNC0wNy0wNiAxNzozMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBpbmNyZWFzZSBkZWZhdWx0IG9pZCBwcmludGluZyBzaXplLgoKMjAwNC0wNy0wNiAxNzoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGluY3JlYXNlIGRlZmF1bHQgYnVmZmVyIHNpemUgcGFzc2VkIHRvIGdldF9zeW1ib2xfcmVhbGxvYyAodXNlZnVsCiAgIGZvciBsb25nIE9JRHMgd2hlbiByZWFsbG9jIGlzIGFjdHVhbGx5IG9mZikuCgoyMDA0LTA3LTA2IDE1OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgYWRkIG5ldyBtZmQgaGVhZGVyCgoyMDA0LTA3LTA2IDE1OjU3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tZmQuaDoKCiAgIGNvbW1vbiBtZmQgaW5jbHVkZQoKMjAwNC0wNy0wNiAxNTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGluaXRpYWxpemUgdmFyaWFibGUgYmVmb3JlIHVzZQoKMjAwNC0wNy0wNiAxNDoyNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBPbmx5IHByaW50IG9uZSBvZiB0aGUgZXJyb3IgbWVzc2FnZXMgaWYgdGhlIHJlc3VsdCB3YXMgYW4gYXJyYXkuCgoyMDA0LTA3LTA2IDE0OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICAtIGZpeCBhIGZldyAid2hvb3BzIiAocmVtb3ZlIGRlYnVnZ2luZzsgcHJvcGVybHkge30gbXVsdGkgaWYgc3RhdGVtZW50cykuCgoyMDA0LTA3LTA2IDE0OjExICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gaWYgYSB0YWJsZSBpcyBjb21wb3NlZCBvZiBvbmx5IGluZGV4ZXMsIHdhbGsgYXQgbGVhc3Qgb25lIHNvIHJlc3VsdHMKICAgICBhcmUgcmV0dXJuZWQgZm9yIGdldHRhYmxlKCkuCgoyMDA0LTA3LTA2IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQueHM6CgogICAtIHByb3Blcmx5IHJldHVybiBOVUxMcyB3aGVuIGFwcHJvcHJpYXRlLgogICAtIG1ha2UgZ2V0X2luZGV4ZXMgcmV0dXJuIGluZGV4ZXMgZnJvbSBhdWdtZW50ZWQgdGFibGVzLgoKMjAwNC0wNy0wNiAxNDowMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywKICAgICBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC0gYWRkIGludWNhc3QsIG9udWNhc3QgY291bnRlcnMgdG8gc3RhdHMgc3RydWN0CiAgIC0gbW92ZSBpbnVjYXN0LCBvbnVjYXN0IGNhbGN1bGF0aW9ucyBpbnRvIGxpbnV4IGludGVyZmFjZSBkYXRhX2FjY2VzcwoKMjAwNC0wNy0wNiAxMTo1MyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgLSB1cGRhdGUgbWFrZSBjaGVja3MgdG8gY2hlY2sgZm9yIGNwcCAjd2FybmluZ3MKCjIwMDQtMDctMDUgMjA6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgLSBkb2N1bWVudCAtVCBvcHRpb24gaW4gdXNhZ2UKCjIwMDQtMDctMDUgMjA6MDAgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSByZW1vdmUgbmFzdHkga2VybmVsIHRyaWNrIGRlZmluZXMKICAgLSBhZGQgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkgdHlwZWRlZiBmb3IgY29uZl9pZl9saXN0CgoyMDA0LTA3LTA1IDE5OjU5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgLSBpbmNsdWRlIG5ldyBkYXRhIGFjY2VzcyBpbmNsdWRlCgoyMDA0LTA3LTA1IDE5OjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9uZXQtc25tcC1kYXRhLWFjY2Vzcy1pbmNsdWRlcy5oCjoKCiAgIG5ldyBoZWFkZXIgZm9yIGFsbCBkYXRhIGFjY2VzcyBpbmNsdWRlcwoKMjAwNC0wNy0wNSAxNTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5jCjoKCiAgIC0gcmVtb3ZlIHJvdyBzdGF0dXMgZm9yIG5vdzsgd2FybmluZyB0byByZW1pbmQgYmVmb3JlIDUuMgoKMjAwNC0wNy0wNSAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaDoKCiAgIGFkZCBjb25maWdfcmVxdWlyZSBvZiBkYXRhX2FjY2Vzcy9pbnRlcmZhY2UKCjIwMDQtMDctMDUgMTQ6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICByZW1vdmUgY29uZl9pZl9saXN0IGRlY2xhcmF0aW9uIChpdCdzIGluIGRhdGFfYWNjZXNzL2ludGVmYWNlcy5oIG5vdykKCjIwMDQtMDctMDUgMTQ6MTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlwLWZvcndhcmQtbWliL2RhdGFfYWNjZXNzL3JvdXRlX2xpbnV4LmMsCiAgICAgaXAtbWliL2RhdGFfYWNjZXNzL2FycF9saW51eC5jLAogICAgIGlwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIGFzc2VydHMgc2hvdWxkIGJlIG5ldHNubXBfYXNzZXJ0cwoKMjAwNC0wNy0wNSAxNDoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi86IGRhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBkYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYywgaWZUYWJsZS9pZlRhYmxlLmMsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmg6CgogICAtIGRvbid0IHVzZSBuYXN0eSBrZXJuZWwgdHJpY2sgKGF2b2lkIHVuZXhwZWN0ZWQgbWFjcm8gc3Vic3RpdHV0aW9ucykKCjIwMDQtMDctMDUgMDk6MjEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDctMDUgMDk6MjAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICB1cGRhdGUgdmVyc2lvbiB0byA1LjIuZGV2CgoyMDA0LTA3LTA1IDA5OjA0ICByc3RvcnkKCiAgICogcGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtOgoKICAgLSAocGVybC9UcmFwUmVjZWl2ZXIvVHJhcFJlY2VpdmVyLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDQgIHJzdG9yeQoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjA0ICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDMgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMyAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDIgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMSAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gKGRpc3QvbmV0LXNubXAuc3BlYyk6IHZlcnNpb24gdGFnICggNS4yLmRldiApCgoyMDA0LTA3LTA1IDA5OjAxICByc3RvcnkKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDk6MDEgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMi5kZXYgKQoKMjAwNC0wNy0wNSAwOTowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjIuZGV2ICkKCjIwMDQtMDctMDUgMDg6MzEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgbWFrZSB0ZXN0IHJlc3VsdHMgdG8gdXBsb2FkCgoyMDA0LTA3LTA1IDA1OjU5ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogY2FjaGVfaGFuZGxlci5jLCByZWFkX29ubHkuYywKICAgICB0YWJsZV9kYXRhc2V0LmMsIHdhdGNoZXIuYzoKCiAgIFVzZSAiQVVUT19ORVhUIi1zdHlsZSBoYW5kbGluZyBmb3IgdGhlIHRyaXZpYWwgY2FzZXMKICAgKG5vdGluZyB0aGlzIGJlaGF2aW91ciB3aXRoaW4gdGhlIGhhbmRsZXIgaXRzZWxmKS4KCjIwMDQtMDctMDUgMDU6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYzoKCiAgIFVzZSBzd2l0Y2ggZmFsbHRocm91Z2ggdG8gaGFuZGxlciBHZXRCdWxrLT5HZXROZXh0LT5HZXQgaGFuZGxlciBmYWxsYmFja3MuCiAgIFRoZSBwcmV2aW91cyBjb2RlIGRpZG4ndCBjb3BlIHdpdGggYSBtaXNzaW5nIEdFVCBoZWxwZXIgZm9yIEdldEJ1bGsvR2V0TmV4dC4KCjIwMDQtMDctMDQgMTg6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgLSBjb252ZXJ0IHRvIHVzZSBBVVRPX05FWFQKCjIwMDQtMDctMDQgMTg6MjUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5oOgoKICAgLSByZXN0b3JlIGNvbmZpZ19yZXFpcmUgb2Ygb2xkIHRhYmxlIChlbmFibGUtbWZkLXJld3JpdGVzIGNvZXhpc3RlbmNlKQoKMjAwNC0wNy0wNCAxODoyMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIGlmZGVmIG91dCB0YWJsZSByZWdpc3RyYXRpb24gaWZmICEgZW5hYmxlLW1mZC1yZXdyaXRlcwogICAtIGluaXQgY2FjaGUgZWFybGllciAoaXQgaGFwcGVucyBldmVuIGlmICEgZW5hYmxlLW1mZC1yZXdyaXRlcywgZm9yIGlmWFRhYmxlKQoKMjAwNC0wNy0wNCAxODoyMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlLzogaWZUYWJsZS5oLAogICAgIGlmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIC0gYWRkIGZsYWcgdG8gaW5kaWNhdGUgaWYgYSBjYWNoZWQgaW50ZXJmYWNlIGlzIG5vdCBtaXNzaW5nCiAgIC0gc2V0IGFkbWluIChhbmQgbWF5YmUgb3Blcikgc3RhdHVzIGRvd24gZmlyc3QgdGltZSBpbnRlcmZhY2UgZ29lcyBtaXNzaW5nCiAgIC0gc2V0IGlmTGFzdENoYW5nZWQgd2hlbiBvcGVyIHN0YXR1cyBjaGFuZ2VzCiAgIC0gc2V0IGlmQ291bnRlckRpc2NvbnRpbnVpdHlUaW1lIHdoZW4gbWlzc2luZyBpbnRlcmZhY2UgcmV0dXJucwoKMjAwNC0wNy0wNCAxODoxOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuYzoKCiAgIC0gdXNlIGlmTmFtZSBmb3IgZGVzY3JpcHRpb24gaWZmIE5VTEwgZGVzY3JpcHRpb24KICAgLSByZXR1cm4gZW1wdHkgc3RyaW5nIGZvciBwaHlzYWRkciBpZmYgYWxsIDBzCgoyMDA0LTA3LTA0IDE4OjE2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBkb2N1bWVudCB0aGF0IFNJT0NHSUZIV0FERFIgaW9jdGwgbWlnaHQgbm90IHJldHVybiBmdWxsIDYgYnl0ZXMKICAgLSBhZGQgbWVtc2V0IHRvIDAgYmVmb3JlIFNJT0NHSUZIV0FERFIgaW9jdGwsIGlmIG5lZWRlZAogICAtIHVzZSBzdGFuZGFyZCBJRkhXQUREUkxFTiBtYWNybyBpbnN0ZWFkIG9mIGhhcmRjb2RlZCA2CiAgIC0gdHJpdmlhbCBvcHRpbWl6YXRpb24gKGRvbid0IGFzc2lnbiB2YXIgdHdpY2UgaW4gY2VydGFpbiBjYXNlcykKICAgLSBjb21tZW50IG91dCBhbGwgaWZUYWJsZSBmcm9tIHZhcmlhYmxlIHN0cnVjdCBpZmYgLS1lbmFibGUtbWZkLXJld3JpdGVzCgoyMDA0LTA3LTA0IDE4OjEyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgdHVubmVsL3R1bm5lbC5jOgoKICAgLSBkb2N1bWVudCB0aGF0IFNJT0NHSUZIV0FERFIgaW9jdGwgbWlnaHQgbm90IHJldHVybiBmdWxsIDYgYnl0ZXMKICAgLSBhZGQgbWVtc2V0IHRvIDAgYmVmb3JlIFNJT0NHSUZIV0FERFIgaW9jdGwsIGlmIG5lZWRlZAogICAtIHVzZSBzdGFuZGFyZCBJRkhXQUREUkxFTiBtYWNybyBpbnN0ZWFkIG9mIGxvY2FsIG9uZQoKMjAwNC0wNy0wNCAxODowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICAtIGRvbid0IGFzc3VtZSBvcGVyIHN0YXR1cyBpcyB1cAogICAtIHJlbW92ZSBncmF0dWl0b3VzIGxvZyBtZXNzYWdlCgoyMDA0LTA3LTA0IDE4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgcmVtb3ZlIHByb3RvdHlwZXMgY2F1c2luZyBjb21waWxlIGVyciAoZmluZCBmaXggbGF0ZXIpCgoyMDA0LTA3LTA0IDE4OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZS9pcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgdXBkYXRlIGZvciBnZW5lcmF0ZWQgY29kZQoKMjAwNC0wNy0wNCAxODowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkuaCwgaWYtbWliL2lmVGFibGUuaCwKICAgICBpZi1taWIvaWZYVGFibGUuaCwgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmgsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlL2luZXRDaWRyUm91dGVUYWJsZS5oLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgLSByZS1lbmFibGUgb2xkIGltcGxlbWVudGF0aW9ucyBmb3IgLS1lbmFibGUtbWZkLXJld3JpdGVzCiAgICAgKGV4Y2VwdCBmb3IgaWZUYWJsZTsgdHVybnMgb3V0IHRoZSByZXN0IGFyZSBhbGwgbmV3IHRhYmxlcykKICAgLSBpZmRlZiBvdXQgaWZUYWJsZSByZWdpc3RyYXRpb24gZm9yIGVuYWJsZS1tZmQtcmV3cml0ZXMsIGxlYXZpbmcgdGhlIHJlc3QKICAgICBvZiB0aGUgY29kZSBpbnRhY3QgZm9yIG90aGVyIHRhYmxlcy9vYmplY3QgdGhhdCBuZWVkIGl0LgoKMjAwNC0wNy0wNCAxMDoxNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC0gc2V0IGlmIHR5cGUgdG8gdHVubmVsIGlmIG5vdCBzZXQgJiBpZiBuYW1lIHN0YXJ0cyB3aXRoICdzaXQnCgoyMDA0LTA3LTA0IDEwOjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9pb2N0bC5jOgoKICAgLSBzZXQgcGh5c2FkZHIgbGVuIHRvIDAgaWYgcGh5c2FkZHIgbm90IGtub3duCiAgIC0gc2V0IG9wZXIgc3RhdHVzIGZyb20gaWYgZmxhZ3MKCjIwMDQtMDctMDQgMTA6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgLSBsZWF2ZSBpZl9kZXNjciBOVUxMIHVudGlsIHdlIGNhbiBkZXRlcm1pbmUgaXQuCgoyMDA0LTA3LTA0IDEwOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBMaW51eDogb25seSBsb2cgbWlzc2luZyAvcHJvYy9tZW1pbmZvIGVycm9ycyBvbmNlLCBhdCBzdGFydHVwCgoyMDA0LTA3LTA0IDEwOjAzICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgaW5pdCB2YXIgYmVmb3JlIHVzaW5nIGl0CgoyMDA0LTA3LTA0IDEwOjAyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGFkZCBuZXRzbm1wIGFzc2VydCBvbiBkdXBsaWNhdGUgcmVnaXN0cmF0aW9uCgoyMDA0LTA3LTAzIDE3OjM3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKICAgLSBmaXggY2FjaGUgbG9va3VwIG9pZCBwYXJhbQoKMjAwNC0wNy0wMyAxNzoyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgdXBkYXRlIGNvbW1lbnRzOyBkb2N1bWVudCB0aGF0IG1hZ2ljIGlzIGZvciB1c2VyIGhhbmRsZXIKCjIwMDQtMDctMDMgMTc6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGUuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDctMDMgMTc6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi9pZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5jLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGUuaCwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfZGF0YV9hY2Nlc3MuYwosCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5oCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuYwosIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfaW50ZXJmYWNlLmgKLCBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuYywKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGUuaCwKICAgICBpcC1taWIvaXBBZGRyZXNzVGFibGUvaXBBZGRyZXNzVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlX2ludGVyZmFjZS5jLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS9pcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gc29tZSB3YXJuaW5ncyBmb3Igc3R1ZmYgdG8gYmUgZG9uZSBiZWZvcmUgNS4yCgoyMDA0LTA3LTAzIDE1OjUzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIGZpeCBjb25kaXRpb25hbCB0ZXN0IGZvciBza2lwcGluZyBtYXBwaW5nCgoyMDA0LTA3LTAzIDE1OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdmFsdWUtbWFwLWZ1bmMubTJpOgoKICAgb25seSBkZWNsYXJlIHZhciBpZiBpdCB3aWxsIGJlIHVzZWQKCjIwMDQtMDctMDMgMTM6NDYgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaDoKCiAgIGFkZCBub3RlIGluIHN0cnVjdCB0byB1cGRhdGUgX2Nsb25lX2hhbmRsZXIgd2hlbiBub3QgaXRlbXMgYWRkZWQKCjIwMDQtMDctMDMgMTM6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICAtIGRvbid0IHVzZSAnOicgaW4gZmlsZSBuYW1lCiAgIC0gYWRkIC0tc2hvdy1jLWZ1bmN0aW9uIHRvIGRpZmYgcGFyYW1zCgoyMDA0LTA3LTAzIDEzOjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCB1cGxvYWQgZm9yIG5zYi1wYWNrYWdlIGFib3J0IGNhc2UKCjIwMDQtMDctMDMgMTM6MzYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBtb3JlIHZlcmJvc2UgaW5mbyBvbiB1cGxvYWQKCjIwMDQtMDctMDMgMTA6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIHJldHVybiBlcnJvciBmcm9tIHVzbV9jaGVja19zZWNMZXZlbCBpZiB1c2VyU3RhdHVzIGlzIG5vdCBhY3RpdmUKCjIwMDQtMDctMDMgMTA6NDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaCwgc25tcGxpYi90b29scy5jOgoKICAgLW5ldyBuZXRzbm1wX2hleF90b19iaW5hcnkgKGFsbG93cyBzcGVjaWZ5aW5nIGRlbGltaXRlcnMgZm9yIGhleCBzdHJpbmcpCiAgIC1hZGQgZG94eWdlbiBkb2NzOyBtb3ZlIHNvbWUgY29tbWVudHMgdG8gZnVuY3Rpb24gZG9jcwoKMjAwNC0wNy0wMyAxMDoxNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICB1cGNhc2UgY29uc3RhbnRzCgoyMDA0LTA3LTAzIDEwOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgZG9uJ3QgaW5jbHVkZSBkZWxldGVkIGhlYWRlcgoKMjAwNC0wNy0wMyAxMDoxNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKOgoKICAgLSBjb25zaXN0ZW5jeSBiZXR3ZWVuIG5vbi1pbmRleCBhbmQgaW5kZXggdmFyIHJlZmVyZW5jZXMKCjIwMDQtMDctMDMgMTA6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIC0gYWxsb3cgdGFibGUgdG8gc3BlY2lmeSBubyBtYXBwaW5nIGZvciBub2RlcwogICAtIG5ldyBvcHRpb24gdG8gZ2VuZXJhdGUgdGFibGUgZGVmYXVsdHMgJiBleGl0CgoyMDA0LTA3LTAzIDEwOjEzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgLSBtb3ZlIGFzc2lnbm1lbnQgbGF0ZXIgdG8gZ2V0IGNvcnJlY3QgdmFsdWUKCjIwMDQtMDctMDMgMTA6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgICBnZW5lcmljLWdldC1vaWQubTJpLCBtMmNfc2V0dXBfbm9kZS5tMmksCiAgICAgbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYywKICAgICBtZmQtcmVhZG1lLm0yYzoKCiAgIC0gYWxsb3cgdGFibGUgdG8gc3BlY2lmeSBubyBtYXBwaW5nIGZvciBub2RlcwoKMjAwNC0wNy0wMiAxMDowNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBmaXggYnVnIzgxOTE1NCBieSBhbGxvd2luZyBnZXRuZXh0IGZhaWx1cmUgdG8gY29udGludWUgdHJhdmVyc2luZyB0aGUgZXh0ZW5zaWJsZSBsaXN0cy4KCjIwMDQtMDctMDIgMDc6MTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBtYWtlIGEgc2FmZSBjb3B5IG9mIHRoZSBjb21tYW5kIHN0cmluZyB0byB0aGUgbmFtZSBzdHJpbmcuCgoyMDA0LTA3LTAyIDA2OjUwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgYXBwbHkgcGF0Y2ggIzkxMDA5NCBTb2xhcmlzIGNhbiBvbmx5IHNlZSBzb21lIGRpc2tzIC0tIGluY3JlYXNlIExVTiByYW5nZSAwLTcKCjIwMDQtMDctMDIgMDY6MzggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggYnVnICM5ODQwNjEgLSBjaGVjayBsaW1pdHMsIGJ1aWxkIGRldmljZSB0eXBlIHNwYW5zIHByb3Blcmx5CgoyMDA0LTA3LTAyIDA2OjEyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIHdhcm4sIHRoZW4gcHJldmVudCBhZGRpbmcgbW9yZSBkZXZpY2VzIHRoYW4gdGhlIGRpc2tzIGFycmF5IHdpbGwgaG9sZC4KCjIwMDQtMDctMDIgMDU6MjQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgYXBwbHkgcGF0Y2ggIyA5ODM4NTEgQ2hlY2sgcmV0dXJuIHZhbHVlIGZvciBjZ2V0bmV4dCgpIGFuZCBmaXggI2lmZGVmCgoyMDA0LTA3LTAyIDA0OjQ3ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgUkVBRE1FLm1pYnMsIHNtaXN0cmlwOgoKICAgTm90ZXMgYW5kIHR3ZWFrcyB0aGF0IHNob3VsZCBtYWtlIGl0IGVhc2llciB0byBhIGZ1bGwgcmZjIG1pYiBjb21wbGVtZW50CiAgIHVuZGVyIFNvbGFyaXMKCjIwMDQtMDctMDIgMDQ6MzcgIG5iYQoKICAgKiBtaWJzLzogcmZjbGlzdCwgcmZjbWlicy5kaWZmOgoKICAgTmV3IHZlcnNpb24gb2cgUHJpbnRlci1NSUIKCjIwMDQtMDctMDIgMDM6MTkgIG5iYQoKICAgKiBtaWJzL01ha2VmaWxlLm1pYjoKCiAgIFVwZGF0ZSB0cCBjb3JyZWN0IFJGQyBmb3IgRXRoZXJsaWtlLU1JQgoKMjAwNC0wNi0zMCAyMDowNCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBhdm9pZCBzb3J0IHdoZW4gb25seSBvbmUgcGFzcyBvciBwYXNzX3BlcnNpc3QgZGlyZWN0aXZlIGlzIGluc3RhbnRpYXRlZC4KICAgcHJldmVudCBvdmVyZmxvd2luZyBiaW4yYXNjJ3MgYnVmZmVyLCBhbmQgcmVtb3ZlIGEgc2V0IGJ1dCBub3QgdXNlZCAiaXRtcCIgdmFyaWFibGUuCgoyMDA0LTA2LTMwIDE5OjM4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIGZpeCBidWcgOTgxMjc1IGJ5IE9JRCBzb3J0aW5nIHRoZSAiZXhlYyIgYW5kICJzaCIgZGlyZWN0aXZlcy4KCjIwMDQtMDYtMzAgMDc6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBmaXggY3V0LW4tcGFzdGVzIHRvIHVzZSBjb3JyZWN0IGZ1bmN0aW9uL3ZhciBuYW1lcwoKMjAwNC0wNi0zMCAwNjozNSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBmaXggYnVnIyA1MDIyMTUgIm9pZCBub3QgaW5jcmVhc2luZyIgYnVncyBmb3IgSVB2NiBVRFAvVENQIG9uIEZyZWVCU0QKCjIwMDQtMDYtMzAgMDY6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZUYWJsZS9pZlRhYmxlX2NvbnN0YW50cy5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMKLCBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmgsIGlmWFRhYmxlL2lmWFRhYmxlLmMKLCBpZlhUYWJsZS9pZlhUYWJsZS5oLCBpZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYwosIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgdXBkYXRlIGdlbmVyYXRlZCBjb2RlCgoyMDA0LTA2LTI5IDE2OjA1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIGZpeCBuYW1lICh1ZGJ0YWJsZSAtLT4gdGNidGFibGUpIGluIFRDUDYgdmVyc2lvbiBvZiB2YXJfdGNwNi4KCjIwMDQtMDYtMjkgMDU6MTQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBhcHBseSBwYXRjaCA5Nzk0MzYgdG8gbWFrZSBzeXMvZGtzdGF0Lmggb2Jzb2xldGUgd2hlbiBidWlsZGluZyByZWNlbnQgRnJlZUJTRDUKCjIwMDQtMDYtMjkgMDQ6NTcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBhcHBseSBwYXRjaCA5Nzk0MzQgdG8gU3VwcG9ydCBGcmVlQlNEIDUuMCBhbmQgNS4xIGluIGRpc2tpby5jCgoyMDA0LTA2LTI5IDA0OjAwICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgVXNlIHVfbG9uZyBmb3IgcGh5c19tZW0gaW4gbWVtb3J5X2ZyZWVic2QyLmMgKHBhdGNoICM5NzkwMzQpCgoyMDA0LTA2LTI5IDAzOjQ4ICBzbGlmCgogICAqIHBlcmwvT0lEL3Rlc3QucGwsIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9NYWtlZmlsZS5pbiwKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIHBlciBBbGV4IEJ1cmdlciwgYXBwbHkgcGF0Y2ggIzk4MDExOCB0byBmaXggTVNWQyBQZXJsIG1vZHVsZSBidWlsZCBhbmQKICAgcHJldmVudCB0ZXN0IGZyb20gc3RvcHBpbmcgaW4gV2luZG93cyBkdWUgdG8gYW4gdW4taW5pdGlhbGl6ZWQgdmFyaWFibGUuCgoyMDA0LTA2LTI5IDAzOjM2ICBzbGlmCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgICAgbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgbmV0c25tcG1pYnMvTWFrZWZpbGUuaW4KLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvTWFrZWZpbGUuaW4sCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgTVNWQyBidWlsZHMgdmFjbV9jb25mIG9iamVjdCBpbiBvcmRlciB0byBmaXggYnVnICM5ODEzNzcuIEdvb2QgQ2FsbCwgRGF2ZS4KCjIwMDQtMDYtMjkgMDA6MDMgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgICBUMDU1YWdlbnR2MW1pbnRyYXAsIFQwNTZhZ2VudHYyY21pbnRyYXA6CgogICB1c2UgQVVUSFRFU1RBUkdTIHRvIGZpeCBidWcjOTczNjczCgoyMDA0LTA2LTI4IDE3OjA0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVwZGF0ZSBmb3IgbmV3IGFjY29uZmlnLmgKCjIwMDQtMDYtMjggMTY6NTkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSBhZGQgTkVUU05NUF9FTkFCTEVfTUZEX1JFV1JJVEVTCiAgIC0gYWRkICcoaW5jb21wbGV0ZSknIHRvIGNvbW1lbnQgZm9yIE5TX1JFRU5UUkFOVAoKMjAwNC0wNi0yOCAxNjo1NiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNi0yOCAxNjo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuaCwKICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaDoKCiAgIC0gbmV3IGNvbmZpZ3VyZSBmbGFnZTogLS1lbmFibGUtbWZkLXJld3JpdGVzIHdpbGwgdHVybiBvbiByZXdyaXR0ZW4gbW9kdWxlcy4KICAgICAtIGN1cnJlbnRseSBoYXMgdGhlIHNpZGUgZWZmZWN0IG9mIGRpc2FibGluZyBkZXByZWNhdGVkIHRhYmxlcwoKMjAwNC0wNi0yOCAxNToxOCAgcnN0b3J5CgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICAtIHVwZGF0ZSBmb3IgYXV0by1nZW4gZnJvbSBtaWIyYwoKMjAwNC0wNi0yOCAxNToxMSAgcnN0b3J5CgogICAqCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9jb25zdGFudHMuaAo6CgogICAtIHVwZGF0ZSBvaWQgY2hhbmdlZCBpbiBpZXRmIGRyYWZ0CgoyMDA0LTA2LTI4IDE1OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvOgogICAgIGluZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlL2lwQ2lkclJvdXRlVGFibGUuaDoKCiAgIGNvbmZpZyBleGNsdWRlIG1pYklJL2lwLCBub3QgbWliSUkvdmFyX3JvdXRlCgoyMDA0LTA2LTI4IDE1OjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgcmVtb3ZlIHVudXNlZCAoZHVlIHRvIGRhdGEgc2hhcmluZyB3L2lmVGFibGUpIGZ1bmN0aW9ucwoKMjAwNC0wNi0yOCAxNTowNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZS5oOgoKICAgdXNlIGxvY2FsLCBub3Qgc3l0ZW0sIHN0eWxlIGluY2x1ZGUgZm9yIG1pYmdyb3VwIGhlYWRlcgoKMjAwNC0wNi0yOCAxNTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIG1vdmUgdmFyIGRlY2wgYmVmb3JlIGZpcnN0IHN0YXRlbWVudAoKMjAwNC0wNi0yOCAxMTo1NCAgc2xpZgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZml4IHNldHRpbmcgb2YgT1NUWVBFIGZvciBGcmVlQlNEIGJ1aWxkIHBsYXRmb3JtcyAoY29uc2lkZXIgYWNjb25maWcuaCkuCgoyMDA0LTA2LTI4IDExOjQ0ICBzbGlmCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHVzZSBpbnQgZm9yIGF0b2ksIGNhc3QgdG8gdW5zaWduZWQgc2hvcnQ7CiAgIHRoaXMgZml4ZXMgYnVnIDk4MTQzOCB0cmFwc2luayBwb3J0IHJhbmdlIGNoZWNrcyBhcmUgd3JvbmcKCjIwMDQtMDYtMjggMDU6MzQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDYtMjggMDU6MzIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIG5ldyAtLWVuYWJsZS1taWItY29uZmlnLWNoZWNraW5nIHRvIGZhaWwgb24gbW9kdWxlIGNvbmZsaWN0cwoKMjAwNC0wNi0yOCAwNToyMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICAtIGFkZCBuYW1lIHRvIGNvbnRhaW5lciBzdHJ1Y3R1cmUKICAgLSBuZXcgbWFjcm8gdG8gZmluZCBuYW1lZCBjb250YWluZXIgaW4gbGlzdAoKMjAwNC0wNi0yOCAwNToyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgcmVtb3ZlIGNvbmRpdGlvbiBmb3IgaGVhZGVyIGZ1bmN0aW9uIHByb3RvdHlwZSBnZW5lcmF0aW9uCgoyMDA0LTA2LTI4IDA1OjIwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC0gcmVtb3ZlIGRlcHJlY2F0ZWQgbGFiZWwgZnJvbSBmdW5jLCBhZGQgbm90ZSBvbiBwcmVmZXJyZWQgZnVuYyBpbnN0ZWFkCiAgIC0gYWRkIHNvbWUgbmV0c25tcF9hc3NlcnRzICYgZGVidWcgb3V0cHV0CiAgIC0gcmVkdWNlIGR1cGxpY2F0ZWQgY29kZQogICAgIC0gbmV0c25tcF9kYXRhX2xpc3RfYWRkX2RhdGEgbm93IGNhbGxzIG5ldHNubXBfZGF0YV9saXN0X2FkZF9ub2RlCiAgIC0gbG9nIHdhcm5pbmcgaWYgZHVwbGljYXRlIGtleSBhZGRlZCB0byBhIGRhdGEgbGlzdAogICAtIG5ldHNubXBfYWRkX2xpc3RfZGF0YSBub3cgY2FsbHMgcHJlZmVycmVkIG5ldHNubXBfZGF0YV9saXN0X2FkZF9ub2RlCgoyMDA0LTA2LTI4IDA1OjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgYWRkIG1pc3NpbmcgZGVmYXVsdAoKMjAwNC0wNi0yOCAwNToxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2lmVGFibGUvLm1pYjJjLXVwZGF0ZXJjLAogICAgIGlmLW1pYi9pZlhUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLy5taWIyYy11cGRhdGVyYywKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8ubWliMmMtdXBkYXRlcmMsCiAgICAgaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5taWIyYy11cGRhdGVyYzoKCiAgIHJjIGZpbGUgdXNlZCBmb3IgY29kZSBnZW5lcmF0aW9uCgoyMDA0LTA2LTI4IDA1OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlmLW1pYi9pZlhUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZSwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS8uY3ZzaWdub3JlLAogICAgIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS8uY3ZzaWdub3JlOgoKICAgaWdub3JlIG1pYjJjLXVwZGF0ZSBkaXJzCgoyMDA0LTA2LTI4IDA1OjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICBBdXRvbWF0aWNhbGx5IHVucmVnaXN0ZXIgcHJveHkgc2V0dGluZ3Mgb24gYWdlbnQgc2h1dGRvd24gb3IgcmVzdGFydC4KICAgKEJ1ZyAjNzQ4NzMzKQoKMjAwNC0wNi0yOCAwNDo1OSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwcm94eS5jLCBwcm94eS5oOgoKICAgVW5yZWdpc3RlciBwcm94eSByZWdpc3RyYXRpb25zIHdoZW4gZnJlZWluZyB0aGUgY29uZmlnIHNldHRpbmdzLgoKMjAwNC0wNi0yOCAwNDo1MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgU2tpcCBlbXB0eSBjb250ZXh0cyB3aGVuIGR1bXBpbmcgdGhlIGludGVybmFsIE1JQiByZWdpc3RyeS4KICAgKFByb2JhYmx5IGFzIGEgcmVzdWx0IG9mIHJlbW92aW5nIHJlZ2lzdHJhdGlvbnMpLgoKMjAwNC0wNi0yOCAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBEcm9wIHNwZWNpYWwtY2FzZSBoYW5kbGluZyBvZiAibG8vbG8wIiBzaW5jZSB0aGlzIGdpdmVzIGJvZ3VzIHJlc3VsdHMKICAgKEJ1ZyAjNDIyMzk0KQoKMjAwNC0wNi0yOCAwNDoyMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIERvbid0IHRyeSB0byBzZXQgdGhlIE9JRCBvZiBhIHZhcmlhYmxlIHRoYXQgaXNuJ3QgdGhlcmUuCiAgIChQcm9iYWJseSB0cmlnZ2VyZWQgYnkgcnVubmluZyBHZXRCdWxrIG9uIGEgIm5vbi1zaW1wbGUiCiAgICB2aWV3IC0gc2VlIEJ1ZyAjNzA2MDg5KQoKMjAwNC0wNi0yNyAxODozNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSByZW5hbWUgbmV0c25tcF9jYWNoZV9leHRyYWN0X2Zyb21fcmVxaW5mbyB0byBuZXRzbm1wX2NhY2hlX3JlcWluZm9fZXh0cmFjdAoKMjAwNC0wNi0yNyAxODozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3AuYywKICAgICB1ZHAuYzoKCiAgIC0gdXNlIG5ldHNubXBfY2FjaGVfaXNfdmFsaWQgaW5zdGVhZCBvZiBuZXRzbm1wX2lzX2NhY2hlX3ZhbGlkCgoyMDA0LTA2LTI3IDE4OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICAtIGFkZCBuYW1lIHBhcmFtZXRlciB0byBuZXRzbm1wX2NhY2hlX2lzX3ZhbGlkCiAgIC0gbmV3IG5ldHNubXBfY2FjaGVfcmVxaW5mb19pbnNlcnQsIG5ldHNubXBfY2FjaGVfcmVxaW5mb19leHRyYWN0CiAgIC0gdXNlIENBQ0hFX05BTUU6aGFuZGxlck5hbWUgYXMgZGF0YV9saXN0IGtleSBmb3IgY2FjaGUKICAgICAtIHRoaXMgZml4ZXMgQnVnICM5NzM3MjggdGhlIHJpZ2h0IHdheS4gc2VlIGJ1ZyByZXBvcnQgZm9yIGRldGFpbHMKCjIwMDQtMDYtMjcgMTc6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICAtIGFkZCBuZXRzbm1wX3JlcXVlc3RfcmVtb3ZlX2xpc3RfZGF0YQoKMjAwNC0wNi0yNyAxNzoxMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKOgoKICAgLSBhZGQgbmV0c25tcF9hZ2VudF9yZW1vdmVfbGlzdF9kYXRhCgoyMDA0LTA2LTI2IDE1OjExICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBhZGQgZGVidWcgbXNnIHdoZW4gbW9kdWxlIHBhdGggY2hhbmdlcwogICAtIHR3ZWFrIGRlYnVnIG1zZyBvdXRwdXQgaW5kZW50CgoyMDA0LTA2LTI2IDE1OjA5ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWFrZSBuZXRzbm1wX3NldF9taWJfZGlyZWN0b3J5IGFuZCBoYW5kbGVfbWlic19jb25mIGNvbnNpc3RlbnQ6CiAgICAgLSAnLS9kaXInIGFkZHMgL2RpciBiZWZvcmUgZXhpc3RpbmcgZGlycwogICAgIC0gJysvZGlyJyBhZGRzIC9kaXIgYWZ0ZXIgZXhpc3RpbmcgZGlycwogICAgICAgTk9URTogdGhpcyByZXN0b3JlcyBvcmlnaW5hbCBiZWhhdmlvciBvZiAnKycgdG8gdGhhdCBvZiA1LjAuMS4gQWZ0ZXIKICAgICAgICAgICAgIDUuMC4yLCBpZiBJIHJlYWQgdGhlIGNvZGUgcmlnaHQsICcrJyBiZWhhdmlvdXIgb24gdGhlIGNtZCBsaW5lIGFuZAogICAgICAgICAgICAgaW4gTUlCRElSUyB3YXMgcmV2ZXJzZWQgYW5kIG5vdCBjb25zaXN0ZW50IHdpdGggaGFuZGxlX21pYnNfY29uZi4KCjIwMDQtMDYtMjYgMDY6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtYWtlIG11bHRpcGxlIG1pYmRpcnMgaW4gY29uZiBmaWxlcyB3b3JrIHdpdGggJ2xlYXN0IHN1cnByaXNlJyAoaWUgY29tcGxldGVseQogICAgIHJlcGxhY2UgbWliZGlycywgdW5sZXNzICsgc3BlY2lmaWVkCiAgIC0gbmV3IG1pYmRpciBiZWhhdmlvdXI6IGlmIC0gc3BlY2lmaWVkLCBhZGQgc3BlY2lmaWVkIGRpcnMgYmVmb3JlIGV4aXN0aW5nCiAgICAgb25lcyBpbnN0ZWFkIG9mIGFmdGVyCgoyMDA0LTA2LTI2IDA1OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbmYuYzoKCiAgIFN1cHBvcnQgIm11bHRpLXRva2VuIiBtYXNrcyAtIGkuZS4gdXNpbmcgc3BhY2UgKHJhdGhlciB0aGFuCiAgICcuJyBvciAnOicpIHRvIHNlcGFyYXRlIHRoZSBtYXNrIG9jdGV0cy4gIChTZWUgYnVnICM3MDYwODkpCgoyMDA0LTA2LTI2IDA1OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIFdvcmsgd2l0aCB0aGUgc2FtZSBjYWNoZSBzdHJ1Y3R1cmUgY29uc2lzdGVudGx5LAogICByYXRoZXIgdGhhbiByZS1leHRyYWN0aW5nIGl0IGZyb20gdGhlIHJlcWluZm8gc3RydWN0dXJlLgogICAoU2hvdWxkIGZpeCBCdWcgIzk3MzcyOCkKCjIwMDQtMDYtMjUgMDQ6NDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYzoKCiAgIEZpeCB0aGUgY2hlY2sgZm9yIGEgdmFsaWQgSUNNUCBjYWNoZQogICAoU3BvdHRlZCBieSBPbGVnIEl2YW5vdikKCjIwMDQtMDYtMjUgMDI6MTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBBIG1pc3NpbmcgJ2lwT3V0Tm9Sb3V0ZXMnIHZhbHVlIHNob3VsZCB0aHJvdyBhbiBleGNlcHRpb24gKG5vdCBhbiBlcnJvcikKICAgYW5kIGFsbG93IGFueSBvdGhlciBJUC1yZWxhdGVkIHZhcmJpbmRzIGluIHRoZSBzYW1lIHJlcXVlc3QgdG8gYmUgcHJvY2Vzc2VkLgoKMjAwNC0wNi0yNCAxMzowNCAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNYWtlIC1JciBlZmZlY3RpdmUgZm9yIGEgTmV0d29ya0FkZHJlc3MKCjIwMDQtMDYtMjQgMDk6MDEgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAtIG1ha2UgY2xvbmVfaGFuZGxlciBzdGF0aWMsIHJlbmFtZSB0byBfY2xvbmVfaGFuZGxlcgogICAtIGRlbGV0ZSBoYW5kbGVyICYgcmV0dXJuIG51bGwgb24gY3JlYXRlIGlmIG5hbWUgc3RyZHVwIGZhaWxzCiAgIC0gcG9zc2libGUgZml4IGZvIDk3MzcyOCBdIG1haW4gYnJhbmNoIGZhaWxzIHRvIGxvYWQgdGNwQ29ubmVjdCBhbmQgdWRwIFRhYmxlCiAgICAgLSBjb3B5IGZsYWdzIGluIF9jbG9uZV9oYW5kbGVyCiAgICAgLSB1cGRhdGUgbmV0c25tcF9oYW5kbGVyX2R1cCB0byB1c2UgX2Nsb25lX2hhbmRsZXIsIG5ldHNubXBfaGFuZGxlcl9mcmVlCgoyMDA0LTA2LTI0IDA0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IGRlYnVnIHN0YXRlbWVudCBwYXJhbWV0ZXIKCjIwMDQtMDYtMjMgMTE6NTcgIG5iYQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIERveHlnZW4gaW50ZXJuYWwgZG9jdW1lbnRhdGlvbiBjb250cmlidXRlZCBieSBDeXJpbCBNQVJHQVJJQQoKMjAwNC0wNi0yMyAxMDo0NSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYnVnIDk3ODA4NzogYmFkIGluZGV4IGNoZWNrIGZvciBOZXR3b3JrQWRkcmVzcwoKMjAwNC0wNi0yMiAxNTo1NyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggY3B1LWJ1cm5pbmcgYnkgcnVubmluZyBhbGFybXMuIERpYWdub3NlZCBieSByZ3JlYWJAdXNlcnMuc291cmNlZm9yZ2UubmV0CgoyMDA0LTA2LTIyIDE1OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaQo6CgogICBjaGVjayBmb3IgbnVsbCBwb2ludGVyIGFmdGVyIGFsbG9jYXRpb24KCjIwMDQtMDYtMjIgMTU6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgLSBtb3ZlIGRhdGFfaW5pdCBjYWxsIGludG8gaW50ZXJmYWNlIGNvZGUKICAgLSBjYWxsIGRhdGFfaW5pdCBiZWZvcmUgY29udGFpbmVyX2luaXQKCjIwMDQtMDYtMjIgMTU6MTMgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQXV0b2RldGVjdCAtbGRldnN0YXQgZm9yIEZyZWVCU0QgNSAoYXMgd2FzIGRvbmUgZm9yIDQpCgoyMDA0LTA2LTIyIDA2OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICBGaXggaGFuZGxpbmcgb2YgdGFibGUgcm93IHJlZ2lzdHJhdGlvbiBpbiBvbGQtQVBJIChCdWcgIzcwMjQ1OCkKCjIwMDQtMDYtMjIgMDI6MDMgIGR0czEyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBQZXJsIEFQSSBmb3Igc2V0dGluZyBNSUIgcGFyc2luZyBvcHRpb25zIChCdWcgIzU1NDc0OSkKCjIwMDQtMDYtMjEgMTE6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZXMuaAoKMjAwNC0wNi0yMSAxMDo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gYWRkIGZ1bmN0aW9uIHRvIHNldCB2YWxpZF9jb2x1bW5zCgoyMDA0LTA2LTIxIDA2OjMxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgRml4IGR1cGxpY2F0ZSBhbGxvY2F0aW9uIG9mIG1lbW9yeSB3aGVuIGRlZmluaW5nIGVudW1lcmF0aW9uIGxpc3RzCiAgIChCdWcgIzkyMzc2NikKCjIwMDQtMDYtMjEgMDM6MTIgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZjoKCiAgIENvcnJlY3QgZGVzY3JpcHRpb24gb2YgcmV0dXJuIHZhbHVlcyB0byB1c2UgKEJ1ZyAjOTQ3OTI2KQoKMjAwNC0wNi0yMSAwMzowMSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgU2V0IHRoZSBzaXplIGZvciBwYXJzaW5nIGFuIGludGVnZXIgY29ycmVjdGx5IChCdWcgIzk0NzQwMykKCjIwMDQtMDYtMTkgMTY6NTYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oOgoKICAgRml4IGNvbW1lbnQgdHlwby4KCjIwMDQtMDYtMTkgMDY6MzQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBtb2RpZnkgcGF0Y2ggOTU2MjcyIHRvIG1ha2UgaXQgU29sYXJpczIgc3BlY2lmaWMKCjIwMDQtMDYtMTggMTM6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gaW5zdGFsbCBuZXcgbWliMmMtdXBkYXRlIGJhc2ggc2NyaXB0CiAgIC0gaW5zdGFsbCB0b3AgbGV2ZWwgbWZkIGNvbmYgZmlsZQogICAtIG1ha2UgaW5zdGFsbCB0YXJnZXQgZGVwZW5kIG9uICdtYWRlJyBwZXJsIHNjcmlwdHMKCjIwMDQtMDYtMTggMTI6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBjaGFuZ2UgdV9pbnQzMl90IHRvIGludDMyIHRvIG1ha2UgaXQgbW9yZSBwb3J0YWJsZQoKMjAwNC0wNi0xOCAxMTo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgUmVtb3ZlZCBhIHNraXBfdG9rZW4gdGhhdCB3YXMgY2F1c2luZyBhIGZvbGxvdy1vbiB0b2tlbiB0byBiZSBza2lwcGVkLgoKMjAwNC0wNi0xOCAxMTo0NSAgaGFyZGFrZXIKCiAgICogbWlicy9yZmNsaXN0OgoKICAgdXBkYXRlZCByZmMgbGlzdCBmb3IgdXNtLWFlcwoKMjAwNC0wNi0xOCAxMTo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIC0gRml4ZWQgdXNhZ2Ugb2YgZl9mcnNpemUgdW5kZXIgYXJjaGl0ZWN0dXJlcyB0aGF0IGhhZCBpdCBmb3Igc3RhdHZmcwogICAgIGJ1dCBub3Qgc3RhdGZzLgoKMjAwNC0wNi0xOCAxMDozNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsIG1pYnMvTWFrZWZpbGUuaW4KLCBtaWJzL1NOTVAtVVNNLUFFUy1NSUIudHh0LCBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gVXBkYXRlZCB0aGUgQUVTIE9JRCB0byBtYXRjaCB0aGUgcmVjZW50bHkgcHVibGlzaGVkIFVTTS9BRVMgZHJhZnQKICAgLSBBZGRlZCB0aGUgVVNNLUFFUyBNSUIgdG8gdGhlIGxpc3Qgb2YgbWlicy4KCjIwMDQtMDYtMTggMDk6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gYWRkIG5ldyBtaWIyYy1kYXRhIGRpciB0byBzZWFyY2ggcGF0aAoKMjAwNC0wNi0xOCAwOTo0MSAgcnN0b3J5CgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBhZGQgaW5zdGFsbC91bmluc3RhbGwgZm9yIG1mZCBtaWIyYyBmaWxlcwoKMjAwNC0wNi0xOCAwNzozMCAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFN1cHBvcnQgZm9yIGludGVycHJldGluZyBJbmV0QWRkcmVzc1R5cGUvSW5ldEFkZHJlc3MgaW5kZXhlcyB3aXRoaW4gYW4gT0lELgogICAoUGF0Y2ggIzg0MTYyNSBmcm9tIFlpeGlvbmcgWm91KQoKMjAwNC0wNi0xOCAwNzowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUmVjb2duaXNlIEluZmluaWJhbmQgaW50ZXJmYWNlcwogICAoUGF0Y2ggIzk3MDYxNyBmcm9tIEthbm9qIFNhcmNhcikKCjIwMDQtMDYtMTggMDY6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgRml4IGhhbmRsaW5nIG9mIC0tZW5hYmxlLWxvY2FsLXNtdXggb3B0aW9uCiAgIChQYXRjaCAjOTQ5ODA4IGZyb20gRXJpayDniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy054it9YCRi++9pPWAjLZuZ2fniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy16ISaZCkKCjIwMDQtMDYtMTggMDY6NDYgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQWRkIHN1cHBvcnQgZm9yIGFjdGl2YXRpbmcgYW5kIGRlYWN0aXZhdGluZyB1c2VycywKICAgbmVjZXNzYXJ5IGZvciBmdWxsIGNvbXBsaWFuY2Ugd2l0aCBSRkMgMzQxNC4gKFBhdGNoICM5NDM3NjIpCgoyMDA0LTA2LTE4IDA2OjM4ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDE1MHNvbGFyaXNob3N0Y3B1LCBUMTUxc29sYXJpc2hvc3RkaXNrCiwgVDE1Mmhvc3R1cHRpbWUsIFQxNTNzb2xhcmlzc3dhcDoKCiAgIFVzZSB0cmFuc3BvcnQgdmFyaWFibGVzIGZvciB0ZXN0aW5nIHJhdGhlciB0aGFuIGhhcmR3aXJpbmcgdWRwOmxvY2FsaG9zdAogICAoUGF0Y2ggIzk0MDMwMiBmcm9tIE1pa2UgU2xpZmNhaykKCjIwMDQtMDYtMTggMDY6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFVzZSAvZGV2L2FycCByYXRoZXIgdGhhbiAvZGV2L2lwLCBzaW5jZSB0aGlzIHdvcmtzIHByb3Blcmx5IHdpdGggbXVsdGlwbGUgem9uZXMuCiAgIChQYXRjaCAjOTQwMDI1IGZyb20gQm9iIFJvd2xhbmRzKQogICBbTm8gaWRlYSB3aGF0IHRoaXMgbWVhbnMsIGJ1dCBpdCBzb3VuZHMgaW1wcmVzc2l2ZS4uLi5dCgoyMDA0LTA2LTE4IDA2OjI1ICBkdHMxMgoKICAgKiBzbm1wbGliL3BrY3MuYzoKCiAgIEluaXRpYWxpc2UgcFNsb3RMaXN0IHRvIGd1YXJkIGFnYWluc3QgZnJlZWluZyBnYXJiYWdlLgogICAoUGF0Y2ggIzkzODEzOSBmcm9tIEJvYiBSb3dsYW5kcykKCiAgIElmIGdhcmJhZ2UgaXNuJ3Qga2VwdCBzdHJpY3RseSBjb250cm9sbGVkLAogICAgd2hvIGtub3dzIHdoYXQgc3RhdGUgc29jaWV0eSBtaWdodCBnZXQgaW50by4uLi4KICAgKEhvbWVzcHVuIHBoaWxvc29waGljYWwgbXVzaW5ncyBmcm9tIERhdmUgU2hpZWxkKQoKMjAwNC0wNi0xOCAwNjoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmM6CgogICBEb24ndCBzZXQgdGhlIGluZGV4IHZhbHVlIHVudGlsIHdlJ3ZlIGNoZWNrZWQgdGhpcyBpcyBhIHZhbGlkIHJlcXVlc3QuCiAgIChQYXRjaCAjOTMwNzEyIGZyb20gSm9jaGVuL0NocmlzdG9waGVyIFByaWNlKQoKMjAwNC0wNi0xOCAwNjowOSAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBEb24ndCBpbmNsdWRlIHRoZSB2aWV3VHJlZSBsZW5ndGggd2hlbiBzYXZpbmcgYSBwZXJzaXN0ZW50IHZhY21WaWV3CiAgIChQYXRjaCAjOTIxMjc5IGZyb20gQm9iIFJvd2xhbmRzKQoKMjAwNC0wNi0xOCAwNTo1OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIFBhc3MgKnBvaW50ZXJzKiB0byByZWxvYWQvY29tcGFyZSBmdW5jdGlvbnMgaW50byBJbml0aWFsaXNlX1RhYmxlCiAgIChQYXRjaCAjOTIyNTE5IGZyb20gUm9iZXJ0IFdpbGNveCkKCjIwMDQtMDYtMTcgMjA6NTcgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy9UMTUwc29sYXJpc2hvc3RjcHU6CgogICBwZXIgQnJ1Y2UgU2hhdywgaW5jbHVkZSB0aGUgT0lEIGZvciBDUFUgZGV2aWNlIGluIHRoZSBtYXRjaCBzdHJpbmcuCgoyMDA0LTA2LTE3IDE5OjQyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgYXBwbHkgcGF0Y2ggOTU2MjcyIC0gdXNlIGNvcnJlY3Qgc3RydWN0dXJlIG1lbWJlciBmb3IgU29sYXJpcyBoclBhcnRpdGlvblNpemUKCjIwMDQtMDYtMTcgMTk6MDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gZG9jdW1lbnQgbm9kZS5kZXNjcmlwdGlvbgoKMjAwNC0wNi0xNyAxOTowOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfaW9jdGwuYzoKCiAgIC0gZml4IHJldHVybiBjb2RlIGZvciBtYWxsb2MgZmFpbHVyZQoKMjAwNC0wNi0xNyAxOTowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICAtIGNvbnZlcnQgZGVidWcgY29kZSB0aGF0IHNob3VsZCBoYXZlIG5ldmVyIGJlZW4gY2hlY2tlZCBpbiB0byBuZXRzbm1wX2Fzc2VydAoKMjAwNC0wNi0xNyAxODo1OCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIC0gYWRkIGxvdHMgb2YgZGVidWcgZm9yIHRyYWNraW5nIGluZGV4IHByb2Nlc3NpbmcKICAgLSBtYWtlIGNvZGUgYW5kIGNvbW1lbnRzIGNvbnNpc3RlbnQgd2l0aCBlYWNoIG90aGVyCiAgIC0gZml4IGEgMC1iYXNlZCB2cyAxLWJhc2VkIHByb2JsZW1zIHdoZW4gdXNpbmcgdmFsaWRfY29sdW1uIHZlcmlmaWNhdGlvbgogICAtIGZpeCBjb21wYXJpc29uIHRvIHdyb25nIHZhcmlhYmxlCiAgIC0gZHVlIHRvIG90aGVyIGZpeGVzLCBpbml0IHRibF9yZXFfaW5mby0+Y29sbnVtIGVhcmxpZXIKCjIwMDQtMDYtMTcgMTg6NTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIC0gdXBkYXRlIGZsb3cgY2hhcnQKICAgLSBzd2FwIHJvdyBjcmVhdGUgLyBjaGVjayB2YWx1ZXM7IG5vdCBxdWl0ZSBzdXJlIGlmIEkgc2hvdWxkLCB0aG91Z2gKCjIwMDQtMDYtMTcgMTg6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oCiwgaWZYVGFibGVfaW50ZXJmYWNlLmM6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGlmZGVmIG91dCBjb21taXQgY29kZSAoY29taW5nIHNvb24pCgoyMDA0LTA2LTE3IDE4OjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgLSB1cGRhdGUgZ2VuZXJhdGVkIGNvZGUKCjIwMDQtMDYtMTcgMTg6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmM6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIG1ha2Ugc3VyZSB0byBzZXQgZG9udCBpbnZhbGlkYXRlb24gc2V0IGNhY2hlIGZsYWcKCjIwMDQtMDYtMTcgMTg6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS9pZlRhYmxlLmM6CgogICAtIHVwZGF0ZSBnZW5lcmF0ZWQgY29kZQogICAtIGltcGxlbWVudCBzZXQgb2YgYWRtaW4gc3RhdHVzCgoyMDA0LTA2LTE3IDE4OjM2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIC0gdXBkYXRlIGdlbmVyYXRlZCBjb2RlCiAgIC0gc3BlY2lhbCBjYXNlIHByb2Nlc3NpbmcgZm9yIGlmYWRtaW4gc3RhdHVzIChieXBhc3Mgc2l6ZW9mIGNoZWNrKQoKMjAwNC0wNi0xNyAxODoyNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfbGludXguYzoKCiAgIC11c2UgbmV3IGZ1bmN0aW9ucyBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfaW9jdGxfZmxhZ3Nfc2V0LAogICAgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX210dV9nZXQKICAgLW5ldyBmdW5jdGlvbiBuZXRzbm1wX2FyY2hfc2V0X2FkbWluX3N0YXR1cwoKMjAwNC0wNi0xNyAxODoyNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZV9pb2N0bC5jLAogICAgIGludGVyZmFjZV9pb2N0bC5oOgoKICAgLW5ldyBmdW5jdGlvbnMgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2lvY3RsX2ZsYWdzX3NldCwKICAgIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9pb2N0bF9tdHVfZ2V0CiAgIC1tb3ZlIHdob2xlIGZ1bmN0aW9ucyBpbnNpZGUgaWZkZWYgY29uZGl0aW9uYWwsIHRvIGZvcmNlIGxpbmsgZXJyb3JzIGluc3RlYWQKICAgIG9mIGEgZmFsc2Ugc2Vuc2Ugb2Ygc2VjdXJpdHkgdGhhdCBhbiBpb2N0bCBpcyBhdmFpbGFibGUKCjIwMDQtMDYtMTcgMTg6MjIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICBkZWZpbmUgcHJpdmF0ZSAnYXJjaCcgZnVuY3Rpb24gcHJvdG90eXBlcyB0byBxdWVsbCBjb21waWxlciB3YXJuaW5ncwoKMjAwNC0wNi0xNyAxODoyMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIC1yZW5hbWUgc3RhdHMgc3RydWN0IG1lbWJlcnMgdG8gbm90IG1hdGNoIG1hY3JvIG5hbWVzCiAgIC1hZGQgcG9pbnRlciAmIG1hY3JvcyBmb3Igb2xkIHN0YXRzIHRvIGludGVyZmFjZSBlbnRyeQogICAtbW92ZSBjb25mIG92ZXJyaWRlIHN0cnVjdC9yb3V0aW5lcyBoZXJlCiAgIC1hZGQgaW5pdCByb3V0aW5lIGZvciBjb25maWd1cmUgdG8gZGV0ZWN0ICYgY2FsbAogICAtYWRkIG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9zZXRfYWRtaW5fc3RhdHVzCiAgIC1hZGQgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2VudHJ5X3VwZGF0ZV9zdGF0cyB0byBkZWFsIHdpdGggMzJiaXQgY291bnRlcgogICAgd3JhcHMsIHVubGVzcyA2NGJpdCBjb3VudGVycyBhcmUgZGV0ZWN0ZWQKCjIwMDQtMDYtMTcgMTg6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgc25tcGxpYi9pbnQ2NC5jOgoKICAgbmV3IGZ1bmN0aW9ucyB1NjRJbmNyLCB1NjRVcGRhdGVDb3VudGVyLCB1NjRDb3B5LCBuZXRzbm1wX2M2NF9jaGVja19mb3JfMzJiaXRfd3JhcAoKMjAwNC0wNi0xNyAxNzozNiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB0ZXN0IHNlc3Npb24gcHRyIGJlZm9yZSB1c2luZy4gZml4ZXMgYnVnICM5NzUwNjMgc25tcF9zZXNzX2Nsb3NlIE5VTEwgZGVyZWYKCjIwMDQtMDYtMTcgMDk6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICBVcGRhdGVkIHRoZSBkb2N1bWVudGF0aW9uIHRvIG1ha2UgaXQgbXVjaCBtb3JlIGV4dGVuc2l2ZSBhbmQgY29tcGxldGUuCgoyMDA0LTA2LTE3IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBQYXRjaCAgOTY4ODM5OiBuZXQtc25tcC1jb25maWcgZmFpbHMgdG8gcHJpbnQgLWx3cmFwCgoyMDA0LTA2LTE3IDA2OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgUGF0Y2ggIzk3MzcwMjogUE9EIGRvY3VtZW50YXRpb24gcGF0Y2ggZnJvbSBUb25pIFdpbGxiZXJnCgoyMDA0LTA2LTE2IDA3OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGdldHRhYmxlIGNoYW5nZXM6CiAgICAgLSBEb24ndCByZXRyaWV2ZSBpbmRleGVzIHNpbmNlIHdlIGNhbGN1bGF0ZSB0aGVtLgogICAgIC0gQnVnIGZpeCBmb3Igc2VsZi1zcGVjaWZpZWQgY29sdW1uIGxpc3RzLgoKMjAwNC0wNi0xNiAwNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgVXNlIGNvcHlfbndvcmQgZm9yIGFsbCByZWFkX2NvbmZpZyBhdXRvLXBhcnNpbmcgb2YgdG9rZW5zIHRvIGhlbHAKICAgc3RyaXAgcXVvdGVzIGlmIHRoZXkgd2VyZSB1c2VkIGV2ZW4gZm9yIGludGVnZXJzLgoKMjAwNC0wNi0xNSAxOTo1NSAgcnN0b3J5CgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5jOgoKICAgZml4IGxpYnJhcnkgcmVzb3VyY2UgbG9ja3MsIGFzIG5vdGVkIG9uIGNvZGVycyBieSBZaW5nIEh1CgoyMDA0LTA2LTE1IDE3OjI3ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIzc25tcHYzZ2V0TUQ1QUVTLCBUMDIzc25tcHYzZ2V0TUQ1REVTCjoKCiAgIGNvcnJlY3QgdmFyIFBSSVZURVNUQVJHUyAod2FzIFBSSVZURVNURkxBR1MpCgoyMDA0LTA2LTE1IDE1OjQwICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIGFwcGx5IHBhdGNoICM5NzM1NzIgcGVyIEFsZXggQnVyZ2VyIHRvIGNsYXJpZnkgbmFtaW5nIG9mIHRoZSBwYWNrYWdlLCBldGMuCgoyMDA0LTA2LTE1IDA3OjI3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENvbnNpc3RlbmN5IHR3ZWFrcyB0byB0aGUgdXNhZ2Ugb3V0cHV0IG1lc3NhZ2UuCgoyMDA0LTA2LTE1IDA2OjQzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgYXBwbHkgdXBkYXRlZCBwYXRjaCBhdHRhY2hlZCB0byBidWcjNzU4NDM3CiAgIHVzZSBTTk1QX0ZSRUUgdG8gbWFuYWdlIGJ1ZmZlciBwb2ludGVyCiAgIG9wZW4gc29ja2V0IGJlZm9yZSBpbmNyZWFzaW5nIGJ1ZmZlciBzaXplCgoyMDA0LTA2LTE1IDA1OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYywKICAgICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBEZWZpbmUgdGhlIGV4YW1wbGUgbm90aWZpY2F0aW9uIGFzIGEgbm90aWZpY2F0aW9uICh1c2luZyBhbiBSRkMyNTc2LXNhZmUKICAgT0lEKSwgcmF0aGVyIHRoYW4gYSBNSUIgb2JqZWN0LCBhbmQgZGVmaW5lIGV4YW1wbGUgY29tcHVsc29yeSBhbmQgb3B0aW9uYWwKICAgcGF5bG9hZCBvYmplY3RzLiBUd2VhayB0aGUgZXhhbXBsZSBjb2RlIHRvIHVzZSB0aGVzZSBuZXcgZGVmaW5pdGlvbnMuCgoyMDA0LTA2LTE1IDA0OjI5ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYzoKCiAgIGFwcGx5IHBhdGNoIGZyb20gdHJvbnRvciB0byBmaXggYnVnIDk0MjQ5OCBOZXRCU0QgMi4wRCBhbmQgYWJvdmUgdXNlIHN0YXR2ZnMKCjIwMDQtMDYtMTQgMTI6MDIgIHNsaWYKCiAgICogd2luMzIvOiBNYWtlZmlsZS5pbiwgZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGRpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIGFwcGx5IHBhdGNoICM5NzI3MTUgV2luMzIgYnVpbGQ6IG1ha2VmaWxlLCByZWFkbWUgYW5kIC5uc2kgc2NyaXB0IGNoYW5nZXMKICAgdGhlc2UgYmFjayBvdXQgdHdvIHByZXZpb3VzIGNoYW5nZXMgYW5kIGZpeGVzIGEgcHJvYmxlbSBjcmVhdGluZyBzbm1wY29uZi5iYXQKCjIwMDQtMDYtMTQgMTA6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBhZ2VudC5wbSwgYWdlbnQueHMsIHRlc3QucGw6CgogICBJbXBsZW1lbnRlZCAkcmVxdWVzdC0+c2V0RXJyb3IoKSB0byBzZXQgZXJyb3IgY29kZXMgZm9yIHJlcXVlc3RzLgoKMjAwNC0wNi0xNCAxMDowMyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICBwYXRjaCBmcm9tIE1hdGhpYXMgU2NoZWxlciBmaXhlcyBidWcgIzgwNTk1NiBieSBhbHRlcmluZyBjb25kaXRpb25hbAogICBjaGVja3MgZm9yIE5ldEJTRCBhbmQgRGFyd2luIGRlZmluZXMuCgoyMDA0LTA2LTEyIDA4OjA0ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIGR5c2xleGljICBzLU0tbi1wICB0byBzLW4tTS1wCgoyMDA0LTA2LTEyIDA4OjAxICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvZGlzdC9SRUFETUUudHh0LAogICAgIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBhdGNoIDk3MTI2MyBXaW5kb3dzIGluc3RhbGxlciBzY3JpcHQgY2hhbmdlIGNvbXBvbmVudCBsYWJlbCtkZXNjcgoKMjAwNC0wNi0xMiAwNzo1NSAgc2xpZgoKICAgKiB3aW4zMi86IGJ1aWxkLmJhdCwgaW5zdGFsbC1uZXQtc25tcC5iYXQsCiAgICAgbm1ha2VwZXJsLmJhdCwgZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpLAogICAgIGxvY2FsL21pYjJjLmJhdCwgbG9jYWwvc25tcGNvbmYuYmF0LAogICAgIGxvY2FsL3RyYXB0b2VtYWlsLmJhdDoKCiAgIGNvbnZlcnQgLmJhdCBmaWxlcyB0byB1c2UgRE9TIENSLUxGIGxpbmUgdGVybWluYXRpb24uCiAgIGFwcGx5IHBhdGNoIDk3MTQ3MSBOU0kgaW5zdGFsbGVyIHNjcmlwdCBmaXhlcyBhZGRyZXNzaW5nIGxpbmUtZW5kIHByb2JsZW1zLgoKMjAwNC0wNi0xMSAxNzozOCAgc2xpZgoKICAgKiB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgImVyYXNlIHdhdGNoZXIub2JqIiwgZm9yIGEgZmlsZSB0aGF0IGlzIG1hbmFnZWQgaW4gbGliaGVscGVycyBwcm9qZWN0LgoKMjAwNC0wNi0xMSAxNTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmk6CgogICBkZWZhdWx0IGNhY2hlIHRvIG5vdCBpbnZhbGlkYXRlIG9uIHNldAoKMjAwNC0wNi0xMSAxNTozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gZGVmYXVsdCB0byBhbGxvY2F0ZWQgdW5kbyBjb250ZXh0LCBldmVuIGlmIGRhdGEgY29udGV4dCBpcyBlbWJlZGRlZAogICAtIGZpeCBtaXNhc3NpZ25lZCBjYWxsYmFjayBmdW5jdGlvbgogICAtIGFkZCBtaXNzaW5nIGJyYWNlcyBmb3IgbXVsdGlsaW5lIGNvbmRpdGlvbmFsCgoyMDA0LTA2LTExIDE1OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgLSBkZWZhdWx0IHRvIGFsbG9jYXRlZCB1bmRvIGNvbnRleHQsIGV2ZW4gaWYgZGF0YSBjb250ZXh0IGlzIGVtYmVkZGVkCiAgIC0gYWRkIGNvZGUgdG8gaGFuZGxlIHBlciBjb2x1bW4gYmVoYXZpb3Igb24gY29tbWl0CiAgIC0gYWRkIG5vdGUgb24gdW5kbyBjb250ZXh0IHdoZW4gZGF0YSBpbml0IGlzIHNldAoKMjAwNC0wNi0xMSAxNTozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG0yY19zZXR1cF90YWJsZS5tMmksIG1mZC1kYXRhLWdldC5tMmMKLCBtZmQtaW50ZXJhY3RpdmUtc2V0dXAubTJjLCBtZmQtdG9wLm0yYzoKCiAgIC0gZGVmYXVsdCB0byBhbGxvY2F0ZWQgdW5kbyBjb250ZXh0LCBldmVuIGlmIGRhdGEgY29udGV4dCBpcyBlbWJlZGRlZAoKMjAwNC0wNi0xMSAxNTozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpOgoKICAgLSB0d2VhayB0byB3b3JrIGV2ZW4gZm9yIGdlbmVyYXRlZCBkYXRhIGNvbnRleHRzCiAgIC0gZml4IHZhciB0eXBvLCBjb21tZW50IHR5cG8KCjIwMDQtMDYtMTEgMTU6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIC0gcmVtb3ZlIG92ZXJseSBjb25mdXNpbmcgbWV0aG9kIGZvciBjaGFuZ2luZyBkZWZhdWx0cywgYmVjYXVzZSBpdCB3YXMKICAgICBjb25mbGljdGluZyB3L2NvbW1hbmQgbGluZSB2ZXJzaW9uLiBtYXliZSByZXZpc2l0IGxhdGVyCiAgIC0gZGVmYXVsdCAoZmFsc2UpIGZvciBuZXcgdW5kb19lbWJlZAoKMjAwNC0wNi0xMSAxMzoxNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBSZXR1cm4gYWxyZWFkeSBnYXRoZXJlZCByZXN1bHRzIGV2ZW4gaWYgZ2V0YnVsayBmYWlscyB0byByZXR1cm4gdGhlCiAgIGV4cGVjdGVkIGRhdGEgKHR5cGljYWxseSBkdWUgdG8gZW5kLW9mLW1pYiBjb25kaXRpb25zKS4KCjIwMDQtMDYtMTEgMTM6MTMgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBNZW50aW9uIHRoYXQgdGhlIGNvbmZpZ3VyZSBzY3JpcHQgdmVyc2lvbiBudW1iZXIgbmVlZHMgY2hhbmdpbmcuCgoyMDA0LTA2LTExIDEwOjE4ICBzbGlmCgogICAqIHdpbjMyL01ha2VmaWxlLmluOgoKICAgcGF0Y2ggOTcxMTEzICJubWFrZSBjbGVhbiIgdmlzaXRzIGxpYnNubXAgYW5kIGxpYnNubXBfZGxsIGV2ZXJ5IHRpbWUuCgoyMDA0LTA2LTEwIDIxOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oOgoKICAgLSBuZXcgbmV0c25tcF9hY2Nlc3NfaW50ZXJmYWNlX2VudHJ5X2d1ZXNzX3NwZWVkCiAgIC0gbmV3IG5ldHNubXBfYWNjZXNzX2ludGVyZmFjZV9lbnRyeV9vdmVycmlkZXMKICAgLSByZXN0b3JlIGlmX2FkbWluX3N0YXR1cwogICAtIGFkZCBwbGF0Zm9ybSBzcGVjaWZpYyBpZl9mbGFncywgJiBkZWZpbmUgZm9yIGZsYWdzIHRvIGluZGljYXRlIGF2YWlsYWJpbGl0eQogICAtIHNwZWNpZnkgYWxsIDQgaGV4IGJ5ZXMgZm9yIGZsYWcgZGVmaW5lcwoKMjAwNC0wNi0xMCAyMTowMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLAogICAgIGludGVyZmFjZV9saW51eC5jOgoKICAgLSBsaW51eCByZXF1aXJlcyBuZXcgaW9jdGwgaW50ZXJmYWNlIGFjY2VzcwogICAtIHVzZSBpb2N0bCBmb3IgaHdhZGRyLCBpZl9mbGFncwogICAtIGd1ZXNzIGlmIHR5cGUgYmFzZWQgb24gbmFtZSBpZiBub3Qga25vd24KICAgLSBtb3ZlIGdldElmU3BlZWQgY29kZSAmIHJlbmFtZSBuZXRzbm1wX2FjY2Vzc19pbnRlcmZhY2VfbGludXhfZ2V0X2lmX3NwZWVkCgoyMDA0LTA2LTEwIDIwOjQ3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2RhdGFfYWNjZXNzLzogaW50ZXJmYWNlX2lvY3RsLmMsCiAgICAgaW50ZXJmYWNlX2lvY3RsLmg6CgogICAtIG5ldyBpb2N0bCBpbnRlcmZhY2UgYWNjZXNzCgoyMDA0LTA2LTEwIDIwOjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvOiBpZlRhYmxlLmMsIGlmVGFibGUuaDoKCiAgIC0gbW92ZSBhZG1pbiBzdGF0dXMgYmFjayB0byBpbnRlcmZhY2UgZW50cnkKICAgLSB1c2UgZGVzY3JpcHRpb24gZnJvbSBpbnRlcmZhY2UgZW50cnkKCjIwMDQtMDYtMTAgMTA6NTkgIHNsaWYKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgcGVyIEFuZHkgU21pdGgsIGFwcGx5IHBhdGNoICM5NzA0ODAgV2luMzIgUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCB1cGRhdGUKCjIwMDQtMDYtMDkgMjA6MjggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oOgoKICAgYXBwbHkgY2hhbmdlcyBpZGVudGlmaWVkIGluIHBhdGNoICM5NjkzMzggcGF0Y2hlcyBmb3IgRnJlZUJTRCA1Lnggc3VjY2Vzc2Z1bCBidWlsZAoKMjAwNC0wNi0wOSAxODo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS86IGlmWFRhYmxlLmMsIGlmWFRhYmxlLmgKLCBpZlhUYWJsZV9jb25zdGFudHMuaCwgaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLCBpZlhUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpZlhUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gVXBkYXRlIGZvciBNRkQgZ2VuZXJhdGVkIGNvZGUgY2hhbmdlcyArIHN3aXRjaCB0byBhIG1peGVkLW1vZGUgZGF0YSBjb250ZXh0ICsKICAgICBJRi1NSUIgY2hhbmdlcwogICAtIHJlbW92ZSBhYmlsaXR5IHRvIGJ1aWxkIGluZGVwZW5kZW50IG9mIGlmVGFibGUKCjIwMDQtMDYtMDkgMTg6NDggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZUYWJsZS86IGlmVGFibGUuYywgaWZUYWJsZS5oLAogICAgIGlmVGFibGVfY29uc3RhbnRzLmgsIGlmVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlRhYmxlX2RhdGFfYWNjZXNzLmgsIGlmVGFibGVfaW50ZXJmYWNlLmMsCiAgICAgaWZUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIC0gVXBkYXRlIGZvciBNRkQgZ2VuZXJhdGVkIGNvZGUgY2hhbmdlcyArIHN3aXRjaCB0byBhIG1peGVkLW1vZGUgZGF0YSBjb250ZXh0ICsKICAgICBJRi1NSUIgY2hhbmdlcwogICAtIHVzZSBuZXcgcGFyYW0gdG8gc2F2ZSBpbnRlcmZhY2UgZW50cnkgdy9nZW5lcmF0ZWQgY29udGV4dAogICAtIGZvciBkYXRhIGZyb20gbmV0c25tcF9pbnRlcmZhY2VfZW50cnksIHVzZSAjZGVmaW5lcyBzbyBnZW5lcmF0ZWQgY29kZSBkb2Vzbid0CiAgICAgY2hhbmdlIChlZyBkZWZpbmUgaWZOYW1lIGlmZW50cnkuaWZfbmFtZSkuIHdvcmtzIGZvciBtb3N0IGNhc2VzCiAgIC0gYWRkIGdlbmVyYXRlZCBzdG9yYWdlL2RlZmluZXMgZm9yIGlmWFRhYmxlIGNvbHVtbnMgdG8gZGF0YSBjb250ZXh0CiAgIC0gY2hhbmdlIGNhY2hlIHRpbWVvdXQgdG8gMzAgc2Vjb25kcwogICAtIHVzZSBuZXcgY2FjaGUgZmVhdHVyZXMgdG8gYXV0byBsb2FkIGFuZCBhdXRvIHJlZnJlc2ggY2FjaGUKICAgLSB1c2UgbmV3IFVOS05PV04gaWZPcGVyU3RhdHVzIGZvciBpbnRlcmZhY2VzIHRoYXQgdmFuaXNoCiAgIC0gdXNlIG5ldyBpbnRlcmZhY2UgY29weSBmdW5jdGlvbiB3aGVuIHVwZGF0aW5nIGNhY2hlCiAgIC0gb25seSB1cGRhdGUgTGFzdENoYW5nZWQgb24gaWZPcGVyU3RhdHVzIGNoYW5nZXMKCjIwMDQtMDYtMDkgMTg6MzcgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGVyIEFuZHkgU21pdGgsIGFwcGx5IHBhdGNoIzk2ODgwMCBTTk1QQ09ORlBBVEggZml4IGZvciBXaW4zMiBiaW5hcnkgaW5zdGFsbGVyCiAgIGFuZCBwYXRjaCAjOTcwMDEyIFJlbW92ZSBzbm1wY29uZi5wbCBmcm9tIFdpbmRvd3MgaW5zdGFsbGVyCgoyMDA0LTA2LTA5IDE4OjMwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliLzogaWZUYWJsZS9kZWZhdWx0LXRhYmxlLWlmVGFibGUubTJkLAogICAgIGlmWFRhYmxlL2RlZmF1bHQtdGFibGUtaWZYVGFibGUubTJkOgoKICAgLSBzd2l0Y2ggdG8gYSBtaXhlZC1tb2RlIGRhdGEgY29udGV4dAogICAgIC0gY2hnIGRhdGEgY29udGV4dCB0byBkZWZhdWx0IGdlbmVyYXRlZAogICAgIC0gZG9uJ3QgYWxsb2NhdGUgZGF0YSBjb250ZXh0CiAgICAgLSBkbyByZXF1ZXN0IGEgaW5pdCBjYWxsIGZvciBuZXcgY29udGV4dHMKCjIwMDQtMDYtMDkgMTg6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmg6CgogICAtIHJlbW92ZSBtaWIgc3BlY2lmaWMgc3R1ZmYgKGlmX2FsaWFzLCBpZl9hZG1pbl9zdGF0dXMsIGlmX2xpbmtfdXBkb3duX3RyYXApCiAgICAgKHN0aWxsIG5vdCBzdXJlIGFib3V0IGxhc3QgY2hhbmdlZCBhbmQgZGlzY29udGludWl0eSkKICAgLSBuZXcgZnVuY3Rpb24gdG8gY29weSBpbnRlcmZhY2UgZW50cnkgZGF0YQogICAtIG1ha2UgY2FsbGJhY2sgZnVuY3Rpb25zIHN0YXRpYwoKMjAwNC0wNi0wOSAxNzo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIC0gaWYgZGF0YV9pbml0IHNldCwgYWRkIHVzZXIgdm9pZCBwb2ludGVyIHRvIGFsbG9jYXRlX3Jvd3JlcV9jdHgsIGFuZCBwYXNzIGl0CiAgICAgdG8gcm93cmVxX2N0eF9pbml0CiAgIC0gZml4IHR3byB0eXBvcyBpbiBjb2RlIG9ubHkgZ2VuZXJhdGVkIHdoZW4gZGF0YV9pbml0IGlzIHNldAogICAtIHJlbGVhc2UgdW5kbyBkYXRhIGluIGZyZWVfcm93cmVxX2N0eAogICAtIGRvbid0IGdlbmVyYXRlIHVuZG8gc2V0dXAgY29kZSBmb3Igbm9uLXNldHRhYmxlIGNvbHVtbnMKCjIwMDQtMDYtMDkgMTc6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpLAogICAgIG1mZC10b3AubTJjOgoKICAgLSBpZiBkYXRhX2luaXQgc2V0LCBhZGQgdXNlciB2b2lkIHBvaW50ZXIgdG8gYWxsb2NhdGVfcm93cmVxX2N0eCwgYW5kIHBhc3MgaXQKICAgICB0byByb3dyZXFfY3R4X2luaXQKCjIwMDQtMDYtMDkgMTc6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgLSBjb252ZXJ0IGNvbnRhbnQgcHJlZml4ZXMgdG8gdXBwZXJjYXNlCiAgIC0gYWRkICdfdmFsJyBzdWZmaXggdG8gYWxsIG5vZGUgcGFyYW1ldGVyIG5hbWVzCgoyMDA0LTA2LTA5IDE3OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtbm9kZS5tMmk6CgogICBhZGQgZGVzY3JpcHRpb24KCjIwMDQtMDYtMDkgMDI6MzcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgcGVyIE1pa2UgSGVpc2xlciwgZml4IGJ1ZyAjOTM2NDgzIChyZXN0b3JlIHNzaXplX3QpLgoKMjAwNC0wNi0wOCAyMTo1NSAgc2xpZgoKICAgKiBhY2NvbmZpZy5oOgoKICAgVXBkYXRlIHRvIHdpbjMyIGlmZGVmIHRvIGluY2x1ZGUgb3RoZXIgZW52aXJvbm1lbnRzCgoyMDA0LTA2LTA4IDEzOjU2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGZpeCBidWlsZCBmYWlsdXJlIChubyBzdWNoIG1lbWJlciBrcF9jb21tLCBldGMuKSBmb3IgRnJlZUJTRCA1LngKCjIwMDQtMDYtMDggMTM6NTMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIGZpeCBidWlsZCBmYWlsdXJlIChubyBzdWNoIG1lbWJlciB4dF90cCkgZm9yIEZyZWVCU0QgNC54IGFuZCBGcmVlQlNEIDUueAoKMjAwNC0wNi0wOCAxMzo1MCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jOgoKICAgZml4IGNvbXBpbGUgZmFpbHVyZSAobm8gaW5wX25leHQgaW4gc3RydWN0IGlucGNiKSBmb3IgRnJlZUJTRCA0LnggYW5kIDUueAoKMjAwNC0wNi0wOCAxMzozNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBmaXggYnVnIDg5NTY3OSBieSBlbnN1cmluZyB1cHBlciBsaW1pdCB0cmFja3MgYnVmZmVyIGFsbG9jYXRpb24vZnJlZSBhY3Rpb25zLgoKMjAwNC0wNi0wOCAxMjowMyAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNS5oOgoKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IHVuZGVmIG9mIFNUUlVDVF9TVEFURlNfSEFTX0ZfRkFWQUlMIChuZXZlciBpcyBkZWZpbmVkKS4KCjIwMDQtMDYtMDggMTA6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1zZXQubTJjLCBwYXJlbnQtc2V0Lm0yaQo6CgogICAtIGNvbW1lbnRzIGFib3V0IGZsYWcgYW5kIGRlZmluZXMgZm9yIHRyYWNraW5nIHdoaWNoIGNvbHVtbnMgaGF2ZSBiZWVuIHNldAogICAtIG1pc3NlZCBhIGZldyBlcnJvciBkZWZpbmUgdXBkYXRlcwoKMjAwNC0wNi0wOCAxMDo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtdGFibGUtb2lkcy5tMmMsCiAgICAgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjLAogICAgIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgYWRkIGZsYWcgYW5kIGRlZmluZXMgZm9yIHRyYWNraW5nIHdoaWNoIGNvbHVtbnMgaGF2ZSBiZWVuIHNldAoKMjAwNC0wNi0wNyAxOTo1MiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZml4IHNldHRpbmcgb2YgT1NUWVBFIGZvciBGcmVlQlNEIGJ1aWxkIHBsYXRmb3Jtcy4KCjIwMDQtMDYtMDcgMTk6NDcgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDUuaDoKCiAgIGNyZWF0ZSBzeXN0ZW0gaW5jbHVkZSBmaWxlIGZvciBGcmVlQlNEIDUueCBidWlsZCBwbGF0Zm9ybXMuCgoyMDA0LTA2LTA3IDE5OjQ0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgcmVtb3ZlIHVudXNlZCBjb2RlIGluIHN3YXBtb2RlCgoyMDA0LTA2LTA3IDEyOjMxICByc3RvcnkKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcmVjaGVjayBwZXJzaXN0ZW50IHBhdGggaW4gbG9vcCwgc2luY2UgaXQgbWlnaHQgY2hhbmdlCgoyMDA0LTA2LTA3IDEyOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBzcGVjaWZ5IGZ1bGwgMzIgYml0cyBmb3IgaGFuZGxlciBmbGFncwoKMjAwNC0wNi0wNyAxMjoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSBhbHdheXMgY29uc2lkZXIgY2FjaGUgdy90aW1lb3V0IG9mIC0xIGFzIGV4cGlyZWQgKGxvYWQgY2FjaGUgZXZlcnkgcmVxdWVzdCkKICAgLSBhZGQgTkVUU05NUF9DQUNIRV9ET05UX0ZSRUVfQkVGT1JFX0xPQUQgJiBORVRTTk1QX0NBQ0hFX0FVVE9fUkVMT0FEIGZsYWdzCiAgIC0gYWRkIGV4YW1wbGUgdXNhZ2VzIHNjZW5hcmlvcyBhbmQgc3VnZ2VzdGVkIGZsYWdzCiAgIC0gYWRkIG5ldHNubXBfY2FjaGVfdGltZXJfc3RhcnQgJiBuZXRzbm1wX2NhY2hlX3RpbWVyX3N0b3AKICAgLSBjbGVhciBleHBpcmVkIGZsYWcgYWZ0ZXIgY2FjaGVfbG9hZAogICAtIGFkZCBhbm90aGVyIG5vdGUgYWJvdXQgcG90ZW50aWFsIGNhY2hlIGlzc3VlIHcvZGVsZWdhdGVkIHJlcXVlc3RzCiAgICAgKHNvbWUgbG9ja2luZy9yZWZlcmVuY2UgY291bnQgbWVjaGFuaXNtIGlzIG5lZWRlZCkKCjIwMDQtMDYtMDcgMTE6NTAgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICAtIGFjY2VwdCBhYmJyZXZpYXRlZCB2ZXJzaW9ucyBvZiBzb21lIGZsYWdzCiAgIC0gcG9pbnQgaW5kZW50LW9wdG9pbnMgYXQgYSByZWFsIGRpcmVjdG9yeQogICAtIGRvbid0IHN1YnN0aXR1dGUgcHJlZml4IG11bHRpcGxlIHRpbWVzCgoyMDA0LTA2LTA3IDExOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICBmaXggY29tbWVudCByZWYgZm9yIGludGVnZXIgZnJvbSBOVUxMIHRvIDAKCjIwMDQtMDYtMDcgMTE6MzkgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgc2tpcCBzY3AgaWYgYmFjIHJjIGZyb20gY3ZzIGNvbW1hbmQKCjIwMDQtMDYtMDcgMTE6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZWFtZSAkaV9JRFgyIHRvICRJX0NVU1RPTV9TT1JUIHRvIHJlZHVjZSBjb25mdXNpb24KCjIwMDQtMDYtMDcgMTE6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICAtIHVzZSBuZXcgc2ltcGxpZmllZCBlcnJvcnMKICAgLSBhZGQgbWlzc2luZyB1bmRvX2NvbW1pdCwgdW5kb19jbGVhbnVwIHN0YXRlcwogICAtIG1vdmUgcHJlL3Bvc3QgcmVxdWVzdCBpbml0IG91dHNpZGUgbWliMmMgY29uZGl0aW9uYWwKICAgLSBtb3ZlIHVuZG8gZGF0YSBjb250ZXh0IHJlbGVhc2UgdG8gdW5kb19jbGVhbnVwCiAgIC0gdmFsaWRhdGUgcmMgZnJvbSBub2RlIGNoZWNrIHZhbHVlIHJvdXRpbmUKCjIwMDQtMDYtMDcgMTE6MzIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgLSB1c2UgbmV3IHNpbXBsaWZpZWQgZXJyb3JzCiAgIC0gbW9yZSBoZWxwIHRleHQgZm9yIGRpc3RpbmN0aW9uIGJldHdlZW4gd3JvbmdWYWx1ZS9pbmNvbnNpc3RlbnRWYWx1ZQoKMjAwNC0wNi0wNyAxMTozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIC0gdXNlIG5ldyBzaW1wbGlmaWVkIGVycm9ycwogICAtIG1vcmUgaGVscCB0ZXh0IGZvciB2YWxpZGF0ZV9pbmRleAogICAtIGluY2x1ZGUgYmFieS1zdGVwcyBmbG93LWNoYXJ0IGJlZm9yZSBzZXQgZnVuY3Rpb25zCiAgIC0gYWRkIG1pc3NpbmcgdW5kb19jb21taXQsIHVuZG9fY2xlYW51cCBzdGF0ZXMKCjIwMDQtMDYtMDcgMTE6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIHVzZSBTTk1QdjIgZXJyb3JzIGluc3RlYWQgb2YgdjEgZXJyb3JzCgoyMDA0LTA2LTA3IDExOjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgLSB0dXJuIG9mZiBpbmRlbnQgYXJvdW5kIGNvbmZpZ19yZXF1aXJlIChkb2Vzbid0IGxpa2UgICcvJyBvciAnLScgY2hhcnMpCiAgIC0gc2ltcGxpZnkgc29tZSBlcnJvciBkZWZpbmUgbmFtZXMKCjIwMDQtMDYtMDcgMTE6MjEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIHVwZGF0ZSBzb21lIHF1ZXN0aW9uL2hlbHAgdGV4dAoKMjAwNC0wNi0wNyAxMToyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmM6CgogICByZXN0b3JlIGZvcmVhY2ggdGFibGUKCjIwMDQtMDYtMDcgMTE6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5tZmQuY29uZjoKCiAgIHJldmVydCBjaGFuZ2VzIGZvciBzZXR0aW5nIHNvbWUgbWliMmMgZGVmYXVsdHMgKHVzZSBtaWIyYyAtUyB4eHggaW5zdGVhZCkKCjIwMDQtMDYtMDcgMTE6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBwYXNzIGV4dHJhIGFyZ3MgdG8gbWliMmMKCjIwMDQtMDYtMDcgMTE6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gY2hhbmdlIGV4YW1wbGUgY29tbWVudCBibG9jayBzbyBpbmRlbnQgd2lsbCBpbmRlbnQgaXQKICAgLSBza2lwIHN1YnN0aXR1dGlvbiBjaGVja3MgaWYgdGhleSB3b24ndCBtYXRjaAogICAtIGFwcGx5IGRhdmUncyBoYWNrIGZvciA5MzkwNDE6IC4uLiBiYWQgbWFjcm8gbmFtZSBpZmYgZW51bSBjb250YWlucyBoeXBoZW4KCjIwMDQtMDYtMDcgMDg6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogZXh0ZW5kLmMsIGV4dGVuZC5oOgoKICAgQmFja3dhcmRzLWNvbXBhdGFiaWxpdHkgaW1wbGVtZW50YXRpb24gb2YgdGhlIFVDRC1TTk1QLU1JQjo6ZXh0VGFibGUKICAgKGlmIHRoZSB1Y2Qtc25tcC9leHRlbnNpYmxlIG1vZHVsZSBpc24ndCBjb25maWd1cmVkIGluKS4KCjIwMDQtMDYtMDcgMDE6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsCiAgICAgdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgICAgdWNkLXNubXAvcGFzcy5oLCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaDoKCiAgIE1vdmUgJ2dldF9leHRlbl9pbnN0YW5jZScgaW50byB0aGUgdXRpbGl0eSBmdW5jdGlvbiBmaWxlLAogICBzbyB0aGF0IHRoZSB0d28gcGFzcyBoYW5kbGVycyBhcmVuJ3QgZGVwZW5kZW50IG9uICdleHRlbnNpYmxlJwoKMjAwNC0wNi0wNiAyMzo0NyAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCB3YXJuaW5ncyBhYm91dCBtaXNzaW5nIG1vZHVsZXMgd2hlbiB0aGVyZSBhcmUgcmVwbGFjZW1lbnRzIGZvciB0aGVtCgoyMDA0LTA2LTA2IDE2OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY3ZzIHNlcnZlciBuYW1lIGNoYW5nZQoKMjAwNC0wNi0wNCAxMzo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgcmVtb3ZlIHJlZHVuZGFudCByZWZlcmVuY2Ugcm93IGZyb20gb3V0cHV0CgoyMDA0LTA2LTA0IDEzOjM5ICBoYXJkYWtlcgoKICAgKiBtaWJzL25vZGVtYXA6CgogICBhZGRlZCBhIG5vZGVtYXAgZm9yIGh0bWwgb3V0cHV0IGdlbmVyYXRpb24KCjIwMDQtMDYtMDQgMTM6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIG1ha2UgaHRtbCBvdXRwdXQgZGlzcGxheSB0aGUgcmVmZXJlbmNlIGluIGl0YWxpY3MgaW4gdGhlIGRlc2NyaXB0aW9uIGZpZWxkcy4KCjIwMDQtMDYtMDQgMTM6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLCBtYW4vbWliMmMuY29uZi41OgoKICAgbWFrZSAkeC5yZWZlcmVuY2UgZXhwYW5kIHRvIGEgb2JqZWN0cyByZWZlcmVuY2UKCjIwMDQtMDYtMDQgMTM6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBtYWtlIFNOTVA6Ok1JQiBvYmplY3RzIGhhbmRsZSBhICdyZWZlcmVuY2UnIGtleXdvcmQuCgoyMDA0LTA2LTA0IDEzOjM0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgLSBTYXZlZCB0aGUgdmFsdWUgb2YgcGFyc2VkIHJlZmVyZW5jZSBjbGF1c2VzLgoKMjAwNC0wNi0wNCAwNTo1MSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBBIGxpdHRsZSBlcnJvci1jaGVja2luZyB3aGVuIGZvcndhcmRpbmcsIGFuZCBjaGFuZ2UgZnByaW50ZiB0byBzbm1wX2xvZwoKMjAwNC0wNi0wNCAwMzoxNyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBQcm9wZXJseSBmcmVlIHByaW50YnVmZmVyCgoyMDA0LTA2LTA0IDAzOjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgTWFrZSBzdXJlIGFsbCByZWdpc3RyYXRpb24gYXJlIHJlbW92ZWQgZm9yIGV4ZWMncwoKMjAwNC0wNi0wNCAwMjo0NSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBnYXJibGVkIHBhY2tldHMgd2l0aCBiYWQgcGFja2V0IHR5cGVzCgoyMDA0LTA2LTA0IDAxOjU3ICBuYmEKCiAgICogbWFuL3NubXBfYXBpLjMuZGVmOgoKICAgU2ltcGxlIHNwZWxsaW5nIGZpeAoKMjAwNC0wNi0wNCAwMToxNSAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGR1cCBpbnN0YWxsYXRpb24gb2Ygc2NyaXB0cyBhZnRlciBhZGRpdGlvbiBvZiAtLWRpc2FibGUtc2NyaXB0cwoKMjAwNC0wNi0wNCAwMDoyMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIHVuZG8gcHJldmlvdXMgY2hhbmdlLCBzaW5jZSBpbnRyb2R1Y3Rpb24gb2YgZnJlZWJzZDUuaCBoZWFkZXIgZGVmaW5lcyBmcmVlYnNkNC4KCjIwMDQtMDYtMDMgMTI6NTkgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBmaXggYnVnICM5NDMzNTEgYnkgY29uc2lkZXJpbmcgZnJlZWJzZDUgd2hlbiBkZWNsYXJpbmcgImh6Ii4KCjIwMDQtMDYtMDIgMTc6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLCBtZmQtZGF0YS1nZXQubTJjCiwgbWZkLXJlYWRtZS5tMmM6CgogICBmaXggYSBmZXcgbWlzc2VkIHByb2Nlc3NpbmdfdHlwZSB0d2Vha3MKCjIwMDQtMDYtMDIgMDU6MzcgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBwZXJsL1NOTVAvUkVBRE1FLCB3aW4zMi9Db25maWd1cmUKLCB3aW4zMi9idWlsZC5wbCwgd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQsCiAgICAgd2luMzIvbm1ha2VwZXJsLmJhdCwgd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0Ciwgd2luMzIvZGlzdC9SRUFETUUudHh0LAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZm9yIHdpbjMyIGRvYyBhbmQgc2NyaXB0cywgbWF0Y2ggdGhlIGJhc2UgZGlyZWN0b3J5IHVzZWQgYXMgY3VycmVudCBkZWZhdWx0LgoKMjAwNC0wNi0wMSAwMjozMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvZXh0ZW5kLmM6CgogICBIYW5kbGUgcm93IGRlbGV0aW9uIChhbmQgZmFpbGVkIHJvdyBjcmVhdGlvbikgcHJvcGVybHkuCiAgIE1vdmUgcm93IGNyZWF0aW9uIGFuZCBuZXcgdmFsdWUgYXNzaWdubWVudHMgdG8gdGhlaXIgbmF0dXJhbAogICBwYXNzZXMsIHdpdGggYSBzZWNvbmQgKHNlcGFyYXRlKSBjaGVjayBmb3Igcm93IHZhbGlkaXR5LgogICAoZm9sbG93aW5nIFJvYmVydCdzIHN1Z2dlc3Rpb24pCgoyMDA0LTA2LTAxIDAyOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9leHRlbmQuYzoKCiAgIEZpeCBjb21waWxhdGlvbiBwcm9ibGVtcyBmb2xsb3dpbmcgdGhlIGFkZGl0aW9uIG9mICdyZWxvY2F0YWJpbGl0eScuCiAgIEVuc3VyZSB0aGF0IHRoZSAic3RhbmRhcmQiIGxvY2F0aW9uIGlzIHJlZ2lzdGVyZWQgYXV0b21hdGljYWxseQogICAoc28gdGhlIG51bVJvd3Mgb2JqZWN0IGlzIHByZXNlbnQsIGV2ZW4gd2l0aCBhbiBvdGhlcndpc2UgZW1wdHkgdGFibGUpLgoKMjAwNC0wNS0yNyAyMDowNiAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICB1cGRhdGUgc3RhdHVzIHRvIHJlZmxlY3Qgc25tcHRyYXBkIGNhbiBiZSBydW4gYXMgYSBXaW5kb3dzIHNlcnZpY2UuCgoyMDA0LTA1LTI3IDA1OjM3ICBkdHMxMgoKICAgKiBDT1BZSU5HOgoKICAgQ29ycmVjdCB0aGUgbnVtYmVyIG9mIGNvcHlyaWdodCBub3RpY2VzCiAgIGxpc3RlZCwgYW5kIHRoZSB0ZXh0IG9mIHRoZSBTcGFydGEgb25lLgogICAoSSB0cnVzdCB0aGlzIGlzIE9LLCBXZXMhKQoKMjAwNC0wNS0yNiAwMTozOSAgZHRzMTIKCiAgICogUkVBRE1FLmFnZW50eDoKCiAgIFJlbW92ZSB3YXJuaW5ncyBvZiBBZ2VudFggImJldGEtc3RhdHVzIi4KICAgKEkga25vdyBJJ20gZ29pbmcgdG8gcmVncmV0IGRvaW5nIHRoaXMuLi4uKQoKMjAwNC0wNS0yNSAwODo1NCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIEFjY2VwdCB0aGUgc2FtZSBzZWN1cml0eSBsZXZlbCB0b2tlbnMgYXMgdXNlZCBpbiB0aGUKICAgInJbd29ddXNlciIgYW5kICJhY2Nlc3MiIGRpcmVjdGl2ZXMuCgoyMDA0LTA1LTI0IDAzOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIEltcGxlbWVudCByZWxvY2F0YWJsZSBmb3JtIG9mIGFnZW50IGV4dGVuc2lvbiB0YWJsZS4KCjIwMDQtMDUtMjQgMDM6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L2V4dGVuZC5jOgoKICAgSW1wbGVtZW50ICdydW4tb24td3JpdGUnIHN1cHBvcnQsIGFuZCB1c2UgaXQgdG8gaGFuZGxlIGEKICAgbmV3ICdleGVjRml4Jy1zdHlsZSBkaXJlY3RpdmUuCgoyMDA0LTA1LTIzIDEwOjQxICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyL25ldC1zbm1wLm5zaToKCiAgIHBlciBBbmR5IFNtaXRoOiBhcHBseSBwYXRjaCBbOTU3OTQyXSBXaW4zMiBzZXJ2aWNlIGluc3RhbGwgcGF1c2UKCjIwMDQtMDUtMjEgMTA6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBjaGVjayBmb3IvcHJvY2VzcyBkZWxlZ2F0ZWQgcmVxdWVzdHMgaW4gYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MKCjIwMDQtMDUtMjAgMjE6MDkgIHNsaWYKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgaWdub3JlIGZhaWx1cmUgcmVzdWx0IHNob3VsZCBjdnMgY2hlY2tvdXQgY29uZGl0aW9uIG5vdCBhcHBseS4KICAgVGhpcyBwZXJtaXRzIGJ1aWxkcyBvdXRzaWRlIENWUyB0cmVlIHRvIHN1Y2NlZWQuCgoyMDA0LTA1LTIwIDE2OjAxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5nZW5odG1sLmNvbmY6CgogICBNaW5vciB3b3JkaW5nOiBhZGRlZCB0YWJsZSBuYW1lIHRvICJpbmRleCIgYW5kICJvdGhlciBjb2x1bW5zIiBsaW5lLgoKMjAwNC0wNS0yMCAxNTo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIHJlbW92ZSBjaGFuZ2VzIGFjY2lkZW50aWFsbHkgYXBwbGllZCB0aGF0IHdlcmVuJ3QgcmVhZHkKCjIwMDQtMDUtMjAgMTU6MDUgIGhhcmRha2VyCgogICAqIGxvY2FsLzogVmVyc2lvbi1NdW5nZS5wbCwgbWliMmMuZ2VuaHRtbC5jb25mOgoKICAgLSBhZGRlZCBzdXBwb3J0IGZvciBub3RpZmljYXRpb24gZGVzY3JpcHRpb25zCgoyMDA0LTA1LTE5IDE4OjA5ICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgYWRkIGdldF90Y19kZXNjcmlwdGlvbiBhbmQgaW5pdF91c21fY29uZiB0byB0aGUgZXhwb3J0ZWQgc3ltYm9scyBsaXN0LgoKMjAwNC0wNS0xOSAxODowMiAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgUGVybWl0IEN5Z3dpbiBidWlsZCB0byB0YWtlIGFkdmFudGFnZSBvZiBiYWNrc2xhc2ggcHJ1bmluZyBhbmQgc2luZ2xlIGxldHRlciB2b2x1bWUgc3BlY2lmaWVyLgoKMjAwNC0wNS0xOSAxNzo1NCAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dCwKICAgICB3aW4zMi9kaXN0L2h0bWxoZWxwL0NvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbDoKCiAgIHBlciBBbGV4IEJ1cmdlcjogIHNubXBjb25mIGRhc2ggbGl0dGxlLWV5ZQoKMjAwNC0wNS0xOSAxNjoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBwYXJzaW5nIG9mIGV4cGxpY2l0IGhhbmRsZXIgdHlwZXMKCjIwMDQtMDUtMTkgMTM6MTQgIGhhcmRha2VyCgogICAqIG1hbi9taWIyYy5jb25mLjU6CgogICB1cGRhdGUgYWZ0ZXIgYSBtaWIyYyB1cGRhdGUKCjIwMDQtMDUtMTkgMTM6MTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIC0gc3VwcG9ydCBhIHRhYmxlIG9mIGNvbnRlbnRzCiAgIC0gbmFtZSBhbGwgbm9kZXMgdXNpbmcgaHRtbCBuYW1lcwogICAtIHN1cHBvcnQgYSB0cmVlLXZpZXcKICAgLSBtaXNjIGJ1ZyBmaXhlcwoKMjAwNC0wNS0xOSAxMzoxMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIHN1cHBvcnQgImZvcmVhY2ggJGkgc3R1ZmYgTElTVCIKICAgLSB1c2UgdW5zaGlmdCBpbnN0ZWFkIG9mIHB1c2ggZm9yIGNhbGxkZWZpbmUgdG8gZW5zdXJlIHByb3BlciByZWN1cnNpb24KICAgLSByZWdleHAgbXVuZ2luZwoKMjAwNC0wNS0xOSAxMDozMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgbG9hZCB0aGUgY2FjaGUgZm9yIHJlc2VydmUxIChvdGhlcndpc2UgYSBnZXQgaXMgcmVxdWlyZWQgYmVmb3JlIHNldCB3b3JrcykKCjIwMDQtMDUtMTggMTM6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIGFsbG93IGZvciB1c2VyIG92ZXJyaWRlIG9mIG1mZCBvcHRpb24gZGVmYXVsdHMKCjIwMDQtMDUtMTggMTM6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyYWN0aXZlLXNldHVwLm0yYzoKCiAgIGFsbG93IGZvciBpbnRlcmFjdGl2ZSBzZXR1cCBvZiBtZmQgb3B0aW9ucwoKMjAwNC0wNS0xOCAxMzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgYWxsb3cgZm9yIGludGVyYWN0aXZlIHNldHVwIG9mIG9wdGlvbnM7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZQoKMjAwNC0wNS0xOCAxMzo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZQoKMjAwNC0wNS0xOCAxMzo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHNldCB2YXJiaW5kIGVycm9yIG9uIGNvbHVtbiBzZXQgZXJyb3I7IGFsd2F5cyBjYWxsIHJvd19wcmVwOyBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0CiAgIGluc3RlYWQgb2YgJHRhYmxlCgoyMDA0LTA1LTE4IDEzOjQxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBzZXQgdmFyYmluZCBlcnJvciBvbiBjb2x1bW4gc2V0IGVycm9yOyBjb21tZW50IHR3ZWFrczsgdXNlICRjb250ZXh0IGluc3RlYWQgb2YKICAgJHRhYmxlOyBzZXBhcmF0ZSBtZmRfcHJvY2Vzc2luZ190eXBlcyBmcm9tIG0yY19wcm9jZXNzaW5nX3R5cGUKCjIwMDQtMDUtMTggMTM6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1nZXQubTJjLCBtZmQtdG9wLm0yYzoKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IHNlcGFyYXRlIG1mZF9wcm9jZXNzaW5nX3R5cGVzCiAgIGZyb20gbTJjX3Byb2Nlc3NpbmdfdHlwZQoKMjAwNC0wNS0xOCAxMzoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1hY2Nlc3MubTJjOgoKICAgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZTsgcmVtb3ZlIGRhdGEgc2V0dXAgZnJvbSByb3dfcHJlcAoKMjAwNC0wNS0xOCAxMTo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpCjoKCiAgIGNvbW1lbnQgdHdlYWtzOyB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGUKCjIwMDQtMDUtMTggMTE6MzggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgY29tbWVudCB0d2Vha3M7IHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZTsgZGVmYXVsdCB0byBzZXR0aW5nIHVwIGRhdGEKICAgY29udGV4dCBpbiBjYWNoZV9sb2FkLCBpbnN0ZWFkIG9mIHJvd19wcmVwCgoyMDA0LTA1LTE4IDExOjI3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgY29tbWVudCB0d2Vha3M7IGFzc3VtZSBtYXBwaW5nIGFscmVhZHkgZG9uZTsgc2V0IGxlbiB0byBtYXggc2l6ZSBiZWZvcmUKICAgY2hlY2tpbmcgaWYgaXQgaXMgbGFyZ2UgZW5vdWdoIHRvIGhvbGQgYSB2YWx1ZQoKMjAwNC0wNS0xOCAxMToyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgY29tbWVudCB0d2Vha3M7IGxvZyBlcnJvciBpZiBub3QgZW5vdWdoIHNwYWNlIGZvciB2YXIKCjIwMDQtMDUtMTggMTE6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaToKCiAgIHVzZSAkY29udGV4dCBpbnN0ZWFkIG9mICR0YWJsZTsgY29tbWVudCB0d2Vha3MKCjIwMDQtMDUtMTggMTE6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgZml4IGNhc2Ugb2Ygc29tZSBjb25zdGFudHMKCjIwMDQtMDUtMTggMTA6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLXRhYmxlLWNvbnN0YW50cy5tMmMsCiAgICAgZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmMsIGdlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICB1c2UgJGNvbnRleHQgaW5zdGVhZCBvZiAkdGFibGU7IG1ha2UgZ2VuZXJpYy10YWJsZS0oZW51bXN8b2lkcykgb25seSBydW4gb24gY3VycmVudAogICB0YWJsZTsgYWRkIHRhYmxlIGxvb3AgaW4gZ2VuZXJpYy10YWJsZS1jb25zdGFudHMKCjIwMDQtMDUtMTggMTA6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgYWRkIGRlYnVnIHRyYWNpbmcgZm9yIHNldCBmdW5jdGlvbnMKCjIwMDQtMDUtMTggMTA6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZXRhaWxzLXRhYmxlLm0yaSwKICAgICBnZW5lcmljLWN0eC1jb3B5Lm0yaSwgZ2VuZXJpYy1kYXRhLWFsbG9jYXRlLm0yaSwKICAgICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXZhcmJpbmQtc2V0dXAubTJpLCBtZmQtcmVhZG1lLm0yYwo6CgogICBjb21tZW50IHR3ZWFrczsgY2hnICR0YWJsZSB0byAkY29udGV4dAoKMjAwNC0wNS0xOCAwMjowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBXcml0ZSBzdXBwb3J0LCBpbmNsdWRpbmcgUm93U3RhdHVzLWJhc2VkIGNyZWF0aW9uIG9mIG5ldyAodm9sYXRpbGUpIHJvd3MuCiAgIFRoZSBjb2RlIG5lZWRzIGEgYml0IG9mIHRpZHlpbmcgdXAsIGJ1dCBzZWVtcyB0byBiZSByZWFzb25hYmx5IGZ1bmN0aW9uYWwuCgoyMDA0LTA1LTE4IDAyOjAxICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgTWlub3IgdHdlYWtzLgoKMjAwNC0wNS0xNyAyMDowNiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBwZXIgQW5keSBTbWl0aCwgYXBwbHkgcGF0Y2ggIyA5NTU1NzkgdG8gY29tcGxldGUgbWlub3IgY2hhbmdlcyB0byBpbnN0YWxsIHRhYnMuCgoyMDA0LTA1LTE3IDE5OjU4ICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LAogICAgIGh0bWxoZWxwL0ludHJvZHVjdGlvbi5odG1sLCBodG1saGVscC9OZXQtU05NUC5oaGMsCiAgICAgaHRtbGhlbHAvTmV0LVNOTVAuaGhwOgoKICAgQWRqdXN0IHVzYWdlIHRvIGFjY291bnQgZm9yIHJlbW92ZWQgc3BhY2UgZnJvbSBwYXRobmFtZXMgb2YgSFRNTCBoZWxwIGZpbGVzLgoKMjAwNC0wNS0xNyAxOTo1MiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2h0bWxoZWxwLzogQ29uZmlndXJhdGlvbiBPdmVydmlldy5odG1sLAogICAgIENvbmZpZ3VyYXRpb25fT3ZlcnZpZXcuaHRtbCwgRGV2ZWxvcGVyIEZBUS5odG1sLAogICAgIERldmVsb3Blcl9GQVEuaHRtbCwgSGVscCBDYXZlYXRzLmh0bWwsCiAgICAgSGVscF9DYXZlYXRzLmh0bWw6CgogICByZW1vdmUgc3BhY2UgZnJvbSBwYXRobmFtZXMgb2YgSFRNTCBoZWxwIGZpbGVzLgoKMjAwNC0wNS0xNyAxNTo0NSAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS50eHQ6CgogICBwZXIgQWxleCBCdXJnZXIsIG9uZS1saW5lIGNoYW5nZSAobGluZSAxNTksIGNoYW5nZSBwZXJpb2QgdG8gY29sb24pLgoKMjAwNC0wNS0xNyAwNzoxMyAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHdpbjMyL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0LAogICAgIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dCwgd2luMzIvZGlzdC9SRUFETUUudHh0Ciwgd2luMzIvZGlzdC9odG1saGVscC9Db25maWd1cmF0aW9uIE92ZXJ2aWV3Lmh0bWwsCiAgICAgd2luMzIvbG9jYWwvTWFrZWZpbGUuaW4sIHdpbjMyL2xvY2FsL21pYjJjLmJhdCwKICAgICB3aW4zMi9sb2NhbC9zbm1wY29uZi5iYXQsIHdpbjMyL2xvY2FsL3RyYXB0b2VtYWlsLmJhdAo6CgogICBwZXIgQWxleCBCdXJnZXI6IHRlc3QgZXhpc3RlbmNlIG9mIHBlcmw7IHByb3ZpZGUgYWNjZXNzIHRvIG1vcmUgUGVybCBwcm9ncmFtcy4KCjIwMDQtMDUtMTcgMDY6NDQgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvbmV0LXNubXAubnNpOgoKICAgcGVyIEFuZHkgU21pdGg6IGFwcGx5IHBhdGNoICM5NTUyNTUgdG8gZW5oYW5jZSB0aGUgTlNJUyBpbnN0YWxsZXIuCgoyMDA0LTA1LTE3IDA1OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIEltcGxlbWVudCB0aGUgbXVsdGktcm93IG91dHB1dCBNSUIgdGFibGUuCgoyMDA0LTA1LTE0IDA0OjIyICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgT29wcyEgIENsb3NlIC0gYnV0IGl0J3MgYSBnb29kIGpvYiBJIGRvbid0IHNtb2tlLi4uLgoKMjAwNC0wNS0xMyAyMToyMyAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L1JFQURNRS5idWlsZC53aW4zMi50eHQ6CgogICBwZXIgQWxleEI6IGRlc2NyaWJlIGZ1cnRoZXIgZGV0YWlscyBvZiBidWlsZGluZyAoY3JlYXRpbmcgZW1wdHkgZmlsZXMsIGV0YykuCgoyMDA0LTA1LTEzIDIxOjEzICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLnR4dDoKCiAgIHBlciBBbGV4QjogYWRkZWQgc2VjdGlvbiAiY28tZXhpc3Rpbmcgd2l0aCBtJCBzZXJ2aWNlcyIKCjIwMDQtMDUtMTMgMjA6MjkgIHNsaWYKCiAgICogd2luMzIvZGlzdC9pbnN0YWxsZXIvOiBBZGQyUGF0aC5uc2ksIFNldEVuVmFyLm5zaSwKICAgICBuZXQtc25tcC1oZWFkZXIxLmJtcCwgbmV0LXNubXAubnNpOgoKICAgUGVyIEFuZHkgU21pdGg6IHBhdGNoIFs5NTI1MDldIHRvIGZpeCBsaW5rIG5hbWVzIGZvciB0aGUgc2VydmljZSByZWdpc3RyYXRpb24gYmF0Y2ggZmlsZXMuCgoyMDA0LTA1LTEzIDIwOjEyICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvUkVBRE1FLmJ1aWxkLndpbjMyLnR4dDoKCiAgIFBlciBBbGV4IEJ1cmdlciBhbmQgQW5keSBTbWl0aDogdXBkYXRlZCBpbnN0cnVjdGlvbnMgZm9yIGNyZWF0aW5nIGEgd2luMzIgaW5zdGFsbGFibGUgcGFja2FnZS4KCjIwMDQtMDUtMTMgMjA6MDQgIHNsaWYKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2ludGVyZmFjZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgcmVtb3ZlIE5FVFNOTVBfQ1BQX1dSQVAgbWFjcm9zCgoyMDA0LTA1LTEzIDA1OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC86IGV4dGVuZC5jLCBleHRlbmQuaDoKCiAgIFNwbGl0IG5ldyBleHRlbnNpb24gdGFibGUgaW50byB0d28gKGNvbmZpZ3VyYXRpb24gYW5kIG91dHB1dCkuCiAgIEltcGxlbWVudCBzY2FsYXIgdG8gdHJhY2sgdGhlIG51bWJlciBvZiBlbnRyaWVzLgogICBQYXJzZSBtdWx0aS1saW5lIG91dHB1dCB0byBpbXBsZW1lbnQgJ25zRXh0ZW5kT3V0cHV0MUxpbmUnIG9iamVjdC4KCjIwMDQtMDUtMTMgMDQ6MDYgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBTZXBhcmF0ZSBjb25maWd1cmF0aW9uIGFuZCBvdXRwdXQgaW50byBzZXBhcmF0ZSB0YWJsZXMsIGFzIHN1Z2dlc3RlZC4KICAgRHJvcCAnb3V0cHV0IGxlbmd0aCcgb2JqZWN0IGFzIHByb2JhYmx5IHVubmVjZXNzYXJ5LgogICBOZXcgc2NhbGFyIHRvIHRyYWNrIHRoZSBudW1iZXIgb2YgZW50cmllcyBpbiB0aGUgdGFibGUuCiAgIFRoaXMgYWxzbyBtZWFucyB0aGF0IHRoaXMgZ3JvdXAgd2lsbCBub3QgYmUgZW1wdHksCiAgIGV2ZW4gd2hlbiBubyBleHRlbnNpb25zIGFyZSBjb25maWd1cmVkIGZvciBhIGdpdmVuIGFnZW50LgogICAoSSdtIHN0aWxsIG5vdCBoYXBweSB3aXRoIHNvbWUgb2YgdGhlIG5hbWVzLCB0aG91Z2ghKQoKMjAwNC0wNS0xMSAwMzo1OSAgc2xpZgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGNsZWFudXAgZXJyb3IgbWVzc2FnZXMuIGNsYXJpZnkgU0NNIGludGVyYWN0aW9ucyB3aXRoIHdvcmtlciB0aHJlYWQgaW4gY29tbWVudHMuCgoyMDA0LTA1LTExIDAzOjEyICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUVYVEVORC1NSUIudHh0OgoKICAgRml4IHNvbWUgU01JIGVycm9ycy4KICAgV2VzIGNhbiBiZSBhIHBpY2t5IGJlZ2dhciBhdCB0aW1lcy4uLi4KCjIwMDQtMDUtMTAgMTc6NTAgIHNsaWYKCiAgICogd2luMzIvZGlzdC9zY3JpcHRzL25ldC1zbm1wLXBlcmwtdGVzdC5wbDoKCiAgIHBlciBBbGV4IEJ1cmdlciAtIGFkZCBtaXNzaW5nIHRlc3Qgc2NyaXB0LgoKMjAwNC0wNS0xMCAxMzo0OSAgaGFyZGFrZXIKCiAgICogd2luMzIvZGlzdC9SRUFETUUuYnVpbGQud2luMzIudHh0OgoKICAgQW5vdGhlciBkb2MgdXBkYXRlIGZyb20gQWxleAoKMjAwNC0wNS0xMCAwMzo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBleHRlbmQuYywgZXh0ZW5kLmg6CgogICBQcmVsaW1pbmFyeSBpbXBsZW10YXRpb24gb2YgbmV3IG5zRXh0ZW5kVGFibGUKCjIwMDQtMDUtMTAgMDM6NDQgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhURU5ELU1JQi50eHQ6CgogICBSZXZpc2VkIE1JQiBmb3Igc2NyaXB0ZWQgZXh0ZW5zaW9ucy4KICAgKFRvIHJlcGxhY2UgVUNELVNOTVAtTUlCOjpleHRUYWJsZSkKCjIwMDQtMDUtMTAgMDM6NDEgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIERlZmVuc2l2ZSBwcm9ncmFtbWluZyAtIGRvbid0IGNyYXNoIG9uIE5VTEwgcGFyYW1ldGVycy4KCjIwMDQtMDUtMTAgMDM6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgRXh0ZXJuYWwgQVBJIGZvciBjaGVja2luZyBhbmQgcmVsb2FkaW5nIGEgY2FjaGVkIHZhbHVlLgogICBXZWFrZW4gdGhlIGxpbmtzIGJldHdlZW4gdGhpcyBoZWxwZXIgYW5kICduc0NhY2hlVGFibGUnLgoKMjAwNC0wNS0wNyAxNTo0MSAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgZW50cnkgZm9yIEZSTkVUU0VSVi1NSUIKCjIwMDQtMDUtMDcgMTU6MTkgIG5iYQoKICAgKiBtaWJzLzogRXRoZXJMaWtlLU1JQi50eHQsIElBTkFpZlR5cGUtTUlCLnR4dCwKICAgICByZmNtaWJzLmRpZmY6CgogICBVcGRhdGUgdG8gY3VycmVudCBNSUIgdmVyc2lvbnMKCjIwMDQtMDUtMDcgMTU6MDQgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFRoZSB3b3JkIFBSRUZJWCBpcyBub3QgZW5kYW5nZXJlZCBmb3Igc3Vic3RpdHV0aW9uLCBzbyBtYWtlIGl0IGxvb2sgbm9ybWFsCgoyMDA0LTA1LTA3IDE0OjM0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBmb3IgdHJ1bmNhdGVkIG9pZCB3aGVuIHVzaW5nIE9CSkVDVCBJREVOVElGSUVSIGFzIGluZGV4CgoyMDA0LTA1LTA3IDE0OjE1ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEZpeCB0byBhbGxvdyBzcGVjaWZ5aW5nIG51bWVyaWMgb2lkIGZvciB0YWJsZQoKMjAwNC0wNS0wNiAyMDoxNSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG06CgogICBQZXIgQWxleCBCdXJnZXIsIGFkZCBuYW1lcyB0byBhY2tub3dsZWRnZSB0aGUgaW5kaXZpZHVhbCBjb250cmlidXRvcnMuCgoyMDA0LTA1LTA2IDE5OjQxICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUuYnVpbGQud2luMzIudHh0LCBpbnN0YWxsZXIvbmV0LXNubXAubnNpCjoKCiAgIHJlZmxlY3QgdGhhdCBSRUFETUUtRklSU1QudHh0IGFuZCBJbnN0YWxsYXRpb24uaHRtbCBoYXZlIGJlZW4gbWVyZ2VkIGludG8gUkVBRE1FLnR4dAoKMjAwNC0wNS0wNiAxOTowMiAgc2xpZgoKICAgKiB3aW4zMi9kaXN0L2luc3RhbGxlci9uZXQtc25tcC5uc2k6CgogICBQZXIgQW5keSBTbWl0aCwgcGF0Y2ggIzk0Mjc2NiBjcmVhdGVzIFNOTVBDT05GUEFUSCBhbmQgU05NUFNIQVJFUEFUSCBhcyBzeXN0ZW0gZW52IHZhcnMuCgoyMDA0LTA1LTA2IDE4OjU0ICBzbGlmCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgUGVyIEFuZHkgU21pdGgsIGRvbid0IHNob3cgbWVzc2FnZSBkaWFsb2dzIHdoZW4gcmVnL3VucmVnIE9LIChwYXRjaCA5NDg5MjYgZml4ZXMgYnVnIDk0ODE0NikuCgoyMDA0LTA1LTA2IDE4OjAxICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvOiBSRUFETUUtRklSU1QudHh0LCBSRUFETUUuYnVpbGQud2luMzIudHh0CiwgUkVBRE1FLnR4dCwgaHRtbGhlbHAvQ29uZmlndXJhdGlvbiBPdmVydmlldy5odG1sCiwgaHRtbGhlbHAvSGVscCBDYXZlYXRzLmh0bWwsCiAgICAgaHRtbGhlbHAvSW5zdGFsbGF0aW9uLmh0bWwsIGh0bWxoZWxwL05ldC1TTk1QLmhoYywKICAgICBodG1saGVscC9OZXQtU05NUC5oaHAsIGh0bWxoZWxwL3NubXAuY29uZi53aW4zMi5odG1sOgoKICAgcGF0Y2ggd2luZG93cyBidWlsZCBwYWNrYWdpbmcgcGVyIEFsZXggQnVyZ2VyJ3MgcGF0Y2gtd2luMzItNS4xLjItY2xlYW51cC5kaWZmCgoyMDA0LTA1LTA2IDA4OjMxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbW92ZSB2YXIgZGVjbCB0byB0b3Agb2YgYmxvY2sgc2NvcGU7IGFkZCBoZWFkZXIgdG8gcXVpZXQgcHJvdG90eXBlIHdhcm5pbmcKCjIwMDQtMDUtMDUgMTQ6NDEgIG5iYQoKICAgKiBtaWJzL2lhbmFsaXN0OgoKICAgQWRkIElBTkEtTUFMTE9DLU1JQgoKMjAwNC0wNS0wNSAxMzo0OSAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICBQcm90ZWN0IG9pZCB0YWJsZSBhZ2FpbnN0IG92ZXJmbG93CgoyMDA0LTA1LTA1IDA3OjM0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2hlY2sgc2hvdWxkX2luaXQgYmVmb3JlIGluaXRpYWxpemluZyBzbXV4CgoyMDA0LTA1LTA0IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXNfbG9jYWwuY29uZjoKCiAgIEZpeCBhIGhlYWRlciBwcm90b3R5cGUgZGVjbGFyYXRpb24KCjIwMDQtMDUtMDQgMDc6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMsIHZhY21fY29uZi5jLAogICAgIHZhY21fY29uZi5oLCB2YWNtX3ZhcnMuaDoKCiAgIFNwbGl0IFZBQ00gaGFuZGxpbmcgaW50byB0d28gLSBvbmUgY29uY2VybmVkIHdpdGggY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzCiAgIGFuZCB2YWxpZGF0aW5nIGFjY2VzcywgdGhlIG90aGVyIHRvIGhhbmRsZSB0aGUgTUlCIHRhYmxlIHJlcHJlc2VudGF0aW9uLgogICBUaGlzIGFsbG93IHRoZSBhZ2VudCB0byBzdXBwb3J0IFZBQ00tYmFzZWQgYWNjZXNzIGNvbnRyb2wgd2l0aG91dCBuZWNlc3NhcmlseQogICBpbmNsdWRpbmcgdGhlIFZBQ00tcmVsYXRlZCB0YWJsZXMuCgoyMDA0LTA1LTA0IDA3OjExICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHVzbS5jCiwgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE1vdmUgVVNNIGNvbmZpZyBoYW5kbGluZyBpbnRvIHRoZSBsaWJyYXJ5LCBzbyBpdCBjYW4gYmUgc2hhcmVkIGJldHdlZW4KICAgYWdlbnQgYW5kIHRyYXAgaGFuZGxlci4gICBUaGlzIGFsc28gcGF2ZXMgdGhlIHdheSBmb3Igc2VwYXJhdGluZwogICBjb25maWctYmFzZWQgaGFuZGxpbmcgb2Ygc2V0dGluZyB1cCB1c2VycyBmcm9tIHRoZSBVU00gTUlCIGhhbmRsZXIuCgoyMDA0LTA1LTA0IDAxOjEzICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENvbmZpZ3VyZSBpbmRlbnQgdG8gcmVjb2duaXNlICdzaXplX3QnIGFzIGEgdHlwZSBuYW1lIChCdWcgIzk0NjkzOSkKCjIwMDQtMDUtMDMgMTU6MDggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgU2V0IG5vIHJlcGVhdC1jb3VudCB0byAxIHdoZW4gbm9nZXRidWxrIGlzIHNwZWNpZmllZCBmb3IgbWF0aCBwdXJwb3Nlcy4KCjIwMDQtMDUtMDMgMTQ6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIFNvbGFyaXMgQ1BVX1dBSVQgbG9va3Mgc3RyYW5nZSBvbiBzb21lIHNlcnZlcnMuIFVwZGF0ZSB0byBzYW1lIGFsZ29yaXRoIHRvcCB1c2VzCgoyMDA0LTA0LTMwIDE3OjAwICBoYXJkYWtlcgoKICAgKiBtaWJzL21ha2VodG1sLnBsOgoKICAgTWFueSBtaXNjIGNoYW5nZXMgYW5kIGltcHJvdmVtZW50cy4KICAgIC0gTm93IHRha2VzIGNvbW1hbmQgbGluZSBhcmd1bWVudHMgZm9yIGNoYW5naW5nIE1JQkRJUnMgYW5kIG91dHB1dCBkaXJzLgogICAgLSBhY2NlcHRzIGEgbm9kZW1hcCB0byBtYXAgTUlCcyB0byBvdGhlciBub2Rlcy4KCjIwMDQtMDQtMzAgMTU6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIEFkZGVkIGEgdG91Y2ggb2YgY29sb3IuCgoyMDA0LTA0LTMwIDE1OjUyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliMmMuZ2VuaHRtbC5jb25mCgoyMDA0LTA0LTMwIDExOjE5ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTWFrZWZpbGUuaW4sIG1ha2VodG1sLnBsOgoKICAgLSBBIG1ha2Ugcm91dGluZSB0byBnZW5lcmF0ZSBhIEhUTUwgZHVtcCBvZiBvdXIgRGlzdHJpYnV0ZWQgTUlCcy4KICAgICAtIEluc3RhbGxlZCBhdCBodHRwOi8vd3d3Lk5ldC1TTk1QLm9yZy9taWJzLwoKMjAwNC0wNC0yOCAxNzoyNCAgaGFyZGFrZXIKCiAgICogbWFuL21pYjJjLmNvbmYuNToKCiAgIHVwZGF0ZSBhZnRlciBleHRyYWN0aW9uCgoyMDA0LTA0LTI4IDE3OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIG1hbnkgbW9yZSB1cGRhdGVzIGFuZCBkb2N1bWVudGF0aW9uIGZvciBtaWIyYyBjb21tYW5kcy4KCjIwMDQtMDQtMjggMTY6NTggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBkb2N1bWVudCBtb3JlIGFuZCBjbGVhbiB1cCAkdmFyLlhYWCBjb21tZW50cwoKMjAwNC0wNC0yOCAxNjo0NyAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgT25seSBidWlsZCB0aGUgbWliMmMuY29uZiBtYW4gcGFnZSBpZiBjb21pbmcgZnJvbSBhIGN2cyBjaGVja291dAogICAgIC0gYXZvaWRzIHBlcmwgZGVwZW5kZW5jaWVzIG9uIGVuZC11c2VyIG1hY2hpbmVzLgoKMjAwNC0wNC0yOCAxNjo0NSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbmYuNSwgbWliMmMuY29uZi41LmluCiwgbWliMmMuZXh0cmFjdC5wbDoKCiAgIE5ldyBkb2N1bWVudGF0aW9uIGZvciBob3cgdG8gd3JpdGUgbWliMmMuY29uZiBmaWxlcy4KICAgICAtIG5vdGUsIG11Y2ggaXMgYXV0by1leHRyYWN0ZWQgZnJvbSBjb21tZW50cyBpbiBtaWIyYy4KCjIwMDQtMDQtMjggMTY6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgY29uc3RydWN0IGNvbW1lbnRzIGJldHRlciBmb3IgYXV0by1leHRyYWN0aW9uIGludG8gYSBtYW51YWwgcGFnZS4KCjIwMDQtMDQtMjggMTU6NDcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmdlbmh0bWwuY29uZjoKCiAgIE5ldyBtaWIyYy5nZW5odG1sLmNvbmYgY29kZSB0byBnZW5lcmF0ZSBhIEhUTUwgZG9jdW1lbnQgZnJvbSBhIE1JQgogICBkb2N1bWVudCB0byBtYWtlIGl0IGVhc2llciB0byByZWFkLgoKMjAwNC0wNC0yOCAxNTo0NyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIG5ldyBAc3RhcnRwZXJsQCAvIEBlbmRwZXJsQCBkZWZpbml0aW9ucyB0byBjb21wbGV0ZWx5IG91dHNvdXJjZSBzb21lCiAgICAgdGV4dCB0byBhIGxhcmdlIGJsb2NrIG9mIHBlcmwuCiAgIC0gYWRkZWQgbWliMmNfb3V0cHV0KCkgdG8gb3V0cHV0IGEgbGluZSBvZiB0ZXh0IHRvIHRoZSByaWdodCBwbGFjZQogICAgIGZyb20gYW55d2hlcmUgaW4gcGVybCAoZXZhbGVkKSBjb2RlLgoKMjAwNC0wNC0yOCAxNTo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIHN1cHBvcnQgdGhlIGFiaWxpdHkgdG8gZ2V0IFRDIGRlc2NyaXB0aW9ucyBmcm9tIHBlcmwKCjIwMDQtMDQtMjggMTU6MzggIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIGZpeCBvdXRwdXQgdG8gcmVzcGVjdCB0aGUgb3V0cHV0IGxlbmd0aCByZXR1cm5lZCBieSB0aGUgdmFyaWFibGUKICAgcHJpbnRpbmcgcm91dGluZXMuCgoyMDA0LTA0LTI4IDE1OjM0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOgoKICAgLSBTYXZlIHRleHR1YWwgY29udmVudGlvbiBkZXNjcmlwdGlvbidzCiAgIC0gSW1wbGVtZW50ICtjb25zdCBjaGFyICAgICAqZ2V0X3RjX2Rlc2NyaXB0aW9uKGludCB0Y19pbmRleCkKCjIwMDQtMDQtMjggMTU6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBjaGFuZ2UgdmFyaWFibGUgdG8gY29uc3QgdmFyIHRvIGF2b2lkIHdhcm5pbmcuCgoyMDA0LTA0LTI3IDExOjQ0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBhdXRvLWVuYWJsaW5nIG9mIC0td2l0aC1wZXJsLW1vZHVsZXMgd2hlbiAtLWVuYWJsZS1lbWJlZGRlZC1wZXJsIGlzIHNlbGVjdGVkCgoyMDA0LTA0LTI2IDAzOjI0ICBkdHMxMgoKICAgKiBhcHBzL3NubXB1c20uYywgbWFuL3NubXB1c20uMS5kZWY6CgogICBSZXN0b3JlIHRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuICdjbG9uZUZyb20nIGFuZCAnY3JlYXRlJygrY2xvbmUpCiAgIHN1YmNvbW1hbmRzLiAgRml4IGhhbmRsaW5nIG9mIGJhcmUgJ2NyZWF0ZScgc3ViY29tbWFuZCAoc2luY2UgYW4KICAgdW5jbG9uZWQgdXNlciBjYW4ndCBiZSBtYXJrZWQgYXMgQUNUSVZFIHdpdGggdGhlIE5ldC1TTk1QIGFnZW50KQogICBEb2N1bWVudCB0aGUgYmVoYXZpb3VyIG1vcmUgY2xlYXJseS4KCjIwMDQtMDQtMjMgMDg6MTUgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaDoKCiAgIFByb3ZpZGUgYW4gQVBJIGZvciByZXRyaWV2aW5nIHRoZSB0YWJsZSBjb250YWluZXIgKG9yICd0YWJsZV9kYXRhJykKICAgc3RydWN0dXJlIGZyb20gd2l0aGluIGEgaGFuZGxlciByb3V0aW5lLgogICBUaGlzIGF2b2lkcyB0aGUgbmVlZCBmb3IgdXNpbmcgZ2xvYmFsIHZhcmlhYmxlcy4KCjIwMDQtMDQtMjMgMDQ6MjAgIHNsaWYKCiAgICogd2luMzIvZGlzdC90b3NvY2sxLnNoOgoKICAgc2NyaXB0IHRoYXQgY29udmVydHMgYmFjayB0byB3aW5zb2NrIDEgbGlicmFyeS4gIG5vIHVuZG8gaXMgZXhwbGFpbmVkLgoKMjAwNC0wNC0yMiAxOTowMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaSwKICAgICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwKICAgICBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSwKICAgICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBtZmQtaW50ZXJmYWNlLm0yYywgbWZkLXRvcC5tMmMKLCBub2RlLXNldC5tMmksIHBhcmVudC1zZXQubTJpOgoKICAgY2hhbmdlIGFsbCBERUJVR1RSQUNFIHRvIERFQlVHTVNUTCgoInZlcmJvc2U6ZnVuY3Rpb25fbmFtZSIuLi4KCjIwMDQtMDQtMjIgMDc6MTMgIHNsaWYKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgd2luMzIvc25tcHRyYXBkL01ha2VmaWxlLmluLAogICAgIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgcGF0Y2ggZnJvbSBBbmR5IFNtaXRoOiBbOTMxNjczXSBSdW4gc25tcHRyYXBkIGFzIGEgV2luZG93cyBzZXJ2aWNlOwogICBzbGlmIGRpZCB0aGUgbWFrZWZpbGUvcHJvamVjdCBmaWxlIHRvdWNoZXMuCgoyMDA0LTA0LTIyIDA3OjExICBzbGlmCgogICAqIGFnZW50L3NubXBkLmM6CgogICBtYXRjaCBhcHBsaWNhdGlvbiBuYW1lIHdpdGggZGlzcGxheSBuYW1lIHRvIGltcHJvdmUgZXZlbnQgbG9nIGxlZ2liaWxpdHkuCgoyMDA0LTA0LTIyIDA3OjA4ICBzbGlmCgogICAqIHdpbjMyLzogc25tcGQvTWFrZWZpbGUuaW4sIHNubXBkc2RrL01ha2VmaWxlLmluOgoKICAgQ2hhbmdlIGluY2x1ZGUgc2VhcmNoIHBhdGggZm9yIHNubXBsaWIgdG8gIi4uXC4uIiBbd2FzIHBvaW50aW5nIGVsc2V3aGVyZV0uCgoyMDA0LTA0LTIxIDE5OjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N1YmFnZW50Lm0yYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyOyB1cGRhdGUgaGVscCBtZXNzYWdlCgoyMDA0LTA0LTIxIDE5OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGVmYXVsdC1tZmQtdG9wLm0yYywgbWZkLXRvcC5tMmMKOgoKICAgdXNlICMgaW5zdGVhZCBvZiAqIGZvciBzcGVjaWFsIGNoYXIsIHNpbmNlIHBlcmwgZG9lc24ndCBsaWtlIHRoZSAqCgoyMDA0LTA0LTIxIDE5OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdXNlIHVudXNlZCB2YXIKCjIwMDQtMDQtMjEgMTk6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIGZpeCBxdW90aW5nIHByb2JsZW0KCjIwMDQtMDQtMjEgMTk6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIGFkZCBtaXNzaW5nIHByb3RvdHlwZSBmb3Igbm9uLWluZGV4IG1hcCBmdW5jdGlvbnMKCjIwMDQtMDQtMjEgMTk6MzcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICBnZXQgcmlkIG9mIGxvb3BfaW5pdF9jb250ZXh0LCBtb3ZpbmcgaXQncyB3b3JrIGludG8gZ2V0X2ZpcnN0OyBmaXggdGVzdAogICBmb3IgY29kZSBnZW4gZm9yIHRyYW5zaWVudCBkYXRhCgoyMDA0LTA0LTIxIDE5OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9lbnVtLm0yaToKCiAgIGRvbid0IHVzZSB1YyBmdW5jdGlvbiwgYXMgaXQgYmFyZnMgb24gZW51bXMgdy9oeXBoZW5zCgoyMDA0LTA0LTIxIDA1OjUzICBzbGlmCgogICAqIHdpbjMyL2Rpc3QvaW5zdGFsbGVyLzogQWRkMlBhdGgubnNpLCBTZXRFblZhci5uc2ksCiAgICAgbmV0LXNubXAubnNpOgoKICAgZnJvbSBBbmR5IFNtaXRoOiBpbnN0YWxsZXIgY29tcG9uZW50cwoKMjAwNC0wNC0yMCAyMDo0OCAgc2xpZgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaDoKCiAgIGZpeCBbODA3MzQ5XSB1Y2Qtc25tcC92ZXJzaW9uLmggdHJpZXMgdG8gdXNlIGEgbXV0YWJsZSB2YXJpYWJsZSBbI2RlZmluZV0KCjIwMDQtMDQtMjAgMjA6MjMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdXBkYXRlIHN0YXR1cywgY2hhbmdlIGJ1aWxkIG1lbnUsIGFuZCBtYW51YWwgYnVpbGQgaXB2NiBpbnN0cnVjdGlvbnMuCgoyMDA0LTA0LTIwIDE4OjU3ICBzbGlmCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBwYXRjaC1idWctOTE5NDY1LTQgYXBwbGllZCB0byBmaXggWzkxOTQ2NV0gYnVnIGluIHN5c3RlbS5jCgoyMDA0LTA0LTIwIDE3OjI4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwgVDExMGFnZW50eGdldAosIFQxMTFhZ2VudHhzZXQsIFQxMTJhZ2VudHhzZXRmYWlsLAogICAgIFQxMTNhZ2VudHh0cmFwLCBUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwKICAgICBUMTIycHJveHlzZXRmYWlsOgoKICAgVXNlIG5ldyBnbG9iYWwgU3YzY29uZmlnIG1hc3RlciBwYXJhbSBzZXR1cAoKMjAwNC0wNC0yMCAxNzoyNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjNzbm1wdjNnZXRNRDVBRVMsIFQwMjZzbm1wdjNnZXRTSEFBRVMKOgoKICAgTmV3IHRlc3RzIGZvciBBRVMgc3VwcG9ydAoKMjAwNC0wNC0yMCAxNzoyNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjJzbm1wdjNnZXRNRDUsIFQwMjNzbm1wdjNnZXRNRDVERVMKLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUzoKCiAgIFVzZSBuZXcgZ2xvYmFsIFN2M2NvbmZpZyBtYXN0ZXIgcGFyYW0gc2V0dXAKCjIwMDQtMDQtMjAgMTc6MTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvU3YzY29uZmlnOgoKICAgZGV0ZXJtaW5lIHRoZSBiZXN0IGF1dGgvZW5jciB0eXBlIGF2YWlsYWJsZSBhbmQgdXNlIGl0LgoKMjAwNC0wNC0yMCAxNzoxOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZm9yIGRpc2FibGVkIHNubXB2MS8yYyBhbmQgbWQ1L2RlcwoKMjAwNC0wNC0yMCAxNToxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBmaXggdW5iYWxhbmNlZCBpZi9lbmRpZiBub3RlZCBvbiBjb2RlcnMgYnkgT2xlZyBJdmFub3YKCjIwMDQtMDQtMjAgMTI6MDkgIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taW5ndzMyLmgsIHNubXBsaWIvaW5ldF9udG9wLmMKLCBzbm1wbGliL2luZXRfcHRvbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywKICAgICBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgZml4IGVycm9ycyBidWlsZGluZyBJUHY2IHN1cHBvcnQgZm9yIE1TVkMrKywgTWluR1csIGFuZCBDeWd3aW4uCgoyMDA0LTA0LTIwIDA3OjE4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIGZpeCBicm9rZW4gdXNhZ2Ugb2YgcXcoKQoKMjAwNC0wNC0yMCAwNjoyMCAgc2xpZgoKICAgKiB3aW4zMi9FWEFNUExFLmNvbmYud2luMzI6CgogICBhZGQgc2FtcGxlIGNvbmZpZyBmaWxlCgoyMDA0LTA0LTIwIDA0OjM5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBuc0NhY2hlLmMsIG5zRGVidWcuYywKICAgICBuc0xvZ2dpbmcuYzoKCiAgIEZpeCBpbnQvbG9uZyBtaXh1cCBmb3IgNjQtYml0IFNvbGFyaXMKCjIwMDQtMDQtMjAgMDQ6MzMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcC5jOgoKICAgRW5zdXJlIGRpYWdub3N0aWNzIHdpdGggQVNOLjEgZW5jb2RpbmcgZXJyb3JzCgoyMDA0LTA0LTIwIDAzOjUxICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgY2xlYW51cCAicmVhZGluZyBNSUIgZmlsZSIgdmVyYm9zZSBtZXNzYWdlIChjb21waWxlZCBNSUJESVJTL01JQlMgbm90IHVzZWZ1bC9kaXNjZXJuYWJsZSkuCgoyMDA0LTA0LTIwIDAyOjUxICBzbGlmCgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggdW5zaWduZWQgY29tcGFyZSBvZiBsZW4gdG8gbGluZV9sZW4gaW4gc3ByaW50X3JlYWxsb2NfaGV4c3RyaW5nCgoyMDA0LTA0LTIwIDAyOjQ4ICBzbGlmCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGFkZF9taWJkaXIgdmFyaWFibGUgJ3Rva2VuJyBpcyBub3QgdXNlZCBvbiB3aW4zMi4gIG1vdmUgdG8gdW5kZXIgdGhlIGlmZGVmLgoKMjAwNC0wNC0xOSAyMzo0MCAgc2xpZgoKICAgKiB3aW4zMi86IENvbmZpZ3VyZSwgTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluCjoKCiAgIHBhdGNoIGZyb20gQWxleCBCdXJnZXI6IFs5Mjg4NzJdIFdpbjMyIGJ1aWxkLmJhdCBzbm1wY29uZixtaWIyYyx0cmFwdG9lbWFpbAoKMjAwNC0wNC0xOSAyMzoyMCAgc2xpZgoKICAgKiB3aW4zMi9kaXN0LzogUkVBRE1FLUZJUlNULnR4dCwgUkVBRE1FLmJ1aWxkLndpbjMyLnR4dAosIFJFQURNRS50eHQsIGh0bWxoZWxwL0NvbmZpZ3VyYXRpb24gT3ZlcnZpZXcuaHRtbAosIGh0bWxoZWxwL0RldmVsb3BlciBGQVEuaHRtbCwgaHRtbGhlbHAvRkFRLmh0bWwKLCBodG1saGVscC9IZWxwIENhdmVhdHMuaHRtbCwKICAgICBodG1saGVscC9JbnN0YWxsYXRpb24uaHRtbCwgaHRtbGhlbHAvSW50cm9kdWN0aW9uLmh0bWwKLCBodG1saGVscC9OZXQtU05NUC5oaGMsIGh0bWxoZWxwL05ldC1TTk1QLmhocCwKICAgICBodG1saGVscC9uZXQtc25tcC00LjItODAwLmpwZywKICAgICBodG1saGVscC9zbm1wLmNvbmYud2luMzIuaHRtbCwKICAgICBodG1saGVscC9zbm1wZC5jb25mLndpbjMyLmh0bWwsCiAgICAgaHRtbGhlbHAvc25tcHRyYXBkLmNvbmYud2luMzIuaHRtbCwgc2NyaXB0cy9jcmVhdGUtdG9jCiwgc2NyaXB0cy9tYW5kaXIyaHRtbCwgc2NyaXB0cy9wb2RkaXIyaHRtbCwKICAgICBzY3JpcHRzL3JlYWRtZTJodG1sLCBzY3JpcHRzL3R4dDJodG1sOgoKICAgcGF0Y2ggZnJvbSBBbGV4IEJ1cmdlcjogWzkzODIxNF0gV2luMzIgZGlzdCBmb2xkZXIgLSBidWlsZGluZyBhIGJpbmFyeSByZWxlYXNlCgoyMDA0LTA0LTE5IDIzOjA1ICBzbGlmCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgcGF0Y2ggZnJvbSBBbGV4IEJ1cmdlcjogWzkxODQxMF0gU05NUENPTkYgZHluYW1pYyBwYXRocwoKMjAwNC0wNC0xOSAyMTo1MiAgc2xpZgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGNvbmRpdGlvbmFsbHkgY29tcGlsZSBmb3IgcGxhdGZvcm1zIHdpdGggc3RhdGljIG9iamVjdCBsaXN0cyBbbm8gY29uZmlndXJlXS4KCjIwMDQtMDQtMTkgMjE6NDkgIHNsaWYKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGluZXQ2LmMsIG5ldHN0YXQuaDoKCiAgIHJlZHVjZSB3YXJuaW5ncyBmb3IgdW5kZWNsJ2Qgc3RydWN0OyBkZWNsYXJlIGluZXQ2cHJpbnQgb25seSB3aGVyZSBpdCBpcyBuZWVkZWQuCgoyMDA0LTA0LTE5IDIxOjQxICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGRvbid0IGV4cG9zZSBnZXRhZGRyaW5mbyBpZiBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBwbGF0Zm9ybS4KCjIwMDQtMDQtMTkgMjE6MzkgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgZml4IHVuc2lnbmVkIGludCBjb21wYXJlCgoyMDA0LTA0LTE5IDIxOjM4ICBzbGlmCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIHRyYWRlIGluIGEgc2luZ2xlIHR5cGVkZWYgdWludDhfdCBmb3IgdGhlIHdpZGVseSB1c2VkIHVfY2hhci4KCjIwMDQtMDQtMTkgMjE6MzYgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgY2xlYW51cCB3aGVuIGZpbmlzaGVkIHdpdGggYWRkcmluZm8gc3RydWN0dXJlLgoKMjAwNC0wNC0xOSAyMDowOSAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGFkZCBpbmV0X250b3AsaW5ldF9wdG9uIHRvIHNubXBsaWIgb2JqZWN0cyBmb3Igd2luMzIgYnVpbGRzLgoKMjAwNC0wNC0xOSAyMDowOCAgc2xpZgoKICAgKiB3aW4zMi9Db25maWd1cmU6CgogICBtb3JlIHJvYnVzdCBjaGFuZ2UgZm9yIE5FVFNOTVBfVVNFX0RMTC4KCjIwMDQtMDQtMTkgMTg6MzcgIGhhcmRha2VyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgZml4ICNpZmRlZiBidWcKCjIwMDQtMDQtMTkgMTY6NDcgIHNsaWYKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgYWRkIGNvbW1lbnQgZnJvbSBOaWVscyBCLiByZWFzb24gZm9yIHdpbjMyIGlmZGVmcyBpbiBhZGRfbWliZGlyLgoKMjAwNC0wNC0xOSAxNTo1NyAgc2xpZgoKICAgKiB3aW4zMi86IENvbmZpZ3VyZSwgYnVpbGQucGwsIG1pYl9tb2R1bGVfaW5pdHMuaAosIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcDoKCiAgIHNlbGVjdGl2ZSBidWlsZCBvZiBJUHY2IHRyYW5zcG9ydCBmb3IgTVNWQysrIGJ1aWxkCgoyMDA0LTA0LTE5IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHVzbS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMKLCBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgICAgdGVzdGluZy90ZXN0cy9TdjNjb25maWcsIHRlc3RpbmcvdGVzdHMvU3YzdmFjbWNvbmZpZywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIxc25tcHYzZ2V0bmV4dCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjIwc25tcHYzYnVsa2dldCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMjJzbm1wdjNnZXRNRDUsCiAgICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNDlzbm1wdjNpbmZvcm0sCiAgICAgdGVzdGluZy90ZXN0cy9UMDUwc25tcHYzdHJhcDoKCiAgIE5ldyBjb25maWd1cmUgZmxhZ3M6IC0tZGlzYWJsZS1tZDUgYW5kIC0tZGlzYWJsZS1kZXMgdG8gY29tcGxldGVseSByZW1vdmUgc3VwcG9ydCBmb3IgdGhlIGxlc3MgdHJ1c3RlZC9zZWN1cmUgYWxnb3JpdGhtcwoKMjAwNC0wNC0xOSAxMzowMSAgc2xpZgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBtb3ZlIGRlYnVnIHN0YXRlbWVudCBhZnRlciB2YXJpYWJsZSBkZWZpbml0aW9uLgoKMjAwNC0wNC0xOSAxMjozNiAgc2xpZgoKICAgKiB3aW4zMi9Db25maWd1cmU6CgogICB1c2UgYSBtb3JlIHJvYnVzdCBzZWFyY2ggZm9yIHVuZGVmIFVTRV9PUEVOU1NMLgoKMjAwNC0wNC0xOSAwODoyOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvbWliLmM6CgogICBNb3JlIGZsZXhpYmxlIG91dHB1dCBvZiBoZXggc3RyaW5ncyAtIGRvbid0IGhhcmRjb2RlIDE2LW9jdGV0cy1wZXItbGluZQoKMjAwNC0wNC0xOSAwNzo1OCAgc2xpZgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIGNvbW1lbnQgb3V0IHZhcmlhYmxlcyB3aGljaCBhcmUgbm90IHVzZWQuCgoyMDA0LTA0LTE5IDA3OjU4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYWRkIGFsYXJtIHRvIGFnZSBhZGRyIGNhY2hlIGV2ZXJ5IDUgbWluOyBhZGQgZGVidWcgZm9yIGFzcC0+cmVxaW5mbwoKMjAwNC0wNC0xOSAwNzo1MyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZW1vdmUgJ3NjaGVkJ3VsZWQgdGltZW91dCBwcm9jZXNzaW5nOyBtb3ZlIGFkZHIgY2FjaGUgYWdpbmcgaW50byBhbGFybTsKICAgY2hhbmdlIGRlYWZ1bHQgdGltZW91dCBmcm9tIFRJTUVUSUNLIHRvIExPTkdfTUFYCgoyMDA0LTA0LTE5IDA3OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXI7IGFkZCB0aW1lb3V0IGRlYnVnZ2luZwoKMjAwNC0wNC0xOSAwNzozNiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGF0Y2ggWyA5MTg5NDggXSBmaXggY3lnd2luIGNvbmZpZyBwcm9ibGVtCgoyMDA0LTA0LTE2IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4ZWQgYSB2MS92MmMgZXhjbHVzaW9uIGJ1ZwoKMjAwNC0wNC0xNiAxNjo0NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBPdXRwdXQgbWVzc2FnZSBub3cgY29udGFpbnMgdmVyc2lvbnMgc3VwcG9ydGVkCgoyMDA0LTA0LTE2IDE2OjM3ICBoYXJkYWtlcgoKICAgKiBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywKICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wbGliL3NubXB2My5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsCiAgICAgdGVzdGluZy90ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0aW5nL3Rlc3RzL1QwMTRzbm1wdjJjZ2V0CiwgdGVzdGluZy90ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0LAogICAgIHRlc3RpbmcvdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMDE5c25tcHYyY25vc3VjaCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTFzbm1wdjJjdHJhcCwKICAgICB0ZXN0aW5nL3Rlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLAogICAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwCiwgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMTIxcHJveHlzZXQsIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbAosIHRlc3RpbmcvdGVzdHMvVDEzMHNubXB2MXZhY21nZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMTMxc25tcHYyY3ZhY21nZXQsCiAgICAgdGVzdGluZy90ZXN0cy9UMTQwc25tcHYxdmFjbWdldGZhaWwsCiAgICAgdGVzdGluZy90ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDE1MHNvbGFyaXNob3N0Y3B1LAogICAgIHRlc3RpbmcvdGVzdHMvVDE1MXNvbGFyaXNob3N0ZGlzaywKICAgICB0ZXN0aW5nL3Rlc3RzL1QxNTJob3N0dXB0aW1lLCB0ZXN0aW5nL3Rlc3RzL1QxNTNzb2xhcmlzc3dhcAo6CgogICBOZXcgZmxhZ3MgZm9yIGNvbmZpZ3VyZTogLS1kaXNhYmxlLXNubXB2MSAtLWRpc2FibGUtc25tcHYyYwoKMjAwNC0wNC0xNiAxNjoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0OgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBhbmQgY29uZmxpY3RpbmcgVkFDTSBlbnRyeS4gIEl0J3MgYW1hemluZyB0aGlzIGhhc24ndAogICBjYXVzZXMgZmFsc2UgcHJvYmxlbXMgYmVmb3JlIG5vdy4KCjIwMDQtMDQtMTYgMTI6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2NvbW1vbi5jOgoKICAgYWRkcmVzcyBpc3N1ZXMgbm90ZWQgYnkgZGF2ZSBvbiBjb2RlcnMKCjIwMDQtMDQtMTYgMTI6NDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXBfZGVidWcuYwo6CgogICBuZXcgJ25vIGNoZWNrJyBkZWJ1ZyBtYWNyby9mdW5jdGlvbnMKCjIwMDQtMDQtMTUgMTQ6NTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2FycC5oOgoKICAgaGVhZGVyIGZvciBhcnAgZGF0YSBhY2Nlc3MKCjIwMDQtMDQtMTUgMDU6NTAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgVmFyaWFibGVzIHVzZWQgZm9yIHJldHVybmluZyB2YWx1ZXMgbmVlZCB0byBiZSAnc3RhdGljJy4gICAob29wcyEpCgoyMDA0LTA0LTE1IDA1OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgTW92ZSB0aGUgZGVmaW5pdGlvbiBvZiAnaXBhZGRyX3JldHVybicgdG8gdGhlIChvbmx5KSByb3V0aW5lIHdoZXJlCiAgIGl0J3MgYWN0dWFsbHkgdXNlZC4gIChTZWUgQnVnICM5MzQ0MjIpCgoyMDA0LTA0LTE1IDA1OjI5ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5ub3RpZnkuY29uZjoKCiAgIFJlbW92ZSBleHRyYW5lb3VzICc7JyBpbiBub3RpZmljYXRpb24gZ2VuZXJhdGlvbiByb3V0aW5lIChCdWcgIzg5NTgwMCkKCjIwMDQtMDQtMTUgMDU6MTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFJlbW92ZSBkdXBsaWNhdGUgY29kZSAoQnVnICM5MzQ0MTEpCgoyMDA0LTA0LTE0IDIxOjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgZml4ZWQgY3V0LW4tcGFzdGUgdHlwb3MgcG9pbnRlZCBvdXQgdG8gbWUgYnkgTWlrZSBTLgoKMjAwNC0wNC0xNCAxNzoyNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIC0gc3VwcG9ydCBsb2NhbC9tYXN0ZXIgU05NUHYzIGtleSBzZXR0aW5ncyBkaXJlY3RseQogICAtIGhhdmUgZ2V0dGFibGUoKSBwYXJzZSBpbmRleGVzIG91dCBvZiB0aGUgT0lEIHdoZW4gTmV0U05NUDo6T0lEIGlzIGF2YWlsYWJsZQogICAgIC0gbm90IGV4dGVuc2l2ZWx5IHRlc3RlZCB5ZXQuCgoyMDA0LTA0LTE0IDE1OjQxICBzbGlmCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgU3BlY2lmeSBjb3JyZWN0IGRlZmF1bHQgdmFsdWUgZm9yIE1JQkRJUlMuCgoyMDA0LTA0LTE0IDE1OjMyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICBTdXBwb3J0IGZvciBMaW51eCAyLjYgaW5jbCBTb2Z0SVJRIENQVSBzdGF0ZQoKMjAwNC0wNC0xNCAxNToyOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgT3ZlcmhhdWwgdG8gcmVtb3ZlIGZpeGVkIHRhYmxlIHNpemUgYW5kIHN1cHBvcnQgTGludXggMi42IGtlcm5lbAoKMjAwNC0wNC0xNCAxNToyMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X2hwdXguYywgdm1zdGF0X3NvbGFyaXMyLmMKOgoKICAgQ2xlYW4gdXAgY29tbWVudHMgbWlzaGFuZGxlZCBueSBpbmRlbnQKCjIwMDQtMDQtMTQgMTQ6NDkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXB2My5jOgoKICAgQWRkZWQgc3VwcG9ydCB0byB0aGUgY3JlYXRlVXNlciBkaXJlY3RpdmUgZm9yIHNwZWNpZnlpbmcgbWFudWFsIGxvY2FsCiAgIG9yIG1hc3RlciBrZXlzIHJhdGhlciB0aGFuIHJlbHlpbmcgb24gcGFzc3dvcmQgZGVyaXZhdGlvbnMuCgoyMDA0LTA0LTE0IDEzOjIxICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICBudWxsIGNoZWNrIGJlZm9yZSB1c2luZyBwb2ludGVyCgoyMDA0LTA0LTE0IDEzOjExICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgbmV3IHNubXAuY29uZiB0b2tlbnMgdG8gZGlyZWN0bHkgc2V0IFNOTVB2MyBoZXgga2V5cwoKMjAwNC0wNC0xNCAxMjoyNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsCiAgICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgICBzbm1wbGliL3NubXB2My5jOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgbmV3IHNubXAuY29uZiB0b2tlbnMgdG8gZGlyZWN0bHkgc2V0IFNOTVB2MyBoZXgga2V5cwoKMjAwNC0wNC0xNCAwOTo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcHYzLmMsIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgZGlyZWN0bHkgc3BlY2lmeWluZyBTTk1QdjMgaGV4IGtleXMgdXNpbmcgbmV3IGZsYWdzICgtM1ttTWtLXSkKCjIwMDQtMDQtMTQgMDg6MjQgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBuZXcgY29uZmlndXJlIGZvciBjb25maWd1cmUuaW4KCjIwMDQtMDQtMTQgMDg6MjMgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBtb3JlIGRlYnVnOyBzaW1wbGlmeSB0d28gY29uZmxpY3QgdGVzdHMgaW50byBvbmU7IHJldmVydCBjb25mbGljdCBtZXNzYWdlcwogICBiYWNrIHRvIHdhcm5pbmcsIGJ1dCBhZGQgb2Jub3hpb3VzIHdhcm5pbmcgdG8gc3VtbWFyeSBjYWNoZQoKMjAwNC0wNC0xNCAwMzoyNSAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvYnVsa3dhbGsudDoKCiAgIEEgbm9uLXplcm8gcmVwZWF0IGNvdW50IHdpdGggbm8gbm9uLXJlcGVhdGluZyB2YXJiaW5kcyBjb25mdXNlcyB0aGUKICAgcGVybCAnYnVsa3dhbGsnIHJvdXRpbmUuICAgVGhpcyBzaG91bGQgcmVhbGx5IGJlIGZpeGVkIHByb3Blcmx5LAogICBidXQgdGhpcyBhdCBsZWFzdCBhbGxvd3MgdGhlIHJlc3Qgb2YgdGhlIHRlc3RzIHRvIHJ1biBzdWNjZXNzZnVsbHkuCgoyMDA0LTA0LTE0IDAzOjE1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgU3VwcG9ydCBwZXItbG9naGFuZGxlciBzaHV0ZG93biBwcm9jZXNzaW5nIGluICdzbm1wX2Rpc2FibGVfbG9nJy4KICAgVGhpcyBzaG91bGQgYWxsb3cgbG9nZmlsZXMgdG8gYmUgcm90YXRlZCBwcm9wZXJseS4KCiAgIEhvd2V2ZXIsIEknbSBub3QgY29udmluY2VkIHRoYXQgdGhlICdlbmFibGVkJyBmbGFnIGlzIGJlaW5nIHVzZWQKICAgY29uc2lzdGVudGx5LCBwYXJ0aWN1bGFybHkgYnkgb3RoZXIgc3R5bGVzIG9mIGxvZ2dpbmcgY29uZmlndXJhdGlvbi4KICAgU29tZSBjbGVhbnVwIHdvcmsgaXMgcHJvYmFibHkgbmVlZGVkLgoKMjAwNC0wNC0xNCAwMzowOSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYwo6CgogICBTdXBwb3J0ICIwMTowMjowMzowNDowNTowNiIgc3R5bGUgaGV4IG91dHB1dCAtIGkuZS4gbGVhZGluZyAwJ3MKICAgb24gc2luZ2xlLWRpZ2l0IGhleCB2YWx1ZXMuICAoU3VnZ2VzdGVkIGJ5IEdsZW5uIEFuZHJld3MpCgoyMDA0LTA0LTE0IDAzOjA2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcGFyc2UuaCwgc25tcGxpYi9taWIuYywKICAgICBzbm1wbGliL3BhcnNlLmM6CgogICBJZGVudGlmeSB3aGljaCBNSUIgbW9kdWxlcyBhcmUgcHJlc2VudCBpbiB0aGUgTUlCRklMRVMgbGlzdCBiZWZvcmUKICAgc3RhcnRpbmcgdG8gbG9hZCBhbnl0aGluZy4gICBUaGlzIGFsbG93cyBJTVBPUlQgc3RhdGVtZW50cyB0byB3b3JrCiAgIGNvcnJlY3RseSwgcmVnYXJkbGVzcyBvZiB0aGUgb3JkZXIgaW4gd2hpY2ggc3VjaCBmaWxlcyBhcHBlYXIuCgoyMDA0LTA0LTE0IDAyOjUzICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS86IGFpeC5oLCBic2QuaCwgY3lnd2luLmgKLCBkeW5peC5oLCBpcml4LmgsIG1pbmd3MzIuaCwgb3NmNS5oCiwgc3Vub3MuaCwgc3ZyNS5oLCBzeXN2LmgsIHVsdHJpeDQuaAo6CgogICBJbmNsdWRlICJnZW5lcmljLmgiIHVzaW5nIHRoZSBmdWxsIG5hbWUsIHJhdGhlciB0aGFuCiAgIHJlbHlpbmcgb24gdGhlIGluY2x1ZGUgcGF0aCBiZWluZyBzZXQgY29ycmVjdGx5LgogICAoU3VnZ2VzdGVkIGJ5IE5hZ2FyYWogTmFyYXlhbmFzd2FteSkKCjIwMDQtMDQtMTQgMDI6NDIgIGR0czEyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICBDYXRjaCBTTk1QdjIgZXhjZXB0aW9uIHZhbHVlcy4KCjIwMDQtMDQtMTQgMDI6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmM6CgogICBBdm9pZCBjcmFzaGluZyB0aGUgYWdlbnQgd2hlbiBiYWNraW5nIG91dCBvZiBhbiBpbnZhbGlkIFNFVCByZXF1ZXN0LgoKMjAwNC0wNC0xNCAwMjozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgQWxsb3cgJ21vbml0b3InIGRpcmVjdGl2ZXMgdG8gc3BlY2lmeSBhIHNpbmdsZSBpbnN0YW5jZSByYXRoZXIgdGhhbgogICBhbHdheXMgbW9uaXRvcmluZyBhbGwgcm93cy4KCjIwMDQtMDQtMTQgMDI6MjggIGR0czEyCgogICAqIEZBUToKCiAgIFVwZGF0ZSBsaXN0IG9mIHN1cHBvcnRlZCBNSUJzLCBhZHZpY2Ugb24gcnVubmluZyBhcyBub24tcm9vdAogICBhbmQgYnJpbmcgaW50byBsaW5lIHdpdGggNS4xLnggYnJhbmNoIHZlcnNpb24uCgoyMDA0LTA0LTEzIDEzOjUwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtY29udGFpbmVyLWNhY2hlZC1kZWZpbmVzLm0yaToKCiAgIHR3ZWFrIGFzc2VydCBjb25kaXRpb24gdG8gYWxsb3cgZm9yIHZhbGlkIGJ1dCBleHBpcmVkIGNhY2hlCgoyMDA0LTA0LTEzIDEzOjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgZml4IGNvbW1lbnQgdHlwbwoKMjAwNC0wNC0xMyAxMjozNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtbWliLmgsIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlLmgKLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2RlZmF1bHQtdGFibGUtaW5ldE5ldFRvTWVkaWFUYWJsZS5tMmQKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlLmMsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZS5oLAogICAgIGlwLW1pYi9pbmV0TmV0VG9NZWRpYVRhYmxlL2luZXROZXRUb01lZGlhVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9kYXRhX2FjY2Vzcy5jCiwKICAgICBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcC1taWIvaW5ldE5ldFRvTWVkaWFUYWJsZS9pbmV0TmV0VG9NZWRpYVRhYmxlX2ludGVyZmFjZS5jCiwgaXAtbWliL2luZXROZXRUb01lZGlhVGFibGUvaW5ldE5ldFRvTWVkaWFUYWJsZV9pbnRlcmZhY2UuaAo6CgogICBuZXcgaW5ldE5ldFRvTWVkaWFUYWJsZQoKMjAwNC0wNC0xMyAxMjozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy86IGFycC5oLCBhcnBfY29tbW9uLmMKLCBhcnBfbGludXguYywgaXBhZGRyZXNzX2lvY3RsLmg6CgogICBuZXcgZmlsZXMKCjIwMDQtMDQtMTMgMTE6NDQgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMKOgoKICAgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDQtMDQtMTMgMTE6NDMgIHJzdG9yeQoKICAgKgogICAgIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2luZXRDaWRyUm91dGVUYWJsZS9pbmV0Q2lkclJvdXRlVGFibGUuYwo6CgogICB1c2UgYWNjZXNzIHJvdXRpbmUgdG8gYWxsb2NhdGUvZnJlZSByb3V0ZSBlbnRyaWVzCgoyMDA0LTA0LTEzIDExOjQyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlL2lmWFRhYmxlLmM6CgogICB1c2UgYWNjZXNzIHJvdXRpbmUgdG8gYWxsb2NhdGUvZnJlZSBpbnRlcmZhY2UgZW50cmllcwoKMjAwNC0wNC0xMyAxMTo0MSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICBkZWZhdWx0IGFkbWluL29wZXIgc3RhdHVzIHRvIHVwCgoyMDA0LTA0LTEzIDExOjM5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9kYXRhX2FjY2Vzcy5jOgoKICAgaW52ZXJ0IG9yZGVyIGZvciBjYWNoZSByZWZyZXNoOyBzZXQgbmV3IHByZWxvYWQgZmxhZyBvbiBjYWNoZSB0byBpbml0IGlmSW5kZXgKICAgZW51bSBsaXN0ICh1c2VkIGJ5IG90aGVyIG1vZHVsZXMpOyBzZXQgb3Blcl9zdGF0dXMgZG93biBpZiBpbnRlcmZhY2UgdmFuaXNoZXM7CiAgIG1vcmUgcm9idXN0IGhhbmRsaW5nIG9mIGNvbXBhcmluZy9zd2lwaW5nIHBvaW50ZXJzCgoyMDA0LTA0LTEzIDExOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaDoKCiAgIHJlbW92ZSB1bnVzZWQgbWFwcGluZyBkZWZpbmVzCgoyMDA0LTA0LTEzIDExOjMzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5jOgoKICAgcmVtb3ZlIHVudXNlZCBtYXBwaW5nIGZ1bmN0aW9ucwoKMjAwNC0wNC0xMyAxMTozMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGUuaDoKCiAgIHJldmVydCBleHRlcm5hbCBkZWZpbnRpb24gY2hhbmdlCgoyMDA0LTA0LTEzIDExOjI5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlL2lwQWRkcmVzc1RhYmxlLmM6CgogICB1c2UgYWNjZXNzIHJvdXRpbmUgdG8gYWxsb2NhdGUvZnJlZSBpcGFkZHJlc3NfZW50cnkKCjIwMDQtMDQtMTMgMTE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvOiBpcGFkZHJlc3NfY29tbW9uLmMsCiAgICAgaXBhZGRyZXNzX2lvY3RsLmMsIGlwYWRkcmVzc19saW51eC5jOgoKICAgdHdlYWsgaW50ZXJuYWwgaW5kZXggdXNhZ2U7IHVzZSBuZXQtc25tcCBpZkluZGV4IGJhc2VkIG9uIG5hbWUgaW5zdGVhZCBvZiBpb2N0bAogICBpZl9pbmRleDsgYWRkL3R3ZWFrIGNvbW1lbnRzCgoyMDA0LTA0LTEzIDExOjIzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBuZXcgZmxhZyBmb3IgcHJlbG9hZGluZyBjYWNoZTsgbW92ZSBjYWNoZSBsb2FkL2ZyZWUgdG8gc3RhdGljIHN1YnJvdXRpbmVzIGZvcgogICBjb2RlIHJldXNlOyBhZGQgc29tZSBkZWJ1ZyBtc2dzCgoyMDA0LTA0LTEzIDExOjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9pbnRlcmZhY2UuaDoKCiAgIGFkZCBkZWZpbmVzIGZvciBhZG1pbi9vcGVyIHN0YXR1cyBlbnVtcwoKMjAwNC0wNC0xMyAxMDozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGVudHJpZXMgZm9yIGhhdmVfbWt0aW1lIG5hZCBoYXZlX3N0aW1lCgoyMDA0LTA0LTEzIDEwOjMxICBoYXJkYWtlcgoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICB2ZXJzaW9uIGNoYW5nZS4KCjIwMDQtMDQtMTAgMDU6NTkgIGR0czEyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQ2xvbmluZyBhIHVzZXIgcmVxdWlyZXMgdXNpbmcgdGhlIHVzbVVzZXJTdGF0dXMgY29sdW1uIG9iamVjdC4KCjIwMDQtMDQtMTAgMDU6NTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBlbnRyeSBmcm9tIGxpc3Qgb2YgZGVmYXVsdCBNSUIgbW9kdWxlcy4KCjIwMDQtMDQtMDkgMTg6NTAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgZml4IHR3byBTTk1QX0ZSRUUgY2FuZGlkYXRlcyBpbiB0ZG9tYWluX3VucmVnaXN0ZXIsIGNsZWFyX3Rkb21haW5fbGlzdC4KCjIwMDQtMDQtMDkgMTg6NDcgIHNsaWYKCiAgICogc25tcGxpYi9pbmV0X3B0b24uYzoKCiAgIGZpeCBhIHNpZ24gY29tcGFyZSB3YXJuaW5nLgoKMjAwNC0wNC0wOSAxODozNyAgc2xpZgoKICAgKiB3aW4zMi86IGxpYnNubXAvTWFrZWZpbGUuaW4sIGxpYnNubXAvbGlic25tcC5kc3AsCiAgICAgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGFkZCBJUHY2IHRyYW5zcG9ydHMgdG8gbXN2YysrIGJ1aWxkcy4KCjIwMDQtMDQtMDkgMTg6MjcgIHNsaWYKCiAgICogcGVybC9TTk1QL3QvZ2V0LnQ6CgogICBkb24ndCByZXF1aXJlIGludGVyZmFjZSBsYXllciBvZiBhZ2VudCBpbiBvcmRlciB0byBwYXNzIHRoZXNlIHRlc3RzLgoKMjAwNC0wNC0wOSAxODoyNCAgc2xpZgoKICAgKiB3aW4zMi9saWJuZXRzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICB1bmRvIGxhc3QgY2hhbmdlIHRvIHJlc3RvcmUgcHJvcGVyIGNvbnN0cnVjdGlvbiBvZiBQZXJsIG1vZHVsZXMuCgoyMDA0LTA0LTA4IDIxOjExICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgIG1hdGNoIHNubXBzZXQgb3V0cHV0IHRvIGZpeCBidWcgWzkxOTI2N10gdGVzdG51bSAzNCBUMTIycHJveHlzZXRmYWlsIGZhaWxpbmcKCjIwMDQtMDQtMDggMjA6MjUgIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGNoYW5nZSB1c2FnZSBjb21tZW50IGZvciAiLVhNIiB0byBtYXRjaCBpdHMgZnVuY3Rpb24KCjIwMDQtMDQtMDggMjA6MTkgIHNsaWYKCiAgICogd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgZG8gbm90IGJ1aWxkIHNubXB0cmFwZC5vYmogYXMgcGFydCBvZiBuZXRzbm1wdHJhcGQgbGlicmFyeSAoTVNWQysrIGJ1aWxkKS4KCjIwMDQtMDQtMDggMjA6MTcgIHNsaWYKCiAgICogd2luMzIvbGliaGVscGVycy86IE1ha2VmaWxlLmluLCBsaWJoZWxwZXJzLmRzcDoKCiAgIGFkZCB0YWJsZV9jb250YWluZXIub2JqIHRvIGxpc3Qgb2Ygb2JqZWN0cyB0byBiZSBidWlsdCB1c2luZyBNU1ZDKysKCjIwMDQtMDQtMDggMjA6MTIgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOiBbIDkxODk0OCBdIGZpeCBjeWd3aW4gY29uZmlnIHByb2JsZW0KCjIwMDQtMDQtMDggMjA6MDcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIGFwcGx5IG5iYSdzIEZlYi4yMDA0IHB1dHV0bGluZSBmaXhlcyB0byBtYWluIGJyYW5jaC4KCjIwMDQtMDQtMDggMTU6NTQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIFVzZSAtTGYgYW5kIC1MZiBpbiB0aGUgbWFpbiB0cnVuayB0byBtYXRjaCB0aGUgcHJvcGVyIGNvZGUgdXNlCgoyMDA0LTA0LTA4IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgU3VwcG9ydCBmb3IgdGhlIC1ydyBmbGFnIHRvIHRoZSBvdmVycmlkZSB0b2tlbiBhbGxvd2luZyByZWFkL3dyaXRlCiAgIGFjY2VzcyB0byB0aGUgYm9ndXMgbWliIG9iamVjdHMuCgoyMDA0LTA0LTA4IDEzOjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZW51bSBsaXN0cyBmb3IgdW5zaWduZWQgYW5kIGJpdCBzdHJpbmdzIHRvIHJlbW92ZSBkdXBsaWNhdGUgdHlwZXMKCjIwMDQtMDQtMDcgMTk6NTAgIHNsaWYKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBURVNUQ09ORi5zaDoKCiAgIHBhdGNoIFs5MTc2NDZdIHRlc3QgdXNpbmcgaW5zdGFsbGVkIE1JQnMgZmlyc3QKCjIwMDQtMDQtMDcgMTU6NTcgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggbmV3IGNvbmZpZy5pbgoKMjAwNC0wNC0wNyAxNTo1NSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFkZCBsb3RzIG9mIGRlYnVnIHRvIG1vZHVsZSBwcm9jZXNzaW5nOyB1c2UgbmV3IHZhciBmb3IgZXhjbHVkZWQgbW9kdWxlczsgbWFrZQogICBjb25mbGljdHMgZXJyb3JzIGluc3RlYWQgb2Ygd2FybmluZ3M7IGRvbid0IHRyeSB0byByZS1wcm9jZXNzIGEgc3JjIG9ubHkgbW9kdWxlCgoyMDA0LTA0LTA3IDE1OjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgdHlwbyBpbiBjb21tZW50cwoKMjAwNC0wNC0wNyAxNTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIG9ubHkgZ2VuIHJlbGVhc2UgdW5kbyBjb2RlIGlmIHNldHRhYmxlCgoyMDA0LTA0LTA3IDE1OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy9yb3V0ZS5oOgoKICAgdHdlYWsgY29tbWVudHMKCjIwMDQtMDQtMDcgMTU6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvLmN2c2lnbm9yZToKCiAgIGZpbGVzIHRvIGlnbm9yZQoKMjAwNC0wNC0wNyAxNTo0NiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlhUYWJsZS9pZlhUYWJsZV9pbnRlcmZhY2UuYzoKCiAgIHJlbW92ZSB1bnVzZWQvdW5kZWZpbmVkIHZhcnMKCjIwMDQtMDQtMDcgMTU6NDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC86IGlmLW1pYi5oLCBpcC1mb3J3YXJkLW1pYi5oOgoKICAgZml4IGNvbmZpZ19yZXF1aXJlIHBhdGhzCgoyMDA0LTA0LTA3IDE1OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmVGFibGUvaWZUYWJsZS5oOgoKICAgY29uZmlnX2V4Y2x1ZGUgbWliSUkvaW50ZXJmYWNlczsgdHdlYWsgZXh0ZXJuYWwgb2lkIGRlZgoKMjAwNC0wNC0wNyAxNTo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9kYXRhX2FjY2Vzcy9pbnRlcmZhY2VfY29tbW9uLmM6CgogICByZW1vdmUgcmVmZXJlbmNlcyB0byBpZlRhYmxlCgoyMDA0LTA0LTA3IDE1OjM4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtbWliL2lwQWRkcmVzc1RhYmxlLy5jdnNpZ25vcmU6CgogICBmaWxlcyB0byBpZ25vcmUKCjIwMDQtMDQtMDcgMTU6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvaXBBZGRyZXNzVGFibGUvOgogICAgIGRlZmF1bHQtdGFibGUtaXBBZGRyZXNzVGFibGUubTJkLCBpcEFkZHJlc3NUYWJsZS5jLAogICAgIGlwQWRkcmVzc1RhYmxlLmgsIGlwQWRkcmVzc1RhYmxlX2NvbnN0YW50cy5oLAogICAgIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmMsIGlwQWRkcmVzc1RhYmxlX2RhdGFfYWNjZXNzLmgKLCBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpcEFkZHJlc3NUYWJsZV9pbnRlcmZhY2UuaDoKCiAgIG5ldyBNRkQgaXBBZGRyZXNzVGFibGUKCjIwMDQtMDQtMDcgMTU6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzLmgsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1taWIvZGF0YV9hY2Nlc3MvaXBhZGRyZXNzX2lvY3RsLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvaXAtbWliL2RhdGFfYWNjZXNzL2lwYWRkcmVzc19saW51eC5jLAogICAgIGFnZW50L21pYmdyb3VwL2lwLW1pYi9kYXRhX2FjY2Vzcy9pcGFkZHJlc3NfbGludXguaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2RhdGFfYWNjZXNzL2lwYWRkcmVzcy5oOgoKICAgaXBhZGRyZXNzIGRhdGEgYWNjZXNzICh2NCAmIHY2KQoKMjAwNC0wNC0wNyAxNToyOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaXAtbWliLmgsIGlwLW1pYi9pcEFkZHJlc3NUYWJsZS5oOgoKICAgbmV3IGNvbmZpZyBtb2R1bGVzCgoyMDA0LTA0LTA3IDA2OjM4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlIGEgc3VwZXJmbHVvdXMgdHJhaWxpbmcgY29tbWEgKGJ1ZyAjOTMwNzA4KQoKMjAwNC0wNC0wNyAwMzoyMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBSb3V0aW5lcyB0byBpbmRpY2F0ZSB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gYSBkYXRhLWhlbHBlci1iYXNlZCB0YWJsZQoKMjAwNC0wNC0wNyAwMjoxMyAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBDQVBUVVJFIHJldHVybnMgZXhpdCBjb2RlIGZyb20gY29tbWFuZCB0aGF0IHdhcyBydW4uCgoyMDA0LTA0LTA2IDIzOjMzICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIHBhdGNoIFs5MzA4ODBdIGRvbid0IGJ1aWxkIENNVSBjb21wYXRpYmxlIGZ1bmN0aW9ucyBvbiB3aW4zMgoKMjAwNC0wNC0wNiAyMzoxOSAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHBlcmwvVHJhcFJlY2VpdmVyL01ha2VmaWxlLlBMLAogICAgIHdpbjMyL0NvbmZpZ3VyZSwgd2luMzIvTWFrZWZpbGUuaW4sIHdpbjMyL2xpYnNkbGwuZHN3Ciwgd2luMzIvd2luMzIuZHN3LCB3aW4zMi93aW4zMnNkay5kc3csCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkLy5jdnNpZ25vcmUsCiAgICAgd2luMzIvbGlibmV0c25tcHRyYXBkL01ha2VmaWxlLmluLAogICAgIHdpbjMyL2xpYm5ldHNubXB0cmFwZC9saWJuZXRzbm1wdHJhcGQuZHNwLAogICAgIHdpbjMyL3NubXB0cmFwZC9NYWtlZmlsZS5pbiwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKOgoKICAgcGF0Y2ggWzkxNTYxNV0gUGVybCBUcmFwUmVjZWl2ZXIgZG9lcyBub3QgY29tcGlsZSBvbiBXaW4zMiBNU1ZDCiAgIGFsc28gZml4ZXMgYnVnIFs4OTYwMTJdIHdpbjMyIFBlcmwgYnVpbGQgZGllcyBhdCBUcmFwUmVjZWl2ZXIKCjIwMDQtMDQtMDYgMjE6NTkgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgZml4IFs5MDc3MTZdIHdpbjMyIGFnZW50IHNob3dzIHRjcCx1ZHAgY29ubmVjdCBPSURzIGluIGhvc3QgYnl0ZSBvcmRlcgoKMjAwNC0wNC0wNiAxNzozNSAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBwYXRjaCBbOTE5MTIyXSB0ZXN0IHNob3VsZCBhbGxvdyB0aW1lIGZvciBwcm9ncmFtcyB0byBzZXR0bGUKCjIwMDQtMDQtMDYgMTc6MzQgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgcGF0Y2ggWzkxOTExNF0gcHJlc2VydmUgdGVzdCByZXN1bHQgd2hlbiBzdG9wcGluZwoKMjAwNC0wNC0wNiAxNzozMiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBwYXRjaCBbOTE5MTA1XSBiZXR0ZXIgcGlkIGNoZWNrCgoyMDA0LTA0LTA2IDEwOjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSBzdGRpbnQsIGlmIGF2YWlsYWJsZQoKMjAwNC0wNC0wNiAwOTo0NiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgUmVnaXN0ZXIgbmV3IEFQSSBtb2R1bGVzIHVzaW5nIHRoZSBkZWZhdWx0IHByaW9yaXR5ICgxMjcpCiAgIGFuZCBwcm92aWRlIGFuIEFQSSBmb3IgdW5yZWdpc3RlcmluZyB0aGVtIGFnYWluLgoKMjAwNC0wNC0wNSAxNjowNCAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZXZlcnNlIHBhdGNoLXRlc3QtZGVwcmVjYXRlZC1vcHRpb25zIHRvIHBlcm1pdCB0ZXN0aW5nIHZlcnNpb25zIGJlZm9yZSA1LjEuCgoyMDA0LTA0LTA0IDExOjE3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS86CiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmM6CgogICBkb24ndCBzaGFyZSBjYWNoZSB3L2luZXRDaWRyUm91dGUsIHdoaWNoIGNhbid0IHdvcmssIHNpbmNlIGluZGV4ZXMgZG9uJ3QgbWF0Y2gKCjIwMDQtMDQtMDQgMTE6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvaWZYVGFibGUvOiBpZlhUYWJsZS5oLAogICAgIGlmWFRhYmxlX2RhdGFfYWNjZXNzLmMsIGlmWFRhYmxlX2ludGVyZmFjZS5jOgoKICAgc2hhcmUgZGF0YSBzdHJ1Y3R1cmVzL2NhY2hlIHcvaWZUYWJsZSBpZiBlbmFibGVkCgoyMDA0LTA0LTA0IDExOjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaWYtbWliL2lmWFRhYmxlLzogZGVmYXVsdC10YWJsZS1pZlhUYWJsZS5tMmQKLCBpZlhUYWJsZS5jLCBpZlhUYWJsZS5oLCBpZlhUYWJsZV9pbnRlcmZhY2UuaAo6CgogICB1cGRhdGUgdG8gdXNlIG5ldyBpbnRlcmZhY2UgZGF0YSBhY2Nlc3MKCjIwMDQtMDQtMDQgMTA6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywKICAgICBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3Mvcm91dGUuaDoKCiAgIHVwZGF0ZSB0byBzdXBwb3J0IGluZXRDaWRyUm91dGVUYWJsZQoKMjAwNC0wNC0wNCAxMDo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliLmg6CgogICBhZGQgaW5ldENpZHJSb3V0ZVRhYmxlCgoyMDA0LTA0LTA0IDEwOjU3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaW5ldENpZHJSb3V0ZVRhYmxlLzoKICAgICBpbmV0Q2lkclJvdXRlVGFibGUuYywgaW5ldENpZHJSb3V0ZVRhYmxlLmgsCiAgICAgaW5ldENpZHJSb3V0ZVRhYmxlX2NvbnN0YW50cy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5jLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGluZXRDaWRyUm91dGVUYWJsZV9pbnRlcmZhY2UuYywKICAgICBpbmV0Q2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgsIC5jdnNpZ25vcmUsCiAgICAgZGVmYXVsdC10YWJsZS1pbmV0Q2lkclJvdXRlVGFibGUubTJkOgoKICAgbmV3IGluZXRDaWRyUm91dGVUYWJsZS4gb25seSBkb2VzIGlwdjQgc28gZmFyLgoKMjAwNC0wNC0wNCAwNzoxNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvOgogICAgIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jOgoKICAgc2hhcmUgY2FjaGUgdy9pbmV0Q2lkclJvdXRlVGFibGUsIGlmIGl0IGlzIGVuYWJsZWQKCjIwMDQtMDQtMDQgMDc6MDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICB1c2UgdW51c2VkIHZhcgoKMjAwNC0wNC0wNCAwNzowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIGZpeCBtaXNzZWQgY2FzZSBmb3IgYWxsb2NhdGUgcGFybTsgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDQtMDQtMDQgMDc6MDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICBmaXggbWlzc2VkIGNhc2UgZm9yIGFsbG9jYXRlIHBhcm0KCjIwMDQtMDQtMDQgMDc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgYWRkIGRlYnVnCgoyMDA0LTA0LTAzIDA1OjE1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBmaXggYnVnIDkyODQ4MSAtIGNvbnNpc3RlbmN5IGluIHZhY21fdmFycy5jCgoyMDA0LTA0LTAyIDE5OjAyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvaWZUYWJsZS5oLCBpZi1taWIvaWZYVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pbmV0Q2lkclJvdXRlVGFibGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLmg6CgogICBjb25maWd1cmVfcmVxdWlyZSBmaWxlcyBmb3IgaW5kaXZpZHVhbCBtb2R1bGVzCgoyMDA0LTA0LTAyIDEyOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGRlZmF1bHQgdG8gbmV0c25tcF9pbmRleCBjb21wYXJlIGlmIG5vIGNvbXBhcmUgcHJvdmlkZWQKCjIwMDQtMDQtMDIgMTI6NTEgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY211X2NvbXBhdC5jLCBzbm1wX3ZlcnNpb24uYzoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKCjIwMDQtMDQtMDIgMTI6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICBuZXcgc3RhdGljIGxvY2sgdmFyIHRvIGRldGVjdCB3aGVuIGEgY2FsbGJhY2sgaXMgYWRkZWQvcmVtb3ZlZCBkdXJpbmcgY2FsbGJhY2sKICAgcHJvY2Vzc2luZzsgZG9uJ3QgY2FsbCBmcmVlIG9uIGNsaWVudCBhcmcgb2YgY2FsbGJhY2sgdy9OVUxMIGNhbGxiYWNrIHB0cgogICAoaS5lLiBvbmUgdGhhdCB3YXMgcmVtb3ZlZCB3aGlsZSBjYWxsYmFja3Mgd2VyZSBiZWluZyBwcm9jZXNzZWQpCgoyMDA0LTA0LTAyIDEyOjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtdXBkYXRlOgoKICAgbWFrZSB0ZW1wIGRpciBuYW1lcyBjb25maWd1cmVhYmxlLCB3L2RlZmF1bHRzIG5vdyBwcmVmaXhlZCB3LycuJzsgdHdlYWsgZGlmZgogICBleGNsdWRlIHBhdHRlcm5zOyBvdGhlciBtaXNjIHR3ZWFrcwoKMjAwNC0wNC0wMiAxMjozNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oOgoKICAgZml4IG1hY3JvcyB0byBiZSBzYWZlbHkgdXNlYWJsZSBhcyBhIHNpbmdsZSBzdGF0ZW1lbnQ7IG5ldyBTTk1QX1NXSVBFX01FTSBtYWNybwoKMjAwNC0wNC0wMiAwODoyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBuZXcgY29uZmlnLmguaW4gdG8gbWF0Y2ggYWNjb25maWcuaCAoYXV0b2hlYWRlciBoYWRuJ3QgYmVlbiBydW4gaW4gYSB3aGlsZSk6CiAgICAgIHBja3MsIGNyb3B0eWtpLCBjb25maWdfZXhjbHVkZSwgYWdlbnR4IGRvbWFpbiBzb2NrZXQsIGNwcHdyYXAgbWFjcm8KCjIwMDQtMDQtMDIgMDg6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIHJlZHVjZSByZWR1bmRhbmN5CgoyMDA0LTA0LTAyIDA4OjAyICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgYWRkIGFzc2VydHMgb24gaWxsZWdhbCBoYW5kbGVyIGNhbGxzCgoyMDA0LTA0LTAyIDA2OjQ2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRml4IGluY2x1c2lvbiBvZiB1dGlsaXRpZXMvZXhlY3V0ZS5oLCBzaW5jZSBSb2JlcnQncyBNYWtlZmlsZSBjaGFuZ2VzCiAgIGJyb2tlIHRoZSBwYXRoIGxvb2t1cHMuCgoyMDA0LTA0LTAxIDIyOjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIG1ha2UgZ2V0dGFibGUgdXNlIGdldGJ1bGsgd2hlbiBwb3NzaWJsZQoKMjAwNC0wNC0wMSAxOTo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgoKMjAwNC0wNC0wMSAxOTozMiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbW92ZSBWUEFUSCB0byBpbmRpdmlkdWFsIE1ha2VmaWxlLmluIGZpbGVzOyBuZXcgbWFrZWZpbGVjaGVjayB0YXJnZXQgdG8gY2hlY2sKICAgZm9yIGdudSBtYWtlIGNvbnN0cnVjdHM7IG5ldyAnY2hlY2tzJyB0YXJnZXQgcnVucyBjaGVja3MgZm9yIGNvbW1lbnQvbWFrZWZpbGUKCjIwMDQtMDQtMDEgMTk6MjkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgZW1wdHkgZGVmaW5lIGZvciBjb25maWdfZXhjbHVkZTsgbmV3IE5FVFNOTVBfQ1BQX1dSQVAgbWFjcm9zCgoyMDA0LTA0LTAxIDE5OjI3ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgbmV3IGNvbmZpZ19leGNsdWRlOyBjb25maWdfcmVxdWlyZSB0d2Vha3M6CiAgICAgICBkb24ndCBwcm9jZXNzIHRoZSBzYW1lIG1vZHVsZSB0d2ljZTsgYWxsb3cgYyBmaWxlIHcvbm8gaGVhZGVyOyBtb3ZlCiAgICAgICBtb2R1bGUgbGlzdCBhZGQsIGNvbmZpZ19sb2FkX21pYiBjaGVjayBpbnNpZGUgaGVhZGVyIGNvbmRpdGlvbmFsCgoyMDA0LTA0LTAxIDE4OjM4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgbmV3IGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWd1cmUuaW4KCjIwMDQtMDQtMDEgMTg6MzcgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLAogICAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluLAogICAgIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbiwKICAgICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgcmV3b3JrIFZQQVRIIHNvIHBlb3BsZSB3aXRoIEdOVSBtYWtlIGNhbiBzaGFyZSBhIHNvdXJjZSBkaXJlY3RvcnkgZm9yIG11bHRpcGxlCiAgIGJ1aWxkIChpbmNsdWRpbmcgb25lIGluIHRoZSBzb3VyY2UgZGlyZWN0b3J5KTsgY29tcGxldGVseSByZXdvcmsgQ1BQRkxBR1MgZm9yIGEKICAgY29tbW9uLCBjb25zaXN0ZW50IG9yZGVyICh0aGF0IGlzIGFsc28gY29ycmVjdCBmb3Igbm9uIHNvdXJjZWRpciBidWlsZHMpCgoyMDA0LTA0LTAxIDE4OjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAtZm9yd2FyZC1taWIvaXBDaWRyUm91dGVUYWJsZS5oOgoKICAgbmV3IGZpbGUKCjIwMDQtMDQtMDEgMTg6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBkZWZhdWx0LXRhYmxlLWlwQ2lkclJvdXRlVGFibGUubTJkLCBpcENpZHJSb3V0ZVRhYmxlLmMKLCBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuYwosIGlwQ2lkclJvdXRlVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5jLCBpcENpZHJSb3V0ZVRhYmxlX2ludGVyZmFjZS5oCjoKCiAgIHVwZGF0ZSBmb3IgbWZkIGdlbmVyYXRlZCBjb2RlIGNoYW5nZXM7IHVwZGF0ZSB0byB1c2UgbmV3IGRhdGEgYWNjZXNzIHN0dWZmOwoKMjAwNC0wNC0wMSAxODoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lmLW1pYi9pZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuYzoKCiAgIHVwZGF0ZSB0byB1c2UgbmV3IGRhdGEgYWNjZXNzIHN0dWZmOyBhZGQgdG9kbyBjb21tZW50cwoKMjAwNC0wNC0wMSAxODoxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogaWYtbWliL2RhdGFfYWNjZXNzLy5jdnNpZ25vcmUsCiAgICAgaWYtbWliL2lmVGFibGUvLmN2c2lnbm9yZSwgaWYtbWliL2lmWFRhYmxlLy5jdnNpZ25vcmUKLCBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy8uY3ZzaWdub3JlLAogICAgIGlwLWZvcndhcmQtbWliL2lwQ2lkclJvdXRlVGFibGUvLmN2c2lnbm9yZToKCiAgIG5ldyBjdnNpbmdvcmUgZmlsZXMKCjIwMDQtMDQtMDEgMTg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2lmVGFibGUuYywKICAgICBpZlRhYmxlL2lmVGFibGUuaCwgaWZYVGFibGUvaWZYVGFibGUuaDoKCiAgIHVwZGF0ZSB0byB1c2UgbmV3IGRhdGEgYWNjZXNzIHN0dWZmCgoyMDA0LTA0LTAxIDE4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlLmgsCiAgICAgaWYtbWliL2RhdGFfYWNjZXNzL2ludGVyZmFjZV9jb21tb24uYywKICAgICBpZi1taWIvZGF0YV9hY2Nlc3MvaW50ZXJmYWNlX2xpbnV4LmMsCiAgICAgaXAtZm9yd2FyZC1taWIvZGF0YV9hY2Nlc3Mvcm91dGUuaCwKICAgICBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9jb21tb24uYywKICAgICBpcC1mb3J3YXJkLW1pYi9kYXRhX2FjY2Vzcy9yb3V0ZV9saW51eC5jOgoKICAgbmV3IGRhdGEgYWNjZXNzIGZpbGVzCgoyMDA0LTA0LTAxIDE4OjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kYXRhX2FjY2Vzcy86IGludGVyZmFjZS5oLCByb3V0ZS5oOgoKICAgbW92ZSBjb25maWdfcmVxdWlyZSBzdHVmZiBiYWNrIGludG8gbWliZ3JvdXAsIHNpbmNlIHRoYXQncyB0aGUgb25seSBwbGFjZQogICBjb25maWd1cmUgd2lsbCBsb29rIGZvciB0aGVtCgoyMDA0LTA0LTAxIDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGNvbG9pZCBzZXR0aW5nICh3YXMgZG9uZSBhYm92ZSBhcyB3ZWxsKQoKMjAwNC0wNC0wMSAxNjo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQW5vdGhlciBpdGVyYXRvciBmaXg6IGluaXRpYWxpemUgYSB2YXJpYWJsZSBwcm9wZXJseSBmb3IgZXZlcnkgcmVxdWVzdAoKMjAwNC0wNC0wMSAxNjoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9hY2Nlc3MvOiBpbnRlcmZhY2UuaCwgcm91dGUuaDoKCiAgIG5ldyBkYXRhIGFjY2VzcyBoZWFkZXJzCgoyMDA0LTA0LTAxIDE1OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBBbm90aGVyIGl0ZXJhdG9yIHByb2JsZW0gd2l0aCBnZXRidWxrJ3M6IG1ha2UgaXQgbm90IHNldCBSRVRSWSBpZiBpdHMgZ29pbmcgdG8gYmUgb3V0IG9mIHNjb3BlIG5leHQgdGltZSBhcm91bmQgc3RpbGwgKD4gbWF4Y29sKQoKMjAwNC0wNC0wMSAwOToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLSBWYXJpb3VzIHBhdGNoZXMgdG8gZml4IGl0ZXJhdG9yIHByb2JsZW1zIHdpdGggbXVsdGlwbGUgdmFyYmluZHMuCgoyMDA0LTAzLTMxIDEyOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIFByb3Blcmx5IHNldCB0aGUgYXV0b19uZXh0IGZsYWcuCgoyMDA0LTAzLTMwIDIxOjIyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIEEgbmV3IGltcGxlbWVudGF0aW9uIG9mIGdldHRhYmxlIHRoYXQgdXNlcyBiZXR0ZXIgc3RydWN0dXJlZCBHRVRORVhUCiAgIHBhY2tldHMgZm9yIGZhc3RlciByZXRyaWV2YWwgYWNyb3NzIHNsb3cgbGlua3MuCiAgICAgLSBnZXRidWxrIG5vdCB5ZXQgdXNlZCwgYnV0IHNob3VsZCBiZS4KCjIwMDQtMDMtMzAgMjE6MTkgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICAtIG1pbm9yIGNoYW5nZXMgdG8gdGhlIGN2czJjbCBjb21tYW5kIGxpbmUgZmxhZ3MKCjIwMDQtMDMtMzAgMjE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zeXN0ZW0uYywgaHJfc3lzdGVtLmg6CgogICBjaGFuZ2Ugc2V0X3NvbGFyaXNfdGltZSB0byBuc19zZXRfdGltZSBhbmQgZW5hYmxlIGl0IG9uIGFueQogICBhcmNoaXRlY3R1cmUgdGhhdCBzdXBwb3J0cyBta3RpbWUoKSBhbmQgc3RpbWUoKQoKMjAwNC0wMy0zMCAyMToxNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3Igc3RpbWUgZnVuY3Rpb25zCgoyMDA0LTAzLTMwIDIxOjE0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSB1bmRlZiBzc2l6ZV90CgoyMDA0LTAzLTMwIDE3OjA2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICByZW1vdmUgY29tbWVudGVkIGFuZCB1bnVzZWQgdmFyaWFibGVzLiBmbGFnIHN0YXRpYyB2YXJpYWJsZSBhcyBwcm9ibGVtIGZvciB0aHJlYWRzLgoKMjAwNC0wMy0zMCAxNjo1NiAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIG1pbGRseSBlbmZvcmNlIHJ1bm5pbmcgZnJvbSBiYXNlIHNvdXJjZSBkaXJlY3RvcnkuCgoyMDA0LTAzLTMwIDE2OjUzICBzbGlmCgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaDoKCiAgIGluaXQgZXhhbXBsZXMgbW9kdWxlcwoKMjAwNC0wMy0zMCAxMDo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBpbmNsdWRlIHByZXZpb3VzbHktYnJva2VuIHRlc3RzIGFnYWluCgoyMDA0LTAzLTMwIDEwOjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeCBhIHJlYWxseSBvbGQgYW5kIGFubm95aW5nIGJ1ZzogdXNlIHNldF9ib29sZWFuIGluc3RlYWQgb2YgdG9nZ2xlX2Jvb2xlYW4gZm9yIHRlbGxpbmcgdGhlIGxpYnJhcnkgd2hlbiB0byByZXBsYWNlIG9sZCBNSUJzIHdoaWxlIHBhcnNpbmcuICBBZmZlY3RlZCBhIGJ1bmNoIG9mIHN0dWZmIGluIG9kZCB3YXlzLgoKMjAwNC0wMy0zMCAwNTowMSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBOZXcgbG9nZ2luZyBvcHRpb24gJy1MbicgdG8gZXhwbGljaXRseSB0dXJuIG9mZiBsb2dnaW5nCgoyMDA0LTAzLTI5IDIwOjIwICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpZi1taWIuaCwgaXAtZm9yd2FyZC1taWIuaDoKCiAgIGNvbmZpZy1yZXF1aXJlIGhlYWRlcnMKCjIwMDQtMDMtMjkgMjA6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pZi1taWIvOiBpZlRhYmxlL2RlZmF1bHQtdGFibGUtaWZUYWJsZS5tMmQsCiAgICAgaWZUYWJsZS9pZlRhYmxlLmMsIGlmVGFibGUvaWZUYWJsZS5oLAogICAgIGlmVGFibGUvaWZUYWJsZV9jb25zdGFudHMuaCwgaWZUYWJsZS9pZlRhYmxlX2RhdGFfYWNjZXNzLmMKLCBpZlRhYmxlL2lmVGFibGVfZGF0YV9hY2Nlc3MuaCwKICAgICBpZlRhYmxlL2lmVGFibGVfaW50ZXJmYWNlLmMsIGlmVGFibGUvaWZUYWJsZV9pbnRlcmZhY2UuaAosIGlmWFRhYmxlL2RlZmF1bHQtdGFibGUtaWZYVGFibGUubTJkLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlLmMsIGlmWFRhYmxlL2lmWFRhYmxlLmgsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfY29uc3RhbnRzLmgsCiAgICAgaWZYVGFibGUvaWZYVGFibGVfZGF0YV9hY2Nlc3MuYywKICAgICBpZlhUYWJsZS9pZlhUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5jLAogICAgIGlmWFRhYmxlL2lmWFRhYmxlX2ludGVyZmFjZS5oOgoKICAgbmV3IGltcGxlbWVudGF0aW9ucyBvZiBpZlRhYmxlIGFuZCBpZlhUYWJsZSwgYmFzZWQgb24gZ2VuZXJhdGVkIGNvZGUgZnJvbQogICBtaWIyYyBNRkQgKyBjb250YWluZXItY2FjaGVkIGNvbmYgZmlsZXMKCjIwMDQtMDMtMjkgMTY6MjggIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBmaXggc3BlbGwgQWNrbm93bGVkZ2VtZW50cywgYWRkIGJsYW5rIGJlZm9yZSA9Y3V0IHNvIHRoYXQgaXQgd2lsbCBiZSBwYXJzZWQgY29ycmVjdGx5LgoKMjAwNC0wMy0yOSAxNTo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHVzZSB1bnVzZWQgdmFycwoKMjAwNC0wMy0yOSAxNTo0MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB0d2VhayBjb21tZW50CgoyMDA0LTAzLTI5IDE1OjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBzbGlnaHQgcmUtb3JnOyBpbmNsdWRlIChjb21tZW50ZWQgb3V0KSBnbnUgbWFrZSBzdHVmZgoKMjAwNC0wMy0yOSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHJld29yayBkYXRhX2NvbnRleHQgc28gd2UgZG9uJ3QgdXNlIGEgdHlwZWRlZiB0byBhIHBvaW50ZXIKICAgKGUuZy4gdHlwZWRlZiB4KiB4X2RhdGEpOyB1c2UgdW51c2VkIHZhcnM7IGFsbG93IHVzZXIgdG8gcGFzcyBleGlzdGluZyBkYXRhCiAgIHB0ciB3aGVuIGNyZWF0aW5nIHJvdyBjb250ZXh0OyBzZXQgdmFsX2xlbiB0byBidWYgc2l6ZSBpZmYgbm90IGFscmVhZHkgc2V0CgoyMDA0LTAzLTI5IDE1OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtYWNjZXNzLm0yYywgbWZkLWRhdGEtZ2V0Lm0yYwo6CgogICBtb3ZlIHRhYmxlIGluZGV4IGZ1bmN0aW9ucyB0byBkYXRhLWdldDsgaW5jbHVkZSBkYXRhX2FjY2VzcyBoZWFkZXIKCjIwMDQtMDMtMjkgMTU6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLWNvbnRhaW5lci1jYWNoZWQtZGVmaW5lcy5tMmkKLCBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWRlZmluZXMubTJpOgoKICAgcmV3b3JrIGRhdGFfY29udGV4dCBzbyB3ZSBkb24ndCB1c2UgYSB0eXBlZGVmIHRvIGEgcG9pbnRlcgogICAoZS5nLiB0eXBlZGVmIHgqIHhfZGF0YSk7IHR3ZWFrIG0yY19wcm9jZXNpbmcgdHlwZTsgcmVtb3ZlIHVudXNlZCB2YXIKCjIwMDQtMDMtMjkgMTU6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjOgoKICAgdHdlYWsgbTJjX3Byb2Nlc3NpbmdfdHlwZQoKMjAwNC0wMy0yOSAxNToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHJld29yayBkYXRhX2NvbnRleHQgc28gd2UgZG9uJ3QgdXNlIGEgdHlwZWRlZiB0byBhIHBvaW50ZXIKICAgKGUuZy4gdHlwZWRlZiB4KiB4X2RhdGEpOyBpbmNsdWRlIG1pYl9tb2R1bGVzIGhlYWRlcjsgdHdlYWsgbTJjX3Byb2Nlc3NpbmdfdHlwZQoKMjAwNC0wMy0yOSAxNToyNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmksCiAgICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBtMmNfc2V0dXBfdGFibGUubTJpOgoKICAgcmV3b3JrIGRhdGFfY29udGV4dCBzbyB3ZSBkb24ndCB1c2UgYSB0eXBlZGVmIHRvIGEgcG9pbnRlcgogICAoZS5nLiB0eXBlZGVmIHgqIHhfZGF0YSkKCjIwMDQtMDMtMjkgMTQ6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBtYWtlIHBhcnNlX29uZV9vaWRfaW5kZXggcHJvcGVybHkgZGVjb2RlIElQIGFkZHJlc3NlcyBpbiB0aGUgcmlnaHQgYnl0ZSBvcmRlci4KCjIwMDQtMDMtMjkgMTI6NTggIHNsaWYKCiAgICogd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgaW5pdCBleGFtcGxlcyBtb2R1bGVzCgoyMDA0LTAzLTI5IDA5OjE5ICBzbGlmCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTEwYWdlbnR4Z2V0LCBUMTExYWdlbnR4c2V0LAogICAgIFQxMTJhZ2VudHhzZXRmYWlsLCBUMTEzYWdlbnR4dHJhcDoKCiAgIHBhdGNoIFs5MTg4MzhdIHRlc3QgYWdlbnR4IHVzaW5nIFRDUCBzb2NrZXRzIC0gaWZmIHRyYW5zcG9ydCBub3QgInVuaXgiCgoyMDA0LTAzLTI5IDA3OjU0ICByc3RvcnkKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHN5bmMgdy81LjEuMSAobW92ZSB2YXIgZGVjbHMgdG8gdG9wIG9mIGZ1bmN0aW9uYWwgYmxvY2spCgoyMDA0LTAzLTI2IDA4OjQxICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIGFwcGx5IHBhdGNoICM5MjAyMzQgdG8gc3RhcnQgcHJvZ3JhbXMgaW4gbWluaW1pemVkIHdpbmRvdyAobWluZ3cgb25seSkuCgoyMDA0LTAzLTI2IDA4OjAzICBzbGlmCgogICAqIHdpbjMyL2J1aWxkLnBsOgoKICAgcGF0Y2ggdG8gZml4IFs5MjE0MjNdIGluc3RhbGwgdGVzdCBzZXF1ZW5jZSBub3QgcmlnaHQgZm9yIHBlcmwgYnVpbGQKCjIwMDQtMDMtMjYgMDc6NTMgIHNsaWYKCiAgICogY29uZmlndXJlLmluOgoKICAgcGF0Y2ggIzkwMTQzNCB0b3NvY2syLnNoIC0tIHVzZSBXaW5zb2NrIDIueCBmb3IgV2luZG93cyBzb2NrZXQgbGlicmFyeQoKMjAwNC0wMy0yMiAxNTozNyAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBmaXggcGF0aCBmb3IgY2xlYW51cCBvZiB1cGxvYWRlZCB0YXJiYWxsCgoyMDA0LTAzLTIyIDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbWFrZV9pbmRleC5wbCwgbWFuX3NlY3Rpb25zLnR4dAo6CgogICBtYW4vaW5kZXguaHRtbCBnZW5lcmF0aW9uIHN0dWZmCgoyMDA0LTAzLTIwIDIxOjQzICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBuZXdlciBtYW4yaHRtbCB1c2FnZQoKMjAwNC0wMy0yMCAxMDowMiAgc2xpZgoKICAgKiB0ZXN0aW5nL2V2YWxfb25lc2NyaXB0LnNoOgoKICAgcGF0Y2ggWzkxOTEzMl0gdGVzdCBzdG9wIGJlZm9yZSBmaW5pc2ggaXMgc3VwZXJmbHVvdXMKCjIwMDQtMDMtMTkgMTY6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIFBhcnQgb2YgcGF0Y2ggOTE3NzI2IHRvIGZpeCBhIGZldyB3aW5kb3dzIGNvbmZpZyBwcm9ibGVtcy4KCjIwMDQtMDMtMTkgMTY6MDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwOgoKICAgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6IFsgOTE4ODI4IF0gY29uZGl0aW9uYWwgc2tpcCBIVVAgdGVzdAoKMjAwNC0wMy0xOSAxNTo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOiBbIDkxODk0OCBdIGZpeCBjeWd3aW4gY29uZmlnIHByb2JsZW0KCjIwMDQtMDMtMTkgMDg6MjkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oOgoKICAgQWRkZWQgYSBtaXNzaW5nIHByb3RvdHlwZTogbmV0c25tcF9yZWdpc3Rlcl93YXRjaGVkX3NwaW5sb2NrCgoyMDA0LTAzLTE5IDA4OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgTWlzc2VkIGEgQUVTMTI4IC0+IEFFUyBjb252ZXJzaW9uLgoKMjAwNC0wMy0xOSAwMzowMCAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgQnJpZWYgZGVzY3JpcHRpb24gb2YgYWRkaW5nIFdpbjMyIElQdjYgdHJhbnNwb3J0IHN1cHBvcnQuCgoyMDA0LTAzLTE4IDE4OjMyICBzbGlmCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHBhdGNoIFs5MTkxMTZdIG1pbm9yIGRpZmYgaW4gaW52b2tlZCBsb2cKCjIwMDQtMDMtMTggMTU6NDQgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2hfOTE1MTc4LnJlZHV4IHRvIGZpbmlzaCB0aGUgc2Vjb25kIHBhcnQgb2YgdGhhdCBwYXRjaC4KCjIwMDQtMDMtMTggMDg6NTEgIHNsaWYKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0LAogICAgIFQxMjJwcm94eXNldGZhaWw6CgogICBhcHBseSBwYXRjaCBbOTE4ODI0XSBmaXggcHJveHkgdGVzdHMKCjIwMDQtMDMtMTggMDc6MDUgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBjeWd3aW4uaCwgbWluZ3czMi5oOgoKICAgcGF0Y2ggWzkxNzY0OV0gZmluZCB1aW50MzJfdCBpbiB3aW4zMi1nY2MgYnVpbGQgZW52aXJvbm1lbnRzCgoyMDA0LTAzLTE2IDEzOjA1ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIG1lcmdlIGNvbmZpZ3VyZSBzdWJzdGl0dXRlZCBzcnMvb2JzIGRlZiB3L3ByZXZpb3VzIGxpbmUsIHRvIGF2b2lkIGhhdmluZyBhCiAgIGNvbnRpbnVhdGlvbiBsaW5lIGZvbGxvd2VkIGJ5IGEgYmxhbmsgbGluZTsKICAgZml4ZXMgZm9yIGJ1aWxkaW5nIG91dHNpZGUgb2Ygc291cmNlIGRpciAocmVvcmRlciBpbmNsdWRlIGluIENQUEZMQUdTIHNvIHRoYXQKICAgcmVsYXRpdmUgZGlycyBjb21lIGJlZm9yZSBzcmNkaXJzKQoKMjAwNC0wMy0xNiAwNzo0OSAgc2xpZgoKICAgKiB3aW4zMi86IGJ1aWxkLmJhdCwgYnVpbGQucGw6CgogICBzeW5jaCB3aXRoIHdvcmtpbmcgdmVyc2lvbiwgZGVsdGEgaW5zdGFsbCBiYXNlLCBvZiBjb3Vyc2UuCgoyMDA0LTAzLTE2IDA2OjUzICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wLzogbmV0LXNubXAtY29uZmlnLmgsIG5ldC1zbm1wLWNvbmZpZy5oLmluCjoKCiAgIGFkZCB0eXBlZGVmIGZvciB1aW50MzJfdCAtLSBhYnNlbnQgZnJvbSBNU1ZTCgoyMDA0LTAzLTE2IDA1OjE1ICBzbGlmCgogICAqIHdpbjMyLzogTWFrZWZpbGUuaW4sIGluc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgcGFydGlhbCBmaXggZm9yIGJ1ZyA5MTUxNzg6IGFkanVzdCB0byBhY2NvbW1vZGF0ZSAnbWFrZSB0ZXN0JyB2ZXJpZmljYXRpb24uCgoyMDA0LTAzLTE1IDE2OjQyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2s6CgogICBQYXRjaCBmcm9tIEJydWNlIFNoYXc6IFsgODk0NzExIF0gU29sYXJpcyBkaXNrIHRlc3QgZmFpbHMgb24gc29tZSBPUydzIFtzZWNvbmQgZml4IHRvIGhpcyBwcmV2aW91cyBwYXRjaCBmb3IgZXZlbiBiZXR0ZXIgc3VwcG9ydF0KCjIwMDQtMDMtMTUgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIEJ1Zy9wYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MTUzNjEgXSBvdmVycmlkZSB0b2tlbiBpbiBzbm1wZC5jb25mIGRvZXMgbm90IGFsbG93IHNubXBzZXQgb24gT0lEIFtyZWFsbHksIHRoaXMganVzdCByZXR1cm5zIHByb3BlciBlcnJvciBjb2RlcyBmcm9tIHN5c3RlbV9taWIgdmFyaWFibGVzXQoKMjAwNC0wMy0xNSAxNTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQnVnL3BhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgxNTMzMyBdIHNubXB2YWNtIGFwcCBub3Qgd29ya2luZyB3aXRoIFNOTVAgdjEgWyByZWFsbHkganVzdCBmaXhpbmcgbWliIGVycm9yIGNvZGVzIHJlbWVtYmVyZWQgaW4gc25tcF9hZ2VudC5jXQoKMjAwNC0wMy0xNSAxNTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9tb2RlX2VuZF9jYWxsLmM6CgogICBCdWcvUGF0Y2ggZnJvbSBCb2IgUm93bGFuZHM6IFsgODA5MjgyIF0gbmV0c25tcF9tb2RlX2VuZF9jYWxsX2FkZF9tb2RlX2NhbGxiYWNrIGNhbGxlZCByZXBlYXRlZGx5CgoyMDA0LTAzLTE1IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFBhdGNoIGZyb20gQm9iIFJvd2xhbmRzOiBbIDgwODg4MSBdIExvZyBhIGF1dGhlbnRpY2F0aW9uIGZhaWx1cmUgbWVzc2FnZSB3aGVuIGF1dGhlbnRpY2F0aW9uIGZhaWxzLgoKMjAwNC0wMy0xNSAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICBQYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyA4MDczMzMgXSA2NCBiaXQgYWdlbnQgcmV0dXJucyBpbmNvcnJlY3QgdmFsdWVzIGZvciBJcEFkZHJlc3MKCjIwMDQtMDMtMTUgMTQ6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcC1mb3J3YXJkLW1pYi9pcENpZHJSb3V0ZVRhYmxlLzoKICAgICBkZWZhdWx0LXRhYmxlLWlwQ2lkclJvdXRlVGFibGUubTJkLCBpcENpZHJSb3V0ZVRhYmxlLmMKLCBpcENpZHJSb3V0ZVRhYmxlLmgsIGlwQ2lkclJvdXRlVGFibGVfY29uc3RhbnRzLmgKLCBpcENpZHJSb3V0ZVRhYmxlX2RhdGFfYWNjZXNzLmMsCiAgICAgaXBDaWRyUm91dGVUYWJsZV9kYXRhX2FjY2Vzcy5oLAogICAgIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmMsIGlwQ2lkclJvdXRlVGFibGVfaW50ZXJmYWNlLmgKOgoKICAgcmUtaW1wbGVtZW50IGV4aXN0aW5nIGlwQ2lkclJvdXRlVGFibGUgZnVuY3Rpb25hbGl0eSB3L01GRCBoZWxwZXIKICAgKGkuZS4gcmVhZC1vbmx5IHN1cHBvcnQ7IHVzZSB2YXJfcm91dGUgZnVuY3Rpb24gdG8gZ2V0IGRhdGEpCgoyMDA0LTAzLTE1IDEyOjEwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdHdlYWtzIGZvciByb3ctY3JlYXRpb24gY2FzZQoKMjAwNC0wMy0xNSAxMjowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIGRlZmF1bHQgdG8gaW5jb25zaXN0ZW50TmFtZSBpbnN0ZWFkIG9mIG5vQ3JlYXRpb24KCjIwMDQtMDMtMTUgMDY6MjcgIGR0czEyCgogICAqIHdpbjMyL2J1aWxkLnBsOgoKICAgVHdlYWsgdGhlIG9wdGlvbiBwcm9tcHQgc2xpZ2h0bHkuCiAgIChEYXZlJ3MgYmVpbmcgcGlja3kgYWdhaW4hKQoKMjAwNC0wMy0xNSAwNjoyMCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIExpc3RlbiBvbiBwb3J0IDE2MiAocmF0aGVyIHRoYW4gMTYxKSBpZiBhIChiYXJlKSBpbnRlcmZhY2UKICAgYWRkcmVzcyBpcyBzcGVjaWZpZWQuCgoyMDA0LTAzLTEzIDIyOjA1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgbnVsbCBmcmVlJ2QgcG9pbnRlciAoYmV0dGVyIHNhZmUgdGhhbiBzb3JyeSkKCjIwMDQtMDMtMTMgMjE6NTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBwbHVnIG1lbW9yeSBsZWFrCgoyMDA0LTAzLTEzIDE5OjIxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbWliSUlfY29tbW9uLmg6CgogICBmaXggZm9yIGNvbXBpbGluZyB3L2RtYWxsb2MKCjIwMDQtMDMtMTMgMDY6NDAgIHNsaWYKCiAgICogd2luMzIvYnVpbGQuYmF0OgoKICAgc2V0IHRlbXAgdmFyIGVtcHR5IHRvIHJlbW92ZSBmcm9tIGVudgoKMjAwNC0wMy0xMiAxNTo1MiAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNsZWFuIHVwIGJhc2UgcG9vcC4KCjIwMDQtMDMtMTIgMTM6MDcgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9idWlsZC5iYXQ6CgogICBkb2MgY2hhbmdlIGZvciBwYXRjaCA5MTI0NDcKCjIwMDQtMDMtMTIgMTI6MTMgIHNsaWYKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBldmFsX3Rvb2xzLnNoOgoKICAgYXBwbHkgcGF0Y2hbOTE1MTc4XSB0byBmaXggTWluR1cgKE1TWVMpIG1ha2UgdGVzdCBmcmVlemVzCgoyMDA0LTAzLTEyIDExOjI5ICBzbGlmCgogICAqIHdpbjMyLzogTWFrZWZpbGUtYXBwcy5pbiwgbGlic25tcF9kbGwvTWFrZWZpbGUuaW4sCiAgICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sIHNubXBkL01ha2VmaWxlLmluLAogICAgIHNubXBkc2RrL01ha2VmaWxlLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgICBzbm1wdHJhcGQvTWFrZWZpbGUuaW46CgogICBtb2RpZnkgcGF0Y2hbOTEyNDQ3XSB0byB1c2UgY29ycmVjdCB3aW5zb2NrIGxpYnJhcnkKCjIwMDQtMDMtMTIgMTE6MTYgIHNsaWYKCiAgICogd2luMzIvOiBDb25maWd1cmUsIE1ha2VmaWxlLWFwcHMuaW4sIE1ha2VmaWxlLmluCiwgYnVpbGQuYmF0LCBidWlsZC5wbCwgbGliYWdlbnQvTWFrZWZpbGUuaW4KLCBsaWJoZWxwZXJzL01ha2VmaWxlLmluLCBsaWJzbm1wL01ha2VmaWxlLmluLAogICAgIGxpYnNubXBfZGxsL01ha2VmaWxlLmluLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIG5ldHNubXBtaWJzL01ha2VmaWxlLmluLCBuZXRzbm1wbWlic3Nkay9NYWtlZmlsZS5pbgosIHNubXBkL01ha2VmaWxlLmluLCBzbm1wZHNkay9NYWtlZmlsZS5pbiwKICAgICBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcHRyYXBkL01ha2VmaWxlLmluOgoKICAgYXBwbHkgcGF0Y2ggWzkxMjQ0N10gV2luMzIgTVNWQyBNYWtlZmlsZSBzeXN0ZW0KCjIwMDQtMDMtMTAgMTk6MjQgIHNsaWYKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIGFnZ3Jlc3NpdmUgc2VhcmNoIGZvciBleGVjdXRhYmxlcyBiZWxvdyB0aGUgYmFzZSBkaXJlY3RvcnkuCgoyMDA0LTAzLTEwIDE5OjE1ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBkb24ndCBzZXQgZ2xvYmFsIHNubXBfZXJybm87IGRvIHByb3ZpZGUgdW5kZWYgVVNFX09QRU5TU0w7CiAgICByZXBsYWNlIE5FVFNOTVBfTk9fRExMIHdpdGggTkVUU05NUF9VU0VfRExMOwogICAgZG9jdW1lbnQgdGhlIGNoYW5nZS4KCjIwMDQtMDMtMTAgMTk6MDkgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgaW52b2tlIHNubXBkLCBzbm1wdHJhcGQgd2l0aCBub24tZGVwcmVjYXRlZCBwYXJhbWV0ZXJzIGZvciBQSUQgYW5kIGxvZ2ZpbGUuCgoyMDA0LTAzLTEwIDE1OjA5ICBzbGlmCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGZpeCBzaWduZWQgbWlzbWF0Y2ggd2hlbiB0ZXN0aW5nIHByb3BlciBsZW5ndGggb2Yga2V5ZWQgaGFzaC4KCjIwMDQtMDMtMTAgMTU6MDMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG1vZHMgZm9yIGJ1aWxkaW5nIHdpbjMyIHdpdGggT3BlblNTTCBzdXBwb3J0LgoKMjAwNC0wMy0xMCAwODoyMyAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBwZXIgQWxleEIgLSBjaGFuZ2UgaW5zdHJ1Y3Rpb25zIHRvIHVzZSBNaW5HVyBkZXZlbG9wZXIncyByZWNvbW1lbmRlZCBPcGVuU1NMLgoKMjAwNC0wMy0xMCAwNzoyMSAgZHRzMTIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIFVzZSB0aGUgc2FtZSB0ZXN0aW5nIHBvcnRzIGFzIHRoZSBtYWluIGFnZW50IHRlc3Qgc3VpdGUKICAgKHNvbWV3aGF0IGxlc3MgbGlrZWx5IHRvIGNsYXNoIHdpdGggb3RoZXIgc2VydmljZXMpCgoyMDA0LTAzLTEwIDA3OjA4ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBEb2N1bWVudCBzdXBwb3J0IGZvciBtdWx0aXBsZSAib3B0aW9uYWwiIGNvbmZpZyBmaWxlcyB2aWEgLWMKCjIwMDQtMDMtMTAgMDU6MDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIFJldHJ5IHVuZnVsZmlsbGVkIEdFVE5FWFQgcmVxdWVzdHMgdGhhdCBzaW1wbHkgaGF2ZW4ndCBiZWVuIGF0dGVtcHRlZAogICAoZS5nLiBkdWUgdG8gYSBtaXNzaW5nIGNvbHVtbiBvYmplY3QpLCBidXQgbm90IG9uZXMgdGhhdCBoYXZlIGJlZW4KICAgZXhwbGljaXRseSBtYXJrZWQgYXMgZmFpbGVkIChlLmcuIGF0IHRoZSBlbmQgb2YgdGhlIHRhYmxlKS4KCiAgIEknbSBub3QgMTAwJSBjb252aW5jZWQgdGhpcyBpcyBjb3JyZWN0LCBidXQgaXQgc2VlbXMgdG8gaGF2ZSB0aGUKICAgcmlnaHQgZWZmZWN0IGZvciBib3RoICd0YWJsZV9kYXRhJyBhbmQgJ3RhYmxlX2RhdGFzZXQnIGJhc2VkIG1vZHVsZXMuCgoyMDA0LTAzLTEwIDA0OjUyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIENoZWNrIGZvciBwcm9ibGVtcyB3aXRoIGFsbCBvZiB0aGUgcmVxdWVzdGVkIHZhcmJpbmRzCiAgIChub3QganVzdCB0aGUgZmlyc3Qgb25lKSwgYW5kIGhhbmRsZSAnbm9TdWNoT2JqZWN0JyBleGNlcHRpb25zLgogICBbVGhvdWdoIGluIGZhY3QsIHRoaXMgY29kZSBpc24ndCBhY3R1YWxseSB1c2VkXQoKMjAwNC0wMy0wOSAxMjo1MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSB0byBtYXRjaCBuZXcgY29uZmlndXJlLmluCgoyMDA0LTAzLTA5IDExOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBkZWJ1Z2dpbmcgaXNuJ3QgcGxhdGZvcm0gc3BlY2lmaWMKCjIwMDQtMDMtMDkgMDc6NTUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICBzZXBhcmF0ZSB0cmFwbGlicyBmcm9tIGFnZW50IGxpYnMgZm9yIGRlcGVuZGVuY2llcwoKMjAwNC0wMy0wOSAwNzoxMiAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIG1ha2UgU05NUENPTkZQQVRIIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBwbGF0Zm9ybXMgKCIkcHJlZml4L2V0Yy9zbm1wIikKCjIwMDQtMDMtMDkgMDc6MDkgIHNsaWYKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmM6CgogICBhZGQgY29tbWVudCBNVENSSVRJQ0FMX1JFU09VUkNFIHRvIHVzZSBvZiBzbm1wX2Vycm5vIGluIHRocmVlIHBsYWNlcy4KCjIwMDQtMDMtMDkgMDU6MTAgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEhhbmRsZSBtdWx0aXBsZSAib3B0aW9uYWwgY29uZmlnIiBmaWxlcy4KCjIwMDQtMDMtMDkgMDQ6MjQgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBtYWtlIFNOTVBDT05GUEFUSCBjb25zaXN0ZW50IHdpdGggb3RoZXIgcGxhdGZvcm1zICgiJHByZWZpeC9ldGMvc25tcCIpCgoyMDA0LTAzLTA4IDIwOjI2ICByc3RvcnkKCiAgICogUkVBRE1FLmFpeDoKCiAgIG5ldyBmaWxlCgoyMDA0LTAzLTA4IDE3OjUzICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgcGVybC9TTk1QL1JFQURNRToKCiAgIHBhdGNoIFs5MTE0MzldIFVwZGF0ZXMgdG8gdGhlIFJFQURNRS53aW4zMiBhbmQgU05NUCBSRUFETUUgZm9yIFdpbjMyCgoyMDA0LTAzLTA4IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGlmZGVmIG91dCByb3V0aW5lcyB0aGF0IG9ubHkgYXZhaWxhYmxlIHdoZW4gYWdlbnR4IGlzIGdvaW5nIHRvIGJlIHVzZWQuCgoyMDA0LTAzLTA4IDE2OjA5ICByc3RvcnkKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHVzZSBhcHAgbGlicyBmb3Igc25tcHRyYXBkIHdoZW4gYWdlbnQgZGlzYWJsZWQ7IG1vdmUgd3JhcGxpYiBzdWJzdGl0dXRpb24gdG8KICAgYSBtb3JlIHJlYXNvbmFibGUgcGxhY2UuIHNubXB0cmFwZCBzdGlsbCBkb2Vzbid0IGxpbmssIGJ1dCBpdCdzIGNsb3Nlci4uLgoKMjAwNC0wMy0wOCAxNDozOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIG5ldyBjb25maWd1cmUgZm9yIG5ldyBjb25maWd1cmUuaW4KCjIwMDQtMDMtMDggMTQ6MzcgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhZGQgY29tbWVudHMgaW4gaGFpcnkgYWdlbnQgbW9kdWxlIHByb2Nlc3Npbmc7IGRvbid0IG11bmdlIGRlZmF1bHQgbWlicyB1bnRpbAogICB3ZSBhcmUgZG9uJ3QgYnVpbGRpbmcgaXQ7IHR3ZWFrcyBmb3IgLS1kaXNhYmxlLWFnZW50OiB1c2Ugc2FtZSBkZWZhdWx0IG1pYnNldAogICBhcyAtLWVuYWJsZS1taW5pLWFnZW50LCBkb24ndCB0byBoYWlyeSBhZ2VudCBtb2R1bGUgcHJvY2Vzc2luZwoKMjAwNC0wMy0wOCAxMzoyNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBGaXggc3ludGF4IGVycm9ycy4KCjIwMDQtMDMtMDggMTI6NDIgIHNsaWYKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmM6CgogICByZW1vdmUgdW51c2VkIGxvY2FsIHZhciBjYWNoZV90aW1lb3V0CgoyMDA0LTAzLTA4IDEyOjQxICBzbGlmCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIHVzZSBxdW90ZXMgdG8gc2VhcmNoIGxvY2FsIGluY2x1ZGUgcGF0aHMgZm9yIHBlcmxfc25tcHRyYXBkLmgKCjIwMDQtMDMtMDggMTE6NDMgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyOgoKICAgcGF0Y2ggWzkxMDkwM10gVXBkYXRlcyB0byB0aGUgUkVBRE1FLndpbjMyIGZvciBHQ0MKCjIwMDQtMDMtMDggMDk6MzcgIGhhcmRha2VyCgogICAqIHBlcmwvVHJhcFJlY2VpdmVyL1RyYXBSZWNlaXZlci54czoKCiAgIFBhdGNoIGZyb20gQW5kcmV3IEhvb2QgdG8gaW5jbHVkZSBwcm9wZXIgaGVhZGVycyBhbmQge30gd3JhcCBwZXJsIHNwZWNpYWwgZGVjbHJzCgoyMDA0LTAzLTA4IDA4OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgdXNlIGRlZmF1bHQgbGlicmFyeSB2YWx1ZXMgaW5zdGVhZCBvZiBoYXJkLWNvZGVkIGRlZmF1bHRzIGZvciBhdXRoL3ByaXYgcHJvdG9jb2xzCgoyMDA0LTAzLTA2IDE5OjIzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSBwcm90b3R5cGUKCjIwMDQtMDMtMDYgMTk6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICB0d2VhayBwYXR0ZXJuIGZvciBuZXcgZG94eWdlbiBjb25mIGZpbGVzCgoyMDA0LTAzLTA2IDE5OjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgYWRkIHByb3RvdHlwZSB0byBnZXQgc3BhcnNlIHRhYmxlIG1pYiBoYW5kbGVyLCBuZXRzbm1wX3RhYmxlX25leHRfY29sdW1uOwogICByZW5hbWUgbmV0c25tcF9yZWdpc3Rlcl9zcGFyc2VfdGFibGUgdG8gbmV0c25tcF9zcGFyc2VfdGFibGVfcmVnaXN0ZXI7IGFkZAogICBuZXRzbm1wX3NwYXJzZV90YWJsZV9oYW5kbGVyX2dldAoKMjAwNC0wMy0wNiAxOToxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG1ha2Ugc3BhcnNlIHRhYmxlIGhlbHBlciBzdGF0aWM7IGFkZCBtZXRob2QgdG8gZ2V0IHNwYXJzZSB0YWJsZSBtaWIgaGFuZGxlcjsKICAgd2FybiBpZiBzcGFyc2UgdGFibGUgaGFuZGxlciBoYXMgYSBuZXh0IHBvaW50ZXIuIHVzZSBuZXcgaGFuZGxlciBjdXN0b20gYml0CiAgIHRvIG9ubHkgbG9nIG9uY2UsIGlmIHBvc3NpYmxlLgoKMjAwNC0wMy0wNiAxODo0NyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgcmVzZXJ2ZXIgbGFzdCA0IGJpdHMgb2YgZmxhZyBmb3IgaGFuZGxlciB1c2UKCjIwMDQtMDMtMDYgMTc6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZG94eWdlbi5tMmMsIG1mZC10b3AubTJjOgoKICAgZ2VuZXJhdGUgc2ltcGx5IGRveHlnZW4uY29uZiBmaWxlCgoyMDA0LTAzLTA1IDIxOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZpeGVkIHRoZSBhZGRfcm93IHRva2VuIGJ5IHNvcnRpbmcgaW5jb21pbmcgY29sdW1ucyBmcm9tIHRoZSBwYXJzZXIKCjIwMDQtMDMtMDUgMTc6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICB1cGRhdGVzIGZyb20gb2xkZXIgY2hhbmdlczsgc3RpbGwgc2xpZ2h0bHkgb3V0IG9mIGRhdGUKCjIwMDQtMDMtMDUgMTc6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy11cGRhdGU6CgogICBkb24ndCByZWN1cnNlIG9uIGRpZmY7IGNwIGRlZmF1bHRzIGluc3RlYWQgb2YgbW92aW5nCgoyMDA0LTAzLTA1IDE3OjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIG5ldyB2YXIgZm9yIHBhcmFtIGNhbGxzIGJ5IHZhbAoKMjAwNC0wMy0wNSAxNzowMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgZml4IGV2YWx1YXRpb24gcHJvYmxlbSBpbiBnZW5lcmF0ZWQgZGVmYXVsdCBmaWxlCgoyMDA0LTAzLTA1IDE2OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtZGVmaW5lcy5tMmkKOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyBtb3ZlIGluZGV4ZXNfc2V0LCBpbml0X2RhdGEgaW50byBkYXRhX2FjY2Vzcy5tMmMKCjIwMDQtMDMtMDUgMTY6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlOyBhZGQgZXhhbXBsZSBjb2RlOyBtb3ZlIGFzIG11Y2ggY2FjaGUgc3R1ZmYgYXMKICAgcG9zc2libGUgaW50byBpbnRlcmZhY2UKCjIwMDQtMDMtMDUgMTY6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXNldC5tMmk6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IGJyZWFrIHNldF9pbmRleGVzIGludG8gMiBwaWVjZXMKCjIwMDQtMDMtMDUgMTY6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IHJlLWFkZCBwcmUvcG9zdDsgZGVmaW5lIE1GRCByZXR1cm4gY29kZSBoZXJlLCBzaW5jZQogICB0YWJsZV9tZmQgbm8gbG9uZ2VyIGV4aXN0czsKCjIwMDQtMDMtMDUgMTY6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIGZpeCBzeW50YXggZXJyb3IKCjIwMDQtMDMtMDUgMTY6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IHJlLWFkZCBwcmUvcG9zdCB3cmFwcGVyOyBjYWxsIG5ldyByb3dfcHJlcAoKMjAwNC0wMy0wNSAxNjo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1kYXRhLWdldC5tMmMsIG1mZC1kYXRhLXNldC5tMmMKOgoKICAgdHdlYWtzIHRvIGNvbW1lbnRzIGZvciBiZXR0ZXIgZG94eWdlbiBkb2NzOyB1c2UgbXVsdGlwbGUgcGFzc2VzIHRvIGtlZXAgaGVhZGVyCiAgIGFuZCBzb3VyY2UgaW4gc2FtZSBpbmNsdWRlCgoyMDA0LTAzLTA1IDE2OjUxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdXJjZSBpbiBzYW1lIGluY2x1ZGU7IG1vdiBpbml0X2RhdGEgaGVyZTsgYWRkIHJvd19wcmVwCgoyMDA0LTAzLTA1IDE2OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwKICAgICBnZW5lcmljLXZhbHVlLW1hcC1mdW5jLm0yaSwgbm9kZS1nZXQubTJpLAogICAgIG5vZGUtc2V0Lm0yaSwgcGFyZW50LXNldC5tMmk6CgogICB0d2Vha3MgdG8gY29tbWVudHMgZm9yIGJldHRlciBkb3h5Z2VuIGRvY3M7IHVzZSBtdWx0aXBsZSBwYXNzZXMgdG8ga2VlcCBoZWFkZXIKICAgYW5kIHNvdWNlIGluIHNhbWUgaW5jbHVkZQoKMjAwNC0wMy0wNSAxNjo0NCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgYWRkIGZsYWdzOyBhZGQgZXhwaXJlZDsgb25seSB1c2UgZGVmYXVsdCB0aW1lb3V0IHdoZW4gY2FjaGUgY3JlYXRlZDsKCjIwMDQtMDMtMDUgMTY6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBoYXZlIG1pYl90b19hc25fdHlwZSByZXR1cm4gQVNOX1VOU0lHTkVEIGluc3RlYWQgb2YgQVNOX1VJTlRFR0VSLAogICB3aGljaCBpcyB0aGUgcHJvcGVyIGRhdGEgdHlwZS4KCjIwMDQtMDMtMDUgMTY6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgUmVtb3ZlIHRoZSBzcGFyc2UgdGFibGUgcmVnaXN0cmF0aW9uIGFuZCByZWdpc3RlciBpdCBhcyBhIG5vcm1hbCB0YWJsZS4KICAgICAxKSB0aGUgaGlnaGVyIHRhYmxlIGhhbmRsZXIgYWx3YXlzIGNhbGxzIHRoZSBzcGFyc2UgdGFibGUgaGFuZGxlcgogICAgICAgIGFueXdheSwgc28gaXQgd291bGQgYmUgcmVkdW5kYW50IGV2ZW4gaWYgaXQgZGlkIHdvcmsuCiAgICAgMikgVGhlIHNwYXJzZSB0YWJsZSBoYW5kbGVyIGRvZXNuJ3QgY2FsbCBhbnkgY2hpbGRyZW4sIGFuZCBkb2Vzbid0CiAgICAgICAgc2V0IHRoZSBhdXRvbmV4dCBmbGFnIHNvIGl0cyBhbHdheSB0aGUgZW5kIG9mIHRoZSBsaW5lICh0aGlzIHRvb2sKICAgICAgICBtZSBhbiBob3VyIHRvIGZpbmQpLgoKMjAwNC0wMy0wNSAxNjo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBjaGFuZ2UgdGhlIGhlbHAgaW5mb3JtYXRpb24gZm9yIGFkZF9yb3cgdG8gbWVudGlvbiB0aGF0IHlvdSBuZWVkIHRoZQogICB0YWJsZSBuYW1lIHlvdSB3YW50IHRvIGFkZCB0aGUgZGF0YSB0by4KCjIwMDQtMDMtMDUgMTQ6NTggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF9hZ2VudC5jOgoKICAgRml4IHRoZSBvaWQgcmVnaXN0cmF0aW9uIGNhY2hlIG5vdCBiZWluZyBpbnZhbGlkYXRlZCBwcm9wZXJseS4gIEJ1ZyAjOTAwOTY3CgoyMDA0LTAzLTA1IDExOjI5ICBzbGlmCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggWzcwNjA5M10gYnkgbm90IGRlZmluaW5nIHZhcmlhYmxlcyBhIHNlY29uZCB0aW1lLgoKMjAwNC0wMy0wNSAxMDowMyAgc2xpZgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9NQU5JRkVTVDoKCiAgIHF1ZWxsIG1hbmlmZXN0IGNoZWNrIGVycm9ycyAobWFrZWZpbGUsIHBtX3RvX2JsaWIsIC5jIGZpbGUpLgoKMjAwNC0wMy0wNSAxMDowMyAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9pbXBsLmg6CgogICB1c2Ugb2YgU0VUX1NOTVBfRVJSTk8gcmVxdWlyZXMgLS0gZW5hYmxlIERMTCBkZWNvcmF0aW9uIGZvciBzbm1wX2Vycm5vCgoyMDA0LTAzLTA1IDEwOjAyICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIGFkZCBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvciBuZXRzbm1wX3RhYmxlX25leHRfY29sdW1uCgoyMDA0LTAzLTA1IDEwOjAwICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgYWRkIHN5bWJvbCB1c21BRVNQcml2UHJvdG9jb2wKCjIwMDQtMDMtMDUgMDg6MjMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oOgoKICAgZml4IG1hY3JvIG5hbWUsIGFzIG5vdGVkIG9uIHVzZXJzCgoyMDA0LTAzLTA1IDA1OjUxICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyICdzcGFjZScKCjIwMDQtMDMtMDUgMDU6MzAgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL3N5c3RlbS5jLAogICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwCiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwKICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLAogICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsCiAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLAogICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCiwgY29uZmlndXJlOgoKICAgcGF0Y2ggWzkwMTQzNF0gYXBwbHkgdXNlV2luc29jazIuc2ggW3VuZG8gYnkgdXNpbmcgdXNlV2luc29jazEuc2hdCgoyMDA0LTAzLTA0IDIyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBpbml0aWFsaXplIHRoZSB0YWJsZV9kYXRhc2V0IGhlbHBlciAoYWdhaW4uLi4gIEkgKmtub3cqIGl0IHdhcyBpbml0aWFsaXplZCBpbiB0aGUgcGFzdC4gIFdoYXQgaGFwcGVuZWQ/KQoKMjAwNC0wMy0wNCAyMjowNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHR1cm4gb2ZmIGNhY2hpbmcgdW50aWwgcmVhbCBmaXggZm91bmQgZm9yIGJ1ZyA5MDA5Njc6IGFnZW50eCwgY2FjaGluZwoKMjAwNC0wMy0wNCAyMDoyOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgKmZpbmFsbHkqIGZpeCBhZ2VudHggaGFuZyB3aGVuIG1hc3RlciBkaXNhcHBlYXJzCgoyMDA0LTAzLTA0IDE1OjQxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgZml4IGV4ZWNmaXggZm9yIHJlbG9jYXRhYmxlIGV4ZWNzOyBhZGQgZml4IGNtZCB0byByZWxvY2F0YWJsZSB0cmVlCgoyMDA0LTAzLTA0IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbWlub3Igd29yZGluZyBjaGFuZ2VzIGFib3V0IHZlcnNpb24gbnVtYmVyIGNoYW5naW5nCgoyMDA0LTAzLTA0IDA5OjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gZml4IGJ1aWxkaW5nIHRyYXBkIHdoZW4gdGhlIGFnZW50IGlzbid0IGJlaW5nIGJ1aWx0CgoyMDA0LTAzLTA0IDA5OjEyICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci9NYWtlZmlsZS5QTDoKCiAgIHVwZGF0ZSB0byB0aGUgd2F5IHdlIG5vcm1hbGx5IGRvIHBlcmwgTWFrZWZpbGVzLCB3aGljaCBpcyBub3Qgbm9ybWFsLgoKMjAwNC0wMy0wNCAwODo1MyAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQueHMsIFRyYXBSZWNlaXZlci9UcmFwUmVjZWl2ZXIueHMsCiAgICAgYWdlbnQvYWdlbnQueHM6CgogICAtIGNvbnZlcnQgZnByaW50ZihzdGRlcnIgdG8gc25tcF9sb2coTE9HX0VSUgoKMjAwNC0wMy0wNCAwODo0OCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvbnVsbC5jOgoKICAgZml4IHN5bnRheCBlcnJvcnMKCjIwMDQtMDMtMDQgMDU6MzkgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLCBjb25maWd1cmUKOgoKICAgcGF0Y2ggWzkwOTQ1OV0gQ29uZmlndXJlIHBhdGNoIHRvIGFsbG93IGZvciBXaW4zMiBvYmplY3RzLgoKMjAwNC0wMy0wMyAyMjoxMSAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGNoYW5nZSAicHJvZ3JhfjEiIHRvICJQcm9ncmFtIEZpbGVzIiB0byBhdm9pZCBwcm9ibGVtIHdpdGggRE9TIG5hbWUgd2FycGluZy4KCjIwMDQtMDMtMDMgMjE6MjIgIHNsaWYKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgU05NUC9SRUFETUUsIGFnZW50L01ha2VmaWxlLlBMLAogICAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwKOgoKICAgcGF0Y2ggWzkwNjI3NF0gV2luMzIgUGVybCBjb21waWxlIHdpdGggcmVsZWFzZS9kZWJ1ZyBwYXRoIGNoYW5nZXMKCjIwMDQtMDMtMDMgMTQ6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuYzoKCiAgIHNwZWNpZnkgbW9kZSBpbiByZWdpbmZvCgoyMDA0LTAzLTAzIDEzOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGZpbGUuYywgZmlsZS5oOgoKICAgLSBtYWtlIHRoZSBmaWxlIHRva2VuIGFjY2VwdCBhIGRlZmF1bHQgc2l6ZSBsaWtlIHRoZSBkb2NzIHNheSBpdCB3aWxsLgoKMjAwNC0wMy0wMyAxMjowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGNvbW1lbnQgb3V0IHBkdSBkb3VibGUgZnJlZSBjaGVjayB0aWwgYmV0dGVyIChub24tbGVha2luZykgc29sdXRpb24gZm91bmQKCjIwMDQtMDMtMDMgMDg6NTYgIHJzdG9yeQoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgbmV0c25tcF9tZmRfcGR1X2NvbnRleHRfcy4zOgoKICAgcmVtb3ZlIG1hbiBwYWdlIGZvciByZW1vdmVkIHN0cnVjdHVyZQoKMjAwNC0wMy0wMyAwODo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLXVwZGF0ZToKCiAgIG5ldyB1dGlsaXR5IHRvIHJlZ2VuZXJhdGUgbWliMmMgY29kZSwgcHJlc2VydmluZyBleGlzdGluZyBjdXN0b21pemF0aW9ucwoKMjAwNC0wMy0wMyAwNzo1MiAgc2xpZgoKICAgKiB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwOgoKICAgdGFibGVfbWZkIHJlbW92ZWQgLS0gZG9udCBidWlsZCBpdC4KCjIwMDQtMDMtMDMgMDc6NDYgIHNsaWYKCiAgICogd2luMzIvOiBpbnN0YWxsLW5ldC1zbm1wLmJhdCwgbm1ha2VwZXJsLmJhdDoKCiAgIHBlciBBbGV4QiAtIGFkZCAiLWhlbHAiIGRlc2NyaXB0aW9ucy4gY3JlYXRlIEJBU0UvdGVtcCBzdWJkaXIuCgoyMDA0LTAzLTAyIDEzOjQ1ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmM6CgogICBwYXRjaCBbNzUzODk0XSAgY2F0Y2ggU0lHWEZTWiB3L28gc3Ryc2lnbmFsCgoyMDA0LTAzLTAyIDEyOjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMubWZkLmNvbmY6CgogICB0b3AgbGV2ZWwgbWZkIGNvbmYgZmlsZQoKMjAwNC0wMy0wMiAwNDoxOCAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcGF0Y2ggWzc1Mzg5NF0gIGNhdGNoIFNJR1hGU1osIGxvZyBtZXNzYWdlIGFuZCBleGl0LCBkbyBub3QgY29yZWR1bXAKCjIwMDQtMDMtMDIgMDQ6MDYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgZml4IFs3NzEzMTVdIEFnZW50IGNvcmVkdW1wcyBkdXJpbmcgc2h1dGRvd24KCjIwMDQtMDMtMDEgMjE6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBQQyBwb2xpY2UgLSB0b25lIGRvd24gZXJyb3IgbWVzc2FnZQoKMjAwNC0wMy0wMSAyMTowNSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zQ2FjaGUuYzoKCiAgIGNoYW5nZSBnbG9iYWxzIHRvIHVzZSBmdW5jdGlvbnMgdG8gYWNjZXNzIGNhY2hlX2hhbmRsZXIgdmFycywgb3IgdXNlIG5ldwogICBkYXRhc3RvcmUgdmFsdWVzCgoyMDA0LTAzLTAxIDIxOjAzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaDoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQ7IHJlbW92ZSBub2FsbG9jIHByb3RvdHlwZQoKMjAwNC0wMy0wMSAyMTowMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIGZpeCB0eXBvIGluIGNvbW1lbnQ7IGFkZCBOT19DQUNISU5HIGFuZCBDQUNIRV9USU1FT1VUCgoyMDA0LTAzLTAxIDIxOjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9iYWJ5X3N0ZXBzLmg6CgogICBuZXcgYmFieV9zdGVwcyBhY2Nlc3MgbXVsdGlwbGV4ZXIgaGFuZGxlcjsgbWFrZSBhY3R1YWwgaGVscGVyIHJvdXRpbmVzIHN0YXRpYzsKICAgcmVuYW1lIGZ1bmN0aW9ucywgZGVmaW5lcyBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHkKCjIwMDQtMDMtMDEgMjA6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHByb3RlY3QgYWdhaW5zdCBtdWx0aXBsZSBjYWxscyB0byBpbml0X2FnZW50CgoyMDA0LTAzLTAxIDIwOjUyICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHNldCBkZWZhdWx0IGFnZW50IGNhY2hlIHRpbWVvdXQ7IGRlYnVnIG1zZyBmb3IgZXJybm8gb24gc2VsZWN0IGVycm9yCgoyMDA0LTAzLTAxIDIwOjUxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbWVyZ2UgY29tbW9uIGNhc2UgaW4gc3dpdGNoCgoyMDA0LTAzLTAxIDIwOjUwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9jYWNoZV9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICByZXBsYWNlIGdsb2JhbHMgdy9sb2NhbCBzdGF0aWMgKyBhY2Nlc3MgZnVuY3Rpb247IHVzZSBkYXRhc3RvcmUgZm9yIGNhY2hpbmcKICAgZW5hYmxlZCwgY2FjaGUgdGltZW91dDsgdGVzdCBjYWNoZV9mcmVlIGZvciBOVUxMIGJlZm9yZSBjYWxsaW5nIGl0OyBkb24ndAogICB1c2UgZ290bzsgdXNlIG5ldyBhdXRvLW5leHQgZnVuY3Rpb25hbGl0eSB0byBjYWxsIGNoaWxkIGhhbmRsZXJzOyBuZXcKICAgY2FjaGVfY3JlYXRlLCBjYWNoZV9oYW5kbGVyX3JlZ2lzdGVyLCBjYWNoZV9maW5kX2J5X29pZDsgZG9uJ3QgcmVsb2FkIGNhY2hlCiAgIG1vcmUgdGhhbiBvbmNlIHBlciByZXF1ZXN0OyBub3RlIHBvc3NpYmlsaXR5IG9mIGNhY2hlIGJlaW5nIGZyZWUnZCBtaWQtCiAgIHJlcXVlc3QgZm9yIGRlbGVnYXRlZCByZXF1ZXN0cywgdy9wcm9wb3NlZCBzb2x1dGlvbgoKMjAwNC0wMy0wMSAyMDoxOSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWZUYWJsZS5jLCBpZlRhYmxlLmg6CgogICBzd2l0Y2ggZnJvbSBpdGVyYXRvciB0byBuZXcgdGFibGVfY29udGFpbmVyIGhhbmRsZXIuCgoyMDA0LTAzLTAxIDE5OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5jOgoKICAgcnVuIHRocm91Z2ggaW5kZW50CgoyMDA0LTAzLTAxIDA2OjA2ICBzbGlmCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICB1bmRvIHBhdGNoIGF0IHI1LjMgLS0gcmVzdG9yZSAoMTYpIGluIHRlc3QgdG8gZ2V0IG9ubHkgbm9uLXJlcGVhdGVycwoKMjAwNC0wMi0yOSAyMToxMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICBtb3ZlIG5ldHNubXBfdGFibGVfaW5kZXhfZmluZF9uZXh0X3JvdyBoZXJlIGZyb20gdGFibGUuYwoKMjAwNC0wMi0yOSAyMToxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIGFkZCB0YWJsZV9jb250YWluZXI7IHJlbW92ZSB0YWJsZV9tZmQKCjIwMDQtMDItMjkgMjE6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG1mZCBkZXBlbmRlbmNpZXMKCjIwMDQtMDItMjkgMjA6NTQgIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBhZGQgZmxhZ3MgZmllbGQgdG8gbWliIGhhbmRsZXIgc3RydWN0dXJlOyBuZXcgaGFuZGxlciBBVVRPX05FWFQgZmxhZ3MgZm9yCiAgIGhhbmRsZXJzIHRoYXQgZG9uJ3Qgd2FudCB0byBib3RoZXIgd2l0aCBjYWxsaW5nIHN1Yi1oYW5kbGVycyAoYWxzbyByZWR1Y2VzCiAgIHN0YWNrIGRlcHRoKTsgbmV3IG5ldHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fY3JlYXRlIHdoaWNoIHJlc2lnZXJzIGV4aXN0aW5nCiAgIGhhbmRsZXI7IGxvZyB3YXJuaW5nIGZvciBoYW5kbGVycyByZWdpc3RlcmluZyB3L25vIG1vZGVzOyBoYW5kbGUgaW5qZWN0aW9uIHRvIGEKICAgcmVnaXN0cmF0aW9uIHcvb3V0IGEgaGFuZGxlcjsgbmV3IG1vZGVzIEhBTkRMRVJfQ0FOX05PVF9DUkVBVEUsCiAgIEhBTkRMRVJfQ0FOX1NFVF9PTkxZOyBvciBpbiBIQU5ETEVSX0NBTl9OT1RfQ1JFQVRFIHcvIERFRkFVTFQ7IGFkZCB2b2lkIHBvaW50ZXIKICAgdG8gaGFuZGxlciByZWdpc3RyYXRpb24KCjIwMDQtMDItMjkgMjA6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSB0YWJsZV9tZmQuaCBkZXBlbmRlbmNpZXMKCjIwMDQtMDItMjkgMjA6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBzeW5jIGNsb3Nlc3RfY29sdW1uIHcvZml4ZXMgaW4gNS0xLXBhdGNoZXM7IGNoZWNrIGZvciBleGlzdGluZyB0YmxfcmVxX2luZm8gaW4KICAgcmVxdWVzdHM7IGNhbGwgc3BhcnNlIHRhYmxlIGhhbmRsZXIgYWZ0ZXIgbm9ybWFsIHRhYmxlIHByb2Nlc3Npbmc7IG1vdmUKICAgbmV0c25tcF90YWJsZV9pbmRleF9maW5kX25leHRfcm93IHRvIHRhYmxlX2NvbnRhaW5lci5jCgoyMDA0LTAyLTI5IDE3OjE0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9jb250YWluZXIuaDoKCiAgIHByb3RvdHlwZSBmb3IgaGFuZGxlciBnZXQ7IG1ha2UgaW5saW5lIGZ1bmMgc3RhdGljIGlubGluZQoKMjAwNC0wMi0yOSAxNzoxMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBvdXQgdy90aGUgb2xkLCBpbiB3L3RoZSBuZXcgKHJlbW92ZSBtZmQgaGVscGVyLCBhZGQgdGFibGVfY29udGFpbmVyKQoKMjAwNC0wMi0yOSAxNzoxMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIHJlbW92ZSBtZmQgaGVscGVyOyBtZmQgY29uZiBmaWxlcyBub3cgdXNlciBuZXcgdGFibGVfY29udGFpbmVyIGhlbHBlcgoKMjAwNC0wMi0yOSAxNzowNiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfY29udGFpbmVyLmM6CgogICByZW1vdmUgZ3JvdXBpbmcgb3B0aW9uICh1c2VyIGNhbiB1c2Ugcm93X21lcmdlIGluc3RlYWQpOyBuZXcgZnVuY3Rpb24gZ28gZ2V0CiAgIGhhbmRsZXIgdy9vdXQgcmVnaXN0ZXI7IGJyZWFrIGNvbXBsZXggY29uZGl0aW9uIGludG8gc2ltcGxlciBjb25kaXRpb25hbHMgc28KICAgYnJlYWtwb2ludHMgY2FuIGJlIHNldCBvbiBjb25kaXRpb247IGRvbid0IGNhbGwgbG93ZXIgaGFuZGxlcnMgaWYgbm8gcmVxdWVzdHMKICAgbmVlZCBwcm9jZXNzaW5nCgoyMDA0LTAyLTI5IDE3OjAxICByc3RvcnkKCiAgICogc25tcGxpYi86IGNvbnRhaW5lcl9pdGVyYXRvci5jLCBjb250YWluZXJfbGlzdF9zc2xsLmMKLCBjb250YWluZXJfbnVsbC5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIGNvbnRhaW5lciBjbGVhcgoKMjAwNC0wMi0yOSAxNjozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICBlbmFibGUgZGxtb2Qgc3VwcG9ydCBpZiBIQVZFX0xJQkRMCgoyMDA0LTAyLTI5IDE2OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2F0Y2ggYmFkIHNpemUgZm9yIGZpeGVkIHNpemUgdHlwZXMKCjIwMDQtMDItMjkgMTY6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYzoKCiAgIG5ldyBmdW5jdGlvbiB0byBzdXBwb3J0IENPTlRBSU5FUl9DTEVBUjsgbWFrZSBzb21lIGZ1bmN0aW9ucyBzdGF0aWMgaW5saW5lCgoyMDA0LTAyLTI5IDE2OjE0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGZpeCBpbnNlcnQvcmVtb3ZlL2ZyZWUgaW5saW5lcyB0byBwcm9wZXJseSBkZWFsIHdpdGggbXVsdGlwbGUgaW5kZXhlczsgYWRkIG5ldwogICBDT05UQUlORVJfQ0xFQVIgbWFjcm8vY2FsbGJhY2s7IGFkZCBub3RlcyBvbiBmcmVlaW5nIHJldHVybmVkIGFycmF5IGZyb20KICAgZ2V0X3N1YnNldAoKMjAwNC0wMi0yOSAxNjowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB1c2UgbWZkIGVycm9yIGluc3RlYWQgb2Ygc25tcCBlcnJvcgoKMjAwNC0wMi0yOSAxNjowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLXNldC5tMmk6CgogICBzZXR1cCBzaXplIG5hbWVzIGJlZm9yZSBpbmNsdWRpbmcgZ2VuZXJpYyBmaWxlCgoyMDA0LTAyLTI5IDE2OjA0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgcmVtb3ZlIGV4dHJhbmVvdXMgZW5kOyBhZGQgY29tbWVudHMKCjIwMDQtMDItMjkgMTY6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgYWRkIGV4aXQoKSBjYWxsCgoyMDA0LTAyLTI5IDE2OjAwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICB0d2Vha3MgdG8gc3VwcG9ydCBuZXcgZ2VuZXJhdGUgZmV3ZXIgZmlsZXMgZmxhZwoKMjAwNC0wMi0yOSAxNTo1OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHR3ZWFrcyB0byBzdXBwb3J0IG5ldyBnZW5lcmF0ZSBmZXdlciBmaWxlcyBmbGFnOyB1c2UgZ2xvYWJsIHRhYmxlIG9pZC9zaXplIHZhcjsKICAgc3dpdGNoIG1mZCB3cmFwcGVyIGZ1bmN0aW9ucyB0byB1c2Ugc3RhbmRhcmQgbmV3IGFwaSBwYXJhbWV0ZXJzOyBuZXcgb3B0aW9uYWwKICAgY2FjaGU7IHVzZSB0d28gbmV3IGhlbHBlcnM6IG5ldHNubXBfYmFieV9zdGVwc19hY2Nlc3NfbXVsdGlwbGV4ZXIgYW5kCiAgIG5ldHNubXBfY29udGFpbmVyX3RhYmxlX2hhbmRsZXI7IGxvb2sgZm9yIGRhdGEvcHV0IGNyZWF0ZWQgcm93IGRhdGEgaW4gcmVxdWVzdAogICBhbGEgY29udGFpbmVyIHRhYmxlIGhhbmRsZXIgZm9yIGxvd2VyIGhhbmRsZXJzOyB0d2Vha3MgZm9yIHVzaW5nIG5ldyBzaW5nbGUKICAgZmlsZSBhY2Nlc3MgbWV0aG9kcwoKMjAwNC0wMi0yOSAxNTo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtdG9wLm0yYzoKCiAgIHR3ZWFrcyB0byBzdXBwb3J0IG5ldyBnZW5lcmF0ZSBmZXdlciBmaWxlcyBmbGFnOyBtYWtlIHRhYmxlIG9pZC9zaXplIGEgZ2xvYmFsCiAgIHZhcjsgc3dpdGNoIG1mZCB3cmFwcGVyIGZ1bmN0aW9ucyB0byB1c2Ugc3RhbmRhcmQgbmV3IGFwaSBwYXJhbWV0ZXJzCgoyMDA0LTAyLTI5IDE1OjQ5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWRhdGEtZ2V0Lm0yYywgbWZkLWRhdGEtc2V0Lm0yYwo6CgogICB1c2UgcmVwb3J0IHByb2dyZXNzIGZsYWc7IHR3ZWFrcyB0byBzdXBwb3J0IG5ldyBnZW5lcmF0ZSBmZXdlciBmaWxlcyBmbGFnCgoyMDA0LTAyLTI5IDE1OjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICB0d2Vha3MgdG8gdXNlIG5ldyBzaW5nbGUgZmlsZSBhY2Nlc3MgbWV0aG9kcyAocHJvY2Vzc2luZyB0eXBlIGZsYWcpCgoyMDA0LTAyLTI5IDE1OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICB0ZXN0IG5ldyBmbGFnIGZvciBsZXNzIHZlcmJvc2Ugb3V0cHV0OyBkb2N1bWVudCB0cmFuc2llbnQgdmFsdWVzIGluIGNvbW1lbnRzCiAgIGFuZCBnZW5lcmF0ZWQgdGFibGUgZGVmYXVsdCBmaWxlOyBtYWtlIHN1cmUgbWZkIGRlZmF1bHRzIGhhdmUgYmVlbiBwcm9jZXNzZWQKCjIwMDQtMDItMjkgMTU6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgZGVmYXVsdCB0byBubyBtYXBwaW5nLCBleGNlcHQgZm9yIG5vZGVzIHcvZW51bXM7IHVzZSBwYXJhbSBuYW1lcyBmb3Igbm9kZQogICBuYW1lczsgcHJvcGVybHkgZXNjYXBlIGxlbiB2YXIgbmFtZQoKMjAwNC0wMi0yOSAxNTowNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXZhbHVlLW1hcC5tMmk6CgogICB0d2VhayBvcmRlciBvZiB0ZXN0aW5nIGNvbmRpdGlvbmFscwoKMjAwNC0wMi0yOSAxNTowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtc2V0Lm0yaToKCiAgIGNvbW1lbnQgdHdlYWtzOyBtYWtlIHN1cmUgdG8gY2xlYXIgdG1wIHZhciBiZWZvcmUgdXNlCgoyMDA0LTAyLTI5IDE1OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1lbnVtcy5tMmMsCiAgICAgZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIHR3ZWFrcyB0byBzdXBwb3J0IGdlbmVyYXRpbmcgZmV3ZXIgZmlsZXMKCjIwMDQtMDItMjkgMTU6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1jb25zdGFudHMubTJjOgoKICAgbmV3IGZpbGUgdG8gZ2VuZXJhdGUgY29tYmluZWQgb2lkL2VudW0gaGVhZGVyCgoyMDA0LTAyLTI5IDE0OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBpbml0IG5ldyBmbGFnIGZvciBjcmVhdGluZyBmZXdlciBmaWxlczsgaW5pdCBuZXcgZmxhZyBmb3IgcHJvY2Vzc2luZyBwYXJ0cwogICBvZiBmaWxlcyAodW50aWwgSSBjYW4gZmlndXJlIG91dCBpZiBJIGNhbiBjb252ZXJ0IHRvIG5ldyBkZWZpbmUvY2FsbGRlZmluZSkKCjIwMDQtMDItMjkgMTQ6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy1jb250YWluZXItY2FjaGVkLWRlZmluZXMubTJpOgoKICAgbmV3IGFjY2VzcyBtZXRob2QgZGVmaW5lcwoKMjAwNC0wMi0yOSAxNDo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmkKLCBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXNldHVwLm0yaToKCiAgIHJlbW92ZSBmaWxlcyAgKG1lcmdlZCBpbnQgbWZkLWFjY2Vzcy11bmRvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaSkKCjIwMDQtMDItMjkgMTQ6NTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1kZWZpbmVzLm0yaQo6CgogICBtZXJnZSBtdWx0aXBsZSBhY2Nlc3MgZmlsZXMgaW50byBvbmUgZmlsZQoKMjAwNC0wMi0yNyAyMjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBmaXggdGhlIGNhc2Ugd2hlcmUgaW5jb21pbmcgZ2V0YnVsa3Mgd2l0aCBubyByZXBlYXRpbmcgdmFyYmluZHMgaXMgcmVjZWl2ZWQuCgoyMDA0LTAyLTI3IDE1OjA0ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgcGVybC9NYWtlZmlsZS5QTCwKICAgICBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9PSUQvTWFrZWZpbGUuUEwsCiAgICAgcGVybC9TTk1QL01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMLAogICAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBwYXRjaCBbIDkwNTQ2NSBdIE1pbkdXIFBlcmwgbW9kdWxlIGNvbXBpbGluZyB3aXRoIEFjdGl2ZVN0YXRlIFBlcmwKCjIwMDQtMDItMjcgMDc6MTggIHNsaWYKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgY29uc3RydWN0IGluc3RhbGwgdHJlZSBzaW1pbGFyIHRvIGluc3RhbGwgdHJlZSB0aGF0IGdjYyBidWlsZHMgdXNlLgoKMjAwNC0wMi0yNyAwNjowNSAgc2xpZgoKICAgKiB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIGJ1aWxkIE1TVlMgcmVsZWFzZSBhbmQgZGVidWcgdmVyc2lvbnMgaGF2aW5nIHRoZSBzYW1lIG5hbWUuCgoyMDA0LTAyLTI3IDA1OjQyICBzbGlmCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBkc2RrL3NubXBkLmRzcCwKICAgICBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgYnVpbGQgTVNWUyByZWxlYXNlIGFuZCBkZWJ1ZyB2ZXJzaW9ucyBoYXZpbmcgdGhlIHNhbWUgbmFtZS4KCjIwMDQtMDItMjcgMDU6MTEgIHNsaWYKCiAgICogd2luMzIvOiBpbnN0YWxsLW5ldC1zbm1wLmJhdCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKOgoKICAgY29uc3RydWN0IGluc3RhbGwgdHJlZSBzaW1pbGFyIHRvIGluc3RhbGwgdHJlZSB0aGF0IGdjYyBidWlsZHMgdXNlLgoKMjAwNC0wMi0yNyAwNDo1MCAgc2xpZgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICAgIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgZW5hYmxlIGdjYyBidWlsZHMgb2YgV2luZG93cyBzZXJ2aWNlIGNvZGUgZm9yIHRoZSBhZ2VudC4KCjIwMDQtMDItMjYgMTc6MjAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jOgoKICAgcmVtb3ZlIHVubmVjZXNzYXJ5IHNldHRpbmcgb2YgTkVUU05NUF9EU19MSUJfQVBQVFlQRS4KCjIwMDQtMDItMjYgMTY6NDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgY29tbW9uLWl6ZSBsb29wIGFuZCBzYXZpbmcgb2Ygc3RhdGUgdmFyaWFibGVzIHRocm91Z2ggYSBjcmVhdGl2ZSB1c2UKICAgb2YgcmVmZXJlbmNlcy4KCjIwMDQtMDItMjYgMTY6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgc3VwcG9ydCBmb3IgQGRlZmluZSBzZWN0aW9ucyB3aGljaCBjYW4gYmUgbGF0ZXIgcmVmZXJyZWQgdG8gYnkgQGNhbGxkZWZpbmUKCjIwMDQtMDItMjYgMTY6MTEgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICAtIGRveHlnZW4gY29uZmlnIGZpbGUuCiAgIC0gVHJhcFJlY2V2aWVyIHBlcmwgbW9kLgoKMjAwNC0wMi0yNiAwNjo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBEb24ndCBjYWxsICdUQ1BfQ291bnRfQ29ubmVjdGlvbnMnIGlmIHRoZSB0Y3BUYWJsZSBtb2R1bGUgaXNuJ3QgaW5jbHVkZWQuCgoyMDA0LTAyLTI2IDA2OjMyICBkdHMxMgoKICAgKiBGQVE6CgogICBNaW5vciB3b3Jkc21pdGhpbmcgdHdlYWtzIHRvIEJydWNlJ3MgRkFRIGNoYW5nZXMuCiAgIEdvc2gsIGJ1dCBEYXZlJ3MgYSBwaWNreSBidWdnZXIgYXQgdGltZXMuCiAgIE5ldmVyIG1pbmQsIHBlcmhhcHMgaWYgeW91IGxldCBoaW0gYW11c2UgaGltc2VsZiB3aXRoIHRoZSBkb2N1bWVudGF0aW9uLAogICB5b3UgbWlnaHQgYmUgYWJsZSB0byBrZWVwIGhpbSBhd2F5IGZyb20gbW9yZSBjcml0aWNhbCBiaXRzIG9mIHRoZSBwcm9qZWN0Li4uLgoKMjAwNC0wMi0yNSAyMzo0NyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYzoKCiAgIHJlbW92ZSBDUiBhY2NpZGVudGFsbHkgaW5zZXJ0ZWQgcHJldmlvdXNseS4KCjIwMDQtMDItMjUgMjE6NDIgIHNsaWYKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIHVzZSBSRkMgMzMzMCBwZXJtaXR0ZWQgYWRkcmVzcyBmb3IgdGhpcyBob3N0IHdoZW4gbG9va2luZyBpbiBnZXRfbXlhZGRyCgoyMDA0LTAyLTI1IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEVuYWJsZSBBRVMgc3VwcG9ydCBmb3IgdGhlIFNOTVAgbW9kdWxlIChjYW4ndCBiZWxpZXZlIGl0J3MgYmVlbiBtaXNzaW5nKQoKMjAwNC0wMi0yNSAxNDo0NiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHJlbW92ZSB1bm5lZWRlZCB3b3JrYXJvdW5kIHBhdGNoIFsgODQwODMwIF0gU05NUC54cyBGcmVlIHRvIHdyb25nIHBvb2wgY3Jhc2ggb24gV2luZG93cwoKMjAwNC0wMi0yNSAxMzowNiAgc2xpZgoKICAgKiBSRUFETUUud2luMzIsIHBlcmwvU05NUC9SRUFETUU6CgogICBwYXRjaCBbOTAxOTQ0XSB3aW4zMiBkb2MgdXBkYXRlcyBmcm9tIEFsZXggQnVyZ2VyCgoyMDA0LTAyLTI0IDEwOjM5ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIHVzZSB3aW5zb2NrIGdldGhvc3RieW5hbWUsIGdldHNlcnZieW5hbWUgb24gbWluZ3czMi4KCjIwMDQtMDItMjQgMDk6NTggIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBwZXIgQmVybmhhcmQgUGVuejogZGVlcCBjb3B5IG9mIGluY2x1ZGUgdHJlZQoKMjAwNC0wMi0yNCAwNjoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBQYXRjaCBmcm9tIEJvYiBSb3dsYW5kczogWyBidWcgOTAyNzIyIF0gQWJsZSB0byBkZWxldGUgdmlldyBldmVuIHdoZW4gc3RvcmFnZSB0eXBlID0gcGVybWFuZW50CgoyMDA0LTAyLTI0IDA1OjQzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmM6CgogICBwYXRjaCBbOTAzNDI0XSBwZXIgQW5keSBTbWl0aDogaWZkZWYgd2luMzIgZml4IGZvciB0Y3BUYWJsZS5jIChjeWd3aW4pCgoyMDA0LTAyLTIzIDE2OjMyICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBQYXRjaCAjOTAxNDYwIGZyb20gQnJ1Y2UgU2hhdzogdXBkYXRpbmcgbWlzYyBGQVEgaW5mb3JtYXRpb24KCjIwMDQtMDItMjMgMTY6MjEgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICB1cGRhdGVkIHBlcmwgYnVpbGQgaW5mbwoKMjAwNC0wMi0yMyAxNjoxMyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIHBhdGNoICM5MDEzNzUgZnJvbSBCcnVjZSBTaGF3OiBzb21lIGluZm9ybWF0aW9uIG9uIElOU1RBTEwgaXMgc3RhbGUKCjIwMDQtMDItMjMgMTM6MjkgIHNsaWYKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICB1bmRvIHByZXZpb3VzIHBhdGNoIC0tIG5vIHNlbWktY29sb25zIGluIERFRkFVTFRfTUlCe0ZJTEVTLERJUlN9CgoyMDA0LTAyLTIzIDEwOjU3ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgY29udmVydCBvdGhlciBsaXN0LW9yaWVudGVkIHNldHRpbmdzIHRvIGNvbnNpZGVyIHNlbWktY29sb24gZGVsaW1pdGVyIGZvciBtaW5ndzMyCgoyMDA0LTAyLTIyIDA5OjQ4ICBzbGlmCgogICAqIHdpbjMyL2luc3RhbGwtbmV0LXNubXAuYmF0OgoKICAgcGVyIEFsZXhCOiBhbHNvIGluc3RhbGwgc25tcGNvbmYgZmlsZXMKCjIwMDQtMDItMjEgMTM6NTYgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCBhY2NvbmZpZy5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2dldG9wdC5oLCBzbm1wbGliL3Rvb2xzLmMsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsIHdpbjMyL2xpYnNkbGwuZHN3OgoKICAgQXBwbHkgcGF0Y2ggIzg5ODQ2NCB0byBmaXggYnVncyAjODk2MDMwIGFuZCAjNzczNDEyCgoyMDA0LTAyLTIwIDA3OjE4ICBzbGlmCgogICAqIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGNvbmZpZ3VyZToKCiAgIHBlciBBbGV4QjogZml4IERFRkFVTFRfTUlCUyB0byB1c2UgJzsnIHNlcGFyYXRvciBvbiBXaW4zMi4KCjIwMDQtMDItMTkgMjA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgV2hvb3BzLiAgVGhhdCB3b3VsZCBub3QgaGF2ZSB3b3JrZWQuICBTaWxseSBtZS4KCjIwMDQtMDItMTkgMjA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgY2hlY2sgbnVtYmVyIG9mIHN1cHBvcnQgcHJvY2Vzc29ycyBwcm9wZXJseQoKMjAwNC0wMi0xOSAyMDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBbIDkwMDI0NCBdIHN1cHBvcnQgdXAgdG8gMzIgQ1BVcyBvbiBsaW51eCBmcm9tIE1pY2hhbCBMdWN6YWsKCjIwMDQtMDItMTkgMTk6NDEgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgICAgc25tcE5vdGlmeVRhYmxlLmg6CgogICBmaXggYnVnIDg5ODUwOSBmdW5jdGlvbiBwb2ludGVyIHByb3RvdHlwZXMgZGVmaW5lZCB0d2ljZQoKMjAwNC0wMi0xOSAxODo1MCAgc2xpZgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIGFsbG93IERPUyB2b2x1bWUgbmFtZSBbQS1aXTogdG8gYmVnaW4gdGhlIHBhdGggc3BlYyBmb3IgcHJlZml4ZXMKCjIwMDQtMDItMTkgMDk6NDEgIHNsaWYKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IHNwZWxsIE5TQ19FWEVDX1BSRUZJWAoKMjAwNC0wMi0xOCAyMzozNSAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC9taWJsb2FkLnQ6CgogICBwZXIgQWxleEI6IC13aW4zMiBzdXBwb3J0CgoyMDA0LTAyLTE4IDIzOjM1ICBzbGlmCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBwZXIgQWxleEI6CiAgIC1hZGQgV2luMzIgc3VwcG9ydCBmb3Igc3RhcnRpbmcgLyBzdG9wcGluZyBzbm1wZCBhbmQgc25tcHRyYXBkCiAgIC1hbGxvdyBzcGFjZXMgaW4gc25tcHRlc3QuY21kIGZpbGUKCjIwMDQtMDItMTggMjM6MzQgIHNsaWYKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgLW1ha2UgJG15IG9wdHMgZ2xvYmFsIHNvIGl0J3MgdmlzaWJsZSB0byBHZXRUZXN0SW5mbygpCiAgIC1yZS13cml0ZSB3aW4zMiBjb2RlIGNyZWF0ZSBzbm1wdGVzdC5jbWQgZmlsZQoKMjAwNC0wMi0xOCAyMzoyNyAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIG5vdGlmeS50OgoKICAgcGVyIEFsZXhCOiB0ZXN0IHRoYXQgdmFyaWFibGVzIGFyZSBkZWZpbmVkIGJlZm9yZSB1c2luZyB0aGVtLgoKMjAwNC0wMi0xOCAyMzoxNyAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC86IGFzeW5jLnQsIGJ1bGt3YWxrLnQ6CgogICBwZXIgQWxleEI6IGRpc2FibGUgYXN5bmNoIHRlc3RzIHdoZW4gcnVuIG9uIHdpbjMyIHBsYXRmb3JtLgoKMjAwNC0wMi0xOCAyMzowMCAgc2xpZgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIG1pYmxvYWQudDoKCiAgIHBlciBBbGV4QjogYWRkIG1pc3Npbmcgc25tcHRlc3RfY2xlYW51cCBjYWxsCgoyMDA0LTAyLTE4IDIyOjQ1ICBzbGlmCgogICAqIHBlcmwvU05NUC90L2NvbmYudDoKCiAgIHBlciBBbGV4QjogdHlwbyBmaXggImNvbXBpbGVkIHRoZSIKCjIwMDQtMDItMTggMjI6NDAgIHNsaWYKCiAgICogcGVybC86IE1ha2VmaWxlLlBMLCBNYWtlZmlsZS5zdWJzLnBsLCBBU04vTWFrZWZpbGUuUEwKLCBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsCiAgICAgYWdlbnQvTWFrZWZpbGUuUEwsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBmcm9tIEFsZXggQnVyZ2VyOiBjYXNlIGluc2Vuc2l0aXZlIGNoZWNrIGZvciAtTkVULVNOTVAtSU4tU09VUkNFIGNvbW1hbmQgcGFyYW0uCgoyMDA0LTAyLTE4IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhIHYzLXNlY3VyaXR5IGF1dG8tYnVpbHQgaGVhZGVyIGR1cmluZyBkaXN0Y2xlYW4KCjIwMDQtMDItMTggMTE6NTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgZG9jdW1lbnQgLUMgb3B0aW9uIGluIHVzYWdlCgoyMDA0LTAyLTE4IDExOjU3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItbmlnaHRseToKCiAgIGZpeCBwYXRoIGluIHVzYWdlOyB1c2UgbmV3IG5zZy1zdWZmaWMgaW4gdXBsb2FkIHBhdGgKCjIwMDQtMDItMTggMTE6NDAgIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB1c2UgSU5TVEFMTF9CQVNFIC1yZWxhdGl2ZSBta3RlbXAgZmlsZSBwYXR0ZXJuLgoKMjAwNC0wMi0xOCAwOToyNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1ha2UgIyBlcnIgbGluZXMgcmVwb3J0ZWQgY29uZmlndXJhYmxlLiBkZWZhdWx0IHRvIDI1CgoyMDA0LTAyLTE4IDA2OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBQcm92aWRlIGEgZGVmaW5pdGlvbiBmb3IgJ2luNmFkZHJfYW55JyB1bmRlciBXaW5kb3dzCiAgIChBbHRob3VnaCB0aGVyZSdzIGFuIGV4dGVybmFsIGRlY2xhcmF0aW9uIG1lbnRpb25lZCBpbgogICAgPHdzMnRjcGlwLmg+LCB0aGVyZSBubyBhY3R1YWwgdmFyaWFibGUgaW4gdGhlIGxpYnJhcnkpCgoyMDA0LTAyLTE3IDEwOjMzICBoYXJkYWtlcgoKICAgKiBtYWtlbm9zeXNkZXBlbmQucGw6CgogICByZWdleHAgdG91Y2h1cHMKCjIwMDQtMDItMTcgMDc6MjcgIHJzdG9yeQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBidW1wIE1BWFRDIHVwIHRvIDQwOTYKCjIwMDQtMDItMTcgMDc6MjUgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBvbmx5IGFwcGVuZCBzdWZmaWMgdG8gYnVpbGQgZGlyIHdoZW4gYnVpbGRpbmcgZGVmYXVsdCBidWlsZCBkaXI7IHJlbW92ZQogICBzeXN0ZW0gc3BlY2lmaWMgdHdlYWtzIGZvciBzZiBjZiwgdGhleSBzaG91bGQgZ28gaW4gfi8uc25tcC9uc2ItcmMKCjIwMDQtMDItMTcgMDU6NTQgIHNsaWYKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBlcnJvciBhZnRlciBjaGFuZ2UgZm9yIEZpeCBbODAxOTI4XQoKMjAwNC0wMi0xNyAwNDozOSAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IFs4MDE5MjhdIHdyb25nIGNhbGwgb2Ygc3RybGNweSBpbiB1cHRpbWVfc3RyaW5nCgoyMDA0LTAyLTE3IDAzOjIzICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFR3ZWFrIElQdjYgdHJhbnNwb3J0cyBzbyB0aGF0IHRoZXkgY29tcGlsZSB1bmRlciBXaW5kb3dzLgoKMjAwNC0wMi0xNyAwMjo0MiAgZHRzMTIKCiAgICogc25tcGxpYi86IGluZXRfbnRvcC5jLCBpbmV0X3B0b24uYzoKCiAgIFByb3ZpZGUgaW1wbGVtZW50YXRpb25zIG9mICdpbmV0X250b3AnIGFuZCAnaW5ldF9wdG9uJyBmb3IKICAgc3lzdGVtcyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlbSBuYXRpdmVseS4KCjIwMDQtMDItMTcgMDI6MjkgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgRml4IFs4OTY3OTNdIGxvYWRhdmUuYyBpbmNsdWRlcyBzeXMvc3RhdC5oIHR3aWNlCgoyMDA0LTAyLTE3IDAwOjQ1ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmg6CgogICBmaXggYnVnIDg5ODUwOSBmdW5jdGlvbiBwb2ludGVyIHByb3RvdHlwZXMgZGVmaW5lZCB0d2ljZQoKMjAwNC0wMi0xNiAyMTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgcmVtb3ZlZCB1bnVzZWQgZnVuY3Rpb24gZnJvbSBsYXN0IHBhdGNoCgoyMDA0LTAyLTE2IDIxOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYywKICAgICB1Y2Qtc25tcC9wcm9jLmM6CgogICBwYXRjaCBbIDgzNjM5MyBdIE1vcmUgcHJvYyBpbXByb3ZlbWVudHMgZm9yIExpbnV4IGZyb20gSG93YXJkIFdpbGtpbnNvbgoKMjAwNC0wMi0xNiAxODoyOCAgc2xpZgoKICAgKiB3aW4zMi9ubWFrZXBlcmwuYmF0OgoKICAgbm90ZSBzdWItZGlyZWN0b3J5IHdoZXJlICJubWFrZSIgb3V0cHV0IGZpbGVzIGFyZSB3cml0dGVuLgoKMjAwNC0wMi0xNiAxNTowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJFQURNRSwgUlVOVEVTVFMsIFRFU1RDT05GLnNoLAogICAgIGV2YWxfdG9vbHMuc2gsIHRlc3RzL1N2YWNtY29uZmlnLCB0ZXN0cy9TdmFueWNvbmZpZwosIHRlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RzL1QwMTRzbm1wdjJjZ2V0LAogICAgIHRlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgdGVzdHMvVDAxNjBzbm1wdjJjYnVsa2dldCwKICAgICB0ZXN0cy9UMDE2c25tcHYyY2dldGZhaWwsIHRlc3RzL1QwMTdzbm1wdjJjdG92MWdldGZhaWwKLCB0ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICAgIHRlc3RzL1QwMTlzbm1wdjJjbm9zdWNoLCB0ZXN0cy9UMDIwc25tcHYzZ2V0LAogICAgIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LCB0ZXN0cy9UMDIyMHNubXB2M2J1bGtnZXQsCiAgICAgdGVzdHMvVDAyMnNubXB2M2dldE1ENSwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUywKICAgICB0ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywKICAgICB0ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbCwgdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbgosIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0sIHRlc3RzL1QwNTBzbm1wdjN0cmFwLAogICAgIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCwgdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sCiAgICAgdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLAogICAgIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgICB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwgdGVzdHMvVDEwMGFnZW50aHVwLAogICAgIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQsCiAgICAgdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RzL1QxMTNhZ2VudHh0cmFwLAogICAgIHRlc3RzL1QxMjBwcm94eWdldCwgdGVzdHMvVDEyMXByb3h5c2V0LAogICAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWwsIHRlc3RzL1QxMzBzbm1wdjF2YWNtZ2V0LAogICAgIHRlc3RzL1QxMzFzbm1wdjJjdmFjbWdldCwgdGVzdHMvVDEzMnNubXB2M3ZhY21nZXQsCiAgICAgdGVzdHMvVDE0MHNubXB2MXZhY21nZXRmYWlsLCB0ZXN0cy9UMTQxc25tcHYyY3ZhY21nZXRmYWlsCiwgdGVzdHMvVDE0MnNubXB2M3ZhY21nZXRmYWlsOgoKICAgUGF0Y2ggIzcwMjgzNSAocGx1cyB0d2Vha3MpOiBwYXRjaCB0byBlbmFibGUgdGVzdCBjYXNlcyBydW4gb24gZGlmZmVyZW50IHRyYW5zcG9ydCBkb21haW4gZnJvbSBYaWFvZmVuZyBMaW5nCgoyMDA0LTAyLTE2IDE0OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jOgoKICAgRml4IGJ1ZyBbIDg5Njc3NyBdIGVycm9ybWliLmMgaW5jbHVkZXMgc3lzL3N0YXQvaCB0d2ljZQoKMjAwNC0wMi0xNiAxNDoyMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBbbm8gbG9nIG1lc3NhZ2VdCgoyMDA0LTAyLTE2IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIEJ1ZyBbIDg5NzU1MCBdIFBlcmwgU05NUC5wbSBtaXNzaW5nIGRvY3VtZW50YXRpb24gYW5kIGF0dGFjaGVkIHBhdGNoIGZyb20gQWxleCBCdXJnZXIKCjIwMDQtMDItMTYgMTI6NDUgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZiwgYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9zY2FsYXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvY2FsbGJhY2suYwosIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIFBhdGNoOiBbIDgxOTI0MSBdIEFkZCB0byB0aGUgQVBJIGRvY3VtZW50YXRpb24gZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTYgMTE6NDEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBQYXRjaCBbIDg5ODE2MCBdIFNubXB0YWJsZSBsb29wcyBpZiB0YWJsZSBpcyBhdCB0aGUgZW5kIG9mIHRoZSBtaWIgZnJvbSBDcmlzcGluIEZsb3dlcmRheQoKMjAwNC0wMi0xNiAxMDozMCAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBtYWtlIG1lbnUgcGF0aCB0byByZWdpc3RlciBQU0RLIG1vcmUgY29tcGxldGUuCgoyMDA0LTAyLTE2IDEwOjAxICBzbGlmCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIHJlbW92ZSBwbGF0Zm9ybSBTREsgaGVhZGVyIFNubXAuaCBmcm9tIFNPVVJDRVMgbGlzdC4KCjIwMDQtMDItMTYgMDY6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgRml4IGEgbWlzc2luZyB2YXJpYWJsZSBmcm9tIHRoZSBwcmV2aW91cyBwYXRjaC4KCjIwMDQtMDItMTUgMTg6MTkgIHNsaWYKCiAgICogd2luMzIvaW5zdGFsbC1uZXQtc25tcC5iYXQ6CgogICBjb3B5IGRsbCB0byBzeXN0ZW0zMiBjYWNoZQoKMjAwNC0wMi0xNSAxNTo0NyAgc2xpZgoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3OgoKICAgdGhlIHByb2plY3QgZGVwZW5kZW5jaWVzIGFyZSBub3QgcmVsaWFibGUuICByZW1vdmUgdGhlbS4KCjIwMDQtMDItMTUgMTI6MDAgIHNsaWYKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgWFlYIGNvbW1lbnRzOyBub3RlIHRoYXQgc25tcF9pbml0X21pYl9pbnRlcm5hbHMgZG9lcyBub3RoaW5nLgoKMjAwNC0wMi0xNSAxMDozOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCBzeW50YXggZXJyb3IKCjIwMDQtMDItMTUgMTA6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjaGVjayBmb3IgYW5kIHNvdXJjZSBuZXcgY29tbW9uIGNvbmZpZyBmaWxlCgoyMDA0LTAyLTE0IDA5OjQxICBzbGlmCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMnNkay5kc3c6CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIGZvciBsaWJzbm1wIHByb2plY3QKCjIwMDQtMDItMTQgMDY6MjAgIHNsaWYKCiAgICogUkVBRE1FOgoKICAgQWRkIE5vYWggRnJpZWRtYW4sIGZpeGluZyBidWcgODg3MjkxCgoyMDA0LTAyLTE0IDAyOjUxICBzbGlmCgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIFJlbW92ZSBnbG9iYWwgZGVwZW5kZW5jeSBmb3IgbGlic25tcCBwcm9qZWN0IChub3QgbmVjZXNzYXJ5KS4KCjIwMDQtMDItMTMgMTY6MDIgIHNsaWYKCiAgICogd2luMzIvbm1ha2VwZXJsLmJhdDoKCiAgIGJldHRlciBleHBsYW5hdG9yeSBtZXNzYWdlcywgYW5kIGltcHJvdmVkIHRlc3QgcmVzdWx0cyBjb2xsZWN0ZWQuCgoyMDA0LTAyLTEzIDEzOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oOgoKICAgUGF0Y2ggWyA4MTIwMzQgXSBpcEFkRW50UmVhc21NYXhTaXplIGRvZXMgbm90IHJldHVybiBkYXRhIG9uIHNubXBnZXQgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDQtMDItMTMgMTI6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IEFFUyBub3RlIG91dHB1dCBicm9rZW4gYnkgbGFzdCBwYXRjaAoKMjAwNC0wMi0xMyAxMjoxOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9wa2NzLmMsCiAgICAgc25tcGxpYi9zY2FwaS5jOgoKICAgUGF0Y2ggWyA4MDczNzUgXSBhZGQgc3RhbmRhcmQgUEtDUyMxMSBpbnRlcmZhY2Ugc3VwcG9ydCBmb3IgdXNtOiBhbHRlcm5hdGl2ZSBzZWN1cml0eSBsaWJyYXJ5IChvcGVuc3NsIG5vIGxvbmdlciBuZWVkZWQgb24gZnV0dXJlIHNvbGFyaXMpIGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTEzIDExOjU5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgUGFydCBvZiBwYXRjaCAoc29tZSBoYWQgYmVlbiBkb25lKSBmb3IgWyA3NjczMTYgXSBmaXggaGFuZGxpbmcgb2YgYXVnbWVudGVkIHRhYmxlcyBpbiBwZXJsIG1vZHVsZSBmcm9tIFJhbmR5IENvdWV5CgoyMDA0LTAyLTEzIDExOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFNlY29uZCBwYXJ0IG9mIGRpc2tpbyBsb2FkIGF2ZXJhZ2UgcGF0Y2gKCjIwMDQtMDItMTMgMTE6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLCBtaWJzL1VDRC1ESVNLSU8tTUlCLnR4dAo6CgogICBwYXRjaCBbIDc5NTQyNCBdIGRpc2tpb0xBIC0gZGlzayBsb2FkIGF2ZXJhZ2UgZm9yIEZyZWVCU0QgKGRldnN0YXQpIGZyb20gUm9qZXIKCjIwMDQtMDItMTMgMTE6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcGF0Y2ggWyA3OTkwNTAgXSBBSVggcGF0Y2hlcyAtIHVjZC1zbm1wL2Rpc2tpbyBmcm9tIE1pY2hhZWwgS3VrYXQKCjIwMDQtMDItMTMgMTE6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1pc3NlZCBhIHBvcnRpb24gb2YgcGF0Y2ggIzgxNTQzOSBmaXhpbmcgYXV0aCBmYWlsdXJlIHRyYXBzLiAgcGF0Y2ggZ290IGNvbmZ1c2VkIGJ5IHByZXZpb3VzbHkgZXhpc3RpbmcgY29kZSBiZWZvcmUuCgoyMDA0LTAyLTEzIDEwOjQ4ICBzbGlmCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb25lIGxpbmUgY2hhbmdlIHRvIHByb3Blcmx5IHRlcm1pbmF0ZSBhIGNvbW1lbnQgaW5qZWN0ZWQgYnkgdGhlIHByZXZpb3VzIHBhdGNoLgoKMjAwNC0wMi0xMyAxMDozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgTmljayBCYXJrYXMgdG8gdGhlIFJFQURNRQoKMjAwNC0wMi0xMyAxMDozNiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIFJlcGxhY2UgZ2V0X3RyZWVfaGVhZCgpIGZvciByZWZlcmVuY2VzIHRvIHZhcmlhYmxlcyBNaWIgYW5kIHRyZWVfaGVhZC4KICAgUmVtb3ZlIERMTF9JTVBPUlQgbGluZXMsIGFuZCBCT09UIHNlY3Rpb24sIGFzIHRoZXkgYXJlIG5vdCBuZWVkZWQuCiAgIE1hcmsgcXVlc3Rpb25hYmxlIGNvbW1lbnRlZCBjb2RlIHdpdGggWFlYIGZvciBwb3NzaWJsZSByZW1vdmFsLgoKMjAwNC0wMi0xMyAxMDozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBQYXRjaCBbIDg5NTUwOSBdIG1lbW9yeSBpbmZvIGZyb20gdWNkLXNubXAgbWliIG9uIGxpbnV4IDIuNiBmcm9tIE5pY2sgQmFya2FzCgoyMDA0LTAyLTEzIDEwOjIwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxNTFzb2xhcmlzaG9zdGRpc2s6CgogICBQYXRjaCBbIDg5NDcxMSBdIFNvbGFyaXMgZGlzayB0ZXN0IGZhaWxzIG9uIHNvbWUgT1MncyBmcm9tIEJydWNlIFNoYXcKCjIwMDQtMDItMTMgMTA6MDUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvaW50NjQuaCwgc25tcGxpYi9hc24xLmMsCiAgICAgc25tcGxpYi9jaGVja192YXJiaW5kLmMsIHNubXBsaWIvaW50NjQuYzoKCiAgIFsgODQ5MTU4IF0gNS4xOiAvY29uc3QvIGZpeGVzIGZvciB0aGUgQVBJIGZyb20gU3RlcGhlbiBKLiBGcmllZGwKCjIwMDQtMDItMTIgMjA6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2NvbnRhaW5lci5jOgoKICAgdXBkYXRlIGZvciByZW5hbWVkIGRlZmluZXMKCjIwMDQtMDItMTIgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoIFsgODE1NDM5IF0gc25tYWdlbnQgZG9lcyBub3Qgc2VuZCBhdXRoIGZhaWx1cmUgdHJhcHMgZm9yIHYzIGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTEyIDE3OjA2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgcmVtb3ZlIGNvcHlyaWdodCBjb21tZW50IGFjY2lkZW50aWNhbGx5IHBsYWNlZAoKMjAwNC0wMi0xMiAxNzowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIFsgODEyMDA1IF0gc2VnbWVudGF0aW9uIGZhdWx0IGluIHNubXB0YWJsZQoKMjAwNC0wMi0xMiAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgcGF0Y2ggWyA4MTEyNzggXSBtYWtlIGFnZW50eCB1ZHAvdGNwIHRyYW5zcG9ydHMgY29uZmlndXJhYmxlIGZyb20gQm9iIFJvd2xhbmRzCgoyMDA0LTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgUGF0Y2ggWyA4MDk0MzggXSBGaXggc2V2ZXJhbCBwcm9ibGVtcyB3aXRoIGhvc3QgcmVzb3VyY2VzIE1JQiBmcm9tIEJvYiBSb3dsYW5kcyAoZml4ZXMgbXVsdGlwbGUgYnVncykKCjIwMDQtMDItMTIgMTU6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBub3RlIGFib3V0IHNubXB0cmFwZCBwZXJsCgoyMDA0LTAyLTEyIDE0OjQxICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFkZCBhIHNlY3Rpb24gIkJ1aWxkaW5nIHdpdGggTWluR1ciCgoyMDA0LTAyLTEyIDExOjM1ICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvbm1ha2VwZXJsLmJhdDoKCiAgIEFkZCBob3cgdG8gKHdpdGggc2NyaXB0KSBmb3IgYnVpbGRpbmcgUGVybCBTTk1QIG1vZHVsZXMgdXNpbmcgTVNWQy4KCjIwMDQtMDItMTIgMDg6MzYgIHNsaWYKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGNyZWF0ZSBzbm1wbGlic2RpciBmb3Igc25tcF9wZXJsX3RyYXBkLnBsLCBiZWZvcmUgaW5zdGFsbGluZyB0aGVyZS4KCjIwMDQtMDItMTIgMDg6MzEgIHNsaWYKCiAgICogd2luMzIvOiBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AKLCBsaWJzbm1wL2xpYnNubXAuZHNwLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AKLCBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsIHNubXBkL3NubXBkLmRzcAosIHNubXBkc2RrL3NubXBkLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICByZW1vdmUgdW51c2VkIGNvbXBpbGUgY29uc3RhbnQgdGhhdCBTbGlmIGNyZWF0ZWQgZHVyaW5nIGhpcyBETEwgZXhwZXJpbWVudHMuCgoyMDA0LTAyLTEyIDA2OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9jb250YWluZXIuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2NvbnRhaW5lci5oOgoKICAgbmV3IHRhYmxlIGNvbnRhaW5lciBoZWxwZXIKCjIwMDQtMDItMTIgMDU6MzIgIHNsaWYKCiAgICogcGVybC9PSUQvT0lELnhzLCBwZXJsL1NOTVAvU05NUC54cywKICAgICBwZXJsL2FnZW50L2FnZW50LnhzLCB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAo6CgogICBjbGVhbnVwIFBlcmwgU05NUCBtb2R1bGUgYnVpbGQgdGhyb3VnaCB0eXBlIGNhc3RpbmcgYW5kCiAgIHJlbW92aW5nIHVudXNlZCB2YXJpYWJsZXMuCiAgIEZvciBTTk1QLnhzLCB0aGVyZSB3YXMgYSBuYW1lZCB2YXJpYWJsZSAnYmVzdF9ndWVzcycgdGhhdCBibG9ja2VkCiAgIHRoZSBjYWxsaW5nIHBhcmFtIG9mICJzbm1wX2dldF90eXBlIiwgcmVtb3ZlZCB3aXRoIHRoaXMgdXBkYXRlLgogICBUaGUgd2luMzIgY29uZmlnLmggbm8gbG9uZ2VyIHRyaWVzIHRvIGRlZmluZSBiY29weSxiemVybyxiY21wLHN0cmNhc2VjbXAuCgoyMDA0LTAyLTEyIDAxOjIyICBzbGlmCgogICAqIHBlcmwvU05NUC90L2J1bGt3YWxrLnQ6CgogICB1c2UgYSByZWFzb25hYmxlIHZhbHVlICgxKSBmb3Igbm9uLXJlcGVhdGVyIGluIGZpcnN0IGJ1bGt3YWxrLgoKMjAwNC0wMi0xMiAwMDozMiAgc2xpZgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmggYmVmb3JlIHVzaW5nIEhBVkVfUkVHRVhfSC4KICAgcmVwbGFjZSBjb21wdXRlX21hdGNoIHdpdGggdGhlIG5vbi1yZWdleCBzYXZ2eSB2ZXJzaW9uIGZyb20gc25tcGxpYi9wYXJzZS5jLgogICBGaW5hbGx5LCBkaXNhYmxlIFdpbjMyIERMTCBkZWNvcmF0aW9uLCBhcyBETEwgYnVpbGQgaXMgbm90IHN1cHBvcnRlZC4KCjIwMDQtMDItMTEgMjA6NTQgIHNsaWYKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgc25tcHRyYXBkIGJ1aWxkcyB1c2luZyB0aGUgc2FtZSBwcm9qZWN0IGZpbGUgZm9yIFBTREsgb3Igbm9uLVBTREsKCjIwMDQtMDItMTEgMTg6MjYgIHNsaWYKCiAgICogcGVybC86IE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTCwKICAgICBPSUQvTWFrZWZpbGUuUEwsIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgICBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMOgoKICAgZml4IGJ1ZyBbIDg5NTM2NyBdIFdpbjMyIFBlcmwgYnVpbGQgLU5FVC1TTk1QLVBBVEggYW5kIHBhdGhzIHdpdGggc3BhY2VzCgoyMDA0LTAyLTExIDE3OjQyICBzbGlmCgogICAqIHdpbjMyL25ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgICB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3AsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEw6CgogICBuZXRzbm1wbWlic3Nkay5saWIgcmVuYW1lZCB0byBuZXRzbm1wbWlicy5saWIKCjIwMDQtMDItMTEgMTc6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgRG8gbm90IGhhdmUgZ2V0dGFibGUgcmV0dXJuIGhleCBlbmNvZGVkIHN0cmluZ3MgaWYgbm90IHByaW50YWJsZS4gIE5vCiAgIG90aGVyIGZ1bmN0aW9uIGRvZXMgdGhpcywgc28gd2h5IHdvdWxkIGdldHRhYmxlIGJlIGFueSBkaWZmZXJlbnQuCgoyMDA0LTAyLTExIDE3OjExICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIE1TVkMgYnVpbGQgcmVxdWlyZXMgdXNpbmcgYnV0IG9uZSB3b3Jrc3BhY2UuCgoyMDA0LTAyLTExIDExOjA3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1RyYXBSZWNlaXZlci86IC5jdnNpZ25vcmUsIENoYW5nZXMsIE1BTklGRVNUCiwgTWFrZWZpbGUuUEwsIFJFQURNRSwgVHJhcFJlY2VpdmVyLnBtLAogICAgIFRyYXBSZWNlaXZlci54cywgY29uc3QtYy5pbmMsIGNvbnN0LXhzLmluYywKICAgICBwZXJsX3NubXB0cmFwZC5oLCBwcHBvcnQuaCwgdHlwZW1hcCwKICAgICBmYWxsYmFjay9jb25zdC1jLmluYywgZmFsbGJhY2svY29uc3QteHMuaW5jLCB0LzEudAo6CgogICBJbml0aWFsIHBhc3MgYXQgYW4gZW1iZWRkZWQgcGVybCBtb2R1bGUgZm9yIHNubXB0cmFwZC4KICAgICBXaGF0cyBvZGQgZm9yIHR5cGljYWwgaW5pdGlhbCBjb2RlIGZyb20gbWUgaXMgdGhhdCBpdCdzIGZ1bGx5CiAgICAgZnVuY3Rpb25hbCBhbmQgZG9jdW1lbnRlZCBldmVuIQoKMjAwNC0wMi0xMSAxMDo1NyAgaGFyZGFrZXIKCiAgICogcGVybC9NYWtlZmlsZS5QTDoKCiAgIEFkZCB0aGUgVHJhcFJlY2VpdmVyIG1vZHVsZSB0byB0aGUgbGlzdCBvZiBkZWZhdWx0cy4KCjIwMDQtMDItMTEgMTA6NTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wZXJsX3RyYXBkLnBsOgoKICAgQSBwZXJsIGJvb3RzdHJhcHBpbmcgc3RhcnR1cCBmaWxlLgoKMjAwNC0wMi0xMSAxMDo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIHBlcmwgc3RhcnR1cCBmaWxlLgoKMjAwNC0wMi0xMSAxMDo1MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEluaXRpYWxpemUgcGVybAoKMjAwNC0wMi0xMSAxMDo1MyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIGNyZWF0ZSBhIGhhbmRsZXJfZGF0YSBmaWVsZC4KCjIwMDQtMDItMTEgMDc6MjggIHNsaWYKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBTaG93IEFFUyBvbmx5IHRvIHJlZmxlY3QgcHJldmlvdXMgY2hhbmdlcyAtLSBVc2UgQUVTIGluc3RlYWQgb2YgQUVTMTI4LDE5MiwyNTYKCjIwMDQtMDItMTEgMDY6MDggIHNsaWYKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIGFubm91bmNlIGNvcnJlY3QgbnVtYmVyIG9mIHRlc3RzICh3YXMgMzYsIG5vdyAzOCkKCjIwMDQtMDItMTEgMDY6MDYgIHNsaWYKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGw6CgogICB1cGRhdGUgdG8gcmVmbGVjdCBjaGFuZ2UgaW4gdmFsdWUgb2YgTkVUU05NUF9EU19NQVhfU1VCSURTCgoyMDA0LTAyLTEwIDE3OjA1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IGFsd2F5cyBmYWxzZSB0ZXN0CgoyMDA0LTAyLTEwIDE2OjE3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbmV3IG5ldHNubXBfdGFibGVfbmV4dF9jb2x1bW4KCjIwMDQtMDItMTAgMTQ6MzYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICByZW1vdmUgY29kZSBiZWZvcmUgdmFyaWFibGUgZGVjbGFyYXRpb25zCgoyMDA0LTAyLTEwIDEzOjIzICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHRvdWNoIHVwIGluc3RydWN0aW9ucyBmb3IgTVNWQyBidWlsZHMgdGhhdCB1c2UgT3BlblNTTAoKMjAwNC0wMi0xMCAwOTowOSAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgbWVyZ2UgdXBkYXRlIGZyb20gQnJ1Y2UgZnJvbSA1LTEtcGF0Y2hlcwoKMjAwNC0wMi0xMCAwODozMyAgc2xpZgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIGFwcGx5IHNubXBjb25mMyBvZiBwYXRjaCA4Mzc5Njc7IGFkZCBjbG9zZSB0byByZWFkX2NvbmZpZwoKMjAwNC0wMi0xMCAwMzo1MCAgc2xpZgoKICAgKiBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgZml4IGJ1ZyA4OTI2MTYKCjIwMDQtMDItMDkgMTU6MDMgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIEVuYWJsZSBzdGRlcnJsb2cgaWYgbm8gb3RoZXIgbG9nZ2luZyBpcyBlbmFibGVkIC0gdG8gYXZvaWQgd2FybmluZwoKMjAwNC0wMi0wOSAxNDoxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGV4cG9ydCBDUFA9Y3BwIG9uIERhcndpbiBzbyBBcHBsZSdzIGdjYyBkb2Vzbid0IGJyZWFrIGNvbmZpZ19yZXF1aXJlCgoyMDA0LTAyLTA5IDA4OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5jOgoKICAgZml4IGNvbHVtbiBuYW1lcwoKMjAwNC0wMi0wOSAwODo1NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWZUYWJsZV9jb2x1bW5zLmgsCiAgICAgaWZYVGFibGVfY29sdW1ucy5oOgoKICAgYWRkIG1pc3NpbmcgZmlsZXMKCjIwMDQtMDItMDkgMDg6MjQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgKOgoKICAgSW1wbGVtZW50IGEgbmV3IGhlbHBlciB0byBjb3BlIHdpdGggc2tpcHBpbmcgImhvbGVzIiBpbiBhIHRhYmxlCiAgIChhbmQgdHdlYWsgdGhlICd0YWJsZV9kYXRhJyBoZWxwZXIgdG8gbWFrZSB1c2Ugb2YgaXQpLgogICBOb3RlIHRoYXQgdGhpcyByZXF1aXJlcyB0aGUgX3JlcXVlc3Rfc2V0X2Vycm9yKCkgcm91dGluZSB0byBiZQogICBhIGJpdCBmbGV4aWJsZSBpbiBhY2NlcHRpbmcgZXhjZXB0aW9ucyB0aGF0IGFyZW4ndCBzdHJpY3RseSB2YWxpZC4KCjIwMDQtMDItMDkgMDc6NTcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgRW5zdXJlIG9uZSBvYmplY3QncyAnd3JpdGVfbWV0aG9kJyBpc24ndCBwaWNrZWQgdXAgYnkgYW55dGhpbmcgZWxzZS4KCjIwMDQtMDItMDkgMDc6MzQgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgR3VhcmQgYWdhaW5zdCBwYXNzaW5nIE5VTEwgcGFyYW1ldGVycyB0byBzdHJjbXAvc3RybGVuLgogICBQcm9iYWJseSBzaG91bGRuJ3QgZXZlciBoYXBwZW4sIGJ1dCBEYXZlJ3MgaW4gYSBzdXNwaWNpb3VzIG1vb2QuCiAgIFFuOiBTaG91bGQgdGhlc2UgY2hhbmdlcyBiZSBhcHBsaWVkIHRvIHRoZSA1LjEueCAoPyYgNS4wLngpIGxpbmU/CgoyMDA0LTAyLTA5IDA0OjA1ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmM6CgogICBidWlsZCBhZ2VudCBvbiBtaW5ndywgd2l0aG91dCB3aW4zMiBTQ00gZ2x1ZS4KCjIwMDQtMDItMDkgMDM6MjYgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIGFkZCBkZXBlbmRlbmN5IGZvciBsaWJzbm1wIHRvIGJ1aWxkIHNubXBkLgoKMjAwNC0wMi0wOCAxOTo1MCAgc2xpZgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIGNsZWFuZWQgdXAsIHJlYWR5IGZvciBtYWluc3RyZWFtLiAgSG93ZXZlciwgbm90IGdjYy1mcmllbmRseSwganVzdCB5ZXQuCgoyMDA0LTAyLTA4IDE4OjU1ICBzbGlmCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcmVnZW4gY29uZmlndXJlIGZyb20gY29ycmVjdCBjb25maWd1cmUuaW4KCjIwMDQtMDItMDggMTg6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaDoKCiAgIG5ldyBkZWZpbmUgVVRNUF9IQVNfTk9fUElECgoyMDA0LTAyLTA4IDE4OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIHVzZSBuZXcgZGVmaW5lIFVUTVBfSEFTX05PX1BJRDsgc2ltcGxpZnkgbG9vcCBsb2dpYwoKMjAwNC0wMi0wOCAxNzo0NCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICBkb24ndCBwdXQgb3BlbiBicmFjZSBpbiBpZmRlZiBpZiBjbG9zZSBicmFjZSBoYXMgbm8gaWZkZWYKCjIwMDQtMDItMDggMTY6MjEgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBleHRyYSB0cmFuc3BvcnRzIHNob3VsZCBiZSBlbXB0eTsgQ2FsbGJhY2sgc2hvdWxkIGJlIGluIGRpc3QgdHJhbnNwb3J0cwoKMjAwNC0wMi0wOCAxNTo1MCAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBJbmNsdWRlIHNhbXBsZSBkaXNwbGF5IGZyb20gcnVubmluZyBpbnN0YWxsLW5ldC1zbm1wLmJhdAoKMjAwNC0wMi0wOCAxMDoxNiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvd2lucGlwZS5jOgoKICAgV2l0aCBpbnB1dCBmcm9tIEFsZXggU21pdGgsIGFwcGx5IGNoYW5nZXMgdG8gaW1wcm92ZSBtaW5ndyBidWlsZHMuCgoyMDA0LTAyLTA4IDEwOjEyICBzbGlmCgogICAqIHdpbjMyLzogaW5zdGFsbC1uZXQtc25tcC5iYXQsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIE1vdmUgdGhlIGRpcmVjdG9yeSBmcm9tIC91c3IgdG8gQzpcUHJvZ3JhbSBGaWxlc1xOZXQtU05NUC4KCjIwMDQtMDItMDggMTA6MTEgIHNsaWYKCiAgICogUkVBRE1FLndpbjMyLCB3aW4zMi9pbnN0YWxsLW5ldC1zbm1wLmJhdDoKCiAgIE1TVkMgYnVpbGQgaW5zdHJ1Y3Rpb25zIGFyZSBzaW1wbGVyLCB0aGFua3MgdG8gQWxleCBCdXJnZXIncyBwcm9qZWN0L3dvcmtzcGFjZSBjaGFuZ2VzLgogICBBbHNvLCBpbnRyb2R1Y2VkIGEgYmF0Y2ggY29tbWFuZCBmaWxlIHRvIHNpbXBsaWZ5IGluc3RhbGxhdGlvbiBhZnRlciBidWlsZGluZy4KCjIwMDQtMDItMDggMDk6MzQgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIEFwcGx5IGNoYW5nZXMgb2ZmZXJlZCBieSBBbGV4IEJ1cmdlciB0byBjbGVhbiB1cCBwcm9qZWN0cyBhbmQgd29ya3NwYWNlcwogICBhbmQgdG8gYnVpbGQgc25tcHRyYXBkIHVzaW5nIHRoZSBQbGF0Zm9ybS1TREsgd29ya3NwYWNlICh3aW4zMnNkaykuCgoyMDA0LTAyLTA2IDE1OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgb25seSBjb25maWcgdy9saWJ3cmFwIGlmIHdlIGNhbiBmaW5kIHRoZSBoZWFkZXIKCjIwMDQtMDItMDYgMTE6MjEgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBZZWFyIHVwZGF0ZSBmb3IgU3BhcnRhCgoyMDA0LTAyLTA2IDEwOjEyICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBwYXRjaCA4NDM5MjQgcnVuX3NoZWxsX2NvbW1hbmQgdG8gcXVvdGUgcmVkaXJlY3RlZCBwYXJhbWV0ZXJzLgoKMjAwNC0wMi0wNiAwODo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBSZS1pbnN0YXRlIHRoZSAnaHonIHZhcmlhYmxlIGZvciBGcmVlQlNEIChidXQgKm9ubHkqIEZyZWVCU0QpCgoyMDA0LTAyLTA2IDA1OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBQcm92aWRlIG1pc3NpbmcgYWdlbnRfYWRkcmVzcy9zbm1wVHJhcEFkZHJlc3MgaW5mb3JtYXRpb24KICAgKEJ1Z3MgIzg2NTE3OCAmICM4Nzc1ODcgYW5kIFBhdGNoICM4ODMwMjgpCgoyMDA0LTAyLTA1IDA4OjA0ICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIHJldmlzZWQgcGVyIHBlZXIgcmV2aWV3LgoKMjAwNC0wMi0wNSAwNTo0NSAgc2xpZgoKICAgKiBSRUFETUUud2luMzI6CgogICBDdXJyZW50IHN0YXR1cyBhcHBlYXJzIGltbWVkaWF0ZWx5IGFmdGVyIHRoZSBpbnRyb2R1Y3Rpb24KICAgUmVtb3ZlZCByZWZlcmVuY2VzIHRvIGJ1aWxkaW5nL3VzaW5nL2luc3RhbGxpbmcgbmV0c25tcC5ETEwKICAgQWRkZWQgcmVnaXN0ZXJpbmcgYXMgd2luZG93cyBzZXJ2aWNlCiAgIE5vdGVkIG5ldyBkZXBlbmRlbmN5IG9mIHNubXB0cmFwZCBvbiBuZXRzbm1wbWlicwogICBOb3RlZCBzbm1wdHJhcGQgYnVpbGRzIG9ubHkgdXNpbmcgd2luMzIuZHN3IHdvcmtzcGFjZQogICBBZGRlZCBIb3cgdG8gY2hhbmdlIGV4dGVybmFsIHByb2plY3Qgc2V0dGluZ3MgdG8gbWF0Y2gKICAgQ2xhcmlmaWVkIHdoYXQgb3RoZXIgcHJvamVjdCBzZXR0aW5ncyBzaG91bGQgYmUgdW5tb2RpZmllZC4KCjIwMDQtMDItMDUgMDU6MjcgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIHVucmVnaXN0ZXIgRExMIGxpYnJhcnkgcHJvamVjdCBmcm9tIHdvcmtzcGFjZXMuCgoyMDA0LTAyLTA1IDA1OjE2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLCBtYW4vc25tcC5jb25mLjUuZGVmCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBcHBseSBwYXRjaCA4NDM5MTkgLSBuZXcgdGVtcEZpbGVQYXR0ZXJuIHNubXAuY29uZiBvcHRpb24KCjIwMDQtMDItMDUgMDQ6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmg6CgogICBBZGQgdGhlIE5FVC1TTk1QLUVYQU1QTEVTLU1JQiB0byB0aGUgbG9hZCBsaXN0CiAgIChQYXRjaCAjODkwODM5IGZyb20gWWl4aW9uZyBab3UpCgoyMDA0LTAyLTA1IDA0OjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBDb3JyZWN0IHRoZSB1c2Ugb2YgYSB3cm9uZyBkZWJ1ZyB0b2tlbiAoUGF0Y2ggIzg4OTc3NyBieSBEaXJrIEJhbGNlcmN6YWspCgoyMDA0LTAyLTA1IDA0OjM4ICBzbGlmCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEFwcGx5IHBhdGNoIDg1MDc4NSAtIGluc3RydWN0aW9ucyB0byBjb3B5IGhlYWRlciBmaWxlcyBmb2xsb3dpbmcgYnVpbGQuCgoyMDA0LTAyLTA1IDAzOjQxICBzbGlmCgogICAqIHdpbjMyLzogbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwKICAgICBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgICAgbmV0c25tcG1pYnNzZGsvbmV0c25tcG1pYnNzZGsuZHNwOgoKICAgRG9uJ3QgYnVpbGQgdGhlIFJtb24gbW9kdWxlcy4KCjIwMDQtMDItMDUgMDE6NDkgIHNsaWYKCiAgICogY29uZmlndXJlLmluOgoKICAgQXBwbHkgcGF0Y2ggODQzNjc5CgoyMDA0LTAyLTA0IDIwOjExICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLAogICAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgo6CgogICBleHBvc2Ugb25lIGxlc3Mgc3RhdGljIGRhdGEgdmFyaWFibGUgKGxvZ2hfaGVhZCk7IGxpc3QgdHdvIG90aGVycyBmb3IgRExMLgoKMjAwNC0wMi0wNCAyMDowNyAgc2xpZgoKICAgKiB3aW4zMi86IGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcAosIGxpYnNubXAvbGlic25tcC5kc3AsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcAosIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgc25tcGQvc25tcGQuZHNwCiwgc25tcGRzZGsvc25tcGQuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIGNsZWFuIHVwIEJBU0UgQ1BQIHNldHRpbmdzLgoKMjAwNC0wMi0wNCAxNDoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBEb24ndCBvcGVyYXRlIG9uIGEgbnVsbCBwb2ludGVyIGZvciBpbmRleGVzIHRoYXQgZG9uJ3QgZXhpc3QuCgoyMDA0LTAyLTA0IDE0OjE0ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgTWVudGlvbiB0aGF0IFJvYmVydCBoYXMgdGhlIGFiaWxpdHkgdG8gc2lnbiBwYWNrYWdlcyBub3cuCgoyMDA0LTAyLTA0IDE0OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwgc25tcGxpYi9zY2FwaS5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdXNtLmMKLCBzbm1wbGliL3NubXB2My5jOgoKICAgVXNlIEFFUyBpbnN0ZWFkIG9mIEFFUzEyOCwxOTIsMjU2CgoyMDA0LTAyLTA0IDE0OjEzICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBjcmVhdGUgdGhlIHBlcnNpc3RlbnQgZGlyZWN0b3J5IGlmIGl0IGhhc24ndCBiZWVuIGNyZWF0ZWQgeWV0LgoKMjAwNC0wMi0wNCAxMzowMSAgc2xpZgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBjYXN0IHRvIHF1aWV0IG1zdmMgY29tcGlsZXIuCgoyMDA0LTAyLTA0IDA1OjMxICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMKOgoKICAgdXNlIE5pZWxzJyBjaG9pY2VzIGZvciBuYW1lcyBzdWJzdGl0dXRpbmcgX19GVU5DVElPTl9fCgoyMDA0LTAyLTA0IDA1OjI5ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIGF2b2lkIHZvaWQgY2FzdGluZyBpbiBmcmVlIHRvIGtlZXAgZ2NjIGhhcHB5LgoKMjAwNC0wMi0wMyAxNzoxMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgbWVyZ2UgcGF0Y2ggZnJvbSA1LjAtcGF0Y2hlcwoKMjAwNC0wMi0wMyAxNjo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgc3RyZHVwIHZhbHVlIGZyb20gbmV0c25tcF9kc19nZXRfc3RyaW5nLCBzaW5jZSBpdCBpcyBmcmVlJ2QgbGF0ZXIKCjIwMDQtMDItMDMgMTQ6MzAgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBxdWlldCBjb21waWxlciB3YXJuaW5ncyB1c2luZyBhcHByb3ByaWF0ZSB0eXBlIGNhc3RpbmcuCgoyMDA0LTAyLTAzIDE0OjI5ICBzbGlmCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiB0eXBlcy5oLCBzeXN0ZW0vbWluZ3czMi5oOgoKICAgbW92ZSBpZm5kZWYgSEFWRV9TU0laRV9UIGZyb20gTWluR1cgc3BlY2lmaWMgaGVhZGVyIHRvIHR5cGVzIGhlYWRlciwKICAgdG8gYmVuZWZpdCBvdGhlciBwbGF0Zm9ybXMgdGhhdCBkbyBub3QgZGVmaW5lIHNzaXplX3QgKGUuZy4sIG1zdmMpLgoKMjAwNC0wMi0wMyAxNDoyNSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGV4cG9ydCBzeW1ib2xzIGZvciBmdW5jdGlvbnMgd2hlbiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gaXMgZGVmaW5lZC4KCjIwMDQtMDItMDMgMTQ6MjQgIHNsaWYKCiAgICogd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgZG9udCBpbml0aWFsaXplIHVjZC1zbm1wIGluaXRfZGlzayBmb3IgbXN2YyBidWlsZHMuCgoyMDA0LTAyLTAzIDE0OjIxICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBlbmFibGUgQWdlbnRYLCBSbW9uLCBkaXNtYW4tZXZlbnQtbWliLCBhbmQgdWNkLXNubXAgbW9kdWxlIGdyb3Vwcy4KCjIwMDQtMDItMDMgMTQ6MTkgIHNsaWYKCiAgICogd2luMzIvOiBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgZG9uJ3QgYnVpbGQgdGhlIHVjZC1zbm1wIGRpc2sgbW9kdWxlIChub3QgaW1wbGVtZW50ZWQgZm9yIG0kIGJ1aWxkcykKCjIwMDQtMDItMDMgMDk6MTYgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnBpcGUuaCwgc25tcGxpYi93aW5waXBlLmMKOgoKICAgRmluaXNoIGFwcGx5aW5nIHBhdGNoIDg1MjY4MiBmb3IgY2FsbGJhY2sgdHJhbnNwb3J0IHN1cHBvcnQgdW5kZXIgV2luMzIKCjIwMDQtMDItMDMgMDg6MDAgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcAosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggODUyNjgyIGZvciBjYWxsYmFjayB0cmFuc3BvcnQgb24gV2luMzI7IHRvdWNoZWQgdXAgTVNWQyBwcm9qZWN0IGZpbGVzLCB0b28uCgoyMDA0LTAyLTAzIDA3OjE0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBtb3ZlICNpZiBIQVZFX0VYRUNWIHRvIGhlYWQgb2YgcnVuX2V4ZWNfY29tbWFuZCAgZm9yIHF1aWV0ZXIgTVNWQyBidWlsZHMuCgoyMDA0LTAyLTAzIDAzOjI1ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBSZW1vdmUgcG9zaXRpb25hbCBjb21tdW5pdHkgZnJvbSB1c2FnZQoKMjAwNC0wMi0wMyAwMjowOSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggYnVnIHJldHVybmluZyBvbmx5IGZvdXIgY2hhcmFjdGVycyBmb3IgdXB0aW1lIHN0cmluZwoKMjAwNC0wMi0wMyAwMjowNyAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIFVwZGF0ZSBmb3IgcmUtaXNzdWVkIEFUTSBhbmQgRXRoZXJMaWtlIFJGQ3MKCjIwMDQtMDItMDMgMDI6MDYgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEZpeCByZWZlcmVuY2UgdG8gLUxlIHRvIC1MRQoKMjAwNC0wMi0wMyAwMjowNSAgbmJhCgogICAqIGxvY2FsL3RyYXB0b2VtYWlsOgoKICAgRml4IHN0dXBpZCBidWcgZmV0Y2hpbmcgdGhlIHRyYXAgb2lkCgoyMDA0LTAyLTAzIDAyOjA0ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICBBIGJpdCBvZiBjbGVhbnVwIGFuZCBwcm9wZXJseSBkZWZhdWx0IGNvbW11bml0eSBmcm9tIGNvbmYgZmlsZQoKMjAwNC0wMi0wMyAwMjowMSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgQWxsb3cgJVYgdG8gdGFrZSBtb3JlIHRoYW4gb25lIGNoYXJhY3RlcgoKMjAwNC0wMi0wMyAwMTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBBcHBseSAobW9kaWZpZWQpIHBhdGNoIDg2MDQ0MyB3aGljaCBhbHNvIGZpeGVzIGJ1ZyA4NDgyODQgYnkgcHJvcGVybHkKICAgdGVybWluYXRpbmcgdGhlIGlucHV0IGJ1ZmZlci4KCjIwMDQtMDItMDMgMDE6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgZGlzay5oOgoKICAgVHJ5IHRvIHVudGFuZ2xlIGFuICNpZmRlZiBtZXNzIHRoYXQgaGluZGVycyBjb21waWxhdGlvbiBvbiBPUy9YCgoyMDA0LTAyLTAzIDAxOjU1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBSZW1vdmUgYSBidW5jaCBvZiBzdXBlcmZsdW91cyBuZXdsaW5lcyBpbiBtZXNzYWdlcwoKMjAwNC0wMi0wMyAwMTo1MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMsIGF0LmM6CgogICBGaXggcmV0dXJuIG9mIElQdjQgYWRkcmVzcyBvbiA2NC1iaXQgU29sYXJpcwoKMjAwNC0wMi0wMiAyMzo0MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGlmZGVmIGEgbGludXggc3BlY2lmaWMgdmFyaWFibGUKCjIwMDQtMDItMDIgMjM6MzggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBcHBseSBwYXRjaCA4NDE3MDUgdG8gZml4IGJ1ZyA4MTczODYKCjIwMDQtMDItMDIgMjM6MzcgIG5iYQoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIEFwcGx5IHBhdGNoIDgzNjU2OCB0byBmaXggYnVnIDgyOTExOQoKMjAwNC0wMi0wMiAyMzozNiAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgQXBwbHkgcGF0Y2ggODQ1Nzk4IHRvIGZpeCBidWcgODMxMjk5CgoyMDA0LTAyLTAyIDIzOjMyICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFByb3Blcmx5IHJlc2V0IHdpbGRjYXJkbWF0Y2hlciBiZXR3ZWVuIGNhbGxzCgoyMDA0LTAyLTAyIDIzOjIzICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggZnJvbSBidWcgODQ5MTUzCgoyMDA0LTAyLTAyIDIzOjIxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgR2l2ZSBlcnJvciBtZXNzYWdlIHdoZW4gbW9kdWxlIG5vdCBhdmFpbGFibGUKCjIwMDQtMDItMDIgMjM6MTggIG5iYQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIERvIG5vdCBjYXN0IHVuc2lnbmVkIHRvIHNpZ25lZAoKMjAwNC0wMi0wMiAyMzoxNyAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBVc2Ugc3lzdGVtIGdldG9wdC5oIHdoZW4gYXZhaWxhYmxlCgoyMDA0LTAyLTAyIDIzOjE2ICBuYmEKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBidWZmZXIgb3ZlcnJ1biBmb3IgZXh0cmFtZSBkaXNrIG5hbWVzCgoyMDA0LTAyLTAyIDIzOjE2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEFwcGx5IHBhdGNoIDg1MDcxNiB0byBmaXggYnVnIDg1MDE4NQoKMjAwNC0wMi0wMiAxNjoxMCAgbmJhCgogICAqIGFwcHMvOiBzbm1wdGVzdC5jLCBzbm1wdHJhcGRfbG9nLmM6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxNjowNSAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDE1OjU5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIFF1ZWxsIGEgYnVuY2ggb2Ygd2FybmluZ3MgZnJvbSBTb2xhcmlzIDggYW5kIGdjYyAtbTY0CgoyMDA0LTAyLTAyIDE1OjU4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICBCZXR0ZXIgZXJyb3IgbWVzc2FnZQoKMjAwNC0wMi0wMiAxNTo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgQ29ycmVjdGx5IGxvb3AgYXJvdW5kIG1pc3NpbmcgZW50cmllcwoKMjAwNC0wMi0wMiAxNTo1NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgQmV0dGVyIGZpbGUgc3lzdGVtIHR5cGVzCgoyMDA0LTAyLTAyIDE1OjUyICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IHNldHRpbmcgb2YgY29tbXVuaXR5IGxlbgoKMjAwNC0wMi0wMiAxNTo0MCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBRdWVsbCBhIGJ1bmNoIG9mIHdhcm5pbmdzIGZyb20gU29sYXJpcyA4IGFuZCBnY2MgLW02NAoKMjAwNC0wMi0wMiAxNTozNiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBQcm9wZXIgT0lEIGZvciBUQ1A0CgoyMDA0LTAyLTAyIDE1OjM1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIEZJeCBuZXdsaW5lIGhhbmRsaW5nIGluIGZpbGUgbG9nZ2VyCgoyMDA0LTAyLTAyIDE1OjM0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgRml4IHNvbWUgd2FybmluZ3MsIGFuZCBtYWtlIHNvbWUgYmV0dGVyIGVycm9yIG1lc3NhZ2VzCgoyMDA0LTAyLTAyIDE1OjMzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgRml4IGEgZmlsZSBkZXNjcmlwdG9yIGxlYWsKCjIwMDQtMDItMDIgMTU6MzIgIG5iYQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLCBzbm1wbGliL2FzbjEuYwosIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgUXVlbGwgYSBidW5jaCBvZiB3YXJuaW5ncyBmcm9tIFNvbGFyaXMgOCBhbmQgZ2NjIC1tNjQKCjIwMDQtMDItMDIgMTE6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHJlcXVpcmUgYWxsIGFyZ3VtZW50IGJlZm9yZSBtaWJOb2RlOyBiYWlsIG9uIHVua25vd24gb3B0aW9uOyB3YXJuIGlmIG11bHRpcGxlCiAgIG1pYk5vZGVzIHNwZWNpZmllZDsgbmV3ICdiYWxhbmNlZCcgZmxhZyBmb3IgcHJvY2VzczsgZGVmaW5lL3VzZSBuZXcgbTJjX2RpZQogICB0aGF0IHNwaXRzIG91dCBjdXJyZW50IGxpbmUgaW4gY29uZiBmaWxlOyByZXBsYWNlICdicmVhaycgd2l0aCAnbmV4dCc7IGJhaWwKICAgb24gZWxzZWlmOyBiYWlsIG9uIHVuYmFsYW5jZWQgY29uZiBmaWxlIChtYW55IHR3ZWFrcyB0byBtYWtlIHRoYXQgd29yayk7CiAgIHJlbW92ZSB1bnVzZWQgc2tpcGlmOyBmaXggY3VycmVudGxpbmUgdXBkYXRlcyBpbiBmb3JlYWNoIGxvb3BzOyBleGl0IHcvZXJyb3IKICAgaWYgY29uZiBmaWxlIG5vdCBmb3VuZAoKMjAwNC0wMi0wMiAxMTowNiAgcnN0b3J5CgogICAqIGxvY2FsLzogbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgbWliMmMuaXRlcmF0ZS5jb25mCjoKCiAgIGFkZCBleHBsaWNpdCBlbmRzIGZvciBlYWNoIGZvcmVhY2gKCjIwMDQtMDItMDIgMTA6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgZml4IHVwIG0yY19ub2RlX3BhcmFtXyogZGVmYXVsdHM7IHJlbmFtZSBub2RlIGRlZmF1bHQgZmlsZTsgc2V0IGRlZmF1bHRzIGZvciBtMmNfY3R4X1tsaHxyaF07CiAgIHNldCB1cCBub2RlIG1hcCBmdW5jIGRlZmF1bHRzCgoyMDA0LTAyLTAyIDEwOjIzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICB1c2UgbmV3IGluZGV4ZXNfc2V0IGZ1bmN0aW9uIGluIGV4YW1wbGU7IG1vdmUgc29tZSBjb2RlIG91dHNpZGUgb2YgZXhhbXBsZQogICBjb25kaXRpb247IHVzZSB2YWx1ZSBtYXAgdG8gY29weSBkYXRhCgoyMDA0LTAyLTAyIDEwOjE5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICBuZXcgaW5kZXhlc19zZXQgZnVuY3Rpb24KCjIwMDQtMDItMDIgMTA6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtc2V0Lm0yYzoKCiAgIHVzZSBtaWIyYyBuZXh0IGluc3RlYWQgb2YgYnJlYWsKCjIwMDQtMDItMDIgMTA6MTcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ViYWdlbnQubTJjOgoKICAgYWRkIG1pc3NpbmcgdmFyIGRlY2wKCjIwMDQtMDItMDIgMDg6MjAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAubTJpOgoKICAgdXNlIG5ldyBmdW5jdGlvbiB0byBtYXAgYmV0d2VlbiBtaWIvbmF0aXZlIGRhdGEKCjIwMDQtMDItMDIgMDg6MDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtZnVuYy5tMmk6CgogICBuZXcgZnVuY3Rpb24gdG8gbWFwIGJldHdlZW4gbWliL25hdGl2ZSBkYXRhCgoyMDA0LTAyLTAyIDA3OjU5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1zZXQubTJpOgoKICAgbmV3IGZ1bmN0aW9uIHRvIHNldCBpbmRleGVzIGZyb20gQyB0eXBlcwoKMjAwNC0wMi0wMiAwNzo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRlZmF1bHQtbWZkLXRvcC5tMmMsCiAgICAgZ2VuZXJpYy1jdHgtY29weS5tMmksIGdlbmVyaWMtY3R4LWdldC5tMmksCiAgICAgZ2VuZXJpYy1nZXQtY2hhci5tMmksIGdlbmVyaWMtZ2V0LWRlY2wtYm90Lm0yaSwKICAgICBnZW5lcmljLWdldC1kZWNsLm0yaSwgbWZkLWRhdGEtZ2V0Lm0yYywKICAgICBtZmQtaW50ZXJmYWNlLm0yYywgbm9kZS1nZXQubTJpLCBub2RlLXNldC5tMmksCiAgICAgc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpOgoKICAgbW9yZSBjb25zaXN0ZW50IHVzZSBvZiBtMmNfY3R4X1tsaHxyaHxsaHN8cmhzXSBhbmQgbTJjX25vZGVfcGFyYW0qIHZhcnM7IG5ldwogICBtMmNfY29kZV92ZXJib3NlIGZsYWcgZm9yIHZlcmJvc2UgY29tbWVudHMgaW4gY29kZTsgbmV3IHZhbHVlIG1hcHBpbmcgZnVuYyBmb3IKICAgZWFjaCBub2RlIGluc3RlYWQgb2YgZHVwbGljYXRlZCBjb2RlIGluIG11bGl0cGxlIGZ1bmNzOyB1c2UgbWliMmMgbmV4dCBpbnN0ZWFkCiAgIG9mIGJyZWFrOwoKMjAwNC0wMi0wMiAwNDoxNSAgc2xpZgoKICAgKiBzbm1wbGliL3N5c3RlbS5jLAogICAgIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIHdpbjMyL3NubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgICB3aW4zMi9zbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgd2luMzIvc25tcGQvc25tcGQuZHNwCiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcCwKICAgICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLAogICAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICB3aW4zMi9zbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsCiAgICAgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcCwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgICB3aW4zMi9zbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLAogICAgIHdpbjMyL3NubXB2YWNtL3NubXB2YWNtLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCjoKCiAgIFJlc3RvcmUgd2luc29jayAxLjEgbGlicmFyeSB1c2FnZS4KCjIwMDQtMDEtMzAgMTE6MzcgIHNsaWYKCiAgICogd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICBtb3ZlIG5ldHNubXAubGliIHRvIHRoZSBmcm9udCBvZiB0aGUgIkFkZGl0aW9uYWwgTGlicmFyaWVzIiBsaXN0cy4KCjIwMDQtMDEtMzAgMTE6MzEgIHNsaWYKCiAgICogd2luMzIvOiBzbm1wZC9zbm1wZC5kc3AsIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIG1vdmUgbmV0c25tcC5saWIgdG8gdGhlIGZyb250IG9mIHRoZSBBZGRpdGlvbmFsIExpYnJhcmllcyBsaXN0LgoKMjAwNC0wMS0zMCAxMDoyOSAgc2xpZgoKICAgKiB3aW4zMi86IGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgICAgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcAosIHNubXBkL3NubXBkLmRzcCwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsCiAgICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBkc2RrL3NubXBkLmRzcCwKICAgICBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgICAgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZW5hYmxlIHNlbGVjdGlvbiB0aGF0IHdpbGwgZ2VuZXJhdGUgc291cmNlIGJyb3dzaW5nIGluZm9ybWF0aW9uLgoKMjAwNC0wMS0zMCAxMDowOCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBtb3ZlIGV4dGVybiBsb2doX2hlYWQgaW50byB0aGUgbG9nZ2luZyBtb2R1bGUncyBoZWFkZXIgZmlsZS4KCjIwMDQtMDEtMzAgMDc6MjUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFJlbW92ZSBhbiB1bndhbnRlZCAnZWxzZScgY2xhdXNlIHRoYXQgY2xhc2hlcyB3aXRoIHRoZSAiY29tbW9uIiAnZWxzZScKICAgY2xhdXNlIGxhdGVyIGluIHRoaXMgdGFuZ2xlIG9mIHVucmVhZGFibGUgY29kZS4gIChCdWcgIzg1NzI1NykKCjIwMDQtMDEtMzAgMDc6MDEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICByZXN0b3JlIHRoZSBEQVRBIGhpbnRzIHRoYXQgd2VyZSBhY2NpZGVudGFsbHkgcmVtb3ZlZC4KCjIwMDQtMDEtMzAgMDY6NDUgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBXaGl0ZXNwYWNlIChDL1IgJiBML0YpIHNob3VsZG4ndCB0cmlnZ2VyIGhleCBzdHJpbmcgYmVoYXZpb3VyIChCdWcgIzg2NDM2NykKCjIwMDQtMDEtMzAgMDY6MzMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgRGVmaW5lIGEgImR1bW15IiBsb2cgaGFuZGxlciB0aGF0IHNpbXBseSBkaXNjYXJkcyBhbGwgbWVzc2FnZXMuCiAgIE5vdCByZWFsbHkgYSBzZW5zaWJsZSB0aGluZyB0byBkbywgYnV0IGNvdWxkIGJlIHVzZWQgdG8gcHJldmVudAogICB0dXJuaW5nIG9uIHRoZSAibGFzdCBkaXRjaCIgbG9nZ2luZyB0byBzdGRlcnIgKHNlZSBCdWcgIzg2NzU3NCkKCjIwMDQtMDEtMzAgMDY6MTkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBJc3N1ZSBhIHdhcm5pbmcgd2hlbiB0dXJuaW5nIG9uICJsYXN0IGRpdGNoIiBsb2dnaW5nIChCdWcgIzg2NzU3NCkKCjIwMDQtMDEtMzAgMDM6MjIgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEhhbmRsZSBjb21wbGV0ZWx5IGVtcHR5IEdldEJ1bGsgcmVxdWVzdHMgcHJvcGVybHkgKEJ1ZyAjODc3NDE5KQoKMjAwNC0wMS0zMCAwMjo1MCAgc2xpZgoKICAgKiB3aW4zMi86IC5jdnNpZ25vcmUsIHdpbjMyLm9wdDoKCiAgIGZpeCBidWcgIzg4NzE0MAoKMjAwNC0wMS0zMCAwMTozOSAgZHRzMTIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgVXNlICdzbnByaW50X2hleHN0cmluZycgaW4gdGhlIGVuZ2luZSB0ZXN0aW5nIGNvZGUsIHJhdGhlcgogICB0aGFuIHRoZSAobm9uLWV4aXN0ZW50KSAnc3ByaW50X2hleHN0cmluZycgIChCdWcgIzg4NjExMCkKCjIwMDQtMDEtMjkgMTM6MDMgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgZml4IGNvdW50cyBmb3IgY2VydGFpbiB1c2VzIG9mIHN0cm5jYXNlY21wIChpIG11c3QgYmUgYm9yZWQhKS4KCjIwMDQtMDEtMjkgMTI6MzIgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZvciB3aW5kb3dzIHNlcnZpY2UsIG1hdGNoIGRpc3BsYXkgbmFtZSB0byBzZXJ2aWNlIG5hbWUuCiAgIGZvciB3aW5kb3dzIHNlcnZpY2UgZGVzY3JpcHRpb24sIG1lbnRpb24gbWliSUkgb2JqZWN0cyBpZiBidWlsdCB1c2luZyBTREsuCgoyMDA0LTAxLTI5IDEyOjE0ICBzbGlmCgogICAqIGFwcHMvOiBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYzoKCiAgIHVzZSBjb3JyZWN0IGNvbnN0YW50IHRoYXQgcHJldmlvdXNseSBhcHBsaWVkIHBhdGNoIHJlZmVycyB0by4KCjIwMDQtMDEtMjkgMDY6MzggIGR0czEyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgQnJpbmcgdmVyc2lvbiBoYW5kbGluZyBpbnRvIGxpbmUgd2l0aCB0aGUgJ3NubXBfcGFyc2VfYXJncycgbGVnZXJkZW1haW4KCjIwMDQtMDEtMjkgMDY6MjYgIGR0czEyCgogICAqIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmg6CgogICBWYWxpZGF0ZSB0aGUgcmVxdWVzdCBhZ2FpbnN0IHRoZSBtYXhpbXVtIG51bWJlciBvZiB2YXJiaW5kcyBzdXBwb3J0ZWQKICAgKFBhdGNoICM4MjY3MTQgZnJvbSBKZXJlbXkgUHVobG1hbikKCjIwMDQtMDEtMjkgMDY6MTMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywKICAgICBtaWJzL01ha2VmaWxlLmluLCBtaWJzL05FVC1TTk1QLVRDLnR4dCwKICAgICBtaWJzL1RSQU5TUE9SVC1BRERSRVNTLU1JQi50eHQsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIFVzZSB0aGUgb2ZmaWNpYWxseSBkZWZpbmVkIHRyYW5zcG9ydCBPSURzCiAgIChQYXRjaCAjODI4NzY2IGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyKQoKMjAwNC0wMS0yOSAwNTo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX2RldmljZS5jLCBob3N0L2hyX2Rpc2suYywKICAgICBob3N0L2hyX2ZpbGVzeXMuYywgaG9zdC9ocl9uZXR3b3JrLmMsCiAgICAgaG9zdC9ocl9wYXJ0aXRpb24uYywgaG9zdC9ocl9zdG9yYWdlLmMsCiAgICAgaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLAogICAgIHVjZC1zbm1wL2xvZ21hdGNoLmMsIHVjZC1zbm1wL21lbW9yeS5jLAogICAgIHVjZC1zbm1wL21lbW9yeV9haXg0LmMsIHVjZC1zbm1wL21lbW9yeV9keW5peC5jLAogICAgIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLCB1Y2Qtc25tcC9tZW1vcnlfaHB1eC5jLAogICAgIHVjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jCjoKCiAgIEluY3JlYXNlIGFzc29ydGVkIGZpeGVkIGJ1ZmZlciBzaXplcy4gIChQYXRjaCAjODM2Mzk1IGZyb20gSG93YXJkIFdpbGtpbnNvbikKCjIwMDQtMDEtMjkgMDU6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgUmVqZWN0IGF0dGVtcHRzIHRvIGRlbGV0ZSBhICdwZXJtYW5lbnQnIHJvdwogICAoUGF0Y2ggIzgzNzQyNyBmcm9tIEJvYiBSb3dsYW5kcykKCjIwMDQtMDEtMjkgMDQ6MjMgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZyZWVpbmcgYW4gZW1wdHkgY29udGV4dEVuZ2luZUlECiAgIChXaGljaCBzaG91bGRuJ3QgaGFwcGVuLCBidXQgc2VlbXMgdG8gb2NjdXIgdW5kZXIgV2luZG93cykKICAgKFBhdGNoICM4NDA4MzAgZnJvbSBBbGV4IEJ1cmdlcikKCjIwMDQtMDEtMjkgMDM6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWVjaGFuaXNtIHRvIGNvbXBsZXRlbHkgZGlzYWJsZSB0aGUgaGFuZGxpbmcgb2YgcGVyc2lzdGVudCBjb25maWd1cmF0aW9uIGZpbGVzLgogICBOb3RlIHRoYXQgZW5hYmxpbmcgdGhpcyB3b3VsZCBicmVhayB0aGUgZnVuY3Rpb25hbGl0eSBvZiBhbiBTTk1QdjMgYWdlbnQuCiAgIChQYXRjaCAjODQ5MTU5IGZyb20gU3RlcGhlbiBKLiBGcmllZGwpCgoyMDA0LTAxLTI5IDAzOjM5ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9lbnVtLmM6CgogICBQcm9wZXJseSByZWxlYXNlIHZhcmlvdXMgcmVzb3VyY2VzIHdoZW4gc2h1dHRpbmcgZG93biB0aGUgbGlicmFyeS4KICAgKFBhdGNoICM4NDkxNTQgZnJvbSBTdGVwaGVuIEouIEZyaWVkbCkKCjIwMDQtMDEtMjkgMDE6NDQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQcm92aWRlIG1pc3NpbmcgY29uZmlnIGRlZmluaXRpb24gdGVtcGxhdGUgZm9yICdzc2l6ZV90JyBmbGFnCiAgIChQYXRjaCAjODg2NjU1IGZyb20gQW5keSBTbWl0aCkKCjIwMDQtMDEtMjggMjA6MzkgIHNsaWYKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkL3NubXBkLmRzcAosIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgICBzbm1wZHNkay9zbm1wZC5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcAosIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgICAgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgbm8gaW5jcmVtZW50YWwgbGluayBvbiBEZWJ1ZyAocHJldmVudHMgZ2VuZXJhdGlvbiBvZiAuaWxrIGZpbGUpCgoyMDA0LTAxLTI4IDE4OjQ0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGlmZGVmIGFyb3VuZCB2YXJpYWJsZXMgdXNlZCBvbmx5IHdoZW4gVU5JWCB0cmFuc3BvcnRzIGFyZSBzdXBwb3J0ZWQuCgoyMDA0LTAxLTI4IDE3OjU3ICBzbGlmCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBpbnZva2Ugd2luc29jayB2ZXIgMi4yCgoyMDA0LTAxLTI4IDE3OjM0ICBzbGlmCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgICAgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgICBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsCiAgICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICAgIG5ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsCiAgICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwLAogICAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGRzZGsvc25tcGQuZHNwLAogICAgIHNubXBnZXQvc25tcGdldC5kc3AsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcAosIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwKICAgICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBjb25zaXN0ZW50IHByb2plY3Qgc2V0dGluZ3M7IG5vIEMgcnVudGltZSBjb25mbGljdHM7IGxpbmsgd2l0aCB3aW5zb2NrIHZlciAyLjIKCjIwMDQtMDEtMjggMTc6MjggIHNsaWYKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgdW5uZWNlc3NhcnkgaGFjayBmb3IgY2hvd24uCgoyMDA0LTAxLTI4IDE0OjU2ICBzbGlmCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBkZXJlZmVyZW5jZSBwcmlfbWF4IHRvIHRlc3QgcmV0dXJuIGZyb20gZGVjb2RlX3ByaW9yaXR5CgoyMDA0LTAxLTI4IDE0OjU0ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vOiBhZ3V0aWwuYywgYWxhcm0uYywgZXZlbnQuYwosIGhpc3RvcnkuYywgcm93cy5jLCBzdGF0aXN0aWNzLmM6CgogICBmaW5kIHBsYXRmb3JtLWFwcHJvcHJpYXRlIHN1YnN0aXR1dGUgZm9yIHN5cy90aW1lLmgKICAgZml4IG1pbm9yIHR5cGUgY2FzdCB3YXJuaW5ncy4gIHJlbW92ZSBvbmUgdW51c2VkIHZhcmlhYmxlLgoKMjAwNC0wMS0yOCAwODo0MCAgZHRzMTIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEltcG9ydCBTTk1QX1NMRUVQIHRpbWUgZnJvbSBlbnZpcm9ubWVudCwgaWYgYXZhaWxhYmxlCiAgIChQYXRjaCAjODUwOTU3IGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLAogICAgbWVyZ2luZyBhIGNoYW5nZSBmcm9tIHRoZSA1LjAueCBicmFuY2gpCgoyMDA0LTAxLTI4IDA4OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBFbnN1cmUgdGhlIHNpemUgb2YgdGhlIGV4ZWMtY2FjaGUgaXMgaGFuZGxlZCBjb3JyZWN0bHkgb24gNjQtYml0IHN5c3RlbXMKICAgKFBhdGNoICM4NjA1NzUgYnkgQm9iIFJvd2xhbmRzKQoKMjAwNC0wMS0yOCAwNzo1NSAgZHRzMTIKCiAgICogcGVybC86IE9JRC9PSUQueHMsIFNOTVAvU05NUC54cywgYWdlbnQvYWdlbnQueHMKOgoKICAgQmUgbW9yZSBjYXV0aW91cyBhYm91dCB0aGUgbWF4aW11bSBsZW5ndGggb2YgT0lEcyAoUGF0Y2ggODYyMTgzIGJ5IEF1c3RpbiBTY2h1dHopCgoyMDA0LTAxLTI4IDA3OjQxICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgR3VhcmQgYWdhaW5zdCBhIG1pc3NpbmcgSVAgYWRkcmVzcyBzdHJ1Y3R1cmUgKFBhdGNoICM4NjE5MzkgYnkgRGFuIE1vbmdyYWluKQoKMjAwNC0wMS0yOCAwNzozOCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIE1lcmdlIE5laWxzJyA1LjEueCBjaGFuZ2VzIGludG8gdGhlIG1haW4gZGV2ZWxvcG1lbnQgdHJlZS4KICAgKFNlZW1zIHRvIGluY2x1ZGUgcGF0Y2hlcyAjODU1MTcwIGFuZCAjODU4NTE5KQoKMjAwNC0wMS0yOCAwNjo1NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGRvbid0IGNob3duL2NobW9kIGlmIHVuaXggZG9tYWluIHN1cHBvcnQgbm90IGVuYWJsZWQKCjIwMDQtMDEtMjggMDY6NTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2hlY2sgZm9yIHBlcmwgNS44IGVudHJ5IHBvaW50LiAgKFBhdGNoICM4NTQzOTUpCgoyMDA0LTAxLTI4IDA2OjIzICByc3RvcnkKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBmaXggaW5zdGFsbCBzbyB0aGF0IHN1YmRpciBsaWJzIGFyZSBpbnN0YWxsZWQgYmVmb3JlIGJpbnMsIG5vdGVkIGJ5IHRoZQogICBldmVyLXNvLWhlbHBmdWwgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgoKMjAwNC0wMS0yOCAwNDoyMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBJbmNyZWFzZSB0aGUgKGZpeGVkKSBudW1iZXIgb2YgZGlza3MgaGFuZGxlZCAocGF0Y2ggIzg4NDg1OSkKCjIwMDQtMDEtMjggMDQ6MTggIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWluZ3czMi5oIHN5c3RlbSBoZWFkZXIgZmlsZSAocGF0Y2ggIzg4NDEwMCkKCjIwMDQtMDEtMjggMDQ6MTMgIGR0czEyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLAogICAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIENoZWNrIGZvciB0aGUgZXhpc3RlbmNlIG9mIHNzaXplX3QsIGFuZCBkb24ndCByZWRlZmluZSBpdCB3aGVuCiAgIHVzaW5nIHRoZSBXaW5HVyBjb21waWxlci4gICAoUGF0Y2ggIzg4MTc1MikKCjIwMDQtMDEtMjggMDM6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBSZW1vdmUgdHdvIHJlZHVuZGVudCBmb3J3YXJkIGRlY2xhcmF0aW9ucyAgKHBhdGNoICM4NzMzMjYpCgoyMDA0LTAxLTI4IDAyOjA3ICBzbGlmCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jOgoKICAgaW5ldHByaW50IGFsbG90cyBtYXggMjIgY2hhcnMgZm9yIGFkZHJlc3MgKyA4IGNoYXJzIGZvciBwb3J0LgogICBjaGFuZ2UgdG8gMTggYWRkcmVzcyArIDEyIHBvcnQsIHNvIHRoYXQgbW9yZSBvZiB0aGUgcG9ydCBpcyBkaXNwbGF5ZWQuCgoyMDA0LTAxLTI3IDIyOjQyICBzbGlmCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgaW5kaWNhdGUgV2luMzIgaGFzIGxvY2FsZS5oIG1hbGxvYy5oIG1lbW9yeS5oLgogICBkbyBub3Qgc2V0IGJzZGxpa2Ugb3IgVVNFeHhNSUIgb3IgU0VDVVJJVFlFWENFUFRJT05TCiAgIHJlLWZvcm1hdCBsaWtlIHRoZSBOZXQtU05NUCBjb25maWd1cmVkIG5ldC1zbm1wLWNvbmZpZy5oLgoKMjAwNC0wMS0yNyAyMjozNCAgc2xpZgoKICAgKiBhY2NvbmZpZy5oLCBvdi9vaWRfdG9fc3ltLmluLCBvdi9vaWRfdG9fdHlwZS5pbgo6CgogICB1cGRhdGUgc3VwcG9ydCBmb3IgT3BlbkJTRCwgSFAtVVgvMTEsIGFuZCBXaW4zMiBzeXNPYmplY3RJRCAuCgoyMDA0LTAxLTI3IDIxOjQ5ICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmMsIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmMKOgoKICAgcHJvdmlkZSBmdW5jdGlvbiBoaW50cyBpbiBsaWV1IG9mIF9fRlVOQ1RJT05fXwoKMjAwNC0wMS0yNyAxMzo0NiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaDoKCiAgIEFkZCBkZWNsYXJhdGlvbnMgZm9yIGZ1bmN0aW9ucyB1c2VkIGluIGFwcHMvc25tcHRyYXBkX2hhbmRsZXIuYwoKMjAwNC0wMS0yNyAxMzoxNSAgc2xpZgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG5vIGNob3duKCkgb24gV2luMzIgLS0gY29tcGlsZXMgdG8gbm90aGluZy4KCjIwMDQtMDEtMjcgMTA6NTUgIHNsaWYKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyc2RrLmRzdzoKCiAgIGJ1aWxkIGluZGVwZW5kZW50IHByb2plY3RzIChsaWJyYXJpZXMpIGJlZm9yZSBkZXBlbmRlbnQgcHJvamVjdHMuCiAgIHJlbW92ZSBpbmNvbXBsZXRlIGRlcGVuZGVuY3kgc3BlY2lmaWNhdGlvbiB0byBidWlsZCBhbGwgZmFzdGVyLgoKMjAwNC0wMS0yNyAxMDoxMiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBSZS1hcnJhbmdlZCB0aGUgZGVjbGFyYXRpb25zIG9mIHZhcmlhYmxlcyBhbmQvb3IgY29tcGlsZSBjb25zdGFudHMsCiAgIHNvIHRoYXQgdGhlIHZhcmlhYmxlcyBhcmUgZGVjbGFyZWQgb25seSBpZiBuZWVkZWQuCgoyMDA0LTAxLTI3IDEwOjExICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIFN1cHBsaWVkICJyZXR1cm4gMCIgdG8gZXh0ZW5zaWJsZV91bnJlZ2lzdGVyKCksIGEgZnVuY3Rpb24gcmV0dXJuaW5nIGludC4KCjIwMDQtMDEtMjcgMDk6NTkgIHNsaWYKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIGNhc3QgdG8gdm9pZCB0aGUgYXJndW1lbnQgdG8gZnJlZSgpLgoKMjAwNC0wMS0yNyAwOTo1NyAgc2xpZgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgdXNlIHVfY2hhciB0eXBlIGNhc3QgaW5zdGVhZCBvZiBtYXNraW5nIHdpdGggMHhGRi4KCjIwMDQtMDEtMjcgMDk6NTIgIHNsaWYKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBtb3ZlIGNvbmRpdGlvbmFsIGV4cHJlc3Npb24gd2l0aGluIHR5cGUgY2FzdCBzY29wZSwKICAgZm9yIHRoZSBiZW5lZml0IG9mIHNvbWUgY29tcGlsZXJzLgoKMjAwNC0wMS0yNyAwOTo1MCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBzcGVsbGNoZWNrOiBuZXRzbm1wX2NvbnRhaW5lcl9mcmVlX2xpc3QKCjIwMDQtMDEtMjcgMDk6NDYgIHNsaWYKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGRlY2xhcmUgaW5pdF9zdWJhZ2VudCBuZWFyIGl0cyBvbmx5IHJlZmVyZW5jZS4KCjIwMDQtMDEtMjcgMDk6NDUgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUgZnJvbSBXaW4zMiBjb2RlLgoKMjAwNC0wMS0yNyAwOTo0NCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvZXhlY3V0ZS5jOgoKICAgbW92ZSBIQVZFX0VYRUNWIGNvbXBpbGUgdGVzdCBlYXJsaWVyIGluIHRoZSBmdW5jdGlvbiB0byBub3QgaW50cm9kdWNlIHVudXNlZCB2YXJpYWJsZXMuCgoyMDA0LTAxLTI3IDA5OjQxICBzbGlmCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLAogICAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBhcHBzL3NubXB2YWNtLmMsCiAgICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsCiAgICAgc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmMsIHNubXBsaWIvbWliLmMsCiAgICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsCiAgICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIHF1aWV0IGNvbXBpbGVyIHdhcm5pbmdzIHVzaW5nIGFwcHJvcHJpYXRlIHR5cGUgY2FzdGluZy4KCjIwMDQtMDEtMjcgMDk6MjQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgICBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIFJlZmVyIHRvIHRoZSBuZXRzbm1wIGxpYnJhcnkgdmVyc2lvbiBzdHJpbmcgdmlhIG5ldHNubXBfZ2V0X3ZlcnNpb247CiAgIEtlZXAgZGlyZWN0IHN0cmluZyByZWZlcmVuY2UgaWZmIFVDRF9DT01QQVRJQkxFIGlzIGRlZmluZWQuCgoyMDA0LTAxLTI3IDA5OjA3ICBzbGlmCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYzoKCiAgIEF2b2lkIGNvbnZlcnNpb24gbWFjcm9zIHdoZW4gZm9ybWluZyBob3N0IGNvcHkgb2YgMTYtYml0IHBvcnQgdmFsdWUKCjIwMDQtMDEtMjcgMDk6MDcgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBEb250IGZvcmNlIHVuc2lnbmVkIHNob3J0IG9udG8gdHdvIHVuc2lnbmVkIGNoYXJzLgogICBCZSBtb3JlIGV4cGxpY2l0IGluIHRoZSB0cmVhdG1lbnQgb2YgdGhlIHllYXIgY29tcG9uZW50LgoKMjAwNC0wMS0yNyAwOTowMiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcFRhYmxlLmMsIHVkcFRhYmxlLmM6CgogICBXaW4zMiBhbGxvY2F0ZXMgVENQIGFuZCBVRFAgY29ubmVjdGlvbiBzdHJ1Y3R1cmVzIHRoYXQgY29uc2lzdCBvZgogICAgYSAzMi1iaXQgY291bnQgZm9sbG93ZWQgYnkgYSBwZXIgY29ubmVjdGlvbiB0YWJsZS4gIFdoZW4gZnJlZWluZyB0aGUgdGFibGUsCiAgICBmaW5kIHRoZSBiZWdpbm5pbmcgb2YgdGhlIHN0cnVjdHVyZS4gIFRoZSBUQ1AgdGFibGUgaW5jb3JyZWN0bHkgY291bnRlZAogICAgZXN0YWJsaXNoZWQgVENQIGNvbm5lY3Rpb25zLCBmaXhlZCB3aXRoIHRoaXMgY2hhbmdlLgoKMjAwNC0wMS0yNyAwODo1OCAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICAgIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIHN1cHBvcnQgV2luMzIgaW4gT1NUWVBFIGRlZmluaXRpb24uCgoyMDA0LTAxLTI3IDA4OjU0ICBzbGlmCgogICAqIGFnZW50Lzogc25tcGQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgaW5jbHVkZSBpby5oIGZvciBXaW4zMiB0byBpbnRyb2R1Y2UgdGhlIGNsb3NlKCkgZnVuY3Rpb24KCjIwMDQtMDEtMjcgMDc6NDggIHNsaWYKCiAgICogd2luMzIvOiBsaWJoZWxwZXJzLy5jdnNpZ25vcmUsIG5ldC1zbm1wLy5jdnNpZ25vcmUsCiAgICAgbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwgbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlCiwgbmV0c25tcG1pYnMvLmN2c2lnbm9yZSwgbmV0c25tcG1pYnNzZGsvLmN2c2lnbm9yZQosIHNubXBkc2RrLy5jdnNpZ25vcmU6CgogICBwcm92aWRlIGEgQ1ZTIGZpbHRlciB0byBldmVyeSBzdWJkaXIgdW5kZXIgd2luMzIuCgoyMDA0LTAxLTI3IDA3OjM0ICBzbGlmCgogICAqIHdpbjMyLzogbGliYWdlbnQvbGliYWdlbnQuZGVmLCBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmCjoKCiAgIGNvbnZlcnQgdG8gRE9TIGZvcm1hdCB0byBrZWVwIGNlcnRhaW4gSURFIGhhcHB5LgoKMjAwNC0wMS0yNyAwNzoyNyAgc2xpZgoKICAgKiB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgdGhpcyBmaWxlIGlzIHN1cGVyc2VkZWQgYnkgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaC4KCjIwMDQtMDEtMjcgMDc6MjMgIHNsaWYKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKOgoKICAgY2hhbmdlcyBhcHByb3ZlZCBieSBhdXRob3IgcHJvdmlkZSBtb3JlIHJlYWRhYmxlIGZvcm1hdHRpbmcgYW5kIGNvbW1lbnRzLgoKMjAwNC0wMS0yNyAwNzoyMiAgc2xpZgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLCBzbm1wbGliL3dpbnNlcnZpY2UuYwo6CgogICByZW1vdmUgQ1IgY2hhcmFjdGVycyBmcm9tIHRoZXNlIHNvdXJjZXMuCgoyMDA0LTAxLTI3IDA3OjE5ICBzbGlmCgogICAqIFJFQURNRS5QYW5hc29uaWNfQU0zWC50eHQ6CgogICBjb252ZXJ0IENSTEYgdG8gbmV3bGluZQoKMjAwNC0wMS0yNyAwNzowNCAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIEZvcndhcmQgdHJhcHMgdG8gcG9ydCAxNjIgYnkgZGVmYXVsdC4KCjIwMDQtMDEtMjYgMTU6NTYgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgcXVpZXQgY29tcGlsZXIgd2FybmluZwoKMjAwNC0wMS0yNiAxNTo1NSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZG9uJ3QgaGFyZGNvZGUgcG9pbnRlciBzaXplOyBub3RlZCBvbiBjb2RlcnMgYnkgcmFqZXNoIGFydW11Z2FtCgoyMDA0LTAxLTI2IDA0OjE5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgRml4IHRoZSBvcmRlcmluZyBvZiBob3N0bmFtZSBhbmQgSVAgYWRkcmVzcyBhcyBwYXNzZWQgdG8gdHJhcCBoYW5kbGVyCiAgIChCdWcgIzg4MjA3MSBhbmQgb3RoZXJzKQoKMjAwNC0wMS0yNiAwNDoxNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIENvbnZlcnQgdjEgdHJhcHMgdG8gdjIgZm9ybWF0IGJlZm9yZSBwYXNzaW5nIGl0IHRvIHRoZSB0cmFwIGhhbmRsZXIKICAgKHBsdXMgbWVyZ2luZyB0aGUgb3RoZXIgNS4xLnggcGF0Y2hlcyBpbnRvIHRoZSBtYWluIGRldmVsb3BtZW50IHRyZWUpCgoyMDA0LTAxLTI2IDAyOjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIEVuc3VyZSB0aGF0IGhyRlNUYWJsZSBpbmRleGVzIGFyZSBjb25zaXN0ZW50IGFjcm9zcyB0aGUgbGlmZXRpbWUgb2YKICAgdGhlIGFnZW50LgoKMjAwNC0wMS0yNiAwMjo0MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBBbGlnbiBockZTU3RvcmFnZUluZGV4IHZhbHVlcyB3aXRoIGhyU3RvcmFnZVRhYmxlIChidWcgIzg4Mjk4NykKCjIwMDQtMDEtMjAgMDU6NDggIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICBBZGQgQW5keSBTbWl0aCB0byBjb250cmlidXRvcnMKCjIwMDQtMDEtMjAgMDU6NDAgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maXVyZS5pbgoKMjAwNC0wMS0yMCAwNToyOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaDoKCiAgIHBhcnRpYWwgYXBwbGljYXRpb24gb2YgODYwOTgwOiBGaXggZm9yIG1pbmd3MzIuaAoKMjAwNC0wMS0yMCAwNToxNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGFwcGx5IHBhdGNoIDg0MzY3OTogQ29uZmlndXJlIHBhdGNoIGZvciBNaW5HVwoKMjAwNC0wMS0xNCAwNjowMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaWZUYWJsZS5jOgoKICAgRml4IGhhbmRsaW5nIG9mIDY0LWJpdCBjb3VudGVycywgYW5kIHVzZSB0aGUgY29ycmVjdCAvcHJvYyBpbnRlcmZhY2UgZmlsZQogICAobm90IHRoZSB0ZW1wb3JhcnkgZGVidWdnaW5nIHZlcnNpb24hKQoKMjAwNC0wMS0xNCAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpZlRhYmxlLmMsIGlmVGFibGUuaDoKCiAgIFByb3Zpc2lvbmFsIHJlLWltcGxlbWVudGF0aW9uIG9mIElGLU1JQjo6aWZUYWJsZSBhbmQgSUYtTUlCOjppZlhUYWJsZQogICBMaW51eCBzdXBwb3J0IG9ubHkgKGFuZCBzb21lIG9iamVjdHMgYXJlIG1pc3NpbmcpLAogICBidXQgaXQgc2hvdWxkIGdpdmUgdGhlIGdlbmVyYWwgZmxhdm91ci4KCjIwMDQtMDEtMTQgMDU6MzcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9zbm1wX2VudW0uYwo6CgogICBOZXcgaW50ZXJmYWNlcyB0byBmaW5kIGFuIHVudXNlZCB2YWx1ZSB3aXRoaW4gYW4gZW51bWVyYXRpb24gbGlzdC4KCjIwMDQtMDEtMTMgMjA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaDoKCiAgIHVuZG8gaW5hZHZlcnRlbnQgY2hlY2tpbgoKMjAwNC0wMS0xMyAyMDoxMyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiBjYWNoZV9oYW5kbGVyLmMsIHJvd19tZXJnZS5jLAogICAgIHRhYmxlX2l0ZXJhdG9yLmM6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTMgMjA6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTMgMjA6MDMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgYWdlbnQvc25tcF92YXJzLmM6CgogICB1bmRvIGluYWR2ZXJ0ZW50IGNoZWNraW4KCjIwMDQtMDEtMTMgMTA6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oOgoKICAgdW5kbyBpbmFkdmVydGVudCBjaGVja2luCgoyMDA0LTAxLTExIDE2OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGZpeCB0eXBvLCBub3RlZCBvbiBjb2RlcnMgYnkgT2xlZyBJdmFub3YKCjIwMDQtMDEtMTEgMTY6NDMgIHJzdG9yeQoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQsIHNubXBsaWIvY29udGFpbmVyLmMsCiAgICAgd2luMzIvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZV9jb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgICBhZ2VudC9oZWxwZXJzL3Jvd19tZXJnZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9uZXRic2QuaCwKICAgICBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZiwgTWFrZWZpbGUuaW46CgogICBmaXggcmFuZ2UgY2hlY2tpbmcgY29kZSwgbm90ZWQgb24gY29kZXJzIGJ5IE9sZWcgSXZhbm92CgoyMDA0LTAxLTA3IDA5OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX25vZGUubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLCBtZmQtZGF0YS1zZXQubTJjCiwgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjLAogICAgIHN1YmFnZW50Lm0yYzoKCiAgIGlmIG5lZWRsZW5ndGggbm90IHNldCwgc2V0IHZhcmJpbmQgdmFsX2xlbiBmb3IgR0VUcywgdmFsaWRhdGUgdmFsX2xlbiBvbiBzZXQ7CiAgIGRvbid0IGRlY2xhcmVzIGZ1bmN0aW9ucyB3aGljaCBjYW4ndCBiZSBpbmxpbmVkIGFzIGlubGluZTsgY29tbWVudCB0d2Vha3MKCjIwMDQtMDEtMDYgMTQ6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIHRyYW5zbGF0ZSBhIE1JQiB0eXBlIG9mIElQQUREUiB0byBJUEFERFJFU1MgaW5zdGVhZCBvZiBPQ1RFVF9TVFJJTkcuCiAgIC0gc21hbGwgb3RoZXIgYnVnIGZpeAoKMjAwNC0wMS0wNiAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBjaGFuZ2UgdGhlIG1hbnVhbCBzbyBpdCBkb2Vzbid0IHJlZmVyZW5jZSBVQ0QtU05NUCB2MyAoYWhlbSkKCjIwMDQtMDEtMDYgMTQ6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgcHJvcGVyIHNvcnRpbmcgd2hlbiBOZXRTTk1QOjpPSUQgaXMgYXZhaWxhYmxlLgoKMjAwNC0wMS0wMSAxNjo1MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgb25seSBzZXQgZGVmYXVsdHMgaWYgbm90IGFscmVhZHkgc2V0CgoyMDAzLTEyLTMwIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC54cywgdGVzdC5wbDoKCiAgIGhhbmRsZSBpbXBsaWVkIGluZGV4ZXMKCjIwMDMtMTItMzAgMTk6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnBtLCBPSUQueHMsIHRlc3QucGw6CgogICBBIG5ldyAtPmdldF9pbmRleGVzKCkgbWV0aG9kIHRvIHJldHVybiB0aGUgZXh0cmFjdGVkIGluZGV4ZXMgZnJvbSBhIE9JRC4KCjIwMDMtMTItMzAgMTU6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFsbG93OiBzZXBhcmF0ZWQgcGF0aHMgaW4gTUlCMkNfRElSIGVudiB2YXIKCjIwMDMtMTItMzAgMTU6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtMmNfc2V0dXBfZW51bS5tMmksIG0yY19zZXR1cF9ub2RlLm0yaQo6CgogICB1bnF1b3RlIHVjIGNhbGxzLCBzaW5jZSBldmFsIHdpdGggaW50ZXJwcmV0IGFzIGEgbGl0ZXJhbCBhbmQgSSBjYW4ndAogICByZXByb2R1Y2UgdGhlICdiYXJld29yZCcgcHJvYmxlbSB0aGF0IG1hZGUgbWUgcXVvdGUgaW4gdGhlIGZpcnN0IHBsYWNlCgoyMDAzLTEyLTI5IDEyOjAzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCjoKCiAgIHJlbW92ZSB1bnVzZWQgcmVxdWVzdF9tb2RlCgoyMDAzLTEyLTI2IDEyOjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICByZW5hbWUgdmFycyBmb3IgY2xhcmlmaWNhdGlvbjogJHt0YWJsZX1fY3R4KiAtPiAke3RhYmxlfV9yb3dyZXFfY3R4KjsgYWRkCiAgIHZhcnMgZm9yIG1mZF9kZWZhdWx0czsgdXNlIG5ldyBtaWIyYyBwdXNoL3BvcCB0byBnZW5lcmF0ZSBwZXIgdGFibGUgZGVmYXVsdHMKICAgZmlsZSBkZWZhdWx0LXRhYmxlLSR0YWJsZS5tMmQgY29udGFpbmluZyBjdXJyZW50IHZhbHVlcyBvZiBzb21lIG0yYyB2YXJzCgoyMDAzLTEyLTI2IDEyOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1nZXQtY2hhci5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksCiAgICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLAogICAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaSwgbWZkLWRhdGEtZ2V0Lm0yYwosIG1mZC1kYXRhLXNldC5tMmMsIG1mZC1pbnRlcmZhY2UubTJjLAogICAgIG1mZC1yZWFkbWUubTJjLCBtZmQtdG9wLm0yYywgbm9kZS1nZXQubTJpLAogICAgIG5vZGUtc2V0Lm0yaSwgcGFyZW50LWRlcGVuZGVuY2llcy5tMmksIHBhcmVudC1zZXQubTJpCiwgc3ludGF4LUluZXRBZGRyZXNzLWdldC5tMmksCiAgICAgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1nZXQubTJpOgoKICAgcmVuYW1lIHZhcnMgZm9yIGNsYXJpZmljYXRpb246IGl0cl9jdHgqIC0+IGxvb3BfY3R4KiwgbG9vcCogLT4gbG9vcF9jdHgqLAogICAke3RhYmxlfV9jdHgqIC0+ICR7dGFibGV9X3Jvd3JlcV9jdHgqCgoyMDAzLTEyLTI2IDEyOjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF9ub2RlLm0yaToKCiAgIHF1b3RlIGFzc2lnbm1lbnQgb2YgdXBwZXJjYXNlZCBuYW1lLCBzbyB2YWx1ZXMgdGhhdCBzdGFydCB3aXRoIGEgZGlnaXQgZG9uJ3QKICAgZ2V0IGludGVycHJldGVkIGFzIGEgYmFyZSB3b3JkOyBjaGcgZGVidWcgcHJpbnQgdG8gY29tbWVudAoKMjAwMy0xMi0yNiAxMjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLAogICAgIGdlbmVyaWMtdmFsdWUtbWFwLXJldmVyc2UubTJpLCBnZW5lcmljLXZhbHVlLW1hcC5tMmksCiAgICAgbTJjX3NldHVwX2VudW0ubTJpOgoKICAgcXVvdGUgYXNzaWdubWVudCBvZiB1cHBlcmNhc2VkIG5hbWUsIHNvIHZhbHVlcyB0aGF0IHN0YXJ0IHdpdGggYSBkaWdpdCBkb24ndAogICBnZXQgaW50ZXJwcmV0ZWQgYXMgYSBiYXJlIHdvcmQ7IGNvbnNvbGlkYXRlICRtMmNfZW5hbWV5LyRtMmNfaW5hbWUgcHJvY2Vzc2luZwogICBpbnRvIG0yY19zZXR1cF9lbnVtLm0yaQoKMjAwMy0xMi0yMyAwNzoxOSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICByZW1vdmUgZGVwcmVjYXRlZCBvcHRpb24gZnJvbSBleGFtcGxlCgoyMDAzLTEyLTIzIDA3OjE4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNoYW5nZSBkZWZhdWx0IHJwbSBidWlsZCBpbnN0cnVjdGlvbnMgdG8gZW1iZWQgcGVybAoKMjAwMy0xMi0yMyAwNzoxNyAgcnN0b3J5CgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHJlLXdvcmsgcGVybCBvcHRpb25zIHRvIGZpeCBwcm9ibGVtIHcvY29uZmlndXJlIGFyZ3VtZW50IHF1b3RpbmcKCjIwMDMtMTItMjMgMDI6MDAgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIE5vdGUgdGhhdCBDeWd3aW4gbm8gbG9uZ2VyIG5lZWRzIGEgc2VwYXJhdGUgcmVnZXggbGlicmFyeQogICBSZXBvcnRlZCBieSBKb2huIE1jQ2FzaAoKMjAwMy0xMi0yMiAxNjo1NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIHB1c2gvcG9wOyByZS13b3JrIGluZGV4L2ludGVybmFsaW5kZXgvZXh0ZXJuYWxpbmRleC9ub25pbmRleCBzZXR1cAoKMjAwMy0xMi0xOSAyMDozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLAogICAgIG1pYjJjLmFycmF5LXVzZXIuY29uZiwgbWliMmMuY2hlY2tfdmFsdWVzLmNvbmYsCiAgICAgbWliMmMuY29uZjoKCiAgIFBhdGNoIGZyb20gQnJpYW4gQnVlc2tlciB0byBmaXggbWlzYyBwcm9ibGVtcyAodmFyaWFibGUge31pbmcsIC4uLikKCjIwMDMtMTItMTggMDE6NTggIGR0czEyCgogICAqIG1hbi9zbm1wbmV0c3RhdC4xOgoKICAgRml4IG1vcmUgbWFya3VwIGVycm9ycywgcmVwb3J0ZWQgYnkgRXJpYyBSYXltb25kLgoKMjAwMy0xMi0xNiAwMjowMCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIEJlIGNvbnNpc3RlbnQgaW4gdXNlIG9mIGZvcndhcmQgZGVmaW5pdGlvbnMgKGV4cGxpY2l0IHZzIGltcGxpY2l0IHN0cnVjdCkKICAgUmVwb3J0ZWQgYnkgTWFnbnVzIEZyb21yZWlkZQoKMjAwMy0xMi0xMSAxODo1NiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgcnBtIGJ1aWxkIGluc3RydWN0aW9ucwoKMjAwMy0xMi0xMSAxODo1MiAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaXggdXBkYXRlZCBwZXJsIG9wdGlvbnMgZm9yIG5ldyBycG0gbWV0aG9kCgoyMDAzLTEyLTExIDE4OjQxICByc3RvcnkKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHJlbW92ZSBWRVIvUkVMLCB1c2UgVkVSU0lPTi9SRUxFQVNFOyB1cGRhdGUgcGVybCBvcHRpb25zIGZvciBuZXcgcnBtIG1ldGhvZDsKICAgYWRkIHRhcmdldCB0byBidWlsZCBycG0gdHJlZTsgZG9uJ3QgaGFyZGNvZGUgYXJjaGl0ZWN0dXJlCgoyMDAzLTEyLTExIDE4OjM4ICByc3RvcnkKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIGRvY3VtZW50IC1EIG9wdGlvbjsgYWRkIE1ha2VmaWxlIHR5cGUKCjIwMDMtMTItMTEgMTg6MjIgIHJzdG9yeQoKICAgKiBkaXN0L25ldC1zbm1wLnNwZWM6CgogICBkb24ndCByZXF1aXJlIHBlcmw7IGFkZCBub3RlIG9uIHZlbmRvciByZWxlYXNlcwoKMjAwMy0xMi0xMSAwODoxMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgcnVuIGluZGVudAoKMjAwMy0xMi0xMSAwODowMCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgbW92ZSBsb2dpYyB0byBza2lwIHdoZW4gY2FjaGluZyBkaXNhYmxlLCBubyBjYWNoZSBmb3VuZCBvciBjYWNoZSBkaXNhYmxlZAoKMjAwMy0xMi0xMCAwNjo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBkZWxheSBzb3VyY2luZyBvZiBuc2ItZnVuY3Rpb25zOyBtdiByYyBmaWxlIGludG8gfi8uc25tcDsgcmVtb3ZlIGJ1aWxkIGRpcgogICBvbiBzdWNjZXNzCgoyMDAzLTEyLTEwIDA2OjQzICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGRlbGF5IHNvdXJjaW5nIG9mIG5zYi1mdW5jdGlvbnM7IG12IHJjIGZpbGUgaW50byB+Ly5zbm1wCgoyMDAzLTEyLTEwIDA2OjE3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbmV3IHZhcnM6IE5TQl9WRVJTSU9OIE5TQl9CVUlMRF9TVUZGSVg7IGRvbid0IHVzZSBob3N0bmFtZSAtcywgc2luY2Ugc3VuCiAgIGRvZXNuJ3Qgc3VwcG9ydCBpdDsgdHdlYWsgZGVmYXVsdCBwYXRocwoKMjAwMy0xMi0xMCAwMjo0MSAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zLmRlZiwgc25tcC5jb25mLjUuZGVmLAogICAgIHNubXBfY29uZmlnLjUuZGVmOgoKICAgRml4IGFzc29ydGVkIG1hcmt1cCBlcnJvcnMsIHJlcG9ydGVkIGJ5IEVyaWMgUmF5bW9uZC4KCjIwMDMtMTEtMzAgMTQ6MjUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBmaXggc2NvcGUgb2YgaGF2ZV9kaXJlbnQgaWZkZWYKCjIwMDMtMTEtMzAgMTQ6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jOgoKICAgYWRkIGNvbW1lbnRzOyByZW1vdmUgYXNzZXJ0IG9uIHZhbGlkIGNvbmRpdGlvbgoKMjAwMy0xMS0zMCAxNDoyMSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGRlYnVnIG1zZyB3aGVuIHNraXBwaW5nIHZiIHdpdGggYm9ndXMgaW5kZXgKCjIwMDMtMTEtMzAgMTQ6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL2JhYnlfc3RlcHMuYzoKCiAgIHJlYWRhYmlsaXR5IGZpeCAtIHVzZSBtYWNybyBpbnN0ZWFkIG9mIGhhcmRjb2RlZCB2YWx1ZQoKMjAwMy0xMS0yOCAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsCiAgICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBJZiBhIHJvdyBpcyBjcmVhdGVkIHZpYSBhIFNFVCByZXF1ZXN0LCB0aGVuIGl0IG5lZWRzIHRvIGJlIG1hZGUgYXZhaWxhYmxlCiAgIHRvIHRoZSBvdGhlciBjb2x1bW5zIGFuZCBwYXNzZXMuICBQcm92aWRlIGEgbWVjaGFuaXNtIGZvciBpbnNlcnRpbmcgdGhpcwogICBpbnRvIHRoZSByZXF1ZXN0IGxpc3QuCiAgIChUaGlzIGxvb2tzIHN1c3BpY2lvdXNseSBzaW1pbGFyIHRvIGFub3RoZXIgcmVjZW50IHBhdGNoOi0pICAgRG9lcwogICB0aGlzIGZ1bmN0aW9uYWxpdHkgcGVyaGFwcyBiZWxvbmcgd2l0aGluIHRoZSB0b3AtbGV2ZWwgJ3RhYmxlJyBoYW5kbGVyPykKCjIwMDMtMTEtMjUgMTU6NDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSBzdXBwb3J0ICRub2RlLmRlc2NyaXB0aW9uCiAgIC0gc3VwcG9ydCBAcHJpbnRmIC4uLkAKCjIwMDMtMTEtMjUgMTI6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2VhayBkZWZhdWx0IGJ1aWxkIGRpcnM7IGRlZmF1bHQgdG8gaG9zdC92ZXJzaW9uIGluc3RlYWQgb2YgcGxhdGZvcm0vdmVyc2lvbgogICAoc2luY2Ugc2YgYnVpbGQgaG9zdHMga2VlcCBjaGFuZ2luZyBwbGF0Zm9ybXMpCgoyMDAzLTExLTI1IDEyOjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIG1vdmUgZGlyIG11bmdpbmcgaW4gbnNiLWZ1bmN0aW9ucwoKMjAwMy0xMS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIHZlcnNpb24gc3RhbXAgdGhlIC5zcGVjIGZpbGUKCjIwMDMtMTEtMjQgMDk6NTMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIHZlcnNpb24gbnVtYmVyIGNoYW5nZQoKMjAwMy0xMS0yNCAwOTozOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgYWRkIGEgZ3JlZWNlIG1pcnJvcgoKMjAwMy0xMS0yNCAwNjozNyAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBIYW5kbGUgaW52YWxpZCAoNjQtYml0KSB2YWx1ZXMgZm9yIGVuZ2luZSBib290cyAmIHRpbWUKICAgUGF0Y2ggIzgyNzA0NCBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgwOTI1MAoKMjAwMy0xMS0yNCAwNjoyMyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBDb3JyZWN0IHVzYWdlIGluZm9ybWF0aW9uIGZvciAtQ3ggb3B0aW9ucwogICBQYXRjaCAjODE4NzY2IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODE4NjM0CgoyMDAzLTExLTI0IDA0OjAwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jOgoKICAgSGFuZGxlIEdFVE5FWFQgcmVxdWVzdHMgb24gdGhlIGhyRGV2aWNlVGFibGUgd2l0aCBhICJ0b28gbGFyZ2UiIGluZGV4LgogICBQYXRjaCAjODExNzE3IGJ5IEJvYiBSb3dsYW5kcywgZml4aW5nIGJ1ZyAjODA3MzE1CgoyMDAzLTExLTIxIDA5OjEzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIENvcnJlY3QgaGFuZGxpbmcgb2YgVUNEIGRpc2tpbyB2YWx1ZXMgb24gNjQtYml0IFNvbGFyaXMuCiAgIFBhdGNoICM4MDkyNTUgYnkgQm9iIFJvd2xhbmRzLCB0byBmaXggYnVnICM4MDg5NzUKCjIwMDMtMTEtMjEgMDk6MDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIEZpeCBTb2xhcmlzIGltcGxlbWVudGF0aW9uIG9mIGlmSW5OVWNhc3RQa3RzICYgaWZPdXROVWNhc3RQa3RzCiAgIFBhdGNoICM4MDg4MDcgYnkgQm9iIFJvd2xhbmRzLCB0byBmaXggYnVncyAjODA4Mzk5ICYgIzgwODQxNwoKMjAwMy0xMS0yMSAwODoxMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgSW1wbGVtZW50IGlmU3BlY2lmaWMgb2JqZWN0IG9uIFNvbGFyaXMuCiAgIFBhdGNoICM4MDg3NDYgYnkgQm9iIFJvd2xhbmRzLCBmaXhpbmcgYnVnICM4MDg0MzAKCjIwMDMtMTEtMjEgMDc6MjMgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBFbnN1cmUgMzItYml0IHRpbWV0aWNrcyB2YWx1ZSByZXR1cm5lZCBvbiBTb2xhcmlzIGtpdC4KICAgUGF0Y2ggIzgwODA3NCBieSBCb2IgUm93bGFuZHMsIHRvIGZpeCBidWcgIzgwNzc5NgoKMjAwMy0xMS0yMSAwNzoxOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBSZXR1cm4gYW4gZXJyb3Igb24gZmFpbGVkIG92ZXJycmlkZSB3cml0ZS4KICAgUGF0Y2ggIzgwODA1NCBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzgwNTI1NAoKMjAwMy0xMS0yMSAwNjozMCAgZHRzMTIKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICAgIHNubXB1c20uMS5kZWY6CgogICBNaW5vciBjbGFyaWZpY2F0aW9ucyB0byBhIGZldyBtYW4gcGFnZXMuCiAgIFBhdGNoICM4MDc5MzcgZnJvbSBCb2IgUm93bGFuZHMKCjIwMDMtMTEtMjEgMDY6MjUgIGR0czEyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBIYW5kbGUgc3RvcmFnZSB1bml0cyA8MTAyNCBieXRlcwogICAoUGF0Y2ggIzgwMTM0MSBieSBCb2IgUm93bGFuZHMsIGZpeGluZyBidWcgIzc1NzQ0OCkKCjIwMDMtMTEtMjEgMDU6MjEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFdoZW4gd2UgcmVhY2ggdGhlIGVuZCBvZiB0aGUgbGFzdCB0YWJsZSwgbWFrZSBzdXJlIHRoYXQgdGhlIGhpZ2hlciBsZXZlbAogICBoYW5kbGVycyB3aWxsIHJlYWxpc2UgdGhpcywgYW5kIG1vdmUgb24gdG8gdGhlIG5leHQgcmVnaXN0ZXJlZCBtb2R1bGUuCiAgIEFsc28gY2F0Y2ggbWlzc2luZyBjb2x1bW5zIHdoZW4gcHJvY2Vzc2luZyBHRVRORVhUIHJlcXVlc3RzLgoKMjAwMy0xMS0yMSAwNDoxOSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgU3VwcG9ydCBhY2tub3dsZWRnZWQgbm90aWZpY2F0aW9ucyAoSW5mb3JtIGFuZCBBZ2VudFggTm90aWZ5KSBhcwogICB3ZWxsIGFzIHVuYWNrbm93bGVkZ2VkIG9uZXMuICAgRmlyc3QgcmVwb3J0ZWQgYnkgZGF2aWRAZ3JhbmNhbmFyaWEKICAgUHJvYmFibHkgZG9lc24ndCByZXNlbmQgaWYgbm8gcmVzcG9uc2UgaXMgcmVjZWl2ZWQuCgoyMDAzLTExLTIwIDA3OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5jOgoKICAgTW92ZSBzdWZmaXggcHJvY2Vzc2luZyB3aXRoaW4gdGhlIHJlcXVlc3QgbG9vcCwgc2luY2UgdjUuMSBpdGVyYXRvcgogICBoYW5kbGVycyBtYXkgcmVjZWl2ZSBtdWx0aXBsZSByZXF1ZXN0IHZhcmJpbmRzLiAgRml4IHByb3ZpZGVkIGJ5IEJhcmIgUm9lc2NoCgoyMDAzLTExLTIwIDA2OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUHJvdGVjdCAndW5yZWdpc3Rlcl9taWJzX2J5X3Nlc3Npb24nIGZyb20gYmVpbmcgY2FsbGVkIHdpdGggYSBOVUxMCiAgIHNlc3Npb24gcG9pbnRlci4gIChVc2VkIHdoZW4gdW5yZWdpc3RlcmluZyAiaW50ZXJuYWwiIE1JQiBtb2R1bGVzKQoKMjAwMy0xMS0yMCAwMTozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmM6CgogICBCZSBjb25zaXN0ZW50IGluIHVzZSBvZiByZXR1cm4gdmFyaWFibGUgbmFtZSBmb3IgSFAtVVggMTEKICAgKEZpeGVkIGJ1ZyAjODQ1NDYwKQoKMjAwMy0xMS0xOSAxNjoyMyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBuZXcgY29uZmlndXJlLmluCgoyMDAzLTExLTE5IDE2OjIxICByc3RvcnkKCiAgICogY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgZG9uJ3QgdXNlIG5vbi1wb3J0YWJsZSAuYz0ubyB0eXBlIHN1YnN0aXR1dGlvbnMgaW4gbWFrZWZpbGU7IHRodXMgcHV0IG9iai9sb2JqCiAgIGdlbmVyYXRpb24gYmFjayBpbiBjb25maWd1cmUKCjIwMDMtMTEtMTkgMDc6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEVuYWJsZSByZXRyaWVzIG9uIEdldE5leHQgbm9TdWNoSW5zdGFuY2UgZXhjZXB0aW9ucy4gRml4ZXMgYnVnICM4NDM4NDIKCjIwMDMtMTEtMTkgMDc6MzIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvd2F0Y2hlci5oLCBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYwo6CgogICBGaXggd2F0Y2hlZCB0aW1lc3RhbXAgcmVnaXN0cmF0aW9uLiAnbWFya2VyX3QnIGlzIGFscmVhZHkgYSBwb2ludGVyLAogICBzbyBkb2Vzbid0IG5lZWQgZnVydGhlciBkZXJlZmVyZW5jaW5nIQoKMjAwMy0xMS0xNyAwOToxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNMb2dnaW5nLmM6CgogICBGaXggY3JlYXRpb24gb2YgbmV3IGxvZ2dpbmcgZW50cmllcy4KCjIwMDMtMTEtMTcgMDk6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBJZiBhIHJvdyBpcyBjcmVhdGVkIHZpYSBhIFNFVCByZXF1ZXN0LCB0aGVuIGl0IG5lZWRzIHRvIGJlIGluc2VydGVkIGludG8KICAgdGhlIGl0ZXJhdGlvbiBkYXRhIHN0cnVjdHVyZXMsIHNvIHRoYXQgaXQncyBhdmFpbGFibGUgdG8gb3RoZXIgY29sdW1ucyAmIHBhc3Nlcy4KCjIwMDMtMTEtMTcgMDk6MDYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBSZWxlYXNlIHRoZSBkYXRhIHN0cnVjdHVyZSBvbmNlIGl0J3Mgbm8gbG9uZ2VyIG5lZWRlZC4KCjIwMDMtMTEtMTcgMDI6NTggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvdGNwLmMsIHVjZC1zbm1wL3Ztc3RhdC5jOgoKICAgQXZvaWQgdXNpbmcgdGhlIHZhcmlhYmxlIG5hbWUgJ2h6JyAod2hpY2ggZ2V0cyBjb3JydXB0ZWQgb24gQUlYIGFuZCBIUFVYCiAgIGJ5IHN5c3RlbSByZWRlZmluaXRpb25zKS4gIFNlZSBidWcgIzg0MjQ3NSAmICM4NDI0ODMKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuOSAtPiBWNS4xCgoyMDAzLTExLTEzIDE4OjQ2ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgcmV2ZXJzZSA1LnggYW5kIDQueCBsaXN0aW5nIHNpbmNlLCB1bSwgdGhpcyBpcyA1LnggKGFnYWluKQogICAKMjAwMy0xMS0xMyAxODo0NCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJldmVyc2UgNS54IGFuZCA0LnggbGlzdGluZyBzaW5jZSwgdW0sIHRoaXMgaXMgNS54CiAgIAoyMDAzLTExLTEzIDE4OjQyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLCBuZXRzbm1wX2FnZW50LjMsCiAgIG5ldHNubXBfYmFieV9zdGVwcy4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2NhY2hlX2hhbmRsZXIuMywgbmV0c25tcF9jb250YWluZXIuMywKICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2RlcHJlY2F0ZWQuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9sZWFmLjMsIG5ldHNubXBfbGlicmFyeS4zLAogICBuZXRzbm1wX21mZF9wZHVfY29udGV4dF9zLjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9yb3dfbWVyZ2UuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zdGFzaF9jYWNoZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF91dGlsaXRpZXMuMwosIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIGZvciA1LjEKICAgCjIwMDMtMTEtMTMgMTg6MjEgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMQogICAKMjAwMy0xMS0xMyAxODoxNCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBwYXRjaCAjODM4MTEyIHRvIGZpeCB3aW5kb3dzIHBlcmwgYnVpbGRpbmcKICAgCjIwMDMtMTEtMTMgMTc6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCByZWdleHAgZm9yIGR1cGxpY2F0ZSBpbmRleCBleGNsdXNpb24gdG8gb25seSBtYXRjaCB3aG9sZSB3b3JkcwogICAKMjAwMy0xMS0xMyAxNTowMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBzdGFzaF9jYWNoZQogICAKMjAwMy0xMS0xMyAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvOiBuc0NhY2hlLmMsIG5zRGVidWcuYywKICAgbnNMb2dnaW5nLmM6CgogICAtIHByb3Blcmx5IGNoZWNrIGZvciB0aGUgLT5wcm9jZXNzZWQgZmxhZy4KICAgICAtIChmaXhlcyBhIGJ1ZyBwb2ludGVkIG91dCBieSBCcnVjZSB3aGVyZSBhIGdldG5leHQgcmV0dXJuZWQgbm9TdWNoSW5zdGFuY2UpCiAgIAoyMDAzLTExLTEzIDEyOjExICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZG9uJ3QgY2FsbCBoYW5kbGVycyBmb3IgZXJyb3IgcmVjb3ZlcnkgaWYgdGhleSBoYWRuJ3QgYmVlbiBjYWxsZWQgZm9yIGF0IGxlYXN0CiAgIHJlc2VydmUxIChlLmcuIHNldCB3L2ludmFsaWQgaW5kZXhlcykKICAgCjIwMDMtMTEtMTMgMTE6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGZpeCB2b2lkIGRlZmluaXRpb24gZm9yIG5ldHNubXBfYXNzZXJ0IHdoZW4gZGVidWdnaW5nIGRpc2FibGVkLCBub3RlZCBvbiBjb2RlcnMKICAgCjIwMDMtMTEtMTMgMTE6MzIgIHJzdG9yeQoKICAgKiBSRUFETUUud2luMzI6CgogICBhcHBseSBwYXRjaCBbIDg0MTQ2MyBdIDUuMXJjMSBSRUFETUUud2luMzIgY2hhbmdlcwogICAKMjAwMy0xMS0xMiAwOToyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICBQcm92aWRlZSBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvciBSb3V0ZV9TY2FuX1JlbG9hZAogICBIUC1VWCAxMSBvbmx5LiAgTGF0ZXN0IGluIHRoZSBzYWdhIG9mIGJ1ZyAjIDg0MDYxNQogICAKMjAwMy0xMS0xMiAwNDo1NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcFRhYmxlLmMKOgoKICAgRml4IG1vcmUgSFAtVVggMTEgc3BlY2lmaWMgYm9ndXMgY29kZS4KICAgVHJhY2tpbmcgQnVnICM4NDA2MTUKICAgCjIwMDMtMTEtMTIgMDI6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgVXNlIGNvcnJlY3QgdmFyaWFibGUgZm9yIGRldGVjdGluZyB3aGljaCBvYmplY3QgaXMgYmVpbmcgcHJvY2Vzc2VkLgogICAoSFBVWC0xMSBvbmx5IC0gZml4ZXMgYnVnICM4NDA2MTUpCiAgIAoyMDAzLTExLTEwIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSAocGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHBlcmwvU05NUC9TTk1QLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucmMxICkKICAgCjIwMDMtMTEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4xLnJjMSApCiAgIAoyMDAzLTExLTEwIDE0OjM4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMpOiB2ZXJzaW9uIHRhZyAoIDUuMS5yYzEgKQogICAKMjAwMy0xMS0xMCAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCjoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTExLTEwIDA4OjQ3ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGRvbid0IGRvdWJsZSBjcmVhdGUgdGVtcCBkaXJlY3RvcnkKICAgCjIwMDMtMTEtMTAgMDg6NDYgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGFsd2F5cyB1c2UgaW5saW5lLCBub3cgdGhhdCBpdCB3b3JrcyAobmVlZGVkIGV4dGVybikKICAgCjIwMDMtMTEtMDcgMTY6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtYWxsb2NhdGUubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtZnJvbS1vaWQubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLCBtZmQtaW50ZXJmYWNlLm0yYwosIG1mZC10b3AubTJjLCBub2RlLXNldC5tMmksIHBhcmVudC1zZXQubTJpCjoKCiAgIHVzZSBERUJVR1RSQUNFIGluc3RlYWQgb2YgaGFyZGNvZGVkIF9fRlVOQ1RJT05fXwogICAKMjAwMy0xMS0wNyAxMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBtdWNoIGJldHRlciBlcnJvciBtZXNzYWdlIHdoZW4gYSBNSUIgbm9kZSBjYW4ndCBiZSBmb3VuZCBpbiB0aGUKICAgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwogICAKMjAwMy0xMS0wNyAxMDoyNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvVmVyc2lvbi1NdW5nZS5wbDoKCiAgIC0gZml4IHNlZCBzY3JpcHQgcmVnZXhwIGZvciBvZGQgdmVyc2lvbnMgKHByZTJiLCBlZykuCiAgIC0gbWFrZSAtaCBhY3R1YWxseSBwcmludCBoZWxwLgogICAKMjAwMy0xMS0wNyAwOTowMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGJyYWNlcyBhcm91bmQgdmFyIG5hbWUKICAgCjIwMDMtMTEtMDYgMjA6NDYgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHVzZSBpbmxpbmUgdG8gX19pbmxpbmUgZnJvbSBtYWluIG5ldC1zbm1wLWNvbmZpZyBmaWxlOyBhZGQgZXh0ZXJuIHRvIGJhc2ljCiAgIE5FVFNOTVBfSU5MSU5FIGRlZiwgcGVyIE1TIHRlY2ggbm90ZSAxMjM3NjgKICAgCjIwMDMtMTEtMDYgMjA6NDIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pbmd3MzIuaCwgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIGFwcGx5IHBhdGNoIFsgODI4MzYyIF0gRmlyc3QgcGFzcyBhdCBNaW5HVzMyCiAgIAoyMDAzLTExLTA2IDIwOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHN5c3RlbS5jIChWNS0wLXBhdGNoZXMuMiksIHN5c3RlbS5jOgoKICAgYXBwbHkgcGF0Y2ggWyA4MzYxNjIgXSA1LjFwcmUzIHdpbjMyIG1rZGlyaGllcigpCiAgIAoyMDAzLTExLTA2IDIwOjAwICByc3RvcnkKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGQvc25tcGQuZHNwLAogICBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGRmL3NubXBkZi5kc3AsCiAgIHNubXBkc2RrL3NubXBkLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBzbm1wdXNtL3NubXB1c20uZHNwLAogICBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGFwcGx5IHBhdGNoIFsgODM3NjMzIF0gNS4xcHJlMyB3aW4zMiBsaWIgcmVuYW1lCiAgIAoyMDAzLTExLTA2IDE2OjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIHJlc3RvcmUgYWNjaWRlbnRhbGx5IGRlbGV0ZWQgXG4gaW4gdHJhY2UgbWFjcm8KICAgCjIwMDMtMTEtMDUgMTk6MTMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBjb21tZW50IGZvciBwb3NzaWJsZSBmdXR1cmUgb3B0aW1pemF0aW9uCiAgIAoyMDAzLTExLTA1IDE5OjEzICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgYXBwbHkgc3Bpcml0IG9mIHBhdGNoIDgzNjcyMTogdXNlIG5ldyB0bXAgZmlsZSBwYXR0ZXJuIG1hY3JvOyB1c2UgX29wZW4gb24KICAgd2luZG93czsgYWRkIGVyciBsb2cgJiBkZWJ1ZyBtc2c7IGluY2x1ZGUgc3lzL3N0YXQuaCBpZmYgZXhpc3RzCiAgIAoyMDAzLTExLTA1IDE5OjA1ICByc3RvcnkKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBhcHBseSBzcGlyaXQgb2YgcGF0Y2ggODM2NzIxOiBkZWZpbmUgSEFWRV9TWVNURU07IGFkZCBuZXcgdG1wIGZpbGUgcGF0dGVybiBtYWNybwogICAKMjAwMy0xMS0wNSAxOTowMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9leGVjdXRlLmM6CgogICBhcHBseSBzcGlyaXQgb2YgcGF0Y2ggODM2NzIxIGZvciBydW5fc2hlbGxfY29tbWFuZDogdGVzdCBmb3IgYmFkIHJldHVybiBjb2RlcwogICBmcm9tIGZ1bmN0aW9uczsgZG9uJ3QgdG91Y2ggb3V0X2xlbiBpZiBvdXRwdXQgbm90IHNldCBvciBvdXRfbGVuIGlzIG51bGwKICAgCjIwMDMtMTEtMDUgMTg6NTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcmVnZW5lcmF0ZSBmcm9tIGFjbG9jYWwuaCwgd2hpY2ggcmV2ZWFscyB0aGF0IHdlIGNhbid0IGRvIGFuIGlmZGVmIHRlc3QKICAgdG8gcHJldmVudCByZWRlZmluaW5nIFBBQ0tBR0VfKiB1bmxlc3MgaXQgaXMgbWFudWFsbHkgcmUtYWRkZWQgZWFjaCB0aW1lCiAgIHRoaXMgZmlsZSBpcyByZWdlbmVyYXRlZCBmcm9tIGFjY29uZmlnLmguIEJsZWNoLgogICAKMjAwMy0xMS0wNSAxODo1MCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBhZGQgbWFjcm8gZm9yIHRlbXAgZmlsZSBuYW1lIChjb25maWd1cmUgb3B0aW9uIHRiZCkKICAgCjIwMDMtMTEtMDUgMTg6MTQgIHJzdG9yeQoKICAgKiBSRUFETUUud2luMzI6CgogICBhcHBseSBwYXRjaCBbIDgzMzIxNiBdIDUuMS5wcmUzIFdpbjMyIGNvbXBpbGUgcGF0Y2gKICAgCjIwMDMtMTEtMDUgMTg6MTMgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggbmV3IGNvbmZpZy5pbgogICAKMjAwMy0xMS0wNSAxODoxMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGluY2x1ZGUgbWliZ3JvdXAgdXRpbGl0aWVzIGZvciBtaW5pLWFnZW50IChydW5fc2hlbGxfY29tbWFuZCBmb3Igc25tcHRyYXBkKQogICAKMjAwMy0xMS0wNSAwOTozNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWNvcHkubTJpLAogICBnZW5lcmljLWN0eC1nZXQubTJpLCBnZW5lcmljLWN0eC1zZXQubTJpLAogICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIGdlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmkKLCBnZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaSwgbWZkLWludGVyZmFjZS5tMmMKOgoKICAgYWx3YXlzIGNvbnZlcnQgZ2VuZXJhdGVkIGFycmF5IGxlbiB0byBhcnJheSBlbGVtZW50IGNvdW50IChub3QgYnl0ZXMpCiAgIAoyMDAzLTExLTA1IDAyOjUyICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRhYmxlLmMgKFY1LTAtcGF0Y2hlcy4xKSwgc25tcHRhYmxlLmM6CgogICBEb24ndCB0cnkgc2VhcmNoaW5nIGZvciBjb2x1bW4gb2JqZWN0cyBpZiB0aGVyZSBpc24ndCBhbnl0aGluZyB0byBzZWFyY2guCiAgIFJlcG9ydCBwcm9ibGVtcyB1c2luZyB0aGUgb2JqZWN0IG5hbWUgb3JpZ2luYWxseSBzcGVjaWZpZWQsIHJhdGhlciB0aGFuCiAgIGEgdGVtcG9yYXJ5IGludGVybmFsIGJ1ZmZlci4KICAgCjIwMDMtMTEtMDQgMTU6MDYgIHJzdG9yeQoKICAgKiB3aW4zMi86IGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBJTkxJTkUgY2hhbmdlcyAtIGRvbid0IHVzZSBpbmxpbmUgZm9yIHRoZSBETEwgdmVyc2lvbiwgYXMgaXQncyByZXBvcnRlZCB0bwogICBjYXVzZSBlcnJvcnMKICAgCjIwMDMtMTEtMDQgMTQ6NDUgIHJzdG9yeQoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgd2luMzJzZGsuZHN3LAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgYXBwbHkgcGF0Y2ggWyA4MzMyMTYgXSA1LjEucHJlMyBXaW4zMiBjb21waWxlIHBhdGNoCiAgIAoyMDAzLTExLTA0IDA4OjU4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGRvbid0IGRlZmluZSBjb25maWd1cmUgUEFDS0FHRV8qIG1hY3JvcyBpZiBhbHJlYWR5IGRlZmluZXMuCiAgIAoyMDAzLTExLTA0IDA4OjA0ICBkdHMxMgoKICAgKiBGQVE6CgogICBBIG5ldyBlbnRyeSBkaXNjdXNzaW5nIHRhYmxlcyB3aXRoID4yNTYgY29sdW1ucy4KICAgCjIwMDMtMTEtMDQgMDc6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1jdHgtc2V0Lm0yaToKCiAgIGFsd2F5cyBnZW5lcmF0ZSBjb2RlIHdoZW4gZGF0YSBjb250ZXh0IGlzIGdlbmVyYXRlZAogICAKMjAwMy0xMS0wNCAwNzozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtSW5ldEFkZHJlc3Mtc2V0Lm0yaToKCiAgIGNsYXJpZnkgY29tbWVudHMKICAgCjIwMDMtMTEtMDQgMDc6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpOgoKICAgY2xhcmlmeSBjb21tZW50czsgdXNlIGdlbmVyaWMtc2V0IGluc3RlYWQgb2YgZ2V0CiAgIAoyMDAzLTExLTA0IDA3OjIyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgY2xhcmlmeSBjb21tZW50cwogICAKMjAwMy0xMS0wNCAwNzoxOSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIHN5bmMgY29udHJpYnV0b3JzIHcvNS4wLngKICAgCjIwMDMtMTEtMDQgMDE6MjggIGR0czEyCgogICAqIG1hbi9zbm1wZC44LmRlZjoKCiAgIERvY3VtZW50IHRoZSBlZmZlY3Qgb2YgLUMgb24gcGVyc2lzdGVudCBjb25maWcgZmlsZXMuCiAgIAoyMDAzLTExLTAzIDE0OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGZpeCBnZW5lcmF0ZWQgY29kZSBmb3IgdW5kb19zZXR1cAogICAKMjAwMy0xMS0wMyAxMjo1NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgY2xhcmlmeSBjb21tZW50czsgcmVtb3ZlIGJvZ3VzIGFzc2VydHMKICAgCjIwMDMtMTEtMDMgMTA6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy1nZXQtY2hhci5tMmk6CgogICBtYWtlIElTX1NFVCBtYWNyb3MgdW5pcXVlIHBlciBub2RlCiAgIAoyMDAzLTExLTAzIDEwOjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy1mcm9tLW9pZC5tMmk6CgogICBmaXggdmFyIG5hbWUgdHlwbwogICAKMjAwMy0xMS0wMyAxMDoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWluZGV4ZXMtdG8tb2lkLm0yaToKCiAgIG11c3QgdXNlIGFkZHIgb2YgbG9jYWwgdmFyIHRvIGdldCBwdHIKICAgCjIwMDMtMTEtMDMgMTA6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1pbmRleGVzLXZhcmJpbmQtc2V0dXAubTJpOgoKICAgbXVzdCB1c2UgYWRkciBvZiBsb2NhbCB2YXIgdG8gZ2V0IHB0cgogICAKMjAwMy0xMS0wMyAxMDoyMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgc2V0IHVwIGRlZmF1bHRzIGZvciBtZmQgdGFibGVzCiAgIAoyMDAzLTExLTAzIDA3OjUwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZWNvZ25pemUgU05NUF9NU0dfU0VUIGlzIG5vdCBhIHZhbGlkIEdFVCBtb2RlOyBjb21tZW50IHR3ZWFrcwogICAKMjAwMy0xMS0wMyAwNzoyNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBSZWNvZ25pc2UgU05NUF9NU0dfU0VUIGFzIGEgdmFsaWQgU0VUIG1vZGUKICAgKHNvIHRoYXQgdGhlIHZhcmJpbmQgY2FjaGluZyBkb2Vzbid0IGxvc2UgdGhlIGFzc2lnbmVkIHZhbHVlcyEpCiAgIAoyMDAzLTExLTAyIDA5OjUxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgcmVzdG9yZSBhY2NpZGVudGFseSBkZWxldGVkIGhwdXggZGVmaW5lOyBhZGQgY29tbWVudAogICAKMjAwMy0xMS0wMiAwNDo1NSAgbmJhCgogICAqIG1hbi8uY3ZzaWdub3JlOgoKICAgRml4IGEgYnVuY2ggb2YgY29tcGlsZXIgd2FybmluZ3M6IGNvbnN0LW5lc3MsIGNhc3RzLCBtaXNzaW5nIHByb3RveXBlcywKICAgdW51c2VkIHZhcmlhYmxlcywgY3ZzIGlnbm9yZSBpZ25vcmFibGUgZmlsZXMKICAgCjIwMDMtMTEtMDIgMDQ6NTAgIG5iYQoKICAgKiAuY3ZzaWdub3JlLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhcHBzLy5jdnNpZ25vcmUsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBGaXggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5nczogY29uc3QtbmVzcywgY2FzdHMsIG1pc3NpbmcgcHJvdG95cGVzLAogICB1bnVzZWQgdmFyaWFibGVzLCBjdnMgaWdub3JlIGlnbm9yYWJsZSBmaWxlcwogICAKMjAwMy0xMS0wMiAwNDo0NCAgbmJhCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgRml4IGEgYmFkIHN5bnRheCB3aGVuIHRlc3RpbmcgZm9yIHBlcmwgbW9kdWxlcwogICAKMjAwMy0xMS0wMiAwNDo0MiAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBtYW4vc25tcG5ldHN0YXQuMToKCiAgIEFub3RoZXIgbGVmdCBvdmVyIC1wIG9wdGlvbgogICAKMjAwMy0xMS0wMSAxNjowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBhbHdheXMgcXVvdGUgYm90aCBzaWRlcyBvZiBwZXJsIG5lL2VxIHRlc3RzOyBhbGxvdyBvdmVycmlkZSBvZiB2YXJiaW5kIHZhcmlhYmxlCiAgIG5hbWU7IGFkZCBzdWJpZCB0byBub2RlIHN1bW1hcnkKICAgCjIwMDMtMTEtMDEgMTY6MDIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIG1vdmUgZXhhbXBsZSBhbmQgdHJhbnNpZW50IGRlZmF1bHRzIHRvIHRhYmxlIHNldHVwCiAgIAoyMDAzLTExLTAxIDE2OjAyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBjaGFuZ2UgZGVmYXVsdCByZWcgY3R4IGZyb20gdm9pZCogdG8gbmV0c25tcF9kYXRhX2xpc3QgKjsgbW92ZSBleGFtcGxlCiAgIGFuZCB0cmFuc2llbnQgZGVmYXVsdHMgaGVyZSAoZnJvbSB0b3ApCiAgIAoyMDAzLTExLTAxIDE1OjU4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtZ2V0Lm0yaToKCiAgIGFkZCAnVE9ETycgY29tbWVudDsgZG9uJ3QgZ2VuZXJhdGUgY29kZSBpZiBleGFtcGxlIG5vdCBzZXQgJiBub3QgZ2VuZXJhdGVkIGRhdGEKICAgY29udGV4dDsgZGVmYXVsdCB0byByZXR1cm5pbmcgbm8gZGF0YSBmb3Igbm9kZTsKICAgCjIwMDMtMTEtMDEgMTU6NTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKTsKICAgdXNlIHF1b3RlcyBvbiBib3RoIHNpZGVzIG9mIHBlcmwgZXEvbmUgdGVzdHM7IGZpeCByZWcgcHRyIGRjbAogICAKMjAwMy0xMS0wMSAxNTo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgYWRkIHVzZXJzIHRhcmdldCB0byBvbmx5IGJ1aWxkIHVzZXIgY29kZQogICAKMjAwMy0xMS0wMSAxNTo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSBxdW90ZXMgb24gYm90aCBzaWRlcyBvZiBwZXJsIGVxL25lIHRlc3RzOyBjaGVja19pbmRleHMgaXMgb25seSBmb3Igcm93CiAgIGNyZWF0aW9uOyBkYXRhIG5vdCBmb3VuZCBvbmx5IG9rIGZvciByb3cgY3JlYXRpb24sIG5vdCBzZXR0YWJsZTsgc2FuaXR5CiAgIGNoZWNrIGZvciBib2d1cyBpbmRleCBvaWQgc2l6ZSBiZWZvcmUgbWVtY3B5OyBzZXQgQVNOX1BSSVZfUkVUUlkgZm9yIG5vIGRhdGEsCiAgIHNvIHNwYXJzZSB0YWJsZXMgd29yawogICAKMjAwMy0xMS0wMSAxNTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmkKOgoKICAgc2V0IG9pZCBzaXplIHRvIG1heCBiZWZvcmUgdHJ5aW5nIHRvIHBhcnNlIG9pZAogICAKMjAwMy0xMS0wMSAxNTo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIHJlbmFtZSByZWYgdG8gbG9vcF9yZWY7IG1vcmUgYXNzZXJ0czsgbW92ZSBUT0RPIG91dHNpZGUgb2YgY29uZGl0aW9uYWw7IG1vdmUKICAgaXRyX2N0ciBmcmVlIG91dHNpZGUgb2YgZXhhbXBsZSBjb25kaXRpb25hbAogICAKMjAwMy0xMS0wMSAxNTo0OCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1kZWNsLm0yaToKCiAgIHR3ZWFrIGluZGVudGlvbgogICAKMjAwMy0xMS0wMSAxNTo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1zZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIG1vdmUgVE9ETyBvdXRzaWRlIG9mIGNvbmRpdGlvbmFsOyBkb24ndCBpbmNsdWRlIGNvZGUgaWYgZXhhbXBsZXMgbm90IHNldAogICAKMjAwMy0xMS0wMSAxNTo0NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1nZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIHF1b3RlIGJvdGggc2lkZXMgb2YgcGVybCBlcS9uZSB0ZXN0czsgZG9jdW1lbnQgaW5jbHVkZSBpbiBjb21tZW50cwogICAKMjAwMy0xMS0wMSAxNTo0NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1jb3B5Lm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBtb3ZlIFRPRE8gb3V0c2lkZSBvZiBjb25kaXRpb25hbDsgdHdlYWsgY29uZGl0aW9uYWwKICAgCjIwMDMtMTEtMDEgMTU6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS1zZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIG1vdmUgY29uZGl0aW9uYWwgaW5zaWRlIGluY2x1ZGUKICAgCjIwMDMtMTEtMDEgMTU6NDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtZGF0YS1nZXQubTJjLCBtZmQtcmVhZG1lLm0yYwosIHBhcmVudC1zZXQubTJpOgoKICAgcHV0ICdUT0RPJyBjb21tZW50IG9uIGl0J3Mgb3duIGxpbmUocmVtb3ZhYmxlIHcvb3V0IGRpc3J1cHRpbmcgY29kZSBjb21tZW50cyk7CiAgIHF1b3RlIGJvdGggc2lkZXMgb2YgcGVybCBlcS9uZSB0ZXN0cwogICAKMjAwMy0xMS0wMSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBwdXQgJ1RPRE8nIGNvbW1lbnQgb24gaXQncyBvd24gbGluZShyZW1vdmFibGUgdy9vdXQgZGlzcnVwdGluZyBjb2RlIGNvbW1lbnRzKQogICAKMjAwMy0xMS0wMSAxNTozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IHN5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaSwKICAgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzcy1nZXQubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3NUeXBlLWdldC5tMmksIHN5bnRheC1UZXN0QW5kSW5jci1nZXQubTJpCjoKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpOwogICBkZWZhdWx0IHRvIHJldHVybmluZyBubyBkYXRhIGZvciBub2RlcwogICAKMjAwMy0xMS0wMSAxNToyMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLAogICBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksIGdlbmVyaWMtZ2V0LWNoYXIubTJpLAogICBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmksIG1mZC1kYXRhLXNldC5tMmMKLCBwYXJlbnQtZGVwZW5kZW5jaWVzLm0yaToKCiAgIHB1dCAnVE9ETycgY29tbWVudCBvbiBpdCdzIG93biBsaW5lKHJlbW92YWJsZSB3L291dCBkaXNydXB0aW5nIGNvZGUgY29tbWVudHMpCiAgIAoyMDAzLTExLTAxIDE1OjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1pbmRleGVzLWZyb20tb2lkLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1pbmRleGVzLXRvLW9pZC5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy12YXJiaW5kLXNldHVwLm0yaToKCiAgIG5ldyBjb2RlIGZvciBpbmRleGVzIGFuZCBvaWQgY29udmVyc2lvbnMKICAgCjIwMDMtMTEtMDEgMTA6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgdXNlIGVuZG9mbWlidmlldyBpbnN0ZWFkIG9mIG5vX3ZhcnMKICAgCjIwMDMtMTAtMzAgMTc6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgo6CgogICBhZGQgY29tbWVudHMKICAgCjIwMDMtMTAtMzAgMTc6MzcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0ZXN0IGZ1bmMgcGFyYW1ldGVyLCBub3QgdmFyaWFibGUgd2UncmUgYWJvdXQgdG8gb3ZlcndyaXRlCiAgIAoyMDAzLTEwLTMwIDE3OjM2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBkZWNsYXJlICBjYWxsYmFja19tYXN0ZXJfbnVtIGV2ZW4gaWYgU05NUF9UUkFOU1BPUlRfQ0FMTEJBQ0tfRE9NQUlOIGlzIG5vdAogICBkZWZpbmVkIChzbyBJIGRvbid0IG5lZWQgdG8gYWRkIG1vcmUgaWZkZWYncyBpbiBvdGhlciBjb2RlKQogICAKMjAwMy0xMC0zMCAxNzozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGxvZyB3YXJuaW5nIGFuZCBkb24ndCBvcGVuIGNhbGxiYWNrIHRyYW5zcG9ydCBpZiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KICAgaXMgbm90IGRlZmluZWQKICAgCjIwMDMtMTAtMzAgMTc6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGxvZyB3YXJuaW5nIGFuZCBkb24ndCBvcGVuIGNhbGxiYWNrIHRyYW5zcG9ydCBpZiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4KICAgaXMgbm90IGRlZmluZWQ7IGZpeCB0ZXN0IGZvciBhZ2VudHhfb3Blbl9zZXNzaW9uCiAgIAoyMDAzLTEwLTMwIDE3OjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGRvbid0IGNvbXBpbGUgY29kZSBpZiBTTk1QX1RSQU5TUE9SVF9DQUxMQkFDS19ET01BSU4gbm90IGRlZmluZWQKICAgCjIwMDMtMTAtMzAgMTY6NTEgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIG1lcmdlIHRyYW5zcG9ydCBjb21tZW50cyBmcm9tIG5vbi13aW4gbmV0LXNubXAtY29uZmlnLmg7IHVuZGVmIGNhbGxiYWNrCiAgIHRyYW5zcG9ydCBpbnN0ZWFkIG9mIGRlZiBvZiAwLCBzbyBpdCBhY3R1YWxseSB0dXJucyBvZmYgY29kZTsgdW5kZWYgaW5saW5lCiAgIG1hY3JvcyBiZWZvcmUgcmVkZWZpbmluZyB0aGVtCiAgIAoyMDAzLTEwLTMwIDE2OjQ5ICByc3RvcnkKCiAgICogd2luMzIvY29uZmlnLmg6CgogICByZXBsYWNlIGNvbnRlbnRzIHcvaW5jbHVkZSBvZiBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBzbyBvbmx5IG9uZSBoZWFkZXIKICAgbmVlZHMgdG8gYmUgbWFpbnRhaW5lZC4gRXZlcnlvbmUgc2hvdWxkIGJlIHVzaW5nIHRoZSBuZXcgb25lIGFueXdheSwgcmlnaHQ/CiAgIAoyMDAzLTEwLTMwIDAxOjMxICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERvbid0IGNvbmZpZ3VyZSB0aGUgSG9zdC1SZXNvdXJjZXMgc3VwcG9ydCBieSBkZWZhdWx0LgogICBJdCdzIGEgZ29vZCBpZGVhLCBidXQgd2UncmUgdG9vIGNsb3NlIHRvIDUuMSBmb3IgdGhpcyB0byBiZSBzYWZlLgogICAKMjAwMy0xMC0yOSAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgaW5saW5lIC0+IE5FVFNOTVBfSU5MSU5FCiAgIAoyMDAzLTEwLTI5IDAzOjEwICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wY21kLjEuZGVmLCBzbm1wZC44LmRlZiwgc25tcHRyYXBkLjguZGVmCjoKCiAgIERvY3VtZW50IG5ldyAtTHggbG9nZ2luZyBvcHRpb24gYmxvY2ssIGFuZCBhc3NvcnRlZCBkZXByZWNhdGVkIG9wdGlvbnMuCiAgIAoyMDAzLTEwLTI5IDAyOjU5ICBkdHMxMgoKICAgKiBGQVE6CgogICBWYXJpb3VzIHVwZGF0ZXMgdG8gdGhlIEZBUS4KICAgICBIaWdobGlnaHRzIGluY2x1ZGUgYmV0dGVyIGV4cGxhbmF0aW9uIG9mIGFjY2VzcyBjb250cm9sIGFuZCB0aW1lb3V0CiAgIHByb2JsZW1zLCBkaXNjdXNzaW9uIG9mIHdoYXQgdHJhcHMgYXJlIHNlbnQgYW5kIHdoZXJlIHRvIChpbmNsdWRpbmcKICAgRGlzbWFuIEV2ZW50LU1JQiBzdXBwb3J0KSBhbmQgbW9yZSBvbiBtaWIyYyB1c2FnZSAoaW5jbHVkaW5nIHRoZQogICBkaWZmZXJlbmNlcyBiZXR3ZWVuIGNvbmZpZ3MsIGFuZCBwb2ludGVycyB0byBleGFtcGxlcykuCiAgICAgU2VwYXJhdGUgc2VjdGlvbnMgZm9yIGNvbXBpbGF0aW9uIGFuZCBjb2RpbmcgbmV3IG1vZHVsZXMKICAgKHJlc3RydWN0dXJpbmcgZXhpc3RpbmcgZW50cmllcykKICAgICBSZWZlciB0byBwcm9qZWN0IGFzICdOZXQtU05NUCcgcmF0aGVyIHRoYW4gJ1VDRCcgdGhyb3VnaG91dAogICAoZXhjZXB0IHdoZXJlIHNwZWNpZmljYWxseSB2NCBvciBVQ0QtU05NUC1NSUIgYXJlIG1lYW50KQogICAKMjAwMy0xMC0yOSAwMjozMyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmggKFY1LTAtcGF0Y2hlcy4xKSwKICAgc3lzT1JUYWJsZS5oIChWNC0yLXBhdGNoZXMuWzEsMl0pLCBzeXNPUlRhYmxlLmg6CgogICBGaXggbnVsbCBkZWZpbml0aW9uIG9mIFJFR0lTVEVSX1NZU09SX1RBQkxFICh3aGVuIG5vdCB1c2luZyB0aGlzIHRhYmxlKS4KICAgUmVwb3J0ZWQgYnkgTWFyayBIb3BraW5zCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gKHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICAtIChwZXJsL09JRC9PSUQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUzICkKICAgCjIwMDMtMTAtMjggMTg6MTYgIHJzdG9yeQoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIC0gKHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICAtIChwZXJsL2FnZW50L2FnZW50LnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE2ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChwZXJsL1NOTVAvU05NUC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNSAgcnN0b3J5CgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNSAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHZlcnNpb24gdGFnICggNS4xLnByZTMgKQogICAKMjAwMy0xMC0yOCAxODoxNSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMyApCiAgIAoyMDAzLTEwLTI4IDE4OjE0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mLCBtYW4vbmV0c25tcF9Db250YWluZXJfaXRlcmF0b3IuMywKICAgbWFuL25ldHNubXBfYWdlbnQuMywgbWFuL25ldHNubXBfYmFieV9zdGVwcy4zLAogICBtYW4vbmV0c25tcF9idWxrX3RvX25leHQuMywgbWFuL25ldHNubXBfY2FjaGVfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfY29udGFpbmVyLjMsIG1hbi9uZXRzbm1wX2RhdGFfbGlzdC4zCiwgbWFuL25ldHNubXBfZGVidWcuMywgbWFuL25ldHNubXBfaGFuZGxlci4zLAogICBtYW4vbmV0c25tcF9pbnN0YW5jZS4zLCBtYW4vbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbWFuL25ldHNubXBfbGVhZi4zLCBtYW4vbmV0c25tcF9saWJyYXJ5LjMsCiAgIG1hbi9uZXRzbm1wX21mZF9wZHVfY29udGV4dF9zLjMsIG1hbi9uZXRzbm1wX21pYl91dGlsaXRpZXMuMwosIG1hbi9uZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbWFuL25ldHNubXBfbXVsdGlwbGV4ZXIuMwosIG1hbi9uZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG1hbi9uZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLAogICBtYW4vbmV0c25tcF9vaWRfc3Rhc2guMywgbWFuL25ldHNubXBfb2xkX2FwaS4zLAogICBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywgbWFuL25ldHNubXBfcm93X21lcmdlLjMsCiAgIG1hbi9uZXRzbm1wX3NjYWxhci4zLCBtYW4vbmV0c25tcF9zY2FsYXJfZ3JvdXBfZ3JvdXAuMwosIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zLCBtYW4vbmV0c25tcF9zdGFzaF9jYWNoZS4zCiwgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfYXJyYXkuMwosIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zCiwgbWFuL25ldHNubXBfdG9kby4zLCBtYW4vbmV0c25tcF91dGlsLjMsCiAgIG1hbi9uZXRzbm1wX3V0aWxpdGllcy4zLCBtYW4vbmV0c25tcF93YXRjaGVyLjM6CgogICB1cGRhdGUgZm9yIDUuMS5wcmUzCiAgIAoyMDAzLTEwLTI4IDE4OjA1ICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMy0xMC0yOCAxNzozMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgZml4IHZlcnNpb24gZm9yIDUuMSByZWxlYXNlCiAgIAoyMDAzLTEwLTI4IDEyOjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHJlZ2VuZXJhdGUgZnJvbSBuZXcgYWNjb25maWcuaAogICAKMjAwMy0xMC0yOCAxMjo0NSAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBmaXggYnVnIFsgODMwODUyIF0gQnVpbGQgZG9lc24ndCB3b3JrIG9uIEhQLVVYIDExaQogICB1bmRlZiBtYWNybyBiZWZvcmUgcmVkZWZpbmluZyBpdAogICAKMjAwMy0xMC0yOCAxMDozMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogcm91dGVfd3JpdGUuYyAoVjUtMC1wYXRjaGVzLjEpLAogICByb3V0ZV93cml0ZS5jOgoKICAgYXBwbHkgcGF0Y2ggWyA4MTIwMTkgXSBzbm1wc2V0IG9uIGlwUm91dGVEZXN0LjEyNy4wLjAuMSBraWxsIGFnZW50IGR1bXBzIGNvcmUKICAgZml4ZXMgYnVnIFsgODA4OTU4IF0gT1NTdW4gc25tcHNldCBvbiBpcFJvdXRlRGVzdC4xMjcuMC4wLjEga2lsbCBhZ2VudCBkdW1wcyAuLi4KICAgCjIwMDMtMTAtMjggMTA6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzLzogZGVidWdfaGFuZGxlci5jIChWNS0wLXBhdGNoZXMuMSksIGRlYnVnX2hhbmRsZXIuYwo6CgogICBhcHBseSBwYXRjaCBbIDgzMTE2MSBdIG5ldHNubXBfZ2V0X2RlYnVnX2hlbHBlciBjcmFzaGVzIHNubXBkCiAgIGZpeGVzIGJ1ZyBbIDgyNjk2MyBdIG5ldHNubXBfZ2V0X2RlYnVnX2hlbHBlciBjcmFzaGVzIHNubXBkCiAgIAoyMDAzLTEwLTI4IDEwOjA1ICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhcHBseSBwYXRjaCBbIDgyOTYzMyBdIDUuMXByZTEgUGVybCB0cmFuc2xhdGVPYmogZml4CiAgIAoyMDAzLTEwLTI4IDA3OjMyICByc3RvcnkKCiAgICogZGlzdC86IG5ldC1zbm1wLnNwZWMgKFY1LTAtcGF0Y2hlcy4zKSwgbmV0LXNubXAuc3BlYzoKCiAgIGFwcGFyZW50bHkgbmVzdGVkICVpZidzIGFyZSBhIG5vLW5vCiAgIAoyMDAzLTEwLTI4IDA3OjIyICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgZml4IHBlcmwgY29uZGl0aW9uYWwgYnVpbGRzIGFmdGVyIHJlYWQgcnBtIGRvY3MKICAgCjIwMDMtMTAtMjYgMDA6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBpbmxpbmUgLT4gTkVUU05NUF9JTkxJTkUgYXMgcG9pbnRlZCBvdXQgYnkgQWxleCBCdXJnZXIKICAgCjIwMDMtMTAtMjQgMTY6NDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgcmVuYW1lIGxvb3BfY3R4IGxvb3BfY29udGV4dDsgcHJlZml4IGFsbCBsb29wIGZ1bmN0aW9ucyB3L2xvb3AKICAgCjIwMDMtMTAtMjQgMTY6NDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXJlYWRtZS5tMmM6CgogICBtb3ZlIGRlZmF1bHRzIHRvIGFuIGVhc2llciB0byBzcG90IHBsYWNlCiAgIAoyMDAzLTEwLTI0IDE2OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmksIG1mZC10b3AubTJjCjoKCiAgIHJlbmFtZSB0YWJsZV9pZHggdGFibGVfbWliX2luZGV4OyByZW5hbWUgbG9vcF9jdHggbG9vcF9jb250ZXh0OyBwcmVmaXggYWxsCiAgIGxvb3AgZnVuY3Rpb25zIHcvbG9vcDsgcmVtb3ZlIGluZGV4Mm9pZAogICAKMjAwMy0xMC0yNCAwNjowMiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZGQgSG9zdC1SZXNvdXJjZXMgc3VwcG9ydCB0byB0aGUgbGlzdCBvZiBkZWZhdWx0IE1JQiBtb2R1bGVzLgogICBXZSd2ZSB0YWxrZWQgYWJvdXQgdGhpcyBmb3IgeWVhcnMgLSBpdCdzIGFib3V0IHRpbWUgd2UgZGlkIHNvIQogICAKMjAwMy0xMC0yNCAwNTo0OSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIE5ldyBjaG9pY2VzIGZvciBzb21lIGNvbW1hbmQtbGluZSBvcHRpb25zLCB0byBpbXByb3ZlIGNvbnNpc3RlbmN5CiAgIGJldHdlZW4gYWdlbnQgYW5kIHRyYXAgaGFuZGxlciB1c2FnZS4gIFRoZSBwcmV2aW91cyBvcHRpb25zIHN0aWxsCiAgIHdvcmsgYnV0IGFyZSBub3cgbWFya2VkIGFzICJkZXByZWNhdGVkIi4gIFRoZXNlIHNob3VsZCBwcm9iYWJseQogICBiZSByZW1vdmVkIGNvbXBsZXRlbHkgaW4gYSBmdXR1cmUgcmVsZWFzZSAoZS5nLiA1LjIpLgogICAKMjAwMy0xMC0yMyAxNTo1OCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGZpeCBidWcgODI4NjcxOiBUaGUgbGliIGlzbid0IEMrKyBjb21wYXRpYmxlOyByZW1vdmUgJ3N0cnVjdCcgYmVmb3JlIHR5cGRlZgogICAKMjAwMy0xMC0yMyAxNTo1NCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX251bGwuYzoKCiAgIGZpeCBidWcgODI4NjcxOiBUaGUgbGliIGlzbid0IEMrKyBjb21wYXRpYmxlOyByZW5hbWUgc3RydWN0dXJlCiAgIHJlbW92ZSB1bnVzZWQgbm9hbGxvYyBmdW5jdGlvbgogICAKMjAwMy0xMC0yMyAxNTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggYnVnIDgyODY3MTogVGhlIGxpYiBpc24ndCBDKysgY29tcGF0aWJsZTsgcmVuYW1lIHN0cnVjdHVyZQogICAKMjAwMy0xMC0yMyAxNTozOSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBwYXJzZS5jIChWNS0wLXBhdGNoZXMuMyksIHBhcnNlLmM6CgogICBmaXggYnVnIDc2Nzc1Mzogc25tcHdhbGsgY3Jhc2ggKGFkb3B0X29ycGhhbnMpCiAgIAoyMDAzLTEwLTIzIDEwOjM0ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIG5ldyBjb25maWd1cmUuaW4KICAgCjIwMDMtMTAtMjMgMTA6MzIgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBhcHBhcmVudGx5IGNvbmZpZ3VyZSB0cmFuc2xhdGVzICdfJyB0byAnLScgaW4gYXJndW1lbnRzL2VuYWJsZXMsIHNvIHVzZSAtCiAgIGNvbnNpc3RlbnRseTsgbW92ZSBjb21tb24gbW9kdWxlIGFyZyBtaXN0YWtlIGNoZWNrcyB3aXRoIG90aGVyIG1vZHVsZQogICBjaGVja3MsIGFuZCBhZGQgYSBmZXcgbW9yZTsgYWRkIGNoZWNrIGZvciBlbmFibGUgcGVybC1tb2R1bGVzIHRvbwogICAKMjAwMy0xMC0yMyAxMDoyNCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBtb3ZlIGNvbW1lbnQgZml4ZXMgdG8gYWNjb25maWcuaCBhbmQgcmVnZW5lcmF0ZSBuZXQtc25tcC1jb25maWcuaC5pbgogICAKMjAwMy0xMC0yMyAwODo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW1vdmUgbm9uc3RkIE5ERUJVRyBpZmRlZiB0c3Q7IHVzZSBEQkdNU0dTVUJPSUQgaW5zdGVhZCBvZiBEQkdNU0RPSUQ7IGFkZAogICBkZWJ1ZyBmb3IgY29tcGFyaXNvbiByZXN1bHQKICAgCjIwMDMtMTAtMjMgMDg6NDUgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgYWRkIGNvbW1lbnRzOyBmaXggZ2V0X25leHQgdy9udWxsIGtleSAoZ2V0LWZpcnN0KTsgcmVtb3ZlIHJlZHVuZGFudCBkZWJ1Z3MKICAgCjIwMDMtMTAtMjIgMTc6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jIChWNS0wLXBhdGNoZXMuMiksIHNubXB1c20uYzoKCiAgIGZpeCBidWcgODIyODcwICh1c21TdGF0c0RlY3J5cHRpb25FcnJvcnMgZGlkIG5vdCBpbmNyZW1lbnQgb24gZmFpbGVkIGdldCByZXEpCiAgIHdpdGggcGF0Y2ggODI3MDU2IGZyb20gYnJvd2xhbmRzCiAgIAoyMDAzLTEwLTIyIDA5OjQzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBkZWZpbmUgX19TVFJJTkcgaWYgbm90IGRlZmluZWQKICAgCjIwMDMtMTAtMjIgMDY6MTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBpbmNyZW1lbnQgbGlidG9vbCByZXZpc2lvbgogICAKMjAwMy0xMC0yMiAwNjoxMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZml4IGNvbW1lbnRjaGVjayBwYXR0ZXJuIHRvIGV4Y2x1ZGUgZnRwIGFuZCBodHRwIHVybHMKICAgCjIwMDMtMTAtMjIgMDI6MDggIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFRoZSB2YXJpYWJsZXMgJ2RvX2hpbnQnIGFuZCAnY2hlY2snIGFyZSBvbmx5IGRlY2xhcmVkCiAgIG9yIG5lZWRlZCB3aGVuICdESVNBQkxFX01JQl9MT0FESU5HJyBpcyBub3QgZGVmaW5lZC4KICAgVGhlcmUncyBubyBwb2ludCBpbiBnaXZpbmcgdGhlbSBkdW1teSB2YWx1ZXMgb3RoZXJ3aXNlLgogICAKMjAwMy0xMC0yMSAxMjoxNiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgcmVtb3ZlIGMrKyBzdHlsZSBjb21tZW50CiAgIAoyMDAzLTEwLTIxIDEyOjEyICByc3RvcnkKCiAgICogYWNjb25maWcuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHJlbW92ZSBjKysgc3R5bGUgY29tbWVudAogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBtb3ZlIHVzYWdlIHN1YiB0byB0b3Agc28gaXQgYWN0dWFsbHkgZG9lcyBzb21ldGhpbmc7IHByaW50IHVzYWdlIGZvciBwYXJhbQogICBlcnJvcnMsIGluc3RlYWQgb2YganVzdCBkeWluZwogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnBtOgoKICAgLSAocGVybC9BU04vQVNOLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgLSAocGVybC9PSUQvT0lELnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMiApCiAgIAoyMDAzLTEwLTIxIDExOjUxICByc3RvcnkKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MSAgcnN0b3J5CgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtOgoKICAgLSAocGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTEgIHJzdG9yeQoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgLSAocGVybC9hZ2VudC9hZ2VudC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo1MCAgcnN0b3J5CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAocGVybC9TTk1QL1NOTVAucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBGQVE6CgogICAtIChGQVEpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUyICkKICAgCjIwMDMtMTAtMjEgMTE6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyk6IHZlcnNpb24gdGFnICggNS4xLnByZTIgKQogICAKMjAwMy0xMC0yMSAxMTo0MiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgcmVtb3ZlIGJvZ3VzIGluc3RhbGwgdGFyZ2V0CiAgIAoyMDAzLTEwLTIxIDExOjE4ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIGZvciBuZXcgY29uZmlnLmluCiAgIAoyMDAzLTEwLTIxIDExOjE2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgZml4IGN1dC1uLXBhc3RlIGVycm9yIGluIHBlcmwgdW5pbnN0YWxsIHN1cHBvcnQ7IHVwZGF0ZSB2ZXJzaW9uIGluIGluaXQKICAgCjIwMDMtMTAtMjEgMDE6NTQgIGR0czEyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBJbmNsdWRlIDxmY250bC5oPiBmb3IgZGVmaW5pdGlvbiBvZiBPX1JEV1IuIFJlcG9ydGVkIGJ5IFNlYk5vYi4KICAgCjIwMDMtMTAtMjEgMDE6NDcgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBFbnN1cmUgdGhhdCBtdWx0aS1saW5lIGNvbW1lbnRzIGFyZW4ndCBicm9rZW4gd2hlbiB0aGUgYWN0aXZlCiAgIG5ldC1zbm1wLWNvbmZpZy5oIGZpbGUgaXMgZ2VuZXJhdGVkLiAgUmVwb3J0ZWQgYnkgU2ViTm9iLgogICAoUG9zc2libHkgYmVpbmcgYSBiaXQgb3Zlci1jYXV0aW91cyBoZXJlLCBidXQgeW91IGNhbid0IGJlIHRvbyBjYXJlZnVsISkKICAgCjIwMDMtMTAtMTcgMjI6NTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtb3JlIHVwZGF0ZXMKICAgCjIwMDMtMTAtMTcgMjI6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHR1cm4gb24gdGhlIGxvb2t1cCBjYWNoZS4KICAgCjIwMDMtMTAtMTcgMTY6MzUgIGhhcmRha2VyCgogICAqIG1hbi86IE1ha2VmaWxlLmluLCBuZXRzbm1wX0NvbnRhaW5lcl9pdGVyYXRvci4zLAogICBuZXRzbm1wX2JhYnlfc3RlcHMuMywgbmV0c25tcF9jYWNoZV9oYW5kbGVyLjMsCiAgIG5ldHNubXBfY29udGFpbmVyLjMsIG5ldHNubXBfZGVwcmVjYXRlZC4zLAogICBuZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLCBuZXRzbm1wX2xlYWYuMywKICAgbmV0c25tcF9tZmRfcGR1X2NvbnRleHRfcy4zLCBuZXRzbm1wX3Jvd19tZXJnZS4zLAogICBuZXRzbm1wX3NjYWxhcl9ncm91cF9ncm91cC4zLCBuZXRzbm1wX3N0YXNoX2NhY2hlLjMsCiAgIG5ldHNubXBfdXRpbGl0aWVzLjM6CgogICBtb3JlIChuZXcpIHVwZGF0ZXMgZnJvbSBkb3h5Z2VuCiAgIAoyMDAzLTEwLTE3IDE2OjMzICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zZXRfZGF0YS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKOgoKICAgdXBkYXRlcyBmcm9tIGRveHlnZW4KICAgCjIwMDMtMTAtMTcgMTY6MTYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIChwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FTTi9BU04ucG06CgogICAtIChwZXJsL0FTTi9BU04ucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIC0gKHBlcmwvT0lEL09JRC5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICAtIChwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSk6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIC0gKHBlcmwvYWdlbnQvYWdlbnQucG0pOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTY6MTUgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4xLnByZTEgKQogICAKMjAwMy0xMC0xNyAxNjoxNSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE3IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiB2ZXJzaW9uIHRhZyAoIDUuMS5wcmUxICkKICAgCjIwMDMtMTAtMTcgMTU6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL1ZlcnNpb24tTXVuZ2UucGw6CgogICBhZGRlZCBhbnlkYXRhIG1vZHVsZXMKICAgCjIwMDMtMTAtMTcgMTU6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWFrZSBnZXR0YWJsZSByZXR1cm4gYSBoYXNoIGluc3RlYWQuCiAgIAoyMDAzLTEwLTE3IDE1OjAzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgYWRkIG9pZC9kZWZhdWx0IHBvcnRpb24gdG8gaGVscCB0ZXh0IGZvciB0aGUgZm9yd2FyZCB0b2tlbgogICAKMjAwMy0xMC0xNyAxNTowMiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIEFkZCBzcGFydGEKICAgCjIwMDMtMTAtMTcgMTQ6NTkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBmb3J3YXJkIHRva2VuCiAgIAoyMDAzLTEwLTE3IDE0OjQxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHVzZSBuZXcgdmVyc2lvbiBtb2RpZmljYXRpb24gc2NyaXB0CiAgIAoyMDAzLTEwLTE3IDE0OjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9WZXJzaW9uLU11bmdlLnBsOgoKICAgbmV3IHZlcnNpb24gbWVzc2luZy13aXRoIHNjcmlwdAogICAKMjAwMy0xMC0xNyAxNDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlbW92ZSBwb3J0aW9ucyBvbGQgc2NyaXB0IHJlcGxhY2VkIGJ5IG5ld2VyIFZlcnNpb24tTXVuZ2UucGwKICAgCjIwMDMtMTAtMTcgMTQ6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jKTogdmVyc2lvbiB0YWcgKCA1LjEucHJlMSApCiAgIAoyMDAzLTEwLTE1IDA5OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICByZW1vdmUgaGFyZGNvZGVkIGNvbnRleHQgbmFtZQogICAKMjAwMy0xMC0xNCAxNjo0MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmk6CgogICBhZGQgbm90ZSB0aGF0IGV4YW1wbGUgY29kZSBpcyBiYXNlIG9uIGEgZGF0YSBmaWxlCiAgIAoyMDAzLTEwLTE0IDE2OjMyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1yZWFkbWUubTJpOgoKICAgYWRkIG5vdCB0aGF0IGl0ZXJhdG9yIGdldC9nZXQtbmV4dCBkb24ndCBjb3JyZXNwb25kIHRvIHBkdSB0eXBlcywgYW5kIHRoZXkKICAgc2hvdWxkbid0IGJlIG9yZGVyaW5nIHRoZWlyIGRhdGEKICAgCjIwMDMtMTAtMTQgMTY6MDkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpOgoKICAgc3luYyBjb21tZW50cyB3L3JlYWRtZQogICAKMjAwMy0xMC0xNCAxNjowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgYXMgbG9uZyBhcyB3ZSdyZSB1c2luZyBnbnUtbWFrZSBzcGVjaWZpY3MsIG9ubHkgcHJvY2VzcyBjb25maWcgdmFycyBvbmNlIChhbHNvCiAgIGxldHMgbWFrZSBvdXRwdXQgcmVwcmVzZW50IGFjdHVhbCB2YWx1ZXMsIGluc3RlYWQgb2Ygc2NyaXB0KQogICAKMjAwMy0xMC0xNCAxNjowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtaW50ZXJmYWNlLm0yYzoKCiAgIHVzZSBiaWcgb2Jub3hpb3VzIHdhcm5pbmc7IHNldCBlcnJvciBmb3Igbm8gY29udGV4dCBpZiB0YWJsZSBub3Qgc2V0dGFibGUKICAgCjIwMDMtMTAtMTQgMTY6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjLWludGVybmFsLXdhcm5pbmcubTJpOgoKICAgYmlnIG9ibm94aW91cyB3YXJuaW5nIGZvciB0b3Agb2YgaW1wbGVtZW50YXRpb24gZmlsZXMKICAgCjIwMDMtMTAtMTQgMTY6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpLAogICBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICBzeW5jIGZ1bmN0aW9uIGhlYWRlciBzdW1tYXJ5IGNvbW1lbnRzIHcvcmVhZG1lIHN1bW1hcnkgaGVhZGVyIGNvbW1lbnRzOwogICBwcmVzZW50IGZ1bmN0aW9uIGluIHNhbWUgb3JkZXIgaW4gYm90aCBmaWxlcwogICAKMjAwMy0xMC0xNCAxNjowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfdGFibGUubTJpOgoKICAgaW5pdCBtMmNfZGF0YV9pbml0CiAgIAoyMDAzLTEwLTE0IDEzOjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmk6CgogICB1c2UgbmV3IGNvbW1vbiBzZXR1cDsgd3JhcHBlcnMgZm9yIGFsbCBjb250YWluZXIgZnVuY3Rpb25zLCB0byBjb252ZXJ0CiAgIGJldHdlZW4gaW50ZXJmYWNlIGNvbnRleHQgYW5kIHVzZXIgY29udGV4dDsgc29tZSBwYXJhbSB0d2Vha3M7IHJlbW92ZQogICB1bnVzZWQgcHJvdG90eXBlOyBrZWVwIHB0ciB0byB0YWJsZSBjb250ZXh0IGluIGV4YW1wbGU7IHJlbmFtZSBzb21lIHZhcnMKICAgdXNlIG5ldyBNRkRfKiBlcnJvciBjb2RlczsgcmVuYW1lIGV4YW1wbGUgZnVuY3Rpb247IGRvY3VtZW5hdGlvbiB1cGRhdGVzOwogICAKMjAwMy0xMC0xNCAxMzozMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWhlYWRlci5tMmk6CgogICB1c2UgbmV3IGNvbW1vbiBzZXR1cDsgd3JhcHBlcnMgZm9yIGFsbCBjb250YWluZXIgZnVuY3Rpb25zLCB0byBjb252ZXJ0CiAgIGJldHdlZW4gaW50ZXJmYWNlIGNvbnRleHQgYW5kIHVzZXIgY29udGV4dDsgc29tZSBwYXJhbSB0d2Vha3M7IHJlbW92ZQogICB1bnVzZWQgcHJvdG90eXBlOyBrZWVwIHB0ciB0byB0YWJsZSBjb250ZXh0IGluIGV4YW1wbGU7IHJlbmFtZSBzb21lIHZhcnMKICAgCjIwMDMtMTAtMTQgMTM6MzAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpCjoKCiAgIHVzZSBuZXcgY29tbW9uIHNldHVwOyB3cmFwcGVycyBmb3IgYWxsIGNvbnRhaW5lciBmdW5jdGlvbnMsIHRvIGNvbnZlcnQKICAgYmV0d2VlbiBpbnRlcmZhY2UgY29udGV4dCBhbmQgdXNlciBjb250ZXh0OyBzb21lIHBhcmFtIHR3ZWFrczsgZG9uJ3QgYXV0bwogICBhbGxvY2F0ZSBjb250ZXh0IGZvciBnZXQgZGF0YSwgc28gdXNlciBjb3VsZCB1c2Ugb25lIHRoZXkndmUgYWxsb2NhdGVkCiAgIAoyMDAzLTEwLTE0IDEzOjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtc2V0dXAubTJpOgoKICAgY29tbW9uIHNldHVwIGZvciB1bnNvcnRlZCBleHRlcm5hbCwgd2hpY2ggaGFzIDMgcGFydHMgaW5jbHVkZWQgYXQgZGlmZmVyZW50CiAgIHRpbWVzCiAgIAoyMDAzLTEwLTE0IDEzOjI3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaToKCiAgIGludmVydCB2ZXJib3NlIGxvZ2ljIHRlc3Q7IGFkZCBxdWljayBvdmVydmlldyBvZiBpdGVyYXRpb24gbG9vcDsgcmVvcmRlcgogICBzb21lIHRleHQvYmxhbmsgbGluZXM7IHVwZGF0ZSBmb3IgcmVuYW1lZCB2YXJzCiAgIAoyMDAzLTEwLTE0IDEzOjExICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1DT1VOVEVSNjQtZ2V0Lm0yaToKCiAgIGhhbmRsZSBjb3VudGVyNjQgdmFycwogICAKMjAwMy0xMC0xNCAxMzoxMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9ub2RlLWdldC5tMmk6CgogICB1c2UgbmV3IE1GRF8qIGVycm9yIGNvZGVzOyB1cGRhdGUgZm9yIG0yYyBwYXJhbSByZW5hbWU7IGhhbmRsZSBjb3VudGVyNjQgdmFycwogICAKMjAwMy0xMC0xNCAxMzowOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgbmFtZSBkZXBzIGZpbGVzIGV4cGxpY2l0eSwgc2luY2UgLmM9LmRlcHMgaXNuJ3QgcG9ydGFibGUKICAgCjIwMDMtMTAtMTQgMTM6MDggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICB1cGRhdGUgYmFzZSBwYXJhbSBmcm9tIG1mZCByZWcgdG8gbWZkIHBkdSBjdHg7IHVwZGF0ZSBmb3IgcmVuYW1lZCBtZmQvbTJjIHZhcnM7CiAgIHJlbmFtZSB1c2VyIHJlZyB0eXBlZGVmOyBubyB1bmRvIGluIHRhYmxlIGN0eCBpZiB0YWJsZSBub3Qgc2V0dGFibGU7IGFkZCB1c2VyCiAgIHJlZyBwdHIsIHJlcXVlc3QgbW9kZSBhbmQgZGF0YSBsaXN0IHRvIHRhYmxlIGNvbnRleHQ7IG12IGNvbnRhaW5lciBpbml0IHByb3RvCiAgIGFuZCBvdGhlciBpbnRlcmZhY2UgcHJvdG90eXBlcyB0byB0aGVpciBvd24gaGVhZGVyOyBhZGQgcHJvdG9zIGZvciBwcmUvcG9zdAogICByZXF1ZXN0cywgdGFibGUgY29udGV4dCBpbml0L2NsZWFudXA7IGFkZCBzZXQgcHJvdG90eXBlczsgaW5jbHVkZSBuZXcgaGVhZGVycwogICBhdCBib3R0b20gb2YgbWFpbiBoZWFkZXI7IG1vdmUgYXMgbXVzaCBvZiBpbml0IHJvdXRpbmUgYXMgcG9zc2libGUgaW50bwogICBpbnRlcmZhY2UgY29kZTsgdXNlIG5ldyBNRkRfKiByZXR1cm4gY29kZXM7IGRvbid0IHJ1biBtYWtlZmlsZS9zdWJhZ2VudAogICBjb25mIGZpbGVzIGlmIHRoZXkndmUgYWxyZWFkeSBiZWVuIHJ1bgogICAKMjAwMy0xMC0xNCAxMjo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIGFkZCBtZmQgb3ZlcnZpZXcgb2YgU05NUCBhbmQgbWZkIGRhdGEgc3RydWN0dXJlczsgZG9jdW1lbnQgbTJjIGNvbmZpZ3VyYXRpb24KICAgdmFyaWFibGVzOyBpbmRlbnQgc29tZSBjb21tZW50cyB0byBiZSBtb3JlIGNvbnNpc3RlbnQ7IGRvY3MgZm9yIHNldCBzdXBwb3J0CiAgIAoyMDAzLTEwLTE0IDEyOjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgcmVwbGFjZSBoYXJkY29kZWQgaGVhZGVyIG5hbWUgdy8kbmFtZS5oOyBkb2N1bWVudGF0aW9uIHVwZGF0ZXM7IHVzZSBNRkRfKgogICByZXR1cm4gY29kZXMgaW5zdGVhZCBvZiBTTk1QXyo7ICB1cGRhdGUgcmVuYW1lZCBtMmMgcGFyYW1zOyByZW1vdmUgbG9jYWwgc3RhdGljCiAgIHByb3RvdHlwZXMgZnJvbSBoZWFkZXJzOyBuZXcgcGVyIHRhYmxlIGludGVyZmFjZSBjb250ZXh0OyByZW5hbWUgaW50ZXJmYWNlIGluaXQ7CiAgIHVzZSB0YWJsZSByZWcgaW4gbG9jYWwgdGFibGUgY29udGV4dCBpbnN0ZWFkIG9mIG1hbGxvYzsgcmVtb3ZlIF8gcHJlZml4IGZyb20KICAgcHVibGljIHRhYmxlIGFsbG9jYXRlICYgcmVsZWFzZSBjdHggZnVuY3M7IGluaXQgdmFycyBpbiBhbGxvY2F0ZV9jdHg7IGNhbGwKICAgdGFibGUgY3R4IGluaXQgZnVuYyBpbiBhbGxvY2F0ZSwgaWYgZGVmaW5lZDsgd3JhcHBlcnMgZm9yIGFsbCBtZmQgZnVuY3Rpb25zLCB0bwogICBjb252ZXJ0IGZyb20gb3VyIHRhYmxlIGNvbnRleHQgdG8gdGhlIHVzZXJzIHJlZ2lzdHJhdGlvbiBwb2ludGVyOyBhZnRlciBvYmplY3QKICAgbG9va3VwIHNldCB1c2VycyBpbmRleGVzIGJhY2sgdG8gdGhlIHZhcmJpbmQgb2lkIGFuZCBzZXQgY29udGV4dCB2YXJzOyBvbmx5CiAgIGRvIGdldCByb3V0aW5lcyBmb3IgYWNjZXNzYWJsZSBpbnRlcm5hbCBpbmRleGVzOyBwcmVmaXggd3JhcHBlcnMgdy9tZmRfOwogICBkZXRlY3QgaWYgdXNlciBnZXQgcm91dGluZXMgbXVuZ2VzIHZiIHZhbHVlIHBvaW50ZXI7IGNoZWNrIGZvciBudWxsIHB0ciBiZWZvcmUKICAgZnJlZTsgbWVyZ2UgY2hlY2tfaW5kZXggaW50byBjaGVja19pbmRleGVzOyBhZGQgc2V0IHZhbHVlcywgY29tbWl0LCB1bmRvCiAgIGFuZCBpcnJldmVyc2libGUgY29tbWl0IHdyYXBwZXJzOyB1cGRhdGUgZm9yIHJlbmFtZWQgY29tbWl0IG1vZGUgbmFtZXM7CiAgIHNpbXBsaWZ5IHBhcmFtIGZvciBpbnRlcm5hbCBpbmRleCBjaGVjayBmdW5jcwogICAKMjAwMy0xMC0xNCAxMjozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgcHV0IHByb3RvdHlwZXMgaW4gJG5hbWVfZGF0YV9nZXQuaAogICAKMjAwMy0xMC0xNCAxMjozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICB1cGRhdGUgbTJjIG5vZGUgcGFyYW1zIHRvIGJlIGJhc2VkIG9uIHZhci92YWwvcmVmIGluc3RlYWQgb2YgZnVuY3Rpb24gbmFtZQogICAKMjAwMy0xMC0xNCAxMjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1kZWNsLm0yaToKCiAgIHVwZGF0ZSBmb3IgcmVuYW1lIG0yYyB2YXIgbmFtZXMKICAgCjIwMDMtMTAtMTQgMTI6MzEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksCiAgIGdlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICB1c2UgbTJjX25vZGVfc3VtbWFyeSBpbiBjb21tZW50CiAgIAoyMDAzLTEwLTE0IDEyOjMwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZXM7IHVzZSBNRkRfKiByZXR1cm4gY29kZXMgaW5zdGVhZCBvZiBTTk1QXyo7IHB1dCBwcm90b3R5cGVzCiAgIGluICRuYW1lX2RhdGFfc2V0Lmg7IHVwZGF0ZSByZW5hbWVkIG0yYyBwYXJhbXM7IGFkZCBleHRlcm5hbCBpbmRleCBjaGVjayBmdW5jCiAgIGlmIHRhYmxlIGhhcyBleHRlcm5hbCBpbmRleDsgc2ltcGxpZnkgcGFyYW0gZm9yIGludGVybmFsIGluZGV4IGNoZWNrIGZ1bmNzCiAgIAoyMDAzLTEwLTE0IDEyOjI3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgcmVtb3ZlIG1mZCByZWcgcGFyYW0gJiYgYXNzZXJ0CiAgIAoyMDAzLTEwLTE0IDEyOjI2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL25vZGUtc2V0Lm0yaToKCiAgIGRvY3VtZW50YXRpb24gdXBkYXRlczsgdXNlIE1GRF8qIHJldHVybiBjb2RlcyBpbnN0ZWFkIG9mIFNOTVBfKjsgYWRkIHBlciBub2RlCiAgIHVuZG9fc2V0dXAgOyB1cGRhdGUgZm9yIHJlbmFtZWQgY29tbWl0IG1vZGUgbmFtZXM7IHVwZGF0ZSByZW5hbWVkIG1mZCBwYXJhbXMKICAgCjIwMDMtMTAtMTQgMTI6MjQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBkb2N1bWVudGF0aW9uIHVwZGF0ZXM7IGNoZyBtZmRfcmVnIHBhcmFtcyB0byB0YWJsZV9yZWc7IHVzZSBNRkRfKiByZXR1cm4KICAgY29kZXMgaW5zdGVhZCBvZiBTTk1QXyo7IG5vIHBlciBub2RlIGNvZGUgaW4gdGFibGUgdW5kb19zZXR1cCAod2lsbCBiZSBpbgogICBuZXcgcGVyIG5vZGUgdW5kb19zZXR1cCk7IHVwZGF0ZSBmb3IgcmVuYW1lZCBjb21taXQgbW9kZSBuYW1lcwogICAKMjAwMy0xMC0xNCAxMjoyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtRGF0ZUFuZFRpbWUtcmVhZG1lLm0yaToKCiAgIGluZGVudCB0byBtYXRjaCBvdGhlciByZWFkbWVzCiAgIAoyMDAzLTEwLTE0IDEyOjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICByZW5hbWUgbTJjX3RhYmxlX3dyaXRhYmxlIHRvIG0yY190YWJsZV9zZXR0YWJsZSAoY29uc2lzdGVudCB3L25vZGUuc2V0dGFibGUpOwogICBiYXNlIG0yY190YWJsZV9yb3dfY3JlYXRpb24gb24gbmV3IGZ1bmN0aW9uIHRhYmxlX2hhc19jcmVhdGU7IG5ldwogICBtMmNfdGFibGVfZXh0ZXJuYWxfaW5kZXhlcyBiYXNlIG9uIG5ldyBmdW5jdGlvbiBjb3VudF9leHRlcm5hbF9pbmRleGVzCiAgIAoyMDAzLTEwLTE0IDEyOjE1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtdGFibGUubTJpOgoKICAgcmVtb3ZlIHVudXNlZCBsaW5lczsgYWRkIG9pZCBsZW5ndGggaW4gb3V0cHV0CiAgIAoyMDAzLTEwLTE0IDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RlZmF1bHQtbWZkLXRvcC5tMmM6CgogICBvbmx5IHNldCBkZWZhdWx0cyBpZiB2YWx1ZSBpcyBlbXB0eQogICAKMjAwMy0xMC0xNCAxMTo0OCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2l0ZXJhdG9yLmM6CgogICBpZiBzb3J0ZWQsIHNraXAgaXRlcmF0aW9uIG9uIGZpbmQgZmlyc3Q7IGFkZCBuZXcgcmV1c2UgcGFyYW0gdG8gc2F2ZV9wb3MKICAgCjIwMDMtMTAtMTQgMTE6MzggIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgbG9nIGVhY2ggYWdlbnR4cGVybXMgcGFydCBzZXBhcnRlbHksIHNvIGFzIG5vdCB0byBjcmFzaCBpZiBhbnkgb2YgdGhlIG9wdGlvbmFsCiAgIGl0ZW1zIGFyZSBsZWZ0IG91dDsgdXBkYXRlIGhlbHAgdG8gc2hvdyB0aGF0IG9wdGlvbmFsIHBhcm1zIG11c3QgYmUgaW4gb3JkZXIKICAgCjIwMDMtMTAtMTQgMTE6MTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNoYW5nZSBjb3VudGVyIDY0IHR5cGUgZnJvbSAnY291bnRlcjY0JyB0byAnVTY0Jywgc2luY2UgdGhlIGZvcm1lciBjYW4ndCBiZQogICB1c2VkIGFzIGEgdmFyaWFibGUgZGVjbGFyYXRpb24gdHlwZTsgcHJvY2VzcyAkSE9NRS8uc25tcC9taWIyYy5jb25mLCBpZiBpdAogICBleGlzdHM7IG5ldyBmb3JlYWNoIGludGVybmFsaW5kZXggYW5kIGV4dGVybmFsaW5kZXg7IG5ldyBzdWIgdGFibGVfaGFzX2NyZWF0ZQogICBhbmQgY291bnRfZXh0ZXJuYWxfaW5kZXhlcwogICAKMjAwMy0xMC0xNCAwOTo0OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgZG9uJ3QgcmVxdWlyZSBERUJVRyBkZmluZSBmb3IgYXNzZXJ0czsgbmV3IGxvZ2ljOiB1c2UgYXNzZXJ0IGlmCiAgIE5FVFNOTVBfVVNFX0FTU0VSVCBkZWZpbmVzLiBvdGhlcndpc2UsIGZhaWxlZCBhc3NlcnRzIHdpbGwgdXNlIHNubXBfbG9nCiAgIHRvIGxvZyBhIG1lc3NhZ2UgKHVubGVzcyBTTk1QX05PX0RFQlVHR0lORyBpcyBkZWZpbmVkKS4KICAgCjIwMDMtMTAtMTQgMDk6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgdXBkYXRlIGZvciByZW5hbWVkIG1vZGVzOyBjaGcgY2FsbGJhY2sgcGFyYW0gdG8gdXNlIG5ldyBtZmRfcGR1X2N0eDsgZG9uJ3QKICAgc3BsaXQgY2FsbGJhY2tzIGludG8gdHdvIHN0cnVjdHVyZXM7IGRlZmluZSBtZmQgc3BlY2lmaWMgZXJyb3IgY29kZXMgYXMgYQogICBzdWJzZXQgb2YgZXhpc3RpbmcgZXJyb3IgY29kZXM7IGFkZCBkb2N1bWVudGF0aW9uOyByZW1vdmUgdGFibGUgcmVnaXN0cmF0aW9uCiAgIGZyb20gcmVnaXN0cmF0aW9uIHBhcmFtIGxpc3QsIHNpbmNlIGl0J3MgaW4gdGhlIG1mZCByZWcgb2JqOyBoYW5kbGUgZ2V0IHJlcXVlc3QKICAgc3BsaXQgaW50byBvYmplY3RfbG9va3VwIGFuZCBnZXQgdmFsdWVzOyBvbmx5IGNhbGwgbmV4dCBoYW5kbGVyIGlmIG5leHQgaGFuZGxlcgogICBoYXMgYWNjZXNzIG1ldGhvZDsgdHdlYWsgbG9va3VwIHBhcmFtczogcmV0dXJuIGVycm9yIGNvZGUgYW5kIHNldCBmb3VuZCByb3cKICAgaW4gbmV3IHBkdSBjdHggcGFyYW0KICAgCjIwMDMtMTAtMTQgMDk6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmg6CgogICBhZGQgcmV1c2UgZmxhZyB0byBjdHggZHVwIHBhcmFtcwogICAKMjAwMy0xMC0xNCAwOToyNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgYWRkIG1vZGUgbXNnIGRlZmluZXMgZm9yIGJhYnkgc3RlcCBtb2Rlczsgc2ltcGxpZnkgbW9kZSB0ZXN0IG1hY3JvczsgYWRkCiAgIG5leHRfbW9kZSB0byBhZ2VudF9yZXF1ZXN0X2luZm8KICAgCjIwMDMtMTAtMTQgMDk6MjQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC5oOgoKICAgYWRkIGludGVybmFsIG1zZyBkZWZpbmVzIGZvciBiYWJ5IHN0ZXAgbW9kZXM7IHJlbnVtYmVyIGdldCBzdGFzaCBtb2RlOyBmaXggdHlwbwogICBpbiBjb21tZW50OyByZXNlcnZlICBtb2RlcyA8IDEyOCBmb3Igc2V0IHByb2Nlc3NpbmcgdG8gc2ltcGxpZnkgbW9kZSB0ZXN0cwogICAKMjAwMy0xMC0xNCAwOToyMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgcmVuYW1lIGEgZmV3IG1vZGVzCiAgIAoyMDAzLTEwLTE0IDA5OjIwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmM6CgogICB1cGRhdGUgZm9yIHJlbmFtZWQgbW9kZXM7IGFkZCBtb2RlIG1hcCBmb3IgZ2V0LXJlcXVlc3RzIGFzIHdlbGwKICAgCjIwMDMtMTAtMTQgMDk6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgY29uc3QgY29ycmVjdG5lc3MKICAgCjIwMDMtMTAtMTQgMDk6MTggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgaWZkZWYnZCBjb2RlIGFmdGVyIHJlc3RvcmluZyBzb21lIG9mIGl0OyB1cGRhdGUgbmV3IHJlcWluZm8gcHRyIGluCiAgIHJlcXVlc3RzOyBmaXggZW5sZXNzIGxvb3A7IGZpeCB0eXBvcyBpbiBhc3NlcnRzCiAgIAoyMDAzLTEwLTE0IDA5OjE1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgY2hlY2sgZm9yIHJlbGF0aXZlIHBhdGggdG8gc3JjIGRpciBmb3IgYnVpbGQtZGlyIGNoZWNrcwogICAKMjAwMy0xMC0xNCAwNjoyOSAgcnN0b3J5CgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4gKFY1LTAtcGF0Y2hlcy4zKSwgTWFrZWZpbGUuaW46CgogICBkb24ndCBsZWF2ZSBwb3NzaWJseSBlbXB0eSBjb25maWd1cmUgQHZhckAgb24gY29udGludWF0aW9uIGxpbmUgYnkgaXRzZWxmCiAgIAoyMDAzLTEwLTA4IDIyOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhcl9yb3V0ZS5jIChWNS0wLXBhdGNoZXMuMiksIHZhcl9yb3V0ZS5jCjoKCiAgIHBhdGNoIGZyb20gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIHRvIGZpeCBIUFVYIDExCiAgIAoyMDAzLTEwLTA4IDE0OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgYWRkIGRldGFpbCBvbiBpbXByb3BlcnlseSByZWdpc3RlcmVkIHRhYmxlIG1lc3NhZ2UsIGFuZCBjaGcgdG8gRVJSIChmcm9tIElORk8pOwogICBmaXggdmFsaWQgY29sdW1uIHNlYXJjaCBmb3IgcmFuZ2VzOyBnbyBzdHJhaWdodCB0byBmaXJzdCByb3cgaWYgbm8gaW5kZXhlcwogICAKMjAwMy0xMC0wNyAxNToxMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBtb3JlIHVzZWZ1bCBoZWxwIHRleHQgZm9yIGFnZW50eHBlcm1zCiAgIAoyMDAzLTEwLTA3IDE0OjQzICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZpeCBsb2dpYyBjaGVjayBvZiBEU19BR0VOVF9RVUlUX0lNTUVESUFURUxZIHNvIHRoYXQgcGFyZW50IGFuZCBjaGlsZCBkb24ndAogICBib3RoIHRyeSB0byBiZWNvbWUgdGhlIG1hc3RlciBhZ2VudC4gTG9naWMgc2VlbXMgYmFja3dhcmRzIHRvIG1lIC0gZG8gd2UgaGF2ZQogICBhbGwgdGhlc2UgRFMgdmFycyBkb2N1bWVudCBzb21ld2hlcmU/CiAgIAoyMDAzLTEwLTA3IDE0OjM5ICByc3RvcnkKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIG5ldHNubXBfZGFlbW9uaXplOiBpbml0IGxvY2FsIHZhcjsgY2hnIHJldHVybiBjb2RlIHRvIGJlIGZvcmsgcmVzdWx0OyBhZGQgZG9jcwogICAKMjAwMy0xMC0wNyAwNzowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYyAoVjUtMC1wYXRjaGVzLjMpLCBtaWIyYzoKCiAgIENoZWNrIGZvciBeLVMgaW5zdGVhZCBvZiAtUywgYXMgcmVwb3J0ZWQgYnkgSmVhbi1NYXJjIFJhbmdlciBvbiAtdXNlcnMKICAgCjIwMDMtMTAtMDcgMDM6MTMgIGR0czEyCgogICAqIGxvY2FsL21pYjJjOgoKICAgVGhlcmUgYXJlIG5vIHN0YXRpc3RpY3MgcHJpbnRlZCwgc28gdGhlcmUncyBubyBwb2ludCBpbiBoYXZpbmcKICAgYSBmbGFnIHRvIHR1cm4gdGhlbSBvZmYuCiAgIAoyMDAzLTEwLTA0IDExOjAxICByc3RvcnkKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgbWVyZ2UgY2hhbmdlcyBmcm9tIDUuMCBwYXRjaGVzIGJyYW5jaDsgZml4IHRvIGJ1aWxkIHdpdGhvdXQgcmVxdWlyaW5nIGFyZ3VtZW50czsKICAgc2VwYXJhdGUgZW1iZWRkZWQgcGVybCBhbmQgcGVybCBtb2R1bGVzIG9wdGlvbnM7IGZpeCBmaXggZm9yIGluaXQuZCBzY3JpcHQKICAgZm9yIG5vbi0vdXNyL2xvY2FsIGluc3RhbGxhdGlvbgogICAKMjAwMy0xMC0wMyAwNzo0MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGNoYW5nZSB2MSBkZW1vIGNvbW11bml0eSB0byBtYXRjaCB3aGF0IGlzIGFjdHVhbHQgY29uZmlndXJlZCBvbiB0aGUKICAgc29vbi10by1iZS1yZW9wZW5lZCB0ZXN0Lm5ldC1zbm1wLm9yZwogICAKMjAwMy0xMC0wMiAxOTozMCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZjoKCiAgIGFkZCBleHBsYW5hdG9yeSB0ZXh0IGFuZCBsaW5lcy9hcnJvd3Mgc2hvd2luZyByZWxhdGlvbnNoaXAgYmV0d2VlbiBlbnRyaWVzOwogICBhZGQgY3JlYXRlVXNlciBsaW5lcywgdy9ub3RlIGV4cGxhaW5pbmcgdGhleSBtaWdodCBiZSBiZXR0ZXIgc3VpdGVkIGZvcgogICB0aGUgcGVyc2lzdGVudGRpciBzbm1wZC5jb25mIGZvciBzZWN1cml0eSBwdXJwb3Nlcy4KICAgCjIwMDMtMTAtMDIgMTE6MDQgIGhhcmRha2VyCgogICAqIG1hbi9taWIyYy4xLmRlZjoKCiAgIGRvY3VtZW50IHRoZSAtSSBzd2l0Y2gKICAgCjIwMDMtMTAtMDIgMTA6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsIE5FV1MsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4KLCBtaWJzL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgUm9iZXJ0IHRvbGQgbWUgdG8ga2VlcCBnb2luZywgc28gSSBhZGRlZCBzdXBwb3J0IGZvciBhIC0td2l0aC1pbnN0YWxsLXByZWZpeAogICBmbGFnIHRvIGNvbmZpZ3VyZSAoYW5kIHRodXMgYSBJTlNUQUxMX1BSRUZJWCBtYWtlIHZhcmlhYmxlIGFzIHdlbGwpLgogICAKMjAwMy0xMC0wMSAxNjozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLCBNYWtlZmlsZS50b3AsCiAgIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KLCBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICBTdXBwb3J0IGZvciAibWFrZSB1bmluc3RhbGwiCiAgIAoyMDAzLTEwLTAxIDE0OjUxICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIEFkZGVkIC1MIHN1cHBvcnQgZm9yIG91dHB1dCBsb2dnaW5nLgogICAKMjAwMy0xMC0wMSAxNDo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuaDoKCiAgIHVwZGF0ZWQgcHJvdG90eXBlcyB0byBtYXRjaCBlYXJsaWVyIHRyYXAgLT4gbm90aWZpY2F0aW9uIHN0cmluZyByZXBsYWNlbWVudHMuCiAgIAoyMDAzLTA5LTMwIDE3OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1Sb3dTdGF0dXMtdmFyYmluZC12YWxpZGF0ZS5tMmk6CgogICBzeW50YXggc3BlY2lmaWMgdmFyYmluZCB2YWxpZGF0aW9uCiAgIAoyMDAzLTA5LTMwIDE3OjIwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogc3ludGF4LVJvd1N0YXR1cy1kZXBlbmRlbmNpZXMubTJpLAogICBzeW50YXgtU3RvcmFnZVR5cGUtZGVwZW5kZW5jaWVzLm0yaToKCiAgIHN5bnRheCBzcGVjaWZpYyBkZXBlbmRlbmN5IGNoZWNrcwogICAKMjAwMy0wOS0zMCAxNzoxOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLXJlYWRtZS5tMmk6CgogICBmaXggdHlwb3MKICAgCjIwMDMtMDktMzAgMTc6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBzeW50YXgtRGF0ZUFuZFRpbWUtZ2V0Lm0yaSwKICAgc3ludGF4LURhdGVBbmRUaW1lLXJlYWRtZS5tMmk6CgogICBzZXQgZW1hZ3MgdGFnIGZvciBjOyB1cGRhdGUgdmFyaWFibGUgbmFtZQogICAKMjAwMy0wOS0zMCAxNzoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9wYXJlbnQtc2V0Lm0yaToKCiAgIHNldCBlbWFncyB0YWcgZm9yIGM7IGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jczsgbmV3IHZhbGlkYXRlX2luZGV4LAogICB1bmRvX3NldHVwLCByZXZlcnNpYmxlX2NvbW1pdCwgZmluYWxfY29tbWl0CiAgIAoyMDAzLTA5LTMwIDE3OjE3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1kZXBlbmRlbmNpZXMubTJpOgoKICAgc2V0IGVtYWdzIHRhZyBmb3IgYzsgaW4gY2hlY2tfZGVwZW5kZW5jaWVzLCByZW1vdmUgbm9uLWV4aXN0YW50IHBhcmFtIGFuZAogICBpbmNsdWRlIGFueSBub2RlIHNwZWNpZmljIHN5bnRheCBkZXBlbmRlbmNpZXMKICAgCjIwMDMtMDktMzAgMTc6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbm9kZS12YXJiaW5kLXZhbGlkYXRlLm0yaToKCiAgIG5ldyBpbmNsdWRlIHRvIGRvIGJhc2ljeSBzeW50YXggdmFsaWRhdGlvbiBhZ2FpbnN0IGFuIGluY29taW5nIHZhcmJpbmQKICAgCjIwMDMtMDktMzAgMTc6MTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIGFkZC9jb3JyZWN0IGRveHlnZW4gc3R5bGUgZG9jcyBpbiBjb21tZW50czsgY2hhbmdlIGV4YW1wbGUgZnJvbSBsaW5rZWQgbGlzdAogICB0byBmbGF0IGZpbGU7IHVzZSB2YXIgZm9yIGZ1bmMgcGFyYW1zIHNvIGl0J3MgZWFzeSB0byBjaGFuZ2U7IGNoZWNrIG5ldwogICBtMmNfaW5jbHVkZV9leGFtcGxlcyBiZWZvcmUgaW5jbHVkaW5nIGV4YW1wbGUgY29kZTsKICAgCjIwMDMtMDktMzAgMTc6MTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1oZWFkZXIubTJpOgoKICAgYWRkL2NvcnJlY3QgZG94eWdlbiBzdHlsZSBkb2NzIGluIGNvbW1lbnRzOyBjaGFuZ2UgZXhhbXBsZSBmcm9tIGxpbmtlZCBsaXN0CiAgIHRvIGZsYXQgZmlsZTsgdXNlIHZhciBmb3IgZnVuYyBwYXJhbXMgc28gaXQncyBlYXN5IHRvIGNoYW5nZQogICAKMjAwMy0wOS0zMCAxNzoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWludGVyZmFjZS5tMmkKOgoKICAgc2V0IGVtYWNzIHRhZyB0byBjOyBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3MgaW4gY29tbWVudHM7IHVzZSBsb2NhbAogICBzdGF0aWMgdmFyaWFibGVfbGlzdCBmb3IgaW5kZXggdG8gb2lkIGNvbnZlcnNpb247IGZyZWUgbWVtb3J5IHVzZWQgaW4gdGhhdAogICBjb252ZXJzaW9uLCBldmVudHVhbGx5OyBkb24ndCBpZ25vcmUgcmMgZnJvbSBidWlsZF9vaWRfbm9hbGxvYyBoZXJlIChyZXR1cm4KICAgaXQgYW5kIGxldCBzb21lb25lIGVsc2UgaWdub3JlIGl0KTsgcHJlZml4IHNvbWUgaW50ZXJuYWwgZnVuY3Rpb25zIG5hbWVzIHcvJ18nOwogICB3cmFwcGVyIGFyb3VuZCBnZXRfZGF0YSB0byBhbGxvY2F0ZSBuZXcgY29udGV4dAogICAKMjAwMy0wOS0zMCAxNzowOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG5vZGUtZ2V0Lm0yaSwgbm9kZS1zZXQubTJpOgoKICAgc2V0IGVtYWNzIHRhZyB0byBjOyBhZGQvY29ycmVjdCBkb3h5Z2VuIHN0eWxlIGRvY3MgaW4gY29tbWVudHMKICAgCjIwMDMtMDktMzAgMTc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICBuZXcgbWZkX2Jhc2VfcGFyYW1zIHZhciBzbyBpdCdzIGVhc3kgdG8gY2hhbmdlIHBhcmFtczsgY2hnIGNvbW1lbnRzIHNvIHRoYXQKICAgaW5kZW50IHdvbid0IG5vdCBpbmRlbnQ7IGRvbid0IGluY2x1ZGUgc29tZSBwcm90b3R5cGVzIGhlcmUgaWYgdGhlIGZ1bmN0aW9uCiAgIGlzIGluICpfaW50ZXJmYWNlczsgbmV3IHByZS9wb3N0IHJlcXVlc3QgZnVuY3Rpb25zOyBtb3ZlZCBidWxrIG9mIHRhYmxlCiAgIGluaXQgaW50byBpbnRlcmZhY2VzLCBqdXN0IGEgbGl0dGxlIGZ1bmN0aW9uIHNldHVwIGhlcmUKICAgCjIwMDMtMDktMzAgMTY6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLW1ha2VmaWxlLm0ybToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIE1ha2VmaWxlOyB0dXJuIG9mZiBzdHJpY3QgdG9rZW4gY2hlY2tzIHRpbCB3ZXMgZ2V0cyBAIGVzY2FwZTsKICAgZXhwYW5kIGRlcHMgaW5jbHVkZXMgc2luY2UgJCh4Oi5jPS5kZXBzKSBpc24ndCBwb3J0YWJsZQogICAKMjAwMy0wOS0zMCAxNjo0NiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgb25seSBwdXQgTUlCMkNfRElSIGVudiB2YXIgaW4gc2VhcmNoIHBhdGggaWYgaXQgaXNuJ3QgZW1wdHkKICAgCjIwMDMtMDktMzAgMTY6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBjcmVhdGUgbmV3ICRuYW1lX2ludGVyZmFjZS5oIGhlYWRlcjsgbW92ZSB0YWJsZSBpbml0aWFsaXphdGlvbiBoZXJlOyBwcmVmaXggYQogICBidW5jaCBvZiBpbnRlcmZhY2UgZnVuY3Rpb25zIHcvJ18nOyB1c2UgbmV3IG0yY19ub2RlX3N1bW1hcnk7IHVzZSBuZXcKICAgbTJjX25vZGVfdmFyXyogdmFyaWFibGVzOyBjaGFuZ2Ugc29tZSBhY2Nlc3NpYmxlIHRlc3RzIHRvIHNldHRhYmxlIHRlc3RzOyB1c2UKICAgbmV3IG5vZGUtdmFyYmluZC12YWxpZGF0ZSBpbmNsdWRlOyBhbHdheXMgY2FsbCB1c2VyICRub2RlX2NoZWNrX3ZhbHVlOyBuZXcKICAgZnVuY3Rpb25zIHRvIGNoZWNrIG5ldyBpbmRleCBzeW50YXg7IG5ldyBfc2V0X3ZhbHVlcywgX3VuZG9fc2V0dXAgYW5kCiAgIF91bmRvX3ZhbHVlcyB0byBjYWxsIHVzZXIgZnVuY3Rpb25zCiAgIAoyMDAzLTA5LTMwIDE2OjM2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyB0d2VhayBwcm9jZXNzaW5nIG1zZ3M7IGFsd2F5cyBpbmNsdWRlIHBhcmVudC1zZXQ7IG1vdmUKICAgcGFyZW50IGRlcGVuZGVuY2llcyB0byBib3R0b20gb2YgZmlsZTsgYWRkICRub2RlX2NoZWNrX2luZGV4CiAgIAoyMDAzLTA5LTMwIDE2OjI1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWdldC5tMmM6CgogICB0d2VhayBwcm9jZXNzaW5nIG1zZ3MKICAgCjIwMDMtMDktMzAgMTY6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbTJjX3NldHVwX25vZGUubTJpOgoKICAgc2V0IGVtYWNzIG1vZGUgdG8gYzsgYWRkIHNvbWUgc2FuaXR5IGNoZWNrczsgc2V0IHVwIG5ldyAkbTJjX2VudW1fbWFzaywKICAgJG0yY19ub2RlX3Zhcl92YWwsICRtMmNfbm9kZV92YXJfcmVmLCAkbTJjX25vZGVfdmFyX3ZhbF9wdHIsICRtMmNfbm9kZV9zdW1tYXJ5CiAgIAoyMDAzLTA5LTMwIDE2OjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyByZW1vdmUgdW51c2VkIGNyZWF0ZV91bmRvX2NvbnRleHQKICAgCjIwMDMtMDktMzAgMTY6MTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1jb3B5Lm0yaSwKICAgZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwKICAgbTJjX3NldHVwX3RhYmxlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IHN1Y2sgJ2N0eC0+JyBvciAnY3R4LicgaW50byAkbTJjX2RhdGFfaXRlbQogICAKMjAwMy0wOS0zMCAxNjoxMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZXRhaWxzLXRhYmxlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGMKICAgCjIwMDMtMDktMzAgMTY6MTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1lbnVtcy5tMmk6CgogICBzZXQgZW1hY3MgbW9kZSB0byBjOyBnZW5lcmF0ZSBkZWZpbmUgZm9yIG1hc2sgb2YgYWxsIGJpdHMKICAgCjIwMDMtMDktMzAgMTQ6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtcmVhZG1lLm0yYzoKCiAgIHh4eCB0YWdnaW5nLgogICAKMjAwMy0wOS0zMCAxNDoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBjcmVhdGUgdGhlIE1ha2VmaWxlIHRvIGVpdGhlciByZWZlcmVuY2UgYSBOZXQtU05NUCBzb3VyY2UgZGlyIG9yIG5vdAogICAgIChhbmQgcmVxdWlyZSBnbnUtbWFrZSBvciBub3QpLgogICAKMjAwMy0wOS0zMCAwNjo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgbmV3IGZsYWcvdG9rZW4gc3RyaWN0X3Vua190b2tlbiB3aWxsIGFib3J0IG9uIHVua25vdyBAdG9rZW4KICAgCjIwMDMtMDktMzAgMDY6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2hlY2tfdmFyYmluZC5oOgoKICAgYWRkIG5ldHNubXBfY2hlY2tfdmJfc2l6ZSwgbmV0c25tcF9jaGVja192Yl9zaXplX3JhbmdlCiAgIGFuZCBuZXRzbm1wX2NoZWNrX3ZiX3Jvd3N0YXR1c192YWx1ZQogICAKMjAwMy0wOS0zMCAwNjozNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgbW9yZSBudWxsIHB0ciBjaGVja3M7IGFkZCBuZXRzbm1wX2NoZWNrX3ZiX3NpemUsIG5ldHNubXBfY2hlY2tfdmJfc2l6ZV9yYW5nZQogICBhbmQgbmV0c25tcF9jaGVja192Yl9yb3dzdGF0dXNfdmFsdWUKICAgCjIwMDMtMDktMzAgMDY6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWRhdGEtY29udGV4dC5tMmksCiAgIGdlbmVyaWMtZ2V0LWNoYXIubTJpLCBnZW5lcmljLWdldC1kZWNsLWJvdC5tMmksCiAgIGdlbmVyaWMtZ2V0LWRlY2wubTJpLCBnZW5lcmljLWdldC1sb25nLm0yaSwKICAgZ2VuZXJpYy1nZXQtb2lkLm0yaSwgZ2VuZXJpYy1oZWFkZXItYm90dG9tLm0yaSwKICAgZ2VuZXJpYy1oZWFkZXItdG9wLm0yaSwgZ2VuZXJpYy1zb3VyY2UtaW5jbHVkZXMubTJpLAogICBnZW5lcmljLXRhYmxlLWluZGV4ZXMubTJpLCBnZW5lcmljLXZhbHVlLW1hcC1yZXZlcnNlLm0yaQosIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwgbTJjX3NldHVwX2VudW0ubTJpLAogICBtZmQtZGF0YS1hY2Nlc3MubTJjLCBub2RlLXN0b3JhZ2UubTJpLAogICBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwgc3ludGF4LUluZXRBZGRyZXNzLXNldC5tMmksCiAgIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzVHlwZS1zZXQubTJpLCBzeW50YXgtUm93U3RhdHVzLWdldC5tMmkKLCBzeW50YXgtVGVzdEFuZEluY3ItZ2V0Lm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGMKICAgCjIwMDMtMDktMzAgMDY6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy1ub2RlLm0yaToKCiAgIHNldCBlbWFjcyBtb2RlIHRvIGM7IGZpeCBnZW5lcmF0ZWQgY29tbWVudAogICAKMjAwMy0wOS0zMCAwNjoxOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9kZWZhdWx0LW1mZC10b3AubTJjOgoKICAgbmV3IGZsYWcgZm9yIGluY2x1ZGluZyBleGFtcGxlIGNvZGUKICAgCjIwMDMtMDktMjkgMjI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaQosIG1mZC1yZWFkbWUubTJjOgoKICAgTWlzYyB1cGRhdGVzIGZvciByZWFkYWJpbGl0eSwgZXRjLgogICAKMjAwMy0wOS0yOSAxNjo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1yZWFkbWUubTJjOgoKICAgSW5pdGlhbCB3b3JkIHNtaXRoaW5nIG9mIHRoZSBnbG9iYWwgUkVBRE1FLgogICAKMjAwMy0wOS0yOSAxNTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBTdXBwb3J0IGEgLUkgc3dpdGNoIHRvIHNwZWNpZnkgY29uZmlnIGZpbGUgc2VhcmNoIHBhdGhzLgogICAKMjAwMy0wOS0yOSAxNTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIG1pc3Npbmcgc29tZSBlbmQgc3RhdGVtZW50cwogICAKMjAwMy0wOS0yOSAxNDoyNyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHJlZmVyZW5jZSBuZXcgZGlzbWFuIGZlYXR1cmVzCiAgIAoyMDAzLTA5LTI5IDE0OjI1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IChwb29ybHkgb2YgY291cnNlKSBuZXcgbW9uaXRvcmluZyBmZWF0dXJlcy4KICAgCjIwMDMtMDktMjkgMTQ6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmM6CgogICAtIHRyYXBFdmVudCAtPiBub3RpZmljYXRpb25FdmVudAogICAKMjAwMy0wOS0yOSAxNDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZUV2ZW50VGFibGUuYzoKCiAgIC0gbGlua1VwRG93blRyYXBzIC0+IGxpbmtVcERvd25Ob3RpZmljYXRpb25zCiAgIAoyMDAzLTA5LTI5IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVFdmVudFRhYmxlLmMsIG10ZUV2ZW50VGFibGUuaAosIG10ZVRyaWdnZXJUYWJsZS5jOgoKICAgLSBBIG5ldyBzbm1wZC5jb25mIHRva2VuICh0cmFwRXZlbnQpIGZvciBnZW5lcmF0aW5nIHRyYXBzIG9mIGFueSBraW5kCiAgICAgb24gYSBtb25pdG9yaW5nIGV2ZW50IGFuZCBhIC1lIHN3aXRjaCB0byBtb25pdG9yIHRva2VuIHRvIHJlZmVyZW5jZSBpdC4KICAgLSBBIG5ldyBzbm1wZC5jb25mIHRva2VuIGxpbmtVcERvd25UcmFwcyB0byBlbmFibGUgbGlua1VwL2xpbmtEb3duCiAgICAgdHJhcHMgdXNpbmcgdGhlIGFib3ZlIHBpZWNlLgogICAKMjAwMy0wOS0yOSAwNzowMCAgaGFyZGFrZXIKCiAgICogZGlzdC9zbm1wZC1pbml0LmQ6CgogICAvZXRjL2luaXQuZCAtPiAvZXRjL3JjLmQvaW5pdC5kCiAgIAoyMDAzLTA5LTI4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHJlbW92ZSBjb21tZW50IGluIGNvbW1lbnQgcHJvYmxlbS4KICAgCjIwMDMtMDktMjggMTk6NTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjMuZGVmOgoKICAgQWRkZWQgRGF2ZSdzIHJlYWxseSBjb2xsIGFzY2lpIGRpYWdyYW0gZnJvbSAtdXNlcnMgZXhwbGFpbmluZyBob3cKICAgdHJhcHMgYXJlIHNlbnQgdG8gdGhlaXIgZGVzdGluYXRpb25zIG92ZXIgYW55IFNOTVAgdmVyc2lvbi4KICAgCjIwMDMtMDktMjggMTk6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgQWRkZWQgRGF2ZSdzIHJlYWxseSBjb2xsIGFzY2lpIGRpYWdyYW0gZnJvbSAtdXNlcnMgZXhwbGFpbmluZyBob3cKICAgdHJhcHMgYXJlIHNlbnQgdG8gdGhlaXIgZGVzdGluYXRpb25zIG92ZXIgYW55IFNOTVAgdmVyc2lvbi4KICAgCjIwMDMtMDktMjYgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIHByb3Blcmx5IG1hbGxvYyB0aGUgZW50ZXJwcmlzZSBwb2ludGVyIGJlZm9yZSB1c2luZyBpdC4KICAgCjIwMDMtMDktMjYgMjE6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMgKFY1LTAtcGF0Y2hlcy40KSwgU05NUC54czoKCiAgIGNvcnJlY3QgbGVuZ3RoIGluIHN0cmluZyBmaXhlZCBzdHJpbmcgY29tcGFyaXNvbgogICAKMjAwMy0wOS0yNiAxNjoxOSAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgbWlzYyBpbnN0YWxsIGZpeGVzIChtb3N0bHkgcGVybCkgYW5kIG9uZSBwZXJsIHBhdGNoLgogICAKMjAwMy0wOS0yNiAxMDozMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC54cyAoVjUtMC1wYXRjaGVzLjMpLCBTTk1QLnhzOgoKICAgZml4IHVzZU51bWVyaWMgb25jZSBhbmQgZm9yIGFsbCAobWF5YmUpCiAgIAoyMDAzLTA5LTIwIDIyOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dydW4uYyAoVjUtMC1wYXRjaGVzLjEpLCBocl9zd3J1bi5jCjoKCiAgIFBhdGNoICM4MDkyNDMgZm9yIGJ1ZyAjODA4OTIwIGZyb20gQm9iIFIuIGZvciBmaXhpbmcgcHJvY2VzcyBuYW1lIGRpc2NyZXBlbmN5IChwcyB2cyBTTk1QKQogICAKMjAwMy0wOS0yMCAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IGluc3RhbmNlLmMgKFY1LTAtcGF0Y2hlcy4xKSwgaW5zdGFuY2UuYzoKCiAgIHBhdGNoICM4MDc0MTQgZm9yIGJ1ZyAjNzU3OTIzIGJ5IEJvYiBSb3dsYW5kcyB0byBmaXggaW50IHdhdGNoaW5nIG9uIDY0IGJpdCBzeXN0ZW1zCiAgIAoyMDAzLTA5LTE3IDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9tZmQuYzoKCiAgIHVzZSBuZXQgZGF0YV9saXN0X2FkZF9kYXRhCiAgIAoyMDAzLTA5LTE3IDE3OjQ4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9tZmQuaDoKCiAgIGNoYW5nZSBtZmQgYXBpIHBhcmFtZXRlcnMKICAgCjIwMDMtMDktMTcgMTc6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IGFsd2F5cyBjcmVhdGUgYWdlbnRfcmVxX2luZm8gd2hlbiBjcmVhdGluZyBhc3A7IG1vdmUKICAgZ2V0YnVsayByZW9yZGVyIGNvZGUgaW50byBhbiBpbmxpbmUgZnVuY3Rpb24gZm9yIGNvZGUgcmVhZGFiaWxpdHk7IGRlcHJlY2F0ZQogICBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yIGFuZCBuZXRzbm1wX3NldF9tb2RlX3JlcXVlc3RfZXJyb3IgaW4gZmF2b3IKICAgb2YgbmV3IG5ldHNubXBfcmVxdWVzdF9zZXRfZXJyb3I7IGRlcHJlY2F0ZSBuZXRzbm1wX3NldF9hbGxfcmVxdWVzdHNfZXJyb3IgaW4KICAgZmF2b3Igb2YgbmV3IG5ldHNubXBfcmVxdWVzdF9zZXRfZXJyb3JfYWxsOyB0cnkgYW5kIHJldHVybiB1c2VmdWwgZXJyb3IgY29kZXMKICAgCjIwMDMtMDktMTcgMTc6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcC10Yy5oOgoKICAgbWFrZSBzdXJlIHBhcmFtcyBhcmUgdW5pcXVlCiAgIAoyMDAzLTA5LTE3IDE3OjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGF1dG9oZWFkZXIgdXBkYXRlIGZvciBuZXcgYWNjb25maWcuaAogICAKMjAwMy0wOS0xNyAxNzowNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfZW51bS5tMmk6CgogICBzZXR1cCBmb3IgZW51bSB2YXJzCiAgIAoyMDAzLTA5LTE3IDE3OjA1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3BhcmVudC1zZXQubTJpOgoKICAgcmVtb3ZlIGNyZWF0ZV91bmRvX2NvbnRleHQgKGFzc3VtaW5nIHVuZG9fY29udGV4dCA9PSBkYXRhX2NvbnRleHQgZm9yIG5vdyk7CiAgIGZpeCBsb2cgbGV2ZWwgbWFjcm87IGFsbG9jYXRlX2RhdGFfY29udGV4dCBtb3ZlZCBlbHNld2hlcmUKICAgCjIwMDMtMDktMTcgMTc6MDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LWRlcGVuZGVuY2llcy5tMmk6CgogICBmaXggcGFyYW1hdGVyIHR5cGU7CiAgIAoyMDAzLTA5LTE3IDE2OjU3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1tYWtlZmlsZS5tMm06CgogICBkb24ndCBuZWVkIHNvdXJjZSBkaXIgaWYgd2UgdXNlIG5ldyBuZXQtc25tcC1jb25maWcgLS1idWlsZC1pbmNsdWRlczsgYWRkCiAgIGJ1aWxkL3NyYyBkaXIgLUkgcGF0aHMgYmVmb3JlIGJhc2UgY2ZsYWdzCiAgIAoyMDAzLTA5LTE3IDE2OjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1pbnRlcmZhY2UubTJjOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm9zOyBhZGQgb2JqZWN0X3N5bnRheF9jaGVjayBwcm9jZXNzaW5nOwogICAKMjAwMy0wOS0xNyAxNjo1NCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1zZXQubTJjOgoKICAgb25seSBpbmNsdWRlIHBhcmVudC1zZXQgaWYgZGF0YSBjb250ZXh0IGlzIGdlbmVyYXRlZCAmIGFsbG9jYXRlZAogICAKMjAwMy0wOS0xNyAxNjo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBwZXIgbm9kZSBzZXR1cCBmb3IgZW51bXMKICAgCjIwMDMtMDktMTcgMTY6NDcgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgZ2VuZXJpYy12YWx1ZS1tYXAubTJpOgoKICAgbmV3IGZpbGUgdG8gc2V0dXAgZW51bXMgdmFycwogICAKMjAwMy0wOS0xNyAxNjo0MyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLXRhYmxlLWVudW1zLm0yYzoKCiAgIG5ldyBmaWxlIHRvIGdlbmVyYXRlIGVudW1zIGhlYWRlciBmaWxlCiAgIAoyMDAzLTA5LTE3IDE2OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwKICAgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLAogICBtMmNfc2V0dXBfdGFibGUubTJpLCBtZmQtYWNjZXNzLXVuc29ydGVkLWV4dGVybmFsLWJvZHkubTJpCjoKCiAgIG5ldyBtMmNfZGF0YV9pdGVtIGZvciBnZXR0aW5nIHRvIGRhdGEgaXRlbXMsIHNvIGluY2x1ZGVzIGRvbid0IG5lZWQgdG8ga25vdwogICB3aGV0aGVyIG9yIG5vdCB0byB1c2UgZGF0YS0+aXRlbSBvciBkYXRhLml0ZW0uCiAgIAoyMDAzLTA5LTE3IDE2OjM0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgbW92ZSBzb21lIHNldHVwIGZvciBlbnVtcyB0byBtMmNfc2V0dXBfbm9kZSBhbmQgbmV3IG0yY19zZXR1cF9lbnVtOyBhZGQgc29tZQogICBjb21tZW50cyBhbmQgZXhhbXBsZXMgdG8gZG9jdW1lbnQgcHJvY2VzcyBmbG93OyBtb3ZlIHNvbWUgY29tbWVudHMgdG8gdGhlCiAgIHRvcCBvZiB0aGUgaGVhZGVyIGluc3RlYWQgZm9yIGVhY2ggbm9kZTsgbWFrZSBzdXJlIGludGVybmFsIG1hcHBpbmcKICAgZGVmaW5lcyBhcmUgdW5pcXVlIHBlciBub2RlCiAgIAoyMDAzLTA5LTE3IDE2OjMyICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIHVzZSBkb3h5Z2VuIGRlcHJlY2F0ZWQgdGFnIGluc3RlYWQgb2Ygc2ltcGxlIGNvbW1lbnRzCiAgIAoyMDAzLTA5LTE3IDE2OjI5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB1c2UgbmV3IGlubGluZSBtYWNyb3M7IGNoYW5nZSBGSVJTVCB0byB1c2UgZmluZF9uZXh0IGluc3RlYWQgb2YgZmluZDsgYWRkCiAgIGZ1bmMgcG9pbnRlciBmb3IgaXRlbSBtZW1vcnkgZnJlZQogICAKMjAwMy0wOS0xNyAxNjoxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmg6CgogICBwcm90b3R5cGUgZm9yIG5ldyBjaGVja192Yl90eXBlCiAgIAoyMDAzLTA5LTE3IDEzOjA5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBhZGQgY29tbWVudHM7IGFkZCBhZ2VudF9yZXF1ZXN0X2luZm8gcHRyIHRvIHJlcXVlc3RfaW5mbzsgYWRkCiAgIG5ldHNubXBfcmVxdWVzdF9zZXRfZXJyb3I7IGRlcHJlY2F0ZSBuZXRzbm1wX3NldF9yZXF1ZXN0X2Vycm9yIGFuZAogICBuZXRzbm1wX3NldF9tb2RlX3JlcXVlc3RfZXJyb3I7IHVzZSBuZXcgaW5saW5lIG1hY3JvczsgcmVtb3ZlIHVudXNlZCBwZHUKICAgcG9pbnRlciBmcm9tIGFnZW50X3JlcXVlc3RfaW5mbwogICAKMjAwMy0wOS0xNyAxMzowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfbWZkLmM6CgogICBmb3Igc2V0LCBzYXZlIHJvdyBpbiBmaXJzdCByZXF1ZXN0OyBjaGcgbWZkIHBhcmFtIGxpc3Q7IGRvbid0IGNhbGwgbGF0ZXIKICAgbW9kZXMgdW5sZXNzIHJvdyBleGlzdHM7IGNhbGwgbG93ZXIgaGFuZGxlcnM7CiAgIAoyMDAzLTA5LTE3IDEyOjM0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCBzbm1wbGliL2RhdGFfbGlzdC5jCjoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgYWRkIGRhdGFfbGlzdF9hZGRfbm9kZSwgZGF0YV9saXN0X2FkZF9kYXRhCiAgIAoyMDAzLTA5LTE3IDEyOjA4ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvcwogICAKMjAwMy0wOS0xNyAxMjowMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmg6CgogICBuZXcgbmV0c25tcF9kYXRlYW5kdGltZV9zZXRfYnVmX2Zyb21fdmFycwogICAKMjAwMy0wOS0xNyAxMTo1OCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgbmV3IG5ldHNubXBfZGF0ZWFuZHRpbWVfc2V0X2J1Zl9mcm9tX3ZhcnMKICAgCjIwMDMtMDktMTcgMDk6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdXNlIG5ldyBpbmxpbmUgbWFjcm8KICAgCjIwMDMtMDktMTcgMDk6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NoZWNrX3ZhcmJpbmQuYzoKCiAgIHVzZSBuZXcgaW5saW5lIG1hY3JvczsgbmV3IGNoZWNrX3ZiX3R5cGUKICAgCjIwMDMtMDktMTcgMDk6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgYmluYXJ5IGFycmF5IHRlc3QgYmluYXJ5CiAgIAoyMDAzLTA5LTE3IDA5OjQ2ICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICB1cGRhdGUgZm9yIG5ldyBpbmxpbmUgbWFjcm9zIChJIHRoaW5rIG1pY3Jvc2xvdGggc3VwcG9ydHMgaW5saW5lKQogICAKMjAwMy0wOS0xNyAwOTo0MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLzogYWl4LmgsIGhwdXguaCwgaXJpeC5oCiwgb3NmNS5oOgoKICAgdHVybiBvZmYgbmV0LXNubXAgdXNlIG9mIGlubGluZSBmb3Igbm9uLWdjYyBjb21waWxlcnMgKGRvbid0IHVuZGVmIGlubGluZSkKICAgCjIwMDMtMDktMTcgMDk6MzggIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgZGVmaW5lIChhbmQgY29tbWVudCkgbWFjcm9zIGZvciBoYW5kbGluZyBpbmxpbmUgdXNlIGluIG5ldC1zbm1wCiAgIAoyMDAzLTA5LTE3IDA5OjM3ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgbXYgYnVpbGQgZGlyIGNoZWNrIHRvIHN1YnJvdXRpbmU7IGFkZCBtaXNzaW5nIE5TQ19TUkNfTElCRElSUzsgYWRkIG5ldwogICAtLWJ1aWxkLWluY2x1ZGVzCiAgIAoyMDAzLTA5LTE3IDA5OjMzICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYWRkIC1XaW5saW5lIHRvIGRldiBmbGFncwogICAKMjAwMy0wOS0xNyAwOTozMyAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgZ2l2ZSByZWFzb24gd2hlbiByZS1ydW5uaW5nIGNvbmZpZy5zdGF0dXMKICAgCjIwMDMtMDktMTYgMTc6MjUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIHBldGVyIGhpY2tzCiAgIAoyMDAzLTA5LTE2IDE3OjI0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIFBhdGNoIGZyb20gUGV0ZXIgSGlja3MgZm9yIGEgbmV3IGdldF90YWJsZSBmdW5jdGlvbgogICAKMjAwMy0wOS0xNiAxNzowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMgKFY1LTAtcGF0Y2hlcy4xKSwKICAgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIFBhdGNoIGZyb20gS2F0c3VoaXNhIEFCRSBmcm9tIC11c2VycyB0byBmaXggYSBtYXNraW5nIHByb2JsZW0KICAgCjIwMDMtMDktMTIgMTI6NDMgIGhhcmRha2VyCgogICAqIGRpc3QvOiBSRUxFQVNFLUlOU1RSVUNUSU9OUywgbmV0LXNubXAuc3BlYzoKCiAgIC0gbWlub3IgY2hhbmdlcyBmb3IgaW1wcm92ZWQgcGVybCBNYWtlZmlsZS5QTCBhcmd1bWVudCBzdXBwb3J0ICg+PSA1LjAuOSkKICAgCjIwMDMtMDktMTIgMTE6MDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluIChWNS0wLXBhdGNoZXMuMiksIE1ha2VmaWxlLmluOgoKICAgUGF0Y2ggZm9yIC0td2l0aC1wZXJsLW1vZHVsZXMgZXh0cmEgYXJndW1lbnQgc3VwcG9ydAogICAKMjAwMy0wOS0xMiAwNjoyOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWcuaW4KICAgCjIwMDMtMDktMTIgMDY6MjUgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggbWlzLW1hdGNoZWQgcGFyZW5zCiAgIAoyMDAzLTA5LTExIDE1OjUwICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHVzZSBuZXcgbmV0c25tcF9kYWVtb25pemUgbGlicmFyeSBjYWxsCiAgIAoyMDAzLTA5LTExIDE1OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mOgoKICAgbW92ZSBjb21tZW50cyBhYm91dCByb3V0aW5lcyBjbG9zZXIgdG8gcm91dGluZXMgdG8gcmVkdWNlIGNvbmZ1c2lvbgogICAKMjAwMy0wOS0xMSAxNTo0NyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIEBkZWJ1Z0AgdG9rZW4gdG8gdHVybiBkZWJ1ZyBvbi9vZmY7IHByaW50IGxvY2F0aW9ucyBmb3IgbW9yZSB3YXJuaW5ncy9lcnJvcnMKICAgCjIwMDMtMDktMTEgMTU6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGVmYXVsdC1tZmQtdG9wLm0yYzoKCiAgIGRlZmF1bHRzIGZvciB0d28gbmV3IGZsYWdzOiByZWFkbWVfdmVyYm9zZSBhbmQgZGF0YV90cmFuc2llbnQKICAgCjIwMDMtMDktMTEgMTU6NDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvc3ludGF4LURhdGVBbmRUaW1lLXJlYWRtZS5tMmk6CgogICByZWFkbWUgZm9yIERhdGVBbmRUaW1lCiAgIAoyMDAzLTA5LTExIDE1OjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL3N5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpOgoKICAgYWRkIGJ1ZiBsZW4gcGFyYW0gdG8gbmV0c25tcF9kYXRlYW5kdGltZV9zZXQKICAgCjIwMDMtMDktMTEgMTU6MzMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLXRvcC5tMmM6CgogICB1bi1jb21tZW50IGluY2x1ZGUgb2YgZW51bXMgaGVhZGVyOyBtb3ZlIGFsbCBkYXRhIGNvbnRleHQgcHJvY2Vzc2luZyBpbnRvCiAgIGluY2x1ZGU7IGRvbid0IGFzc3VtZSBwb2ludGVycyB0byBkYXRhL3VuZG8gY29udGV4dHM7IG9ubHkgZGVmaW5lIHByb3RvdHlwZQogICBmb3IgYWxsb2NhdGVfZGF0YSBpZiBuZWVkZWQ7IHJ1biBlbnVtIGhlYWRlciBjb25mIGZpbGU7IHJ1biBuZXcgcmVhZG1lIGNvbmYgZmlsZQogICAKMjAwMy0wOS0xMSAxNDoxMiAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCBidWlsZC1saWItZGVwcwogICAKMjAwMy0wOS0xMSAxNDowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtbWFrZWZpbGUubTJtOgoKICAgb3BlbiBmaWxlIGVhcmxpZXI7IHVzZSBuZXcgdmFyIGZvciBkZWZhdWx0IE5FVFNOTVBESVI7IGRvbid0IGFzc3VtZSBORVRTTk1QRElSCiAgIGlzIHNvdXJjZWRpcjsgdXNlIG5ldyBuZXQtc25tcC1jb25maWcgb3B0aW9ucyBmb3IgZ2V0IGxpYiBkaXJzL2RlcHMKICAgCjIwMDMtMDktMTEgMTM6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBpbmNsdWRlIG5ldyBnZW5lcmljLWRhdGEtYWxsb2NhdGUgaWYgZGF0YV9hbGxvY2F0ZSBzZXQgYW5kIGRhdGFfY29udGV4dCBpcwogICBnZW5lcmF0ZWQ7IG1vdmUgdGFibGVfKGFsbG9jYXRlfHJlbGVhc2UpX2N0eCBoZXJlCiAgIAoyMDAzLTA5LTExIDEzOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1hbGxvY2F0ZS5tMmk6CgogICBuZXcgZmlsZSBmb3IgYWxsb2NhdGUvcmVsZWFzZSBvZiBkYXRhIGNvbnRleHQKICAgCjIwMDMtMDktMTEgMTM6NTQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWRhdGEtZ2V0Lm0yYzoKCiAgIG1vdmUgZGF0YSBhbGxvY2F0ZS9yZWxlYXNlIHRvIGl0J3Mgb3duIGluY2x1ZGU7IG9ubHkgaW5jbHVkZSBpdCBpZiBkYXRhX2FsbG9jYXRlCiAgIHNldCBhbmQgZGF0YV9jb250ZXh0IGlzbid0IGdlbmVyYXRlZAogICAKMjAwMy0wOS0xMSAxMzo1MiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtcmVhZG1lLm0yaQosIG1mZC1yZWFkbWUubTJjOgoKICAgbmV3IHJlYWRtZSBnZW5lcmF0aW9uCiAgIAoyMDAzLTA5LTExIDEzOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaW50ZXJmYWNlLm0yaQo6CgogICB3cmFwIGdldF9maXJzdC9nZXRfbmV4dCBzbyB3ZSBjYW4gbW92ZSBpbmRleDJvaWQgaGVyZSBhbmQgbWFrZSBpdCBzdGF0aWMKICAgCjIwMDMtMDktMTEgMTM6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1ib2R5Lm0yaToKCiAgIG9ubHkgZ2VuZXJhdGUgdGFiZV9nZXRfZGF0YSBmb3IgdHJhbnNpZW50IGRhdGE7IG1vdmUgaW5kZXgyb2lkIGludG8gaW50ZXJmYWNlCiAgIGNvZGU7IGdlbiBkaWZmZXJlbnQgY29kZSBiYXNlZCBvbiBkYXRhIHRyYW5zaWVudCBzZXR0aW5nCiAgIAoyMDAzLTA5LTExIDEzOjQ0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL20yY19zZXR1cF90YWJsZS5tMmk6CgogICBkZWZhdWx0IHRvIGdlbmVyYXRlZCwgbm9uLWFsbG9jYXRlZCBkYXRhX2NvbnRleHQKICAgCjIwMDMtMDktMTEgMTM6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmk6CgogICBmaXggcmVuYW1lZCB2YXIKICAgCjIwMDMtMDktMTEgMTM6NDAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIGRvbid0IGluY2x1ZGUgZW51bSBzdHVmZiBpbiBvaWQgaGVhZGVyCiAgIAoyMDAzLTA5LTExIDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICByZW1vdmUgdW51c2VkIG93bmVyIHB0cgogICAKMjAwMy0wOS0xMSAxMzozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWdldC1kZWNsLWJvdC5tMmk6CgogICBmaXggbGVuX3B0ciB2YXJpYWJsZSBuYW1lCiAgIAoyMDAzLTA5LTExIDEzOjM5ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZ2V0LWNoYXIubTJpOgoKICAgZGVmaW5lIElTX1NFVF8qIG1hY3JvcyBoZXJlIGluc3RlYWQgb2YgaW4gaGVhZGVyCiAgIAoyMDAzLTA5LTExIDEzOjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaToKCiAgIG1lcmdlIGRhdGEgc3RydWN0IGJhY2sgaW50byBzaW5nbGUgdHlwZWRlZjsgZG9uJ3QgZ2VuZXJhdGUgc3RydWN0IGlmIHVzZXIKICAgc3BlY2lmaWVkIGV4aXN0aW5nIHN0cnVjdDsgYWRkICogaW4gdHlwZWRlZiBpZiBkYXRhX2FsbG9jYXRlIHNldAogICAKMjAwMy0wOS0xMSAxMzozNSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9nZW5lcmljLWN0eC1jb3B5Lm0yaToKCiAgIHJlbW92ZSBleGFtcGxlIHN0YXJ0L2VuZCAocGFyZW50IGRlY2lkZXMgdGhhdCkKICAgCjIwMDMtMDktMTEgMTM6MzUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZGV0YWlscy10YWJsZS5tMmk6CgogICBtb3JlIGRpc3RpbmN0aXZlIHNlcGFyYXRvciBiZWZvcmUgdGFibGVzCiAgIAoyMDAzLTA5LTExIDEzOjE4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2RldGFpbHMtZW51bXMubTJpOgoKICAgcmVtb3ZlIElTX1NFVF8qIG1hY3JvczsgdHdlYWsgY29uZGl0aW9ucyBmb3IgZ2VuZXJhdGluZyBlbnVtcyBhbmQgbWFwcGluZwogICBtYWNyb3MKICAgCjIwMDMtMDktMTEgMTM6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgbmV3IG5ldHNubXBfZGFlbW9uaXplCiAgIAoyMDAzLTA5LTExIDEzOjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3N5c3RlbS5oOgoKICAgcmVkdWNlIHNjb3BlIG9mIHN1bidzIGNvcHlyaWdodCBjbGFpbTsgYmFpbCBpZiBuZXQtc25tcC1jb25maWcgbm90IGluY2x1ZGVkOwogICBwcm90b3R5cGUgZm9yIG5ldyBuZXRzbm1wX2RhZW1vbml6ZQogICAKMjAwMy0wOS0xMSAxMjo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jOgoKICAgZml4IGNvbW1lbnQgdHlwbzsgZG9jdW1lbnQgcG9zc2libGUgcmFjZSBjb25kaXRpb24gYW5kIG1vdmUgb25lIGxpbmUgdG8KICAgbWFrZSB3aW5kb3cgc21hbGxlcgogICAKMjAwMy0wOS0xMSAxMjo1NSAgcnN0b3J5CgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIHVzZSB2YXJzIHRvIG1ha2UgaXQgZWFzaWVyIHRvIHVuZGVyc3RhbmQgd2hhdCBmbGFncyBhcmUgd2hhdCBpbiBnZW5lcmF0ZWQKICAgdmVyc2lvbjsgZ3JvdXAgc2ltaWxhciBvcHRpb25zIHRvZ2V0aGVyOyBhZGQgb3B0aW9ucyB0byB0byBnZXQgc291cmNlCiAgIGRpcmVjdG9yeSBhbmQgbGliIHBhdGggaW4gYnVpbGQgZGlyOyBhZGQgLS1iYXNlLXN1YmFnZW50LWxpYnMgKG5vIGxpYiBwYXRoKSwKICAgLS1saWJkaXIKICAgCjIwMDMtMDktMTEgMDg6MzMgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICBjb25maWd1cmUgdG8gbWF0Y2ggY29uZmlnLmluCiAgIAoyMDAzLTA5LTExIDA4OjI2ICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgdHJhcCBiYWQgb3B0aW9ucyAtLXdpdGgtbW9kdWxlcyBvciAtLXdpdGgtb3V0LW1vZHVsZXMKICAgCjIwMDMtMDktMDUgMjM6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRSAoVjUtMC1wYXRjaGVzLjcpLCBSRUFETUU6CgogICBhZGRlZCBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDktMDUgMjI6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9pdGVyYXRvci5jIChWNS0wLXBhdGNoZXMuWzIsMl0pLAogICB0YWJsZS5jLCB0YWJsZV9pdGVyYXRvci5jOgoKICAgUGF0Y2ggIzgwMDU2MSBmcm9tIEJvYiBSb3dsYW5kcyB0byBmaXggNjRiaXQgcHJvYmxlbXMgKC0+IHNpemVfdCkKICAgCjIwMDMtMDktMDUgMjI6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHByb3RvY29sLmMgKFY1LTAtcGF0Y2hlcy4xKSwgcHJvdG9jb2wuYwo6CgogICBQYXRjaCAjODAwNDg1IGZyb20gQm9iIFJvd2xhbmRzIGZvciA2NCBiaXQgYWdlbnR4IHByb2JsZW1zCiAgIAoyMDAzLTA5LTA1IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHVzbS5jIChWNS0wLXBhdGNoZXMuMSksIHNubXB1c20uYzoKCiAgIFBhdGNoICM3OTIwMDggZnJvbSBUaG9tYXM/IHRvIGFsbG93IHVzbVVzZXIgdG9rZW5zIHRvIG92ZXJyaWRlIHByZXZpb3VzIGVudHJpZXMKICAgCjIwMDMtMDktMDUgMjI6MDQgIGhhcmRha2VyCgogICAqIG1hbi86IG1pYjJjLjEuZGVmLCBzbm1wY21kLjEuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGRmLjEsCiAgIHNubXBuZXRzdGF0LjEsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0YWJsZS4xLmRlZiwgc25tcHRlc3QuMS5kZWYsCiAgIHNubXB0cmFuc2xhdGUuMS5kZWYgKFY1LTAtcGF0Y2hlcy5bMiwyLDEsMSwxLDEsMSwxLDFdKSwgbWliMmMuMS5kZWYKLCBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGF0YV9saXN0LjMsIG5ldHNubXBfZGVidWcuMywKICAgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMywgbmV0c25tcF9tdWx0aXBsZXhlci4zLAogICBuZXRzbm1wX25ldHNubXBfaXRlcmF0b3JfaW5mb19zLjMsCiAgIG5ldHNubXBfbmV0c25tcF9taWJfaGFuZGxlcl9tZXRob2RzLjMsIG5ldHNubXBfb2lkX3N0YXNoLjMKLCBuZXRzbm1wX29sZF9hcGkuMywgbmV0c25tcF9yZWFkX29ubHkuMywKICAgbmV0c25tcF9zY2FsYXIuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF9zZXRfZGF0YS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3V0aWwuMywgbmV0c25tcF93YXRjaGVyLjMKLCBzbm1wY21kLjEuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGRmLjEsCiAgIHNubXBuZXRzdGF0LjEsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0YWJsZS4xLmRlZiwKICAgc25tcHRlc3QuMS5kZWYsIHNubXB0cmFuc2xhdGUuMS5kZWY6CgogICBQYXRjaCAjNzg5NDg1IGZyb20gQm9iIFJvd2xhbmRzIGZvciBhIGxvbmcgbmVlZGVkIG92ZXJoYXVsIG9mIHRoZSBtYW51YWwgcGFnZXMuCiAgIAoyMDAzLTA5LTA1IDIxOjIxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY1LTAtcGF0Y2hlcy5bOSw5LDldKSwKICAgTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIG9wdGlvbmFsIGFyZ3VtZW50cyB0byB0aGUgLS13aXRoLXBlcmwtbW9kdWxlcyBmbGFnIGZvciBwYXNzaW5nIGRvd24KICAgCjIwMDMtMDktMDUgMTY6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKICAgKFY1LTAtcGF0Y2hlcy5bNCwyXSksIGFnZW50L3NubXBfYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICAtIGZpeCBhIGdldGJ1bGsgYnVnIHBvaW50ZWQgb3V0IGJ5IEp1cmlqIFNtYWtvdi4KICAgCjIwMDMtMDktMDUgMDY6MjUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLCBhZ2VudC9hZ2VudF90cmFwLmMKOgoKICAgUmUtd3JpdHRlbiBpbnRlcm5hbHMgb2YgYWdlbnQgdHJhcCBnZW5lcmF0aW9uLgogICBXb3JrIHdpdGggc2VwYXJhdGUgdjEgYW5kIHYyIHRlbXBsYXRlIFBEVXMsIGFuZCBzZXBhcmF0ZQogICAoc3RhbmRhbG9uZSkgcm91dGluZXMgdG8gY29udmVydCBiZXR3ZWVuIHRoZW0sIGZvbGxvd2luZyBSRkMgMjU3NiwKICAgSG9wZWZ1bGx5IGEgc29tZXdoYXQgY2xlYW5lciBhcHByb2FjaCB0aGFuIGJlZm9yZSwKICAgCjIwMDMtMDktMDIgMjM6MDkgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIC0gbmV3IHNwZWMgdG8gaW5jbHVkZSBidWlsZGluZyB0aGUgcGVybCBtb2R1bGVzLgogICAgIC0gZG9uZSBpbiBzb3J0IG9mIGEgdGVtcG9yYXJ5IGhhY2t5IHdheSB0aWxsIHByb3BlciBzdXBwb3J0IGlzIHB1dAogICAgICAgZGlyZWN0bHkgaW50byB0aGUgbWFzdGVyIE1ha2VmaWxlIHRvIHN1cHBvcnQgb3B0aW9uYWwgYXJndW1lbnRzCiAgICAgICBiZWluZyBwYXNzZWQgdG8gdGhlIE1ha2VmaWxlLlBMIHNjcmlwdC4KICAgCjIwMDMtMDktMDIgMjM6MDcgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgdG8gaW5jbHVkZSBSUE0gYnVpbGRpbmcgaW5zdHJ1Y3Rpb25zLgogICAKMjAwMy0wOS0wMiAyMzowNyAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIE1vZGlmaWNhdGlvbnMgdG8gc3VwcG9ydCBwZXJsIGFuZCBidWlsZGluZyBzb3VyY2UgYW5kIGJpbmFyeSBhdCBvbmNlLgogICAKMjAwMy0wOS0wMiAxNDo1MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBhZGQgb3B0aW9uIHRvIG5vdCBzb3VyY2Ugfi8ubnNiLW5pZ2h0bHk7IGRvbid0IHJlbW9iZSBidWlsZCBkaXIgb24gc3VjY2VzcyBoZXJlCiAgIAoyMDAzLTA5LTAyIDE0OjUyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWxsb3cgZW52IHZhcnMgdG8gb3ZlcnJpZGUgZGVmYXVsdHMgZm9yIG1vcmUgb3B0aW9uczsgcmVuYW1lIERBVEUgdG8KICAgTlNCX0RBVEU7IG9ubHkgc2NwIG1ha2UgZmlsZXMgZnJvbSB0aGlzIHJ1bjsgYWRkIHVuYW1lIHRvIG91dHB1dAogICAKMjAwMy0wOS0wMSAxNjo0NSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBwcnVuZSBkaXN0L3JwbSBmcm9tIGV0YWdzIHJlc3VsdHMKICAgCjIwMDMtMDgtMjggMDI6MDIgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBBIGNvbmZpZ3VyZSB0b2tlbiB0byBjb250cm9sIHRoZSBhZGRyZXNzZXMvcG9ydHMgdGhhdCB0cmFwZCBsaXN0ZW5zIG9uLgogICAKMjAwMy0wOC0yMiAwMjozOCAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBEb2N1bWVudCB0aGUgZGVmYXVsdCB2ZXJzaW9uIGNoYW5nZS4KICAgCjIwMDMtMDgtMjEgMTQ6MjggIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgbWFrZSB1cGxvYWQgdGFyYmFsbCBuYW1lIGJhc2VkIG9uIGRhdGUKICAgCjIwMDMtMDgtMjEgMDE6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIElmIGEgR0VUQlVMSyBoaXRzIHRoZSBlbmQgb2YgdGhlIE1JQiB0cmVlLCBtYWtlIHN1cmUgYW55IGVtcHR5IHZhcmJpbmRzCiAgIGFyZSByZXR1cm5lZCBhcyAnZW5kT2ZNaWJWaWV3JyBleGNlcHRpb25zLCByYXRoZXIgdGhhbiAoLjAuMCA9IE5VTEwpCiAgIAogICBJZiAqYWxsKiB0aGUgcmVwZWF0aW5nIHZhcmJpbmRzIGhpdCB0aGUgZW5kIG9mIHRoZSBNSUIgdHJlZSwgdHJ1bmNhdGUKICAgYWZ0ZXIgdGhlIGZpcnN0IGZ1bGwgZW1wdHkgcm93LgogICAKMjAwMy0wOC0yMSAwMTo1MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSWYgdGhlcmUncyBhIG1peHR1cmUgb2YgInN0aWxsIGFjdGl2ZSIgcmVwZXRpdGlvbnMsIGFuZCBvbmVzIHRoYXQgaGF2ZQogICBhbHJlYWR5IHJlYWNoZWQgdGhlIGVuZCBvZiB0aGUgT0lEIHRyZWUsIHRoZW4gc29tZSBvZiB0aGUgdmFyYmluZCBzdHJ1Y3R1cmVzCiAgIG1heSB3ZWxsIGJlIE5VTEwuCiAgICAgSXQncyBwcmVmZXJhYmxlIHRvIHNraXAgdGhlc2UsIGFuZCBjb250aW51ZSBwcm9jZXNzaW5nIGV2ZXJ5dGhpbmcgZWxzZSwKICAgcmF0aGVyIHRoYW4gY3Jhc2ggdGhlIHNlcnZlcjotKQogICAKMjAwMy0wOC0yMSAwMToyOSAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgRGVmYXVsdCB0byBnbG9iYWwgU01VWCBhY2Nlc3MgKGFzIGN1cnJlbnRseSksIGJ1dCBzdXBwbHkgYSBjb25maWd1cmUKICAgb3B0aW9uIHRvIHNldCBkZWZhdWx0IFNNVVggYWNjZXNzIHRvIGJlIGxvY2FsaG9zdCBvbmx5LgogICBIYXBweSBub3c/CiAgIAoyMDAzLTA4LTIxIDAxOjI0ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oOgoKICAgRW5zdXJlIHRoYXQgdGhlIFNOTVBfVFJBTlNQT1JUX0NBTExCQUNLX0RPTUFJTiB0b2tlbiByZW1haW5zIGF2YWlsYWJsZQogICB3aGVuIGNvbmZpZ3VyZSBzeXN0ZW0gZmlsZXMgYXJlIHJlY3JlYXRlZC4KICAgCjIwMDMtMDgtMjAgMDI6MzkgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEV4cGFuZCB0aGUgZGVzY3JpcHRpb24gb2YgdGhlIHBvc3QtQlVMSyByZS1vcmdhbmlzYXRpb24sIHNvIGl0J3Mgc29tZXdoYXQKICAgY2xlYXJlciB3aGF0J3MgaGFwcGVuaW5nLiAgSXQgdG9vayBtZSBiZXN0IHBhcnQgb2YgYW4gaG91ciAocGx1cyBpbnNlcnRpbmcKICAgYXNzb3J0ZWQgZGVidWdnaW5nIHN0YXRlbWVudHMpIHRvIG1ha2Ugc2Vuc2Ugb2YgdGhpcyEKICAgCjIwMDMtMDgtMjAgMDI6MzYgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIFJlZ2lzdGVyIE1JQnMgdXNpbmcgdGhlIGxvd2VzdC1sZXZlbCBhdmFpbGFibGUgbmFtZSwgcmF0aGVyIHRoYW4gdGhlCiAgIGZpcnN0IGhhbmRsZXIgaW4gdGhlIGNoYWluLiAgIFRoaXMgbm8gbG9uZ2VyIHJlc3VsdHMgaW4gdGhlIHdob2xlIE1JQgogICByZWdpc3RyeSBiZWluZyBpZGVudGlmaWVkIGFzICJidWxrX3RvX2dldCIhCiAgIAoyMDAzLTA4LTIwIDAyOjI2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGV4dGVuc2libGUuYywgZXh0ZW5zaWJsZS5oOgoKICAgVW5yZWdpc3RlciAocmVsb2NhdGFibGUpIGV4dGVuc2lvbnMgd2hlbiByZS1yZWFkaW5nIHRoZSBjb25maWd1cmF0aW9uIGZpbGUuCiAgIFRoaXMgYWxsb3dzICJleGVjIiBsaW5lcyB0byBiZSByZS1sb2FkZWQgd2l0aG91dCBjYXVzaW5nIHRoZSBhZ2VudCB0byBjcmFzaCEKICAgCjIwMDMtMDgtMTkgMDg6MTIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgQmV0dGVyIGZpeCBmb3IgQnVnICM2MzAzNDguICBUcmVhdCBhbGwgREJQUlQgY2FsbHMgY29uc2lzdGVudGx5LCBhbmQKICAgbWFrZSBzdXJlIHRoZSBQZXJsSU9fcHJpbnRmIGNhbGwgaXMgcGFzc2VkIHRoZSBjb3JyZWN0IHBhcmFtZXRlciBsaXN0LgogICAKMjAwMy0wOC0xOSAwNzozMSAgZHRzMTIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBXaGF0ZXZlciB0aGUgY2F1c2Ugb2YgYnVnICM2MzAzNDggd2FzLCB0aGlzIGlzbid0IHRoZSBhbnN3ZXIuCiAgIFdpdGggJ1BlcmxJT19mcHJpbnRmJywgaXQgZG9lc24ndCBjb21waWxlISAgTW9yZSBpbnZlc3RpZ2F0aW9uIG5lZWRlZC4KICAgCjIwMDMtMDgtMTkgMDE6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgQWxsb3cgdGhlIChjb21waWxlLXRpbWUpIG9wdGlvbiBvZiByZXN0b3JpbmcgZ2xvYmFsIGFjY2VzcyB0byBTTVVYIHNlcnZpY2VzLgogICBJZiB0aGUgY29uc2Vuc3VzIGlzIHRoYXQgdGhpcyBzaG91bGQgYmUgdGhlIGRlZmF1bHQgKGFzIGN1cnJlbnRseSksIHRoZW4KICAgSSd2ZSBubyBzdHJvbmcgZmVlbGluZ3MgZWl0aGVyIHdheS4gIEZlZWwgZnJlZSB0byBhZGp1c3QgYWNjb3JkaW5nbHkuCiAgIAoyMDAzLTA4LTE5IDAxOjUzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYzoKCiAgIEF1dG9tYXRpY2FsbHkgcmVsZWFzZSBleHBpcmVkIGNhY2hlIHJlc291cmNlcy4KICAgCjIwMDMtMDgtMTkgMDE6NTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jOgoKICAgSW52YWxpZGF0ZSB0aGUgY2FjaGUgb24gKHN1Y2Nlc3NmdWwpIFNFVCByZXF1ZXN0cy4KICAgVGhpcyBpcyBjdXJyZW50bHkgZG9uZSByZWdhcmRsZXNzIC0gaXQgd291bGQgYmUgc2Vuc2libGUgdG8gbWFrZSBpdAogICBjb25maWd1cmFibGUgb24gYSBwZXItY2FjaGUgYmFzaXMuCiAgIAoyMDAzLTA4LTE4IDE1OjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfaXRlcmF0b3IuYzoKCiAgIGNvbW1lbnQgb3V0IGNvZGUgdGhhdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIGNoZWNrZWQgaW4geWV0CiAgIAoyMDAzLTA4LTE4IDE1OjEzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHVwZGF0ZSBmb3IgY29ycmVjdCBtZXRob2QgdG8gY2xlYW51cCBjb250YWluZXIgZmFjdG9yeSBsaXN0OyByZW1vdmUKICAgcmVsZWFzZV9pZl90b3AgYW5kIF9iYV8qIGZ1bmN0aW9ucwogICAKMjAwMy0wOC0xOCAxNToxMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHVwZGF0ZSBwcm90b3R5cGUgZm9yIGNvcnJlY3QgZnVuY3Rpb24gdG8gY2xlYW51cCBjb250YWluZXIgZmFjdG9yeSBsaXN0OyBmaXgKICAgY29tbWVudCB0eXBvczsgcmVtb3ZlIHJlbGVhc2VfaWZfdG9wIHByb3RvdHlwZSBhbmQgY2FsbCBpbiBDT05UQUlORVJfRlJFRQogICAKMjAwMy0wOC0xOCAxNTowOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgY2FsbCBjb3JyZWN0IGZ1bmN0aW9uIHRvIGNsZWFudXAgY29udGFpbmVyIGZhY3RvcnkgbGlzdAogICAKMjAwMy0wOC0xOCAxNTowOCAgcnN0b3J5CgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGRvY3VtZW50IHNlZ2ZhdWx0IGxvY2F0aW9uIGZvciBmdXR1cmUgZml4aW5nCiAgIAoyMDAzLTA4LTE4IDA5OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmM6CgogICBCcmluZyBpbnRvIGxpbmUgd2l0aCBuZXcgY2FjaGUgcmVsZWFzZSBBUEkgZGVmaW5pdGlvbi4KICAgCjIwMDMtMDgtMTggMDg6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX21mZC5jOgoKICAgc291cmNlIGZvciB0YWJsZV9tZmQKICAgCjIwMDMtMDgtMTggMDg6MzAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc3Rhc2hfY2FjaGUuaDoKCiAgIG9wcHMuICBtaXNzZWQgdGhlIGhlYWRlcgogICAKMjAwMy0wOC0xOCAwODowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfbWZkLmg6CgogICBkb24ndCByZWZlcmVuY2Ugbm9uLWV4aXN0ZW50IGZpbGUKICAgCjIwMDMtMDgtMTggMDg6MDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX21mZC5oOgoKICAgaGVhZGVyIGZvciB0YWJsZV9tZmQKICAgCjIwMDMtMDgtMTggMDY6MzUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2l0ZXJhdG9yLmg6CgogICBoZWFkZXIgZm9yIGNvbnRhaW5lciBpdGVyYXRvcgogICAKMjAwMy0wOC0xOCAwNTo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGlwLmMsIHRjcC5jLAogICB0Y3BUYWJsZS5jLCB1ZHAuYywgdWRwVGFibGUuYzoKCiAgIE5ldyB2NS1zdHlsZSBoYW5kbGVycyBzaG91bGQgb25seSBldmVyIHJlY2VpdmUgTU9ERV9HRVQgcmVxdWVzdHMuCiAgIExvZyBhIHdhcm5pbmcgZm9yIG90aGVyIHVuZXhwZWN0ZWQgKG9yIHVucmVjb2duaXNlZCkgcmVxdWVzdCBtb2Rlcy4KICAgCjIwMDMtMDgtMTggMDM6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpcC5jLCB0Y3AuYywKICAgdGNwVGFibGUuYywgdWRwLmMsIHVkcFRhYmxlLmM6CgogICBVc2UgdGhlIG5ldyAoaW50ZXJuYWwpIGNhY2hlIHZhbGlkaXR5IGNoZWNraW5nLgogICBRbjogSG93IGNhbiB3ZSBhY2Nlc3MgdGhlIHJlcXVlc3QtaW5mb3JtYXRpb24gc3RydWN0dXJlIChvciBzaW1pbGFyKQogICAgICAgZnJvbSB3aXRoaW4gaXRlcmF0b3IgZGF0YV9wb2ludCByb3V0aW5lcz8KICAgCjIwMDMtMDgtMTggMDM6MTcgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaDoKCiAgIFByb3ZpZGUgYW4gQVBJIGZvciBkZXRlcm1pbmluZyB3aGV0aGVyIGEgZ2l2ZW4gY2FjaGUgaXMgY3VycmVudGx5IHZhbGlkLgogICBSZWxlYXNlIG9sZCBjYWNoZSByZXNvdXJjZXMgYmVmb3JlIGxvYWRpbmcgdGhlIG5ldyB2YWx1ZXMuCiAgIE5COiBUaGlzIGludm9sdmVzIGEgY2hhbmdlIGluIHRoZSAnZnJlZScgaG9vayBBUEkuCiAgIAoyMDAzLTA4LTE4IDAzOjE0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICBUaGUgbWFjcm8gZnVuY3Rpb24gZGVmaW5pdGlvbnMgcmVseSBvbiBsb2dnaW5nIHJvdXRpbmVzIGZyb20gJ3NubXBfbG9nZ2luZy5jJwogICBzbyB0aGUgYXBwcm9wcmlhdGUgZGVjbGFyYXRpb25zIGFuZCBkZWZpbmVkIGNvbnN0YW50cyBuZWVkIHRvIGJlIGF2YWlsYWJsZS4KICAgCjIwMDMtMDgtMTggMDM6MTIgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgU3VwcG9ydCBjb25maWd1cmF0aW9uIG9mIHRoZSBzb2NrZXQgYWRkcmVzcyB0byBsaXN0ZW4gZm9yIFNNVVggY29ubmVjdGlvbnMgb24uCiAgIAogICBOb3RlOiBDaGFuZ2Ugb2YgYmVoYXZpb3VyIC0gdGhpcyBwYXRjaCBkZWZhdWx0cyB0byBsaXN0ZW5pbmcgZm9yIGNvbm5lY3Rpb25zCiAgIGZyb20gdGhlIGxvY2FsaG9zdCBvbmx5LgogICAKMjAwMy0wOC0xOCAwMjo1NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFByb3Zpc2lvbmFsIHN1cHBvcnQgZm9yIHNlbmRpbmcgY2xpZW50IHJlcXVlc3RzIGZyb20gYSBzcGVjaWZpZWQgaW50ZXJmYWNlCiAgIG9yIHNvY2tldCBhZGRyZXNzLgogICBRbjogU2hvdWxkIHRoaXMgYmUgYXBwbGllZCB0byBUQ1AgY29ubmVjdGlvbnMgdG9vPwogICAgICAgV2hhdCBhYm91dCBvdGhlciB0cmFuc3BvcnRzPwogICAKMjAwMy0wOC0xOCAwMjo1MyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgSW1wbGVtZW50ICdzbnByaW50Zl9kZXNjcmlwdGlvbicgcm91dGluZXMsCiAgIHRvIG91dHB1dCBNSUIgZGVmaW5pdGlvbnMgdG8gYSBzdHJpbmcgcmF0aGVyIHRoYW4gYSBmaWxlLgogICAKMjAwMy0wOC0xNyAxNjo0OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9zeW50YXgtUm93U3RhdHVzLWdldC5tMmk6CgogICBmaXggaGFyZGNvZGVkIHZhciBuYW1lcy9jb25zdGFudHMgKGVlayEpCiAgIAoyMDAzLTA4LTE3IDE2OjQ3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcmVuYW1lIHNvbWUgdHlwZWRlZnM7IGFkZCAqX3JlZl8qIHR5cGVkZWZzOyBtYWtlIG5ldHNubXBfaW5kZXggZmlyc3QgaXRlbQogICBpbiBjdHg7IG1ha2UgaW5kZXggbG9jYWwgaW5zdGVhZCBvZiBwdHI7IHJ1biBuZXcgbWZkLWFjY2Vzcy0qLWhlYWRlcjsgYWRkCiAgIHNvbWUgcHJvdG90eXBlcywgZGVidWcgbXNnczsgdXBkYXRlIGluaXQgdG8gc2V0IHVwIG1mZF9yZWdpc3RyYXRpb24sIGNvbnRhaW5lciwKICAgKl9nZXRfdmFsdWVzOyBmaXggcmVuYW1lcyBtZmQgcmVnaXN0cmF0aW9uIHJvdXRpbmU7IHJ1biBuZXcgbWFrZWZpbGUgYW5kCiAgIHN1YmFnZW50IGNvbmYgZmlsZXMKICAgCjIwMDMtMDgtMTcgMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvbWZkLWludGVyZmFjZS5tMmM6CgogICBpbmNsdWRlIG1mZCBoZWFkZXI7IG5ldyAqX2dldF92YWx1ZXM7IHR3ZWFrICpfZ2V0X2NvbHVtbjogaW5jbHVkZSBhY2Nlc3NpYmxlCiAgIGluZGV4ZXMsIHB1c2ggdmFyIG1lbW9yeSBjaGVjayB1cCBhIGxldmVsICpfZ2V0X3ZhbHVlcyAoc2hvdWxkIGdvIHVwIG9uZQogICBtb3JlLCBpbnRvIGhlbHBlciBpbnN0ZWFkIG9mIGdlbmVyYXRlZCBjb2RlKTsgcnVuIG5ldyBtZmRfYWNjZXNzXypfaW50ZXJmYWNlCiAgIAoyMDAzLTA4LTE3IDE2OjQwICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLXNldC5tMmM6CgogICBtb3ZlIHByb2Nlc3MgcHJpbnQgYWZ0ZXIgbm9hY2Nlc3MgdGVzdAogICAKMjAwMy0wOC0xNyAxNjozOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tZmQtZGF0YS1nZXQubTJjOgoKICAgbmV3ICpfKGFsbG9jYXRlfHJlbGVhc2UpXyhkYXRhfGN0eCk7IG1vdmUgcHJvY2VzcyBwcmludCBhZnRlciBub2FjY2VzcyB0ZXN0CiAgIAoyMDAzLTA4LTE3IDE2OjM4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC1kYXRhLWFjY2Vzcy5tMmM6CgogICByZW5hbWUgYWNjZXNzLSogdG8gbWZkLWFjY2Vzcy0qCiAgIAoyMDAzLTA4LTE3IDE2OjM3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtb2lkcy5tMmM6CgogICBhZGQgaGVhZGVyOyBpbmNsdWRlIGVudW1zIHRvbwogICAKMjAwMy0wOC0xNyAxNjozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtYm9keS5tMmksCiAgIG1mZC1hY2Nlc3MtdW5zb3J0ZWQtZXh0ZXJuYWwtaGVhZGVyLm0yaSwKICAgbWZkLWFjY2Vzcy11bnNvcnRlZC1leHRlcm5hbC1pbnRlcmZhY2UubTJpLCBtZmQtbWFrZWZpbGUubTJtCiwgc3ViYWdlbnQubTJjOgoKICAgbmV3IG1mZCBkYXRhIGFjY2VzcyBjb25mIGZpbGVzICh3cmFwIGFyb3VuZCBuZXcgY29udGFpbmVyIGl0ZXJhdG9yKTsgbmV3IG1mZAogICBjb25mIGZpbGVzIHRvIGdlbmVyYXRlIG1ha2VmaWxlL3N1YmFnZW50IG1haW4KICAgCjIwMDMtMDgtMTcgMTY6MzEgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHVzZSBjb25maWcuaCBkZWZpbmUgdG8gdGVtcG9yYXJpbHkgZGlzYWJsZSB3aW4gY2FsbGJhY2sgdHJhbnNwb3J0LCBpbnN0ZWFkCiAgIG9mIHdpbiBzcGVjaWZpYyBpZmRlZnMgaW4gY29kZQogICAKMjAwMy0wOC0xNyAxNjoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgbmV3IGRlYnVnbXNnX3N1Ym9pZAogICAKMjAwMy0wOC0xNyAxNjoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGNoZWNrIGZvciBudWxsIHB0cgogICAKMjAwMy0wOC0xNyAxNjoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgcmVtb3ZlIG5vYWxsb2MgZnVuY3Rpb25zOyByZW5hbWUgdHlwZWRlZgogICAKMjAwMy0wOC0xNyAxNjoxOCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgcmVtb3ZlIG5vYWxsb2MgZnVuY3Rpb25zCiAgIAoyMDAzLTA4LTE3IDE2OjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyIGFuZCBub2FsbG9jIGZ1bmN0aW9ucwogICAKMjAwMy0wOC0xNyAxNjoxNyAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBhZGQgb3B0aW9uYWwgdXBsb2FkIG9mIHNyYyB0YXJiYWxsIGFmdGVyIHVwZGF0ZQogICAKMjAwMy0wOC0xNyAxNToyMiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXcgbmV0c25tcF9zcHJpbnRfcmVhbGxvY19vYmppZCAoZG9lc24ndCB1c2UgbWlicyk7IHJld29yayBpZmRlZnMgZm9yCiAgIG5ldHNubXBfc3ByaW50X3JlYWxsb2Nfb2JqaWRfdHJlZSAmIERJU0FCTEVfTUlCX0xPQURJTkcKICAgCjIwMDMtMDgtMTcgMTU6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGNvbnRhaW5lcl9pdGVyYXRvci5jOgoKICAgYWRkIG5ldyBjb250YWluZXIgaXRlcmF0b3IKICAgCjIwMDMtMDgtMTcgMTU6MTkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGRvbid0IHJ1biBpbmRlbnQgb24gZmlsZXMgdW5sZXNzIHRoZXkgZW5kIHcvIC5jIG9yIC5oOyBwcmludCBtb3JlIGluZm8gd2hlbgogICBkaWUgb2YgdW5leHBlY3RlZCBlbHNlCiAgIAoyMDAzLTA4LTE3IDE1OjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgIG5ldyBERUJVR01TR1NVQk9JRCAmIHN1cHBvcnRpbmcgY2FzdAogICAKMjAwMy0wOC0xNyAxNToxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmg6CgogICBmaXggY29tbWVudHMgd2hpY2ggZXhjZWVkIDgwIGNoYXJzCiAgIAoyMDAzLTA4LTE3IDE1OjE2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oOgoKICAgbmV3IG5ldHNubXBfc3ByaW50X3JlYWxsb2Nfb2JqaWQgcHJvdG90eXBlCiAgIAoyMDAzLTA4LTE3IDE1OjE1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgbmV3IG5ldHNubXBfdGFibGVfZmluZF9uZXh0X3JvdyBwcm90b3R5cGUKICAgCjIwMDMtMDgtMTcgMTU6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oOgoKICAgbmV3IG5ldHNubXBfZW5hYmxlX3N1YmFnZW50IHByb3RvdHlwZQogICAKMjAwMy0wOC0xNyAxNToxNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgbmV3IG5ldHNubXBfY2hlY2tfcmVxdWVzdHNfZXJyb3IgcHJvdG90eXBlCiAgIAoyMDAzLTA4LTE3IDE1OjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9iYWJ5X3N0ZXBzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYmFieV9zdGVwcy5oOgoKICAgbmV3ICh0ZW1wb3Jhcnk/KSBiYWJ5IHN0ZXBzIGhlbHBlcgogICAKMjAwMy0wOC0xNyAxNToxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaDoKCiAgIGFkZCBiYWJ5X3N0ZXBzLmgsIHJvd19tZXJnZS5oLCB0YWJsZV9tZmQuaAogICAKMjAwMy0wOC0xNyAxNToxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgZGVmaW5lIG5ldyBjYW4gYmFieSBzdGVwIG1vZGUgZmxhZwogICAKMjAwMy0wOC0xNyAxNToxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIG5ldyBuZXRzbm1wX3JlZl92b2lkLCBuZXRzbm1wX3JlZl9zaXplX3QgdHlwZWRlZnMKICAgCjIwMDMtMDgtMTcgMTU6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgYmFpbCBpZiBuZXQtc25tcC1jb25maWcgaGFzbid0IGJlZW4gaW5jbHVkZWQ7IGFkZCBjb250YWluZXIvYXNzZXJ0IGhlYWRlcnMKICAgCjIwMDMtMDgtMTcgMTU6MDggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBiYWlsIGlmIG5ldC1zbm1wLWNvbmZpZyBoYXNuJ3QgYmVlbiBpbmNsdWRlZDsgZG9uJ3QgaW5sY3VkZSB1dGlsaXRpZXMgdHdpY2UKICAgCjIwMDMtMDgtMTcgMTU6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG5ldyBuZXRzbm1wX2VuYWJsZV9zdWJhZ2VudCwgb25seSBkZWZpbmVkIGlmIFVTSU5HX0FHRU5UWF9TVUJBR0VOVF9NT0RVTEUsIHNvCiAgIGEgbGluayBlcnJvciB3aWxsIG9jY3VyIGlmIGFnZW50eCBzdXBwb3J0IG5vdCBjb21waWxlZCBpbgogICAKMjAwMy0wOC0xNyAxNTowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSBmaW5kX25leHRfcm93LCB1c2UgbmV3IG5ldHNubXBfdGFibGVfaW5kZXhfZmluZF9uZXh0X3JvdzsgZml4IHR5cG8KICAgCjIwMDMtMDgtMTcgMTU6MDMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBub3RlcyBmb3IgZnV0dXJlIGVuaGFuY2VtZW50czsgZml4IHBvdGVudGlhbCBtZW1vcnkgbGVhazsgbmV3CiAgIG5ldHNubXBfdGFibGVfaW5kZXhfZmluZF9uZXh0X3JvdwogICAKMjAwMy0wOC0xNyAxNTowMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBza2lwIGdyb3VwaW5nIGlmIG9ubHkgMSB2YXJiaW5kOyBub3RlIGZvciBmdXR1cmUgZW5oYW5jZW1lbnRzCiAgIAoyMDAzLTA4LTE3IDE1OjAyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBuZXcgYmFieV9zdGVwcywgdGFibGVfbWZkIGhlbHBlcnM7IGJ1aWxkIG9ianMvbG9ianMgZnJvbSBzcmNzCiAgIAoyMDAzLTA4LTE3IDE0OjU5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbmV3IG5ldHNtcF9jaGVja19yZXF1ZXN0c19lcnJvcnMKICAgCjIwMDMtMDgtMTcgMTQ6NTggIHJzdG9yeQoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBjb2RlIHJldXNlIChjYWxsX2hhbmRsZXJzIHVzZXMgY2FsbF9oYW5kbGVyKTsgYWRkIG5ldyBtb2RlIHRleHQgZm9yCiAgIGhhbmRsZXJfY2FuX21vZGUgc2xpc3QKICAgCjIwMDMtMDgtMTYgMDc6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gbW92ZSBzb21lIHBvaW50ZXIgc2F2aW5nIGZvciBTVEFTSCByZWxhdGVkIHN0dWZmIG91dHNpZGUgdGhlIG1vcmUKICAgICBmcmVxdWVudGx5IGNhbGxlZCBsb29wLgogICAKMjAwMy0wOC0xNSAwNDoyNCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE1vdmUgcHJlZml4L3N1ZmZpeCBvcHRpb25zIHVuZGVyIC1JCiAgIAoyMDAzLTA4LTE1IDAzOjMzICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9uJ3QgYWRkIGEgdHJhaWxpbmcgZG90IGlmIHdlJ3JlIHNldHRpbmcgYSBwcmVmaXgsIGJ1dCBub3QgYSBzdWZmaXguCiAgIAoyMDAzLTA4LTE0IDAxOjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogYWxsX2hlbHBlcnMuYywgYnVsa190b19uZXh0LmMsCiAgIGNhY2hlX2hhbmRsZXIuYywgZGVidWdfaGFuZGxlci5jLCBpbnN0YW5jZS5jLAogICBtb2RlX2VuZF9jYWxsLmMsIG11bHRpcGxleGVyLmMsIHJlYWRfb25seS5jLAogICByb3dfbWVyZ2UuYywgc2NhbGFyLmMsIHNjYWxhcl9ncm91cC5jLAogICBzZXJpYWxpemUuYywgd2F0Y2hlci5jOgoKICAgUmVvcmdhbmlzZSB0aGUgYWdlbnQgaGVscGVyICdkb3h5Z2VuJyBzdHJ1Y3R1cmUsIHRvIG1ha2UgaXQgbGVzcyAiZmxhdCIuCiAgIEdyb3VwICJsZWFmLW9iamVjdCIgaGVscGVycyB0b2dldGhlciwgYW5kIGludGVybmFsICJ1dGlsaXR5IiBoZWxwZXJzIHNpbWlsYXJseS4KICAgCjIwMDMtMDgtMTQgMDE6MDkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFRyeSB0byBjYXRjaCAoc29tZSkgUERVIGR1YWwtZnJlZSdzLgogICAKMjAwMy0wOC0xNCAwMDoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgMSBvZiAyIG1lbW9yeSBsZWFrcyBmb3VuZCAob2ssIEkgc2FpZCBJIHdhc24ndCBnb2luZyB0byBmaW5kIGl0IGJ1dC4uLikKICAgCjIwMDMtMDgtMTMgMjM6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBNYWtlZmlsZS5pbiwgYWxsX2hlbHBlcnMuYywKICAgc3Rhc2hfY2FjaGUuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIC0gYWRkZWQgYSBuZXcgaGVscGVyIHRvIGF1dG8tY2FjaGUgZGF0YS4gIEN1cnJlbnRseSB0aGUgb25seQogICAgIHN1Yi1tb2R1bGUgc3VwcG9ydGVkIGJ5IHRoaXMgaXMgdGhlIHRhYmxlX2l0ZXJhdG9yLCBidXQgc2lnbmlmaWNhbnQKICAgICBzcGVlZCBpbXByb3ZlbWVudHMgY2FuIGJlIHNlZW4gd2hlbiBjYWNoaW5nIG9mIGl0ZXJhdG9yIGRhdGEgaXMKICAgICB0dXJuZWQgb24uCiAgICAgLSB0byB0ZXN0IGFkZCB0byBzbm1wZC5jb25mOgogICAgICAgICBpbmplY3RIYW5kbGVyIHN0YXNoX2NhY2hlIE1PRFVMRSB0YWJsZV9pdGVyYXRvcgogICAgICAgKGEgZ29vZCB0ZXN0IG1vZHVsZSBpcyB0aGUgbnNNb2R1bGVUYWJsZSB3aGljaCBoYXMgYSBsb3Qgb2Ygcm93cykKICAgICAtIHdhcm5pbmc6IG5vdCBoZWF2aWx5IHRlc3RlZC4gIFNlZW1zIG9rIGZvciBhdCBsZWFzdCB0aGUgc2ltcGxlIGNhc2VzLgogICAKMjAwMy0wOC0xMyAyMzozNiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFnZW50L3NubXBfYWdlbnQuaCwgbGlicmFyeS9zbm1wLmgKOgoKICAgLSBkZWZpbmUgYSBuZXcgaW50ZXJuYWwtdXNlIG1vZGU6ICBNT0RFX0dFVF9DQUNIRQogICAKMjAwMy0wOC0xMyAyMzozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIHVzZSBjYWxsb2MgdG8gaW5pdGlhbGl6ZSBhbmQgemVybyBtZW1vcnkgKGZpeGVzIGFuIGVycm9yIHNwb3R0ZWQgYnkgdmFsZ3JpbmQpLgogICAKMjAwMy0wOC0xMyAyMzozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIHNwb3R0ZWQgb25lIG1lbW9yeSBsZWFrLgogICAKMjAwMy0wOC0xMyAyMzoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMS5kZWY6CgogICAtIGFkZGVkIGEgLUN0IG9wdGlvbiB0byBzbm1wd2FsayB0byBkaXNwbGF5IHdhbGsgY2xvY2sgdGltZXIgcmVzdWx0cwogICAKMjAwMy0wOC0xMyAyMjo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIC0gYWRkZWQgYSBwYXJlbnQgbm9kZSBmb3IgdXB3YXJkIHRyYXZlcnNhbC4KICAgLSBhIGdldG5leHQgaW1wbGVtZW50YXRpb24gdGhhdCBhY3R1YWxseSB3b3JrcyAoZmFpcmx5IGhlYXZpbHkgdGVzdGVkKS4KICAgCjIwMDMtMDgtMTMgMjI6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvY2FjaGVfaGFuZGxlci5oOgoKICAgLSBtb2RpZmllZCB0aGUgZnJlZSBmdW5jdGlvbiBwb2ludGVyIHRvIHRha2UgYSBjYWNoZSBhcmd1bWVudCBmb3IKICAgICBnZW5lcmFsaXppbmcgaXQgYSBiaXQgbW9yZS4KICAgCjIwMDMtMDgtMTMgMjI6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICAtIEltcGxlbWVudCBuZXRzbm1wX2luamVjdF9oYW5kbGVyX2JlZm9yZSgpIHdoaWNoIHRha2VzIGFuIGFyZ3VtZW50IHRvCiAgICAgZGV0ZXJtaW5lIHdoZXJlIGluIHRoZSBoYW5kbGVyIGNoYWluIGl0IHNob3VsZCBpbmplY3Qgc29tZXRoaW5nLgogICAtIE1vZGlmeSB0aGUgaW5qZWN0SGFuZGxlciAuY29uZiB0b2tlbiB0byB0YWtlbiBhbiBvcHRpb25hbCBmaW5hbAogICAgIEJFRk9SRSBhcmd1bWVudC4KICAgCjIwMDMtMDgtMTAgMTE6MzkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIG1pc2MgaGlnaCBsZXZlbCBjb3B5cmlnaHQgbm90ZXMgYWRkZWQgKElFLCBzZWUgdGhlIENPUFlJTkcgZmlsZSwgLi4uKS4KICAgCjIwMDMtMDgtMTAgMTE6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jOgoKICAgbWlzYyBjb3B5cmlnaHQgbm90ZXMgYWRkZWQuCiAgIAoyMDAzLTA4LTA1IDAxOjQyICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBDYXRjaCBtaXNzaW5nIHBhcmFtZXRlcnMgaW4gY29tcGlsZS1zdWJhZ2VudCBoYW5kbGluZyB0b28KICAgCjIwMDMtMDgtMDUgMDE6MzggIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIENhdGNoIG1pc3NpbmcgcGFyYW1ldGVycyBpbiBjcmVhdGUtc25tcHYzLXVzZXIgaGFuZGxpbmcKICAgCjIwMDMtMDgtMDUgMDE6MzIgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIFVzZSAkMSBwYXJhbWV0ZXIgZGlyZWN0bHkgaW4gY3JlYXRlLXNubXB2My11c2VyIHByb2Nlc3NpbmcuCiAgIFNvbWV3aGF0IGxlc3MgY29uZnVzaW5nIHRoYW4gd2l0aCB0aGUgYWRkaXRpb25hbCAkYXJnIHBhcmFtZXRlciwKICAgYW5kIGxlc3MgY2hhbmNlIG9mIHNoaWZ0aW5nIGEgbm9uLWV4aXN0ZW50IHZhbHVlLgogICAoUmVsZXZhbnQgdG8gYnVnICM3NTU1NzEpCiAgIAoyMDAzLTA4LTAyIDA2OjQ1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL21mZC10b3AubTJjOgoKICAgcmVvZy91cGRhdGUgY29kZSBnZW5lcmF0aW9uOyBydW4gbWZkLWRhdGEtYWNjZXNzOyBzZXQgaGFuZGxlciBSV1JJVEUgaWYgdGFibGUKICAgd3JpdGFibGU7IGNoZyB0YWJsZSByZWdpc3RyYXRpb24gdHlwZTsgaW5jbHVkZSBuZXcgdGFibGUgc2V0dXAKICAgCjIwMDMtMDgtMDIgMDY6MzkgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvcGFyZW50LXNldC5tMmk6CgogICBzaW1wbGlmeSBwYXJhbSBsaXN0czsgdXBkYXRlIGNvZGUgZ2VuZXJhdGlvbgogICAKMjAwMy0wOC0wMiAwNjozNyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC9tMmNfc2V0dXBfbm9kZS5tMmk6CgogICBzZXR1cCBub2RlIHNyaCBpbmRlcGVuZGVudCBvZiBnZXQgdGVtcCB1c2UKICAgCjIwMDMtMDgtMDIgMDY6MzYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvZ2VuZXJpYy10YWJsZS1vaWRzLm0yYzoKCiAgIGJlIG1vcmUgcGFyYW5vaWQgYWJvdXQgdGVtcG9yYXJ5IG92ZXJyaWRlIG9mICRuYW1lCiAgIAoyMDAzLTA4LTAyIDA2OjM1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kL2dlbmVyaWMtdGFibGUtaW5kZXhlcy5tMmk6CgogICBjaGcgaW5kZW50aW9uIG9uIHNvbWUgY29tbWVudCBibG9ja3M7IHVzZSBuZXcgbm9kZS1zdG9yYWdlLm0yaTsgcm12IGRhdGEgcHRyCiAgIAoyMDAzLTA4LTAyIDA2OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogbTJjX3NldHVwX3RhYmxlLm0yaSwKICAgbWZkLWRhdGEtYWNjZXNzLm0yYywgbm9kZS1zdG9yYWdlLm0yaToKCiAgIG5ldyBjb2RlIHRlbXBsYXRlcwogICAKMjAwMy0wOC0wMiAwNjozMSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGdlbmVyaWMtY3R4LWdldC5tMmksCiAgIGdlbmVyaWMtY3R4LXNldC5tMmksIGdlbmVyaWMtZGF0YS1jb250ZXh0Lm0yaSwKICAgZ2VuZXJpYy1nZXQtb2lkLm0yaSwgZ2VuZXJpYy12YWx1ZS1tYXAubTJpLAogICBtZmQtZGF0YS1nZXQubTJjLCBtZmQtZGF0YS1zZXQubTJjLCBub2RlLWdldC5tMmksCiAgIG5vZGUtc2V0Lm0yaSwgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmQ6CgogICBkYXRhIGF0IGN0eC0+ZGF0YSwgbm90IGN0eDsgY2hnIGluZGVudGlvbiBvbiBibG9jayBjb21tZW50czsgZml4IHNvbWUgbWlzc2VkCiAgIG5hbWUgY2hhbmdlczsgdXBkYXRlIGZvciByZW5hbWVkIGNvbmYgZmlsZXM7IHNpbXBsaWZ5IHNvbWUgcGFyYW0gbGlzdHM7CiAgIGFkZCBzb21lIGFzc2VydHMKICAgCjIwMDMtMDctMzEgMDc6MjMgIGR0czEyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIERvbid0IHNoaWZ0IGF3YXkgY29tbWFuZC1saW5lIHBhcmFtZXRlcnMgdGhhdCBwcm9iYWJseSBhcmVuJ3QgdGhlcmUKICAgKGFuZCBjZXJ0YWlubHkgYXJlbid0IHJlbGV2YW50IHRvIHRoZSBhY3Rpb24gYmVpbmcgaGFuZGxlZCkKICAgUmVwb3J0ZWQgYnkgVmlub2QgSm9obnNvbgogICAKMjAwMy0wNy0zMSAwMzoxMiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEhhbmRsZSBwcm94aWVkIFNFVHMgaW4gdGhlIEFDVElPTiBwYXNzLCByYXRoZXIgdGhhbiB0aGUgY29tbWl0IHBhc3MuCiAgIFRoaXMgYWxsb3dzIGZhaWx1cmVzIGhlcmUgdG8gYmFjayBvdXQgYXNzaWdubWVudHMgaW4gb3RoZXIgbW9kdWxlcy4KICAgV2UgY2FuJ3QgcHJvY2VzcyBVTkRPIHJlcXVlc3RzIHN1Y2Nlc3NmdWxseSwgYnV0IHdlIGNhbiBhdCBsZWFzdCByZXBvcnQKICAgdGhpcyBmYWN0LiAgV2hpY2ggaXMgcHJlZmVyYWJsZSB0byBjbGFpbWluZyBmYWlsdXJlIGJ1dCAoc2lsZW50bHkpCiAgIGFjdGluZyBvbiBzb21lIGFzc2lnbm1lbnRzLgogICAKMjAwMy0wNy0zMSAwMzowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIERvbid0IGxvZyB3YXJuaW5ncyBmb3IgZGVsaWJlcmF0ZWx5IHVudXNlZCBTRVQgcGFzc2VzLgogICAKMjAwMy0wNy0zMSAwMzowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEhhbmRsZSBTTk1QIGVycm9ycyBmcm9tIHByb3hpZWQgc2VydmVycyBjb3JyZWN0bHkuCiAgIFBhc3NpbmcgdGhlIGVycm9yIGJhY2sgdXAgdGhlIGNoYWluIHNlZW1zIHRvIERvIFRoZSBSaWdodCBUaGluZy4KICAgCjIwMDMtMDctMzEgMDM6MDMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFByb2JsZW1zIGluIE1JQiBwcm9jZXNzaW5nIGFyZSBpbmRpY2F0ZWQgdmlhIHRoZSAnYXNwLT5zdGF0dXMnIGZpZWxkLAogICByYXRoZXIgdGhhbiB0aGUgcmV0dXJuIHZhbHVlLiAgU28gdXNlIHRoYXQgd2hlbiBkb3duZ3JhZGluZyB2Mi1zdHlsZQogICBlcnJvcnMgZm9yIHYxIHJlc3BvbnNlcy4KICAgCjIwMDMtMDctMzAgMTA6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBkZWZhdWx0LW1mZC10b3AubTJjLCBtZmQtZGF0YS1nZXQubTJjCiwgbWZkLWRhdGEtc2V0Lm0yYywgbWZkLWludGVyZmFjZS5tMmMsIG1mZC10b3AubTJjCjoKCiAgIG5ldyBNSUJzIEZvciBEdW1taWVzIChtZmQpIGNvbmYgZmlsZXMKICAgCjIwMDMtMDctMzAgMTA6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBleGFtcGxlXyhzdGFydC9lbmQpOyBmaXggJHgucmFuZ2VzOyBhbGxvdyBsaXRlcmFsIHZhciBuYW1lcyBpbiB1c2VyIGNvZGUKICAgdmlhICRAdmFyOyBhZGQgdGFibGVfaXNfd3JpdGFibGUgZnVuY3Rpb24KICAgCjIwMDMtMDctMzAgMTA6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy1jb25mLmQvOiBnZW5lcmljLWN0eC1jb3B5Lm0yaSwKICAgZ2VuZXJpYy1jdHgtZ2V0Lm0yaSwgZ2VuZXJpYy1jdHgtc2V0Lm0yaSwKICAgZ2VuZXJpYy1kYXRhLWNvbnRleHQubTJpLCBnZW5lcmljLWdldC1jaGFyLm0yaSwKICAgZ2VuZXJpYy1nZXQtZGVjbC1ib3QubTJpLCBnZW5lcmljLWdldC1kZWNsLm0yaSwKICAgZ2VuZXJpYy1nZXQtbG9uZy5tMmksIGdlbmVyaWMtZ2V0LW9pZC5tMmksCiAgIGdlbmVyaWMtaGVhZGVyLWJvdHRvbS5tMmksIGdlbmVyaWMtaGVhZGVyLXRvcC5tMmksCiAgIGdlbmVyaWMtc291cmNlLWluY2x1ZGVzLm0yaSwgZ2VuZXJpYy10YWJsZS1pbmRleGVzLm0yaSwKICAgZ2VuZXJpYy10YWJsZS1vaWRzLm0yYywgZ2VuZXJpYy12YWx1ZS1tYXAtcmV2ZXJzZS5tMmksCiAgIGdlbmVyaWMtdmFsdWUtbWFwLm0yaSwgbTJjX3NldHVwX25vZGUubTJpLCBub2RlLWdldC5tMmkKLCBub2RlLXNldC5tMmksIHBhcmVudC1kZXBlbmRlbmNpZXMubTJpLAogICBwYXJlbnQtc2V0Lm0yaSwgc3ludGF4LURhdGVBbmRUaW1lLWdldC5tMmQsCiAgIHN5bnRheC1EYXRlQW5kVGltZS1nZXQubTJpLCBzeW50YXgtSW5ldEFkZHJlc3MtZ2V0Lm0yaSwKICAgc3ludGF4LUluZXRBZGRyZXNzLXNldC5tMmksIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtZ2V0Lm0yaQosIHN5bnRheC1JbmV0QWRkcmVzc1R5cGUtc2V0Lm0yaSwKICAgc3ludGF4LVJvd1N0YXR1cy1nZXQubTJpLCBzeW50YXgtVGVzdEFuZEluY3ItZ2V0Lm0yaToKCiAgIGxvdHMgb2YgbmV3IG1pYjJjIGhlbHBlcnMgKGluY2x1ZGVzKQogICAKMjAwMy0wNy0zMCAxMDozOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLWNvbmYuZC86IGRldGFpbHMtZW51bXMubTJpLCBkZXRhaWxzLW5vZGUubTJpCiwgZGV0YWlscy10YWJsZS5tMmk6CgogICBtb3N0bHkgdmFyaWFibGUgcmVuYW1lczsgc29tZSByZW9yZwogICAKMjAwMy0wNy0zMCAwNjoyNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIERpc2NhcmQgdmFsdWVzIHJlY2VpdmVkIGZyb20gdGhlIHByb3h5IGlmIHRoZSBPSUQgaXMgaW52YWxpZC4KICAgKFR5cGljYWxseSB3aGVuIGEgR2V0TmV4dCB3YWxrcyBwYXN0IHRoZSBlbmQgb2YgdGhlIHByb3hpZWQgc3VidHJlZSkuCiAgIEFsc28gdXBkYXRlIHRoZSBjb21tZW50cyB0byBkZXNjcmliZSB0aGUgYmVoYXZpb3VyIGluIGEgYml0IG1vcmUgZGV0YWlsLgogICAKMjAwMy0wNy0zMCAwNjoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIFJlc3BvbmQgdG8gU05NUCBlcnJvcnMgZnJvbSB0aGUgcHJveGllZCBhZ2VudC4KICAgKFRoZSByZXNwb25zZSBpcyBtdWNoIHRvbyBzaW1wbGlzdGljLCBhbmQgaXMgbGlrZWx5IHRvIHByb3ZlIGFuCiAgIG92ZXItcmVhY3Rpb24gaW4gbWFueSBjYXNlcy4gICBCdXQgaXQncyBhIHN0YXJ0KQogICBOb3RlIHRoYXQgdGhlIGluZGVudGF0aW9uIGhhcyBub3QgYmVlbiBhZGp1c3RlZCAtIHdhaXQgdW50aWwgdGhpbmdzCiAgIHNldHRsZSBkb3duIGZpcnN0LgogICAKMjAwMy0wNy0yOSAwODoxMyAgZHRzMTIKCiAgICogYXBwcy86IHNubXBkZi5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBkZi5jOgoKICAgRml4IGEgdHlwbyBpbiBhbiBlcnJvciBtZXNzYWdlIChQYXRjaCAjNzY5MjIxKQogICAKMjAwMy0wNy0yOSAwNTowNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaDoKCiAgIENvcnJlY3QgdGhlIGNvbW1lbnRzIGlkZW50aWZ5aW5nIGhleC9hc2NpaSB2YWx1ZXMgZm9yIFBEVSB0eXBlcy4KICAgUmVwb3J0ZWQgYnkgT2xlZyBJdmFub3YuCiAgIAoyMDAzLTA3LTI5IDAyOjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZC1zbm1wL2V4dGVuc2libGUuYywgdXRpbGl0aWVzL2V4ZWN1dGUuYwo6CgogICBTdXBwb3J0IGZvciBtdWx0aS1jb21tYW5kIGRpcmVjdGl2ZXMgZm9yICdzaCcgZXh0ZW5zaWJpbGl0eS4KICAgICAgIChpLmUuIHJ1bm5pbmcgInRoaXM7IHRoYXQ7IHRoZSBvdGhlciIpCiAgIFJldGFpbmVkIHRoZSBvcmlnaW5hbCBiZWhhdmlvdXIgb2YgdHJ1bmNhdGluZyBhdCB0aGUgZmlyc3QgJzsnIGZvcgogICAnZXhlYycgZGlyZWN0aXZlcyAgKGZvbGxvd2luZyB0aGUgUHJpbmNpcGxlIG9mIExlYXN0IEFzdG9uaXNobWVudCkKICAgCjIwMDMtMDctMjkgMDE6NTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBMb2cgZmFpbHVyZSB0byBzZXQgdXAgcHJveHkgY29tbWFuZCAocmF0aGVyIHRoYW4gcGxvdWdoaW5nIG9uIHJlZ2FyZGxlc3MhKQogICAKMjAwMy0wNy0yOSAwMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgRml4IHN1cHBvcnQgZm9yIG11bHRpLWxpbmUgKHJlbG9jYXRhYmxlKSBvdXRwdXQuCiAgIAoyMDAzLTA3LTI3IDE2OjU0ICByc3RvcnkKCiAgICogbG9jYWwvOiBtaWIyYyAoVjUtMC1wYXRjaGVzLjIpLCBtaWIyYzoKCiAgIGZpeCBmaWxlbmFtZSBpbiBlcnJvciBtc2csIGFzIG5vdGVkIGluIGNvZGVycwogICAKMjAwMy0wNy0yNCAxOToyOSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IG9pZGxlbmd0aCBmdW5jdGlvbgogICAKMjAwMy0wNy0yNCAxNzo1NSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGN2cyBpZCB0YWc7IGFkZCBjb21tZW50IGRvY3VtZW50aW5nIG5vbmluZGV4OyBpbmRleGVzIGxvb3Agd2lsbCBub3cKICAgaW5jbHVkZSBpbmRleCBmb3IgdGFibGVzIHVzaW5nIGF1Z21lbnRzCiAgIAoyMDAzLTA3LTI0IDE3OjUyICByc3RvcnkKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGQgYWNjZXNzIHRvIHRoZSBBVUdNRU5UUyBhdHRyaWJ1dGUKICAgCjIwMDMtMDctMjMgMTY6NDMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCB3YXJuaW5nIGZvciB1bmtub3duICR2YXIudGFnIHRhZ3MgdG8gY2F0Y2ggdHlwb3M7IHdhdGNoIGZvciB1bm1hdGNoZWQKICAgQCBpbiBza2lwdmFyczsgZG9uJ3Qgb3BlbiBuZXcgZmlsZSBpdCBpdCdzIGFscmVhZHkgb3BlbjsgYWRkIGZsYWcgdG8KICAgcHJvY2Vzc19maWxlIGZvciBzYXZlL3Jlc3RvcmUgb2YgdmFyczsgZml4IHByb2Nlc3MgYWdhaW4gc28gaXQgd2lsbCBjYXRjaAogICB1bm1hdGNoZXMgQEA7IGFkZCBuZXcgQGZvcmVhY2ggbm9uaW5kZXhACiAgIAoyMDAzLTA3LTIyIDA5OjA3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSB6ZXJvIG91dCBzZW5zaXRpdmUgY29tbWFuZC1saW5lIGFyZ3VtZW50cyAoY29tbXVuaXR5IHN0cmluZywgdXNlciBuYW1lLAogICAgICAgYXV0aGVudGljYXRpb24gcGFzc3BocmFzZSwgcHJpdmFjeSBwYXNzcGhyYXNlKS4KICAgCiAgICAgICBOT1RFOiB0aGlzIGRvZXMgbm90IHdvcmsgZm9yIGFsbCBwbGFmb3JtcyAtLSBjZXJ0YWlubHkgaXQgZG9lc24ndAogICAgICAgICAgICAgd29yayBmb3IgU29sYXJpcy4gIEEgZGlmZmVyZW50LCBtb3JlIGdyb3NzIG1ldGhvZCBpcyBuZWVkZWQKICAgICAgICAgICAgIGZvciB0aGVzZSBwbGF0Zm9ybXMgKHNlZSBzZW5kbWFpbCBjb2RlIGZvciBkZXRhaWxzIC0tICBuZWVkCiAgICAgICAgICAgICBJIHNheSBtb3JlPykuCiAgIAoyMDAzLTA3LTIyIDA4OjQ1ICBkdHMxMgoKICAgKiBtYW4vc25tcHZhY20uMS5kZWY6CgogICBJbXByb3ZlZCBkZXNjcmlwdGlvbnMgb2YgdGhlIHZhcmlvdXMgc3ViY29tbWFuZHMuCiAgIEJhc2VkIG9uIG1hdGVyaWFsIHN1cHBsaWVkIGJ5IE5pY2sgRGlSaWNvLgogICAKMjAwMy0wNy0yMiAwODowOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYzoKCiAgIFZhcmlvdXMgZml4ZXMgdG8gdGhlIHJlY2VudCBUQ1AgdGFibGUgcmVkZXNpZ24sIHN1cHBsaWVkIGJ5IEthdHN1aGlzYSBBQkUuCiAgIChTb21lIG90aGVycyBzdGlsbCBvdXRzdGFuZGluZywgYXdhaXRpbmcgZGlzY3Vzc2lvbi4gIEJ1dCB0aGVzZSBhcmUgY2xlYXIKICAgbWlzdGFrZXMsIHdoaWNoIG5lZWQgZml4aW5nKS4KICAgCjIwMDMtMDctMjIgMDg6MDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdGNwVGFibGUuYywgdWRwVGFibGUuYzoKCiAgIFVzZSB0aGUgdGFibGUgaW5mb3JtYXRpb24gJ2NvbG51bScgZmllbGQgdG8gaWRlbnRpZnkgdGhlIHJlcXVlc3RlZCBjb2x1bW4KICAgb2JqZWN0KHMpIHJhdGhlciB0aGFuIHB1bGxpbmcgc3R1ZmYgb3V0IG9mIHRoZSBPSUQuICBTdWdnZXN0ZWQgYnkgT2xlZyBJdmFub3YuCiAgIAoyMDAzLTA3LTIyIDA3OjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBNYWtlIHRoZSBjcmVhdGVWaWV3IG1hc2sgcGFyYW1ldGVyIG9wdGlvbmFsCiAgIChhcyB3aXRoIHRoZSAndmlldycgY29uZmlnIGRpcmVjdGl2ZSkKICAgCjIwMDMtMDctMjIgMDc6NTcgIGR0czEyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIENvcnJlY3QgdGhlIGxheW91dCBvZiB0aGUgdXNhZ2UgbWVzc2FnZS4KICAgCjIwMDMtMDctMjIgMDc6NTYgIGR0czEyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIFVzZSB0aGUgbW9yZSBmbGV4aWJsZSBBUEkgY2FsbCBmb3IgaGFuZGxpbmcgdmlldyBPSURzCiAgIAoyMDAzLTA3LTE5IDEwOjU1ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMtY29uZi5kLzogZGV0YWlscy1lbnVtcy5tMmksIGRldGFpbHMtbm9kZS5tMmkKLCBkZXRhaWxzLXRhYmxlLm0yaToKCiAgIG1pYjJjIGluY2x1ZGUgZmlsZXMgdG8gZ2VuZXJhdGUgbm9kZSBkZXRhaWxzCiAgIAoyMDAzLTA3LTE5IDEwOjUyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICB0cmFjayBjdXJyZW50IGxpbmUgYW5kIGZpbGUgbmFtZTsgbmV3IGZpbmRfY29uZiwgcHJvY2Vzc19maWxlIHN1YnM7IHJlbW92ZQogICBAc2tpcCBOQCBhYmlsaXR5OyBza2lwIEB0b2tlbkAgc2VhcmNoIGlmIGxpbmUgZG9lc24ndCBiZWdpbiB3aXRoIEA7CiAgIGFkZCBAc2tpcGlmQCwgQGJyZWFrQDsgZG9udCByZXF1aXJlIHNwYWNlcyBmb3IgQGNsb3NlQDsgYWRkIC1pZmV4aXN0cyBwYXJhbSB0bwogICBAaW5jbHVkZUA7IG5ldyBAaWZjb25mQCArIHJld29yayBjb2RlIHRvIG1ha2Ugb3RoZXIgQGlmWFhYQCB0b2tlbnMgZWFzeTsgbWVyZ2UKICAgZWxzZS9lbHNpZiBpbiBwcm9jZXNzIGxvb3AKICAgCjIwMDMtMDctMTggMTM6NTggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBwYXJzaW5nIG9mIGluaXRpYWwgZGVmYXVsdCBmaWxlOyBkZWxheSBwcm9jZXNzaW5nIG9mIGNtZCBsaW5lIHZhcnMgdGlsCiAgIGFmdGVyIHByb2Nlc3NpbmcgZGVmYXVsdCBmaWxlOyBhZGQgbmV3ICRjLm5lZWRzbGVuZ3RoLCAkYy5oYXNkZWZ2YWwsICRjLmRlZnZhbCwKICAgJGMubW9kdWxlLCAkYy5hY2Nlc3NpYmxlLCAkYy5jaGlsZHJlbiAobmVlZHMgd29yayksICRjLmhhc2hpbnQsICRjLmhpbnQsCiAgICRjLnJhbmdlcywkYy5lbnVtcmFuZ2UgKG5lZWRzIHdvcmspIGFuZCB2YXJpb3VzIGNvZGUgdG8gc3VwcG9ydCB0aGVtOyBhZGQKICAgcGFyYW1ldGVyIHRvIHNraXAgdG8gYWxsb3cgb25lIHRvIGJyZWFrIG91dCBvZiBtdWx0aXBsZSBsZXZlbHMgKG5lZWRzIHdvcmspOwogICBhbGxvdyBzcGFjZXMgYWZ0ZXIgQGNtZEAgdG8gYWxsb3cgZm9yIGJldHRlciBjb250cm9sIG9mIGluZGVudGlvbjsgbW92ZSBmaWxlCiAgIG9wZW4vY2xvc2UgdG8gc3Vicm91dGluZXM7IG5ldyBAYXBwZW5kIGZpbGVALCBAY2xvc2UgZmlsZUAsIEBpbmNsdWRlIGZpbGVAOwogICBhbGxvdyB3cml0aW5nIHRvIG11bHRpcGxlIGZpbGVzIGF0IG9uY2U7IG5ldyBAcHJpbnQgdGV4dEAgKHRvIHN0ZG91dCk7CiAgIHdoZXchIG1vcmUgdG8gY29tZS4uLgogICAKMjAwMy0wNy0xNiAwMzoyOSAgZHRzMTIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3VwcG9ydCBwcm9jZXNzaW5nIG9mIGNvbXBpbGUtc3ViYWdlbnQgc3ViLW9wdGlvbnMgaW4gYW55IG9yZGVyCiAgIAoyMDAzLTA3LTE2IDAzOjI4ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBIYW5kbGUgY29tcGlsZS1zdWJhZ2VudCBjYWxsZWQgd2l0aCBubyBwYXJhbWV0ZXJzCiAgIAoyMDAzLTA3LTE2IDAzOjI0ICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBGaXggaW5jb25zaXN0ZW50IHVzYWdlIHdpdGhpbiBjb21waWxlLXN1YmFnZW50CiAgIAoyMDAzLTA3LTE2IDAzOjIxICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBIYW5kbGUgLS1jcmVhdGUtc25tcHYzLXVzZXIgY2FsbGVkIHdpdGggbm8gcGFyYW1ldGVycwogICAKMjAwMy0wNy0xNiAwMjowNyAgZHRzMTIKCiAgICogUkVBRE1FOgoKICAgQ2xhcmlmeSB0aGUgcm9sZXMgb2YgdGhlIHZhcmlvdXMgbWFpbGluZyBsaXN0cywgYW5kIHdoaWNoIG9uZXMgdG8gdXNlCiAgIChvciBub3QgdXNlKS4gIEFsc28gdXBkYXRlZCB0aGUgcHJvamVjdCB3ZWIgcGFnZSBhbG9uZyB0aGUgc2FtZSBsaW5lcy4KICAgCjIwMDMtMDctMTUgMjE6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHJlbmFtZSBpc3RhYmxlIHRvIGlzY29sdW1uOyBhZGQgZW51bXM7IGFkZCBjdXJyZW50dmFyOyBmaXggZW51bSBkdW1wIHRvIHdvcmsKICAgZm9yIHNjYWxhcnMKICAgCjIwMDMtMDctMTUgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIEZpeCBhIHZhcmFyZ3MgdHlwZSBzcGVjaWZpY2F0aW9uLiAgU3BvdHRlZCBieSBPbGVnIEl2YW5vdi4KICAgCjIwMDMtMDctMTUgMDc6MzUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIEF2b2lkIHJlZmVyZW5jaW5nIGZyZWVkIG1lbW9yeS4gIChSZXBvcnRlZCBieSBTdGV2ZSBCZW5uZXR0KQogICAKMjAwMy0wNy0xNSAwNzoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgUnVuIHBhc3MtdGhyb3VnaCBzY3JpcHRzIGluIHRoZSBBQ1RJT04gcGFzcywgbm90IENPTU1JVCwgc28gYW55IGVycm9ycwogICBjYW4gYmUgcmVwb3J0ZWQgYmFjayBwcm9wZXJseS4KICAgQWxzbyB0d2VhayB0aGUgZXJyb3ItY2hlY2tpbmcgY29kZSB0byByZWNvZ25pc2UgdGhlIGVycm9yIHN0cmluZ3MgcHJvcGVybHkuCiAgIAoyMDAzLTA3LTE0IDE3OjAwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hY2ggY29uZmlndXJlLmluCiAgIAoyMDAzLTA3LTE0IDE2OjUyICByc3RvcnkKCiAgICogY29uZmlndXJlLmluOgoKICAgYXBwbHkgcGF0Y2ggZnJvbSBTdGV2ZSBCZW5uZXR0IDxzdGV2ZWJAc25hcGdlYXIuY29tPiB0byBhbGxvdyBvbmUgdG8gZGlzYWJsZQogICB0aGUgY2FsbGJhY2sgdHJhbnNwb3J0IGFuZCByZWR1Y2UgYWdlbnQgc2l6ZS4gVHdlYWtlZCBieSBtZSBhIGJpdC4gZGlzYWJsZQogICBhZ2VudHggaWYgY2FsbGJhY2tzIGRpc2FibGVkCiAgIAogICByZW1vdmUgKHRyYW5zcG9ydHxzZWN1cml0eSlfW2xdb2JqX2xpc3QsIGFzIFtsXW9iaiBsaXN0cyBhcmUgbm93IGdlbmVyYXRlZAogICBmcm9tIHNyY3M7IHJlbW92ZSBBZ2VudFggYmV0YSBjb2RlIHdhcm5pbmcgZnJvbSBoZWxwCiAgIAoyMDAzLTA3LTE0IDE2OjUwICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4KLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmg6CgogICBhcHBseSBwYXRjaCBmcm9tIFN0ZXZlIEJlbm5ldHQgPHN0ZXZlYkBzbmFwZ2Vhci5jb20+IHRvIGFsbG93IG9uZSB0byBkaXNhYmxlCiAgIHRoZSBjYWxsYmFjayB0cmFuc3BvcnQgYW5kIHJlZHVjZSBhZ2VudCBzaXplLiBUd2Vha2VkIGJ5IG1lIGEgYml0LiBkaXNhYmxlCiAgIGFnZW50eCBpZiBjYWxsYmFja3MgZGlzYWJsZWQuCiAgIAoyMDAzLTA3LTEzIDExOjE5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmgsIHNubXBsaWIvY2FsbGJhY2suYwo6CgogICBhZGQgcHJpb3JpdHkgdG8gY2FsbGJhY2sgc28gdXNlciBjYW4gZGV0ZXJtaW5lIGNhbGxiYWNrIG9yZGVyCiAgIAoyMDAzLTA3LTEzIDA5OjQ0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaDoKCiAgIHJlc3RvcmUgaW5wY2Igc3RydWN0IGZvciBsaW51eCAodW50aWwgaXQgc2hvd3MgdXAgc29tZXdoZXJlIGVsc2UgaW4gY3ZzKQogICAKMjAwMy0wNy0xMSAwNTowOCAgZHRzMTIKCiAgICogbWFuL3NubXB2YWNtLjEuZGVmOgoKICAgRml4IGVycm9ycyBpbiB0aGUgZXhhbXBsZXMsIHNwb3R0ZWQgYnkgTmljayBEaVJpY28KICAgCjIwMDMtMDctMTAgMDY6MTEgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWZ1bmN0aW9ucywgbnNiLW5pZ2h0bHksIG5zYi1wYWNrYWdlCjoKCiAgIHN5bmMgdy9wYXRjaGVzCiAgIAoyMDAzLTA3LTEwIDA1OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHRjcC5jLCB0Y3AuaCwgdGNwVGFibGUuYwosIHRjcFRhYmxlLmgsIHVkcC5jLCB1ZHAuaCwgdWRwVGFibGUuYwosIHVkcFRhYmxlLmg6CgogICBOZXctQVBJIGltcGxlbWVudGF0aW9uIG9mIFVEUCBhbmQgVENQIHRhYmxlcywgdXNpbmcgY2FjaGUgYW5kIGl0ZXJhdG9yIGhlbHBlcnMuCiAgIFdvcmtzIG9uIExpbnV4IGFuZCBIUC1VWCAxMCwgY29tcGlsZXMgKGJ1dCB1bnRlc3RlZCkgb24gU29sYXJpcyAmIFdpbmRvd3MuCiAgIAoyMDAzLTA3LTEwIDAzOjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2JpbmFyeV9hcnJheS5oOgoKICAgQ29sb24/IHNlbWljb2xvbj8gIFdoYXQncyBhIHBpeGVsIG9yIHR3byBiZXR3ZWVuIGZyaWVuZHMuLi4uCiAgIAoyMDAzLTA3LTEwIDAyOjEyICBkdHMxMgoKICAgKiB3aW4zMi86IHdpbjMyc2RrLmRzdywgbGliYWdlbnQvbGliYWdlbnQuZGVmLAogICBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLCBsaWJzbm1wL2xpYnNubXAuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIFZpc3VhbCBDKysgdHdlYWtzLCB0byBnZXQgZXZlcnl0aGluZyB0byBjb21waWxlIGNsZWFubHkuCiAgIAoyMDAzLTA3LTA5IDA4OjQwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBNaXNzaW5nIGhlYWRlciBwcm90ZWN0aW9uIGNoZWNrcwogICAKMjAwMy0wNy0wOSAwODoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdpdGhvdXQgZ2V0cHduYW0gb3IgZ2V0Z3JuYW0KICAgCjIwMDMtMDctMDkgMDg6MDYgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBQcm92aWRlIGRlZmF1bHQgZGVmaW5pdGlvbnMgb2Ygc3lzbG9nIGNvbnN0YW50cyBpZiBub3QgYWxyZWFkeSBwcmVzZW50LgogICAKMjAwMy0wNy0wOSAwODowNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lcl9iaW5hcnlfYXJyYXkuaCwKICAgc25tcGxpYi9jb250YWluZXIuYzoKCiAgIFByb3ZpZGUgbWlzc2luZyBmb3J3YXJkIGRlY2xhcmF0aW9ucwogICAKMjAwMy0wNy0wOSAwNToyNSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFN1cHBvcnQgZm9yIHRoZSBvbGQgJy1MJyBvcHRpb24uCiAgIChJbmNyZWRpYmx5IGNsdW5reSwgYnV0IG5lY2Vzc2FyeSkKICAgCjIwMDMtMDctMDkgMDU6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2VudW0uYzoKCiAgIFN1cHBvcnQgZm9yICJwZXJzaXN0ZW50IGVudW1lcmF0aW9ucyIuCiAgIAoyMDAzLTA3LTA4IDA2OjAyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgdGNwLmMsCiAgIHVkcC5jOgoKICAgSW1wcm92ZWQgZGVidWdnaW5nIGZvciBuZXcgc2NhbGFyX2dyb3VwIGltcGxlbWVudGF0aW9ucy4KICAgCjIwMDMtMDctMDcgMTU6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUGF0Y2ggZnJvbSBDaHVjayBZZXJrZXMgdG8gbWFrZSB0aGUgTVRBLU1JQiB3b3JrIHdpdGggbmV3ZXIgc2VuZG1haWwgdmVyc2lvbnMsIGluY2x1ZGluZyBGRlJfUVVBUkFOVElORSBzdXBwb3J0CiAgIAoyMDAzLTA3LTA3IDA2OjA0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBFeHBvcnQgdGhlICdtYWtlX3RlbXBmaWxlJyByb3V0aW5lLgogICAKMjAwMy0wNy0wNiAyMDo0MSAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IHR5cG9zCiAgIAoyMDAzLTA3LTA0IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgYWRkZWQgc3lzL3R5cGVzCiAgIAoyMDAzLTA3LTAzIDIxOjIxICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmcmVlIGNvbnRhaW5lciBvbiBmcmVlOyBzb3J0IGJlZm9yZSBmb3JfZWFjaCBleGVjdXRlczsgYWRkIGluaXQgdG8gcmVnaXN0ZXIKICAgCjIwMDMtMDctMDMgMjE6MjAgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIG5ldyBjb250YWluZXJzCiAgIAoyMDAzLTA3LTAzIDIxOjIwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgdXBkYXRlIENPTlRBSU5FUl9GUkVFIGZvciBuZXcgcmVxdWlyZW1lbnQgdGhhdCBjb250YWluZXJzIGZyZWUgdGhlbXNlbHZlcwogICAKMjAwMy0wNy0wMyAyMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBhZGQgaW5pdCBmb3IgbGlzdF9zc2xsIGFuZCBudWxsIGNvbnRhaW5lcnM7IGFkZCBhbGlhc2VzIGZvciBsaXN0IGFuZAogICBiaW5hcnkgY29udGFpbmVyczsgdXBkYXRlIENPTlRBSU5FUl9GUkVFIGZvciBuZXcgcmVxdWlyZW1lbnQgdGhhdAogICBjb250YWluZXJzIGZyZWUgdGhlbXNlbHZlcwogICAKMjAwMy0wNy0wMyAyMDo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBzbm1wbGliL2NvbnRhaW5lcl9udWxsLmMKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX2xpc3Rfc3NsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyX251bGwuaDoKCiAgIG5ldyBmaWxlcwogICAKMjAwMy0wNy0wMyAyMDoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2xpc3Rfc3NsbC5jOgoKICAgZmlsZSBjb250YWluZXJfbGlzdF9zc2xsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjUtMC1wYXRjaGVzLgogICAKMjAwMy0wNy0wMyAyMDoyNiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX251bGwuYzoKCiAgIGZpbGUgY29udGFpbmVyX251bGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAyIDE0OjU3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyM3NubXB2M2dldE1ENURFUywgVDAyNXNubXB2M2dldFNIQURFUwo6CgogICBVc2UgYSBTS0lQSUZOT1QgZm9yIHJlYWwgdG9rZW5zICh0eXBvKS4KICAgCjIwMDMtMDctMDIgMTQ6NTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTUwc29sYXJpc2hvc3RjcHUsIFQxNTFzb2xhcmlzaG9zdGRpc2sKLCBUMTUyaG9zdHVwdGltZSwgVDE1M3NvbGFyaXNzd2FwOgoKICAgZml4IG5ldyB0ZXN0cyBpbiB2YXJpb3VzIHdheXMKICAgCjIwMDMtMDctMDIgMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvb2lkX3N0YXNoLmM6CgogICBmcmVlIHRoZSByb290IHBvaW50ZXIuCiAgIAoyMDAzLTA3LTAyIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgZnJlZSB0aGUgZW5naW5laWQgYXQgKnNodXRkb3duKiBub3QgKnN0YXJ0dXAqOi0vCiAgIAoyMDAzLTA3LTAyIDE0OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgZG9uJ3QgY2FsbCB0aGUgY2xlYW51cCByb3V0aW5lcyBhdCBzaHV0ZG93biBzaW5jZSB0aGV5J3JlIGZpbGxlZCB3aXRoCiAgIGRvdWJsZSBmcmVlcygpCiAgIAoyMDAzLTA3LTAyIDE0OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9uZXRTbm1wSG9zdHNUYWJsZS5oOgoKICAgcmVxdWlyZSBuZWVkcyBleGFtcGxlcy8gcHJlZml4CiAgIAoyMDAzLTA3LTAyIDE0OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgVXNlIGEgZm9yIGxvb3AgaW5zdGVhZCBvZiBhIHJlY3Vyc2l2ZSBmdW5jdGlvbi4KICAgCjIwMDMtMDctMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zRGVidWcuYzoKCiAgIHByb3RlY3QgYWdhaW5zdCBlbXB0eSByb3dzLgogICAKMjAwMy0wNy0wMiAxMzo1MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGZpeCBjb250YWluZXIgY29kZSBmcm9tIHRoZSBsYXN0IHBhdGNoCiAgIAoyMDAzLTA3LTAyIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgUGF0Y2g6IDc1NjI4NjogQSBnbG9iYWwgZnJlZSAtPiBTTk1QX0ZSRUUgcmVwbGFjZW1lbnQKICAgCjIwMDMtMDctMDIgMTM6MjAgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWdlbnQvYWdlbnRfaGFuZGxlci5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9sY2RfdGltZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jb250YWluZXIuYywgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICBQYXRjaCAjNzI0OTI1IGZyb20gUGV0ZXIgV2FyYXNpbiB0byBmcmVlIGxvdHMgb2YgbWVtb3J5IGZvciBhIHJlYWxseSBjbGVhbiBzaHV0ZG93bgogICAKMjAwMy0wNy0wMiAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNS0wLXBhdGNoZXMuMiksIGFnZW50X3JlZ2lzdHJ5LmMKOgoKICAgUGF0Y2ggIzcyNDkyNSBmcm9tIFBldGVyIFdhcmFzaW4gdG8gZml4IG5ldHNubXBfc3VidHJlZV91bmxvYWQoKSB0byB1cGRhdGUgdGhlIHJvb3QgcG9pbnRlcgogICAKMjAwMy0wNy0wMiAxMjo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxNTBzb2xhcmlzaG9zdGNwdSwgVDE1MXNvbGFyaXNob3N0ZGlzawosIFQxNTJob3N0dXB0aW1lLCBUMTUzc29sYXJpc3N3YXA6CgogICBQYXRjaDogNzU2Mjg2OiBOZXcgc29sYXJpcyBzcGVjaWZpYyBIUiB0ZXN0cyBmcm9tIEJydWNlIFNoYXcKICAgCjIwMDMtMDctMDIgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgc25tcGxpYi9wYXJzZS5jCiAgIChWNS0wLXBhdGNoZXMuWzEsMiwxXSksIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywgc25tcGxpYi9wYXJzZS5jOgoKICAgUGF0Y2ggIzc2MDQ0OCBmcm9tIEJvYiBSb3dsYW5kcy9TdW4gdG8gZml4IGJ1ZyAjNzUxOTEzIHRvIHByb3RlY3QgYSBmZXcgbWlub3Igc2VjdXJpdHkgdmlvbGF0aW9ucwogICAKMjAwMy0wNy0wMiAxMDo1OCAgaGFyZGFrZXIKCiAgICogQ09QWUlORywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L3NubXBkLmMsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwgc25tcGxpYi9NYWtlZmlsZS5pbgosIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc3RybGNweS5jOgoKICAgUGF0Y2ggIzc2MDQxNyBmcm9tIEJvYiBSb3dsYW5kcy9TdW4gZm9yIGZpeGluZyBCdWcgIzc1MTkyMCBmb3IgbWlub3Igc2VjdXJpdHkgcHJvYmxlbXMgKFBJRCBmaWxlIHVubGlrZWQgZmlyc3QsIGFuZCB1c2Ugc3RybGNweSBpbnN0ZWFkIG9mIHN0cmNweS4gIEEgbmV3IHN0cmxjcHkgZmlsZSB3YXMgZGVmaW5lZCBpZiBub3QgZGVmaW5lZCBmb3IgYSBzeXN0ZW0uCiAgIAoyMDAzLTA3LTAyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N0cmxjcHkuYzoKCiAgIGZpbGUgc3RybGNweS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDIgMTA6MjYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBfZGVidWcuaCAoVjUtMC1wYXRjaGVzLjEpLAogICBzbm1wX2RlYnVnLmg6CgogICBQYXRjaCAjNzY0MDQ3IGZyb20gU3RlcGhlbiBKLiBGcmllZGw6IFJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb24gZnJvbSBzbm1wX2RlYnVnLmggYW5kIGZpeCBhIGZldyBjb21tZW50cwogICAKMjAwMy0wNy0wMiAxMDoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4gKFY1LTAtcGF0Y2hlcy5bNyw3XSksIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggIzc1OTMwOSBmcm9tIFN0ZXBoZW4gRnJpZWRsIHRvIGFkZCBwcm9tcHQgb3Zlci1yaWRlIGZsYWcgZGVzY3JpcHRpb25zIHRvIHByb21wdCBvdXRwdXQKICAgCjIwMDMtMDctMDIgMTA6MTUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggIzc1OTI5ODogZml4IHNwZWxsaW5nIGVycm9yCiAgIAoyMDAzLTA3LTAxIDA1OjMzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcjEuYzoKCiAgIFJlbW92ZSByZWR1bmRlbnQgZmlsZS4KICAgCjIwMDMtMDctMDEgMDM6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaWNtcC5jLCBpY21wLmgsIGlwLmMsCiAgIGlwLmgsIGtlcm5lbF9saW51eC5jLCBrZXJuZWxfbGludXguaCwKICAgbWliSUlfY29tbW9uLmgsIHRjcC5jLCB0Y3AuaCwgdWRwLmMsIHVkcC5oCjoKCiAgIFJlLWltcGxlbWVudCB0aGUgc2NhbGFyIG5ldHdvcmsgc3RhdGlzdGljcyB1c2luZyBuZXcgQVBJIGZlYXR1cmVzLgogICBUaGlzIHNlcnZlcyBhcyBhbiBleGFtcGxlIG9mIHRoZSAnc2NhbGFyX2dyb3VwJyBhbmQgJ2NhY2hlX2hhbmRsZXInCiAgIGhlbHBlcnMsIGFzIHdlbGwgYXMgKGhvcGVmdWxseSkgc2ltcGxpZnlpbmcgdGhlIGNvZGUgc29tZXdoYXQuCiAgIAoyMDAzLTA3LTAxIDAyOjU3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogc2NhbGFyLmMsIHNjYWxhcl9ncm91cC5jOgoKICAgTWlub3IgdHdlYWtzIHRvIGhhbmRsZSB3YWxraW5nIGZyb20gb25lIHNjYWxhciB0byBhbm90aGVyIGNvcnJlY3RseSwKICAgYW5kIGRlYWwgd2l0aCBpbnRlcm5hbCBtaXNzaW5nIG9iamVjdHMgd2l0aGluIGEgc2NhbGFyIGdyb3VwLgogICAKMjAwMy0wNi0zMCAyMjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZiwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25ldFNubXBIb3N0c1RhYmxlLmg6CgogICB1cGRhdGUgZm9yIHJvdyBkZWxldGlvbgogICAKMjAwMy0wNi0zMCAxNzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsCiAgIG1pYjJjLml0ZXJhdGVfYWNjZXNzLmNvbmY6CgogICB1cGRhdGUgdG8gc3VwcG9ydCByb3cgY3JlYXRpb24uICBEZWxldGlvbiBzdXBwb3J0IHN0aWxsIGNvbWluZywgYXMgaXMKICAgYSBzZXBhcmF0ZSBoYW5kbGVyLgogICAKMjAwMy0wNi0zMCAxNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIG1vcmUgIm5vdCBzZXJpYWxpemVkIiBjb2RlLgogICAKMjAwMy0wNi0zMCAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBuZXRTbm1wSG9zdHNUYWJsZS5jLAogICBuZXRTbm1wSG9zdHNUYWJsZS5oLCBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuYywKICAgbmV0U25tcEhvc3RzVGFibGVfYWNjZXNzLmg6CgogICBVcGRhdGVkIGZvciByb3cgY3JlYXRpb24uCiAgIAoyMDAzLTA2LTMwIDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmM6CgogICBwYXRjaCBmcm9tIEZvbmcgVHN1aSBmb3IgZml4aW5nIE5VTEwgcmVmZXJlbmNlcwogICAKMjAwMy0wNi0zMCAxMDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIG1ha2UgdGhlIGRlZmF1bHQgYWdlbnR4IHBpbmcgaW50ZXJ2YWwgYmUgMTUgc2Vjb25kcy4KICAgCjIwMDMtMDYtMzAgMDk6MjYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIHV0aWxpdGllcy9leGVjdXRlLmg6CgogICBNYWtlIHN1cmUgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIG5ldyBhcHByb2FjaCB0byBzdWItY29tbWFuZAogICBpbnZvY2F0aW9uIGFyZSBwcm9wZXJseSBhY2tub3dsZWRnZWQuCiAgIAoyMDAzLTA2LTMwIDA3OjQwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDaGVjayBmb3IgdmFsaWRpdHkgb2YgcGFyYW1ldGVycyBiZWZvcmUgdXNpbmcgdGhlbS4gIChQYXJhbm9pZD8gV2hvLCBtZT8pCiAgIAoyMDAzLTA2LTMwIDA2OjUxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBDYWNoaW5nIG9mIGludGVyZmFjZSBkYXRhIGlzIGFjdHVhbGx5IExpbnV4LXNwZWNpZmljLgogICAKMjAwMy0wNi0zMCAwNTowNSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oOgoKICAgSW5jbHVkZSByZWNlbnQgaGVscGVyIG1vZHVsZXMgaW4gdGhlIGhlbHBlciBsaWJyYXJ5IGFuZCBtZXRhLWluY2x1ZGUgZmlsZS4KICAgCjIwMDMtMDYtMjcgMDQ6NDMgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBTaW1wbGlmeSB0aGUgcHJvY2Vzc2luZyBvZiAidHJhcGhhbmRsZSIgZGlyZWN0aXZlcwogICAodXNpbmcgdGhlIG5ldyBnZW5lcmljIHN1Yi1jb21tYW5kIGV4ZWN1dGlvbiB1dGlsaXR5IHJvdXRpbmVzLAogICBhbmQgdGhlIGltcHJvdmVkIHZhcmxpc3QgbG9nZ2luZyBjb25maWd1cmF0aW9uKQogICAKMjAwMy0wNi0yNyAwNDozOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jOgoKICAgVXNlIHRoZSBuZXcgZ2VuZXJpYyBzdWItY29tbWFuZCBleGVjdXRpb24gdXRpbGl0eSByb3V0aW5lcyBpbnN0ZWFkCiAgIG9mIHRoZSBleHRlbnNpYmxlLXNwZWNpZmljIG9uZXMuCiAgIAoyMDAzLTA2LTI3IDA0OjM3ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBJbmNsdWRlIGEgZ2VuZXJhbCAnbWFnaWMnIHBhcmFtZXRlciBpbiBib3RoIGNhY2hlIGRhdGEgc3RydWN0dXJlCiAgIGFuZCBjYWNoZSBsb2FkaW5nIHJvdXRpbmUuICAgSnVzdCBJbiBDYXNlIEl0IE1pZ2h0IENvbWUgSW4gVXNlZnVsLgogICBIYXBweSwgV2VzPwogICAKMjAwMy0wNi0yNyAwNDowOSAgZHRzMTIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuYywKICAgbWliZ3JvdXAvdXRpbGl0aWVzL2V4ZWN1dGUuaDoKCiAgIEdlbmVyYWxpc2VkIHN1Yi1jb21tYW5kIGV4ZWN1dGlvbiB1dGlsaXR5IHJvdXRpbmVzLgogICAoVGhlIGN1cnJlbnQgJ2V4ZWNfY29tbWFuZCcgYW5kICdzaGVsbF9jb21tYW5kJyByb3V0aW5lcyBhcmUgdmVyeSBzcGVjaWZpYwogICAgdG8gdGhlIGRldGFpbHMgb2YgdGhlICdzdHJ1Y3QgZXh0ZW5zaWJsZScgZGF0YSBzdHJ1Y3R1cmUpLgogICBUaGVzZSByb3V0aW5lcyBjYW4gYmUgdXNlZCBtb3JlIHdpZGVseSwgd2hlcmV2ZXIgYSBzdWItcHJvY2VzcyBpcyBuZWVkZWQuCiAgIAogICBRdWVzdGlvbnM6CiAgICAgYSkgIFNob3VsZCB0aGVzZSB1dGlsaXNlIHRoZSAicmVhbGxvYyIgbWVjaGFuaXNtLCByYXRoZXIgdGhhbgogICAgICAgICBlbmZvcmNlIGEgZml4ZWQgc2l6ZSBvdXRwdXQgYnVmZmVyPwogICAgIGIpICBEbyB0aGV5IGJlbG9uZyBpbiB0aGUgbWFpbiBsaWJyYXJ5IChvciBwb3NzaWJseSB0aGUgYWdlbnQgbGlicmFyeSkKICAgICAgICAgcmF0aGVyIHRoYW4gYSBtaWJncm91cD8KICAgCjIwMDMtMDYtMjcgMDE6NDIgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgTW9yZSBmbGV4aWJsZSBoYW5kbGluZyBvZiBmb3JtYXR0aW5nIHZhcmJpbmQgbGlzdHMuCiAgICIlViIgY29uZmlndXJlcyB0aGUgdmFyYmluZCBzZXBhcmF0b3IgY2hhcmFjdGVyIChhbHRfZm9ybWF0ID0+IGFkZGVkIHNwYWNlKQogICAiJXYiIHVzZXMgdGhpcyBzZXBhcmF0b3IgKGFsdF9mb3JtYXQgPT4gc2VwYXJhdG9yIGFsc28gcHJpbnRlZCBiZWZvcmUgdGhlIGxpc3QpCiAgIERlZmF1bHRzIHRvIHVzaW5nIHRoZSBlYXJsaWVyICdcdCcgb3IgIiwgIiBpZiBubyBzZXBhcmF0b3IgaXMgc3BlY2lmaWVkLgogICAKMjAwMy0wNi0yNiAwMjoyNyAgZHRzMTIKCiAgICogbG9jYWwvbWliMmMubm90aWZ5LmNvbmY6CgogICBVc2UgdGhlIG5ldyBmZWF0dXJlcyBvZiBtaWIyYyB0byB0aWR5IHVwIHRoZSBvdXRwdXQgYSBiaXQuCiAgIAoyMDAzLTA2LTI2IDAyOjI2ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEV4dGVuZCBtaWIyYydzIG5ldyBjb3VudGVyIHJvdXRpbmVzIHRvIGNvdmVyICJzdWJsb29wcyIgYXMgd2VsbAogICAoaS5lLiB0aGUgbnVtYmVyIG9mIGNvbHVtbnMvaW5kZXhlcyBpbiBhIHBhcnRpY3VsYXIgdGFibGUsCiAgICBhbmQgdGhlIG51bWJlciBvZiBvYmplY3RzIHRvIGJlIGluY2x1ZGVkIHdpdGggYSBnaXZlbiBub3RpZmljYXRpb24pCiAgIAoyMDAzLTA2LTI1IDIzOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSBwcm9tcHQgc3VwcG9ydCBmb3IgbWliMmMgdG8gYXNrIHF1ZXN0aW9ucyB0byB0aGUgdXNlci4KICAgLSBBIG5ldyB0b3AtbGV2ZWwgd3JhcHBlciBhcm91bmQgYWxsIHRoZSBvdGhlciBtaWIyYyBmaWxlcyB0aGF0IHdhbGtzCiAgICAgeW91IHRocm91Z2ggc2VsZWN0aW5nIHRoZSByaWdodCBtaWIyYyBjb25maWd1cmF0aW9uIGZpbGUgeW91IHdpc2ggdG8KICAgICB1c2UgYW5kIHRoZW4gc291cmNlcyBpdCBmb3IgeW91LgogICAgIC0gdG9kbzogZ2VuZXJhdGUgdW5pcXVlIGZpbGUgbmFtZXMgaWYgYm90aCBzY2FsYXIgYW5kIHRhYmxlIGNyZWF0aW9uCiAgICAgICBpcyBkb25lLCBlZy4KICAgCjIwMDMtMDYtMjUgMjM6MTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmY6CgogICBib3kgaXMgdGhhdCBub3QgbmVlZGVkIGFueSBtb3JlCiAgIAoyMDAzLTA2LTI1IDE0OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIERhdmUgYXNrcywgZGF2ZSBnZXRzOgogICAgIC0gbmV3IGZ1bmN0aW9ucyByZXR1cm5pbmcgMSBvciAyOiAgJHZhci5pc3NjYWxhciwgJHZhci5pc2NvbHVtbgogICAgIC0gJHZhci5wYXJlbnQgcmV0dXJucyB0aGUgcGFyZW50IGxhYmVsIHN0cmluZyBvZiB0aGUgbm9kZS4KICAgCjIwMDMtMDYtMjUgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggcmVxdWVzdCAtPiByZXF1ZXN0cyBhcyBwb2ludGVkIG91dCBieSBTdGV2ZSBCZW5ldHQKICAgCjIwMDMtMDYtMjUgMDc6MzggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgU3RhbXAgb24gYSB0cmFpbGluZyAnLicgd2hlbiBzcGVjaWZ5aW5nIFZBQ00gT0lEcy4KICAgCjIwMDMtMDYtMjUgMDc6MzAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmM6CgogICBDYWxscyB0byByZWxlYXNlIGVudW1lcmF0aW9uIGxpc3RzIHdoZW4gbm8gbG9uZ2VyIHJlcXVpcmVkLgogICBOb3JtYWxseSB0aGlzIHdvdWxkIGJlIGhhbmRsZWQgYXV0b21hdGljYWxseSB3aGVuIGFuIGFwcGxpY2F0aW9uCiAgIGV4aXN0cywgYnV0IGl0IG1pZ2h0IGJlIHVzZWZ1bCB0byByZWxlYXNlIHJlc291cmNlcyBlYXJsaWVyLgogICAKMjAwMy0wNi0yNSAwNzoyNCAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSAnZGxtb2QuaCcgaGVhZGVyIGZpbGUKICAgCjIwMDMtMDYtMjQgMDY6MjAgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLm5vdGlmeS5jb25mOgoKICAgSW5pdGlhbCBzdXBwb3J0IGZvciBjb2RlIHRvIHNlbmQgb3V0IHRyYXBzIGFuZCBpbmZvcm1zLgogICBUaGlzIHN0aWxsIGRvZXNuJ3QgYWRkcmVzcyAqd2hlbiogc3VjaCBub3RpZmljYXRpb25zIHNob3VsZAogICBiZSBnZW5lcmF0ZWQsIGJ1dCBpdCBhdCBsZWFzdCBoZWxwcyB3aXRoIGRvaW5nIHNvLgogICAKMjAwMy0wNi0yMyAyMjozMCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICBSZW1vdmUgdG9vIG11Y2ggbWVtZHVwJ2luZyBpbiBpbmZvcm0gcmVwbHkKICAgCjIwMDMtMDYtMjMgMTQ6MzMgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBBZGQgQVBTLU1JQiBhbmQgTUFMTE9DLU1JQgogICAKMjAwMy0wNi0yMyAxNDozMSAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlIGZyb20gSUFOQQogICAKMjAwMy0wNi0yMyAxNDozMCAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICByZW1vdmUgbm93IHVudXNlZCBzbm1wX2Nsb25lX3BkdTIKICAgCjIwMDMtMDYtMjMgMTI6MzcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgaW5jbHVkZSB3YWl0LmggZm9yIHdhaXRwaWQsIGFuZCByZS1pbnN0YXRlIHRoZSBjb2RlIHRoYXQgcmVzcG9uZHMgdG8gYW4gaW5mb3JtCiAgIAoyMDAzLTA2LTIzIDA2OjQ3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oCjoKCiAgIFV0aWxpdHkgcm91dGluZSB0byBjb252ZXJ0IHYxIHRyYXBzIHRvIHYyLW5vdGlmaWNhdGlvbi1zdHlsZSB2YXJiaW5kIGxpc3QuCiAgIAoyMDAzLTA2LTIzIDA2OjM1ICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgQ29uc3RydWN0IGEgbGlicmFyeSBjb250YWluaW5nIHRoZSBjb3JlIHRyYXBkIGhhbmRsaW5nIGZ1bmN0aW9uYWxpdHkuCiAgIAoyMDAzLTA2LTIzIDA2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmg6CgogICBUaGUgc3lzT1JUYWJsZSBtb2R1bGUgaXMgZGVwZW5kZW50IG9uIHN5c3RlbV9taWIsIHNvIGVuc3VyZSB0aGlzIGlzIGF2YWlsYWJsZS4KICAgCjIwMDMtMDYtMjMgMDY6MTMgIGR0czEyCgogICAqIGFwcHMvOiBub3RpZmljYXRpb25fbG9nLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuaCwgbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgQ29uc29saWRhdGUgdGhlIG5vdGlmaWNhdGlvbiBoYW5kbGVyIGluIHdpdGggdGhlIHJlc3Qgb2YgdGhlCiAgIE5PVElGSUNBVElPTi1NSUIgcmVsYXRlZCBjb2RlLgogICAKMjAwMy0wNi0yMyAwNjowMSAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBTaHVmZmxlIGNvZGUgYXJvdW5kIGEgYml0LiAgVGhlIHRocmVlIGZpbGVzICdzbm1wdHJhcGRfaGFuZGxlcnMuYycsCiAgICdzbm1wdHJhcGRfbG9nLmMnIGFuZCAnbm90aWZpY2F0aW9uLmMnIG5vdyBjb250YWluIGFsbCB0aGUgY29kZQogICBuZWVkZWQgdG8gcHJvY2VzcyBhbiBpbmNvbWluZyB0cmFwLgogICBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gZW1iZWQgdGhpcyBmdW5jdGlvbmFsaXR5IHdpdGhpbiBhbiBsYXJnZXIKICAgYXBwbGljYXRpb24sIHJhdGhlciB0aGFuIGhhdmluZyB0byB1c2UgdGhlICdzbm1wdHJhcGQuYycgd3JhcHBlci4KICAgCjIwMDMtMDYtMjIgMTY6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgKi5jIGFuZCAqLmggZmlsZXMuCiAgIAoyMDAzLTA2LTIyIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IG5ldFNubXBIb3N0c1RhYmxlLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlLmgsIG5ldFNubXBIb3N0c1RhYmxlX2FjY2Vzcy5jLAogICBuZXRTbm1wSG9zdHNUYWJsZV9hY2Nlc3MuaCwgbmV0U25tcEhvc3RzVGFibGVfY2hlY2tmbnMuYwosIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zLmgsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmMsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2NoZWNrZm5zX2xvY2FsLmgsCiAgIG5ldFNubXBIb3N0c1RhYmxlX2NvbHVtbnMuaCwgbmV0U25tcEhvc3RzVGFibGVfZW51bXMuaDoKCiAgIC0gQSBuZXRTbm1wSG9zdHNUYWJsZSBpbXBsZW1lbnRhdGlvbiB0aGF0IGltcGxlbWVudHMgYSB0YWJsZV9pdGVyYXRvcgogICAgIHdyYXBwZXIgYXJvdW5kIC9ldGMvaG9zdHMuICBOb3RlIHRoYXQgYWx0aG91Z2ggdGhpcyBpcyB0aGUgZmlyc3QgY2hlY2sKICAgICBpbiwgaXQgaXMgbm90IGVudGlyZWx5IGNvbXBsZXRlIHlldC4gIFNwZWNpZmljYWxseToKICAgICAtIEl0IGRvZXNuJ3Qgc3VwcG9ydCByb3cgY3JlYXRpb24geWV0IChteSBuZXh0IHRhcmdldCkgYW5kIGRlbGV0aW9uIHlldC4KICAgICAtIEl0IGltcGxlbWVudHMgYSBidW5jaCBvZiBzdHVmZiBpdHNlbGYgaW4gbmV0U25tcEhvc3RzVGFibGUuYyB0aGF0CiAgICAgICB3aWxsIGV2ZW50dWFsbHkgZ28gaW50byBhIG1vcmUgZ2VuZXJpYyBoZWxwZXIuCiAgICAgLSBJdCBkb2Vzbid0IHN1cHBvcnQgYW55dGhpbmcgYnV0IGlwdjQgeWV0IGJ1dCBkb2Vzbid0IGlnbm9yZSBpdCBpbgogICAgICAgdGhlIGhvc3RzIGZpbGUgKGluZXRfYXRvbiByZXR1cm5zIGEgLTEgdGh1cyBhbGwgaXB2NiBhZGRyZXNzIGdldAogICAgICAgbWFwcGVkIHRvIDI1NS4yNTUuMjU1LjI1NSkuCiAgIC0gSXQgaXMgc3RpbGwgdXNlZnVsIGp1c3QgdG8gc2hvdyBob3cgU0VUIG9wZXJhdGlvbnMgY2FuIGJlIHBlcmZvcm1lZAogICAgIHVzaW5nIGEgdGFibGVfaXRlcmF0b3IuCiAgIC0gUGx1cyBJIG5lZWRlZCB0byBjaGVjayBpdCBpbiBiZWZvcmUgSSBzdGFydCBtZXNzaW5nIHdpdGggaXQgYWdhaW4KICAgICBqdXN0IGZvciBhcmNoaXZhbCBwdXJwb3Nlcy4KICAgCjIwMDMtMDYtMjIgMTY6MTQgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIENyZWF0ZSBhbiBleGFtcGxlIHRhYmxlIHRoYXQgaXMgYSB3cmFwcGVyIGFyb3VuZCAvZXRjL2hvc3RzIGRhdGEuCiAgIAoyMDAzLTA2LTIyIDEyOjUzICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIElORk8gaXMgbm90IGEgZmFjaWxpdHkgLSBVU0VSIGNvdWxkIGJlCiAgIAoyMDAzLTA2LTIyIDEyOjUwICBuYmEKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIEFkZCB0aGUgbmV3IC1MIG9wdGlvbiB0byB0aGUgdXNhZ2UgbWVzc2FnZQogICAKMjAwMy0wNi0yMiAxMjo0OSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICBBZGQgc29tZSBtaXNzaW5nIHByb3RvdHlwZXMsIGFuZCB1c2UgdGhlbQogICAKMjAwMy0wNi0yMiAxMjo0NiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBEbyBhd2F5IHdpdGggc29tZSB3YXJuaW5ncwogICAKMjAwMy0wNi0yMiAxMjo0NCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIGNvbnN0aWZ5IGEgZmV3IGFyZ3VtZW50cywgbWFrZSBzdXJlIHRoYXQgd2UgZGVmYWx0IG91dHB1dCB0byBzdGRlcnIKICAgCjIwMDMtMDYtMjIgMTI6NDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYwosIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi92YWNtLmM6CgogICBEbyBhd2F5IHdpdGggc29tZSB3YXJuaW5ncwogICAKMjAwMy0wNi0yMiAxMjozOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgVW50YW5nbGUgYSBtb3N0IGV4dHJvcmRpbmFyeSB3ZWIgb2cgRnJlZUJTRCBhbmQgTGludXgKICAgCjIwMDMtMDYtMjIgMDc6MjIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIGZpeCBoZWxwIHVzYWdlIGZvciBmbGFnIG9yZGVyaW5nLgogICAKMjAwMy0wNi0yMiAwNzoyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGFkZCAtcyBTVUZGSVggYW5kIC1TIFBSRUZJWCBmbGFncwogICAtIGRveHlnZW4gZG9jdW1lbnQgc25tcF9wYXJzZV9vaWQKICAgLSBBZGQgYSBwcm9wZXIgTDogdG9rZW4gdG8gZ2V0b3B0IGZvciBhIG1pc3NpbmcgYWNjZXB0ZWQgZmxhZwogICAKMjAwMy0wNi0yMCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4IHRoZSBsb29wIGZyZWUgYmVmb3JlIGNhbGwtc3ViLWhvb2sgb3JkZXJpbmcgcHJvYmxlbSBEYXZlIHBvaW50ZWQgb3V0CiAgIAoyMDAzLTA2LTIwIDExOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIFN1cHBvcnQgdGhlIG9wdGlvbiBmb3Igc29ydGVkIGl0ZXJhdG9yLWJhc2VkIHRhYmxlcywgdG9vLgogICAKMjAwMy0wNi0yMCAxMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgU3RvcCBzZWFyY2hpbmcgb25jZSB3ZSd2ZSBmb3VuZCBhbGwgImV4YWN0IiByZXF1ZXN0ZWQgcm93cy4KICAgCjIwMDMtMDYtMTkgMDE6NTQgIGR0czEyCgogICAqIG1hbi86IHNubXBzZXQuMS5kZWYsIHNubXB0cmFwLjEuZGVmOgoKICAgQ2xhcmlmeSB0aGUgQVNOLjEgdHlwZSBtYXBwaW5ncyBmb3IgY29tbWFuZC1saW5lIHR5cGUgc3BlY2lmaWNhdGlvbnMuCiAgIAoyMDAzLTA2LTE3IDA1OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgU3RhcnQgdXNpbmcgdGhlIG5ldyAtTHggc3R5bGUgbG9nZ2luZyBvdXRwdXQuCiAgIFVuZm9ydHVuYXRlbHksIHRoaXMgZG9lc24ndCBzZWVtIHRvIHN1cHBvcnQgdGhlIG9sZCAtTCBmb3JtYXQKICAgKHNlZSBjb21tZW50cyBpbiBzbm1wbGliL3NubXBfbG9nZ2luZy5jIGZvciBkZXRhaWxzKS4KICAgCiAgIEl0IG1heSBwcm92ZSBuZWNlc3NhcnkgdG8gcmV2ZXJzZSB0aGlzIHBhdGNoOi0oCiAgIEJ1dCBJJ20gY29tbWl0dGluZyBpdCBhbnl3YXksIGluIGNhc2UgYW55b25lIGNhbiBzcG90IGEgc3VpdGFibGUgd29ya2Fyb3VuZC4KICAgCjIwMDMtMDYtMTcgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBNaW5vciB0d2VhayB0byBzdGRvdXQvc3RkZXJyIGhhbmRsaW5nLCB0byBpbXByb3ZlIHRoZSBhcHBlYXJhbmNlIG9mCiAgIE1JQiBncm91cCBvdXRwdXQuCiAgIAoyMDAzLTA2LTE3IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zTG9nZ2luZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0xvZ2dpbmcuaCwgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0CjoKCiAgIE1JQiBncm91cCB0byBtYW5hZ2UgYWdlbnQgbG9nZ2luZyBjb25maWd1cmF0aW9uLgogICAKMjAwMy0wNi0xNiAxNDo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJVTlRFU1RTIChWNS0wLXBhdGNoZXMuNCksIFJVTlRFU1RTOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBuZWVkZWQgY29tbWVudCBhYm91dCBpdCBiZWluZyBicm9rZW4sIGFzIHBvaW50ZWQgb3V0CiAgIGJ5IEJydWNlLgogICAKMjAwMy0wNi0xNiAxNDo1NSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJVTlRFU1RTIChWNS0wLXBhdGNoZXMuMyksIFJVTlRFU1RTOgoKICAgc3VwcG9ydCAsIHNlcGFyYXRlZCBhcmd1bWVudHMgdG8gLVQgbGlrZSAtaCBzYXlzIGl0IHdpbGwuCiAgIAoyMDAzLTA2LTE2IDE0OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL1JVTlRFU1RTOgoKICAgUGF0Y2ggZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBvdXRwdXQgbnVtYmVyaW5nIHdoZW4gdXNpbmcgLVQgb3IKICAgaW50ZXJhY3RpdmVseSBwaWNrZWQgc3ViLXNlcmllcyBvZiB0ZXN0cy4KICAgCjIwMDMtMDYtMTYgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jIChWNS0wLXBhdGNoZXMuMiksCiAgIGtlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoICM3NTU1NDAgZnJvbSBCcnVjZSBTaGF3IGFuZCBJUkM6U2ViTm9iIHRvIGZpeCBidWcgIzcwMTQzOSBmb3IgNjQgYml0IHNvbGFyaXMgc3lzdGVtcyBhbmQgNjQgYml0IGludGVnZXJzIHJldHVybmVkIGJ5IGdldEtzdGF0CiAgIAoyMDAzLTA2LTE2IDEzOjE3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwCjoKCiAgIFBhdGNoICM3NTQxMDUgZnJvbSBCcnVjZSBTaGF3IHRvIGZpeCBzb21lIHNwZWxsaW5nIGVycm9ycwogICAKMjAwMy0wNi0xNiAwNzoyMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIHlldCBtb3JlIGltcHJvdmVtZW50cyB3b3JraW5nIHRvd2FyZCB0aGUgZW5kLWdvYWwuCiAgIAoyMDAzLTA2LTE2IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuUGFuYXNvbmljX0FNM1gudHh0LCBSRUFETUUuTWF0c3VzaGl0YS50eHQ6CgogICByZW5hbWVkIHRvIFBhbmFzb25pY19BTTNYIGJ5IHJlcXVlc3QKICAgCjIwMDMtMDYtMTMgMjI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIE9rLCB0aGVyZSB3YXMgMSBtZW1vcnkgbGVhay4gIEJ1dCBpdHMgZ29uZSBub3cuCiAgIAoyMDAzLTA2LTEzIDIyOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBBIGNvbXBsZXRlIHJld3JpdGUgb2YgdGhlIGl0ZXJhdG9yIGZyb20gc2NyYXRjaC4KICAgICAtIDYwIGxpbmVzIG9yIHNvIGxlc3MgY29kZS4KICAgICAtIG5vIGxvbmdlciBmb3JjZWQtc2VyaWFsaXplZAogICAgIC0gbWVtb3J5LWxlYWsgZnJlZQogICAgIC0gYmV0dGVyIGNvbW1lbnRlZCAodGhvdWdoIG1vcmUgY291bGQgYWx3YXlzIGJlIHVzZWZ1bCkuCiAgICAgLSBzaWduaWZpY2FudGx5IHNpbXBsZXIgaW4gZGVzaWduLgogICAgIC0gZGVtb25zdHJhdGlvbiBleGFtcGxlIG1pYiBtb2R1bGUgY29kZSB0byBiZSBjaGVja2VkIGluIGVhcmx5IG5leHQgd2Vlay4KICAgCjIwMDMtMDYtMTMgMTE6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgZml4IHJhbmdlIGNoZWNrcyBub3cgdGhhdCBpdHMgbm8gbG9uZ2VyIHRoZSBsYXN0IHRoaW5nIGNhbGxlZC4KICAgCjIwMDMtMDYtMTMgMTE6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmFjY2Vzc19mdW5jdGlvbnMuY29uZjoKCiAgIG1pc2MgbWlub3IgZml4ZXMuCiAgIAoyMDAzLTA2LTEzIDExOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBlbHNlIGNsYXVzZXMgd2l0aGluIGlmIHN0YXRlbWVudHMuCiAgIAoyMDAzLTA2LTEzIDA4OjM2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBIYW5kbGUgcHJvYmxlbXMgd2l0aCByZWFkaW5nIHByb2Nlc3MgaW5mb3JtYXRpb24gb24gU29sYXJpcyBraXQsIGNvbnNpc3RlbnRseSBhbmQgY2xlYW5seS4KICAgCjIwMDMtMDYtMTMgMDY6MjggIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEltcGxlbWVudCAnLUx4JyBjb21tYW5kLWxpbmUgbWV0YS1vcHRpb24gZm9yIGNvbmZpZ3VyaW5nIGxvZ2dpbmcgc2V0dGluZ3MuCiAgIE5vdCAxMDAlIGNvbnZpbmNlZCB0aGlzIGlzIGZ1bGx5IHdvcmtpbmcsIGJ1dCBkb2VzIHNlZW0gdG8gc3VwcG9ydAogICBtdWx0aXBsZSBvdXRwdXQgbG9jYXRpb25zLgogICAKMjAwMy0wNi0xMCAxNTo0OCAgbmJhCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNS0wLXBhdGNoZXMuNyksIHNubXBfYXBpLmM6CgogICBCZXdhcmUgb2YgZGVyZWZlcmVuY2luZyBhIE5VTEwgcG9pbnRlcgogICAKMjAwMy0wNi0xMCAxMDo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjYWNoaW5nIGhhbmRsZXIgZmlsZQogICAKMjAwMy0wNi0xMCAwODo0OCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSW5pdGlhbCBiYXNoIGF0IGEgbW9kdWxhciAibG9nX2hhbmRsZXIiIGltcGxlbWVudGF0aW9uLgogICBMYXlpbmcgdGhlIGZvdW5kYXRpb25zIGZvciBtb3JlIGZsZXhpYmxlIGxvZ2dpbmcgY29uZmlndXJhdGlvbi4KICAgCjIwMDMtMDYtMTAgMDg6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJlbW92ZSB0aGUgdW51c2VkIGZ1bmN0aW9uIGFzIHBvaW50ZWQgb3V0IGJ5IEJvYiBSb3dsYW5kcwogICAKMjAwMy0wNi0wOSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwgc25tcGxpYi92YWNtLmMKICAgKFY1LTAtcGF0Y2hlcy5bMSwzLDEsMV0pLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIExvbmcgb3ZlcmR1ZSBwYXRjaCAjNjk1MTkyIGZyb20gUm9uIFRhYm9yIHRvIGZpeCB0aGUgVkFDTSBzcGlubmluZyBwcm9ibGVtIHRoYXQgSSBkaWRuJ3QgcXVpdGUgZml4IGJlZm9yZQogICAKMjAwMy0wNi0wOSAxNTo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCB0ZXN0aW5nL3Rlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVMsCiAgIHRlc3RpbmcvdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywgY29uZmlndXJlOgoKICAgZml4IGJ1ZyAjNzA2NzEwIHRvIHNob3cgd2hlbiBwcml2YWN5IGhhcyBiZWVuIGRpc2FibGVkCiAgIAoyMDAzLTA2LTA5IDE1OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgZml4IGJ1ZyAjNzA2NzQxIGZyb20gU2VhbiBCdXJrZTogY2hlY2sgZm9yIHdvcmQgYm91bmRhcmllcyBiYXNlZCBvbiBhCiAgIHByb3BlciBzaXplIChzaXplb2YobG9uZykpLgogICAKMjAwMy0wNi0wOSAxNTozNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBidWcgIzc0ODQzMSBmcm9tIEpvaG4gU2hpdmVyOiBmaXggdGhyZWFkLXNhZmUgcHJvYmxlbXMgd2l0aCBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbiAod2hpY2ggd2FzIG1pc3NpbmcgaW4gdGhlIDUueCBsaW5lIGFueXdheSkuICBBbHNvIHNlcGFyYXRlIG91dCB1bmlvbiBzdHJ1Y3R1cmUgaW50byBhIHNlcGFyYXRlIHR5cGVkZWYgcmF0aGVyIHRoYW4gdXNlIGl0IGlubGluZSBpbiB0aGUgdmFyaWFibGUgbGlzdCBzdHJ1Y3R1cmUKICAgCjIwMDMtMDYtMDkgMTU6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggYnVnICMgNzUxMTk3IHBvaW50ZWQgb3V0IGJ5IFRvbSBFdmFucyB3aGVyZSBpc3NwYWNlIGlzIHVzZWQgdG8gY2hlY2sgZm9yIGhleCBjaGFyYWN0ZXJzIHdoZW4gaXNwcmludCgpIGlzIGFsbCB0aGF0IGlzIG5lZWRlZAogICAKMjAwMy0wNi0wOSAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfYWl4NC5oLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYWl4NC5oLCBhY2NvbmZpZy5oLAogICBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwYXRjaCAjNzQ5NTUyIGZyb20gdmF4cG93ZXIgKHdpdGggbW9kaWZpY2F0aW9ucyBieSBXZXMpOiBtdWNoIGltcHJvdmVkIEFJWCBzdXBwb3J0CiAgIAoyMDAzLTA2LTA5IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuTWF0c3VzaGl0YS50eHQgKFY1LTAtcGF0Y2hlcy4xKSwgUkVBRE1FLk1hdHN1c2hpdGEudHh0CjoKCiAgIFBhdGNoICM3NDgzMDUgZnJvbSBzcmluaXZhc2EgcmFvIGd1cnVzdSBkZXNjcmliaW5nIGhvdyB0byBidWlsZCBuZXQtc25tcCBvbiBNYXRzdXNoaXRhIGVtYmVkZGVkIHN5c3RlbXMKICAgCjIwMDMtMDYtMDkgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMgKFY1LTAtcGF0Y2hlcy4zKSwgaXBBZGRyLmM6CgogICBQYXRjaCA3NDYzMzk6IE90dG8gU29sYXJlcyBmaXhlcyBhIGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGxpbnV4CiAgIAoyMDAzLTA2LTA5IDE0OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAoVjUtMC1wYXRjaGVzLjEpLAogICBrZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzQ5MDYyIHRvIGZpeCBjYWNoaW5nIGNyYXNoaW5nIGFuZCBjbGFzaGluZyB1bmRlciBTb2xhcmlzCiAgIAoyMDAzLTA2LTA5IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMgKFY1LTAtcGF0Y2hlcy4yKSwgcHJveHkuYwo6CgogICBwYXRjaCAjNzQ5MTAzIGZyb20gR2FycnkgQyBNYXJzaGFsbCB0byBmaXggdGhlIHByb3h5IHdoZW4gYSB0aW1lb3V0IG9jY3VycyBmcm9tIHRoZSB0YXJnZXQKICAgCjIwMDMtMDYtMDkgMDQ6MDEgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvY2FjaGVfaGFuZGxlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmgKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2NhY2hlX2hhbmRsZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNDYWNoZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0NhY2hlLmgsIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dAo6CgogICBNSUIgb2JqZWN0cyB0byBtYW5hZ2UgY29uZmlndXJhdGlvbiBvZiBNSUIgZGF0YSBjYWNoaW5nLgogICAKMjAwMy0wNi0wOSAwMzo1NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNEZWJ1Zy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmgsIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dAosIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgUmV3b3JrIG5zRGVidWdUb2tlblRhYmxlIHRvIGJlIGluZGV4ZWQgYnkgdGhlIGRlYnVnIHRva2VuIHN0cmluZyB2YWx1ZXMuCiAgIAoyMDAzLTA2LTA2IDA4OjQ1ICBkdHMxMgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICBzbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIEltcGxlbWVudCB2YXJpb3VzIHNlcGFyYXRlIGxpc3RzIG9mICJnbG9iYWwiIGhhbmRsZXJzLCB0byBzdXBwb3J0CiAgIHByZS0gYW5kIHBvc3Qtc3BlY2lmaWMgZ2xvYmFsIHByb2Nlc3NpbmcsIGFzIHdlbGwgYXMgImF1dGhlbnRpY2F0aW9uIgogICBoYW5kbGVycywgd2hpY2ggYXJlIGd1YXJhbnRlZWQgdG8gYmUgY2FsbGVkIGZpcnN0LgogICBBbHNvIHN1cHBvcnQgZm9yIHRlcm1pbmF0aW5nIHRyYXAgcHJvY2Vzc2luZyBlYXJseS4KICAgCiAgIERvbid0IGxldCBtZSBoZWFyIHlvdSBzYXkgdGhhdCBJIG5ldmVyIGxpc3RlbiB0byB5b3UsIFdlcyEKICAgCjIwMDMtMDYtMDYgMDY6NDIgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IG1pc3NpbmcgbGVuZ3RoIGJ5dGUgd2hlbiBzZXR0aW5nIGluZGV4IHdpdGggY2hlY2tzIGRpc2FibGVkCiAgIAoyMDAzLTA2LTA2IDAxOjMyICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKOgoKICAgQ2xhcmlmeSB3aGljaCAicltvd117dXNlcixjb21tdW5pdHl9IiBwYXJhbWV0ZXJzIGFyZSBvcHRpb25hbCwgYW5kICBpbiB3aGljaCBjb21iaW5hdGlvbnMuCiAgIAoyMDAzLTA2LTA0IDA1OjU2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2NhY2hlX2hhbmRsZXIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9jYWNoZV9oYW5kbGVyLmg6CgogICBGaXJzdCBwYXNzIGF0IGEgZGF0YS1jYWNoaW5nIGhlbHBlciAtIGluZGVwZW5kZW50IG9mIGluZGl2aWR1YWwgTUlCIG1vZHVsZXMuCiAgIChpLmUuIGl0J3MgdXAgdG8gZWFjaCBNSUIgbW9kdWxlIHRvIHByb3ZpZGUgImxvYWQgZGF0YSIgYW5kICJmcmVlIGRhdGEiCiAgICByb3V0aW5lcywgYnV0IHRoZSBoYW5kbGluZyBvZiB3aGVuIHRvIGxvYWQgdGhlc2UgY2FjaGVzIGlzIGRvbmUgaGVyZSkuCiAgIAogICBUaGUgaW50ZW50aW9uIGlzIHRoYXQgdGhpcyBmdW5jdGlvbmFsaXR5IHdpbGwgYmUgU05NUC1tYW5hZ2VhYmxlIChpbmNsdWRpbmcKICAgY29uZmlndXJhdGlvbiBvZiB2YWxpZGl0eSB0aW1lb3V0cywgaW52YWxpZGF0aW9uIG9mIGNhY2hlZCB2YWx1ZXMsIGV0YykuCiAgIEJ1dCBmb3Igbm93LCB0aGlzIGlzIGp1c3QgdGhlIGJhc2ljIGhhbmRsZXIuCiAgIAoyMDAzLTA2LTA0IDA1OjUwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3NjYWxhcl9ncm91cC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NjYWxhcl9ncm91cC5oOgoKICAgU2luZ2xlIGhlbHBlciB0byBpbXBsZW1lbnQgYSBncm91cCBvZiBzY2FsYXIgb2JqZWN0cyBpbiBvbmUgZ28uCiAgIChDbG9zZXIgdG8gdGhlIG1vZGVsIG9mIHRoZSBlYXJsaWVyIHY0IEFQSSkKICAgCjIwMDMtMDYtMDMgMTc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1lbnRpb24gd2hlcmUgImxhdGVyIiBhY3R1YWxseSBpcy4KICAgCjIwMDMtMDYtMDIgMDU6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oOgoKICAgRGVjbGFyYXRpb25zIGZvciBpbXByb3ZlZCBTb2xhcmlzIENQVSBzdXBwb3J0IGZyb20gcGF0Y2ggIzczODQ2NSkKICAgKE9vcHMhKQogICAKMjAwMy0wNi0wMiAwNTozNSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIFNpbXBsZSBpbXBsZW1lbnRhdGlvbiBvZiBmb3J3YXJkaW5nIHRyYXBzIHRvIGFub3RoZXIgZGVzdGluYXRpb24uCiAgIChJJ3ZlIGdvdCBhIG51bWJlciBvZiBpZGVhcyBvZiBob3cgdGhpcyBjb3VsZCBiZSBkb25lIG1vcmUgZmxleGlibHksCiAgICBidXQgdGhpcyBzZXJ2ZXMgYXMgYSBiYXNpYyBwcm9vZi1vZi1jb25jZXB0LCBmb3IgZmVlZGJhY2sgJiBjb21tZW50KQogICAKMjAwMy0wNi0wMiAwNTozMyAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmg6CgogICBNb2R1bGFyaXNlZCBhcHByb2FjaCB0byBkaWZmZXJlbnQgc3R5bGVzIG9mIGhhbmRsaW5nIGluY29taW5nIHRyYXBzLgogICBUaGlzIHNlZW1zIHRvIHJldGFpbiB0aGUgc2FtZSBiZWhhdmlvdXIgYW5kIG91dHB1dCBmb3JtYXRzIGFzIHRoZQogICBlYXJsaWVyIGNvZGUsIGJ1dCBzaG91bGQgYmUgbXVjaCBtb3JlIGZsZXhpYmxlIHRvIGV4dGVuZCBhbmQgYWRhcHQuCiAgIAoyMDAzLTA1LTMwIDE3OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmM6CgogICBtYWtlIHVzZSBvZiBuZXcgZXhwb3J0ZWQgaXRlbXMgZnJvbSBzbm1wX2RlYnVnLgogICAKMjAwMy0wNS0zMCAxNzoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmYsCiAgIG1pYjJjLmNoZWNrX3ZhbHVlcy5jb25mOgoKICAgbW9yZSBjbGVhbnVwcwogICAKMjAwMy0wNS0zMCAxNjo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuYWNjZXNzX2Z1bmN0aW9ucy5jb25mLAogICBtaWIyYy5jaGVja192YWx1ZXMuY29uZiwgbWliMmMuY2hlY2tfdmFsdWVzX2xvY2FsLmNvbmYsCiAgIG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIFVwZGF0ZSB0byBtaWIyYyBjb2RlIGZvciBwcm9kdWNpbmcgd2hhdCBJIHRoaW5rIHNob3VsZCBiZSBhbiBlYXNpZXIgdG8KICAgdXNlIEFQSSBzZXQgKHRoYXQgaXMgbm90IGFsbCB3cmFwcGVkIGludG8gYSBzaW5nbGUgZnVuY3Rpb24pLgogICAKMjAwMy0wNS0zMCAxNjo1MSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgZml4IG1pYiB0eXBvCiAgIAoyMDAzLTA1LTMwIDE2OjUxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgZGVmaW5lIGEgbm9vcCBmcmVlIGZ1bmN0aW9uLgogICAKMjAwMy0wNS0zMCAxNjo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMKOgoKICAgZXhwb3J0IGluZm9ybWF0aW9uIG5lZWRlZCBieSB0aGUgbmV3IGRlYnVnIG1vZHVsZXMuCiAgIAoyMDAzLTA1LTMwIDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhZGRlZCBhIGNvbXBpbGluZyBzZWN0aW9uIHdpdGggb25lIG5ldyBxdWVzdGlvbiBhYm91dCBsaWJlbGYuICBPdGhlciBxdWVzdGlvbnMgcHJvYmFibHkgc2hvdWxkIGJlIG1vdmVkIHRvIHRoZSBuZXcgc2VjdGlvbgogICAKMjAwMy0wNS0zMCAwNToxNCAgZHRzMTIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXB2YWNtLjEuZGVmOgoKICAgUHJlbGltaW5hcnkgbWFuIHBhZ2UgZm9yIHNubXB2YWNtCiAgIAoyMDAzLTA1LTMwIDAzOjU5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBIYW5kbGUgYmxvY2sgc2l6ZXMgPDFLIHdoZW4gY29udmVydGluZyBibG9jayBjb3VudHMgdG8gS2IuCiAgIFJlcG9ydGVkIGJ5IEV1Z2VuZSBWLiBDaHVwcml5YW5vdiAod2F5IGJhY2sgaW4gT2N0b2JlciEpLgogICBGbGF3cyB3aXRoIHRoZSBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIHBhdGNoIGFyZSBteSByZXNwb25zaWJpbGl0eS4KICAgKEknbSBub3QgdG90YWxseSBoYXBweSBhYm91dCBjYXN0aW5nIHRvIGZsb2F0IGluIHRoaXMgd2F5LAogICAgYnV0IGl0IHNlZW1lZCB0aGUgYmVzdCBvZiBhIGJhZCBsb3QpLgogICAKMjAwMy0wNS0zMCAwMzozOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBTaWduaWZpY2FudGx5IGltcHJvdmVkIHN1cHBvcnQgZm9yIFNvbGFyaXMgQ1BVIGluZm9ybWF0aW9uCiAgIChpbmNsdWRpbmcgZGVzY3JpcHRpb24sIHN0YXR1cyBhbmQgbXVsdGktQ1BVIHN1cHBvcnQpLgogICBUaGFua3MgdG8gSmFtZXMgSXJ3aW4gZm9yIGltcGxlbWVudGluZyBpdCAoc2VlIHBhdGNoICM3Mzg0NjUpCiAgIE5vIHRoYW5rcyB0byBEYXZlIFNoaWVsZCBmb3Igc2l0dGluZyBvbiBpdCBmb3IgYSBjb3VwbGUgb2Ygd2Vla3MuCiAgIEJhZCBEYXZlISBCYWQgRGF2ZSEKICAgCjIwMDMtMDUtMjggMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvOiBvbGRfYXBpLmMgKFY1LTAtcGF0Y2hlcy4xKSwgb2xkX2FwaS5jOgoKICAgcmVtb3ZlIHVudXNlZCBjb2RlIGFzIHBvaW50ZWQgb3V0IGJ5IFBldGVyIFdhcmFzaW4KICAgCjIwMDMtMDUtMjggMTY6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggZ2V0YnVsayBvcGVyYXRpb25zIChob3BlZnVsbHkpLCBhcyBwb2ludGVkIG91dCBieSBSb24gVGFib3IuCiAgIAoyMDAzLTA1LTI4IDA2OjEyICBkdHMxMgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgQ2xlYXIgdGhlIG91dHB1dCBidWZmZXIgYmVmb3JlIGRpc3BsYXlpbmcgdGhlIHNlY29uZCAob3Igc3Vic2VxdWVudCkKICAgdmFyYmluZCBpbiBhIG11bHRpLXZhbHVlIHRhYmxlIGZvcm1hdC4gIEJ1ZyBzcG90dGVkIGJ5IFN0ZWZhbm8gQm9kcmF0by4KICAgCjIwMDMtMDUtMjggMDU6MTQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcm93X21lcmdlLmgsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvcm93X21lcmdlLmM6CgogICBIZWxwZXIgdG8gZ3JvdXAgcmVsYXRlZCByZXF1ZXN0cyBmb3IgdGhlIHNhbWUgcm93IHRvZ2V0aGVyLiAgU3ViLWhhbmRsZXJzCiAgIGNhbiB0aGVyZWZvcmUgd29yayB3aXRoIG11bHRpcGxlIHZhcmJpbmRzLCBhbGwgcmVsYXRpbmcgdG8gdGhlIHNhbWUgcm93LgogICAKICAgVGhpcyB3YXMgb3JpZ2luYWxseSBpbnRlbmRlZCBmb3IgdXNlIHdpdGggdGhlIGl0ZXJhdG9yIGhlbHBlciwgYnV0CiAgIHRoYXQgaGVscGVyIGlzIGFwcGFyZW50bHkgYmVpbmcgcmV3b3JrZWQgYXQgdGhlIG1vbWVudC4gIEJ1dCB0aGlzIHNlZW1zCiAgIGEgcG90ZW50aWFsbHkgdXNlZnVsIGZlYXR1cmUgYW55d2F5LCBzbyBJJ20gY29tbWl0dGluZyBpdCByZWdhcmRsZXNzIQogICAKMjAwMy0wNS0yOCAwNDoxOSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSBzdHJheSBeTSBsaW5lIGVuZGluZ3MKICAgCjIwMDMtMDUtMjggMDI6MjEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvOiBkbG1vZC5jLCBkbG1vZC5oOgoKICAgUmVtb3ZlIHJlZHVuZGVudCB2ZXJzaW9uIG9mICdkbG1vZCcuICAgVGhpcyB3YXMgbW92ZWQgdG8gJ3VjZC1zbm1wJwogICBpbiAyMDAwLCBhbmQgdGhpcyAnbWlzYycgdmVyc2lvbiBoYXMgYmVlbiBlZmZlY3RpdmVseSB1bnRvdWNoZWQgc2luY2UuCiAgIExlYXZpbmcgaXQgYXJvdW5kIGlzIGp1c3QgYXNraW5nIGZvciBwZW9wbGUgdG8gZ2V0IGNvbmZ1c2VkLgogICAKMjAwMy0wNS0yNyAwODo1NiAgZHRzMTIKCiAgICogQUdFTlQudHh0OgoKICAgTWVudGlvbiB0aGF0IHRoaXMgZGVzY3JpYmVzIHRoZSB2NCBBUEksIHJhdGhlciB0aGFuIHRoZSB2NSBoZWxwZXIgbWVjaGFuaXNtLgogICAKMjAwMy0wNS0yMSAxMDo1OCAgaGFyZGFrZXIKCiAgICogZGlzdC9NYWtlZmlsZToKCiAgIHJwbSBmaXhlcwogICAKMjAwMy0wNS0yMSAxMDo1OCAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC5zcGVjOgoKICAgaW5zdGFsbCB0aGUgc3BlYyBmaWxlCiAgIAoyMDAzLTA1LTIxIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBtaWJJSS92YWNtX2NvbnRleHQuYzoKCiAgIEZpeCBmb3IgcHJvcGVyIG5vbi1zZXJpYWxpemVkIGl0ZXJhdG9yIHVzYWdlLgogICAKMjAwMy0wNS0yMSAwNjowNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc0RlYnVnLmgsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIE5ldyBNSUIgZ3JvdXAgdG8gbW9uaXRvciBhbmQgY29udHJvbCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gdGhlIGFnZW50LgogICBOb3RlIHRoYXQgdGhpcyBpcyBhIHByb3Zpc2lvbmFsIGltcGxlbWVudGF0aW9uLCBhbmQgdGhlIE1JQiBkZWZpbml0aW9ucwogICBhcmUgY3VycmVudGx5IHN1YmplY3QgdG8gY2hhbmdlIChhdCBsZWFzdCB1bnRpbCB3ZSBtYWtlIGEgZnVsbCByZWxlYXNlCiAgIGluY2x1ZGluZyB0aGlzIGdyb3VwKQogICAKMjAwMy0wNS0yMSAwNDozNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMgKFY0LTItcGF0Y2hlcy43KSwgcGFzcy5jOgoKICAgRml4IHBhc3Npbmcgb2YgInNldCIgcGFyYW1ldGVycyB0byBhIHBhc3MtdGhyb3VnaCBzY3JpcHQKICAgKEJ1ZyAjNjg5OTM2LCBmaXhlZCBieSBFcmljIEJvd2xlcykKICAgCjIwMDMtMDUtMjAgMDc6MzcgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgTWFudSBTaGFybWEncyBkeW5hbWljYWxseS1jb25maWd1cmFibGUgZGVidWcgdG9rZW4gaGFuZGxpbmcuCiAgIAoyMDAzLTA1LTIwIDA1OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3dhdGNoZXIuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC93YXRjaGVyLmgKOgoKICAgSW1wbGVtZW50IGEgIndhdGNoZWQgc3BpbmxvY2siIGhlbHBlci4KICAgCjIwMDMtMDUtMjAgMDQ6MjMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIEZpeCBsb2FkIGF2ZXJhZ2Ugc3VwcG9ydCBmb3IgQUlYNSAoQnVnICM1NjM5NzggcmVwb3J0ZWQgYnkgSmVmZiBDdW5uaW5naGFtKQogICAKMjAwMy0wNS0yMCAwMzoyOSAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgSW5jb3Jwb3JhdGUgTmlrb2xhaSBEZXZlcmVhdXgncyBvdmVydmlldyBvZiB0aGUgVmlzdWFsIEMrKyBvcmdhbmlzYXRpb24sCiAgIHBsdXMgc29tZSBtaW5vciByZWFycmFuZ2VtZW50IG9mIHNlY3Rpb25zLCBhbmQgdG9uZSBkb3duIGEgc29tZXdoYXQKICAgb3Zlcmx5IGVudGh1c2lhc3RpYyBjb21tZW50LgogICAKMjAwMy0wNS0xNSAyMjo0MiAgaGFyZGFrZXIKCiAgICogd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBvc2Y1IHBhdGNoIHRoYXQgbmV2ZXIgZ290IGFkZGVkLgogICAKMjAwMy0wNS0xNSAyMjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIE1pbm9yIGZpeC4KICAgCjIwMDMtMDUtMTQgMTg6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIG9vcHNpZSBkb29zaWUgZmxvb3NpZSB3b296aWUKICAgCjIwMDMtMDUtMTQgMTg6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIG9wcHMKICAgCjIwMDMtMDUtMTQgMTU6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBzb21lIG90aGVyIC5jb25mIGZpbGVzCiAgIAoyMDAzLTA1LTE0IDE1OjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIHJlbW92ZSB1bm5lZWRlZCB2YXIKICAgCjIwMDMtMDUtMTQgMTU6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgbWlzYyBtaW5vciBjaGFuZ2VzCiAgIAoyMDAzLTA1LTE0IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBjYWNoaW5nIHN1cHBvcnQgZnJvbSBhIHBhdGNoICM3MjY0MTggZnJvbSBMYXJyeSBTaW1tb25zLgogICAKMjAwMy0wNS0xNCAxNTowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0YWJsZS4xLmRlZjoKCiAgIDJuZCBQYXRjaCA3MDI3MTEgYnkgUm9uIFRhYm9yIGRvY3VtZW50aW5nIG5ldyBzbm1wdGFibGUgb3B0aW9ucwogICAKMjAwMy0wNS0xNCAxNTowNyAgaGFyZGFrZXIKCiAgICogTkVXUywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIFBhdGNoICM3MTMwNzIgZnJvbSBYaWFvZmVuZyBMaW5nIGZvciBjb20yc2VjIG1hcHBpbmdzIG9uIHVuaXggc29ja2V0cwogICB3aXRoIHBlci1zb2NrZXQgbWFwcGluZ3MuCiAgIAoyMDAzLTA1LTE0IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmM6CgogICBQYXRjaCAjNzM1NDgwIGZyb20gQnJ1Y2UgU2hhdzogYXNzdW1lIG5vIGNvLXByb2Nlc3NvciBmb3IgU3VucywgYXMgaXMgdGhlIG1vcmUgY29tbW9uIGNhc2UKICAgCjIwMDMtMDUtMTQgMDg6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIFVzZSAvZXRjL3ByaW50Y2FwIHRvIGRldGVjdCBwcmludGVycyBpbiBwcmVmZXJlbmNlIHRvIHJ1bm5pbmcgbHBzdGF0CiAgIChvciB0aGUgY2dldG5leHQoKSBBUEkpLiAgIFRoaXMgc2VlbXMgbW9yZSBpbiBrZWVwaW5nIG9mIG91ciBnZW5lcmFsCiAgIHByaW5jaXBsZSBvZiB0cnlpbmcgdG8gYXZvaWQgaW52b2tpbmcgc3ViLXByb2Nlc3NlcyB3aGVyZXZlciBwb3NzaWJsZS4KICAgCjIwMDMtMDUtMTIgMjM6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZCBSb24gVGFib3IKICAgCjIwMDMtMDUtMTIgMjM6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBkb2N1bWVudCBuZXcgc25tcHRhYmxlIG9wdGlvbnMKICAgCjIwMDMtMDUtMTIgMjM6MDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBwYXRjaCAjNzAyNzExIGZyb20gUm9uIFRhYm9yOiBBZGQgbmV3IGNvbW1hbmQgbGluZSBmbGFncyB0byBzbm1wdGFibGUgZm9yIHZhcmlvdXMgbmV3IGZlYXR1cmVzCiAgIAoyMDAzLTA1LTEyIDIyOjU4ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgKFY1LTAtcGF0Y2hlcy41KSwgc25tcHRyYXBkLmM6CgogICBQYXRjaCAjNzM1NTExIGZyb20gQWxleCBCdXJnZXI6IGZpeCBzbm1wdHJhcGQgdG8gZW5zdXJlIHRoZXJlIGFyZSB0aGUgY29ycmVjdCBudW1iZXIgb2YgdmFyYmluZHMKICAgCjIwMDMtMDUtMTIgMjI6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYyAoVjUtMC1wYXRjaGVzLjEpLCBwcm94eS5jCjoKCiAgIFBhdGNoICM3MzY3ODQgZnJvbSBSb24gVGFib3I6IGZpeCBwcm94aWVzIGZvciByZXN0YXJ0ZWQgTlNNUHYzIHN1Yi1hZ2VudHMKICAgCjIwMDMtMDUtMDkgMDg6NDcgIGR0czEyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQWRkIHZhcmlvdXMgbWlzc2luZyBmdW5jdGlvbiBuYW1lcywgc3VwcGxpZWQgYnkgQWxleCBCdXJnZXIKICAgCjIwMDMtMDUtMDkgMDg6NDEgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCB3aW4zMi5vcHQsIHdpbjMyc2RrLmRzdywKICAgbGliYWdlbnQvbGliYWdlbnQuZHNwLCBsaWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwLAogICBsaWJzbm1wL2xpYnNubXAuZHNwLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AsCiAgIG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwgc25tcGQvc25tcGQuZHNwLAogICBzbm1wZHNkay9zbm1wZC5kc3A6CgogICBBcHBseSBOaWtvbGFpIERldmVyZWF1eCdzIFZDKysgY2xlYW51cCBwYXRjaCAoIzY5NDc2NikKICAgSXQgYXBwZWFycyB0byB3b3JrIE9LIC0gSSBqdXN0IGhvcGUgdGhlIGxpbmUgdGVybWluYXRpb25zCiAgIGRvbid0IHNjcmV3IHRoaW5ncyB1cCEKICAgCjIwMDMtMDUtMDggMTY6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgUGF0Y2ggIzczMzg4MCBmcm9tIEFsZXggQnVyZ2VyIHRvIGZpeCB1c2VOdW1lcmljCiAgIAoyMDAzLTA1LTA4IDE2OjIxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9zdGFydGFnZW50LnBsOgoKICAgUGF0Y2ggIzczNDc3NCBmcm9tIEFuZHJldyBGaW5kbGF5OiBmaXggdGhlIHRlc3QgZW52aXJvbm1lbnQgZm9yIHNubXBkIHRvIGdpdmUgaXQgZnVsbHkgcXVhbGlmaWVkIHBhdGggbmFtZXMgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZXMgc2luY2Ugc25tcGQgbm93IGNoZGlyJ3MgdG8gLwogICAKMjAwMy0wNS0wOCAxNjoxNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FIChWNS0wLXBhdGNoZXMuNiksIFJFQURNRToKCiAgIG1lbnRpb24gQW5kcmV3IEZpbmRsYXkKICAgCjIwMDMtMDUtMDggMTY6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBhZ2VudC54cyAoVjUtMC1wYXRjaGVzLjEpLCBhZ2VudC54czoKCiAgIChleGNlbGxlbnQpIHBhdGNoICM3MDU1NjYgZnJvbSBBbmRyZXcgRmluZGxheSBvbiBwZXJsIGFnZW50IHN1cHBvcnQ6CiAgIAogICAxKSBBZ2VudCBjYW5ub3QgcmV0dXJuIE1BQyBhZGRyZXNzZXMgY29udGFpbmluZyB6ZXJvIG9jdGV0LgogICAKICAgMikgQWdlbnQgY29yZWR1bXBzIHdoZW4gdHJ5aW5nIHRvIHJldHVybiBJUCBhZGRyZXNzZXMKICAgaWYgdGhlc2UgYXJlIHN1cHBsaWVkIGFzIGRvdHRlZC1xdWFkIG9yIGFzIGEgaG9zdG5hbWUKICAgdGhhdCBmYWlscyB0byByZXNvbHZlLgogICAKICAgMykgQWdlbnQgY29ycnVwdHMgT0lEIHZhbHVlcy4KICAgCiAgIDQpIEFnZW50IHRydW5jYXRlcyBhbnkgT0NURVRfU1RSSU5HIG9yIEJJVF9TVFJJTkcgdGhhdAogICBjb250YWlucyBhIHplcm8gb2N0ZXQgKHRoaXMgaXMgdGhlIHJvb3QgY2F1c2Ugb2YgKDEpIGFib3ZlKQogICAKICAgQVBJIGNoYW5nZXMgaW50cm9kdWNlZDoKICAgCiAgIGEpIElQIGFkZHJlc3NlcyBub3cgcGFzc2VkIGFzIGJpbmFyeSBzdHJpbmdzICg0IG9jdGV0cwogICBmb3IgSVB2NCkgcmF0aGVyIHRoYW4gZG90dGVkLXF1YWQgb3IgbmFtZS4gVGhpcwogICBzaWRlc3RlcHMgdGhlIElQdjQvSVB2NiBwcm9ibGVtIGFuZCBsZWF2ZXMgdGhlIGNhbGxpbmcKICAgc2NyaXB0IHRvIGRlYWwgd2l0aCBuYW1lLT5hZGRyZXNzIHJlc29sdXRpb24gYW5kCiAgIGFzc29jaWF0ZWQgZXJyb3IgaGFuZGxpbmcuCiAgIAoyMDAzLTA1LTA4IDA5OjMyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgIChWNS0wLXBhdGNoZXMuWzEsMSwxLDEsMyw0LDFdKSwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBwYXRjaCAjNzEwMjc1IGZyb20gU3RlcGhlbiBKLiBGcmllZGw6IGNvbnN0IGZpeGVzIGZvciBBUElzIHRoYXQgZG9uJ3QgbW9kaWZ5IHRoZWlyIGFyZ3VtZW50cwogICAKMjAwMy0wNS0wOCAwOToyOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc3lzdGVtLmggKFY1LTAtcGF0Y2hlcy4xKSwgc3lzdGVtLmgKOgoKICAgbWlzc2VkIGEgY29tbWl0IGZvciBhIHBlcmwgcGF0Y2gKICAgCjIwMDMtMDUtMDggMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMgKFY1LTAtcGF0Y2hlcy4yKSwgaXBBZGRyLmM6CgogICBBcHBsaWVkIHBhdGNoICM3MTIxMDE6IG1pbm9yIGlyaXggZml4CiAgIAoyMDAzLTA1LTA4IDA5OjEyICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsIEFTTi9NYWtlZmlsZS5QTAosIE9JRC9NYWtlZmlsZS5QTCwgU05NUC9NYWtlZmlsZS5QTCwgU05NUC9SRUFETUUKLCBTTk1QL1NOTVAueHMsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIHBhdGNoICM3MTU2MDM6IGZpeCBwZXJsIG1vZHVsZSBidWlsZHMgdW5kZXIgd2luZG93cwogICAKMjAwMy0wNS0wOCAwODozMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwo6CgogICBhcHBseSBwYXRjaCBbIDcyNDkyNyBdIHRvIGZpeCBsb2cgbXNnOyBhZGQgXG4gdG8gbG9nIG1zZ3MKICAgCjIwMDMtMDUtMDggMDg6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hc3NlcnQuaDoKCiAgIGNoZyBORVRfU05NUF9VU0VfQVNTRVJUIGRlZmluZSB0byBORVRTTk1QX1VTRV9BU1NFUlQgdG8gYmUgY29uc2lzdGVudAogICAKMjAwMy0wNS0wNSAxNTozNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtb3ZlIGluIGFnZW50eCBkb2N1bWVudGF0aW9uIHNvbWVvbmUgb25seSBhZGRlZCB0byB0aGUgcGF0Y2hlcyBicmFuY2ggKGJhZCBzb21lb25lKQogICAKMjAwMy0wNS0wNSAxNTozMyAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGQuY29uZi41LmRlZiAoVjUtMC1wYXRjaGVzLjQpLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAzLTA0LTI5IDE2OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFJlYWxseSBmaXggc29sYXJpcyBieSByZW1vdmluZyBzdXBwb3J0IGZvciB0aGUgY2lkciB0YWJsZSBmdW5jdGlvbi4KICAgCjIwMDMtMDQtMjkgMTY6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oOgoKICAgYXR0ZW1wdCB0byBmaXggc29sYXJpcyBieSByZW1vdmluZyBzdXBwb3J0IGZvciB0aGUgY2lkciB0YWJsZSBmdW5jdGlvbi4KICAgCjIwMDMtMDQtMjkgMDE6NTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgTGludXggTXVsdGktQ1BVIGRldGVjdGlvbiAoaG9wZWZ1bGx5ISkuCiAgIERvbmUgYXQgaW5pdGlhbGlzYXRpb24sIHNvIHdvbid0IGRldGVjdCBjaGFuZ2VzIGR1cmluZyBydW4gdGltZS4KICAgKHByb2JhYmx5IGZhaXJseSB1bmxpa2VseSEpLgogICBBbHNvIGNoYW5nZXMgZGV2aWNlIGluZGV4IHZhbHVlIGZvciBzaW5nbGUgQ1BVIGRldmljZSBvbiBvdGhlciBhcmNocy4KICAgCjIwMDMtMDQtMjkgMDE6NTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgRmlyc3QgZHJhZnQgb2YgTGludXggQ1BVIGRldGVjdGlvbiAoc3RpbGwgb25seSBzdXBwb3J0cyBvbmUgQ1BVKS4KICAgCjIwMDMtMDQtMjkgMDE6NDkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9wcm9jLmMsIGhyX290aGVyLmM6CgogICBDb25zb2xpZGF0ZSBhbGwgaHJQcm9jZXNzb3JUYWJsZSBpbXBsZW1lbnRhdGlvbiBpbnRvIG9uZSBwbGFjZS4KICAgKEJhc2ljYWxseSBqdXN0IG1vdmluZyBjb2RlIGZyb20gaHJfb3RoZXIuYyB0byBocl9wcm9jLmMpCiAgIAoyMDAzLTA0LTI4IDIzOjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgLSBkb3h5Z2VuIGRvY3VtZW50YXRpb24gZm9yIGV2ZXJ5dGhpbmcgKGdhc3ApCiAgIC0gU3VwcG9ydCBmb3Igc2F2aW5nL3Jlc3RvcmluZyBvZiBlbnRpcmUgZGF0YV9saXN0cy4KICAgCjIwMDMtMDQtMjggMjM6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kYXRhX2xpc3QuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3NldF9kYXRhLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwo6CgogICBtYWtlIGRvY3MuCiAgIAoyMDAzLTA0LTI4IDIzOjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0Lmg6CgogICBhZGRlZCBwcm90b3R5cGVzIGZvciBzYXZlL3Jlc3RvcmUgb2YgZGF0YSBsaXN0cy4KICAgCjIwMDMtMDQtMjggMjM6MzYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBwdXQgZGF0YV9saXN0LmggYmVsb3cgY2FsbGJhY2suaAogICAKMjAwMy0wNC0yOCAyMzozNSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IHNubXB0cmFwZCAtdCBhbmQgZGlza2lvIG9uIGxpbnV4CiAgIAoyMDAzLTA0LTI1IDExOjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBvcHBzCiAgIAoyMDAzLTA0LTI1IDA4OjAxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEZpeCB0eXBvIGluICdXcml0ZU9ubHknIChzZWUgYnVnICM3MTEzMjQpCiAgIAoyMDAzLTA0LTI1IDA3OjEzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBwZW9wbGUKICAgCjIwMDMtMDQtMjUgMDc6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9jdW1lbnQgZGlza2lvIHN1cHBvcnQgZm9yIGxpbnV4CiAgIAoyMDAzLTA0LTI1IDA3OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIFBhdGNoICM3MTIyNTkgZnJvbSBKYW1lcyBLbml0dGVyOiBkaXNraW8gc3VwcG9ydCBmb3IgbGludXgKICAgCjIwMDMtMDQtMjUgMDc6MDIgIGhhcmRha2VyCgogICAqIG1hbi9yZWFkX2NvbmZpZy4zLmRlZjoKCiAgIHBhdGNoICM3MTA2ODc6IGZpeCBmb3JtYXR0aW5nIGJ1ZwogICAKMjAwMy0wNC0yNSAwNjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaDoKCiAgIHBhdGNoICM3MDIzNTEgZnJvbSBKYW1lcyBJcndpbjogYSBuZXcgZ2V0S3N0YXRTdHJpbmcoKSBmdW5jdGlvbi4KICAgCjIwMDMtMDQtMjUgMDY6MDAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWVudGlvbiB0aGUgLWUgRU5HSU5FSUQgZmxhZyBmb3IgY3JlYXRlVXNlci4KICAgICAtIHBvaW50ZWQgb3V0IGJ5IERhbmEgQ29vawogICAKMjAwMy0wNC0yNCAwODoxOSAgZHRzMTIKCiAgICogYXBwcy86IHNubXB1c20uYywgc25tcHZhY20uYzoKCiAgIEZpeCBhIHR5cG8gaW4gb3V0cHV0IG1lc3NhZ2VzLiAgKFNlZSBCdWcgIzcyNjk0MykKICAgCjIwMDMtMDQtMjQgMDY6MDAgIGR0czEyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBSZXBvcnQgYmFjayBmYWlsdXJlcyBpbiBuZXRzbm1wX2NhbGxiYWNrX2Nsb3NlIGNvcnJlY3RseS4KICAgUGF0Y2ggIzcyNDkyOCBieSBQZXRlciBXYXJhc2luCiAgIAoyMDAzLTA0LTIzIDA3OjM4ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgUGF0Y2ggIzcyNTE0MSBieSBQZXRlciBXYXJhc2luOiBGaXggc2VnbWVudGF0aW9uIGZhdWx0IG9uIHNubXB0YWJsZQogICAKMjAwMy0wNC0yMyAwNjo1NiAgZHRzMTIKCiAgICogc25tcGxpYi86IGNvbnRhaW5lcl9iaW5hcnlfYXJyYXkuYywgc25tcHVzbS5jOgoKICAgUGF0Y2ggIzcyNDkxMyBieSBQZXRlciBXYXJhc2luIC0gcmVtb3ZlcyAyIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAzLTA0LTIzIDA2OjQ2ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIFN1YnN0aXR1dGUgc3lzY29uZmRpciBjb3JyZWN0bHkgd2hlbiBidWlsZGluZyBzZWRzY3JpcHQuCiAgIFBhdGNoICM3MTA2ODkgYnkgUGV0ZXIgQnJlaXRlbmxvaG5lcgogICAKMjAwMy0wNC0yMyAwNjozMSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgaGVhZGVyIGZpbGVzIGFuZCBtYW4gcGFnZXMgd2l0aCBhcHByb3ByaWF0ZSBwZXJtaXNzaW9ucy4KICAgRnJvbSBwYXRjaCAjNzEwNjg1IGJ5IFBldGVyIEJyZWl0ZW5sb2huZXIKICAgCjIwMDMtMDQtMjMgMDY6MjIgIGR0czEyCgogICAqIEZBUToKCiAgIEZpeCByZWZlcmVuY2VzIHRvIGluY29ycmVjdCBBUEkgY2FsbHMKICAgCjIwMDMtMDQtMjMgMDM6MDYgIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgQWRkIGFuIGV4cGxpY2l0IGV4YW1wbGUgZm9yIGNvbTJzZWMgYWRkcmVzcyBtYXNraW5nLCBhcyBzdWdnZXN0ZWQgYnkgQW5keSBIb29kLgogICAKMjAwMy0wNC0yMiAwNjo0OCAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUmVzdG9yZSB0aGUgb3JpZ2luYWwgZGVidWcgaW5kZW50YXRpb24gbGV2ZWwgd2hlbiBkdW1waW5nIGFuIFNOTVB2MS92MmMKICAgcmVxdWVzdCBQRFUuICAgUmVwb3J0ZWQgYnkgUGV0ZXIgV2FyYXNpbgogICAKMjAwMy0wNC0xNyAwNzoyMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUHJvcGFnYXRlIGVycm9yIHN0YXR1cyB2YWx1ZXMgYmFjayB1cCB0byB0aGUgbWFpbiBhZ2VudCBwcm9jZXNzaW5nCiAgIChzbyB0aGF0IGUuZy4gZmFpbGVkIFNOTVB2MiBzZXQgcmVxdWVzdHMgdXNpbmcgYSByZWFkLW9ubHkgY29tbXVuaXR5CiAgICByZXBvcnQgYSBmYWlsdXJlLCByYXRoZXIgdGhhbiBhcHBlYXJpbmcgdG8gc3VjY2VlZCEpCiAgIAoyMDAzLTA0LTE2IDA2OjM3ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLU1JQi50eHQ6CgogICBEZWZpbmUgYSAicHJpdmF0ZSBleHBlcmltZW50YXRpb24iIGFyZWEgb2YgdGhlIE9JRCB0cmVlLAogICBmb3IgdGhvc2Ugd2hvIHdpc2ggdG8gaGF2ZSBhIHBsYXkgd2l0aCB0aGluZ3MsIGFuZCBkb24ndAogICB5ZXQgaGF2ZSBhbiBlbnRlcnByaXNlIE9JRCBvZiB0aGVpciBvd24uCiAgIAogICBTZWUgdGhlIG5ldC1zbm1wLXVzZXJzIHRocmVhZCAnT0lEIHJlZ2lzdHJhdGlvbicsIGZyb20gTWFyY2gvQXByaWwgMjAwMy4KICAgCjIwMDMtMDQtMTYgMDY6MzIgIGR0czEyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgVHdhZWsgdGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1hdCB0byBiZSBiYXJlIHRoZSBzdWZmaXggZm9ybQogICAoYXMgZXhwZWN0ZWQgYnkgU05NUDo6T0lEIHRlc3QgaGFybmVzcykuCiAgIFdlIHNob3VsZCBwcm9iYWJseSBkZWZhdWx0IHRvIE1JQjo6dmFyaWFibGUgZm9ybSwgdG8gbWF0Y2gKICAgdGhlIEMgbGlicmFyeSwgYW5kIHByb3ZpZGUgYSBmbGFnIGZvciB0aGUgYmFyZSBzdWZmaXguCiAgIAoyMDAzLTA0LTE2IDAyOjQ2ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeCBoYW5kbGluZyBvZiAnVXNlTnVtZXJpYycgYW5kICdVc2VMb25nTmFtZXMnIGZvciBnZXQvZ2V0bmV4dC9nZXRidWxrIG1ldGhvZHMuCiAgIAogICBGaXhpbmcgJ2dldG5leHQnLydnZXRidWxrJyBtb3N0bHkgaW52b2x2ZWQgdXBkYXRpbmcgdGhlIGNvbnNvbGlkYXRlZAogICBORVRTTk1QX0RTX0xJQl9PSURfT1VUUFVUX0ZPUk1BVCcgc2V0dGluZywgcmF0aGVyIHRoYW4gdGhlIGluZGl2aWR1YWwgYm9vbGVhbnMuCiAgIEZpeGluZyAnZ2V0JyByZXF1aXJlZCBtb3JlIHNpZ25pZmljYW50IGNoYW5nZXMgdG8gdGhlIG91dHB1dCBjb2RlLCBzbyBJIHNpbXBseQogICBjb3BpZWQgdGhlICdnZXRuZXh0JyByb3V0aW5lIGVuLW1hc3NlLCBhbmQgdHdlYWtlZCBpdCBhcHByb3ByaWF0ZWx5LgogICBUaGVyZSBpcyBhIGxhcmdlIGFtb3VudCBvZiBvdmVybGFwIGJldHdlZW4gdGhlc2UgdGhyZWUgcm91dGluZXMsIGFuZCBpdCBtaWdodAogICBiZSB3b3J0aCBsb29raW5nIGF0IGNvbnNvbGlkYXRpbmcgdGhlIGNvbW1vbiBjb2RlIGluIHNvbWUgd2F5LgogICAKMjAwMy0wNC0xNiAwMjo0MiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYywKICAgcGVybC9TTk1QL1JFQURNRSwgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzCjoKCiAgIEFwcGx5IEFsZXggQnVyZ2VyJ3MgcGVybCAndHJhbnNsYXRlT2JqJyBoYW5kbGluZyBwYXRjaCAoIzcyMjA3NSkKICAgCjIwMDMtMDQtMTUgMTA6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFBhdGNoIGZyb20gS2lyaWxsIFNlbWVua292IGZvciBvbmUgbW9yZSBmaXggdG8gbGludXggaW50ZXJmYWNlIHNwZWVkCiAgIGRldGVybWluYXRpb24uCiAgIAoyMDAzLTA0LTEwIDA4OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGlzay5jLCBocl9kaXNrLmgsCiAgIGhyX3BhcnRpdGlvbi5jOgoKICAgRml4IGhhbmRsaW5nIG9mIGhyUGFydGl0aW9uVGFibGUsIGJyb2tlbiBkdXJpbmcKICAgVGhlIEdyZWF0IFNVU0UgJ3ByaW50ZicgSHVudC4KICAgVGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciBmb3IgdGhpcyBwYXRjaC4KICAgCjIwMDMtMDQtMDkgMDE6NTIgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIEltcG9ydCBTbm1wQWRtaW5TdHJpbmcsIGFzIHN1Z2dlc3RlZCBieSBWYWRpbSBUYXJhc3Nvdi4KICAgCjIwMDMtMDQtMDggMDc6NTcgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgRml4IHRoZSBlcnJvciBjb2RlIHVzZWQgZm9yIHVuYXZhaWxhYmxlIHJlc291cmNlcy4KICAgU3BvdHRlZCBieSBjaGljaGllbi4KICAgCjIwMDMtMDQtMDIgMDk6MjMgIHNyYWRtYW4KCiAgICogY29uZmlndXJlLmluOgoKICAgaW1wcm92ZSBsbVNlbnNvcnMgc3VwcG9ydAogICAtIGNoZWNrIGZvciBoZWFkZXJzCiAgIC0gY2hlY2sgZm9yIGxpYnMKICAgCjIwMDMtMDQtMDIgMDY6MzEgIHNyYWRtYW4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmg6CgogICBhZGQgTE0tU0VOU09SUy1NSUIgd2hlbiBtb2R1bGUgaXMgaW5jbHVkZWQKICAgCjIwMDMtMDMtMjggMDY6NDggIGhhcmRha2VyCgogICAqIFJFQURNRS5rcmI1IChWNS0wLXBhdGNoZXMuMSksIFJFQURNRS5rcmI1OgoKICAgS2VuIEhvcm5zdGVpbiBub3RlZCB0aGF0IHRoZSByd3VzZXIgLXMgZmxhZyB3YXMgbWlzc2luZyBpdCdzIGFyZ3VtZW50CiAgIAoyMDAzLTAzLTI4IDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcGtzbS5jIChWNS0wLXBhdGNoZXMuMSksIHNubXBrc20uYzoKCiAgIFBhdGNoIGZyb20gS2VuIGZvciBtaXNjIGtyYjUgZml4ZXMgKGVuY3J5cHRpb24gdHlwZXMsIE5ldyBjcnlwdG8gc3VwcG9ydCwuLi4KICAgCjIwMDMtMDMtMjAgMTE6MTggIHNyYWRtYW4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgZml4IGJ1ZyAjNjcyNDY0OiBpZkFkbWluU3RhdHVzIG11c3QgY2hhbmdlIHRvIGRvd24KICAgLSBpZkFkbWluU3RhdHVzIHVwIGlmIGludGVyZmFjZSBpcyBVUAogICAtIGlmT3BlclN0YXR1cyB1cCBpZiBpbnRlcmZhY2UgaXMgVVAgYW5kIFJVTk5JTkcKICAgLSBhZGRlZCBzdXBwb3J0IGZvciB0aGUgImxpbmtfdXAiIGtzdGF0CiAgIC0gYWRkZWQgQ2Fzc2luaSBHaWdhYml0LUV0aGVybmV0IChjZSkgc3VwcG9ydAogICAKMjAwMy0wMy0xOSAxMTo0NSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHRyYWlsaW5nIFwgZnJvbSBsYXN0IGxpbmUgb2YgcGVybCBydWxlcwogICAKMjAwMy0wMy0xMyAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY1LTAtcGF0Y2hlcy4xKSwgc25tcF9hZ2VudC5jOgoKICAgcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbiB0byBmaXggc29tZSBBZ2VudFggKG1vc3RseSkgbWVtb3J5IGxlYWtzCiAgIAoyMDAzLTAzLTEyIDEwOjM5ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW4gKFY1LTAtcGF0Y2hlcy4zKSwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgcGF0Y2ggIzY5OTM4MDogRnJvbSBDaHJpc3RvcGhlIEthbHQ6IG1ha2UgbmV0LXNubXAtY29uZmlnIGRvIHdoYXQgaXQncyBkb2N1bWVudCB0byBkbyAoYWRkIC1MQGxpYmRpckApCiAgIAoyMDAzLTAzLTEyIDA4OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjUtMC1wYXRjaGVzLjMpLCBzbm1wX2FwaS5jOgoKICAgcGF0Y2ggIzcwMDY3MjogcmVzZXQgaXRtcCB0byB0aGUgbmV3IHZhbHVlIGxlbmd0aCBhZnRlciBkZWNvZGluZyBhIGhleCBzdHJpbmcKICAgCjIwMDMtMDMtMTIgMDg6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcmV0dXJuIGluZGV4ZXMgZm9yIGF1Z21lbnRlZCB0YWJsZXMKICAgCjIwMDMtMDMtMTIgMDg6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBSRUFETUU6CgogICBQYXRjaCAjNzAxMzk4OiBjb20yc2VjdW5peCB0b2tlbiBmcm9tIFhpYW9mZW5nIExpbmcgZm9yIHVuaXggc29ja2V0cwogICAKMjAwMy0wMy0xMiAwNzo1OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJFQURNRSwgUlVOVEVTVFM6CgogICB1cGRhdGUgdG8gcmVhbCB3b3JsZCBhbmQgYWRkIGJldHRlciAtaCBvdXRwdXQKICAgCjIwMDMtMDMtMTAgMTc6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIGF0dGVtcHQgdG8gY29ycmVjdCBmb3IgZHluYW1pYyBsb2FkaW5nIG9mIGEgb2xkZXIgb3BlbnNzbCBsaWJyYXJ5LCB3aGljaCBpcyBjb21tb24gaWYgeW91IGhhdmUgdGhlIG1vZF9zc2wgcnBtIGluc3RhbGxlZCBhbmQgYSBuZXdlciBsaWJjcnlwdG8gbGlicmFyeSBhdCB0aGUgc2FtZSB0aW1lCiAgIAoyMDAzLTAzLTEwIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBhdHRlbXB0IHRvIGZpeCB0aGUgb3BlbnNzbCBmcmVlIGJ1ZyBmb3IgdGhlIGxhc3QgdGltZQogICAKMjAwMy0wMy0wNSAyMjo0MiAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSAoVjUtMC1wYXRjaGVzLjIpLCBjb25maWd1cmU6CgogICB1cGRhdGUgZm9yIG5ldyBjb25maWd1cmUuaW4KICAgCjIwMDMtMDMtMDUgMjI6MzYgIHJzdG9yeQoKICAgKiBjb25maWd1cmUuaW46CgogICBmaXggZm9yIGxpYndyYXAgdy9uc2wKICAgCjIwMDMtMDMtMDQgMDk6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50LzogbnNNb2R1bGVUYWJsZS5jIChWNS0wLXBhdGNoZXMuMSksCiAgIG5zTW9kdWxlVGFibGUuYzoKCiAgIHdyb25nIHR5cGUgcmV0dXJuZWQgZm9yIG5zTW9kdWxlTW9kZXMgYXMgcmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtCiAgIAoyMDAzLTAzLTA0IDAxOjU0ICBkdHMxMgoKICAgKiBJTlNUQUxMOgoKICAgTWVudGlvbiB0aGUgbmVlZCB0byBjb25maWd1cmUgdGhlIGFnZW50LgogICAKMjAwMy0wMy0wMSAwNzoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IHN1YmFnZW50LmMgKFY1LTAtcGF0Y2hlcy4xKSwgc3ViYWdlbnQuYwo6CgogICBhZ2VudHggcGF0Y2ggZnJvbSBUb21teSBDaHJpc3RlbnNlbjogYmV0dGVyIGVycm9yIGNoZWNraW5nCiAgIAoyMDAzLTAzLTAxIDA2OjU5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgKFY1LTAtcGF0Y2hlcy4xKSwgbWFzdGVyLmMKOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGRvbid0IGNyZWF0ZSBkZWxlZ2F0ZWQgY2FjaGUgZm9yIENMRUFOVVBTRVQKICAgCjIwMDMtMDItMjggMjA6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMIChWNS0wLXBhdGNoZXMuMyksIE1ha2VmaWxlLlBMOgoKICAgdHlwbwogICAKMjAwMy0wMi0yOCAyMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIFBhdGNoICM1NTE5MDkgZnJvbSBHYXJ5IEVkd2FyZHM6IGRldGVjdCB6b21iaWUgcHJvY2Vzc2VzIGFuZCBwcmV2ZW50CiAgIHRoZW0gZnJvbSBiZWluZyBjb3VudGVkIGFzIHZhbGlkIHVzZXJzLgogICAKMjAwMy0wMi0yOCAyMDoxMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwgKFY1LTAtcGF0Y2hlcy4yKSwgTWFrZWZpbGUuUEw6CgogICBQYXRjaCAjNTk3NjI5IGZyb20gTWF0dCBTZWxza3kgdG8gZml4IG1hbiBwYWdlIGluc3RhbGxhdGlvbgogICAKMjAwMy0wMi0yOCAyMDowMiAgaGFyZGFrZXIKCiAgICogZGlzdC9uZXQtc25tcC1zb2xhcmlzLWJ1aWxkLzogREVWRU5WLCBlbGZkZXBlbmQuc2gsCiAgIG5ldC1zbm1wLTUuMC42LWJ1aWxkOgoKICAgcGF0Y2ggIzY1NDU4MSBmcm9tIFN0ZWZhbiBSYWRtYW46IFNvbGFyaXMgUGFja2FnaW5nIGJ1aWxkIHNjcmlwdHMKICAgCjIwMDMtMDItMjggMTk6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBQYXRjaCAjNjk1MzEyIGZyb20gQWxleCBCdXJnZXI6IGFkZCAtdCBzd2l0Y2ggdG8gZGlzYWJsZSBzeXNsb2cuCiAgIAoyMDAzLTAyLTI4IDE5OjM5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgZG9jdW1lbnQgLXQKICAgCjIwMDMtMDItMjggMDI6MDggIGR0czEyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFNpbXBsZSBwYXRjaCB0byBjYXRjaCByZS1kZWNsYXJhdGlvbnMgb2YgdGhlICJ0b3AtbGV2ZWwiIG9iamVjdHMuCiAgIFN1cHBsaWVkIGJ5IFNlYW4gQnVya2UKICAgCjIwMDMtMDItMjggMDE6MTMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIFJldHVybiB0aGUgY29ycmVjdCB2YWx1ZXMgZm9yIGlwdjZGb3J3YXJkaW5nLgogICBQYXRjaCBzdXBwbGllZCBieSBZaXhpb25nIFpvdSAoQnVnICM2OTQ3NDUpCiAgIAoyMDAzLTAyLTI2IDIxOjU2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZGVmYXVsdCBvY3RldCBzdHJpbmdzIHRvIHVuc2lnbmVkIGNoYXIgYXJyYXlzOyBmaXggZXhhbXBsZTsgZml4IGxvZ2ljIG9mCiAgIGNvbmRpdGlvbmFsOyBtYWtlIGNvZGUgcmVmZXJlbmNpbmcgY2FuXyhkZSlhY3RpdmF0ZSBjb25kaXRpb25hbCB3aXRoIHNhbWUgbG9naWMKICAgdXNlZCB0byBnZW5lcmF0ZSB0aGUgZnVuY3Rpb25zIHRoZW1zZWx2ZXMKICAgCjIwMDMtMDItMjYgMTA6MzQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjN2YWNtY29uZmlnLCBTdmFjbWNvbmZpZywKICAgVDEzMHNubXB2MXZhY21nZXQsIFQxMzFzbm1wdjJjdmFjbWdldCwKICAgVDEzMnNubXB2M3ZhY21nZXQsIFQxNDBzbm1wdjF2YWNtZ2V0ZmFpbCwKICAgVDE0MXNubXB2MmN2YWNtZ2V0ZmFpbCwgVDE0MnNubXB2M3ZhY21nZXRmYWlsOgoKICAgUGF0Y2ggIzY4NzgzNyBmcm9tIFhpYW9mZW5nIExpbmcgZm9yIFZBQ00gdGVzdCBjYXNlcwogICAKMjAwMy0wMi0yNiAxMDoxOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQKLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwgUkVBRE1FLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vc2Y1Lmg6CgogICBwYXRjaCAjNjkwMzUzIGZyb20gS2V2aW4gR3JhaGFtOiBwb3J0IHRvIFRydTY0IHY1IC8gb3NmNQogICAKMjAwMy0wMi0yNiAxMDoxMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBwYXRjaCAjNjkyODM0IGZyb20gRGF2aWQgVnJhYmVsOiBhZGQgLS13aXRob3V0LXJwbSBmb3IgZGlzYWJsaW5nIHJwbSBjaGVja3MKICAgCjIwMDMtMDItMjYgMDg6MjggIGR0czEyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIE9vcHMgLSBtaXNzZWQgdGhlIGRlZmluaXRpb24gb2YgJ0lOU1RBTExfREFUQScgZnJvbSBQZXRlcidzIG9yaWdpbmFsIHBhdGNoLgogICBTb3JyeSEKICAgCjIwMDMtMDItMjYgMDc6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIFRoYW5rcyB0byBTcmlrYW50aCBQaW5kaXByb2xpCiAgIAoyMDAzLTAyLTI2IDA3OjEwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHVwZGF0ZSB0byBwYXRjaCAjNjU1NDQ0OiBkb2N1bWVudCBpbmNsdWRlQWxsRGlza3MgZnJvbSBTcmlrYW50aCBQaW5kaXByb2xpCiAgIAoyMDAzLTAyLTI2IDA0OjQ1ICBkdHMxMgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBTdG9tcCBvbiB0cmFpbGluZyB3aGl0ZXNwYWNlIGluIGNvbmZpZyBsaW5lcy4KICAgVGhpcyBhbGxvd3MgdG9rZW4gY29tcGFyaXNvbnMgdG8gd29yayBhcyBleHBlY3RlZC4KICAgKFNlZSBidWcgIzY5MDc3MCkKICAgCjIwMDMtMDItMjYgMDQ6MjUgIGR0czEyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggZ2V0b3B0IGhhbmRsaW5nIG9mIC1TIChzZWUgYnVnICM2OTMxNjcpCiAgIAoyMDAzLTAyLTI1IDExOjQ2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcDoKCiAgIGRvbid0IHRyeSBhbmQgcnVuIGF1dG9jb25mL2F1dG9oZWFkZXIgaWYgbm90IGluc3RhbGxlZAogICAKMjAwMy0wMi0yNSAwNjo0OCAgZHRzMTIKCiAgICogTWFrZWZpbGUuaW46CgogICBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgbmV0LXNubXAtY29uZmlnIHBhdGNoICgjNjkyMzczKQogICAKMjAwMy0wMi0yNSAwNjo0MSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIFJlY29nbmlzZSAiZGVmVmVyc2lvbiB2MyIgYXMgd2VsbCBhcyAiZGVmVmVyc2lvbiAzIiBhcyBkb2N1bWVudGVkCiAgIGluIHRoZSBtYW4gcGFnZXMgKHByaW9yIHRvIFBldGVyIEJyZWl0ZW5sb2huZXIncyBjb3JyZWN0aW9uKQogICBbV2UgbWlnaHQgYXMgd2VsbCBzdXBwb3J0IGJvdGggc3R5bGVzLi4uLl0KICAgCjIwMDMtMDItMjUgMDY6MDYgIGR0czEyCgogICAqIG1hbi86IG1pYjJjLjEuZGVmLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmCiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBjbWQuMS5kZWYsCiAgIHNubXBjb25mLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdHJhcGQuOC5kZWYKLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBkb2N1bWVudGF0aW9uIGNoYW5nZXMKICAgKHBhdGNoZXMgIzY5MjM4MSwgIDY5MjM4MiBhbmQgIDY5MjM4OCkKICAgCjIwMDMtMDItMjUgMDY6MDQgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwgc2Vkc2NyaXB0LmluLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluCiwgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuOC5kZWY6CgogICBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgY29uZmlndXJhdGlvbi1yZWxhdGVkIGRvY3VtZW50YXRpb24gYW5kIGluc3RhbGxhdGlvbiBjaGFuZ2VzLgogICAocGF0Y2hlcyAjNjkyMzcyLCAgNjkyMzc3LCAgNjkyMzc5IGFuZCA2OTIzODYpCiAgIAoyMDAzLTAyLTI1IDA1OjE3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jLCBocl9zdG9yYWdlLmg6CgogICBMaXN0ICJmaXhlZCB0eXBlIiBzdG9yYWdlIGVudHJpZXMgZmlyc3QsIHNvIHRoYXQgdGhlcmUgaXNuJ3QgYW4KICAgYXJiaXRyYXJ5IGxpbWl0IG9mIDEwMCBkaXNrLWJhc2VkIHN0b3JhZ2UgZW50cmllcy4KICAgCjIwMDMtMDItMjUgMDU6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmM6CgogICBIYW5kbGUgdXNlci9ncm91cCBuYW1lcyB3aGVuIHNldHRpbmcgQWdlbnRYIHNvY2tldCBvd25lcnNoaXAuCiAgIAoyMDAzLTAyLTI1IDAzOjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIFByZWxpbWluYXJ5IHBhdGNoIHRvIHN1cHBvcnQgY29uZmlndXJhdGlvbiBvZiBBZ2VudFggc29ja2V0IHBlcm1pc3Npb25zLgogICAKICAgUGVyc29uYWxseSwgSSdtIG5vdCBjb252aW5jZWQgdGhhdCB0aGlzIGlzIHJlYWR5IGZvciBjb21taXR0aW5nIHRvIHRoZQogICBDVlMgdHJlZSB5ZXQsIGJ1dCBNeSBNYXN0ZXIgSGFzIFNwb2tlbiwgYW5kIEkgTXVzdCBPYmV5Li4uLi4uLgogICAKMjAwMy0wMi0yMSAyMDoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcENpZHJSb3V0ZVRhYmxlLmMsCiAgIGlwQ2lkclJvdXRlVGFibGUuaCwgaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuYywKICAgaXBDaWRyUm91dGVUYWJsZV9hY2Nlc3MuaCwgaXBDaWRyUm91dGVUYWJsZV9jaGVja2Zucy5jLAogICBpcENpZHJSb3V0ZVRhYmxlX2NoZWNrZm5zLmgsIGlwQ2lkclJvdXRlVGFibGVfY29sdW1ucy5oCiwgaXBDaWRyUm91dGVUYWJsZV9lbnVtcy5oOgoKICAgQSBiZWdpbm5pbmcgaW1wbGVtZW50YXRpb24gb2YgdGhlIElQLUZPUldBUkQtTUlCOjppcENpZHJSb3V0ZVRhYmxlLgogICAgIC0gdGhpcyB0YWJsZSBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2Jzb2xldGUgaXBSb3V0ZVRhYmxlLCB3aGljaAogICAgICAgaXNuJ3QgZXZlbiBpbXBsZW1lbnRlZCBieSBtb3N0IHZlbmRvcnMgYW55IG1vcmUuCiAgICAgLSBub3QgY29tcGxldGUuICBXcml0ZSBzdXBwb3J0IG5vdCBpbXBsZW1lbnRlZCB5ZXQuICBSZWFkLXN1cHBvcnQKICAgICAgIHdvcmtpbmcgdGhvdWdoLgogICAgIC0gU2hvdWxkIHdvcmsgb24gZXZlcnl0aGluZyBidXQgaHB1eDExPyAgdGVzdGluZyBuZWVkZWQuCiAgICAgLSB0aGlzIGlzIGFub3RoZXIgZXhhbXBsZSBvZiBhIHRhYmxlX2l0ZXJhdG9yIGFwcGxpY2F0aW9uIChkaWZmZXJlbnQKICAgICAgIHRoYW4gdGhlIHJlc3QgdXNpbmcgYWNjZXNzb3JzKS4KICAgCjIwMDMtMDItMjEgMjA6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogcm91dGVfaGVhZGVycy5oLCB2YXJfcm91dGUuYzoKCiAgIG1vdmVkIGhlYWRlcnMgdG8gYSBzZXBhcmF0ZSBmaWxlIHVzYWJsZSBieSBvdGhlciBtb2R1bGVzLgogICBleHBvcnRlZCB0aGUgY29sbGVjdGVkIHJvdXRlIHRhYmxlLgogICAKMjAwMy0wMi0yMSAyMDoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmg6CgogICBtb3ZlZCBoZWFkZXJzIHRvIGEgc2VwYXJhdGUgZmlsZSB1c2FibGUgYnkgb3RoZXIgbW9kdWxlcwogICAKMjAwMy0wMi0yMSAyMDoxMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZV9hY2Nlc3MuY29uZjoKCiAgIEFuIGFsdGVybmF0ZSB0YWJsZV9pdGVyYXRvciAuY29uZiBmaWxlICh0aGF0IG1heSBldmVudHVhbGx5IGJlY29tZSB0aGUKICAgZGVmYXVsdCkuICBUaGlzIG9uZSB1c2VzIGFjY2Vzc29yIGZ1bmN0aW9ucyB0byBnZXQvc2V0IGRhdGEgYW5kIHNob3VsZAogICB0YWtlIGNhcmUgb2YgbW9zdCBvdGhlciBTTk1QIHNwZWNpZmljIHN0dWZmIGZvciB5b3UuICBOb3QgY29tcGxldGUsCiAgIGFuZCBhIGdvb2QgcGVyY2VudGFnZSBvZiB0aGUgY29kZSByZXBldGl0aW9uIHdpbGwgbGlrZWx5IG1vdmUgaW50bwogICBhbm90aGVyIHN1Yi1pdGVyYXRvciBoYW5kbGVyIGluIHRoZSBmdXR1cmUuICBUaGUgaXBDaWRyUm91dGVUYWJsZSBpcwogICBhbiBleGFtcGxlIG9mIHRoaXMgb3V0cHV0LgogICAKMjAwMy0wMi0yMSAyMDoxMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgLSBjb21tZW50IGFkZGl0aW9ucyBhbmQgY2xlYW51cHMuCiAgIC0gcHV0IHRoZSBmcmVlL2V0YyBmdW5jdGlvbiBwb2ludGVycyBpbiBhbiAjaWZkZWYgY2xhdXNlCiAgIAoyMDAzLTAyLTIxIDIwOjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jb2x1bW5fZW51bXMuY29uZjoKCiAgIGNvbW1lbnQgbW92ZSBmb3IgYmV0dGVyIGZvcm1hdHRpbmcuCiAgIAoyMDAzLTAyLTIxIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jaGVja192YWx1ZXMuY29uZjoKCiAgIC0gZ2VuZXJhdGUgYW5kIHVzZSB0aGUgZW51bXMgaGVhZGVyIGZpbGUuCiAgIC0gZ2VuZXJhdGUgYSAuaCBmaWxlLgogICAtIG1pc2MgZml4ZXMuCiAgIAoyMDAzLTAyLTIxIDIwOjA4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5hY2Nlc3NfZnVuY3Rpb25zLmNvbmY6CgogICBBIC5jb25mIGZpbGUgdG8gZ2VuZXJhdGUgZ2V0Xy9zZXRfIGFjY2VzcyBmdW5jdGlvbnMgZm9yIGVhY2ggY29sdW1uLgogICAgIC0gaXRlcmF0b3Igc3BlY2lmaWMuCiAgIAoyMDAzLTAyLTIxIDIwOjA3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gZW51bSBmaXguCiAgIC0gZG9uJ3Qgc291cmNlIChydW4pIC5jb25mIGZpbGVzIHR3aWNlLgogICAKMjAwMy0wMi0yMSAyMDowNiAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfbmV0c25tcF9pdGVyYXRvcl9pbmZvX3MuMywKICAgbmV0c25tcF9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMywgbmV0c25tcF9vaWRfc3Rhc2guMwosIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLAogICBuZXRzbm1wX3NldF9kYXRhLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwo6CgogICAtIGRveHlnZW4gdXBkYXRlLgogICAtIGluY2x1ZGVzIG5ldyBuZXRzbm1wX29pZF9zdGFzaCBtYW4gcGFnZS4KICAgCjIwMDMtMDItMjEgMjA6MDYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICAtIGRveHlnZW4gY29tbWVudCBldmVyeXRoaW5nCiAgIC0gc3RhcnRlZCAobm90IGNvbXBsZXRlKSBhIGdldG5leHQgZnVuY3Rpb24uCiAgIC0gaW1wbGVtZW50ZWQgYSAiZnJlZSB0aGUgdHJlZSIgZnVuY3Rpb24uCiAgIAoyMDAzLTAyLTIxIDIwOjA0ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgYWRkZWQgYXV0b200dGUuY2FjaGUKICAgCjIwMDMtMDItMjEgMjA6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYWRkIHRoZSBpbmNsdWRlIGRpcmVjdG9yeSB0byB0aGUgbW9kdWxlIGVncmVwIGNwcCAtSSBsaXN0LgogICAKMjAwMy0wMi0yMSAwMTo1MCAgZHRzMTIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBIVE1MLWVzY2FwZSAnPCcgYW5kICc+JyBjaGFyYWN0ZXJzIGluIEZBUSBlbnRyaWVzCiAgIAoyMDAzLTAyLTIwIDA4OjE3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIFVzZSAnbmV0c25tcF9yZWdpc3Rlcl9zY2FsYXInIGluc3RlYWQgb2YgJ25ldHNubXBfcmVnaXN0ZXJfaW5zdGFuY2UnCiAgIGZvciBoYW5kbGluZyBzY2FsYXIgb2JqZWN0cy4KICAgCjIwMDMtMDItMTkgMjE6MzkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBwYXRjaCAjNjU3ODA4OiBjYWxjdWxhdGUgYSBwcm9wZXIgaWZTcGVlZCB1bmRlciBsaW51eCB3aGVuIHBvc3NpYmxlCiAgIGFuZCBkbyBtb3JlIHByb3BlciBpZk9wZXJTdGF0dXMgc3RhdGUgZGV0ZXJtaW5hdGlvbi4KICAgCjIwMDMtMDItMTkgMjE6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM2NTc4MDg6IGNhbGN1bGF0ZSBhIHByb3BlciBpZlNwZWVkIHVuZGVyIGxpbnV4IHdoZW4gcG9zc2libGUKICAgYW5kIGRvIG1vcmUgcHJvcGVyIGlmT3BlclN0YXR1cyBzdGF0ZSBkZXRlcm1pbmF0aW9uLgogICAKMjAwMy0wMi0xOSAxNjo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICB0b3AgbGV2ZWwgZG94eWdlbiB3ZWIgcGFnZSB0ZXh0CiAgIAoyMDAzLTAyLTE5IDE2OjUyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbGlicmFyeS4zLCBuZXRzbm1wX21pYl91dGlsaXRpZXMuMywKICAgbmV0c25tcF9tb2RlX2VuZF9jYWxsLjMsIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywKICAgbmV0c25tcF9uZXRzbm1wX2l0ZXJhdG9yX2luZm9fcy4zLAogICBuZXRzbm1wX25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBuZXRzbm1wX29sZF9hcGkuMwosIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfc2V0X2RhdGEuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLmguMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfdXRpbC4zLCBuZXRzbm1wX3dhdGNoZXIuMwo6CgogICBkb3h5Z2VuIHVwZGF0ZS4KICAgCjIwMDMtMDItMTkgMTY6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHJ1biB0aGUgY29sdW1uX2VudW0gYW5kIGNvbHVtbl9kZWZpbmUgLmNvbmYgZmlsZXMgYW5kIGluY2x1ZGUgdGhvc2UgaGVhZGVycy4KICAgCjIwMDMtMDItMTkgMTY6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQWRkIGEgQHJ1bkAgdGFnIHRvIHJ1biBvdGhlciBtaWIyYyBjb25maWd1cmF0aW9uIGZpbGVzIGZyb20gdGhlCiAgIGN1cnJlbnQgb25lLgogICAKMjAwMy0wMi0xOSAxNjo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBtb3JlIChiYWQpIGRvY3VtZW50YXRpb24gZm9yIHRoZSBpdGVyYXRvciAoZ2FzcCkKICAgCjIwMDMtMDItMTkgMTY6NTAgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGFkZCBpbmNsdWRlIGRpcmVjdG9yaWVzIGZvciBwcm9jZXNzaW5nLgogICAKMjAwMy0wMi0xOSAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICByZW1vdmUgb2xkIHVudXNlZCBjb21tZW50LgogICAKMjAwMy0wMi0xOSAxMzoxMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgY29udmVydGVkIGEgYnVuY2ggb2Ygbm9uLWRveHlnZW4gZG9jcyB0byBkb3h5Z2VuIGRvY3MuCiAgIAoyMDAzLTAyLTE5IDEzOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIGRveHlnZW5pemUgYSBmZXcgZGVmaW5lcy4KICAgCjIwMDMtMDItMTggMDc6NTYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJ1biBjb25maWd1cmUKICAgCjIwMDMtMDItMTcgMTE6MjAgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgc211eCB0byBsaXN0IG9mIG1vZHVsZXMgZm9yIGRpc3RyaWJ1dGlvbjsgbW92ZSB0ZXN0IGZvciBtYWtlIGluc2lkZSBvZgogICBuc2ItbWFrZTsgYWRkIGJsYW5rIGxpbmUgYWJvdmUgQUJPUlQ7IHJlbW92ZSB0ZWUgdG8gbG9nZmlsZSwgYXMgaXQgZWF0cwogICByYyBmcm9tIGNvbW1hbmQ7IGFkZCBOT0FVVE9ERVBTPXkgdG8gYWxsIG1ha2Ugc3RlcHM7IGRvIG1ha2UgdG91Y2hpdCB3aGVuCiAgIHRhcmdldCA9IGFsbDsgdXNlIG5zYi1tYWtlIGZvciBkaXN0Y2xlYW4KICAgCjIwMDMtMDItMTcgMTE6MTggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGRvbid0IGRvIGFueSBvZiB0aGUgYXV0b2NvbmYvYXV0b2hlYWRlciBkZXBzIGlmIE5PQVVUT0RFUD0qIHNwZWNpZmllZAogICAKMjAwMy0wMi0xNyAxMToxNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIGFub3RoZXIgZGlyIGxldmVsIGZvciBtYWtlIGRlcGVuZHMgKHBlciBEUywgZnJvbSBhIHdoaWxlIGJhY2sgLSB0aG91Z2h0CiAgIHRoaXMgd2FzIGFscmVhZHkgY2hlY2tlZCBpbikKICAgCjIwMDMtMDItMTcgMDc6MzAgIG5iYQoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE5vdGUgYWJvdXQgYmFkIC91c3IveHBnNC9iaW4vc2VkCiAgIAoyMDAzLTAyLTE3IDA2OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIFRoZSBpbmNsdWRlIGZvciBkbWFsbG9jIGJldHRlciBjb21lIGFmdGVyIHRoZSBzdGQgaW5jbHVkZXMKICAgCjIwMDMtMDItMTcgMDU6MzYgIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBEb250IHNlYXJjaCAvdXNyL2xvY2FsIGZvciBkbWFsbG9jIHVubGVzcyB1c2VyIGV4cGxpY2l0bHkgYXNrcyBmb3IgaXQKICAgCjIwMDMtMDItMTcgMDU6MzQgIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBCcmluZyBiYWNrIHRoZSBkZXZlbG9wZXIgd2FybmluZ3MKICAgCjIwMDMtMDItMTcgMDU6MzMgIG5iYQoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdGV4dCBmb3Igc29ja2xlbl90CiAgIAoyMDAzLTAyLTE3IDA1OjMxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgU29tZSBlcnJvciBtZXNzYWdlcyBmb3IgU29sYXJpcwogICAKMjAwMy0wMi0xNyAwNDoyMyAgbmJhCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIE5FVC1TTk1QLVRDIG1pYgogICAKMjAwMy0wMi0xNCAwNzo0MSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGluY2x1ZGVBbGxEaXNrcwogICAKMjAwMy0wMi0xNCAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGRpc2suaDoKCiAgIFBhdGNoICM2NTU0NDQgZnJvbSBTcmlrYW50aCBQaW5kaXByb2xpOgogICAgIEltcGxlbWVudCBhIG5ldyBpbmNsdWRlQWxsRGlza3Mgc25tcGQuY29uZiB0b2tlbiB0byBwbGFjZSBhbGwgZm91bmQKICAgICBkaXNrcyBpbnRvIHRoZSBkc2tUYWJsZSBsaXN0aW5nLgogICAKMjAwMy0wMi0xMyAxNzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYyAoVjUtMC1wYXRjaGVzLjEpLCB2YXJfcm91dGUuYwo6CgogICBQYXRjaCAjNjU0MzI5OiBkb3VibGUgY2hlY2sgbGVuZ3RocyB3aGVuIGNvcHlpbmcKICAgCjIwMDMtMDItMTMgMTQ6NTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NjYXBpLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtLWRpc2FibGUtbWliLWxvZGFpbmcgcmVtb3ZlcyB0aGUgbWliIGxvYWRpbmcgY29kZSBmcm9tIGJ1aWxkcy4KICAgICAob2lkIHByaW50aW5nIGFyZSBmb3JjZWQgbnVtZXJpYykKICAgICBUaGlzIHNhdmVzIGFib3V0IGFib3V0IDIwMGsgaW4gYmluYXJ5IHNpemUgb24gYSBsaW51eCBib3guCiAgICAgVGhpcyBzYXZlcyBhYm91dCBhYm91dCAxMDBrIGluIHJ1bm5pbmcgc2l6ZSBvbiBhIGxpbnV4IGJveCAoYXNzdW1pbmcKICAgICAgIHRoZSB3aXRoLW1pYi1sb2FkaW5nIGlzIGFjdHVhbGx5IG5vdCBsb2FkaW5nIGFueXRoaW5nIGp1c3QgdG8gYmUKICAgICAgIGZhaXIsIG90aGVyd2lzZSBpdHMgYWJvdXQgPjUwMGspLgogICAKMjAwMy0wMi0xMyAwODowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE5FV1MsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgo6CgogICAtIE1pc2MgY29uZmlndXJlIGNoYW5nZXMvZml4ZXMgKGVnLCBvdXRwdXQgdGhlIGRpc2FibGVkIHN0YXRlcyBmb3IgcGVybCkKICAgLSBBIGJ1bmNoIG9mIG5ldyBjb25maWd1cmUgb3B0aW9uczoKICAgICAtLWRpc2FibGUtYXBwbGljYXRpb25zICAgICAgICAgIERvIG5vdCBidWlsZCB0aGUgYXBwcyAoc25tcGdldCwgLi4uKS4KICAgICAtLWRpc2FibGUtYWdlbnQgICAgICAgICAgICAgICAgIERvIG5vdCBidWlsZCB0aGUgYWdlbnQgKHNubXBkKS4KICAgICAtLWRpc2FibGUtbWFudWFscyAgICAgICAgICAgICAgIERvIG5vdCBpbnN0YWxsIHRoZSBtYW51YWxzLgogICAgIC0tZGlzYWJsZS1zY3JpcHRzICAgICAgICAgICAgICAgRG8gbm90IGluc3RhbGwgdGhlIHNjcmlwdHMgKG1pYjJjLCAuLi4pLgogICAgIC0tZGlzYWJsZS1taWJzICAgICAgICAgICAgICAgICAgRG8gbm90IGluc3RhbGwgdGhlIG1pYiBmaWxlcy4KICAgCjIwMDMtMDItMTMgMDY6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgY2hlY2sgZW50cnkgbm9kZSBhcyBzdWdnZXN0ZWQgYnkgSXJmYW4gU2hlcmlmZgogICAKMjAwMy0wMi0xMyAwNTo1OSAgZHRzMTIKCiAgICogY29uZmlndXJlOgoKICAgUmVtb3ZlIGludmFsaWQgJ3Rlc3RpbmcnIGNvbmZpZ19maWxlIHRhcmdldC4KICAgU2luY2UgdGhpcyBpcyBhIGRpcmVjdG9yeSwgJ2NvbmZpZy5zdGF0dXMnIGZhaWxzIHRvIGNyZWF0ZSBpdC4KICAgCiAgIEknbSBub3QgcXVpdGUgc3VyZSB3aGVyZSB0aGlzIGFwcGVhcmVkIGZyb20uICBJdCdzIG5vdCBwYXJ0IG9mCiAgIHRoZSBjb25maWd1cmUgc2NyaXB0IGdlbmVyYXRlZCBieSBhdXRvY29uZiAyLjUzLCBidXQgaXQgbWlnaHQKICAgaGF2ZSBiZWVuIGludHJvZHVjZWQgYmV0d2VlbiB0aGVyZSBhbmQgMi41Ny4KICAgCjIwMDMtMDItMTMgMDI6MTAgIGR0czEyCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBNZWNoYW5pc20gZm9yIHBhc3NpbmcgYWRkaXRpb25hbCBvcHRpb25zIHRvIHRoZSB0ZXN0IHJ1bi4KICAgU3VnZ2VzdGVkIGJ5IEFuZHkgSG9vZC4KICAgCjIwMDMtMDItMTIgMTE6MzAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGluY2x1ZGUgYWdlbnQvbWliZ3JvdXAgaGVhZGVycyBmcm9tICR7c3JjZGlyfQogICAKMjAwMy0wMi0xMiAwOTo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIHVwZ3JhZGUgY29uZmlndXJlIHRvIGF1dG9jb25mIDIuNTcKICAgLSBUaGlzIGlzIGZ1bmN0aW9uYWwgbm93LCBidXQgbm90IGFsbCBmbGFncywgZmVhdHVyZXMgYW5kIHRlc3RzIGhhdmUKICAgICBiZWVuIHRlc3RlZC4gIFBsZWFzZSByZXBvcnQgZXJyb3JzISAgVGhlcmUgYXJlIG1vcmUgdGhpbmdzIHRvIGRvLAogICAgIGxpa2UgY29udmVyc2lvbiBvZiBsb2NhbCBtYWNyb3MgKGVnLCBTVFJVQ1RfRk9SKSB0byBhdXRvY29uZgogICAgIG5ld2VyIHN0YW5kYXJkIG1hY3Jvcy4KICAgCjIwMDMtMDItMTIgMDY6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3R1bm5lbC86IHR1bm5lbC5oIChWNS0wLXBhdGNoZXMuMSksIHR1bm5lbC5oCiAgIChWNC0yLXBhdGNoZXMuWzEsMV0pLCB0dW5uZWwuaDoKCiAgIHVwZGF0ZQogICAKMjAwMy0wMi0xMSAxODowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIG9ubHkgZGVmaW5lIHN0dWZmIGlmIGhhdmVfcmVnZXggaXMgZGVmaW5lZAogICAKMjAwMy0wMi0xMSAxODowMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBydW4gY29uZmlnX3JlcXVpcmUgY2hlY2tzIHRocm91Z2ggY3BwCiAgIAoyMDAzLTAyLTExIDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIElyZmFuIFNoZXJpZmYgcG9pbnRlZCBvdXQgYSBidWcgd2l0aCBnZXRuZXh0IHJlcXVlc3RzIGRpcmVjdGx5IHRvCiAgIGEgY29sdW1uLgogICAKMjAwMy0wMi0xMSAxNTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgcGF0Y2ggZnJvbSBDaHJpc3RvcGhlIFZhcm9xdWkgdG8gZml4IGRyb3BwaW5nIHN0YXRlIGNoYW5nZSBmb3IgdGhyZXNob2xkcy4KICAgCjIwMDMtMDItMTEgMDg6MjYgIGR0czEyCgogICAqIHNubXBsaWIvOiBzeXN0ZW0uYyAoVjQtMi1wYXRjaGVzLjUpLCBzeXN0ZW0uYzoKCiAgIFJlbW92ZSBsYXN0IHJlbWFpbmluZyB1c2Ugb2YgJ25saXN0JyB1bmRlciBIUC1VWCAxMCAmIDExLgogICBBcyBwZXIgcGF0Y2ggIzY1Njc3MyBmcm9tIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcgogICAKMjAwMy0wMi0xMSAwODoxNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBDaGVja2luZyB0aGUgbGVuZ3RoIG9mIGEgc3RyaW5nIGJ1ZmZlciBvbmNlIGlzIHN1ZmZpY2llbnQuCiAgIFVzaW5nICdzdHJubmNweScgW3NpY10gdG8gY2hlY2sgdGhpcyBsZW5ndGggdHdpY2UgaXMgdW5uZWNlc3NhcnkuLi4KICAgCjIwMDMtMDItMTEgMDg6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBpZmRlZiBvdXQgdW5saWtlbHktY29ycmVjdC1jb2RlIG9uIHdpbjMyCiAgIAoyMDAzLTAyLTExIDA3OjU1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIE1lc3Mgd2l0aCBvdXRwdXQgb2YgZG94eWdlbiB0byBhZGQgc2YgbG9nb3MsIGV0YywgdG8gdGhlIGJvdHRvbSBvZiB0aGUKICAgZ2VuZXJhdGVkIGh0bWwgZmlsZXMuCiAgIAoyMDAzLTAyLTExIDA3OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUGF0Y2ggIzY1NTE1NCBmcm9tIEpvZWwgUm9zZGFobDogbW9yZSBwcm9wZXIgZGVtb25pemF0aW9uOgogICAgIC0gY2xvc2Ugc3RkaW4vc3Rkb3V0L3N0ZGVyciBpZiBhcHByb3ByaWF0ZS4KICAgICAtIGRvdWJsZSBmb3JrLgogICAgIC0gY2hkaXIgLyAgIFtJJ20gbm90IGNvbnZpbmNlZCB0aGlzIGlzIGNvcnJlY3QgdW5kZXIgd2luZG93cz8gIEFueW9uZT9dCiAgIAoyMDAzLTAyLTExIDA3OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBwYXRjaCAjNjY3Njk0IChhbm9uKSB0byBhZGQgYmFjayBuZXdsaW5lcyB0byBwYXNzIGNvZGUKICAgCjIwMDMtMDItMTEgMDc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgUGF0Y2ggIzY2MjE2OSBmcm9tIEphbiBXaWxsZW0gTHVpdGVuOiBkaXNraW8gc3VwcG9ydCBmb3IgRGFyd2luCiAgIAoyMDAzLTAyLTExIDA2OjE0ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC86IGJ1bGt3YWxrLnQsIHNldC50OgoKICAgRml4IHRlc3RzIGZvciBidWxrd2FsayAoZHVwbGljYXRlIGhlYWRlcikgYW5kIHNldCAoaW52YWxpZCBPSUQgY29uc3RhbnQpCiAgIAoyMDAzLTAyLTExIDA0OjQ0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIEFjY29tbW9kYXRlIGEgZnVzc3kgSVJJWCBlbnZpcm9ubWVudCwgd2hpY2ggaXMgcGlja3kgYWJvdXQgPHVuaXN0ZC5oPgogICBTZWUgYnVnICM2Njc3MjYKICAgCjIwMDMtMDItMTAgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBmaXggaW5kZW50IGNvbW1lbnQgZGFtYWdlLgogICAKMjAwMy0wMi0xMCAxNjozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIEVYVEVOU0lCTEUgLT4gVUNEQVZJU19NSUIKICAgCjIwMDMtMDItMTAgMTU6MzggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBCcnVjZSBTaGF3IHBvaW50ZWQgb3V0IGEgY29tbWVudCB0eXBvCiAgIAoyMDAzLTAyLTEwIDE1OjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMOgoKICAgZml4IG15IGRlY2xhcmF0aW9ucyBhcyBwb2ludGVkIG91dCBieSBBbmRyZXcgUGFnZQogICAKMjAwMy0wMi0xMCAwOToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGZpbGUgbmFtZSB0eXBvCiAgIAoyMDAzLTAyLTEwIDA3OjU3ICBuYmEKCiAgICogTWFrZWZpbGUuaW4sIGFjbG9jYWwubTQsIGx0bWFpbi5zaCwKICAgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUuaW4sCiAgIGNvbmZpZ3VyZToKCiAgIFVwZGF0ZSBsaWJ0b29sIHRvIDEuNC4zCiAgIAoyMDAzLTAyLTEwIDA3OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgdHVybiBvbiBsb2dfbWF0Y2ggYnkgZGVmYXVsdAogICAKMjAwMy0wMi0xMCAwNjozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgQ2hyaXN0b3BoZSBWYXJvcXVpIHRvIHRoZSB0aGFua3MgZm9yIGhpcyBESVNNQU4gcGF0Y2hlcwogICAKMjAwMy0wMi0wOSAxMDowMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBbiBhZGRpdGlvbmFsIGNoYW5nZSB0byBzdXBwb3J0ICd0JyBoaW50cwogICAKMjAwMy0wMi0wNiAyMToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oOgoKICAgRm9yIGxpbnV4LCB1c2UgL3Byb2MvWC9zdGF0dXMgaW5zdGVhZC4gIEl0IGhhcyB0aGUgbmFtZSBvZiBwcm9jZXNzZXMKICAgd2hlbiAvcHJvYy9jbWRsaW5lIGRvZXMgbm90LiAgQSBkZWZpbmUgKGNvbW1lbnRlZCBvdXQpIHdhcyBwdXQgaW4KICAgc3lzdGVtL2xpbnV4LmggdG8gcmV2ZXJ0IHRvIHByZXZpb3VzIGJlaGF2aW9yIGlmIGRlc2lyZWQuICBJJ20gbm90CiAgIHN1cmUgYXQgd2hpY2gga2VybmVsIHJlbGVhc2UgdGhlIHN0YXR1cyBmaWxlIHdhcyBhZGRlZC4KICAgCjIwMDMtMDItMDYgMjA6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYzoKCiAgIEFkZCBhIGRlYnVnZ2luZyB0YWcgInByb2MiIHdoaWNoIHByaW50cyBwcm9jZXNzIG5hbWVzIGFzIGZvdW5kIGluIHNvbGFyaXMuCiAgICh0aGlzIHNob3VsZCBiZSBuaWNlIHdoZW4gc2VhcmNoaW5nIGZvciB1bmtub3duIGV4YWN0IHByb2Nlc3MgbmFtZXMpCiAgIAoyMDAzLTAyLTA2IDExOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBtYW4vc25tcHRyYXBkLjguZGVmOgoKICAgcGF0Y2ggIzY3NDIxODogcmVvcGVuIGxvZyBmaWxlcyBvbiBIVVAuCiAgIAoyMDAzLTAyLTA2IDEwOjQyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IG1vbml0b3IgLXQgZm9yIHRocmVzaG9sZCBtb25pdG9yaW5nCiAgIAoyMDAzLTAyLTA2IDEwOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBQYXRjaCBmcm9tIENocmlzdG9waGUgdG8gc3VwcG9ydCBtb25pdG9yIC10IGZvciB0aHJlc2hvbGQgbW9uaXRvcmluZwogICAKMjAwMy0wMi0wNSAyMjowNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY2hlY2tfdmFsdWVzLmNvbmY6CgogICBBIG1pYjJjIGZpbGUgdGhhdCBnZW5lcmF0ZXMgYSBidW5jaCBvZiBmdW5jdGlvbnMgdG8gY2hlY2sgdGhlIHZhbHVlIG9mCiAgIGluY29taW5nIFNFVCByZXF1ZXN0cy4KICAgICAobm90IGNvbXBsZXRlIHlldC4gIE5lZWRzIHN1cHBvcnQgZm9yIEJJVFMgZW51bXMgYW5kIGEgaGVhZGVyIGZpbGUKICAgICB3aXRoIHByb3RvdHlwZXMpCiAgIAogICBIYXBweSBCaXJ0aGRheSAobGF0ZSkgdG8gUm9iZXJ0LgogICAKMjAwMy0wMi0wNSAyMjowNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBTdXBwb3J0IGZvciBmb3JlYWNoIG9uIHJhbmdlcy4KICAgCjIwMDMtMDItMDUgMDM6MjUgIGR0czEyCgogICAqIEZBUToKCiAgIENsYXJpZnkgdGhlIGxvY2FsLW9ubHkgYWNjZXNzIGZvciBub24tc3RhbmRhcmQgcG9ydCBBZ2VudFggY29ubmVjdGlvbnMuCiAgIAoyMDAzLTAyLTA1IDAxOjEzICBkdHMxMgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBEb24ndCBwcm9tcHQgZm9yIGFuIGF1dGhlbnRpY2F0aW9uIHBhc3MtcGhyYXNlLCBpZiBvbmUgaGFzIGFscmVhZHkKICAgYmVlbiBzdXBwbGllZC4gIFJlcG9ydGVkIGJ5IERhcnJlbiBHYW1ibGUuCiAgIAoyMDAzLTAyLTA0IDA2OjI1ICBkdHMxMgoKICAgKiBGQVE6CgogICBBZGQgYW4gZW50cnkgZGVzY3JpYmluZyBjb25maWd1cmluZyBBZ2VudFggb24gYSBub24tc3RhbmRhcmQgcG9ydC4KICAgCjIwMDMtMDItMDMgMDc6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNS0wLXBhdGNoZXMuMiksIHNubXBfYXBpLmM6CgogICBGcm9tIFJpY2hhcmQgTGFpbmc6IGNoYW5nZSB2YWx1ZSBjaGVjayBvZiBhIHN0cmluZyB0byB1c2UgYSBwcm9wZXIgbGVuZ3RoLgogICAKMjAwMy0wMS0yOSAwNzoxOSAgaGFyZGFrZXIKCiAgICogSU5TVEFMTCwgcGVybC9TTk1QL1JFQURNRToKCiAgIHBlcmwgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIGZyb20gSGFycmllCiAgIAoyMDAzLTAxLTI0IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIHBhdGNoICM2NzIwMjEgZnJvbSBKb3NodWEgR2lsZXM6IGxhcmdlIHNldCByZXF1ZXN0IGZpeGVzCiAgIAoyMDAzLTAxLTIyIDE0OjQ1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIEhhdmluZyBmb3VuZCBhIG5ldyByb3cgdG8gd29yayB3aXRoLCB1cGRhdGUgdGhlIGluZGV4IHZhbHVlcyBhcyB3ZWxsLgogICBUaGlzIHNlZW1zIHRvIGZpeCB0aGUgbWlzbWF0Y2ggYmV0d2VlbiB0aGUgT0lEIGJlaW5nIHByb2Nlc3NlZAogICBhbmQgdGhlIGluZGV4IHZhcmJpbmRzLgogICAKMjAwMy0wMS0yMCAxOToxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvdGVzdF9iaW5hcnlfYXJyYXkuYzoKCiAgIGFkZCBzdHJpbmcgdGVzdCBjYXNlIGZvciBiaW5hcnkgYXJyYXkgdGVzdGluZwogICAKMjAwMy0wMS0yMCAxOToxMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4ZXMgZm9yIGFycmF5X3Fzb3J0IC0gbm90IHF1aXRlIHN1cmUgd2h5L2hvdyBpdCB3b3JrZWQgYmVmb3JlLi46LS8KICAgCjIwMDMtMDEtMjAgMTk6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgbmV3IG5ldHNubXBfY29tcGFyZV9tZW07IGZpeCB0eXBvIGluIGRlYnVnIG1lc3NhZ2UKICAgCjIwMDMtMDEtMjAgMTk6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY3JlYXRlIG1kNXN1bXMgYWZ0ZXIgY3JlYXRpbmcgZ3ppcHBlZCB0YXJiYWxsCiAgIAoyMDAzLTAxLTE0IDA2OjE0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgMTYtYml0IHJlcXVlc3RJRHMsIGV0YyAtIGZvciB0YWxraW5nIHRvIGJyb2tlbiBhZ2VudHMuCiAgIChBcyBwZXIgYSBzdWdnZXN0aW9uIG9mIE5pZWxzLCBpbiBkaXNjdXNzaW9uIHdpdGggSGVucmlrIE9zdGVyZ2FhcmQgTWFkc2VuKQogICAKMjAwMy0wMS0xNCAwNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgZG94eWdlbi5jb25mLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMKLCBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG94eWdlbiBjaGFuZ2VzCiAgIAoyMDAzLTAxLTEzIDE4OjQ5ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2hhbmRsZXIuMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcKICAgCjIwMDMtMDEtMTMgMTc6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVjb2duaXplIG5ldyAndCcgY29kZSBpbiBkaXNwbGF5IGhpbnRzCiAgIAoyMDAzLTAxLTEzIDE3OjA3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcGF0Y2ggZm9yIG1lbW9yeSBsZWFrcyBzZW50IHRvIGNvZGVycyBieSBKYXkgUGFybGFyCiAgIAoyMDAzLTAxLTEwIDIyOjI3ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43ICkKICAgCjIwMDMtMDEtMTAgMjI6MjYgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43CiAgIAoyMDAzLTAxLTEwIDIyOjE1ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBjb25maWd1cmUtc3VtbWFyeQogICAKMjAwMy0wMS0xMCAyMjoxNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMDEtMTAgMjI6MDggIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIHZhcmlhdGlvbnMgb2YgY2hhbmdlbG9nLmFkZAogICAKMjAwMy0wMS0xMCAxNzowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgZG94eWdlbiBvdXRwdXQgdGFncyB0byBwdXQgdGhlIHJlY2VudGx5IGRlZmluZWQgZnVuY3Rpb25zIGludG8gZ3JvdXBzLgogICAKMjAwMy0wMS0xMCAxNzowOSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG5ldHNubXBfYWdlbnQuMywKICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb3h5Z2VuIHVwZGF0ZXMKICAgCjIwMDMtMDEtMTAgMTQ6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgb3BwcwogICAKMjAwMy0wMS0xMCAxNDoyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZW1vdmUgZG91YmxlIGNoZWNraW5nIG91dHB1dAogICAKMjAwMy0wMS0xMCAxMTozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0OgoKICAgZml4IHBvc2l0aW9uYWwgYXJndW1lbnRzCiAgIAoyMDAzLTAxLTEwIDA2OjA0ICBkdHMxMgoKICAgKiBGQVE6CgogICBSZWZlcmVuY2UgQnJ1Y2UgU2hhdydzIGRpc2N1c3Npb24gb2YgdGhlIHBlcmwgY29tcGlsYXRpb24gcHJvYmxlbXMKICAgKHNlZSBSRUFETUUuc29sYXJpcykKICAgCjIwMDMtMDEtMTAgMDU6MzEgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gQWdlbnRYIHVuZGVyIHdpbmRvd3MsIGFuZCBiZWVmIHVwIHRoZSBwZXJsIHN0dWZmIGEgYml0LgogICBBZGQgYSBtaXNzaW5nIGVudHJ5IGluIHRoZSBjb250ZW50cyBsaXN0LgogICAoVGhpcyBtYXkgcHJvdmUgdG9vIGxhdGUgZm9yIDUuMC44LCBidXQgYXQgbGVhc3QgaXQnbGwgYmUgcmVhZHkgZm9yIG5leHQgdGltZSEpCiAgIAoyMDAzLTAxLTA5IDE1OjQxICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBtYWtlIGRvYyB1cGRhdGUuCiAgIAoyMDAzLTAxLTA5IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBtYWtlIGRvYyB1cGRhdGUuCiAgIAoyMDAzLTAxLTA5IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tb2RlX2VuZF9jYWxsLmg6CgogICBlbmQtb2YtbW9kZSBoZWxwZXIgdG8gY2FsbCBtb3JlIGhhbmRsZXJzIGFmdGVyIHByb2Nlc3NpbmcgdGhlIG1haW4KICAgbGluZS4gIEZ1bmN0aW9uYWxseSBhbGxvd3MgcGFyYWxsZWwgaGFuZGxlciB0cmVlcyBhbmQgY2FsbGJhY2tzIGFmdGVyCiAgIGEgcGFydGljdWxhciBtb2RlIGlzIGNvbXBsZXRlZCAodXNlZnVsIGZvciB0aGluZ3MgcmVnaXN0ZXJlZCB1bmRlciBhCiAgIHNlcmlhbGl6ZSBoYW5kbGVyIHdoZW4geW91IGRvbid0IGtub3cgd2hlbiB0aGUgbW9kZSBpcyBvdmVyKS4KICAgICAgKG5vdCB1c2VkIGFueXdoZXJlIGluIHByb2R1Y3Rpb24gY29kZSB5ZXQuKS4KICAgCjIwMDMtMDEtMDkgMDg6NTUgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gdGhlIHBlcmwgc2hhcmVkL3N0YXRpYyBsaWJyYXJ5IHByb2JsZW0sCiAgIHRoZSB1bnJlc3BvbnNpdmUgYWdlbnQgcHJvYmxlbSAoYW5kIGZpeCksIGFuZAogICBkaXNjbGFpbSBhbGwga25vd2xlZGdlIG9mIERhdmlkIFRvd24ncyBOZXQ6OlNOTVAgbW9kdWxlLAogICAKMjAwMy0wMS0wOSAwNzoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTYwc25tcHYyY2J1bGtnZXQsIFQwMjIwc25tcHYzYnVsa2dldAo6CgogICBHZXRCdWxrIHRlc3Rpbmcgc3VwcGxpZWQgYnkgWGlhb2ZlbmcgTGluZwogICAKMjAwMy0wMS0wOSAwNzoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEFkZCAteCBmbGFnIGZvciBjYWxsaW5nIHN1YnRlc3RzIHdpdGggInNoIC14Ii4KICAgRml4IG51bWJlciBjb3VudGluZyBmb3IgaW50ZXJhY3RpdmUgb3V0cHV0LgogICAKMjAwMy0wMS0wNyAxNTo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAoVjQtMi1wYXRjaGVzLjgpLCBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKICAgCjIwMDMtMDEtMDcgMTA6MTggIGhhcmRha2VyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjgpLCBGQVE6CgogICBpcmMgc2VydmVyIG5hbWUgY2hhbmdlCiAgIAoyMDAzLTAxLTA3IDA4OjAxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYnVnICM2NjM2MjggYW5kIHBhdGNoOiBmaXggaXAgYWRkcmVzcyBpbmRleCBwYXJzaW5nIGZyb20gT0lEcwogICAKMjAwMy0wMS0wNyAwMTo1MyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCBjb2RlIHRvIGZyZWUgJ2NhbGxiYWNrX2RhdGFfa2VlcCcgZGF0YS4KICAgVGhpcyBicmFuY2ggd291bGQgbmV2ZXIgYmUgaW52b2tlZCwgYW5kIGlzIGluIHRoZSB3cm9uZwogICBwbGFjZSBhbnl3YXkuICBQYXRjaCBzdXBwbGllZCBieSBKYXkgUGFybGFyCiAgIAoyMDAzLTAxLTA2IDA4OjE2ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIFNvbGFyaXMgOSBoZWFkZXIKICAgCjIwMDMtMDEtMDUgMTU6MTQgIG5iYQoKICAgKiB3aW4zMi93aW4zMi5vcHQ6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrCiAgIAoyMDAzLTAxLTA1IDE0OjI4ICBuYmEKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLCB3aW4zMi5vcHQKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIE1ha2UgaXQgY29tcGlsZSB3aXRoIFZDKysKICAgCjIwMDMtMDEtMDUgMTI6NDUgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBTTk1QLUZSQU1FV09SSy1NSUIudHh0LAogICBTTk1QLU1QRC1NSUIudHh0LCBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LAogICBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LCBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQKLCBTTk1QdjItTUlCLnR4dCwgU05NUHYyLVRNLnR4dCwgcmZjbGlzdDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IFJGQyB2ZXJzaW9ucwogICAKMjAwMy0wMS0wMyAxMjo1MCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgY2FsbCBBQ19ESVNBQkxFX1NIQVJFRCwgYXMgc2V0cyB0aGUgZGVmYXVsdCB0byBkaXNhYmxlZCAoaXQncyB2ZXJ5CiAgIHByZXNlbmNlIGluIGNvbmZpZ3VyZS5pbiBnZW5lcmF0ZXMgYSBjb25maWd1cmUgd2l0aCBzaGFyZWQgZGlzYWJsZWQsIGV2ZW4KICAgaWYgaXQgd2FzIGluIGFuIGlmIGJsb2NrOyBmb3IgZGV2ZWxvcGVyIGRlZmF1bHQsIHNldCBlbmFibGVfc2hhcmVkIGRpcmVjdGx5CiAgIHVubGVzcyBpdCB3YXMgcHJldmlvdXNseSBzZXQ7IHRlc3QgdGhhdCBlbmFibGVfc2hhcmVkPXllcyBmb3IgZW1iZWRkZWQtcGVybAogICAKMjAwMy0wMS0wMyAwNTowMiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNyksIEZBUToKCiAgIE1lbnRpb24gdGhlIFN0cmF0dXMgVk9TIHBvcnQuIChUaGFua3MgdG8gQnJhbmRvbiBIYWxsKQogICAKMjAwMy0wMS0wMiAxNTowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIHBhcmVucyBhcm91bmQgeCBpbiBtYWNybyBpbiBjYXNlIHggaXMgbXVsdGlwbGUgQyB0b2tlbnMKICAgCjIwMDItMTItMjIgMDk6MzIgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwKICAgUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNy5wcmUyICkKICAgCjIwMDItMTItMjIgMDk6MzEgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTIKICAgCjIwMDItMTItMjIgMDk6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZAosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEyLTIwIDA0OjU4ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBjbGVhbiBhd2F5IG5ldC1zbm1wLWNvbmZpZyBvbiBtYWtlIGNsZWFuCiAgIAoyMDAyLTEyLTIwIDA0OjU3ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9taWJfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBzdGFzaCB0aGUgb2lkX3N0YXNoIC4uLgogICAKMjAwMi0xMi0yMCAwMTo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEEgcGF0Y2ggZnJvbSBWNCB0aGF0IGRpZG4ndCBtYWtlIGl0IC4uLiBhbGxvdyBsaXN0IG9mIG51bWVyaWMgYml0cyBzZXR0aW5nIEJJVFMKICAgCjIwMDItMTItMTkgMjM6NTAgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBhZGQgYSBnbG9iYWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIHJlZ2lzdGVyaW5nIGRpcmVjdGx5IHZpYSBhIGNhbGxiYWNrLgogICAKMjAwMi0xMi0xOSAyMzozNSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGFkZCBjYWxsYmFjay5oCiAgIAoyMDAyLTEyLTE5IDIzOjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggcGVyc2lzdGVudCBzdG9yYWdlIGZpbGUgcmVuYW1pbmcuICAoc25wcmludGYgY2hhbmdlIG1pc3Rha2UpCiAgIAoyMDAyLTEyLTE5IDIzOjIxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX3N0YXNoLmgsIHNubXBsaWIvb2lkX3N0YXNoLmMKOgoKICAgc29tZSBuZXcgcm91dGluZXMgZm9yIHNhdmluZyBvaWQgc3Rhc2ggZGF0YSB0byBwZXJzaXN0ZW50IHN0b3JhZ2UuCiAgICAgKG5vdCB1c2VkIGFueXdoZXJlIGluIGN1cnJlbnQgcHJvZHVjdGlvbiBjb2RlKQogICAKMjAwMi0xMi0xOSAxNDo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIHdhdGNoIGZvciB1bmRlZnMgcGFzc2VkIGluIGFzIGEgdmFsdWUgdG8gYSBTRVQgY2xhdXNlLgogICAtIGNoYW5nZSBCSVRTIHRvIGEgT2N0ZXQgU3RyaW5nIGFzIGl0IHNob3VsZCBiZS4KICAgICAtIG9uIGEgc2lkZSBub3RlLCBkbyB5b3Uga25vdyB0aGF0IHRoZSBOZXQtU05NUCBwYXJzZXIgZG9lc24ndAogICAgICAgZGlzdGluZ3Vpc2ggYmV0d2VlbiBCSVRTIGFuZCBCSVQgU1RSSU5HIGluIGl0J3MgbGlzdCBvZiB0eXBlcz8gIEkKICAgICAgIGRvbid0IHRoaW5rIGl0J3MgcG9zc2libGUgdG8gdXNlIGJvdGggdHlwZXMgaW4gdGhlIGNvZGUgdG9kYXkKICAgICAgICh3aGljaCBpcyBmaW5lLCBzaW5jZSBCSVQgU1RSSU5HIGlzIG5vdCB1c2VkIGluIFNOTVB2MiBhbmQgYmV5b25kKS4KICAgCjIwMDItMTItMTkgMTQ6NDkgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHByaW50IGEgd2FybmluZyB3aGVuIHlvdSBjYW4ndCBwYXJzZSBhbiBPSUQgKGVyciwgbm90IGlkZWFsKQogICAKMjAwMi0xMi0xOSAxNDo0OCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIC0gc2tpcCBTRVRpbmcgY29sdW1ucyB3aXRoIG5vIHZhbHVlIHBhc3NlZCBpbi4KICAgCjIwMDItMTItMTkgMTE6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL2V4YW1wbGUuYywgaG9zdC9ocl9uZXR3b3JrLmMKLCBob3N0L2hyX3N3aW5zdC5jOgoKICAgQmVpbmcgYSBiaXQgcXVpY2ssIGVoLCBEYXZlIC4uLgogICAKMjAwMi0xMi0xOSAwODoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBhdC5jIChWNC0yLXBhdGNoZXMuMiksIGF0LmM6CgogICBFbnN1cmUgdGhlIGlmbmFtZSBidWZmZXIgaXMgYmlnIGVub3VnaCB0byByZWFkIGluIGEgZnVsbC1sZW5ndGggbmFtZS4KICAgKEZyb20gdGhlIFNVU0UgImF1ZGl0IiBwYXRjaCkKICAgCjIwMDItMTItMTkgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvbWliLmMKICAgKFY0LTItcGF0Y2hlcy5bOCw5LDMsMywwXSksIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBzbm1wbGliL21pYi5jOgoKICAgRGV0ZWN0IHdoZW4gbWVtb3J5IGFsbG9jYXRpb25zIGZhaWwsIGFuZCBkb24ndCBwbG91Z2ggb24gcmVnYXJkbGVzcy4KICAgKEJhc2VkIG9uIGNoYW5nZXMgd2l0aGluIHRoZSBTVVNFICJhdWRpdCIgcGF0Y2gpCiAgIAoyMDAyLTEyLTE5IDA3OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi92YWNtLmM6CgogICBUaGUgR3JlYXQgU1VTRSAnc3ByaW50ZicgSHVudC4uLi4uCiAgIAoyMDAyLTEyLTE5IDAzOjAyICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAgIC0gY29kZSB3aXRoIEJTRGk0CiAgIAoyMDAyLTEyLTE5IDAyOjUwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjaGFuZ2UgYSBjb21tZW50IHRoYXQgZG9lc24ndCB0YWtlIGludG8gYWNjb3VudCB0aGUgdHJhbnNwb3J0IHN0dWZmCiAgICAgLSBmaXggc29tZSBwYXJ0aWN1bGFybHkgYmFkIGZvcm1hdHRpbmcgaW4gc25tcF9vcGVuX2V4CiAgIAoyMDAyLTEyLTE4IDEwOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICByZW1vdmUgbWVtLWxlYWsgY29tbWVudC4gIE91dCBvZiBkYXRlIGFuZCB3YXMgZml4ZWQKICAgCjIwMDItMTItMTggMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIGRlbGV0ZSBleHBlcmltZW50YWwgd2FybmluZyBhYm91dCBhZ2VudHgKICAgCjIwMDItMTItMTggMTA6NDAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIGZpeCBidWcjNjU1NDg4OiBkZXNjcmlwdGlvbnMgb2Ygc3NJT1Jhd1JlY2VpdmVkIGFuZCBzc1Jhd0ludGVycnVwdHMgd2VyZSByZXZlcnNlZAogICAKMjAwMi0xMi0xOCAwNToxOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHJlc3RhcnQgc3RkZXJyIGxvZ2dpbmcgb24gSFVQIChpZiAtTCB3YXMgZ2l2ZW4gb24gY29tbWFuZCBsaW5lKQogICAKMjAwMi0xMi0xNyAxNjozMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbW92ZSAnOycgZnJvbSBkZWZpbmU7IGlmIHRhYmxlIGhhcyBhIHN0b3JhZ2UgdHlwZSwgY2hlY2sgdGhhdCBpdCdzIG5vdAogICByZWFkIG9ubHkgYmVmb3JlIGFsbG93aW5nIHNldHMKICAgCjIwMDItMTItMTcgMTY6MjYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1wZXJzaXN0ZW50LmNvbmY6CgogICBuZXZlciBtaW5kCiAgIAoyMDAyLTEyLTE3IDE2OjAyICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC90ZXN0LnBsOgoKICAgRG9uJ3QgY2hlY2sgZm9yIHByZWZpeGVzIGluIHRlc3QuICBUaGV5IGRvbid0IGV4aXN0LiAgSG93ZXZlciwgZG8gc2V0IFNOTVBDT05GUEFUSCBpbiB0ZXN0IGluaXRpYWxpemF0aW9uIHRvIGEgYm9ndXMgdmFsdWUKICAgCjIwMDItMTItMTcgMTU6NTggIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJlbW92ZSBkaXJlY3QgY2FsbCB0byBpbml0X3NubXAoKS4gIFRoaXMgaXMgYWxyZWFkeSBjYWxsZWQgYnkgdGhlIC5wbSBmaWxlCiAgIAoyMDAyLTEyLTE3IDA3OjIyICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktcGVyc2lzdGVudC5jb25mOgoKICAgcGVyc2lzdGVuY2UgZm9yIGFycmF5LXRhYmxlcwogICAKMjAwMi0xMi0xNyAwNzowNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBhZGQgcmVhZF9jb25maWdfc3RvcmVfZGF0YV9wcmVmaXg7IGFkZCBBU05fVElNRVRJQ0tTIHcvQVNOX1VOU0lHTkVEIGNhc2VzCiAgIAoyMDAyLTEyLTE3IDA2OjQ0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICBkb24ndCB1c2UgU09fUkVVU0VfQUREUiBzbyBhZ2VudCBwb3J0IGNhbid0IGJlIGhpamFja2VkCiAgIAoyMDAyLTEyLTE3IDA2OjQzICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgdXNlIGxvY2FsIHZhciBmb3IgYmFzZSBhZ2VudCBsaWJzOyByZW9yZGVyIGJhc2UgYWdlbnQgbGlicyBzbyBzdGF0aWMgbGlua2luZwogICB3b3JrcwogICAKMjAwMi0xMi0xNiAxNTozMiAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oOgoKICAgWWV0IGFub3RoZXIgY29tcGlsZXIgd2FybmluZyAuLi4KICAgCjIwMDItMTItMTYgMTQ6NTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIHJlbW92ZSBib2d1cyBjb21tZW50IHJlZmVyZW5jZSB0byB0YWJsZV9kYXRhc2V0IGhlbHBlci4KICAgCjIwMDItMTItMTYgMTQ6NDIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnROb3RpZmljYXRpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlRXZlbnRUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwgYXBwcy9zbm1wdHJhcGQuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oLCBzbm1wbGliL3Rvb2xzLmMKOgoKICAgU3ByZWFkIHNvbWUgbWFnaWMgZHVzdCB0byBxdWVsbCBjb21waWxlciB3YXJuaW5ncyAod2h5IGlzbid0IC0tZW5hYmxlLXNsaWVudC1saWJ0b29sIHRoZSBkZWZhdWx0IC4uLikKICAgCjIwMDItMTItMTYgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayAocGVlcm5hbWUgaXMgY29waWVkIGJ5IHNubXBfb3Blbl9leCkKICAgCjIwMDItMTItMTYgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsKICAgCjIwMDItMTItMTYgMDg6MTkgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0xMi0xNiAwNzowMiAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICByZW1vdmUgcmVkdW5kYW50IGluY2x1ZGUgKGNhdXNlZCBwcm9ibGVtcyBvbiBTdW4gNS43LCByZXBvcnRlZCBieSBqYnBuKQogICAKMjAwMi0xMi0xNiAwNToyMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNvbmZpZ3VyZSB3L291dCBkZXZlbG9wZXIKICAgCjIwMDItMTItMTYgMDU6MTggIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIERFVkZMQUdTPSIiIGlmIG5vdCBkZXZlbG9wZXIKICAgCjIwMDItMTItMTUgMjM6MzkgIG5iYQoKICAgKiBzbm1wbGliLzogb2lkX3N0YXNoLmMsIHNjYXBpLmMsIHNubXBBQUw1UFZDRG9tYWluLmMKLCBzbm1wSVBYRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICBkbWFsbG9jIHN1cHBvcnQKICAgCjIwMDItMTItMTUgMjM6MzkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIFBvc3NpYmxlIGxlYWsgb2YgZmQgb24gZXJyb3IgcmV0dXJuCiAgIAoyMDAyLTEyLTE0IDA3OjIyICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43LnByZTEgKQogICAKMjAwMi0xMi0xNCAwNzoyMSAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMQogICAKMjAwMi0xMi0xNCAwNjo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBhZ2VudC9taWJncm91cDsgZml4IG1vZHVsZXMgZm9yIGNvbmZpZ19kaXN0CiAgIAoyMDAyLTEyLTE0IDA2OjU4ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2VyaWFsaXplLjMsCiAgIG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9hcnJheS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsCiAgIG5ldHNubXBfdG9kby4zOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUxCiAgIAoyMDAyLTEyLTE0IDA2OjU0ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgYnVtcCByZXYgdG8gNS4wLjcKICAgCjIwMDItMTItMTQgMDY6NDkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAtbiB0byBncmVwIGZvciBDKysgY29tbWVudHMKICAgCjIwMDItMTItMTQgMDY6NDcgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmRlcGVuZCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQ6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMi0xNCAwNjo0NSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgcmVtb3ZlIEMrKyBjb21tZW50cwogICAKMjAwMi0xMi0xNCAwNjozMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgYWRkIGNvbW1lbnRzIHRvIHNvbWUgc3RydWN0dXJlIG1lbWJlcnMKICAgCjIwMDItMTItMTQgMDY6MjkgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBlcnJvcnMgZHVyaW5nIGNvbW1pdCB1bmRvIHNob3VsZCBiZSB4eEZBSUxFRDsgdXNlIHNldF9yZXF1ZXN0X2Vycm9yIGluc3RlYWQgb2YKICAgc2V0X21vZGVfcmVxdWVzdF9lcnJvcjsgcmVtb3ZlIGluY29ycmVjdCBjb21tZW50OyBtb3JlIGRlYnVnZ2luZzsgY2hlY2sgZm9yCiAgIGFuZCBjYWxsIGxvd2VyIGhhbmRsZXJzCiAgIAoyMDAyLTEyLTE0IDA2OjI3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgYWx3YXlzIHByb2Nlc3MgbGF0ZXIgcGFzc2VzIG9mIGEgc2V0IHJlcXVlc3QKICAgCjIwMDItMTItMTMgMTM6MDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTI6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMKOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTI6NDAgIG5iYQoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBGaXggaW5jb21wbGV0ZSB6ZXJvaW5nIG9mIHNlY3VyaXR5IGRhdGEKICAgCjIwMDItMTItMTMgMTI6MzkgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggYSBwb3NzaWJsZSBmcmVlaW5nIG9mIGEgTlVMTCBwb2ludGVyCiAgIAoyMDAyLTEyLTEzIDEyOjM4ICBuYmEKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIFF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTEyLTEzIDA4OjM4ICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBDbGVhciB0aGUgJ3Byb2Nlc3NlZCcgZmxhZyBiZXR3ZWVuIHBhc3Nlcywgc28gdGhhdCBoYW5kbGVycwogICBjYW4gY29ycmVjdGx5IGNsZWFuIHVwIGFmdGVyIGVycm9ycyBoYXZlIGJlZW4gZGV0ZWN0ZWQuCiAgIAoyMDAyLTEyLTEzIDA4OjA2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBhZGQgYXNzZXIgdG8gdHJ5IGFuZCBjYXRoIGludGVybWl0dGVudCBjcmFzaCBpJ3ZlIGJlZW4gc2VlaW5nCiAgIAoyMDAyLTEyLTEzIDA4OjA0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbG9nIHVua25vd24gYWdlbnR4IG9wZXJhdGlvbgogICAKMjAwMi0xMi0xMyAwNzoxMiAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGlmIG5vIHJvdyBjcmVhdGUgY2FsbGJhY2sgb24gc2V0LCB1c2UgTk9UV1JJVEFCTEUgaW5zdGVhZCBvZiBOT1NVQ0hJTlNUQU5DRQogICAKMjAwMi0xMi0xMyAwNzowNCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jOgoKICAgZml4IGN1dC1uLXBhc3RlIHNvIGRlbGVnYXRlZCBmbGFnIGRpc3BsYXllZCBwcm9wZXJseQogICAKMjAwMi0xMi0xMyAwNzowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jOgoKICAgbG9nIHRleHQgKEFQUHxMSUJ8VE9LKSBpbnN0ZWFkIG9mIHN0b3JlIGlkIGluIGRlYnVnIG1zZ3MKICAgCjIwMDItMTItMTMgMDY6NTMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBhZGQgLS13aXRoLWxpYndyYXAKICAgCjIwMDItMTItMTMgMDY6NDkgIHJzdG9yeQoKICAgKiBGQVE6CgogICBncmFtbWFyL2luZGVudGlvbiB0d2VhayArIG1lbnRpb24gc3RyaXAgZm9yIG1lbW9yeSBmb290cHJpbnQgcXVlc3Rpb24KICAgCjIwMDItMTItMTMgMDY6MzIgIGR0czEyCgogICAqIHBlcmwvU05NUC9NYWtlZmlsZS5QTDoKCiAgIFJlbW92ZSBleHBsaWNpdCBtZW50aW9uIG9mIFNOTVAgbW9kdWxlIGRvY3VtZW50YXRpb24uCiAgIFRoaXMgc2V0dGluZyBkb2Vzbid0IHNlZW0gdG8gYmUgbmVjZXNzYXJ5LCBhbmQgd2l0aG91dCBpdCwKICAgdGhlIG1hbiBwYWdlIGlzIGluc3RhbGxlZCBhdXRvbWF0aWNhbGx5LgogICAKMjAwMi0xMi0xMyAwNDo0NyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIG1ha2UgLVMgZG8gdGhlIHNhbWUgYXMgc25tcGQgLVMgKHNldCB0aGUgc3lzbG9nIGZhY2lsaXR5KQogICAgIC0gbWFrZSAtbCBwcmludCBhIHdhcm5pbmcgc2F5aW5nIHRoYXQgaXQgaXMgZGVwcmVjYXRlZCBhbmQgLVMgc2hvdWxkCiAgICAgICBiZSB1c2VkIGluc3RlYWQKICAgCjIwMDItMTItMTMgMDQ6MTQgIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGluY3JlYXNlIHdpZHRoIG9mIHRva2VuIGZpZWxkIHRvIGltcHJvdmUgbGVnaWJpbGl0eSBvZgogICAgICAgY29uZmlndXJhdGlvbiBkaXJlY3RpdmUgaGVscCBvdXRwdXQKICAgCjIwMDItMTItMTIgMTQ6NDYgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHVua25vd24gLU8gb3B0aW9ucwogICAKMjAwMi0xMi0xMiAxMjo1NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4IHNvbWUgc2l6ZV90IHRoYXQgcmVhbGx5IHNob3VsZCBiZSBpbnQKICAgCjIwMDItMTItMTIgMTE6MTggIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIG1hbi9zbm1wLmNvbmYuNS5kZWYsCiAgIG1hbi9zbm1wY21kLjEuZGVmLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgQSBsb25nIG92ZXJkdWUgcGF0Y2ggKCM0MTUyNTIpIGZyb20gUm9iZXJ0IEhhc3RpbmdzIHRoYXQgaW1wbGVtZW50cwogICByZXZlcnNlIERJU1BMQVktSElOVCBwcm9jZXNzaW5nLCBpLmUuIGl0IGFsbG93cyB5b3UgdG8gaW5wdXQgZGF0YQogICBmb3JtYXR0ZWQgbGlrZSB0aGUgRElTUExBWS1ISU5UIHByZXNjcmliZXMuIEVuYWJsZWQgYnkgZGVmYXVsdCwgYnV0CiAgIGNhbiBiZSBkaXNhYmxlZCB3aXRoIHRoZSAtSWggb3B0aW9uIG9yIG5vRGlzcGxheUhpbnQgaW4gc25tcC5jb25mCiAgIAoyMDAyLTEyLTEyIDEwOjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBwYXJzZSBvaWRzIGluIHZpZXcgc3RhdGVtZW50cyB0aGUgc2FtZSB3YXkgdGhlIGFwcHMgZG8gaXQgKGNvbnNpc3RlbmN5LCBoZSBzYWlkKQogICAKMjAwMi0xMi0xMiAxMDozNSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIEFkZCBhIGdldFJvb3RPSUQgZnVuY3Rpb24gdG8gdGhlIHJlZ2luZm8gcG9pbnRlciBwYXNzZWQgaW50byBoYW5kbGVycy4KICAgCjIwMDItMTItMTIgMTA6MzQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBjaGFuZ2UgY3JlYXRlIGFuZCBkdXBsaWNhdGUgcm93IHRvIHJldHVybiBzcGVjaWZpYyBjb250ZXh0IGluc3RlYWQgb2YgZ2VuZXJpYwogICBuZXRzbm1wX2luZGV4OyBjYXRjaCBlcnJvciBmcm9tIHBhcnNlX29pZF9pbmRleGVzIG9uIHJvdyBjcmVhdGlvbgogICAKMjAwMi0xMi0xMiAxMDozNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBQcmludCBlcnJvcnMgdG8gU1RERVJSIGluc3RlYWQuCiAgICAgKGFjdHVhbGx5IGRvbid0IGJlY2F1c2UgdGhlc2Ugc3RhdGVtZW50cyBhcmUgY29tbWVudGVkIG91dCBpbiB0aGUKICAgICBmaXJzdCBwbGFjZSkKICAgCjIwMDItMTItMTIgMTA6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBSZXZlcnNlIHRoZSBjb250ZXh0IG9mIGEgY29udGV4dCBpZiBzdGF0ZW1lbnQgc28gaWYgbm90IHRoZSBjb250ZXh0CiAgIHRoZW4gZG9uJ3QgdXNlIHRoZSBjb250ZXh0IGluIHRoZSBnaXZlbiBjb250ZXh0LgogICAKMjAwMi0xMi0xMiAwOTo1NiAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGRyb3AgbG9uZy1kZXByZWNhdGVkIC1xIGFuZCAtUyBvcHRpb25zCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGZpeGVzCiAgIAoyMDAyLTEyLTEyIDA5OjM1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgbWVzc2FnZSBpbiB1c2FnZQogICAKMjAwMi0xMi0xMiAwODozNyAgZHRzMTIKCiAgICogbWFuL3NubXBkLjEuZGVmLCBhZ2VudC9zbm1wZC5jOgoKICAgSW1wbGVtZW50IGEgY29tbWFuZC1saW5lIG9wdGlvbiAoLVMpIHRvIHNldCB0aGUgZmFjaWxpdHkgdG8gdXNlIHdoZW4KICAgbG9nZ2luZyB2aWEgc3lzbG9nLiAgIEJhc2VkIG9uIGFuIGlkZWEgYnkgSm9lbCBSb3NkYWhsIChQYXRjaCAjNjI3NzAxKQogICBOb3RlIHRoYXQgLWwgYW5kIC1MIGFyZSBhbHJlYWR5IHRha2VuOi0oCiAgIAogICBUb0RvOgogICAgIFByb3ZpZGUgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzIGZvciBib3RoIHRoaXMsIGFuZCB0aGUgc3lzbG9nIHRva2VuICgnc25tcGQnKS4KICAgCjIwMDItMTItMTIgMDg6MTggIGR0czEyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKOgoKICAgU3VwcG9ydCBzZXR0aW5nIG9mIHN5c0Rlc2NyIGFuZCBzeXNPYmplY3RJRCB2aWEgc25tcGQuY29uZgogICBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgKHRob3VnaCBub3QgdmlhIFNOTVAgU0VUIHJlcWVzdHMpLgogICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEpvZWwgUm9zZGFobCAoIzYyNzcwMiBhbmQgIzYyODAxMSkKICAgCjIwMDItMTItMTIgMDc6NTggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvOiBhbGxfaGVscGVycy5jLCB0YWJsZS5jOgoKICAgU3VwcHJlc3Mgc29tZSBjb21waWxlciB3YXJuaW5ncy4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQ2hyaXMgSm9obnMgKCM2NDQwNDEpCiAgIAoyMDAyLTEyLTEyIDA3OjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jIChWNC0yLXBhdGNoZXMuNiksCiAgIG1lbW9yeV9zb2xhcmlzMi5jOgoKICAgVXNlICdzeXNjb25mJyB0byByZXBvcnQgb24gU29sYXJpcyBtZW1vcnkgdXNhZ2UuCiAgIEJhc2VkIG9uIHBhdGNoIHN1cHBsaWVkIGJ5IEJlbiBTdGVybiAoIzY1MTE4MikKICAgCjIwMDItMTItMTIgMDc6MDAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIEJhc2ljIHN1cHBvcnQgZm9yIG11bHRpcGxlIEFnZW50WCBzb2NrZXRzIChvbiB0aGUgbWFzdGVyIHNpZGUgYXQgbGVhc3QpLgogICBTZWUgRmVhdHVyZSBSZXF1ZXN0ICM2MzI1NTYKICAgCjIwMDItMTItMTIgMDU6NTcgIHJzdG9yeQoKICAgKiBkaXN0L01ha2VmaWxlOgoKICAgY3JlYXRlIHZlcnNpb24gdGFnIGZyb20gdmVyc2lvbiBzbyBjdnMgZXhwb3J0IHdvcmtzOyBmaXggUkVMOyBhZGQgdGFyLmd6CiAgIG9mIHNvdXJjZSBhcyBkZXBlbmRlbmN5IGZvciBycG1maWxlcwogICAKMjAwMi0xMi0xMiAwNTowNCAgbmJhCgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jCiwgc25tcF9lbnVtLmMsIHNubXBfc2VjbW9kLmMsIHNubXBfdHJhbnNwb3J0LmMKOgoKICAgZG1hbGxvYyBzdXBwb3J0CiAgIAoyMDAyLTEyLTEyIDA0OjE4ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9jdW1lbnQgdGhlIC1PVSBvcHRpb24sIGFuZCBhbHBoYWJldGlzZSB0aGUgaGFuZGxpbmcgb2Ygb3B0aW9ucy4KICAgCjIwMDItMTItMTIgMDM6MjUgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsICdzbm1waW5mb3JtJyBhcyBhIHJlbGF0aXZlIGxpbmssIHJhdGhlciB0aGFuIGFuIGFic29sdXRlIG9uZS4KICAgRml4IHByb3ZpZGVkIGJ5IHRoZSBpbmRlZmF0aWdhYmxlIFN0ZWZhbiBSYWRtYW4gKEJ1ZyAjNjUyNTg3KQogICAKMjAwMi0xMi0xMiAwMjo1NiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBRdW90ZSBjb25maWd1cmUgb3B0aW9ucyB3aGVuIGNvbnRydWN0aW5nIG5ldC1zbm1wLWNvbmZpZ3VyZSBhbmQgbmV0LXNubXAtY29uZmlndXJlLmgKICAgVGhpcyBhbGxvd3Mgb3B0aW9ucyBjb250YWluaW5nIHNwYWNlcywgZXRjLCB0byBiZSBoYW5kbGVkIGNvcnJlY3RseS4KICAgKFNlZSBGZWF0dXJlIFJlcXVlc3QgIzU0NzE1MikKICAgCjIwMDItMTItMTEgMTM6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIFBhdGNoIGZvciBGcmVlQlNELiBUaGFua3MgdG8gSnVuIEt1cml5YW1hCiAgIAoyMDAyLTEyLTExIDA5OjE2ICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMgKFY0LTItcGF0Y2hlcy40KSwgc25tcF9sb2dnaW5nLmM6CgogICBUcnkgZGlzYWJsaW5nIGxpbmUtYnVmZmVyaW5nIG9uIFdpbmRvd3Mgc3lzdGVtcyAoc2luY2UgaXQKICAgYXBwYXJlbnRseSBlbmFibGVzIGZ1bGwtYnVmZmVyaW5nIGluc3RlYWQpLiAgU2VlIEJ1ZyAjNTU4ODM3LgogICAKMjAwMi0xMi0xMSAwODoyNSAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvOiBhc3luYy50LCBnZXQudCwgZ2V0bmV4dC50LAogICBub3RpZnkudCwgc2V0LnQ6CgogICBFeHBsaWNpdGx5IHNldCBTTk1QIHZlcnNpb24gPSAxICh0aGUgb3JpZ2luYWwgZGVmYXVsdCBhcyBleHBlY3RlZCBieSB0aGUgdGVzdHMpCiAgIFRoaXMgc2hvdWxkIG5vdyBwYXNzIGFsbCB0ZXN0cyBhcGFydCBmcm9tIGNvbmYudCAjMwogICAKMjAwMi0xMi0xMSAwMzo0NiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0Lmg6CgogICBCZSBtb3JlIHNlbGVjdGl2ZSBpbiB1c2luZyB0aGUgNjQtYml0IHZlcnNpb24gb2Ygbmxpc3QuIChCdWcgIzYxMTY1NSkKICAgCjIwMDItMTItMTEgMDM6MjcgIGR0czEyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgTWVudGlvbiB0aGUgbm9uLWZ1bmN0aW9uYWxpdHkgb2Ygb25lIG9mIHRoZSBzdWdnZXN0ZWQgYXBwcm9hY2hlcy4KICAgKEJ1ZyAjNjE3MTE5KS4gICBSZXBvcnRlZCBieSBRdWFuYWggR2lic29uLU1vdW50CiAgIAoyMDAyLTEyLTExIDAzOjIwICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEVuc3VyZSB0aGF0IHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBpbnN0YWxsaW5nIHRoZQogICBlbWJlZGRlZCBwZXJsIHNjcmlwdC4gIChCdWcgIzYxNzg5MSkgRml4IHByb3ZpZGVkIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAyLTEyLTExIDAyOjU2ICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzIChWNC0yLXBhdGNoZXMuNCksIFJFQURNRS5zbm1wdjM6CgogICBEb2N1bWVudCB0aGUgbG9jYXRpb24gYXNzdW1wdGlvbnMgYmVpbmcgbWFkZSBpbiB0aGlzIGRlc2NyaXB0aW9uLgogICAKMjAwMi0xMi0xMSAwMTo0NyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFByb3ZpZGUgYSBtZWNoYW5pc20gZm9yIGZvcmNpbmcgc3RyaW5ncyB0byBiZSBkaXNwbGF5ZWQgaW4gZWl0aGVyCiAgIEFTQ0lJIG9yIEhleCBmb3JtYXQsIGJ5cGFzc2luZyB0aGUgImd1ZXNzIiBtZWNoYW5pc20gYXMgdG8gd2hpY2gKICAgaXMgbW9yZSBhcHByb3ByaWF0ZS4gICBTdWdnZXN0ZWQgYnkgTmljayBLYW5ha2Frb3JuLgogICAgIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IGFmZmVjdCBvYmplY3RzIHdpdGggYSBEaXNwbGF5LUhpbnQgaW4KICAgdGhlaXIgTUlCIGRlZmluaXRpb24uCiAgIAoyMDAyLTEyLTExIDAxOjMwICBkdHMxMgoKICAgKiBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wZC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gKICAgKFY0LTItcGF0Y2hlcy5bMiw2LDZdKSwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBDb21tYW5kLWxpbmUgb3B0aW9uIHRvIGNvbnRyb2wgd2hldGhlciB0byB1bmxpbmsgdGhlIFBJRCBmaWxlIG9yIG5vdC4KICAgTmVjZXNzYXJ5IGZvciBjb3JyZWN0IHRlc3Qgb3BlcmF0aW9uLgogICAKMjAwMi0xMi0xMSAwMToyMSAgZHRzMTIKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIFRoZSBsYXRlc3QgbGlicmFyeSBkZWZhdWx0cyB0byBNT0RVTEU6Om5hbWUgc3R5bGUgb3V0cHV0LAogICBzbyBhZGp1c3QgdGhlIGV4cGVjdGVkIG91dHB1dCBjaGVja3MgYWNjb3JkaW5nbHkuCiAgIEFsc28sIHRoZXJlIGFyZSBhY3R1YWxseSAzNiB0ZXN0cywgbm90IDM1IQogICAKMjAwMi0xMi0xMSAwMToxNyAgZHRzMTIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgSW5pdGlhbGlzZSB0aGUgU05NUCBsaWJyYXJpZXMsIHRvIHNldCB1cCB0aGUgT0lEIHRyZWUuCiAgIEFkZHJlc3NlcyBidWdzICM2MzgwMjQgYW5kICM2Mjc2NDMKICAgICBbUW46IERvIHdlIG5lZWQgdG8gc3VwcGx5IGFuICdhcHBuYW1lJyAoYy5kIHRoZSBTTk1QIG1vZHVsZSkgP10KICAgCjIwMDItMTItMTAgMTY6MjkgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIEFsbG93IHJ1bnRpbWUgY29uZmlndXJhdGlvbiBvZiBwZXJzaXN0ZW50IGRpcmVjdG9yeQogICAKMjAwMi0xMi0xMCAxNjoyNCAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJlcG9ydCBlcnJvcnMgaGFuZGxpbmcgcGVyc2lzdGVudCBzdG9yYWdlIGZpbGVzCiAgIAoyMDAyLTEyLTEwIDE2OjIzICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIFBhc3MgdXAgZXJyb3Igb24gZGlyZWN0b3J5IGNyZWF0aW9uCiAgIAoyMDAyLTEyLTEwIDE0OjI3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJldHRlciByZXNwZWN0IGZvciB0aGUgbWF4IHdpZHRoIG9wdGlvbiAoc25tcHRyYW5zbGF0ZSAtVGQpCiAgIAoyMDAyLTEyLTEwIDE0OjI2ICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBvaWRPdXRwdXRGb3JtYXQgb3B0aW9uCiAgIAoyMDAyLTEyLTEwIDE0OjI1ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENsZWFuIHVwLiBSZW1vdmUgY2FsbHMgdG8gb2Jzb2xldGUgZnVuY3Rpb25zIHNubXBfc2V0X3F1aWNrX3ByaW50LAogICBzbm1wX2dldF9kdW1wX3BhY2tldCwgc25tcF9nZXRfc3VmZml4X29ubHkuIFJlbW92ZSBsYXN0IHRyYWNlcyBvZiB0aGUKICAgbm9uX3NlcXVlbnRpYWwgYmFja3dhcmRzIGhhY2suIE1ha2Ugc3VyZSBpdCB3b3JrcyBmb3IgYWxsIC1PIG9wdGlvbnMuCiAgIAoyMDAyLTEyLTEwIDA4OjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjYpLAogICBpbnRlcmZhY2VzLmM6CgogICBQcm90ZWN0IGFnYWluc3QgZW1wdHkgbGluZXMgaW4gL3Byb2MvbmV0L2RldiAgKEJ1ZyAjNjI1NDI2KQogICAKMjAwMi0xMi0xMCAwODo0MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXB2My5jIChWNC0yLXBhdGNoZXMuNSksIHNubXB2My5jOgoKICAgRnJlZSBkZXN0aW5hdGlvbiBtZW1vcnkgYmVmb3JlIGNsb25pbmcgU05NUCBFbmdpbmUgSUQuCiAgIEZpeCBwcm92aWRlZCBieSBNYXJ0aW4gQ2FybHNzb24uICAoQnVnICM4MzU0ODEpCiAgIAoyMDAyLTEyLTEwIDA4OjA3ICBkdHMxMgoKICAgKiBwZXJsLzogQVNOL01ha2VmaWxlLlBMLCBPSUQvTWFrZWZpbGUuUEwsCiAgIFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMLCBkZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIEFkZCAiJENvbmZpZ3tjY2ZsYWdzfSIgdG8gQ0NGTEFHUy4gICAoU2VlIGJ1ZyAjNjQwODk5KQogICAKMjAwMi0xMi0xMCAwNzo0NiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpcEFkZHIuYyAoVjQtMi1wYXRjaGVzLjgpLCBpcEFkZHIuYzoKCiAgIEFkZCBzdXBwb3J0IGZvciBMaW51eCB2aXJ0dWFsIGludGVyZmFjZXMgaW4gdGhlIGlwQWRkcmVzc1RhYmxlLgogICAoTm90ZSB0aGlzIGRvZXMgKm5vdCogaW5jbHVkZSBzZXBhcmF0ZSBwZXItdi1pbnRlcmZhY2Ugc3RhdGlzdGljcwogICAgaW4gdGhlIGludGVyZmFjZXMgdGFibGUpLgogICAKICAgUGF0Y2ggc3VwcGxpZWQgYnkgSmVucyBTaXR0bmVyICgjNjIxMjc0KQogICAKMjAwMi0xMi0xMCAwMTo1OSAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgUmVtb3ZlIGEgY291cGxlIG9mIGV4dHJhbmVvdXMgXk0gY2hhcmFjdGVycy4KICAgCjIwMDItMTItMDkgMjM6MzYgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgV2hlbiB1c2luZyAtT3F2IGFuZCBwcmludGluZyBhbiBlbXB0eSBzdHJpbmcgeW91IGNvdWxkIGVuZCB1cCB3aXRoCiAgIGEgTlVMTCBzdHJpbmcgYW5kIG5vdCBhbiBlbXB0eSBzdHJpbmcgbGVhZGluZyB0byBzb21lIHZlcnkgb2JzY3VyZQogICBwcm9ibGVtcyBpbiBzbm1wdGFibGUgYW5kIG90aGVyIGFwcGxpY2F0aW9ucy4KICAgCjIwMDItMTItMDkgMDg6MTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEhhbmRsZSBtaXNzaW5nIGludGVnZXIgdmFsdWVzICh3aGV0aGVyIDMyLSBvciA2NC1iaXQhKS4gICBPb3BzIQogICAKMjAwMi0xMi0wOSAwNzoxMiAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy44KSwgc25tcF9hcGkuYzoKCiAgIEhhbmRsZSBpbnRlZ2VyLWJhc2VkIHZhbHVlcyBjb3JyZWN0bHkgb24gYSA2NC1iaXQgcGxhdGZvcm0uCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFRob21hcyBXZWJlciAoIzU2MTA3MSkKICAgCjIwMDItMTItMDkgMDY6NDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIFRha2Ugbm90ZSBvZiBzdWJhZ2VudC1yZXF1ZXN0ZWQgYnl0ZSBvcmRlcmluZyBpbiBzdWJzZXF1ZW50IGNvbW11bmljYXRpb25zLgogICBQYXRjaCBzdXBwbGllZCBieSBVcmJhbiAoIzYzMjI4NCkKICAgCjIwMDItMTItMDkgMDY6MzIgIGR0czEyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wZC5jOgoKICAgUmVtb3ZlIHRoZSBQSUQgZmlsZSBvbiBhZ2VudCBzaHV0ZG93bi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3Njk5KQogICAKMjAwMi0xMi0wOSAwNjoyNSAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEhhbmRsZSAnc3RydWN0IHNvY2thZGRyJyB0aGF0IGNvbnRhaW4gJ3NhX2xlbicgZmllbGRzIGRpZmZlcmVudGx5CiAgIHRvIHRob3NlIHRoYXQgZG9uJ3QgKGMuZiBpZmlsdGVyX2lvY3RsLmMgaW4gQklORCA5LjIuMSBzb3VyY2VzKQogICBQYXRjaCBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc2OTYpCiAgIAoyMDAyLTEyLTA5IDA0OjEyICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlY29nbmlzZSBCU0RpNCwgYW5kIHR3ZWFrIHRoZSByZWNvZ25pdGlvbiBvZiAnZGxvcGVuJy4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwuCiAgIAoyMDAyLTEyLTA5IDAzOjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGludGVyZmFjZXMuYywgaXAuYwo6CgogICBSZW1vdmUgc29tZSB3YXJuaW5ncywgYW5kIHRyeSB0byBjb3BlIHdpdGggJ3N5c2N0bCcgZmFpbHVyZXMuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgQ2hyaXMgSm9obnMuCiAgIAoyMDAyLTEyLTA5IDAxOjIwICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE1lbnRpb24gdGhlIGxpbWl0YXRpb25zIG9uIC91c3IvdWNiL3NlZCwKICAgYW5kIHBvaW50IHBlb3BsZSB0b3dhcmRzIC91c3IvYmluL3NlZCBpbnN0ZWFkLgogICAKMjAwMi0xMi0wNyAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBJbnNlcnQgbmV3bHktY3JlYXRlZCByb3dzIGludG8gdGhlIHBlci1yZXF1ZXN0IGxpc3RzLCBzbyB0aGF0IGxvd2VyCiAgIGxldmVsIGhhbmRsZXJzIGNhbiBhY2Nlc3MgdGhlbS4KICAgICBbUW46IFNob3VsZCB3ZSBkbyBzb21ldGhpbmcgc2ltaWxhciB3aXRoIHVwZGF0ZWQgbGlzdHMgYXMgd2VsbD9dCiAgIAoyMDAyLTEyLTA3IDA1OjM0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFJlcG9ydCBiYWNrIHRoZSBjb3JyZWN0IGVycm9yIGZvciByb3dzIHRoYXQgY291bGRuJ3QgYmUgY3JlYXRlZC4KICAgCjIwMDItMTItMDcgMDU6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZyZWVpbmcgYSByb3cgdGhhdCBuZXZlciBnb3QgY3JlYXRlZCBpbiB0aGUgZmlyc3QgcGxhY2UuCiAgIAoyMDAyLTEyLTA2IDE1OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBTa2lwIG9uIG5vbi1vcGVuc3NsIG1hY2hpbmVzLiAgVEhpcyBzaG91bGQgYmUgY2hhbmdlZCB0byBqdXN0IG5vdCB1c2luZyBlbmNyeXB0aW9uIG9uIHRob3NlIG1hY2hpbmVzLCBidXQgSSBkbyBub3QgaGF2ZSB0aGUgdGltZSBhdCB0aGUgbW9tZW50CiAgIAoyMDAyLTEyLTA2IDEwOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICByZW1vdmUgdWNkRGVtb1B1YmxpYyBmcm9tIC0tZW5hYmxlLW1pbmktYWdlbnQKICAgCjIwMDItMTItMDYgMTA6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlbW92ZSB1Y2REZW1vUHVibGljIGZyb20gLS1lbmFibGUtbWluaS1hZ2VudAogICAKMjAwMi0xMi0wNiAwOTowMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBEb24ndCBkZWxldGUgdGhlICJvbGQiIChub24tZXhpc3RlbnQpIHJvdywgd2hlbiB0aWR5aW5nIHVwIGFmdGVyCiAgIGNyZWF0aW5nIGEgbmV3IHJvdy4KICAgCjIwMDItMTItMDYgMDg6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgVHdlYWsgaGFuZGxpbmcgb2YgKGludmFsaWQpIFJvd1N0YXR1cyBjcmVhdGlvbiByZXF1ZXN0cyBpbiBhbgogICAiYXV0b21hdGljIGNyZWF0aW9uIiB0YWJsZS4gICBUaGVzZSBzaG91bGQgcmV0dXJuIHdyb25nVmFsdWUgb3IKICAgaW5jb25zaXN0ZW50VmFsdWUsIHJhdGhlciB0aGFuIG5vdFdyaXRhYmxlLgogICAKMjAwMi0xMi0wNSAwMjo0NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBTdXBwb3J0IHVzZSBvZiBSb3dTdGF0dXMgb2JqZWN0IHRvIGNvbnRyb2wgY3JlYXRpb24gb2YgbmV3IHJvd3MKICAgKGkuZS4gd2hlbiB0aGUgJ2FsbG93X2NyZWF0aW9uJyBmbGFnIGlzIG5vdCBzZXQpLgogICBUaGlzIHNob3VsZCBkZWFsIHdpdGggZXZlcnl0aGluZyBleGNlcHQgZGV0ZXJtaW5pbmcgd2hldGhlciBhCiAgIHJvdyBpcyByZWFkeSB0byBnbyAnYWN0aXZlJyAoZS5nLiB2aWEgJ2NyZWF0ZUFuZEdvJykuICBTdWNoIGEKICAgZGVjaXNpb24gaXMgaW5oZXJlbnRseSBzcGVjaWZpYyB0byBlYWNoIGluZGl2aWR1YWwgTUlCLCBzbyBtdXN0CiAgIHJlYWxseSBiZSBkb25lIGluIHRoZSBsb3dlci1sZXZlbCBoYW5kbGVyLgogICAKMjAwMi0xMi0wNSAwMjo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBTdG9wIHByb2Nlc3Npbmcgd2hlbiBhICdub24td3JpdGFibGUgY3JlYXRlJyBpcyBkZXRlY3RlZC4KICAgCjIwMDItMTItMDQgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIC0gQklUX1NUUiAtPiBPQ1RFVF9TVFIsIHdoaWNoIGlzIHdoYXQgaXQgc2hvdWxkIGJlLgogICAtIHJ1biBldmVudFRhYmxlIGVudHJpZXMuCiAgIAoyMDAyLTEyLTA0IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmM6CgogICBCSVRfU1RSIC0+IE9DVEVUX1NUUiwgd2hpY2ggaXMgd2hhdCBpdCBzaG91bGQgYmUuCiAgIAoyMDAyLTEyLTA0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVPYmplY3RzVGFibGUuYywKICAgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jOgoKICAgdXNlIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsIHRvIGdldCByZWFsIHN0cmluZ3MgZnJvbSBtaWIgZGF0YS4KICAgCjIwMDItMTItMDQgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oLAogICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaAosIG10ZUV2ZW50VGFibGUuYywgbXRlRXZlbnRUYWJsZS5oOgoKICAgLSBpbXBsZW1lbnRlZCB0aGUgbXRlRXZlbnRUYWJsZSBhbmQgdGhlIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUKICAgICAtIEZZSSwgdG90YWwgaW1wbGVtZW50YXRpb24gdGltZTogYWJvdXQgNCBob3VycwogICAgIC0gbm8gZWFzeS10by11c2UgLmNvbmYgd3JhcHBlcnMgeWV0IHRob3VnaC4gIHNubXBzZXQgc3VwcG9ydCBvbmx5LgogICAKMjAwMi0xMi0wNCAxNjoyOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIC0gdXNlIHRoZSBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyBmdW5jdGlvbiB3aGljaCBhY3R1YWxseSB3b3Jrcy4KICAgCjIwMDItMTItMDQgMTY6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gY3JlYXRlIGEgbmV0c25tcF90YWJsZV9zZXRfYWRkX2luZGV4ZXMgZnVuY3Rpb24uCiAgIC0gQWxsb3cgcm93IGNyZWF0aW9uIHVzaW5nIHJvd1N0YXR1cyB3aGVuIHRoZSBkYXRhIGNvbHVtbiBleGlzdHMsIGJ1dAogICAgIHRoZXJlIGlzIG5vIGFzc2lnbmVkIHZhbHVlIChpZSwgaXMgTlVMTCkuCiAgIC0gdXNlIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsIGluc3RlYWQgb2YgbWVtZHVwIHRvIG1ha2Ugc3VyZSBhbgogICAgIGltcGxpY2l0IE5VTEwgaXMgaW4gcGxhY2UgZm9yIHRoaW5ncyB0aGF0IHVzZSB0aGUgZGF0YSBhbmQgbmVlZCBpdAogICAgIGFzIGEgcmVhbCBzdHJpbmcuCiAgIAoyMDAyLTEyLTA0IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBkb2N1bWVudCAtLXByZWZpeAogICAKMjAwMi0xMi0wNCAxMDoxNiAgaGFyZGFrZXIKCiAgICogTkVXUyAoVjQtMi1wYXRjaGVzLjkpLCBORVdTOgoKICAgZG9jdW1lbnQgNC4yLjYKICAgCjIwMDItMTItMDMgMDE6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIENsb3NlIHByaW50ZXIgZmlsZSBoYW5kbGUgd2l0aCAnZmNsb3NlJyByYXRoZXIgdGhhbiAncGNsb3NlJyB0byBhdm9pZAogICBhIG1lbW9yeSBsZWFrIG9uIFNvbGFyaXMgMi42LiAgIEZpeCBwcm92aWRlZCBieSBKYWNvYm8gTWF0dXRlLgogICAKMjAwMi0xMi0wMyAwMTozMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfZGF0YXNldC5jOgoKICAgVHJhbnNsYXRlIEdldE5leHQgKGFuZCBHZXRCdWxrKSByZXF1ZXN0cyBpbnRvIHNpbXBsZSBHZXQgcmVxdWVzdHMsCiAgIHdoZW4gcGFzc2luZyB0aGVtIGZyb20gdGhlIHRhYmxlX2RhdGEgaGFuZGxlciB0byB0YWJsZV9kYXRhc2V0LgogICAgIFRoaXMgaXMgYW5hbG9nb3VzIHRvIGhvdyB0aGUgaXRlcmF0ZSBoYW5kbGVyIHdvcmtzLCBhbmQgYWxsb3dzCiAgIGxvd2VyIGxldmVsIGhhbmRsZXJzIHRvIG92ZXJyaWRlIHRoZSBiYXNpYyBiZWhhdmlvdXIgKHdpdGhvdXQKICAgaGF2aW5nIHRvIGR1cGxpY2F0ZSBhbGwgb2YgdGhlICJmaW5kIG5leHQgcm93IiBjb2RlIGV2ZXJ5IHRpbWUpLgogICAKMjAwMi0xMi0wMiAwMTo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgUmV0dXJuIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zLCByYXRoZXIgdGhhbiB0aGUgU05NUHYxICdub1N1Y2hOYW1lJyBlcnJvci4KICAgVGhpcyB1c2VkIHRvIGJyZWFrIEFnZW50WCBzdWJhZ2VudHMsIGJ1dCB0aGUgbGF0ZXN0IGNoYW5nZSB0byBzbm1wX2FnZW50LmMKICAgKHRvIGNhdGNoIG5vU3VjaHtJbnN0YW5jZSxPYmplY3R9IGV4Y2VwdGlvbnMpIHNlZW1zIHRvIGhhdmUgZml4ZWQgdGhhdCBwcm9ibGVtLgogICAKMjAwMi0xMi0wMiAwMTo0MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRXhwbGljaXRseSBwYXJlbnRoZXNpc2UgYSBjb21wYXJpc29uLCB0byBrZWVwIHRoZSBjb21waWxlciBoYXBweS4KICAgCjIwMDItMTItMDIgMDE6MzkgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEluY2x1c2l2ZS1yYW5nZSBHZXROZXh0IHJlcXVlc3RzIGFyZSB0cmFuc21pdHRlZCBhcyBHZXQgcmVxdWVzdHMsIHNvIG1heQogICB3ZWxsIHJldHVybiBub1N1Y2h7SW5zdGFuY2UsT2JqZWN0fSBleGNlcHRpb25zLiAgQ2F0Y2ggdGhlc2UgYXMgd2VsbC4KICAgCjIwMDItMTItMDIgMDE6MzYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQ2F0Y2ggKGFuZCByZWplY3QpIGF0dGVtcHRzIHRvIGNyZWF0ZSBhIG5ldyByb3cgdmlhIGEgbm9uLXdyaXRhYmxlIG9iamVjdC4KICAgCjIwMDItMTEtMjggMDE6MjQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIE51bGwgb3V0IG9uZSBmaW5hbCBsb29wX2NvbnRleHQgcG9pbnRlciBhZnRlciBiZWluZyBmcmVlZC4KICAgKFBhdGNoIHByb3ZpZGVkIGJ5IFJvZ2VyIE1jQ2FsbWFuKQogICAKMjAwMi0xMS0yNiAxNDo1OSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIERpc2NhcmQgdGhlIHNlY29uZGFyeSAoR1JPVVApIERFU0NSSVBUSU9OIGluc2l6ZSBhIE1PRFVMRS1DT01QTElBTkNFCiAgIHRvIGF2b2lkIGxlYWtpbmcgbWVtb3J5LiBUaGFua3MgdG8gRXVnZW5lX0JydWtAYm1jLmNvbQogICAKMjAwMi0xMS0yNiAxNDo1MyAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgUmVpbnN0YXRlIHRoZSAtdyBvcHRpb25zIHRoYXQgd2FzIGxvc3QgaW4gdGhlIGluZGVudCBmdXJ5CiAgIAoyMDAyLTExLTI2IDA3OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIFRoZSBub3RpZmljYXRpb24gdmFyaWFibGUgc2hvdWxkbid0IGJlIHN0YXRpYy4gIEEgYnVnIGZvdW5kIHdoaWxlCiAgIHRyYWNraW5nIGRvd24gYSBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IFZlbmljZSBvbiBJUkMuCiAgIAoyMDAyLTExLTI2IDAxOjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgRml4IGluY29ycmVjdCB1c2FnZSBvZiBTRV9NQVhfSURTIHZzIFNFX01BWF9TVUJJRFMuCiAgIFJlcG9ydGVkIGJ5ICdzaGluZXBlYWsnCiAgIAoyMDAyLTExLTI1IDE5OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIGhhY2sgb2YgYSBoYWNrIG9mIGEgaGFjaywgb3I6IGZpeCBtdWx0aS1saW5lIEZBUSBxdWVzdGlvbnMKICAgCjIwMDItMTEtMjUgMDc6MDggIGhhcmRha2VyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBtZW50aW9uIGFnZW50eFBpbmdJbnRlcnZhbAogICAKMjAwMi0xMS0xOCAxODozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBhcHBsaWVkIHBhdGNoICM1Mjc2NTAKICAgCjIwMDItMTEtMTEgMTQ6MTAgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVzcGVjdCB0aGUgbWliZGlycyBjb25mIGRpcmVjdGl2ZS4gVGhhbmtzIHRvIFN0ZWZhbiBSYWRtYW4gKHNyYWRtYW4pCiAgIAoyMDAyLTExLTExIDEzOjU3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggYSBtaXNzaW5nIGVycm9yIHJldHVybgogICAKMjAwMi0xMS0xMSAxMToyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgZml4IHRhZGRyIGdlbmVyYXRpb24vcGFyc2luZyBmb3IgcG9ydCBiYXNlZCB0cmFuc3BvcnRzIHRvIHByb3Blcmx5IHVzZQogICBuZXR3b3JrIGJ5dGUgb3JkZXJpbmcuCiAgIAoyMDAyLTExLTExIDExOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgZml4IHdyaXRlIHN1cHBvcnQgZm9yIHRoZSB0aW1lb3V0IGNvbHVtbgogICAKMjAwMi0xMS0wOSAwNzowNiAgbmJhCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmg6CgogICBEbyBhd2F5IHdpdGggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMS0wOSAwNjo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgdWNkLXNubXAvcGFzcy5jLCB1Y2Qtc25tcC9wcm9jLmMsIGhvc3QvaHJfcHJpbnQuYwo6CgogICBaZXJvIGlzIGFuIE9LIGZpbGUgZGVzY3JpcHRvci4gLTEgaXMgdGhlIGVycm9yIHJldHVybgogICAKMjAwMi0xMS0wOSAwNjo1NCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICBNb3JlIHRvIHRoZSBwb2ludCBtZXNzYWdlIGZvciB1bmRlZmluZWQgaWRlbnRpZmllcnMuIEJyb3VnaHQgZm9yd2FyZCBmcm9tIDQuMgogICAKMjAwMi0xMS0wOSAwNjo1MiAgbmJhCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIFByaW50IHRoZSBlcnJvciBpbmZvcm1hdGlvbiBpbiBjYXNlIG9mIGVycm9yCiAgIAoyMDAyLTExLTA5IDA2OjUxICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHYyIGV4Y2VwdGlvbiByZXN1bHRzCiAgIAoyMDAyLTExLTA5IDA2OjQ5ICBuYmEKCiAgICogc2Vkc2NyaXB0LmluLCBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFByb3RlY3QgUFJFRklYIHdoZW4gaXQgaXMgdGhlIGVudiB2YXIuIFRoYW5rcyB0byBTdGVmYW4gUmFkbWFuIChzcmFkbWFuKQogICAKMjAwMi0xMS0wOSAwNjo0NyAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIEFkZCBSRkMgMzM3MSBMMlRQLU1JQgogICAKMjAwMi0xMS0wOSAwNjo0NiAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlZCBmcm9tIElBTkEKICAgCjIwMDItMTEtMDcgMDI6NTUgIGpicG4KCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgICAgLSBmaXggLUNmIGFuZCAtQ3cgb3B0aW9uIHByb2Nlc3NpbmcgKHByZXZpb3VzbHkgd291bGQgY29yZSBkdW1wIGlmCiAgICAgICBubyBvcHRpb24gcGFzc2VkKSwgYXMgcG9pbnRlZCBvdXQgYnkgaGFtcGEgb24gI25ldC1zbm1wCiAgIAoyMDAyLTExLTA2IDEyOjM1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGN1dC9wYXN0ZQogICAKMjAwMi0xMS0wNiAxMjowNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWd1cmUuaW4gJiBtYWtlZmlsZXMKICAgCjIwMDItMTEtMDYgMTE6MDggIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgbWlzc2luZyBlbmQgcXVvdGUKICAgCjIwMDItMTEtMDYgMTA6MzUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgQERFVkZMQUdTQCB3ZWhlcnZlciB0aGVyZSBpcyBhIEBDRkxBR1NALCBleGNlcHQgZm9yIHRoZSBuZXcgLS1iYXNlLWNmbGFncwogICAKMjAwMi0xMS0wNiAxMDoyMiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGFkZCBAREVWRkxBR1NAIHRvIENGTEFHUwogICAKMjAwMi0xMS0wNiAxMDoyMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHNlcGVyYXRlIGRldmVsb3BlciBjZmxhZ3MgZnJvbSBub3JtYWwgY2ZsYWdzCiAgIAoyMDAyLTExLTA2IDA5OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgY2hhbmdlIHN0cnVjdC5oIGluY2x1ZGUgdG8gdXNlICIiIGluc3RlYWQgb2YgPG5ldC1zbm1wLz4sIHNpbmNlIGl0IGl0IGEgbG9jYWwKICAgaW5jbHVkZSwgbm90IGEgc3lzdGVtIGluY2x1ZGUKICAgCjIwMDItMTEtMDYgMDk6MzkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHB1cmdlIElOX1VDRF9TTk1QX1NPVVJDRQogICAKMjAwMi0xMS0wNSAwOToyNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBhZGRlZCBhIHhtbHNob3J0IGRlbGltaXRlciBhcyByZXF1ZXN0ZWQgYnkgbGFuZHMgb24gSVJDCiAgIAoyMDAyLTExLTA1IDA4OjU5ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHRhYnMgLT4gc3BhY2VzIG9ubHkgdHJ5IHRvIGNobW9kIFJPIHNyYyBkaXIgaWYgb3duZXIgb2YgZGlycwogICAKMjAwMi0xMS0wNSAwODo1NiAgcnN0b3J5CgogICAqIG1raW5zdGFsbGRpcnM6CgogICBtYWtpbmcgYSBkaXJlY3RvcnkgaXMgbm90IGFuIGVycm9yLCBzbyBkb24ndCBzZW5kIG91dHB1dCB0byBzdGRlcnIKICAgCjIwMDItMTEtMDQgMDg6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIGFsbG93IHVucmVnaXN0ZXJlZCBzZWN1cml0eSBtb2RlbHMgPD0gMgogICAKMjAwMi0xMS0wNCAwODoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiB0byBiZSBiZXR0ZXIgc3VwcG9ydGVkIChyb3dzdGF0dXMgbm8gbG9uZ2VyIGhhcyB0bwogICBiZSBmaXJzdCBpbiB0aGUgbGlzdCwgLi4uKQogICAKMjAwMi0xMS0wNCAwODoxMyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIGNwcGZsYWdzIHRvIC0tY2ZsYWdzCiAgIAoyMDAyLTExLTA0IDA4OjEzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkIHN0dWZmIGZvciA1LjAuNyAob3Igd2hhdGV2ZXIpIG1lbnRpb25pbmcgYSBmZXcgbmV3IGZlYXR1cmVzLgogICAKMjAwMi0xMS0wMSAwOTowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4ZWQgYnVnICM2MzIwOTQgdXNpbmcgdGhlIHN1Z2dlc3RlZCBtZXRob2Q6IHdhdGNoIGZvciBOVUxMIHN0cmVycm9yKCkgcmV0dXJuCiAgIAoyMDAyLTExLTAxIDA3OjA5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB1bmRvIG15IGNoYW5nZXMgZnJvbSByIDUuMTcsIGF0dGVtcHRpbmcgdG8gcmVkdWNlIHJ1bnMgb2YgY29uZmlnLnN0YXR1cwogICBieSB1c2luZyBleHBsaWNpdCBwYXRocyB0byBzcmNkaXIsIGFuZCBsZXQgVlBBVEggZG8gaXQncyB0aGluZwogICAKMjAwMi0xMC0yOSAxMTozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICB0YXJnZXQgdG8gYnVpbGQgYmluYXJ5IGFycmF5IHRlc3QgYXBwOyB0d2VhayB0byBwYXJzZSB0ZXN0IHRhcmdldCAocmVkdWNlcyBtb3N0CiAgIGJ1dCBub3QgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMpCiAgIAoyMDAyLTEwLTI5IDExOjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggZm9yIGJpbmFyeSBzZWFyY2ggcHJvYmxlbSBub3RlZCBieSBSb215IENocmlzdGVuc2VuIG9uIGNvZGVyczsgcGFydGlhbAogICAoaWZkZWYnZCBvdXQpIGNvZGUgZm9yIGEgYmluYXJ5IGFycmF5IGl0ZXJhdG9yCiAgIAoyMDAyLTEwLTI5IDExOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jOgoKICAgc2ltcGxlIHRlc3QgcHJvZ3JhbSBmb3IgYmluYXJ5IGFycmF5CiAgIAoyMDAyLTEwLTI5IDA2OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeCBkZWJ1Z2dpbmcgYXMgbm90ZWQgaW4gYnVnICM2MzAzNDgKICAgCjIwMDItMTAtMjggMTY6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hhbmdlZCAuMS42LjMgdG8gMS4zLjYgYXMgbm90ZWQgaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAKMjAwMi0xMC0yOCAxMjowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgY2hhbmdlZCBwYXNzd29yZAogICAKMjAwMi0xMC0yOCAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgbWlzYyB2YWNtIGZpeGVzCiAgIAoyMDAyLTEwLTI4IDA1OjQxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZW1vdmUgZXJyb25lb3VzIGZyZWUoKSBvZiByeGJ1ZgogICAKMjAwMi0xMC0yNSAwOTozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4ZWQgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIC0+IE5FVFNOTVBfT1BfQ0FMTEJBQ0tfRElTQ09OTkVDVCBhcyBub3RlZCBieSBUcm9nTCBvbiBJUkMKICAgCjIwMDItMTAtMjUgMDQ6MzQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHBlcmZvcm0gYSBORVRTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHlwZSBjYWxsYmFjayBpZiB3ZQogICAgICAgZGVjaWRlIHRvIHNodXRkb3duIGEgc3RyZWFtIHR5cGUgY29ubmVjdGlvbiBiZWNhdXNlIHdlIHJlY2VpdmVkCiAgICAgICBhbiBleGNlc3NpdmVseSBsYXJnZSBwYWNrZXQuCiAgIAoyMDAyLTEwLTI0IDA3OjQxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCB0aGUgc3VwZXItYnVnLXBhdGNoIGdlbmVyYXRvciBTdGVmYW4gUmFkbWFuIHRvIHRoZSBUSEFOS1MgbGlzdAogICAKMjAwMi0xMC0yNCAwNzo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgYnVnICM2MTc1MDg6IGFkZGVkIHRoZSBtdGFfc2VuZG1haWwgbW9kdWxlIHRvIC0taGVscAogICAKMjAwMi0xMC0yNCAwNzozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICB1cGRhdGUgaW5zdGFsbCBsaXN0IGZvciBtaWIyYyBjb25mIGZpbGVzIGFuZCByZW1vdmUgb2xkIG9uZQogICAKMjAwMi0xMC0yMyAxNzozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggaW5jb3JyZWN0IHZhcmlhYmxlIG5hbWUgSSBub3RpY2VkIHdoZW4gY29weWluZyB0byBhIGRpZmZlcmVudCBjb25maWd1cmUgc2NyaXB0IGluIGFub3RoZXIgcGFja2FnZQogICAKMjAwMi0xMC0yMyAxNzoyOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBGaXhlZCBidWcjNjE3ODM4OiB2ZXJzaW9udGFnIGlzbid0IGRpc3RyaWJ1dGVkIGFuZCBzaG91bGRuJ3QgYmUgYWx3YXlzCiAgIHVzZWQgaW4gdGhlIG1ha2UgZGlzdGNsZWFuIGNhbGxzLgogICAKMjAwMi0xMC0yMyAxNzoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgaW5jb25zZXF1ZW5jaWFsIG1lbW9yeSBsZWFrcyBmaXhlZCAoaW5pdCB0aW1lIGxlYWtzKS4KICAgCjIwMDItMTAtMjMgMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEZpeGVkIHZhcmlvdXMgbWVtb3J5IGxlYWtzIGluIHRoZSB0YWJsZV9pdGVyYXRvciBhcyBwb2ludGVkIG91dCBieQogICBSb2dlciBNY0NhbG1hbiBhbmQgSmF5IFBhcmxhciBvbiB0aGUgLWNvZGVycyBsaXN0IChpbmNsdWRpbmcgdGhlaXIgcGF0Y2hlcykKICAgCjIwMDItMTAtMjMgMTU6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHNubXBOb3RpZnlUYWJsZS5jCiAgIAoyMDAyLTEwLTIzIDE1OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmcmVlIGEgcHJldmlvdXNseSBtYWxsb2NlZCBwb2ludGVyIHRvIHRoZSB3YXRjaCB2YXJpYWJsZSBiZWZvcmUgcmVwbGFjaW5nIGl0LgogICAKMjAwMi0xMC0yMyAxNTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSB1bnVzZWQgbWFsbG9jLgogICAKMjAwMi0xMC0yMSAwOTo0MyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi45Lmg6CgogICAgIC0gYWRkIHN5c3RlbSBmaWxlIGZvciBTb2xhcmlzIDkKICAgCjIwMDItMTAtMTcgMTk6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgT3B0aW1pemVkIHRoZSBWQUNNIGNoZWNrcyBpbiB0aGUgY2FzZSBvZiBnZXRuZXh0L2dldGJ1bGsgc28gdGhhdCB3aGVuCiAgIGxhcmdlIHBvcnRpb25zIG9mIHRoZSBtaWIgdHJlZSBhcmUgZXhjbHVkZWQsIHRoZSBzdWItbWliIGFjY2VzcyBjb2RlCiAgIHdvbid0IGJlIGNhbGxlZCBhdCBhbGwgKGZpbmFsbHkgaW1wbGVtZW50aW5nIGEgdmVyeSBsb25nIG5lZWRlZCBvcHRpbWl6YXRpb24pLgogICAKMjAwMi0xMC0xNyAxOTo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBuZXcgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29tbW9uYWxpdHkgYmV0d2VlbiB0d28gb2lkczogbmV0c25tcF9vaWRfZmluZF9wcmVmaXgKICAgCjIwMDItMTAtMTcgMTk6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFByaW50IG91dCBhICJzdW1tYXJ5IiBhdCB0aGUgZW5kIG9mIGEgcnVuCiAgIAoyMDAyLTEwLTE3IDAyOjQwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBQcm9wZXJseSB0ZXJtaW5hdGUgYSBsb29wIGNvbnN0cnVjdCAobWlzc2luZyAnQGVuZEAnKQogICBTcG90dGVkIGJ5IEthcmwgQ29vcGVyLiAgICBPb3BzIQogICAKMjAwMi0xMC0xNiAxNDoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZXN0b3JlIGNvbnRpbnVlIGFmdGVyIEVJTlRSIGNhdXNlZCBieSBzaWduYWwgd2UgaGFuZGxlZCAoaW5zdGVhZCBvZiBmYWxsaW5nCiAgIHRob3JvdWdoIHRvIGV4aXQhKQogICAKMjAwMi0xMC0xNiAxNDowMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBjaGVjayBmb3Igb3VyIHNpZ25hbCBmbGFncyBvbiBFSU5UUiwgYW5kIG9ubHkgcmVsZXNlY3QgaWYgbm90IGNoYW5nZWQ7CiAgIGRlYnVnIG1zZyB3aGVuIHNpZ25hbHMgcmVnaXN0ZXJlZCBhbmQgZm9yIHNlbGVjdC9mZHNldHM7CiAgIAoyMDAyLTEwLTE2IDEyOjUyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbW92ZSBDUFBGTEFHUyBiZWZvcmUgdXNlciBjb25maWd1cmUgQ0ZMQUdTLi4gc28gaWYgYSB1c2VyIGFkZHMgc29tZXRoaW5nCiAgIGxpa2UgL3Vzci9sb2NhbC9pbmNsdWRlIHRvIENGTEFHUywgd2Ugd2lsbCBwaWNrIHVwIG91ciBsb2NhbCBpbmNsdWRlcyBmaXJzdCwKICAgaW5zdGVhZCBvZiBpbmNsdWRlcyBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4uCiAgIAoyMDAyLTEwLTE1IDIxOjA2ICByc3RvcnkKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZF9sb2cuaAo6CgogICBtYWtlIHN1cmUgc25tcHRyYXBkIGFsd2F5cyBob25vcnMgRFNfQVBQX05VTUVSSUNfSVAgZm9yIGxvZ2dpbmcKICAgCjIwMDItMTAtMTUgMTQ6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV0c25tcF9nZXRfYm9vbGVhbiAtPiBuZXRzbm1wX2RzX2dldF9ib29sZWFuCiAgIAoyMDAyLTEwLTE1IDExOjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZml4IGNvbnN0YW50IHVzZWQgaW4gYXNzZXJ0LCBub3RlZCBvbiBjb2RlcnMKICAgCjIwMDItMTAtMTUgMTE6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBpbmNsdWRlIHN5c2xvZyBmb3IgbGlid3JhcCBsb2cgbGV2ZWxzCiAgIAoyMDAyLTEwLTE1IDA3OjM5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEFkZCB5ZXQgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSB2NiBhZGRyZXNzZXMKICAgCjIwMDItMTAtMTQgMDg6NTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZml4IGlwdjYgdHJhbnNwb3J0IGFkZHJlc3Mgc3BlY3MKICAgCjIwMDItMTAtMTEgMTY6MTggIGhhcmRha2VyCgogICAqIFJFQURNRS5jbXUsIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFJlbW92ZSB0aGUgUkVBRE1FLmNtdSBmaWxlIChlbnRpcmVseSBvdXQgb2YgZGF0ZSBhdCB0aGlzIHBvaW50KS4KICAgCjIwMDItMTAtMTEgMTM6NTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwYXRjaCAjNjAwOTMzIGZyb20gRG9uYWwgRGlhbW9uZDogZHNrUGVyY2VudE5vZGUgZm9yIEZyZWVCU0Q0CiAgIAoyMDAyLTEwLTExIDEzOjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzU5ODI4MCBmcm9tIEplZmYgV2F0c29uOiBtYWtlIC1PUSBub3QgcHJpbnQgdHlwZSB3YXJuaW5ncy4KICAgCjIwMDItMTAtMTEgMTM6NDMgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaXggaW5jbHVkZSBkaXJlY3RvcnkKICAgCjIwMDItMTAtMTEgMTM6NDIgIGhhcmRha2VyCgogICAqIGRpc3QvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBycG0gc3ViZGlyCiAgIAoyMDAyLTEwLTExIDEzOjMyICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYmV0dGVyIGRvY3MgYWJvdXQgYXV0by1leHRyYWN0ZWQgU0YgbmV3cwogICAKMjAwMi0xMC0xMSAxMzowNCAgaGFyZGFrZXIKCiAgICogZGlzdC86IE1ha2VmaWxlLCBuZXQtc25tcC5zcGVjOgoKICAgbWVyZ2UgaW4gcGF0Y2ggIzU5ODg2OTogTWFyayBIYXJpZydzIGJldHRlciBycG0gc3R1ZmYKICAgCjIwMDItMTAtMTEgMTI6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKOgoKICAgQWx0ZXJuYXRpdmUgdG8gYSBwYXRjaCBzdWdnZXN0aW9uOiBhZGQgLU9VIHRvIG5vdCBwcmludCBVTklUUyBzdWZmaXhlcy4KICAgCjIwMDItMTAtMTEgMTI6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgLi4vYWdlbnQvc25tcF9hZ2VudC5jCiAgIAoyMDAyLTEwLTExIDEyOjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgZG9udFByaW50VW5pdHMKICAgCjIwMDItMTAtMTEgMTE6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoICM2MTcxNTEgZnJvbSBBbmRyZXcgUnVja2VyIEpvbmVzOiBmaXggbGlid3JhcCBoZWFkZXJzLgogICAgIC0gSSdtIHN0aWxsIHVuaGFwcHkgd2l0aCBob3cgbGlid3JhcCBmdW5jdGlvbnMuLi4gIG5lZWRzIHRoaW5raW5nIGFib3V0LgogICAKMjAwMi0xMC0xMSAxMDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQYXRjaCAjMzEyNjk0IGZyb20gSm9obiBTdXJ2ZXlvcjogZml4IGRpc2tpbyBvbiBzb2xhcmlzLgogICAKMjAwMi0xMC0xMSAxMDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzYyMTM5OCBmcm9tIE1hdHRoZXcgS3JlbnplciB0byBmaXggbGludXggYXJwIHRhYmxlLgogICAKMjAwMi0xMC0xMSAwNjo0NyAgcnN0b3J5CgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIGNoZyBuZXRzbm1wbWlicyAtPiBuZXRzbm1wbWlic3NrZCAobm90ZWQgb24gY29kZXJzIGJ5IEplZCBXaGl0dGVuKQogICAKMjAwMi0xMC0xMSAwNjo0NSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgICAgLSBub3RlIHNxdWFyZSBicmFja2V0cyBmb3IgSVB2NiBhZGRyZXNzZXMKICAgCjIwMDItMTAtMTEgMDY6NDAgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSByZXN0YXJ0IHNlbGVjdCgpIG1vcmUgcXVpY2tseSBpZiBhbiBFSU5UUiBoYXBwZW5zCiAgIAoyMDAyLTEwLTEwIDIyOjUxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhcHBsaWVkIEhhcnJpZSdzIHBhdGNoIGRlc2NyaWJpbmcgbG93IG1lbW9yeSBmb290cHJpbnRzCiAgIAoyMDAyLTEwLTEwIDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFBhdGNoIGZyb20gS2VuIEhvcnN0ZWluIHRvIGZpeCBLU00gbW9kdWxlCiAgIAoyMDAyLTEwLTEwIDAzOjIyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgICAgLSByZW1vdmUgYmFkIGlubGluZXMgd2hpY2ggY2F1c2UgZmlsZSBub3QgdG8gY29tcGlsZSB3aXRoIFN1biBDQy4KICAgICAgIFNlZSBidWcgIzYyMDgyNy4KICAgCjIwMDItMTAtMDkgMjM6MDMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGFkZCAubGEgZmlsZXMKICAgCjIwMDItMTAtMDkgMjM6MDAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIG1ha2UgdGhlIC5zcGVjIGZpbGUgYWxtb3N0IHVzYWJsZS4KICAgCjIwMDItMTAtMDggMTU6NTUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIEZBUSB1cGRhdGVzIGZvciBkb3dubG9hZCBzaXRlcy4KICAgCjIwMDItMTAtMDggMDc6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIFBhdGNoIGZyb20gSm9zaHVhIEtlcm9lcyBmb3Igc3RyaW5nIGNvbXBhcmlzb25zCiAgIAoyMDAyLTEwLTA3IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhZGRlZCBhIHN0YXRlbWVudCBhYm91dCB0aGUgQ09QWUlORyBmaWxlIChzdWdnZXN0ZWQgYnkgSGFycmllKQogICAKMjAwMi0xMC0wNiAxMTozMiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBuc2ItKiBsaWtlcyBmdWxsIHBhdGhzLCB1cGRhdGUgZXhhbXBsZXM7IGZpeCBzb3VyY2Vmb3JnZSB1cGxvYWQgc2l0ZQogICAKMjAwMi0xMC0wNSAxNDo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMKLCBGQVEsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC42ICkKICAgCjIwMDItMTAtMDUgMTQ6NDIgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zY2FsYXIuMywKICAgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zLAogICBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBtYWtlIGRvY3MKICAgCjIwMDItMTAtMDUgMTQ6NDEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjYKICAgCjIwMDItMTAtMDUgMTQ6MzggIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtaXNjIHVwZGF0ZXMKICAgCjIwMDItMTAtMDUgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0xMC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciA1LjAuNgogICAKMjAwMi0xMC0wNSAxNDowOCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHJlbW92ZSBpbGxlZ2FsIGZsYWcgZnJvbSBuc2ItY29uZmlnCiAgIAoyMDAyLTEwLTA1IDEzOjQxICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZWZlbmNlIGlzIHlvdXIgZnJpZW5kOiBkb24ndCBhbGxvY2F0ZSAwIGJ5dGVzCiAgIAoyMDAyLTEwLTA1IDEyOjU4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBlZmVuY2UgaXMgeW91ciBmcmllbmQ6IGRvbid0IHJlZmVyZW5jZSBwdHIgYWZ0ZXIgaXMgaGFzIGJlZW4gZnJlZSdkLgogICAKMjAwMi0xMC0wNCAwNzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IHNlY29uZGFyeSBlZmZlY3Qgb2YgYnVnIDYxMzk4MyBhbmQgcmVhbGx5IGZpeCBpdCB0aGlzIHRpbWUuCiAgIAoyMDAyLTEwLTAyIDEwOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvOiB0dW5uZWwuYyAoVjQtMi1wYXRjaGVzLjIpLCB0dW5uZWwuYwo6CgogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MgdG8gZml4IHNvbWUgY29kaW5nIGVycm9ycwogICAKMjAwMi0xMC0wMSAwNzozOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgb2ZmaWNhbCBwYXRjaCA2MTcwNDk6IGluaXRpYWxpemUgY29udGFpbmVyIGxpc3QgZWFybGllciAoaW4gaW5pdF9hZ2VudCkKICAgCjIwMDItMTAtMDEgMDc6MzUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzIChkYW1uIHdpbmRvd3MgZWRpdG9ycykKICAgCjIwMDItMDktMzAgMTU6MTcgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjUgKQogICAKMjAwMi0wOS0zMCAxNToxNiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBhZGQgaW5mbyBvbiBtZDVzdW1zIGFuZCBncGcgc2lnbmluZwogICAKMjAwMi0wOS0zMCAxNToxNSAgcnN0b3J5CgogICAqIGRpc3QvY3ZzdXA6CgogICBmaXggY2htb2QgdG8gZG8gd2hhdCBJIHdhbnRlZCwgbm90IHdoYXQgSSB0b2xkIGl0CiAgIAoyMDAyLTA5LTMwIDE1OjE0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBNYWtlZmlsZS50b3AsIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC41CiAgIAoyMDAyLTA5LTMwIDE0OjI3ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgbWVyZ2UgcHJlIGNoYW5nZXMgaW50byA1LjAuNCBjb21tZW50cwogICAKMjAwMi0wOS0zMCAxNDoyNSAgcnN0b3J5CgogICAqIE5FV1M6CgogICB1cGRhdGUgZm9yIDUuMC40CiAgIAoyMDAyLTA5LTMwIDE0OjIzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTkVXUyB1cGRhdGVzIGZvciA1LjAuNAogICAKMjAwMi0wOS0zMCAxNDowMyAgcnN0b3J5CgogICAqIFJFQURNRToKCiAgIHVwZGF0ZSBteSBlbWFpbCBhZGRyZXNzCiAgIAoyMDAyLTA5LTMwIDE0OjAzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40CiAgIAoyMDAyLTA5LTMwIDEzOjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgbWFrZSBsZW4gYSBzaXplX3QgdG8gZml4IHByb2JsZW0gb24gNjQgYml0IHN5c3RlbSwgcmVwb3J0ZWQgYnkgc2Vibm9kYCBpbiBJUkMKICAgCjIwMDItMDktMzAgMTM6MDUgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBkb24ndCB1c2Ugc3RhdGljIGxvY2FsIHZhcnMsIGFzIHRoZXkgYXJlIGxpa2VseSB0byBjYXVzZSBwcm9ibGVtcyB3aXRoIHRocmVhZHMKICAgCjIwMDItMDktMzAgMTI6NDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgbWFrZSBzdXJlIGluc3RhbGwgZGlyIGlzIHJlbGF0aXZlIHRvIGJ1aWxkIGRpcgogICAKMjAwMi0wOS0zMCAxMjoyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgYWRkIG1pc3NpbmcgbmV3bGluZSBpbiBkZWJ1ZwogICAKMjAwMi0wOS0zMCAxMjoxOSAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItZnVuY3Rpb25zLCBuc2ItcGFja2FnZToKCiAgIGZpeCB0eXBvcwogICAKMjAwMi0wOS0zMCAxMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGF2b2lkIGluZmluaXRlIGxvb3AKICAgCjIwMDItMDktMzAgMTE6NTkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBhc3N1bWUgbWFrZSBpcyBHTlUgbWFrZSwgYW5kIHNlYXJjaCBmb3IgaXQuIHJlcXVpcmUgdXNlciB0byBzZXQgYW4KICAgZW52IHZhciBpZiBubyBHTlUgbWFrZSBpcyBmb3VuZCBpbiBQQVRICiAgIAoyMDAyLTA5LTMwIDExOjU4ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIGlmIENWUyBkaXIgaXMgcm8sIGF1dG9tYWdpY2FsbHkgbWFrZSBpdCBydyBiZWZvcmUgdXBkYXRlIGFuZCBybyBhZnRlciB1cGRhdGUKICAgCjIwMDItMDktMjcgMTE6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIG1ha2UgZ2V0X3NldF9jYWNoZSgpIHJldHVybiBhbiBlcnJvciBpZiBubyBwcmV2aW91cyBTRVQgaGFzIGJlZW4gc3RhcnRlZC4KICAgCjIwMDItMDktMjcgMTE6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBkb3VibGUgY2hlY2sgYWdhaW5zdCBzb21lIG51bGwgcG9pbnRlcnMgYmVmb3JlIHVzaW5nIHRoZW0gaW4gdGhlIGNhY2hlIGNvZGUuCiAgIAoyMDAyLTA5LTI3IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBzZXQgdHJlZWNhY2hlX251bSB0byAtMSBhdCBpbml0IG9mIG1lbW9yeSwgdG8gYmUgZXh0cmEgc2FmZS4KICAgCjIwMDItMDktMjYgMTE6NTggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgbW92ZSBsaWJ3cmFwIHZhcmlhYmxlcwogICAKMjAwMi0wOS0yNiAxMTo1NyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIG9rLCByZW1vdmUgdGNwd3JhcHBlcnMgdmFycwogICAKMjAwMi0wOS0yNiAxMDo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGRlZmluZSBzdHVwaWQgdmFyaWFibGVzIG5lZWRlZCBieSB0Y3B3cmFwcGVycyBiZWNhdXNlIHRoZXkgZG9uJ3QgZ2V0CiAgIGNvbmNlcHRzIG9mIGVuY2Fwc3VsYXRpb24uICBhcmcuCiAgIAoyMDAyLTA5LTI2IDA4OjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgY2hhbmdlIGNhbGxfcHYgdG8gcGVybF9jYWxsX3B2IGZvciBvbGRlciB2ZXJzaW9ucyBvZiBwZXJsLgogICAKMjAwMi0wOS0yNiAwODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJ1biBzdHJkdXAoKSBvbiBnZXRfbWliX2RpcigpIHJlc3VsdHMgdG8gZml4IGJ1ZyBwb2ludGVkIG91dCBieSBFdWdlbmUgQnJ1ay4KICAgCjIwMDItMDktMjMgMTA6MTQgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtZW50aW9uIGZyZXNobWVhdAogICAKMjAwMi0wOS0yMyAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gaW1wbGVtZW50IGEgKGxvbmcgbmVlZGVkKSBzZXR0YWJsZSB2YXJpYWJsZSB0byBzdG9yZSB0aGUgY3VycmVudAogICAgIHBlcnNpc3RlbnQgaW5mb3JtYXRpb24uCiAgIAoyMDAyLTA5LTIzIDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIG1ha2Ugbm90IGluIHRpbWUgd2luZG93IHJlcG9ydHMgdHJpZ2dlciBhIHJlc2VuZCBvZiBpbmZvcm1zLgogICAgIChzdWdnZXN0aW9uIGZyb20gRXJpayBBbmdnYXJkKQogICAKMjAwMi0wOS0yMCAwODoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaDoKCiAgICAgLSByZW1vdmUgZnVuY3Rpb25zIHZhY21fcGFyc2Vfc2VjdXJpdHkgYW5kIHZhY21fZnJlZV9zZWN1cml0eSB3aGljaAogICAgICAgZG9uJ3QgZXhpc3QKICAgCjIwMDItMDktMTkgMTQ6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICAtIHN1cHBvcnQgYWdlbnQgc2h1dGRvd25zICh3ZWxsLCBvayBpdCdzIGp1c3QgYW4gYXBpIHNpbmNlIGl0IGRvZXNuJ3Qgd29yaykuCiAgIC0gbWlzYyBidWcgZml4ZXMuCiAgIAoyMDAyLTA5LTE5IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50LzogYWdlbnQueHMsIG5ldHNubXBfcmVxdWVzdF9pbmZvUHRyLnBtOgoKICAgZml4IGFnZW50IHJlcXVlc3RfaW5mb1B0ciBwcm9ibGVtcy4KICAgCjIwMDItMDktMTkgMDk6MDQgIGR0czEyCgogICAqIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3A6CgogICBDb21waWxlIGFuZCBsaW5rIHdpdGggJ2dldG9wdC5jJyBleHBsaWNpdGx5LgogICAKICAgVGhpcyBzaG91bGQgbm90IGJlIG5lY2Vzc2FyeSwgYnV0IGZvciBzb21lIHJlYXNvbgogICAodGhhdCBjb21wbGV0ZWx5IGVzY2FwZXMgbWUhKSwgdXNpbmcgY29tbWFuZC1saW5lIG9wdGlvbnMKICAgKHN1Y2ggYXMgLUlSKSB3aXRoIHRoZSBSZWxlYXNlIHZlcnNpb24gb2Ygc25tcHRyYW5zbGF0ZQogICBjYXVzZXMgYSBydW4tdGltZSBETEwgZXJyb3IuICAoVGhlIERlYnVnIHZlcnNpb24gaXMgZmluZSkuCiAgIFRoZSBvdGhlciBhcHBsaWNhdGlvbnMgc2VlbSB0byBiZSBPSyAtIHRoaXMgcHJvYmxlbSBvbmx5CiAgIHNlZW1zIHRvIGhpdCBzbm1wdHJhbnNsYXRlLiAgU28gYXMgYSBzdGlja2luZy1wbGFzdGVyLAogICBjb21waWxpaW5nIGdldG9wdC5jIGluIGFzIHBhcnQgb2YgdGhlIHByb2plY3QsIGtlZXBzIGJvdGgKICAgdmVyc2lvbnMgb2YgdGhlIGFwcGxpY2F0aW9uIGhhcHB5LgogICAgIFNvbWVvbmUgd2l0aCBiZXR0ZXIgV2luZG93cyBrbm93bGVkZ2UgdGhhbiBtZSBuZWVkcyB0bwogICBsb29rIGF0IHRoaXMgYW5kIGZpeCBpdCBwcm9wZXJseS4KICAgCjIwMDItMDktMTkgMDM6MTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICAgIC0gdW5kbyB3b3JzdCBvZiBpbmRlbnQgZGFtYWdlCiAgIAoyMDAyLTA5LTE5IDAzOjAzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBfZHBhcnNlIGZ1bmN0aW9ucyAod2hpY2ggZG9uJ3QgZXhpc3QpCiAgIAoyMDAyLTA5LTE4IDA3OjU1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZXNldCBTTk1QX1NMRUVQIGFmdGVyIGxvb3AKICAgCjIwMDItMDktMTggMDc6NDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIHJlbW92ZSB2ZXJ5IG9ic29sZXRlIChhbmQgbm90IHVzZWQgYW55d2hlcmUpICNkZWZpbml0aW9ucyBvZgogICAgICAgUEFSVFlfTUlCX0JBU0UgYW5kIENPTlRFWFRfTUlCX0JBU0UKICAgCjIwMDItMDktMTcgMjM6NTkgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB0d2VhayBmb3IgNS4wLjQgbGFzdCBtaW51dGUgdXBkYXRlCiAgIAoyMDAyLTA5LTE3IDIzOjQ4ICByc3RvcnkKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgY2hnID4gdG8gLWd0IHRvIGFjaGlldmUgaW50ZW5kZWQgcmVzdWx0CiAgIAoyMDAyLTA5LTE3IDIyOjM5ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMTcgMjI6MzMgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQgKQogICAKMjAwMi0wOS0xNyAyMjozMiAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjQKICAgCjIwMDItMDktMTcgMjE6NTkgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCAkKHNyY2RpcikgdG8gYSBmZXcgZGVwZW5kZW5jaWVzIHRvIHRyeSBhbmQgcmVkdWNlIHRoZSAjIG9mIHRpbWVzIHRoYXQKICAgY29uZmlnLnN0YXR1cyBpcyBydW4gd2hlbiBidWlsZGluZyBvdXRzaWRlIHRoZSBzcmMgZGlyCiAgIAoyMDAyLTA5LTE3IDIxOjU0ICByc3RvcnkKCiAgICogUkVBRE1FLndpbjMyOgoKICAgdmlzdWFsbHkgcHJvdm9jYXRpdmUgc2VjdGlvbiBoZWFkZXJzOyBhZGQgcmVjZW50IHN0YXR1cyAoYWxsIGJhZCBuZXdzKTsKICAgbm90IHRvIHVzZSBuZXcgd2luMzJzZGsuZHN3IHRvIGdldCBhZGRpdG9uYWwgZnVuY3Rpb25hbGl0eSB3aXRoIHBsYXRmb3JtIHNkazsKICAgcmVtb3ZlIGluZm8gb24gcmVtb3ZpbmcgYWdlbnR4LCBhcyBpdCdzIGJlZW4gYXJvdW5kIG5vdyBmb3IgYSB3aGlsZTsgYWRkCiAgIHNlY3Rpb24gb24gd2hhdCBmaWxlcyB0byBlZGl0IHRvIGFkZCBtaWIyYyBnZW5lcmF0ZWQgY29kZSB0byBhZ2VudDsgcmVtb3ZlCiAgIHJlZmVyZW5jZSB0byBzcGVjaWZpYyByZWxlYXNlIG51bWJlciBpbiBleGFtcGxlCiAgIAoyMDAyLTA5LTE3IDIxOjI1ICByc3RvcnkKCiAgICogd2luMzIvc25tcGRzZGsvc25tcGQuZHNwOgoKICAgdGFrZSAnc2RrJyBvdXQgb2YgZXhlIG5hbWUKICAgCjIwMDItMDktMTcgMjE6MjUgIHJzdG9yeQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBzd2FwIHNubXBkc2RrIGZvciBzbm1wZAogICAKMjAwMi0wOS0xNyAyMToxNCAgcnN0b3J5CgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwgc25tcHVzbS9zbm1wdXNtLmRzcCwKICAgc25tcHZhY20vc25tcHZhY20uZHNwLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBnZXQgYWxsIG91ciBkdWNrcyBpbiBhIHJvdzogYWRkIGFkdmFwaTMyLmxpYiB0byBsaW5rIGxpbmVzLCBtYWtlIHN1cmUgYWxsCiAgIFJlbGVhc2UgYW5kIERlYnVnIGxpYnMvYXBwcyBhcmUgY29tcGlsZSB3aXRoIHNhbWUgQysrIHNldHRpbmdzCiAgIAoyMDAyLTA5LTE3IDIxOjEyICByc3RvcnkKCiAgICogd2luMzIvbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwOgoKICAgcmVtb3ZlIHNkayBkZXBlbmRlbnQgbW9kdWxlcwogICAKMjAwMi0wOS0xNyAyMToxMCAgcnN0b3J5CgogICAqIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIGdyb3VwIG1vZHVsZXMgdGhhdCBkZXBlbmQgb24gd2luMzIgc2RrIHRvZ2V0aGVyLCB3aXRoIGlmZGVmCiAgIAoyMDAyLTA5LTE3IDIxOjA4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBubyBjYWxsYmFjayBmb3Igd2luMzIgdW50aWwgcGlwZSBmZCBwcm9ibGVtIGlzIGZpeGVkCiAgIAoyMDAyLTA5LTE3IDIxOjA3ICByc3RvcnkKCiAgICogd2luMzIvOiBuZXRzbm1wbWlic3Nkay9uZXRzbm1wbWlic3Nkay5kc3AsCiAgIHNubXBkc2RrL3NubXBkLmRzcDoKCiAgIG5ldyB2ZXJzaW9ucyBmb3Igc2RrIHVzZXJzCiAgIAoyMDAyLTA5LTE3IDIxOjA1ICByc3RvcnkKCiAgICogd2luMzIvd2luMzJzZGsuZHN3OgoKICAgbmV3IHdvcmtzcGFjZSBmb3Igc2RrIHVzZXJzCiAgIAoyMDAyLTA5LTE2IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIG1pYiBtb2R1bGUgbG9hZGluZyBmaXhlcyBieSBjYWxsaW5nIGluaXRfc25tcCBmaXJzdAogICAKMjAwMi0wOS0xMyAxMjowNSAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB0d2VhayBleGFtcGxlIG5zYi1jb25maWcgY29tbWFuZDsgYWRkIC1iIGJhY2sgdG8gY3ZzMmNsLCBvdGhlcndpc2UgeW91CiAgIGdldCBjaGFuZ2Vsb2cgbXNncyBmcm9tIG90aGVyIGJyYW5jaGVzIGFuZCBoYXZlIHRvIHdlZWQgdGhlbSBvdXQKICAgCjIwMDItMDktMTMgMDk6MzMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnBtLCBPSUQueHMsIHRlc3QucGw6CgogICBmaXggaWxsZWdhbCBvaWRzIHRvIG5vdCByZXR1cm4gYSBwb2ludGVyLgogICAKMjAwMi0wOS0xMyAwNzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSBtaW5vciBvcHRpbWlzYXRpb247IHdlIGRvbid0IG5lZWQgYSB6ZXJvLXRlcm1pbmF0ZWQgY29tbXVuaXR5CiAgICAgICBzdHJpbmcgZXhjZXB0IGZvciBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMjAwMi0wOS0xMyAwNzozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGRlZCAtaSBvcHRpb24gdG8gcmVxdWVzdCBpbmRlbnQgbm90IGJlIHJ1bgogICAKMjAwMi0wOS0xMyAwNzowNiAgamJwbgoKICAgKiBDT1BZSU5HOgoKICAgICAtIGFkZCBtaXNzaW5nIHZlcmIgaW4gaW50cm9kdWN0aW9uCiAgIAoyMDAyLTA5LTEyIDEyOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHByb3RlY3QgY2FsbGluZyBzb21lIFN2SVYgZGVyZWZlcmVuY2UgZnVuY3Rpb25zIGlmIGl0J3Mgbm90IGFuIElWLgogICAgIC0gZWxpbWluYXRlcyB0aGUgcmVtYWluaW5nIHBlcmwgd2FybmluZ3MuCiAgIAoyMDAyLTA5LTEyIDExOjQ1ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBpbmNsdWRlIGxkZmxhZ3Mgd2hlcmUgYXBwcm9wcmlhdGUgKC0tbGlicywgLS1hZ2VudC1saWJzLCAuLi4pCiAgIAoyMDAyLTA5LTExIDIyOjQ4ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1uaWdodGx5LCBuc2ItcGFja2FnZToKCiAgIGFkZC91c2UgbmV3IG9wdGlvbiB0byByZW1vdmUgYnVpbGQgZGlyIGFmdGVyIHN1Y2Nlc3NmdWwgYnVpbGQKICAgCjIwMDItMDktMTEgMjI6NDcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBwcmludCBidWlsZCBkaXIKICAgCjIwMDItMDktMTEgMjI6MTkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBtdWNoIG1vcmUgY29tcGxleCB0ZXN0cyBvZiBVU00gdXNlciBjcmVhdGlvbi9tb2RpZmljYXRpb24uCiAgIAoyMDAyLTA5LTExIDIyOjA3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDAwMXNubXB2MWdldCwKICAgdGVzdHMvVDAwMnNubXB2MWdldG5leHQsIHRlc3RzL1QwMDNzbm1wdjFnZXRmYWlsLAogICB0ZXN0cy9UMDA0c25tcHYxbm9zdWNoOgoKICAgLSBzdXBwb3J0IGZvciBtdWx0aXBsZSB0ZXN0cyBhdCBvbmNlLgogICAtIG1lcmdlIHYxIHRlc3RzIGludG8gYSBzaW5nbGUgKGZhc3RlcikgdGVzdC4KICAgCjIwMDItMDktMTEgMjE6MzQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBtb25rZXkgYXJvdW5kIHdpdGggcmV0dXJuaW5nIGVycm9yIGNvZGVzLCBqdXN0IGV4aXQ7IG1vcmUgcmVnZXhwIHR3ZWFrcwogICAKMjAwMi0wOS0xMSAxNjozNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSB1c2Ugc3ViLXNlY29uZCBzbGVlcHMgaWYgYXZhaWxhYmxlCiAgIC0gc2xlZXAgMSAoc3ViLSlzZWNvbmQgYXQgYSB0aW1lIHdoZW4gd2FpdGluZyBmb3IgcGFydGljdWxhciB0ZXN0cwogICAgIHJhdGhlciB0aGFuIHRoZSBmdWxsIFNOTVBfU0xFRVAgZHVyYXRpb24uCiAgIAoyMDAyLTA5LTExIDE2OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgdXNlIHNubXBfbG9nIGluc3RlYWQgb2YgcHJpbnRmIGZvciBzaHV0ZG93biBtZXNzYWdlLgogICAKMjAwMi0wOS0xMSAxNTo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWlzc2luZyB2YXJpYWJsZSBkZWNsIHBvaW50ZWQgb3V0IGJ5IGlyYzpkZgogICAKMjAwMi0wOS0xMCAxMzoxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrIGVycm9yIHJlZ2V4cHMgJiBlcnJvciBtZXNzYWdlcwogICAKMjAwMi0wOS0xMCAxMjoyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNvbXBpbGVyIHdhcm5pbmdzIGFyZSB5b3VyIGZyaWVuZCE7IGZpeCBlbWJlZGVkIGNvbW1lbnRzOyBmaXggbm9uLXZvaWQKICAgZnVuY3Rpb25zIHcvbm8gcnRuIHZhbHVlczsgY29kZSByZW9yZyB0byBmaXggZW1hY3MgaW5kZW50IGNvbXBsYWludHMKICAgCjIwMDItMDktMTAgMTI6MjYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIG5ldyBzdGFydC1mbGFnIGVuZC1mbGFnIHRhcmdldHMgdG8gaGVscCBuaWdodGx5IGJ1aWxkIHNjcmlwdCBkZXRlcm1pbmUKICAgaWYgYSBtYWtlIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkKICAgCjIwMDItMDktMTAgMTI6MTIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICB0d2Vha3MgZm9yIG5ldyBzY3JpcHQgZm9yIGF1dG9tYXRlZCBuaWdodGx5IGJ1aWxkczsgYWQgbnNiLWFib3J0LCBuc2ItZmxvdzsKICAgZGlyZWN0IHNvbWUgbWVzc2FnZXMgdG8gc3RkZXJyOyB1c2UgbmV3IHN0YXJ0LWZsYWcgZW5kLWZsYWcgbWFrZSB0YXJnZXRzOwogICB1cGRhdGUgZXJyb3IgZ3JlcCB0byBpbmNsdWRlICcqKionOyBjaGVjayBmb3IgbmV3IHZhbHVlIHRvIHJtIC1mUiBidWlsZCBkaXIKICAgCjIwMDItMDktMTAgMTI6MDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1uaWdodGx5OgoKICAgbmV3IHNjcmlwdCBmb3IgYXV0b21hdGVkIG5pZ2h0bHkgYnVpbGRzCiAgIAoyMDAyLTA5LTEwIDEyOjA4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIGFkZCBvcHRpb24gdG8gcm0gLWZSIGJ1aWxkIGRpciBhdCBzdGFydDsgY2hlY2sgc2NyaXAgcGF0aCBmb3IgbnNiLWZ1bmN0aW9uczsKICAgcHJlZml4IGRlZmF1bHQgYnVpbGQgZGlyIHcvdmVyc2lvbjsgZXhpdCB3L3JjIGZyb20gbnNiLWJ1aWxkCiAgIAoyMDAyLTA5LTEwIDEyOjA1ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1jb25maWcsIG5zYi1wbGF0Zm9ybToKCiAgIGFkZCBjdXJyZW50IHBhdGggdG8gc2NyaXB0IHRvIG5zYi1mdW5jdGlvbiBzZWFyY2ggcGF0aAogICAKMjAwMi0wOS0wOSAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IGJ1ZyBwb2ludGVkIG91dCBieSBKYXJlZCBTbWl0aC1NaWNrZWxzb24gKGJ1ZyAjNjA1MTQ3KQogICAgICAgd2hlcmVieSBwYXNzaW5nIGFuIHVua25vd24gdHlwZSBjaGFyYWN0ZXIgdG8gc25tcF9hZGRfdmFyIHdvdWxkCiAgICAgICBjYXVzZSBhIHNlZ2ZhdWx0LgogICAKMjAwMi0wOS0wOSAwNjowOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBkb3VibGUgY2hlY2sgYSBwb2ludGVyIHZhbHVlIGJlZm9yZSB1c2luZyBpdC4KICAgCjIwMDItMDktMDkgMDY6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgQ3VycmVudCBoZWFkZXIgdXBkYXRlIHBhdGNoIGZvciBuZXRic2QgZnJvbSBQYXRyaWNrIFdlbGNoZS4KICAgCjIwMDItMDktMDYgMTU6MzAgIGRyaWVodWlzCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIE1hcmsgdGhlIG5vbi1yYXcgdmFyaWFudHMgb2Ygb2JqZWN0cyB0aGF0IGFyZSBhY2Nlc3NhYmxlIGFzIHJhdyBjb3VudGVycwogICBhcyBkZXByZWNhdGVkLCB0byAoaG9wZWZ1bGx5ISkgY3V0IGRvd24gb24gdGhlIG51bWJlciBvZiB1c2VycyB0aGF0IGdldAogICBiaXR0ZW4gYnkgaXQuLgogICAKMjAwMi0wOS0wNCAxMTozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBhZGRlZCBCcnVjZSdzIGVtYWlsIGFkZHJlc3MKICAgCjIwMDItMDktMDQgMTE6MjcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGZpeCBwZXJsY2xlYW4KICAgCjIwMDItMDktMDQgMTE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBGaXggcHJvY2VzcyBncm91cGluZyBieSBjYWxsaW5nIHNldHNpZCgpIChyZXBvcnRlZCBieSBpcmM6VHJvZ0wpCiAgIAoyMDAyLTA5LTA0IDExOjA5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGNoZWNrIGZvciBzZXRzaWQoKS4KICAgCjIwMDItMDktMDMgMTA6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZml4IGNhc2VzIHdoZXJlIHRoZXJlIGVpdGhlciBhcmUgbm8gdGFibGVzIG9yIG5vIHNjYWxhcnMuCiAgIAoyMDAyLTA5LTAzIDEwOjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGRvbid0IHVzZSBOVUxMIHZhcmlhYmxlcy4KICAgCjIwMDItMDktMDIgMTk6MzMgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQucHJlMiApCiAgIAoyMDAyLTA5LTAyIDE5OjMzICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTIKICAgCjIwMDItMDktMDIgMTk6MjIgIHJzdG9yeQoKICAgKiBtYW4vbmV0c25tcF9oYW5kbGVyLjM6CgogICB1cGRhdGVkIGRvY3MKICAgCjIwMDItMDktMDIgMTk6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDktMDIgMTk6MTYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1jb25maWc6CgogICB0cnkgYW5kIGd1ZXNzIGF0IHNyYyBkaXIgaWYgbm90IHNwZWNpZmllZAogICAKMjAwMi0wOS0wMiAxOToxNSAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBhZGQgbm90ZSBhYm91dCBlcnIgd2hlbiBidWlsZGluZyBpbiBhbmQgb3V0IG9mIHNvdXJjZSB0cmVlCiAgIAoyMDAyLTA5LTAyIDE4OjU1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBmdWxsIHBhdGggdG8gdmVyc2lvbnRhZywgaW4gY2FzZSB3ZSBhcmUgYnVpbGRpbnQgb3V0c2lkZSBvZiBzcmMgZGlyZWN0b3J5CiAgIAoyMDAyLTA5LTAyIDE4OjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcmVtb3ZlIGZvcmNlZCBwcm9tcHQgb24gZXJyb3JzCiAgIAoyMDAyLTA5LTAyIDE4OjM2ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgd2FybmluZ3Mgd2hlbiBWRVJTSU9OIGlzIHJlcXVpcmVkOyBhZGQgdGFyY2xlYW4gdGFyZ2V0OyBhZGQgdGFyY2xlYW4gdG8KICAgZGlzdGNsZWFuIHRhcmdldAogICAKMjAwMi0wOS0wMiAxODozNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICBhZGQgbXNnIG9uIGVycm9yOyBhZGQgY2xlYW4gdGFyZ2V0CiAgIAoyMDAyLTA5LTAyIDE3OjI3ICByc3RvcnkKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSB3aW4zMiAmIEFnZW50WCBzdGF0dXMKICAgCjIwMDItMDktMDIgMTc6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgZml4IHRvIGF2b2lkIGxvY2tpbmcgdXAgdGhlIGFnZW50IHdoZW4gYSBzdWdhZ2VudCBkaWVzIGR1cmluZyBhIHNldCByZXF1ZXN0LiBXZQogICBtdXN0IGNsZWFuIHVwIHRoZSBkZWxlZ2F0ZWQgcmVxdWVzdHMgd2hlbiB0aGUgc2Vzc2lvbihzKSBhcmUgY2xvc2VkLCBzbyB0aGF0CiAgIHRoZXkgd2lsbCBiZSBwcm9jZXNzZWQgYW5kIHJlbW92ZWQsIGFsbG93aW5nIGZ1cnRoZXIgcmVxdWVzdHMgdG8gYmUgcHJvY2Vzc2VkLgogICAKMjAwMi0wOS0wMSAxMDo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgY2hhbmdlIHJlc3VsdCB0eXBlIGJhY2sgdG8gaW50LCBhcyBpdCBtYXkgcmVjZWl2ZSBhIG5lZ2F0aXZlIHZhbHVlCiAgIAogICBQTEVBU0UgY2hlY2sgdGhlIHVzZSBvZiBhIHZhcmlhYmxlIGJlZm9yZSBjaGFuZ2luZyBpcyBzaWduZWRuZXNzLCBlc3BlY2lhbGx5CiAgIGFyZW91bmQgcmVsZWFzZSB0aW1lIQogICAKMjAwMi0wOC0zMCAxMjoxOCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmg6CgogICBpbmNsdWRlIGNoZWNrX3ZhcmJpbmQuaAogICAKMjAwMi0wOC0zMCAxMjoxOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGNoYW5nZSBOT1NVQ0hOQU1FIHRvIE5PU1VDSElOU1RBTkNFIGFnYWluLCBhcyBpdCBzZWVtcyB0aGUgYWdlbnRYIGZpeCBhbHNvCiAgIGNvcnJlY3RseSBkZWFscyB3aXRoIHRoaXMgZXJyb3IgY29kZQogICAKMjAwMi0wOC0zMCAwNjoxNCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIGRlbGV0ZSBzdW5zaXRlLmNubGFiLXN3aXRjaC5jaCBtaXJyb3IsIGFzIGl0IGlzbid0IG9uZSBhbnltb3JlLgogICAKMjAwMi0wOC0yOSAxMDozMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGNoZWNrIGZvciBtb2R1bGVzIGJlZm9yZSBjb25maWd1cmluZyB0aGVtCiAgIAoyMDAyLTA4LTI5IDA3OjUyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICBGaXggdGhlIGxhc3QgQUVTIGJ1ZyBJIGtub3cgb2YuICBBRVMxMjggd29ya3MgZ3JlYXQuCiAgICAgSSBzdGlsbCBOZWVkIHRvIGZpeCAxOTIvMjU2IGZvciBsb25nZXIga2V5IGdlbmVyYXRpb24gZnJvbSBNRDUvU0hBCiAgIAoyMDAyLTA4LTI5IDA3OjUyICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnBtOgoKICAgdXNlIHRoZSByaWdodCBwZXJsIG1vZHVsZSBuYW1lIGluIHRoZSB1c2UgbGluZS4KICAgCjIwMDItMDgtMjkgMDM6NDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICB3aW4zMi9jb25maWcuaDoKCiAgIE1vcmUgV2luMzItcmVsYXRlZCB0aWR5aW5nIHVwLgogICBUaGUgYWdlbnQgbm93IGNvbXBpbGVzIHdpdGggcmVsYXRpdmVseSBmZXcgd2FybmluZ3MuCiAgIAoyMDAyLTA4LTI5IDAxOjUwICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgd2luMzIvY29uZmlnLmgsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgRGVjbGFyZSBuZXcgcm91dGluZSAnbmV0c25tcF9vaWRfZXF1YWxzJywgYW5kIGFzc29ydGVkIFdpbjMyIGNsZWFudXAgZml4ZXMuCiAgIAoyMDAyLTA4LTI4IDExOjE1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGNsYXJpZnkgY3ZzMmNsIHNjcmlwdCBuYW1lOyByZW1vdmUgLWIgZmxhZyBmcm9tIGN2czJjbCBwZXIgRGF2ZTsgYSBsaXR0bGUKICAgcmVvcmdhbml6YXRpb247IHB1dCBjb21tYW5kcyBvbiBzZXBhcmF0ZSBsaW5lcyBwcmVmaXhlZCB3aXRoICQ7IG5vdGUgNS54LzQueAogICBkaWZmZXJlbmNlcyBwZXIgRGF2ZSdzIGVtYWlsOyBwbHVnIG15IG5ldyBzY3JpcHRzIHdoZXJlIGFwcHJvcHJpYXRlCiAgIAoyMDAyLTA4LTI3IDExOjQ4ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIGFkZCBVUkwgZm9yIGN2czJjbDsgdXBkYXRlIGN2czJjbCBjbWRzIHRvIGN2czJjbC5wbCwgc2luY2UgdGhhdCdzIHRoZSBmaWxlCiAgIHRoYXQncyBhY3R1YWxseSBkaXN0cmlidXRlZAogICAKMjAwMi0wOC0yNiAyMTo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNC5wcmUxCiAgIAoyMDAyLTA4LTI2IDIxOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjQucHJlMSApCiAgIAoyMDAyLTA4LTI2IDIxOjI0ICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjYgMjE6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMDgtMjYgMjE6MTcgIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMsCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMsIG5ldHNubXBfc2NhbGFyLjMsCiAgIG5ldHNubXBfc2VyaWFsaXplLjMsIG5ldHNubXBfdGFibGUuMywKICAgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMsIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMywKICAgbmV0c25tcF90b2RvLjMsIG5ldHNubXBfd2F0Y2hlci4zOgoKICAgdXBkYXRlIG1hbiBwYWdlcyBmb3IgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNiAyMToxMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWNvbmZpZzoKCiAgIG5ldyBmaWxlIHRvIGNvbmZpZ3VyZSB1c2luZyBzYW1lIG9wdGlvbnMgYXMgbnNiLXBhY2thZ2UgZm9yIHRlc3Qgb3IgZGlzdAogICAKMjAwMi0wOC0yNiAyMTowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBkb24ndCBhcHBlbmQgc3lzLW5hbWUgd2hlbiBidWlsZGluZyBpbiBzcmMgdHJlZQogICAKMjAwMi0wOC0yNiAyMTowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTA4LTI2IDIxOjA2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgcmVuYW1lIG5zYi1nZXQtY29uZmcgLT4gbnNiLWNvbmZpZy1kaXN0OyB1c2UgZG91YmxlIHF1b3RlcyBjdXogb2Ygc29tZQogICB3aWVyZCBzaGVsbCB0aGluZyBJIGRvbid0IHlldCB1bmRlcnN0YW5kOyBjaGVjayBmb3Igc3JjIGRpciBpbiBjb25maWcqCiAgIAoyMDAyLTA4LTI2IDIwOjM0ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB0d2VhayBjb21tZW50Y2hlY2sgdGFyZ2V0IHRvIHdvcmsgb3V0c2lkZSB0aGUgc291cmNlIHRyZWUKICAgCjIwMDItMDgtMjYgMjA6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKOgoKICAgcmVtb3ZlIEMrKyBzdHlsZSBjb21tZW50cyAoYW5kIGFueXRoaW5nIHRoYXQgZXZlbiByZW1vdGVseSByZXNlbWJsZXMgb25lKQogICAKMjAwMi0wOC0yNiAxNDo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHBhc3MgbWFrZSBwYXJhbXMgdG8gbWFrZSwgc28gd2UgZG9uJ3QgdHJ5IHRvIGluc3RhbGwgaW4gL3Vzci9sb2NhbC9iaW4gb2YKICAgdGhlIGNvbXBpbGUgc2VydmVycy4uLjotLwogICAKMjAwMi0wOC0yNiAxNDozOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG1ha2UgZGlzdCAmIGV4dHJhIHRyYW5zcG9ydHM7IG5vIGlwdjYgb24gRGFyd2luOyBtYWtlIHRvdWNoaXQgYmVmb3JlIG1ha2UKICAgCjIwMDItMDgtMjYgMTQ6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmM6CgogICByZXBsYWNlIHVfaW50MzJfdCwgd2hpY2ggZG9lc24ndCBjb21waWxlIG9uIFN1biA1LjgsIHdpdGggdV9pbnQKICAgCjIwMDItMDgtMjYgMTM6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYzoKCiAgIGZpeCB1bmRlY2xhcmVkIHZhcmlhYmxlIGVycm9yIHNwb3R0ZWQgb24gU3VuLCB3aGljaCBsaW51eCBtaXNzZWQgY29tcGxldGVseS4KICAgSSBoYXZlIG5vIGlkZWEgaG93IHRoaXMgY29tcGlsZWQgYmVmb3JlISEKICAgCjIwMDItMDgtMjYgMTM6NDMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBjbGVhbmVyIHdheSB0byBhZGQgc3lzdGVtIHNwZWNpZmljIG1vZHVsZXM7IGRpc2FibGUgcGVybCwgYXMgaXQgYnJlYWtzCiAgIGJ1aWxkcyBvdXRzaWRlIG9mIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMi0wOC0yNiAxMjo0NSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG9ubHkgY29uZmlndXJlIElQWCBvbiBMaW51eAogICAKMjAwMi0wOC0yNiAxMjo0NCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIG9ubHkgY29uZmlndXJlIElQWCBvbiBMaW51eDsgYmFpbCBvbiBjb25maWd1cmUgZXJyb3JzCiAgIAoyMDAyLTA4LTI2IDEyOjA0ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGFkZCBzdWdnZXN0aW9uIHRvIHN5bWxpbmsgbnNiLSogaW4gbG9jYWwgYmluIGRpcgogICAKMjAwMi0wOC0yNiAxMjowMyAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItcGFja2FnZSwgbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBvcHRpb24gZm9yIHByZS1yZWxlYXNlIHRlc3QgY29uZmlndXJlIG9wdGlvbnMKICAgCjIwMDItMDgtMjYgMTI6MDIgIHJzdG9yeQoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgbWFrZSBzZWN0aW9uIGhlYWRlcnMgc3RhbmQgb3V0IG1vcmU7IG1vdmUgbm90ZSBhYm91dCBlbmNyeXB0aW9uIG5vdCBiZWluZwogICBlbmFibGVkIHRvIGEgbW9yZSBwcm9taW5lbnQgcGxhY2UuCiAgIAoyMDAyLTA4LTIyIDA1OjMxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjcuaDoKCiAgICAgLSBET05UX1VTRV9OTElTVCByZWluc3RhdGVkLCBzbyBOT19LTUVNX1VTQUdFIHJlZHVuZGFudAogICAKMjAwMi0wOC0yMiAwNToyOSAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgICAtIHJlaW5zdGF0ZSB0ZXN0IGZvciBET05UX1VTRV9OTElTVAogICAKMjAwMi0wOC0yMiAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHN0b3AgYW5kIHJlc3RhcnQgbG9nZ2luZyB3aGVuIEhVUHBlZC4gIFRoaXMgYWxsb3dzIGxvZ2ZpbGVzIHRvIGJlCiAgICAgICByb3RhdGVkIGFuZCBzbyBmb3J0aC4KICAgCjIwMDItMDgtMjIgMDE6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBBZGQgdGhlIG1pc3NpbmcgJy14L1gnIG9wdGlvbnMgdG8gdGhlIGV4YW1wbGUgYXV0aFByaXYgY29tbWFuZCBsaW5lCiAgICAgKHJlcG9ydGVkIGJ5IFByYXNhZGEgUiBWYW5rYXlhbGFwYXRpKQogICAKMjAwMi0wOC0yMCAwODowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaCwgRkFROgoKICAgcXVpZXQgc25tcHRyYXBkIHdoZW4gaXQgY2FuJ3QgY29ubmVjdCB0byB0aGUgYWdlbnR4IG1hc3Rlci4KICAgCjIwMDItMDgtMjAgMDU6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oOgoKICAgICAtIGFkZCAjZGVmaW5lIE5PX0tNRU1fVVNBR0UgMSBzaW5jZSBuZXQtc25tcC1jb25maWcuaC5pbiBubyBsb25nZXIKICAgICAgIHBheXMgYXR0ZW50aW9uIHRvIHRoZSBET05UX1VTRV9OTElTVCB0b2tlbi4gIE9taXNzaW9uIG9mIHRoaXMKICAgICAgIGNhdXNlcyB0aGUgYWdlbnQgdG8gZXhpdCB3aXRoIHRoZSBtZXNzYWdlICJpbml0X2ttZW06IGt2bV9vcGVuCiAgICAgICBmYWlsZWQ6IGVycm9yIDAiLgogICAKICAgICAgIE5PVEU6IHRoaXMgbWF5IG5lZWQgYXBwbHlpbmcgdG8gb3RoZXIgbWVtYmVycyBvZiB0aGUgU29sYXJpcyAyCiAgICAgICBmYW1pbHksIGJ1dCBJIGRvbid0IGhhdmUgbWFjaGluZXMgdG8gaGFuZCB0byB0ZXN0IHRoaXMuCiAgIAoyMDAyLTA4LTIwIDA1OjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBkZXRlY3QgZ2lnYWJpdCBldGhlcm5ldCBkZXZpY2VzIChnZU4pCiAgICAgLSB1bmRvIGluZGVudCBtYXloZW0KICAgCjIwMDItMDgtMjAgMDI6NTcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgICAgLSBmb3Igbm93LCBkb24ndCAjaW5jbHVkZSBzbm1wX2xvY2tpbmcuaCBzaW5jZSBpdCBicmVha3MgcmUtZW50cmFudAogICAgICAgc3VwcG9ydCAoYmVjYXVzZSBtdXRleF90eXBlIGdldHMgbXVsdGlwbHktZGVmaW5lZCkuICBGdXJ0aGVybW9yZSwgdGhlCiAgICAgICBmdW5jdGlvbnMgaXQgZGVjbGFyZXMgYXJlIG5ldmVyIHVzZWQgYW55d2hlcmUsIG5vciBkZWZpbmVkIGFueXdoZXJlLgogICAKMjAwMi0wOC0yMCAwMjo1NiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oOgoKICAgICAtIGRvbid0IGRlZmluZSAiZG8gbm90aGluZyIgbWFjcm9zIGZvciBzbm1wX3Jlc19sb2NrIGV0IGFsLiBmdW5jdGlvbnMKICAgICAgIG9uIFdpbjMyIHBsYXRmb3JtIChzaW5jZSByZWFsICJkbyBub3RoaW5nIiBmdW5jdGlvbnMgYXJlIHJlcXVpcmVkIGZvcgogICAgICAgcmVhc29ucyBiZXN0IGtub3duIHRvIHNvbWVvbmUgZWxzZSkuCiAgICAgLSB1bm1hbmdsaW5nCiAgIAoyMDAyLTA4LTIwIDAyOjU0ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaDoKCiAgICAgLSBmaXggaGlnaGx5IGJvZ3VzIG5vbi1DIHN5bnRheAogICAKMjAwMi0wOC0yMCAwMjo1MyAgamJwbgoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuYzoKCiAgICAgLSBzbm1wX3Jlc19sb2NrIGV0IGFsLiBmdW5jdGlvbnMgbm8gbG9uZ2VyICNkZWZpbmVkIHRvICJkbyBub3RoaW5nIgogICAgICAgdGFyZ2V0cyBmb3IgV2luMzIgaW4gbXRfc3VwcG9ydC5oLCB0aGVyZWZvcmUgbm8gbmVlZCB0byAjdW5kZWYgdGhlbQogICAgICAgaGVyZS4KICAgICAtIHVubWFuZ2xpbmcKICAgCjIwMDItMDgtMTkgMjI6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIGhlYWRlcnMgZm9yIGNhY2hlIGVuYWJsaW5nIGZ1bmN0aW9ucy4KICAgCjIwMDItMDgtMTkgMjI6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIGRvbid0IHVzZSBub24tZXhpc3RlbnQgbWVtb3J5IHBvaW50ZXJzIHRvIHRoZSByZXNwb25zZSBkYXRhIChlZzogInRpbWVvdXQiKQogICAKMjAwMi0wOC0xOSAxNDo0NiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIENoYW5nZSBhIGZldyBjb25kaXRpb25hbHMgdG8gdXNlICNpZiBpbiBwbGFjZSBvZiAjaWZkZWYKICAgCjIwMDItMDgtMTkgMTQ6MjggIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBBbGlnbiB3aXRoIDQuMiBicmFuY2gKICAgCjIwMDItMDgtMTkgMTQ6MjYgIG5iYQoKICAgKiBtaWJzLzogRElTTUFOLVNDSEVEVUxFLU1JQi50eHQsCiAgIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0LCBJQU5BaWZUeXBlLU1JQi50eHQKLCBJTkVULUFERFJFU1MtTUlCLnR4dCwgTWFrZWZpbGUubWliLCBpYW5hbGlzdAosIG1pYmZldGNoLCByZmNsaXN0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgTUlCcwogICAKMjAwMi0wOC0xOSAxNDoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgQmFpbCBvdXQgZm9yIGJhZCBzbm1wQWRtaW5TdHJpbmcgdmFsdWUKICAgCjIwMDItMDgtMTkgMDc6NDMgIGpicG4KCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMyksIEZBUToKCiAgICAgLSBkb24ndCB1c2UgcG9zaXRpb25hbCBjb21tdW5pdHkgcGFyYW1ldGVyIGluIGV4YW1wbGVzCiAgICAgLSBicmVhayBhIGNvdXBsZSBvZiBvdmVyLWxvbmcgbGluZXMKICAgICAtIG1lbnRpb24gbmV0c25tcF8gdmFyaWFudCBvZiBkc19zZXRfIGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTE5IDAyOjQ0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4yKSwgRkFROgoKICAgQWRkIGFuIGVudHJ5IGFib3V0IHRoZSBzbm1wdHJhcGQvQWdlbnRYIHdhcm5pbmcgbWVzc2FnZS4KICAgCjIwMDItMDgtMTggMTg6MjQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBkb24ndCBjb25maWd1cmUgd2l0aCBidWlsZCBpbnN0YWxsIGRpciwgaXQgaXMgYWxyZWFkeSBzcGVjaWZpZWQgb24gY21kIGxpbmUKICAgZm9yIG1ha2UgaW5zdGFsbAogICAKMjAwMi0wOC0xOCAxMDo1OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIG1vcmUgZGVidWdnaW5nIC0gbG9nIHZhbHVlIHJlcXVlc3QgaXMgdHJ5aW5nIHRvIHNldAogICAKMjAwMi0wOC0xNiAxNToxMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkZWQgQnJ1Y2UgU2hhdyB0byB0aGUgdGhhbmtzIGxpc3QKICAgCjIwMDItMDgtMTYgMTU6MTIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgQSBncmVhdCB1cGRhdGUgdGFsa2luZyBhYm91dCBwZXJsIGFuZCBzb2xhcmlzIGZyb20gQnJ1Y2UgU2hhdwogICAKMjAwMi0wOC0xNiAwMTo1MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgQ2F0Y2ggZXhwbGljaXRseSAnbm9TdWNoSW5zdGFuY2UnIGV4Y2VwdGlvbnMsIHdoZW4gd2Fsa2luZyBhbgogICBpdGVyYXRvci1oYW5kbGVkIG1vZHVsZSwgc28gdGhhdCBob2xlcyBjYW4gYmUgc2tpcHBlZCBhbmQgdGhlCiAgIG5leHQgcmVhbCBpbnN0YW5jZSByZXRyaWV2ZWQuICAoVGhpcyB3YXMgYWxyZWFkeSBoYW5kbGVkIGZvcgogICBtb2R1bGVzIHRoYXQgZGlkbid0IG1hcmsgbWlzc2luZyBpbnN0YW5jZXMgZXhwbGljaXRseSkuCiAgIAoyMDAyLTA4LTE2IDAwOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB0dXJuIG9mZiBjYWNoaW5nIGJ5IGRlZmF1bHQsIHNpbmNlIHRoZSBhZ2VudHggY29kZSBhcHBlYXJzIGJyb2tlbi4KICAgCjIwMDItMDgtMTYgMDA6MDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF9hZ2VudC5jOgoKICAgc3BlZWQgZW5oYW5jZW1lbnRzIHZpYSBpbXBsZW1lbnRpbmcgYSByZWdpc3RyYXRpb24gc3VidHJlZSBsb29rdXAKICAgY2FjaGUuICBncmVhdGx5IHNwZWVkcyB0aGluZ3MgdXAgd2hlbiBzaW1pbGFyIHJlcXVlc3RzIGNvbWUgaW4KICAgKHNubXB3YWxrLCAuLi4pLgogICAKMjAwMi0wOC0xNSAxMDozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcHJvdGVjdCBhZ2FpbnN0IE5VTEwgbGFiZWxzIGluIHN1YnRyZWVzCiAgIAoyMDAyLTA4LTE1IDA4OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIHVzZSBuZXRzbm1wX29pZF9lcXVhbHMgKHdoaWNoIGlzIHNvbWV0aW1lcyBmYXN0ZXIgdGhhbgogICBzbm1wX29pZF9jb21wYXJlKSBpbiBhIGZldyBwbGFjZXMgdG8gYWNoaWV2ZSBiYXJlbHkgbm90aWNlYWJsZSBzcGVlZCBnYWlucy4KICAgCjIwMDItMDgtMTUgMDg6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGRvdWJsZSBjaGVjayBhIHBvaW50ZXIgZXhpc3RzIGJlZm9yZSBwYXNzaW5nIGl0IHRvIHN0cmNtcCgpCiAgIAoyMDAyLTA4LTE1IDA4OjA1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgTUFOM1BPRFMgdG8gc29tZXRoaW5nIGNvbXBsaWFudCB3aXRoIHRoZSBwZXJsIG1hbnVhbHMuICBJIHRoaW5rLgogICAKMjAwMi0wOC0xNCAxMDo0MiAgcnN0b3J5CgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgYWRkIGRlYnVnIGZvciBsb2NhbCBwYXJzaW5nIG9mIGFyZ3MKICAgCjIwMDItMDgtMTQgMDk6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX2FkbWluLmMsCiAgIHN1YmFnZW50LmM6CgogICBhZGQgbW9yZSBkZXRhaWxlZCBpbiBkZWJ1ZyBtZXNzYWdlczsgYWRkIGEgZmV3IG5ldyBkZWJ1Z3MKICAgCjIwMDItMDgtMTQgMDk6MjMgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICB3aGVuIGFsbCBkZWxlZ2F0ZWQgcmVxdWVzdHMgaGF2ZSBmaW5pc2hlZCwgY2hlY2sgYWxsIHJlcXVlc3RzIHN0YXR1cyBzbyB0aGF0CiAgIGFzcCBzdGF0dXMgaXMgc2V0LCB3aGljaCBpcyBuZWNlc3NhcnkgZm9yIGNvcnJlY3QgYWdlbnR4IHNldCBwcm9jZXNzaW5nLgogICAobm93IGlmIEkgY2FuIGp1c3QgZ2V0IGFsbCB0aGlzIGhhaXIgb2ZmIHRoZSBmbG9vciwgYW5kIGdsdWUgaXQgYmFjayB0byBteQogICBoZWFkLCBhbmQgdGhlbiBmaXggdGhhdCBkZW50IGluIHRoZSB3YWxsIHdoZXJlIEkndmUgYmVlbiBiYW5naW5nIG15IGhlYWQuLi4uKQogICAKMjAwMi0wOC0xMyAxNDoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4IGEgbGVuZ3RoIGNvbXBhcmlzb24gcHJvYmxlbSB3aXRoIG5ldHNubXBfb2lkX2lzX3N1YnRyZWUoKQogICAKMjAwMi0wOC0xMyAxNDoyNCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGRvY3VtZW50IGEgZmV3IHJlY2VudCBjaGFuZ2VzLgogICAKMjAwMi0wOC0xMyAxNDowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgRml4IG9wZW4gZmlsZSBydW5hd2F5IG9uIHNvbGFyaXMuICBTZWUgYnVnICM1OTI4MDYgcmVwb3J0ZWQgYnkgSmFtZXMgSXJ3aW4uCiAgIAoyMDAyLTA4LTEzIDEyOjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgYXJyYXkgb2YgcG9pbnRlcnMgPSBwb2ludGVyIHRvIGEgcG9pbnRlcgogICAKMjAwMi0wOC0wOSAxNjozMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUw6CgogICBtaXNjIGRvYyBmaXhlcy4KICAgCjIwMDItMDgtMDkgMTY6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLCBzbm1wbGliL3NubXB1c20uYwosIHNubXBsaWIvc25tcHYzLmM6CgogICBpbml0aWFsIEFFUyBzdXBwb3J0LgogICAKMjAwMi0wOC0wOSAxNjozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBzbGlnaHQgc3BlZWQgdXBzIGZvciBzbm1wX29pZF9jb21wYXJlKCkgdG8gZG8gc2luZ2xlIGludCBjb21wYXJlcyB0aWxsICE9CiAgIAoyMDAyLTA4LTA5IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIG9wZW5zc2wgMC45Ljcgc3VwcG9ydCBmb3IgREVTIGNoYW5nZXMuCiAgIC0gaW5pdGlhbCBBRVMgc3VwcG9ydC4KICAgCjIwMDItMDgtMDkgMTY6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIGluZGVudCBmaXhlcy4KICAgCjIwMDItMDgtMDkgMTY6MjcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNjYXBpLmgsIHNubXB1c20uaDoKCiAgIGRlZmluZSBBRVMga2V5IHNwZWNpZmljcwogICAKMjAwMi0wOC0wOSAxNjoyNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICAtIGNoZWNrIGZvciBvcGVuc3NsIC4wLjkuNyBERVMgc3RydWN0dXJlcyBhbmQgZnVuY3Rpb25zLgogICAtIGNoZWNrIGZvciBBRVMgc3VwcG9ydCBpbiBvcGVuc3NsICg+IDAuOS43KQogICAKMjAwMi0wOC0wOSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBmaXggbW9kZSBwcm9jZXNzaW5nIGZvciBSRVNFUlZFMS9SRVNFUlZFMiB0ZXN0IGZhaWx1cmVzCiAgIAoyMDAyLTA4LTA5IDE1OjI5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbG9nIG1zZyB3aGVuIHdlIGlnbm9yZS9maXggaWxsZWdhbCBlcnJvcl92YWx1ZXMgZm9yIHRoZSBjbGllbnQgQVBJcwogICAKMjAwMi0wOC0wOSAxNToyOCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNvcnJlY3Rpb25zIHRvIGV4YW1wbGUgY29kZQogICAKMjAwMi0wOC0wOSAxNToyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIHJldmVydCBlcnJvcnMgdG8gdW5pbmZvcm1hdGl2ZSBTTk1QdjEgbm9TdWNoTmFtZSBmb3IgQWdlbnRYIGdldC1uZXh0L2luY2x1c2l2ZQogICBwcm9jZXNzaW5nOyBhbHNvIGFkZCBtb3JlIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlCiAgIAoyMDAyLTA4LTA5IDE0OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgZGVidWcgbXNnIGZvciBhZ2VudHggb2lkIGZvciBjYXNlcyBvdGhlciB0aGFuIGdldC9nZXRuZXh0CiAgIAoyMDAyLTA4LTA5IDA4OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgZG9uJ3QgZnJlZSByZWdpc3RyYXRpb24gaW5mbyBvbiBmYWlsdXJlLCBhcyBuZXRzbm1wX3JlZ2lzdGVyX21pYiBhbHJlYWR5IGRpZCBpdAogICAKMjAwMi0wOC0wOSAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHNubXBJUFhEb21haW4uYywgc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jLCBzbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIHJlbmFtZSBzbm1wXzxkb21haW4+X2JsYWggZnVuY3Rpb25zIHRvIG5ldHNubXBfPGRvbWFpbj5fYmxhaAogICAgIC0gbWFrZSB0cmFuc3BvcnQgbWVtYmVyIGZ1bmN0aW9ucyBzdGF0aWMsIHRvIGVtcGhhc2lzZSB0aGF0IHRoZXkgc2hvdWxkCiAgICAgICBub3QgYmUgdXNlZCBkaXJlY3RseQogICAgIC0gaGFuZGxlIEVJTlRSIGluIHNlbmQgYW5kIHJlY3YgZnVuY3Rpb25zIChhcyBwb2ludGVkIG91dCBieSBBbnR0aSBLdW50c2kKICAgICAgIGluIGJ1ZyByZXBvcnQgIzU3NjgwNikKICAgICAtIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMDgtMDkgMDY6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcEFBTDVQVkNEb21haW4uaCwKICAgc25tcElQWERvbWFpbi5oLCBzbm1wVENQRG9tYWluLmgsIHNubXBUQ1BJUHY2RG9tYWluLmgKLCBzbm1wVURQRG9tYWluLmg6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0wOC0wOSAwNjo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaDoKCiAgICAgLSBkb24ndCBleHBvcnQgbmV0c25tcF91bml4X2JsYWgoKSBmdW5jdGlvbnMKICAgCjIwMDItMDgtMDkgMDY6NTMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gZml4IG5hc3R5IGZvcm1hdHRpbmcKICAgCjIwMDItMDgtMDggMDk6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgcmV3b3JkIGNvbmZpZ19wZXJyb3IgbXNncyB0byByZW1vdmUgIkVycm9yIiwgYXMgaXQgaXMgcmVkdW5kYW50CiAgIAoyMDAyLTA4LTA4IDA5OjExICByc3RvcnkKCiAgICogc25tcGxpYi9rZXl0b29scy5jOgoKICAgcmVtb3ZlIGlmZGVmIHRvIGxvZyBtc2cgdG8gdXNlciwgYWZ0ZXIgbWFraW5nIG1zZyBtb3JlIGluZm9ybWF0aXZlOyByZW1vdmUKICAgYW5ub3lpbmcgYmxhbmsgbGluZXMKICAgCjIwMDItMDgtMDggMDg6MzMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgdG8gY29tcGxldGVseSBkaXNhYmxlIGttZW0gdXNhZ2UKICAgCjIwMDItMDgtMDYgMDA6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gc2V0IG1haW5fc2Vzc2lvbiB0byBOVUxMIGluIHN1YmFnZW50X3NodXRkb3duKCkuICBUaGlzIChhbG9uZyB3aXRoIHRoZQogICAgICAgZGVyZWdpc3RyYXRpb24gb2YgYWxsIGFsYXJtcykgYWxsb3dzIEFnZW50WCBmdW5jdGlvbmFsaXR5IHRvIGJlCiAgICAgICBzdG9wcGVkIGFuZCByZXN0YXJ0ZWQgaW4gc3ViYWdlbnRzLgogICAgIC0gVGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3Igb3JpZ2luYWwgcGF0Y2gKICAgCjIwMDItMDgtMDYgMDA6MjcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaDoKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTA2IDAwOjI2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMsIHNubXBfYXBpLmM6CgogICAgIC0gYWRkIHNubXBfYWxhcm1fdW5yZWdpc3Rlcl9hbGwoKSBmdW5jdGlvbgogICAgIC0gY2FsbCBpdCBmcm9tIHNubXBfc2h1dGRvd24oKQogICAgIC0gdGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3Igb3JpZ2luYWwgcGF0Y2gKICAgCjIwMDItMDgtMDUgMDc6MDYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXRjaCBmdW5jdGlvbiBkZWZpbml0aW9uIHcvTmV0c25tcF8qX0RhdGFQb2ludCB0eXBlZGVmczsgYWRkIGN2cyBJZAogICAKMjAwMi0wOC0wMyAwODo1MiAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBicmVhayB1cCBsaW5lcyBsb25nIHRoYW4gODAgY2hhcnM7IGFiY2RlLCBub3QgYWJjZGQKICAgCjIwMDItMDgtMDMgMDA6MjEgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBtb3JlIHVwZGF0ZXMgYWJvdXQgdGhpbmdzIFdlcyBkb2VzIGF0IDEyOjMwIGFtCiAgIAoyMDAyLTA4LTAyIDIzOjQ0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjMgKQogICAKMjAwMi0wOC0wMiAyMzo0NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgVXBkYXRlIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAyMzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIGFkZCAubGlicwogICAKMjAwMi0wOC0wMiAyMzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGUKICAgCjIwMDItMDgtMDIgMjM6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0wMiAyMzozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZvcmdvdHRlbiB0byBjaGVjayBpbiB0ZXN0IGZvciBwZXJsX2V2IGNoYW5nZXMKICAgCjIwMDItMDgtMDIgMjM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBwcmludCAob3BwcykKICAgCjIwMDItMDgtMDIgMjM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBmaXggZGVmYXVsdCB2ZXJzaW9uIHVzYWdlLgogICAKMjAwMi0wOC0wMiAyMzozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUGF0Y2ggIzU3MjM5NCBmcm9tIEthdHN1aGlzYSBBQkU6CiAgICAgLSBzdXBwb3J0IGxpbmsgbG9jYWwgYWRkcmVzc2VzCiAgICAgLSBiaW5kIHRvIGlwdjYgb25seSBpZiBJUFY2X1Y2T05MWSBpcyBkZWZpbmVkLgogICAKMjAwMi0wOC0wMiAyMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCBjb25maWd1cmUgc3BlY2lmaWVkIGRlZmF1bHQgdmVyc2lvbmluZwogICAKMjAwMi0wOC0wMiAyMjo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCAjNTcyMzk0OiBhZGQgaXB2NiB0cmFuc3BvcnRzIHdoZW4gLS1lbmFibGUtaXB2NiBkZWZpbmVkLiAgVGhhbmtzIHRvIEthdHN1aGlzYSBBQkUuCiAgIAoyMDAyLTA4LTAyIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAxNDo1NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgdXBkYXRlCiAgIAoyMDAyLTA4LTAyIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbW9yZSBkb2NzLgogICAKMjAwMi0wOC0wMiAxNDoyOSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMywgTWFrZWZpbGUuaW46CgogICBkb3h5Z2VuIHVwZGF0ZS4KICAgCjIwMDItMDgtMDIgMTQ6MjYgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgZm9yIHlldCBtb3JlIHN0dWZmLgogICAKMjAwMi0wOC0wMiAxNDoyNiAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIGEgZmV3IG1vcmUgZGlzdCByZWxhdGVkIGZpbGVzLgogICAKMjAwMi0wOC0wMiAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZXJyb3IgbWVzc2FnZSBjaGFuZ2UgdG8gcmVtb3ZlIERFUyBzcGVjaWZpYyBlcnJvciBtc2cuCiAgIAoyMDAyLTA4LTAyIDE0OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L3R5cGVtYXA6CgogICBzcGFjaW5nIGZpeGVzLgogICAKMjAwMi0wOC0wMiAxNDoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IE1ha2VmaWxlLlBMLCBhZ2VudC54czoKCiAgIHJlbmFtZWQgZmlsZS4KICAgCjIwMDItMDgtMDIgMTQ6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBuZXRzbm1wX3JlcXVlc3RfaW5mby5wbSwKICAgbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG06CgogICByZW5hbWVkIGZpbGUKICAgCjIwMDItMDgtMDIgMTQ6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgQWRkIGEgImV2YWx2YXJzIiBkaXJlY3RpdmUgdG8gZG8gc2ltcGx5IHJlcGxhY2VtZW50cy4KICAgCjIwMDItMDgtMDIgMTQ6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICB1c2UgQ1ZTVVNFUiB2YXJpYWJsZSB3aGVuIGRvaW5nIHN0dWZmIGluc3RlYWQgb2YgbXkgaGFyZC1jb2RlZCBuYW1lLgogICAKMjAwMi0wOC0wMiAxNDoxNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbiBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2hhbmdlIGNoZWNrY29tbWVudCB0YWcgdG8gZXhjbHVkZSB3aW4zMiBmaWxlcy4KICAgCjIwMDItMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBjaGFuZ2Vsb2cgYnVpbGQgbm90ZXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZS4KICAgCjIwMDItMDgtMDIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjcmVhdGVkIGEgaG93LXRvIGZpbGUgZm9yIG1ha2luZyByZWxlYXNlcwogICAKMjAwMi0wOC0wMiAxNDowMSAgaGFyZGFrZXIKCiAgICogZGlzdC9jaGFuZ2Vsb2dmaXg6CgogICBjaGFuZ2Vsb2cgZml4LXVwIHNjcmlwdAogICAKMjAwMi0wOC0wMiAxMDoyMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHRyYW5zbGF0ZSAnLycgaW4gc3lzdGVtIG5hbWUgdG8gJ18nIChmb3IgY3lnd2luKQogICAKMjAwMi0wOC0wMiAwOTo1NiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggc2VjdGlvbiBjdnMgZ2V0IGNvbW1hbmQgZXhhbXBsZQogICAKMjAwMi0wOC0wMiAwOTowNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgU3VwcHJlc3MgJ2lubGluZScgd2hlbiBub3QgdXNpbmcgR0NDLiBTdWdnZXN0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyCiAgIAoyMDAyLTA4LTAyIDA4OjU5ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCBzZWN0aW9uIG9uIHNraXBwaW5nIG1ha2UgdGVzdDsgYWRkIC1wIGZsYWcgdG8gZXhhbXBsZXMKICAgCjIwMDItMDgtMDIgMDg6NTIgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZGVzY3JpYmUgdXNlIG9mIG5zYi1wYWNrYWdlIHNjcmlwdC4gVGVzdGVycyBhbmQgY29tbWVudHMgYXBwcmVjaWF0ZWQuLi4KICAgCjIwMDItMDgtMDIgMDg6MzMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wbGF0Zm9ybToKCiAgIG91dHB1dCBwbGF0Zm9ybSBpbmZvCiAgIAoyMDAyLTA4LTAyIDA4OjE4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICByZW5hbWVkIHRvIG5zYi1wYWNrYWdlCiAgIAoyMDAyLTA4LTAyIDA4OjE4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIHJlbmFtZWQgbnNiLWJ1aWxkIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHNjcmlwdCBmdW5jdGlvbgogICAKMjAwMi0wOC0wMiAwODoxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgQ2hhbmdlIGxvY2F0aW9uIG5hbWUgdG8gVW5rbm93bgogICAKMjAwMi0wOC0wMiAwODowOCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIGFnZW50L2FnZW50LnBtLAogICBhZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDg6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnBtLCBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0KOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwODowMCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA3OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHJldHVybiBjb2RlCiAgIAoyMDAyLTA4LTAyIDA3OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBkb24ndCBwdWxsIGZpcnN0IGFyZyB0aWwgYWZ0ZXIgZ2V0b3B0cy9zaGlmdDsgbW92ZSBzZXQgb2YgZGVmYXVsdCBvcHRzCiAgIAoyMDAyLTA4LTAyIDA3OjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIGJ1aWxkIG9yIHRlc3Qgc3RlcHM7IGFkZCAtZiBvcHRpb24gdG8gcHJvbXB0IHRvIG92ZXJyaWRlCiAgIG5vIHByb21wdCBmbGFnICh1c2VmdWwgZm9yIGVycm9ycyk7IG5ldyBuc2ItbWFrZSBtZXRob2Q7IGNoZWNrIHJjIG9mCiAgIG1ha2UgY2xlYW4KICAgCjIwMDItMDgtMDIgMDc6MzYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBidWlsZCBvciB0ZXN0IHN0ZXBzOyB0d2VhayB1c2FnZQogICAKMjAwMi0wOC0wMiAwNzoxMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZml4IHR5cG87IHJlbW92ZSBleHRyYSB0cmFpbGluZyBzbGFzaCBpbiBkaXIKICAgCjIwMDItMDgtMDIgMDY6MzMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGNoZWNrIG1vcmUgcGxhY2VzIHRvIHNvdXJjZSBuc2ItZnVuY3Rpb25zOyBmaXggZm9yIGNtZCBsaW5lIGJ1aWxkIHBhdGgKICAgCjIwMDItMDgtMDIgMDY6MjggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBqdXN0IHNob3cgZXJyb3JzIGFmdGVyIGJ1aWxkLCBub3Qgd2FybmluZ3MKICAgCjIwMDItMDgtMDEgMTc6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJldmVydCB0byBub24tYW5zaSBwcm90b3R5cGVzIGZvciBvbGRlciBwZXJsIHdpdGggb2xkZXIgY29tcGlsZXJzIG9uCiAgIG9sZGVyIHN5c3RlbXMuICBOb3QgdGhhdCBJJ20gZ3J1bXB5LCBvZiBjb3Vyc2UuCiAgIAoyMDAyLTA4LTAxIDE2OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfcGVybC5jOgoKICAgY2hlY2sgZm9yIG9sZGVyIGFuZCBuZXcgZW1iZWRkZWQgcGVybCBjYWxsIGZ1bmN0aW9ucwogICAKMjAwMi0wOC0wMSAxNDowNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IHN5bWxpbmsgdG8gc3JjIGZyb20gYnVpbGQ7IHVwZGF0ZSBuc2ItZ2V0LWNvbmZpZwogICAKMjAwMi0wOC0wMSAxNDowNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZml4IGZvciBjbWQgbGluZSBidWlsZCBkaXIKICAgCjIwMDItMDgtMDEgMTI6NTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggY29uZmlnIGluc3RhbGwgcGF0aDsgcmVtb3ZlIHBsYXRmb3JtIHNwZWNpZmljIGZyb20gbnNiLWJ1aWxkCiAgIAoyMDAyLTA4LTAxIDEyOjU2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICByZW1vdmUgaGFyZCBjb2RlZCBpbmZvCiAgIAoyMDAyLTA4LTAxIDEyOjIyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIHByb21wdHM7IHJlbW92ZSBwcmV2aW91cyBpbnN0YWxsczsgdHdlYWsgZXJyIHBhdHRlcm4KICAgCjIwMDItMDgtMDEgMTI6MTQgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICAgIC0gdXNlIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oKSBpbnN0ZWFkIG9mIGRzX3NldF9ib29sZWFuKCkKICAgCjIwMDItMDgtMDEgMTI6MTIgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgICAtIGNoYW5nZSBjb2RlIHNhbXBsZSB0byB1c2UgbmV0c25tcF9kc19zZXRfYm9vbGVhbigpCiAgICAgLSB1cGRhdGUgcmVmZXJlbmNlcyB0byBsaWJyYXJpZXMgKHdoaWNoIHdlcmUgc3RpbGwgdGFsa2luZyBhYm91dAogICAgICAgbGlidWNkYWdlbnQgZXQgYWwuKSAtLSBQTEVBU0UgUkVWSUVXIEJFRk9SRSA1LjAuMwogICAKMjAwMi0wOC0wMSAxMjowNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGxvdHMgb2YgZml4ZXMgdG8gcHJldmlvdXNlIHVudGVzdGVkIHNjcmlwdHMKICAgCjIwMDItMDgtMDEgMTI6MDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHNjcmlwdCB0byBidWlsZCByZWxlYXNlcy4uLiBzdGlsbCBzb21lIGhhcmRjb2Rpbmcgd2hpbGUgdGVzdGluZywgYnV0IGl0cwogICBnZXR0aW5nIHRoZXJlLi4uCiAgIAoyMDAyLTA4LTAxIDExOjUxICByc3RvcnkKCiAgICogZGlzdC86IGN2c3Nob3csIGN2c3VwOgoKICAgdXRpbGl0eSBzY3JpcHRzCiAgIAoyMDAyLTA4LTAxIDA5OjMwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogc2NhbGFyLmMsIHNjYWxhcjIuYzoKCiAgIEdvIHdpdGggdGhlICJzY2FsYXIgYXMgc3VwZXItaGFuZGxlciBvZiBpbnN0YW5jZSIgaW1wbGVtZW50YXRpb24uCiAgIFNjYWxhcjEuYyBpcyBwcm9iYWJseSByZWR1bmRlbnQsIGJ1dCB3ZSBjYW4gcmVtb3ZlIHRoaXMgbGF0ZXIuCiAgIChZdXAgLSBJJ20gYSBjb3dhcmQuLi4uKQogICAKMjAwMi0wOC0wMSAwMToxMSAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgTWlub3IgdHlwb3MsIHBsdXMgZW1waGFzaXNlIHRoZSBuZWVkIGZvciB0aGUgSXBIbHBBUEkgbGlicmFyeS4KICAgCjIwMDItMDctMzAgMDg6MjYgIGR0czEyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvb3V0cHV0OgoKICAgUmVjb2duaXNlICcwJyBhcyBhIHZhbGlkIHNldHRpbmcgZm9yIHN1ZmZpeFByaW50aW5nLCBhbmQgdXBkYXRlIHRoZQogICBwcm9tcHRzIHRvIG1hdGNoIHRoZSB2NSBvdXRwdXQgZm9ybWF0cyBkZWZhdWx0cy4gU2VlIEJ1ZyAjNTY3NDUxCiAgIAoyMDAyLTA3LTMwIDA3OjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRmlyc3QgYXR0ZW1wdCBhdCB0YWNrbGluZyBCdWcgIzU3NDQzNAogICBSZWNvZ25pc2UgdGhhdCBkZWZhdWx0IG91dHB1dCBmb3JtYXQgaXMgZXF1aXZhbGVudCB0byAtT1MuCiAgIFNubXB0YWJsZSBzdGlsbCBjcmFzaGVzIHdpdGggLU9mIG9yIC1PdSwgYnV0IGF0IGxlYXN0IHRoZQogICBkZWZhdWx0IGludm9jYXRpb24gd29ya3MuCiAgIAoyMDAyLTA3LTMwIDA1OjQxICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEV4cG9ydCBuZXdseS1kZWZpbmVkIHB1YmxpYyBuYW1lcywgYW5kIHJlLWV4cG9ydCBzb21lIHJvdXRpbmVzIHRoYXQKICAgaGF2ZSBjaGFuZ2VkIG5hbWUuICBUaGlzIHNob3VsZCBub3cgY29tcGlsZSB1bmRlciBWaXN1YWwgQysrIGFnYWluLgogICAKMjAwMi0wNy0zMCAwMjoyNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBEb24ndCByZW1vdmUgYSBSb3ctU3RhdHVzIGF1dG8tZGVsZXRlZCByb3cgdW50aWwgdGhlIGxhc3QgbWludXRlLAogICBpbiBjYXNlIG90aGVyIChsb3dlcikgaGFuZGxlcnMgdHJ5IHRvIGFjY2VzcyBpdC4KICAgCjIwMDItMDctMzAgMDE6MzggIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjEpLCBGQVE6CgogICBNZW50aW9uIHRoZSBuZWVkIHRvIGVzY2FwZSBxdW90ZXMgd2hlbiBxdWVyeWluZyBzdHJpbmctaW5kZXhlZCB0YWJsZXMuCiAgIAoyMDAyLTA3LTI5IDIzOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXBkYXRlIHJlZ2lzdGVyIGZ1bmN0aW9uIG5hbWUKICAgCjIwMDItMDctMjkgMjM6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBhdXRvZ2VuIGV4YW1wbGUgY29kZSBmb3IgaW5kZXggY2hlY2tpbmcgaW4gZXh0cmFjdF9pbmRleDsgdXBkYXRlIHJlZ2lzdGVyCiAgIGZ1bmN0aW9uIG5hbWU7IHVzZSBjb250YWluZXIgaW4gKl9nZXRfYnlfaWR4KCkKICAgCjIwMDItMDctMjkgMTY6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgZm9yIG5ldyBzdHJ1Y3QgbmFtZTsgYWRkIGV4YW1wbGUgY29kZSBhcyBjb21tZW50cyBpbnN0ZWFkIG9mIHZhcl9YWFgKICAgYW5kIHN1Y2g7IGluIGEgZmV3IGltcG9ydGFudCBwbGFjZXMgYWRkIGNvZGUgd2hpY2ggd2lsbCBhbGxvdyBhIG5ld2x5CiAgIGdlbmVyYXRlZCBtb2R1bGUgdG8gYmUgY29tcGlsZWQgaWYgLURUQUJMRV9DT05UQUlORVJfVE9ETyBpcyBzcGVjaWZpZWQ7CiAgIHByb2JhYmx5IGEgZmV3IG90aGVyIHR3ZWFrcyBJIGZvcmdvdAogICAKMjAwMi0wNy0yOSAwMzowNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2FycmF5LmMsIHRhYmxlLmMsIHRhYmxlX2RhdGEuYwosIHRhYmxlX2RhdGFzZXQuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBkZWZlcmVuY2luZyBOVUxMIHBvaW50ZXJzLgogICAoTW9zdCBvZiB0aGVzZSBTaG91bGQgTmV2ZXIgSGFwcGVuIGJ1dCBZb3UgQ2FuJ3QgQmUgVG9vIENhcmVmdWwhKQogICAKMjAwMi0wNy0yOSAwMzowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZGV0ZWN0IGBkbWZlJyBldGhlcm5ldCBjYXJkcyBhcyBmb3VuZCBvbiBOZXRyYSBYMSBtYWNoaW5lcy4KICAgICAgIFRoYW5rcyB0byBKb2huIE9sc29uIGZvciB2ZXJpZnlpbmcgdGhpcyBmaXguCiAgIAogICAgICAgQWxzbyBub3RlIHRoYXQgYGluZGVudCcgaGFzIC0tLS1lZCB0aGUgZm9ybWF0dGluZyBvZiB0aGlzIGZpbGUKICAgICAgIGJleW9uZCBsZWdpYmlsaXR5IGluIHNldmVyYWwgcGxhY2VzLiAgSSBkb24ndCB0aGluayB3ZSB3YW50IHRvCiAgICAgICBkbyAqdGhhdCogYWdhaW4uCiAgIAoyMDAyLTA3LTI5IDAyOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZ1bGxlciB2YWxpZGF0aW9uIG9mIFJvd1N0YXR1cyB2YWx1ZXMgd3J0IHJvdyBjcmVhdGlvbi9leGlzdGluZyByb3dzLgogICAKMjAwMi0wNy0yOSAwMToyNSAgZHRzMTIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBUYWtlIGFjY291bnQgb2YgcmVjZW50IGNoYW5nZXMgaW4gbGlicmFyeSBmaWxlcy4KICAgJ1JlbGVhc2UnIGFwcGxpY2F0aW9ucyBzdGlsbCBkb24ndCBsaW5rIHByb3Blcmx5LCBidXQgYXQgbGVhc3QKICAgdGhlIGxpYnJhcmllcyBjb21waWxlLCBhbmQgdGhlICdEZWJ1Zycgc2lkZSBzZWVtcyB0byB3b3JrLgogICAKMjAwMi0wNy0yOSAwMToyMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBUd2VhayBpbmxpbmUgaGFuZGxpbmcgZm9yIEFJWCAtIHN1Z2dlc3RlZCBieSBBbmR5IEhvb2QuCiAgIAoyMDAyLTA3LTI2IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBhdXRvZGVwZW5kZW5jaWVzIHVudGlsIHBvcnRhYmxlIHNvbHV0aW9uIGNhbiBiZSBmb3VuZAogICAKMjAwMi0wNy0yNiAwODo0MSAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2NvbmZpZy5oLCBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsCiAgIG1pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIHRoZSAob2Jzb2xldGUpIHVjZC1zbm1wL3JlZ2lzdHJ5IG1vZHVsZS4KICAgCjIwMDItMDctMjYgMDc6MzIgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgUHJvdGVjdCB0aGUgV2luMzIgdmVyc2lvbiBvZiB0aGUgY29uZmlnIGZpbGUsIHNvIHRoYXQgdGhlIG90aGVyIGhlYWRlcgogICBmaWxlcyByZWNvZ25pc2UgdGhhdCBpdCBoYXMgaW5kZWVkIGJlZW4gaW5jbHVkZWQuCiAgIAoyMDAyLTA3LTI2IDA3OjI0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4wKSwgRkFROgoKICAgQSBiaXQgbW9yZSBkZXRhaWwgb24gbWliMmMsIHBsdXMgdGhlIG5vbi13cml0ZWFiaWxpdHkgb2Ygc3lze0xvY2F0aW9uLENvbnRhY3R9CiAgIAoyMDAyLTA3LTI2IDA1OjIyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy45KSwgRkFROgoKICAgQW5vdGhlciBlbnRyeSBhYm91dCBpbnZhbGlkIHVzZSBvZiBtaWIyYy4KICAgCjIwMDItMDctMjYgMDU6MTYgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBTdXBwcmVzcyB0aGUgIm5vbi1zdGFuZGFyZCIgY29uZGl0aW9uYWwgY29uc3RydWN0LAogICBzaW5jZSBpdCdzIG5vdCByZWNvZ25pc2VkIGJ5IHNvbWUgdmVyc2lvbnMgb2YgJ21ha2UnLgogICAKMjAwMi0wNy0yNSAwNTowMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgJ3NjYWxhcicgYW5kICd3YXRjaGVyJyBoZWxwZXJzIHRvIHRoZSBoZWxwZXIgbGlicmFyeS4KICAgCjIwMDItMDctMjUgMDM6MjggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBTdXBwb3J0IGZvciB3YXRjaGluZyBhIHN5c1VwVGltZSBtYXJrZXIuCiAgIAoyMDAyLTA3LTI1IDAzOjI0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBOZXcgcm91dGluZSBmb3IgcmV0cmlldmluZyBhIGNvbHVtbiB2YWx1ZSBkaXJlY3RseSBmcm9tIGEgcmVxdWVzdCBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA3LTI0IDEzOjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBjaGVjayBmb3Igc2V0dGluZyBzYW1lIHZhbHVlIGluIGRzX3NldF9zdHJpbmcsIHNpbmNlIGl0IGZyZWVzIHRoZSBvbGQKICAgdmFsdWUgYmVmb3JlIGR1cGluZyB0aGUgbmV3IG9uZQogICAKMjAwMi0wNy0yNCAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3Qvc25tcGQtaW5pdC5kOgoKICAgZmlyc3Qgc3RhYiBhdCBpbml0LmQgc3RhcnR1cCBzY3JpcHQgZm9yIHNubXBkCiAgIAoyMDAyLTA3LTI0IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFdoZW4gcnVubmluZyBvZmYgdGhlIGVuZCBvZiBvbmUgY29sdW1uLCBhbmQgbW92aW5nIG9uIHRvIHRoZSBuZXh0CiAgIChpbiBhIEdldE5leHQpLCB3ZSBuZWVkIHRvIHN0YXJ0IGFnYWluIHdpdGggdGhlIGZpcnN0IHJvdy4KICAgVGhpcyBpcyBwcm9iYWJseSB0aGUgaW50ZW50aW9uIG9mIHRoZSBjb25kaXRpb25hbCBibG9jayBhdCB0aGUgc3RhcnQKICAgb2YgdGhpcyBsb29wLCBidXQgSSBjYW4ndCBzZWUgaG93IHRoaXMgdGVzdCBjb3VsZCBldmVyIHBvc3NpYmx5IG1hdGNoLgogICAKICAgTm90ZSB0aGF0IHRoZXJlIGlzIGFsc28gYSByZWZlcmVuY2UgdG8gdGhlIHJvdyBkYXRhIGFjY2Vzc2libGUgdmlhCiAgIHRoZSAncmVxdWVzdC0+cGFyZW50X2RhdGEnIGRhdGEgbGlzdC4gICBUaGlzIHdpbGwgYWxzbyBuZWVkIHRvIGJlCiAgIHJld291bmQuICBTdWdnZXN0aW9ucyBhcyB0byBob3cgYmVzdCB0byBkbyBzbyBncmF0ZWZ1bGx5IHJlY2VpdmVkLgogICAKMjAwMi0wNy0yNCAwNjozOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgbWlzc2luZyB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yNCAwNjozNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIHBvc3NpYmlsaXR5IG9mIGZhaWxpbmcgdG8gZXh0cmFjdCBhIHJvdyBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA3LTI0IDA2OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBtaXNzaW5nIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTI0IDA2OjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgaW52YWxpZCB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yMyAxNDo1OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgbWlzc2luZyBjb21tZW50IHRlcm1pbmF0b3IuOi0oCiAgIAoyMDAyLTA3LTIzIDEyOjAyICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICB1c2UgbmV3IG5ldHNubXBfYXNzZXJ0IGluc3RlYWQgb2YgYXNzZXJ0CiAgIAoyMDAyLTA3LTIzIDEyOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgYWRkIG5ldyBuZXRzbm1wX2Fzc2VydCwgd2hpY2ggZGVmYXVsdHMgdG8gbG9nZ2luZyBhIG1lc3NhZ2UKICAgCjIwMDItMDctMjMgMDc6NDMgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMyAoVjQtMi1wYXRjaGVzLjMpLCBtaWJfYXBpLjMuZGVmOgoKICAgRml4IHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlICdzcHJpbnRfcmVhbGxvYycgY2FsbHMsIHRvIGluY2x1ZGUgdGhlICdhbGxvd19yZWFsbG9jJyBwYXJhbWV0ZXIuCiAgIAoyMDAyLTA3LTIyIDEwOjU4ICByc3RvcnkKCiAgICogZGlzdC86IG5ldC1zbm1wLnNwZWMsIG5zYi1mdW5jdGlvbnM6CgogICBuZXcgKGFsbW9zdCBlbXB0eSkgc3BlYyBmaWxlOyBzdGFydCBjcmVhdGluZyBmdW5jdGlvbnMgZm9yIGF1dG9tYXRlZCBidWlsZHMKICAgCjIwMDItMDctMjIgMDE6NDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBBIG1vcmUgZ2VuZXJhbGlzZWQgZm9ybSBvZiB0aGUgJ25zX3JlZ2lzdGVyX3t0eXBlfV9pbnN0YW5jZScgcm91dGluZXMsCiAgIGltcGxlbWVudGVkIGFzIGEgc2VwYXJhdGUgaGVscGVyIG1vZHVsZSwgYW5kIHVzZWFibGUgd2l0aCBib3RoIHRoZQogICBpbnN0YW5jZSBhbmQgc2NhbGFyIGhlbHBlcnMuCiAgICAgVGhpcyBhbHNvIHN1cHBvcnRzIGFyYml0cmFyeSBBU04gdHlwZXMgKGluY2x1ZGluZyBzdHJpbmdzIGFuZCBPSURzKS4KICAgCjIwMDItMDctMjIgMDE6NDMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyMS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhcjIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXIuaDoKCiAgIEFnZW50IGhlbHBlciBtb2R1bGUgZm9yIHN1cHBvcnQgb2Ygc2NhbGFyIG9iamVjdHMuCiAgIFZlcnkgc2ltaWxhciB0byB0aGUgImluc3RhbmNlIiBoZWxwZXIsIGV4Y2VwdCB0aGF0IHRoaXMgZGVhbHMgd2l0aAogICBpbnZhbGlkIGluc3RhbmNlIHN1YmlkZW50aWZpZXJzIGFzIHdlbGwgKHJlcG9ydGluZyBub1N1Y2hJbnN0YW5jZQogICByYXRoZXIgdGhhdCBub1N1Y2hPYmplY3QpLgogICAKICAgVGhlcmUgYXJlIHR3byBwYXJhbGxlbCBpbXBsZW1lbnRhdGlvbnMgYXMgdGhlIG1vbWVudDoKICAgICAtIHNjYWxhcjEgaXMgZXNzZW50aWFsbHkgYW4gZW5oYW5jZWQgY29weSBvZiB0aGUgaW5zdGFuY2UgaGVscGVyLAogICAgICAgYnV0IGlzIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgaXQuCiAgICAgLSBzY2FsYXIyIHNpdHMgYWJvdmUgdGhlIGluc3RhbmNlIGhlbHBlciwgYW5kIHVzZXMgdGhhdCB0byBkbyBtb3N0CiAgICAgICBvZiB0aGUgcmVhbCBwcm9jZXNzaW5nLgogICBTY2FsYXIxIGlzIHByb2JhYmx5IHNsaWdodGx5IG1vcmUgZWZmaWNpZW50LCB3aGlsZSBzY2FsYXIyIGZlZWxzIG1vcmUKICAgaW4ga2VlcGluZyB3aXRoIHRoZSBnZW5lcmFsIGV0aG9zIG9mIHRoZSBoYW5kbGVyIG1lY2hhbmlzbS4KICAgV2UgcHJvYmFibHkgbmVlZCB0byBkZWNpZGUgd2hpY2ggdG8gYWRvcHQsIGFuZCBqdW5rIHRoZSBvdGhlci4KICAgCjIwMDItMDctMTkgMTQ6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICB1c2UgbmV0IGFnZW50eCByZXRpcmVzL3RpbWVvdXQgZHMgdmFsdWVzCiAgIAoyMDAyLTA3LTE5IDE0OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIHJlZ2lzdGVyIHBhcnNlciBmb3IgYWdlbnR4VGltZW91dCBhbmQgYWdlbnR4UmV0cmllcyB0b2tlbnMKICAgCjIwMDItMDctMTkgMTQ6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgcmVmcyB0byBub24tZXhpc3RlbnQgbnN0QWdlbnQqIGZpbGVzCiAgIAoyMDAyLTA3LTE5IDE0OjE0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIG1vdmUgT05FX1NFQyB0byBkZWZpbml0aW9ucy5oOyBhZGQgQUdFTlRYX1RJTUVPVVQgYW5kIEFHRU5UWF9SRVRSSUVTIGRlZmF1bHRzCiAgIAoyMDAyLTA3LTE5IDE0OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgYWRkIEFHRU5UWF9USU1FT1VUIGFuZCBBR0VOVFhfUkVUUklFUwogICAKMjAwMi0wNy0xOSAxNDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaDoKCiAgIG1vdmUgZGVmaW5pdGlvbiBvZiBPTkVfU0VDIGhlcmUgZnJvbSBzbm1wZC5jCiAgIAoyMDAyLTA3LTE5IDExOjIzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHBhc3MgbG9jYWwgb2JqLCBub3QgcmFuZG9tIHVuaXRpYWxpemVkIHBvaW50ZXIuOi0oCiAgIAoyMDAyLTA3LTE5IDA0OjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdoZXJlIE1BWFBBVEhMRU4gaXNuJ3QgZGVmaW5lZC4KICAgCjIwMDItMDctMTkgMDM6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgVXNlIHRoZSAic3lzdGVtLWluZGVwZW5kZW50IiBTTk1QX01BWFBBVEggbGVuZ3RoIGRlZmluaXRpb24gaW5zdGVhZCBvZiBNQVhQQVRITEVOCiAgIAoyMDAyLTA3LTE4IDIyOjAwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHJlZnMgdG8gbm9uZXhpc3RlbnQgbWliZ3JvdXAvbnN0QWdlbnRNb2R1bGVPYmplY3QuaAogICAKMjAwMi0wNy0xOCAxOTo0NCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4yICkKICAgCjIwMDItMDctMTggMTk6NDMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjIKICAgCjIwMDItMDctMTggMTk6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1pbm9yIHBhdGNoIGZvciBub24tZXhpc3RlbnQgKGRpZWQpIGxvZyBmaWxlcy4KICAgCjIwMDItMDctMTggMTk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wNy0xOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjIKICAgCjIwMDItMDctMTggMTk6NDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgbWFrZSBkZXBlbmQgZml4ZXMuCiAgIAoyMDAyLTA3LTE4IDE4OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLzogYWxhcm0uYywgZXZlbnQuYzoKCiAgIG1ha2UgdGhlIHJtb24gY29kZSBjb21waWxlLgogICAgLSBuZXcgc3VidHJlZSBwb2ludGVyIHN0cnVjdHVyZS4KICAgIC0gc3ByaW50X29iamlkIC0+IHNucHJpbnRfb2JqaWQKICAgCjIwMDItMDctMTggMTg6MzIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgc2lsZW5jZSBwZXJsIHN1YmRpcmVjdG9yeSBidWlsZCBjb21tYW5kcy4KICAgCjIwMDItMDctMTggMTg6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgLSBVc2UgbmV0c2ggLXQgLWQgeG1sIHRvIGdldCB4bWwgb3V0cHV0IGZyb20gbmV0c2guCiAgICAgKE9rLCBJJ20gc2l0dGluZyBoZXJlIGF0IGFuIElFVEYgY29uZmVyZW5jZSBoYXZpbmcgYW4gYXJndW1lbnQgYWJvdXQKICAgICAgeG1sIHZzIEJFUiBhbmQgbmVlZGVkIGEgWE1MKC1saWtlKSBleGFtcGxlIG9mIGEgaHVnZSBkYXRhIHNldCwgc28gSQogICAgICBtYWRlIG5ldHNoIGRvIGl0LikKICAgCjIwMDItMDctMTggMTc6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIGluaXRpYWwgc3VwcG9ydCBmb3IgZG9pbmcgcmVxdWVzdHMgZnJvbSBtdWx0aXBsZSBob3N0cyAocmV0cmlldmFsLCBub3Qgc2V0cykKICAgCjIwMDItMDctMTggMTc6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgbW9yZSBmaXhlcyB0byBzdGlsbCB1Z2x5IGNvbG9yaXplZCB0ZXh0ICh3ZWxsLCB0aGUgdGV4dCBpcyBwcmV0dHkgYnV0CiAgIHRoZSBzdXBwb3J0IGlzIHVnbHkpLgogICAKMjAwMi0wNy0xOCAxNzo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgY2hhbmdlIHRleHQgc3RyaW5nIGVycm9yIHRvIG1hdGNoIGZ1bmN0aW9uIG5hbWUgY2FsbGVkLgogICAKMjAwMi0wNy0xOCAxNTozMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwosIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgcmVuYW1lIGZyZWUgLT4gY2ZyZWUgdG8gYXZvaWQgc29tZSBwcm9ibGVtIHdlcyBoYWQuLi4gOy0pCiAgIAoyMDAyLTA3LTE4IDE0OjQxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHR3byBwZW9wbGUgZml4aW5nIG1lbW9yeSBsZWFrIGluIGRpZmZlcmVudCBwbGFjZXMgPSBzZWdmYXVsdAogICAKMjAwMi0wNy0xOCAxMTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgICRuYW1lIC0+ICRpCiAgIAoyMDAyLTA3LTE4IDEwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oOgoKICAgdXBkYXRlIHRvIHVzZSBjb250YWluZXJzCiAgIAoyMDAyLTA3LTE4IDA5OjQwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tZGVidWctdG9rZW5zLCAtLWluZGVudC1vcHRpb25zCiAgIAoyMDAyLTA3LTE4IDA5OjE4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwgc25tcGxpYi9zbm1wLXRjLmMKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4Lmg6CgogICBBcHBseSBwYXRjaCBmcm9tIEJ1ZyAjNTgyMzQ3LCBmb3IgSXJpeCA2LjUgc3VwcG9ydC4KICAgU3VibWl0dGVkIGJ5IEphbiBZZW55YSBLYXNwcnphawogICAKMjAwMi0wNy0xOCAwOToxMiAgZHRzMTIKCiAgICogbWFuLzogc25tcHRyYXBkLjggKFY0LTItcGF0Y2hlcy41KSwgc25tcHRyYXBkLjguZGVmOgoKICAgRml4IG1hcmt1cCBwcm9ibGVtIG9uIHNubXB0cmFwZCBtYW4gcGFnZSAoQnVnICM1ODMzMjkpCiAgIAoyMDAyLTA3LTE4IDA5OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIFRoZSBmaXggZm9yIHRoZSB0bV9nbXRvZmYgcHJvYmxlbSBvbiBBSVggKEJ1ZyAjNTY1NzY5KSBhbHNvIGFwcGxpZXMgdG8gQUlYIDUKICAgCjIwMDItMDctMTggMDk6MDYgIGR0czEyCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMgKFY0LTItcGF0Y2hlcy4xKSwgZW5jb2RlX2tleWNoYW5nZS5jCjoKCiAgIEZpeCBvZmYtYnktb25lIGJ1ZmZlciBvdmVyZmxvdyAocGF0Y2ggIzU3NzI2MSkKICAgCjIwMDItMDctMTggMDg6NTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIEdlbmVyYXRlIG9uZSBjb2RlLWZpbGUgcGVyIHRhYmxlICh0byBtYXRjaCB0aGUgaGVhZGVyIHN0cnVjdHVyZSkuCiAgIE15IGFwb2xvZ2llcyBpZiB0aGlzIGlzbid0IGNvcnJlY3QsIFJvYmVydCAtIGJ1dCB0aGUgcHJldmlvdXMgYmVoYXZpb3VyCiAgIHNlZW1lZCB0byBiZSBicm9rZW4uCiAgIAoyMDAyLTA3LTE4IDA4OjM3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBUYWNrbGUgc29tZSBvZiB0aGUgaW1tZWRpYXRlIGRlZmljaWVuY2llcyBpbiB0aGUgZmlyc3QgZHJhZnQgb2xkLWFwaSBjb25maWcuCiAgIChOb3cgdGhhdCBXZXMgaGFzIHBvaW50ZWQgbWUgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgZG9jdW1lbnRhdGlvbiEpCiAgIAoyMDAyLTA3LTE4IDA4OjIyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEZpeCB0aGUgJ2RlY2wnIHN1YnN0aXR1dGlvbiBoYW5kbGluZyAoc28gaXQgZG9lc24ndCBpbmNsdWRlIHRoZSBpbnRlcm5hbCB0b2tlbiBhcyB3ZWxsKS4KICAgCjIwMDItMDctMTggMDc6MTggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgUHJvdmlkZSB0aGUgbWlzc2luZyBwYXJhbWV0ZXIgaW4gYSByZWFkX29ubHkgaW5zdGFuY2UgcmVnaXN0cmF0aW9uLgogICAKMjAwMi0wNy0xOCAwNzowOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKOgoKICAgQnJpbmcgdGhlICdyZWFkX29ubHlfaW50JyBpbnN0YW5jZSBoYW5kbGVyIGluIGxpbmUgd2l0aCB0aGUgcmVzdCBvZgogICB0aGUgY29udmVuaWVuY2UgaW5zdGFuY2UgaGFuZGxlcnMuCiAgIChhbmQgZXZlbiBicmVhayB0aGUgaGFiaXQgb2YgYSBsaWZldGltZSBhbmQgZGVjbGFyZSB0aGUgdGhpbmcuLi4uKQogICAKMjAwMi0wNy0xOCAwNTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4IGFub3RoZXIgbWVtb3J5IGxlYWsgZHVlIHRvIGFuIGltcHJvcGVyIGlmZGVmZWQgb3V0IHNlY3Rpb24gb2YgY29kZQogICAKMjAwMi0wNy0xOCAwNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgSSdtIGJlZ2lubmluZyB0byByZWdyZXQgZXZlciBydW5uaW5nIGluZGVudCBvbiB0aGUgY29kZSBiYXNlLi4uCiAgIAoyMDAyLTA3LTE3IDE1OjQzICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mOgoKICAgZG9jdW1lbnQgYW5kIGluc3RhbGwgbWliMmMub2xkLWFwaS5jb25mCiAgIAoyMDAyLTA3LTE3IDEzOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IHNlZ2ZhdWx0IChwb3NzaWJseSBjcmVhdGluZyBtZW1vcnkgbGVhayk7IGF1dGhvciBuZWVkcyB0byBleGFtaW5lIGNvZGUKICAgCjIwMDItMDctMTcgMDc6NDEgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuYXJyYXktdXNlci5jb25mLCBtaWIyYy5jb25mLAogICBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBtaWIyYy5pbnRfd2F0Y2guY29uZiwKICAgbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5zY2FsYXIuY29uZjoKCiAgIERhdmUncyBiZWluZyB1bnJlYXNvbmFibHkgcGlja3kgYWJvdXQgZ3JhbW1hciAmIHNwZWxsaW5nIGFnYWluLgogICBKdXN0IGlnbm9yZSBoaW0sIGFuZCBoZSdsbCBnbyBhd2F5Li4uLi4KICAgCjIwMDItMDctMTcgMDc6MjAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIEluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIG9sZCA0eC1zdHlsZSBhZ2VudCBBUEkgdXNpbmcgdGhlIG5ldyB2ZXJzaW9uIG9mIG1pYjJjLgogICBJdCBkb2Vzbid0IGhhbmRsZSB0eXBlcyBwcm9wZXJseSwgYW5kIEknbSBzdXJlIEknbGwgaGF2ZSBidWdnZXJlZCB1cCBzb21lIG9mCiAgIHRoZSBjb250cm9sIHN0cnVjdHVyZSBoYW5kbGluZywgYnV0IGl0IHNlZW1zIHRvIGdlbmVyYXRlIHNvbWV0aGluZyB0aGF0J3MKICAgcHJldHR5IGNsb3NlIHRvIHRoZSBvbGQgb3V0cHV0LiAgIEl0J3MgYmV0dGVyIHRoYW4gbm90aGluZy4uLi4uCiAgIAoyMDAyLTA3LTE2IDIyOjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIHJlc3RvcmUgaW5saW5lIGZ1bmN0aW9ucyAoc2lnaC4gSSBmZWVsIGxpa2UgSSdtIHBsYXlpbmcgcmluZy1hcm91bmQtdGhlLXJvc2llKQogICAKMjAwMi0wNy0xNiAyMTo1OCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW5hbWUgc29tZSBzdHJ1Y3QgbWVtYmVycyB0byBtYWtlIGNvZGUgZWFzaWVyIHRvIHJlYWQ7IGEgYml0IG9mIHJlLW9yZGVyaW5nCiAgIGluIHRoZSBzZXQgY29kZTsgbmV3IGZsYWdzIGZvciBuZXcgYW5kIGRlbGV0ZWQgcm93czsgcm93IGRlbGV0ZXMgbm93CiAgIGFjdHVhbHkgd29yayEKICAgCjIwMDItMDctMTYgMTk6MzIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgY2hhbmdlIGNvbXBsZXggbWFjcm9zIGludG8gZnVuY3Rpb25zLiB3b3VsZCBiZSBuaWNlIGlmIEMgaGFkIGlubGluZS4KICAgCjIwMDItMDctMTYgMTg6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICB1bW0sIHRyeSB1c2luZyBjb3JyZWN0IGRlZmluZS46LS8KICAgCjIwMDItMDctMTYgMTg6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICB0ZXN0IHRoYXQgbmV0LXNubXAtY29uZmlnLmggaGFzIGJlZW4gaW5jbHVkZWQsIGluc3RlYWQgb2YgYWN0dWFsbHkgaW5jbHVkaW5nIGl0Li4KICAgKHNob3VsZG4ndCB0aGlzIHJlYWxseSBiZSBpbiBhbGwgdGhlIGhlYWRlciBmaWxlcz8pCiAgIAoyMDAyLTA3LTE2IDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIGZvciBjb250YWluZXJzCiAgIAoyMDAyLTA3LTE2IDExOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMTYgMTE6MTYgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMgKGdydW1ibGUgZ3J1bWJsZSkKICAgCjIwMDItMDctMTYgMTE6MTQgIHJzdG9yeQoKICAgKiBhcHBzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTE6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmRlcGVuZCwgbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAo6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDEwOjUwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBmYWN0b3J5LmMKICAgCjIwMDItMDctMTYgMTA6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgbmV0c25tcF9jb250YWluZXJfaW5pdF9saXN0KCkgaW4gc3RhcnR1cCBpbml0cwogICAKMjAwMi0wNy0xNiAxMDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwgc25tcGxpYi9vaWRfYXJyYXkuYwo6CgogICByZW1vdmUgdW51c2VkIGZpbGVzCiAgIAoyMDAyLTA3LTE2IDEwOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGNoZyBwYXJhbSB0eXBlIGZyb20gdm9pZCogdG8gc3RydWN0ICoKICAgCjIwMDItMDctMTYgMTA6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHJlY2VudGx5IGRlbGV0ZWQgb2lkX2FycmF5Lmg7IGFkZCBmYWN0b3J5LCBiaW5hcnkgYXJyYXkgLltjaF07IGRlcml2ZQogICBPQkpTIGFuZCBMT0JKUyBmcm9tIENTUkNTOyBhZGQgKG9wdGlvbmFsKSBhdXRvIGRlcGVuZGVuY3kgZ2VuZXJhdGlvbgogICAKMjAwMi0wNy0xNiAwOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oOgoKICAgcmVtb3ZlIHJlY2VudGx5IGRlbGV0ZWQgb2lkX2FycmF5LmgKICAgCjIwMDItMDctMTYgMDk6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmg6CgogICBzdHJ1Y3Qgc3VidHJlZSAtPiBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTYgMDk6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHJlbW92ZSBsYXN0IHJlbWFpbmluZyByZWZzIHRvIG5vdyBkZWZ1bmN0IG9pZF9hcnJheQogICAKMjAwMi0wNy0xNiAwOTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZ2VuZXJpYyBiaW5hcnkgYXJyYXkgY29udGFpbmVyIGV4dHJhY3RlZCBmcm9tIG9pZF9hcnJheQogICAKMjAwMi0wNy0xNiAwOTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmg7IG5ldyB0eXBlZGVmIHN0cnVjdCBuZXRzbm1wX2luZGV4IChvaWQgcHRyICsgbGVuKQogICAKMjAwMi0wNy0xNiAwOTozOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXNlIGdlbmVyaWMgY29udGFpbmVyIGludGVyZmFjZTsgdXNlIG5ldyBuZXRzbm1wX2luZGV4IGluc3RlYWQgb2YKICAgb2lkX2FycmF5X2hlYWRlcjsgcmVuYW1lIGFycmF5X2dyb3VwIC0+IHJlcXVlc3RfZ3JvdXAKICAgCjIwMDItMDctMTYgMDk6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgYWRkIGl0ZXJhdG9yczsgbW9yZSBmdW5jdGlvbiB0eXBlZGVmczsgcmVuYW1lIHNvbWUgZnVuYyBwdHJzLCBhZGQgZmluZF9uZXh0LAogICBnZXRfc3Vic2V0LCBnZXRfaXRlcmF0b3IsIGZvcl9lYWNoLCBuY29tcGFyZTsgYWRkIGFiaWxpdHkgdG8gaGF2ZSBuZXN0ZWQKICAgY29udGFpbmVyczsgbW9yZSB1dGlsaXR5IHJvdXRpbmVzOyBjb252ZW5pZW5jZSBtYXJjcm9zOyBzdGFydCBhZGRpbmcgY29tbWVudHMKICAgCjIwMDItMDctMTYgMDk6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oOgoKICAgZGVjbGFyYXRpb25zIGZvciBhIGdlbmVyaWMgZmFjdG9yeQogICAKMjAwMi0wNy0xNiAwODo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZHluaXguYywgbWVtb3J5X2hwdXguYwosIHZtc3RhdF9keW5peC5jLCB2bXN0YXRfaHB1eC5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBidWcgcmVwb3J0IDU4MTYxOCAoYWxzbyBhcHBsaWNhYmxlIHRvIGR5bml4KQogICBQcm92aWRlZCBieSBOaWNob2xhcyBMLiBOaWdheQogICAKMjAwMi0wNy0xNiAwNjo1NCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIE9JRC9PSUQucG0sIGFnZW50L2FnZW50LnBtLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHJlbW92ZSAib3VyIiBwcm9ibGVtIGFuZCB1c2Ugb2xkZXIgInVzZSB2YXJzIiBpbnN0ZWFkIGZvciBvbGRlciBwZXJsLgogICAgICh0aGlzIHNob3VsZCBtYWtlIGl0IHdvcmsgd2l0aCBwZXJsIDUuMDA1LiAgQ291bGQgc29tZSBvbmUgdGVzdCB0aGlzCiAgICAgIGZvciBtZT8pCiAgIAoyMDAyLTA3LTE1IDA2OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBuYW1lcyBvZiBuZXRzbm1wX3N1YnRyZWUgZWxlbWVudHMgY2hhbmdlZAogICAKMjAwMi0wNy0xNSAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTUgMDU6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgU29tZSByZWFsbHkgbmFzdHkgaGFja3MgdG8gZ2V0IGNvbG9yaXplZCB0YWJsZXMgdG8gd29yay4KICAgCjIwMDItMDctMTQgMjA6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgbWliLnQ6CgogICBjb21tZW50IG91dCBicm9rZW4gdGVzdHMgZm9yIG5vdyAoWFhYIG1hcmtlZCkKICAgCjIwMDItMDctMTQgMjA6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGdldGJ1bGsuCiAgIAoyMDAyLTA3LTE0IDIwOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgQSBuZXcgZnVuY3Rpb24gdG8gY2FsbCBhIHN1Yi1oYW5kbGVyIGJ1dCBwYXNzaW5nIGl0IG9ubHkgb25lIHJlcXVlc3QgdG8gaGFuZGxlLgogICAKMjAwMi0wNy0xMCAyMToyMSAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgZGVmaW5lIExPR19EQUVNT04sIHNpbmNlIHdpbmRvd3MgZG9lc24ndCBoYXZlIGl0CiAgIAoyMDAyLTA3LTEwIDIxOjA3ICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgZGVmaW5lIG9mIGluX2FkZHJfdCwgd2hpY2ggY2FuIGJlIGZvdW5kIGluIG5ldC1zbm1wL3R5cGVzLmgKICAgCjIwMDItMDctMTAgMDI6MzYgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTEwIDAyOjM1ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gZG9uJ3QgdXNlIDAgaW4gJXAgZm9ybWF0IHNwZWNpZmllcnMKICAgCjIwMDItMDctMTAgMDI6MzQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBmaXggc29tZSBob3JyaWJsZSBpbmRlbnQgYnJva2VuIGZvcm1hdHRpbmcKICAgCjIwMDItMDctMTAgMDI6MzMgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIHJlbW92ZSBzb21lIG9ic29sZXRlIHZhcmlhYmxlcwogICAKMjAwMi0wNy0xMCAwMjozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSByZWZsZWN0IGNoYW5nZWQgZnVuY3Rpb24gbmFtZXMgZnJvbSBhZ2VudF9yZWdpc3RyeQogICAKMjAwMi0wNy0xMCAwMjozMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICAgIC0gY2hhbmdlcyBkdWUgdG8gcmVuYW1pbmcgb2Ygc3RydWN0IHN1YnRyZWUgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBOT1RFIE1FTU9SWSBMRUFLICh3aGljaCBJIGNhbid0IHNlZSBob3cgdG8gZml4IC0tIG5ldyBhZ2VudCBBUEkKICAgICAgIGV4cGVydHMgcGxlYXNlIGV4YW1pbmUpCiAgIAoyMDAyLTA3LTEwIDAyOjI5ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIG5hbWUsIHN0YXJ0LCBlbmQgbWVtYmVycyBhcmUgbm93IGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB0byByZWR1Y2UKICAgICAgIHdhc3RlZCBtZW1vcnkgKGJ5IGEgZmFjdG9yIG9mIDUgb3Igc28pCiAgICAgLSBmdW5jdGlvbnMgYXJlIHJlbmFtZWQgY29uc2lzdGVudGx5CiAgIAoyMDAyLTA3LTEwIDAyOjIwICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5oLAogICBuZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTA5IDA2OjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmcmVlIGNhY2hlX2lkIHN0b3JhZ2Ugd2hlbiBjbG9zaW5nIHNlc3Npb24KICAgCjIwMDItMDctMDkgMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGp1c3QgY2FsbCBuZXRzbm1wX2RzX3NodXRkb3duKCkgb25jZSBpbiBzbm1wX3NodXRkb3duKCkKICAgCjIwMDItMDctMDkgMDQ6MTUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gbmV0c25tcF9maXh1cF9taWJfZGlyZWN0b3J5KCkKICAgCjIwMDItMDctMDkgMDM6MTQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgYSBjYXN0IHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDggMjI6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBleHRlcm4gQyBmb3IgQysrIGNvbXBpbGVzCiAgIAoyMDAyLTA3LTA4IDA3OjIxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICAgIC0gcmVtb3ZlIG9ic29sZXRlIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgCjIwMDItMDctMDcgMTk6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgdG8gdXNlIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMDcgMTk6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5Lmg6CgogICBmaXggdHlwbwogICAKMjAwMi0wNy0wNyAxOTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBwcm9jLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wNyAxOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgaG9zdC9ocl9zd2luc3QuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE5OjAzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCiAgIAoyMDAyLTA3LTA3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0wNy0wNyAxODo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTA3LTA3IDE4OjUwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBtYWtlIHBhcmFtIGNvbnN0OyBmaXggY29tcGlsZSBjb25zdCB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE4OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBmaXggbWVtb3J5IGxlYWs7IHByZXAgYSBmZXcgY29tbWVudHMgZm9yIGluZGVudAogICAKMjAwMi0wNy0wNiAxNDoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgIEZBUSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjIucHJlMSApCiAgIAoyMDAyLTA3LTA2IDE0OjEwICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgcHJvamVjdCB2ZXJzaW9uIHRvIDUuMC4yCiAgIAoyMDAyLTA3LTA2IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBzbm1wdHJhcGQgaXMgYWN0dWFsbHkgYnVpbHQgaW4gdGhlIGFwcHMgZGlyZWN0b3J5LCBub3QgdGhlIGFnZW50IGRpcmVjdG9yeS4KICAgCjIwMDItMDctMDUgMTE6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNsYXJpZnkgZGlyZWN0aW9ucyBmb3Igb2J0YWluaW5nIHBlcmwvU05NUCBtb2R1bGUuCiAgIAoyMDAyLTA3LTA1IDA1OjE4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIC4uLgogICAKMjAwMi0wNy0wNSAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eC9jbGllbnQuYywgbWliSUkvc3lzdGVtX21pYi5jOgoKICAgICAtIHN5c09iamVjdElEIHdhcyBiZWluZyByZXR1cm5lZCBtaW51cyBpdHMgbGFzdCBzdWItaWRlbnRpZmllciBiZWNhdXNlCiAgICAgICB0aGUgbGVuZ3RoIHZhcmlhYmxlIGhhZCBub3QgYmVlbiB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhhdCBpdAogICAgICAgaXMgbm93IGxvbmdlci4gIENvZGUgY2hhbmdlZCB0byB1c2Ugc2l6ZW9mKCkgaW5zdGVhZCwgc28gdGhpcyB3b24ndAogICAgICAgaGFwcGVuIGFnYWluLiAgUmVwb3J0ZWQgYnkgU3RpYW4gU29pbGFuZCAoYnVnICM1Nzc0MzkpLgogICAKMjAwMi0wNy0wNCAxMDoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wCiAgIAoyMDAyLTA3LTA0IDA3OjA2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb2RpZmllZCBoYW5kbGluZyBvZiBvcGFxdWUgcG9pbnRlciBmb3Igc3RyZWFtLWJhc2VkIHRyYW5zcG9ydHMgdG8KICAgICAgIGF2b2lkIGJvdGggbXVsdGlwbGUgZnJlZSgpIHByb2JsZW0gYW5kIHVubmVjZXNzYXJ5IGNvcHlpbmcuCiAgIAoyMDAyLTA3LTA0IDA2OjAwICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgKFY0LTItcGF0Y2hlcy5bNSw5XSksIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIE5ldHdvcmtEaXNrIHBhdGNoICM1NTQ1NTQKICAgCjIwMDItMDctMDQgMDU6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaAogICAoVjQtMi1wYXRjaGVzLls1LDFdKSwgaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmg6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBORlMgZmlsZXN5c3RlbSBwYXRjaCAjNTU0NTUzCiAgIChzaW1wbGlmaWVkIHRvIGF2b2lkIHRoZSByZS1pbmRlbnRhdGlvbiAtIHdoaWNoIG1ha2VzIGl0IGVhc2llciB0byBzZWUKICAgIHdoYXQncyBjaGFuZ2VkLiAgVGhlIHdob2xlIEhvc3RSZXMgZ3JvdXAgbmVlZHMgY2xlYW5pbmcgdXAgYW55d2F5ISkKICAgCjIwMDItMDctMDQgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEVuc3VyZSB0cmFuc3BvcnQgb3BhcXVlIGRhdGEgaXNuJ3QgbXVsdGlwbHkgYXNzaWduZWQKICAgKGFuZCBoZW5jZSBtdWx0aXBseSBmcmVlZCkgZm9yIHN0cmVhbS1iYXNlZCB0cmFuc3BvcnRzLgogICBEYXRhZ3JhbS1iYXNlZCB0cmFuc3BvcnRzIGRvbid0IHN1ZmZlciBmcm9tIHRoaXMgcHJvYmxlbS4KICAgQmFzZWQgb24gUGF0Y2ggNTczNzcxCiAgIAoyMDAyLTA3LTAzIDE2OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBiZSBwcmVjaXNlIGFib3V0IHdoYXQgZmlsZSBuZWVkcyB0byBiZSBjb25maWd1cmVkIGZvciBhY2Nlc3MgY29udHJvbAogICAKMjAwMi0wNy0wMyAxNDoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBmaXggbWlub3IgZ3JhbW1hciBlcnJvcnM7IGFkZCBkZXNjciBmb3IgbWliMmMuYXJyYXktdXNlcjsgYWRkIHNlY3Rpb24gaGVhZGVyCiAgIGZvciBnZW5lcmF0aW5nIGhlYWRlciBkZWZpbml0aW9uIGZpbGVzCiAgIAoyMDAyLTA3LTAzIDEzOjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IHR5cGVzLmgsIGxpYnJhcnkvc3lzdGVtLmg6CgogICBtb3ZlIGluY2x1ZGUgZm9yIGluX2FkZHJfdCB0byBuZXQtc25tcC90eXBlcy5oLCB3aGVyZSBpbl9hZGRyX3QgaXMgZGVmaW5lZAogICBmb3Igc3lzdGVtcyB3L291dCBuZXRpbmV0L2luLmgKICAgCjIwMDItMDctMDMgMTI6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIG1vcmUgdHdlYWtzIG5vdGljZWQgb24gdGhlIG1haWxpbmcgbGlzdAogICAKMjAwMi0wNy0wMyAwODoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgbWFrZSB0ZXN0IGNsZWFudXBzIHRlc3QucGwKICAgCjIwMDItMDctMDMgMDM6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jIChWNC0yLXBhdGNoZXMuMSksIHV0aWxfZnVuY3MuYwo6CgogICBTaHV0IHRoZSBhZ2VudCBkb3duIGNsZWFubHkgYmVmb3JlIHJlc3RhcnRpbmcuCiAgIFRoaXMgY2xvc2VzIGFueSBTTk1QL0FnZW50WCBwb3J0cyBhcyB3ZWxsLgogICAKMjAwMi0wNy0wMyAwMzoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgT0lEIHN1Yi1pZGVudGlmaWVycyBhcmUgdW5zaWduZWQsIHNvIHRyZWF0aW5nIHRoZW0gYXMgc2lnbmVkIGNhbgogICBnaXZlIHRoZSB3cm9uZyByZXN1bHRzIHdpdGggbGFyZ2UgdmFsdWVzLgogICAKMjAwMi0wNy0wMyAwMzoyMCAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uaCAoVjQtMi1wYXRjaGVzLjUpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBFbnN1cmUgaW5fYWRkcl90IGlzIGRlZmluZWQuCiAgIAoyMDAyLTA3LTAzIDAyOjM0ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFRlc3RpbmcgZm9yIDxzeXMvZGlza2xhYmVsLmg+IHJlcXVpcmVzIDxtYWNoaW5lL3R5cGVzLmg+IG9uIE5ldEJTRCAxLjUuCiAgIFJlcG9ydGVkIGJ5IEZlbGljaWEgTmVmZi4KICAgKEFwcGFyZW50bHkgZnJvbSB0aGUgTmV0QlNEIGJ1ZyBkYXRhYmFzZSAtIHdoeSB0aGV5IGRpZG4ndCB0ZWxsIHVzIGFib3V0CiAgIGl0IGlzIGEgbXlzdGVyeSB0byBtZS4uLi4pCiAgIAoyMDAyLTA3LTAzIDAyOjE5ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHN5c09iamVjdElEIGFzIHJlcG9ydGVkIGluIHRoZSBjb25maWd1cmUgLS1oZWxwIG91dHB1dC4KICAgKFRoZSBhY3R1YWwgdmFsdWUgdXNlZCBpcyBjb3JyZWN0IC0gaXQncyBqdXN0IHRoZSBoZWxwIG91dHB1dCB0aGF0J3Mgd3JvbmcpLgogICBTcG90dGVkIGJ5IFNhbmRoeWEgU2F0eWFuYXJheWFuLgogICAKMjAwMi0wNy0wMiAyMzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIHVwZGF0ZSB0ZXh0IGZvciB2YXJpb3VzIC5jb25mIGZpbGVzCiAgIAoyMDAyLTA3LTAyIDEzOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBmaXhlcyBub3RlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGJ5IFBhdHJpY2UgS2FkaW9uaWsgPGthZGlvbmlrQGVuc2VpcmIuZnI+CiAgIAoyMDAyLTA3LTAyIDAyOjM5ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBBZGQgdGhlICdzbm1wZCcgYW5kICdzbm1wdHJhcGQnIGJpbmFyeSBuYW1lcyB0byB0aGUgYXBwcm9wcmlhdGUgcGF0aHMKICAgd2hlbiBzZXR0aW5nIHVwIHRoZSB0ZXN0aW5nIGZyYW1ld29yay4KICAgCjIwMDItMDctMDEgMDc6NTMgIGR0czEyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy44KSwgYXNuMS5jOgoKICAgRW5jb2RlL0RlY29kZSBPSURzIG9mIHRoZSBmb3JtIDIuWCAoWCA+IDQwKSBjb3JyZWN0bHkuCiAgIAoyMDAyLTA3LTAxIDAyOjQwICBqYnBuCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBob3JyaWJsZSBmb3JtYXR0aW5nIGluIGhlbHAgZm9yIHRyYW5zcG9ydHMKICAgCjIwMDItMDctMDEgMDI6MjMgIGR0czEyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIFBpY2sgdXAgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBmb3IgdGhlIHJvb3Qgb2YgdGhlIFVDRCBleHRlbnNpYmxlIGFnZW50IHRhYmxlcwogICAoc28gdGhhdCB0aGUgRVhBTVBMRS5jb25mIGZpbGUgZ2V0cyBzZXQgdXAgd2l0aCB0aGUgY29ycmVjdCBudW1lcmljIE9JRHMpCiAgIAoyMDAyLTA2LTI4IDA2OjQ2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHJlbW92ZSB0cmFuc3BvcnQgc3BlY2lmaWVyIGFuZCBwb3J0IG51bWJlciBmcm9tIHN0cmluZ3MgcmV0dXJuZWQKICAgICAgIGZyb20gc25tcF90Y3BfZm10YWRkcigpIHdoaWNoIGJyZWFrIHRjcF93cmFwcGVycyAoYW5kIHBlcmhhcHMKICAgICAgIG90aGVyIHRoaW5ncykuCiAgIAoyMDAyLTA2LTI4IDA0OjQxICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBVcGRhdGUgZGVmYXVsdCBzdG9yZSByZXRyaWV2YWwgZnVuY3Rpb25zIHRvIHVzZSB0aGUgY29ycmVjdCBuYW1lLgogICAKICAgTm90ZSB0aGF0IHRoaXMgdGVzdCBzY3JpcHQgYXBwZWFycyB0byBpbmNsdWRlIHR3byBpbmZpbml0ZSBsb29wcy4KICAgSSdtIG5vdCBjbGVhciBob3cgdGhpcyBpcyBleHBlY3RlZCB0byBydW4gc3VjY2Vzc2Z1bGx5ID8KICAgCjIwMDItMDYtMjggMDQ6MzkgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBSZW1vdmUgcmVmZXJlbmNlIHRvIG5vbi1leGlzdGVudCBkZWd1Z2dpbmcgZnVuY3Rpb24uCiAgIAoyMDAyLTA2LTI4IDA0OjM3ICBkdHMxMgoKICAgKiBwZXJsL21hbmFnZXIvOiBNYWtlZmlsZS5QTCwgZGlzcGxheXRhYmxlLnBtLAogICBnZXRWYWx1ZXMucG0sIG1hbmFnZXIucG0sIHNubXB0b3NxbDoKCiAgIEJyaW5nIHBlcmwgJ21hbmFnZXInIG1vZHVsZSB1bmRlciB0aGUgTmV0U05NUCBiYW5uZXIKICAgKGJvdGggaW4gdGVybXMgb2YgbW9kdWxlIGdyb3VwIG5hbWUsIGFuZCByZWZlcmVuY2VzIHRvICd1Y2Qtc25tcCcpLgogICBSZW1vdmUgc29tZSBVQ0Qtc3BlY2lmaWMgc2V0dGluZ3MuCiAgIAogICBOb3RlIHRoYXQgc25tcHRvc3FsIHN0aWxsIHJlZmVycyBleHBsaWNpdGx5IHRvIFdlcycgVUNEIGVtYWlsIGFkZHJlc3MsCiAgIGFuZCBtYW5hZ2VyLnBtIHRvIFdlcycgVUNEIGZpbGVzdG9yZSBwYXRoLiAgVGhlIHJlbGV2YW50IGxpbmVzIGhhdmUKICAgYmVlbiBoaWdobGlnaHRlZCwgdG8gZW5jb3VyYWdlIGFueW9uZSB3aXNoaW5nIHRvIHVzZSB0aGlzIHRvIGNoYW5nZSB0aGVtLgogICAKMjAwMi0wNi0yOCAwNDoxMiAgZHRzMTIKCiAgICogcGVybC86IEFueURhdGFfU05NUC9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgbWFuYWdlci9NYWtlZmlsZS5QTDoKCiAgIFJlbW92ZSBjaGVja2luZyBmb3IgImludGVybmFsIiBwcmVyZXF1aXNpdGVzLCBzbyB0aGF0ICJwZXJsIE1ha2VmaWxlLlBMIgogICBhdCB0aGUgdG9wIGxldmVsIHdpbGwgd29yayAtIGV2ZW4gb24gYSBwcmlzdGluZSBzeXN0ZW0uCiAgIAogICBRbjoKICAgICBJcyBpdCBuZWNlc3NhcnkvZGVzaXJhYmxlIHRvIHNlcGFyYXRlIHRoZSBOZXRTTk1QIG1vZHVsZXMgdG8gdGhpcyBleHRlbnQ/CiAgIFdvdWxkIGl0IG5vdCBiZSBzaW1wbGVyIHRvIGhhdmUgYWxsIG9mIHRoZSBtYWluIC5wbS8ueHMgZmlsZXMgaW4gYSBzaW5nbGUKICAgTmV0U05NUCBkaXJlY3RvcnksIGFuZCBjb21waWxlL2luc3RhbGwgdGhlbSBhbGwgZnJvbSB0aGVyZT8KICAgCjIwMDItMDYtMjggMDE6NDUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2hlY2sgZm9yIC0td2l0aC1lbnRlcnByaXNlIChldCBhbCkgYmVpbmcgaW52b2tlZCB3aXRob3V0IGEgdmFsdWUsIGFuZCBib21iIG91dC4KICAgCjIwMDItMDYtMjcgMjE6NDMgIHJzdG9yeQoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIG5ldyBSRUFETUUgZGV0YWlubGluZyB0aGUgdXNlIG9mIFNGSU8gdG8gY2lyY3VtdmVudCB0aGUgMjU1IGZkIGxpbWl0IG9uCiAgIHNvbGFyaXMuCiAgIAoyMDAyLTA2LTI3IDExOjA5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICByZW1vdmUgY2hhbmdpbmcgYXJyYXk7IGFkZCBuZXRzbm1wX3RhYmxlX2FycmF5X3JlbW92ZV9yb3coKQogICAKMjAwMi0wNi0yNyAwNDoxNSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBTb21lIHZlcnNpb25zIG9mICdtYWtlZGVwZW5kJyAoZS5nLiBSZWRIYXQgNy4xKSwgY2FuJ3QgaGFuZGxlICItb3N1ZmZpeCIKICAgYXMgYSBzaW5nbGUgb3B0aW9uLiAgQWxsIHZlcnNpb25zIHNlZW0gaGFwcHkgd2l0aCAiLW8gc3VmZml4IiBzbyB1c2UgdGhhdC4KICAgCjIwMDItMDYtMjcgMDM6MzEgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgRU5WX1NFUEFSQVRPUl9DSEFSIHJhdGhlciB0aGFuIGhhcmR3aXJpbmcgJzonIGluIG5ldHNubXBfc2V0X21pYl9kaXJlY3RvcnkKICAgKGFzIHN1Z2dlc3RlZCBieSBSb2JlcnQpCiAgIAoyMDAyLTA2LTI3IDAzOjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHJlbW92ZSB0cmFuc3BvcnQgc3BlY2lmaWVyIGFuZCBwb3J0IG51bWJlciBmcm9tIHN0cmluZ3MgcmV0dXJuZWQKICAgICAgIGZyb20gc25tcF91ZHBfZm10YWRkcigpIHdoaWNoIGJyZWFrIHRjcF93cmFwcGVycyAoYW5kIHBlcmhhcHMKICAgICAgIG90aGVyIHRoaW5ncykuCiAgIAoyMDAyLTA2LTI3IDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNubXBfbWliLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9taWIuYwo6CgogICBWYWxpZGF0ZSBuZXcgc25tcEVuYWJsZUF1dGhlblRyYXBzIHZhbHVlIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgogICBTcG90dGVkICYgZml4ZWQgYnkgU2hhbnRoYSBLdW1hcmEKICAgCjIwMDItMDYtMjUgMTQ6MDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIGFkZCBBUFBUT1BTICgtQ3EpIGZvciBzdXBwcmVzc2luZyBvdXRwdXQgb2Ygc2V0IHJlc3VsdHMgb24gc3VjY2VzcwogICAKMjAwMi0wNi0yNSAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQXBwbHkgcGF0Y2ggIzU1OTg0OCB0byB1c2UgdGhlIC9wcm9jIHBzZXVkby1maWxlc3lzdGVtIHVuZGVyIExpbnV4CiAgIChyYXRoZXIgdGhhbiBwYXJzaW5nIHRoZSBvdXRwdXQgb2YgcHMpCiAgIAoyMDAyLTA2LTI1IDA4OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENoZWNrIGZvciAnYWl4NCcgKHdoaWNoIGlzIHRoZSB0b2tlbiBkZWZpbmVkIGluIHRoZSBzeXN0ZW0gaGVhZGVyIGZpbGUpCiAgIHJhdGhlciB0aGFuICdhaXgnLiAgIFNlZSBidWcgIzU2NTc2OQogICAKMjAwMi0wNi0yNSAwODozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgVHJlYXQgJzAnIGFzIGFuIGludmFsaWQgaW5kZXggZm9yIGEgInNpbXBsZSB0YWJsZSIuCiAgIAoyMDAyLTA2LTI1IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW06CgogICBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHN5c0NvbnRhY3QuMCBhbmQgc3lzTG9jYXRpb24uMAogICBjb25maWd1cmF0aW9uIHRva2Vucy4KICAgCjIwMDItMDYtMjUgMDY6NDAgIGpicG4KCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMy5ib3QsCiAgIGRlZmF1bHRfc3RvcmUuMy50b3A6CgogICAgIC0gYWRkIG5ldHNubXBfIHByZWZpeCB0byBkZWZhdWx0X3N0b3JlIGZ1bmN0aW9ucwogICAKICAgICAtIGNsZWFuIHVwIG1hbnBhZ2UgYSBiaXQKICAgCiAgICAgLSBmaXggYnJlYWthZ2UgaW4gZ2VuZXJhdGlvbiBvZiBkZWZhdWx0X3N0b3JlLjMuaCBkdWUgdG8gYXV0by1pbmRlbnRhdGlvbgogICAgICAgb2YgZGVmYXVsdF9zdG9yZS5oCiAgIAoyMDAyLTA2LTI1IDAyOjU1ICBqYnBuCgogICAqIEVYQU1QTEUuY29uZi5kZWYgKFY0LTItcGF0Y2hlcy4zKSwgRVhBTVBMRS5jb25mLmRlZjoKCiAgICAgLSBtZW50aW9uIHRoYXQgc2V0dGluZyBzeXNMb2NhdGlvbiBldCBhbC4gaW4gc25tcGQuY29uZiBtYWtlcyB0aGVtCiAgICAgICByZWFkLW9ubHkKICAgCiAgICAgLSBhbHNvIGNoYW5nZSBzeW50YXggb2YgYWxsIGV4YW1wbGUgY29tbWFuZCBsaW5lIHRvb2xzIHRvIHVzZSBuZXdlcgogICAgICAgLWMgQ09NTVVOSVRZIHN5bnRheCBub3QgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCjIwMDItMDYtMjQgMDg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgbWFrZSBidWZmZXIgc2l6ZSBpbmNyZWFzZSBub3RlIGEgZGVidWcgc3RhdGVtZW50IHJhdGhlciB0aGFuIGEgZ2VuZXJpYwogICBsb2cgc3RhdGVtZW50LgogICAKMjAwMi0wNi0yMyAxODo0MCAgZHJpZWh1aXMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBIYW5kbGUgQ09VTlRFUjY0IGluIF9fdHJhbnNsYXRlX2Fzbl90eXBlLgogICAKMjAwMi0wNi0yMyAxNjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgc2NyaXB0IGFuZCB0aGUgbGFuZ3VhZ2UgaXQgaG91c2VzLgogICAgIChtYW4gcGFnZSBhdXRvLWdlbmVyYXRlZCBmcm9tIHRoZSBjb250YWluZWQgcG9kIGRvY3VtZW50YXRpb24pCiAgIAoyMDAyLTA2LTIzIDE1OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgdXBkYXRlIHRvIHJlZmVyZW5jZSB0b3AgbGV2ZWwgTWFrZWZpbGUuUEwKICAgCjIwMDItMDYtMjMgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMgKFY0LTItcGF0Y2hlcy4xKSwgU05NUC54czoKCiAgIGZpeCByZXBvcnRlZCBieSBXaWxsZW0gRGVra2VyIGZvciBXaW5kb3dzLiAgQnVnICM1NDMxOTQgZml4ZWQuCiAgIAoyMDAyLTA2LTIyIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgdXBkYXRlIGZvciByZWNlbnQgbWV0aG9kb2xvZ2llcwogICAKMjAwMi0wNi0yMSAxNjowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaW5hbCAoaG9wZWZ1bGx5ISkgZml4IGZvciBwYXJzaW5nIGlwIGFkZHJlc3NlcyBmcm9tCiAgICJGY28uIEphdmllciBSaWRydWVqbyIgPGFjYnJpcGVmQHNpLmVodS5lcz4KICAgCjIwMDItMDYtMTkgMTQ6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3RvZG8uMzoKCiAgIHVwZGF0ZSBmcm9tIGRveHlnZW4KICAgCjIwMDItMDYtMTkgMTE6NTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuaW50X3dhdGNoLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mOgoKICAgc2NhbGFyIG1pYjJjIGNvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIGdlbmVyYXRpbmcgc2NhbGFyIGNvZGUuCiAgIAoyMDAyLTA2LTE5IDExOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBjbGVhbiB1cCBtdWx0aS1saW5lIGNvbW1lbmQgd2hpY2ggd2FzIG1lc3NlZCB1cCBieSBpbmRlbnQuCiAgIAoyMDAyLTA2LTE5IDExOjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIC0gYWRkIHN1cHBvcnQgZm9yIHByb21wdGluZyBvZiB1bmtub3duIHBhcmFtZXRlcnMgdG8gYWxpYXNlcy4KICAgLSBtaXNjIG90aGVyIGltcHJvdmVtZW50cyAobGlrZSAicmVoYXNoIikKICAgCjIwMDItMDYtMTkgMTE6MzggIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBmb3IgbmV3IGRlZmF1bHQgc3RvcmUgQVBJCiAgIAoyMDAyLTA2LTE5IDExOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLm1ha2VmaWxlcywKICAgTWFrZWZpbGUuc3Vicy5wbCwgbWFrZS1wZXJsLW1ha2VmaWxlcywgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIEFSR0dHR0dHCiAgIEkgbG92ZSBwZXJsLgogICBJIGhhdGUgcGVybCdzIG1ha2Ugc3lzdGVtLgogICBJIGhhdGUgdGhlIGZhY3QgdGhhdCBwZXJsIHNlZ2ZhdWx0cyBpZiBHZXRPcHRpb25zKCkgaXMgY2FsbGVkIG1vcmUKICAgdGhhbiBvbmNlLgogICBzaWdoLgogICBUaGlzIGhvcGVmdWxseSB3aWxsIGZpeCB0aGUgcGVybCBtb2R1bGUgYnVpbGQgcm91dGluZXMgc28gaXQgYXQgbGVhc3QKICAgd29ya3MgKGJ1dCBpdCdzIHN0aWxsIHVnbHkgYW5kIGNvdWxkIHVzZSBtb3JlIGNsZWFuaW5nKS4KICAgCjIwMDItMDYtMTkgMDc6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggaW5maW50ZSBsb29wIGFuZCBhZGQgZGVidWcgaW4gcmVtb3ZlX2RlbGVnYXRlZAogICAKMjAwMi0wNi0xOCAwNzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgTlVMTCB0aGUgcHJpdiBwb2ludGVyIG9uIHNlc3Npb24gZHVwbGljYXRpb24uICB0aGFua3MgdG8gcmV6aXRvegogICAKMjAwMi0wNi0xNyAwNjoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQ2hhbmdlZCBLYXRzdWhpc2EncyBlbWFpbCBhZGRyZXNzLCBvbiByZXF1ZXN0CiAgIAoyMDAyLTA2LTE0IDA3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQYXRjaCAjNTY5MDIxOiBmcm9tIExhdXJpIE15bGxhcmkKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiB0aGUgdGFibGUgaXRlcmF0b3Igc3VwcG9ydC4KICAgCjIwMDItMDYtMTQgMDc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzU2OTAyMCBmcm9tIHJleml0b3ogb24gSVJDIHRvIGZpeCBub24taW5pdGlhbGl6ZWQgdmFyaWFibGUKICAgCjIwMDItMDYtMTQgMDM6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYzoKCiAgIEFkZCAobnVsbCkgY29udGV4dCwgdG8gYnJpbmcgaW50byBsaW5lIHdpdGggdGhlIHY1IHJlZ2lzdHJ5IEFQSXMuCiAgIEZpeGVzIGJ1ZyA1Njg1ODAuCiAgIAoyMDAyLTA2LTE0IDAyOjI3ICBkdHMxMgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICBVc2UgbWF0Y2hpbmcgJyBhbmQgIiBxdW90ZXMgZm9yIEFJWCBjb25maWd1cmUgdGVzdC4KICAgTWVudGlvbmVkIGluIHBhc3NpbmcgaW4gYnVnIDU2NTc2OS4KICAgCjIwMDItMDYtMTMgMTQ6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L2NvbmYudDoKCiAgIGZpeCBkZWZhdWx0X3N0b3JlIHJvdXRpbmVzCiAgIAoyMDAyLTA2LTEyIDA2OjQzICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIEJyaW5nIFdpbmRvd3MgT0lEIHVzYWdlIGludG8gbGluZSB3aXRoIHRoZSBtYWluIGNvbmZpZyBmaWxlIHNldHRpbmdzLgogICAKMjAwMi0wNi0xMiAwNjozNyAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENvcnJlY3QgdGhlIGRlZmF1bHQgRW50ZXJwcmlzZSBPSUQgdXNlZCBpbiB0cmFwcywgdG8gYXZvaWQgYSByZXBlYXRlZCAwCiAgIHN1YmlkZW50aWZpZXIuICAoRml4ZXMgYnVnICM1NjY5MTcpCiAgIAoyMDAyLTA2LTEyIDA1OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEZWZpbmUgJ2xlbmd0aCcgYXMgYSBzaWduZWQgdmFyaWFibGUsIHNvIGl0IGNhbiBoYW5kbGUgYW4gZXJyb3IgdmFsdWUgb2YgLTEuCiAgIFJlcG9ydGVkIGJ5IEpvYWtpbSBBbHRoaW5pLgogICAKMjAwMi0wNi0xMiAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWFrZSBzdXJlIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXh0IGxpbmsgaXMgcHJvcGVybHkgc2F2ZWQsIGJlZm9yZSBmcmVlaW5nIG1lbW9yeS4KICAgUHJvYmxlbSBkaXNjb3ZlcmVkIGJ5IEh1Z28gQ2Fjb3RlLgogICAKMjAwMi0wNi0xMiAwMjoxNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFnZW50L2FnZW50X2luZGV4LmgsIGFnZW50L2FnZW50X3RyYXAuaAosIGFnZW50L2FsbF9oZWxwZXJzLmgsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvYnVsa190b19uZXh0LmgsIGFnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvbXVsdGlwbGV4ZXIuaCwgYWdlbnQvbnVsbC5oCiwgYWdlbnQvb2xkX2FwaS5oLCBhZ2VudC9yZWFkX29ubHkuaCwKICAgYWdlbnQvc2VyaWFsaXplLmgsIGFnZW50L3NldF9oZWxwZXIuaCwKICAgbGlicmFyeS9jbXVfY29tcGF0LmgsIGxpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFRDUERvbWFpbi5oLCBsaWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFVEUERvbWFpbi5oLCBsaWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgbGlicmFyeS9zbm1wX3NlY21vZC5oLCBsaWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIGxpYnJhcnkvdWNkX2NvbXBhdC5oOgoKICAgU3VwcGx5IG1pc3NpbmcgI2lmbmRlZi8jZGVmaW5lLyNlbmRpZiBhbmQgZXh0ZXJuICJDIiB7fSB3cmFwcGVycwogICAKMjAwMi0wNi0xMSAxNzo1NiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICByZW1vdmUgc3B1cmlvdXMgcHJpbnRmIHRvIHN0ZGVycgogICAKMjAwMi0wNi0xMSAxNDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGFkZCBleHRlcm4gIkMiOyBhZGQgdm9pZF9hcnJheSBzdHJ1Y3QKICAgCjIwMDItMDYtMTEgMTQ6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgdHNlYXJjaDsgdXNlIG5ldyBjb250YWluZXIgaW5zdGVhZAogICAKMjAwMi0wNi0xMSAxNDoxOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVzZSBjb250YWluZXIgZm9yIHNlY29uZGFyeSBpbmRleAogICAKMjAwMi0wNi0xMSAxNDoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgY29udGFpbmVyIHRvIGhlYWRlcnM7IGFkZCBjb250YWluZXIuYwogICAKMjAwMi0wNi0xMSAxNDoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBpbml0IGZ1bmN0aW9ucyBmb3IgYmFzaWMvc29ydGVkIGNvbnRhaW5lcgogICAKMjAwMi0wNi0xMSAxNDoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIG1vcmUgbWV0aG9kcyBmb3IgYmFzaWMgY29udGFpbmVyOyBhZGQgc29ydGVkICh3aWxsIHByb2JhYmx5IHJlbmFtZSkgY29uYXRpbmVyCiAgIAoyMDAyLTA2LTExIDEyOjIyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGluY2x1ZGVzOyBhZGQgZXh0ZXJuICJDIiBmb3IgX19jcGx1c3BsdXMKICAgCjIwMDItMDYtMTEgMTE6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogSU5TVEFMTCwgTWFrZWZpbGUuUEwsIFJFQURNRQosIG5ldHNoLCBzbm1wc2g6CgogICByZW5hbWVkIHNubXBzaCB0byBuZXRzaCwgYXMgSSBsaWtlIHRoZSBuYW1lIGJldHRlciBhbmQgaXQgYXBwZWFscyB0byBhCiAgIHdpZGVyIG51bWJlciBvZiBwZW9wbGUuCiAgIAoyMDAyLTA2LTEwIDA5OjUzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgd2hlbiBkZWxldGluZyBhbiBhc3AgcG9pbnRlciwgbWFrZSBzdXJlIGl0IGlzbid0IGluIHRoZSBkZWxlZ2F0ZWQgbGlzdAogICAKMjAwMi0wNi0xMCAwODo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggcGFyc2Vfb25lX29pZF9pbmRleCB0byBhbGxvdyB0b28gc2hvcnQgSVAgYWRkcmVzcyB3aGVuIGNvbXBsZXRlIGlzCiAgIHNwZWNpZmllZDsgYWRkIG5ldHNubXBfb2lkMmNoYXJzICYgbmV0c25tcF9vaWQyc3RyCiAgIAoyMDAyLTA2LTEwIDA3OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzCiwgdGVzdC5wbDoKCiAgIHVwZGF0ZSB0byBsYXRlc3QgZGVmYXVsdF9zdG9yZSBkZWZpbmVzCiAgIAoyMDAyLTA2LTEwIDA3OjM5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgcGVybC8uY3ZzaWdub3JlLCBwZXJsL01ha2VmaWxlLlBMOgoKICAgVG9wIGxldmVsIHBlcmwgTWFrZWZpbGUuUEwgdG8gaW5zdGFsbCB0aGUgd2hvbGUgYnVuY2ggdW5kZXJuZWF0aC4KICAgVGhpcyBzaG91bGQgbm93IGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgbG93ZXIgbGV2ZWwgbWFrZWZpbGVzIGZvcgogICBzaW1wbGljaXR5LgogICAKMjAwMi0wNi0xMCAwNzoyNyAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBBY2tub3dsZWRnZSBrbm93biBmYWlsaW5nIHRlc3RzLgogICBUaGlzIG1lc3NhZ2UgY2FuIGJlIHJlbW92ZWQgb25jZSB0aGUgcHJvYmxlbSBoYXMgYmVlbiBpc29sYXRlZCBhbmQgZml4ZWQuCiAgIAoyMDAyLTA2LTEwIDA3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc3VwcG9ydCBmb3IgaXBhZGRyZXNzIGJ1aWxkaW5nL3BhcnNpbmcgb2YgT0lEIGluZGV4ZXMuCiAgIAoyMDAyLTA2LTEwIDAyOjA3ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgTWVudGlvbiB0aGUgb3RoZXIgcGVybCBtb2R1bGVzLCBpbnRyb2R1Y2VkIHdpdGggdjUgKHBhcnRpY3VsYXJseSAnZGVmYXVsdF9zdG9yZScpCiAgIAoyMDAyLTA2LTEwIDAxOjI4ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgTmV3IGVudHJ5IGRlc2NyaWJpbmcgcG9zc2libGUgcHJvYmxlbXMgd2l0aCB0cmFwIGhhbmRsZXJzLgogICAKMjAwMi0wNi0wOCAyMTozOSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIGRlZmF1bHRfc3RvcmUgZml4ZXMKICAgCjIwMDItMDYtMDggMjA6NTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGJyZWFrIHBlcmwgbWFrZWZpbGUgY3JlYXRpb24gaW50byBzZXBlcmF0ZSBzdGVwOyBvbmx5IGNsZWFuIHBlcmwgZGlyZWN0b3J5CiAgIGlmIHRoZXJlIGlzIGEgbWFrZWZpbGUKICAgCjIwMDItMDYtMDggMjA6MTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBwZXJsdGVzdCB0YXJnZXQgdG8gbWFrZSB0ZXN0IGluIGFsbCBwZXJsIGRpcmVjdG9yaWVzCiAgIAoyMDAyLTA2LTA4IDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgZml4IHRvIGRlYWwgd2l0aCB1cGRhdGVkIFNRTDo6U3RhdGVtZW50IG1vZHVsZS4KICAgCjIwMDItMDYtMDggMDc6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgdG8gU1FMLVN0YXRlbWVudCByZXF1aXJlbWVudCBvZiAxLjAwNAogICAKMjAwMi0wNi0wOCAwNjo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgbWliIGluaXQgY29kZSBmcm9tIEMgc25tcF90cmFuc2xhdGVfb2JqIGNhbGwKICAgCjIwMDItMDYtMDggMDY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgaW5pdF9zbm1wIGluc2lkZSB0cmFuc2xhdGVPYmoKICAgCjIwMDItMDYtMDggMDY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGNoYW5nZSB2ZXJzaW9uIHRvIDAuMQogICAKMjAwMi0wNi0wOCAwNjo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4OgoKICAgQSBmZXcgY2xlYW51cHMgdG8gaWZjb25maWcgYW5kIG5ldHN0YXQgY29tbWFuZHMKICAgCjIwMDItMDYtMDggMDY6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIC0gYmVnaW5uaW5nIHN1cHBvcnQgZm9yIGltcG9ydC9leHBvcnQgb2YgZGF0YSAoY3VycmVudGx5IHRvL2Zyb20gQ1NWKS4KICAgLSBzdXBwb3J0IGZvciAiZGlmZiIgd2hpY2ggY29tcGFyZXMgb2xkIChwb3NzaWJseSBpbXBvcnRlZCBkYXRhKSB0byBjdXJyZW50LgogICAKMjAwMi0wNi0wOCAwNjozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgcmVxdWlyZWQgU05NUCBtb2R1bGUgdmVyc2lvbiBmcm9tIDQgdG8gNQogICAKMjAwMi0wNi0wOCAwNjozNCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQWRkIGEgdHV0b3JpYWwgcGxhY2UgaG9sZGVyIGNvbW1lbnQgT0lELgogICAKMjAwMi0wNi0wOCAwNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGttaWIgZm9yIG5ld2VyIHBlcmwgbW9kdWxlcy4KICAgCjIwMDItMDYtMDggMDY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgdHVybiBvZmYgZXh0cmEgYm9sZC91bmRlcmxpbmUgZm9ybWF0dGluZyBieSBkZWZhdWx0LgogICAKMjAwMi0wNi0wNyAxNTowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGdlbmVyaWMgY29udGFpbmVyIHN0cnVjdHVyZSBmb3Igc3RvcmluZyBkYXRhCiAgIAoyMDAyLTA2LTA3IDEzOjAxICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnhzOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wNi0wNyAxMDozNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgdG8ga2VlcCBpbiBsaW5lIHdpdGggY29uZmlndXJlLmluICh3aHk/IHNob3VsZG4ndAogICBjb25maWd1cmUgbm90IGJlIGluIENWUyBhbmQgYmUgYXV0b2dlbmVyYXRlZD8gT25lIG9mIHRoZXNlIGRheXMgSSdtIGdvaW5nCiAgIHRvIGhhdmUgdG8gbGVhcm4gYXV0b2NvbmYuLi4uKQogICAKMjAwMi0wNi0wNyAxMDozNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGFsd2F5cyBjaGVjayByZXR1cm4gc3RhdHVzIG9mIG1ha2Ugd2hlbiBpbnNpZGUgYSBsb29wLCBhbmQgZXhpdCBvbiBlcnJvcnMKICAgCjIwMDItMDYtMDcgMDg6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMyksCiAgIGludGVyZmFjZXMuYzoKCiAgIE9ubHkgbnVsbC10ZXJtaW5hdGUgdGhlIGludGVyZmFjZSBuYW1lIHdoaWxlIGl0J3MgYWN0dWFsbHkgYmVpbmcgY29waWVkLgogICBSZXN0b3JlIHRoZSBkYXRhIGxpbmUgYWZ0ZXJ3YXJkcywgc28gdGhlIGRlYnVnZ2luZyBvdXRwdXQgaXMgbWVhbmluZ2Z1bC4KICAgCjIwMDItMDYtMDcgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEZpeCBmb3IgaW5kZXhpbmcgZXJyb3IsIHRoYXQgY2F1c2VzIGEgY3Jhc2ggaWYgbW9yZSB0aGFuIDE2IHZhcmJpbmRzCiAgIGFyZSBhZGRlZCB0byB0aGUgY2FjaGUgaW4gb25lIGdvLiAgU3BvdHRlZCBieSBTaGFudGggS3VtYXJhCiAgIAoyMDAyLTA2LTA2IDAxOjEyICBkdHMxMgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUgKFY0LTItcGF0Y2hlcy5bNyw1XSksIGFjbG9jYWwubTQsCiAgIGNvbmZpZ3VyZToKCiAgIERvbid0IGRpZmZlcmVuY2lhdGUgYmV0d2VlbiBlbGYtIGFuZCBhLm91dC1iYXNlZCBOZXRCU0Qgc3lzdGVtcy4KICAgKFByb2JsZW0gaGlnaGxpZ2h0ZWQgYnkgRmVsaWNpYSBOZWZmKQogICAKMjAwMi0wNi0wNSAxODo1MCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBwdXQgZGVmaW5lcyBmb3Igc29ja2xlbl90IGFuZCBpbl9hZGRyX3QgaW4gbmV0LXNubXAvdHlwZXMuaCBpbnN0ZWFkIG9mIGhhdmluZwogICBjb25maWd1cmUgZ2VuZXJhdGUgdGhlbTsgY29uZmlndXJlIGluc3RlYWQgZ2VuZXJhdGVzIEhBVkVfU09DS0xFTl9UIGFuZAogICBIQVZFX0lOX0FERFJfVCBmb3Igc3lzdGVtcyB3aGljaCBkb24ndCBuZWVkIHRoZSBkZWZpbmVzOyB0aGlzIGlzIHByaW1hcmlseQogICBmb3IgdGhlIGJlbmVmaXQgb2YgdGhlIFdpbjMyIHBsYXRmb3JtLCB3aGljaCBkb2Vzbid0IGhhdmUgY29uZmlndXJlLgogICAKMjAwMi0wNi0wNSAwOToyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGRvbid0IGFkdmFuY2UgcmVxdWVzdCBwb2ludGVyIGluc2lkZSBmb3IgbG9vcCwgc2luY2UgZm9yIGxvb3AgZG9lcyBpdCBmb3IKICAgdXM7IG90aGVyd2lzZSBmb3IgbG9vcCBtYXkgZW5kIHVwIGRlcmVmZXJlbmNpbmcgTlVMTCBwb2ludGVyLgogICAKMjAwMi0wNi0wNSAwNjo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4OgoKICAgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gZHVwbGljYXRlIHZhcmlvdXMgdW5peCB1dGlsaXRpZXM6CiAgICAtIGN1cnJlbnRseTogbmV0c3RhdCwgcHMsIGRmLCBpZmNvbmZpZwogICAKMjAwMi0wNi0wNSAwNjo0MCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy9zY2xpOgoKICAgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gZHVwbGljYXRlIGZ1bmN0aW9uYWxpdHkgaW4gSnVlcmdlbidzCiAgIHNjbGkgY29tbWFuZC4KICAgCjIwMDItMDYtMDUgMDY6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIG5ldyBjb21tYW5kczoKICAgICBzb3VyY2UgZmlsZSAtLSBzb3VyY2VzIGFuIHJjIGZpbGUKICAgICB3YXRjaCBleHByZXNzaW9uIC0tIHJlcGVhdGVkbHkgcnVucyBhIGNvbW1hbmQgYW5kIGNvbG9yaXplcwogICAgICAgZGlmZmVyZW5jZXMgaW4gZGF0YQogICAgIGV2YWwgZXhwcmVzc2lvbiAtLSBldmFsdWF0ZXMgYW4gZXhwcmVzc2lvbiBkaXJlY3RseSBpbiBwZXJsCiAgICAgICAtIGJlZ2lubmluZ3Mgb2Ygb3ZlcmxvYWRzIGluIHBlcmwgc28gdGhhdCBjYWxsaW5nIHN5c0NvbnRhY3QoKQogICAgICAgICB3aWxsIHJldHVybiB0aGUgc3lzQ29udGFjdCB2YWx1ZS4gIHRhYmxlcyBub3QgcmV0dXJuZWQgeWV0LgogICBmaXhlczoKICAgICB0dXJucyBvZiBvcm5hbWVudGFsIHByb21wdCBzdXBwb3J0IChpY2spIGJ5IGRlZmF1bHQKICAgCjIwMDItMDYtMDUgMDQ6NDMgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMSAoVjQtMi1wYXRjaGVzLjgpLCBzbm1wY21kLjEuZGVmOgoKICAgQnJpZWYgbWVudGlvbiBvZiB0aGUgbmVlZCB0byBxdW90ZSBPSURzIGNvbnRhaW5pbmcgc3RyaW5nIGluZGV4ZXMsCiAgIHRvIHByb3RlY3QgdGhlIGRvdWJsZSBxdW90ZXMgZnJvbSB0aGUgc2hlbGwuCiAgIAoyMDAyLTA2LTA0IDEwOjM4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmb3IgYSBudWxsIHRyZWVjYWNoZSBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdDsgbm90ZWQgb24gdGhlIGNvZGVycwogICBsaXN0IGJ5IGpvYWtpbS5hbHRoaW5pQHJlZGRvLm5ldAogICAKMjAwMi0wNi0wNCAxMDozMyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZm9yIGFzcC0+cGR1ID09IE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQ7IG5vdGVkIG9uIHRoZSBjb2RlcnMKICAgbGlzdCBieSBqb2FraW0uYWx0aGluaUByZWRkby5uZXQuCiAgIAoyMDAyLTA2LTA0IDA1OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBzdXBwb3J0IGZvciBwcmludGYsIHNpbmdsZSBxdWVyeS9zZXRzIG9mIHNjYWxhcnMsIG11bHRpLWxpbmUgYWxpYXNlcy4KICAgCjIwMDItMDUtMzAgMTU6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZGVmYXVsdF9zdG9yZSBmaXhlcwogICAKMjAwMi0wNS0zMCAxNToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgbWFrZSBuZXcoKSBvcGVyYXRvciBhIGJpdCBzbWFydGVyCiAgIAoyMDAyLTA1LTI5IDE5OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfYWxhcm0uYzoKCiAgIHNldCB0aGUgc3RvcmFnZSBwb2ludGVyIHRvIE5VTEwsIGFzIHBvaW50ZWQgb3V0IGJ5IE1hcmsgSG95LgogICAKMjAwMi0wNS0yOSAwOToyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBBUElpZnkgTUlCRElSUyBzdXBwb3J0CiAgIAoyMDAyLTA1LTI5IDA3OjQzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgRXhwYW5kIG9uIHdoZW4gT3BlblNTTCBpcyBuZWNlc3NhcnksIGFuZCBob3cgdG8gY29tcGlsZSB1c2luZyBpdC4KICAgCjIwMDItMDUtMjkgMDY6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgU2V0IFJFVVNFQUREUiBzbyB0aGF0IHNwZWNpZnlpbmcgdGhlIHNhbWUgcG9ydCB0d2ljZSBkb2Vzbid0IGtpbGwgdGhlIGFnZW50LgogICAoU3VnZ2VzdGVkIGJ5IFJvYmVydCBIYXN0aW5ncykKICAgCjIwMDItMDUtMjkgMDI6NDEgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUpLCBGQVE6CgogICBSZWZlcmVuY2UgYm90aCB2ZXJzaW9ucyBvZiB0aGUgdHV0b3JpYWwgKHNpbmNlIHRoaXMgZG9jdW1lbnQgaXMgdXNlZAogICBmb3IgYnVpbGRpbmcgdGhlIG9uLWxpbmUgdmVyc2lvbiBvZiB0aGUgRkFRKQogICAKMjAwMi0wNS0yOSAwMjoxNiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNCksIEZBUToKCiAgIENsYXJpZnkgdGhhdCB0cmFwIGZpbHRlcmluZyBpcyBub3QgeWV0IG9wZXJhdGlvbmFsLgogICAKMjAwMi0wNS0yOCAxNDo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICByZW1vdmUgXk0gY2hhcnMKICAgCjIwMDItMDUtMjggMTQ6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBmaXggbG9naWMgaW4gY2FuX2RlbGV0ZTsgY29uc29saWRhdGUgdXNlIG9mIG5ldHNubXBfc2V0X21vZGVfcmVxdWVzdCBieSBzZXR0aW5nCiAgIHJjIGZvciB1c2UgYXQgZW5kIG9mIGxvb3A7IGRvbid0IHVzZSByZW1vdmVkIG1hY3JvcyBmb3Igcm93c3RhdHVzL3N0b3JhZ2V0eXBlLAogICB1c2luZyBuZXcgbmV0c25tcF9jaGVja192Yiogcm91dGluZXMgaW5zdGVhZDsgYWRkIGFzc2VydHMgZm9yIGVycm9yIGNhc2VzIHRoYXQKICAgc2hvdWxkIGJlIGNhdWdodCBieSBlYXJsaWVyIHJvdXRpbmVzCiAgIAoyMDAyLTA1LTI4IDE0OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIGNhbGxiYWNrcyBmb3Igcm93IChkZSlhY3RpdmF0aW9uCiAgIAoyMDAyLTA1LTI4IDA2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBQcm90ZWN0ICIjaW5jbHVkZSA8c2VhcmNoLmg+IiB3aXRoIHRoZSBIQVZFX1NFQVJDSF9IIHRva2VuLiAgKFN1Z2dlc3RlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTA1LTI4IDA2OjIwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBGaXggdGhlIGRlY2xhcmF0aW9uIG9mIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudC4gKFNwb3R0ZWQgYnkgSGFycmllKQogICAKMjAwMi0wNS0yNyAwMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIERvbid0IGhhcmR3aXJlIHN5c2xvZyBmYWNpbGl0eSB0byBMT0dfREFFTU9OLgogICBGaXggcHJvdmlkZWQgYnkgSm9ha2ltIEZhbGxzam8uCiAgIAoyMDAyLTA1LTI3IDAxOjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhcHBzL3NubXB0cmFwZC5jCiAgIChWNC0yLXBhdGNoZXMuWzIsOF0pLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgVHdlYWsgJ3VzbVVzZXInIGhlbHAgc3RyaW5nIHRvIGFjY3VyYXRlbHkgcmVmbGVjdCB3aGljaCBiaXRzIGFyZSBvcHRpb25hbC4KICAgUmVwb3J0ZWQgYnkgQWxpIENoYW5hdWkuCiAgIAoyMDAyLTA1LTI3IDAxOjIyICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmIChWNC0yLXBhdGNoZXMuNCksIHNubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgbGltaXQgb24gdGhlIG51bWJlciBvZiAiZmlsZSIgZGlyZWN0aXZlcy4KICAgCjIwMDItMDUtMjcgMDE6MTcgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGFuIGV4dHJhbmVvdXMgdHJhaWxpbmcgYmFja3NsYXNoLCB0aGF0IGNvbmZ1c2VzIHNvbWUgJ21ha2UncwogICAKMjAwMi0wNS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIFByb3BlciBjcmVhdGlvbiBvZiByZXR1cm5lZCBOZXRTTk1QOjpPSUQgb2JqZWN0LgogICAKMjAwMi0wNS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGluY3JlYXNlIHJlZmVyZW5jZSBjb3VudHMgb24gcmV0dXJuZWQgbWliIHJlZ2lzdHJhdGlvbiBvYmplY3RzIHNvCiAgIHRoZXkncmUgbm90IGF1dG8tY2xlYW5lZCBieSBwZXJsICh0aGUgYWdlbnQgbm93IGhhcyBhIGNvcHkgb2YgdGhlIHBvaW50ZXIpCiAgIAoyMDAyLTA1LTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG5ldyBkZWZhdWx0X3N0b3JlIG5ldHNubXBfIHByZWZpeGVzLgogICAKMjAwMi0wNS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IGZvciBzY2FsYXJzIChtaWIyYy5zY2FsYXIuY29uZiBmaWxlIGNvbWluZyBzaG9ydGx5KQogICAKMjAwMi0wNS0yNCAwOTo1MiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBIG5ldyBydWxlIGNhbGxlZCAiY29tbWVudGNoZWNrIiB0byBncmVwIGFsbCBzb3VyY2VzIGZvciAvLyBjb21tZW50cy4KICAgCjIwMDItMDUtMjQgMDg6MDkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBEZWNsYXJlICdyZWdpc3Rlcl9taWJfZGV0YWNoX25vZGUnIGJlZm9yZSBpdCdzIHVzZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgogICAoU3BvdHRlZCBieSBYaWFuZyBaaGFuZykKICAgCjIwMDItMDUtMjQgMDc6NDQgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZXh0cmFuZW91cyB0cmFpbGluZyBiYWNrc2xhc2guCiAgIChUaGF0ICptaWdodCogYmUgY29uZnVzaW5nIFN1bidzIG1ha2UsIGJ1dCBpcyB3cm9uZyBhbnl3YXkpCiAgIAoyMDAyLTA1LTIzIDAxOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jLCB2bXN0YXRfYnNkaTQuYywKICAgdm1zdGF0X2R5bml4LmMsIHZtc3RhdF9mcmVlYnNkMi5jLCB2bXN0YXRfaHB1eC5jLAogICB2bXN0YXRfbmV0YnNkMS5jLCB2bXN0YXRfc29sYXJpczIuYzoKCiAgIEJyaW5nIHRoZSB2YXJpb3VzICd2YXJfZXh0ZW5zaWJsZV92bXN0YXQnIGRlZmluaXRpb25zIGludG8gbGluZQogICB3aXRoIHRoZSBkZWNsYXJhdGlvbiBpbiB0aGUgaGVhZGVyIGZpbGUgLSBpLmUuIG5vbi1zdGF0aWMuCiAgIAoyMDAyLTA1LTIxIDE1OjI1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgLUkkKHNyY2RpcikvaW5jbHVkZSB0byBDUFAgcGF0aCBmb3IgcGVvcGxlIGJ1aWxkaW5nIG91dHNpZGUgb2Ygc3JjIHRyZWUKICAgCjIwMDItMDUtMjEgMDg6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBhcHBseSBwYXRjaCBbIDU1ODEyOSBdIE1ha2UgdGhlIHR1bm5lbCBtaWIgY29tcGlsZSBpbiA1LjAuMSwgc3VibWl0dGVkCiAgIGJ5IExvcmVuem8gQ29saXR0aSAobGNvbGl0dGkpLCB3aGljaCBhZGRzIG1pc3NpbmcgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDUtMjEgMDU6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBmaXggY29yZSBkdW1wIGluIC11IG9wdGlvbiBwcm9jZXNzaW5nLCBub3RlZCBieSBBbmRyZWFzIE1hdXMKICAgCjIwMDItMDUtMjEgMDU6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy45KSwgbWVtb3J5LmMKOgoKICAgTGF0Y2ggbWVtb3J5IHJlcG9ydGluZyBhdCAyXjMxLTEsIHJhdGhlciB0aGFuIDJeMzItMSBzaW5jZSB0aGVzZQogICBvYmplY3RzIGFyZSBkZWZpbmVkIGFzIChzaWduZWQpIEludGVnZXIzMi4KICAgT25seSBsYXRjaCBpZiB0aGUgdmFsdWUgaXMgKmdyZWF0ZXIqIHRoYW4gdGhpcyB0aHJlc2hvbGQsIG5vdCBsZXNzIQogICAKMjAwMi0wNS0yMSAwMToyMCAgamJwbgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi91Y2RfY29tcGF0LmMKOgoKICAgICAtIGFkZCBjb21wYXRpYmlsaXR5IGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMgZm9yIG5ld2x5LXJlbmFtZWQKICAgICAgIGRlZmF1bHQgc3RvcmUgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIChkZWZpbmVkIGlmZgogICAgICAgLS1lbmFibGUtdWNkLWNvbXBhdGliaWxpdHkgaXMgZ2l2ZW4gdG8gYXQgY29uZmlndXJhdGlvbiB0aW1lKQogICAKMjAwMi0wNS0yMSAwMDo1MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgICAgLSBtb3ZlIGRlZmluaXRpb24gb2YgbmV0c25tcF9kc19yZWFkX2NvbmZpZyB0eXBlIGZyb20gZGVmYXVsdF9zdG9yZS5oCiAgICAgICBpbnRvIGRlZmF1bHRfc3RvcmUuYyAoc2luY2UgaXQgaXMgbm90LCBhbmQgc2hvdWxkIG5vdCwgYmUgdXNlZAogICAgICAgZWxzZXdoZXJlKS4KICAgCjIwMDItMDUtMjAgMDM6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHJlZ2lzdGVycyB0b2tlbnMgZm9yIGlwdjYgcm8vcncgY29tbXVuaXR5LCBhbmQgbWFrZSBzdXJlIHRvIHBhcnNlIHRoZW0KICAgYXMgaXB2Niwgbm90IHY0LgogICAKMjAwMi0wNS0xOSAxMTozOCAgZHJpZWh1aXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBCdWdmaXggZm9yIEZyZWVCU0Qgc3VwcG9ydCBvZiB0aGUgZGlza0lPIG1pYi4gVGhlIG9yaWdpbmFsIGNvZGUgbmVnbGVjdGVkCiAgIHRoZSBkZXZpY2UgbnVtYmVyLCB3aGljaCBtYWRlIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4sIHNheSwgYWQwIGFuZCBhZDEKICAgaW1wb3NzaWJsZS4KICAgCjIwMDItMDUtMTcgMDk6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gc2xpZ2h0bHkgcmVkdWNlIG1lbW9yeSBjb3N0cyBvZiByZWdpc3RhcnRpb25zCiAgIAoyMDAyLTA1LTE2IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBkZWZhdWx0IHN0b3JlIHRhZyBuYW1lcy4KICAgZml4IGluaXRfc25tcCgpIGRlZmluaXRpb24gdG8gbWF0Y2ggbm9ybWFsIHBlcmwgbm9uLWFuc2kgbW9kZS4KICAgCjIwMDItMDUtMTYgMTY6MzkgIGRyaWVodWlzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE1ha2Ugc3VyZSAtLWNmbGFncyBzcGl0cyBvdXQgdGhlIHJlcXVpcmVkIGluY2x1ZGUgcGF0aCB3aGVuIGluc3RhbGxpbmcKICAgaW4gYSBub24tZGVmYXVsdCBsb2NhdGlvbiwgYXMgZG9jdW1lbnRlZCBpbiB0aGUgdXNhZ2UgaW5mbyBpbiB0aGUgc2NyaXB0LgogICAKMjAwMi0wNS0xNiAxNTozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtOgoKICAgYWRkIGEgbGluZSB0byB0aGUgc3lzU2VydmljZXMgcHJvbXB0IHNheWluZyBpZiB5b3UgZG9uJ3Qga25vdywgc2F5IG5vLgogICAKMjAwMi0wNS0xNiAxMjo1NSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS54czoKCiAgIHVwZGF0ZSB0byBuZXcgZGVmaW5lIGxpc3QKICAgCjIwMDItMDUtMTYgMTI6NTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgdGVzdCBzY3JpcHQKICAgCjIwMDItMDUtMTYgMTI6NDkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9nZW46CgogICBhdXRvZ2VuZXJhdGlvbiBzY3JpcHQKICAgCjIwMDItMDUtMTYgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCB0ZXN0LnBsOgoKICAgdXBkYXRlcyB0byBuZXcgLmggdG9rZW5zCiAgIAoyMDAyLTA1LTE2IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgLmggLT4gcGVybG1vZHVsZSByZWdlbmVyYXRpb24gc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDA3OjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBDb25zb2xpZGF0ZSB0aGUgdmFyaW91cyBPSUQgb3V0cHV0IGNvbmZpZ3VyYXRpb24gbWVjaGFuaXNtcyBpbnRvIG9uZS4KICAgVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIGNvbW1hbmQtbGluZSBvcHRpb25zICh5ZXQhKSAtIGp1c3QgdGhlIGludGVybmFscy4KICAgCjIwMDItMDUtMTUgMTc6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBmaXggZGVmYXVsdF9zdG9yZQogICAKMjAwMi0wNS0xNSAxNzoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCiAgIAoyMDAyLTA1LTE1IDE3OjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY3JlYXRlIGEgZGVmaW5lIGxvY2F0aW9uIGZvciBIQVZFX0dFVERFVlMKICAgCjIwMDItMDUtMTUgMTc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBkZXBlbmQgdXBkYXRlLCB3aGljaCBJIG1lYW50IHRvIGNoZWNrIGluIGJlZm9yZSB0aGUgNS4wLjEgcmVsZWFzZQogICAKMjAwMi0wNS0xNSAwNTo1MyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIGF1dG9fbmxpc3QuYywga2VybmVsLmMsCiAgIHNubXBfYWdlbnQuYywgc25tcF9wZXJsLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jCjoKCiAgICAgLSB1c2UgbmV3IG5ldHNubXBfZHNfYmxhaCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cwogICAKMjAwMi0wNS0xNSAwNTozOSAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgICAgLSB1c2UgbmV3IG5ldHNubXBfZHNfYmxhaCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cwogICAKMjAwMi0wNS0xNSAwNTozNyAgamJwbgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBtaWIuYywgcGFyc2UuYywKICAgcmVhZF9jb25maWcuYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcF9hbGFybS5jLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywKICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfc2VjbW9kLmMsIHNubXB1c20uYywKICAgc25tcHYzLmMsIHVjZF9jb21wYXQuYywgdmFjbS5jOgoKICAgICAtIHJlbmFtZSBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyBmcm9tIGRlZmF1bHRfc3RvcmUgZnJvbSBkc19ibGFoCiAgICAgICB0byBuZXRzbm1wX2RzX2JsYWgKICAgCjIwMDItMDUtMTUgMDI6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYyAoVjQtMi1wYXRjaGVzLjApLCBzbXV4LmM6CgogICAgIC0gaW5pdGlhbGlzZSBzbXV4X2xpc3Rlbl9zZCB0byBhdm9pZCBwcm9ibGVtcyBub3RlZCBpbiBidWcgIzU0NTQ0OAogICAgICAgKGEgYml0IHVucmVhc29uYWJsZSBpbiBteSB2aWV3IGJ1dCBpdCBjYW4ndCBkbyBhbnkgaGFybSkuCiAgIAoyMDAyLTA1LTE0IDEyOjQwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcHJlY2lzaW9uIGV4dHJhY3Rpb24gb2YgdHVtb3IgaW5zdGVhZCBvZiBhbXB1dGF0aW9uLCBvciwgaWZkZWYgc2VhcmNoLmgKICAgZnVuY3Rpb25zIHRoYXQgYXJlbid0IGVzc2VudGlhbCB0byB0YWJsZV9hcnJheSBvcGVyYXRpb24gYW5kIHdpbGwgcHJvYmFibHkKICAgdmFuaXNoIGluIHRoZSBuZWFyIGZ1dHVyZSBhbnl3YXkuCiAgIAoyMDAyLTA1LTEzIDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIGZpeCB0eXBlIGluIHNpemVvZgogICAKMjAwMi0wNS0xMyAxMzowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3Igc2VhcmNoLmggYmVmb3JlIGNvbXBpbGluZyB0aGUgdGFibGVfYXJyYXkgaGVscGVyCiAgIAoyMDAyLTA1LTEzIDA4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMKICAgCjIwMDItMDUtMTMgMDA6MzkgIGRyaWVodWlzCgogICAqIENoYW5nZUxvZzoKCiAgIE5vdGUgY2hhbmdlcyB0byBjb25maWd1cmUuaW4uCiAgIAoyMDAyLTA1LTEyIDEwOjMwICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBNYWtlIHN1cmUgdGhlIGNoZWNrcyBmb3Iga3ZtIHJlbGF0ZWQgc3R1ZmYgaGFwcGVucyB3aGVuIC1sa3ZtIGlzIGluIHNjb3BlLgogICBBZGQgZGV0ZWN0aW9uIG9mIHRoZSAtbGRldnN0YXQgcmVxdWlyZW1lbnQgd2hlbiBidWlsZGluZyB3aXRoIHVjZC1zbm1wL2Rpc2tpby4KICAgCjIwMDItMDUtMTAgMjM6MzMgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4xICkKICAgCjIwMDItMDUtMTAgMjM6MDUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGxpYnRvb2wgdmVyc2lvbiBpbmMKICAgCjIwMDItMDUtMTAgMjI6MzIgIGhhcmRha2VyCgogICAqIE5FV1MsIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjEKICAgCjIwMDItMDUtMTAgMTc6MDkgIGhhcmRha2VyCgogICAqIEZBUSwgTkVXUywgUkVBRE1FLCBSRUFETUUuYWdlbnR4OgoKICAgbWVudGlvbiB0dXRvcmlhbC01IGluc3RlYWQgb2YgdHV0b3JpYWwKICAgCjIwMDItMDUtMTAgMTc6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBNYWtlZmlsZS5QTCwgYWdlbnQucG0sCiAgIG5ldHNubXBfcmVxdWVzdF9pbmZvLnBtOgoKICAgcmVxdWVzdCBpbmZvIHBlcmwgY29kZSBtb3ZlZCB0byBzZXBhcmF0ZSBmaWxlLgogICAKMjAwMi0wNS0xMCAxNzowMSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIE9JRCBidWlsZGluZyBvdmVybG9hZHMuCiAgIAoyMDAyLTA1LTEwIDE2OjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBBZGQgcHJvcGVyIGxlbmd0aCBzZWdtZW50IHRvIHRoZSBidWlsZCB2aWV3IE9JRC4KICAgCjIwMDItMDUtMTAgMTQ6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBuZXcgZG9jIHBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnCiAgIAoyMDAyLTA1LTEwIDE0OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuMCksIHZhY21fdmFycy5jCjoKCiAgIGZpeCB2YWNtIHByb2JsZW0gb24gc2V0cyB3aXRoIE9JRHMgY29udGFpbmluZyBsYXJnZSBudW1iZXJzIGFzIG5vdGVkCiAgIGJ5IFZpbmF5IEdhb25rYXIgb24gdGhlIC1jb2RlcnMgbWFpbGluZyBsaXN0LgogICAKMjAwMi0wNS0xMCAxMzo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggY2FsbGluZyBvbiBtdWx0aXBsZSB0YWJsZXMKICAgCjIwMDItMDUtMTAgMDM6MjMgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNZXJnZSAiU1RSSU5HOiBIZXg6IiB0eXBlIHRva2VucyBpbnRvIGEgc2luZ2xlIHRva2VuICJIZXgtU1RSSU5HOiIKICAgCjIwMDItMDUtMTAgMDM6MTIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIFJlcG9ydCBub24tZXhpc3RlbnQgc3ViaW5zdGFuY2VzIGFzICdub1N1Y2hJbnN0YW5jZScgcmF0aGVyIHRoYW4gJ25vU3VjaE9iamVjdCcuCiAgICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4wLjk5IiBub3cgcmVzcG9uZHMgY29ycmVjdGx5LgogICAodGhvdWdoICJzbm1wZ2V0IC4uLi4gLjEuMy42LjEuNi4zLjEyLjEuNS4xIiBzdGlsbCByZXR1cm5zICdub1N1Y2hPYmplY3QnKQogICAKICAgQWxzbyBndWVzcyB0aGF0IGZhaWxlZCBTRVQgcmVxdWVzdHMgYXJlICdub0NyZWF0aW9uJyBlcnJvcnMgKHdoaWNoIGlzCiAgIHByb2JhYmx5IHRoZSBtb3N0IGxpa2VseSBvcHRpb24pLgogICAKMjAwMi0wNS0wOSAxNTo1NCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBleGl0IHByb3Blcmx5IHdoZW4gYSBzdWJkaXIgZmFpbHMgdG8gbWFrZSBwcm9wZXJseQogICAKMjAwMi0wNS0wOSAxNTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGNyZWF0ZSBhIHRva2VuIGZvciB0aGUgLU92IGVxdWl2ZWxhbnQKICAgCjIwMDItMDUtMDkgMDk6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMgKFY0LTItcGF0Y2hlcy41KSwKICAgbWVtb3J5X3NvbGFyaXMyLmM6CgogICBwYXRjaCBmcm9tIFRha3VtaSBLYWRvZGUgdG8gZml4IG1lbW9yeSB1c2FnZSBvbiBzb2xhcmlzCiAgIAoyMDAyLTA1LTA5IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIHVwZGF0ZXMgZnJvbSBtYWxsb2NlZCB2bXN0YXQgZml4ZXMgZnJvbSBwYXRjaGVzIGJyYW5jaAogICAKMjAwMi0wNS0wOCAxNjozNCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgbmV3IC0tY29tcGlsZS1zdWJhZ2VudCBmZWF0dXJlczoKICAgICAtLWNmbGFncwogICAgIC0tbm9ybQogICAgIC0tbGRmbGFncwogICAgIGluY2x1ZGVzIGhlYWRlciBmaWxlcwogICAgIG1pc2Mgb3RoZXIgYnVnIGZpeGVzLgogICAKMjAwMi0wNS0wOCAxMzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBtYWtlIHRoZSBzdWJhZ2VudCBwcm9wZXJseSBjYWxsIHRoZSByZXNlcnZlMiBzdGF0ZSBhZ2Fpbi4KICAgCjIwMDItMDUtMDggMTA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5jOgoKICAgcnVuIGluZGVudAogICAKMjAwMi0wNS0wOCAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICB1bSwgdXNlIDMwIHNlY29uZHMgbGlrZSBhZHZlcnRpc2VkLgogICAKMjAwMi0wNS0wOCAwODo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL25vdGlmaWNhdGlvbi5oLAogICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBkZWZpbmUgYSBiZXR0ZXIgbm90aWZpY2F0aW9uIGV4YW1wbGUgKG5vIHJlcXVlc3RzLiAganVzdCBhbGFybSAtPiBzZW5kKQogICAKMjAwMi0wNS0wNyAyMjo0NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICB1cGRhdGUgdG8gY3VycmVudCBpbmRlbnQgY29tbWFuZAogICAKMjAwMi0wNS0wNyAyMjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIG1vdmUgdGV4dCBpbiBjb21tZW50IGxlZnQgc2xpZ2h0ICh3YXMgdG9vIGxvbmcpLgogICAKMjAwMi0wNS0wNyAyMjo0MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBlbnVtIGZpeGVzLgogICAKMjAwMi0wNS0wNyAyMjo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMuY29sdW1uX2RlZmluZXMuY29uZiwKICAgbWliMmMuY29sdW1uX2VudW1zLmNvbmYsIG1pYjJjLmNvbmY6CgogICBOZXcgbWliMmMgZmlsZXMgZm9yIGdlbmVyYXRpbmcgaGVhZGVycyBmdWxsIG9mIGNvbHVtbiBudW1iZXIgZGVmaW5lcwogICBhbmQgZW51bSBkZWZpbmVzLgogICAKMjAwMi0wNS0wNyAyMjo0MCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSAtLWNvbXBpbGUtc3ViYWdlbnQgYWdlbnQgbGlicmFyeSByZW9yZGVyaW5nIHNvIGl0IGFjdHVhbGx5IHdvcmtzLgogICAtIC0tY29tcGlsZS1zdWJhZ2VudCBub3cgc3VwcG9ydHMgLm8gZmlsZXMgKHByZWNvbXBpbGVkIGNvZGUpLgogICAKMjAwMi0wNS0wNyAyMjozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlOgoKICAgaG1tLiAgbWlzc2VkIHNvbWUgY2hlY2tpbiBmaWxlcy4KICAgCjIwMDItMDUtMDcgMTE6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90LzogY29uZnRlc3QuY29uZiwgc3RhcnRhZ2VudC5wbCwgY29uZi50CjoKCiAgIHRlc3QgZm9yIGNvbmZpZ3VyYXRpb24gZmlsZS9kZWZhdWx0X3N0b3JlIHN1cHBvcnQKICAgCjIwMDItMDUtMDcgMTE6MTQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBtYWtlIGluaXRfc25tcCgpIHRha2UgYSBjaGFyICogYXJndW1lbnQgbGlrZSB0aGUgcmVhbCBBUEkKICAgCjIwMDItMDUtMDcgMTE6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIHR5cG9zLgogICAKMjAwMi0wNS0wNyAwOTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBmaXggdGhlIC1nIGZsYWcuCiAgIAoyMDAyLTA1LTA3IDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjYWxsIG5ldHNubXBfc2V0X3JlcXVlc3RfZXJyb3IgbGlrZSBhIGdvb2QgYm95LgogICAKMjAwMi0wNS0wNiAyMDo0MyAgcnN0b3J5CgogICAqIG1pYnMvTWFrZWZpbGUubWliOgoKICAgZml4IG1pc3NpbmcgJCBub3RlZCBieSBKb2huIE1pbGxzIG9uIHRoZSBjb2RlcnMgbGlzdAogICAKMjAwMi0wNS0wNiAxNjoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfYXBpLmMKICAgKFY0LTItcGF0Y2hlcy5bNCwyLDMsM10pLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVURQRG9tYWluLmMsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlIChjb3JyZWN0bHkgZG9uZSB0aGlzIHRpbWUpCiAgIAoyMDAyLTA1LTA2IDE1OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlCiAgIAoyMDAyLTA1LTA2IDE1OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4KICAgKFY0LTItcGF0Y2hlcy5bMyw3LDEsMl0pLCBhY2NvbmZpZy5oLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIHVzZSBzaXplX3Qgd2hlbiBzb2NrbGVuX3QgaXMgbm90IGF2YWlsYWJsZQogICAKMjAwMi0wNS0wNiAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfaHB1eC5jLCBtZW1vcnlfaHB1eC5oCiwgdm1zdGF0X2hwdXguYywgdm1zdGF0X2hwdXguaDoKCiAgIHJ1biBpbmRlbnQKICAgCjIwMDItMDUtMDYgMTU6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2hwdXguYywgbWVtb3J5X2hwdXguaAosIHZtc3RhdF9ocHV4LmMsIHZtc3RhdF9ocHV4Lmg6CgogICBQYXRjaGVzICM1NTE5MTQrIGZyb20gR2FyeSBFZHdhcmRzIHRvIHN1cHBvcnQgaHB1eDExIGZvciBtZW1vcnkgYW5kIHZtc3RhdCBtb2R1bGVzCiAgIAoyMDAyLTA1LTA2IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgYWRkIG5ldyBocHV4IG1vZHVsZXMKICAgCjIwMDItMDUtMDYgMTQ6MzQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG5ldyBjb250cmlidXRvcnMuCiAgIAoyMDAyLTA1LTA2IDE0OjMyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLCBtYW4vc25tcGNtZC4xLmRlZgosIHNubXBsaWIvbWliLmM6CgogICBQYXRjaCAjNTUxNDg5OiBGcm9tIEplZmZyZXkgV2F0c29uIHRvIGFkZCBhIC1RIG9wdGlvbiBmb3IgcXVpY2sgYnV0IHcvIGFuICc9JwogICAKMjAwMi0wNS0wNiAxNDoyOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgY2hhbmdlIC1EIGRvY3VtZW50YXRpb24gdG8gcmVmbGVjdCBjdXJyZW50IGNvZGUuCiAgIAoyMDAyLTA1LTA2IDE0OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBtaXNjIHNtYWxsIGJ1Z3MgYW5kIGVycm9yIG1lc3NhZ2Ugd29yZGluZyBmaXhlcy4KICAgCjIwMDItMDUtMDYgMDk6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMgKFY0LTItcGF0Y2hlcy45KSwgc211eC5jOgoKICAgYnVnICM1NDcwMTA6IGZpeCBzbXV4IGF1dGggYnVnIGFzIHJlcG9ydGVkIGFuZCBmaXhlZCBieSBTdGVmYW4gUmFkbWFuCiAgIAoyMDAyLTA1LTAxIDIzOjAxICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHdlYWtzIGZvciB1cGRhdGUgdG8gdGFibGVfYXJyYXkKICAgCjIwMDItMDUtMDEgMjM6MDAgIHJzdG9yeQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBvYmplY3RfbW9uaXRvciBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgY2hlY2tfdmFyYmluZCBzdHVmZgogICAKMjAwMi0wNS0wMSAyMjo0NSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jaGVja192YXJiaW5kLmgsCiAgIHNubXBsaWIvY2hlY2tfdmFyYmluZC5jOgoKICAgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciB2YWxpZGF0aW9uIHZhYnJpbmQgaW5mbwogICAKMjAwMi0wNS0wMSAyMjo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgZG8gSSByZWFsbHkgaGF2ZSB0byBkbyB0aGlzPyBzaWdoLiBPaywgcmVuYW1lIGRlYnVnIHRva2VuOyByZXZhbXAgbG9naWMgdG8KICAgbW9kaWZ5IHJvd3MgaW4gcGxhY2UsIGtlZXBpbmcgdW5kbyBpbmZvICh2cyBhbHdheXMgY2hhbmdpbmcgYSBjb3B5IG9mIGEgcm93CiAgIGFuZCBzd2FwcGluZyByb3dzIHdoZW4gc2V0IGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkpIHRvIGFsbG93IGV4dGVybmFsIGNvZGUKICAgdG8ga2VlcCBwb2ludGVycyB0aGF0IGRvbid0IGRpc2FwcGVhciBvbiB0aGVtOyBhZGQgYSBmZXcgY2FsbGJhY2tzLCBpbmNsdWRpbmcKICAgcm93X2NvbXBhcmUsIHNvIHRhYmxlX2FycmF5IGNhbiBtYWludGFpbiB0aGUgc2Vjb25kYXJ5IGluZGV4IHRyZWU7IGRvbid0IGNhbGwKICAgY2FuX2FjdGl2YXRlL2Nhbl9kZWxldGUgdW5sZXNzIHdlIGFyZSBhY3R1YWxseSB0cnlpbmcgdG8gYWN0aXZhdGUvZGVsZXRlIHJvdzsKICAgYWRkIHNrZWxldG9uIChpZmRlZidkIG91dCkgY29kZSBmb3IgY29vcGVyYXRpdmUgbm90aWZpY2F0aW9ucyBvZiByb3cgZXZlbnRzOwogICB1cGRhdGUgY2hhbmdpbmcgYXJyYXkgaW4gY29tbWl0ICYgdW5kbyBjYXNlcywgbm90IGp1c3QgY29tbWl0OyBjaGFuZ2UgdHlwZGVmcwogICBmb3IgYSBmZXcgY2FsbGJhY2sgcG9pbnRlcnM7IHVtbW1tLi4uIEkgKnRoaW5rKiB0aGF0J3MgaXQuLi4uOi0pCiAgIAoyMDAyLTA1LTAxIDE3OjMwICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE9JRC5wbSwgT0lELnhzLCB0ZXN0LnBsOgoKICAgQWRkIGluZGV4IGJ1aWxkaW5nIHRvIHRoZSArIG9wZXJhdG9yLgogICAKMjAwMi0wNS0wMSAwOTo1MiAgaGFyZGFrZXIKCiAgICogcGVybC86IE9JRC9PSUQucG0sIE9JRC9PSUQueHMsIGFnZW50L01ha2VmaWxlLlBMCiwgYWdlbnQvYWdlbnQucG0sIGFnZW50L2FnZW50LnhzLCBhZ2VudC90ZXN0LnBsCiwgYWdlbnQvdHlwZW1hcDoKCiAgIE1ha2UgZ2V0T0lEIGZvciByZXF1ZXN0cyByZXR1cm5lZCBhIE5ldFNOTVA6Ok9JRCBibGVzc2VkIHJlZmVyZW5jZS4KICAgSSdtIG5vdCBoYXBweSBhYm91dCBob3cgdGhpcyBpcyBkb25lLCBidXQgYWxsIGF0dGVtcHRzIHRvIGRvIGl0CiAgIGNvcnJlY3RseSBvbmx5IGxlZnQgbWUgaW4gY29uZnVzaW9uLgogICAKMjAwMi0wNS0wMSAwOTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCjoKCiAgIENoYW5nZSB0aGUgZG9tYWluIE9JRHMgdG8gcG9pbnQgdG8gdGhlIG5ldC1zbm1wIGRvbWFpbnMgY3JlYXRlZCBieSBEYXZlLgogICBUaGlzIGZpeGVzIGJ1ZyAjNTQ0MjQ1IGFzIHdlbGwuCiAgIAoyMDAyLTA1LTAxIDA5OjMwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgT0lEIHBlcmwgbW9kdWxlIHRvIHRoZSBsaXN0IG9mIG1vZHVsZXMuCiAgIAoyMDAyLTA1LTAxIDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLnR4dCAoVjQtMi1wYXRjaGVzLjApLCBVQ0QtU05NUC1NSUIudHh0OgoKICAgcmVtb3ZlIG9sZCAoYW5kIGNvbmZsaWN0aW5nIHdpdGggdHJhcHMpIHRyYW5zcG9ydCBkb21haW4gT0lEcwogICAKMjAwMi0wNS0wMSAwNjoxOSAgZHRzMTIKCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwKICAgc25tcGNtZC4xLmRlZiwgc25tcGRlbHRhLjEsIHNubXBnZXQuMS5kZWYsCiAgIHNubXBzZXQuMS5kZWYsIHNubXBzdGF0dXMuMS5kZWYsIHNubXB0ZXN0LjEuZGVmLAogICBzbm1wd2Fsay4xLmRlZjoKCiAgIEFkZCB0eXBlIHRhZ3MgIlNUUklORzogIiBhbmQgIklOVEVHRVI6ICIgdG8gZXhhbXBsZSBvdXRwdXQuCiAgIEFkZCBleHBsaWNpdCBzZXR0aW5nIG9mIHByb3RvY29sIHZlcnNpb24gdG8gZXhhbXBsZSBjb21tYW5kcy4KICAgCjIwMDItMDUtMDEgMDM6MzQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi86IGFndXRpbC5jLCBhZ3V0aWwuaCwKICAgYWd1dGlsX2FwaS5oLCBhbGFybS5jLCBhbGFybS5oLCBldmVudC5jLAogICBldmVudC5oLCBoaXN0b3J5LmMsIGhpc3RvcnkuaCwgcm93X2FwaS5oLAogICByb3dzLmMsIHJvd3MuaCwgc3RhdGlzdGljcy5jLCBzdGF0aXN0aWNzLmg6CgogICAgIC0gcmVtb3ZlIENWUyBMb2c6IGVudHJpZXMgd2hpY2ggYXJlIGNhdXNpbmcgcHJvYmxlbXMgc2luY2UgdGhleSBhcmUKICAgICAgIGVtYmVkZGVkIGluIGEgY29tbWVudCwgYnV0IHNvbWUgb2YgdGhlIGxvZyBlbnRyaWVzIGNvbnRhaW4gY29tbWVudAogICAgICAgZGVsaW1pdGVycy4KICAgCjIwMDItMDQtMzAgMjI6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgcmVtb3ZlIG5ldHNubXBfcHJvY2Vzc2luZ19zZXQsIGl0IGxpdmVzIGluIHNubXBfYWdlbnQuYwogICAKMjAwMi0wNC0zMCAyMjoxMyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLXRjLmgsIHNubXBsaWIvc25tcC10Yy5jCjoKCiAgIHJlbW92ZSB1bnVzZWQgcGFyYW1ldGVyOyBhbGxvdyBOT05FIGFzIG9sZCB2YWx1ZSBmb3Igc3RvcmFnZSB0eXBlIHRyYW5zdGlvbnMKICAgCjIwMDItMDQtMzAgMjI6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW1vdmUgb3Zlcmx5IGNvbXBsZXggbWFjcm8gc3R1ZmYgZm9yIHJvd3N0YXR1cy9zdG9yYWdldHlwZQogICAKMjAwMi0wNC0zMCAwOToyOCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRQosIHRlc3QucGw6CgogICAtIGFsbG93IGNvbnZlcnNpb25zIHRvIGFuIGFycmF5IChuZWVkcyB0byBiZSB0aWVkIHN0aWxsKS4KICAgLSBkb2N1bWVudGF0aW9uLgogICAKMjAwMi0wNC0zMCAwODoxNSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4zKSwgc25tcGQuYzoKCiAgICAgLSBmaXggYnVnICM1NDU3NzUsIHJlcG9ydGVkIGJ5IERhdmUgRGVuc29uLCB3aGVyZWJ5IHRoZSBQSUQgb2YgYW4KICAgICAgIGFscmVhZHktcnVubmluZyBzbm1wZCB3b3VsZCBiZSBvdmVyd3JpdHRlbiBieSBzdGFydGluZyBhIG5ldyBzbm1wZAogICAgICAgKHdoaWNoIHdvdWxkIHRoZW4gZXhpdCwgbGVhdmluZyB0aGUgb3JpZ2luYWwgc25tcGQgcnVubmluZyBhbmQgdGhlCiAgICAgICB3cm9uZyBQSUQgaW4gdGhlIGZpbGUpLiAgU29sdXRpb24gaXMgbm90IHRvIHdyaXRlIHRoZSBQSUQgdW50aWwgd2UKICAgICAgIGhhdmUgc3VjY2Vzc2Z1bGx5IG9wZW5lZCBhbGwgb3VyIHNvY2tldHMuCiAgIAoyMDAyLTA0LTMwIDA3OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IC5jdnNpZ25vcmUsIENoYW5nZXMsIE1BTklGRVNULAogICBNYWtlZmlsZS5QTCwgT0lELnBtLCBPSUQueHMsIFJFQURNRSwKICAgdGVzdC5wbCwgdHlwZW1hcDoKCiAgIE9JRCBwZXJsIG1vZHVsZSBzbyB5b3UgY2FuIGRvIHNpbXBsZSBPSUQgbWFuaXB1bGF0aW9ucyB3aXRoaW4gcGVybCBlYXNpbHk6CiAgICAgLSBFeGFtcGxlOiAgbmV3IE5ldFNOTVA6Ok9JRCgnaW50ZXJmYWNlcycpID4gbmV3IE5ldFNOTVA6Ok9JRCgnc3lzdGVtJykKICAgCjIwMDItMDQtMjkgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICByZWdleHAgZml4IGZvciB3aGl0ZSBzcGFjZSBjaGVja3MgaW4gaW5kZW50IGZvcm1hdHRlZCBjb2RlCiAgIAoyMDAyLTA0LTI5IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlb3JkZXIgcGVybCBtb2R1bGUgbmFtZXMgdG8gcmVmbGVjdCAobmV3KSBkZXBlbmRlbmNpZXMuCiAgIAoyMDAyLTA0LTI5IDA5OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIGZpeCBhIGZldyB3YXJuaW5ncyBvbiBmYWlsZWQgdGVzdHMgKGp1c3Qgc2NyZWVuIGNsZWFudXBzKQogICAKMjAwMi0wNC0yOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogTWFrZWZpbGUuUEwsIFNOTVAucG06CgogICBNYWtlIHRoZSBwZXJsIG1vZHVsZSByZXNwZWN0IHNubXAuY29uZiBzZXR0aW5ncyAoZmluYWxseSkuCiAgICAgLSBOb3cgcmVxdWlyZXMgYSBkZXBlbmRlbmN5IG9uIHRoZSBOZXRTTk1QOjpkZWZhdWx0X3N0b3JlIG1vZHVsZSB0aG91Z2guCiAgIAoyMDAyLTA0LTI3IDA4OjE5ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZG9uJ3QgcHJvY2VzcyBzZXQgcmVxdWVzdCB0aWxsIGRlbGVnYXRlZCByZXF1ZXN0cyBhcmUgY29tcGxldGUsIGFuZCBxdWV1ZQogICBhbnkgb3RoZXIgcmVjZWl2ZWQgcGFja2V0cyB1bnRpbCBhIHNldCBoYXMgY29tcGxldGVkIHByb2Nlc3NpbmcuCiAgIAoyMDAyLTA0LTI3IDA4OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgY2xlYW4gdXAgY29tbWVudHMgbXVuZ2VkIGJ5IGluZGVudAogICAKMjAwMi0wNC0yNyAwODowOCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oOgoKICAgYWRkIG1pc3NpbmcgcHJvdG90eXBlIHRvIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA0LTI3IDA4OjA3ICByc3RvcnkKCiAgICogYWdlbnQvOiBvYmplY3RfbW9uaXRvci5jLCBoZWxwZXJzL3RhYmxlLmMsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGlmZGVmIGd5bW5hc3RpY3MgdG8gbWFrZSBzdXJlIGFzc2VydHMgYXJlIG9ubHkgY29tcGlsZWQgaW4gb25seSBpZiBleHBsaWNpdHkKICAgcmVxdWVzdGVkCiAgIAoyMDAyLTA0LTI2IDIxOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBmaXggdW5iYWxhbmNlZCBlbmRpZiBvbiBsaW51eC4gaG9wZSBJIGRpZG4ndCBicmVhayBhbnl0aGluZyBlbHNlLgogICAKMjAwMi0wNC0yNiAxOToxNCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggdW51c2VkIHZhciB3YXJuaW5nIGZvciAhd2luZG93cwogICAKMjAwMi0wNC0yNiAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oOgoKICAgZml4IE9JRF9MRU5HVEggZGVmaW5pdGlvbnMKICAgCjIwMDItMDQtMjYgMTA6NTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBwZXJsL0FTTi9NYWtlZmlsZS5QTCwKICAgcGVybC9hZ2VudC9NYWtlZmlsZS5QTCwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlL01ha2VmaWxlLlBMCjoKCiAgIGZpeCAtLXdpdGgtcGVybC1tb2R1bGVzIGluIG1ha2VmaWxlcy4gIE1ha2UgZXZlcnl0aGluZyB1c2UKICAgbmV0LXNubXAtY29uZmlnLCAuLi4KICAgCjIwMDItMDQtMjYgMTA6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBSRUFETUUsIFNOTVAucG06CgogICAtIENsZWFudXAuCiAgIC0gTWFrZSBidWlsZGFibGUgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZS4KICAgLSBDaGFuZ2UgZG9jdW1lbnRhdGlvbiByZWZlcmVuY2VzIGZvciB1Y2Qtc25tcAogICAtIENoYW5nZSBjb250YWN0IGxvY2F0aW9uIHRvIG5ldC1zbm1wLXVzZXJzIChwZXIgSm9lJ3MgYWdyZWVtZW50KQogICAKMjAwMi0wNC0yNiAxMDoxOSAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlLzogTUFOSUZFU1QsIE1ha2VmaWxlLlBMLCBSRUFETUUKLCBkZWZhdWx0X3N0b3JlLnBtLCB0ZXN0LnBsOgoKICAgLSBjbGVhbnVwLgogICAtIFVzZSBuZXQtc25tcC1jb25maWcgdG8gZmluZCBsaWJyYXJ5LCBldGMuCiAgIC0gTWFrZSBidWlsZGFibGUgZnJvbSB3aXRoaW4gdGhlIHNvdXJjZS4KICAgLSBhIGZldyBtb3JlIHRlc3RzIGFkZGVkCiAgIC0gdXNlIGNvcnJlY3QgbGlicmFyaWVzCiAgIC0gYWRkIGRvY3VtZW50YXRpb24KICAgCjIwMDItMDQtMjYgMDQ6MjIgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRXh0cmFjdGluZyB0aGUgdmVyc2lvbiBmcm9tICdzbm1wbGliL3NubXBfdmVyc2lvbi5jJyBuZWVkcyB0byB0YWtlIGFjY291bnQKICAgb2YgYmxhbmsgc3BhY2UuICBSZXBvcnRlZCBieSBTdGVmYW4gUmFkbWFuIChCdWcgIzU0NzM3OSkKICAgCjIwMDItMDQtMjYgMDQ6MTEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy44KSwgbWVtb3J5LmMKOgoKICAgSGFuZGxlIG1lbW9yeSB2YWx1ZXMgPiAzMmJpdCAobGF0Y2hpbmcgYXQgMl4zMi0xKQogICBQYXRjaCAjNTQ4NjYzIGZyb20gUm9iIE15ZXJzCiAgIAoyMDAyLTA0LTI2IDAzOjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUmVtb3ZlIHJlZHVuZGFudCAnSW52YWxpZCBvcHRpb24nIG1lc3NhZ2UsIHNpbmNlIHRoaXMgaXMgdHlwaWNhbGx5CiAgIHJlcG9ydGVkIGJ5IGdldG9wdCgpLiAgKFN1Z2dlc3RlZCBieSBBbmRyZXcgUnVja2VyIEpvbmVzIC0gcGF0Y2ggIzU0ODc0OCApCiAgIAoyMDAyLTA0LTI2IDAzOjUxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQWRkICd2JyB0byB0aGUgbGlzdCBvZiB2YWxpZCBvcHRpb25zIChwYXRjaCAjNTQ4NzQ4KQogICBUaGFua3MgdG8gQW5kcmV3IFJ1Y2tlciBKb25lcy4KICAgCjIwMDItMDQtMjYgMDM6MzYgIGR0czEyCgogICAqIFJFQURNRS5ocHV4MTEsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaDoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIGltcHJvdmVkIEhQLVVYIDExIHBhdGNoCiAgICgjNTMwNzI0KSB0byB0aGUgbWFpbiB2NSBsaW5lLCBhcyB3ZWxsIGFzIHRoZSB2NC0yIGJyYW5jaC4KICAgVGhlIGNvZGUgbm93IGNvbXBpbGVzIGNsZWFubHkgdW5kZXIgSFAtVVggMTEgdXNpbmcgZ2NjLgogICAKMjAwMi0wNC0yNSAwNzoxOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFBhdGNoIGZyb20gQXhlbCBLaXR0ZW5iZXJnIHRvIGZpeCBwb3NzaWJsZSB2YXJpYWJsZSBuYW1lIGNsYXNoCiAgIAoyMDAyLTA0LTI0IDIyOjM5ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIGhhbmRsZSBjYWxsYmFja3Mgc2VuZGluZyBuZXcgbm90aWZpY2F0aW9ucyAod2hpbGUgcHJvY2Vzc2luZyBub3RpZmljYXRpb25zKQogICAKMjAwMi0wNC0yNCAyMTozNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2JqZWN0X21vbml0b3IuaDoKCiAgIGhlYWRlciBmb3IgbmV3IGZ1Y250aW9ucyBmb3IgbW9uaXRvcmluZyBvYmplY3RzCiAgIAoyMDAyLTA0LTI0IDIxOjM0ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIG5ldyBmdW5jdGlvbnMgZm9yIG1vbml0b3Jpbmcgb2JqZWN0IHZhbHVlcwogICAKMjAwMi0wNC0yNCAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAvcHJvYy9zdGF0IGNhbiBiZSBsYXJnZXIgdGhhbiAxMDI0CiAgIAoyMDAyLTA0LTI0IDA2OjE5ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgbWlzc2luZyAnbWQ1LmgnIGhlYWRlciBmaWxlLgogICAKMjAwMi0wNC0yMyAwOTo0MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvOiB0YWJsZS5jLCB0YWJsZV9hcnJheS5jOgoKICAgcmVtb3ZlIGxhc3Qgb2YgdGhlICN3YXJuaW5ncywgYWRkIHh4eC1ya3MgaWYgbmVjZXNzYXJ5CiAgIAoyMDAyLTA0LTIzIDA3OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgd2FybmluZ3MKICAgCjIwMDItMDQtMjIgMTk6MTEgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL1JFQURNRToKCiAgIHVwZGF0ZSBVUkwgdG8gdXNlIGZyZWVubXAuY29tIG1pcnJvciAodW5sZXNzIHNvbWVvbmUga25vd3MgYSBiZXR0ZXIgcGxhY2U/KQogICAKMjAwMi0wNC0yMiAxNDoxMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBhcHBseSBkb2N1bWVudGF0aW4gcGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmdlciA8QXhlbC5LaXR0ZW5iZXJnZXJAbWF4eGlvLmNvbT4KICAgCjIwMDItMDQtMjIgMTM6NTAgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW1vdmUgZXh0cmEgQGVuZEAgKHN1cmUgd291bGQgYmUgbmljZSBpZiBtaWIyYyB3b3VsZCBjaGVjayBmb3IgdW5iYWxhbmNlZAogICBAZW5kQHMpCiAgIAoyMDAyLTA0LTIyIDA5OjQ4ICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIHVwZGF0ZSBmdW5jdGlvbiBuYW1lcyB0byBtYXRjaCBoZWFkZXIgKG5vIG1peGVkIGNhc2UpCiAgIAoyMDAyLTA0LTIyIDA4OjExICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgZml4IGJ1ZyAjNTQ3MTEwOiBwcm9wZXJseSBzcGVsbCBkZWZpbmUKICAgCjIwMDItMDQtMjEgMTY6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIGFkZCBzdGF0aWMgdG8gYSByZXR1cm5lZCB2YXJpYWJsZQogICAKMjAwMi0wNC0yMSAxNjo0MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcwogICAKMjAwMi0wNC0yMSAxMTozNyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICA1LjAucHJlMyAtPiA1LjA7IChJJ20gc3VyZSB0aGVyZSBhcmUgb3RoZXIgcGxhY2VzIHRoaXMgbmVlZHMgdG8gY2hhbmdlLAogICBidXQgSSB3YW50ZWQgdG8gZ2V0IHRoZSBmaXJzdCBwb3N0IDUuMCBjaGVja2luLi4uOi0pCiAgIAoyMDAyLTA0LTIwIDAwOjM3ICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wICkKICAgCjIwMDItMDQtMjAgMDA6MzIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBjaGFuZ2UgdmVyc2lvbiB0byA1LjAKICAgCjIwMDItMDQtMjAgMDA6MjkgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIEFHRU5ULnR4dCwgQ09QWUlORywgQ2hhbmdlTG9nCiwgQ29kaW5nU3R5bGUsIEVYQU1QTEUuY29uZi5kZWYsIEZBUSwKICAgSU5TVEFMTCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzLAogICBNYWtlZmlsZS50b3AsIE5FV1MsIFBPUlRJTkcsIFJFQURNRSwKICAgUkVBRE1FLmFnZW50eCwgUkVBRE1FLmNtdSwgUkVBRE1FLmhwdXgxMSwKICAgUkVBRE1FLmtyYjUsIFJFQURNRS5zbm1wdjMsIFJFQURNRS50aHJlYWQsCiAgIFJFQURNRS53aW4zMiwgVE9ETywgYWNjb25maWcuaCwgYWNsb2NhbC5tNCwKICAgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbgosIGRvdGdkYmluaXQsIGRveHlnZW4uY29uZiwgaW5zdGFsbC1zaCwKICAgbHRtYWluLnNoLCBtYWtlZGVwZW5kLmluLCBtYWtlZmlsZWluZGVwZW5kLnBsLAogICBtYWtlbm9zeXNkZXBlbmQucGwsIG1ha2V0YXJnZXQsIG1raW5zdGFsbGRpcnMsCiAgIG5ldC1zbm1wLWNvbmZpZy5pbiwgcmVtb3ZlLWZpbGVzLCBzZWRzY3JpcHQuaW4sCiAgIHN0YW1wLWgsIHN0YW1wLWguaW4sIGFnZW50Ly5jdnNpZ25vcmUsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L2F1dG9ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgKLCBhZ2VudC9tMm0uaCwgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3BlcmwuYywKICAgYWdlbnQvc25tcF9wZXJsLnBsLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L2RsbW9kcy8uY3ZzaWdub3JlLAogICBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jCiwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYywKICAgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYwosIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuYywgYWdlbnQvaGVscGVycy9udWxsLmMKLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYwosIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvUkVBRE1FCiwgYWdlbnQvbWliZ3JvdXAvUkVBRE1FLnNtdXgsIGFnZW50L21pYmdyb3VwL1Jtb24uaAosIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4LmgKLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLCBhZ2VudC9taWJncm91cC9ob3N0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkuaAosIGFnZW50L21pYmdyb3VwL21pYmRlZnMuaCwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLmgsIGFnZW50L21pYmdyb3VwL3NtdXguaAosIGFnZW50L21pYmdyb3VwL3NtdXhfZ2F0ZWQuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLCBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0LmgsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmgsIGFnZW50L21pYmdyb3VwL3R1bm5lbC5oLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLmgKLCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnLCBhZ2VudC9taWJncm91cC9SbW9uL1JFQURNRQosIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsX2FwaS5oLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMKLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5oCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5oLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi90ZXN0X2FsYXJtLnNoLAogICBhZ2VudC9taWJncm91cC9SbW9uL3Rlc3RfaGlzdC5zaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL2V2ZW50LW1pYi5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kdW1teS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9NYWtlZmlsZS5kbG1vZCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNtZHMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY29uZiwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9SRUFETUUsCiAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvLmN2c2lnbm9yZSwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5oLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgKLCBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9zbXV4Ly5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC92ZXN0aW50ZXJuZXR0Ly5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZQosIGFwcHMvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLCBhcHBzL3NubXBidWxrZ2V0LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB0cmFwZF9sb2cuaCwKICAgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaAosIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgKLCBpbmNsdWRlL25ldC1zbm1wLy5jdnNpZ25vcmUsCiAgIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgKLCBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8uY3ZzaWdub3JlLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hdXRvX25saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L211bHRpcGxleGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NldF9oZWxwZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS8uY3ZzaWdub3JlLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvUkVBRE1FLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zeXN2LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC8uY3ZzaWdub3JlLCBpbmNsdWRlL3VjZC1zbm1wL1JFQURNRSwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9pbmRleC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF90cmFwLmgsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2F1dG9fbmxpc3QuaCwgaW5jbHVkZS91Y2Qtc25tcC9jYWxsYmFjay5oCiwgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvZHNfYWdlbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9oZWFkZXJfY29tcGxleC5oLCBpbmNsdWRlL3VjZC1zbm1wL2ludDY0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvdWNkLXNubXAvbWliLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvcmVhZF9jb25maWcuaCwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3ZhcnMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oLCBpbmNsdWRlL3VjZC1zbm1wL3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaCwgaW5jbHVkZS91Y2Qtc25tcC90b29scy5oCiwgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91dGlsX2Z1bmNzLmgsIGluY2x1ZGUvdWNkLXNubXAvdmFyX3N0cnVjdC5oCiwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgsIGxvY2FsLy5jdnNpZ25vcmUsCiAgIGxvY2FsL0ZBUTJIVE1MLCBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvUkVBRE1FLm1pYjJjCiwgbG9jYWwvY29udmVydGNvZGUsIGxvY2FsL2ZpeHByb2MsCiAgIGxvY2FsL2lwZi1tb2QucGwsIGxvY2FsL21pYjJjLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYsIGxvY2FsL21pYjJjLmNvbmYsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZgosIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYsIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3QKLCBsb2NhbC9wYXNzdGVzdCwgbG9jYWwvc25tcC11Y2Quc2gsCiAgIGxvY2FsL3NubXBjaGVjay5kZWYsIGxvY2FsL3NubXBjb25mLCBsb2NhbC90a21pYiwKICAgbG9jYWwvdHJhcHRvZW1haWwsIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvYXV0aG9wdHMKLCBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL2RlYnVnZ2luZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9taWJzLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcC1kYXRhL291dHB1dCwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXAtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2FjbCwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvYmFzaWNfc2V0dXAsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL2V4dGVuZGluZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvbW9uaXRvciwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvb3BlcmF0aW9uLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zbm1wY29uZi1jb25maWcsCiAgIGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC1kYXRhL3N5c3RlbSwKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvdHJhcHNpbmtzLAogICBsb2NhbC9zbm1wY29uZi5kaXIvc25tcHRyYXBkLWRhdGEvZm9ybWF0dGluZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3NubXBjb25mLWNvbmZpZywKICAgbG9jYWwvc25tcGNvbmYuZGlyL3NubXB0cmFwZC1kYXRhL3RyYXBoYW5kbGUsIG1hbi8uY3ZzaWdub3JlCiwgbWFuL01ha2VmaWxlLmluLCBtYW4vYWRkX21pYmRpci4zLAogICBtYW4vYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgbWFuL2RlZmF1bHRfc3RvcmUuMy50b3AsIG1hbi9nZXRfbW9kdWxlX25vZGUuMywKICAgbWFuL2luaXRfbWliLjMsIG1hbi9pbml0X21pYl9pbnRlcm5hbHMuMywKICAgbWFuL21pYjJjLjEuZGVmLCBtYW4vbWliX2FwaS4zLmRlZiwgbWFuL25ldHNubXBfYWdlbnQuMwosIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9kZWJ1Zy4zLAogICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiwgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zCiwgbWFuL25ldHNubXBfdG9kby4zLCBtYW4vcHJpbnRfZGVzY3JpcHRpb24uMywKICAgbWFuL3ByaW50X21pYi4zLCBtYW4vcHJpbnRfb2JqaWQuMywgbWFuL3ByaW50X3ZhbHVlLjMKLCBtYW4vcHJpbnRfdmFyaWFibGUuMywgbWFuL3JlYWRfYWxsX21pYnMuMywKICAgbWFuL3JlYWRfY29uZmlnLjMuZGVmLCBtYW4vcmVhZF9taWIuMywKICAgbWFuL3JlYWRfbW9kdWxlLjMsIG1hbi9yZWFkX21vZHVsZV9ub2RlLjMsCiAgIG1hbi9yZWFkX29iamlkLjMsIG1hbi9zaHV0ZG93bl9taWIuMywKICAgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmLAogICBtYW4vc25tcF9hbGFybS4zLmRlZiwgbWFuL3NubXBfYXBpLjMuZGVmLAogICBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMsIG1hbi9zbm1wX2Nsb3NlLjMsCiAgIG1hbi9zbm1wX2NvbmZpZy41LmRlZiwgbWFuL3NubXBfZXJyb3IuMywKICAgbWFuL3NubXBfZnJlZV9wZHUuMywgbWFuL3NubXBfb3Blbi4zLCBtYW4vc25tcF9wZXJyb3IuMwosIG1hbi9zbm1wX3JlYWQuMywgbWFuL3NubXBfc2VsZWN0X2luZm8uMywKICAgbWFuL3NubXBfc2VuZC4zLCBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZiwKICAgbWFuL3NubXBfc2Vzc19hc3luY19zZW5kLjMsIG1hbi9zbm1wX3Nlc3NfY2xvc2UuMywKICAgbWFuL3NubXBfc2Vzc19lcnJvci4zLCBtYW4vc25tcF9zZXNzX2luaXQuMywKICAgbWFuL3NubXBfc2Vzc19vcGVuLjMsIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjMsCiAgIG1hbi9zbm1wX3Nlc3NfcmVhZC4zLCBtYW4vc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsCiAgIG1hbi9zbm1wX3Nlc3Nfc2VuZC4zLCBtYW4vc25tcF9zZXNzX3Nlc3Npb24uMywKICAgbWFuL3NubXBfc2Vzc190aW1lb3V0LjMsIG1hbi9zbm1wX3NldF9taWJfd2FybmluZ3MuMywKICAgbWFuL3NubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjMsIG1hbi9zbm1wX3RpbWVvdXQuMywKICAgbWFuL3NubXBfdHJhcF9hcGkuMy5kZWYsIG1hbi9zbm1wYnVsa2dldC4xLmRlZiwKICAgbWFuL3NubXBidWxrd2Fsay4xLmRlZiwgbWFuL3NubXBjbWQuMS5kZWYsCiAgIG1hbi9zbm1wY29uZi4xLmRlZiwgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXBkZWx0YS4xLCBtYW4vc25tcGRmLjEKLCBtYW4vc25tcGdldC4xLmRlZiwgbWFuL3NubXBnZXRuZXh0LjEuZGVmLAogICBtYW4vc25tcGluZm9ybS4xLCBtYW4vc25tcG5ldHN0YXQuMSwgbWFuL3NubXBzZXQuMS5kZWYKLCBtYW4vc25tcHN0YXR1cy4xLmRlZiwgbWFuL3NubXB0YWJsZS4xLmRlZiwKICAgbWFuL3NubXB0ZXN0LjEuZGVmLCBtYW4vc25tcHRyYW5zbGF0ZS4xLmRlZiwKICAgbWFuL3NubXB0cmFwLjEuZGVmLCBtYW4vc25tcHRyYXBkLjguZGVmLAogICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsIG1hbi9zbm1wdXNtLjEuZGVmLAogICBtYW4vc25tcHdhbGsuMS5kZWYsIG1hbi92YXJpYWJsZXMuNS5kZWYsCiAgIG1pYnMvLmN2c2lnbm9yZSwgbWlicy9BR0VOVFgtTUlCLnR4dCwKICAgbWlicy9ESVNNQU4tRVZFTlQtTUlCLnR4dCwgbWlicy9ESVNNQU4tU0NIRURVTEUtTUlCLnR4dAosIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0LCBtaWJzL0V0aGVyTGlrZS1NSUIudHh0CiwgbWlicy9IQ05VTS1UQy50eHQsIG1pYnMvSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwKICAgbWlicy9IT1NULVJFU09VUkNFUy1UWVBFUy50eHQsCiAgIG1pYnMvSUFOQS1BRERSRVNTLUZBTUlMWS1OVU1CRVJTLU1JQi50eHQsCiAgIG1pYnMvSUFOQS1MQU5HVUFHRS1NSUIudHh0LCBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCwKICAgbWlicy9JRi1JTlZFUlRFRC1TVEFDSy1NSUIudHh0LCBtaWJzL0lGLU1JQi50eHQsCiAgIG1pYnMvSU5FVC1BRERSRVNTLU1JQi50eHQsIG1pYnMvSVAtRk9SV0FSRC1NSUIudHh0LAogICBtaWJzL0lQLU1JQi50eHQsIG1pYnMvSVBWNi1JQ01QLU1JQi50eHQsCiAgIG1pYnMvSVBWNi1NSUIudHh0LCBtaWJzL0lQVjYtVEMudHh0LAogICBtaWJzL0lQVjYtVENQLU1JQi50eHQsIG1pYnMvSVBWNi1VRFAtTUlCLnR4dCwKICAgbWlicy9MTS1TRU5TT1JTLU1JQi50eHQsIG1pYnMvTVRBLU1JQi50eHQsCiAgIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUubWliLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dAosIG1pYnMvTkVULVNOTVAtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1NT05JVE9SLU1JQi50eHQKLCBtaWJzL05FVC1TTk1QLVNZU1RFTS1NSUIudHh0LCBtaWJzL05FVC1TTk1QLVRDLnR4dAosIG1pYnMvTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0LAogICBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dCwgbWlicy9SRUFETUUubWlicywKICAgbWlicy9SRkMtMTIxNS50eHQsIG1pYnMvUkZDMTE1NS1TTUkudHh0LAogICBtaWJzL1JGQzEyMTMtTUlCLnR4dCwgbWlicy9STU9OLU1JQi50eHQsCiAgIG1pYnMvU01VWC1NSUIudHh0LCBtaWJzL1NOTVAtQ09NTVVOSVRZLU1JQi50eHQsCiAgIG1pYnMvU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgbWlicy9TTk1QLU1QRC1NSUIudHh0LAogICBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0CiwgbWlicy9TTk1QLVRBUkdFVC1NSUIudHh0LAogICBtaWJzL1NOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LAogICBtaWJzL1NOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwgbWlicy9TTk1QdjItQ09ORi50eHQsCiAgIG1pYnMvU05NUHYyLU1JQi50eHQsIG1pYnMvU05NUHYyLVNNSS50eHQsCiAgIG1pYnMvU05NUHYyLVRDLnR4dCwgbWlicy9TTk1QdjItVE0udHh0LAogICBtaWJzL1RDUC1NSUIudHh0LCBtaWJzL1RVTk5FTC1NSUIudHh0LAogICBtaWJzL1VDRC1ERU1PLU1JQi5pbmMsIG1pYnMvVUNELURFTU8tTUlCLnR4dCwKICAgbWlicy9VQ0QtRElTS0lPLU1JQi5pbmMsIG1pYnMvVUNELURJU0tJTy1NSUIudHh0LAogICBtaWJzL1VDRC1ETE1PRC1NSUIuaW5jLCBtaWJzL1VDRC1ETE1PRC1NSUIudHh0LAogICBtaWJzL1VDRC1JUEZJTFRFUi1NSUIuaW5jLCBtaWJzL1VDRC1JUEZJTFRFUi1NSUIudHh0LAogICBtaWJzL1VDRC1JUEZXQUNDLU1JQi5pbmMsIG1pYnMvVUNELUlQRldBQ0MtTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUItT0xELnR4dCwgbWlicy9VQ0QtU05NUC1NSUIuaW5jLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIG1pYnMvVURQLU1JQi50eHQsIG1pYnMvaWFuYWxpc3QKLCBtaWJzL21pYmZldGNoLCBtaWJzL3JmY2xpc3QsIG1pYnMvcmZjbWlicy5kaWZmCiwgbWlicy9zbWlzdHJpcCwgb3YvLmN2c2lnbm9yZSwgb3YvTWFrZWZpbGUuaW4KLCBvdi9SRUFETUUsIG92L1VDRC1Db21wdXRlciwgb3YvVUNELWZpZWxkcywKICAgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4sCiAgIG92L2JpdG1hcHMvVUNELjIwLm0sIG92L2JpdG1hcHMvVUNELjIwLnAsCiAgIG92L2JpdG1hcHMvVUNELjI2Lm0sIG92L2JpdG1hcHMvVUNELjI2LnAsCiAgIG92L2JpdG1hcHMvVUNELjMyLm0sIG92L2JpdG1hcHMvVUNELjMyLnAsCiAgIG92L2JpdG1hcHMvVUNELjM4Lm0sIG92L2JpdG1hcHMvVUNELjM4LnAsCiAgIG92L2JpdG1hcHMvVUNELjQ0Lm0sIG92L2JpdG1hcHMvVUNELjQ0LnAsCiAgIG92L2JpdG1hcHMvVUNELjUwLm0sIG92L2JpdG1hcHMvVUNELjUwLnAsCiAgIG92L2JpdG1hcHMvVUNELmZpZWxkcywgcGVybC8uY3ZzaWdub3JlLAogICBwZXJsL0FTTi8uY3ZzaWdub3JlLCBwZXJsL0FTTi9BU04ucG0sIHBlcmwvQVNOL0FTTi54cwosIHBlcmwvQVNOL0NoYW5nZXMsIHBlcmwvQVNOL01BTklGRVNULAogICBwZXJsL0FTTi9NYWtlZmlsZS5QTCwgcGVybC9BU04vdGVzdC5wbCwKICAgcGVybC9BbnlEYXRhX1NOTVAvLmN2c2lnbm9yZSwgcGVybC9BbnlEYXRhX1NOTVAvQ2hhbmdlcwosIHBlcmwvQW55RGF0YV9TTk1QL0RCRF9BbnlEYXRhLnBhdGNoLAogICBwZXJsL0FueURhdGFfU05NUC9Gb3JtYXQucG0sIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEwsCiAgIHBlcmwvQW55RGF0YV9TTk1QL01BTklGRVNULCBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTAosIHBlcmwvQW55RGF0YV9TTk1QL1JFQURNRSwgcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbQosIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaCwgcGVybC9TTk1QLy5jdnNpZ25vcmUsCiAgIHBlcmwvU05NUC9CVUcsIHBlcmwvU05NUC9NQU5JRkVTVCwKICAgcGVybC9TTk1QL01BTklGRVNULlNLSVAsIHBlcmwvU05NUC9NYWtlZmlsZS5QTCwKICAgcGVybC9TTk1QL1JFQURNRSwgcGVybC9TTk1QL1NOTVAucG0sIHBlcmwvU05NUC9TTk1QLnhzCiwgcGVybC9TTk1QL1RPRE8sIHBlcmwvU05NUC9wZXJsc25tcC5oLAogICBwZXJsL1NOTVAvdHlwZW1hcCwgcGVybC9TTk1QL2V4YW1wbGVzL2FzeW5jMS5wbCwKICAgcGVybC9TTk1QL2V4YW1wbGVzL2FzeW5jMi5wbCwgcGVybC9TTk1QL2V4YW1wbGVzL2J1bGt3YWxrLnBsCiwgcGVybC9TTk1QL2V4YW1wbGVzL2lwZm9yd2FyZC5wbCwKICAgcGVybC9TTk1QL2V4YW1wbGVzL21pYnRyZWUucGwsIHBlcmwvU05NUC9leGFtcGxlcy9taWJ3YWxrLnBsCiwgcGVybC9TTk1QL2V4YW1wbGVzL3BpbmdtaWIucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy90YWJsZXdhbGsucGwsCiAgIHBlcmwvU05NUC9leGFtcGxlcy90ZXN0bGVhay5wbCwKICAgcGVybC9TTk1QL2V4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbCwgcGVybC9TTk1QL2hpbnRzL2lyaXgucGwKLCBwZXJsL1NOTVAvaGludHMvc29sYXJpcy5wbCwgcGVybC9TTk1QL3QvLmN2c2lnbm9yZQosIHBlcmwvU05NUC90L1JFQURNRSwgcGVybC9TTk1QL3QvYXN5bmMudCwKICAgcGVybC9TTk1QL3QvYnVsa3dhbGsudCwgcGVybC9TTk1QL3QvZ2V0LnQsCiAgIHBlcmwvU05NUC90L2dldG5leHQudCwgcGVybC9TTk1QL3QvbWliLnQsCiAgIHBlcmwvU05NUC90L21pYi50eHQsIHBlcmwvU05NUC90L21pYmxvYWQudCwKICAgcGVybC9TTk1QL3Qvbm90aWZ5LnQsIHBlcmwvU05NUC90L3Nlc3Npb24udCwKICAgcGVybC9TTk1QL3Qvc2V0LnQsIHBlcmwvU05NUC90L3NubXB0ZXN0LmNvbmYsCiAgIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGwsIHBlcmwvYWdlbnQvLmN2c2lnbm9yZSwKICAgcGVybC9hZ2VudC9DaGFuZ2VzLCBwZXJsL2FnZW50L01BTklGRVNULAogICBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2FnZW50LnBtLAogICBwZXJsL2FnZW50L2FnZW50LnhzLCBwZXJsL2FnZW50L3Rlc3QucGwsCiAgIHBlcmwvYWdlbnQvdHlwZW1hcCwgcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmUKLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywKICAgcGVybC9kZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmUsIHBlcmwvZGVmYXVsdF9zdG9yZS9DaGFuZ2VzCiwgcGVybC9kZWZhdWx0X3N0b3JlL01BTklGRVNULAogICBwZXJsL2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIHBlcmwvZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnBtLAogICBwZXJsL2RlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cywKICAgcGVybC9kZWZhdWx0X3N0b3JlL3Rlc3QucGwsIHBlcmwvZGVmYXVsdF9zdG9yZS90eXBlbWFwLAogICBwZXJsL21hbmFnZXIvLmN2c2lnbm9yZSwgcGVybC9tYW5hZ2VyL0lOU1RBTEwsCiAgIHBlcmwvbWFuYWdlci9NYWtlZmlsZS5QTCwgcGVybC9tYW5hZ2VyL2Rpc3BsYXl0YWJsZS5wbSwKICAgcGVybC9tYW5hZ2VyL2dldFZhbHVlcy5wbSwgcGVybC9tYW5hZ2VyL2dyZWVuLmdpZiwKICAgcGVybC9tYW5hZ2VyL21hbmFnZXIucG0sIHBlcmwvbWFuYWdlci9yZWQuZ2lmLAogICBwZXJsL21hbmFnZXIvc2V0dXBhdXRoLCBwZXJsL21hbmFnZXIvc2V0dXBkYiwKICAgcGVybC9tYW5hZ2VyL3NldHVwdXNlciwgcGVybC9tYW5hZ2VyL3NubXB0b3NxbCwKICAgc25tcGxpYi8uY3ZzaWdub3JlLCBzbm1wbGliL01TRzAwMDAxLmJpbiwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL2RhdGFfbGlzdC5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywgc25tcGxpYi9nZXRvcHQuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYwosIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL29pZF9hcnJheS5jLAogICBzbm1wbGliL29pZF9zdGFzaC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXAtdGMuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcElQWERvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYwosIHNubXBsaWIvc25tcF9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9lbnVtLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBzbm1wbGliL3NubXBrc20uYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25wcmludGYuYwosIHNubXBsaWIvc3RydG9sLmMsIHNubXBsaWIvc3RydG91bC5jLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsCiAgIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwgc25tcGxpYi91Y2RfY29tcGF0LmMsCiAgIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3dpbnNlcnZpY2UuYywKICAgc25tcGxpYi93aW5zZXJ2aWNlLm1jLCBzbm1wbGliL3dpbnNlcnZpY2UucmMsCiAgIHRlc3RpbmcvLmN2c2lnbm9yZSwgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SRUFETUUKLCB0ZXN0aW5nL1JVTlRFU1RTLCB0ZXN0aW5nL1QuYywgdGVzdGluZy9UMi5zaAosIHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LAogICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMKLCB0ZXN0aW5nL2RhdGEua3VsLW1kNSwgdGVzdGluZy9kYXRhLmt1bC1zaGExLAogICB0ZXN0aW5nL2V0aW1ldGVzdC5jLCB0ZXN0aW5nL2V2YWxfb25lcHJvZ3JhbS5zaCwKICAgdGVzdGluZy9ldmFsX29uZXNjcmlwdC5zaCwgdGVzdGluZy9ldmFsX3N1aXRlLnNoLAogICB0ZXN0aW5nL2V2YWxfdGVzdGxpc3QsIHRlc3RpbmcvZXZhbF90b29scy5zaCwKICAgdGVzdGluZy9rZXltYW5hZ2V0ZXN0LmMsIHRlc3RpbmcvbWlzY3Rlc3QuYywKICAgdGVzdGluZy9zY2FwaXRlc3QuYywgdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaCwKICAgdGVzdGluZy90ZXN0X2t1bC5zaCwgdGVzdGluZy90ZXN0cy9TdjFjb25maWcsCiAgIHRlc3RpbmcvdGVzdHMvU3YyY2NvbmZpZywgdGVzdGluZy90ZXN0cy9TdjNERVNjb25maWcsCiAgIHRlc3RpbmcvdGVzdHMvU3YzU0hBREVTY29uZmlnLCB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZywKICAgdGVzdGluZy90ZXN0cy9TdjNjb25maWdzaGEsIHRlc3RpbmcvdGVzdHMvU3Zhbnljb25maWcsCiAgIHRlc3RpbmcvdGVzdHMvVDAwMXNubXB2MWdldCwgdGVzdGluZy90ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dAosIHRlc3RpbmcvdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAwNHNubXB2MW5vc3VjaCwgdGVzdGluZy90ZXN0cy9UMDE0c25tcHYyY2dldAosIHRlc3RpbmcvdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0LAogICB0ZXN0aW5nL3Rlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgdGVzdGluZy90ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAxOXNubXB2MmNub3N1Y2gsIHRlc3RpbmcvdGVzdHMvVDAyMHNubXB2M2dldAosIHRlc3RpbmcvdGVzdHMvVDAyMXNubXB2M2dldG5leHQsCiAgIHRlc3RpbmcvdGVzdHMvVDAyMnNubXB2M2dldE1ENSwKICAgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICB0ZXN0aW5nL3Rlc3RzL1QwMjRzbm1wdjNnZXRTSEExLAogICB0ZXN0aW5nL3Rlc3RzL1QwMjVzbm1wdjNnZXRTSEFERVMsCiAgIHRlc3RpbmcvdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsCiAgIHRlc3RpbmcvdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiwKICAgdGVzdGluZy90ZXN0cy9UMDQ5c25tcHYzaW5mb3JtLCB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwCiwgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sCiAgIHRlc3RpbmcvdGVzdHMvVDA1M2FnZW50djF0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAKLCB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNThhZ2VudGF1dGh0cmFwLCB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cAosIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCwKICAgdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0LCB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsCiwgdGVzdGluZy90ZXN0cy9UMTEzYWdlbnR4dHJhcCwKICAgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RpbmcvdGVzdHMvVDEyMXByb3h5c2V0LAogICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWwsIHdpbjMyLy5jdnNpZ25vcmUsCiAgIHdpbjMyL2NvbmZpZy5oLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kLAogICB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2RvdF9jb25mLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9taWJfbW9kdWxlX3NodXRkb3duLmgsIHdpbjMyL3NubXBzbV9pbml0LmgsCiAgIHdpbjMyL3dpbjMyLmRzdywgd2luMzIvd2luMzIub3B0LCB3aW4zMi9iaW4vLmN2c2lnbm9yZQosIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvLmN2c2lnbm9yZSwKICAgd2luMzIvZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwKICAgd2luMzIvbGliLy5jdnNpZ25vcmUsIHdpbjMyL2xpYmFnZW50Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwCiwgd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwKICAgd2luMzIvbGlic25tcC8uY3ZzaWdub3JlLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLAogICB3aW4zMi9saWJzbm1wX2RsbC8uY3ZzaWdub3JlLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvbGlidWNkbWlicy8uY3ZzaWdub3JlLCB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmCiwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgsCiAgIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIHdpbjMyL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzLmgsCiAgIHdpbjMyL25ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgd2luMzIvc25tcGJ1bGtnZXQvLmN2c2lnbm9yZSwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICB3aW4zMi9zbm1wYnVsa3dhbGsvLmN2c2lnbm9yZSwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHdpbjMyL3NubXBkLy5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AsIHdpbjMyL3NubXBkZWx0YS8uY3ZzaWdub3JlCiwgd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHdpbjMyL3NubXBkZi8uY3ZzaWdub3JlCiwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AsIHdpbjMyL3NubXBnZXQvLmN2c2lnbm9yZQosIHdpbjMyL3NubXBnZXQvc25tcGdldC5kc3AsCiAgIHdpbjMyL3NubXBnZXRuZXh0Ly5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcG5ldHN0YXQvLmN2c2lnbm9yZSwKICAgd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCB3aW4zMi9zbm1wc2V0Ly5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc3RhdHVzLy5jdnNpZ25vcmUKLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICB3aW4zMi9zbm1wdGFibGUvLmN2c2lnbm9yZSwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AKLCB3aW4zMi9zbm1wdGVzdC8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AKLCB3aW4zMi9zbm1wdHJhbnNsYXRlLy5jdnNpZ25vcmUsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFwLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgd2luMzIvc25tcHRyYXBkLy5jdnNpZ25vcmUsIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiwgd2luMzIvc25tcHVzbS8uY3ZzaWdub3JlLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwCiwgd2luMzIvc25tcHZhY20vLmN2c2lnbm9yZSwgd2luMzIvc25tcHZhY20vc25tcHZhY20uZHNwCiwgd2luMzIvc25tcHdhbGsvLmN2c2lnbm9yZSwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwCjoKCiAgIGN2cyBmaWxlIHZlcnNpb24gbnVtYmVyIGNoYW5nZQogICAKMjAwMi0wNC0yMCAwMDoyMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgY2hhbmdlbG9nCiAgIAoyMDAyLTA0LTIwIDAwOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYXV0b19ubGlzdC5jLAogICBhZ2VudC9hdXRvbmxpc3QuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L2tlcm5lbC5oCiwgYWdlbnQvbTJtLmgsIGFnZW50L21pYl9tb2R1bGVzLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9wZXJsLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oCiwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL1Jtb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4LmgsIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0LmgsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oLCBhZ2VudC9taWJncm91cC9taWJJSS5oCiwgYWdlbnQvbWliZ3JvdXAvbWliZGVmcy5oLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgKLCBhZ2VudC9taWJncm91cC9zbXV4X2dhdGVkLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2M21pYnMuaCwgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmgKLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vYWd1dGlsX2FwaS5oLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMKLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5oCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL1Jtb24vaGlzdG9yeS5oLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd19hcGkuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuaAosIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9ldmVudC1taWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGF0YV9zZXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kZWxheWVkX2luc3RhbmNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaAosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zZXRTZXJpYWxOby5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oCiwgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYwosIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgKLCBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaAosIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5oLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuaCwgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgKLCBhcHBzL3NubXBidWxrZ2V0LmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCwgYXBwcy9zbm1wdXNtLmMsIGFwcHMvc25tcHZhY20uYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgsCiAgIGFwcHMvc25tcG5ldHN0YXQvbmV0c3RhdC5oLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaAosIGluY2x1ZGUvbmV0LXNubXAvY29uZmlnX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmgsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9wZHVfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3Nlc3Npb25fYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLCBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3ZhcmJpbmRfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vY3lnd2luLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2Q0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2dlbmVyaWMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2xpbnV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbmV0YnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL29wZW5ic2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdW5vcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zdnI1LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaCwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NtdV9jb21wYXQuYywgc25tcGxpYi9kYXRhX2xpc3QuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvZ2V0b3B0LmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9vaWRfYXJyYXkuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9lbnVtLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9zZWNtb2QuYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jLAogICBzbm1wbGliL3NubXBrc20uYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25wcmludGYuYywgc25tcGxpYi9zdHJ0b2wuYwosIHNubXBsaWIvc3RydG91bC5jLCBzbm1wbGliL3N5c3RlbS5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaCwKICAgc25tcGxpYi91Y2RfY29tcGF0LmMsIHNubXBsaWIvdmFjbS5jLAogICBzbm1wbGliL3dpbnNlcnZpY2UuYywgdGVzdGluZy9ULmMsIHRlc3RpbmcvZXRpbWV0ZXN0LmMKLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9taXNjdGVzdC5jLAogICB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgV2hpdGUgc3BhY2UsIG9oIGdsb3Jpb3VzIHdoaXRlIHNwYWNlLgogICBIb3cgZ3JlYXQgb3VyIHRob3VnaD8KICAgVGhlIGNvZGUgaXMgZmluZS4KICAgV2UgYWdyZWUgb24gZnVuY3Rpb25hbGl0eSBlYXNpbHkuCiAgIFdoYXQgcmVhbGx5IHRyb3VibGVzIHVzPwogICBTb21ldGhpbmcgd2UgY2FuJ3Qgc2VlLgogICBTb21ldGhpbmcgYmV0d2VlbiB0aGUgY29kZS4KICAgV2UgYm93IGRvd24gdG8geW91ciBtYWduaWZpY2VuY2UsCiAgIEZvciB5b3UgYXJlIGV2ZXJ5d2hlcmUsCiAgIEJldHdlZW4gZXZlcnl0aGluZy4KICAgUHJldHR5IG5vdGhpbmduZXNzIHlvdSBhcmUuCiAgIAoyMDAyLTA0LTIwIDAwOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHR1cm4gb24gdWNkIGNvbXBhdCBieSBkZWZhdWx0LgogICAKMjAwMi0wNC0yMCAwMDowMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGxhc3QgdXBkYXRlcwogICAKMjAwMi0wNC0xOSAyMzozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuaDoKCiAgIHJlbW92ZSB0ZXN0ZGVsYXllZAogICAKMjAwMi0wNC0xOSAyMzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzLzogLmN2c2lnbm9yZSwgLmN2c2lnbm9yZToKCiAgIGN2cyBpZ25vcmUgZmlsZQogICAKMjAwMi0wNC0xOSAyMzoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBkb24ndCBkaWUgaWYgcGVybCBkb2Vzbid0IGluaXQuCiAgIAoyMDAyLTA0LTE5IDIzOjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFJFQURNRSwgU05NUC5wbToKCiAgIGNoYW5nZSB3YXJuaW5nLgogICAKMjAwMi0wNC0xOSAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZG91YmxlIGNoZWNrIHRoYXQgbXVsdGlwbGUgaW5zZXJ0cyBpbnRvIHRoZSBkZWxlZ2F0ZWQgY2hhaW4gZG9uJ3QKICAgaGFwcGVuIChyZWFkOiB0aGV5IHNob3VsZG4ndCBhbnl3YXksIGJ1dC4uLi4uKS4KICAgCjIwMDItMDQtMTkgMjI6MjkgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgdHlwZWRlZiB1cGRhdGUKICAgCjIwMDItMDQtMTkgMjI6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBGaXggdGhlIGNhbGxiYWNrIGJ1aWxkIGhvb2sgdG8gdHVybiBvZmYgdGhlIGV4cGVjdCByZXNwb25zZSBmbGFnIHdoZW4KICAgbm90IGFwcHJvcHJpYXRlLgogICAKMjAwMi0wNC0xOSAxOTowOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaDoKCiAgIHNwZWxsaW5nIG1pc3RlYWs7IHJlbW92ZSBjYXBpdGFsIGxldHRlcnMgaW4gZnVuY3Rpb24gbmFtZXMKICAgCjIwMDItMDQtMTkgMTk6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICB1cGRhdGUgZm9yIGZ1bmN0aW9uIG5hbWUgY2hhbmdlZCBpbiBvaWRfYXJyYXkuaAogICAKMjAwMi0wNC0xOSAxODoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9wZXJsLmM6CgogICBtYWtlIHRoZSBwZXJsSW5pdEZpbGUgYW5kIGRpc2FibGVQZXJsIHRva2VucyByZWdpc3RlciBhcyBwcmVtaWIgc3VjaAogICB0aGF0IHdoZW4gcGFzc2VkIGFzIGEgLS1GTEFHIGl0J2xsIGFjdHVhbGx5IGRvIHRoZSByaWdodCB0aGluZyBhbmQKICAgZGlzYWJsZSB0aGUgbGF0ZXIgInBlcmwiIHRva2VuIGhhbmRsZXJzLgogICAKMjAwMi0wNC0xOSAxNzoyOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwgbWFuL25ldHNubXBfYWdlbnQuMwosIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBtYW4vbmV0c25tcF9kZWJ1Zy4zLAogICBtYW4vbmV0c25tcF9leGFtcGxlX3NjYWxhcl9pbnQuMywgbWFuL25ldHNubXBfaGFuZGxlci4zCiwgbWFuL25ldHNubXBfaW5zdGFuY2UuMywKICAgbWFuL25ldHNubXBfbWliX2hhbmRsZXJfbWV0aG9kcy4zLCBtYW4vbmV0c25tcF9tdWx0aXBsZXhlci4zCiwgbWFuL25ldHNubXBfb2xkX2FwaS4zLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMywKICAgbWFuL25ldHNubXBfc2VyaWFsaXplLjMsIG1hbi9uZXRzbm1wX3RhYmxlLjMsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMsIG1hbi9uZXRzbm1wX3RhYmxlX2RhdGEuMywKICAgbWFuL25ldHNubXBfdGFibGVfZGF0YXNldC4zLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zCiwgbWFuL25ldHNubXBfdG9kby4zOgoKICAgZG9jdW1lbnRhdGlvbi4gIENhbid0IGdldCBlbm91Z2guCiAgICAgLSBtYWtlIGRvY3Mgbm93IGluc3RhbGxzIG1hbiBwYWdlcyBpbnRvIHRoZSBtYW4gZGlyLCB3aGljaCBhcmUgdGhlbiBpbnN0YWxsZWQuCiAgIAoyMDAyLTA0LTE5IDE3OjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCwgVDEyMXByb3h5c2V0OgoKICAgQ29ycmVjdCBmb3IgbmV3IFNUUklORyBwcmVmaXguCiAgIAoyMDAyLTA0LTE5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGQgS2F0c3VoaXNhIEFCRQogICAKMjAwMi0wNC0xOSAxNzowMyAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ueHMsIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54czoKCiAgIGZpeCBoZWFkZXIgZmlsZXMgZm9yIG5ldyBwYXRocy4KICAgCjIwMDItMDQtMTkgMTc6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgQXBwbHkgcGF0Y2ggIzUzMjU1NTogaXB2NiBjb20yc2VjIHN1cHBvcnQsIHRoYW5rcyB0byBLYXRzdWhpc2EgQUJFLgogICAKMjAwMi0wNC0xOSAxNjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGZpeCBzeXNVcFRpbWUgKGFuZCByZWxhdGVkIGZ1bmN0aW9ucykgdG8gaGFuZGxlIG11Y2ggbGFyZ2VyIHVwVGltZQogICB2YWx1ZXMgKGllLCBmaXggc2lnbmVkIGludGVnZXIgd3JhcHBpbmcpLgogICAKMjAwMi0wNC0xOSAxMTozNyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBlbWJlZGRlZCBwZXJsIHN1cHBvcnQuCiAgIAoyMDAyLTA0LTE5IDExOjM0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9zbm1wX3BlcmwuYywgYWdlbnQvc25tcF9wZXJsLnBsLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmgsIHBlcmwvYWdlbnQvTWFrZWZpbGUuUEwKOgoKICAgQWRkIHNvbWUgbmV3IHNubXBkLmNvbmYgdG9rZW5zIGZvciBjb250cm9sbGluZyBwZXJsIGJldHRlci4KICAgRml4IGVtYmVkZGVkIHBlcmwgc3VwcG9ydCBzbyBpdCBhY3R1YWxseSB3b3Jrcy4KICAgCjIwMDItMDQtMTkgMTE6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLlBMLAogICBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzOgoKICAgQWRkZWQgbWlzc2luZyBhZ2VudCBkZWZhdWx0X3N0b3JlIHN0dWZmLiAgKHRoZXkgZXhpc3RlZCBvbiBteSBtYWNoaW5lLAogICBJIGRvbid0IGtub3cgd2h5IGV2ZXJ5b25lIGVsc2Ugd2FzIGhhdmluZyBwcm9ibGVtcykKICAgCjIwMDItMDQtMTkgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGluZ3MgdGhhdCBzaG91bGQgbmV2ZXIgZXZlciBoYXBwZW4KICAgCjIwMDItMDQtMTkgMDM6MTAgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgPFNpZ2g+IEEgbGl0dGxlIGxlYXJuaW5nIGlzIGEgZGFuZ2Vyb3VzIHRoaW5nLgogICBBcHBseSB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggZnJvbSBBeGVsIC0gc29ycnkuCiAgIAoyMDAyLTA0LTE5IDAxOjQ5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiwgZG94eWdlbi5jb25mOgoKICAgSGFuZGxlIGdlbmVyYXRpbmcgZG9jdW1lbmF0aW9uIHdoZW4gc3JjZGlyICE9IGNvbmZpZ2RpcgogICAoUGF0Y2ggc3VwcGxpZWQgYnkgQXhlbCBLaXR0ZW5iZXJnZXIpCiAgIAoyMDAyLTA0LTE4IDE3OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUFhEb21haW4uYzoKCiAgIGZpeCBzbm1wSVBYRG9tYWluIChhZ2FpbikKICAgCjIwMDItMDQtMTggMTc6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgUGF0Y2ggZnJvbSBWaXNoYWwgVmVybWE6IG9ubHkgb3BlbiBzdWJhZ2VudCBjb25uZWN0aW9ucyBvbmNlIGF0IHN0YXJ0dXAKICAgCjIwMDItMDQtMTggMTc6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBQYXRjaCBmcm9tIFZpc2hhbCBWZXJtYTogZm9yIGRvd24gc3ViYWdlbnQgY2FzZXMsIG1hcmsgcmVnaXN0cmF0aW9ucyBhcyBkZXRhY2hlZAogICAKMjAwMi0wNC0xOCAxNzoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZGVmaW5lIGEgbWF4aW11bSBwYWNrZXQgc2l6ZSB3ZSBjYW4gYWNjZXB0IHRvIHByb3RlY3QgY2VydGFpbiBlcnJvcgogICBjb25kaXRpb25zICgtMSBhZnRlciBjb252ZXJzaW9uIGlzIG5vdyB0b28gbGFyZ2UpLgogICAKMjAwMi0wNC0xOCAxNjoyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIGNoYW5nZSB0aGUgZW50ZXJwcmlzZSBPSURzIGluIHRoZSBwcm9wZXIgcGxhY2UgKG5ldC1zbm1wLWNvbmZpZy5oLmluCiAgIGlzIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZSkuCiAgIAoyMDAyLTA0LTE4IDEzOjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbmV0LXNubXAtY29uZmlnLmluCjoKCiAgIC0gQWRkIHR3byBuZXcgb3B0aW9ucyB0byBuZXQtc25tcC1jb25maWcgYXMgcmVxdWVzdGVkIG9uIHRoZSBJUkMgY2hhbm5lbC4KICAgICAtLWNvbmZpZ3VyZS1vcHRpb25zCiAgICAgLS1zbm1wZC1tb2R1bGUtbGlzdAogICAKMjAwMi0wNC0xOCAxMTo0MyAgcnN0b3J5CgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGFkZCBtaXNzaW5nIGNvbW1hCiAgIAoyMDAyLTA0LTE4IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHN1cHBsaWVkIGVudGVycHJpc2UgT0lEcyBjb3JyZWN0bHkKICAgKGFuZCB1c2UgYSBtb3JlIG1lYW5pbmdmdWwgb3V0cHV0IG1lc3NhZ2UpCiAgIAogICBTaGFtZSB0aGVzZSBzZXR0aW5ncyBhcmVuJ3QgY2FjaGVkIGZvciBsYXRlciByZS11c2UuLi4uCiAgIAoyMDAyLTA0LTE4IDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgTm90aWZ5IG9uIGFnZW50IHJlY29uZmlndXJhdGlvbi4KICAgCjIwMDItMDQtMTggMDc6MTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgdGhlIE5ldC1TTk1QIG5vdGlmaWNhdGlvbnMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIHVjZGF2aXMgb25lcy4KICAgCjIwMDItMDQtMTggMDc6MDggIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEZpeCB0aGUgdGFibGUtb2YtY29udGVudHMgc2VxdWVuY2UgZm9yIHRoZSBuc01vZHVsZVRhYmxlLCBhZGQgbm90aWZpY2F0aW9uCiAgIGRlZmluaXRpb25zIGZvciB0aGUgYWdlbnQsIGFuZCBkZWZpbmUgZ3JvdXBzIGZvciBldmVyeXRoaW5nLgogICAKMjAwMi0wNC0xOCAwMjo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJyaW5nIGludGVnZXIgYW5kIHN0cmluZyBvdXRwdXQgZm9ybWF0cyBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgdHlwZXMKICAgYnkgcHJpbnRpbmcgYSB0eXBlIHRva2VuIGJlZm9yZSB0aGUgdmFsdWUgKHVubGVzcyBzdXByZXNzZWQgYnkgJ3F1aWNrIHByaW50JykKICAgVGhhbmtzIHRvIEVyaWsgZm9yIHRoZSBwYXRjaAogICAKMjAwMi0wNC0xOCAwMTo0NiAgZHRzMTIKCiAgICogRkFROgoKICAgUmVwbGFjZSB0aGUgZGxtb2QgJ1dIRVJFJyB3aXRoIHNvbWV0aGluZyBtb3JlIG1lYW5pbmdmdWwuLi4uCiAgIAoyMDAyLTA0LTE3IDEyOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUFhEb21haW4uYzoKCiAgIGRlZmluZSB0aGUgaXB4RG9tYWluIHZhcmlhYmxlcwogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRXJyb3IgY29uZGl0aW9uIHRlc3RzCiAgIAoyMDAyLTA0LTE3IDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIE9oLCBqdXN0IGEgc21hbGwgcGF0Y2ggdG8gbWFrZSBpdCBwb3NzaWJsZSB0byBtYWtlIG1vZHVsZXMgcmVxdWVzdAogICB0aGF0IGFsbCBxdWVyaWVzIHRvIGEgc2V0IG9mIHJlZ2lzdHJhdGlvbnMgZ2V0IHBhc3NlZCBhbGwgYXQgb25jZQogICAod2hpY2ggYXBwYXJlbnRseSBpcyBpbXBvcnRhbnQgZm9yLCBvaCwgYWdlbnR4KQogICAKMjAwMi0wNC0xNyAxMDowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgbWlzYyBub24tY2hhbmdlIGNsZWFuIHVwcwogICAKMjAwMi0wNC0xNyAxMDowMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgcmVuYW1lIHN0cnVjdHVyZXMgYmVnaW5uaW5nIHdpdGggXyB0byBlbmRpbmcgd2l0aCBfcwogICAKMjAwMi0wNC0xNyAxMDowMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIHNlc3Npb24gY3JlYXRvciB0byB1c2UgYXQgd2lsbCAoZGlmZmVyZW50CiAgIGZyb20gdGhlIGNhbGxiYWNrIG1hZ2ljKS4KICAgCjIwMDItMDQtMTcgMDk6MDAgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgVXNlIHRoZSBOZXQtU05NUCBzeXNPSURzIGJ5IGRlZmF1bHQsIHJhdGhlciB0aGFuIHRoZSB1Y2RhdmlzIG9uZXMuCiAgIAoyMDAyLTA0LTE3IDA4OjI2ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgQmxhbmsgY29udGludWF0aW9uIGxpbmVzIGNvbmZ1c2UgSFAncyB2ZXJzaW9uIG9mIG1ha2UuCiAgIAoyMDAyLTA0LTE3IDA4OjE2ICBkdHMxMgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEJsYW5rIGNvbnRpbnVhdGlvbiBsaW5lcyBjb25mdXNlIEhQJ3MgdmVyc2lvbiBvZiBtYWtlCiAgIAoyMDAyLTA0LTE3IDA2OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmMsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIG1vdmUgbnNNb2R1bGVUYWJsZSBpbnRvIERhdmUncyBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA0LTE3IDA2OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBzbm1wVENQSVB2NkRvbWFpbi5oLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgZml4IGRlY2xhcmF0aW9ucyBvZiBEb21haW4gb2JqZWN0cyAoY29uc3QgLT4gZXh0ZXJuKQogICAKMjAwMi0wNC0xNyAwNjozMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyLzogc25tcC1kYXRhL3NubXBjb25mLWNvbmZpZywKICAgc25tcGQtZGF0YS9zbm1wY29uZi1jb25maWcsIHNubXB0cmFwZC1kYXRhL3NubXBjb25mLWNvbmZpZwo6CgogICBzbm1wY29uZiBjb25maWd1cmF0aW9uIGRhdGEKICAgCjIwMDItMDQtMTcgMDM6MDEgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQnJpbmcgdGhlIHJlcG9ydGVkIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHN5c29pZCAmIG5vdGlmaWNhdGlvbiBPSURzCiAgIGJhY2sgaW50byBsaW5lIHdpdGggd2hhdCB3ZSBhY3R1YWxseSB1c2UgKGkuZS4gdGhlIHVjZGF2aXMgT0lEcykuCiAgIAogICBRbjogIERvIHdlIHdhbnQgdG8gc3dpdGNoIHRvIHVzaW5nIHRoZSBuZXQtc25tcCBlcXVpdmFsZW50IHN5c09JRHM/CiAgIFFuOiAgV2hhdCBhYm91dCBkZWZpbmluZyBuZXQtc25tcCBub3RpZmljYXRpb25zPwogICAKMjAwMi0wNC0xNyAwMjo1NSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBGaXggLS13aXRoLWVudGVycHJpc2Utc3lzb2lkIGFuZCAtLXdpdGgtZW50ZXJwcmlzZS1ub3RpZmljYXRpb24tb2lkLAogICBhbmQgdHJ5IHRvIGNsYXJpZnkgdGhhdCB0aGVzZSBhcmUgT0lEcywgd2hpbGUgLS13aXRoLWVudGVycHJpc2Utb2lkCiAgIGlzIGFjdHVhbGx5IGp1c3QgdGhlIGVudGVycHJpc2UgKm51bWJlcioKICAgCiAgIFFuOiAgc2hvdWxkIHdlIGNoYW5nZSB0aGUgbmFtZSBvZiB0aGUgY29uZmlndXJlIG9wdGlvbiB0byByZWZsZWN0IHRoaXM/CiAgIAoyMDAyLTA0LTE2IDEwOjA0ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsIEZBUSwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTMgKQogICAKMjAwMi0wNC0xNiAxMDowMiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgZGVsZXRlIHRvcCBkaXNjbGFpbWVycwogICAKMjAwMi0wNC0xNiAxMDowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1pc2MgdXBkYXRlcwogICAKMjAwMi0wNC0xNiAxMDowMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBtaXNjIGJ1ZyBmaXhlcwogICAKMjAwMi0wNC0xNiAwODoxOSAgZHRzMTIKCiAgICogRkFROgoKICAgQWRkIGFuIGVudHJ5IGNvbmNlcm5pbmcgdGhlICdsaWJjcnlwdG8nIFJQTSBkZXBlbmRlbmN5LgogICAKMjAwMi0wNC0xNiAwODowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jOgoKICAgZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTA0LTE2IDA3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgYSBubyBsb25nZXIgYXBwcm9wcmlhdGUgdG9kbyBjb21tZW50CiAgIAoyMDAyLTA0LTE2IDA3OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBJIGd1ZXNzIEkgZm9yZ290IHRvIHJ1biBhdXRvY29uZgogICAKMjAwMi0wNC0xNSAwODo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBzbm1wY29uZiwgTWFrZWZpbGUuaW46CgogICBtb3ZlIHNubXBjb25mIGRhdGEgZGlyZWN0b3JpZXMgdG8gZGlmZmVyZW50IG5hbWVzIHRvIGF2b2lkIGNvbmZ1c2lvbgogICAKMjAwMi0wNC0xNSAwODozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyLzogc25tcC1kYXRhL2F1dGhvcHRzLAogICBzbm1wLWRhdGEvZGVidWdnaW5nLCBzbm1wLWRhdGEvbWlicywgc25tcC1kYXRhL291dHB1dAosIHNubXBkLWRhdGEvYWNsLCBzbm1wZC1kYXRhL2Jhc2ljX3NldHVwLAogICBzbm1wZC1kYXRhL2V4dGVuZGluZywgc25tcGQtZGF0YS9tb25pdG9yLAogICBzbm1wZC1kYXRhL29wZXJhdGlvbiwgc25tcGQtZGF0YS9zeXN0ZW0sCiAgIHNubXBkLWRhdGEvdHJhcHNpbmtzLCBzbm1wdHJhcGQtZGF0YS9mb3JtYXR0aW5nLAogICBzbm1wdHJhcGQtZGF0YS90cmFwaGFuZGxlOgoKICAgZGF0YSBmaWxlIG1vdmluZwogICAKMjAwMi0wNC0xMiAxNDozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBNYXNzaXZlIGNsZWFudXAgZWZmb3J0LiAgSXQgc2hvdWxkIG5vdyByZXNwZWN0IG9yZGVyaW5nIGluIHRoZQogICBzbm1wY29uZiBjb25maWd1cmF0aW9uIGZpbGVzIGFzIHdlbGwuCiAgIAoyMDAyLTA0LTEyIDEzOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgZml4IGZvciBvdmVyemVhbG91cyBwZXJsIHNjcmlwdAogICAKMjAwMi0wNC0xMiAwOTo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY29weSB1Y2QgcGVyc2lzZW50IGRpcmVjdG9yeSB0byBuZXQtc25tcCAocHJvbXB0cywgZmxhZ3MgYW5kIG90aGVyIGZ1bikKICAgCjIwMDItMDQtMTIgMDc6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCB0cmFwdG9lbWFpbAogICAKMjAwMi0wNC0xMiAwNzo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgcmVtb3ZlIHRyYXBub3RpZgogICAKMjAwMi0wNC0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgcnNubXA6CgogICByZW1vdmUgcnNubXAsIHdoaWNoIGlzIHZlcnkgdmVyeSBvbGQgYW5kIG91dCBvZiBkYXRlCiAgIAoyMDAyLTA0LTEyIDA3OjQ3ICBoYXJkYWtlcgoKICAgKiBtYW4vOiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgbWliMmMuMS5kZWY6CgogICBBIG1hbnVhbCBwYWdlIGZvciBtaWIyYyAoaGVscCwgSSdtIHR1cm5pbmcgaW50byBEYXZlKQogICAKMjAwMi0wNC0xMiAwNzoyOCAgaGFyZGFrZXIKCiAgICogZG90Z2RiaW5pdDoKCiAgIGEgZ2RiIGluaXRpYWxpemF0aW9uIGZpbGUgd2l0aCBoZWxwZnVsIGZ1bmN0aW9ucwogICAKMjAwMi0wNC0xMiAwMjo0MiAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBBZGQgJ3NubXBjb25mJyBhbmQgJ21pYjJjJyB0byB0aGUgbGlzdCBvZiBzY3JpcHRzIHRvIGluc3RhbGwuCiAgIAogICBJJ3ZlIGxlZnQgJ3RyYXB0b2VtYWlsJyBvZmYgdGhpcyBsaXN0LCBzaW5jZSBpdCBzYXlzIGl0J3Mgbm90IGludGVuZGVkCiAgIGFzIGEgZGlyZWN0bHkgdXNlci1pbnZva2VkIGNvbW1hbmQsIHNvIHByb2JhYmx5IG91Z2h0IG5vdCB0byBiZSBpbnN0YWxsZWQKICAgaW50byBhIGJpbmFyeSBkaXJlY3RvcnkuCiAgIAoyMDAyLTA0LTEyIDAyOjQxICBkdHMxMgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIEZpeCB0aGUgcGF0aCBvZiBzbm1wd2FsayB0byBiZSBzb21ldGhpbmcgbW9yZSBwbGF1c2libGUuCiAgIChJJ20gbm90IGNvbnZpbmNlZCBhYm91dCB0aGUgdmFsaWRpdHkgb2YgdGhhdCBpbml0aWFsICdydG9wbWliJyBPSUQgbWluZCEpCiAgIAoyMDAyLTA0LTEyIDAyOjM2ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgRml4IHR5cG8gaW4gcmVmZXJlbmNlIHRvICdtaWIyYy5pdGVyYXRlLmNvbmYnCiAgIAoyMDAyLTA0LTEyIDAyOjMzICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcywgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIG1haW4gbGlicmFyeSBhcyAnbGlic25tcCcgaWYgY29uZmlndXJlZCB1c2luZyBVQ0QgY29tcGF0aWJpbGl0eS4KICAgVGhpcyBzaG91bGQgaGFuZGxlIHRoZSByZXF1aXJlbWVudHMgb2YgYXBwbGljYXRpb24gY29tcGF0aWJpbGl0eS4KICAgQWdlbnQgbGlicmFyeSBjb21wYXRpYmlsaXR5IGlzIGxpa2VseSB0byBwcm92ZSBhIGhhcmRlciBwcm9ibGVtCiAgIChzaW5jZSB0aGVyZSBhcmUgbm93IHRocmVlIGxpYnJhcmllcywgbm90IGp1c3QgdHdvLi4uKQogICAKMjAwMi0wNC0xMSAyMjoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3Qvc3RhcnRhZ2VudC5wbDoKCiAgIHNldCBTTk1QQ09ORlBBVEggaWZmIFtzaWNdIG5vdCBzZXQKICAgCjIwMDItMDQtMTEgMjI6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgcmV0dXJuIGZyb20gaW5pdE1pYiBiZWZvcmUgZG9pbmcgYW55dGhpbmcuCiAgIAoyMDAyLTA0LTExIDIyOjI2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICB0dXJuIG9mZiBjb21wbGllciB3YXJuaW5ncwogICAKMjAwMi0wNC0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgc3VwcG9ydCAic2hvdyBjb2x1bW5zIGZyb20gVEFCTEUiCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBBZGQgYSBuZXcgZGVtbyBzY2FsYXI6IHRoZSBzbGVlcGVyLiAgKGRhaCBkYWggZGFoIGR1bW1tbW0pCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBpbmRlbnQuCiAgIAoyMDAyLTA0LTExIDIyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzLmgsIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuYwosIGV4YW1wbGVzL2RlbGF5ZWRfaW5zdGFuY2UuaDoKCiAgIEFkZCBhIGRlbGF5ZWQgaW5zdGFuY2UgZXhhbXBsZSwgc2hvd2luZyBob3cgdG8gcmV0dXJuIG1pYiByZXF1ZXN0CiAgIHJlc3VsdHMgbGF0ZXIgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkuCiAgIAoyMDAyLTA0LTExIDIyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgcmVtb3ZlIGxlZ2FjeSBleGFtcGxlLgogICAKMjAwMi0wNC0xMSAyMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYWRkIGNvbW1lbnQgYWJvdXQgcG9zc2libHkgZml4aW5nIGluY2x1c2l2ZSByZXF1ZXN0cyBpbiB0aGUgZnV0dXJlLgogICAKMjAwMi0wNC0xMSAxNzowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgY2hhbmdlIG1vZHVrZXMtPiBtb2R1bGVzCiAgIAoyMDAyLTA0LTExIDA3OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdHVybiBvZmYgZGVidWdnaW5nIHdoZW4gY2FsbGluZyBsb2dnaW5nIGNhbGxiYWNrcwogICAKMjAwMi0wNC0xMCAxMjo1MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGZpeCBwZXJsIG1vZHVsZSBpbiBtYW55IG1hbnkgcGxhY2VzLiAgbW9zdCB0ZXN0cyBub3cgcGFzcy4KICAgCjIwMDItMDQtMTAgMTI6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBmb3JjZSBzZXR0aW5nIHRvIGEgImJvZ3VzIiBTTk1QQ09ORlBBVEguCiAgIAoyMDAyLTA0LTEwIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmM6CgogICBFeHBvcnRpbmcgZnVuY3Rpb25zIGdvb2QuICBJbnRlcm5hbGl6aW5nIGJhZC4KICAgCjIwMDItMDQtMTAgMDk6MjggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgb3Bwcy4gIHNpZ2guCiAgIAoyMDAyLTA0LTEwIDA5OjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9wcHMuICByZW1vdmUgZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgIAoyMDAyLTA0LTEwIDA5OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gTWFrZSB0aGUgcGVybCBtb2R1bGUgY2FsbCBpbml0X3NubXAoKQogICAgIC0gdGhpcyBpcyBhIGZhaXJseSBtYWpvciBjaGFuZ2UsIGlzIGl0IG5vdyB3aWxsIHJlYWQgLmNvbmYgZmlsZXMuCiAgICAgLSBtYW55IHBlb3BsZSBoYXZlIGFza2VkIGZvciB0aGlzLgogICAtIG1pc2MgY2xlYW4gdXBzLgogICAKMjAwMi0wNC0xMCAwOToxOCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBEb24ndCByZWN1cnNlIGludG8gc3ViZGlyZWN0b3JpZXMgZm9yIHRoZSBjb25zaXR1ZW50IHN1YnRhcmdldHMgb2YgIm1ha2UgaW5zdGFsbCIKICAgCjIwMDItMDQtMTAgMDk6MDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBhIGZldyB0aGluZ3MsIHNlcGFyYXRlZCBwZXJsIHN0dWZmIGludG8gaXQncyBvd24gc2VjdGlvbi4KICAgCjIwMDItMDQtMTAgMDg6NDYgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQnJpbmcgdGhlIGhlbHAgbWVzc2FnZSBmb3IgdGhlIFVDRCBjb21wYXRhYmlsaXR5IG9wdGlvbiBpbnRvIGxpbmUgd2l0aAogICB3aGF0J3MgYWN0dWFsbHkgcmVjb2duaXNlZC4KICAgCjIwMDItMDQtMTAgMDc6NTIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGNoYW5nZSBsaWJ0b29sIHZlcnNpb25pbmcgdG8gdGhlaXIgcmVjb21tZW5kZWQgbWV0aG9kIG9mIGRvaW5nIHRoaW5ncwogICAod2hpY2ggSSBoYXRlLCBidXQgaXMgc3RpbGwgYmV0dGVyIHRoYW4gd2hhdCB3ZSB3ZXJlIGRvaW5nLCBJIGd1ZXNzKQogICAKMjAwMi0wNC0xMCAwNzoxMCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBCcmluZyB1c2Ugb2YgQlVJTFRTVUJESVIgd2l0aGluICdpbnN0YWxsbG9jYWxoZWFkZXJzJyBpbnRvIGxpbmUKICAgd2l0aCB0aGUgcHJlY2VkaW5nIGNvbW1lbnQsIGFuZCBhY3R1YWwgdXNhZ2UuCiAgIChpLmUuIElOU1RBTExCVUlMVFNVQkRJUiByYXRoZXIgdGhhbiBJTkNMVURFQlVJTFRTVUJESVIpCiAgIAoyMDAyLTA0LTEwIDA1OjU4ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHlwbyBpbiBzZWN1cml0eS1pbmNsdWRlIGhlYWRlciBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgdmFyaWFibGUKICAgCjIwMDItMDQtMTAgMDU6NTUgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgRW5zdXJlIHRoZSBkZXN0aW5hdGlvbiBkaXJlY3RvcnkgZXhpc3RzIGJlZm9yZSBpbnN0YWxsaW5nIG1pYjJjIGNvbmYgZmlsZXMuCiAgIAoyMDAyLTA0LTEwIDAxOjU1ICBkdHMxMgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwNHNubXB2MW5vc3VjaCwgVDAxOXNubXB2MmNub3N1Y2g6CgogICBUd28gbmV3IHRlc3RzIHRvIGNoZWNrIGhhbmRsaW5nIG9mIEdFVGluZyBub24tZXhpc3RhbnQgaW5zdGFuY2VzCiAgIAoyMDAyLTA0LTEwIDAxOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBIGZpeCBmb3IgU05NUHYxIGVycm9ycyB0aGF0IGRvZXNuJ3QgZW5kIHVwIGJyZWFraW5nIEFnZW50WCBlcnJvciBoYW5kbGluZy4KICAgCjIwMDItMDQtMDkgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoIGZyb20gRGF2ZSB0byBmaXggdjEgZXJyb3IgcmVzdWx0cy4KICAgCjIwMDItMDQtMDggMjE6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgZml4IGluY29ycmVjdCBsZW5ndGggcmV0dXJuIHZhbHVlCiAgIAoyMDAyLTA0LTA4IDE4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaDoKCiAgIGRvbid0IGFsbG93IG5vLWNvbmZpZ3VyYXRpb24gYWNjZXNzIGFueW1vcmUuCiAgIAoyMDAyLTA0LTA4IDE3OjU5ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdHJhbnNmb3JtX29pZHMuaCwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcHVzbS5jCjoKCiAgIG1vcmUgdW5jb25zdCBjb3JyZWN0bmVzcwogICAKMjAwMi0wNC0wOCAxNzozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBzaXplX3QgZXh0ZXJucyBmb3IgZXhwb3J0ZWQgb2lkcwogICAKMjAwMi0wNC0wOCAxNzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRlbXBvcmFyeSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyB0aGF0IGFjY2lkZW50YWxseSBiZWNhbWUgcGVybWFuZW50LgogICAKMjAwMi0wNC0wOCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYywgc25tcF90cmFuc3BvcnQuYzoKCiAgIGRlZmluZSBsZW5ndGggc2l6ZV90J3MgZm9yIG9pZCB2YXJpYWJsZXMuCiAgIAoyMDAyLTA0LTA4IDE2OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIHN1cHBvcnQgIm51bGwiIHR5cGVzLgogICAKMjAwMi0wNC0wOCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGluaXRpYWxpemUgbm90aWZpY2F0aW9uIGxvZyBtaWIgc3VwcG9ydCBiZWZvcmUgLUggdXNhZ2UuCiAgIAoyMDAyLTA0LTA4IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jOgoKICAgZml4IGEgZmV3IHRoaW5ncyBhbmQgbWFrZSBzdWJoYW5kbGVycyBub3QgYWJsZSB0byB0ZWxsIHRoZXJlIHdlcmUgbW9yZSByZXF1ZXN0cy4KICAgCjIwMDItMDQtMDggMTY6NDMgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICBBIGNvLXdvcmtlciBwb2ludGVkIG91dCB0aGF0IHRoZSBJTlNUQUxMIHNjcmlwdCBzdGlsbCBzYWlkIHRvIGVkaXQgY29uZmlnLmgKICAgCjIwMDItMDQtMDggMTU6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwKICAgc25tcGxpYi9zbm1wVENQRG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYywKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgdW5zdGF0aWMtaXplIGEgZmV3IG9pZHMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGV4dGVybmFsCiAgIAoyMDAyLTA0LTA4IDE0OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcFRDUERvbWFpbi5jLAogICBzbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5jLCBzbm1wX2FwaS5jLCBzbm1wX3RyYW5zcG9ydC5jCiwgc25tcHVzbS5jOgoKICAgQ2hhbmdlIGNvbnN0IG9pZCBkZWNsYXJhdGlvbnMgaW50byBzdGF0aWMgb25lcyBzaW5jZSBzaGFyZWQgbGlicmFyaWVzCiAgIGhhdmUgYSBwcm9ibGVtIHdpdGggaW5pdGlhbGl6aW5nIHRoZW0gb24gbGludXggc3lzdGVtcyBhdCBsZWFzdC4KICAgCjIwMDItMDQtMDggMTE6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWluaW1hbCBkb2N1bWVudGF0aW9uIGZvciBkZWJ1Z2dpbmcgYW5kIHRoZSBpbmplY3RIYW5kbGVyIHRva2VuCiAgIAoyMDAyLTA0LTA1IDE0OjMyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOC5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIE5PVElGSUNBVElPTi1MT0ctTUlCIHN1cHBvcnQuCiAgIAoyMDAyLTA0LTA1IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGNvbnRleHQgbmFtZSBzdXBwb3J0IGluIHByb3h5IGNvZGUuCiAgIAoyMDAyLTA0LTA1IDEzOjUxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IHRoZSBkaXNtYW4gZXZlbnQgbWliIHN1cHBvcnQgZm9yIHNlbmRpbmcgdHJhcHMgdmlhIG1vbml0b3JlZCBPSURzLgogICAKMjAwMi0wNC0wNSAxMDoxMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBwdXQgdHJhcCBjb25maWcgaW50byBpdHMgb3duIHNlY3Rpb24uCiAgIGRvY3VtZW50IHRoZSAib3ZlcnJpZGUiIHRva2VuLgogICAKMjAwMi0wNC0wNSAwNjozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIGNoYW5nZSBkZWZhdWx0IGNvbnRleHQgdG8gYW4gZW1wdHkgc3RyaW5nCiAgIAoyMDAyLTA0LTA0IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY0LTItcGF0Y2hlcy41KSwgYWdlbnRfcmVnaXN0cnkuYwo6CgogICBkZWFsIHdpdGggZmQgdW5yZWdpc3RyYXRpb25zIHByb3Blcmx5LgogICAKMjAwMi0wNC0wMyAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmgKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBNYWtlIGFuIGV4YW1wbGUgZGF0YXNldCB0YWJsZSB0byBob2xkIGFuZCBzdG9yZSBkYXRhIGluIChhZG1pdHRlZGx5CiAgIHVzZWxlc3MgZGF0YSBmcm9tIGEgbmV0d29yayBtYW5hZ2VtZW50IHBvaW50IG9mIHZpZXcsIGJ1dCBpdCdzIGFuIGV4YW1wbGUpLgogICAKMjAwMi0wNC0wMiAyMjoxMiAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGxhdGlvbiBmcm9tIHN1YmRpciBidWlsZCBjYXNlLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzIGZyb20gZnJvbSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZV9jb25maWcuaCBhbmQgbWliX21vZHVsZV9pbmNsdWRlcy5oIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG5ldC1zbm1wLWNvbmZpZy5oIGZyb20gdGhlIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgY3JlYXRlIHNvbWUgaW5zdGFsbCBmcm9tIGJ1aWx0IGhlYWRlciBydWxlcy4KICAgCjIwMDItMDQtMDIgMTc6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIG1pYjJjLmNvbmY6CgogICByZW1vdmUgZGVsZXRlZCBhcnJheS1hdXRvIGZyb20gLmNvbmYgaW5zdGFsbC9yZWZlcmVuY2UgbGlzdHMKICAgCjIwMDItMDQtMDIgMTU6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvcmVnaXN0cnkuYywKICAgdWNkLXNubXAvcmVnaXN0cnkuaDoKCiAgIHJlbW92ZSB0aGUgcmVnaXN0cnkgbW9kdWxlLCBhcyBpdCdzIG9ic29sZXRlIGR1ZSB0byBjb250ZXh0cy4gIFVzZSB0aGUgbnNNb2R1bGVUYWJsZSBpbnN0ZWFkCiAgIAoyMDAyLTA0LTAyIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgKFY0LTItcGF0Y2hlcy43KSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaDoKCiAgIEFwcGx5IHBhdGNoICM1MjQ0MjQgZm9yIGRhcndpbiBmaXhlcyBmb3IgdWNkLXNubXAvZGlzay5jCiAgIAoyMDAyLTA0LTAyIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAoVjQtMi1wYXRjaGVzLjgpLAogICBrZXJuZWxfc3Vub3M1LmM6CgogICBhcHBseSBwYXRjaCA1Mjc1NzMgdG8gZml4IDY0IGJpdCB0eXBlcyBvbiBzb2xhcmlzCiAgIAoyMDAyLTA0LTAyIDA3OjA0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBjaGVjayBjaGFyIGZvciBOVUxMIGJlZm9yZSBzZXR0aW5nIHRvOgogICAKMjAwMi0wNC0wMSAyMjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy45KSwgY211X2NvbXBhdC5jLAogICBzbm1wX2FwaS5jOgoKICAgTGV0IGluaXRfc25tcCBwcm90ZWN0IGl0c2VsZi4KICAgCjIwMDItMDMtMjkgMTU6MDQgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0d2Vha3MgJiB1cGRhdGVzCiAgIAoyMDAyLTAzLTI5IDEwOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGFkZCBjb21tZW50CiAgIAoyMDAyLTAzLTI5IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgYWRkIGEgYWxsb3dfY3JlYXRpb24gZGVmaW5pdGlvbi4KICAgCjIwMDItMDMtMjkgMDg6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgbWFrZSBuZXQtc25tcC1jb25maWcgZXhlY3V0YWJsZSBhZnRlciBpdCdzIGJ1aWx0CiAgIAoyMDAyLTAzLTI5IDA4OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNldFNlcmlhbE5vLmMsIHNldFNlcmlhbE5vLmg6CgogICBvcHBzLiAgZm9yZ290IHRvIGNoZWNrIHRoZSBzZXRTZXJpYWwgY29kZSBpbgogICAKMjAwMi0wMy0yOCAyMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMgKFY0LTItcGF0Y2hlcy40KSwgcGFzcy5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiBmb3IgcGFzcyBtb2R1bGVzLiAgUGF0Y2ggIzQ4MjAwNQogICAKMjAwMi0wMy0yOCAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4yKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggIzUxNzM0MDogZnJlZWJzZDUgc3VwcG9ydAogICAKMjAwMi0wMy0yOCAyMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYyAoVjQtMi1wYXRjaGVzLjQpLCBocl9maWxlc3lzLmMKOgoKICAgYXBwbHkgZnJlZWJzZDUgcGF0Y2ggIzUxNzMzMwogICAKMjAwMi0wMy0yOCAyMzozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N5c3RlbS5jLCBtaWJJSS9pbnRlcmZhY2VzLmMKLCBtaWJJSS9pcEFkZHIuYzoKCiAgIEFwcGx5IG5ldGJzZCBmaXggcGF0Y2ggIzUyOTczMwogICAKMjAwMi0wMy0yOCAyMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy44KSwgc25tcF9hcGkuYywKICAgc25tcF9hcGkuYzoKCiAgIHVzZSBhIHN0YXRpYyB2YXJpYWJsZSBmb3IgaW5pdCBjaGVja2luZy4gIEJ1ZyAjNTM2Mzg2LgogICAKMjAwMi0wMy0yOCAxNToyNSAgZHRzMTIKCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCwgcmVhZF9jb25maWcuMy5kZWYsCiAgIHNubXBfYXBpLjMuZGVmOgoKICAgVHdlYWsgdG8gdXNlIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTAzLTI4IDE1OjIzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgQWRkIGEgZmV3IG5ldyBlbnRyaWVzIChtb3N0bHkgcmVsYXRpbmcgdG8gdHJhcHMpCiAgIAoyMDAyLTAzLTI4IDE0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVuYW1lL3ByZWZpeCBmdW5jdGlvbnM7IGFkZCBkb3h5Z2VuIGRvY3VtZW50YXRpb24KICAgCjIwMDItMDMtMjggMTM6MDAgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBhZGQgZGVmaW5lIGZvciBleGNsdWRpbmcgc3R1ZmYgKERPWFlHRU5fU0hPVUxEX1NLSVBfVEhJUykKICAgCjIwMDItMDMtMjggMTI6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBhZGQgc2V0U2VyaWFsTm8KICAgCjIwMDItMDMtMjggMTI6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgZml4IGEgbmV2ZXItc2Vlbi1idXQtdmVyeS1vbGQtYnVnIHVzaW5nIHRoZSB3cm9uZyBkZWZhdWx0X3N0b3JlIHRva2VuLgogICAKMjAwMi0wMy0yOCAxMjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgb25seSBzZXQgdGhlIGRlZmF1bHQgb3V0cHV0IHN0eWxlIGlmIGl0J3Mgbm90IGFscmVhZHkgc2V0IHRvIHNvbWV0aGluZy4KICAgCjIwMDItMDMtMjggMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICB3cmFwcGluZy4KICAgCjIwMDItMDMtMjggMTI6MTcgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGNoYW5nZSB2ZXJzaW9uIG51bWJlcgogICAKMjAwMi0wMy0yOCAxMjowOCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgYmFjayBvdXQgY2hhbmdlIGZyb20gdmVyc2lvbiAxLjY1IHVudGlsIGJldHRlciBzb2x1dGlvbiBjYW4gYmUgZm91bmQ7CiAgIGJ1ZyAjNTM1MDI5CiAgIAoyMDAyLTAzLTI4IDEyOjAzICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHJldHVybiBzcGVjaWZpYyByZXN1bHQgY29kZSBmb3IgcmVnaXN0cmF0aW9uIGZhaWx1cmUgaWYgYXZhaWxhYmxlLgogICAKMjAwMi0wMy0yOCAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMKOgoKICAgcGVybCB0eXBvCiAgIAoyMDAyLTAzLTI3IDE1OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mOgoKICAgZGVsZXRlIG9sZCwgdW51c2VkIGNvbmYgZmlsZQogICAKMjAwMi0wMy0yNyAwODoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYywgbm90aWZpY2F0aW9uX2xvZy5oLAogICBzbm1wdHJhcGQuYzoKCiAgIGFkZCAiZG9udFJldGFpbkxvZ3MiIHRva2VuIHRvIHNubXB0cmFwZC5jb25mIHRvIG5vdCBlbmFibGUgdGhlCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliLgogICAKMjAwMi0wMy0yNyAwMTo1NCAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUgKFY0LTItcGF0Y2hlcy5bMSwxXSksIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgVXNlIHRoZSBjb3JyZWN0IG5hbWUgb2YgdGhlIFdpbmRvd3MgSVAgSGVscGVyIEFQSSBsaWJyYXJ5LgogICAoQ29tcHV0ZXJzIGNhbiBiZSBzb29vbyBwaWNreSEpCiAgIAoyMDAyLTAzLTI2IDIzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwosIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2J1bGtfdG9fbmV4dC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9yZWFkX29ubHkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSBSZWFsbHkgZml4IHRoZSAidW5kbyBmYWlsZWQiIHByb2JsZW0uICBJRSwgbm90IGp1c3QgYW55IG9sZCBlcnJvcgogICAgIHdpbGwgY2F1c2UgYW4gdW5kbyBmYWlsZWQgbWVzc2FnZSB0byBnZXQgc2VudCBiYWNrLiAgT25seSB2YXJiaW5kcwogICAgIHdpdGggYW4gdW5kbyBmYWlsZWQgZXJyb3IgY29kZSB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIHJlc3VsdC4KICAgICB1bmRvIGZhaWxlZCByZXN1bHRzIGRvIHN0aWxsIHN1cGVyc2VkZSBhbGwgb3RoZXIgZXJyb3IgY29kZXMsCiAgICAgaG93ZXZlciwgd2hpY2ggaXMgd2hhdCB0aGUgb3JpZ2luYWwgcHJvYmxlbSB3YXMgYWxsIGFib3V0LiAgV2Ugc3RpbGwKICAgICBoYXZlIHRvIGRlcGVuZCBvbiB0aGUgbW9kdWxlcyByZXR1cm5pbmcgdGhlIHJpZ2h0IGVycm9yIGNvZGUgKGJ1dAogICAgIHRoYXQncyB0aGVpciBmYXVsdCBpZiB0aGV5IGRvbid0KS4KICAgLSBtaXNjIGNsZWFudXBzIGFuZCByZW5hbWVzCiAgIAoyMDAyLTAzLTI2IDIzOjIwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgQ3JhaWcgU2V0ZXJhCiAgIAoyMDAyLTAzLTI2IDE0OjA3ICByc3RvcnkKCiAgICogVE9ETzoKCiAgIGFkZCBjcmVhdGluZyBzcmMgcnBtIHNwZWMgZmlsZQogICAKMjAwMi0wMy0yNiAwODoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNraW8uYyAoVjQtMi1wYXRjaGVzLjIpLCBkaXNraW8uYwo6CgogICBlbmFibGUgZGlza2lvIG9uIGZyZWVic2Q1LiAgSW1wbGVtZW50cyBwYXRjaCA1MTczMjggaW4gYSBkaWZmZXJlbnQgd2F5LgogICAKMjAwMi0wMy0yNiAwNzo1OCAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBmb3Igb3RoZXItZGlyIGJ1aWxkcwogICAKMjAwMi0wMy0yNiAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGR1cGxpY2F0ZSByZWdpc3RyYXRpb24gaW5mbyBpbiBzcGxpdF9zdWJ0cmVlCiAgIAoyMDAyLTAzLTI2IDA3OjQzICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLlswLDBdKSwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBBZGQgL2V0Yy9maWxlc3lzdGVtcyB0byBsaXN0IG9mIG1vdW50IHRhYmxlIGZpbGVzIChmb3IgQUlYKQogICBTaG91bGQgZml4IGJ1Z3MgMjMyNTg4IGFuZCAoPyk1MTcxMTMKICAgCjIwMDItMDMtMjYgMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzksOV0pLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSB0cmFpbGluZyAnOicgZnJvbSBsaXN0IG9mIE1JQiBtb2R1bGUgbmFtZXMgaW4gY29uZmlndXJlIG91dHB1dCwKICAgdG8gYXZvaWQgY29uZnVzaW9uIChzZWUgQnVnICM0OTExMjkpCiAgIAoyMDAyLTAzLTI2IDA2OjQxICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAnLWxobHBhcGknIHRvIHRoZSBsaXN0IG9mIGFnZW50IGxpYnJhcmllcywgd2hlbiBydW5uaW5nIG9uIFdpbmRvd3MKICAgKHVzaW5nIEN5Z3dpbikuICBTaG91bGQgZml4IEJ1ZyAjNTM0NDA5LgogICAKMjAwMi0wMy0yNSAyMjozMyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBwYXJzZS5jIChWNC0yLXBhdGNoZXMuMyksIHBhcnNlLmM6CgogICBmaXggYnVnIzUyMDQ3OCBzaG93TWliRXJyb3JzIHRva2VuIGlzIGludmVydGVkCiAgIAoyMDAyLTAzLTI1IDE1OjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmg6CgogICByZW1vdmUgXk0gY2hhcmFjdGVycwogICAKMjAwMi0wMy0yNSAxNDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAo6CgogICB1c2UgZW1hY3MgdG8gZml4IHBlcmwgc2VhcmNoIGFuZCByZXBsYWNlIGVycm9ycywgb2YgY291cnNlCiAgIAoyMDAyLTAzLTI1IDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBwZXJsIHRvIHNlYXJjaCBhbmQgcmVwbGFjZSBwZXJsIHNlYXJjaCBhbmQgcmVwbGFjZSBlcnJvcnMsIG9mIGNvdXJzZQogICAKMjAwMi0wMy0yNSAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBhcGkgY2hhbmdlcwogICAKMjAwMi0wMy0yNSAwODo0MyAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5vcHQsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGQvc25tcGQuZHNwLCBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwKICAgc25tcGRmL3NubXBkZi5kc3AsIHNubXBnZXQvc25tcGdldC5kc3AsCiAgIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwCiwgc25tcHNldC9zbm1wc2V0LmRzcCwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAosIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLCBzbm1wdGVzdC9zbm1wdGVzdC5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLAogICBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb25zIG9mICdnZXRvcHQuYycgYW5kICdzbm1wX3BhcnNlX2FyZ3MuYycgaW4KICAgZWFjaCBpbmRpdmlkdWFsIGFwcGxpY2F0aW9uIHByb2plY3QuICBUaGVzZSByb3V0aW5lcyBhcmUgaW5jbHVkZWQgd2l0aGluCiAgIHRoZSBsaWJyYXJpZXMsIHNvIHdlIG1pZ2h0IGFzIHdlbGwgdXNlIHRob3NlLgogICAKMjAwMi0wMy0yNSAwNTo1MyAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luaXRzLmgsIHdpbjMyLm9wdCwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgc25tcGQvc25tcGQuZHNwOgoKICAgR290Y2hhISAgRXZlcnl0aGluZyBub3cgYnVpbGRzIChtb3JlLW9yLWxlc3MpIGNsZWFubHkgdW5kZXIgVmlzdWFsIEMrKy4KICAgWW91IHN0aWxsIGhhdmUgdG8gdXNlIHRoZSAiQmF0Y2ggQnVpbGQiIG1lY2hhbmlzbSAob3IgZWxzZSBiZSBjYXJlZnVsIHdoaWNoCiAgIG9mIGxpYnNubXAvbGlic25tcF9kbGwgeW91IGJ1aWxkIGluIGVhY2ggb2YgdGhlIERlYnVnICYgUmVsZWFzZSBtb2RlcyksCiAgIGFuZCB5b3UgbmVlZCB0byBidWlsZCB0d2ljZSBpbiBvcmRlciB0byBnZXQgZW5jb2RlX2tleWNoYW5nZSBsaW5raW5nLgogICBCdXQgdGhpbmdzICpkbyogZmluYWxseSBidWlsZC4KICAgCjIwMDItMDMtMjQgMDU6MjEgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgT29wcyAtIHNucHJpbnRfKiBjYW5ub3QgcmVhbGxvYwogICAKMjAwMi0wMy0yMyAwOTo0MCAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIHJlYWxseSBmaXggc25tcGluZm9ybSBpbnN0YWxscyB0aGlzIHRpbWUuCiAgIAoyMDAyLTAzLTIyIDIyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGZpbmFsIGNsZWFudXBzIG9mIG5vdGlmaWNhdGlvbiBsb2cgc3VwcG9ydAogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBpbnN0YWxsYXRpb24gb2Ygc25tcGluZm9ybQogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIFJlbmFtZSBzdHVmZi4gIEZpeCBzdHVmZi4gIFlvdSBrbm93LCBub3JtYWwgcm91dGluZS4KICAgCjIwMDItMDMtMjIgMjI6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHZlcnNpb24gZmlsZSBsb2NhdGlvbiBmb3Igbm9uLXNvdXJjZWRpciBidWlsZHMKICAgCjIwMDItMDMtMjIgMTQ6MTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oOgoKICAgZm9yZ290IHRvIGNvbW1pdCBhIHByb3RvdHlwZS4KICAgCjIwMDItMDMtMjIgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5Lmg6CgogICByZWdpc3Rlcl9taWJfY29udGV4dDIgLT4gbmV0c25tcF9yZWdpc3Rlcl9taWIgKGFuZCBtYXJrZWQgYXMgaW50ZXJuYWwpCiAgIAoyMDAyLTAzLTIyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgc3ViYWdlbnQuYzoKCiAgIHVzZSBuZXcgZXJyb3IgbG9nZ2luZyBhcGkgd2hlbiAhcm9vdAogICAKMjAwMi0wMy0yMiAxNDowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZW5hYmxlIGxvZ2dpbmcgc2Vzc2lvbiBlcnJvcnMgdG8gc29tZSBsb2cgbGV2ZWwgb3RoZXIgdGhhbiBFUlIuCiAgIAoyMDAyLTAzLTIyIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgc3ViYWdlbnQuYzoKCiAgIGJldHRlciBhZ2VudHggY29ubmVjdGlvbiByZWxhdGVkIGVycm9yIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0yMiAwOTozNSAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyLm9wdCwKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwgc25tcGQvc25tcGQuZHNwOgoKICAgU2xvd2x5IG1ha2luZyBwcm9ncmVzcyBvbiA1LjAgV2luZG93cyBidWlsZC4KICAgRXZlcnl0aGluZyBub3cgY29tcGlsZXMsIHRob3VnaCB0aGUgUmVsZWFzZSB2ZXJzaW9uIGRvZXNuJ3QgbGluay4KICAgICAoY29tcGxhaW5zIGFib3V0IGFzc29ydGVkIHVua25vd24gcm91dGluZXMgdGhhdCBhcmUgdGhlcmUsCiAgICAgIHN0YXJpbmcgaXQgaW4gdGhlIGZhY2UuICBHcnJyISEhISkKICAgCjIwMDItMDMtMjIgMDg6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG8gbm90ICJ0d2VhayIgcmFuZ2Vfc3ViaWQgd2hlbiBkZWFsaW5nIHdpdGggY29tcHJlc3NlZCBPSURzLgogICAgICAgVGhhbmtzIHRvIENyYWlnIFNldGVyYSBmb3IgcG9pbnRpbmcgb3V0IHRoaXMgZGV2aWF0aW9uIGZyb20gUkZDCiAgICAgICAyNzQxLgogICAKMjAwMi0wMy0yMiAwNzo1MCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfY2xpZW50LmgsIHNubXBsaWIvb2lkX2FycmF5LmMKLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFZhcmlvdXMgbWlub3IgaW5jb25zaXN0ZW5jaWVzIChtb3N0bHkgdG8gZG8gd2l0aCBzdWJ0bGUgdmFyaWF0aW9ucyBpbiB0eXBlcykKICAgCjIwMDItMDMtMjIgMDc6MzEgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgZml4IHR5cG8KICAgCjIwMDItMDMtMjIgMDc6MjkgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbmNsdWRlcy5oLCBtaWJfbW9kdWxlX2luaXRzLmgsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICBuZXQtc25tcC9saWJyYXJ5L3NubXB2My1zZWN1cml0eS1pbmNsdWRlcy5oOgoKICAgQnJpbmcgV2luZG93cyB2ZXJzaW9ucyBvZiAiYXV0b21hdGljYWxseS1nZW5lcmF0ZWQiIGhlYWRlciBmaWxlcyB1cCB0byBkYXRlLgogICAKMjAwMi0wMy0yMiAwMjoyMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZG9uJ3QgdXNlICJyZWciIGFzIGEgcGFyYW1ldGVyIG5hbWUgaW4ga2VybmVsX3N1bm9zNV9jYWNoZV9hZ2UoKQogICAgICAgYXMgL3Vzci9pbmNsdWRlL2luZXQvY29tbW9uLmggc2F5czoKICAgICAgICNkZWZpbmUgcmVnIHJlZ2lzdGVyCiAgICAgICAoISkgd2hpY2ggdGhlIGNvbXBpbGVyIHRoZW4gYmFyZnMgb24uICBSZXBvcnRlZCBhcyBidWcgIzUzMzMzNiBieQogICAgICAgQW5vbnltb3VzLgogICAKMjAwMi0wMy0yMSAwOToyNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMKOgoKICAgLSBzbm1wX2NvbmZpZyogLT4gbmV0c25tcF9jb25maWcgKGZvciBuZXcgZnVuY3Rpb25zIG9ubHkpCiAgIC0gZml4IGJ1ZyB3aGVyZSBzbm1wX2NvbmZpZygpIHN0cmluZ3Mgd2VyZSBnZXR0aW5nIHBhcnNlZCB0d2ljZS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICB3cmFwIGFnZW50eCBzdHVmZiBpbiBhIHN0aWxsIHVudXNlZCB2YXJpYWJsZSAoYXQgdGhpcyBwb2ludCkuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGZpeCBvaWQgcGFyc2luZy4KICAgCjIwMDItMDMtMjEgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogUm1vbi9hbGFybS5jLCBSbW9uL3N0YXRpc3RpY3MuYywKICAgbWliSUkvYXQuYzoKCiAgIGNoYW5nZSAvLyBjb21lbnRzIHRvIC8qICovIGNvbW1lbnRzIChiYWQgYmFkIGJhZCkKICAgCjIwMDItMDMtMjEgMDY6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgY2hhbmdlIC8vIGNvbWVudHMgdG8gLyogKi8gY29tbWVudHMgKGJhZCBiYWQgYmFkKQogICAKMjAwMi0wMy0yMCAyMDoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIGEgbGlzdCBvZiByZWdpc3RlcmVkIHRleHQgZW51bXMgdG8gQVNOXyogdmFsdWVzLgogICAgIChJbiBwcm9iYWJseSB0aGUgd3JvbmcgcGxhY2UuKQogICAKMjAwMi0wMy0yMCAyMDoxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy5oLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmg6CgogICBjcmVhdGUgYSBuZXcgIm92ZXJyaWRlIiBkaXJlY3RpdmUgdG8gZm9yY2UgYW4gT0lEIHRvIGEgcGFydGljdWxhciB2YWx1ZQogICAtIG5vdCBmaW5pc2hlZC4gIEl0J3MgZGVzaWduZWQgdG8gZG8gcmVhZC13cml0ZSBhcyB3ZWxsLCBidXQgZG9lc24ndC4KICAgCjIwMDItMDMtMjAgMjA6MDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNoZWNrIGZvciBpbmNsdXNpdmUKICAgCjIwMDItMDMtMjAgMTE6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgaW5jbHVkZSBuZXcgZGVsZXRlL3JlbW92ZSBicmVha2Rvd24gQVBJcwogICAKMjAwMi0wMy0yMCAxMTozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBBUEkgY2hhbmdlLgogICAKMjAwMi0wMy0yMCAxMTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBzb21lICJ0aGlzIHdpbGwgY2hhbmdlIiBlYXJseSByb3cgc3RhdHVzIGltcGxlbWVudGF0aW9uLgogICAgLSAodGhpcyB3aWxsIG1vdmUgdG8gYSBzZXBhcmF0ZSBoYW5kbGVyKQogICAKMjAwMi0wMy0yMCAxMTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBwb2ludGVyIGNoZWNraW5nIGFnYWluc3QgaWxsZWdhbCBhZGRzIChpZSwgc2hvdWxkbid0IGhhcHBlbiBidXQgY2hlY2sgYW55d2F5KQogICAKMjAwMi0wMy0yMCAwODo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIE9rLCBJIG1ha2UgbWlzdGFrZXMuICBJIGFkbWl0IGl0LiAgSXQgcmVhbGx5IHNob3VsZCBoYXZlIGJlZW4gYSBOVUxMLgogICAKMjAwMi0wMy0yMCAwODozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGFkZCBtaXNzaW5nIGNvbW1hCiAgIAoyMDAyLTAzLTIwIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmg6CgogICBzZXBhcmF0ZSBvdXQgZGVsZXRlL3JlbW92ZSByb3cgZnVuY3Rpb25hbGl0eQogICAKMjAwMi0wMy0yMCAwNzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgc3lzdGVtX21pYi5jOgoKICAgcmVtb3ZlIGlsbGVnYWwgU0VUIHN1cHBvcnQgZm9yIHN5c0Rlc2NyLgogICAKMjAwMi0wMy0yMCAwNjoyNyAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGUsIGxvY2FsL21pYjJjOgoKICAgLSBhZGQgbWFueSBtYW55IC1UIGZsYWdzIGZvciBkZWZpbmluZyB0eXBlcy4KICAgCjIwMDItMDMtMTkgMjE6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBmb3JjZSBzZXR0aW5nIG9mICchcm9vdCcgZmxhZyBzbyB0aGF0IGl0IHdpbGwgcnVuIGZvciBub24tcHJpdmlsZWdlZAogICB1c2VycyBvciB3aGVuIGFuIGFnZW50eCBtYXN0ZXIgc2ltcGx5IGhhcyBuZXZlciBleGlzdGVkLgogICAKMjAwMi0wMy0xOSAxNjowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgLSBhbGxvdyB0YWJsZXMgdG8gYmUgbWFya2VkIHdoZXRoZXIgdGhleSBzaG91bGQgc3VwcG9ydCBjcmVhdGlvbiBvciBub3QuCiAgIC0gYnVnIGZpeGVzCiAgIAoyMDAyLTAzLTE5IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jLCB0YWJsZV9kYXRhc2V0LmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYywgaGVscGVycy9idWxrX3RvX25leHQuYywKICAgaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIG1pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYwo6CgogICBkb2N1bWVudGF0aW9uIGNsZWFuIHVwCiAgIAoyMDAyLTAzLTE5IDA2OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwosIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsIGluY2x1ZGUvbmV0LXNubXAvdXRpbGl0aWVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwgcGVybC9hZ2VudC9hZ2VudC54cywKICAgc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIC0gcmVuYW1lZCBhIGZldyBiYWRseSBuYW1lZCBmdW5jdGlvbnMgKG5ldHNubXBfIGFwcGVhcmVkIHR3aWNlKS4KICAgLSBpbXBsZW1lbnRlZCB0aGUgYmVnaW5uaW5nIG9mIGNyZWF0aW9uIHN1cHBvcnQgZm9yIGRhdGFzZXRzLgogICAKMjAwMi0wMy0xOSAwNjozNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgQXBwYXJlbnRseSBJIHJhbiBhdXRvY29uZiBlYXJsaWVyIGFuZCBtaXNzZWQgY2hlY2tpbmcgaW4gdGhlIHJlc3VsdHMuCiAgIAoyMDAyLTAzLTE5IDA2OjM1ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIGFkZCAtbmZjYQogICAKMjAwMi0wMy0xNyAxNjoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgU2V0IGRlZmF1bHQgcG9ydCB0byAxNjIuCiAgIAoyMDAyLTAzLTE3IDE1OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmM6CgogICBpbXByb3ZlZCBmb3JtYXR0aW5nIHN0cmluZ3Mgc2hvd2luZyBib3RoIHRyYW5zcG9ydCB0eXBlIGFuZCBwb3J0IG51bWJlci4KICAgCjIwMDItMDMtMTMgMjM6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIG1pc3NpbmcgImluc3RhbGxzdWJkaXJzIiB0YXJnZXQgbWlzc2luZyAodGhhbmtzIHRvIEthdHN1aGlzYSBBQkUpCiAgIAoyMDAyLTAzLTEzIDIzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWNyZWF0ZS1zbm1wdjMtdXNlciB0byBhdXRvbWF0ZSBhZGRpbmcgYSB2MyB1c2VyIHRvIGJvdGggdGhlIHVzbQogICBhbmQgdmFjbSB0YWJsZXMgKGJ5IGFkZGluZyBsaW5lcyB0byBib3RoIHRoZSBwZXJzaXN0ZW50IGFuZCBub3JtYWwKICAgY29uZiBmaWxlcykuCiAgIAoyMDAyLTAzLTEzIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBidWcgZml4IGZvciBwcmUtcHJvY2Vzc2VkIHJlcXVlc3RzLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvYWdlbnRfbWlicy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2FnZW50X3RyYXAuaCwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvYXV0b19ubGlzdC5oLCBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgKLCBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9kc19hZ2VudC5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2hlYWRlcl9jb21wbGV4LmgsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAosIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaAosIGluY2x1ZGUvdWNkLXNubXAvbWliX21vZHVsZV9jb25maWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9taWJpbmNsLmgsIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hcGkuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmgsIGluY2x1ZGUvdWNkLXNubXAvc3RydWN0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3N5c3RlbS5oLCBpbmNsdWRlL3VjZC1zbm1wL3Rvb2xzLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaCwgaW5jbHVkZS91Y2Qtc25tcC92YXJfc3RydWN0LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaDoKCiAgIC0gLS1lbmFibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eSBhY3R1YWxseSBpbnN0YWxscyBoZWFkZXJzIChhcyBvcHBvc2VkCiAgICAgdG8gYWx3YXlzLCB3aGljaCBpcyB3aGF0IGl0IHVzZWQgdG8gZG8pLgogICAtIGFkZCBhZ2VudF9taWJzIHRvIGNvbmZpZ3VyZSBkZWZhdWx0IG1pYiBtb2R1bGVzIGFuZCBkb2N1bWVudC4KICAgLSBjaGFuZ2UgaGVscCBkb2N1bWVudGF0aW9uIGEgYml0IGZvciB0aGUgbWliIG1vZHVsZXMuCiAgIC0gYWRkIGEgZm9yY2VkIGRlcGVuZGVuY3kgZm9yIG1pYl9tb2R1bGVzLmxvCiAgIAoyMDAyLTAzLTEzIDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC5oOgoKICAgb3Bwcy4gIGR1cGxpY2F0ZXMgZXhpc3RpbmcgYWdlbnRfbWlicy5oCiAgIAoyMDAyLTAzLTEzIDE1OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQKICAgKFY0LTItcGF0Y2hlcy5bMSwxLDEsMSwxLDldKSwgVUNELURFTU8tTUlCLnR4dCwKICAgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsCiAgIFVDRC1TTk1QLU1JQi50eHQ6CgogICBhZGRyZXNzIGNoYW5nZXMgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIG5vdGUgc2F5aW5nIHRoZXNlIG1pYnMgYXJlIG5vCiAgIGxvbmdlciBzdXBwb3J0ZWQgYnkgVUNELgogICAKMjAwMi0wMy0xMyAxNTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmgsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEFkZGVkIGEgbnNNb2R1bGVUYWJsZSB0YWJsZSB3aGljaCByZXBsYWNlcyB0aGUgb2xkZXIgbXJUYWJsZS4KICAgRnVuY3Rpb25hbGx5LCB0aGlzIGlzIGEgbGlzdCBvZiBhbGwgcmVnaXN0ZXJlZCBpdGVtcyB3aXRoaW4gdGhlIE1JQgogICB0cmVlIGp1c3QgbGlrZSB0aGUgbXJUYWJsZSB3YXMsIGJ1dCB3aXRoIHN1cHBvcnQgZm9yIGNvbnRleHRzIGFuZCBmb3IKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbnMgd2l0aCBkaWZmZXJlbnQgcHJpb3JpdGllcy4KICAgCjIwMDItMDMtMTMgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB0b29scy5jIChWNC0yLXBhdGNoZXMuNCksIHRvb2xzLmM6CgogICBtYWxsb2MgYXQgbGVhc3Qgb25lIGJ5dGUgaW4gaGV4X3RvX2JpbmFyeTIKICAgCjIwMDItMDMtMTMgMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIHJlbW92ZSB1bm5lZWRlZCBkZWJ1ZyBzdGF0ZW1lbnQKICAgCjIwMDItMDMtMTMgMTQ6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgbG9jYWwgdmFyaWFibGUgbmFtZSBidWZmZXJzIGJ5IGRlZmF1bHQgd2hlbiBidWlsZGluZyBvaWQgc2VnbWVudHMuCiAgIAoyMDAyLTAzLTEzIDE0OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAvKiBzdG9wIHdhdGVyIGZyb20gZmxvd2luZyB0aHJvdWdoIGRhbSAqLwogICBmaW5nZXItPmluc2VydCgiaG9sZSIpCiAgIAoyMDAyLTAzLTEzIDA0OjAzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgQWRkIGEgZGVzY3JpcHRpb24gb2YgInVubGlua2VkIE9JRHMiLgogICAKMjAwMi0wMy0xMiAyMTozMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBtaWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgZml4IGhlYWRlcnMuCiAgIAoyMDAyLTAzLTEyIDIxOjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBkb24ndCBmb3JtYXQgY29tbWVudHMgb3B0aW9uCiAgIAoyMDAyLTAzLTEyIDIxOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpeCBmb3IgdGFibGVzIHdpdGggaG9sZXMuCiAgIAoyMDAyLTAzLTEyIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgbW92ZSBkZWZhdWx0IG1pYnMgdG8gdGhlaXIgb3duIHZhcmlhYmxlLgogICAKMjAwMi0wMy0xMiAyMTowNiAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvTWFrZWZpbGUuUEwsIGFnZW50L01ha2VmaWxlLlBMLAogICBhZ2VudC9hZ2VudC54cywgYWdlbnQvdHlwZW1hcDoKCiAgIC0gdXNlIG5ldC1zbm1wLWNvbmZpZyB0byBmaWd1cmUgdGhpbmdzIG91dC4KICAgLSB1cGRhdGUgaGVhZGVycyBhbmQgdHlwZWluZm8gZm9yIHJlY2VudCBjaGFuZ2VzLgogICAKMjAwMi0wMy0xMiAyMDozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBGQVEySFRNTCwgUkVBRE1FLm1pYjJjLCBtaWIyYywgdGttaWIKLCBtaWIyYy5hcnJheS1hdXRvLmNvbmYsIG1pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTEyIDIwOjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICByZW1vdmUgb2Jzb2xldGUgbWliMmMuY29uZiBmaWxlCiAgIAoyMDAyLTAzLTEyIDE4OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGRvbid0IGZvcmdldCB0byBzZXQgcm93LT5uZXh0LT5wcmV2IHRvIHNvbWV0aGluZyB3aGVuIHJlbW92aW5nIHJvdy4KICAgCjIwMDItMDMtMTIgMTc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBhZ2VudHggaW5jbHVzaXZlIHNlYXJjaGVzIHRvIGlnbm9yZSBnZXQgZXJyb3JzLgogICAKMjAwMi0wMy0xMiAxNzo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIHNvbWUgbWluaW1hbCBkdW1wIGRlYnVnZ2luZy4KICAgCjIwMDItMDMtMTIgMDg6MzQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjYpLCBGQVE6CgogICBVcGRhdGluZyBvZiB0aGUgRkFRIHJlYWR5IGZvciB0aGUgbmV4dCByZWxlYXNlLgogICAoTW9zdGx5IHJlcGhyYXNpbmcgb2YgZXhpc3RpbmcgZW50cmllcywgYnV0IGEgZmV3IG5ldyBxdWVzdGlvbnMpCiAgIAoyMDAyLTAzLTExIDE4OjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBjYXN0IC0xIHRvIHVfY2hhciBzbyB0ZXN0IGRvZXNuJ3QgYWx3YXlzIGZhaWwgKGZpeCBjb21waWxlciB3YXJuaW5nKQogICAKMjAwMi0wMy0xMSAxNzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgdHJlYXQgKGlsbGVnYWwpIGVycm9ycyBmcm9tIHN1YmFnZW50cyBzcGVjaWFsbHkgZm9yIGdldG5leHQgY2FzZXMuCiAgIAoyMDAyLTAzLTExIDEzOjQxICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgb3VyIHNubXAgbGlicmFyaWVzIHRvIG91dHB1dAogICAKMjAwMi0wMy0xMSAxMDozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC86IHRhYmxlX2RhdGEuaCwgdGFibGVfZGF0YXNldC5oCjoKCiAgIGRlbGV0ZS9yZW1vdmUgc3VwcG9ydCBoZWFkZXIgY2hhbmdlcy4KICAgCjIwMDItMDMtMTEgMDk6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gYWxsb3cgY29tcGlsYXRpb24gLS13aXRoLW91dC10cmFuc3BvcnRzPVRDUAogICAKMjAwMi0wMy0xMSAwODoyMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgICAtIGZpeGVzIGZvciAtLWRpc2FibGUtZGVidWdnaW5nCiAgIAoyMDAyLTAzLTExIDA3OjQxICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41KSwgRkFROgoKICAgQnJpbmcgdGhlIDR4LSBhbmQgbWFpbi1icmFuY2ggRkFRcyBpbnRvIGFncmVlbWVudC4KICAgCjIwMDItMDMtMTEgMDY6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHVzZSBjb3JyZWN0IHNlc3Npb24gSUQgd2hlbiB0YWxraW5nIHRvIHN1YmFnZW50cy4gIFRoYW5rcyB0byBDcmFpZwogICAgICAgU2V0ZXJhIGZvciB0aGlzIGZpeC4KICAgCjIwMDItMDMtMTEgMDU6MjAgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBiYWQgdHlwZSBhc3NpZ25tZW50IGluIGJ1aWxkX3RyYW5zbGF0aW9uX3RhYmxlKCksIG5vdGljZWQgYnkKICAgICAgIFBldGVyIFN0ZXZlbnMuCiAgIAoyMDAyLTAzLTExIDAwOjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgY2hlY2sgZm9yIE5VTEwgZnJlZXMsIGV2ZW4gdGhvdWdoIGl0J3Mgc3VwcG9zZWQgdG8gYmUgb2sgYWNjb3JkaW5nIHRvIGFuc2kuCiAgIAoyMDAyLTAzLTExIDAwOjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGJlZ2lubmluZyBzdXBwb3J0IGZvciBtYXhpbXVtIGxvZ2dlZCBjaGVja2luZy4KICAgCjIwMDItMDMtMTEgMDA6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLSByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAtIG51bGwgY2hlY2sKICAgLSBkb2MgY29tbWVudHMuCiAgIAoyMDAyLTAzLTExIDAwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIHJlbW92ZS9kZWxldGUgcm93IHN1cHBvcnQuCiAgIAoyMDAyLTAzLTExIDAwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjYWxsIG5leHQgaGFuZGxlcnMgKG9wcHMpLgogICAKMjAwMi0wMy0xMCAxNDoxMSAgbmJhCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgRml4IG9uZSBzcHJpbnRfdmFyaWFibGUgPT4gc25wcmludF92YXJpYWJsZQogICAKMjAwMi0wMy0xMCAxNDowNiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgIEFkZCBzbnByaW50XyogZnVuY3Rpb25zIHRoYXQgd2VyZSBzcHJpbnRfKiBpbiB1Y2Qtc25tcCA0CiAgIAoyMDAyLTAzLTEwIDE0OjA1ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwosIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZpeCBjb21waWxhdGlvbiB3aGVuIElQWC10cmFuc3BvcnQgZW5hYmxlZAogICAKMjAwMi0wMy0xMCAxNDowMyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBGaXggY29tcGlsYXRpb24gb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5CiAgIAoyMDAyLTAzLTA4IDIyOjI2ICBoYXJkYWtlcgoKICAgKiBGQVEsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0sCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTIgKQogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWlzYyBjaGFuZ2VzLgogICAKMjAwMi0wMy0wOCAxODoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBuZXcgYXBpIGNoYW5nZXMKICAgCjIwMDItMDMtMDggMTc6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jOgoKICAgUGF0Y2ggZnJvbSBMYXdyZW5jZSBHcmVlbmZpZWxkIHRvIGRlYWwgd2l0aCBTZW5kbWFpbCA4LjEyIHF1ZXVlZ3JvdXBzLgogICAKMjAwMi0wMy0wOCAxNjo1OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIHBhdGNoIGZyb20gY3NldGUgdG8gZml4IHdpbjMyIGJ1aWxkcwogICAKMjAwMi0wMy0wOCAxNjo1NSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgQ2FsbGJhY2sgdHJhbnNwb3J0IHRvIGN5Z3dpbgogICAKMjAwMi0wMy0wOCAxNjo0OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gcm1vbiBzdXBwb3J0LgogICAKMjAwMi0wMy0wOCAxNjozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byByZW1vdmUgb2xkIGFuIHVudXNlZCBwb2ludGVyCiAgIAoyMDAyLTAzLTA4IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmgsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaAosIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwosIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLCBhcHBzL3NubXBidWxrZ2V0LmMsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGRmLmMKLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xpYnNubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfcGFyc2VfYXJncy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9zZWNtb2QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYsCiAgIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZiwgcGVybC9TTk1QL1NOTVAueHMsCiAgIHNubXBsaWIvY211X2NvbXBhdC5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9zZWNtb2QuYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBzdHJ1Y3Qgc25tcF9zZXNzaW9uIHR5cGVkZWZlZCB0byBuZXRzbm1wX3Nlc3Npb24uICAmIHBkdS4gJiAuLi4KICAgCjIwMDItMDMtMDggMTQ6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZ2V0X3N5bWJvbCAtPiBnZXRfdHJlZQogICAKMjAwMi0wMy0wOCAwNzo0NSAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvU05NUC54cywgYWdlbnQvYWdlbnQucG0sIGFnZW50L2FnZW50LnhzCiwgYWdlbnQvdGVzdC5wbDoKCiAgIG1pc3NlZCB1cGRhdGVzCiAgIAoyMDAyLTAzLTA4IDA3OjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGF0YV9saXN0LmMsIGRlZmF1bHRfc3RvcmUuYywgbWliLmMKLCBvaWRfYXJyYXkuYywgb2lkX3N0YXNoLmMsIHJlYWRfY29uZmlnLmMKLCBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcElQWERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMKLCBzbm1wVURQRG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmMsCiAgIHNubXBVbml4RG9tYWluLmMsIHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywKICAgc25tcF90cmFuc3BvcnQuYywgc25tcHYzLmM6CgogICBtaXNzaW5nIHVwZGF0ZWQgY29kZQogICAKMjAwMi0wMy0wOCAwMjowNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICAgIC0gc29tZSBzbm1wIC0+IG5ldHNubXAgZml4ZXMKICAgCjIwMDItMDMtMDcgMTM6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgosIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDQpCiAgIAoyMDAyLTAzLTA3IDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FsbF9oZWxwZXJzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmgsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMykKICAgCjIwMDItMDMtMDcgMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAyKQogICAKMjAwMi0wMy0wNyAwODo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLCBhZ2VudC9oZWxwZXJzL251bGwuYywKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMsCiAgIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oLAogICBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwosIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgosIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDEpCiAgIAoyMDAyLTAzLTA3IDA2OjIxICBqYnBuCgogICAqIG1hbi9zbm1wX3Nlc3NfYXBpLjMuZGVmOgoKICAgICAtIHN0eWxlIHVwZGF0ZQogICAKMjAwMi0wMy0wNyAwNTo0NyAgamJwbgoKICAgKiBtYW4vc25tcF90cmFwX2FwaS4zLmRlZjoKCiAgICAgLSBtaW5vciB1cGRhdGVzCiAgIAoyMDAyLTAzLTA3IDA1OjM5ICBqYnBuCgogICAqIG1hbi9zbm1wX2FsYXJtLjMuZGVmOgoKICAgICAtIHN0eWxlIHVwZGF0ZQogICAKMjAwMi0wMy0wNyAwNTowMCAgamJwbgoKICAgKiBtYW4vcmVhZF9jb25maWcuMy5kZWY6CgogICAgIC0gbWFrZSBwcm90b3R5cGVzIG1hdGNoIGhlYWRlcgogICAKICAgICAtIG1ha2Ugc3R5bGUgY29uc2lzdGVudCB3aXRoIG1pYl9hcGkKICAgCjIwMDItMDMtMDcgMDM6MDcgIGpicG4KCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICAgIC0gZml4IHVwIHNucHJpbnRfIGRlY2xhcmF0aW9ucywgZml4IHNtYWxsIHR5cG8uICBQYXRjaCBieSBHdXkKICAgSGFycmlzLgogICAKMjAwMi0wMy0wNyAwMjo0NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWNsYXJhdGlvbiBvZiBzcHJpbnRfcmVhbGxvY19ieV90eXBlLCBhcyBub3RlZAogICAgICAgYnkgR3V5IEhhcnJpcy4KICAgCjIwMDItMDMtMDYgMTc6MTUgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvLmN2c2lnbm9yZSwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Ly5jdnNpZ25vcmUsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmUKOgoKICAgbmV3IGlnbm9yZSBmaWxlcwogICAKMjAwMi0wMy0wNiAxNzoxMyAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBkb2NzCiAgIAoyMDAyLTAzLTA2IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oOgoKICAgZXhhbXBsZXMgbW9kdWxlIHdyYXBwZXIgdG8gaW5jbHVkZSBhbGwgKG5ldykgZXhhbXBsZXMuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBkb2N1bWVudCBiZXR0ZXIuCiAgIAoyMDAyLTAzLTA2IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBzZWFyY2ggZXhhbXBsZXMgZm9yIGRvY3MuCiAgIAoyMDAyLTAzLTA2IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBleGFtcGxlIE1JQiB0ZW1wbGF0ZSAoYW5kIG9uZSBub2RlKQogICAKMjAwMi0wMy0wNiAxNjoyOCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1NSUIudHh0OgoKICAgaW5zdGFudGlhdGUgZXhhbXBsZXMKICAgCjIwMDItMDMtMDYgMTY6MjcgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIHNvbWUgTlMgbWlicwogICAKMjAwMi0wMy0wNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBzY2FsYXJfaW50LmMsIHNjYWxhcl9pbnQuaDoKCiAgIEV4YW1wbGUgaW1wbGVtZW50YXRpb24gb2YgYSBTTk1QIGVuYWJsZWQgaW50IHJlZ2lzdGVyZWQgYXQgYSBzY2FsYXIuCiAgIAoyMDAyLTAzLTA2IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaAo6CgogICBtYW55IGNoYW5nZXMgZm9yIGluc3RhbmNlcy4gIFNwZWNpZmljaWNhbGx5OgogICAgIC0gYWxsb3cgZm9yIHN1YmhhbmRsZXJzLgogICAgIC0gcHJvdmlkZSBhbiBpbnQgd3JhcHBlci4KICAgICAtIHJldXNlIG1vcmUgY29kZS4KICAgICAtIG51bWVyb3VzIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICByZW1vdmUgYSBibGFuayBsaW5lLgogICAKMjAwMi0wMy0wNiAxNDowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9hZG1pbi5jOgoKICAgRml4IG1hc3RlciBhZ2VudCBnZXRidWxrIHN1cHBvcnQuICB0aGlzIGhhcyB0byBiZSBpbmRlcGVuZGVudGx5IG9mIHRoZQogICBub3JtYWwgYnVsay0+bmV4dCBmaXhlcyBkdWUgdG8gZGVsZWdhdGlvbi4gIExvbmcgc3RvcnkuCiAgIAoyMDAyLTAzLTA2IDE0OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgbW92ZSBidWxrX3RvX25leHQgZml4aW5nIGZ1bmN0aW9uYWxpdHkgaW50byBhIHNlcGFyYXRlIGZ1bmN0aW9uIGZvciByZXVzZS4KICAgCjIwMDItMDMtMDYgMTA6MjYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgICAtIHNwcmlua2xlIG1hZ2ljIGNvbnN0IGR1c3QKICAgCjIwMDItMDMtMDYgMTA6MTggIGpicG4KCiAgICogbWFuL21pYl9hcGkuMy5kZWY6CgogICAgIC0gZG9jdW1lbnQgY2hhbmdlZCBBUEksIGluY29ycG9yYXRpbmcgcGF0Y2hlcyBieSBHdXkgSGFycmlzLgogICAKMjAwMi0wMy0wNiAwOTozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTJhZ2VudHhzZXRmYWlsLCBUMTIycHJveHlzZXRmYWlsOgoKICAgZml4IHRlc3RzLgogICAKMjAwMi0wMy0wNiAwOToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIHJlLWVuYWJsZSBzZXR0aW5nIG9wdGluZCB0byAxIHRpbGwgRGF2ZSB0ZWxscyBtZSB3aGVyZSB0aGlzIGJyZWFrcy4KICAgCjIwMDItMDMtMDYgMDk6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUxc25tcHYyY3RyYXAsIFQwNTJzbm1wdjJjaW5mb3JtLAogICBUMDU4YWdlbnRhdXRodHJhcDoKCiAgIGZpeGVzIGZvciBuZXcgY29tbWFuZCBsaW5lIHVzYWdlLgogICAKMjAwMi0wMy0wNiAwOTowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgbW9yZSBpbXByb3ZlZCBlcnJvciBtZXNzYWdlcyAobW9zdGx5KQogICAKMjAwMi0wMy0wNiAwODo1NCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgYXV0b2NvbmYKICAgCjIwMDItMDMtMDYgMDg6NDEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYyAoVjQtMi1wYXRjaGVzLjMpLCBzbm1wdjMuYzoKCiAgIEZpeCBhIGNvbmZ1c2lvbiBiZXR3ZWVuIGRlZkF1dGhUeXBlIGFuZCBkZWZQcml2VHlwZS4KICAgCjIwMDItMDMtMDYgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBwcm90b2NvbC5jOgoKICAgcHJvcGVyIGZpeCBmb3Igbm90IHJlcXVpcmluZyByZXNwb25zZXMgdG8gQ0xFQU5VUCBtZXNzYWdlcy4KICAgCjIwMDItMDMtMDYgMDY6MDcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHplcm8gdGhlIG5hbWUgb2YgZWxlbWVudHMgb2YgdGhlIGJ1bGsgY2FjaGUKICAgCjIwMDItMDMtMDYgMDY6MDYgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjYWxsb2MoKSBub3QgbWFsbG9jKCkgaW4gYSBmZXcgcGxhY2VzIHRvIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzCiAgICAgICB0byB6ZXJvZXMuCiAgIAoyMDAyLTAzLTA2IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FwaS5jOgoKICAgQWN0dWFsbHkgdXNlIHRoZSBjb21tb24gJ2RlZlBhc3NwaHJhc2UnIHZhbHVlIGlmICdkZWZ7QXV0aCxQcml2fVBhc3NwaHJhc2UnIGlzbid0IHNldC4KICAgUW46IFNob3VsZCB0aGUgQXV0aFBhc3NwaHJhc2UgYWxzbyBiZSB1c2VkIGZvciBwcml2YWN5IGlmIG5vIG90aGVyIHZhbHVlIGlzIGF2YWlsYWJsZT8KICAgCjIwMDItMDMtMDYgMDU6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGRvbid0IHNlbmQgcmVxdWVzdHMgZm9yIE9JRHMgcHJlY2VlZGluZyB0aGUgc3RhcnQgb2YgYSByZWdpb24KICAgICAgICh0aGlzIGNhbiBsZWFkIHRvIGxvb3BzIGlmIGUuZy4gYSBzdWJhZ2VudCBoYXMgcmVnaXN0ZXJlZCB0d28KICAgICAgIGFkamFjZW50IHJvd3MpLgogICAKMjAwMi0wMy0wNiAwNTowNyAgamJwbgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgICAtIGlnbm9yZSBlcnJvcnMgZG9pbmcgcm0gLXJmIC90bXAvc25tcC10ZXN0KiB3aGVuIG1ha2luZyB0ZXN0Y2xlYW4KICAgCjIwMDItMDMtMDYgMDI6MjYgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSB1c2UgbW9yZSBlZmZpY2llbnQgZ2V0X3RyZWUoKSBpbiBzcHJpbnRfcmVhbGxvY192YWx1ZSgpCiAgIAoyMDAyLTAzLTA1IDE4OjI4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNXNubXB2MmNnZXRuZXh0LCBUMDAxc25tcHYxZ2V0LAogICBUMDAyc25tcHYxZ2V0bmV4dCwgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0CiwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsLCBUMTAwYWdlbnRodXA6CgogICBmaXhlcyBmb3IgbmV3IGZvcmNlZCAtYyBmbGFncwogICAKMjAwMi0wMy0wNSAxODoyMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGFwcHJvcHJpYXRlIGNvbW1lbnQuCiAgIAoyMDAyLTAzLTA1IDE4OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGZpeCBkdXBsaWNhdGUgZnJlZSBieSBjbG9uaW5nIHRoZSBwZHUgYmVmb3JlIHNlbmRpbmcgaXQgb3V0IGFnYWluCiAgICh0aG91Z2h0IEkgaGFkIGRvbmUgdGhpcyBvbmNlIGluIHRoZSBwYXN0IGFscmVhZHksIGJ1dCBJIGdvdCAxLzIgZnVuY3Rpb25zKS4KICAgCjIwMDItMDMtMDUgMTg6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgVGVtcG9yYXJ5IGZpeCB0byBmaXggZm9yIGFnZW50eCBTRVQgcmVxdWVzdHMuICBUaGlzIHJldmVyc2VzIGEKICAgcHJldmlvdXMgSm9obiBjaGFuZ2Ugd2hlcmUgcmVzcG9uc2VzIHRvIGNsZWFudXBzIGFyZSBub3cgZXhwZWN0ZWQKICAgYWdhaW4uICBUaGlzIHRvb2sgbWUgYSBnb29kIDIgZGF5cyB0byB0cmFjayBkb3duLCBzaWdoLi4uCiAgIAoyMDAyLTAzLTA1IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAtIGFkZCAoYXNjaWkpIGFnZW50eCBzdGF0ZSBkaWFncmFtCiAgIAoyMDAyLTAzLTA1IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIG11bHRpcGxlIGZyZWUgYnVnIGZpeGVzLgogICAtIGltcHJvdmVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMi0wMy0wNSAxMDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYywgbWFzdGVyX3JlcXVlc3QuaAo6CgogICByZW1vdmVkIHVudXNlZCBmaWxlcwogICAKMjAwMi0wMy0wNSAxMDozMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBvb3BzLCBmaXggYmFkIGN1dCBhbmQgcGFzdGUKICAgCjIwMDItMDMtMDUgMTA6MjUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmVpbnRyb2R1Y2Ugc2NvcGUgcHJvY2Vzc2luZyAoc2VlIFJGQyAyNzQxLCBwLiA2Niwgc2VjdGlvbiA3LjIuMy4yCiAgICAgICBwYXJhZ3JhcGggMik6ICJJZiB0aGUgc3ViYWdlbnQgY2FuJ3QgbG9jYXRlIGFuIGFwcHJvcHJpYXRlCiAgICAgICB2YXJpYWJsZSwgX192Lm5hbWVfaXNfc2V0X3RvX3RoZV9zdGFydGluZ19PSURfXyBbdGhlIGltcG9ydGFudAogICAgICAgYml0XSBhbmQgdGhlIFZhckJpbmQgaXMgc2V0IHRvIGBlbmRPZk1pYlZpZXcnIgogICAKMjAwMi0wMy0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIGltcG9zZSBtYXggbGVuZ3RoIHJlc3RyaWN0aW9uIHN1cHBsaWVkIGJ5IG1pYiBmb3IgY29uZmlndXJhdGlvbiBvcHRpb25zLgogICAKMjAwMi0wMy0wNSAwODo0OCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIHNubXBfYWdlbnQuYywKICAgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSB1c2UgbmV3IERFQlVHTVNHVkFSIG1hY3JvIGluIGEgZmV3IHBsYWNlcwogICAKMjAwMi0wMy0wNSAwODo0NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaDoKCiAgICAgLSBhZGQgREVCVUdNU0dWQVIgbWFjcm8gdG8gcHJpbnQgb3V0IGEgdmFyaWFibGUKICAgCjIwMDItMDMtMDUgMDg6MzQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBwcmludF92YWx1ZSBmdW5jdGlvbiB1cGRhdGVzLgogICAKMjAwMi0wMy0wNSAwODowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiB1Y2REZW1vUHVibGljLmMgKFY0LTItcGF0Y2hlcy4yKSwKICAgdWNkRGVtb1B1YmxpYy5jOgoKICAgQWRkIG1pc3NpbmcgInN0YW5kYXJkIiBoZWFkZXJzLCBhbmQgdHdlYWsgYSB0eXBlIHNsaWdodGx5LgogICAoQmFzZWQgb24gcmVxdWVzdHMgZnJvbSBHcmVnb3J5IFRvdGgpLgogICAKMjAwMi0wMy0wNSAwODowNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZ3JyciwgYm90Y2hlZCBsYXN0IGZpeAogICAKMjAwMi0wMy0wNSAwODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBTZXQgdGhlIGRlZmF1bHQgY2FsbGJhY2sgc2Vzc2lvbiB2ZXJzaW9uIG51bWJlciB0byB0aGUgZ2VuZXJpYyAtMQogICB2ZXJzaW9uIGFsbG93aW5nIHRoZSBwZHUgdG8gcGFzc2VkIHdpdGhvdXQgdmVyc2lvbiBjaGVja2luZy4KICAgCjIwMDItMDMtMDUgMDc6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIG1vdmUgTlVMTCBjaGVjayB0byAqYmVmb3JlKiB5b3UgYWN0dWFsbHkgdXNlIHRoZSBwb2ludGVyLgogICAKMjAwMi0wMy0wNSAwNzo1OSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gbWFyayBJTkNMVVNJVkUgcmVxdWVzdHMgYXMgc3VjaAogICAKMjAwMi0wMy0wNSAwNzo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAtIHVzZSBhIGZvciBsb29wIGluc3RlYWQgb2YgYSB3aGlsZSBsb29wLCBqdXN0IGEgcHJlY2F1dGlvbiBmb3IgZnV0dXJlIHByb2JsZW1zLgogICAKMjAwMi0wMy0wNSAwNzo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9jaGVja19wYXJzZSkgYWxsb3cgaW50ZXJuYWwgc2V0IHRyYW5zYWN0aW9ucyB0byBiZSBwYXNzZWQgdG8KICAgICB0aGUgYWdlbnQsIHNpbmNlIGFnZW50eCBzZW5kcyB0aGVtLgogICAKMjAwMi0wMy0wNSAwNzoyMSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGRvbid0IGFkZCB0aGUgIm1vZHVsZSBJRCIgdG8gT0lEcyBpZiBpdCBpcyBudW1lcmljIGJlY2F1c2Ugd2UKICAgICAgIGNvdWxkbid0IGxvb2sgaXQgdXAgcHJvcGVybHkgKHRvIGF2b2lkIGhvcnJpYmxlIGxvb2tpbmcgb3V0cHV0CiAgICAgICBsaWtlIHRoaXM6ICJPSUQ6ICMtMTo6aXNvLjIuMy40LjUuIikKICAgCjIwMDItMDMtMDUgMDc6MDUgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gMmMgaW4gZXJyb3IgbWVzc2FnZSBmcm9tIHZlcnNpb24gcHJvbXB0CiAgIAoyMDAyLTAzLTA1IDA3OjAxICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSByZW1vdmUgZHVwbGljYXRlIHRlc3RzCiAgIAoyMDAyLTAzLTA1IDA2OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gcmUtZW1waGFzaXMgYSBzdWdnZXN0aW9uIHRvIHN3aXRjaCB0byBhIHNlY3VyZSB2ZXJzaW9uIG9mIHRoZSBwcm90b2NvbC4KICAgLSBkZWxldGUgbm90aW9uIHRoYXQgdjMgd2l0aG91dCBhdXRoL3ByaXYgcHJvdmlkZXMgYmV0dGVyIHNlY3VyaXR5IChpdCBkb2Vzbid0KS4KICAgLSBEb24ndCBhY2NlcHQgdjJjIGFzIGFuIGFjY2VwdGVkIHZhbHVlLCBhcyBpdCdzIHVzZWQgYXMgYW4gaW50LgogICAgIC0gYnV0IGRvIGNoYW5nZSBoZWxwIG1lc3NhZ2VzLCBldGMsIHRvIHJlZmxlY3QgdGhhdCAyID0gdjJjLgogICAKMjAwMi0wMy0wNSAwNjo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIENhc3QgYSBjYWxsb2MgYXBwcm9wcmlhdGVseSAocmVxdWVzdGVkIGJ5IEdyZWdvcnkgVG90aCkKICAgCjIwMDItMDMtMDUgMDY6MjAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSBmaXggdHlwbyBpbiBPQkpTIGRlZmluaXRpb24KICAgCjIwMDItMDMtMDUgMDY6MTggIGpicG4KCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAgIC0gY2xlYW4gdGFyZ2V0IGRlcGVuZHMgb24gJChPQkpTKSBhbmQgJChMT0JKUyksIHNvIGRlZmluZSB0aGVtCiAgIAoyMDAyLTAzLTA1IDAzOjUyICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBmaXggZGVmYXVsdCB2ZXJzaW9uIHRlc3RzIChzcGxpdHRpbmcgdGhlbSBvdmVyIHNldmVyYWwgbGluZXMKICAgICAgIGNvbmZ1c2VzIHNoIG9uIFNvbGFyaXMsIGF0IGxlYXN0KS4KICAgCiAgICAgLSBkaXNhbWJpZ3VhdGUgc29tZSBpbnN0YW5jZXMgb2YgInZlcnNpb24iIGluIGRlZmF1bHQgdmVyc2lvbgogICAgICAgcHJvbXB0IHRleHQuCiAgIAoyMDAyLTAzLTA1IDAyOjM0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIENvcnJlY3RseSBkZXRlY3Qgd2hlbiBubyBpbml0aWFsIGRlZmF1bHQgdmVyc2lvbiBoYXMgYmVlbiBzZXQuCiAgIEFjY2VwdCAnMmMnIGFzIHdlbGwgYXMgJzInIGZvciBhIGRlZmF1bHQgdmVyc2lvbiBjaG9pY2UuCiAgIEZpeCB0aGUgdGl0bGUgZm9yIHRoaXMgcHJvbXB0LCBhbmQgcmV3b3JkIHRoZSBkZXNjcmlwdGlvbiB0bwogICBtYWtlIGl0IGEgKnNsaWdodGx5KiBsZXNzIGxlYWRpbmcgcXVlc3Rpb24sIG0nbHVkLgogICAKICAgUW46IFNob3VsZCB3ZSBzdXBwb3J0IGEgIm5vIGRlZmF1bHQgdmVyc2lvbiIgb3B0aW9uID8KICAgICAoaGVuY2UgYWxsb3cgdGhlIGFkbWluIHRvIGZvcmNlIHRoZSBkZWNpc2lvbiBkb3duIHRvIHRoZSB1c2VyKQogICAKMjAwMi0wMy0wNCAxODoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAgY2hhbmdlCiAgIAoyMDAyLTAzLTA0IDE4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAoVG8gSm9obik6IGRvIG5vdCBmcmVlIHRoZSBteXZvaWQgcG9pbnRlciBpbiBhIGhhbmRsZXIuICBZb3UgY2FuIG5vdAogICBhc3N1bWUgdGhhdCBpdCdzIGEgZnJlZWFibGUgcmVzb3VyY2UuICBGb3IgaW5zdGFuY2UsIHRoZSBhZ2VudHggbWFzdGVyCiAgIGFnZW50IHdhcyB1c2luZyBpdCB0byBzdG9yZSB0aGUgbWFzdGVyIHNlc3Npb24gcG9pbnRlciBpbiBpdCAod2hpY2gKICAgd291bGQgZXhpc3QgaW4gbXVsdGlwbGUgcmVnaXN0ZXJlZCBub2RlcykuCiAgIAoyMDAyLTAzLTA0IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgdXNlIGEgY29uZmlndXJlIGdlbmVyYXRlZCB3cmFwcGVyIGhlYWRlciBmb3IgdjMgc2VjdXJpdHkgbW9kdWxlcy4KICAgCjIwMDItMDMtMDQgMTE6NTggIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGFkZCBkbWFsbG9jLmggdG8gdGhlIHByb3BlciBwbGFjZS4KICAgCjIwMDItMDMtMDQgMTE6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHN0cmluZyBjbGVhbiB1cHMuCiAgIAoyMDAyLTAzLTA0IDExOjUyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEltcGxlbWVudCBhIGRlZmF1bHQgdmVyc2lvbiBwcm9tcHQgZm9yIGNvbmZpZ3VyZS4KICAgIC0gKFdlcyBkdWNrcyBhcyB0aGlzIGlzIGN1cnJlbnRseSBzZXQgdG8gJzMnIHdoaWNoIGhlIG1heSBoYXZlIHRvCiAgICAgICBjaGFuZ2UgYXMgaXQgaGFzbid0IGV4YWN0bHkgYmVlbiBhZ3JlZWQgdXBvbiBhcyB0aGUgcHJvcGVyIGRlZmF1bHQgeWV0KS4KICAgIC0gLS13aXRoLWRlZmF1bHQtc25tcC12ZXJzaW9uIGFsc28gY3JlYXRlZC4KICAgIC0gY2hhbmdlZCBoYW5kbGluZyBvZiBkZWZhdWx0IHN0b3JlIC8gc25tcC5jb25mIHVzYWdlIGJ1dCBpbXBhY3QKICAgICAgc2hvdWxkIGJlIGxvdywgaG9wZWZ1bGx5LgogICAKMjAwMi0wMy0wNCAxMTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYSBmZXcgZXJyb3Igc3RyaW5ncyBzbGlnaHRseSBpbXByb3ZlZC4gIFdlIHJlYWxseSBuZWVkIHRvIGNoYW5nZSB0aGUKICAgd2F5IHRoZXNlIGFyZSBoYW5kbGVkIHRvIGdldCBiZXR0ZXIgaW1wcm92ZW1lbnQuCiAgIAoyMDAyLTAzLTA0IDA3OjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgc2VwYXJhdGUgb3V0IHRoZSBjbGVhbmluZyBvZiAvdG1wIGZyb20gdGhlIG1haW4gY2xlYW5pbmcgdG8gcHJvdmlkZSBpdAogICBhcyBhIHNwZWNpYWwgdGFyZ2V0LgogICAKMjAwMi0wMy0wNCAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtV2FsbCBmaXhlcy4KICAgCjIwMDItMDMtMDQgMDU6MzIgIGpicG4KCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMS5kZWYsIHNubXBidWxrd2Fsay4xLmRlZiwKICAgc25tcGdldC4xLmRlZiwgc25tcGdldG5leHQuMS5kZWYsIHNubXBzdGF0dXMuMS5kZWYKLCBzbm1wdGVzdC4xLmRlZiwgc25tcHRyYXAuMS5kZWY6CgogICAgIC0gcmVtb3ZlIGZ1cnRoZXIgaW5zdGFuY2VzIG9mIHBvc2l0aW9uYWwgY29tbXVuaXR5IHN0cmluZyBwYXJhbWV0ZXIsCiAgICAgICBhZnRlciBQYXRyaWNrIFdlbGNoZQogICAKMjAwMi0wMy0wNCAwNToyNSAgamJwbgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmLCBzbm1wd2Fsay4xLmRlZjoKCiAgICAgLSBwYXRjaGVzIGZyb20gUGF0cmljayBXZWxjaGUKICAgCjIwMDItMDMtMDQgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy42KSwgbWVtb3J5LmMKOgoKICAgQ29ycmVjdCBkZWJ1ZyBvdXRwdXQgbWVzc2FnZSAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMy0wMSAyMjo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBtYWtpbmcgdGhlIChzYW1lKSBkZWJ1Z2dpbmcgc3RhdGVtZW50IG1vcmUgdXNlZnVsLgogICAKMjAwMi0wMy0wMSAyMjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIHRvIGEgZGVidWdnaW5nIHN0YXRlbWVudC4KICAgCjIwMDItMDMtMDEgMTI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBtaWIuYywgc25tcF9hcGkuYywKICAgc25tcF9jbGllbnQuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB2My5jOgoKICAgRmlyc3QgcGFzcyBhdCBhIGZldyBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMuCiAgIAoyMDAyLTAzLTAxIDEyOjAxICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgZG9uJ3QgaW5zdGFsbCBoZWFkZXJzIGhlcmUuCiAgIAoyMDAyLTAzLTAxIDA1OjQxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBhZGQgc25wcmludF92YWx1ZSwgc25wcmludF92YXJpYWJsZSwgc25wcmludF9vYmppZAogICAKMjAwMi0wMi0yOCAwNjo1NCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCjoKCiAgIEFkZCBiYWNrIHRoZSAnc25tcENhbGxiYWNrJyBkb21haW4gdW5kZXIgV2luZG93cy4KICAgCjIwMDItMDItMjcgMTA6MDQgIGpicG4KCiAgICogYXBwcy86IHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMKLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMKLCBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmM6CgogICAgIC0gdGFydCB1cCB1c2FnZSBtZXNzYWdlcywgbWFrZSB0aGVtIG1vcmUgY29uc2lzdGVudCBhbmQgYnJpbmcgaW4gbGluZQogICAgICAgd2l0aCBtYW51YWwgcGFnZXMKICAgCjIwMDItMDItMjcgMTA6MDMgIGpicG4KCiAgICogbWFuLzogc25tcHNldC4xLmRlZiwgc25tcHRhYmxlLjEuZGVmLCBzbm1wdHJhcC4xLmRlZgosIHNubXB1c20uMS5kZWY6CgogICAgIC0gbWlub3IgZm9ybWF0dGluZyBjaGFuZ2VzCiAgIAoyMDAyLTAyLTI3IDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgc25tcF9wYXJzZV9hcmdzLmMKOgoKICAgICAtIGRyb3AgY29tbXVuaXR5IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAogICAgIC0gdGFydCB1cCB1c2FnZSBtZXNzYWdlcyB0byBiZSBtb3JlIGNvbnNpc3RlbnQgYW5kIGluIGxpbmUgd2l0aCBtYW51YWwKICAgICAgIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogdmFjbS5jIChWNC0yLXBhdGNoZXMuNCksIHZhY20uYzoKCiAgIEhhbmRsZSB2aWV3cyB0aGF0IHNwZWNpZnkgYSBmdWxsIGluc3RhbmNlIE9JRC4KICAgKFNpbmNlIHRoZSBpbnRlcm5hbGx5IHN0b3JlZCBPSUQgcHJlcGVuZHMgdGhlIGxlbmd0aCBhcyB3ZWxsLAogICAgdGhlIGFwcGFyZW50IGxlbmd0aCBpcyBvbmUgZ3JlYXRlciB0aGFuIGl0IHJlYWxseSBpcykKICAgCjIwMDItMDItMjcgMDY6NTAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBbQUREUkVTU0VTXSAtPiBbTElTVEVOSU5HIEFERFJFU1NFU10gaW4gdXNhZ2UgbWVzc2FnZSwgdG8gbWF0Y2gKICAgICAgIG1hbnVhbCBwYWdlLgogICAKMjAwMi0wMi0yNyAwNjowOSAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkcm9wIG9wdGlvbmFsIHBvc2l0aW9uYWwgY29tbXVuaXR5IHBhcmFtZXRlciBmcm9tIHRyYXBzZXNzCiAgICAgICBkZXNjcmlwdGlvbi4KICAgCjIwMDItMDItMjcgMDU6NTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jOgoKICAgICAtIGRyb3Agc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAogICAgIC0gbm8gc25wcmludF9ibGFoIHlldAogICAKMjAwMi0wMi0yNyAwNTo0MyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAoyMDAyLTAyLTI3IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCiAgICAgLSBkcm9wIGFyY2hhaWMgREVCVUdQIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNTozNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYzoKCiAgIFVzZSB0aGUgbW9yZSBpbmZvcm1hdGl2ZSAnb3V0cHV0X2FwaS5oJyBoZWFkZXIgZmlsZSBuYW1lCiAgICAgKEkgbXVzdCBoYXZlIG1pc3NlZCB0aGVzZSBlYXJsaWVyKQogICAKMjAwMi0wMi0yNyAwNTozNSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgICAgLSBkcm9wIGNvbW11bml0eSBwb3NpdGlvbmFsIHBhcmFtZXRlcgogICAKICAgICAtIHllcywgZm9yIG9uY2UgdGhlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gdXBkYXRlZCAqYmVmb3JlKiB0aGUKICAgY29kZSEKICAgCjIwMDItMDItMjcgMDU6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgICAtIGRvbid0IHVzZSBvYnNvbGV0ZSBERUJVR1AgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDU6MTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oLAogICBzeXN0ZW0uaDoKCiAgICAgLSBkcm9wIGFyY2hhaWMgREVCVUdQIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNToxMCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaDoKCiAgICAgLSBkb24ndCB1c2Ugb2Jzb2xldGUgREVCVUdQTCBmdW5jdGlvbgogICAKMjAwMi0wMi0yNyAwNDozMiAgamJwbgoKICAgKiBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wd2Fsay5jCiwgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDI6MjYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDItMjcgMDI6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUsIG5vLCBJIE1FQU4gaXQgdGhpcyB0aW1lCiAgIAoyMDAyLTAyLTI3IDAyOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI2IDEyOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2xlYXIgbmV3IG1lbW9yeSBhZnRlciByZWFsbG9jKCkgc2luY2UgcmVhbGxvYyBkb2Vzbid0IGRvIGl0LgogICAKMjAwMi0wMi0yNiAxMjozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGQgVU5TSUdORUQzMgogICAKMjAwMi0wMi0yNiAwODo1NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYywga2VybmVsX3N1bm9zNS5oLAogICBtaWJJSS9hdC5jLCBtaWJJSS9pY21wLmMsIG1pYklJL2ludGVyZmFjZXMuYywKICAgbWliSUkvaXAuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jLAogICBtaWJJSS92YXJfcm91dGUuYzoKCiAgICAgLSBjaGFuZ2UgY2FjaGUgaW1wbGVtZW50YXRpb24gYWZ0ZXIgc29tZSBpbnRlcmVzdGluZyBwcm9maWxpbmcgKHNlZQogICAgICAgbGVuZ3RoeSBuZXcgY29tbWVudCBpbiBrZXJuZWxfc3Vub3M1LmMpCiAgIAoyMDAyLTAyLTI2IDA4OjEzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvdGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBzbm1wbGliL3NubXAtdGMuYywKICAgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBSZW1vdmUgYXNzb3J0ZWQgZXh0cmFuZW91cyBeTSdzCiAgIAoyMDAyLTAyLTI2IDA3OjE0ICBkdHMxMgoKICAgKiBSRUFETUUud2luMzI6CgogICBBIHF1aWNrIGd1aWRlIHRvIGluc3RhbGxpbmcgdGhlIENvcmUgUGxhdGZvcm0gU0RLLCBuZWVkZWQgZm9yIHRoZSBXaW5kb3dzIGFnZW50LgogICAKMjAwMi0wMi0yNiAwNzowMyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiwgYXBwcy9zbm1wdHJhcGRfbG9nLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZW51bS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3dpbnNlcnZpY2UuYzoKCiAgIEFzc29ydGVkIG1pbm9yIHR3ZWFrcyB0byBlbnN1cmUgdGhhdCB0aGUgcHJvamVjdCBidWlsZHMgdW5kZXIgVmlzdWFsIEMrKy4KICAgTW9zdGx5IGJlY2F1c2UgVkMrKyBpcyBmdXNzeSBhYm91dCBzb3J0LW9mLWNvbXBhdGlibGUgZGF0YSB0eXBlcwogICAgIChlLmcuIHNpZ25lZCB2cyB1bnNpZ25lZCBpbnRlZ2VycykuCiAgIAoyMDAyLTAyLTI2IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5pdHMuaCwgd2luMzIuZHN3LCB3aW4zMi5vcHQKLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsIG5ldHNubXBtaWJzL25ldHNubXBtaWJzLmRzcCwKICAgc25tcGQvc25tcGQuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIFJlbmFtZSAnbGlidWNkbWlicycgdG8gcmVmbGVjdCB0aGUgY2hhbmdlIG9mIHByb2plY3QgbmFtZSwKICAgYW5kIGFzc29ydGVkIHR3ZWFrcyBzbyB0aGF0IHRoZSBmdWxsIHByb2plY3QgYnVpbGRzIHVuZGVyIFZpc3VhbCBDKysuCiAgICAgKE4uQjogVGhlIGFnZW50IHJlcXVpcmVzICJNaWNyb3NvZnQgUGxhdGZvcm0gQ29yZSBTREsiIGluIG9yZGVyCiAgICAgICB0byBidWlsZCB0aGUgJ25ldHNubXBtaWJzJyBwcm9qZWN0KQogICAKMjAwMi0wMi0yNiAwNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIHJlbW92ZSBkdXBsaWNhdGUgdmFyaWFibGUgaW4gYSB3YXJuaW5nCiAgIAoyMDAyLTAyLTI2IDA2OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDItMjUgMjE6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtb3JlIGluc3RhbGwgY2hhbmdlcwogICAKMjAwMi0wMi0yNSAyMTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaW5zdGFsbGluZyBEQkQ6OkZpbGUuCiAgIAoyMDAyLTAyLTI1IDIwOjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgb25lIHRvbyBtYW55ICcwJ3MgaW4gYSB1cmwuCiAgIAoyMDAyLTAyLTI1IDIwOjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgcmV3b3JkLgogICAKMjAwMi0wMi0yNSAyMDozMCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIG1vdmUgd2FybmluZyBvdXRzaWRlIHNlY29uZGFyeSB3YXJuaW5nIGF1Z21lbnRhdGlvbiBsb29wLgogICAKMjAwMi0wMi0yNSAyMDoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHVwZGF0ZSBTUUw6OlN0YXRlbWVudCBtb2R1bGUuCiAgIAoyMDAyLTAyLTI1IDE2OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgYWRkIGZpbmRfdGFibGVfYXJyYXlfaGFuZGxlcigpOyByZW1vdmUgZGVidWdnaW5nIGNvZGUvY29tbWVudHM7CiAgIG1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSByaWdodCBoYW5kbGVyIGJlZm9yZSB1c2luZyB0aGUgdm9pZCBwb2ludGVyOwogICByZW1vdmUgXk0gY2hhcmFjdGVycwogICAKMjAwMi0wMi0yNSAxMTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oCjoKCiAgIDIgbmV3IGZ1bmN0aW9ucy4KICAgCjIwMDItMDItMjUgMTE6MTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc2V0IHNlY3VyaXR5IG1vZGVsCiAgIAoyMDAyLTAyLTI1IDA4OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jCiwgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oLCB3aW4zMi93aW4zMi5kc3c6CgogICBDb250aW51aW5nIGltcHJvdmVtZW50cyB0byBjb21waWxhdGlvbiBvZiB0aGUgbGF0ZXN0IGNvZGUgdW5kZXIgVmlzdWFsIEMrKy4KICAgVGhlICdsaWJoZWxwZXJzJyBwcm9qZWN0IG5vdyBjb21waWxlcywgYW5kIHRoaXMgYWxzbyBhZGRyZXNzZXMgYSBudW1iZXIKICAgb2Ygd2FybmluZ3MgYW5kIGVycm9ycyBpbiB0aGUgbGliYWdlbnQgYW5kIGxpYnVjZG1pYnMgcHJvamVjdHMuCiAgICAgQnV0IHRoZXNlIHR3byBzdGlsbCBmYWlsIG9uICdPSURfTEVOR1RIJyBhbmQgJ2lwaGxwYXBpLmgnCiAgIAoyMDAyLTAyLTI1IDA3OjAwICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlX2NvbmZpZy5oOgoKICAgUHJvdmlkZSBhIHBsYXVzaWJsZSBtb2R1bGUgY29uZmlndXJhdGlvbiBsaXN0IGZvciB0aGUgV2luZG93cyBhZ2VudC4KICAgCjIwMDItMDItMjUgMDY6MDQgIGpicG4KCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgICAtIHJlc29sdmUgY29uZmxpY3RpbmcgU1lOVEFYZXMgZm9yIG5zVHJhbnNhY3Rpb25Nb2RlCiAgIAogICAgIC0gYWRkIHJhbmdlIGZvciBpbmRleCBuc1RyYW5zYWN0aW9uSUQKICAgCjIwMDItMDItMjUgMDM6MjMgIGR0czEyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIEVuc3VyZSB0aGUgbWFpbiBsaWJyYXJ5IGNvbXBpbGVzIGFuZCB3b3JrcyB1bmRlciBXaW5kb3dzLgogICAKMjAwMi0wMi0yNSAwMzoxOSAgZHRzMTIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuaCwgc25tcHRyYXBkLmM6CgogICBFbnN1cmUgc25tcHRyYXBkIGNvbXBpbGVzIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI1IDAzOjA5ICBkdHMxMgoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMsIG9pZF9zdGFzaC5jLCBzbm1wLXRjLmMsCiAgIHVjZF9jb21wYXQuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBrZWVwIFZpc3VhbCBDKysgaGFwcHkuCiAgIAoyMDAyLTAyLTI1IDAyOjU3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKCiAgIFdyYXAgd2l0aCAiZXh0ZXJuIEMiCiAgIAoyMDAyLTAyLTI1IDAyOjU2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oOgoKICAgUGFuZGVyIHRvIENQUCdzIGluY3JlZGlibHkgZnVzc3kgbmF0dXJlLCBhbmQgcHJvdmlkZSB0aGUgY29ycmVjdCBoZWFkZXIgZmlsZSBuYW1lLgogICAKMjAwMi0wMi0yNSAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXBkLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGRlYnVnIHRva2VuIGZvciBkaXNwbGF5aW5nIHRoZSBsaXN0IG9mIG1vZHVsZXMKICAgKHNwb3R0ZWQgYnkgQnJpYW4gU2hhdmVyKQogICAKMjAwMi0wMi0yMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IEBmb3JlYWNoICR2YXIxICR2YXIyIGVudW1zQAogICAKMjAwMi0wMi0yMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgcmVtb3ZlIHRyYWlsaW5nIDsncyBmcm9tIHNxbCBzdGF0ZW1lbnRzLgogICAKMjAwMi0wMi0yMiAxMDo1NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYzoKCiAgIGRlZmluZSBuZXRzbm1wX3N0cmR1cF9hbmRfbnVsbAogICAKMjAwMi0wMi0yMiAxMDo1MyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSB1dGlsaXRpZXMuCiAgIAoyMDAyLTAyLTIyIDEwOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICAtIGRvbid0IGxvb3AgYWdhaW4gZm9yIHNlY29uZGFyeSBTRVQgbW9kZXMgYW5kIGNhY2hlIGluZm9ybWF0aW9uIGluc3RlYWQuCiAgIC0gdmFyaW91cyBmaXhlcy4KICAgCjIwMDItMDItMjIgMTA6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbCBkaXJlY3RvcmllcyBmb3IgaGVhZGVycwogICAKMjAwMi0wMi0yMiAxMDo0OSAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tY29tcGlsZS1zdWJhZ2VudCBmb3IgYXV0b21hdHRlZCBzdWJhZ2VudCBjb21waWxhdGlvbiBmcm9tCiAgIG1pYm1vZHVsZSAuYyBmaWxlcyA7LSkKICAgCjIwMDItMDItMjIgMDk6MjcgIGR0czEyCgogICAqIHNubXBsaWIvOiBNU0cwMDAwMS5iaW4sIHdpbnNlcnZpY2UubWMgKFY0LTItcGF0Y2hlcy5bMSwxXSksCiAgIE1TRzAwMDAxLmJpbiwgd2luc2VydmljZS5tYzoKCiAgIEFkZCBtaXNzaW5nIGZpbGVzIGZvciBXaW5kb3dzIHNlcnZpY2Ugb3BlcmF0aW9uLgogICAKMjAwMi0wMi0yMiAwODo1NSAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEp1c3QgY2xvc2UgdGhlIG1haW4gc2Vzc2lvbiB3aGVuIHNodXR0aW5nIGRvd24gdW5kZXIgV2luZG93cywKICAgbm90IGV2ZXJ5dGhpbmcgKHNvIHRoYXQgaXQgY2FuIHN0aWxsIGdlbmVyYXRlIHRoZSBzaHV0ZG93biB0cmFwKS4KICAgCjIwMDItMDItMjIgMDg6NDAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgVHdlYWtzIHJlcXVpcmVkIHRvIGdldCB0aGUgbGlicmFyeSBjb21waWxpbmcgdW5kZXIgV2luZG93cyBWQysrCiAgIAoyMDAyLTAyLTIyIDA4OjM3ICBkdHMxMgoKICAgKiB3aW4zMi86IHNubXBzbV9pbml0LmgsCiAgIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLCBsaWJhZ2VudC9saWJhZ2VudC5kc3AsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcAosIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkL3NubXBkLmRzcCwKICAgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZi9zbm1wZGYuZHNwLAogICBzbm1wZ2V0L3NubXBnZXQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAosIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCBzbm1wdXNtL3NubXB1c20uZHNwLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFByb3ZpZGUgV2luZG93cy1zcGVjaWZpYyB2ZXJzaW9ucyBvZiBhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBoZWFkZXIgZmlsZXMsCiAgIGFuZCBhZGQgdGhlIG5ldyBpbmNsdWRlIHN0cnVjdHVyZSB0byB0aGUgcHJvamVjdCBmaWxlcy4KICAgCjIwMDItMDItMjIgMDc6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oOgoKICAgRGVmaW5lIHN0YW5kYXJkIE9JRCBsZW5ndGhzIGhlcmUgKHdoZXJlIHRoZXkncmUgYXZhaWxhYmxlIHRvIGFueQogICBmaWxlIHdhbnRpbmcgdG8gYWNjZXNzIHRoZSBPSUQgc3RydWN0dXJlcykKICAgCjIwMDItMDItMjIgMDM6MjQgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHYzLmM6CgogICBTdXBwb3J0ICIuLi4uIC0zdSB7c2VjTmFtZX0gLi4uLiIgc3ludGF4CiAgIChpbiB0aGUgbm9ybWFsIGdldG9wdCBzdHlsZSAtIGkuZS4gbm8gbmVlZCBmb3Igc3Vycm91bmRpbmcgcXVvdGVzKQogICAKICAgSXQgc2hvdWxkIG5vdyBiZSBwb3NzaWJsZSB0byBzd2l0Y2ggdG8gdGhpcyBhcyB0aGUgcmVjb21tZW5kZWQgZm9ybQogICBmb3IgU05NUHYzIG9wdGlvbnMgLSBpZiB0aGF0J3Mgd2hhdCB3ZSB3YW50IHRvIGRvLgogICAgIFFuOiAgRG8gd2Ugd2FudCB0bz8KICAgCjIwMDItMDItMjEgMDg6MzkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBTdXBwb3J0ICItM3Uge3NlY05hbWV9IiBzeW50YXggKCp3aXRoKiB0aGUgcXVvdGVzLCB1bmZvcnR1bmF0ZWx5KS4KICAgTm93IGNvbWVzIHRoZSBmdW4gYml0Li4uLi4KICAgCjIwMDItMDItMjEgMDc6NTQgIGR0czEyCgogICAqIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIEZpeCBib2d1cyBzdHJ1Y3R1cmUgY29tbWVudHMgaW4gdGhlIHNubXBkIHByb2plY3QgZmlsZS4KICAgCjIwMDItMDItMjEgMDc6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvOiBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gZHJvcCBpbmxpbmUgKG1vcmUgdHJvdWJsZSB0aGFuIGl0IGlzIHdvcnRoKQogICAKMjAwMi0wMi0yMSAwNTowMCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdjMuYzoKCiAgIEZpcnN0IHBhc3MgYXQgYW4gU05NUHYzICJjb21iaW5lZC1vcHRpb24iIGNvbW1hbmQtbGluZSBmbGFnICgtM3gpLgogICAoSW4gKmFkZGl0aW9uKiB0byB0aGUgY3VycmVudCBjb21tYW5kLWxpbmUgZmxhZ3MsIEkgaGFzdGVuIHRvIGFkZCEpCiAgIAogICBTdXBwb3J0cyAgIi4uLiAtM3V7c2VjTmFtZX0gLi4uIiBhbmQgIi4uLiAtM3U9e3NlY05hbWV9IC4uLiIgc3ludGF4LAogICBidXQgbm90IHRoZSBzZXBhcmF0ZSAiLi4uIC0zdSB7c2VjTmFtZX0gLi4uIiBzdHlsZS4KICAgCiAgIEkgaGF2ZW4ndCB0b3VjaGVkIHRoZSBkb2N1bWVudGF0aW9uIG9yIHVzYWdlIG1lc3NhZ2UgdG8gbWVudGlvbiB0aGlzLgogICAKMjAwMi0wMi0yMCAxODoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgdXNlIGZvciBpbnN0ZWFkIG9mIGNvbnRpbnVlIGZvciBsb29wcy4KICAgCjIwMDItMDItMjAgMTM6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZHNfYWdlbnQuaDoKCiAgIC0gQWRkIGEgLS1xdWl0IG9wdGlvbiAoYW5kIGEgY29uZmlndXJhdGlvbiB0b2tlbikgc28gdGhhdCB5b3UgY2FuIG5vdwogICAgIGNyZWF0ZSBuZXcgdXNlcnMgYnkgc2ltcGx5IGNhbGxpbmcgc25tcGQgYXM6CiAgICAgICBzbm1wZCAtLWNyZWF0ZVVzZXI9Im15dXNlciBNRDUgbXlwYXNzd29yZCIgLS1xdWl0CiAgIC0gQ2hhbmdlIFJFQURNRS5zbm1wdjMgZG9jdW1lbnRhdGlvbiB0byBtYWtlIHVzZSBvZiB0aGlzIGZlYXR1cmUuCiAgIAoyMDAyLTAyLTIwIDA2OjE2ICBqYnBuCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXBkLmMsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBsaWJ3cmFwIHN1cHBvcnQgdG8gc25tcHRyYXBkICh1bnRlc3RlZCkKICAgCiAgICAgLSBtaW5vciBjaGFuZ2VzIHRvIHNubXBkIGxpYndyYXAgc3VwcG9ydAogICAKICAgICAtIGNvbmZpZ3VyZSBmaXhlcyBmb3IgbGlid3JhcAogICAKMjAwMi0wMi0yMCAwMzowNyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSB1c2UgY2FsbG9jIGluc3RlYWQgb2YgbWFsbG9jIHRvIG1ha2Ugc3VyZSBidWZmZXIgaXMgaW5pdGlhbGx5CiAgICAgICB6ZXJvLXRlcm1pbmF0ZWQgKGluIGNhc2Ugb2YgMCB2YXJiaW5kcykuICBCdWcgIzUxODcwMCwgbm90ZWQgYnkKICAgICAgIEFuZHJlYXMgSGFydG1hbm4uCiAgIAoyMDAyLTAyLTIwIDAzOjA2ICBqYnBuCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAgIC0gaW5pdGlhbGlzZSBzb21lIGJ1ZmZlcnMsIHRvIGF2b2lkIGdhcmJhZ2UgcHJpbnRpbmcgcHJvYmxlbXMsIGFzCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgaW4gYnVnICM1MjAyMjAuCiAgIAoyMDAyLTAyLTIwIDAzOjAzICBkdHMxMgoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgQ2xlYW4gdXAgdGhlIG9iamVjdCBmaWxlcyBhcyB3ZWxsCiAgIAoyMDAyLTAyLTIwIDAxOjQxICBkdHMxMgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIElnbm9yZSB0aGUgbmV3IGNyb3Agb2YgZ2VuZXJhdGVkIG1hbiBwYWdlcy4KICAgCjIwMDItMDItMjAgMDE6MzcgIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIFN1cHBseSBtaXNzaW5nIGRvdWJsZS1xdW90ZSAgKG9vcHMpCiAgIAoyMDAyLTAyLTE5IDA0OjAxICBkdHMxMgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIEluaXRpYWxpc2UgdGhlIGxpYnJhcnkgaW50ZXJuYWxzICpiZWZvcmUqIHBhcnNpbmcgdGhlIGNvbW1hbmQgbGluZSwKICAgc28gdGhhdCBkZWZhdWx0cyBjYW4gYmUgb3ZlcnJpZGRlbiBieSBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgICBRbjogIFNob3VsZCAnX2luaXRfc25tcCcgYmUgaW52b2tlZCBieSAnc25tcF9wYXJzZV9hcmdzJyBpdHNlbGY/CiAgIAoyMDAyLTAyLTE5IDAzOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTWFrZSBzdXJlIHRoYXQgbXVsdGlwbGUgb3V0cHV0IGZvcm1hdCBmbGFncyB3b3JrIGluIGEgY29uc2lzdGVudCBtYW5uZXIuCiAgIChpLmUuIHRoZSBsYXN0IG9uZSBpcyB1c2VkLCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGludGVybmFsIG9yZGVyaW5nKS4KICAgCjIwMDItMDItMTggMjE6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGVzdGRlbGF5ZWQuYywgdGVzdGhhbmRsZXIuYzoKCiAgIGluY2x1ZGUgc3RkbGliLmgKICAgCjIwMDItMDItMTggMjE6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgZml4IGluY2x1ZGVzCiAgIAoyMDAyLTAyLTE4IDIxOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIC0gbWFrZSBjYXBhYmlsaXR5IHRvIGNyZWF0ZSBkYXRhIGNvbnRleHRzIGZyb20gYSBsb29wIGNvbnRleHQgKGxlc3MKICAgICBtYWxsb2NzIHdoZW4gbWFsbG9jcyBhcmVuJ3Qgb3RoZXJ3aXNlIGF2b2lkYWJsZSkuCiAgIC0gZG9uJ3QgZG91YmxlIGZyZWUgdGhlIGRhdGEgY29udGV4dCBwb2ludGVyLgogICAKMjAwMi0wMi0xOCAyMTo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSBhbGwgYWdlbnQgaGVscGVycy4KICAgCjIwMDItMDItMTggMjE6NDkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaDoKCiAgIHByb3RlY3QgaW5jbHVkZSBmcm9tIGRvdWJsZSBpbmNsdWRlCiAgIAoyMDAyLTAyLTE4IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICBmaXggaW5jbHVkZSBwYXRocwogICAKMjAwMi0wMi0xOCAwMjozNSAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBUd2VhayB0aGUgbGlzdCBvZiBoZWFkZXIgZmlsZXMgdG8gYmUgaW5zdGFsbGVkICh0aGFua3MgdG8gQ2hyaXN0b3BoIE1hbW1pdHpzY2gpCiAgIAoyMDAyLTAyLTE4IDAyOjI5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3RvcmFnZS5jIChWNC0yLXBhdGNoZXMuNyksIGhyX3N0b3JhZ2UuYwo6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgdW5oZWxwZnVsIE9TRiBkZWZpbml0aW9ucyAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMi0xOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBkb24ndCBidWlsZCBvaWQncyB3aXRoID4xMjggbGVuZ3RoIHN1Ymlkcy4gIChzZWUgYnVnICM1MTg4NTUpCiAgIAoyMDAyLTAyLTE2IDIzOjE4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTkVULVNOTVAtTUlCLnR4dCwgTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0LAogICBORVQtU05NUC1TWVNURU0tTUlCLnR4dCwgTkVULVNOTVAtVEMudHh0OgoKICAgd2hpdGUgc3BhY2UgY2xlYW4gdXAuICAoQUdFTlQtTUlCIG5vdCBjaGVja2VkIGluIGR1ZSB0byBvdGhlcgogICBpbmNvbXBsZXRlIGNoYW5nZXMpLgogICAKMjAwMi0wMi0xNiAwMDoxNyAgaGFyZGFrZXIKCiAgICogTkVXUywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIGZpbmlzaCBpbXBsZW1lbnRpbmcgc25tcF9jb25maWcoIm15IGNvbmZpZyBsaW5lIikKICAgICAtIHdhcyBkb25lIGJlZm9yZSwgYnV0IHByZXZpb3VzbHkgaGFkIHRvIGJlIGNhbGxlZCBvbmx5IGFmdGVyCiAgICAgICBjb25maWd1cmF0aW9uIGZpbGVzIGhhZCBiZWVuIHJlYWQuICBOb3cgY2FuIGJlIGNhbGxlZCBhdCBhbnkgdGltZS4KICAgLSBtYWtlIGFsbCBjb25maWd1cmF0aW9uIG9wdGlvbnMgYXZhaWxhYmxlIGFzIC0tbG9uZ29wdHMgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgLSAtLXNvbWV0aGluZz12YWx1ZSAtPiAic29tZXRoaW5nIHZhbHVlIgogICAgIC0gLS1zb21ldGhpbmcgICAgICAgLT4gInNvbWV0aGluZyAxIiAod29ya3MgZm9yIHNldHRpbmcgYm9vbGVhbnMgdG8gdHJ1ZSkKICAgCjIwMDItMDItMTYgMDA6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoyMDAyLTAyLTE2IDAwOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBycG0gZm9yIDQuMC4zIGFuZCBhYm92ZSAob3Igd2hlbmV2ZXIgaXQgd2FzIHRoYXQgd2Ugbm93IG5lZWQgbGlicnBtZGIpCiAgIAoyMDAyLTAyLTE2IDAwOjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUucnVsZXM6CgogICBmaXggbmV0LXNubXAtY29uZmlnIGluc3RhbGwvY2xlYW4vZXRjLgogICAKMjAwMi0wMi0xNSAyMjozNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgaW5zdGFsbCBhbGwgc3lzdGVtIGFuZCBtYWNoaW5lIGZpbGVzLCBzaW5jZSB0aGV5IGluY2x1ZGUgZWFjaCBvdGhlcgogICAKMjAwMi0wMi0xNSAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCwgbWlicy9ORVQtU05NUC1NSUIudHh0LAogICBtaWJzL05FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCwgbWlicy9ORVQtU05NUC1TWVNURU0tTUlCLnR4dAosIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgU2tlbGV0b24gZnJhbWV3b3JrIGZvciB0aGUgTmV0LVNOTVAgZW50ZXJwcmlzZSB0cmVlLgogICAoaW5jb3Jwb3JhdGluZyB0aGUgaW5pdGlhbCAnbnNUcmFuc2FjdGlvblRhYmxlJywgYnV0IG5vdGhpbmcgZWxzZSBhcyB5ZXQpCiAgIAoyMDAyLTAyLTE1IDA5OjEwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFJlbW92ZSBzdXBwb3J0IGZvciBkZXByZWNhdGVkIGNvbW1hbmQtbGluZSBvcHRpb25zLgogICAKMjAwMi0wMi0xNSAwNzoyOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3dpbnNlcnZpY2UuaCwgc25tcGxpYi93aW5zZXJ2aWNlLmMKLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3dpbnNlcnZpY2UucmMsIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIFN1cHBvcnQgZm9yIHJ1bm5pbmcgYXMgYSBXaW5kb3dzIHNlcnZpY2UuCiAgIChTdXBwbGllZCBieSBSYWp1IEtyaXNobmFwcGEgJiBMYXRodSBQcmFiaHUpCiAgIAoyMDAyLTAyLTE1IDA3OjI1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBTdG9rZSBXZXMnIHNlbnNlIG9mIHBhcmFub2lhIGJ5IGNvbmNlZGluZyB3aXRob3V0IGNvbW1lbnQuCiAgICAgICAoV2hhdCBtaWdodCBTaGllbGQgYmUgcGxvdHRpbmcgbm93Li4uLi4uKQogICAKMjAwMi0wMi0xNSAwNzoxOSAgamJwbgoKICAgKiBtYW4vc25tcHVzbS4xLmRlZjoKCiAgICAgLSBmaXggdGlueSBmb3JtYXR0aW5nIGVycm9yCiAgIAoyMDAyLTAyLTE1IDA3OjE3ICBkdHMxMgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBOT1RJRklDQVRJT04tTE9HLU1JQiAoc2luY2UgaXQncyBvbmUgb2YgdGhlIGRlZmF1bHQgbG9hZCBsaXN0ISkKICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5yYzoKCiAgIGZpbGUgd2luc2VydmljZS5yYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAyLTAyLTE1IDA2OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliL3dpbnNlcnZpY2UuaDoKCiAgIGZpbGUgd2luc2VydmljZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgZmlsZSB3aW5zZXJ2aWNlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjowOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgSW5jbHVkZSB0aGUgPHN5cy90aW1lLmg+IGNhc2NhZGUsIHRvIHBpY2sgdXAgdGhlIGRlZmluaXRpb24gb2YgJ3RpbWV2YWwnCiAgIAoyMDAyLTAyLTE1IDA0OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gbWlub3IgY2hhbmdlIHRvIGJyaW5nIHVzYWdlIG1lc3NhZ2UgaW4gbGluZSB3aXRoIG1hbnBhZ2UKICAgCjIwMDItMDItMTUgMDM6MjkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDYXRjaCB1c2Ugb2YgdGhlIHRyYW5zcG9ydCBhbmQgcG9ydCBvcHRpb25zLCBhbmQgaXNzdWUgYW4gYXBwcm9wcmlhdGUKICAgZXJyb3IgbWVzc2FnZSwgZGVzY3JpYmluZyB1c2Ugb2YgdGhlIDxob3N0bmFtZT4gcGFyYW1ldGVyIGluc3RlYWQuCiAgIAoyMDAyLTAyLTE1IDAzOjExICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmM6CgogICBTZXQgdGhlIGRlZmF1bHQgb3V0cHV0IGZvcm1hdCAqYmVmb3JlKiBwcm9jZXNzaW5nIGNvbW1hbmQgbGluZSBvcHRpb25zLAogICByYXRoZXIgdGhhbiBhZnRlci4gIFRoYXQncyBwcm9iYWJseSBhIGJpdCBtb3JlIGZsZXhpYmxlOi0pCiAgIAoyMDAyLTAyLTE1IDAyOjM3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogY29uZmlnX2FwaS5oLCBkZWZpbml0aW9ucy5oLAogICBtaWJfYXBpLmgsIG91dHB1dF9hcGkuaCwgcGR1X2FwaS5oLCBzZXNzaW9uX2FwaS5oCiwgc25tcHYzX2FwaS5oLCB0eXBlcy5oLCB1dGlsaXRpZXMuaCwKICAgdmFyYmluZF9hcGkuaDoKCiAgIFJlbW92ZSAnbmV0LXNubXAtY29uZmlnLmgnIGZyb20gdGhlIG1haW4gQVBJIGhlYWRlciBmaWxlcy4KICAgVGhpcyB3aWxsIGhhdmUgdG8gYmUgI2luY2x1ZGVkIHNlcGFyYXRlbHkgKGVpdGhlciBleHBsaWNpdGx5CiAgIG9yIHZpYSB0aGUgYWxsLWluLW9uZSAnbmV0LXNubXAtaW5jbHVkZXMuaCcgaGVhZGVyKQogICAKMjAwMi0wMi0xNSAwMjozMSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIFJFQURNRSB0byBkZXNjcmliZSB0aGUgc3RhdHVzIG9mIDxuZXQtc25tcC9saWJyYXJ5PiBhbmQgPG5ldC1zbm1wPiBoZWFkZXIgZmlsZXMuCiAgIAoyMDAyLTAyLTE1IDAyOjEzICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSB7c3lzdGVtLG1hY2hpbmV9LyouaCBoZWFkZXIgZmlsZXMgYXMgd2VsbC4KICAgCiAgIERvaW5nIHRoaXMgdmlhIHRoZSAnbWFuJyAmICdtaWJzJyBNYWtlZmlsZXMgaXMgYSBncm9zcyBoYWNrLAogICBhbmQgcmVhbGx5IG5lZWRzIHRvIGJlIGhhbmRsZWQgbW9yZSBjbGVhbmx5LiAgQnV0IGl0J3MgdGhlCiAgIGJlc3QgSSBjYW4gY29tZSB1cCB3aXRoIGF0IHRoZSBtb21lbnQuICBTb3JyeSAtIERhdmUuCiAgIAoyMDAyLTAyLTE1IDAxOjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIFVDRC1jb21wYXRhYmlsaXR5IGhlYWRlcnMgYXMgd2VsbC4KICAgCjIwMDItMDItMTUgMDE6NTcgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgT25seSBpbnN0YWxsIHN1YmRpcmVjdG9yeSBzdHVmZiAqb25jZSouICAoRG9uJ3QgYmUgc28gZW50aHVzaWFzdGljLCBEYXZlISkKICAgCjIwMDItMDItMTUgMDE6MzEgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBSZW1vdmUgcmVkdW5kZW50ICctQ04nIGFuZCAnLUNPJyBvcHRpb25zIGZyb20gdGhlIGV4YW1wbGUgc25tcHVzbSBjb21tYW5kLgogICAgIChhcyBtZW50aW9uZWQgYnkgV2VzIG9uIHRoZSB1c2VycyBtYWlsaW5nIGxpc3QgMjAwMi0wMi0xMykKICAgICBRbjogRG9lcyB0aGlzIG5lZWQgdG8gYmUgZG9uZSBvbiB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaCBhcyB3ZWxsPwogICAKMjAwMi0wMi0xNSAwMToxNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaCwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmVyc2lvbi5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaCwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIFJlc3RvcmUgJ3ZlcnNpb24uaCcgYXMgYmVpbmcgYSAidG9wLWxldmVsIiBoZWFkZXIgZmlsZS4KICAgCjIwMDItMDItMTUgMDE6MTMgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBmdWxsIHNldCBvZiBsaWJyYXJ5IGhlYWRlciBmaWxlcywKICAgcmV0YWluaW5nIHRoZSB0b3AtbGV2ZWwgdnMgbGlicmFyeSBzdWJkaXJlY3Rvcnkgc3BsaXQuCiAgIAoyMDAyLTAyLTE1IDAxOjEwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIExvb2sgZm9yIHRyYW5zcG9ydC1yZWxhdGVkIGhlYWRlciBmaWxlcyBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbi4KICAgCjIwMDItMDItMTUgMDE6MDkgIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgRW5zdXJlIHBhcnRpYWwgaW5zdGFsbCB0YXJnZXRzIHJlY3Vyc2UgcHJvcGVybHkuCiAgIAoyMDAyLTAyLTE0IDA4OjE4ICBkdHMxMgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBMb29rIGZvciBtaWJfbW9kdWxlX2NvbmZpZy5oIGluIHRoZSBjb3JyZWN0IGxvY2F0aW9uCiAgIAoyMDAyLTAyLTE0IDA4OjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBmaXggbWFuOCBpbnN0YWxsIGRlZmluaXRpb25zCiAgIAoyMDAyLTAyLTE0IDA3OjQ4ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcywgbmV0LXNubXAtY29uZmlnLmluOgoKICAgU3Vic3RpdHV0ZSB2YWx1ZXMgaW50byAnbmV0LXNubXAtY29uZmlnJyBwcm9wZXJseSwgYW5kIGRvbid0ICdtYWtlIGNsZWFuJyBpdCBhd2F5LgogICAKMjAwMi0wMi0xNCAwNzoyMiAgZHRzMTIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzCiAgIAoyMDAyLTAyLTE0IDA3OjE0ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoaW5jbHVkaW5nIE1ha2VmaWxlIGRlcGVuZGVuY2llcykKICAgCjIwMDItMDItMTQgMDc6MTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCwgYWdlbnQvYWdlbnRfdHJhcC5jCiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgVGlkeSB1cCBhZnRlciBtb3ZpbmcgdGhlIGxpYnJhcnkgaGVhZGVyIGZpbGVzIChpbmNsdWRpbmcgTWFrZWZpbGUgZGVwZW5kZW5jaWVzKQogICAKMjAwMi0wMi0xNCAwNzowOCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZSBhbiBleHRyYW5lb3VzIHNwYWNlIGZyb20gQ1BQRkxBR1MKICAgCjIwMDItMDItMTQgMDY6MjMgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBjb25maWdfYXBpLmgsIGRlZmluaXRpb25zLmgsCiAgIG1pYl9hcGkuaCwgbmV0LXNubXAtaW5jbHVkZXMuaCwgb3V0cHV0X2FwaS5oLAogICBwZHVfYXBpLmgsIHNlc3Npb25fYXBpLmgsIHNubXB2M19hcGkuaCwgdHlwZXMuaAosIHV0aWxpdGllcy5oLCB2YXJiaW5kX2FwaS5oOgoKICAgU2VwYXJhdGUgb3V0IHRvcC1sZXZlbCAicHVibGljIEFQSSIgbGlicmFyeSBoZWFkZXIgZmlsZXMgZnJvbSB0aGUgImludGVybmFsIgogICBsaWJyYXJ5IGhlYWRlciBmaWxlcy4gIFRoZXNlIGFyZSBzdGlsbCBhdmFpbGFibGUgZm9yIHVzZSBieSBhcHBsaWNhdGlvbgogICBkZXZlbG9wZXJzLCBidXQgdGhpcyBzcGxpdCBtYWtlcyBpdCBjbGVhcmVyIHdoYXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlCiAgIGFuZCB3aGF0IGNhbiBiZSByZWxpZWQgdXBvbiB0byBiZSBzdGFibGUuCiAgIAoyMDAyLTAyLTE0IDA2OjE5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FzbjEuaCwgaW5jbHVkZS9uZXQtc25tcC9jYWxsYmFjay5oLAogICBpbmNsdWRlL25ldC1zbm1wL2NtdV9jb21wYXQuaCwgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2xpc3QuaAosIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2dldG9wdC5oLCBpbmNsdWRlL25ldC1zbm1wL2ludDY0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaCwgaW5jbHVkZS9uZXQtc25tcC9sY2RfdGltZS5oCiwgaW5jbHVkZS9uZXQtc25tcC9saWJzbm1wLmgsIGluY2x1ZGUvbmV0LXNubXAvbWQ1LmgKLCBpbmNsdWRlL25ldC1zbm1wL21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL210X3N1cHBvcnQuaAosIGluY2x1ZGUvbmV0LXNubXAvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmgsIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hbGFybS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZW51bS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfdHJhbnNwb3J0LmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcGtzbS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS5oLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdWNkX2NvbXBhdC5oLCBpbmNsdWRlL25ldC1zbm1wL3ZhY20uaCwKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9SRUFETUUKLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY2FsbGJhY2suaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NtdV9jb21wYXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZ2V0b3B0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkva2V5dG9vbHMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tZDUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc2NhcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9lbnVtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfc2VjbW9kLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHVzbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcHYzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmFjbS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmVyc2lvbi5oLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaAosIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9kZWZhdWx0X3N0b3JlLmgsIGluY2x1ZGUvdWNkLXNubXAvaW50NjQuaAosIGluY2x1ZGUvdWNkLXNubXAva2V5dG9vbHMuaCwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaAosIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oLCBpbmNsdWRlL3VjZC1zbm1wL3BhcnNlLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3JlYWRfY29uZmlnLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc2NhcGkuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcC5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaAosIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaAosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIva2V5dG9vbHMuYywKICAgc25tcGxpYi9sY2RfdGltZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvb2lkX2FycmF5LmMsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIFNlcGFyYXRlIG91dCB0b3AtbGV2ZWwgInB1YmxpYyBBUEkiIGxpYnJhcnkgaGVhZGVyIGZpbGVzIGZyb20gdGhlICJpbnRlcm5hbCIKICAgbGlicmFyeSBoZWFkZXIgZmlsZXMuICBUaGVzZSBhcmUgc3RpbGwgYXZhaWxhYmxlIGZvciB1c2UgYnkgYXBwbGljYXRpb24KICAgZGV2ZWxvcGVycywgYnV0IHRoaXMgc3BsaXQgbWFrZXMgaXQgY2xlYXJlciB3aGF0IG1heSBjaGFuZ2UgaW4gdGhlIGZ1dHVyZQogICBhbmQgd2hhdCBjYW4gYmUgcmVsaWVkIHVwb24gdG8gYmUgc3RhYmxlLgogICAKMjAwMi0wMi0xNCAwNDo0MSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9kZWZpbml0aW9ucy5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL291dHB1dF9hcGkuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzX2FwaS5oLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvb2lkX3N0YXNoLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NjYXBpLmMsCiAgIHNubXBsaWIvc25tcC10Yy5jLCBzbm1wbGliL3NubXAuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwosIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYywKICAgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIEZpcnN0IG1vdmVzIHRvd2FyZHMgdXNpbmcgdGhlICJwdWJsaWMiIEFQSSBoZWFkZXIgZmlsZXMgaW4gdGhlIGxpYnJhcnkKICAgY29kZSBhcyB3ZWxsIChjb25jZW50cmF0aW5nIG9uIG91dHB1dC9jb25maWcvdXRpbGl0eSBoZWFkZXIgZmlsZXMpLgogICAKMjAwMi0wMi0xNCAwMzoxNyAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBDbG9zZSBhIGRhbmdsaW5nICJpZiIgYmxvY2suICAgKG9vcHMhKQogICAKMjAwMi0wMi0xNCAwMTo0NyAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMgKFY0LTItcGF0Y2hlcy40KSwgaWYuYzoKCiAgIENoZWNrIGZvciBydW5uaW5nIG9mZiB0aGUgZW5kIG9mIEkvRiB0YWJsZSAocGF0Y2ggZnJvbSBSZWRIYXQpCiAgIAoyMDAyLTAyLTE0IDAxOjQzICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgTGF0ZXN0IFJlZEhhdCBycG0tcmVsYXRlZCBwYXRjaAogICAKMjAwMi0wMi0xNCAwMTozOSAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBBZG9wdCBSZWRIYXQncyBjb25maWd1cmUgdGVzdGluZyBmb3IgUlBNIGxpYnJhcmllcwogICAKMjAwMi0wMi0xMyAwODozOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBNYWtlIEpvaG4gdHJ1c3QgaGlzIGNvZGUKICAgCjIwMDItMDItMTMgMDg6MzQgIGpicG4KCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAgIC0gdHJhbnNwb3J0IGZpeGVzICh1bnRlc3RlZCwgc3RpbGwgI2lmIDApCiAgIAoyMDAyLTAyLTEzIDA4OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG1hcmsgc29tZSBKb2huLXRvLWRvLXNlY3Rpb25zCiAgIAoyMDAyLTAyLTEzIDA3OjU3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgbWFuL3NubXBjbWQuMS5kZWYsCiAgIHNubXBsaWIvbWliLmM6CgogICBTd2l0Y2ggdG8gdXNpbmcgLU9TIHN0eWxlIG91dHB1dCBieSBkZWZhdWx0LCBhbmQgZHJvcCB0aGUgcmVxdWlyZW1lbnQKICAgZm9yIGZ1bGwgT0lEcyB0byBzdGFydCB3aXRoICcuJywgcGx1cyBjb21tYW5kLWxpbmUgb3B0aW9ucyB0byByZXN0b3JlCiAgIHRoZSBvcmlnaW5hbCBVQ0Qtc3R5bGUgYmVoYXZpb3VyLgogICAKMjAwMi0wMi0xMyAwNzozNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIEFwcGx5IEpvaG4ncyBmaXggZm9yIGJ1Z3MgIzQ4OTMzNiBhbmQgIzUwODE0NiAoZHVwbGljYXRlIGNvbHVtbnMgYW5kCiAgIGNvbHVtbnMgaW4gd3Jvbmcgb3JkZXIpIHRvIHRoZSBtYWluIGJyYW5jaCBhcyB3ZWxsLgogICAKMjAwMi0wMi0xMiAxNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgY29uc3QgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvOiAuY3ZzaWdub3JlLCBBU04vLmN2c2lnbm9yZSwgYWdlbnQvLmN2c2lnbm9yZQosIGRlZmF1bHRfc3RvcmUvLmN2c2lnbm9yZToKCiAgIGFkZCAuY3ZzaWdub3JlIGZpbGUuCiAgIAoyMDAyLTAyLTEyIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBhZGQgYWdlbnQvYWdlbnRfaGFuZGxlci5oCiAgIAoyMDAyLTAyLTEyIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50Lmg6CgogICBjb25zdCBhZGRpdGlvbnMuCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBBZGQgc3RyaW5nLmgKICAgCjIwMDItMDItMTIgMTY6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIGFkZCBoZWFkZXIuCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXhlcyB0byByZWVuYWJsZSBkaXNtYW4gZXZlbnQgc3R1ZmYgZm9yIDUuMCBjb2RlLiAgTm90IGRvbmUgdGhlCiAgICJyaWdodCIgd2F5LCBidXQgaXQgd29ya3MuCiAgIAoyMDAyLTAyLTEyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIC0gLVdhbGwgZml4ZXMKICAgCjIwMDItMDItMTIgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIC0gYWRkIHN0ZGxpYi5oCiAgIC0gcmVtb3ZlIHVudXNlZCB2YXJpYWJsZS4KICAgCjIwMDItMDItMTIgMTY6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSBubyBsb25nZXIgdXNlZCAiZHVtcF92YXIiIHJvdXRpbmUuCiAgIAoyMDAyLTAyLTEyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgY29uc3Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBhZGRlZCBuZXcgcGVybCBzcGVjaWZpYyBmZWF0dXJlcy4KICAgCjIwMDItMDItMTIgMTY6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLlBITk9ZIG1vZHMKICAgCjIwMDItMDItMTIgMDc6MjIgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xvZ2dpbmdfYXBpLmgsIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oCjoKCiAgIFJlbmFtZSB0aGUgbG9nZ2luZyAmIHJlbGF0ZWQgb3V0cHV0IEFQSSBoZWFkZXIgZmlsZSwgdG8gYmV0dGVyCiAgIHJlZmxlY3QgdGhlIHNjb3BlIG9mIHRoaXMgQVBJLiAgKEFzIHN1Z2dlc3RlZCBieSBXZXMgJiBKb2huKQogICAKMjAwMi0wMi0xMiAwNzoyMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gYW1lbmQgZml4IHRvIGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSB0bwogICAgICAgYWN0dWFsbHkgYWRkIC1sbnNsIHRvIGxpbmsgcGFyYW1ldGVycyEKICAgCjIwMDItMDItMTIgMDU6MzkgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgLS0gVVNFX0xJQldSQVAKICAgICAgIHdhcyBub3QgYmVpbmcgI2RlZmluZWQgaW4gdGhlIGNhc2Ugd2hlcmUgLWxuc2wgaXMgbmVlZGVkIGluIGFkZGl0aW9uCiAgICAgICB0byAtbHdyYXAuCiAgIAoyMDAyLTAyLTExIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGxpYiBkZXBlbmRlbmN5IGZpeCBmb3Igc25tcGQgdGFyZ2V0CiAgIAoyMDAyLTAyLTExIDA4OjI5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2NtdV9jb21wYXQuaCwgaW5jbHVkZS9uZXQtc25tcC9taWIuaAosIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hcGkuaAosIGluY2x1ZGUvbmV0LXNubXAvc25tcF9pbXBsLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdWNkX2NvbXBhdC5oLCBzbm1wbGliL2NtdV9jb21wYXQuYywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIEV4dHJhY3QgQ01VX0NPTVBBVEFCSUxJVFkgY29kZSwgYW5kIGV4cGxpY2l0bHkgZGVwcmVjYXRlZCBVQ0QgY29kZSBpbnRvIHNlcGFyYXRlIGZpbGVzLgogICAKMjAwMi0wMi0xMSAwODoyMyAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfcGFyc2VfYXJncy5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfcGFyc2VfYXJncy5jCjoKCiAgIFVzZSB0aGUgJ2RzX3NldF94eHgnIGxpYnJhcnkgcm91dGluZXMsIHJhdGhlciB0aGFuIHRoZSBvbGQgJ3NubXBfc2V0X3h4eCcgY2FsbHMKICAgCjIwMDItMDItMTEgMDQ6NDUgIGpicG4KCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICBtaW5vciBzcGVsbGluZyB0d2Vha3MKICAgCjIwMDItMDItMTEgMDQ6MjcgIGpicG4KCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMy50b3AsIG1pYl9hcGkuMwosIG1pYl9hcGkuMy5kZWYsIHNubXBfYWdlbnRfYXBpLjMsCiAgIHNubXBfYWdlbnRfYXBpLjMuZGVmLCBzbm1wX2FsYXJtLjMsIHNubXBfYWxhcm0uMy5kZWYKLCBzbm1wX2FwaS4zLCBzbm1wX2FwaS4zLmRlZiwgc25tcF9zZXNzX2FwaS4zCiwgc25tcF9zZXNzX2FwaS4zLmRlZiwgc25tcF90cmFwX2FwaS4zLAogICBzbm1wX3RyYXBfYXBpLjMuZGVmLCB2YXJpYWJsZXMuNSwgdmFyaWFibGVzLjUuZGVmCjoKCiAgICAgLSBnZW5lcmF0ZSB0aGUgcmVzdCBvZiB0aGUgbWFudWFsIHBhZ2VzICh0byBnZXQgdmVyc2lvbiBpbiBmb290ZXIpCiAgIAoyMDAyLTAyLTA4IDE1OjU2ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBtaWJfbW9kdWxlX2NvbmZpZy5oLAogICBtaWJfbW9kdWxlX2luaXRzLmgsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsIHNubXBkL3NubXBkLmRzcDoKCiAgIHdpbjMyIHNwZWNpZmljIHBvcnRpb25zIG9mIHBhdGNoIDUwMzI1NgogICAKMjAwMi0wMi0wOCAxNTo1MyAgaGFyZGFrZXIKCiAgICogd2luMzIvbGliaGVscGVycy9saWJoZWxwZXJzLmRzcDoKCiAgIHBhdGNoIzUwMzI1NjogaGVscGVycyBsaWJyYXJ5IGRlZmluaXRpb24gZm9yIHdpbjMyCiAgIAoyMDAyLTAyLTA4IDA5OjA4ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIG1pbm9yIGZvcm1hdCB0d2Vha2FnZQogICAKMjAwMi0wMi0wOCAwODoyMiAgZHRzMTIKCiAgICogbWFuLzogbWliX2FwaS4zLCBzbm1wX2FnZW50X2FwaS4zLCBzbm1wX2FsYXJtLjMKLCBzbm1wX2FwaS4zLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBfdHJhcF9hcGkuMwo6CgogICBSZWZlcmVuY2UgdGhlIG5ldyBoZWFkZXItZmlsZXMgaW4gc2VjdGlvbiAzIG1hbiBwYWdlIHN5bm9wc2VzLgogICAKMjAwMi0wMi0wOCAwNzo1MCAgamJwbgoKICAgKiBtYW4vOiBtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wX2FnZW50X2FwaS4zCiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBfdHJhcF9hcGkuMywKICAgc25tcGNtZC4xLmRlZiwgc25tcGNvbmYuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgIHZhcmlhYmxlcy41OgoKICAgICAtIG1vcmUgbWlub3IgdHdlYWtzICh1Y2Qtc25tcCAtPiBOZXQtU05NUCBldGMuKQogICAKMjAwMi0wMi0wOCAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIGxvY2FsIG1vZHVsZXMgZnJvbSBkZXBlbmRlbmN5IGxpc3QKICAgCjIwMDItMDItMDggMDc6NDUgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9pbmRleC5jLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMKLCBhdXRvX25saXN0LmMsIGtlcm5lbC5jLCBtaWJfbW9kdWxlcy5jLAogICBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgaGVscGVycy9pbnN0YW5jZS5jLCBoZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGhlbHBlcnMvbnVsbC5jLCBoZWxwZXJzL29sZF9hcGkuYywgaGVscGVycy9yZWFkX29ubHkuYwosIGhlbHBlcnMvc2VyaWFsaXplLmMsIGhlbHBlcnMvdGFibGUuYywKICAgaGVscGVycy90YWJsZV9hcnJheS5jLCBoZWxwZXJzL3RhYmxlX2RhdGEuYywKICAgaGVscGVycy90YWJsZV9kYXRhc2V0LmMsIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBtaWJncm91cC90ZXN0ZGVsYXllZC5jLCBtaWJncm91cC90ZXN0aGFuZGxlci5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL1Jtb24vYWd1dGlsLmMsCiAgIG1pYmdyb3VwL1Jtb24vYWxhcm0uYywgbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBtaWJncm91cC9SbW9uL2hpc3RvcnkuYywgbWliZ3JvdXAvUm1vbi9yb3dzLmMsCiAgIG1pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jLAogICBtaWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jCiwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIG1pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvbWliSUkvYXQuYwosIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiwgbWliZ3JvdXAvbWliSUkvaXAuYywgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwdjYuYywgbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsCiAgIG1pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKLCBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYwosIG1pYmdyb3VwL21pc2MvZGxtb2QuYywgbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKLCBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiwgbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBtaWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMKLCBtaWJncm91cC90dW5uZWwvdHVubmVsLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYwosIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLCBtaWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMKLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMKLCBtaWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXQuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgVXNlIHRoZSBuZXcgJ25ldC1zbm1wLWluY2x1ZGVzJyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMsCiAgIGluIHBsYWNlIG9mIHRoZSAodW5pbnN0YWxsZWQpICdtaWJpbmNsLmgnLgogICAgIFdoZWVlZWUuLi4uLi4KICAgCjIwMDItMDItMDggMDc6MTcgIGpicG4KCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wX2FnZW50X2FwaS4zLAogICBzbm1wX2FsYXJtLjMsIHNubXBfYXBpLjMsIHNubXBfY29uZmlnLjUuZGVmLAogICBzbm1wX3Nlc3NfYXBpLjMsIHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgICAgLSBzb21lIGVkaXRpbmcgdG8gbWFrZSBzdHlsZSBjb25zaXN0ZW50LCBhZGQgc29tZSBtaXNzaW5nIG9wdGlvbnMsCiAgICAgICBjaGFuZ2UgdWNkLXNubXAgdG8gTmV0LVNOTVAgYW5kIHRoaW5ncyBsaWtlIHRoYXQuCiAgIAoyMDAyLTAyLTA4IDA3OjE0ICBqYnBuCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgICAgLSBnZW5lcmF0ZSBtYW4gcGFnZXMgYXQgY29tcGlsZSB0aW1lCiAgIAoyMDAyLTAyLTA4IDA3OjE0ICBqYnBuCgogICAqIG1hbi86IHNubXBidWxrZ2V0LjEsIHNubXBidWxrd2Fsay4xLAogICBzbm1wYnVsa2dldC4xLmRlZiwgc25tcGJ1bGt3YWxrLjEuZGVmLCBzbm1wY21kLjEKLCBzbm1wY21kLjEuZGVmLCBzbm1wY29uZi4xLCBzbm1wY29uZi4xLmRlZgosIHNubXBnZXQuMSwgc25tcGdldC4xLmRlZiwgc25tcGdldG5leHQuMSwKICAgc25tcGdldG5leHQuMS5kZWYsIHNubXBzZXQuMSwgc25tcHNldC4xLmRlZiwKICAgc25tcHN0YXR1cy4xLCBzbm1wc3RhdHVzLjEuZGVmLCBzbm1wdGFibGUuMSwKICAgc25tcHRhYmxlLjEuZGVmLCBzbm1wdGVzdC4xLCBzbm1wdGVzdC4xLmRlZiwKICAgc25tcHRyYW5zbGF0ZS4xLCBzbm1wdHJhbnNsYXRlLjEuZGVmLCBzbm1wdHJhcC4xCiwgc25tcHRyYXAuMS5kZWYsIHNubXB1c20uMSwgc25tcHVzbS4xLmRlZiwKICAgc25tcHdhbGsuMSwgc25tcHdhbGsuMS5kZWYsIHNubXB0cmFwZC44LAogICBzbm1wdHJhcGQuOC5kZWY6CgogICAgIC0gcmVuYW1lIG1hbiBwYWdlcyB3aGljaCBhcmUgbm93IGdlbmVyYXRlZCBhdCBjb21waWxlIHRpbWUgaW4gb3JkZXIKICAgICAgIHRvIHBpY2sgdXAgdGhlIHZlcnNpb24gKHdoaWNoIGdldHMgcHV0IGluIHRoZSBmb290ZXIpLgogICAKICAgICAtIGFsc28gc29tZSBlZGl0aW5nIHRvIG1ha2Ugc3R5bGUgY29uc2lzdGVudCwgYWRkIHNvbWUgbWlzc2luZyBvcHRpb25zLAogICAgICAgY2hhbmdlIHVjZC1zbm1wIHRvIE5ldC1TTk1QIGFuZCB0aGluZ3MgbGlrZSB0aGF0LgogICAKMjAwMi0wMi0wOCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSkouaDoKCiAgIFJlbW92ZSB0aGUgYXR0ZW1wdGVkICdtaWJJSScgcmUtd3JpdGUuCiAgIElmIHdlIHdhbnQgdG8gdGlkeSB1cCBtaWJJSSwgaXQgbWFrZXMgbW9yZSBzZW5zZSB0byB1c2UgdGhlIG5ldyBhZ2VudCBBUElzLgogICAKMjAwMi0wMi0wOCAwNjo0NSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IG5ldC1zbm1wLWluY2x1ZGVzLmgsCiAgIGFnZW50L25ldC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICBCcmluZyBzaW5nbGUtaW5jbHVkZSBoZWFkZXIgZmlsZXMgY2xvc2VyIGluIGxpbmUgd2l0aCB0aGUgZXhpc3RpbmcgIm1pYmluY2wuaCIgZmlsZQogICAKMjAwMi0wMi0wOCAwNjowOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmggKFY0LTItcGF0Y2hlcy4xKSwKICAgc3lzT1JUYWJsZS5oOgoKICAgRW5zdXJlIHRoZSBudWxsIHZlcnNpb25zIG9mIHRoZSB0d28gUkVHSVNURVIgbWFjcm9zIHN3YWxsb3cgdGhlaXIgcGFyYW1ldGVycy4KICAgCjIwMDItMDItMDggMDQ6MzYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEltcGxlbWVudCB0aGUgbWlzc2luZyBvdXRnb2luZyBlcnJvciBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIChwYXRjaCAjNTEwMTk0IGZyb20gTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0wOCAwMjo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3N0b3JhZ2UuYywgdWNkLXNubXAvbWVtb3J5LmMKICAgKFY0LTItcGF0Y2hlcy5bNiwzXSksIGhvc3QvaHJfc3RvcmFnZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYwo6CgogICBBZGRlZCBzdXBwb3J0IGZvciBtZW1vcnkgYW5kIHN3YXAgZW50cmllcyBpbiBoclN0b3JhZ2VUYWJsZSBmb3IgU29sYXJpcwogICAoZnJvbSBwYXRjaCAjNTA1NDk4IC0gdGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcikKICAgCjIwMDItMDItMDggMDI6MDcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBDb25zb2xpZGF0ZSBpZGVudGljYWwgTUlCIG9iamVjdCBlbnRyaWVzIChXSU4zMi9ub24tV0lOMzIpCiAgIAoyMDAyLTAyLTA4IDAwOjUwICBqYnBuCgogICAqIG1hbi9SRUFETUU6CgogICAgIC0gcmVtb3ZlIGNocm9uaWNhbGx5IGRhdGVkIHVuaGVscGZ1bCBSRUFETUUKICAgCjIwMDItMDItMDcgMTM6MzMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlcywgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIG1ha2VmaWxlaW5kZXBlbmQucGwsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbgosIG1hbi9NYWtlZmlsZS5pbiwgbWlicy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1ha2UgbWFrZSdzIE1ha2VmaWxlJ3MgdG8gbWFrZSBiZXR0ZXIgbWFraW5nCiAgIAoyMDAyLTAyLTA3IDEzOjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGVjayBsb2NhbCBwYXRoZXMKICAgCjIwMDItMDItMDcgMTI6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEVuc3VyZSBhZ2VudCByZXR1cm5zIHRoZSBjb3JyZWN0IGVycm9yIGNvZGVzIGZvciBVTkRPIGFuZCBDT01NSVQgZmFpbHVyZXMuCiAgIAoyMDAyLTAyLTA3IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC54cywgdC9zdGFydGFnZW50LnBsCjoKCiAgIGF0dGVtcHQgYXQgcG9ydGluZyBKb2UncyBTTk1QIG1vZHVsZSB0byBuZXQtc25tcC4KICAgSXQgY29tcGlsZXMsIGJ1dCBvbmx5IHNvbWUgb2YgdGhlIHRlc3RzIHN1Y2NlZWQuCiAgIAoyMDAyLTAyLTA3IDEwOjA5ICBqYnBuCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AsIG1pYl9hcGkuMywKICAgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9hZ2VudF9hcGkuMwosIHNubXBfYWxhcm0uMywgc25tcF9hcGkuMywgc25tcF9jb25maWcuNS5kZWYKLCBzbm1wX3Nlc3NfYXBpLjMsIHNubXBfdHJhcF9hcGkuMywgc25tcGJ1bGtnZXQuMQosIHNubXBidWxrd2Fsay4xLCBzbm1wY29uZi4xLCBzbm1wZC5jb25mLjUuZGVmCiwgc25tcGRlbHRhLjEsIHNubXBkZi4xLCBzbm1wZ2V0LjEsCiAgIHNubXBnZXRuZXh0LjEsIHNubXBuZXRzdGF0LjEsIHNubXBzZXQuMSwKICAgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRlc3QuMSwKICAgc25tcHRyYW5zbGF0ZS4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZgosIHNubXB1c20uMSwgc25tcHdhbGsuMSwgdmFyaWFibGVzLjU6CgogICAgIC0gYWRkIE5ldC1TTk1QIGluIGhlYWRlciBvZiBhbGwgbWFuIHBhZ2VzCiAgIAoyMDAyLTAyLTA3IDA5OjUyICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gdXBkYXRlIHN0eWxlIHRvIG1hdGNoIHNubXBkIGFuZCBzbm1wdHJhcGQgbWFuIHBhZ2VzCiAgIAoyMDAyLTAyLTA3IDA4OjE1ICBqYnBuCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgICAgLSBmaXggc3BlZWxpbmcgbWlzdGFrZQogICAKMjAwMi0wMi0wNyAwODowMCAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gYnJpbmcgdXAgdG8gZGF0ZSB3aXRoIHNubXB0cmFwZAogICAKMjAwMi0wMi0wNyAwNzoyOCAgZHRzMTIKCiAgICogUkVBRE1FLmhwdXgxMSwgYWNjb25maWcuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBTdXBwb3J0IGZvciBIUC1VWCAxMSwgY291cnRlc3kgb2YgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMi0wMi0wNyAwNjozMCAgamJwbgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAgIC0gYWxwaGFiZXRpc2Ugb3B0aW9ucwogICAKICAgICAtIGJyaW5nIG1hbiBwYWdlIGluIGxpbmUgd2l0aCBuZXcgcG9zaXRpb25hbCBhcmd1bWVudHMgbGlzdGVuaW5nCiAgICAgICBhZGRyZXNzIHNwZWNpZmljYXRpb24gYW5kIGFkZCBzZWN0aW9uIGRlc2NyaWJpbmcgdGhhdAogICAKICAgICAtIHB1dCBOZXQtU05NUCBpbiBoZWFkZXIKICAgCjIwMDItMDItMDYgMTA6MDYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oOgoKICAgICAtIGZpeCBidWcgbm90ZWQgYnkgTmllbHMKICAgCjIwMDItMDItMDYgMDk6MjUgIGpicG4KCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHVzbS5jOgoKICAgICAtIG1pbm9yIHR3ZWFrcyBkdWUgdG8gY2hhbmdlIGluIGRlZmluaXRpb24gb2YgVVNNIE9JRHMuCiAgIAoyMDAyLTAyLTA2IDA5OjE3ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiwgaW5jbHVkZS9uZXQtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSBtb3ZlIFVTTSBPSUQgZGVmaW5pdGlvbnMgaW50byBzbm1wdXNtLmMsIG1ha2UgdGhlbSBjb25zdAogICAKICAgICAtIGNvbnNlcXVlbnQgaW5jcmVhc2UgaW4gY29uc3QtbmVzcyBpbiBzb21lIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgCjIwMDItMDItMDYgMDk6MTIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHJlbW92ZSBpbnRlcm5hbCBub3RlIGFib3V0IHYzIGFwaSwgd2hpY2ggc2hvdWxkIGJlIHB1YmxpYwogICAKMjAwMi0wMi0wNiAwOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtX2luaXQuaDoKCiAgIHJlbW92ZWQgdW5uZWVkZWQgZmlsZQogICAKMjAwMi0wMi0wNiAwOTowNiAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAosIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9zY2FwaS5jOgoKICAgICAtIGFkZCBjb25zdC1uZXNzIGZvciB0cmFuc2Zvcm0gdHlwZSBhcmdzCiAgIAoyMDAyLTAyLTA2IDA5OjAxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliLmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gYWRkIHNvbWUgY29uc3QtbmVzcyBmb3IgT0lEIGFyZ3MgKG1haW5seSBzbyB0aGF0IGRlYnVnbXNnX29pZCB0YWtlcwogICAgICAgY29uc3QpLgogICAKMjAwMi0wMi0wNiAwODo0NCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZHluaXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZHluaXguaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgc25tcGxpYi9zbm1wX2FwaS5jCjoKCiAgIFN1cHBvcnQgZm9yIER5bml4L1BUWCA0LjQsIGNvdXJ0ZXN5IG9mIFBhdHJpY2sgSGVzcy4KICAgCjIwMDItMDItMDYgMDc6NDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSBmaXJzdCBhcmd1bWVudCBvZiBzbm1wX2R1cF9vYmppZCgpIGNvbnN0LgogICAKICAgICAtIGJldHRlciBoYW5kbGUgTlVMTCB2YWx1ZXMgaW4gc25tcF9kdXBfb2JqaWQoKS4KICAgCjIwMDItMDItMDYgMDc6MDkgIGR0czEyCgogICAqIEZBUSwgbWFuL3NubXBfdHJhcF9hcGkuMzoKCiAgIENsYXJpZnkgdGhlIGFwcGxpY2FiaWxpdHkgb2YgJ3NubXBfdHJhcF9hcGkoMyknIHJvdXRpbmVzIHRvIEFnZW50WCBzdWJhZ2VudHMuCiAgIAoyMDAyLTAyLTA2IDA1OjU4ICBkdHMxMgoKICAgKiBhcHBzLzogZW5jb2RlX2tleWNoYW5nZS5jLCBub3RpZmljYXRpb25fbG9nLmMsCiAgIHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywKICAgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jCiwgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHVzbS5jCiwgc25tcHZhY20uYywgc25tcHdhbGsuYywgc25tcG5ldHN0YXQvaWYuYwosIHNubXBuZXRzdGF0L2luZXQuYywgc25tcG5ldHN0YXQvaW5ldDYuYywKICAgc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgQXBwbGljYXRpb25zIGFtZW5kZWQgdG8gdXNlIHRoZSBuZXctc3R5bGUgbGlicmFyeSBoZWFkZXIgc3RydWN0dXJlLgogICAoSW4gbW9zdCBjYXNlcywgc2ltcGx5IGluY2x1ZGluZyB0aGUgc2luZ2xlICJmdWxsIEFQSSIgaGVhZGVyIGZpbGUpCiAgIAoyMDAyLTAyLTA2IDA1OjU1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wLzogYXNuMS5oLCBjb25maWdfYXBpLmgsCiAgIGRlZmluaXRpb25zLmgsIGxvZ2dpbmdfYXBpLmgsIG1pYl9hcGkuaCwKICAgbmV0LXNubXAtaW5jbHVkZXMuaCwgcGR1X2FwaS5oLCBzZXNzaW9uX2FwaS5oLAogICBzbm1wdjNfYXBpLmgsIHR5cGVzLmgsIHV0aWxpdGllcy5oLCB2YXJiaW5kX2FwaS5oCjoKCiAgIEZyYW1ld29yayBmb3IgbmV3IGxpYnJhcnkgaGVhZGVyIGZpbGUgb3JnYW5pc2F0aW9uLCB3aXRoIGVpZ2h0IG1haW4gZ3JvdXBzCiAgIG9mIEFQSSByb3V0aW5lcy4gIEN1cnJlbnRseSB0aGVzZSBzdGlsbCByZWZlciB0byB0aGUgVUNELXN0eWxlIHN0eWxlIGhlYWRlcgogICBmaWxlcyBmb3IgdGhlIGFjdHVhbCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCiAgIAoyMDAyLTAyLTA2IDA1OjMxICBqYnBuCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgICAgLSByZXBsYWNlIHVzZSBvZiAkPCB3aXRoIGV4cGxpY2l0IGZpbGVuYW1lLCBzaW5jZSBub24tR05VIG1ha2VzIHNlZW0KICAgICAgIHRvIGJhcmYgb24gaXQKICAgCjIwMDItMDItMDYgMDM6MzEgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRml4IGluY29ycmVjdCBkaXJlY3Rvcnkgc3BlY2lmaWNhdGlvbiBpbiAnbWFrZSBjbGVhbicKICAgCjIwMDItMDItMDYgMDM6MTggIGR0czEyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBQcm90ZWN0IHRoZSBwcm9qZWN0IGNvbmZpZyBmaWxlIGFnYWluc3QgbXVsdGlwbGUgaW5jbHVzaW9uLgogICAKMjAwMi0wMi0wNiAwMzowNyAgamJwbgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICIuLi9zbm1wbGliL3N5c3RlbS5oIiB3aGljaCBubyBsb25nZXIgZXhpc3RzIGFuZAogICAgICAgaXMgYXBwYXJlbnRseSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAyLTAyLTA2IDAyOjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSByZW1vdmUgI2luY2x1ZGUgIi4uLy4uL3NubXBsaWIvc3lzdGVtLmgiIHdoaWNoIG5vIGxvbmdlciBleGlzdHMKICAgICAgIGFuZCBpcyBhcHBhcmVudGx5IHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDItMDItMDUgMTE6NDQgIGhhcmRha2VyCgogICAqIENPUFlJTkcgKFY0LTItcGF0Y2hlcy43KSwgQ09QWUlORzoKCiAgIGNvcHlyaWdodCB5ZWFyIHVwZGF0ZSBmb3IgTkFJIGFuZCBDYW1icmlkZ2UKICAgCjIwMDItMDItMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwZXJsIGZpeGVzCiAgIAoyMDAyLTAyLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9taWJncm91cC9SbW9uL2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIG1vdmUgdGhlIG9pZHRyZWVfY29tcGFyZSBmdW5jdGlvbiB0bwogICB0aGUgbWFpbiBsaWJyYXJ5LgogICAKMjAwMi0wMi0wNSAwOTo1MiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIHBlcmwgYnVpbGQgZml4ZXMuCiAgIAoyMDAyLTAyLTA1IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIG9wcHMuICBSZW1vdmVkIGZvcmNlZCBwZXJsIGVtYmVkZGluZwogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHRoaXMgZmlsZSBzaG91bGRuJ3QgYmUgY2hlY2tlZCBpbgogICAKMjAwMi0wMi0wNCAxNjoyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvc25tcF9wZXJsLmMKLCBhZ2VudC9zbm1wX3BlcmwucGwsIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBTdXBwb3J0IGZvciBlbWJlZGRpbmcgcGVybCBzdWJyb3V0aW5lcyBpbnRvIHRoZSBhZ2VudCB0byBiZSBjYWxsZWQKICAgICBhcyBoYW5kbGVycy4KICAgLSBOZXcgY29uZmlndXJlIG9wdGlvbnM6CiAgICAgLS13aXRoLXBlcmwtbW9kdWxlcyBhdHRlbXB0cyB0byBidWlsZCBjb250YWluZWQgbW9kdWxlcyAocG9vcmx5IGN1cnJlbnRseSkuCiAgICAgLS1lbmFibGUtZW1iZWRkZWQtcGVybCBhY3R1YWxseSBzcGVjaWZpZXMgdG8gZG8gcGVybCBlbWJlZGRpbmcKICAgICB3aXRoaW4gdGhlIGFnZW50LgogICAKMjAwMi0wMi0wNCAxNjoxNiAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIEFTTi9BU04ueHMsIEFTTi9DaGFuZ2VzLAogICBBU04vTUFOSUZFU1QsIEFTTi9NYWtlZmlsZS5QTCwgQVNOL3Rlc3QucGwsCiAgIGFnZW50L0NoYW5nZXMsIGFnZW50L01BTklGRVNULCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvYWdlbnQucG0sIGFnZW50L2FnZW50LnhzLCBhZ2VudC90ZXN0LnBsLAogICBhZ2VudC90eXBlbWFwLCBkZWZhdWx0X3N0b3JlL0NoYW5nZXMsCiAgIGRlZmF1bHRfc3RvcmUvTUFOSUZFU1QsIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzLCBkZWZhdWx0X3N0b3JlL3Rlc3QucGwsCiAgIGRlZmF1bHRfc3RvcmUvdHlwZW1hcDoKCiAgIEJlZ2lubmluZ3Mgb2YgbmV3IHBlcmwgbW9kdWxlcyBuZWVkZWQgdG8gaW1wbGVtZW50IGFuIFNOTVAgYWdlbnQgKG9yCiAgIGFnZW50eCBzdWJhZ2VudCkgaW5zaWRlIHBlcmwuCiAgICAgLSBub3QgY29tcGxldGUgeWV0LgogICAgIC0gbWF5IGNoYW5nZS4KICAgICAtIGJ1dCB3b3Jrcy4KICAgCjIwMDItMDItMDQgMDQ6MzkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0IHByb2Nlc3NpbmcgZm9yIHRpbWV0aWNrcyB3aGVuIERTX0xJQl9OVU1FUklDX1RJTUVUSUNLUyBpcwogICAgICAgc2V0IChjb3JyZWN0cyBidWcgIzUxMTc5MywgcmVwb3J0ZWQgYnkgQW5vbnltb3VzKS4KICAgCjIwMDItMDItMDEgMDE6NTAgIGR0czEyCgogICAqIEZBUToKCiAgIENsYXJpZnkgdGhlIHByb2NlZHVyZSBmb3IgY29tcGlsaW5nIHdpdGggJ2NjJyByYXRoZXIgdGhhbiAnZ2NjJwogICAKMjAwMi0wMS0zMSAxNDo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgcy9zbm1wbGliXC8vLzsKICAgCjIwMDItMDEtMzEgMDY6NTUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZml4IG1ha2UgY2xlYW4gYXMgcmVwb3J0ZWQgYnkgQnJhZGxleSBCb3phcnRoLgogICAKMjAwMi0wMS0zMCAwODowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIEJyaW5nIE1JQiB2YXJpYWJsZSB2ZXJzaW9uVGFnIGludG8gbGluZSB3aXRoIHRoZSBuZXcgPG5ldC1zbm1wL3ZlcnNpb24uaD4gdXNhZ2UKICAgCjIwMDItMDEtMjkgMTc6NTMgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCwgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmgsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsCiAgIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICBNb3ZlZCB2ZXJzaW9uaW5nIGluZm9ybWF0aW9uIGZyb20gdmVyc2lvbi5oIHRvOgogICAgIC0gc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKICAgICAgIC0gZGVmaW5lIG5ldHNubXBfZ2V0X3ZlcnNpb24oKTsKICAgICAgIC0gY3JlYXRlIGEgY29uc3QgY2hhciAqTmV0U25tcFZlcnNpb25JbmZvCiAgICAgLSBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKICAgICAgIC0gZXh0ZXJuIHRoZSBhYm92ZSBjaGFyICoKICAgICAgIC0gcHJvdG90eXBlIHRoZSBmdW5jdGlvbgogICAgIC0gaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmg6CiAgICAgICAtIGNyZWF0ZSBhIHN0YXRpYyB2YXJpYWJsZSAodGhlIG9sZCB3YXkpIGFuZCBzZXQgaXQgdG8gTmV0U25tcFZlcnNpb25JbmZvCiAgIAoyMDAyLTAxLTI5IDE2OjA5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogZXZhbF90b29scy5zaCwgdGVzdHMvVDA0OXNubXB2M2luZm9ybSwKICAgdGVzdHMvVDA1MHNubXB2M3RyYXAsIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCwKICAgdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0sIHRlc3RzL1QwNTNhZ2VudHYxdHJhcCwKICAgdGVzdHMvVDA1NGFnZW50djJjdHJhcCwgdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLAogICB0ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwLCB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCwKICAgdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICB0cmFwIHRlc3QgZml4ZXMgc28gdGhlIG1ham9yaXR5IG9mIHRoZSB0ZXN0cyBub3cgd29yay4KICAgCjIwMDItMDEtMjkgMTY6MDggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgZ2VuZXJhdGUgdWNkLXNubXAtY29uZmlnLmggYW55IGxvbmdlci4KICAgCjIwMDItMDEtMjkgMTU6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkLmgKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ic2RpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGkzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2N5Z3dpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9kYXJ3aW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkMy5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9nZW5lcmljLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2hwdXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9saW51eC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9taXBzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9vcGVuYnNkLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3NvbGFyaXMyLjguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3ZyNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zeXN2LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaDoKCiAgIG1vdmVkIHMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLyouaAogICBtb3ZlZCBtL2dlbmVyaWMuaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oCiAgIAoyMDAyLTAxLTI5IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IC1jIGFyZ3VtZW50IHBhcnNpbmcuCiAgIAoyMDAyLTAxLTI5IDA5OjEwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZWZlcmVuY2UgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBpbnN0ZWFkIG9mIGp1c3QgY29uZmlnLmgKICAgCjIwMDItMDEtMjkgMDk6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgYXR0ZW1wdCB0byBmaXggdGhlIHVua25vd24gZW5naW5laWQvdW5rbm93biB1c2VyIHByb2JsZW1zIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAyLTAxLTI4IDIxOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHdob29wcy4gIE1pc3NlZCBzb21lIC5oIGZpbGUgY2hlY2tzIGluIGNvbmZpZ3VyZS4gIFRoYW5rcyBSb2JlcnQuCiAgIAoyMDAyLTAxLTI4IDIxOjAzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9jb252ZXJ0Y29kZToKCiAgIG1pbm9yIGZpeC4KICAgCjIwMDItMDEtMjggMjE6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsL2NvbnZlcnRjb2RlOgoKICAgYWRkZWQgY29kZSBjb252ZXJ0IHNjcmlwdCBmb3IgdWNkLXNubXAgLT4gbmV0LXNubXAgaGVhZGVyIGNvbnZlcnNpb24KICAgCjIwMDItMDEtMjggMjA6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcHVzbS5jLCBhcHBzL3NubXB2YWNtLmMKLCBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgaW5jbHVkZS9uZXQtc25tcC9hc24xLmgKLCBpbmNsdWRlL25ldC1zbm1wL2NhbGxiYWNrLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGF0YV9saXN0LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oLCBpbmNsdWRlL25ldC1zbm1wL2dldG9wdC5oCiwgaW5jbHVkZS9uZXQtc25tcC9pbnQ2NC5oLCBpbmNsdWRlL25ldC1zbm1wL2tleXRvb2xzLmgKLCBpbmNsdWRlL25ldC1zbm1wL2xjZF90aW1lLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oLCBpbmNsdWRlL25ldC1zbm1wL21kNS5oLAogICBpbmNsdWRlL25ldC1zbm1wL21pYi5oLCBpbmNsdWRlL25ldC1zbm1wL210X3N1cHBvcnQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9vaWRfYXJyYXkuaCwgaW5jbHVkZS9uZXQtc25tcC9vaWRfc3Rhc2guaAosIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcENhbGxiYWNrRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcElQWERvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVbml4RG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hbGFybS5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9kZWJ1Zy5oLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZW51bS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvY2tpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvZ2dpbmcuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3NlY21vZC5oLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfdHJhbnNwb3J0LmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcGtzbS5oCiwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbV9pbml0LmgsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS5oLCBpbmNsdWRlL25ldC1zbm1wL3Rvb2xzLmgKLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmFjbS5oLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaAosIG1hbi9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvYXNuMS5oLCBzbm1wbGliL2NhbGxiYWNrLmMKLCBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIvZGF0YV9saXN0LmMsCiAgIHNubXBsaWIvZGF0YV9saXN0LmgsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9nZXRvcHQuaCwKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9tZDUuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvbXRfc3VwcG9ydC5jLCBzbm1wbGliL210X3N1cHBvcnQuaCwKICAgc25tcGxpYi9vaWRfYXJyYXkuYywgc25tcGxpYi9vaWRfYXJyYXkuaCwKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9vaWRfc3Rhc2guaCwKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wLXRjLmMKLCBzbm1wbGliL3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaCwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwosIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmgsIHNubXBsaWIvc25tcElQWERvbWFpbi5jCiwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmgsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVENQRG9tYWluLmgsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwosIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uaCwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKLCBzbm1wbGliL3NubXBVRFBEb21haW4uaCwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5oLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgsIHNubXBsaWIvc25tcF9hbGFybS5jCiwgc25tcGxpYi9zbm1wX2FsYXJtLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5oLAogICBzbm1wbGliL3NubXBfZW51bS5jLCBzbm1wbGliL3NubXBfZW51bS5oLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5oLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLCBzbm1wbGliL3NubXBfc2VjbW9kLmMsCiAgIHNubXBsaWIvc25tcF9zZWNtb2QuaCwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmgsIHNubXBsaWIvc25tcGtzbS5jLAogICBzbm1wbGliL3NubXBrc20uaCwgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3NubXB2My5oCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgsCiAgIHNubXBsaWIvdHJhbnNmb3JtX29pZHMuaCwgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvdmFjbS5oLCB0ZXN0aW5nL1JVTlRFU1RTLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIGluY2x1ZGUvdWNkLXNubXAvYXNuMS5oLAogICBpbmNsdWRlL3VjZC1zbm1wL2NhbGxiYWNrLmgsIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oLCBpbmNsdWRlL3VjZC1zbm1wL2tleXRvb2xzLmgKLCBpbmNsdWRlL3VjZC1zbm1wL21pYi5oLCBpbmNsdWRlL3VjZC1zbm1wL21pYmluY2wuaAosIGluY2x1ZGUvdWNkLXNubXAvcGFyc2UuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oLCBpbmNsdWRlL3VjZC1zbm1wL3NjYXBpLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAtdGMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYWxhcm0uaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmgKLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2ltcGwuaCwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaAosIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmgsIGluY2x1ZGUvdWNkLXNubXAvc25tcHVzbS5oCiwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdjMuaCwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaAosIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaCwKICAgaW5jbHVkZS91Y2Qtc25tcC90cmFuc2Zvcm1fb2lkcy5oLAogICBpbmNsdWRlL3VjZC1zbm1wL3V0aWxfZnVuY3MuaDoKCiAgIE1ham9yIGZpbGUgbW92aW5nIGFuZCBlZGl0aW5nIG9mIGluY2x1ZGUgZGlyZWN0aXZlcy4KICAgICAtIGVzc2VudGlhbGx5IGFkZHMgdXAgdG86CiAgICAgICAtIG12IHNubXBsaWIvKi5oIGluY2x1ZGUvbmV0LXNubXAvCiAgICAgICAtIGxvY2FsL2NvbnZlcnRjb2RlIGBmaW5kIC4gLW5hbWUgXCouYyBcKi5oYAogICAKMjAwMi0wMS0yOCAyMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIGFnZW50X2luZGV4LmMsCiAgIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYwosIGF1dG9fbmxpc3QuYywga2VybmVsLmMsIG1pYl9tb2R1bGVzLmMsCiAgIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmMsIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jLAogICBoZWxwZXJzL2luc3RhbmNlLmMsIGhlbHBlcnMvbXVsdGlwbGV4ZXIuYywKICAgaGVscGVycy9udWxsLmMsIGhlbHBlcnMvb2xkX2FwaS5jLCBoZWxwZXJzL3JlYWRfb25seS5jCiwgaGVscGVycy9zZXJpYWxpemUuYywgaGVscGVycy90YWJsZS5jLAogICBoZWxwZXJzL3RhYmxlX2FycmF5LmMsIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMsIG1pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywgbWliZ3JvdXAvbWliaW5jbC5oLAogICBtaWJncm91cC90ZXN0ZGVsYXllZC5jLCBtaWJncm91cC90ZXN0aGFuZGxlci5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL1Jtb24vYWxhcm0uYywKICAgbWliZ3JvdXAvUm1vbi9ldmVudC5jLCBtaWJncm91cC9SbW9uL2hpc3RvcnkuYywKICAgbWliZ3JvdXAvUm1vbi9yb3dzLmMsIG1pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiwgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiwgbWliZ3JvdXAvbWliSUkvYXQuYywgbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwQWRkci5jLCBtaWJncm91cC9taWJJSS9pcHY2LmMsCiAgIG1pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLCBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jCiwgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKLCBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiwgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuaAosIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBtaWJncm91cC9taXNjL2RsbW9kLmMKLCBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywgbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwosIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmg6CgogICBNYWpvciBmaWxlIG1vdmluZyBhbmQgZWRpdGluZyBvZiBpbmNsdWRlIGRpcmVjdGl2ZXMuCiAgICAgLSBlc3NlbnRpYWxseSBhZGRzIHVwIHRvOgogICAgICAgLSBtdiBzbm1wbGliLyouaCBpbmNsdWRlL25ldC1zbm1wLwogICAgICAgLSBsb2NhbC9jb252ZXJ0Y29kZSBgZmluZCAuIC1uYW1lIFwqLmMgXCouaGAKICAgCjIwMDItMDEtMjggMTk6NDIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgVUNEX0NPTVBBVCBmbGFnIGFuZCBERUZJTkUgSVQgaW5zdGVhZAogICAKMjAwMi0wMS0yOCAxOTo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS91Y2Qtc25tcC91Y2Qtc25tcC1jb25maWcuaDoKCiAgIHJlbW92ZSBVQ0RfQ09NUEFUIGZsYWcgYW5kIGRlZmluZSBpdCBpbnN0ZWFkCiAgIAoyMDAyLTAxLTI1IDExOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBwYXJzZV9vbmVfb2lkX2luZGV4OgogICAgIC0gdXNlIGFuIHVuc2lnbmVkIGludCBmb3IgbGVuZ3RoJ3MgcHVsbGVkIGZyb20gdGhlIG9pZC4KICAgICAtIE1ha2Ugc3VyZSB0aGV5J3JlIGFsd2F5cyA8IDEyOAogICAKMjAwMi0wMS0yNSAwOToxMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgICAtIGNsb3NlciBhZGhlcmVuY2UgdG8gc3RhdGUgbWFjaGluZXMgZGVzY3JpYmVkIGluIFJGQyAyNTc0CiAgIAoyMDAyLTAxLTI1IDA5OjEwICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGNhdXNlIHVzbURlY3J5cHRpb25FcnJvciByZXBvcnRzIHRvIGJlIHNlbnQgaW4gYSBjb3VwbGUgb2YgZXh0cmEKICAgICAgIGNhc2VzOiBiYWQgc2FsdCAobGVuZ3RoICE9IDgpIGFuZCBsZW5ndGggb2YgZW5jcnlwdGVkIGRhdGEgbm90IGEKICAgICAgIG11bHRpcGxlIG9mIDggb2N0ZXRzIChwZXIgUkZDIDI1NzQpLgogICAKMjAwMi0wMS0yNSAwOTowNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZm9yIHVua25vd24gbWVzc2FnZSB0eXBlcywgaW5jcmVtZW50IHNubXBJbkFTTlBhcnNlRXJycyBhbmQgZmFpbAogICAgICAgYXQgdGhlIHBvc3QtcGFyc2Ugc3RhZ2UuCiAgIAogICAgIC0gZm9yIG5vdGlmaWNhdGlvbiB0eXBlcywgaW5jcmVtZW50IHNubXBVbmtub3duUERVSGFuZGxlcnMgYW5kIGJhaWwKICAgICAgIG91dCBlYXJseS4KICAgCjIwMDItMDEtMjUgMDk6MDEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZvciB1bmhhbmRsZWQgbWVzc2FnZXMgKGUuZy4gUkVTUE9OU0UgbWVzc2FnZXMgc2VudCB0byBhZ2VudHMpLAogICAgICAgaW5jcmVtZW50IHRoZSBzbm1wVW5rbm93blBEVUhhbmRsZXJzIGNvdW50ZXIuCiAgIAogICAgIC0gdHJ5IHRvIGZyZWUgc2VjdXJpdHlTdGF0ZVJlZnMgd2hlbiBwb3N0LXBhcnNlIGZhaWxzLgogICAKMjAwMi0wMS0yNSAwNjoyNiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jIChWNC0yLXBhdGNoZXMuNiksIHZhY21fdmFycy5jCjoKCiAgICAgLSBmaXggbWlub3IgcHJvYmxlbSB3aXRoIHN0b3JhZ2VUeXBlIChhbHdheXMgb2theSB0byBzZXQgdG8gY3VycmVudAogICAgICAgdmFsdWUpLgogICAKICAgICAtIGRvbid0IHJlc2V0IHNvbWUgdmFyaWFibGVzIHRvIG9sZCB2YWx1ZSB1bmxlc3Mgd2UgYWN0dWFsbHkgc2V0CiAgICAgICB0aGVtIGluIHRoZSBmaXJzdCBwbGFjZSEKICAgCjIwMDItMDEtMjUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIGRvbid0IHByaW50IG91dCBkZWJ1Z2dpbmcgaW5mbyBpbiBhIGZ1cnRoZXIgY2FzZSB3aGVyZSBpdCBoYXMgYmVlbgogICAgICAgZnJlZSgpZC4KICAgCiAgICAgLSBzZXQgdGhlIGV4Y2VwdGlvbiBub1N1Y2hJbnN0YW5jZSByYXRoZXIgdGhhbiBlcnJvciBub1N1Y2hOYW1lIHdoZW4KICAgICAgIHdlIGhhdmUgdGhlIGluY29ycmVjdCBudW1iZXIgb2YgaW5kaWNlcy4KICAgCjIwMDItMDEtMjUgMDQ6NTQgIGR0czEyCgogICAqIHNubXBsaWIvUkVBRE1FLm5ld2xpYjoKCiAgIGZpbGUgUkVBRE1FLm5ld2xpYiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAyLTAxLTI1IDA0OjQ5ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgdG8gYmVmb3JlIHdoZXJlIChwb3RlbnRpYWxseSkgdGhlIGRhdGEgaXQgaXMKICAgICAgIHRyeWluZyB0byBwcmludCBnZXRzIGZyZWUoKWQuCiAgIAoyMDAyLTAxLTI1IDA0OjQwICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBrZWVwIGFzcC0+dmJjb3VudCBjb3JyZWN0IGluIGNyZWF0ZV9zdWJ0cmVlX2NhY2hlKCkgaWYgd2UgZHVtcAogICAgICAgdmFyYmluZHMgaW4gdGhlIEdFVE5FWFQgY2FzZSBiZWNhdXNlIG51bXZhcmJpbmRzID4gbm9uLXJlcGVhdGVycy4KICAgICAgIEZhaWxpbmcgdG8gZG8gdGhpcyB3aWxsIGNhdXNlIHByb2JsZW1zIGxhdGVyIHdoZW4geW91IGl0ZXJhdGUgb3ZlcgogICAgICAgMCAuLiBhc3AtPnZiY291bnQgLSAxIGluIHJlYXNzaWduX3JlcXVlc3RzKCkuCiAgIAoyMDAyLTAxLTI0IDE1OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgdXBkYXRlIG1hY3JvcyB0byBwdXQgcGFyZW5zIGFyb3VuZCBwYXJhbWV0ZXJzIHdoZW4gdXNlZCwgaW4gY2FzZSBhIHBhcmFtZXRlciBpcyBhbiBleHByZXNzaW9uLCB3aGljaCBtaWdodCBtdWNrIGFib3V0IHdpdGggb3BlcmF0b3IgcHJlY2VkZW5jZSBydWxlcyBhbmQgY2F1c2UgdW5leHBlY3RlZCBhbmQgdW5kZXNpcmFibGUgYmVoYXZpb3IuCiAgIAoyMDAyLTAxLTI0IDExOjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHJ5IHRvIGZpbmQgJiBoYW5kbGUgZXh0ZXJuYWwgaW5kZXhlczsgdXNlIG5ldyBzdHlsZSBuZXQtc25tcCBpbmNsdWRlczsgYWRkCiAgIHJvd19jb3B5OyB1c2UgY29udGV4dCB0eXBlcyAmIGNhc3RzIGluIHBhcmFtZXRlcnMgaW5zdGVhZCBvZiBnZW5lcmljIHR5cGVzCiAgIHJlY2FzdCBpbnNpZGUgbWV0aG9kCiAgIAoyMDAyLTAxLTI0IDA2OjAzICBqYnBuCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jIChWNC0yLXBhdGNoZXMuMyksIHJlYWRfY29uZmlnLmM6CgogICAgIC0gYXZvaWQgZm9ybWF0IHN0cmluZyBuYXN0aWVzIGluIHJlYWRfY29uZmlnX3N0b3JlKCkgd2hlbiB3cml0aW5nIHRvCiAgICAgICBmaWxlcyAoZXhwb3NlZCBlLmcuIGJ5IHRoZSBwZXJzaXN0ZW50IHN5c05hbWUuMCBzdHVmZiAtLSB0cnkKICAgICAgIHNubXBzZXQgaG9zdCBzeXNOYW1lLjAgcyAiJTA4eCIgLS0gb29wcykKICAgCjIwMDItMDEtMjQgMDQ6MzQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gZG9uJ3QgYXV0b21hdGljYWxseSBhY2NlcHQgYSBtc2dVc2VyTmFtZSBvZiAiIiB3aGVuIHByb2Nlc3NpbmcKICAgICAgIGluY29taW5nIG1lc3NhZ2VzLgogICAKMjAwMi0wMS0yNCAwNDozMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gYmlnZ2VyIGJ1ZmZlciBmb3IgbXNnQXV0aG9yaXRhdGl2ZUVuZ2luZUlEIGZpZWxkIHNpbmNlIGl0IGlzIG5vdAogICAgICAgbGltaXRlZCB0byAzMiBieXRlcyBsaWtlIFNubXBFbmdpbmVUQy4gIFJlYWxseSB0aGlzIG5lZWRzIHRvIGJlCiAgICAgICBhbGxvY2F0ZWQgYnkgdGhlIHNlY3VyaXR5IG1vZHVsZSBidXQgZm9yIG5vdyB3ZSdsbCBqdXN0IG1ha2UgaXQKICAgICAgIHR3aWNlIGFzIGJpZy4KICAgCjIwMDItMDEtMjQgMDM6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgc25tcGxpYi9zbm1wLXRjLmM6CgogICBBSVggc3VwcG9ydCBmb3IgdGhlIEhvc3QgUmVzb3VyY2VzIG1vZHVsZS4KICAgICAgKFRoYW5rcyB0byBBbmR5IEhvb2QpCiAgIAoyMDAyLTAxLTIzIDA4OjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIHNldCB2aWV3VHlwZSB0byB0aGUgREVGVkFMIGluY2x1ZGVkKDEpIGZvciBuZXcgcm93cwogICAKMjAwMi0wMS0yMyAwNzo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gc2VjTW9kZWwgb2YgMCBpcyBhIHBhcnNlIGVycm9yIGluIEhlYWRlckRhdGEKICAgCjIwMDItMDEtMjMgMDc6MjMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGJlIGNhcmVmdWwgdG8gZnJlZSBzZWN1cml0eVN0YXRlUmVmIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzIGluCiAgICAgICBzbm1wdjNfcGFyc2UgLS0gZml4ZXMgbWVtb3J5IGxlYWtzIHdoZW4gbWFsZm9ybWVkIFBEVXMgYXJlCiAgICAgICByZWNlaXZlZC4KICAgCjIwMDItMDEtMjIgMTk6NDkgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIGNoZyBhcGkgZm9yIHNubXBfb2lkX25jb21wYXJlLCBkb24ndCBpbXBsZW1lbnQgaXQgdmkgc25tcF9vaWRfY29tcGFyZQogICAKMjAwMi0wMS0yMiAxOTo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBvaWRfYXJyYXkuYywgb2lkX2FycmF5Lmg6CgogICBhZGQgR2V0X29pZF9kYXRhX2NvdW50KCk7IGFkZCBzdWJzZXQgc3VwcG9ydAogICAKMjAwMi0wMS0yMiAxOTo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICBhZGQgbmV0c25tcF9zdHIyb2lkKCkKICAgCjIwMDItMDEtMjIgMTk6NDEgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBhZGQgc3Vic2V0IGZ1bmN0aW9uCiAgIAoyMDAyLTAxLTIyIDE5OjQwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgYWRkIHN1YnNldCBmdW5jdGlvbjsgYWRkIHByZWxpbWluYXJ5IGxvY2tpbmcgY29kZTsgYWRkIHRhX2NoZWNrX3Jvd19zdGF0dXMKICAgCjIwMDItMDEtMjIgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjQpLCB2YWNtX3ZhcnMuYwo6CgogICAgIC0gZml4IGJ1ZyBqdXN0IGludHJvZHVjZWQgd2hlcmUgc2V0dGluZyBhbiBleGlzdGluZyByb3cncyBzdGF0dXMgdG8KICAgICAgIGNyZWF0ZUFuZEdvKDQpIG9yIGNyZWF0ZUFuZFdhaXQoNSkgd291bGQgZGVsZXRlIHRoZSByb3cuCiAgIAoyMDAyLTAxLTIyIDA0OjU4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGNhdXNlIGEgcGFyc2UgZXJyb3IgaWYgd2UgcmVjZWl2ZSBVc21TZWN1cml0eVBhcmFtZXRlcnMgd2l0aCBhCiAgICAgICBtc2dVc2VyTmFtZSB0aGF0IGlzIGlsbGVnYWxseSBsb25nLgogICAKMjAwMi0wMS0yMiAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAgIC0gb29wcywgbGVmdCBvbGQgY29kZSBpbiAjaWYgMCBicmFuY2ggQUdBSU4uICBJIGFtIGdldHRpbmcgaW50byBiYWQKICAgICAgIGhhYml0cyEKICAgCjIwMDItMDEtMjIgMDM6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVha3MgaW4gcm93IGNyZWF0aW9uL2Rlc3RydWN0aW9uCiAgIAogICAgIC0gbW9yZSBhZ2dyZXNzaXZlIHZhbGlkaXR5IGNoZWNraW5nIG9mIHNubXBOb3RpZnlUYWcsIHNubXBOb3RpZnlUeXBlCiAgICAgICBhbmQgc25tcE5vdGlmeVN0b3JhZ2VUeXBlLgogICAKICAgICAtIHBhc3NlcyA2LjUuMS4wIC0tIDYuNS44LjMKICAgCjIwMDItMDEtMjIgMDE6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lcyBmb3Igc25tcFRhcmdldFBhcmFtc1RhYmxlCiAgIAoyMDAyLTAxLTIxIDIzOjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICAgIC0gdGlkeSB0aGluZ3MgdXAgYSBiaXQgKGhhZCBsZWZ0IHNvbWUgb2xkIGNvZGUgc2l0dGluZyBpZiAjaWYgMAogICAgICAgYnJhbmNoKS4KICAgCiAgICAgLSByZW1lbWJlciB0byBjbG9zZSAodGFyZ2V0LT5zZXNzKSB3aGVuIHdlIG1vdmUgYSB0YXJnZXQgdG8KICAgICAgIG5vdEluU2VydmljZSgyKS4KICAgCjIwMDItMDEtMjEgMTE6MDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmVzIGZvciBzbm1wVGFyZ2V0QWRkclRhYmxlCiAgIAoyMDAyLTAxLTIxIDA2OjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldEFkZHJFbnRyeS5oOgoKICAgICAtIGltcGxlbWVudCBzbm1wVGFyZ2V0U3BpbkxvY2sgb2JqZWN0CiAgIAoyMDAyLTAxLTE4IDA5OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbVZpZXdUcmVlRmFtaWx5VGFibGUuICBQYXNzZXMgYWxsIHRoZQogICAgICAgcmVsZXZhbnQgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdC4KICAgCjIwMDItMDEtMTggMDg6NDkgIGpicG4KCiAgICogc25tcGxpYi86IHZhY20uYywgdmFjbS5oOgoKICAgICAtIGFkZCBhIHN3aXRjaCB0byB2YWNtX2dldFZpZXdFbnRyeSgpIHRvIGFsbG93IHRoZSBtYXNrIGVudHJpZXMKICAgICAgIHRvIGJlIGlnbm9yZSAod2hpY2ggaXMgd2hhdCB5b3Ugd2FudCB3aGVuIHlvdSBhcmUganVzdCB1c2luZyB0aGlzCiAgICAgICBmdW5jdGlvbiB0byBsb29rIHVwIGFuIGVudHJ5IGluIHRoZSB0YWJsZSBpbiBvcmRlciB0byB3cml0ZSBzb21lIG5ldwogICAgICAgdmFsdWUgdG8gb25lIG9mIHRoZSBjb2x1bW5hciBvYmplY3RzKS4KICAgCjIwMDItMDEtMTggMDY6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtQWNjZXNzVGFibGUuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdC4KICAgCjIwMDItMDEtMTggMDQ6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gY29ycmVjdCBzdGF0ZSBtYWNoaW5lIGZvciB2YWNtU2VjdXJpdHlUb0dyb3VwVGFibGUgKGkuZS4gZG9uJ3QKICAgICAgIGp1c3QgZG8gZXZlcnl0aGluZyBpbiB0aGUgQ09NTUlUIHBoYXNlKS4gIFBhc3NlcyBhbGwgdGhlIHJlbGV2YW50CiAgICAgICBTaWx2ZXJjcmVlayBWQUNNIHRldHN0LgogICAKMjAwMi0wMS0xOCAwNDowOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3Qgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGVycm9yIHN0YXR1cyBhZnRlciBDT01NSVQgb3IgVU5ETwogICAgICAgcGhhc2VzIHdpdGggY29tbWl0RmFpbGVkIG9yIHVuZG9GYWlsZWQgKGJ1dCBkbyB0cmFuc2xhdGUgZXJyb3IKICAgICAgIHJldHVybnMgZnJvbSB0aG9zZSBwaGFzZXMgaW50byB0aG9zZSBlcnJvcnMgd2hlbiB3ZSBkb24ndCBoYXZlIGFuCiAgICAgICBleGlzdGluZyBlcnJvciBzdGF0dXMpLgogICAKMjAwMi0wMS0xNyAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ0lEIGNvcnJlY3RseSAoYnkgZHJvcHBpbmcgdGhlIHBhY2tldAogICAgICAgYW5kIGluY3JlbWVudGluZyBzbm1wSW5BU05QYXJzZUVycnMpCiAgIAoyMDAyLTAxLTE3IDA2OjM4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYW5kbGUgaWxsZWdhbCB2YWx1ZXMgb2YgbXNnTWF4U2l6ZSBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZQogICAgICAgcGFja2V0IGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNSAwODoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHRvcCBsZXZlbCBpbmNsdWRlIHdoaWNoIGluY2x1ZGVzIHVzZWZ1bCBzbm1wbGliIGhlYWRlcnMKICAgCjIwMDItMDEtMTUgMDg6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL3VjZC1zbm1wLzogYWdlbnRfaW5kZXguaCwgYWdlbnRfcmVhZF9jb25maWcuaAosIGFnZW50X3JlZ2lzdHJ5LmgsIGFnZW50X3RyYXAuaCwgYXNuMS5oLAogICBhdXRvX25saXN0LmgsIGNhbGxiYWNrLmgsIGRlZmF1bHRfc3RvcmUuaCwKICAgZHNfYWdlbnQuaCwgaGVhZGVyX2NvbXBsZXguaCwgaW50NjQuaCwga2V5dG9vbHMuaAosIG1pYi5oLCBtaWJfbW9kdWxlX2NvbmZpZy5oLCBtaWJpbmNsLmgsCiAgIHBhcnNlLmgsIHJlYWRfY29uZmlnLmgsIHNjYXBpLmgsIHNubXAtdGMuaCwKICAgc25tcC5oLCBzbm1wX2FnZW50LmgsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuaAosIHNubXBfY2xpZW50LmgsIHNubXBfZGVidWcuaCwgc25tcF9pbXBsLmgsCiAgIHNubXBfbG9nZ2luZy5oLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcF92YXJzLmgsCiAgIHNubXB1c20uaCwgc25tcHYzLmgsIHN0cnVjdC5oLCBzeXN0ZW0uaCwKICAgdG9vbHMuaCwgdHJhbnNmb3JtX29pZHMuaCwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaAosIHVjZC1zbm1wLWNvbmZpZy5oLCB1Y2Qtc25tcC1pbmNsdWRlcy5oLAogICB1dGlsX2Z1bmNzLmgsIHZhcl9zdHJ1Y3QuaCwgdmVyc2lvbi5oOgoKICAgY3JlYXRlIDQueCBoZWFkZXJzIHRoYXQgYXJlIHdyYXBwZXJzIHBvaW50aW5nIHRvIG5ldyBoZWFkZXJzCiAgIAoyMDAyLTAxLTE0IDE1OjA4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIFVzZXJSb3dBY3Rpb24gYW5kIHZvaWQgcG9pbnRlcgogICAKMjAwMi0wMS0xNCAxMzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywgTWFrZWZpbGUuaW46CgogICAtPiBuZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAgIAoyMDAyLTAxLTE0IDEzOjQwICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICByZW1vdmVkCiAgIAoyMDAyLTAxLTE0IDEzOjI5ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgY29weSB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oIGFuZCB1cGRhdGUgdG8gbmV0LXNubXAgdXNlIG5ldyBhZ2VudCBkaXIKICAgCjIwMDItMDEtMTQgMDg6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X2luZGV4LmgsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvYWdlbnRfdHJhcC5oLAogICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L21pYl9tb2R1bGVzLmMKLCBhZ2VudC9taWJfbW9kdWxlcy5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfYWdlbnQuaCwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCBhZ2VudC92YXJfc3RydWN0LmgsCiAgIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4sIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmMKLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYywKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMsCiAgIGFnZW50L2hlbHBlcnMvbnVsbC5jLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYywKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYywgYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYywKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAosIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jCiwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCwgYXBwcy9zbm1wdHJhcGQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaW5kZXguaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfdHJhcC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgbW92ZWQgdGhlIC9hZ2VudCBpbnN0YWxsZWQgaGVhZGVycyB0byAuLi9pbmNsdWRlL25ldC1zbm1wL2FnZW50CiAgIAoyMDAyLTAxLTEzIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGFkZCBhIGNvdXBsZSBtb3JlIGluc3RhbGwgaGVhZGVycy4KICAgCjIwMDItMDEtMTEgMTQ6MTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgTW92ZSBhbGwgYWdlbnQvaGVscGVycy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8gYW5kIGNoYW5nZQogICByZWZlcmVuY2VzLgogICAKMjAwMi0wMS0xMSAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X2hhbmRsZXIuYywKICAgYWdlbnQvYWdlbnRfaW5kZXguYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaCwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwosIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmgsCiAgIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuaAosIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oCiwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmgsIGFnZW50L2hlbHBlcnMvbnVsbC5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuaCwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oLCBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaCwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jCiwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kZWJ1Z19oYW5kbGVyLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L251bGwuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2VyaWFsaXplLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc2V0X2hlbHBlci5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmg6CgogICBNb3ZlIGFsbCBhZ2VudC9oZWxwZXJzLyouaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL2FnZW50LyBhbmQgY2hhbmdlCiAgIHJlZmVyZW5jZXMuCiAgIAoyMDAyLTAxLTExIDA4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIEFkZCAtSSQodG9wX3NyY2RpcikvaW5jbHVkZSB0byBpbmNsdWRlIHBhdGguCiAgIC0gUmVuYW1lIDMgYWdlbnQgbGlicmFyaWVzIGZyb20gbGlidWNkKiAtPiBsaWJuZXRzbm1wKgogICAKMjAwMi0wMS0xMSAwNzo1OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBkb24ndCB1c2Ugd2hpbGUoeC0tID49IDApIGxvb3BzIGZvciBuZXcgdW5zaWduZWQgaW5kZXggY29tcG9uZW50cwogICAKMjAwMi0wMS0xMSAwNToyNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBiZSBjYXJlZnVsIGFib3V0IHNpZ25lZGVzcyBvZiBpbmRleCBjb21wb25lbnRzIGluIHRhYmxlcwogICAKMjAwMi0wMS0xMCAxMzoxMiAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ3JlYXRlIHRoZSBpbmNsdWRlIGRpcmVjdG9yeSB3aGVuIGJ1aWxkaW5nIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeQogICAKMjAwMi0wMS0xMCAwODoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAgIC0gdXNlIGFuIHVuc2lnbmVkIGxvbmcgbG9vcCB2YXJpYWJsZSBpbiB2YXJfc3lzT1JUYWJsZSgpIHRvIGF2b2lkCiAgICAgICBpbmNvcnJlY3QgbGV4aS1vcmRlcmluZyB3aGVuIGRvaW5nIHJlcXVlc3RzIGxpa2UgR0VUTkVYVAogICAgICAgc3lzT1JEZXNjci40Mjk0OTY3Mjk1LgogICAKICAgICAtIG1pbm9yIGRlYnVnZ2luZyBvdXRwdXQgY2hhbmdlcwogICAKMjAwMi0wMS0xMCAwNzozMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrIGluIHJlYXNzaWduX3JlcXVlc3RzKCkKICAgCjIwMDItMDEtMTAgMDc6MjEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNldCB0eXBlIGZvciB1bmhhbmRsZWQgR0VUIHJlcXVlc3RzIGluIGhhbmRsZV9wZHUoKSB0byBiZQogICAgICAgbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gbm9TdWNoT2JqZWN0IChub1N1Y2hPYmplY3QgZXhjZXB0aW9ucwogICAgICAgYXJlIGRldGVjdGVkIGFuZCBleHBsaWNpdGx5IHNldCBlYXJsaWVyKS4KICAgCjIwMDItMDEtMTAgMDU6NTIgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gY29ycmVjdCB0eXBvIHRoYXQgbWVhbnQgZXJyb3IgcmV0dXJucyBmcm9tIG9sZC1hcGkgd3JpdGUgbWV0aG9kcwogICAgICAgd2VyZSBpZ25vcmVkLgogICAKMjAwMi0wMS0xMCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gY2hhbmdlIHZhbHVlIG9mIFNUQVRfVEFSR0VUX1NUQVRTX0VORCBzbyB0aGF0IG1pYklJL3NubXBfbWliLmMgY2FuCiAgICAgICByZXR1cm4gdmFsdWVzIG9mIG1hbmRhdG9yeSBvYmplY3RzIHNubXBTaWxlbnREcm9wcyBhbmQKICAgICAgIHNubXBQcm94eURyb3BzLgogICAKMjAwMi0wMS0wOSAwODo1MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSB1bmtub3duL2lsbGVnYWwgdmFyYmluZCB0eXBlcyBpbiB2MS92MmMgUERVcyBjYXVzZQogICAgICAgc25tcEluQVNOUGFyc2VFcnJzIHRvIGJlIGluY3JlbWVudGVkLgogICAKMjAwMi0wMS0wOSAwNzo1NSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMDEtMDkgMDc6MzIgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa2dldC5jOgoKICAgICAtIGJyaW5nIGFwcC1zcGVjaWZpYyBvcHRpb25zIGluIGxpbmUgd2l0aCBzbm1wYnVsa3dhbGsgKC1DIHJhdGhlcgogICAgICAgdGhhbiAtQikKICAgCjIwMDItMDEtMDkgMDc6MzEgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgICAgLSBmb3JtYXR0aW5nIGNoYW5nZSB0byB1c2FnZSBtZXNzYWdlCiAgIAoyMDAyLTAxLTA5IDA2OjM1ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsKICAgCjIwMDItMDEtMDggMDg6NTUgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgICAgLSBhZGQgb3B0aW9ucyBmcm9tIHNubXB3YWxrCiAgIAogICAgIC0gYWxsb3cgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGVhdGVycyB0byBiZSBzZXQKICAgCiAgICAgLSBjaGFuZ2UgZGVmYXVsdCB2YWx1ZSBvZiBtYXgtcmVwZWF0ZXJzIHRvIGEgbG93ZXIgdmFsdWUgdG8gYXZvaWQKICAgICAgIHRpbWVvdXRzIHdpdGggc2xvd2VyIGFnZW50cwogICAKMjAwMi0wMS0wOCAwODoxNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdHJ5IHRvIG1hbGxvYygpIGEgemVyby1sZW5ndGggYnVmZmVyLCBpbiBjYXNlIHNvbWUgbWFsbG9jKClzCiAgICAgICBjb21wbGFpbi4KICAgCjIwMDItMDEtMDggMDg6MTUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhvcGVmdWxseSBmaW5hbCBHRVRCVUxLIGZpeCAtLSBwYXNzZXMgYWxsIFNpbHZlckNyZWVrJ3MgR0VUQlVMSwogICAgICAgdGVzdHMgKGluY2wuIG5lZ2F0aXZlIG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMpCiAgIAoyMDAyLTAxLTA4IDA2OjU5ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICAgIC0gR0VUQlVMSyBmaXggdG8gaWdub3JlIHZhcmJpbmRzIGZvciB3aGljaCB6ZXJvIHJlcGV0aXRpb25zIGFyZQogICAgICAgY2FsbGVkIGZvcgogICAKICAgICAtIGRyb3AgYXNwLT5zdGFydCBhbmQgYXNwLT5lbmQgd2hpY2ggYXJlIGhhcmRseSB1c2VkIGFuZCB3aGljaCBnZXQKICAgICAgIGluIHRoZSB3YXkgb2YgdGhpcyB0eXBlIG9mIHByb2Nlc3NpbmcKICAgCiAgICAgLSBpZ25vcmUgbmVnYXRpdmUgcmVwZXRpdGlvbnMgaW4gYnVsa190b19uZXh0IGhhbmRsZXIKICAgCjIwMDItMDEtMDcgMDg6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGUKICAgCjIwMDItMDEtMDcgMDg6MzggIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci9JTlNUQUxMOgoKICAgUE5HR3JhcGggLT4gR0Q6OkdyYXBoCiAgIAoyMDAyLTAxLTA0IDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZpeCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDEtMDQgMTM6MjQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGluY2x1ZGUvbmV0LXNubXAvYWNjb25maWcuaDoKCiAgIG1vdmUgYWNjb25maWcuaCBiYWNrIHRvIHRoZSB0b3AgZGlyIHdoZXJlIGl0cyBhcHBhcmVudGx5IHN1cHBvc2VkIHRvIGxpdmUuCiAgIAoyMDAyLTAxLTA0IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1vcmUgdWNkLXNubXAgLT4gbmV0LXNubXAgdHJhbnNsYXRpb25zLiAgd2FybmluZzogaW5jbHVkZXMgdGhlIGRlZmF1bHQgcGVyc2lzdGVudCBzdG9yZS4KICAgCjIwMDItMDEtMDQgMTM6MDQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvOiBuZXQtc25tcC8uY3ZzaWdub3JlLCB1Y2Qtc25tcC8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGVzCiAgIAoyMDAyLTAxLTA0IDEzOjAyICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGJ1aWx0IG5ldC1zbm1wLWNvbmZpZwogICAKMjAwMi0wMS0wNCAxMzowMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBlbmNvZGVfa2V5Y2hhbmdlLmMsCiAgIG5vdGlmaWNhdGlvbl9sb2cuYywgc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMKLCBzbm1wZGVsdGEuYywgc25tcGRmLmMsIHNubXBnZXQuYywKICAgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsCiAgIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYwosIHNubXB0cmFwZF9sb2cuYywgc25tcHVzbS5jLCBzbm1wdmFjbS5jCiwgc25tcHdhbGsuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiwgaW5jbHVkZS9uZXQtc25tcC9hY2NvbmZpZy5oLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL3VjZC1zbm1wL1JFQURNRSwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9kYXRhX2xpc3QuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIvaW50NjQuYywgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9vaWRfYXJyYXkuYywKICAgc25tcGxpYi9vaWRfc3Rhc2guYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC5jLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKLCBzbm1wbGliL3NubXBJUFhEb21haW4uYywgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfZW51bS5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywKICAgc25tcGxpYi9zbm1wa3NtLmMsIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB2My5jCiwgc25tcGxpYi9zbnByaW50Zi5jLCBzbm1wbGliL3N0cnRvbC5jLAogICBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi90b29scy5jCiwgc25tcGxpYi92YWNtLmMsIHRlc3RpbmcvVC5jLAogICB0ZXN0aW5nL2V0aW1ldGVzdC5jLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywKICAgdGVzdGluZy9taXNjdGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2FnZW50X2hhbmRsZXIuYywgYWdlbnQvYWdlbnRfaW5kZXguYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hdXRvX25saXN0LmMsCiAgIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9taWJfbW9kdWxlcy5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jLCBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYwosIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYywgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jCiwgYWdlbnQvaGVscGVycy9udWxsLmMsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYwosIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYywgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9hZ3V0aWwuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9SbW9uL2hpc3RvcnkuYywgYWdlbnQvbWliZ3JvdXAvUm1vbi9yb3dzLmMKLCBhZ2VudC9taWJncm91cC9SbW9uL3N0YXRpc3RpY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICByZW1vdmVkIHVuZWVkZWQgb2xkZXIgZmlsZXMKICAgCjIwMDItMDEtMDMgMTQ6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcGF0Y2ggIzQ5MjA3MiB0byBtYWluIGJyYW5jaAogICAKMjAwMi0wMS0wMyAxNDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgY2hlY2sgcmVzdWx0cyBvZiBzZXRtbnRlbnQgYmVmb3JlIHVzaW5nIHRoZW0uCiAgIAoyMDAyLTAxLTAzIDEzOjU3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBjaGVjayBhZ2FpbnN0IGdyb3dpbmcgc2VydmVyIHJldHVybnMgYXMgcG9pbnRlZCBvdXQgYnkgYnVnICM0OTg5NTYKICAgCjIwMDItMDEtMDMgMTE6NDAgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci9kaXNwbGF5dGFibGUucG06CgogICBQTkdHcmFwaCAtPiBHREdyYXBoCiAgIAoyMDAyLTAxLTAzIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hhbmdlIGV4cG9ydCBuYW1lIHRvICJuZXQtc25tcCIgZnJvbSAidWNkLXNubXAiCiAgIAoyMDAyLTAxLTAzIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgbWFrZSB1c2Ugb2YgdGhlIG5ldyBtdWx0aS1hZGQgZnVuY3Rpb25zLgogICAKMjAwMi0wMS0wMyAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGFzZXQuYywgdGFibGVfZGF0YXNldC5oOgoKICAgYWRkIG11bHRpcGxlIGRlZmF1bHQgcm93IGNvbHVtbiBkZWZpbml0aW9ucyB1c2luZyBvbmUgZnVuY3Rpb24gY2FsbCAodmFyYXJncykuCiAgIAoyMDAyLTAxLTAzIDExOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGUuaDoKCiAgIGFkZCBtdWx0aXBsZSBpbmRleGVzIHVzaW5nIG9uZSBmdW5jdGlvbiBjYWxsICh2YXJhcmdzKS4KICAgCjIwMDItMDEtMDMgMTE6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBkZWZpbmVkIHY0IGFwaSBmdW5jdGlvbnMgKGdldFN0YXRQdHIgbm8gbGVzcykuCiAgIAoyMDAyLTAxLTAzIDExOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50Lmg6CgogICByZW1vdmUgbm8gbG9uZ2VyIGRlZmluZWQgdjQgYXBpIGZ1bmN0aW9ucy4KICAgCjIwMDItMDEtMDMgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgb2lkX3N0YXNoLmMsIG9pZF9zdGFzaC5oCjoKCiAgIGRhdGEgc3Rhc2hpbmcgYmFzZWQgb24gYW4gb2lkIGNhY2hpbmcgdHJlZS4KICAgCjIwMDEtMTItMjYgMTU6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvbWFuYWdlci86IElOU1RBTEwsIE1ha2VmaWxlLlBMLCBtYW5hZ2VyLnBtCjoKCiAgIHVwZGF0ZSB0byBtYWtlIGl0IGEgYml0IGVhc2llciB0byBpbnN0YWxsIChpbmNsdWRpbmcgYSBNYWtlZmlsZSBmb3IKICAgYXV0b21hdGVkIGluc3RhbGxhdGlvbikuCiAgIAoyMDAxLTEyLTI2IDEzOjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvOiBJTlNUQUxMLCBkaXNwbGF5dGFibGUucG0sIGdldFZhbHVlcy5wbQosIGdyZWVuLmdpZiwgbWFuYWdlci5wbSwgcmVkLmdpZiwgc2V0dXBhdXRoCiwgc2V0dXBkYiwgc2V0dXB1c2VyLCBzbm1wdG9zcWw6CgogICBtb3ZpbmcgbWFuYWdlciB0byBwZXJsL21hbmFnZXIKICAgCjIwMDEtMTItMjQgMTY6MTAgIGhhcmRha2VyCgogICAqIEZBUSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLnByZTEgKQogICAKMjAwMS0xMi0yNCAxNjowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmMsIG1pYjJjLmNvbmY6CgogICBVcGRhdGUgdG8gbWFrZSBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IGl0J3Mgbm90IGZpbmlzaGVkIGFuZCB5b3UgbXVzdAogICByZWZlcmVuY2UgYSBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb24gZmlsZSBhdCB0aGlzIHBvaW50LgogICAKMjAwMS0xMi0yNCAxNTo1MSAgaGFyZGFrZXIKCiAgICogRkFRLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAubm90LmV2ZW4uY2xvc2UgKQogICAKMjAwMS0xMi0yNCAxNTo1MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbW9yZSBjb21tZW50cy4KICAgCjIwMDEtMTItMjQgMTU6NDEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgbW9yZSB1cGRhdGVzCiAgIAoyMDAxLTEyLTI0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGRveHlnZW4gY29tbWVudHMKICAgCjIwMDEtMTItMjQgMTU6MjAgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRToKCiAgIDUuMCBjb21tZW50IHVwZGF0ZXMuCiAgIAoyMDAxLTEyLTI0IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzIG9uIGEgZmV3IGZ1bmN0aW9ucy4KICAgCjIwMDEtMTItMjQgMTU6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTItMjQgMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyBmb3Igbm9uLWV4aXN0ZW50IG1vZHVsZXMKICAgCjIwMDEtMTItMjMgMTU6NDcgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZzoKCiAgIG9wcHMuICBEb24ndCBjaGVjayBpbiBnZW5lcmF0ZWQgZmlsZXMuCiAgIAoyMDAxLTEyLTIzIDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBmaXggcnBtIHVzYWdlIChJIGhvcGUpLgogICAKMjAwMS0xMi0yMyAxNDo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIGFkZGVkIC5jdnNpZ25vcmUgZmlsZQogICAKMjAwMS0xMi0yMyAxNDo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG5ldC1zbm1wLWNvbmZpZy4KICAgCjIwMDEtMTItMjMgMTQ6NDcgIGhhcmRha2VyCgogICAqIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBuZXQtc25tcC1jb25maWcsIG5ldC1zbm1wLWNvbmZpZy5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhcHBzL01ha2VmaWxlLmluOgoKICAgLSBjcmVhdGVkIGEgbmV0LXNubXAtY29uZmlnIHNjcmlwdCB0byByZXBvcnQgY29tcGlsZWQgbGlicy4KICAgLSBzZXBhcmF0ZWQgbGlicyBuZWVkZWQgYnkgYWdlbnQgZnJvbSB0aG9zZSBuZWVkZWQgYnkgdGhlIHJlc3Qgb2YgdGhlCiAgICAgYXBwbGljYXRpb25zLgogICAKMjAwMS0xMi0yMSAxNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaG93IHRvIGluc3RhbGwgREJJCiAgIAoyMDAxLTEyLTIxIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9NYWtlZmlsZS5QTDoKCiAgIHJlbW92ZSB2ZXJzaW9uIHJlcXVpcmVtZW50IGZvciBBbnlEYXRhCiAgIAoyMDAxLTEyLTIxIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbWFrZSBpbnN0YWxsIGFzIHJvb3QuCiAgIAoyMDAxLTEyLTIxIDE2OjMyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IElOU1RBTEwsIElOU1RBTEwsIElOU1RBTEwsCiAgIElOU1RBTEw6CgogICBiZXR0ZXIgZGVzY3IKICAgCjIwMDEtMTItMjEgMTY6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1JFQURNRToKCiAgIG1pbm9yIHdvcmRpbmcgY2hhbmdlLgogICAKMjAwMS0xMi0yMSAxNjowNyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaXQncyB2ZXJ5IGFscGhhIGNvZGUuCiAgIAoyMDAxLTEyLTIxIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgbmV3IGluc3RydWN0aW9ucwogICAKMjAwMS0xMi0yMSAxMDoxOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gZG94eWdlbi4KICAgCjIwMDEtMTItMjEgMTA6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmg6CgogICBjb21waWxlIGluIGFnZW50IHNwZWNpZmljIHN1cHBvcnQgbWlicy4KICAgCjIwMDEtMTItMjEgMDk6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAoc3RpbGwgaW5jb21wbGV0ZSkgMm5kIHVwZGF0ZSBmb3IgNS4wCiAgIAoyMDAxLTEyLTIxIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKGluY29tcGxldGUpIHVwZGF0ZSBmb3IgNS4wCiAgIAoyMDAxLTEyLTE5IDE3OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCByZWFsbG9jIGZsb2F0IGFuZCBkb3VibGUgYnVpbGRzLgogICAKMjAwMS0xMi0xOSAxNjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWlzYyBmaXhlcy4KICAgCjIwMDEtMTItMTkgMTY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZGVmaW5lIGEgQyBkYXRhdHlwZSBhcyAkdmFyLmRlY2wgKHBlciBSb2JlcnQncyBzdWdnZXN0aW9uLiAgUm9iZXJ0OiB3ZQogICBwcm9iYWJseSB3YW50IHBvaW50ZXJzIGZvciB0aGluZ3MgbGlrZSBzdHJpbmdzLCBubz8gIG1heWJlIG9uZSB0eXBlCiAgIHRoYXQgaXMgYWx3YXlzIGEgcG9pbnRlciBhbmQgYW5vdGhlciB0aGF0IGlzIHNvbWV0aW1lcyBkZXBlbmRpbmcgb24KICAgdGhlIHR5cGU/KQogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgIGNoYW5nZSBkZWZhdWx0IGJ1bGsgbnVtYmVyIHRvIDEwMCBmcm9tIHRoZSByaWRpY3Vsb3VzIDEwMDAuCiAgIAoyMDAxLTEyLTE5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBtYWtlIGRlcGVuZAogICAKMjAwMS0xMi0xOSAwODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIGhlbHBlcnMvYnVsa190b19uZXh0LmM6CgogICBnZXRidWxrIHVwZGF0ZXMgdG8gbWFrZSBpdCB0aGUgbW9kdWxlcyByZXNwb25zaWJpbGl0eSB0byB1cGRhdGUgdGhlCiAgIHZhcmJpbmQgY2hhaW4gYW4gdGhlIHJlcGVhdCBjb3VudGVyLgogICAKMjAwMS0xMi0xOSAwNzo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oCiwgaGVscGVycy9NYWtlZmlsZS5pbiwgaGVscGVycy9hbGxfaGVscGVycy5jLAogICBoZWxwZXJzL2FsbF9oZWxwZXJzLmgsIGhlbHBlcnMvYnVsa190b19uZXh0LmMsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0Lmg6CgogICBHRVRCVUxLIHN1cHBvcnQgZm9yIHRoZSBuZXcgQVBJLgogICAgIC0gbWF5IG5lZWQgdG8gbWFrZSBzb21lIHNsaWdodCBtb2RpZmljYXRpb25zLgogICAgIC0gZGVmYXVsdHMgdG8gR0VUTkVYVCBmb3IgYW55IGhhbmRsZXIgdGhhdCBkb2Vzbid0IHNldCBIQU5ETEVSX0NBTl9HRVRCVUxLLgogICAgIC0gZG9lc24ndCBkZWFsIHByb3Blcmx5IHlldCB3aXRoIGVuZC1vZi1taWIgY29uZGl0aW9uIHJlbW92YWwuCiAgIAoyMDAxLTEyLTE5IDA2OjA1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZHJvcCAtcCBvcHRpb24uICBBZGRyZXNzZXMgdG8gbGlzdGVuIG9uIG5vdyBjb21lIGFzIG9wdGlvbmFsCiAgICAgICBhcmd1bWVudHMgYXQgdGhlIGVuZCBvZiB0aGUgY29tbWFuZCBsaW5lLgogICAKICAgICAtIGRyb3AgKGxvbmctZGVwcmVjYXRlZCkgLXEgb3B0aW9uLgogICAKICAgICAtIHJlLW9yZGVyZWQgb3B0aW9ucyBpbiB1c2FnZSBtZXNzYWdlIHRvIGJlIGFscGhhYmV0aWNhbCwgYW5kCiAgICAgICBjaGFuZ2VkIGRlc2NyaXB0aW9uIG9mIHNvbWUgb3B0aW9ucyB0byBiZSBtb3JlIHNpbWlsYXIgdG8gc25tcGQKICAgICAgIG9wdGlvbnMgKHdoZXJlIGFwcHJvcHJpYXRlKS4KICAgCjIwMDEtMTItMTkgMDQ6MzggIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBkcm9wIC1wIGFuZCAtVCBvcHRpb25zLiAgQWRkcmVzc2VzIHRvIGxpc3RlbiBvbiBub3cgY29tZSBhcwogICAgICAgb3B0aW9uYWwgYXJndW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZS4KICAgCiAgICAgLSByZS1vcmRlcmVkIG9wdGlvbnMgaW4gdXNhZ2UgbWVzc2FnZSB0byBiZSBhbHBoYWJldGljYWwsIHBsdXMKICAgICAgIG1pbm9yIGZvcm1hdHRpbmcgdHdlYWtzLgogICAKICAgICAtIHJlLXdyaXR0ZW4gb3B0aW9ucyBwcm9jZXNzaW5nIGxvb3AgdG8gdXNlIG9wdGFyZygpLgogICAKMjAwMS0xMi0xOCAwODo0NCAgamJwbgoKICAgKiBtaWJzLzogVUNELVNOTVAtTUlCLnR4dCAoVjQtMi1wYXRjaGVzLjUpLCBVQ0QtU05NUC1NSUIudHh0CjoKCiAgICAgLSBhZGQgT0JKRUNUIElERU5USUZJRVIgZm9yIHdpbjMyIGFnZW50CiAgIAoyMDAxLTEyLTE4IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIHdhcm5pbmcgLT4gZGVidWcuCiAgIAoyMDAxLTEyLTE3IDEwOjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBoYW5kbGUgZ2V0TmV4dCBxdWVyaWVzIHdoZXJlIHRoZSBpbml0aWFsIHZhcmJpbmQtPnR5cGUgaXMKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgKHRoZXNlIGN1cnJlbnRseSBhcmlzZSBvbmx5IGluIEFnZW50WAogICAgICAgc3ViYWdlbnRzIGJ1dCB0aGUgaGFuZGxpbmcgaXMgbm90IHNwZWNpZmljIHRvIEFnZW50WCkuCiAgIAogICAgICAgQmFzaWNhbGx5IHRoaXMgaXMgZG9uZSBieSBwZXJmb3JtaW5nIGEgR0VUIGZpcnN0IG9uIGFsbCB0aGUKICAgICAgIHZhcmlhYmxlcyBpbiBhIHJlcXVlc3QuICBGb3IgdmFyaWFibGVzIHRoYXQgaGFkIGFuIGluaXRpYWwgdHlwZSBvZgogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSBhbmQgd2VyZSBzYXRpc2ZpZWQgYnkgdGhpcyBpbml0aWFsIEdFVCwgd2UgdXNlCiAgICAgICB0aGlzIHZhbHVlIGFzIHRoZSByZXN1bHQuICBGb3IgdmFyaWFibGVzIHRoYXQgZGlkIG5vdCBoYXZlIGFuCiAgICAgICBpbml0aWFsIHR5cGUgb2YgQVNOX1BSSVZfSU5DTF9SQU5HRSwgb3IgdmFyaWFibGUgdGhhdCBoYWQgYW5kCiAgICAgICBpbml0aWFsIHR5cGUgb2YgQVNOX1BSSVZfSU5DTF9SQU5HRSBidXQgd2VyZSBub3Qgc2F0aXNmaWVkIGJ5IHRoaXMKICAgICAgIEdFVCByZXF1ZXN0LCB3ZSBwcm9jZWVkIHRvIHBlcmZvcm0gYSBHRVQtTkVYVCB0eXBlIHJlcXVlc3QgYXMKICAgICAgIG5vcm1hbC4KICAgCjIwMDEtMTItMTcgMTA6MDQgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGljaCBlbXVsYXRlcyBvbGQKICAgICAgIGZ1bmN0aW9uYWxpdHkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIHJlZ2lzdGVyX29sZF9hcGkoKS4KICAgCjIwMDEtMTItMTcgMDk6MzkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggYm9ndXMgaW5kZW50CiAgIAoyMDAxLTEyLTE3IDA5OjM4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSByaWdodCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciByZWdpc3Rlcl9taWJfY29udGV4dDIoKSBpbgogICAgICAgcmVnaXN0ZXJfYWdlbnR4X2xpc3QoKS4KICAgCiAgICAgLSB1c2Ugc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkgaW4gZGl0dG8uCiAgIAoyMDAxLTEyLTEzIDE5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgaGFuZGxlciBpbmplY3Rpb24gb3JkZXIgKHNlcmlhbGl6ZSBuZWVkcyB0byBiZSBjYWxsZWQgZmlyc3QpCiAgIAoyMDAxLTEyLTEzIDE5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgdW5uZWVkZWQgY2hlY2sgZm9yIGFscmVhZHkgYW5zd2VyZWQgQVNOX05VTExzIGluIGZpcnN0IHBhc3MuCiAgIAoyMDAxLTEyLTEyIDA5OjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IC5jdnNpZ25vcmUsIElOU1RBTEwsIE1BTklGRVNUCiwgUkVBRE1FLCBzbm1wc2g6CgogICAtIGRvYyB1cGRhdGUuCiAgIC0gc25tcHNoIG5vdyBzdXBwb3J0cyBhbGlhc2VzIHNvIHlvdSBjYW4gZGVmaW5lIGNvbW1hbmQgc2V0cy4KICAgLSBzbm1wc2ggbm93IHJlYWRzIGEgfi8uc25tcHNocmMgZmlsZSBmb3Igc3RvcmluZyB0aGVzZSBkZWZpbmVkIGFsaWFzZXMuCiAgIAoyMDAxLTEyLTEyIDA2OjQyICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gbmV3IGZ1bmN0aW9uIGpvaW5fc3VidHJlZSgpIHdoaWNoIHJlcGFpcnMgInB1bmN0dXJlZCIgc3VidHJlZXMKICAgICAgICh0aGVzZSBhcmlzZSBpbiBwYXJ0aWN1bGFyIHdoZW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb25zIGFyZQogICAgICAgd2l0aGRyYXduKS4KICAgCiAgICAgLSBjb3B5IHJlZ2luZm8gd2hlbiBkb2luZyBhIHJhbmdlIHJlZ2lzdHJhdGlvbiAoYXMgd2UgdXNlZCB0byBkbwogICAgICAgd2l0aCB0aGUgdmFyaWFibGUgc3RydWN0dXJlKSwgc2luY2UgZWFjaCBub2RlIG11c3Qgc3RhbmQgYWxvbmUuCiAgIAogICAgIC0gYWRkIHBhcmFtZXRlciB0byByZWdpc3Rlcl9taWJfY29udGV4dDIgdG8gYWxsb3cgUkVHSVNURVJfT0lECiAgICAgICBjYWxsYmFja3MgdG8gYmUgd2l0aGhlbGQgKGZvciBpbnN0YW5jZSwgeW91IG5lZWQgdGhpcyB0byBhdm9pZAogICAgICAgZXhjZXNzIEFnZW50WCB0cmFmZmljIGZvciByb3cgcmVnaXN0cmF0aW9ucykuCiAgIAogICAgIC0gcmVtb3ZlIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSAtLSB0aGlzIGhhcyBtb3ZlZCB0byBvbGRfYXBpLmMKICAgCiAgICAgLSBjYWxsIGpvaW5fc3VidHJlZSgpIGluIHVucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uKCkuCiAgIAoyMDAxLTEyLTEyIDA2OjMzICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9oYW5kbGVyLmg6CgogICAgIC0gYWRkIGZ1bmN0aW9ucyBzbm1wX2hhbmRsZXJfZnJlZSgpLCBzbm1wX2hhbmRsZXJfZHVwKCksCiAgICAgICBzbm1wX2hhbmRsZXJfcmVnaXN0cmF0aW9uX2R1cCgpIGFuZAogICAgICAgc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkuCiAgIAoyMDAxLTEyLTExIDE4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCBidWcgd2hlcmUgcGR1LT5jb250ZXh0TmFtZSBpcyBOVUxMLgogICAKMjAwMS0xMi0xMSAwNzozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBCSVRTOiBpcGFkZHIgLT4gb2N0ZXRfc3RyCiAgIAoyMDAxLTEyLTExIDA0OjExICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBzZW5kIElOQ0xVU0lWRSBzZWFyY2ggcmFuZ2VzIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTEwIDIwOjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgbm9hY2Nlc3MgZmxhZyBmb3Igbm90LWFjY2Vzc2libGUgbm9kZXMKICAgCjIwMDEtMTItMTAgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogQ2hhbmdlcywgREJEX0FueURhdGEucGF0Y2gsCiAgIEZvcm1hdC5wbSwgSU5TVEFMTCwgTUFOSUZFU1QsIE1ha2VmaWxlLlBMLAogICBTdG9yYWdlLnBtLCBzbm1wc2g6CgogICBGaXJzdCB2ZXJzaW9uCiAgIAoyMDAxLTEyLTEwIDAzOjIwICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwIGFyZyB0byBkc19zZXRfc3RyaW5nCiAgIAoyMDAxLTEyLTEwIDAzOjE5ICBqYnBuCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgICAgLSBkaXR0byBpbiBzZXRfcGVyc2lzdGVudF9kaXJlY3RvcnkoKQogICAKMjAwMS0xMi0xMCAwMzoxOCAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gZG9uJ3Qgc3RyZHVwKCkgaW4gc2V0X2NvbmZpZ3VyYXRpb25fZGlyZWN0b3J5KCkgYmVjYXVzZQogICAgICAgZHNfc2V0X3N0cmluZygpIGFscmVhZHkgZG9lcyB0aGF0IGZvciB5b3UuCiAgIAoyMDAxLTEyLTA3IDA5OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywgaGVscGVycy90YWJsZV9pdGVyYXRvci5oCiwgbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgLSBJbXBsZW1lbnQgbmV3IG1hbnRyYTogImFsd2F5cyBwYXNzIG1vcmUgaW5mb3JtYXRpb24sIHJhdGhlciB0aGFuIGxlc3MiLgogICAtIGZpeCB0YWJsZSBpdGVyYXRlciBHRVRORVhUcyBmb3IgbWlzc2luZyBkYXRhIHBvaW50cy4KICAgLSBhZGQgYSBuZXcgaG9vayB0byBmcmVlIGxvb3AgY29udGV4dHMgYXQgdGhlIGVuZCBvZiB0aGUgZW50aXJlIGl0ZXJhdGlvbi4KICAgCjIwMDEtMTItMDYgMDY6NTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgKEpCUE4tQ0JMLTQuMSksIGNsaWVudC5jOgoKICAgICAtIGlmIHJlcXVlc3QgSURzIGRvbid0IG1hdGNoLCB0aGVuIGNhbGwgaGFuZGxlX2FnZW50eF9wYWNrZXQoKSAtLQogICAgICAgY29wZXMgYmV0dGVyIHdpdGggdW5leHBlY3RlZCBwYWNrZXRzLCBpbiBwYXJ0aWN1bGFyIGZpeGVzCiAgICAgICBpbnRlcm1pdHRlbnQgZHVwbGljYXRlIHRyYXAgaXNzdWUgKGR1ZSB0byByZXNlbnQKICAgYWdlbnR4LU5vdGlmeS1QRFUpLgogICAKMjAwMS0xMi0wNSAxMzo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBBaGVtLiAgT3Bwcy4gIE1pc3NpbmcgaW5jbHVkZXMuCiAgICAgLSBub3RlIHRvIHNlbGY6IGNvbXBpbGUgZmlyc3QsICp0aGVuKiBjaGVjayBpbiBjaGFuZ2VzLgogICAKMjAwMS0xMi0wNSAxMzo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBhZGQgaW4gdGhlIG1pc3NpbmcgZnVuY3Rpb25zIGZyb20gdGhlIE5FVy1BR0VOVC1BUEkgYnJhbmNoLgogICAgIChhbmQgdG8gYW5zd2VyIFJvYmVydCdzIHBlbmRpbmcgcXVlc3Rpb24gb2Ygd2hhdCBoYXBwZW5lZCwgaXQgd2FzCiAgICAgIGxpa2VseSBvbmUgb2YgdGhlIGZpbGVzIHRoYXQgZmFpbGVkIHRvIGNvbW1pdCBvbiBteSBzaWRlIHRoYXQgeW91CiAgICAgIHRyaWVkIHRvIGZpeCBhbmQgc29tZXdoZXJlIGJldHdlZW4gdGhlIHR3byBvZiB1cyB0aGUgY2hhbmdlcyB3ZXJlIGxvc3QpLgogICAKMjAwMS0xMi0wNSAxMDowMyAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIG1pbm9yIHR3ZWFrcwogICAKMjAwMS0xMi0wNSAwOToxNCAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIGFkZCBUQ1AvSVB2NiBkb21haW4gdG8gQUdFTlQgU1BFQyBzZWN0aW9uCiAgIAogICAgIC0gaW5jb3Jwb3JhdGUgc3VnZ2VzdGlvbnMgZnJvbSByc3RvcnkKICAgCjIwMDEtMTItMDUgMDg6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgICAtIHVzZSBTT0NLX1NUUkVBTSBub3QgU09DS19ER1JBTSAoZHVoISkuICBZb3Ugd291bGRuJ3QgYmVsaWV2ZSBob3cKICAgICAgIGNvbmZ1c2luZyB0aGlzIHdhcyAtLSBlLmcuIGhvdyBvbiAqZWFydGgqIGNhbiB0aGF0IGNvbm5lY3QoKSBiZQogICAgICAgc3VjY2VlZGluZyEKICAgCjIwMDEtMTItMDUgMDg6MzYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gbWFrZSBzdXJlIHRvIGNsb3NlIHNvY2tldCBpZiB5b3UgY2FuJ3QgbWFsbG9jIHRoZSBlbmNvZGVkIGZhci1lbmQKICAgICAgIGFkZHJlc3MgaW4gc25tcF90Y3BfdHJhbnNwb3J0KCkKICAgCjIwMDEtMTItMDUgMDg6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyLzogc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAuZHNwLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcCwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCwgc25tcHZhY20vc25tcHZhY20uZHNwOgoKICAgbWVyZ2UgZnJvbSA0LjIgcGF0Y2hlcyB0byBtYWluIGxpbmUKICAgCjIwMDEtMTItMDUgMDg6MjMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRkFRLCBORVdTLCBSRUFETUUsCiAgIFJFQURNRS53aW4zMiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGxvY2FsL21pYjJjLCBsb2NhbC90a21pYgosIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsCiAgIHBlcmwvU05NUC9TTk1QLnBtLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oLAogICBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2luY2x1ZGVzLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCwgd2luMzIvd2luMzIuZHN3LAogICB3aW4zMi93aW4zMi5vcHQsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AKLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLAogICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AKLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGRmL3NubXBkZi5kc3AKLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcAosIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXB0YWJsZS9zbm1wdGFibGUuZHNwLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3AKOgoKICAgbWVyZ2UgZnJvbSA0LjIgcGF0Y2hlcyB0byBtYWluIGxpbmUKICAgCjIwMDEtMTItMDUgMDc6NTEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIGZpeCBidWcgaW4gYWRkcmVzcyBwYXJzZXIKICAgCjIwMDEtMTItMDUgMDc6NDggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gbWlub3IgY2hhbmdlcyB0bywgYWhlbSwgbWFrZSBpdCBjb21waWxlCiAgIAoyMDAxLTEyLTA1IDA3OjQyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIGNvbmRpdGlvbmFsaXNlICNpbmNsdWRlIDxmY250bC5oPgogICAKMjAwMS0xMi0wNSAwNzozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gZml4IHR5cG8KICAgCjIwMDEtMTItMDUgMDc6MjkgIGpicG4KCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgICAtIG1lbnRpb24gdGhlIFRDUC9JUHY2IHRyYW5zcG9ydCBpbiBjb25maWcsIGFuZCBhZGQgYSAjZGVmaW5lIGZvciBpdAogICAgICAgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMDUgMDc6MjggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgICAtIGNhbGwgc25tcF90Y3A2X2N0b3IoKSBpZiBhcHByb3ByaWF0ZQogICAKMjAwMS0xMi0wNSAwNzoyNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uaDoKCiAgICAgLSBUQ1AvSVB2NiB0cmFuc3BvcnQgZG9tYWluLiAgVW50ZXN0ZWQuCiAgIAoyMDAxLTEyLTA1IDA3OjE5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBtYWtlIGVuY29kZWQgYWRkcmVzc2VzIGF0IHRyYW5zcG9ydCBvcGVuIHRpbWUKICAgCjIwMDEtMTItMDUgMDc6MTcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBtb3ZlICNkZWZpbml0aW9uIG9mIFNOTVBfU1RSRUFNX1FVRVVFX0xFTiBmcm9tIHNubXBUQ1BEb21haW4uYwogICAgICAgdG8gc25tcF90cmFuc3BvcnQuaAogICAKMjAwMS0xMi0wNSAwNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jOgoKICAgcmVtb3ZlIHNvbWUgdW5uZWVkZWQgZnVuY3Rpb25zIGxpa2UsIG9oLCBJIGRvbid0IGtub3csIGdldFN0YXRQdHIoKS4KICAgCjIwMDEtMTItMDUgMDU6NDMgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBsZWdhY3kgY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTEyLTA1IDA1OjA2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgICAgLSBjaGFuZ2VkIHRleHR1YWwgYWRkcmVzcyBwYXJzaW5nCiAgIAoyMDAxLTEyLTA0IDIyOjUyICBuYmEKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgRml4IGJpbmQgcGFyYW1ldGVycywgc28gdGhhdCB0aGUgYWdlbnQgd29ya3MKICAgCjIwMDEtMTItMDQgMTM6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuaCwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZgo6CgogICAtIG1vdmUgZm9yZ290dGVuIGZ1bmN0aW9uIHR5cGVkZWZzIHRvIGl0ZXJhdG9yIHNwZWNpZmljIGhlYWRlciBmaWxlLgogICAtIGFkZCBhIHZvaWQgKiBwb2ludGVyIGZvciB0aGUgY2FsbGJhY2tzIHRvIG1ha2UgZnVuY3Rpb25zIG1vcmUgcmV1c2FibGUuCiAgIAoyMDAxLTEyLTA0IDEzOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmgsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwosIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmYKOgoKICAgbW92ZSBpdGVyYXRvciBzcGVjaWZpYyB0YWJsZSBpbmZvcm1hdGlvbiBpbnRvIGl0cyBvd24gc3RydWN0dXJlLgogICAKMjAwMS0xMi0wNCAxMjoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgRml4IHByb3RvdHlwZSBhcyBwb2ludGVkIG91dCBieSBKZXJvbWUgUGVkdWNhc3NlCiAgIAoyMDAxLTEyLTA0IDEwOjEwICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gbWVudGlvbiB0aGF0IG5vdCBhbGwgdHJhbnNwb3J0IGRvbWFpbnMgYXJlIGFsd2F5cyBhdmFpbGFibGUuCiAgIAoyMDAxLTEyLTA0IDA5OjU1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gcmVtb3ZlIC1wIGFuZCAtVCBvcHRpb25zIGZyb20gZG9jdW1lbnRhdGlvbi4KICAgCiAgICAgLSBhZGQgbGVuZ3RoeSBuZXcgc2VjdGlvbiBkZXNjcmliaW5nIG5ldyB0cmFuc3BvcnQgYWRkcmVzcwogICAgICAgc3BlY2lmaWNhdGlvbiBmb3JtYXQsIHdpdGggZXhhbXBsZXMgYW5kIGV2ZXJ5dGhpbmchCiAgIAoyMDAxLTEyLTA0IDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZHJvcCAtcCBhbmQgLVQgb3B0aW9ucyBmb3IgYXBwcy4KICAgCjIwMDEtMTItMDQgMDM6MTAgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBVRFBJUHY2RG9tYWluLmMsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICAgIC0gYWRkIGNyZWF0ZV9vc3RyaW5nIG1ldGhvZCwgZXhwb3J0IHVjZFNubXBVRFBJUHY2RG9tYWluW10KICAgCjIwMDEtMTItMDQgMDI6MTkgIGpicG4KCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgICAtIG1lbnRpb24gSVB2NiB0cmFuc3BvcnQgZG9tYWluIE9JRHMgaW4gcmVsZXZhbnQgY29tbWVudC4KICAgCjIwMDEtMTItMDMgMTU6MDcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIFF1ZWxsIGEgY29uc3QgY2FzdCB3YXJuaW5nLgogICAKMjAwMS0xMi0wMyAxNTowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZpeCBkZWJ1ZyBvdXRwdXQgZnJvbSByZXRyaWVzLgogICAKMjAwMS0xMi0wMyAxNTowNiAgbmJhCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jLCBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgSEFWRV9TWVNfVFlQRVNfSCBpcyBub3QgY29uZGl0aW9uYWwuCiAgIAoyMDAxLTEyLTAzIDE1OjA0ICBuYmEKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEZpeCB0byBhbGxvdyBjb21waWxhdGlvbnMgb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5LgogICAKMjAwMS0xMi0wMyAxNTowMyAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICBGaXhlcyB0byBtYWtlIFVEUElQdjYgdHJhbnNwb3J0IHdvcmsgZm9yIFNvbGFyaXMsIExpbnV4IGFuZCBGcmVlQlNELgogICBJdCBjb21waWxlcywgYW5kIHRoZSBhcHBzIHNlbmQgdjYgcGFja2V0cy4gQWdlbnQgbm90IHlldCB0ZXN0ZWQuCiAgIAoyMDAxLTEyLTAzIDA5OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLml0ZXJhdGUuY29uZiwgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZgo6CgogICBjb3B5IHJvYmVydHMgc3BpZmZ5IGhlYWRlciB0ZXh0CiAgIAoyMDAxLTEyLTAzIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGRhdGVudGltZSBjb2x1bW4uCiAgIAoyMDAxLTEyLTAzIDA4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggcHJvYmxlbSB3aXRoIGRvdWJsZSBkZWxlZ2F0ZWQgcmVxdWVzdHMgYWZ0ZXIgZ2V0bmV4dCBsb29wLgogICAKMjAwMS0xMi0wMyAwODowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIG1pYnMvTk9USUZJQ0FUSU9OLUxPRy1NSUIudHh0OgoKICAgbm90aWZpY2F0aW9uIGxvZyBtaWIgYWRkZWQgdG8gZGVmYXVsdCBsaXN0LgogICAKMjAwMS0xMi0wMyAwNTozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSByZW1vdmUgc3B1cmlvdXMgZGVidWdnaW5nIG91dHB1dCAoImJsYWgiKQogICAKMjAwMS0xMS0zMCAyMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oCjoKCiAgIENoYW5nZSBob3cgcmVxdWVzdCBwcm9jZXNzaW5nIGdldHMgZG9uZSBzdWNoIHRoYXQgcmVxdWVzdCBvYmplY3RzIGFyZQogICBhbGwgY2FsbG9jZWQgYXQgb25jZSBhbmQgZ2V0IHJldXNlZCBpbnN0ZWFkIG9mIHJlYWxsb2NhdGVkLiAgQmlnIHNwZWVkCiAgIGltcHJvdmVtZW50cy4KICAgCjIwMDEtMTEtMzAgMTU6MjIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBkb3h5Z2VuLmNvbmY6CgogICAibWFrZSBkb2MiIHRvIHJ1biBkb3h5Z2VuLgogICAKMjAwMS0xMS0zMCAxMDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IGRlYnVnX2hhbmRsZXIuYywgbXVsdGlwbGV4ZXIuaDoKCiAgIGRveHlnZW4gZml4ZXMKICAgCjIwMDEtMTEtMzAgMDk6MjYgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgICAtIHVzZSBERUJVR01TR09JRFJBTkdFIGluIHJlZ2lzdGVyX2hhbmRsZXIoKSBpZiBhcHByb3ByaWF0ZS4KICAgCjIwMDEtMTEtMzAgMDk6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiByZWdpc3Rlcl9hZ2VudHhfbGlzdCgpIHdoZW4gc3ViYWdlbnQgdHJpZXMgdG8KICAgICAgIHJlZ2lzdGVyIGEgTUlCIHJlZ2lvbiB0aGF0IGZhaWxzIGVpdGhlciBiZWNhdXNlIGl0IGlzIGEgZHVwbGljYXRlCiAgICAgICBvciBiZWNhdXNlIG9mIHNvbWUgb3RoZXIgcmVhc29uLgogICAKMjAwMS0xMS0zMCAwODo0NCAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgb2Ygb2xkX2luZm8gKHRoYXQgbmV2ZXIgc2VlbXMgdG8gZ2V0IHVzZWQgZm9yCiAgICAgICBhbnl0aGluZyBhbnl3YXk/KQogICAKICAgICAtIGZpeCBtZW1vcnkgbGVhayB0aGF0IGFyaXNlcyBkdXJpbmcgcm93IHJlZ2lzdHJhdGlvbiAoaW4gQWdlbnRYCiAgICAgICBzdWJhZ2VudHMpIGJlY2F1c2Ugc3VjY2Vzc2l2ZSB2YXJzIGNhdXNlIGFwcGFyZW50IGR1cGxpY2F0ZQogICAgICAgcmVnaXN0cmF0aW9ucyAodGhpcyBpcyBhIGRlZmljaWVuY3kpIC0tIGJ1dCBpdCB3b3VsZCBhcHBlYXIgdGhpcwogICAgICAgY291bGQgYXJpc2UgaW4gb3RoZXIgc2l0dWF0aW9ucyB0b28gKGdlbnVpbmUgZHVwbGljYXRlCiAgICAgICByZWdpc3RyYXRpb25zKS4KICAgCjIwMDEtMTEtMzAgMDY6MzMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgICAtIGZpeCBicm9rZW4gcGFyc2luZyBpbiBzbm1wZF9wYXJzZV9jb25maWdfdHJhcHNlc3MoKSAtLSBsb29wIHdhcwogICAgICAgY29weWluZyB0aGUgc2FtZSAoZmlyc3QpIHRva2VuIE1BWF9BUkdTIHRpbWVzLgogICAKICAgICAtIGVsaW1pbmF0ZSBtZW1vcnkgbGVhayBpbiBkaXR0by4KICAgCiAgICAgLSBmaXggdHlwbyAoIlBhdXNpYmxlIGNhdXNlIiAtPiAiUG9zc2libGUgY2F1c2UpIGluIGRpdHRvLgogICAKMjAwMS0xMS0zMCAwNjoyOSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcHJpbnQgZmQgaW4gc2Vzc19wcm9jZXNzX3BhY2tldCgpIC0tIHVzZWZ1bCBmb3IgZGVidWdnaW5nCiAgIAoyMDAxLTExLTMwIDA2OjI4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQ2FsbGJhY2tEb21haW4uYywgc25tcENhbGxiYWNrRG9tYWluLmg6CgogICAgIC0gcmVtb3ZlIGEgY291cGxlIG9mIHVubmVjZXNzYXJ5ICNpbmNsdWRlcyBmcm9tIHNubXBDYWxsYmFja0RvbWFpbi5oCiAgIAogICAgIC0gc2V0ICpvcGFxdWUgdG8gTlVMTCBhZnRlciB3ZSBmcmVlIGl0IC0tIGl0IG1pZ2h0IG1hdHRlci4KICAgCjIwMDEtMTEtMzAgMDM6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gY2xvbmUgUERVIGluIGhhbmRsZV9hZ2VudHhfc3ViYWdlbnQoKSBiZWZvcmUgc2VuZGluZyBpdCBvbiBjYWxsYmFjawogICAgICAgc2Vzc2lvbiB0byBhdm9pZCBkb3VibGUgZnJlZSgpIGFuZCBmcmVlKClkIG1lbW9yeSByZWFkcy4KICAgCiAgICAgLSBtb3JlIGNvbmNpc2UgKGFoZW0pIGRlY2xhcmF0aW9uIG9mIG15Y2FsbGJhY2sgaW4gaGFuZGxlX2FnZW50eF9wYWNrZXQoKS4KICAgCjIwMDEtMTEtMjkgMDU6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHB1dCBzZXNzaW9uIGFuZCBzdWJzZXNzaW9uIGluIHN1YmFnZW50IGRlc2NyaXB0aW9uIChoZWxwZnVsIGZvcgogICAgICAgZGVidWdnaW5nKQogICAKMjAwMS0xMS0yOSAwNTo0OSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCBJTlNUQUxMSEVBREVSUwogICAKMjAwMS0xMS0yOSAwNTo0OCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgc29tZSBkZWJ1Z2dpbmcgdG8gaW5pdF9zdWJhZ2VudCgpICh3aGljaCBzaG93ZWQgdGhhdCBpdCB3YXNuJ3QKICAgICAgIGJlaW5nIGNhbGxlZCwgc28uLi4pLgogICAKICAgICAtIGZpeCBjYXN0IGluIGhhbmRsZV9zdWJhZ2VudF9zZXRfcmVzcG9uc2UoKQogICAKMjAwMS0xMS0yOSAwNTo0NiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBtYWtlIHN1cmUgaW5pdF9zdWJhZ2VudCgpIGdldHMgY2FsbGVkCiAgIAoyMDAxLTExLTI4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgY2hlY2sgZm9yIHNlc3Npb24gcmVnaXN0cmF0aW9ucyBpbiBhbGwgY29udGV4dHMuCiAgIAoyMDAxLTExLTI4IDA2OjM5ICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEFkZCBzeXMvdHlwZXMuaCBmb3IgYnVnICM0ODYyNzcuCiAgIAoyMDAxLTExLTI4IDA0OjAzICBqYnBuCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgICAtICNpbmNsdWRlIDxuZXRkYi5oPgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAgIC0gaW5zdGFsbCBzbm1wX3RyYW5zcG9ydC5oIGFuZCBzbm1wKkRvbWFpbi5oIChmb3IgdGhlIGNvbmZpZ3VyZWQKICAgICAgIHRyYW5zcG9ydCBkb21haW5zKQogICAKMjAwMS0xMS0yOCAwMzoyOSAgamJwbgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAgIC0gcmV2ZXJzZSBteXN0ZXJ5IHJlbW92YWwgb2YgI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4gYW5kICNpbmNsdWRlCiAgIDxzeXMvdGltZS5oPgogICAKMjAwMS0xMS0yNyAxNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIG1vcmUgaW50ZWxsaWdlbnRseSBhbGxvY2F0ZSB0cmVlIHNwYWNlIGJhc2VkIG9uIG51bWJlciBvZiB2YXJiaW5kcyBpbiByZXF1ZXN0LgogICAKMjAwMS0xMS0yNyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIG1hbGxvYyBvbmUgbGFyZ2UgdHJlZV9jYWNoZSBhcnJheSByYXRoZXIgdGhhbiBhbiBhcnJheSBvZiB0cmVlX2NhY2hlIHBvaW50ZXJzLgogICAKMjAwMS0xMS0yNyAxMjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgaW5jbHVkZSBmaWxlIG5hbWUgY2hhbmdlLgogICAKMjAwMS0xMS0yNyAxMTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY29tbWVudCBjaGFuZ2VzLgogICAKMjAwMS0xMS0yNyAwNzo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeGVkIE1ha2VmaWxlIGZvciBzbm1wdHJhcGQuCiAgIAoyMDAxLTExLTI3IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogTWFrZWZpbGUuaW4sIGFsbF9oZWxwZXJzLmMsCiAgIGFsbF9oZWxwZXJzLmgsIGRlYnVnX2hhbmRsZXIuYywgZGVidWdfaGFuZGxlci5oOgoKICAgZGVidWcgaGFuZGxlciBjcmVhdGVkIGZvciBpbnNlcnRpbmcgZGVidWdnaW5nIG91dHB1dCBpbnRvIHRoZSBjYWxsaW5nIGNoYWluLgogICAKMjAwMS0xMS0yNyAwNzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgZW51bSBkZWZpbml0aW9ucyBmb3IgbW9kZXMgYW5kIGNhbl9tb2Rlcy4KICAgCjIwMDEtMTEtMjYgMTU6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHNldCBQRFUgdmFyaWFibGUgdG8gTlVMTCB0byBhdm9pZCBmcmVlaW5nIGl0IHR3aWNlLgogICAKMjAwMS0xMS0yNiAxMToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIHBsdWcgYW5vdGhlciBtZW1vcnkgbGVhay4KICAgCjIwMDEtMTEtMjYgMDk6MDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dCwKICAgVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUywKICAgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMsCiAgIFQwMjhzbm1wdjNnZXRmYWlsLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uLAogICBUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcAosIFQwNTZhZ2VudHYyY21pbnRyYXAsIFQxMTBhZ2VudHhnZXQsCiAgIFQxMTFhZ2VudHhzZXQsIFQxMTJhZ2VudHhzZXRmYWlsLCBUMTEzYWdlbnR4dHJhcCwKICAgVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsIFQxMjJwcm94eXNldGZhaWw6CgogICBkb24ndCB1c2UgY29udGV4dHMgaW4gdGVzdHMuCiAgIAoyMDAxLTExLTI2IDA4OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZml4IG1lbW9yeSBsZWFrLgogICAKMjAwMS0xMS0yNiAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0ZXN0ZGVsYXllZC5jLCBhZ2VudHgvbWFzdGVyLmMsCiAgIHVjZC1zbm1wL3Byb3h5LmM6CgogICB1c2UgZnJlZV9kZWxlZ2F0ZWRfY2FjaGUoKSB0byBwbHVnIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMTEtMjYgMDg6NDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jLCBhZ2VudF9oYW5kbGVyLmg6CgogICBmcmVlX2RlbGVnYXRlZF9jYWNoZSgpIHJvdXRpbmUKICAgCjIwMDEtMTEtMjYgMDg6MTkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgdGhlIGFiaWxpdHkgdG8gbGlzdGVuIGZvciB0cmFwcyBvbiBtdWx0aXBsZSB0cmFuc3BvcnRzIHZpYSB0aGUKICAgICAgIC1wIG9wdGlvbiAoY29uc2lzdGVudCB3aXRoIHNubXBkKS4KICAgCjIwMDEtMTEtMjYgMDU6NDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgICAtIHVzZSBzbm1wX3Rkb21haW5fdHJhbnNwb3J0X29pZCgpIHRvIGRvIHNlc3Npb24gY3JlYXRpb24gZnJvbQogICAgICAgPHREb21haW4tb2lkLCB0QWRkcmVzcy1vY3RldC1zdHJpbmc+IHBhaXIsIHRvIGFsbG93IGNyZWF0aW9uIG9mCiAgICAgICBub24tSVB2NCBzZXNzaW9ucyBpbiBzbm1wVGFyZ2V0QWRkclRhYmxlLgogICAKMjAwMS0xMS0yNiAwNDo0NSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwosIHNubXBfdHJhbnNwb3J0LmMsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIGNyZWF0aW5nIGEgdHJhbnNwb3J0IGZyb20gYQogICAgICAgPHREb21haW4tb2lkLCB0QWRkcmVzcy1vY3RldC1zdHJpbmc+IHBhaXIuCiAgIAoyMDAxLTExLTI2IDAzOjA2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgICAgLSB1c2Ugc25tcF90ZG9tYWluX3N1cHBvcnQoKSB0byBkZXRlcm1pbmUgd2hldGhlciBhIHRyYW5zcG9ydCBkb21haW4KICAgICAgIGlzIHN1cHBvcnRlZC4KICAgCjIwMDEtMTEtMjMgMTA6MjQgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgbXVsdGlwbGUgdHJhbnNwb3J0IGRvbWFpbiBzdXBwb3J0IGZvciB0cmFwZCAtLSB0aGlzIHdhcyByZWFsbHkKICAgICAgIFJFQUxMWSBlYXN5IQogICAKMjAwMS0xMS0yMyAwOToyNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYywgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIHJlbW92ZSBsZWdhY3kgZnVuY3Rpb24gc25tcF90cmFuc3BvcnRfc3VwcG9ydCgpIChyZXBsYWNlZCB3aXRoCiAgICAgICBzbm1wX3Rkb21haW5fc3VwcG9ydCgpKS4KICAgCjIwMDEtMTEtMjMgMDg6NTcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jOgoKICAgICAtIHVzZSBuZXR3b3JrIG9yZGVyIGZvciBBQUw1UFZDIHRyYW5zcG9ydCBhZGRyZXNzIGVuY29kaW5nCiAgIAoyMDAxLTExLTIzIDA4OjQ3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wSVBYRG9tYWluLmMsCiAgIHNubXBVbml4RG9tYWluLmM6CgogICAgIC0gc2V0IGxvY2FsX2xlbmd0aCwgcmVtb3RlX2xlbmd0aCBhcyBhcHByb3ByaWF0ZQogICAKMjAwMS0xMS0yMyAwODozOSAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTExLTIzIDA4OjM0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAgIC0gbWFrZSB0cmFwcyB3b3JrIHdpdGggbmV3LXN0eWxlIGFkZHJlc3NlcywgdXNlIGRvbWFpbi1iYXNlZCBhZGRyZXNzCiAgICAgICBlbmNvZGluZ3MgaW4gc25tcFRhcmdldEFkZHJUYWJsZS4gIE5vdGUgeW91IGNhbiBub3cgc2VuZCB0cmFwcy9pbmZvcm1zCiAgICAgICBvdmVyIGFueSBzdXBwb3J0ZWQgdHJhbnNwb3J0IHR5cGUgYnkgdXNpbmcgdGhlIHRyYXBzZXNzIGRpcmVjdGl2ZSBhbmQKICAgICAgIGEgdHJhbnNwb3J0OmFkZHJlc3MgdHlwZSBzcGVjaWZpY2F0aW9uLgogICAKMjAwMS0xMS0yMyAwODozMSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcElQWERvbWFpbi5jLAogICBzbm1wVENQRG9tYWluLmMsIHNubXBVRFBEb21haW4uYywgc25tcFVuaXhEb21haW4uYwo6CgogICAgIC0gY3JlYXRlIGFwcHJvcHJpYXRlbHktZW5jb2RlZCBsb2NhbCBvciByZW1vdGUgZW5kcG9pbnQgYWRkcmVzc2VzIGF0CiAgICAgICB0cmFuc3BvcnQgb3BlbiB0aW1lLgogICAKMjAwMS0xMS0yMyAwNjo1MCAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIHVwZGF0ZSBkZXBlbmRlbmNpZXMgZm9yIHRyYW5zcG9ydHMKICAgCjIwMDEtMTEtMjIgMDk6MDggIGpicG4KCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCBldmFsX3Rvb2xzLnNoLAogICB0ZXN0cy9UMDAxc25tcHYxZ2V0LCB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCwKICAgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsIHRlc3RzL1QwMTRzbm1wdjJjZ2V0LAogICB0ZXN0cy9UMDE1c25tcHYyY2dldG5leHQsIHRlc3RzL1QwMTZzbm1wdjJjZ2V0ZmFpbCwKICAgdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgdGVzdHMvVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbAosIHRlc3RzL1QwMjBzbm1wdjNnZXQsIHRlc3RzL1QwMjFzbm1wdjNnZXRuZXh0LAogICB0ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1LCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICB0ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUywKICAgdGVzdHMvVDAyOHNubXB2M2dldGZhaWwsIHRlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb24sCiAgIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0sIHRlc3RzL1QwNTBzbm1wdjN0cmFwLAogICB0ZXN0cy9UMDUxc25tcHYyY3RyYXAsIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtLAogICB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RzL1QwNTRhZ2VudHYyY3RyYXAsCiAgIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCwgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCwKICAgdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RzL1QxMDBhZ2VudGh1cCwKICAgdGVzdHMvVDExMGFnZW50eGdldCwgdGVzdHMvVDExMWFnZW50eHNldCwKICAgdGVzdHMvVDExMmFnZW50eHNldGZhaWwsIHRlc3RzL1QxMTNhZ2VudHh0cmFwLAogICB0ZXN0cy9UMTIwcHJveHlnZXQsIHRlc3RzL1QxMjFwcm94eXNldCwKICAgdGVzdHMvVDEyMnByb3h5c2V0ZmFpbDoKCiAgICAgLSB1c2UgdWRwOjxob3N0bmFtZT46PHBvcnQ+IGluc3RlYWQgb2YgLXAgdG8gbWFrZSB0ZXN0cyB3b3JrIGFnYWluCiAgIAoyMDAxLTExLTIyIDAwOjIwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5jLCBub3RpZmljYXRpb25fbG9nLmg6CgogICBtb3JrIHdvcmUgb24gdGhlIG5vdGlmaWNhdGlvbiBsb2cgbWliLiAgSXQgbm93IHN1cHBvcnRzIHZhcmlhYmxlCiAgIHN0b3JhZ2UsIGJ1dCBzZWdmYXVsdHMgb24gYWNjZXNzIGR1ZSB0byBwZHUgY2xvbmluZyBwcm9ibGVtcyBJJ20gbm90CiAgIGdvaW5nIHRvIHdvcmsgb3V0IHJpZ2h0IG5vdy4KICAgCjIwMDEtMTEtMjEgMjM6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggc25tcHRyYXBkIGxpbmtpbmcuCiAgIAoyMDAxLTExLTIxIDIyOjU4ICByc3RvcnkKCiAgICogc25tcGxpYi9hc24xLmg6CgogICByZW1vdmUgZHVwbGljYXRlIE9JRF9MRU5HVEg7IHVzZSBhY3R1YWwgb2lkIHR5cGUgaW4gY2FsY3VsYXRpb24KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBhZGQgTlVMTCBwb2ludGVyIGZvciByYnVpbGQgaW4gc2Vzc2lvbiBjcmVhdGlvbi4KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCjoKCiAgIG5ldGluZXQvaW4uaCBuZWVkZWQuCiAgIAoyMDAxLTExLTIxIDIyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHZhcmlhYmxlIGNsZWFuIHVwcy4KICAgCjIwMDEtMTEtMjEgMjI6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsIGxvY2FsL21pYjJjLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgosIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiwgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZiwKICAgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluLAogICBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQsIHBlcmwvU05NUC9TTk1QLnhzLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc25tcC10Yy5oLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuaCwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCBzbm1wbGliL3ZhY20uYwo6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjI6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliLzogdmFjbS5oLCBhc24xLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMsIHNubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMsIG9pZF9hcnJheS5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjMwICByc3RvcnkKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jLCBkYXRhX2xpc3QuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAxODo1NiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgdmVyc2lvbi5oLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmgsCiAgIGFnZW50L2FnZW50X2luZGV4LmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFnZW50L2hlbHBlcnMvLmN2c2lnbm9yZSwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbgosIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYywKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaCwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jLAogICBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmgsIGFnZW50L2hlbHBlcnMvbnVsbC5jLAogICBhZ2VudC9oZWxwZXJzL251bGwuaCwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jLAogICBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oLCBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaCwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmgsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5oCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5oLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oCiwgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC90YXJnZXQuaAosIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmgsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsCiAgIGFwcHMvc25tcHRyYXBkLmM6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMDY6NDMgIGpicG4KCiAgICogY29uZmlnLmguaW46CgogICAgIC0gSVB2NiBjb25maWcgZGVmcwogICAKMjAwMS0xMS0yMSAwNjozNiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZW1vdmUgbm93LWV4dHJhbmVvdXMgI2luY2x1ZGUgInNubXBCbGFoRG9tYWluLmgiIGxpbmVzCiAgIAoyMDAxLTExLTIxIDAzOjM5ICBqYnBuCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMTEtMjAgMDk6MzggIGpicG4KCiAgICogc25tcGxpYi86IHNubXBJUFhEb21haW4uYywgc25tcElQWERvbWFpbi5oOgoKICAgICAtIGR1aC4gIEZvcmdvdCBhIGNvdXBsZSBvZiB0aGluZ3MgdG8gZG8gd2l0aCBkb21haW4tYmFzZWQgdHJhbnNwb3J0CiAgICAgICBhZGRyZXNzIHBhcnNpbmcuCiAgIAoyMDAxLTExLTIwIDA5OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB1c2UgbmV3IGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQgYWRkcmVzcyBwYXJzaW5nIGZvciBhZ2VudCBOU0FQcwogICAKMjAwMS0xMS0yMCAwOToyNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYywgc25tcEFBTDVQVkNEb21haW4uaCwKICAgc25tcElQWERvbWFpbi5jLCBzbm1wVENQRG9tYWluLmMsIHNubXBUQ1BEb21haW4uaAosIHNubXBVRFBEb21haW4uYywgc25tcFVEUERvbWFpbi5oLAogICBzbm1wVW5peERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5oLCBzbm1wX2FwaS5jLAogICBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQgYWRkcmVzcyBwYXJzaW5nCiAgIAoyMDAxLTExLTIwIDA5OjE2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5oOgoKICAgICAtIFVEUC9JUHY2IHRyYW5zcG9ydCBkb21haW4uICBOb3RlOiBpbmNvbXBsZXRlIQogICAKMjAwMS0xMS0yMCAwODoyOSAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X2luZGV4Lmg6CgogICAgIC0gdW5yZWdpc3Rlcl97c3RyaW5nLGludCxvaWR9X2luZGV4KCkgdXRpbGl0eSBmdW5jdGlvbnMgY29udHJpYnV0ZWQKICAgICAgIGJ5IERhbWlhbiBHaWxtdXJyYXkuCiAgIAoyMDAxLTExLTIwIDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5oIChWNC0yLXBhdGNoZXMuMSksIHNubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mIFNOTVBfTUFYX1NFQ19OQU1FX1NJWkUsIG5vdGVkIGJ5CiAgICAgICBLYXJsIE0uIEhlZ2Jsb29tLgogICAKMjAwMS0xMS0xOSAxNjo1OSAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9hc24xLmg6CgogICBGaXggdHlwbyBpbiBjb21tZW50IFtrYXJsaGVnQG1pY3Jvc2hhcnAuY29tXQogICAKMjAwMS0xMS0xNiAwODozNCAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIFVuc2lnbmVkMzIvR2F1Z2UzMiB0eXBlcwogICAKMjAwMS0xMS0xNSAxMDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBwcm90b2NvbC5jIChWNC0yLXBhdGNoZXMuNSksIHByb3RvY29sLmMKOgoKICAgICAtIHN0cmljdGVyIHRlc3QgZm9yIG51bGwgT0lEcwogICAKMjAwMS0xMS0xNSAwODo0NCAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIGlmIHZhbHVlIGlzCiAgICAgICBjb25maWd1cmVkIHZpYSB0aGUgYXV0aHRyYXBlbmFibGUgdG9rZW4KICAgCjIwMDEtMTEtMTUgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAgIC0gbWFrZSB2YWx1ZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBwZXJzaXN0ZW50LiAgU2V0dGluZyB2aWEKICAgICAgIGEgcmVhZC1vbmx5IGNvbmZpZ3VyYXRpb24gZmlsZSBhbHNvIG1ha2VzIG9iamVjdCBub3RXcml0YWJsZSAoYXMKICAgICAgIHN5c0NvbnRhY3QuMCBldCBhbC4pLgogICAKMjAwMS0xMS0xNSAwNjo1NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBsZXQgVkFDTSBjaGVja3Mgc3VjY2VlZCBmb3Igbm9uLUlQdjQgdHJhbnNwb3J0cwogICAKMjAwMS0xMS0xNSAwNToxOSAgamJwbgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCwgVDEyMXByb3h5c2V0OgoKICAgICAtIHVzZSBwc3lzY29udGFjdCBub3Qgc3lzY29udGFjdCB0byBzZXQgaW5pdGlhbCB2YWx1ZSBvZiBzeXNDb250YWN0LjAKICAgICAgIG9iamVjdCBzaW5jZSB0aGUgbGF0dGVyIGFsc28gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHkuCiAgIAoyMDAxLTExLTE1IDA1OjA3ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wZC5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBmb3JtYXR0aW5nIG9mIHVzYWdlIG1lc3NhZ2UKICAgCjIwMDEtMTEtMTUgMDQ6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgICAgLSBhZGQgbWlzc2luZyAjaW5jbHVkZSAic25tcGQuaCIgKGZvciAjZGVmaW5pdGlvbiBvZiBNQVNURVJfQUdFTlQpCiAgICAgLSBkb24ndCBzdHJkdXAoKSBhZ2VudHhzb2NrZXQgdmFsdWUgLS0gZHNfc2V0X3N0cmluZyBkb2VzIGl0IGZvciB5b3UKICAgICAtIGNoYW5nZSBkZWJ1Z2dpbmcgdG8gZml0IGluIGJldHRlciB3aXRoIHJlc3Qgb2YgbW9kdWxlCiAgIAoyMDAxLTExLTE0IDE2OjA1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiAoVjQtMi1wYXRjaGVzLls3LDddKSwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBpbml0IGZ1bmN0aW9uIGNoZWNraW5nIGluIG1vZHVsZXMKICAgCjIwMDEtMTEtMTQgMTY6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGFnZW50eF9jb25maWcuYywgYWdlbnR4X2NvbmZpZy5oCiwgbWFzdGVyLmMsIG1hc3Rlci5oLCBzdWJhZ2VudC5oOgoKICAgc2xpZ2h0bHkgbW9kaWZpZWQgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gbW92ZSBhZ2VudHggY29uZmlndXJhdGlvbiBpbnRvCiAgIGEgc2VwYXJhdGUgZmlsZS4KICAgCjIwMDEtMTEtMTMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgZmlsZSBub3RpZmljYXRpb25fbG9nLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZmlsZSBub3RpZmljYXRpb25fbG9nLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIGZpbGUgTkVULVNOTVAtQUdFTlQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmM6CgogICBmaWxlIG5zVHJhbnNhY3Rpb25UYWJsZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuaDoKCiAgIGZpbGUgbnNUcmFuc2FjdGlvblRhYmxlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMDU6MjkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2ggdG8gcXVpZXRlbiBzb21lIG5vaXN5IGxvZ2dpbmcKICAgCjIwMDEtMTEtMTMgMDQ6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHVzZSB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGVuIGFwcHJvcHJpYXRlIGluCiAgICAgICB1bnJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAoyMDAxLTExLTEzIDAzOjIzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gcmVzZXQgdnItPm5hbWVsZW4gd2hlbiB3ZSd2ZSBmaW5pc2hlZCB3aXRoIGl0CiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBmaWxlIGFsbF9oZWxwZXJzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGZpbGUgYWxsX2hlbHBlcnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0wOCAwODowOSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGJldHRlciBpbXBsZW1lbnRhdGlvbiBvZiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSwgd2hpY2ggdXNlcwogICAgICAgcmFuZ2VzIHByb3Blcmx5IGluIHRoZSBjYWxsYmFjayAoaGVuY2UgbXVjaCBtb3JlIGVmZmljaWVudCBmb3IKICAgICAgIEFnZW50WCkuCiAgIAoyMDAxLTExLTA3IDA5OjU2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHJlbW92ZSBub3ctcmVkdW5kYW50IGFnZW50eF9idWlsZCBmdW5jdGlvbnMKICAgCjIwMDEtMTEtMDcgMDY6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIG1hc3Rlcl9hZG1pbi5jLAogICBwcm90b2NvbC5jOgoKICAgICAtIHVzZSBERUJVR01TR09JRFJBTkdFKCkgaW4gYSBjb3VwbGUgb2YgcGxhY2VzIGZvciBtb3JlIGNvbXByZWhlbnNpdmUKICAgICAgIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAogICAgIC0gcGFyc2UgdW5yZWdpc3RlciByYW5nZXMgcHJvcGVybHksIGFuZCB1c2UgdGhlIHJhbmdlIHByb3Blcmx5IGZvcgogICAgICAgcGFzc2luZyB0byB1bnJlZ2lzdGVyX21pYl9jb250ZXh0KCkuCiAgIAoyMDAxLTExLTA3IDAzOjMzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaDoKCiAgICAgLSBhZGQgREVCVUdTTVNHT0lEUkFOR0UoKSBtYWNybyBmb3IgZGVidWdnaW5nIE9JRCByYW5nZXMKICAgCjIwMDEtMTEtMDYgMDY6MDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gcmVzZXQgdGhlIGluY2x1c2l2ZSBmbGFnIGluIGEgY291cGxlIG9mIGNhc2VzLCB0byBwcmV2ZW50IHNwdXJpb3VzCiAgICAgICBJTkNMVVNJVkUgZ2V0TmV4dCBiZWhhdmlvdXIKICAgCjIwMDEtMTEtMDUgMDg6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gY29ycmVjdCBidWcgaW4gcmFuZ2Vfc3ViaWQgdHdlYWsgY29kZQogICAKMjAwMS0xMS0wNSAwNTowMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGNhbGN1bGF0ZSB1cHBlciBib3VuZCBmb3IgdGFibGUgcm93IHJlZ2lzdHJhdGlvbnMgc2xpZ2h0bHkgZGlmZmVyZW50bHkKICAgCjIwMDEtMTEtMDEgMDk6MzUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIHByb3RvY29sLmMsCiAgIHByb3RvY29sLmgsIHN1YmFnZW50LmM6CgogICAgIC0gaW1wbGVtZW50IHJlbG9jYXRpbmcgYnVmZmVyIHZlcnNpb24gb2YgYWdlbnR4X2J1aWxkKCkgcm91dGluZXMsCiAgICAgICBhbmQgdXNlIHRoZW0uCiAgIAoyMDAxLTExLTAxIDA5OjMzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgICAtIHN1cHBvcnQgZm9yIHJlbG9jYXRhYmxlIGJ1ZmZlciBidWlsZCBjYWxsYmFja3MgdmlhIG9wZW5fZXggY2FsbHMKICAgCjIwMDEtMTAtMzAgMDc6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGZpeCBidWcgd2hlcmVieSBpbnRlcmZhY2UgY291bnRlciBpcyBub3QgcmVzZXQsIG5vdGVkIGJ5IChhbW9uZ3N0CiAgICAgICBvdGhlcnMpIFZpY3RvciBLaXJoZW5zaHRlaW4gaW4gcGF0Y2ggIzQ3NDA2NC4KICAgCjIwMDEtMTAtMzAgMDM6MjQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgdGhlIGluaXRpYWwgYnVmZmVyIHNpemUgMjA0OCBpbiBzbm1wX3Jlc2VuZF9yZXF1ZXN0IChhcyBpbgogICAgICAgX3Nlc3NfYXN5bmNfc2VuZCkgdG8gbWFrZSBzdWNjZXNzL2ZhaWwgYmVoYXZpb3VyIGZvciBBZ2VudFggbW9yZQogICAgICAgcHJlZGljdGFibGUgKHNpbmNlIEFnZW50WCBTVElMTCBkb2Vzbid0IHVzZSByZWxvY2F0aW5nIGJ1ZmZlcnMsCiAgICAgICBib28gaGlzcykuCiAgIAoyMDAxLTEwLTI5IDIzOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZmlsZSBtaWIyYy5hcnJheS11c2VyLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjkgMjM6MTYgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmY6CgogICBmaWxlIG1pYjJjLmFycmF5LWF1dG8uY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGZpbGUgdGFibGVfYXJyYXkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuaDoKCiAgIGZpbGUgdGFibGVfYXJyYXkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5Lmg6CgogICBmaWxlIG9pZF9hcnJheS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI4IDE0OjUwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIGZpbGUgb2lkX2FycmF5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjYgMTk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBmdW5jdGlvbiBuYW1lIGluIGVycm9yIG1lc3NhZ2UKICAgCjIwMDEtMTAtMjYgMDY6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgICAgIC0gYWRkIHN1cHBvcnQgZm9yIHJ4IGFuZCB0eCBkcm9wIGNvdW50cyAoaWZJbkRpc2NhcmRzIGFuZAogICAgICAgIGlmT3V0RGlzY2FyZHMpIGZvciBMaW51eCAoMi4yKykKICAgCjIwMDEtMTAtMjYgMDU6NTcgIGpicG4KCiAgICogYWNsb2NhbC5tNDoKCiAgICAgLSBhZGQgaWZfaXFkcm9wcyBtZW1iZXIgdG8gc3RydWN0IGlmbmV0CiAgIAoyMDAxLTEwLTI2IDA0OjAzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBhZGQgdHJhbnNsYXRpb24gZm9yIGF0bSgzNykgdHlwZSBpbnRlcmZhY2VzIGZvciBMaW51eAogICAKMjAwMS0xMC0yNiAwMzo0MyAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCB0aGUgZmFjdCB0aGF0IHNldHRpbmcgc3lzTG9jYXRpb24uMCAoZXQgYWwuKSB2aWEgYQogICAgICAgc3lzbG9jYXRpb24gKG9yIGVxdWl2YWxlbnQpIHRva2VuIG1ha2VzIHRoZSBvYmplY3QgcmVhZC1vbmx5LAogICAgICAgcmV0dXJuaW5nIGEgbm90V3JpdGFibGUgZXJyb3IgcmVzcG9uc2UgaWYgYW4gYXR0ZW1wdCBpcyBtYWRlIHRvCiAgICAgICBTRVQgaXQuCiAgIAoyMDAxLTEwLTI0IDEwOjA3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNCksCiAgIHN5c3RlbV9taWIuYzoKCiAgICAgLSBmaXggdHlwbyBub3RlZCBieSBUaW0gRGlldHoKICAgCjIwMDEtMTAtMjQgMDg6NDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMsIHN5c3RlbV9taWIuaDoKCiAgICAgLSBpbXBsZW1lbnQgcGVyc2lzdGVuY2UgZm9yIHN5c0xvY2F0aW9uLjAsIHN5c0NvbnRhY3QuMCBhbmQgc3lzTmFtZS4wCiAgIAogICAgIC0gcHJlc2VuY2Ugb2YgYSBzeXNsb2NhdGlvbiB0b2tlbiBpbiBzbm1wZC5jb25mIG1ha2VzIHN5c0xvY2F0aW9uLjAKICAgICAgIG5vbi13cml0YWJsZSAocmV0dXJucyBub3RXcml0YWJsZSBvbiBTRVQgYXR0ZW1wdHMpCiAgIAoyMDAxLTEwLTI0IDA1OjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd2luc3QuYyAoVjQtMi1wYXRjaGVzLjIpLCBocl9zd2luc3QuYwo6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIGp1c3QgaW50cm9kdWNlZAogICAKMjAwMS0xMC0yNCAwMzo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgICAtIHVzZSBwa2dpbmZvIGludGVyZmFjZSB0byBkZXRlcm1pbmUgdHlwZSBvZiBzb2Z0d2FyZSBwYWNrYWdlIG1vcmUKICAgICAgIHNwZWNpZmljYWxseSBpZiBwb3NzaWJsZS4gIFNsaWdodCB2YXJpYXRpb24gb24gcGF0Y2ggIzQ3MzY2OSwgc3VibWl0dGVkCiAgICAgICBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMS0xMC0yNCAwMzozOCAgamJwbgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW46CgogICAgIC0gYXV0b2NvbmYgc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIHBrZ2luZm8gaW50ZXJmYWNlIGluIGxpYmFkbS4gIFRoYW5rcwogICAgICAgdG8gU3RlZmFuIFJhZG1hbiAocGF0Y2ggIzQ3MzY2OSkuCiAgIAoyMDAxLTEwLTIxIDA3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBmaWxlIG1pYjJjLml0ZXJhdGUuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0xOSAwOTo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGZpbGUgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0xNyAwNzo1MiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMiksIEZBUToKCiAgIE1lbnRpb24gdGhlIE1SVEcgdHV0b3JpYWwgd2ViIHBhZ2VzCiAgICAgKGFzIHN1Z2dlc3RlZCBieSBDaHJpc3RpYW4gUm9ib3R0b20gUmVpcykKICAgCjIwMDEtMTAtMTUgMDY6NDkgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBJUFhEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHplcm8gc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlcy4gIEhvcGVmdWxseSBmaXhlcyBwcm9ibGVtcyBvbiBOZXRCU0QKICAgICAgIG5vdGVkIGJ5IEpvYWtpbSBBbHRoaW5pIChyZWxhdGVkIHRvIHNhX2xlbiBtZW1iZXIgcHJvYmFibHk/PykuCiAgIAoyMDAxLTEwLTExIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE9wcHNlcy4KICAgCjIwMDEtMTAtMTEgMTQ6MTUgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYsIG1hbi9zbm1wX2Vycm9yLjMsCiAgIG1hbi9zbm1wX3BlcnJvci4zLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zLAogICBtYW4vc25tcGNtZC4xLCBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmCiwgbWFuL3NubXBzZXQuMSwgbWFuL3NubXB0cmFuc2xhdGUuMSwKICAgbWFuL3NubXB0cmFwZC44LCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYsCiAgIG1hbi9zbm1wd2Fsay4xLCBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dCwKICAgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsIG1pYnMvTWFrZWZpbGUubWliLAogICBtaWJzL1JFQURNRS5taWJzLCBtaWJzL1NNVVgtTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBtaWJzL21pYmZldGNoLCBtaWJzL3JmY2xpc3QKLCBtaWJzL3NtaXN0cmlwLCBwZXJsL1NOTVAvU05NUC54cywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2ludDY0LmMsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsIHNubXBsaWIvbXRfc3VwcG9ydC5jCiwgc25tcGxpYi9tdF9zdXBwb3J0LmgsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMKLCBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIHRlc3RpbmcvTWFrZWZpbGUuaW4KLCB3aW4zMi9jb25maWcuaCwgd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIG1hc3NpdmUgbWVyZ2UgZnJvbSB0aGUgcGF0Y2hlcyBicmFuY2ggdG8gdGhlIG1haW4gbGluZS4KICAgCjIwMDEtMTAtMTEgMTQ6MDEgIGhhcmRha2VyCgogICAqIENPUFlJTkcsIENoYW5nZUxvZywgRkFRLCBNYWtlZmlsZS5pbiwKICAgTkVXUywgUkVBRE1FLCBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LAogICBjb25maWcuZ3Vlc3MsIGNvbmZpZy5oLmluLCBjb25maWcuc3ViLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaAosIG1ha2VmaWxlaW5kZXBlbmQucGwsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L2FnZW50X2luZGV4LmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMKLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsIGFwcHMvTWFrZWZpbGUuaW4KLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBkZi5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jCiwgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgbG9jYWwvbWliMmMuY29uZiwgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZiwKICAgbG9jYWwvcGFzc19wZXJzaXN0dGVzdCwgbG9jYWwvdGttaWI6CgogICBtYXNzaXZlIG1lcmdlIGZyb20gdGhlIHBhdGNoZXMgYnJhbmNoIHRvIHRoZSBtYWluIGxpbmUuCiAgIAoyMDAxLTEwLTA5IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIFNvbWV0aW1lcyB3ZSBmZWVsIGxpa2UgYSAtbnV0CiAgIAoyMDAxLTEwLTA5IDA2OjE1ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gcHJvcGVybHkgYWNjb3VudCBmb3IgdGhlIGxlbmd0aCBvZiB0aGUgc3VmZml4IGluIHRoZSB2YXJpYWJsZQogICAgICAgdGFibGUgaW4gcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpCiAgIAoyMDAxLTEwLTA4IDA4OjUzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgICAgLSBkZWNsYXJlIHZlcnNpb25fc3lzb2lkX2xlbiBhcyBleHRlcm4gSU5UIG5vdCBleHRlcm4gb2lkLCBzbyBhcyB0bwogICAgICAgbWF0Y2ggaXRzIGFjdHVhbCBkZWZpbml0aW9uIGluIHN5dGVtX21pYi5jLiAgVGhpcyBjYXVzZWQgYWxsIGtpbmRzIG9mCiAgICAgICBmdW4gJiBnYW1lcyBvbiBMaW51eCBvbiBhIEFscGhhLgogICAKMjAwMS0xMC0wNCAwODozMSAgamJwbgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgICAgLSBhZGQgZnVuY3Rpb24gc25tcF9jYWxsYmFja19saXN0KCkgdG8gcmV0dXJuIGxpc3Qgb2YgY2FsbGJhY2tzIGZvciBhCiAgICAgICBnaXZlbiA8bWFqb3IsIG1pbm9yPiBwYWlyLgogICAKMjAwMS0xMC0wNCAwNzoxNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvcGFzc19wZXJzaXN0dGVzdDoKCiAgIGZpbGUgcGFzc19wZXJzaXN0dGVzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTEwLTAzIDA1OjQyICBqYnBuCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgICAgLSBjaGFuZ2UgZXhwcmVzc2lvbiBhdCBsLiA0MTUgZnJvbToKICAgCiAgICAgICAgICAgKmtjc3RyaW5nKysgPSAqa2NzdHJpbmcgXiAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaGFzIHVuZGVmaW5lZCBiZWhhdmlvdXIgdG86CiAgIAogICAgICAgICAgICprY3N0cmluZysrIF49ICpuZXdrZXkrKzsKICAgCiAgICAgICB3aGljaCBpcyBva2F5IChzaW5jZSAqa2NzdHJpbmcgaXMgb25seSBldmFsdWF0ZWQgb25jZSkuICBTaW1pbGFybHkKICAgICAgIGF0IGwuIDUzMC4gIFRoZSBwcmV2aW91cyBjb25zdHJ1Y3RzIGNhdXNlIHdhcm5pbmdzIHdpdGggR0NDMyBhbmQKICAgICAgIHNvbWUgb3RoZXIgY29tcGlsZXJzLiAgVGhhbmtzIHRvIE5pZWwgTWFya3dpY2sgd2hvIG5vdGVkIHRoaXMgaW4KICAgICAgIGJ1ZyAjNDY1OTY5LgogICAKMjAwMS0xMC0wMyAwMzoxMSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGRvIFNOTVBEX0NBTExCQUNLX1VOUkVHSVNURVJfT0lEIGNhbGxiYWNrcyBpbgogICAgICAgdW5yZWdpc3Rlcl9taWJzX2J5X3Nlc3Npb24oKSAtLSBjYWxsZWQgd2hlbiBBZ2VudFggc3ViYWdlbnRzCiAgICAgICBkaXNhcHBlYXIuCiAgIAoyMDAxLTEwLTAyIDA2OjAxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvbid0IHNlbmQgQVNOX1BSSVZfSU5DTF9SQU5HRSBhbmQgQVNOX1BSSVZfRVhDTF9SQU5HRSBvbi10aGUtd2lyZQogICAKMjAwMS0wOS0yNiAwODowMyAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGFsbG93IHNwbGl0X3N1YnRyZWUoKSB0byBkbyBhIHNwbGl0IGluIHRoZSBtaWRkbGUgb2YgYSBjb2x1bW4sCiAgICAgICBrZWVwaW5nIHRoZSByZWxldmFudCB2YXJpYWJsZSBpbiBib3RoIHRoZSBvbGQgdHJlZSBhbmQgdGhlIG5ldwogICAgICAgdHJlZSAoYXJpc2VzIGluIEFnZW50WCByb3cgcmVnaXN0cmF0aW9ucykuCiAgIAogICAgIC0gcGF0Y2ggZnJvbSBEYW1pYW4gR2lsbXVycmF5IGZvciByZWdpc3Rlcl9taWJfdGFibGVfcm93KCkgd2hpY2gKICAgICAgIGFsbG93cyBpdCB0byBjb3BlIHdpdGggbm9uLXplcm8gbGVuZ3RoIHZhcmlhYmxlcyBhbmQgYWxzbwogICAgICAgbm9uLWNvbnRpZ3VvdXMgT0lEcyBmb3IgYWRqYWNlbnQgY29sdW1ucy4KICAgCiAgICAgLSByZXdyaXR0ZW4gZHVtcF9yZWdpc3RyeSgpIHRoYXQgdXNlcyByZWFsbG9jYXRpbmcgcHJpbnQgZnVuY3Rpb25zCiAgICAgICBhbmQgYWxzbyBwcmludHMgb3V0IHZhcmlhYmxlIGxpc3RzLgogICAKMjAwMS0wOS0yNiAwNzo0NSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBhbGxvdyBmb3IgdGhlIHBvc3NpYmlsaXR5IG9mIHN1YnRyZWUgbmFtZSBiZWluZyBsb25nZXIgdGhhbgogICAgICAgcmVxdWVzdGVkIG5hbWUgd2hlbiBjYWxjdWxhdGluZyB0aGUgc3VmZml4IGZvciB2YXJpYWJsZSBtYXRjaGluZy4KICAgCiAgICAgLSBiZSBzdHJpY3QgYWJvdXQgc3VidHJlZSBjaHVua3MgYmVpbmcgaW5jbHVzaXZlIG9mIHRoZSBzdGFydCBPSUQKICAgICAgIGFuZCBleGNsdXNpdmUgb2YgdGhlIGVuZCBPSUQgKHNob3dzIHVwIGJpZyB0aW1lIGluIEFnZW50WCkuCiAgIAoyMDAxLTA5LTI2IDA3OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGRvbid0IGRvIGdldE5leHQgcmVxdWVzdHMgb24gZXhjbHVzaXZlIHNlYXJjaFJhbmdlcyB0aGF0IGJlZ2luIGluCiAgICAgICBhIHRyZWUgbWFya2VkIGFzIGEgZnVsbHktcXVhbGlmaWVkIGluc3RhbmNlICh0aGV5IGFyZSBkb29tZWQgdG8KICAgICAgIGZhaWwpLiAgU2tpcCB0byB0aGUgbmV4dCBwYXJ0IG9mIHRoZSB0cmVlIHN0cmFpZ2h0IGF3YXkuCiAgIAoyMDAxLTA5LTI2IDA3OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBicmluZyBkZWJ1Z2dpbmcgdG9rZW5zIGludG8gbGluZSB3aXRoIHJlc3Qgb2YgQWdlbnRYIGNvZGUKICAgCjIwMDEtMDktMjUgMDg6MTUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVpbnN0YXRlIGEgbWlzc2luZyBzcGFjZSBjaGFyYWN0ZXIKICAgCjIwMDEtMDktMjUgMDM6NTggIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gcmVtb3ZlIHNwdXJpb3VzIGNhc3QKICAgCjIwMDEtMDktMjUgMDM6NDUgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBmaXggcG9zc2libGUgaW5mZWxpY2l0eSB3aGVuIHByaW50aW5nIGFuZCBzeXNsb2dnaW5nIChub3Qgc3VyZSB0aGlzIGlzCiAgICAgICBhY3R1YWxseSBwb3NzaWJsZSBidXQpCiAgIAoyMDAxLTA5LTI1IDAzOjA5ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gaW50ZWdyYXRlIHNvbWUgY2hhbmdlcyBmcm9tIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoOiBIYXJyaWUncwogICAgICAgcHJvdG90eXBlcyBhbmQgV2VzJ3MgZml4IGZvciBidWcgICM0NjMyMjYuCiAgIAoyMDAxLTA5LTI1IDAzOjAxICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIGZpeCBzaWduZWRuZXNzIG9mIHRpbWUgc3R1ZmYKICAgCjIwMDEtMDktMjUgMDI6NDcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgICAgLSBtYWtlIGFyZ3VtZW50IG9mIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudCBjb25zdAogICAKICAgICAtIGRvbid0IHN0cmR1cCBERUZBVUxUX0xPR19JRCBpZiBhIE5VTEwgYXJnIGlzIGdpdmVuCiAgIAoyMDAxLTA5LTI0IDA5OjM5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gbWFrZSB1c2Ugb2YgcmV3cml0dGVuIG91dHB1dCBmdW5jdGlvbnMgaW4gc25tcHRyYXBkX2xvZy5jIHdoaWNoCiAgICAgICBhdm9pZCBmaXhlZCBsZW5ndGggYnVmZmVycy4KICAgCiAgICAgLSBmaXggYnVnIG5vdGVkIGluIHN1cHBvcnQgcmVxdWVzdCAjNDU2NjQ2IChjdXN0b20gdHJhcCBmb3JtYXQgd2FzCiAgICAgICBiZWluZyBpZ25vcmVkIGZvciB2MiB0cmFwcyBhbmQgaW5mb3JtcykuICBUaGFua3MgdG8KICAgICAgIEcuUHJpbmNpcGF0b0Btb3Rvcm9sYS5jb20gZm9yIHNwb3R0aW5nIHRoaXMgb25lLgogICAKICAgICAtIGNvcnJlY3QgdXNhZ2UgZm9yIC1QIG9wdGlvbiB0byByZWZsZWN0IHRoYXQgaXQgY2F1c2VzIG91dHB1dCBvbgogICAgICAgc3RkZXJyIG5vdCBzdGRvdXQuCiAgIAoyMDAxLTA5LTI0IDA5OjM2ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZF9sb2cuaDoKCiAgICAgLSByZXdyaXRlIG9mIG91dHB1dCBmdW5jdGlvbnMgdG8gYXZvaWQgdXNlIG9mIGZpeGVkLWxlbmd0aCBidWZmZXJzCiAgIAoyMDAxLTA5LTIwIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICBuZXcgbG9nbWF0Y2ggbWliIGZyb20gU3RlcGhhbiBXZW56ZWwuCiAgIAoyMDAxLTA5LTE1IDA4OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIG92ZXJyaWRlIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZSBnZXROZXh0IG9wZXJhdGlvbnMgd2hlbiByZXRyeWluZwogICAgICAgb3BlcmF0aW9ucwogICAKMjAwMS0wOS0xNSAwODozOSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgICAtIGltcHJvdmVkIHN1cHBvcnQgZm9yIEFnZW50WC1zdHlsZSBpbmNsdXNpdmUgc2VhcmNoUmFuZ2UgZ2V0TmV4dAogICAKMjAwMS0wOS0xNCAxNDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBwYXRjaCAjNDQzMTE1IGZyb20gWWltaW4gR2U6IGRpc2tpbyBzdXBwb3J0IGZvciBmcmVlYnNkNAogICAKMjAwMS0wOS0xNCAxNDozNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaDoKCiAgIFBhdGNoICM0NDAzMjAgZnJvbSBNYXJrIEZlcmxhdHRlOgogICAKICAgMSkgQWRkcyBhIG5ldyBmdW5jdGlvbiB0byB0aGUgc25tcF9sb2dnaW5nIEFQSQogICAgICAoc25tcF9lbmFibGVfc3lzbG9nX2lkZW50KGNoYXIgKmlkZW50KSkKICAgCiAgIDIpIFBvcnRzIHNubXB0cmFwZCB0byB1c2UgdGhlIGV4aXN0aW5nIHNubXBfbG9nZ2luZyBBUEkgaW5zdGVhZCBvZgogICAgICB1c2luZyBzeXNsb2cgZGlyZWN0bHkuCiAgIAogICAzKSBQb3J0cyBzbm1wX2xvZ2dpbmcuW2NoXSB0byB1c2UgdGhlIFdpbjMyIEV2ZW50IExvZyB3aGVuIGNvbXBpbGVkIG9uCiAgICAgIFdpbjMyLiBJIGRpZG4ndCB1cGRhdGUgdGhlIFZpc3VhbCBDIHByb2plY3QgZmlsZXMsIGJlY2F1c2UgSSBvbmx5CiAgICAgIGhhdmUgYWNjZXNzIHRvIGEgbmV3ZXIgdmVyc2lvbiBvZiBWQywgYW5kIEkgZGlkbid0IGtub3cgaWYgeW91CiAgICAgIHdhbnRlZCB0aGVtIHVwZGF0ZWQuIFRoZSBhZHZhcGkzMiBsaWJyYXJ5IG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZQogICAgICBwcm9qZWN0IGluIG9yZGVyIGZvciB0aGlzIHRvIHdvcmsgb24gV2luMzIgKHRoYXQncyB3aGVyZSB0aGUgZXZlbnQKICAgICAgbG9nIEFQSSBpcykuCiAgIAoyMDAxLTA5LTE0IDE0OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgSSwgdWgsIGNvdWdoLCB1aCBmb3Jnb3QgdG8gcnVuIGF1dG9jb25mL2F1dG9oZWFkZXIuICBEYXZlOiBkb24ndCBraWxsIG1lLgogICAKMjAwMS0wOS0xNCAxNDoxOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIFBhdGNoICM0Mjg4ODQ6IEFkZCAtUFIgbGlrZSBvcHRpb24gdG8gcGVybCBtb2R1bGUgKGZyb20gSm9lIENsYXJrZSkuCiAgIAoyMDAxLTA5LTE0IDE0OjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmgKLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMsIHNubXBsaWIvc25tcFVuaXhEb21haW4uaAosIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9hc24xLmg6CgogICBBcHBsaWVkIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiBwYXRjaCAjNDI3MzQzIGZyb20gSGFycmllOgogICAgIG1ha2UgZW50ZXJwcmlzZSBJRCByZWxvY2F0YWJsZSB3aGVyZSBsZWdhbCB0byBkbyBzbwogICAKMjAwMS0wOS0xNCAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBBbHRlcm5hdGl2ZSBzb2x1dGlvbiB0byBwYXRjaCAjMzEyNjk0OgogICAgIG1vdmUgZGF0ZV9uX3RpbWUgdXRpbGl0aWVzIHRvIHNubXBsaWIvc25tcC10Yy5jLgogICAKMjAwMS0wOS0xNCAxMjowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3V0aWxzLmMsIGhyX3V0aWxzLmg6CgogICByZW1vdmVkLiAgRnVuY3Rpb25hbGl0eSBtb3ZlZCB0byBzbm1wbGliL3NubXAtdGMuW2NoXQogICAKMjAwMS0wOS0xNCAxMjowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9zbm1wLXRjLmMsIHNubXBsaWIvc25tcC10Yy5oOgoKICAgQWx0ZXJuYXRpdmUgc29sdXRpb24gdG8gcGF0Y2ggIzMxMjY5NDoKICAgICBtb3ZlIGRhdGVfbl90aW1lIHV0aWxpdGllcyB0byBzbm1wbGliL3NubXAtdGMuYy4KICAgCjIwMDEtMDktMTQgMDk6NDggIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICBmaWxlIGNvbmZpZy5oLmJvcmxhbmQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOS0xNCAwNjoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgbWFzdGVyX3JlcXVlc3QuYywKICAgbWFzdGVyX3JlcXVlc3QuaDoKCiAgICAgLSB1c2UgaW5jbHVzaXZlIHNlYXJjaCByYW5nZSBvbmx5IHdoZW4gYXBwcm9wcmlhdGUgZm9yIGdldE5leHQKICAgICAgIHF1ZXJpZXMKICAgCjIwMDEtMDktMTIgMDY6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBmaWxlIHNubXBDYWxsYmFja0RvbWFpbi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA5LTEyIDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgZmlsZSBzbm1wQ2FsbGJhY2tEb21haW4uaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOS0wNiAwNzo0MCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmM6CgogICAgIC0gaWYgaW5jbHVkZSBiaXQgaXMgc2V0IGluIGFuIEFnZW50WCBTZWFyY2hSYW5nZSAoaGVuY2UgdHlwZSBvZiB2YXJiaW5kCiAgICAgICBpcyBBU05fUFJJVl9JTkNMX1JBTkdFKSwgdHJ5IGFuIGV4YWN0IHF1ZXJ5IGZpcnN0IGJlY2F1c2UgYW4gb2JqZWN0CiAgICAgICB3aG9zZSBuYW1lIGlzIGxleGktZXF1YWwgaXMgYSB2YWxpZCByZXNwb25zZTsgaWYgZXhhY3QgcXVlcnkgZmFpbHMKICAgICAgIHRoZW4gZmFsbCBiYWNrIHRvIGFuIGluZXhhY3QgcXVlcnkuCiAgIAoyMDAxLTA5LTA2IDA3OjM4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jLAogICBwcm90b2NvbC5jLCBzdWJhZ2VudC5jOgoKICAgICAtIG9vcHMsIHVzZWQgSU5DTC9FWENMIHdyb25nIHdheSByb3VuZCBpbiBhIGNvdXBsZSBvZiBwbGFjZXMKICAgCiAgICAgLSBiZXR0ZXIgdGVzdCBmb3Igc2NvcGluZyByZXF1aXJlbWVudHMgaW4gc3ViYWdlbnQKICAgCjIwMDEtMDktMDQgMDc6MTQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyBicmVhazsgYWZ0ZXIgcHJvY2Vzc2luZyAtUCBvcHRpb24sIG5vdGVkIGJ5IEJvdG9uZAogICAgICAgVGFybmF5IChzZWUgcGF0Y2ggIzQ1ODMyNykKICAgCjIwMDEtMDgtMjggMDM6MDQgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTItcGF0Y2hlcy43KSwgc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlIDx0Y3BkLmg+IGlmIHVzaW5nIGxpYndyYXAsIG5vdGVkIGJ5IE5hdGhhbgogICAgICAgTmV1bGluZ2VyIChwYXRjaCAjNDUzODMxKS4KICAgCjIwMDEtMDgtMjggMDI6MzggIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXBkLmM6CgogICAgIC0gYXZvaWQgdXNlIG9mIHByZS1wcm9jZXNzb3IgZGlyZWN0aXZlcyBpbnNpZGUgcHJpbnRmKCkgY2FsbCwgd2hpY2gKICAgICAgIGlzIGEgbWFjcm8gaW4gZ2xpYmMsIG1ha2luZyB0aGlzIGFuIHVuZGVmaW5lZCBiZWhhdmlvdXIKICAgICAgIGNvbnN0cnVjdCAod2hpY2ggR0NDIDMuMCByZWZ1c2VzIHRvIGNvbXBpbGUpLiAgU2VlIGJ1ZyAjNDU1ODA0IGZvcgogICAgICAgZnVydGhlciBkZXRhaWxzLgogICAKMjAwMS0wOC0yNCAxMDowMCAgcnN0b3J5CgogICAqIHNubXBsaWIvZGF0YV9saXN0Lmg6CgogICBmaWxlIGRhdGFfbGlzdC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTI0IDEwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYzoKCiAgIGZpbGUgZGF0YV9saXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMjIgMDg6NDUgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgY2hlY2tpbmcgdGhhdCByZXN1bHRzIHRvIGJlIHJldHVybmVkIHRvIG1hc3RlciBhZ2VudCBhcmUgaW4KICAgICAgIHJlcXVlc3RlZCBzY29wZSAoaWYgYW55KSAoZ2V0QnVsayBub3QgeWV0IGRvbmUpCiAgIAoyMDAxLTA4LTE1IDA5OjMxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBpbiBkZWJ1Z21zZ19vaWQgdG8gcHJpbnQgbG9uZyBPSURzLgogICAKMjAwMS0wOC0xNSAwODozNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBpbmNyZW1lbnQgdGhlIHZhbHVlIG9mIHNubXBJbkJhZENvbW11bml0eVVzZXMgd2hlbiBhdHRlbXB0aW5nIGFuCiAgICAgICBvcGVyYXRpb24gbm90IHBlcm1pdHRlZCBieSB0aGUgZ2l2ZW4gY29tbXVuaXR5LCBwZXIgUkZDIDE5MDcuCiAgIAoyMDAxLTA4LTE1IDA4OjM0ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB3aGVuIHRyYW5zbGF0aW5nIHRoZSB2MisgZXJyb3Itc3RhdHVzIHZhbHVlIGF1dGhvcml6YXRpb25FcnJvcgogICAgICAgaW50byBub1N1Y2hOYW1lIGZvciBhIHYxIHNlc3Npb24sIGluY3JlbWVudCB0aGUgdmFsdWUgb2YKICAgICAgIHNubXBJbkJhZENvbW11bml0eVVzZXMsIHBlciBSRkMgMjU3Ni4KICAgCjIwMDEtMDgtMTQgMDM6MjIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIGluIHNubXBfc2V0X3Zhcl9vYmppZCgpLCB0cnkgdG8gZGV0ZWN0IGEgcHJldmlvdXNseS1tYWxsb2MoKWVkCiAgICAgICBidWZmZXIgZm9yIHRoZSB2YXJpYWJsZSBuYW1lLCBhbmQgZnJlZSgpIGl0LCB0byBhdm9pZCBtZW1vcnkKICAgbGVha3MuCiAgIAoyMDAxLTA4LTEzIDAzOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHVzZSBXaW4zMiBjYWxscyB0byBjaGFuZ2UgYmxvY2tpbmcgc3RhdGUgb2Ygc29ja2V0cyBpZgogICAgICAgYXBwcm9wcmlhdGUuICBUaGFua3MgdG8gSm9lcmcgTWF0dGVzIGZvciBoZWxwIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0xMyAwMzozNyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcGVyZm9ybSBhbiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgYW5kIGNsb3NlIHRoZSBjb25uZWN0aW9uIGlmCiAgICAgICB3ZSBnZXQgYW4gZXJyb3Igb24gYSBzdHJlYW0gcmVjZWl2ZSwgYXMgd2VsbCBhcyBpZiBpdCBpcyBjbG9zZWQgaW4KICAgICAgIGFuIG9yZGVybHkgZmFzaGlvbi4gIFRoaXMgbWFrZXMgbGlmZSBlYXNpZXIgb24gV2luMzIgaW5wYXJ0aWN1bGFyLgogICAgICAgVGhhbmtzIHRvIEpvZXJnIE1hdHRlcyBmb3IgaGVscCB3aXRoIGRlYnVnZ2luZyB0aGlzLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOSAwMzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0Lmg6CgogICBmaWxlIHRhYmxlX2RhdGFzZXQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBmaWxlIHRhYmxlX2RhdGEuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wOCAwMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmg6CgogICBmaWxlIHRhYmxlX2RhdGEuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMzoKCiAgIGZpbGUgc25tcF9hcGlfZXJyc3RyaW5nLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX2Vycm9yLjM6CgogICBmaWxlIHNubXBfZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfcGVycm9yLjM6CgogICBmaWxlIHNubXBfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjM6CgogICBmaWxlIHNubXBfc2Vzc19wZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA2IDA0OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZml4IGZvciBwb3RlbnRpYWwgYnVmZmVyIG92ZXJmbG93IGluIGxvZ2ZpbGUgYXJndW1lbnQgaGFuZGxpbmcsCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgKGJ1ZyAjNDQ4MjQzKS4gIEFsc28gdXNlIGEgbGFyZ2UgZW5vdWdoIGJ1ZmZlcgogICAgICAgdG8gaGFuZGxlIGZpbGVuYW1lcyBvZiBsZW5ndGggUEFUSF9NQVggKGlmIHBvc3NpYmxlKS4KICAgCjIwMDEtMDctMzAgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBtb3ZlIHNubXBfc29ja2V0X2xlbmd0aCBmdW5jdGlvbiB0byBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgICAgZnJvbSBzbm1wX2FwaS5jIC0tIHRoaXMgaXMgdGhlIG9ubHkgcmVtYWluaW5nIHBsYWNlIHRoYXQgdXNlcyB0aGlzCiAgICAgICBmdW5jdGlvbiwgd2hpY2ggY2VydGFpbmx5IGRvZXNuJ3QgYmVsb25nIGluIHNubXBfYXBpLmMgYWZ0ZXIgdGhlCiAgICAgICB0cmFuc3BvcnQgYWJzdHJhY3Rpb24gbWFsYXJrZXkuCiAgIAoyMDAxLTA3LTMwIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBmaWxlIGFnZW50X2hhbmRsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDc6MDYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gdHJ5IHRvIHJldHVybiBpbnZhbGlkKDIpIGZvciB0aGUgaXBSb3V0ZVR5cGUgY29sdW1uIGlmIHRoZSByb3V0ZQogICAgICAgaXMgbm90IHVwLiAgU2VlIGJ1ZyAjNDI2NzEwLCByZXBvcnRlZCBieSBwandlYmVyLgogICAKMjAwMS0wNy0yNyAwNzozMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIHNldCBkZWZhdWx0QXV0aFR5cGUgdG8gdXNtSE1BQ1NIQTFBdXRoUHJvdG9jb2wgaWYgU0hBIHNwZWNpZmllZAogICAgICAgKHdhcyBzZXQgdG8gdXNtSE1BQ01ENUF1dGhQcm90b2NvbCBpbiB0aGlzIGNhc2UpLiAgU3BvdHRlZCBieQogICAgICAgV2lsbGlhbSBLZW5uZW1lciAoYnVnICM0NDQ4NjApCiAgIAoyMDAxLTA3LTI3IDA2OjU5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGNoYW5nZSB0byBoYW5kbGVfYWdlbnR4X3Jlc3BvbnNlIE9OTFkgdG8gc2VuZCBORVdMWSBkZWxlZ2F0ZWQKICAgICAgIHJlcXVlc3RzIGFmdGVyIHByb2Nlc3NpbmcgYSBzdWNjZXNzZnVsIHJlc3BvbnNlLiAgVGhpcyBpcyBhY2hpZXZlZAogICAgICAgYnkgc2F2aW5nIHRoZSB2YWx1ZSBvZiBhc3AtPm91dHN0YW5kaW5nX3JlcXVlc3RzIGFuZCB0ZW1wb3JhcmlseQogICAgICAgc2V0dGluZyBpdCB0byBOVUxMLiAgQWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdmFyYmluZHMgaW4gdGhlCiAgICAgICByZXNwb25zZSwgdGhlcmVmb3JlLCBhc3AtPm91dHN0YW5kaW5nX3JlcXVlc3RzIGNvbnRhaW5zIG9ubHkgbmV3bHkKICAgICAgIGRlbGVnYXRlZCByZXF1ZXN0cywgaWYgYW55LiAgQWZ0ZXIgc2VuZGluZyB0aGVzZSwgdGhlIG5ldyByZXF1ZXN0cwogICAgICAgYXJlIG1lcmdlZCB3aXRoIHRoZSBzYXZlZCBxdWV1ZS4KICAgCiAgICAgICBUaGlzIGZpeGVzIGEgYnVnIHRoYXQgYXJpc2VzIGlmIHlvdSByZXF1ZXN0IHZhcmlhYmxlcyBmcm9tIHR3byBvcgogICAgICAgbW9yZSBzZXBhcmF0ZSBzdWJhZ2VudHMgc2ltdWx0YW5lb3VzbHkuICBXaGF0IHVzZWQgdG8gaGFwcGVuIGlzCiAgICAgICB0aGF0LCB1cG9uIHJlY2VpdmluZyB0aGUgZmlyc3QgcmVzcG9uc2UsIHRoZSBtYXN0ZXIgYWdlbnQgd291bGQKICAgICAgIG5vdGljZSB0aGF0IGl0IGhhZCBhbiBvdXRzdGFuZGluZyByZXF1ZXN0LCBhbmQgcmV0cmFuc21pdCBpdC4KICAgICAgIFRoZW4gdGhlIHNlY29uZCByZXNwb25zZSBhcnJpdmVzLCBhbmQgdGhlIG1hc3RlciBhZ2VudCBzZW5kcyB0aGUKICAgICAgIHJlcGx5IHRvIHRoZSAoU05NUCkgcmVxdWVzdGVyIGFuZCBmcmVlcyB0aGUgcmVxdWVzdHMgKGluY2x1ZGluZwogICAgICAgY2FsbGJhY2sgZGF0YSkuICBGaW5hbGx5LCBhbm90aGVyIEFnZW50WCByZXNwb25zZSAodG8gdGhlCiAgICAgICBlcnJvbmVvdXNseSB0cmFuc21pdHRlZCByZXF1ZXN0KSBhcnJpdmVzIGFuZCB0aGUgY2FsbGJhY2sgaXMKICAgICAgIGNhbGxlZCByZWZlcmVuY2luZyBkZWFsbG9jYXRlZCBtZW1vcnksIHdoaWNoIGNhdXNlcyBhIHNlZ2ZhdWx0LgogICAKMjAwMS0wNy0yNiAwNzoyOCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKE5FVy1MSUJSQVJZLUFQSS40KSwgc25tcF9hcGkuYzoKCiAgIEFkZGluZyBhICdkb3VibGUnLXZhbHVlZCB2YXJiaW5kIGlzbid0IGluaGVyZW50bHkgYW4gaW50ZXJuYWwgZXJyb3IhCiAgIAoyMDAxLTA3LTI1IDA1OjQ3ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZGlzYWJsZSBzdGRlcnIgbG9nZ2luZyAoaWYgcmVxdWVzdGVkKSBiZWZvcmUgY2FsbGluZyBpbml0X21pYl9tb2R1bGVzKCkuCiAgICAgICBUaGlzIHNob3VsZCBmaXggdGhlIHByb2JsZW0gbm90ZWQgYnkgTmlnZWwgTWV0aGVyaW5naGFtIGluIGJ1ZyAjNDE4ODU3CiAgICAgICB3aGVyZWJ5IHRoZSBBZ2VudFggbWFzdGVyIG1vZHVsZSBwcmludHMgYSBtZXNzYWdlIHRvIHN0ZGVyciB3aGljaCBjYXVzZXMKICAgICAgIGEgU0lHUElQRSB3aGVuIHRoZSBhZ2VudCBpcyBzdGFydGVkIGFzIGEgZGFlbW9uLgogICAKMjAwMS0wNy0yNSAwMjoxOCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBpbml0aWFsaXNlIGJ1ZmZlcnMgdG8gemVybyBpbiBoYW5kbGVfd3JhcF9mbXQsIHRvIGF2b2lkIGdhcmJhZ2UgaW4KICAgICAgIGRpc3BsYXkgb2Ygc2VjdXJpdHkgcGFyYW1ldGVycywgYXMgbm90ZWQgYnkgV2lsbGlhbSBGcmF1ZW5ob2ZlcgogICAgICAgKGJ1ZyAjNDM3MjMxKS4KICAgCiAgICAgLSBhZGQgY2xvc2luZyBwYXJlbnRoZXNpcyBhZnRlciAodmlhIDxhZGRyZXNzPiBpbiBmb3JtYXRfcGxhaW5fdHJhcAogICAKMjAwMS0wNy0yMyAwNzo1MyAgamJwbgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAgIC0gcmVtb3ZlIGV4Y2Vzc2l2ZSBkZWJ1Z2dpbmcgZnJvbSBzbm1wXyhyZSlhbGxvYyBmdW5jdGlvbnMKICAgCjIwMDEtMDctMjMgMDQ6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBkZWJ1Z2dpbmcgb3V0cHV0IHRvIHByaW50IGxvc2luZyBwYXRoIGNvcnJlY3RseSB3aGVuCiAgICAgICBhIHJlbW90ZSBjb25uZWN0IGZhaWxzLgogICAKMjAwMS0wNy0xNyAwOTo1NiAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICB1cGRhdGUgZm9yIG5hbWluZyBjb252ZW50aW9ucyBhbmQgZm9yIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KICAgCjIwMDEtMDctMTcgMDk6MDcgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgaW5pdGlhbCBjb2Rpbmcgc3R5bGUgZ3VpZGVsaW5lIGRvY3VtZW50LgogICAKMjAwMS0wNy0xNyAwOTowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZW1lbWJlciB0byByZW1vdmVfdHJhcF9zZXNzaW9uKG91ci1zZXNzaW9uLXdpdGgtbWFzdGVyLWFnZW50KQogICAgICAgaWYgdGhlIG1hc3RlciBhZ2VudCBzZXNzaW9uIGdvZXMgYXdheSwgYmVjYXVzZSBvdGhlcndpc2UgeW91CiAgICAgICBtYXkgc3Vic2VxdWVudGx5IHRyeSB0byB1c2UgaXQsIHdoaWNoIHdpbGwgcHJvYmFibHkgZHVtcCBjb3JlLAogICAgICAgYW5kIGlzIGNlcnRhaW5seSBhbiBlcnJvci4KICAgCiAgICAgLSBhbHNvIGNoYW5nZSB3aGVuIHRyYXAgc2Vzc2lvbiBpcyByZWdpc3RlcmVkIHRvIGJlaW5nIGltbWVkaWF0ZWx5CiAgICAgICB0aGUgc2Vzc2lvbiBpcyBvcGVuZWQgc28gdHJhcHMgY2FuIGJlIHNlbnQsIGUuZy4gZnJvbSB0aGUKICAgICAgIElOREVYX1NUQVJUIGNhbGxiYWNrIChmb3IgZXhhbXBsZSBsaW5rVXAgdHJhcHMgaW4gc3ViYWdlbnRzIHRoYXQKICAgICAgIHJlZ2lzdGVyIGEgcm93IG9mIGlmVGFibGUpLgogICAKMjAwMS0wNy0xNyAwODo0OCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAgIC0gY2hhbmdlIHRvIHJlbW92ZV90cmFwX3Nlc3Npb24oKSwgc28gYXMgbm90IHRvIGNsb3NlIGFuIFNOTVAKICAgICAgIHNlc3Npb24gc2ltcGx5IGJlY2F1c2Ugd2UgYXJlIHJlbW92aW5nIGl0IGZyb20gdGhlIHRyYXBfc2luawogICAgICAgbGlzdC4gIFRoZSByYXRpb25hbGUgaXMgdGhhdCB0aGUgc2Vzc2lvbiBtYXkgc3RpbGwgYmUgaW4gdXNlIGZvcgogICAgICAgb3RoZXIgcHVycG9zZXMsIG9yIChtb3JlIHRvIHRoZSBwb2ludCkgeW91IG1heSBiZSBjYWxsaW5nIHRoaXMKICAgICAgIGZ1bmN0aW9uIGZyb20gdGhlIHNlc3Npb24ncyBjYWxsYmFjayAoZnJvbSB3aGVyZSBjbG9zaW5nIHRoZQogICAgICAgc2Vzc2lvbiBpc24ndCBhIGdvb2QgaWRlYSkuCiAgIAoyMDAxLTA3LTEzIDA2OjAyICBkdHMxMgoKICAgKiBzbm1wbGliL25ldHNubXAuaDoKCiAgIGZpbGUgbmV0c25tcC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1MSUJSQVJZLUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oOgoKICAgZmlsZSB0YWJsZV9pdGVyYXRvci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEyIDAyOjIxICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGZpeCBmb3IgYnVnICM0MzkwOTQsIHJlcG9ydGVkIGJ5IEV2ZXJ0LUphbiB2YW4gVHVpamwsIHdoZXJlYnkKICAgICAgIHRoZSBBZ2VudFggbWFzdGVyIGFnZW50IGV4cGVjdHMgYSByZXNwb25zZSB0byBhbiBhZ2VudHgtQ2xlYW51cFNldC1QRFUKICAgICAgIG1lc3NhZ2UgKGluY29ycmVjdGx5KS4gIFRoaXMgb25seSBzaG93cyB1cCB3aGVuIHRlc3RpbmcgYWdhaW5zdCBvdGhlcgogICAgICAgc3ViYWdlbnRzIChlLmcuIGpheCkgYmVjYXVzZSB0aGUgbmV0LXNubXAgc3ViYWdlbnQgc2VuZHMgYSByZXNwb25zZQogICAgICAgdG8gdGhlIGFnZW50eC1DbGVhbnVwU2V0LVBEVSAoaW5jb3JyZWN0bHkpLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICBmaWxlIHZhY21fY29udGV4dC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaDoKCiAgIGZpbGUgdmFjbV9jb250ZXh0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaDoKCiAgIGZpbGUgdGFyZ2V0X2NvdW50ZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYzoKCiAgIGZpbGUgdGFyZ2V0X2NvdW50ZXJzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMDUgMDY6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgICAgLSBtYWtlIEludGVyZmFjZV9TY2FuX0dldF9Db3VudCBub24tc3RhdGljIGFzIGl0J3MgdmVyeSB1c2VmdWwKICAgCjIwMDEtMDctMDUgMDM6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gZnJlZSB0aGUgY2FjaGVkIHNlY3VyaXR5IHBhcmFtZXRlcnMgd2hlbiB3ZSBoYXZlIGEgcGFyc2UgZXJyb3IKICAgICAgIG9uIGlucHV0LCBvdGhlcndpc2Ugd2UgbGVhayBtZW1vcnkgKHRyaWdnZXJlZCBieSBTQyAzLjAuMTMuezIsM30pLgogICAKMjAwMS0wNy0wNCAwOTo1MSAgdWlkNDQ4MTAKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNhdGNoIHNvbWUgbWFsZm9ybWVkIFNOTVB2MyBwYWNrZXRzCiAgIAoyMDAxLTA3LTA0IDA3OjQyICB1aWQ0NDgxMAoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gZml4IGJhZCBtaXN0YWtlIGluIHNubXB2M19zY29wZWRQRFVfaGVhZGVyX3JlYWxsb2NfcmJ1aWxkIHdoaWNoCiAgICAgICB3YXMgZW5jb2RpbmcgdGhlIHdyb25nIGxlbmd0aCBpbnRvIHRoZSBTY29wZWRQRFUgU0VRVUVOQ0UgaGVhZGVyCiAgICAgICAod2Fzbid0IGluY2x1ZGluZyBsZW5ndGggb2YgYWN0dWFsIGRhdGEsIGkuZS4gUERVISkuICBUb3RhbGx5IG15CiAgICAgICBmYXVsdCAtLSBpbnRyb2R1Y2VkIHdoZW4gY2hhbmdpbmcgb3ZlciB0byByZWFsbG9jYXRpbmcgYnVmZmVyCiAgICAgICB0eXBlIGZ1bmN0aW9ucy4gIEFtYXppbmcgdGhpcyBoYXNuJ3QgY2F1c2VkIGFsbCBzb3J0cyBvZiB0cm91YmxlCiAgICAgICBmb3IgcGVvcGxlIQogICAKMjAwMS0wNy0wMiAxODowNCAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcC10Yy5jOgoKICAgZmlsZSBzbm1wLXRjLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMDIgMDk6MzMgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNsaWdodCBjaGFuZ2UgdG8gZ2VuZXJhdGlvbiBvZiBlcnJvci1pbmRleDoKICAgCiAgICAgICAtIGV4cGxpY2l0bHkgdGVzdCBmb3IgZXJyb3Itc3RhdHVzID09IG5vRXJyb3IsIGFuZCBzZXQgZXJyb3ItaW5kZXgKICAgICAgICAgdG8gemVybyBpbiB0aGlzIGNhc2U7CiAgIAogICAgICAgLSBvdGhlcndpc2UgdXNlIHRoZSBjYWNoZWQgdmFsdWU7CiAgIAogICAgICAgLSBkb24ndCB6ZXJvIHRoZSBjYWNoZWQgdmFsdWUgaW4gaGFuZGxlX3Zhcl9saXN0IGlmIGhhbmRsZV9vbmVfdmFyCiAgICAgICAgIHJldHVybnMgbm9FcnJvcgogICAKICAgICAtIHRoaXMgY29wZXMgcHJvcGVybHkgd2l0aCBTRVQgcmVxdWVzdHMsIHdoZXJlIGEgZmFpbGluZyBTRVQgd2lsbCBoYXZlCiAgICAgICBhIEZSRUUgcGhhc2Ugd2hpY2ggd2lsbCB0eXBpY2FsbHkgcmV0dXJuIG5vRXJyb3IuICBQcmV2aW91c2x5IHRoaXMKICAgICAgIHdvdWxkIGVycm9uZW91c2x5IGNhdXNlIHRoZSBlcnJvci1pbmRleCB0byBiZSBzZXQgdG8gemVyby4KICAgCjIwMDEtMDctMDIgMDg6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgICAtIGZpeCBiYWQgYmVoYXZpb3VyIGluIGhlYWRlcl9zaW1wbGVfdGFibGUgd2hlbiB0aGUgaW5kZXggaXMKICAgICAgIGVxdWFsIHRvIFVMT05HX01BWAogICAKMjAwMS0wNi0yOCAxMDowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgICAtIGNoYW5nZSBzZW5zZSBvZiBzbm1wX29pZF9jb21wYXJlKCkgcmVzdWx0IGNoZWNrIGluIHZhcl91c21Vc2VyCiAgICAgICB0byBkbyBsZXhpLW9yZGVyaW5nIGNvcnJlY3RseQogICAKMjAwMS0wNi0yOCAwNzoyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY291bnQgbW9yZSB2MS92MmMgcGFyc2UgZXJyb3JzIChTQyAxLjEuMTIuMTApCiAgIAoyMDAxLTA2LTI4IDA1OjU2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjaGVjayB0aGF0IHZlcnNpb24gZmllbGQgb2YgUERVIGlzIG9mIGludGVnZXIgdHlwZSByYXRoZXIgdGhhbiBqdXN0CiAgICAgICBhc3N1bWluZyBpdCBpcyAoU0MgMS4xLjEyLjIuMSkKICAgCjIwMDEtMDYtMjggMDQ6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gaW5jcmVtZW50IHNubXBJbkJhZENvbW11bml0eU5hbWVzIHdoZW4gd2Ugc2VlIHVua25vd24gY29tbXVuaXR5CiAgICAgICBuYW1lcywgcGVyIFJGQzE5MDcKICAgCjIwMDEtMDYtMjcgMDg6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gbWFrZSB1c2Ugb2YgbmV3IGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl9kZXRhY2goKSB0byBtYXJrIGFsbCBvdXIKICAgICAgIG5vZGVzIGFzIGRldGFjaGVkIHdoZW4gd2UgZ2V0IGEgdHJhbnNwb3J0IGRpc2Nvbm5lY3QgaW5kaWNhdGlvbi4KICAgCjIwMDEtMDYtMjcgMDg6MDcgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICB2YXJfc3RydWN0Lmg6CgogICAgIC0gYWRkIGFkZGl0aW9uYWwgZmxhZyB0byBzdWJ0cmVlIHN0cnVjdHVyZSB0aGF0IHN1YmFnZW50cyBjYW4gdXNlCiAgICAgICB0byBkZXRlcm1pbmUgd2hldGhlciBhbiBhdHRlbXB0IGhhcyBiZWVuIG1hZGUgdG8gcmVnaXN0ZXIgYW5kIE9JRAogICAgICAgd2l0aCBhIG1hc3RlciBhZ2VudCBkdXJpbmcgYSBzZXNzaW9uJ3MgbGlmZXRpbWUuICBUaGlzIGFsbG93cwogICAgICAgbWFudWFsIHJlLXJlZ2lzdHJhdGlvbiBhbmQgYXV0b21hdGljIHJlLXJlZ2lzdHJhdGlvbiB0byBiZSBtaXhlZAogICAgICAgd2l0aGluIGEgc3ViYWdlbnQgKHBlcmhhcHMgYmVjYXVzZSB5b3UgYXJlIGRvaW5nIGluZGV4IHN0dWZmKS4KICAgCiAgICAgLSBhZGQgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX2RldGFjaCgpIHdoaWNoIHVuc2V0cyB0aGlzIGZsYWcgZm9yCiAgICAgICBhbGwga25vd24gbm9kZXMgKHN1YmFnZW50IHdvdWxkIHR5cGljYWxseSBjYWxsIHRoaXMgb24gZGlzY29ubmVjdAogICAgICAgaW5kaWNhdGlvbikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpCiAgIAogICAgIC0gY29ycmVjdCBiYWQgcmVjdXJzaXZlIGJlaGF2aW91ciBpbiByZWdpc3Rlcl9taWJfcmVhdHRhY2goKSB3aGljaAogICAgICAgdXNlZCB0byB0cnkgdG8gcmUtcmVnaXN0ZXIgTiBub2RlcyBOISB0aW1lcy4gIE9uY2Ugd2lsbCBub3JtYWxseQogICAgICAgYmUgZW5vdWdoLgogICAKICAgICAtIGNoYW5nZSB0byBkdW1wX3JlZ2lzdHJ5KCkgZm9ybWF0IHRvIGluY2x1ZGUgaGV4IGRpc3BsYXkgb2YKICAgICAgIGZsYWdzIGZpZWxkLgogICAKMjAwMS0wNi0yNiAwOToyNiAgZHRzMTIKCiAgICogRkFROgoKICAgRml4IGVycm9yIGluIFNOTVB2MiB0cmFwIGV4YW1wbGVzICAoSWRlbnRpZmllZCBieSBEaXdha2FyIFNoZXR0eSkuCiAgIAoyMDAxLTA2LTI2IDAyOjM1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdGVkIHNlbnNlIG9mIGR1bXBfcmVhbGxvY19vaWRfdG9fc3RyaW5nKCkgcmV0dXJuIHZhbHVlCiAgICAgICBjaGVja3MsIGFzIHNwb3R0ZWQgYnkgUm9iZXJ0IFN0b3J5LgogICAKMjAwMS0wNi0yNSAwNjozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBzbWFsbCB0d2VhayBpbiBoYW5kbGVfYWdlbnR4X3Jlc3BvbnNlKCkgd2hlbiByZXRyeWluZyB1bmZ1bGZpbGxlZAogICAgICAgcmVxdWVzdHM6IGNvbnRpbnVlIGZyb20gdGhlICJzdGFydCIgT0lEIG9mIHRoZSBuZXh0IG5vZGUgb2YgdGhlCiAgICAgICB0cmVlLCBub3QgZnJvbSB0aGUgIm5hbWUiIE9JRCwgd2hpY2ggY2F1c2VzIGxvb3BpbmcuCiAgIAoyMDAxLTA2LTIxIDA5OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGhhbmRsZSAiaG9sZXMiIGluIHJvd3Mgb2YgdGFibGVzIHRoYXQgYXJlIGhhbmRsZWQgYnkgc3ViYWdlbnRzCiAgIAogICAgICAgU2luY2UgdGhlIGZ1bGx5LXF1YWxpZmllZCBpbnN0YW5jZSBpcyByZWdpc3RlcmVkLCB3ZSBpbnRlcnByZXQKICAgICAgIGEgcmV0dXJuIG9mIG5vU3VjaEluc3RhbmNlIHdoZW4gZG9pbmcgYW4gaW5leGFjdCBxdWVyeSBhcyBtZWFuaW5nCiAgICAgICB3ZSBzaG91bGQgcmV0cnkgdGhlIHF1ZXJ5LgogICAKMjAwMS0wNi0yMSAwMjo1MCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgICAtIGZvcmdvdCB0byBjb21taXQgYXQgdGhlIHNhbWUgdGltZSBhcyBsYXN0IG1pYi5jIGNvbW1pdDsgdXBkYXRlZAogICAgICAgcHJvdG90eXBlIGZvciBzcHJpbnRfcmVhbGxvY19oaW50ZWRfaW50ZWdlcgogICAKMjAwMS0wNi0yMCAwNjo0NCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X2luZGV4Lmg6CgogICAgIC0gYWRkIGZ1bmN0aW9uIGNvdW50X2luZGV4ZXMgd2hpY2ggcmV0dXJucyB0aGUgbnVtYmVyIG9mIGluZGV4ZXMKICAgICAgIGFsbG9jYXRlZCBmb3IgYSBnaXZlbiBPSUQuICBUaGlzIGNhbiBiZSB1c2VmdWwgZm9yIGltcGxlbWVudGluZwogICAgICAgInJvdyBjb3VudCIgb2JqZWN0cywgZS5nLiBpZk51bWJlci4KICAgCjIwMDEtMDYtMjAgMDU6MzcgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMKOgoKICAgICAtIGFkZCBTTk1QRF9DQUxMQkFDS19JTkRFWF9TVEFSVCBhbmQgU05NUERfQ0FMTEJBQ0tfSU5ERVhfU1RPUAogICAgICAgY2FsbGJhY2tzIHdoaWNoIG1heSBiZSB1c2VkIHRvIG1hbmFnZSBpbmRleCBhbGxvY2F0aW9ucy4KICAgCiAgICAgICBNYXN0ZXIgYWdlbnQgc2hvdWxkIHByb2JhYmx5IGNhbGwgdGhlc2UgY2FsbGJhY2tzIHRvbywgYWx0aG91Z2gKICAgICAgIGl0J3MgYSBiaXQgb2YgYSBkZWdlbmVyYXRlIGNhc2UuCiAgIAoyMDAxLTA2LTE5IDA5OjQ0ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gdXNlIGFuIGV4cGxpY2l0IGZpZWxlZCAiYWxsb2NhdGVkIiBpbiBzbm1wX2luZGV4IHN0cnVjdHVyZSB0bwogICAgICAgaW5kaWNhdGUgd2hldGhlciBvciBub3QgYSB2YWx1ZSBpcyBjdXJyZW50bHkgYWxsb2NhdGVkLCByYXRoZXIKICAgICAgIHRoYW4gb3ZlcmxvYWRpbmcgYSBOVUxMIHNlc3Npb24gdG8gbWVhbiB0aGF0IGl0IGlzIG5vdC4KICAgCiAgICAgICBUaGlzIGFsbG93cyBzdGFydHVwIGNvZGUgaW4gYSBtYXN0ZXIgYWdlbnQgdG8gcHJlLXJlZ2lzdGVyIGluZGljZXMKICAgICAgIHdoZW4gdGhlcmUgYXJlIG5vIHNlc3Npb25zIG9wZW4uCiAgIAoyMDAxLTA2LTE5IDA4OjM0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBtYXN0ZXJfcmVxdWVzdC5jCjoKCiAgICAgLSAga2VlcCB0aGUgdmFsdWUgb2YgTkVUV09SS19CWVRFX09SREVSIGZyb20gaC5mbGFncyBpbiB0aGUKICAgICAgICBhZ2VudHgtT3Blbi1QRFUgYW5kIHVzZSBpdCBmb3Igc3Vic2VxdWVudCBtYXN0ZXItaW5pdGlhdGVkCiAgICAgICAgQWdlbnRYIHByb3RvY29sIG9wZXJhdGlvbnMsIHBlciBSRkMgMjc0MSAoc2VjdGlvbiA3LjEuMSwKICAgICAgICBwYXJhZ3JhcGggNCkuCiAgIAogICAgICAgIEZvciBub3csIHdlIGFyZSBzdG9yaW5nIHRoaXMgaW4gdGhlIGZsYWdzIGZpZWxkIG9mIGEKICAgICAgICBzdWJzZXNzaW9uLiAgVGhpcyBpcyBsaWtlbHkgdG8gc3RvcCB3b3JraW5nIGlmIHRoZSBmbGFncwogICAgICAgIGRlZmluaXRpb25zIGNoYW5nZSAoaS5lLiBpdCdzIG5vdCBhIGdyZWF0IHNvbHV0aW9uKQogICAKICAgICAtICBUaGFua3MgdG8gUGV0ZXIgS29yc3RlbiAoc2V2ZXJpdHlvbmUgYXQgdXNlcnMuc291cmNlZm9yZ2UubmV0KQogICAgICAgIGZvciBpZGVudGlmeWluZyB0aGlzIGJ1ZywgYW5kIGZvciBoZWxwIGRlYnVnZ2luZyB0aGlzIGZpeC4KICAgCjIwMDEtMDYtMTkgMDI6MzUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSByZWluc3RhdGUgc3BhY2UgYmV0d2VlbiBudW1iZXJzIGFuZCB1bml0cy4KICAgCiAgICAgLSByZXNwZWN0IERJU1BMQVktSElOVHMgZm9yIFVuc2lnbmVkMzIsIEdhdWdlLCBHYXVnZTMyIHR5cGVzLgogICAKMjAwMS0wNi0xMyAwMzoyOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSBtaW5vciBjaGFuZ2UgdG8gZGVidWdnaW5nIHRvIHJlZHVjZSAibm9pc2UgbGV2ZWwiIGZyb20gUHVyaWZ5CiAgIAoyMDAxLTA2LTEyIDEwOjM1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBoYW5kbGUgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGV0aXRpb25zIGZpZWxkIHZhbHVlcyBvZiA8IDAgKGJ5CiAgICAgICBzZXR0aW5nIHRoZW0gdG8gMCwgcGVyIFJGQyAxOTA1KQogICAKMjAwMS0wNi0xMiAxMDowNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZml4IGJ1ZyB0aGF0IGNhdXNlZCBhIG51bGwgcG9pbnRlciB0byBiZSBmb2xsb3dlZCB3aGVuIHByb2Nlc3NpbmcgYQogICAgICAgR0VUQlVMSyByZXF1ZXN0IHdpdGggbm9uLXJlcGVhdGVycyA+IDAsIG1heC1yZXBldGl0aW9ucyA9PSAwIGFuZCBubwogICAgICAgdmFyYmluZHMgaW4gdGhlIHJlcXVlc3QuCiAgIAoyMDAxLTA2LTEyIDA3OjI0ICBkdHMxMgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYyAoVjQtMi1wYXRjaGVzLjEpLCByZWFkX2NvbmZpZy5jOgoKICAgRml4ICd1bnJlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyJyB0byBoYW5kbGUgdGFncyBvdGhlcgogICB0aGFuIHRoZSBmaXJzdCBpbiB0aGUgbGlzdC4gIChUaGFua3MgdG8gUGF1bCBTZXJpY2UpLgogICAKMjAwMS0wNi0wNiAwNzozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gZnJlZSgpIHJldHVybiB2YWx1ZSBmcm9tIHJlZ2lzdGVyX2luZGV4KCkgY2FsbHMKICAgCjIwMDEtMDYtMDYgMDc6MzcgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBtb3JlIHVuaWZvcm0gcmV0dXJuIHZhbHVlIGZyb20gcmVnaXN0ZXJfaW5kZXgoKTogbWFrZSBpdCBhbHdheXMgYQogICAgICAgdmFyYmluZCB3aGljaCB0aGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBmcmVlKClpbmcsIG9yIGVsc2UgTlVMTC4KICAgCjIwMDEtMDYtMDUgMDM6MTAgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaW5kZXguYzoKCiAgICAgLSBmaXggZm9yIGluZGV4IGFsbG9jYXRpb24sIHN1Y2ggdGhhdCByZXF1ZXN0cyBmb3Igc3BlY2lmaWMgaW5kaWNlcyB3aGljaAogICAgICAgaGF2ZSBwcmV2aW91c2x5IGJlZW4gYWxsb2NhdGVkLCBidXQgYXJlIG5vdCBjdXJyZW50bHkgaW4gdXNlLCBzdWNjZWVkLgogICAKICAgICAtIG1vcmUgZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmM6CgogICBmaWxlIHRlc3RoYW5kbGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmM6CgogICBmaWxlIHRlc3RkZWxheWVkLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmg6CgogICBmaWxlIHRlc3RkZWxheWVkLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmg6CgogICBmaWxlIHRlc3RoYW5kbGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaDoKCiAgIGZpbGUgbXVsdGlwbGV4ZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgZmlsZSBpbnN0YW5jZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL251bGwuaDoKCiAgIGZpbGUgbnVsbC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oOgoKICAgZmlsZSByZWFkX29ubHkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlOgoKICAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmM6CgogICBmaWxlIG11bHRpcGxleGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmM6CgogICBmaWxlIHNlcmlhbGl6ZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmg6CgogICBmaWxlIHRhYmxlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuaDoKCiAgIGZpbGUgaW5zdGFuY2UuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZmlsZSB0YWJsZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oOgoKICAgZmlsZSBzZXJpYWxpemUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmg6CgogICBmaWxlIHNldF9oZWxwZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBmaWxlIG51bGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpbGUgTWFrZWZpbGUuaW4gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5oOgoKICAgZmlsZSBvbGRfYXBpLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmM6CgogICBmaWxlIHJlYWRfb25seS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIGZpbGUgb2xkX2FwaS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA3OjM5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIG1pc2MgZml4ZXMgZm9yIG9pZCBmb3JtYXR0aW5nIHByb2JsZW1zLgogICAKMjAwMS0wNi0wMSAwNzozNyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgYWRkIE1hcnRpbiBPbGRmaWVsZC4KICAgCjIwMDEtMDYtMDEgMDI6NTAgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gZml4IGZvciBhYnNvbHV0ZWx5IG1pbmQtYmVuZGluZyBtZW1vcnkgbGVhayB3aGVuIEFnZW50WCBzZXNzaW9ucwogICAgICAgdGltZW91dC4gIGFnZW50X3Nlc3Npb25fbGlzdCBob2xkcyBhIHF1ZXVlIG9mIHNlc3Npb25zIHdpdGggb3V0c3RhbmRpbmcKICAgICAgIHJlcXVlc3RzLiAgV2hlbiBhIHNlc3Npb24gdGltZXMgb3V0LCB0aGlzIG11c3QgYmUgc2NhdmVuZ2VkIHRvIG1ha2UKICAgICAgIHN1cmUgdGhlIHNlc3Npb25zIHRoYXQgaGF2ZSB0aW1lZCBvdXQsIGFuZCB0aGVpciBhc3NvY2lhdGVkIHJlcXVlc3RzCiAgICAgICBhcmUgZnJlZSgpZC4KICAgCjIwMDEtMDUtMzAgMDM6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmV0cnkgaW5pdGlhbCBvcGVuIG9mIEFnZW50WCBtYXN0ZXIgc29ja2V0IGlmIEFnZW50WCBwaW5ncyBhcmUKICAgICAgIGVuYWJsZWQgKHNob3VsZCByZWFsbHkgYmUgYSBzZXBhcmF0ZSBkZWZhdWx0X3N0b3JlIG9wdGlvbiBidXQKICAgICAgIG5ldmVyIG1pbmQpCiAgIAoyMDAxLTA1LTMwIDAzOjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIG1vcmUgYWdncmVzc2l2ZSBoYW5kbGluZyBvZiB0aW1lb3V0IGNvbmRpdGlvbnMgKGFsc28gZml4IG1lbW9yeQogICAgICAgbGVhaykKICAgCjIwMDEtMDUtMzAgMDM6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIG1vcmUgaW5mb3JtYXRpdmUgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgICAtIHJlbW92ZSBub2lzeSBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMzAgMDI6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vcmUgY29tcGFjdCBkZWJ1Z2dpbmcgaW4gX3Nlc3Nfc2VsZWN0X2luZm8KICAgCjIwMDEtMDUtMzAgMDI6MzQgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjb3B5IGZsYWdzIGluIHJlYXR0YWNoX3N1YnRyZWUgKG5lZWRlZCBmb3IgQWdlbnRYIHJvdyByZWdpc3RyYXRpb24pCiAgIAoyMDAxLTA1LTI4IDA4OjU0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBjbGllbnQuaCwKICAgbWFzdGVyX2FkbWluLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHN1YmFnZW50LmM6CgogICAgIC0gc3R1ZmYgZnJvbSBwYXRjaCAjNDE2MDI2IChzdWJtaXR0ZWQgYnkgYW5vbnltb3VzKSBmb3IgQWdlbnRYIHJvdwogICAgICAgcmVnaXN0cmF0aW9uCiAgIAoyMDAxLTA1LTI4IDA4OjQ5ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIHR3ZWFrIHRvIGdldFN0YXRQdHIgdG8gaGFuZGxlIGdldE5leHQgb3BlcmF0aW9ucyBpbiBjb21iaW5hdGlvbiB3aXRoCiAgICAgICBGVUxMWV9RVUFMSUZJRURfSU5TVEFOQ0Ugbm9kZXMgKHdoaWNoIGFyaXNlIGluIEFnZW50WCByb3cgcmVnaXN0cmF0aW9uKS4KICAgCjIwMDEtMDUtMjggMDg6NDYgIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICB2YXJfc3RydWN0Lmg6CgogICAgIC0gc3R1ZmYgZnJvbSBwYXRjaCAjNDE2MDI2IChzdWJtaXR0ZWQgYnkgYW5vbnltb3VzKSBmb3IgQWdlbnRYIHJvdwogICAgICAgcmVnaXN0cmF0aW9uCiAgIAoyMDAxLTA1LTI4IDA4OjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBzbWFsbCB0d2VhayB0byBkZWJ1Z2dpbmcgb3V0cHV0CiAgIAoyMDAxLTA1LTI4IDA4OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIHBhcnNpbmcvYnVpbGRpbmcgb2YgQVNOX1BSSVZfRVhDTF9SQU5HRSBhbmQKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgdHlwZXMgKnByb3Blcmx5Ki4KICAgCjIwMDEtMDUtMjggMDQ6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBpbiBfc2Vzc19hc3luY19zZW5kIGVycm9yIGNhc2VzCiAgIAoyMDAxLTA1LTI4IDA0OjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGFkZCBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzLgogICAKMjAwMS0wNS0yMyAwOToyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVzcGVjdCBtc2dNYXhTaXplIGluIHJlY2VpdmVkIHYzIFBEVXMgKGluIHRoZSB3ZWFrIHNlbnNlIHRoYXQgaWYKICAgICAgIHRoZSBzZXJpYWxpemVkIHJlc3BvbnNlIFBEVSBpcyBtb3JlIHRoYW4gaXQsIHdlIGRvbid0IHNlbmQgaXQpCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5LiAgVXNpbmcgdGhlc2UKICAgICAgIGZ1bmN0aW9ucyBpcyByZWFsbHkgYmFkLCBzaW5jZSB0aGV5IHdpbGwgaGFwcGlseSBvdmVyZmxvdyBidWZmZXJzLgogICAgICAgVGhlIHN1cGVyaW9yIGFsdGVybmF0aXZlcywgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUKICAgICAgIHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5LgogICAKMjAwMS0wNS0yMyAwOTowMCAgamJwbgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlIHN0cnVjdCBzb2NrYWRkcl9pbiByZXNwSXAKICAgCjIwMDEtMDUtMjMgMDg6NTggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGVhcmx5IGJhaWwgb3V0IG9mIGhhbmRsZV9zbm1wX3BhY2tldCgpIGlmIHRoZSBjYWxsYmFjayBvcGVyYXRpb24KICAgICAgIHR5cGUgaXMgbm90IFNOTVBfQ0FMTEJBQ0tfT1BfUkVDRUlWRURfTUVTU0FHRS4gIEluIHByYWN0aWNlLCB0aGUKICAgICAgIG9ubHkgd2F5IHRoaXMgYXJpc2VzIGN1cnJlbnRseSBpcyB3aGVuIGEgc3RyZWFtIHRyYW5zcG9ydCBiYXNlZAogICAgICAgY29ubmVjdGlvbiBnb2VzIGF3YXkgYW5kIGEgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIG9jY3Vycy4KICAgCjIwMDEtMDUtMjMgMDg6NDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIG5ldyBmaWVsZHMgcmN2TXNnTWF4U2l6ZSBhbmQgc25kTXNnTWF4U2l6ZSBpbiBzbm1wX3Nlc3Npb24KICAgICAgIHN0cnVjdHVyZSB0byBzdXBwb3J0IHYzIG1zZ01heFNpemUKICAgCiAgICAgLSByZW1vdmVkIGZ1bmN0aW9ucyBhc2NpaV90b19iaW5hcnksIGhleF90b19iaW5hcnkgZnJvbSBwdWJsaWMKICAgICAgIGludGVyZmFjZS4gIFVzaW5nIHRoZXNlIGZ1bmN0aW9ucyBpcyByZWFsbHkgYmFkLCBzaW5jZSB0aGV5CiAgICAgICB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4gIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsCiAgICAgICBkZWZpbmVkIGluIHRvb2xzLmgsIGFyZSBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDg6MzcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMsIHNubXBJUFhEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX3RyYW5zcG9ydC5jLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgICAtIGFkZCBtc2dNYXhTaXplIGZpZWxkIHRvIHNubXBfdHJhbnNwb3J0IHN0cnVjdHVyZSB0byBzdXBwb3J0CiAgICAgICBtc2dNYXhTaXplIG5lZ290aWF0aW9uIGZvciB2MwogICAKMjAwMS0wNS0yMyAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX2hleHN0cmluZyBpbnN0ZWFkIG9mIHNwcmludF9oZXhzdHJpbmcgZm9yCiAgICAgICBTTk1QX1RFU1RJTkdfQ09ERSBkZWJ1Z2dpbmcgb3V0cHV0IG9mIElWLCBrZXkgYW5kIHBsYWludGV4dAogICAKMjAwMS0wNS0yMyAwNToyNSAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gZnJlZSgpIGJ1ZmZlcnMgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXM7IG5vIGJpZyBkZWFsCiAgIAoyMDAxLTA1LTIzIDA0OjM5ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX2hleF90b19iaW5hcnkgZnVuY3Rpb24gZm9yIGVuZ2luZSBJRCBwYXJzaW5nIGluIC1lCiAgICAgICBvcHRpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwNDoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGZyZWUoKSBidWZmZXJzIGluIGEgY291cGxlIG9mIGVycm9yIGNhc2VzOyBubyBiaWcgZGVhbAogICAKMjAwMS0wNS0yMyAwNDoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIHVzZSBuZXcgc25tcF9oZXhfdG9fYmluYXJ5IGZ1bmN0aW9uIGZvciBlbmdpbmUgSUQgcGFyc2luZyBpbiAtZQogICAgICAgYW5kIC1FIG9wdGlvbnMsIHJhdGhlciB0aGFuIGFyY2hhaWMgaGV4X3RvX2JpbmFyeQogICAKMjAwMS0wNS0yMyAwMzo1NiAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeSBmdW5jdGlvbnMgZm9yIGlucHV0IHN0cmluZwogICAgICAgdG8gT0NURVQgU1RSSU5HIGNvbnZlcnNpb24sIHJhdGhlciB0aGFuIGFyY2hhaWMgYXNjaWlfdG9fYmluYXJ5CiAgICAgICBhbmQgaGV4X3RvX2JpbmFyeQogICAKICAgICAtIG9taXQgdHJhaWxpbmcgbmV3bGluZSBmcm9tIHN0cmluZyAoaGVscGZ1bCBmb3Igb2JqZWN0cyB0aGF0IGRvbid0CiAgICAgICBhbGxvdyBub24tcHJpbnRpbmcgY2hhcmFjdGVycywgZS5nLiBzeXNMb2NhdGlvbi4wKQogICAKMjAwMS0wNS0yMCAwODoxMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmV3cml0dGVuIF9zZXNzX3JlYWQoKSBmdW5jdGlvbjoKICAgCiAgICAgICAtIGJldHRlciBoYW5kbGluZyBvZiBsb25nIHBhY2tldHMKICAgICAgIC0gemVyby1jb3B5IHJlY2VwdGlvbiBvZiBwYWNrZXRzIG9uIHN0cmVhbSB0cmFuc3BvcnRzCiAgICAgICAtIGxvd2VyIG1lbW9yeSBvdmVyaGVhZHMgZm9yIHBhY2tldCBmcmFnbWVudCBoYW5kbGluZyBmb3Igc3RyZWFtCiAgICAgICAgIHRyYW5zcG9ydHMKICAgCiAgICAgLSBhbGxvdyBwYXJzaW5nIG9mIGxhcmdlIG9iamVjdHMgKD44MTkyIG9jdGV0cykKICAgCjIwMDEtMDUtMjAgMDU6NDggIGpicG4KCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgICAgLSBkb24ndCBzdHJkdXAoKSBjb250ZXh0TmFtZSwgc2VjdXJpdHlOYW1lIC0tIGNhdXNlcyBtaW5vciBtZW1vcnkKICAgICAgIGxlYWsuCiAgIAoyMDAxLTA1LTIwIDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHRlc3QgcmV0dXJuIG9mIGZjbnRsKEZfR0VURkwpLCBzbyBhcyBub3QgdG8gc2V0IGZsYWdzIHRvIGdhcmJhZ2UKICAgCiAgICAgLSBjb3JyZWN0aW9uIHRvIGNvbW1lbnQgLS0gc2V0IHNvY2tldCB0byAqYmxvY2tpbmcqIQogICAKICAgICAtIGNoZWNrIG9wYXF1ZSBiZWZvcmUgd3JpdGluZyB0byBpdCBpbiByZWN2CiAgIAoyMDAxLTA1LTIwIDA1OjAyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgICAgLSBwcm9wZXIgaGFuZGxpbmcgb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIGluIHNubXBfc3luY2hfaW5wdXQ6CiAgICAgICBzZXQgYW4gZXJyb3IgY29uZGl0aW9uLCB3aXRoIGVycm5vIFNOTVBFUlJfQUJPUlQgKCJTZXNzaW9uIGFib3J0CiAgICAgICBmYWlsdXJlIiksIHdoaWNoIHNlZW1zIGxpa2UgYSBnb29kIGVub3VnaCBtYXRjaC4KICAgCjIwMDEtMDUtMTggMDk6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gbWFrZSBuZXdseS1hY2NlcHQoKWVkIHNvY2tldHMgYmxvY2tpbmc7IG90aGVyd2lzZSBwcm9ibGVtcyBhcmlzZQogICAgICAgbGF0ZXIgd2hlbiBzZW5kKClpbmcgbGFyZ2UgUERVcyAoc2luY2Ugb25seSBhIHNpbmdsZSBzb2NrZXQgYnVmZmVyJ3MKICAgICAgIHdvcnRoIG9mIGRhdGEgYXQgbW9zdCBjYW4gYmUgc2VudCB3aXRob3V0IGJsb2NraW5nKS4KICAgCjIwMDEtMDUtMTggMDc6MTcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHVzZSBzcHJpbnRfcmVhbGxvY19vYmppZCBhbmQgc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgaW5zdGVhZCBvZgogICAgICAgc3ByaW50X29iamlkIGFuZCBzcHJpbnRfdmFyaWFibGUgcmVzcGVjdGl2ZWx5LCB0byBhbGxvdyBsYXJnZSBQRFVzCiAgICAgICB0byBiZSBwcmludGVkIHdoZW4gZGVidWdnaW5nCiAgIAoyMDAxLTA1LTE4IDA3OjE2ICBqYnBuCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gc25tcF9yZWFsbG9jKCkKICAgCjIwMDEtMDUtMTggMDc6MTUgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgICAgLSByZW1vdmUgZGVidWdnaW5nIGZyb20gb3V0cHV0IHJvdXRpbmVzCiAgIAogICAgIC0gbmV3IGZ1bmN0aW9uIHNwcmludF9yZWFsbG9jX29iamlkCiAgIAogICAgIC0gbWFrZSBzcHJpbnRfcmVhbGxvY19vYmppZCBhbmQgc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgZXh0ZXJuYWxseQogICAgICAgdmlzaWJsZQogICAKMjAwMS0wNS0xOCAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gYXNuX3JlYWxsb2MoKQogICAKMjAwMS0wNS0xNSAwNDoxMCAgamJwbgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gYWRkIE9JRHMgZm9yIFVEUC9JUHY2IGFuZCBUQ1AvSVB2NgogICAKMjAwMS0wNS0xNCAwMjoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBhZGRlZCBcbiB0byB0ZXh0IG9mIHNubXBfbG9nKCkgbWVzc2FnZXMgKGJ1ZyAjNDIyOTc4KQogICAKMjAwMS0wNS0xMSAwNzozMCAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oOgoKICAgICAtIGFkZGVkIHNwcmludF9yZWFsbG9jXzx0eXBlPiBmYW1pbHkgb2YgZnVuY3Rpb25zIHdoaWNoIHRha2UgZXh0cmEKICAgICAgIHBhcmFtZXRlcnMgYW5kIHVzZSByZWxvY2F0aW5nIGJ1ZmZlcnMgdG8gcmVtb3ZlIGxpbWl0YXRpb25zIGR1ZSB0bwogICAgICAgZml4ZWQtc2l6ZSBidWZmZXJzIChlLmcuIHNlZSBidWcgIzQwOTE4MSkuCiAgIAogICAgIC0gYWxzbyBmaXhlcyBwb3RlbnRpYWwgcHJvYmxlbSBub3RlZCBhcyBidWcgIzQxNDgwMwogICAKICAgICAtIGZwcmludF92YXJpYWJsZSwgZnByaW50X29iamlkIGFuZCBmcHJpbnRfdmFsdWUgdXNlIG5ldyBmdW5jdGlvbnMKICAgICAgIHN1Y2ggdGhhdCBzbm1wZ2V0IGV0Yy4gYXJlIGltcHJvdmVkIGltbWVkaWF0ZWx5CiAgIAogICAgIC0gb2xkIGZ1bmN0aW9ucyByZW1haW4gKkZPUiBOT1cqIC0tIGJ1dCByZWFsbHkgdGhleSBzaG91bGQgYmUKICAgICAgIGNvbnNpZGVyZWQgdG8gYmUgZGVwcmVjYXRlZCAobmV3IGZ1bmN0aW9ucyBwcm92aWRlIGEgc3VwZXJzZXQgb2YKICAgICAgIHRoZWlyIGZ1bmN0aW9uYWxpdHkpLgogICAKMjAwMS0wNS0xMSAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmg6CgogICAgIC0gYWRkZWQgYWRkaXRpb25hbCBmdW5jdGlvbiBwb2ludGVyIHRvIHN0cnVjdCB0cmVlIHRvIHBvaW50IGF0CiAgICAgICByZWxvY2F0aW5nIGJ1ZmZlciBjb21wYXRpYmxlIG91dHB1dCBmdW5jdGlvbgogICAKMjAwMS0wNS0xMSAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgICAgLSBhZGRlZCB1dGlsaXR5IGZ1bmN0aW9uIHNubXBfc3RyY2F0LCB3aGljaCBhcHBlbmRzIGEgc3RyaW5nIHRvIGEKICAgICAgIHJlbG9jYXRhYmxlIGJ1ZmZlcgogICAKMjAwMS0wNS0xMCAxMToyMCAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggYnVnICM0MjMxMDkgaW5jb3JyZWN0IGluZGV4IHBhcnNpbmcKICAgCjIwMDEtMDUtMDkgMTY6NDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBmaXggc25tcF9jbGllbnQuYzo1Njk6IHdhcm5pbmc6IGNvbnRyb2wgcmVhY2hlcyBlbmQgb2Ygbm9uLXZvaWQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMDkgMTI6MzYgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSbW9uLmgsIFJtb24vUkVBRE1FLCBSbW9uL2FndXRpbC5jCiwgUm1vbi9hZ3V0aWwuaCwgUm1vbi9hZ3V0aWxfYXBpLmgsIFJtb24vYWxhcm0uYwosIFJtb24vYWxhcm0uaCwgUm1vbi9ldmVudC5jLCBSbW9uL2V2ZW50LmgsCiAgIFJtb24vaGlzdG9yeS5jLCBSbW9uL2hpc3RvcnkuaCwgUm1vbi9yb3dfYXBpLmgsCiAgIFJtb24vcm93cy5jLCBSbW9uL3Jvd3MuaCwgUm1vbi9zdGF0aXN0aWNzLmMsCiAgIFJtb24vc3RhdGlzdGljcy5oLCBSbW9uL3Rlc3RfYWxhcm0uc2gsCiAgIFJtb24vdGVzdF9oaXN0LnNoOgoKICAgSW5jbHVkZSBBbGV4IFJvemluJ3MgUm1vbi4KICAgCjIwMDEtMDUtMDcgMTA6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oOgoKICAgQWRkZWQgYSBjb3VwbGUgb2YgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRpbmcgdmFyYmluZGxpc3RzOgogICAgIGludCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoc3RydWN0IHZhcmlhYmxlX2xpc3QgKm5ld3ZhciwgdV9jaGFyIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2NoYXIgKnZhbF9zdHIsIHNpemVfdCB2YWxfbGVuKTsKICAgICB2b2lkIHNubXBfcmVwbGFjZV92YXJfdHlwZXMoc3RydWN0IHZhcmlhYmxlX2xpc3QgKnZibCwgaW50IG9sZF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3X3R5cGUpOwogICAgIHZvaWQgc25tcF9yZXNldF92YXJfdHlwZXMoc3RydWN0IHZhcmlhYmxlX2xpc3QgKnZibCwgaW50IG5ld190eXBlKTsKICAgCjIwMDEtMDUtMDcgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIGRlZmluZSBTTk1QX01BTExPQ19UWVBFREVGKCkKICAgCjIwMDEtMDUtMDUgMDc6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICBmaXggc3RvcmVfIG5hbWU7IGRvbid0IGNhc3QgdG8gYXNueSB0eXBlIGlmIHBhcm0gZXhwZWN0aW5nIHVfY2hhcio7IGZpeCBfdmFyaWFibGVfb2lkCiAgIG5hbWluZzsgY2FzdCBwYXJtIDIgb2YgbWVtZHVwIHRvIHVfY2hhcioKICAgCjIwMDEtMDUtMDMgMTQ6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgICAtLSBtb3JlIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBwcm9ibGVtIGZvdW5kLgogICAKMjAwMS0wNS0wMyAxNDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXhlZCByYXV0aCBvZmZzZXQgaW5jcmVtZW50aW5nOiB3YXMgaW5jcmVtZW50aW5nIHRoZSBwb2ludGVyLCBub3QgdGhlIHZhbHVlLgogICAKMjAwMS0wNS0wMyAxMDowOCAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViLAogICBjb25maWd1cmUsIGx0bWFpbi5zaDoKCiAgIHVwZGF0ZWQgdG8gbGlidG9vbCAxLjQKICAgCjIwMDEtMDUtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcGtzbS5jOgoKICAgdXNlIHJlYWxsb2Mgcm91dGluZXMuCiAgIAoyMDAxLTA1LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggdmFyaWFibGUgZGVjbGFyYXRpb24uCiAgIAoyMDAxLTA1LTAxIDEzOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRG9uJ3QgcHJpbnQgaGV4IGZvciBzdHJpbmcgbGVuZ3RocyBsZXNzIHRoYW4gNC4gIFNob3VsZCBoYXZlIGRpZWQgYWdlcyBhZ28uCiAgIAoyMDAxLTA1LTAxIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaDoKCiAgIEZpeCBwcm90b3R5cGUgc28gaXRzIG5vdCBzdGF0aWMgKGl0IHNob3VsZG4ndCBiZSkuCiAgIAoyMDAxLTA1LTAxIDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgbWFrZSBST05MWSB2YXJpYWJsZXMgd3JpdGFibGUgKHdoaWNoIG1heSBvciBtYXkgbm90IHdvcmsuICBJJ20gYmV0dGluZyBub3QuKQogICAKMjAwMS0wNS0wMSAxMzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAxLTA1LTAxIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgYW4gcnBtIHN1YmRpcmVjdG9yeS4KICAgCjIwMDEtMDQtMjMgMjA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgYmlnIGNsZWFudXAgYW5kIG90aGVyIGZpeGVzIEkndmUgYWxyZWFkeSBmb3Jnb3R0ZW4gaW4gdGhlIGxhc3QgZmV3IG1pbnV0ZXMuCiAgIAoyMDAxLTA0LTIzIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIERvbid0IHdhbGsgb2ZmIGVuZCBvZiBtaWIgdHJlZSAoc2lnaCkuCiAgIAoyMDAxLTA0LTIzIDIwOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB0aGUgbWliIGluZm8gZGlzcGxheSBvcHRpb25zLgogICBzYXZlIHRoZW0gYXBwcm9wcmlhdGVseS4KICAgCjIwMDEtMDQtMjMgMTg6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbW9yZSBzYXZhYmxlIG9wdGlvbiBpdGVtcy4KICAgdXNlIERhdGE6OkR1bXBlciB0byBzYXZlIG1vc3Qgc3R1ZmYuCiAgIAoyMDAxLTA0LTIzIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIERvbid0IHNhdmUgc2Vzc2lvbiBvcHRpb25zIHR3aWNlLgogICBNYWtlIGNvbG9yIG9mIHdyaXRhYmxlIG9iamVjdHMgYSB2YXJpYWJsZS4KICAgCjIwMDEtMDQtMjMgMTc6MDggIGhhcmRha2VyCgogICAqIGxvY2FsLzogdGttaWIgKFY0LTItcGF0Y2hlcy4yKSwgdGttaWI6CgogICBmaXggd2FsayBwcm9ibGVtIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAxLTA0LTIzIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHJlZHVjZSBzY3JlZW4gcmVhbGVzdGF0ZSBhbGwgb3ZlciB0aGUgcGxhY2UKICAgCjIwMDEtMDQtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgdGVzdCBhZ2FpbnN0IHZlcnNpb24gNQogICAKMjAwMS0wNC0xOCAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5oLCBtaWJzL0xNLVNFTlNPUlMtTUlCLnR4dAosIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEFkZGVkIExNLVNFTlNPUlMtTUlCIHN1cHBvcnQgKGRpc2tpbyBleHRlbnNpb24pIGZyb20gTWFydGluIE9sZGZpZWxkCiAgIAoyMDAxLTA0LTE4IDA1OjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYWNraW5nIG9uIHNubXBfYWRkX3ZhciB0byBoYW5kbGUgbG9uZyB2YWx1ZXMKICAgCiAgICAgICAtIHVzZSBzbm1wX3toZXgsZGVjaW1hbH1fdG9fYmluYXJ5IGluc3RlYWQgb2YgaGV4X3RvX2JpbmFyeQogICAgICAgICBhbmQgYXNjaWlfdG9fYmluYXJ5OyB0aGVzZSBzaG91bGQgYmUgcmVtb3ZlZAogICAKICAgICAgIC0gZG9uJ3QgdXNlIHN0cnRvayBpbiBwcm9jZXNzaW5nIGJpdHN0cmluZ3MKICAgCjIwMDEtMDQtMTggMDQ6NTggIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gdXNlIHRoZSBnZW5lcmljIHNubXBfcmVhbGxvYyBmdW5jdGlvbiBpbiBhc25fcmVhbGxvYwogICAKMjAwMS0wNC0xOCAwMjo0MCAgamJwbgoKICAgKiBzbm1wbGliLzogdG9vbHMuYywgdG9vbHMuaDoKCiAgICAgLSBuZXcsIHJlYWxsb2NhdGluZyB1dGlsaXR5IGZ1bmN0aW9ucyBzbm1wX2hleF90b19iaW5hcnkgYW5kCiAgICAgICBzbm1wX2RlY2ltYWxfdG9fYmluYXJ5IHRvIGNvbnZlcnQgaGV4IGFuZCBkZWNpbWFsIHN0cmluZ3MgdG8gb2N0ZXQKICAgICAgIHN0cmluZ3MgcmVzcGVjdGl2ZWx5LgogICAKICAgICAtIG5ldyB1dGlsaXR5IGZ1bmN0aW9uIHNubXBfcmVhbGxvYyB0byBwZXJmb3JtIGJ1ZmZlciAocmUtKWFsbG9jYXRpb24KICAgCjIwMDEtMDQtMTIgMDU6MTIgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBfYWdlbnQuYzoKCiAgIEJldHRlciBmaXggZm9yIGJ1ZyAjNDE0ODU1IGZyb20gYXJhamVzaAogICBIYW5kbGVzIG5vbi1yZXBlYXRlcnM9MCBhcyB3ZWxsLCBhbmQgYXZvaWRzIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMDQtMTEgMTA6MDYgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmg6CgogICAgIC0gc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLCB3aGljaAogICAgICAgbm93IHRha2UgYW4gYWRkaXRpb25hbCBhcmd1bWVudCB0aGF0IG1heSBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQKICAgICAgIHJlYWxsb2NhdGlvbiBzaG91bGQgbm90IGJlIGRvbmUuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAogICAgIC0gZXh0ZW5kZWQgKGFuZCBjb3JyZWN0ZWQhKSBjb21tZW50YXJ5IG9uIGNvcnJlY3QgdXNhZ2Ugb2YgbmV3IEFQSS4KICAgCjIwMDEtMDQtMTEgMTA6MDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXAuYywgc25tcC5oOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgX3JlYWxsb2NfcmJ1aWxkIGZ1bmN0aW9ucy4KICAgCiAgICAgLSBvbGQgX3JidWlsZF92YXJfb3AgQVBJIGlzIGdvbmUuCiAgIAoyMDAxLTA0LTExIDEwOjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIHVzZSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTExIDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIF9yZWFsbG9jX3JidWlsZCBmdW5jdGlvbnMuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAoyMDAxLTA0LTExIDEwOjAyICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBhc25fcmVhbGxvY19yYnVpbGRfPHR5cGU+IGZ1bmN0aW9ucywgd2hpY2gKICAgICAgIG5vdyB0YWtlIGFuIGFkZGl0aW9uYWwgYXJndW1lbnQgdGhhdCBtYXkgYmUgdXNlZCB0byBpbmRpY2F0ZSB0aGF0CiAgICAgICByZWFsbG9jYXRpb24gc2hvdWxkIG5vdCBiZSBkb25lLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKICAgICAtIGFzbl9yZWFsbG9jKCkgZnVuY3Rpb24gY2hlY2tzIHdoZXRoZXIgaXQgaGFzIGJlZW4gcGFzc2VkIGEgTlVMTAogICAgICAgcG9pbnRlciBhbmQgdXNlcyBtYWxsb2MoKSBpbiB0aGF0IGNhc2UgKHRoYW5rcyB0byBNaWNoYWVsIFNsaWZjYWsKICAgICAgIGZvciBwb2ludGluZyBvdXQgdGhlIGRhbmdlciBoZXJlKS4KICAgCjIwMDEtMDQtMTEgMDY6MTMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEhhbmRsZSBHZXRCdWxrIHJlcXVlc3RzIHdpdGggbWF4LXJlcGV0aXRpb25zPTAgcHJvcGVybHkgKGJ1ZyAjNDE0ODU1KQogICAKMjAwMS0wNC0xMCAwNDo0NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgICAgLSBzZXQgU09fU05EQlVGIGFuZCBTT19SQ1ZCVUYgdG8gMTI4S2IgZm9yIG5ld2x5LW9wZW5lZCBVRFAgc29ja2V0cywKICAgICAgIHRvIGVuYWJsZSBsYXJnZSBQRFVzIHRvIGJlIHNlbnQgYW5kIHJlY2VpdmVkLiAgU29tZQogICAgICAgaW1wbGVtZW50YXRpb25zIGRlZmF1bHQgdmVyeSBsb3cgKFNvbGFyaXMgMi43IDhLYiwgTGludXggMi40CiAgICAgICA2NEtiKS4KICAgCjIwMDEtMDQtMDkgMTA6MDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gbW9kaWZpZWQgdXNtX3JnZW5lcmF0ZV9vdXRfbXNnKCkgdG8gbWFrZSB1c2Ugb2YgcmVhbGxvY2F0aW5nCiAgICAgICByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDEwOjAzICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5oOgoKICAgICAtIGFkZGl0aW9uYWwgcGFyYW1ldGVyIHRvIHVzbV9yZ2VuZXJhdGVfb3V0X21zZygpIHRvIGVuYWJsZSB1c2Ugb2YKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDA5OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9zZWNtb2QuaDoKCiAgICAgLSBhbGxvdyBhZGRpdGlvbmFsIHBhcmFtZXRlciBmb3Igb3V0Z29pbmcgcGFyYW1zIHRvIGVuYWJsZSB1c2Ugb2YKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIGVuY29kZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA0LTA5IDA5OjU1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBwcm90b3R5cGVzIGZvciByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zCiAgIAoyMDAxLTA0LTA5IDA5OjU0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb2RpZmllZCB0byB1c2UgcmVhbGxvY2F0aW5nIHJldmVyc2UgQVNOLjEgZW5jb2RlciBmdW5jdGlvbnMgaWYKICAgICAgIHVzaW5nIHJldmVyc2UgZW5jb2RpbmcgYXQgYWxsLgogICAKMjAwMS0wNC0wOSAwOTo0OSAgamJwbgoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgICAgLSBhZGQgbmV3IGZ1bmN0aW9uIHNubXBfcmVhbGxvY19yYnVpbGRfdmFyX29wKCkgd2hpY2ggdXNlcwogICAgICAgcmVhbGxvY2F0aW5nIHJldmVyc2UgQVNOLjEgZW5jb2RlciBmdW5jdGlvbnMgdG8gZW5jb2RlIHZhcmJpbmRzLgogICAKMjAwMS0wNC0wOSAwOTo0NyAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgICAgLSBwcm90b3R5cGUgZm9yIG5ldyBzdWl0ZSBvZiBmdW5jdGlvbnMgYXNuX3JlYWxsb2NfcmVidWlsZF88dHlwZT4sCiAgICAgICB3aGljaCBwZXJmb3JtIHJldmVyc2UgZW5jb2RpbmcgaW50byBhIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiB0aGVyZQogICAgICAgaXMgbm90IGVub3VnaCBzcGFjZSBmb3IgdGhlIGVuY29kaW5nLgogICAKICAgICAtIGNvbW1lbnRhcnkgb24gY29ycmVjdCB1c2FnZSBvZiBhYm92ZS4KICAgCjIwMDEtMDQtMDkgMDk6NDMgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gbmV3IHN1aXRlIG9mIGZ1bmN0aW9ucyBhc25fcmVhbGxvY19yZWJ1aWxkXzx0eXBlPiwgd2hpY2ggcGVyZm9ybQogICAgICAgcmV2ZXJzZSBlbmNvZGluZyBpbnRvIGEgYnVmZmVyIGFuZCBncm93IGl0IGlmIHRoZXJlIGlzIG5vdCBlbm91Z2gKICAgICAgIHNwYWNlIGZvciB0aGUgZW5jb2RpbmcuCiAgIAoyMDAxLTA0LTA2IDEyOjEyICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQsIENPUFlJTkcsIENoYW5nZUxvZywKICAgRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBORVdTLCBQT1JUSU5HLAogICBSRUFETUUsIFJFQURNRS5hZ2VudHgsIFJFQURNRS5zbm1wdjMsIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2RzX2FnZW50LmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsIGFwcHMvc25tcGRlbHRhLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGxvY2FsL01ha2VmaWxlLmluLCBsb2NhbC9taWIyYywgbG9jYWwvc25tcGNvbmYKLCBsb2NhbC90a21pYiwgbG9jYWwvd2VzcmVzdGFydCwgbWFuL3NubXBjbWQuMQosIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBtYW4vc25tcGRlbHRhLjEsCiAgIG1pYnMvcmZjbGlzdCwgbWlicy9yZmNtaWJzLmRpZmYsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy90ZXN0cy9UMTIwcHJveHlnZXQ6CgogICBtZXJnZTMgLT4gbWVyZ2U0LiAgSSBkb24ndCAqdGhpbmsqIEkgYnJva2UgYW55dGhpbmcuCiAgICAgLSBUaGUgbWFpbiBsaW5lIHNob3VsZCBub3cgY29udGFpbiBhbGwgdGhlIDQuMi4xIHBhdGNoZXMuCiAgICAgLSBJIG1heSBkb3VibGUgY2hlY2sgdGhpcyBhdCBhIGxhdGVyIGRhdGUuCiAgIAoyMDAxLTA0LTA1IDA2OjM3ICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDaGFuZ2UgJ0xpbmUnIHZhcmlhYmxlIG5hbWUsIHRvIGFzc2lzdCB3aXRoIE1hYyBwb3J0LgogICAKMjAwMS0wNC0wNSAwNjoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOgoKICAgSGFuZGxlIHNldHRpbmcgbnVsbCBzdHJpbmcgdmFsdWVzIHZpYSB0aGUgJ3Bhc3MnIG1lY2hhbmlzbS4gKFN1cHBvcnQjNDA2NzI4KQogICBBbHNvIGhhbmRsZSBlbWJlZGRlZCB3aGl0ZXNwYWNlIGluIHN1Y2ggdmFsdWVzLgogICBBbHNvIGFwcGxpZWQgdG8gJ3Bhc3NfcGVyc2lzdCcuCiAgIAoyMDAxLTA0LTA1IDA2OjA3ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywga2VybmVsLmMKLCBtaWJfbW9kdWxlcy5jLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaAosIHNubXBfdmFycy5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYywgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jCiwgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYywgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wNSAwNjowNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgRW5zdXJlIHRoYXQgY2hlY2tpbmcgZm9yICdzdGF0dmZzJyBpcyBkb25lIGNvbnNpc3RlbnRseQogICAKMjAwMS0wNC0wNSAwNjowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZW5zdXJlIHRoYXQgJ2V4ZWNfY29tbWFuZCcgaXMgdXNlZCBjb25zaXN0ZW50bHkgd2l0aCB0aGUgYXZhaWxhYmlsaXR5IG9mIGV4ZWN2CiAgIChBIGNsZWFuZXIgYXBwcm9hY2ggdGhhbiB0aGUgcHJldmlvdXMgcGF0Y2gpCiAgIAoyMDAxLTA0LTA1IDA2OjAxICBkdHMxMgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oOgoKICAgZml4IGZvciBhdXRvX25saXN0IGJvZ3VzIGRlZmluaXRpb25zIGZvciBtYWNoaW5lcyB3aXRob3V0IG5saXN0LgogICAKMjAwMS0wNC0wNSAwNDo1MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgLSBzYXZlIGEgc3RyY3B5KCkgYW5kIGFsbG93IGxvbmcgb2N0ZXQgc3RyaW5nIHZhbHVlcyB3aXRob3V0IGNyYXNoaW5nCiAgICAgICh0aG91Z2ggdGhlcmUgYXJlIHN0aWxsIHByb2JsZW1zIGR1ZSB0byB0aGUgbGliZXJhbCB1c2Ugb2YgZml4ZWQKICAgICAgc2l6ZSBidWZmZXJzIHdpdGggbm8gYm91bmRzIGNoZWNraW5nIGFsbCBvdmVyIHRoZSBwbGFjZS4gIFNpZ2gpLgogICAKMjAwMS0wNC0wNCAwNjo0NiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgIC0gY2FsbCBleHRlcm5hbCBzaWduYWwgaGFuZGxlcnMgYmVmb3JlIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpLAogICAgICByYXRoZXIgdGhhbiBhZnRlciBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSBidXQgYmVmb3JlIHNlbGVjdCgpLgogICAgICBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIHByb2JsZW0gdGhhdCBjb3VsZCBhcmlzZSBpZiBhIHNpZ25hbCBoYW5kbGVyCiAgICAgIGNsb3NlZCBhIHNlc3Npb24sIHdoaWNoIHdvdWxkIGNhdXNlIHNlbGVjdCgpIHRvIHJldHVybiAtMSB3aXRoCiAgICAgIEVCQURGLCBhbmQgdGh1cyB0ZXJtaW5hdGUgdGhlIGFnZW50LgogICAKMjAwMS0wNC0wMyAwOTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgRW5zdXJlIHRoYXQgdGhlICdleHRtcCcgY29tbWFuZCB2YXJpYWJsZSBpcyBhY2Nlc3NpYmxlIG9uIHN5c3RlbXMgd2l0aG91dCBFWEVDVi4KICAgCjIwMDEtMDQtMDMgMDk6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwOToyMiAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDk6MTUgIGR0czEyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYywgc25tcFRDUERvbWFpbi5oCiwgc25tcFVEUERvbWFpbi5jLCBzbm1wVW5peERvbWFpbi5jLAogICBzbm1wVW5peERvbWFpbi5oLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywKICAgc25tcF90cmFuc3BvcnQuYywgc25tcF90cmFuc3BvcnQuaCwgc3lzdGVtLmM6CgogICBLZWVwIG9uZSBvZiB0aGUgcGlja2llciBjb21waWxlcnMgKEhQJ3MgYUNDKSBoYXBweS4KICAgCjIwMDEtMDQtMDMgMDY6MzAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jOgoKICAgUGx1ZyBmaWxlLWRlc2NyaXB0b3IgbGVhayB3aGVuIHVzaW5nIGNhY2hlZCBkYXRhLiAgKEJ1ZyM0MTIwMDApCiAgIAoyMDAxLTA0LTAyIDEwOjExICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAtIGNoZWNrIGZvciBsaW1pdHMuaCBwcm9wZXJseQogICAKMjAwMS0wNC0wMiAxMDoxMCAgamJwbgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgICAtIG1pbm9yIHR5cGVmYWNlIGNoYW5nZXMKICAgCjIwMDEtMDMtMzEgMDY6MjcgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSB1cGRhdGUgZG9jdW1lbnRhdGlvbiBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyB0byByZWZsZWN0CiAgICAgIGN1cnJlbnQgYmVoYXZpb3VyCiAgIAogICAgICAgICoqIE5PVEU6IGN1cnJlbnRseSByZXR1cm5zIGNvbnRyb2wgdG8gdXNlciB3aGVuIGFuIGFsYXJtcyBydW5zICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICBUaGlzIG1heSBjaGFuZ2UgICAgICAgICAgICAgICAgICAgICAqKgogICAKMjAwMS0wMy0zMSAwNjoyNSAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zOgoKICAgIC0gZG9jdW1lbnQgdGhlIHNubXBfYWxhcm1fcmVnaXN0ZXJfaHIgZnVuY3Rpb24KICAgCiAgICAtIGV4cGFuZCB0aGUgTk9URVMgc2VjdGlvbiBkaXNjdXNzaW5nIHVzZSBvZiBTSUdBTFJNIChvciBub3QpCiAgIAoyMDAxLTAzLTMxIDA2OjE3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5IGFuZCBjYW5jZWwgYWxsCiAgICAgIGNhbGxiYWNrcyB3aGljaCBtYWtlIHJlZmVybmNlIHRvIHRoZSBBZ2VudFggc2Vzc2lvbi4KICAgCjIwMDEtMDMtMzEgMDY6MTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgIC0gRml4IG11bHRpcGxlIGZyZWUoKSBvZiBwYXJ0cyBvZiB0aGUgc3Vic2Vzc2lvbiBieSB6ZXJvaW5nIG91dAogICAgICBmaWVsZHMgdGhhdCB3ZSBkb24ndCB1c2UuCiAgIAogICAgLSBNYWtlIHVzZSBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbiB0byBzaHV0IGRvd24gQWdlbnRYIHNlc3Npb25zIGNsZWFubHkuCiAgIAoyMDAxLTAzLTMxIDA2OjEzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5LgogICAKMjAwMS0wMy0zMSAwNjoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBGaXggbWVtb3J5IGxlYWsgaW4gaGFuZGxlX29uZV92YXIgd2hlcmUgbG9uZyB2YXJiaW5kcyB3ZXJlbid0CiAgICAgIGNvcnJlY3RseSBmcmVlKClkLgogICAKICAgIC0gQ2hhbmdlIGJlaGF2aW91ciBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyBzbyB0aGF0IGFsYXJtcyBydW4KICAgICAgY29ycmVjdGx5LgogICAKICAgICAgICAqKiBOT1RFOiBjdXJyZW50bHkgcmV0dXJucyBjb250cm9sIHRvIHVzZXIgd2hlbiBhbiBhbGFybXMgcnVucyAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgKioKICAgCjIwMDEtMDMtMzEgMDY6MDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIC0gQ2hhbmdlZCBwYWNrZXQgaGFuZGxpbmcgb24gc3RyZWFtLWxpa2UgdHJhbnNwb3J0cyBzbyB0aGF0IGFsbAogICAgICBjb21wbGV0ZSByZWNlaXZlZCBwYWNrZXRzIGFyZSBwcm9jZXNzZWQ6CiAgIAogICAgICBfc2Vzc19yZWFkIGlzIHJlZmFjdG9yZWQgaW50byB0d28gZnVuY3Rpb25zOiBfc2Vzc19yZWFkIHJlbWFpbnMKICAgICAgcmVzcG9uc2libGUgZm9yIHJlYWRpbmcgZGF0YSBmcm9tIHRoZSB0cmFuc3BvcnQgbGF5ZXIsIGJ1dCB0aGVuCiAgICAgIGNhbGxzIChwZXJoYXBzIG1vcmUgdGhhbiBvbmNlKSBfc2Vzc19wcm9jZXNzX3BhY2tldCB0byBkaXNwYXRjaAogICAgICBlYWNoIHBhY2tldCByZWFkLgogICAKICAgIC0gVGhlIHByZXNlbmNlIG9mIGEgc2Vzc2lvbiB3aXRoIGEgYnVmZmVyZWQgcGFydGlhbCBwYWNrZXQgbm8gbG9uZ2VyCiAgICAgIGNhdXNlcyBzbm1wX3NlbGVjdF9pbmZvIHRvIHJldHVybiB3aXRoIGEgdGltZW91dCBvZiB6ZXJvLgogICAKICAgIC0gRnJlZSB0aGUgc3Vic2Vzc2lvbnMgb2YgYSBzZXNzaW9uIHdoZW4gZG9pbmcgYW4gc25tcF9zZXNzX2Nsb3NlOwogICAgICB0aGlzIGZpeGVzIGFuIEFnZW50WCBtZW1vcnkgbGVhayB3aGVuIHN1YmFnZW50cyBjb21lIGFuZCBnby4KICAgCiAgICAtIFBlcmZvcm0gY2FsbGJhY2tzIHdpdGggYW4gb3BlcmF0aW9uIGFyZ3VtZW50IG9mCiAgICAgIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB3aGVuIHlvdSBnZXQgYSB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uLgogICAKMjAwMS0wMy0zMSAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICBNYWRlIHRyYW5zcG9ydCBkb21haW4gY29uc3QKICAgCjIwMDEtMDMtMzEgMDU6NTUgIGpicG4KCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgRml4IG1lbW9yeSBsZWFrIHRoYXQgY2FuIG9jY3VyIHdoZW4gZGVyZWdpc3RlcmluZyBjYWxsYmFja3MKICAgCjIwMDEtMDMtMzAgMDg6MDUgIGhhcmRha2VyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBmaWxlIFJFQURNRS5hZ2VudHggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0yOSAyMTo0MyAgaGFyZGFrZXIKCiAgICogSVNTVUVTIChWNC0yLXBhdGNoZXMuMSksIElTU1VFUzoKCiAgIHJtIElTU1VFUwogICAKMjAwMS0wMy0yOSAwODoyMSAgc2xpZgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC86IGxpYnNubXAuZGVmIChWNC0yLXBhdGNoZXMuMyksIGxpYnNubXAuZGVmCjoKCiAgIEFkZCB2YWNtX2lzX2NvbmZpZ3VyZWQuCiAgIAoyMDAxLTAzLTI4IDA2OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jLCBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNjowMCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTozNiAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MDYgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAtIHJlbmFtZSBjYWxsYmFjayBvcGVyYXRpb25zIHRvIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+CiAgICAtIGFkZCBuZXcgb3BlcmF0aW9ucyBTTk1QX0NBTExCQUNLX09QX0NPTk5FQ1QsIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVAogICAgLSBhZGQgbGVnYWN5IGRlZmluaXRpb25zIGZvciBSRUNFSVZFRF9NRVNTQUdFLCBUSU1FRF9PVVQsIFNFTkRfRkFJTEVECiAgIAoyMDAxLTAzLTI3IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVPYmplY3RzVGFibGUuYywKICAgbXRlVHJpZ2dlclRhYmxlLmM6CgogICBjaGFuZ2UgZnByaW50ZiAtPiBzbm1wX2xvZy4KICAgRG9uJ3QgYWxsb3cgbW9kaWZpY2F0aW9ucyBvZiByZWFkLW9ubHkgcm93cyBpbiBtdGVPYmplY3RzVGFibGUuCiAgIAoyMDAxLTAzLTI3IDEwOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGRzX2FnZW50LmgsIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYwosIG1pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuaCwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmgsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYzoKCiAgIFN1cHBvcnQgZm9yIG5ldyBmZWF0dXJlcyBpbiB0aGUgRElTTUFOLUVWRU5ULU1JQiBjb2RlOgogICAgIE5ldyBzbm1wZC5jb25mIHRva2VuczoKICAgICAgLSBtb25pdG9yIFstbyBvaWQuLi5dIFstdSB1c2VyXSBvaWQgWyg9fCE9fDw9fC4uLikgVkFMVUVdLgogICAgICAtIGRlZmF1bHRNb25pdG9ycyB5ZXMKICAgCjIwMDEtMDMtMjcgMTA6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBNb3ZlZCAqIGZyb20gYmVnaW5uaW5nIG9mIHJvdXRpbmUgdG8gdGhlIHNhbWUgbGluZSBhcyB0aGUgcmV0dXJuCiAgIHZhcmlhYmxlIGRlY2xhcmF0aW9uLiAgV2FzIGNhdXNpbmcgZXRhZ3MgZ3JpZWYgdGhlIG90aGVyIHdheS4KICAgCjIwMDEtMDMtMjcgMTA6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluOiB1c2UgJXMgaW5zdGVhZCBvZiBAcyBmb3Igc2VhcmNoL3JlcGxhY2UgZGVsaW1pdGVycy4KICAgCjIwMDEtMDMtMjcgMTA6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9sb2cgd2l0aCAlcyB0byBwcmV2ZW50ICUgZXhwYW5zaW9uIGluIG9jdGV0IHN0cmluZ3MgY29udGFpbmluZyBhICVzLgogICB0cmFwX2ZtdF9mcmVlIG5lZWRzICgpcy4KICAgCjIwMDEtMDMtMjcgMDg6MTMgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYwo6CgogICBIYW5kbGUgbm9uLXJlc3BvbnNpdmUgQWdlbnRYIHN1Yi1hZ2VudHMgbW9yZSByb2J1c3RseS4KICAgICAgKEJhc2VkIG9uIHN1Z2dlc3Rpb25zIGZyb20gSGFycmllIEhhemV3aW5rZWwgJiBQYXVsIFJhc211c3NlbikKICAgCjIwMDEtMDMtMjcgMDg6MDMgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEF2b2lkIGRvdWJsZS1mcmVlaW5nIG9mIGNhY2hlZCBhZGRyZXNzIHN0cmluZ3MuCiAgICAgIChKb2huJ3MgaW1wcm92ZW1lbnQgdG8gbXkgc3VnZ2VzdGVkIGZpeCkuCiAgIAoyMDAxLTAzLTI3IDAyOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIFJlc2V0IGNvdW50IG9mIGF1dGhvcml6ZWQgcGVlcnMgb24gY2xvc2Vkb3duLiAgKFRoYW5rcyB0byBWbGFkIFR1bmlrKQogICAKMjAwMS0wMy0yNiAxODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZhY20uaAogICAoVjQtMi1wYXRjaGVzLlsxLDIsMV0pLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oOgoKICAgRml4ZWQgdmFjbSB0byBkcm9wIHYxL3YyYyBwYWNrZXRzIHByb3Blcmx5IHdoZW4gbm8gY29tMnNlYyBlbnRyaWVzIGFyZSBmb3VuZC4KICAgCjIwMDEtMDMtMjYgMTE6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogaXBmLW1vZC5wbCAoVjQtMi1wYXRjaGVzLjEpLCBpcGYtbW9kLnBsOgoKICAgYWRkIHVzYWdlIGNvbW1lbnQgYXQgdG9wCiAgIAoyMDAxLTAzLTIyIDA3OjU1ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgQVNOX09DVEVUX1NUUiByYXRoZXIgdGhhbiB0aGUgaGlzdG9yaWMgQVNOX0JJVF9TVFIgZm9yICdiJyBvYmplY3QgdmFsdWVzCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcy4KICAgCjIwMDEtMDMtMjIgMDc6NDYgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jIChWNC0yLXBhdGNoZXMuMyksIGFnZW50X3RyYXAuYzoKCiAgIEZpeCBmb3IgbWlub3IgbWVtb3J5IGxlYWsgd2l0aCB0cmFwLXJlbGF0ZWQgdmFyYmluZCB2YWx1ZXMuCiAgIFRoYW5rcyB0byBKb2huIFZpbGxhbG92b3MgKGFuZCB0aGUgSW50ZWwgU05NUCB0ZWFtKQogICAKMjAwMS0wMy0yMSAxNzozMCAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEF2b2lkIGNyYXNoIGluIHNubXBfc2h1dGRvd24gb24gcGxhdGZvcm1zIHRoYXQgY2hlY2sgcG9pbnRlciB2YWxpZGl0eQogICBpbiBmcmVlKDMpLCBlLmcuIEZyZWVCU0QuCiAgIAoyMDAxLTAzLTIxIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYwosIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgY29weV9ud29yZCBjcmVhdGVkIHRoYXQgY2hlY2tzIGJ1ZmZlciBsZW5ndGhzLgogICBNYWRlIGV2ZXJ5dGhpbmcgdXNlIGl0LgogICAKMjAwMS0wMy0yMSAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wa3NtLmM6CgogICBLU00gcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluCiAgIAoyMDAxLTAzLTIwIDA5OjEzICBqYnBuCgogICAqIGFnZW50Ly5jdnNpZ25vcmU6CgogICBJZ25vcmUgUHVyaWZ5IGFuZCBORlMgc3R1ZmYKICAgCjIwMDEtMDMtMTYgMTA6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgYWRkZWQgTUlUX05FV19DUllQVE8gKGZvciBrc20pIGRlZmluaXRpb24gd2hpY2ggd2FzIG1pc3NpbmcKICAgCjIwMDEtMDMtMTYgMDI6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IHJpZGljdWxvdXMgbWVtb3J5IGxlYWsgaW4gZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgIAoyMDAxLTAzLTE1IDExOjA0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXA6CgogICB3aG9vcHMuICBNaXNzZWQgYSBtZXJnZSBjb25mbGljdCBsaW5lCiAgIAoyMDAxLTAzLTE1IDEwOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIFJFQURNRS53aW4zMiwgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgbWFuL3NubXAuY29uZi41LmRlZiwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXB0cmFwZC44CiwgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQsIG1pYnMvTVRBLU1JQi50eHQsCiAgIG1pYnMvTWFrZWZpbGUubWliLCBtaWJzL1JFQURNRS5taWJzLAogICBtaWJzL1RVTk5FTC1NSUIudHh0LCBtaWJzL2lhbmFsaXN0LCBtaWJzL21pYmZldGNoCiwgbWlicy9yZmNsaXN0LCBtaWJzL3JmY21pYnMuZGlmZiwgbWlicy9zbWlzdHJpcAosIHBlcmwvU05NUC9TTk1QLnhzLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYwosIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmgsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc3lzdGVtLmgsIHRlc3RpbmcvZXZhbF90b29scy5zaCwKICAgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXAsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwCiwgd2luMzIvY29uZmlnLmgsIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIG1lcmdlIGZyb20gcGF0Y2hlcyBicmFuY2g6IG1lcmdlMi0+My4KICAgCjIwMDEtMDMtMTUgMTA6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oOgoKICAgZXh0cmEgbWVtYmVycyBmb3IgZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgIAoyMDAxLTAzLTE1IDA3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIHJ1biBzaWduYWwgaGFuZGxlcnMgZWFybGllcgogICAKMjAwMS0wMy0xNCAxNDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmggKFY0LTItcGF0Y2hlcy4yKSwgYWdlbnRfdHJhcC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDogbWFrZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGEgcHVibGljIGZuLgogICAKMjAwMS0wMy0xNCAxMjoxNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBVc2UgY29uZmlnLmgsIGRvbid0IHVzZSB1Y2Qtc25tcCBkaXJlY3RvcnkgdG8gYnVpbGQgaW4gdGhlIG1pYmdyb3VwIHRyZWUuCiAgIAoyMDAxLTAzLTE0IDExOjA1ICBzbGlmCgogICAqIHRlc3RpbmcvOiBNYWtlZmlsZS5pbiwgUlVOVEVTVFMsIFRFU1RDT05GLnNoCiwgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2g6CgogICBtZXJnZSB0aGUgdGVzdCBzY3JpcHQgY2hhbmdlcyBtYWRlIGluIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoLgogICAKMjAwMS0wMy0xNCAxMDo1NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBDaGFuZ2UgdG8gZGlzY29udGludWl0eSBwcm9jZXNzaW5nIHRvIHN0b3AgaXQgcmV0dXJuaW5nIFRSVUUgYWxsIHRoZQogICB0aW1lCiAgIAoyMDAxLTAzLTE0IDEwOjUyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgICAtIHJvdWdoIHN0YWIgYXQgZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgICAtIGJhaWwgb3V0IG9mIGdldE5leHQtdHlwZSBsb29wcyBvbiBhIGJhZFR5cGUgY29uZGl0aW9uCiAgIAoyMDAxLTAzLTE0IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUua3JiNToKCiAgIGtlcmJlcm9zIFJFQURNRSBmaWxlIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0xNCAxMDoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIEdldCByZXR1cm5lZCAqdmFyX2xlbiByaWdodCBmb3IgbXRlVHJpZ2dlckRlbHRhRGlzY29udGludWl0eUlECiAgIAoyMDAxLTAzLTE0IDEwOjE5ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwosIGFwcHMvc25tcHZhY20uYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgcGF0Y2ggc3VibWl0dGVkIGJ5IEhhcnJpZSBIYXpld2lua2VsIHRvIHF1aWV0IHNvbWUgd2FybmluZ3MuCiAgIAoyMDAxLTAzLTE0IDEwOjE5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBrc20uYywKICAgc25tcGxpYi9zbm1wa3NtLmg6CgogICBLU00gcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluLgogICAKMjAwMS0wMy0xNCAwNTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY0LTItcGF0Y2hlcy41KSwgaHJfc3dydW4uYwo6CgogICBGaXggTGludXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgKHJlcG9ydGVkIGJ5IE9saXZlciBG54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteepq2dlcikKICAgCjIwMDEtMDMtMTQgMDU6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmU6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAxLTAzLTE0IDAyOjIwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IG10ZVRyaWdnZXJUYWJsZS5jLAogICBtdGVUcmlnZ2VyVGFibGUuaDoKCiAgICAtIHNhdmUgb3JpZ2luYWwgUERVJ3MgdHJhbnNwb3J0IGRvbWFpbiAtLSBuZWNlc3NhcnkgZm9yCiAgICAgIGNvbW11bml0eSBzdHJpbmcgcHJvY2Vzc2luZwogICAKICAgICAgQ0FVVElPTjogaW5jb21wYXRpYmxlIGNoYW5nZSBpbiBmb3JtYXQgb2YgbXRlVHJpZ2dlclRhYmxlCiAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gZW50cnkKICAgCiAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiBtdGVfcnVuX3RyaWdnZXIgYnkgcmVsZWFzaW5nIFBEVXMKICAgCiAgICAtIHNlbmQgImJhZCB0eXBlIiBub3RpZmljYXRpb25zIGluIHNvbWUgY2FzZXMKICAgCiAgICAtIG90aGVyIG1pbm9yIG1lbW9yeSBsZWFrcwogICAKICAgIC0gImRlbHRhIiBzYW1wbGVUeXBlIGhhbmRsZWQgZm9yIGJvb2xlYW4gdHJpZ2dlcnMKICAgCiAgICAtIG1vcmUgIlhYWDoiIGNvbW1lbnRzIQogICAKMjAwMS0wMy0xMyAxMzo1MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBzdXBwb3J0IGZvciBJbnRlZ2VyMzIKICAgCjIwMDEtMDMtMTEgMDg6NDMgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfdHJhbnNwb3J0LmMsIHNubXBfdHJhbnNwb3J0Lmg6CgogICBBZGQgYSBmdW5jdGlvbiB0byB0ZXN0IHdoZXRoZXIgYW4gT0lEIGNvcnJlc3BvbmRzIHRvIGEgc3VwcG9ydGVkIHRyYW5zcG9ydAogICBkb21haW4uCiAgIAoyMDAxLTAzLTExIDA3OjU1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5oOgoKICAgQWRkICNpbmNsdWRlcyB0byBtYWtlIHN0cnVjdCBzb2NrYWRkcl9pbiBjb21wbGV0ZQogICAKMjAwMS0wMy0xMSAwNzo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmg6CgogICBSZW1vdmUgc3B1cmlvdXMgI2luY2x1ZGUKICAgCjIwMDEtMDMtMDkgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgRml4IHJ3dXNlciAtcyBtb2RlbCB0byBhY3R1YWxseSB3b3JrLgogICAKMjAwMS0wMy0wOSAwNTo1MiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgIFNldCBhIFBEVSdzIG9wYXF1ZSBkYXRhIG9uIGEgdGNwX3JlY3Y7IHRoaXMgaXNuJ3QgbmVjZXNzYXJ5IHRvIHNlbmQKICAgcmVwbGllcyAoYmVjYXVzZSB0aGUgdW5kZXJseWluZyBzb2NrZXQgaXMgc3Ryb25nbHkgY29ubmVjdGVkKSBidXQgaWYKICAgeW91IGRvbid0IGRvIHRoaXMgdGhlbiB5b3UgY2FuJ3QgZG8gImNvbTJzZWMiIHR5cGUgcHJvY2Vzc2luZyBmb3IgUERVcwogICByZWNlaXZlZCBvbiBUQ1Agc2Vzc2lvbnMuLi4gaW50ZXJlc3RpbmcuCiAgIAoyMDAxLTAzLTA5IDAzOjMzICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGJhZCBhc3N1bXB0aW9uIHRoYXQgY29tbXVuaXR5IHN0cmluZyBpcyB6ZXJvLXRlcm1pbmF0ZWQKICAgCjIwMDEtMDMtMDggMTU6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIGNvcnJlY3QgdmVyc2lvbiBzdGF0ZW1lbnRzIHRvIGluZGljYXRlIG5ldC1zbm1wLgogICAtIHJlbW92ZSBteSBuYW1lIGFzIGF1dGhvciAoSSdtIGNlcnRhaW5seSBub3QgdGhlIG9ubHkgb25lKQogICAtIGFkZCB3ZWIgYWRkcmVzcy4KICAgCjIwMDEtMDMtMDggMTU6MzEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gQWRkZWQgS2VuIEhvcm5zdGVpbidzIG5hbWUgdG8gY29udHJpYnV0ZXJzIGxpc3QuCiAgIC0gUmVtb3ZlZCBtaW5lIGZyb20gYmVpbmcgbGlzdGVkIHNlcGFyYXRlbHkuCiAgIAoyMDAxLTAzLTA4IDE0OjUxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIHNubXBsaWIvc25tcGtzbS5jLAogICBzbm1wbGliL3NubXBrc20uaDoKCiAgIEFkZGVkIGEga2VyYmVyb3MgYmFzZWQgc2VjdXJpdHkgbW9kdWxlIChrc20pLgogICAgIEhvd2V2ZXIsIE5lZWRzIGxpYnJhcmllcyAoLWxrcmI1IC1sY29tX2Vycikgbm90IGJlaW5nIGNoZWNrZWQgZm9yIGN1cnJlbnRseS4KICAgCjIwMDEtMDMtMDggMTQ6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFdob29wcy4gIFNob3VsZG50IGhhdmUgYSBuZWdhdGlvbiBzaWduIG9uIHRoZSBtb3N0IHJlY2VudCBjaGVja2luLgogICAKMjAwMS0wMy0wOCAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSWYgTk9fUFJPQkUgaXMgc2V0LCBkb24ndCBkbyBhbnkgcG9zdCBwcm9iaW5nIGFjdGl2aXRpZXMgZWl0aGVyIGxpa2UKICAgdGltZSB1cGRhdGluZyBhbmQgdXNlciBjcmVhdGlvbi4KICAgCjIwMDEtMDMtMDggMDg6MTQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgUmVtb3ZlIHN0cmR1cCgpcyBvbiBzb21lIHNlc3Npb24gcGFyYW1ldGVycyB3aGljaCBjYXVzZSBtZW1vcnkgbGVha3MKICAgKHNpbmNlIHNubXBfb3BlbiBkZWVwIGNvcGllcyB0aGUgaW5wdXQgc2Vzc2lvbiBhbnl3YXkpCiAgIAoyMDAxLTAzLTA4IDA4OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmM6CgogICBNYWtlIHN1cmUgc2VzcyBmaWVsZCBvZiBuZXcgZW50cmllcyBpcyBpbml0aWFsaXNlZCB0byBOVUxMLgogICAKMjAwMS0wMy0wOCAwNzo0OSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICBNYWtlIGNvbmZpZyB0b2tlbiBwYXJzZXIgdXBkYXRlIHRpbWVzdGFtcCBvbiBlbnRyeSBpdCBjcmVhdGVzOwogICBtb3ZlIHVwZGF0ZV90aW1lc3RhbXAgZnVuY3Rpb24uCiAgIAoyMDAxLTAzLTA3IDA3OjQ1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUsIFNOTVAucG0sIFNOTVAueHM6CgogICBQYXRjaCBmcm9tIEthcmwgU2NoaWxrZSB0byByZW1vdmUgdW5uZWVkZWQgdGltZXN0YW1wIHN1cHBvcnQKICAgCjIwMDEtMDMtMDYgMjA6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jLCBzbm1wX3NlY21vZC5jCiwgc25tcF9zZWNtb2QuaCwgc25tcHVzbS5jOgoKICAgc2VjbW9kIHN0cnVjdCBzeW1ib2wgbmFtZSBjaGFuZ2VzIHRvIHNvbWV0aGluZyBtb3JlIGludGVsbGlnaWJsZS4KICAgCjIwMDEtMDMtMDYgMTY6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSBzZXQgdGhlIGRlZmF1bHQgcGR1IHNlY3VyaXR5IG1vZGVsIHRvIFNOTVBfREVGQVVMVF9TRUNNT0RFTCAobm90IDApLgogICAtIGRvbid0IGZvcmNlIHRoZSBzZWN1cml0eSBtb2RlbCBvZiB0aGUgc2Vzc2lvbiBvbiB0aGUgcGR1IGlmIGFscmVhZHkgc2V0LgogICAKMjAwMS0wMy0wNiAxNjoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBob3BlZnVsbHkgZml4IHRvIGFsbG93IG90aGVyIChyZWdpc3RlcmVkKSBzZWN1cml0eSBtb2RlbHMgdG8gYmUgdXNlZC4KICAgCjIwMDEtMDMtMDYgMDk6MjMgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIEpvaG4gTmF5bG9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgCjIwMDEtMDMtMDYgMDk6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX3NlY21vZC5oOgoKICAgQ3JlYXRlIGEgbmV3IHNlY21vZCBjYWxsYmFjayB3aGVuIGEgdGltZW91dCBvbiBhIHBkdSBvY2N1cnMuCiAgIAoyMDAxLTAzLTA2IDA5OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHByb3Blcmx5IGluc3RhbGwgc2VjbW9kIGhlYWRlciBsaXN0LgogICAKMjAwMS0wMy0wNiAwODo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICAtIGJ1ZyBmaXhlcyBmb3Igc2VjbW9kIHJlbGF0ZWQgc3R1ZmYgKGl0IGNvbXBpbGVzIG5vdyAob3BwcykpLgogICAKMjAwMS0wMy0wNiAwODozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfc2VjbW9kLmg6CgogICAtIHR3byBuZXcgc2VjbW9kIGNhbGxiYWNrcyBmb3IgZnJlZWluZyBhIHBkdSBhbmQgYSBzZXNzaW9uLgogICAtIG1vdmUgdHJhbnNwb3J0IGNsb3NpbmcgaW4gc25tcF9zZXNzX2Nsb3NlKCkgdG8gYWZ0ZXIgcGVuZGluZwogICAgIHJlcXVlc3RzIGFyZSBmcmVlZC9jbG9zZWQgaW4gY2FzZSBzb21ldGhpbmcgbmVlZHMgdG8gbWFrZSB1c2Ugb2YgdGhlCiAgICAgdHJhbnNwb3J0IGJlZm9yZSBpdCBjbG9zZXMuCiAgIAoyMDAxLTAzLTA2IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIFBhc3MgaW4gcGR1IHRvIHNlY21vZCBlbmNvZGUvZGVjb2RlIHJvdXRpbmVzLgogICAKMjAwMS0wMy0wNiAwMzozNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBNb2RpZmllZCBmdW5jdGlvbiBJbnRlcmZhY2VfSW5kZXhfQnlfTmFtZSAoU29sYXJpcyBzcGVjaWZpYykgdG8gY29wZSBtb3JlCiAgIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzIG9mIGludGVyZmFjZXMuICBBbHNvIHN0b3BzIFB1cmlmeSBvbiBTb2xhcmlzCiAgIGNvbXBsYWluaW5nIGFib3V0IHVuaW5pdGlhbGlzZWQgbWVtb3J5IHJlYWRzLgogICAKMjAwMS0wMy0wNSAxNjozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmV2ZXJzZSBjYWxsYmFjayBvcmRlcmluZyBvZiBub3JtYWwgY2FsbGJhY2svc2VjbW9kIGNhbGxiYWNrCiAgIHByb2Nlc3NpbmcgaW4gc2Vzc19jb3B5KCkuCiAgIAoyMDAxLTAzLTA1IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmM6CgogICByZW1vdmUgdW51c2VkIGZyZWUgZnVuY3Rpb24gY2FsbHMgZm9yIHNlY3VyaXR5IG1vZHVsZSB1bnJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAzLTA1IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9zZWNtb2QuaDoKCiAgIG1pbm9yIEFQSSBjaGFuZ2VzIHRvIHRoZSBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kZWwgaGFuZGxpbmcuCiAgIAoyMDAxLTAzLTA1IDE2OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwcm9wZXJseSByZXNwZWN0IHRoZSBET05UX1BST0JFX0ZMQUcuCiAgIAoyMDAxLTAzLTA1IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9zZWNtb2QuaAo6CgogICBhZGQgYSBzZXNzaW9uIHBvaW50ZXIgdG8gdGhlIHYzIGJ1aWxkIHJvdXRpbmVzLgogICAKMjAwMS0wMy0wNSAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICBBZGQgYSBrcmI1IHNwZWNpZmljIGVycm9yIGNvZGUuCiAgIAoyMDAxLTAzLTA1IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIHByb3Blcmx5IGhhbmRsZSBwbHVnZ2FibGUgc2VjdXJpdHkgbW9kdWxlcwogICAKMjAwMS0wMy0wNSAxNDo0OSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSBta2RpciBzbm1wbGliIGJlZm9yZSBjcmVhdGluZyBhIGZpbGUgaW4gaXQKICAgCjIwMDEtMDMtMDUgMTQ6NDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcmVzcGVjdCBub24tbG9jYWwgc3JjZGlycyBmb3IgdHJhbnNwb3J0L3NlY21vZHMKICAgCjIwMDEtMDMtMDUgMTA6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfaW5kZXguYywKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnQvbWliX21vZHVsZXMuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYwosIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBzbm1wbGliLy5jdnNpZ25vcmUsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgc3VwcG9ydCBmb3IgcGx1Z2dhYmxlIHNlY3VyaXR5IG1vZGVscy4gIEN1cnJlbnRseSBvbmx5IHRoZSBVU00gaXMKICAgYXZhaWxhYmxlLCBidXQgYSBuZXcga2VyYmVyb3MgYmFzZWQgc2VjdXJpdHkgbW9kZWwgd2lsbCBiZSBhdmFpbGFibGUKICAgc2hvcnRseS4gIFRoZXNlIGNoYW5nZXMgc2ltcGx5IG1ha2UgaXQgcG9zc2libGUgdG8gdXNlIG1vcmUgdGhhbiBvbmUKICAgc2VjdXJpdHkgc2VydmljZS4KICAgCjIwMDEtMDMtMDUgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX3NlY21vZC5jLCBzbm1wX3NlY21vZC5oOgoKICAgQWRkZWQgSm9obiBOYXlsb24gdG8gdGhlIGF1dGhvcnMgbGlzdC4KICAgCjIwMDEtMDMtMDUgMTA6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9lbnVtLmg6CgogICBDb21tZW50IHJlLWFycmFuZ2luZyB0byBhY3R1YWxseSBiZSBuZWFyIHRoZSBmdW5jdGlvbnMgdGhleSdyZSBkZXNjcmliaW5nLgogICAKMjAwMS0wMy0wNSAwNjoxMCAgamJwbgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgTW9kaWZpZWQgZ2V0X215YWRkcigpIGZ1bmN0aW9uIHRvIGNvcGUgbW9yZSBncmFjZWZ1bGx5IHdpdGggbGFyZ2UgbnVtYmVycwogICBvZiBpbnRlcmZhY2VzLCBhbmQgd2l0aCB0aGUgcG9zc2liaWxpdHkgb2Ygbm9uLUlQdjQgYWRkcmVzc2VzIG9uIHNvbWUKICAgaW50ZXJmYWNlcy4gIEFsc28gc3RvcHMgUHVyaWZ5IG9uIFNvbGFyaXMgY29tcGxhaW5pbmcgYWJvdXQgdW5pbml0aWFsaXNlZAogICBtZW1vcnkgcmVhZHMuICBVc2UgIm9mZmljaWFsIiBkZWZpbml0aW9uIG9mIElOQUREUl9MT09QQkFDSy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL1JFQURNRS5taWJzOgoKICAgZmlsZSBSRUFETUUubWlicyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9pYW5hbGlzdDoKCiAgIGZpbGUgaWFuYWxpc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIGZpbGUgcmZjbGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAzIDE0OjM0ICBuYmEKCiAgICogbWlicy9yZmNtaWJzLmRpZmY6CgogICBmaWxlIHJmY21pYnMuZGlmZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTAzLTAxIDE5OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wX2FwaS5jOgoKICAgRml4IHNubXBfb2lkX2NvbXBhcmUgYW5kIHJldmVyc2UgZW5jb2RpbmdzIHRvIGRlYWwgd2l0aCBudW1iZXJzID4gMl4zMS4KICAgCjIwMDEtMDItMjggMjM6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLAogICBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gaW1wbGVtZW50ZWQgc25tcF9jb25maWcoY2hhciAqbGluZSkgdG8gcGFyc2UgYSAuY29uZiBjb25maWd1cmF0aW9uCiAgICAgbGluZSBhdCBhbnkgdGltZSBpbiB0aGUgY29kZSAoaGFuZGxlcnMgbXVzdCBiZSByZWdpc3RlcmVkIGJlZm9yZSBoYW5kKS4KICAgLSBpbXBsZW1lbnRlZCBzbm1wX2NvbmZpZ19yZW1lbWJlcihjaGFyICpsaW5lKSB0byBtZW1vcml6ZSBpdCBmb3IKICAgICBsYXRlciB1c2UuCiAgIC0gcmVhZF9jb25maWdzLCBldCBhbCwgd2lsbCBhdXRvbWF0aWNhbGx5IGNhbGwgdGhlbSBhZnRlciByZWFkaW5nCiAgICAgZXZlcnl0aGluZyBlbHNlLgogICAtIEFkZGVkIGEgLVkgZmxhZyB0byBzbm1wX3BhcnNlX2FyZ3MgdG8gc3RvcmUgcmVhZCBjb25maWcgZGlyZWN0aXZlcwogICAgIGZvciBsYXRlciB1c2UsIHRodXMgYWxsb3dpbmcgeW91IHRvIHNwZWNpZnkgLmNvbmYgZGlyZWN0aXZlcyBvbiB0aGUKICAgICBjb21tYW5kIGxpbmUuCiAgIAoyMDAxLTAyLTI3IDA3OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEF2b2lkIGluZmluaXRlIGxvb3Agd2l0aCBBZ2VudFggc3ViYWdlbnRzIGFuZCBWQUNNIGNoZWNraW5nIGludGVyYWN0aW9uLgogICAoRml4IHByb3ZpZGVkIGJ5IEZyYW5rIFN0cmF1c3MpCiAgIAoyMDAxLTAyLTIxIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogdWNkLXNubXAtaW5jbHVkZXMuaCAoVjQtMi1wYXRjaGVzLjEpLAogICB1Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzODA1IGZyb20gYmNvbGxhcjogYWRkIHN5cy90aW1lLmggdG8gdWNkLXNubXAtaW5jbHVkZXMuaAogICAKMjAwMS0wMi0yMSAxNToxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGludDY0LmMgKFY0LTItcGF0Y2hlcy4yKSwgaW50NjQuYzoKCiAgIGZpeCBidWcgIzEzMzQxNiAodTY0U3VidHJhY3Rpb24gbWF0aCkgYXMgc3VnZ2VzdGVkIGJ5IHRoZSBzdWJtaXR0b3IKICAgCjIwMDEtMDItMTYgMTU6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogdmFyX3N0cnVjdC5oIChWNC0yLXBhdGNoZXMuMSksIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gaW5jcmVhc2UgVUNEX1JFR0lTVFJZX09JRF9NQVhfTEVOIHRvIDEyOCBhdCBGcmFuaydzIHJlcXVlc3QKICAgCjIwMDEtMDItMTYgMDQ6MTYgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgQ2hhbmdlIGJlaGF2aW91ciBvbiBjeWd3aW4gdG8gZXhjbHVkZSBVbml4IGRvbWFpbiB0cmFuc3BvcnRzIGJ5IGRlZmF1bHQKICAgb24gY3lnd2luLCBhbmQgYWxzbyBmaXggYSBtaW5vciBidWcsIHRoYW5rcyB0byBzdWdnZXN0aW9ucyBieSBQZXRlciBGb2xrLgogICAKMjAwMS0wMi0xNCAxODoxNCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXB0cmFwZC5jOgoKICAgcmVtb3ZlZCB1bnVzZWQgc25tcF9hbGFybS5oIGluY2x1ZGUKICAgCjIwMDEtMDItMTIgMTQ6MTEgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBhZGRlZCBLYXJsJ3MgcGF0Y2ggZm9yIHVzZW51bWVyaWMKICAgCjIwMDEtMDItMTIgMTM6NTQgIG1hcnoKCiAgICogcGVybC9TTk1QLzogTUFOSUZFU1QsIFNOTVAucG0sIFNOTVAueHMsCiAgIGV4YW1wbGVzL3RyYXAtZXhhbXBsZS5wbDoKCiAgIGFkZGVkIHRyYXAgcmVjZXB0aW9uIEFQSSBmcm9tIFBoaWxpcCBQcmluZGV2aWxsZSA8cGhpbGlwcEBjaXNjby5jb20+CiAgIAoyMDAxLTAyLTExIDA4OjIzICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBVc2Ugc25tcF9hZGQgbm90IHNubXBfc2Vzc19hZGQgKHRoZSBsYXR0ZXIgZG9lc24ndCBhZGQgYSBzZXNzaW9uIHRvCiAgIHRoZSBTZXNzaW9uIGxpc3QsIGFuZCBpdCB0aGVyZWZvcmUgd29uJ3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBzZWxlY3QoKQogICBmZHNldCwgaGVuY2Ugc25tcHRyYXBkIHdpbGwgbmV2ZXIgcmVjZWl2ZSB2ZXJ5IG11Y2gpLgogICAKMjAwMS0wMi0xMSAwODoyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBpbXByb3Blcmx5LXRlcm1pbmF0ZWQgbGlzdCBpbiBjb20yc2VjIGhhbmRsaW5nLgogICAKMjAwMS0wMi0xMSAwNzo0NSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgQ2xlYW4gdXAgbWVyZ2UgKD4+Pj4+PiwgPT09PT09IGV0Yy4gbGVmdCBiZWhpbmQpLgogICAKMjAwMS0wMi0xMCAwOToyNiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdHlwby4KICAgCjIwMDEtMDItMTAgMDk6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMsIG1hc3Rlcl9hZG1pbi5jLAogICBzdWJhZ2VudC5jOgoKICAgTWVtb3J5IGxlYWsgcGF0Y2hlcyAoc291cmNlZm9yZ2UgcGF0Y2ggIzEwMzYwNSkuCiAgIFJlbW92ZSBhIGZldyBzdHJkdXAoKXMsIGFuZCBjYWxsIGZyZWVfYWdlbnRfc25tcF9zZXNzaW9uKCkgcmF0aGVyIHRoYW4KICAgZnJlZSgpIGluIHN1YmFnZW50LmM6aGFuZGxlX2FnZW50eF9wYWNrZXQoKSBmb3IgQUdFTlRYX01TR19SRVNQT05TRQogICBhbmQgZGVmYXVsdCBjYXNlcywgdG8gZW5zdXJlIGZyZWUoKWluZyBvZiBjbG9uZWQgUERVIGFsbG9jYXRlZCBieQogICBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KICAgCjIwMDEtMDItMTAgMDc6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wQUFMNVBWQ0RvbWFpbi5jLCBzbm1wQUFMNVBWQ0RvbWFpbi5oLAogICBzbm1wSVBYRG9tYWluLmMsIHNubXBJUFhEb21haW4uaCwgc25tcFRDUERvbWFpbi5jCiwgc25tcFRDUERvbWFpbi5oLCBzbm1wVURQRG9tYWluLmMsCiAgIHNubXBVRFBEb21haW4uaCwgc25tcFVuaXhEb21haW4uYywgc25tcFVuaXhEb21haW4uaAosIHNubXBfdHJhbnNwb3J0LmMsIHNubXBfdHJhbnNwb3J0Lmg6CgogICBXaG9vcHMuICBGb3Jnb3QgdGhlIG5ldyBmaWxlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHBsdWdnYWJsZSB0cmFuc3BvcnQgc3R1ZmYuCiAgIAoyMDAxLTAyLTA5IDExOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBldmVudC1taWIuaCwgbXRlT2JqZWN0c1RhYmxlLmMKLCBtdGVPYmplY3RzVGFibGUuaCwgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYywgbXRlVHJpZ2dlclRhYmxlLmMsCiAgIG10ZVRyaWdnZXJUYWJsZS5oLCBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYzoKCiAgIEltcGxlbWVudGVkIGFuZCBtYWRlIHVzZSBvZiBtdGVPYmplY3RzVGFibGUgdG8gc2VuZCBhZGRpdGlvbmFsIG9iamVjdHMgb3V0IHdpdGggdHJhcHMgZ2VuZXJhdGVkLiAgQWxzbywgZG9uJ3QgcmV0dXJuIGRhdGEgZm9yIG1pc2MgdGFibGVzIHdoZW4gdGhhdCB0cmlnZ2VyIGlzbid0IGRlZmluZWQgdG8gdXNlIHRoYXQgdGVzdCB0eXBlLgogICAKMjAwMS0wMi0wOSAxMToxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBkLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTM6IGZpeCBtZW1vcnkgbGVhayBpbiBzbm1wZCBwb3J0IHNwZWNpZmljYXRpb24gLT4gZGVmYXVsdF9zdG9yZS4KICAgCjIwMDEtMDItMDkgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliX21vZHVsZXMuYyAoVjQtMi1wYXRjaGVzLjIpLCBtaWJfbW9kdWxlcy5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEyOiBmaXggbWVtb3J5IGxlYWsgaW4gbWliX21vZHVsZSBpbml0IGNvZGUKICAgCjIwMDEtMDItMDkgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAoVjQtMi1wYXRjaGVzLjEpLCBhZ2VudF9yZWdpc3RyeS5jCjoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMTogZml4IG1lbW9yeSBsZWFrIGZvciBkdXBsaWNhdGUgb2lkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAyLTA5IDExOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLCBwcm94eS5jCiAgIChWNC0yLXBhdGNoZXMuWzEsNF0pLCBtZW1vcnlfZnJlZWJzZDIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzcwMjogZml4IHN3YXAgcmVwb3J0aW5nIG9uIGZyZWVic2QgNC4yCiAgIAoyMDAxLTAyLTA5IDEwOjEyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FsYXJtLmgsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgQXBwbGllZCBwYXRjaCAxMDM1MTA6IGRvbWFpbiB0cmFuc3BvcnQgaW5kZXBlbmRlbmNlLiAgTm90ZTogVHJhcHMvVkFDTSBicm9rZW4uCiAgIAoyMDAxLTAyLTA5IDA4OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsCiAgIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0CiwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsLCBUMDIwc25tcHYzZ2V0LAogICBUMDIxc25tcHYzZ2V0bmV4dCwgVDAyMnNubXB2M2dldE1ENSwKICAgVDAyM3NubXB2M2dldE1ENURFUywgVDAyNHNubXB2M2dldFNIQTEsCiAgIFQwMjVzbm1wdjNnZXRTSEFERVMsIFQwMjhzbm1wdjNnZXRmYWlsLAogICBUMDMwc25tcHYzdXNlcmNyZWF0aW9uLCBUMDUzYWdlbnR2MXRyYXAsCiAgIFQwNTRhZ2VudHYyY3RyYXAsIFQwNTVhZ2VudHYxbWludHJhcCwKICAgVDA1NmFnZW50djJjbWludHJhcCwgVDA1OGFnZW50YXV0aHRyYXAsIFQxMDBhZ2VudGh1cAosIFQxMTBhZ2VudHhnZXQsIFQxMTFhZ2VudHhzZXQsIFQxMTJhZ2VudHhzZXRmYWlsCiwgVDExM2FnZW50eHRyYXAsIFQxMjBwcm94eWdldCwgVDEyMXByb3h5c2V0CiwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIHVwZGF0ZWQgbW9zdCB0ZXN0cyB0byB1c2UgbnVtZXJpYyBPSURzIHNvIGFzIHRvIG5vdCByZWx5IG9uIG1pYiBwYXJzaW5nCiAgIAoyMDAxLTAyLTA5IDA3OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmg6CgogICByZW1vdmUgdW51c2VkIHByb3RvdHlwZTogZ2V0X2FnZW50eF90cmFuc0lECiAgIAoyMDAxLTAyLTA4IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiwgbG9jYWwvdHJhcHRvZW1haWwsCiAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIHRyYXB0b2VtYWlsIHBlcmwgc2NyaXB0IGNyZWF0ZWQgYXMgYW4gZXhhbXBsZSB0cmFwaGFuZGxlIHNjcmlwdAogICAKMjAwMS0wMi0wOCAxNDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmgsIGFwcHMvc25tcGRlbHRhLmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB2YWNtLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGxvY2FsL21pYjJjLCBtYW4vc25tcGNtZC4xLCBtaWJzL1JNT04tTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBwZXJsL1NOTVAvU05NUC5wbSwKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBNZXJnZSBmcm9tIFY0LTItcGF0Y2hlczogbWVyZ2UgMS0+MgogICAKMjAwMS0wMS0zMCAxNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMgKFY0LTItcGF0Y2hlcy4xKSwgZGlzay5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNDE0OiBmaXggZGlzayBpbmZvIGZvciBibG9jayBzaXplcyBvdGhlciB0aGFuIDEwMjQuCiAgIAoyMDAxLTAxLTMwIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICB1c2Ugc25tcF9lbnVtJ3MgcHJvcGVybHkgKHN0cmR1cCgpIHRoZSBzdHJpbmdzIGZpcnN0KQogICAKMjAwMS0wMS0zMCAxMzoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfZW51bS5jLCBzbm1wX2VudW0uaDoKCiAgIHByb3BlciBjb25zdG5lc3MgZm9yIHNvbWUgb2YgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cy4KICAgCjIwMDEtMDEtMzAgMTM6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBidWcgSSBqdXN0IGludHJvZHVjZWQgKHJldHVybmluZyBwcm9wZXIgc2F2ZXRvIHBvaW50ZXIpCiAgIAoyMDAxLTAxLTMwIDEzOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gc25tcHNldHMgYXJlIHN1cHBvcnRlZAogICAgIC0gQSBuZXcgInNldCIgYnV0dG9uIGhhcyBiZWVuIGFkZGVkIHRvIHBlcmZvcm0gc2V0cyBvbiBhbiBvaWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiBhIHRhYmxlIGFyZSBub3cgYnV0dG9ucyB0aGF0IGJyaW5nIHVwIHRoZQogICAgICAgc2V0IHdpbmRvdyB3aXRoIHRoZSBjdXJyZW50IHZhbHVlIGluc3RhdGVkLgogICAgIC0gQWxsIHdyaXRhYmxlIG9iamVjdHMgaW4gdGhlIG91dHB1dCBvZiBzbm1we2dldCx3YWxrLGdldG5leHR9CiAgICAgICBidXR0b25zIGFyZSBkaXNwbGF5ZWQgYXMgYmx1ZSBhbmQgYXJlIGNsaWNrYWJsZSB0byBjaGFuZ2UgdGhlaXIKICAgICAgIHZhbHVlcy4KICAgLSBzZXR0aW5ncyBjb25maWd1cmVkIHZpYSB0aGUgb3B0aW9ucyBtZW51IGNhbiBub3cgYmUgc2F2ZWQuCiAgIC0gdXNlIEdldG9wdDo6U3RkIG5vdy4KICAgLSBzdXBwb3J0cyBtb3N0IG9mIHRoZSBpbXBvcnRhbnQgc25tcGNtZCgxKSBmbGFncyBmb3Igc2Vzc2lvbiBzZXR1cC4KICAgCjIwMDEtMDEtMzAgMTM6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oLAogICBtdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMsIG10ZVRyaWdnZXJCb29sZWFuVGFibGUuaCwKICAgbXRlVHJpZ2dlckRlbHRhVGFibGUuYywgbXRlVHJpZ2dlckRlbHRhVGFibGUuaCwKICAgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMsIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oLAogICBtdGVUcmlnZ2VyVGFibGUuYywgbXRlVHJpZ2dlclRhYmxlLmgsCiAgIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jLCBtdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuaDoKCiAgIEluaXRpYWwgKG5vdC1jb21wbGV0ZSkgaW1wbGVtZW50YXRpb24gb2YgdGhlIERJU01BTi1FVkVOVC1NSUI6CiAgICAgLSBJbXBsZW1lbnRzIGFsbCAzIHRlc3RzIChib29sZWFuLCB0aHJlc2hvbGQgYW5kIGV4aXN0ZW5jZSkuCiAgICAgLSBub3Qgcmlnb3JvdXNseSB0ZXN0ZWQuCiAgICAgLSBDdXJyZW50bHkgb25seSBzdXBwb3J0cyBxdWVyeWluZyB0aGUgbG9jYWwgYWdlbnQKICAgICAgIChtdGVUcmlnZ2VyVGFyZ2V0VGFnIG11c3QgYmUgJycpLgogICAgIC0gQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgc2VuZGluZyB0cmFwcyBhbmQgdGhlIG10ZU9iamVjdHNUYWJsZSBpcwogICAgICAgbm90IGltcGxlbWVudGVkIChteSBuZXh0IHRvZG8gaXRlbSkKICAgICAtIE9ubHkgdGhlIGRlZmF1bHQgdHJhcHMgYXJlIHNlbnQuICBUaGUgbXRlRXZlbnQqIG9iamVjdHMgaGF2ZW4ndAogICAgICAgYmVlbiBpbXBsZW1lbnRlZCAobm8gc2VsZi1kZWZpbmVkIHRyYXBzL3NldHMpLgogICAgIC0gbm8gZWFzeSB0byB1c2UgY29uZmlndXJhdGlvbiB5ZXQgKHNvb24pLgogICAgIC0gY29uZmlndXJlIHdpdGggLS13aXRoLW1pYi1tb2R1bGVzPWRpc21hbi9ldmVudC1taWIKICAgCjIwMDEtMDEtMzAgMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFVzZSBtZW1jcHkgaW5zdGVhZCBvZiBzcHJpbnRmIGZvciBzdHJpbmdzIHRoYXQgbWF5IG5vdCBiZSBudWxsIHRlcm1pbmF0ZWQuCiAgIAoyMDAxLTAxLTMwIDEyOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgSW1wbGVtZW50ZWQgZ2V0X2N1cnJlbnRfYWdlbnRfc2Vzc2lvbigpIGFuZCBzZXRfY3VycmVudF9hZ2VudF9zZXNzaW9uKCk6CiAgICAgLSBUaGVzZSBhbGxvdyBhIG1pYiBtb2R1bGUgdG8gcmV0cmlldmUgdGhlIGN1cnJlbnQKICAgICAgIGFnZW50X3NubXBfc2Vzc2lvbiBwb2ludGVyIGZvciB0aGUgY3VycmVudCB0cmFuc2FjdGlvbi4KICAgICAtIFRoaXMgc2hvdWxkIHByb2JhYmx5IGRvbmUgZGlmZmVyZW50bHkgbGF0ZXIgd2hlbiB3ZSBjaGFuZ2UgdGhlIG1pYgogICAgICAgbW9kdWxlIGFwaS4KICAgICAtIFRoaXMgd2lsbCBjb21wbGV0ZWx5IGZhaWwgdG8gd29yayBwcm9wZXJseSBpbiBhIG11bHRpLXRocmVhZGVkCiAgICAgICBhZ2VudCAod2hpY2ggd2UgY3VycmVudGx5IGRvbid0IHN1cHBvcnQgYW55d2F5KS4KICAgCjIwMDEtMDEtMjkgMTE6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIGRlYnVnZ2luZyBzdGF0ZW1lbnQgYXQgaW5pdGlhbGl6YXRpb24gdGltZS4KICAgCjIwMDEtMDEtMjkgMTE6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHByb3Blcmx5IG1hbGxvYyBhIDEgYnl0ZSwgTlVMTCBjaGFyYWN0ZXIgc3RyaW5nIGZvciAiIiByZWFkIHN0cmluZ3MuCiAgIAoyMDAxLTAxLTI5IDExOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICBkYXRhIHNlcGVyYXRpb24gYW5kIG5ldyBmdW5jdGlvbnM6CiAgICAgaGVhZGVyX2NvbXBsZXhfZ2V0X2Zyb21fb2lkKCkKICAgICBoZWFkZXJfY29tcGxleF9hZGRfZGF0YV9ieV9vaWQoKQogICAKMjAwMS0wMS0xMiAwODoyMiAgaGFyZGFrZXIKCiAgICogbWlicy9ESVNNQU4tRVZFTlQtTUlCLnR4dDoKCiAgIC0gRElTTUFOLUVWRU5ULU1JQiBhZGRlZCB0byBtaWIgcmVwb3NpdG9yeS4gKE9yLCBndWVzcyB3aGF0IEkgZGlkIGR1cmluZyBhIDYgaG91ciBwbGFuZSBmbGlnaHQ/KQogICAKMjAwMS0wMS0xMiAwODoxNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBzdXBwb3J0IGJpdCBzdHJpbmdzCiAgIAoyMDAxLTAxLTEyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wX2FwaS5jOgoKICAgLSBiaXRfc3RyaW5nIGZpeGVzCiAgIC0gbWFrZSBzbm1wX2FkZF92YXIgY2FsbCBzbm1wX3BhcnNlX29pZCgpIGluc3RlYWQgb2YgcmVhZF9vYmppZCgpLgogICAKMjAwMS0wMS0xMiAwNzo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBuZXcgZGF0YSB0eXBlcyBzdXBwb3J0ZWQgZm9yIHJlYWRfY29uZmlnIHJvdXRpbmVzOiB1bnNpZ25lZCwgYml0X3N0ci4KICAgCjIwMDEtMDEtMTIgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy4zKSwgYXNuMS5jOgoKICAgY29tbWVudCBvdXQgcmVhbGx5IG9kZCAoYW5kIGJyb2tlbikgY2hlY2sgZnJvbSBhc25fYml0c3RyaW5nX2NoZWNrPz8/CiAgIAoyMDAxLTAxLTEyIDA3OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG1vdmUgY29uZmlnIHN0cmluZyBpbml0aWFsaXplciBhYm92ZSBzdWJhZ2VudCBjaGVjayBzbyBpdHMga25vd24gZXZlbgogICBpZiBub3QgdXNlZC4KICAgCjIwMDEtMDEtMTIgMDc6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuc3RvcmFnZS5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mCiAgIChWNC0yLXBhdGNoZXMuWzEsMV0pLCBtaWIyYy5zdG9yYWdlLmNvbmYsCiAgIG1pYjJjLnZhcnR5cGVzLmNvbmY6CgogICAtIG1pc2MgYnVnIGZpeGVzLgogICAtIG5ldyBkYXRhIHR5cGVzICh1aW50MzIsIHVuc2lnbmVkLCBiaXRzKS4KICAgCjIwMDEtMDEtMDkgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgZHNfYWdlbnQuaCwgdmFyX3N0cnVjdC5oLCBtaWJncm91cC9taWJpbmNsLmgsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaAo6CgogICBTdWJBZ2VudCBwaW5nIHN1cHBvcnQ6CiAgICAgLSBhZ2VudHhQaW5nSW50ZXJ2YWwgc3BlY2lmaWVzIFNFQ09ORFMgYmV0d2VlbiB3aGVuIHRoZSBzdWJhZ2VudAogICAgICAgdHJpZXMgdG8gcGluZyB0aGUgbWFzdGVyIGFnZW50LgogICAgIC0gaWYgbm8gcmVzcG9uc2UgaXMgcmVjZWl2ZWQsIGl0IHRyaWVzIHRvIHJlY29ubmVjdC4KICAgICAtIGZhaWxpbmcgdGhhdCBpdCB0cmllcyBldmVyeSBTRUNPTkRTIGFnYWluIHRpbGwgaXQgc3VjY2VlZHMuCiAgICAgLSByZS1yZWdpc3RlcnMgaXRzIG9pZCdzIGJhc2VkIG9uIHRoZSBjdXJyZW50IHN1YnRyZWUgbGlzdC4KICAgICAgIC0gbWF5IG5lZWQgc29tZSB0aG91Z2h0LiAgQXNzdW1lcyAqYWxsKiBuZWVkIHRvIGJlIHJlLXJlZ2lzdGVyZWQuCiAgICAgICAtIG5lZWRzIHRvIHJlLXJlZ2lzdGVyIHN5c29ydGFibGUgZW50cmllcyB0b28sIGJ1dCBkb2Vzbid0LgogICAgIC0gY3VycmVudGx5IHNlZy1mYXVsdHMgb24gYWJvdXQgdGhlIDItNHRoIHRpbWUgb3Igc28uICBOb3Qgc3VyZSB3aHkuCiAgICAgLSBTaG91bGQgbWFrZSBEYXZlIHNtaWxlIG9yIGNyaW5nZSBvciBnaWdnbGUsIG5vdCBzdXJlIHdoaWNoLgogICAKMjAwMS0wMS0wOSAxNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMsIGNhbGxiYWNrLmg6CgogICBBbGxvdyBkZXJlZ2lzdGVyaW5nIG9mIGNhbGxiYWNrcwogICAKMjAwMS0wMS0wOSAwNjoyMCAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcG5ldHN0YXQvOiBzbm1wbmV0c3RhdC5kc3AgKFY0LTItcGF0Y2hlcy4xKSwKICAgc25tcG5ldHN0YXQuZHNwOgoKICAgYWRkZWQgZ2V0b3B0LmMgdG8gbGlzdAogICAKMjAwMS0wMS0wNCAxNjo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfZW51bS5jLCBzbm1wX2VudW0uaDoKCiAgIC0gZ2VuZXJpYyBzbm1wIGVudW0gbGlzdCBzdXBwb3J0LiAgTm90IHVzZWQgYW55d2hlcmUgKHlldCkuCiAgIAoyMDAxLTAxLTA0IDE2OjQzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgKLCBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2FnZW50X3RyYXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jYWxsYmFjay5jLAogICBzbm1wbGliL2NhbGxiYWNrLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAsIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcAosIHRlc3RpbmcvdGVzdHMvVDA1NWFnZW50djFtaW50cmFwLAogICB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAsCiAgIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICAtIG1lcmdlZCBwYXRjaGVzIGZyb20gVjQtMi1wYXRjaGVzIGJyYW5jaCB0byBtYWluIGJyYW5jaC4KICAgCjIwMDEtMDEtMDQgMTA6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYsIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmMKOgoKICAgLSBhZGRlZCBuZXcgcHJpbnRIZXhUZXh0IHNubXAuY29uZiB0b2tlbi4KICAgLSBkb2N1bWVudGVkIC1PVCwgYW5kIHRoZSB0b2tlbi4KICAgCjIwMDEtMDEtMDQgMTA6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jOgoKICAgUGF0Y2ggIzEwMzA5MSBhcHBsaWVkOgogICAgIC0gQWRkZWQgLU9UIG9wdGlvbiB0byB2aWV3IGhleCBzdHJpbmdzIHdpdGggdGV4dCBpbiB0aGVtLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXA6CgogICBmaWxlIFQwNTVhZ2VudHYxbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXA6CgogICBmaWxlIFQwNTZhZ2VudHYyY21pbnRyYXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMC0xMi0yMiAwNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBmaXggdmlldyBwcm9jZXNzaW5nIHRvIHdhdGNoIGZvciBsZW5ndGggcHJlZml4LiAgVGhlIGxlbmd0aCBwcmVmaXgKICAgcmVhbGx5IHJlYWxseSBzaG91bGRuJ3QgYmUgc3RvcmVkIGRpcmVjdGx5IGluIHRoZSBvaWQuICBOaWVscz8KICAgCjIwMDAtMTItMTkgMDc6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBtYWtlIGluaXRfc25tcHYzKCkgZGVhbCB3aXRoIGEgTlVMTCBhcmd1bWVudCBwcm9wZXJseS4KICAgCjIwMDAtMTItMTggMTQ6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogcmVtb3ZlIHBhc3N0ZXN0IGZyb20gdGhlIC5jdnNpZ25vcmUgZmlsZSAoYnVnICMxMjY5NCkKICAgCjIwMDAtMTItMTggMTA6NDUgIG1hcnoKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtOgoKICAgbWlub3IgZG9jIGZpeAogICAKMjAwMC0xMi0xNCAxMzo0NiAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIHN5c3RlbS5jOiBmaXggdXB0aW1lIGZvciA2NC1iaXQgU29sYXJpcwogICAKMjAwMC0xMi0xNCAxMzo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBzdHVwaWQgc3BlbGxpbmcgZXJyb3IKICAgCjIwMDAtMTItMTMgMjE6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSBkbG1vZC5jOiBmaXggY29uZnVzaW9uIGJldHdlZW4gaW50LCBzaXplX3QsIGxvbmcgZm9yIDY0LWJpdCBjb21waWxlcy4KICAgCjIwMDAtMTItMTMgMDg6NDAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogYWRkIHNubXBjb25mLjEKICAgCjIwMDAtMTItMDggMTQ6NDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmM6CgogICAtIHZhY21fdmFycy5jLCB2YWNtLmM6IGluZGV4aW5nIG9mIHZhY21WaWV3VHJlZUZhbWlseUVudHJ5IHdhcyBob3NlZCwgYXNzdW1pbmcKICAgCXRoYXQgdGhlIFN1YnRyZWUgaW5kZXggaGFkIGFuIElNUExJRUQgYXR0cmlidXRlLgogICAKMjAwMC0xMi0wOCAxNDo0NiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jOgoKICAgLSBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jOiBmaXggc29tZSB6ZXJvIGluZGV4IHZhbHVlcy4KICAgCjIwMDAtMTItMDggMTQ6NDMgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gc25tcF92YXJzLmM6IGZpeCByZXR1cm5zIG9mIHplcm9Eb3RaZXJvIChzdWNoIGFzIGlmU3BlY2lmaWMpCiAgIAoyMDAwLTEyLTA4IDE0OjM4ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLSBhZ2VudF90cmFwZC5jOiBzZWN1cml0eSBtb2RlbCB2YWx1ZXMgYXJlIG5vdCB0aGUgc2FtZSBpcyBzbm1wIHZlcnNpb24gdmFsdWVzCiAgIAoyMDAwLTEyLTA2IDE0OjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmM6IExpbnV4IGtlcm5lbCAyLjAueCBoYXMgbm8gQVJQSFJEX0hJUFBJCiAgIAoyMDAwLTEyLTA1IDA3OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogRml4IHJzbm1wJ3MgL3Vzci9sb2NhbCBoYXJkY29kZWQgcGF0aC4KICAgCjIwMDAtMTItMDQgMTc6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMmFnZW50eHNldGZhaWw6CgogICAtIChUMTEyYWdlbnR4c2V0ZmFpbCk6IGZpeAogICAKMjAwMC0xMi0wNCAxNjozMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMiApCiAgIAoyMDAwLTEyLTA0IDE2OjMwICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUuCiAgIAoyMDAwLTEyLTA0IDE1OjMwICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUU6CgogICAtIChORVdTLCBSRUFETUUpOiB1cGRhdGVzLgogICAKMjAwMC0xMi0wNCAxNDo0OCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC54cywgdC9taWJsb2FkLnQKLCB0L3N0YXJ0YWdlbnQucGw6CgogICBlbnN1cmUgbWlibG9hZC50IHVzZXMgY29ycmVjdCBNSUJESVIgZm9yIHRlc3RpbmcKICAgCjIwMDAtMTItMDQgMTE6MDUgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dCwgRkFRLCBSRUFETUU6CgogICAtIChBR0VOVC50eHQsIEZBUSwgUkVBRE1FKTogY29udmVydCB1cmwncyB0byB3d3cubmV0c25tcC5vcmcuCiAgIAoyMDAwLTEyLTA0IDA4OjQ1ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGFnZW50eCBub3RlIGNoYW5nZXMuCiAgIAoyMDAwLTEyLTAzIDA3OjI5ICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44LCBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gc25tcHRyYXBkX2xvZy5jOiBmb3ggbWlzc2luZyBsZWFkaW5nIHplcm9lcyBmb3IgJS4yZCBsaWtlIGZvcm1hdHMuCiAgIAlBZGQgYW4gYWx0ZXJuYXRlIGZvcm1hdCBmb3IgdXAtdGltZSBkaXNwbGF5cy4KICAgCjIwMDAtMTItMDIgMTg6MjIgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54cywgdC9idWxrd2Fsay50LAogICB0L25vdGlmeS50LCB0L3Nlc3Npb24udDoKCiAgIGZvdW5kIHRoZSB1bmluaXRpYWxpemVkIGRhdGEgYnVnLi4ubXVzdCBoYXZlIGJlZW4gaW4gdGhlcmUgZG9ybWFudCBmb3IgYSB3aGlsZSwgb3RoZXIgdGVzdCBmaXhlcyAtIGdvb2QgdG8gZ28hCiAgIAoyMDAwLTEyLTAxIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYyk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KICAgCjIwMDAtMTItMDEgMTY6MzUgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIC0gKEFHRU5ULnR4dCk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KICAgCjIwMDAtMTItMDEgMTY6MzQgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogcmVmZXJlbmNlIG5ldC1zbm1wLWNvZGVycy4KICAgCjIwMDAtMTItMDEgMTY6MzQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHVwZGF0ZS4KICAgCjIwMDAtMTItMDEgMTY6MzMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtIChidWctcmVwb3J0LCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnKTogcmVtb3ZlIHRoZSBidWcgcmVwb3J0IHNjcmlwdC4KICAgCjIwMDAtMTItMDEgMTY6MzEgIGhhcmRha2VyCgogICAqIFBPUlRJTkc6CgogICAtIChQT1JUSU5HKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgogICAKMjAwMC0xMi0wMSAxNjoyMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSAobWFuL3NubXB0cmFwZC5jb25mLjUuZGVmKTogbWVudGlvbiB0aGUgZmFjdCB0aGF0IHNubXB2MyB0cmFwcyBhcmUKICAgICB0aGUgc2FtZSBhcyBzbm1wdjIgdHJhcHMuCiAgIAoyMDAwLTEyLTAxIDE2OjIzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZS4KICAgCjIwMDAtMTItMDEgMTU6MzEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHVwZGF0ZS4KICAgCjIwMDAtMTItMDEgMTU6MTYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IHVwZGF0ZSBmb3IgcHJveHkgc3VwcG9ydC4KICAgCjIwMDAtMTItMDEgMTQ6MzYgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHVwZGF0ZSBhIGZldyB0aGluZ3MuCiAgIAoyMDAwLTEyLTAxIDE0OjI4ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGRpYWdub3NlIHdyb25nIHF1b3RpbmcgaW4gaW5kaWNlcwogICAKMjAwMC0xMi0wMSAxNDoyMyAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogYWRkIFJGQy0xMjEzIGFzIGFuIGFsaWFzZSBmb3IgUkZDMTIxMy1NSUIgKHVzZWQgaW4gbWFueSBtaWJzKQogICAKMjAwMC0xMi0wMSAxNDoxOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSBzbXV4LmM6IHJlZm9ybWF0IHNvbWUgZGVidWcgbWVzc2FnZXMgZm9yIHJlYWRhYmlsaXR5CiAgIAoyMDAwLTEyLTAxIDE0OjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmM6IGZpeCBpZlR5cGUgdmFsdWVzIGZvciBMaW51eAogICAKMjAwMC0xMi0wMSAxNDoxNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSBzdWJhZ2VudC5jOiBzdXBwbHkgYSBtaXNzaW5nIHJldHVybiB2YWx1ZQogICAKMjAwMC0xMi0wMSAxMDowNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHF1b3RlIHRoaW5ncyB3aXRoIHNwYWNlcyBpbiB0aGVtLgogICAKMjAwMC0xMi0wMSAwOTo0OSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjb25mLjE6CgogICAtIChzbm1wY29uZi4xKTogcXVpY2sgbWFuIHBhZ2UgZm9yIHNubXBjb25mLgogICAKMjAwMC0xMi0wMSAwOToxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoc25tcGxpYi9wYXJzZS5jKTogY2hhbmdlIG5vLXBhcmVudCBsb2cgbWVzc2FnZSBpbnRvIGEgd2FybmluZy4KICAgCjIwMDAtMTItMDEgMDk6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHgpOiB1cGRhdGUgZnJvbSBEYXZlLgogICAKMjAwMC0xMi0wMSAwOToxMCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZS4KICAgCjIwMDAtMTItMDEgMDc6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gKGFnZW50L2FnZW50X3RyYXAuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBzdXBwb3J0IHYyLT52MSB0cmFwIGNvbnZlcnNpb24uCiAgIAoyMDAwLTEyLTAxIDA3OjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdHlwby4KICAgCjIwMDAtMTItMDEgMDc6NDIgIG1hcnoKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMLCBwZXJsL1NOTVAvU05NUC54cywKICAgcGVybC9TTk1QL3Qvbm90aWZ5LnQsIHNubXBsaWIvbWliLmM6CgogICBhZGRpdGlvbmFsIGZpeGVzIHRvIHN1cHBvcnQgdGFyZ2V0dGVkIGJ1aWxkcyBvZiBwZXJsL1NOTVAgdXNpbmcgLU5FVC1TTk1QLVBBVEggKGFuZCB3aGl0ZSBzcGFjZSByZW1vdmFsIGFzIG15IGVtYWNzIGtpbmRseSBkb2VzIHRoYXQgZm9yIG1lPykKICAgCjIwMDAtMTEtMzAgMTQ6MDYgIG5iYQoKICAgKiBzbm1wbGliLzogZ2V0b3B0LmgsIHNubXBfcGFyc2VfYXJncy5oOgoKICAgLSBnZXRvcHQuaCwgc25tcF9wYXJzZV9hcmdzLmg6IGV4dGVybiAiQyIgYnJhY2tldGluZwogICAKMjAwMC0xMS0zMCAxNDowNCAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBzbm1wZC5jb25mLjUuZGVmOiBmaXggZm9ybWF0dGluZyBvZiBzbXV4cGVlciB0b2tlbgogICAKMjAwMC0xMS0zMCAxMDozMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogVXBkYXRlIGZyb20gRGF2ZS4KICAgCjIwMDAtMTEtMzAgMTA6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IGJhZCBzZXRzIGZvciBhZ2VudHguCiAgIAoyMDAwLTExLTMwIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBvdi9SRUFETUU6CgogICAtIChvdi9SRUFETUUpOiBtaW5vciBjb3JyZWN0aW9ucywgcHJvYmFibHkgc3RpbGwgaW5jb3JyZWN0LgogICAKMjAwMC0xMS0zMCAwOToxOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgc25tcGNvbmY6CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbiwgc25tcGNvbmYsIGFjbCwgYmFzaWNfc2V0dXAsIG1vbml0b3IsIG9wZXJhdGlvbiwKICAgICBzeXN0ZW0sIHRyYXBzaW5rcyk6CiAgICAgLSBncm91cGluZyBzdXBwb3J0LgogICAgIC0gc29ydC1vZi1xdWlldCBvdXRwdXQgc3VwcG9ydC4KICAgICAtIG9wZXJhdGlvbiBtb2RlIHN1cHBvcnQgKHNldHRpbmcgdXNlciwgZ3JvdXAsIHBvcnRzLi4uKQogICAKMjAwMC0xMS0zMCAwOToxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoc25tcGxpYi9yZWFkX2NvbmZpZy5jKTogc2F2ZSBhIHdhcm5pbmcgaGVhZGVyIGF0IHRoZSB0b3Agb2YgdGhlCiAgICAgcGVyc2lzdGVudCBkYXRhIGZpbGUuCiAgIAoyMDAwLTExLTMwIDA5OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICAtIChhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMpOiBDbGVhbnVwIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcy4KICAgCjIwMDAtMTEtMzAgMDk6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogc2V0IERTX0FHRU5UX05PX1JPT1RfQUNDRVNTIGluIC1IIGhlbHAgb3V0cHV0LgogICAKMjAwMC0xMS0zMCAwOTowOCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1lbnRpb24gdGhlIFRVTk5FTC1NSUIgc3VwcG9ydC4KICAgCjIwMDAtMTEtMjkgMTg6MjEgIHNsaWYKCiAgICogUkVBRE1FOgoKICAgVXBkYXRlIGUtbWFpbCBhZGRyZXNzIGZvciBTbGlmY2FrCiAgIAoyMDAwLTExLTI5IDExOjM0ICBtYXJ6CgogICAqIGNvbmZpZ3VyZToKCiAgIGZpeGVkIG9yZGVyIG9mIGZ1bmN0aW9uIGNoZWNraW5nIHNvIHRoYXQgdnNucHJpbnRmIGlzIG5vdCBmb3VuZCBpbiBsaWJkYiAoQlNEIGRiKSBieSBtaXN0YWtlCiAgIAoyMDAwLTExLTI5IDA1OjE4ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1ha2VmaWxlLlBMLCBSRUFETUU6CgogICBwYXJ0aWFsIHN1Ym1pdCB0byBnZXQgcGVybC9TTk1QIHRlc3RzIHRvIHBhc3MgYW5kIHVwZGF0ZSB0aGUgZG9jcyBzb21ld2hhdCAtIHN0aWxsIGdldHRpbmcgY29yZXMgaW4gbm90aWZ5LnQuIGhhZCB0byBjaGFuZ2UgY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uIHRvIHVwZGF0ZSBhbiBleGlzdGluZyB1c2VyIGluY2FzZSAyIHNlc3Npb25zIGFyZSBzdGFydGVkIHdpdGggdGhlIHNhbWUgdXNlcgogICAKMjAwMC0xMS0yOCAxODowMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEwsIHBlcmwvU05NUC9SRUFETUUsCiAgIHBlcmwvU05NUC9TTk1QLnBtLCBwZXJsL1NOTVAvU05NUC54cywKICAgcGVybC9TTk1QL3QvYXN5bmMudCwgcGVybC9TTk1QL3QvYnVsa3dhbGsudCwKICAgcGVybC9TTk1QL3QvbWliLnQsIHBlcmwvU05NUC90L25vdGlmeS50LAogICBwZXJsL1NOTVAvdC9zZXNzaW9uLnQsIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGwsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBwYXJ0aWFsIHN1Ym1pdCB0byBnZXQgcGVybC9TTk1QIHRlc3RzIHRvIHBhc3MgYW5kIHVwZGF0ZSB0aGUgZG9jcyBzb21ld2hhdCAtIHN0aWxsIGdldHRpbmcgY29yZXMgaW4gbm90aWZ5LnQuIGhhZCB0byBjaGFuZ2UgY3JlYXRlX3VzZXJfZnJvbV9zZXNzaW9uIHRvIHVwZGF0ZSBhbiBleGlzdGluZyB1c2VyIGluY2FzZSAyIHNlc3Npb25zIGFyZSBzdGFydGVkIHdpdGggdGhlIHNhbWUgdXNlcgogICAKMjAwMC0xMS0yNyAxNDozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChsb2NhbC9zbm1wY29uZik6CiAgICAgLSBhZGQgc3VwcG9ydCBmb3IgImdyb3VwcyIgb2YgaXRlbXMuCiAgICAgLSBkb24ndCB1c2UgSU86OkRpciwgYXMgaXRzIG5vdCBpbiB0aGUgc3RhbmRhcmQgcGVybCBtb2R1bGUgZGlzdHJpYnV0aW9ucy4KICAgCjIwMDAtMTEtMjcgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmg6CgogICAtIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oKTogcmVtb3ZlIHVubmVlZGVkIHZhcmlhYmxlIHJlZmVyZW5jZS4KICAgCjIwMDAtMTEtMjcgMTQ6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CiAgICAgLSBmaXggYXV0by1zZXQgc3VwcG9ydCBmb3IgdGhlIGFnZW50IChhbmQgcGx1ZyBhIG1lbW9yeSBsZWFrKS4KICAgCjIwMDAtMTEtMjcgMTM6NDIgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgLSBzbm1wLmNvbmYuNS5kZWY6IGRvY3VtZW50IHRva2VucyBleHRlbmRlZEluZGV4IGFuZCBub1JhbmdlQ2hlY2sKICAgCjIwMDAtMTEtMjcgMTM6NDEgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtoHBhcnNlLmM6IGZpeCBhIEMrKyBzdHlsZSBjb21tZW50CiAgIAoyMDAwLTExLTI0IDE1OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywKICAgdm1zdGF0X25ldGJzZDEuYzoKCiAgIC0gbWVtb3J5X2ZyZWVic2QyLmMsIHZtc3RhdF9uZXRic2QxLmM6IG1pbm9yIGZpeGVzIGZvciBOZXRCU0QgMS41LCBPUGVuQlNEIDIuNgogICAKMjAwMC0xMS0yMiAxMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIC0gKG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMpOiBQYXRjaCBmcm9tIFNlYW4gSGFyZGluZzoKICAgICAtIGRvbid0IGV4cG9ydCBhbiBpbnRlcm5hbCB2YXJpYWJsZS4KICAgCjIwMDAtMTEtMjEgMTU6MTcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZml4IHBhcnNpbmcgb2Ygb2lkIGxpa2UgOTkuMTMuXCJndWZcIjgKICAgCjIwMDAtMTEtMTkgMTM6MDMgIG5iYQoKICAgKiBwZXJsL1NOTVAvU05NUC54cywgbG9jYWwvbWliMmMudmFydHlwZXMuY29uZjoKCiAgIC0gU05NUC54cywgbWliMmMudmFydHlwZXMuY29uZjogVGhlIHJlY2VudCBzcGVjaWFsaXNhdGlvbiBvZiB0aGUgSW50ZWdlcgogICAJdHlwZXMgaW4gdGhlIHBhcnNlciBjcmVhdGVkIHByb2JsZW1zIGZvciB0aGUgcGVybCBtb2R1bGUgYW5kIGluIHR1cm4KICAgCWZvciBtaWIyYy4gU29ycnkgZm9yIG5vdCBjYXRjaGluZyB0aGlzIGJlZm9yZSBwcmUyOi0oCiAgIAoyMDAwLTExLTE5IDEyOjU4ICBuYmEKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gZml4ZXMgdG8gLi9jb25maWd1cmUgLS13aXRoLWRlZmF1bHRzIC0tZW5hYmxlLW1pbmktYWdlbnQ7IG1ha2UgaW5zdGFsbAogICAJYW5kIHJ1biB0aGUgdG9vbHMgdW5kZXIgY3lnd2luLiBIYXZlbid0IHRyaWVkIHRoZSBhZ2VudCB5ZXQ6LSkKICAgCjIwMDAtMTEtMTggMDc6MTQgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4KLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUyICkKICAgCjIwMDAtMTEtMTggMDc6MTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA0OXNubXB2M2luZm9ybToKCiAgIC0gKFQwNDlzbm1wdjNpbmZvcm0pOiB2MyBpbmZvcm0gdGVzdCBhZGRlZC4KICAgCjIwMDAtMTEtMTcgMTE6MDEgIG5iYQoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmM6CgogICAtIG1pYi5jLCBzbm1wX2FwaS5jOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgZm9yIGJhZCBzbm1wc2V0IGNhbGxzIGFuZCBiYWQKICAgCWluZGljZXMuIEFsc28gZml4IGEgYnVnIHdpdGggcXVvdGVkIGluZGljZXMuCiAgIAoyMDAwLTExLTE3IDEwOjMyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTBzbm1wdjN0cmFwOgoKICAgLSAodGVzdHMvVDA1MHNubXB2M3RyYXApOiB0ZXN0IGZvciBzbm1wdjMgdHJhcHMuCiAgIAoyMDAwLTExLTE3IDEwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBmaXggY2FzZXMgd2hlcmUgdGhlIGZvcm1hdCBzdHJpbmdzIGFyZSBzcGVjaWZpZWQuCiAgIAoyMDAwLTExLTE3IDEwOjI2ICBuYmEKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIElBTkFpZlR5cGUtTUlCLnR4dDogdXBkYXRlIGZyb20gSUFOQQogICAKMjAwMC0xMS0xNyAwODozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGZpeCBtZW1vcnkgbGVha3MuCiAgICAgLSBmaXggYWdlbnR4IHByb2JsZW1zIHdpdGggYmFkIHNldHMuCiAgIAoyMDAwLTExLTE2IDE3OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcGxpYi9zbm1wdjMuYyk6IGFkZGVkIGEgc3BhY2UgaW4gYSBkZWJ1Z2dpbmcgb3V0cHV0IHN0YXRlbWVudC4KICAgCjIwMDAtMTEtMTYgMTc6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHNubXBsaWIvcmVhZF9jb25maWcuYyk6IHNpbXBsZSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGFkZGVkLgogICAKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2V0IERTX0xJQl9BUFBUWVBFIGlmIGl0IGhhc24ndCBiZWVuIHNldCB5ZXQuCiAgIAoyMDAwLTExLTE2IDE3OjUyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtICh0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBhZGQgQ09ORklHVFJBUEQuCiAgIAoyMDAwLTExLTE2IDE3OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jLCB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLAogICB0ZXN0aW5nL3Rlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICAtIChzbm1wbGliL21pYi5jLCB0ZXN0aW5nL3Rlc3RzL1QxMTJhZ2VudHhzZXRmYWlsLAogICAgIHRlc3RpbmcvdGVzdHMvVDEyMnByb3h5c2V0ZmFpbCk6CiAgICAgLSBzdXBwb3J0IC1JciBmb3IgImRvbnQgY2hlY2sgcmFuZ2UvdHlwZSB2YWx1ZXMiIChsZXR0ZXIgciBzdWJqZWN0IHRvIGRlYmF0ZSkuCiAgIAoyMDAwLTExLTE2IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmM6CgogICAtIChjYWxsYmFjay5jKTogYmV0dGVyIGRlYnVnZ2luZyBvdXRwdXQgdG8gZGlzcGxheSBhIGNhbGxiYWNrIGNvdW50IHdoZW4gZG9uZS4KICAgCjIwMDAtMTEtMTYgMTY6NTIgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICAtIChUMTEzYWdlbnR4dHJhcCk6IEEgbmV3IHRlc3QgdG8gdGVzdCB0cmFwIHN1cHBvcnQgZnJvbSBhZ2VudHggc3ViYWdlbnRzLgogICAKMjAwMC0xMS0xNiAxNjo1MCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcDoKCiAgIC0gKFQwNThhZ2VudGF1dGh0cmFwKTogc2xlZXAgc29tZSBhbmQgb25seSBwZXJmb3JtIG9uZSBnZXQgcmVxdWVzdC4KICAgCjIwMDAtMTEtMTYgMTY6NDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NGFnZW50djJjdHJhcDoKCiAgIC0gKFQwNTRhZ2VudHYyY3RyYXApOiBzbGVlcCBhIGJpdCBhbmQgb25seSBzZW5kIG9uZSBzbm1wIHNldCByZXF1ZXN0LgogICAKMjAwMC0xMS0xNiAxNTo0NyAgbmJhCgogICAqIHNubXBsaWIvZ2V0b3B0LmM6CgogICAtIGdldG9wdC5jOiBxdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMC0xMS0xNiAxNTozMSAgbmJhCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBtaWIuYywgcGFyc2UuaCwKICAgc25tcF9hcGkuYzoKCiAgIC0gcGFyc2UuW2NoXSwgbWliLmMsIHNubXBfYXBpLmM6IHJlbmFtZSBUWVBFX1VJTlRFR0VSMzIgYmFjayB0byBUWVBFX1VJTlRFR0VSCiAgIAoyMDAwLTExLTE2IDE1OjE2ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSBzbm1wdHJhcGQuYywgc25tcHRyYXBkLmNvbmY6IG5ldyBjb25maWcgZGlyZWN0aXZlcyBmb3JtYXQxIGFuZCBmb3JtYXQyIHRvCiAgIAlzZXQgbG9nIGZvcm1hdHMgZm9yIFRSQVAxIGFuZCBUUkFQMiBwZHVzLgogICAKMjAwMC0xMS0xNiAxMzo1MCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogYWRkIGZ1bmN0aW9uYWxpdHkgdG8gY2hlY2sgdmFsdWUgdHlwZXMgaW4gYWRkaXRpb24gdG8gcmFuZ2VzCiAgIAlmb3Igc25tcHNldCBhbmQgc25tcHRyYXAuCiAgIAoyMDAwLTExLTE2IDEzOjQ3ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBGaXggREVGVkFMIHBhcnNpbmcgZm9yICBPQkpFQ1QgSURFTlRJRklFUiBvciBCSVRTIHZhbHVlcwogICAJKGkuZS4gREVGVkFMIHsgeyAwIDAgfSB9IGV0YykKICAgCjIwMDAtMTEtMTYgMTE6MzkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1OGFnZW50YXV0aHRyYXA6CgogICAtIChUMDU4YWdlbnRhdXRodHJhcCk6IGFkZCBhIGdyZWF0ZXIgdGltZW91dCB0byB0aGUgZ2V0IHJlcXVlc3QuCiAgIAoyMDAwLTExLTE2IDExOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICAtIChleGFtcGxlLmMpOgogICAgIC0gc2VuZCBhIHYyYyB0cmFwIHVzaW5nIGl0cyBvd24gZGF0YSwgbm90IHRoZSBzeXN0ZW1fbWliJ3MuCiAgICAgLSBtb3JlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMC0xMS0xNiAxMTozNCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgVDA1OGFnZW50YXV0aHRyYXA6CgogICAtIChUMDUzYWdlbnR2MXRyYXAsIFQwNTRhZ2VudHYyY3RyYXAsIFQwNThhZ2VudGF1dGh0cmFwKToKICAgICAtIG5ldyB0ZXN0cyBmb3IgdHJhcHMgc2VudCBieSB0aGUgYWdlbnQuCiAgIAoyMDAwLTExLTE2IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtICh0YXJnZXQuYyk6IERvbid0IGRlbGV0ZSBSRUFET05MWSB0cmFwIHNlc3Npb25zLgogICAKMjAwMC0xMS0xNSAxNjozNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybToKCiAgIC0gKHRlc3RpbmcvdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0pOiB0ZXN0IGluZm9ybSBzZW5kaW5nL3JlY2VpdmluZy4KICAgCjIwMDAtMTEtMTUgMTY6MzcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYywgbWFuL3NubXB0cmFwLjE6CgogICAtIChhcHBzL3NubXB0cmFwLmMsIG1hbi9zbm1wdHJhcC4xKTogc3VwcG9ydCAtQ2kgZm9yIHNlbmRpbmcgaW5mb3Jtcy4KICAgCjIwMDAtMTEtMTUgMTU6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSAoc25tcHRyYXBkX2xvZy5jKTogdXNlIFNOTVBfTUFYQlVGIGluc3RlYWQgb2YgYSBsb2NhbCBsZW5ndGggZGVmaW5pdGlvbi4KICAgCjIwMDAtMTEtMTUgMTQ6MTggIG5iYQoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gTWFrZWZpbGUuaW46IGZpeCBtYWtlJ2luZyBpbiByZW1vdGUgZGlyZWN0b3J5CiAgIAoyMDAwLTExLTE1IDE0OjExICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIG1haW4uYzogdXBkYXRlIHRvIHVzZSBnZXRvcHQgZm9yIGFyZ3VtZW50IHBhcnNpbmcuCiAgIAoyMDAwLTExLTE1IDE0OjEwICBuYmEKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBzbm1wX2FnZW50LmM6IGZpeCBhIGNvbmZ1c2luZyBpbmRlbnRhdGlvbi4KICAgCjIwMDAtMTEtMTUgMTQ6MDkgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGFnZW50X3RyYXAuYzogbWFrZSBzdXJlIGNvbW11bml0eSBpcyBcMC10ZXJtaW5hdGVkIGluIHRhcmdldFBhcmFtc1RhYmxlCiAgIAoyMDAwLTExLTE1IDE0OjAzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAtIHNubXB0cmFwZF9sb2c6IGZpeCBhIGJ1ZmZlciB0aGF0IGlzIHdheSB0b28gc2hvcnQgZm9yIGEgdHJhcCB3aXRoIGp1c3QgYQogICAJc2luZ2xlIHBhcmFtZXRlci4gRml4IGEgYmFkIGxpbWl0IHRlc3QgaW4gc3RyX2FwcGVuZC4KICAgCjIwMDAtMTEtMTUgMTQ6MDAgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gc25tcHRyYW5zbGF0ZS5jOiBmaXggYSBzdHVwaWQgcGVycm9yIGZvciBzbm1wX3BlcnJvcgogICAKMjAwMC0xMS0xNSAxMzo1OCAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gcGFyc2UuW2NoXSwgbWliLmM6IGVuaGFuY2UgdGhlIHBhcnNlciB0byBkaXN0aW5ndWlzaCBJTlRFR0VSLCBJbnRlZ2VyMzIsCiAgIAlVbnNpZ25lZDMyLCBVSW50ZWdlcjMyLgogICAKMjAwMC0xMS0xNSAxMzo1NSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBfYXBpLmM6IHJlbW92ZSBhbiB1bnVzZWQgdmFyaWFibGUKICAgCjIwMDAtMTEtMTUgMDc6NDkgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmgKOgoKICAgLSAoc25tcF92YXJzLmMsIHN1YmFnZW50LmMpOiBQYXRjaCBmcm9tIExhd3JlbmNlIEdyZWVuZmllbGQ6CiAgICAgLSBEb24ndCBtYWtlIGluaXRfYWdlbnQoKS9zdWJhZ2VudF9wcmVfaW5pdCgpIGV4aXQgYnV0IHJldHVybiBhbgogICAgICAgZXJyb3IgY29uZGl0aW9uIGluc3RlYWQuCiAgIAoyMDAwLTExLTEyIDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICAtICh1Y2REZW1vUHVibGljLmMpOiBhZGQgTlVMTCB0byBlbmQgb2YgZGVtbyBzdHJpbmcgYW5kIGNoZWNrIGZvciBsZW49MC4KICAgCjIwMDAtMTEtMTIgMDQ6NDUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbm1wX2FwaS5jOiBNYWtlIHN1cmUgdGhlIG5vUmFuZ2VDaGVjayB0b2tlbiBpcyBhIGJvb2xlYW4KICAgCjIwMDAtMTEtMTIgMDQ6NDEgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZ2l2ZSB0aGUgdHJlZS10b3AgYSBuYW1lIHRvIHByb3RlY3QgZXJyb3IgbWVzc2FnZSB3aGVuIGxvb2tpbmcgdXAgLmZvbwogICAKMjAwMC0xMS0xMiAwNDozNiAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSBzbm1wdHJhbnNsYXRlLmM6IHVzZSBjb25maWdfcGVycm9yIGZvciBhIGJldHRlciBlcnJvciBtZXNzYWdlCiAgIAoyMDAwLTExLTEyIDA0OjM0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIC0gcHJveHkuYzogcmVtb3ZlIHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDAtMTEtMTIgMDQ6MzMgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtYWdlbnRfdHJhcHMuYzogTW92ZSBhIGNvbmRpdGlvbmFsbHkgdXNlZCB2YXJpYWJsZQogICAKMjAwMC0xMS0xMiAwNDozMiAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBGaXggYSBib2d1cyAjaWZkZWYKICAgCjIwMDAtMTEtMTAgMDk6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhcHBseSBwYXRjaCAjMTAyMjI0IGZyb20gamJwbiBmb3IgY3Jvc3MtY29tcGlsaW5nLgogICAKMjAwMC0xMS0xMCAwODo1NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCBldmFsX3Rvb2xzLnNoLAogICB0ZXN0cy9UMDUxc25tcHYyY3RyYXA6CgogICAtICh0ZXN0aW5nL1RFU1RDT05GLnNoLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gsIHRlc3RpbmcvdGVzdHMvVDA1MXNubXB2MmN0cmFwKToKICAgIC0gZmlyc3QgcGFzcyBhdCBhIHRlc3Rpbmcgc2NyaXB0IHRvIHRlc3QgdHJhcCBmdW5jdGlvbmFsaXR5LgogICAgICAtIHdoaWNoIGV2ZW4gdW5jb3ZlcmVkIGEgYnVnLgogICAKMjAwMC0xMS0xMCAwODo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKGFwcHMvc25tcHRyYXBkLmMpOgogICAgIC0gZm9yayBpZiBmaWxlIGxvZ2dpbmcgb3Igc3lzbG9nZ2luZywgYnV0IG5vdCBwcmludGluZy4KICAgICAtIGRvbid0IGNsb3NlIG9wZW4gZmlsZSBkZXNjcmlwdG9ycy4gIFRoZXJlIHNob3VsZG4ndCBiZSBhbnkuCiAgIAoyMDAwLTExLTEwIDA4OjUzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIC0gKGFwcHMvc25tcHRyYXBkX2xvZy5jKTogcHJvcGVybHkgbnVsbCB0ZXJtaW5hdGUgbG9nIHN0cmluZ3MuCiAgIAoyMDAwLTExLTA5IDE2OjQwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBhdHRlbXB0IHRvIGltcGxlbWVudCBhIC0td2l0aC1yc2FyZWYgZmxhZy4KICAgCjIwMDAtMTEtMDkgMTU6MzIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSwgcGVybC9TTk1QL1JFQURNRSk6IG1lbnRpb24gS2FybC4KICAgCjIwMDAtMTEtMDkgMTU6MzEgIGhhcmRha2VyCgogICAqIE5FV1MsIHBlcmwvU05NUC9SRUFETUU6CgogICAtIChORVdTLCBwZXJsL1NOTVAvUkVBRE1FKTogbWVudGlvbiBLYXJsLgogICAKMjAwMC0xMS0wOSAxNDo1NiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogZXhhbXBsZXMvYnVsa3dhbGsucGwsIHQvYnVsa3dhbGsudDoKCiAgIC0gKGV4YW1wbGVzL2J1bGt3YWxrLnBsLCB0L2J1bGt3YWxrLnQpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KICAgCjIwMDAtMTEtMDkgMTQ6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IE1BTklGRVNULCBSRUFETUUsIFNOTVAucG0sCiAgIFNOTVAueHM6CgogICAtIChNQU5JRkVTVCwgUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CiAgICAgLSBzdXBwb3J0IGJ1bGsgcmVxdWVzdHMuCiAgIAoyMDAwLTExLTA4IDIzOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZml4IC1IIG91dHB1dC4KICAgCjIwMDAtMTEtMDggMjM6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IG1ha2UgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKSBjYWxsIHJ1bl9hbGFybXMoKS4KICAgCjIwMDAtMTEtMDggMjI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSAoZGlza2lvLmMpOiBmaXggT0lELgogICAKMjAwMC0xMS0wOCAxNzowNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIC0gKFNOTVAucG0sIFNOTVAueHMpOiBwYXRjaCBmcm9tIE1hcmsgQ2F2YWdlIGZvciBkZWZhdWx0IHZhbHVlIHN1cHBvcnQuCiAgIAoyMDAwLTExLTA4IDE3OjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IG1pbmltYWwgREVGVkFMIHBhcnNpbmcgc3VwcG9ydC4KICAgCjIwMDAtMTEtMDggMTY6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogY2hlY2sgZm9yIGxpYnJzYXJlZiwgZXRjLCBpZiBuZWVkZWQuCiAgIAoyMDAwLTExLTA3IDE1OjE1ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBkLmM6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnQvc25tcGQuYyk6CiAgICAgLSB1aWQvZ2lkIGNoYW5nZXMuCiAgIAoyMDAwLTExLTA3IDE1OjEwICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gKFNOTVAueHMpOiBmaXggVFlQRV9OT1RJRiAtPiBUWVBFX05PVElGVFlQRS4KICAgCjIwMDAtMTEtMDcgMTE6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICAtIChTTk1QL1NOTVAucG0sIFNOTVAvU05NUC54cyk6IFBhdGNoIGZyb20gSm9lIENsYXJrZToKICAgICAtIGltcGxlbWVudCBiZXN0LWd1ZXNzICgtSWIpIHBhcnNpbmcuCiAgICAgLSBhY2Nlc3MgdG8gdHJhcCB2YXJiaW5kcy4KICAgICAtIHJhbmdlIGFjY2Vzcy4KICAgCjIwMDAtMTEtMDcgMTE6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBidWlsZCBjcmVhdGVkIGZpbGVzLgogICAKMjAwMC0xMS0wNyAxMDo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzOgoKICAgLSAoUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzKTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CiAgICAgLSBpbXBsZW1lbnQgYSBmaW5pc2goKSBjYWxsLgogICAKMjAwMC0xMS0wNyAxMDo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIChTTk1QL1NOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKICAgICAtIG11bHRpcGxlIGNhbGxiYWNrIHBhdGNoIGZvciBwZXJsL1NOTVAvU05NUC54cy4KICAgCjIwMDAtMTEtMDcgMTA6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBsb2cgYW4gZXJyb3IgbWVzc2FnZSBpZiB0aGUgb3B0aW9uYWwgY29uZmlnIGZpbGUgRE5FLgogICAKMjAwMC0xMS0wNyAxMDo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICAtIChTTk1QLnBtKTogZml4IGlpZCBwYXJzaW5nIHdpdGggcmVzcGVjdCB0byBtaWIgbm9kZXMgd2l0aCBhIC0gaW4gaXQuCiAgIAoyMDAwLTExLTA3IDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9kc19hZ2VudC5oLAogICBhZ2VudC9zbm1wZC5jLCBtYW4vc25tcGQuMS5kZWYsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBkLmMsCiAgICAgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBpbXBsZW1lbnQgdWlkL2dpZCBjaGFuZ2VzIGFmdGVyIHN0YXJ0dXAgZm9yIHRoZSBhZ2VudC4KICAgCjIwMDAtMTEtMDcgMDg6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gKHRhcmdldC5jKTogYSBiZXR0ZXIgc2FuaXR5IGNoZWNrIGZvciBzZXNzaW9uIGRlbGV0aW9uLgogICAKMjAwMC0xMS0wNyAwNzoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgLSAodGFyZ2V0LmMpOiBQYXRjaCBmcm9tIERhdmUgdG8gc2FuaXR5IGNoZWNrIHBhcmFtLT51cGRhdGVUaW1lLgogICAKMjAwMC0xMS0wNiAxMTowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIC0gKG1kNS5jKTogY2hlY2sgdG8gc2VlIHRoYXQgTURzaWduKCkgZGF0YSBsaWVzIG9uIGEgMzIgYnl0ZSBib3VuZHJ5LgogICAgIC0gaXRzIHBvc3NpYmxlIHNvbWUgY29tcGlsZXJzIHdpbGwgY2hva2Ugb24gdGhpcyBoYWNrLgogICAgIC0gZml4ZXMgYnVnICMxMjE3NS4KICAgCjIwMDAtMTEtMDMgMTc6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBzb3J0IE9JRHMgcHJvcGVybHkuCiAgIAoyMDAwLTExLTAzIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmM6CgogICAtIChleGFtcGxlLmMpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gZml4IG1pYiByZWdpc3RyYXRpb25zIGZvciBkdXBsaWNhdGUgT0lEcyBiZWluZyB1c2VkIGZvciB0aGUgdHJhcCBleGFtcGxlcy4KICAgCjIwMDAtMTEtMDMgMTU6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogc2Vjb25kIHBhdGNoIGZyb20gZG91Z3dhcnogaW4gYnVnICMxMTcyNzMgdG8gZml4IHNtdXggcHJvYmxlbXMuCiAgICAgLSBVbSwgYXBwbGllZCBjb3JyZWN0bHkgdGhpcyB0aW1lIChJIGhvcGUpLgogICAKMjAwMC0xMS0wMyAxNToyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KICAgCjIwMDAtMTEtMDIgMjI6MTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYywgaXAuYywgaXBBZGRyLmMKLCB0Y3BUYWJsZS5jLCB1ZHBUYWJsZS5jOgoKICAgQ2xlYW4gdXAgc29tZSB1bnVzZWQgdmFyaWFibGVzIGV0Yy4KICAgCjIwMDAtMTEtMDIgMjI6MTYgIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gTWFrZWZpbGUuaW46IGZpeCBzb21lICQoc3JjZGlyKSByZWZlcmVuY2VzIHdoZW4gcnVubmluZyBvdXRzaWRlIHNvdXJjZQogICAKMjAwMC0xMS0wMiAyMjoxNSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBmaXggdGhlIGZvcm1hdCBzdHJpbmcgZm9yIGZvcm1hdF90cmFwCiAgIAoyMDAwLTExLTAyIDIyOjE0ICBuYmEKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogcmVtb3ZlIHNvbWUgZHVwbGljYXRlcyBmcm9tIGZpbGUgbGlzdHMKICAgCjIwMDAtMTEtMDIgMjI6MTIgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgRG9jdW1lbnQgdGhlIC1PWCBvdXRwdXQgb3B0aW9uCiAgIAoyMDAwLTExLTAyIDIyOjExICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgc3lzc2VydmljZXMgdG9rZW4KICAgCjIwMDAtMTEtMDIgMTY6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICAtIChhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oKTogYWRkIHVjZC1zbm1wL3Byb3h5LgogICAKMjAwMC0xMS0wMiAxNjoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiBjaGFuZ2UgY3ZzIGFyY2hpdmUgc2l0ZSBhbmQgcGFja2FnZSBuYW1lLgogICAKMjAwMC0xMS0wMiAxMzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBQYXRjaCAxMDIyMzkgZnJvbSBkb3Vnd2FyeiB0byBmaXggYSBwcmV2aW91c2x5IGJhZCBzbXV4LmMgcGF0Y2guCiAgIAoyMDAwLTExLTAxIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgRkFROgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMSApCiAgIAoyMDAwLTExLTAxIDE2OjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDEyMHByb3h5Z2V0LCBUMTIxcHJveHlzZXQsCiAgIFQxMjJwcm94eXNldGZhaWw6CgogICAtIChUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwgVDEyMnByb3h5c2V0ZmFpbCk6IHByb3h5IHRlc3Qgc3VpdGUuCiAgIAoyMDAwLTExLTAxIDE2OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICAtIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oKToKICAgICAtIG1pbmltYWwgU0VUIHN1cHBvcnQgZm9yIHRoZSBwcm94eSBjb2RlLgogICAKMjAwMC0xMS0wMSAxMDoyMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbDoKCiAgIC0gKFQxMTJhZ2VudHhzZXRmYWlsKTogdGVzdCBmb3IgYWdlbnR4IHNldHMgdGhhdCBzaG91bGQgZmFpbCBwcm9wZXJseS4KICAgCjIwMDAtMTAtMzEgMTQ6MzAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jOgoKICAgLSB0Y3BUYWJsZS5jOiByZW1vdmUgYW4gdW5uZXNjZXNzYXJ5ICNpbmNsdWRlCiAgIAoyMDAwLTEwLTMxIDE0OjI4ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIHNtdXguYzogZml4IHdyb25nIHZhcmlhYmxlIGxlbmd0aAogICAKMjAwMC0xMC0zMSAxNDoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSBwcm90b2NvbC5jOiBmaXggc29tZSBzdXNwaWNpb3VzIGxvb2tpbmcgY29kZQogICAKMjAwMC0xMC0zMSAxNDoyMSAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBtYW4vc25tcGQuY29uZjogZml4IGEgdHlwbwogICAKMjAwMC0xMC0zMSAxMjo0MSAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBtaWIuYzogYWRkIC1PWCBvdXRwdXQgZm9ybWF0LCBmb3IganVzdCBhbm90aGVyIHdheSBvZiBwcmludGluZyBpbmRpY2VzCiAgIAoyMDAwLTEwLTMxIDEyOjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmCjoKCiAgIC0gaW50ZXJmYWNlLmM6IGFkZCAiaW50ZXJmYWNlIiBjb25maWcgZm9yIHVuZ3Vlc3NhYmxlIGludGVyZmFjZSB0eXBlL3NwZWVkCiAgIAoyMDAwLTEwLTMxIDEyOjI1ICBuYmEKCiAgICogYXBwcy86IHNubXBidWxrZ2V0LmMsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYwosIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgc25tcHRyYXAuYywgc25tcHVzbS5jLCBzbm1wdmFjbS5jLCBzbm1wd2Fsay5jCjoKCiAgIC0gYXBwcy8qOiBtYWtlIHN1cmUgd2UgcmVwb3J0IGFueSBlcnJpbmRleC9lcnJjb2RlIGluIHRoZSByZXNwb25zZQogICAKMjAwMC0xMC0zMSAxMjowNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSBwcm90b2NvbC5jOiBjbGVhbiB1cCB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMC0xMC0zMSAxMDoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBwYXRjaCAjMSBmcm9tIGJ1ZyAjMTE3MjczIGFwcGxpZWQgdG8gZml4IHNtdXggc29ja2V0IHByb2JsZW1zLgogICAKMjAwMC0xMC0zMSAwOToyNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIChTTk1QLnhzKTogcHJpbnQgY291bnRlcjY0J3MgYXMgdW5zaWduZWQuCiAgIAoyMDAwLTEwLTMxIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oLAogICBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmg6CgogICAtIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc3ViYWdlbnQuYywgc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgc25tcE5vdGlmeVRhYmxlLmgpOiBQYXRjaCBmcm9tIERhdmU6CiAgICAgLSBmaXggbm90aWZpY2F0aW9ucyBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCiAgIAoyMDAwLTEwLTMwIDIyOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IGZpeCBidWcgIzExOTc4NjogbWFrZSBzbXV4IHJldXNlIHNvY2tldCBhZGRyZXNzLgogICAKMjAwMC0xMC0zMCAyMTo0MiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QxMTBhZ2VudHhnZXQsCiAgIHRlc3RzL1QxMTFhZ2VudHhzZXQ6CgogICAtIChldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMTEwYWdlbnR4Z2V0LCB0ZXN0cy9UMTExYWdlbnR4c2V0KToKICAgICAtIGZpeCBidWcgIzM4MgogICAgIC0gZml4IGFnZW50eCBub24tcm9vdCB0ZXN0cyB0byB1c2UgLXggL3RtcC9ibGFoL2FnZW50eF9zb2NrZXQuCiAgIAoyMDAwLTEwLTMwIDEzOjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIChzbm1wZC4xLmRlZik6IGZpeCBhIHR5cG8gcG9pbnRlZCBvdXQgYnkgQ2hyaXMgUGVwcGVyLgogICAKMjAwMC0xMC0zMCAxMTo0NiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTExYWdlbnR4c2V0OgoKICAgLSAodGVzdHMvVDExMWFnZW50eHNldCk6IHRlc3Qgc2NyaXB0IGZvciBBZ2VudFggc2V0IHN1cHBvcnQuCiAgIAoyMDAwLTEwLTMwIDExOjQzICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQ6CgogICAtICh0ZXN0cy9UMTEwYWdlbnR4Z2V0KTogaGVhZGVyIGNoYW5nZWQgdG8gaW5jbHVkZSB0aGUgd29yZCBHRVQuCiAgIAoyMDAwLTEwLTMwIDExOjEzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYywKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSB1Y2Qtc25tcC92bXN0YXRfKiwgbWVtb3J5X2ZyZWVic2QyLmMsIGRsbW9kLmM6IE1ha2Ugc3NSYXdDcHUgb2JqZWN0cyBDb3VudGVycywKICAgCWFuZCBhZGQgc3VwcG9ydCBmb3IgKkJTRCAoaW5jbHVkaW5nIE9wZW5CU0QpCiAgIAoyMDAwLTEwLTMwIDExOjA3ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zbm1wdXNtLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYzoKCiAgIC0gQ2xlYW4gdXAgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDAtMTAtMzAgMTE6MDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMTAxYWdlbnR4LCBUMTEwYWdlbnR4Z2V0OgoKICAgLSAodGVzdGluZy90ZXN0cy9UMTAxYWdlbnR4LCB0ZXN0aW5nL3Rlc3RzL1QxMTBhZ2VudHhnZXQpOgogICAgIC0gcmVuYW1lZCB0aGUgYWdlbnR4IHRlc3Qgc2NyaXB0LgogICAKMjAwMC0xMC0zMCAxMTowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAodGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogZG9uJ3QgYWRkIC1jIENPTkZJR0ZJTEUgaWYgaXQgZG9lc24ndCBleGlzdC4KICAgCjIwMDAtMTAtMzAgMTA6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogZXJyb3Igd2hlbiBwYXJzaW5nIC1YIGZvciBub24tYWdlbnR4IGJ1aWxkcy4KICAgCjIwMDAtMTAtMjcgMTE6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChhcHBzL3NubXB0cmFwZC5jKTogYWRkIC1vIGZsYWcgdG8gbG9nIHRvIGEgcGFydGljdWxhciBmaWxlLgogICAKMjAwMC0xMC0yNyAxMDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogdXNlIG1rc3RlbXAgaWYgYXZhaWxhYmxlLgogICAKMjAwMC0xMC0yNyAxMDo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogU2VhcmNoIGZvciBta3N0ZW1wKCkuCiAgIAoyMDAwLTEwLTI3IDEwOjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiB1cGRhdGUgbGludXgga2VybmVsIGxpc3QgdG8gaW5jbHVkZSAyLjIuCiAgIAoyMDAwLTEwLTI2IDE3OjUxICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIChldmFsX3Rvb2xzLnNoKTogbWFrZSBTS0lQSUZOT1QgY2hlY2sgdGhlIG1pYiBtb2R1bGUgbGlzdCB0b28uCiAgIAoyMDAwLTEwLTI2IDE3OjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMDFhZ2VudHg6CgogICAtICh0ZXN0cy9UMTAxYWdlbnR4KTogQWdlbnRYIHN1YmFnZW50IHRlc3QgZm9yIHNpbXBsZSBnZXQgcmV0cmlldmFsLgogICAKMjAwMC0xMC0yNSAxNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBBZGQgLVggb3B0aW9uIHRvIHNubXBkIHRvIHJ1biBhcyBhIHN1YmFnZW50LgogICAKMjAwMC0xMC0yNSAxNzowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IGZpeCBmb3IgY2FzZXMgd2hlbmUgZGVidWdnaW5nIGlzIGFsd2F5cyBvZmYuCiAgIAoyMDAwLTEwLTE3IDE1OjMwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciBydW4KICAgCjIwMDAtMTAtMTYgMDM6MTMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXIuYyk6IFNwZWNpZnkgdGhlIGxlbmd0aCBvZiB0aGUgKHBzZXVkby0pYW5zd2VyIHRvIGEgcmVxdWVzdC4KICAgCVRoaXMgYWxsb3dzIGl0IHRvIGJlIGNhY2hlZCBjb3JyZWN0bHkgZm9yIG11bHRpLXBhc3MgU0VUIGhhbmRsaW5nLgogICAKMjAwMC0xMC0xNiAwMzoxMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBtb2RlIGluZm9ybWF0aW9uCiAgIAlUaGlzIHNob3VsZCBoZWxwIHdpdGggKHNvbWUgb2YpIHRoZSBTRVQgaGFuZGxpbmcgcHJvYmxlbXMuCiAgIAoyMDAwLTEwLTE2IDAxOjU2ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRG9uJ3QgZnJlZSBjYWxsYmFjayBkYXRhIHN0cnVjdHVyZS4KICAgCVRoaXMgaG9sZHMgaW5mb3JtYXRpb24gdGhhdCBuZWVkcyB0byBwZXJzaXN0IGFjcm9zcyBtdWx0aS1wYXNzIHJlcXVlc3RzLgogICAJSSByZWFsaXNlIHRoYXQgdGhpcyBpbnRyb2R1Y2VzIGEgbWVtb3J5IGxlYWssIGJ1dCB0aGlzIGlzbid0IHRoZQogICAJY29ycmVjdCBwbGFjZSB0byBoYW5kbGUgdGhpcy4KICAgCjIwMDAtMTAtMTIgMTQ6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogYWRkIC1JIHRvIHRoZSBoZWxwIG91dHB1dC4KICAgCjIwMDAtMTAtMTIgMTQ6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy86IE1ha2VmaWxlLmluLCBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgKLCBleGFtcGxlLmMsIGV4YW1wbGUuaDoKCiAgIC0gKGFnZW50L2RsbW9kcy8qKTogcmVtb3ZlIG9ic29sZXRlIHZlcnNpb25zCiAgIAoyMDAwLTEwLTEyIDE0OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiB1cGRhdGUuCiAgIAoyMDAwLTEwLTEyIDE0OjAxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTWF0dCBCcmFpdGh3YWl0ZToKICAgICAtIHVkcCBjb25maWd1cmF0aW9uIGNoYW5nZXMgdG8gY2hlY2sgZm9yIG1pc2Mgc3RydWN0dXJlIGRlZmluaXRpb25zLgogICAKMjAwMC0xMC0xMiAxMzo0OCAgaGFyZGFrZXIKCiAgICogbWlicy9UVU5ORUwtTUlCLnR4dDoKCiAgIC0gKFRVTk5FTC1NSUIudHh0KTogVFVOTkVMLU1JQiBkZWZpbml0aW9uLgogICAKMjAwMC0xMC0xMiAxMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLmg6CgogICAtICh0dW5uZWwuaCk6IGNvbmZpZ19hZGRfbWliKFRVTk5FTC1NSUIpLgogICAKMjAwMC0xMC0xMiAxMzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0dW5uZWwuaCwgdHVubmVsL3R1bm5lbC5jLAogICB0dW5uZWwvdHVubmVsLmg6CgogICAtICh0dW5uZWwuaCwgdHVubmVsLmMsIHR1bm5lbC5oKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gaW1wbGVtZW50IHRoZSBUVU5ORUwtTUlCLgogICAKMjAwMC0xMC0xMCAxNDozMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IHVubGlua190cmVlIGZvciAidG9wIGxldmVsIiB0cmVlIG5vZGVzLgogICAKMjAwMC0xMC0xMCAxMTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHJldmVyc2UgbGlicmFyeSBsaW5rIG9yZGVyaW5nIGFnYWluLi4uCiAgIAoyMDAwLTEwLTEwIDA5OjAzICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIFJlbW92ZSByZWxhdGl2ZSBwYXRoIHRvIGluY2x1ZGUgc3lzdGVtLmguCiAgIAoyMDAwLTEwLTEwIDA2OjUzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5oOgoKICAgUmVtb3ZlIHVubmVlZGVkIGRlY2wgb2YgdnNucHJpbnRmIHdpdGhvdXQgc3RkYXJnL3ZhcmFyZ3MgZGVjbCBvZiB2YV9saXN0LgogICAKMjAwMC0xMC0xMCAwNToxNSAgbXNsaWZjYWsKCiAgICogY29uZmlnLnN1YjoKCiAgIEFwcGx5IHBhdGNoIGZvciBERUMgQWxwaGEgRVY2LCBzdXBwbGllZCBieSBTaHVtb24gSHVxdWU8c2h1cXVlQGlzYy51cGVubi5lZHU+CiAgIAoyMDAwLTEwLTA5IDE3OjA2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcGF0Y2ggdG8gZml4IGxlYWRpbmcgemVybyBlcnJvciBpbnRyb2R1Y2VkIGJ5IGNoYW5nZXMgZm9yIHNodXRkb3duX21pYi4KICAgCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKTogbWlub3IgZGVidWdnaW5nIG91dHB1dCBhZGRpdGlvbnMuCiAgIAoyMDAwLTEwLTA5IDE1OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbW92ZSBhdXRvX25saXN0IHRvIGxpYnVjZG1pYnMuCiAgIAoyMDAwLTEwLTA5IDExOjQzICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogYWRkIG5ldyBtaXJyb3IuCiAgIAoyMDAwLTEwLTA5IDEwOjI2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsCiAgIHNubXBfYXBpLmM6CgogICBNb3ZlIGNvbmZpZy0gYW5kIHN0b3JlLXJlbGF0ZWQgY2xlYW51cCBmcm9tIHNodXRkb3duX21pYiB0byBzbm1wX3NodXRkb3duLgogICAKMjAwMC0xMC0wOSAwMjozNiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAobWliSUkvaW50ZXJmYWNlcy5jKTogUXVhbGlmeSBhbiBpbmRpdmlkdWFsIGludGVyZmFjZSB0eXBlIHRlc3Qgc3ltYm9sCiAgIAkoUW46IHNob3VsZCBhbnkvYWxsIG9mIHRoZSBvdGhlcnMgYmUgcXVhbGlmaWVkIGFzIHdlbGw/KQogICAKMjAwMC0xMC0wNiAwODo1NiAgbXNsaWZjYWsKCiAgICogbWFuL01ha2VmaWxlLmluLCBtYW4vZGVmYXVsdF9zdG9yZS4zLmJvdCwKICAgbWFuL2RlZmF1bHRfc3RvcmUuMy50b3AsIG1hbi9taWJfYXBpLjMsCiAgIG1hbi9zaHV0ZG93bl9taWIuMywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFyc2UuaAosIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5oOgoKICAgU3VwcG9ydCBmb3Igc2h1dGRvd25fbWliIC0gY2xlYXJpbmcgdGhlIE1JQiB0cmVlcyBhbmQgY29uZmlndXJlZCByZWdpc3RyYXRpb25zLgogICAKMjAwMC0xMC0wNiAwNTozMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIFBsdWcgbWVtb3J5IGxlYWsgZm9yIHVjZC1zdXBwbGllZCBzZXRlbnYgb24gV2luMzIgcGxhdGZvcm0uCiAgIAoyMDAwLTEwLTA2IDA0OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjIwMDAtMTAtMDUgMjM6NDUgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZml4IHNpbGx5IGJ1ZyBpbiBuZXcgb2lkIHBhcnNlciwgd2hlbiBsZWF2aW5nIHRoZSB0cmVlIGFuZCBnb2luZwogICAJaW50byBzdWItaWRzIHdlIGtub3cgbm90aGluZyBhYm91dAogICAKMjAwMC0xMC0wNSAxNjowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBmaXggbGlicmFyeSBkZXBlbmRlbmN5IG9yZGVyLgogICAKMjAwMC0xMC0wNCAxNzo1OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgImV4dGVuZGluZyIgc25tcGNvbmYgZmlsZS4KICAgCjIwMDAtMTAtMDQgMTQ6NTAgIG5iYQoKICAgKiBGQVE6CgogICAtIEZBUTogZml4IGEgY29uZnVzaW9uIGJldHdlZW4gIm9taXQiIGFuZCAiaW5jbHVkZSIKICAgCjIwMDAtMTAtMDQgMTM6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jOgoKICAgLSAocGFzc19wZXJzaXN0LmMpOiBvcGFxdWVzIGluIHBhc3NfcGVyc2lzdC4KICAgCjIwMDAtMTAtMDQgMTA6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IHN1cHBvcnQgb3BhcXVlIHJldHVybiB0eXBlcy4KICAgCjIwMDAtMTAtMDQgMDc6MTUgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9taWIuYzoKCiAgIEZpeCBwYXJzaW5nIHByb2JsZW0gZm9yIC1QYyBvcHRpb247IHJlcG9ydGVkIGJ5IENocmlzdGlhbiBNYXV0bmVyLgogICAKMjAwMC0xMC0wNCAwNjo1MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgcXVhbGlmeSBzeW1ib2xzIGZvciBuZXcgaS9mIHR5cGVzLgogICAKMjAwMC0xMC0wNCAwNjo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgVGVybWluYXRlIGxpc3QgdG8gY29tcGlsZSAoYWRkIGEgY29tbWEpLgogICAKMjAwMC0xMC0wNCAwMDoxOCAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIHNubXB0YWJsZS5jOiBpbmRleCBjb2x1bW50ICgtQ2kpIHdpZHRoIG5vdCBwcm9wZXJseSBjb21wdXRlZCB3aGVuIHVzaW5nCiAgIAlHRVRCVUxLCiAgIAoyMDAwLTEwLTAzIDE4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMKOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CiAgICAgLSBhZGQgYSBwYXNzYmFjayBhcmd1bWVudCB0byByZWdpc3Rlcl9yZWFkZmQoKSBjYWxsYmFja3MuCiAgIAoyMDAwLTEwLTAzIDE4OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIG1vdmUgYXV0b19ubGlzdC5vL2xvIHRvIGxpYnVjZGFnZW50IHNpbmNlIHNvbWUgbWliLW1vZHVsZXMgbmVlZCBpdC4KICAgCjIwMDAtMTAtMDMgMTg6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gRnJpZWRyaWNoOgogICAgIC0gZml4IGdldG5leHQgcmVxdWVzdHMgdG8gc3ViYWdlbnRzLgogICAKMjAwMC0xMC0wMyAxNzoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gYmV0dGVyIGlmdHlwZSBndWVzc2luZy4KICAgCjIwMDAtMTAtMDMgMTY6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBEb3VnIFdhcnplY2hhOgogICAgIC0gZml4IG9pZCBwYXJzaW5nIGluIHRyYXBzLgogICAKMjAwMC0xMC0wMyAxNjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBleGFtcGxlLmMsIGV4YW1wbGUuaDoKCiAgIC0gKGV4YW1wbGUuYywgZXhhbXBsZS5oKTogZXhhbXBsZSBvZiBjb2RpbmcgYSB2MiB0cmFwIGZyb20gc29tZW9uZSB3aG8KICAgICBJIGhhdmUgdmVyeSBzYWRseSBmb3Jnb3R0ZW4uICBJJ3ZlIGJlZW4gbG9va2luZyBmb3IgdGhhdCBtZXNzYWdlIGZvcgogICAgIGEgd2hpbGUgdG8gcHJvcGVybHkgYXR0cmlidXRlIHRoaXMgcGF0Y2guICBTaWdoLgogICAKMjAwMC0xMC0wMyAxNjoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBEb3VnbGFzIFdhcnplY2hhOgogICAgIC0gc25tcGQgcmV0dXJucyB3cm9uZyBlcnJvciBpbmRleCBvbiBTTk1QdjEgcmVxdWVzdCAoQlVHIzM3NSkuCiAgIAoyMDAwLTEwLTAzIDA5OjEyICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBGaXggbnVsbCBkZXJlZiBvZiBzcy0+Y29tbXVuaXR5LCByZXBvcnRlZCBieSBKaW0gUGlja2VyaW5nLgogICAKMjAwMC0xMC0wMyAwODowMyAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHZhY20uYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc25wcmludGYuYywgc25tcGxpYi92YWNtLmM6CgogICBDYXN0aW5nIHRvIGZpeCBwcm9ibGVtcyBidWlsZGluZyB3aXRoIGFDQwogICBUaGFua3MgdG8gTWFya2t1IExhdWtrYW5lbiA8cGt5QG1vcmVtYWdpYy5jb20+CiAgIAoyMDAwLTEwLTAzIDA1OjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgUmVtb3ZlIGNoZGlyIHRvIHVuZG8gZml4IGZvciAoQlVHIzI5OCkKICAgCjIwMDAtMTAtMDIgMjE6NDEgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogRXNjYXBlICIgYW5kIFwgaW4gdGV4dCBzdHJpbmdzLgogICAKMjAwMC0xMC0wMiAyMTozOSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIHNubXBfbG9nZ2luZy5jOiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgogICAKMjAwMC0xMC0wMiAyMTozOCAgbmJhCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjogZml4IGEgbWlzc2luZyAkKHNyY2RpcikgZHVyaW5nIG1ha2UgaW5zdGFsbCBvZiBtaWIyYwogICAJY29uZmlndXJhdGlvbiBmaWxlcwogICAKMjAwMC0xMC0wMiAyMTozNyAgbmJhCgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgLSBzbm1wc2V0LmM6IERvIGEgZXhpdCgyKSBmb3IgZmFpbHVyZSBpbiBzZXR0aW5nIHRoZSB2YXJpYWJsZS4KICAgCjIwMDAtMTAtMDIgMjE6MzYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIGhyX3N3cnVuLmM6IGFkZCBhIHNhZmVndWFyZCBmb3IgdmVyeSBsb25nIGFyZ3VtZW50IGxpc3RzLgogICAKMjAwMC0xMC0wMiAyMTozNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IEFkZCBhIG5hbWUgcGF0dGVybiB0aGF0IG1hdGNoZXMgeDg2IElERSBkaXNrcyBmb3IgU29sYXJpcy4KICAgCjIwMDAtMTAtMDIgMjE6MzMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIGtlcm5lbF9zdW5vczUuYzogbWFrZSB0aGUgYnVmZmVyIGZvciBTSU9DR0lGQ09ORiBkeW5hbWljLgogICAKMjAwMC0xMC0wMiAxMTo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wdXNtLmguCiAgIAoyMDAwLTEwLTAyIDEwOjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKToKICAgICAtIG5ldyBvcHRpb25zIGZvciBpbnN0YWxsaW5nIGNyZWF0ZWQgZmlsZXMuCiAgICAgLSBtb3JlIGNvbW1lbnRzIGluIHRoZSBjb2RlLgogICAgIC0gYWxsb3cgcmVhZGluZyBhIC5jb25mIGRpcmVjdGx5IHRvIHdyaXRpbmcgZm9yIGF1dG8tY29tbWVudGluZyAuY29uZiBmaWxlcy4KICAgICAtIG1pc2MuCiAgIAoyMDAwLTEwLTAyIDEwOjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLWxlc3MuCiAgIAoyMDAwLTEwLTAyIDA5OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBwcm90ZWN0IGFnYWluc3QgMCBieXRlIHN0YXRQIG1hbGxvY3MuCiAgIAoyMDAwLTEwLTAyIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIFRlZCBSdWxlOgogICAgIC0gZml4IGludGVyZmFjZXMuYyBmb3IgdmFyaWFibGUgbGVuZ3RoIG51bWJlciBmb3JtYXR0aW5nIGluIC9wcm9jL25ldC9kZXYuCiAgIAoyMDAwLTEwLTAxIDE2OjQwICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jOgoKICAgUGVyIE5pZWxzIHJlY29tbWVuZGF0aW9uLCBjaGRpciB0byBQRVJTSVNURU5UX0RJUkVDVE9SWSAocmU6IGJ1ZyAjMjk4KQogICAKMjAwMC0wOS0zMCAwODo1NyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYzoKCiAgIEZpeCBERUJVR01TR1RMIG5vdCBmb3VuZCBlcnJvciBmb3IgYnVpbGRzIHdpdGhvdXQgZGxtb2Qgc3VwcG9ydC4KICAgVGhhbmtzIHRvIHNpbW9uQHppZC50dXdlaW4uYWMuYXQKICAgCjIwMDAtMDktMjkgMTQ6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCArIC5vIC0+IC5sbyBmaXhlcy4KICAgCjIwMDAtMDktMjkgMTQ6MjcgIGhhcmRha2VyCgogICAqIG1ha2VmaWxlaW5kZXBlbmQucGw6CgogICAtIChtYWtlZmlsZWluZGVwZW5kLnBsKTogc2tpcCBlbXB0eSBkZXBlbmQgbGluZXMuCiAgIAoyMDAwLTA5LTI5IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogZHJvcCBkdXBsaWNhdGUgbGluZXMgZnJvbSByZWFkIGluIHNubXBkLmNvbmYgZmlsZXMuCiAgIAoyMDAwLTA5LTI5IDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogc29ydCB1bmtub3duIGRpcmVjdGl2ZXMgYnkgZmlsZXR5cGUgKHdob29wcykuCiAgIAoyMDAwLTA5LTI5IDEzOjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogcHJpbnQgbW9yZSBpbmZvcm1hdGlvbi9jb21tZW50cyB0byB0aGUgc2NyZWVuLgogICAKMjAwMC0wOS0yOSAxMTozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSAodmFyX3N0cnVjdC5oKTogaW5jcmVhc2UgcmVnaXN0cmF0aW9uIG5hbWUgbGVuZ3RoIHRvIDMyIGZyb20gMTYgKEJ1ZyAjMTcyKQogICAKMjAwMC0wOS0yOSAxMToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGluY29ycmVjdCB2YWwgbGVuZ3RoIHBhc3NlZCB0byBwYXJzZV91bnNpZ25lZF9pbnQgKEJ1ZyAjMzM5KS4KICAgCjIwMDAtMDktMjkgMTE6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXggQnVnIzM1MyBmb3IgaG9zdG5hbWVzIHRoYXQgbG9vayBsaWtlICI1dyIuCiAgICAgLSBkb24ndCBpbnRlcnByZXRlIHRoZW0gYXMgYW4gaXAtcG9ydC4KICAgCjIwMDAtMDktMjkgMTA6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS5jKTogUGF0Y2ggZnJvbSBqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb206CiAgICAgLSBUaGVyZSBpcyBhIHBlY3VsaWFyaXR5IGluIHRoZSBzbm1wX2FsYXJtX3VucmVnaXN0ZXIgZnVuY3Rpb24gaW4KICAgICAgIHNubXBsaWIvc25tcF9hbGFybS5jIHdoaWNoIGNhbiBjYXVzZSBhIHNlZ21lbnRhdGlvbiBmYXVsdC4gKEJ1ZyAjMzY3KQogICAKMjAwMC0wOS0yOSAxMDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jOgoKICAgLSAoc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgogICAgIC0gZml4IHVzZSBvZiBOVUxMIHRpbWVzdGFtcCBwb2ludGVyIGluIG5ldyByb3cgY3JlYXRpb24gKEJ1ZyAjMzQ2KQogICAKMjAwMC0wOS0yOCAxNDozOCAgbmJhCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIG1pYl9hcGkuMzogYWRkIGEgZmV3IGZ1bmN0aW9ucyB0byB0aGUgaGVhZGVyCiAgIAoyMDAwLTA5LTI4IDE0OjE0ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSBzbm1wdHJhcC5jOiByZW1vdmUgYW4gZXh0cmFuZW91cyBzbm1wX2ZyZWVfcGR1CiAgIAoyMDAwLTA5LTI4IDE0OjEzICBuYmEKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGFkZF9taWJkaXIuMywKICAgYWRkX21vZHVsZV9yZXBsYWNlbWVudC4zLCBnZXRfbW9kdWxlX25vZGUuMywgaW5pdF9taWIuMwosIGluaXRfbWliX2ludGVybmFscy4zLCBwcmludF9kZXNjcmlwdGlvbi4zLAogICBwcmludF9taWIuMywgcHJpbnRfb2JqaWQuMywgcHJpbnRfdmFsdWUuMywKICAgcHJpbnRfdmFyaWFibGUuMywgcmVhZF9hbGxfbWlicy4zLCByZWFkX21pYi4zLAogICByZWFkX21vZHVsZS4zLCByZWFkX21vZHVsZV9ub2RlLjMsIHJlYWRfb2JqaWQuMywKICAgc25tcF9zZXRfbWliX3dhcm5pbmdzLjMsIHNubXBfc2V0X3NhdmVfZGVzY3JpcHRpb25zLjM6CgogICAtIG1hbi86IGFkZCBtYW4gZW50cmllcyBmb3IgbWFueSBsaWJyYXJ5IGZ1bmN0aW9ucyAocG9pbnRpbmcgdG8gc25tcF9hcGkuMykKICAgCjIwMDAtMDktMjggMTE6MDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmM6CgogICByZW1vdmUgc2Vjb25kIGNvcHkgb2Ygc3lzL3NvY2tldC5oCiAgIAoyMDAwLTA5LTI3IDEyOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oOgoKICAgLSAoZGxtb2QuaCk6IGFkZCB0aGUgVUNELURMTU9ELU1JQiB0byB0aGUgZGVmYXVsdCBsb2FkIGxpc3QuCiAgIAoyMDAwLTA5LTI3IDEyOjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMKOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1Y2Rfc25tcC5oLCBkbG1vZC5jKToKICAgICAtIGluY2x1ZGUgdWNkLXNubXAvZGxtb2QgYnkgZGVmYXVsdC4KICAgICAtIGJ1aWxkIGNvZGUgb25seSBpZiBkbG9wZW4gaXMgZm91bmQuCiAgIAoyMDAwLTA5LTI3IDA4OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgogICAgIC0gZG9uJ3QgcHJpbnQga2VybmVsIGJhc2VkIHdhcm5pbmcgbWVzc2FnZXMgd2hlbiAtciwgZXRjLCBpcyBzcGVjaWZpZWQuCiAgIAoyMDAwLTA5LTI2IDEzOjE3ICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIEZvciBXaW4zMiBBUEk6IERlY2xhcmUgc3RydG91bCwgdnNucHJpbnRmOyBFbmFibGUgcmV2ZXJzZSBCRVIgZW5jb2RpbmcuCiAgIAoyMDAwLTA5LTI2IDEzOjE1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgSW5jbHVkZSBzeXN0ZW0uaCAodnNucHJpbnRmIGRlY2wpCiAgIAoyMDAwLTA5LTI2IDEzOjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggdW5zaWduZWQgY29tcGFyaXNvbi4KICAgCjIwMDAtMDktMjYgMTM6MTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggdW5zaWduZWQgY29tcGFyaXNvbnMuCiAgIAoyMDAwLTA5LTI2IDEzOjEzICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRml4IHNpZ25lZCBjb21wYXJpc29uOyBSZW1vdmUgdW51c2VkIHZhci4KICAgCjIwMDAtMDktMjYgMTM6MTIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBJbmNsdWRlIGdldG9wdC5oIChvcHRhcmcgZGVjbCk7IFJlbW92ZSB1bnVzZWQgdmFyLgogICAKMjAwMC0wOS0yNiAxMzoxMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgTWF0Y2ggSW5pdGlhbGlzZV9UYWJsZSBhcmdzIDMsNCBkZWNsYXJhdGlvbnMgd2l0aCBkZWZpbml0aW9ucy4KICAgCjIwMDAtMDktMjYgMTI6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IG1ha2UgdGhlIGFkbWluc3RhdHVzIFJPTkxZLgogICAKMjAwMC0wOS0yNiAxMDoyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IGNob21wKCQxKSBpcyBpbGxlZ2FsLgogICAKMjAwMC0wOS0yNiAwMzowNCAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgd2luMzIvY29uZmlnLmg6CgogICBFeHBsaWNpdGx5IGJ1aWxkIHBhdGggdG8gQ0FDSEVGSUxFLCBhcyBub3QgYWxsIEMgY29tcGlsZXJzIHN1cHBvcnQgIiMjIi4KICAgCjIwMDAtMDktMjUgMTY6NTYgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICBjaGRpciBqdXN0IGJlZm9yZSBzZW5kaW5nIGNvbGRzdGFydCB0cmFwLCB0byBhbGxvdyBmb3IgcGF0aHMgdG8gYmUKICAgcmVzb2x2ZWQuCiAgIAoyMDAwLTA5LTI1IDA5OjM1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgY2FzZSBpbnNlbnNpdGl2ZSB0b2tlbiBzZWFyY2ggKHVzZSBzdHJjYXNlY21wKS4KICAgCjIwMDAtMDktMjIgMDY6MDMgIG5iYQoKICAgKiBtaWJzLzogSENOVU0tVEMudHh0LCBJRi1JTlZFUlRFRC1TVEFDSy1NSUIudHh0LAogICBJTkVULUFERFJFU1MtTUlCLnR4dCwgSVAtRk9SV0FSRC1NSUIudHh0LCBzbWlzdHJpcAo6CgogICAgLW1pYnMvOiBNSUIgdXBkYXRlcwogICAKMjAwMC0wOS0yMiAwNTo1NSAgbmJhCgogICAqIG1pYnMvOiBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCwKICAgSUFOQWlmVHlwZS1NSUIudHh0LCBNVEEtTUlCLnR4dCwgTWFrZWZpbGUuaW4sCiAgIE1ha2VmaWxlLm1pYiwgTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0LCBSRkMtMTIxNS50eHQKLCBSRkMxMTU1LVNNSS50eHQsIFJGQzEyMTMtTUlCLnR4dDoKCiAgIC0gbWlicy86IE1JQiB1cGRhdGVzCiAgIAoyMDAwLTA5LTIyIDA1OjUyICBuYmEKCiAgICogbWFuL3NubXBzZXQuMSwgbWFuL3NubXB0cmFwLjEsIHNubXBsaWIvc25tcF9hcGkuYwosIGFwcHMvc25tcHNldC5jOgoKICAgLSBzbm1wX2FwaS5jOiBzdXBwb3J0IHNldHRpbmcgb2YgQklUUyB2YXJpYWJsZXMKICAgCjIwMDAtMDktMjIgMDU6NTAgIG5iYQoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIC0gc25tcHN0YXR1cy5jOiBzaG93IGVycm9yIG9iamVjdAogICAKMjAwMC0wOS0yMiAwNDoyOSAgbmJhCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSBzbm1wdXNtLmM6IGlzc3VlIGVycm9yIG1lc3NhZ2Ugd2l0aCBvYmplY3QKICAgCjIwMDAtMDktMjIgMDQ6MjggIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSBzeXN0ZW0uaDogcHJvdmlkZSBwcm90b3R5cGVzIGZvciBzdHJ0b2wsIHN0cnRvdWwsIHNucHJpbnRmLCB2c25wcmludGYKICAgCjIwMDAtMDktMjIgMDQ6MjcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gdmFjbV92YXJzLmM6IHByb3RlY3QgYWdhaW5zdCBvdmVycnVuIG9mIHN0cmluZ3MKICAgCjIwMDAtMDktMjEgMTY6MTcgIG5iYQoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jCiwgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsCiAgIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB3YWxrLmM6CgogICAtIGFwcHMvOiBkaXNwbGF5IGZhaWxlZCBvYmplY3Qgd2hlbiBvbmUgaXMgaWRlbnRpZmllZCBieSBwZHUtPmVycmluZGV4CiAgIAoyMDAwLTA5LTIxIDE1OjU5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcGRmLjE6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGRmLjEpOiBkb2N1bWVudCB0aGUgc25tcGRmIGNvbW1hbmQuCiAgIAoyMDAwLTA5LTIxIDE1OjUwICBuYmEKCiAgICogbWFuL3NubXB0YWJsZS4xLCBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGU6IHVzZSBHRVRCVUxLIHRvIGNvbGxlY3QgZGF0YSB3aGVuIHByb3RvY29sIGFsbG93cyBpdC4gQWRkCiAgIAktQ0Igb3B0aW9ucyB0byBmYWxsIGJhY2sgdG8gR0VUTkVYVC4KICAgCjIwMDAtMDktMjEgMTU6MzggIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYywKICAgbWFuL3NubXBjbWQuMToKCiAgIC0gbWliLmM6IHJld3JpdGUgaW5kZXggaGFuZGxpbmcgaW4gb2JqZWN0IGlkcywgdG8gYWxsb3cgc3ltYm9saWMgZW51bXMuCiAgIAlBZGQgRGF2ZXMgc3VnZ2VzdGVkIC1PdiBvdXRwdXQuIEFsc28gZW5oYWNlIC1UZCBvdXRwdXQgdG8KICAgCWRlc3Rpbmd1aXNoIE9CSkVDVC1UWVBFIGZyb20gVFJBUC1UWVBFLCBNT0RVTEUtSURFTlRJVFkgZXRjLgogICAKMjAwMC0wOS0yMSAxNTozMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGYuYzoKCiAgIC0gKHNubXBkZi5jKTogdXNlIHRoZSBVQ0QtU05NUC1NSUIncyBkc2tUYWJsZSBpZiB0aGUKICAgICBIT1NULVJFU09VUkNFUy1NSUIgaXMgZW1wdHkgb3IgaWYgLUN1IGlzIHNwZWNpZmllZCBvbiB0aGUgY29tbWFuZCBsaW5lLgogICAKMjAwMC0wOS0yMSAxNToyOCAgbmJhCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSBwYXJzZS5jOiBhZGQgYWJpbGl0eSB0byBjb2xsZWN0IFZBUklBQkxFUy9PQkpFQ1RTIGZvciBUUkFQLVRZUEUKICAgCWFuZCBOT1RJRklDQVRJT04tVFlQRS4gSWdub3JlIGZpbGVzIHRoYXQgZG9lcyBub3QgaGF2ZSBERUZJTklUSU9OUwogICAJYXMgdGhlaXIgc2Vjb25kIHRva2VuLiBFbmhhbmNlIC1UZCBvdXRwdXQgYWNjb3JkaW5nbHkuCiAgIAoyMDAwLTA5LTIxIDE1OjIyICBuYmEKCiAgICogc25tcGxpYi9zbnByaW50Zi5jLCBzbm1wbGliL3N0cnRvbC5jLAogICBzbm1wbGliL3N0cnRvdWwuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywgYWNjb25maWcuaCwgY29uZmlndXJlLmluCiwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZToKCiAgIC0gc25tcGxpYjogYWRkIHNucHJpbnRmLCBzdHJ0b2wsIHN0cnRvdWwgZm9yIHN5c3RlbXMgdGhhdCBkb24ndCBoYXZlIHRoZW0KICAgCjIwMDAtMDktMjEgMTU6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmg6CgogICAtIChtaWIuaCk6IGFkZCBmYWtlIHN0cnVjdCBkZWZpbml0aW9uIGZvciBlbnVtcwogICAKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgogICAqIHNubXBsaWIvc3RydG91bC5jOgoKICAgZmlsZSBzdHJ0b3VsLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCiAgICogc25tcGxpYi9zdHJ0b2wuYzoKCiAgIGZpbGUgc3RydG9sLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA5LTIxIDE0OjE2ICBuYmEKCiAgICogc25tcGxpYi9zbnByaW50Zi5jOgoKICAgZmlsZSBzbnByaW50Zi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOS0yMSAwNjoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaDoKCiAgIC0gKG1pYi5jLCBtaWIuaCk6IG1ha2Ugc3ByaW50KiBub24tc3RhdGljIChidWcgIzEzMikuCiAgIAoyMDAwLTA5LTIxIDAwOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CiAgICAgLSBmaXggYnVnICMzNjAgd2hlcmUgYSBjbGllbnQgbWlnaHQgcmVtb3ZlIGEgYWxhcm0gcmVnaXN0cmF0aW9uCiAgICAgICBkdXJpbmcgYSBjYWxsIHRvIHRoZSBhbGFybSBmdW5jdGlvbiBhbmQgaW52YWxpZGF0ZSB0aGUgcG9pbnRlcgogICAgICAgYmVpbmcgdXNlZCBieSB0aGUgY2FsbGluZyBmdW5jdGlvbi4KICAgCjIwMDAtMDktMjEgMDA6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiAtLWRpc2FibGUtc2hhcmVkIGJ5IGRlZmF1bHQgaW4gY3ZzIGNoZWNrb3V0cy4KICAgCjIwMDAtMDktMjAgMTc6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBzcGFjZSBpbmRlbnQgdG9rZW5zIGlmICMgcHJlcGVuZGVkLgogICAKMjAwMC0wOS0yMCAxNzozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIC0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBudWxsIGludGVybmFsIGhlbHAgbGluZXMuCiAgIAoyMDAwLTA5LTIwIDE3OjI5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBtb25pdG9yKTogZGlzaywgcHJvYywgYW5kIGxvYWQgY2hlY2tzLgogICAKMjAwMC0wOS0yMCAxNzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIHNubXBsaWIvc25tcHYzLmM6CgogICAtICh2YWNtX3ZhcnMuYywgdXNtVXNlci5jLCBzbm1wdjMuYyk6IE5VTEwgb3V0IGhlbHAgbWVzc2FnZXMgZm9yIC5jb25mCiAgICAgdG9rZW5zIHRoYXQgYXJlIGVpdGhlciBpbnRlcm5hbCBvciBubyBsb25nZXIgdGhlIHN0YW5kYXJkIHdheSBvZgogICAgIGRvaW5nIHRoaW5ncy4KICAgCjIwMDAtMDktMjAgMTc6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBleHBvcnQgU05NUENPTkZQQVRIIHRvIE1ha2VmaWxlcwogICAKMjAwMC0wOS0yMCAxNzoyNSAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBjb3JyZWN0aW9uIG9mIHRhYmxlIG5hbWUuICBNb3JlIGVycm9ycyBleGlzdC4KICAgCjIwMDAtMDktMjAgMTY6NDYgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGRlYnVnZ2luZywgbWlicywgb3V0cHV0KTogbW9yZSBzbm1wLmNvbmYgc25tcGNvbmYgY29uZmlnIGZpbGVzLgogICAKMjAwMC0wOS0yMCAxNToxNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgYXV0aG9wdHMpOiBzbm1wLmNvbmYgc3VwcG9ydCBmb3IgYmFzaWMgYXV0aGVudGljYXRpb24gb3B0aW9ucy4KICAgCjIwMDAtMDktMjAgMTQ6NTUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOgogICAgLSBkb24ndCBmb3JjZSByZWFkaW5nIG9mIC91c3IvbG9jYWwvc2hhcmUvc25tcGQuY29uZi4KICAgIC0gZG9uJ3QgcHJpbnQgdW5rbm93biBkaXJlY3RpdmUgY29tbWVudCBoZWFkZXJzIGlmIHRoZXJlIGFyZW4ndCBhbnkuCiAgIAoyMDAwLTA5LTIwIDE0OjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIC0gKHNubXBjb25mKTogc3BhY2UgdGhpbmdzIG91dCBvbiB0aGUgc2NyZWVuIGEgYml0IGJldHRlci4KICAgCjIwMDAtMDktMjAgMTQ6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4sIHNubXBjb25mOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBjb25mKTogaW5zdGFsbCBzbm1wY29uZiBhbmQgaXRzIHZhcmlvdXMgc3VwcG9ydCBmaWxlcy4KICAgCjIwMDAtMDktMjAgMTQ6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGRvIHJldmVyc2UgdjMgaGVhZGVyIGVuY29kaW5nIHdpdGggYSBzdGF0aWMgYnVmZmVyLgogICAKMjAwMC0wOS0yMCAxMTozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IG1pc2MgdXBkYXRlcyBhbmQgaW1wcm92ZW1lbnRzLgogICAKMjAwMC0wOS0yMCAwODo1NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IEZpeCBkeW5hbWljIGFycmF5ICBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IEpvY2hlbiBLbWlldHNjaC4KICAgCjIwMDAtMDktMjAgMDI6MDUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBEb24ndCBpbmNsdWRlIGNvbnRleHQgc3RyaW5ncyBvbiBQRFVzIHRoYXQgc2hvdWxkbid0IGhhdmUgdGhlbQogICAJKFRoYW5rcyB0byBQZWRybyBQZXJlaXJhIGZvciBpZGVudGlmeWluZyB0aGlzKQogICAKMjAwMC0wOS0xOSAxNzowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICAtIChzbm1wY29uZik6IHJlYWQgb2xkZXIgY29uZmlndXJhdGlvbiBmaWxlcyBpbiBhbmQgbWVyZ2Ugd2l0aCBuZXcgcmVzdWx0cy4KICAgCjIwMDAtMDktMTkgMTQ6NDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBwcmludCBwZHUgdHlwZSBvbiBkZWJ1Z2dpbmcgZHVtcCBvdXRwdXQuCiAgIAoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wLmM6CgogICAtIChhc24xLmMsIHNubXAuYyk6IHJldmVyc2UgZW5jb2Rpbmcgc3VwcG9ydCBmb3Igc3BlY2lhbGl6ZWQgb3BhcXVlCiAgICAgZGF0YXR5cGVzIChmbG9hdCwgZG91YmxlLCBldGMpLgogICAKMjAwMC0wOS0xOSAxNDoxNSAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNDoKCiAgIC0gKGFjbG9jYWwubTQpOiBkb2N1bWVudCBtYWNyb3MgYSBiaXQgbW9yZSBmb3Igc3VibWlzc2lvbiB0byB0aGUKICAgICBhdXRvY29uZiBtYWNybyBsaWJyYXJ5LgogICAKMjAwMC0wOS0xOSAwODozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEZpeCBidWcgIzI5NSByZXBvcnRlZCBieSBKb2huIFdoaXRuZXkgam9obndAYWlpbmV0LmNvbQogICAKMjAwMC0wOS0xOCAxNDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuaCwgc25tcGQuaDoKCiAgIC0gKHNubXBfdmFycy5oLCBzbm1wZC5oKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKICAgICAtIG1vdmUgZ2V0U3RhdFB0ciBkZWZpbml0aW9uIHRvIHByb3BlciAuaCBmaWxlLgogICAKMjAwMC0wOS0xOCAxNDo1NSAgbXNsaWZjYWsKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEZpeCBidWcgIzM0NyByZXBvcnRlZCBieSBkYXNfZGVuaXpAeWFob28uY29tOiBtYWtlIHNiaW4gaW5zdGFsbCBkaXIKICAgCjIwMDAtMDktMTQgMDk6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBhZGQgYSBwb3J0IHNwZWNpZmljYXRpb24gc25tcGQuY29uZiB0b2tlbi4KICAgCjIwMDAtMDktMTQgMDg6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gKGFnZW50X3RyYXAuYyk6IGlnbm9yZSBvdXRwdXQgb2YgZ2V0aG9zdGJ5bmFtZSBmb3IgdHJhcCBzZXNzaW9uIGFkZGluZy4KICAgCjIwMDAtMDktMTMgMTU6MDYgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgLSAoc25tcGNvbmYpOiBuZXcgdXRpbGl0eSB0byBnZW5lcmF0ZSAuY29uZiBmaWxlcyBieSBwcm9tcHRpbmcgdGhlCiAgICAgdXNlciB3aXRoIHF1ZXN0aW9ucy4KICAgCjIwMDAtMDktMDggMTM6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICAtIChwcm94eS5jKTogUGF0Y2ggZnJvbSBTY290dCBMaXBjb246CiAgICAgLSBmaXggcHJveHkgc3VwcG9ydCBmb3IgbnVsbCBsZW5ndGggc3RyaW5ncy4KICAgCjIwMDAtMDktMDcgMTA6MTIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAtIGZpeCBvcGVuc3NsIGNoZWNrcy4KICAgIC0gcnVuIGF1dG9oZWFkZXIuCiAgIAoyMDAwLTA5LTA1IDEzOjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFwcHMvc25tcGJ1bGtnZXQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmM6CgogICBNaW5vciB0b3VjaHVwcyB0byBidWlsZCBvbiBXaW4zMiBwbGF0Zm9ybS4KICAgCjIwMDAtMDktMDUgMTM6MzQgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogd2luMzIuZHN3LCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgc25tcGRmLy5jdnNpZ25vcmUsIHNubXBkZi9zbm1wZGYuZHNwLAogICBzbm1wdmFjbS8uY3ZzaWdub3JlLCBzbm1wdmFjbS9zbm1wdmFjbS5kc3A6CgogICBXZWxjb21lIHRoZSBuZXdlc3QgdWNkLXNubXAgYXBwbGljYXRpb25zIHRvIHRoZSBXaW4zMiBidWlsZHMuCiAgIAoyMDAwLTA5LTA0IDE1OjE5ICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jOiByZXN0YXJ0IGVycm9yY291bnQgd2hlbiByZWxvYWRpbmcgY29uZmlnCiAgIAoyMDAwLTA5LTA0IDE1OjEyICBuYmEKCiAgICogbWFuL3NubXBuZXRzdGF0LjE6CgogICAtIHNubXBuZXRzdGF0LjE6IGFsaWduIG1hbiBwYWdlIHdpdGggcHJvZ3JhbQogICAKMjAwMC0wOS0wNCAxNToxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgLSBpcEFkZHIuYzogcmVtb3ZlIGEgYmFkIG50b2hsIGZvciBPcGVuQlNECiAgIAoyMDAwLTA5LTA0IDE1OjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJpbmNsLmgsIG1pYklJL3RjcC5jLAogICBtaWJJSS90Y3BUYWJsZS5jLCBtaWJJSS91ZHAuYywgbWliSUkvdWRwVGFibGUuYzoKCiAgIC0gbWliaW5jbC5oLCB7dGMsdWR9cHssVGFibGV9LmM6IGVuc3VyZSBqdXN0IG9uZSBpbmNsdWRlIG9mIHNvY2tldC5oCiAgIAl0byBtYWtlIHVucHJvdGVjdGVkIGluY2x1ZGUgZmlsZSBpbiBVbHRyaXggaGFwcHkKICAgCjIwMDAtMDktMDQgMTU6MDUgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gY29uZmlndXJlLmluOiBtYWtlIC0td2l0aG91dC1saWJ3cmFwIHdvcmsKICAgCjIwMDAtMDktMDEgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5oOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgLSB1cGRhdGVkIGNvZGUuCiAgIAoyMDAwLTA5LTAxIDExOjU0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBTY290dCBMaXBjb24gbm90ZWQgdGhhdCBzbm1wdHJhcGQgZG9lc24ndCBzdXBwb3J0IC1ULgogICAKMjAwMC0wOC0zMCAxMzoyOCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZml4IGxvb3AgaW4gc3ludGF4IGVycm9yIGluIERFRlZBTCBjbGF1c2UuIEFsc28gZml4IHJlYWRpbmcKICAgCW9mIC5pbmRleCBmaWxlIHdpdGggZmlsZW5hbWVzIGNvbnRhaW5pbmcgYmxhbmtzLgogICAKMjAwMC0wOC0yOCAxMzo0MyAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIG1pbm9yIHN5bnRheCBnbGl0Y2ggaW4gUE9EIGRvY3MKICAgCjIwMDAtMDgtMjQgMDE6NTUgIGRhdmVzCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChhcHBzL3NubXB0YWJsZS5jKTogRml4IGJ1ZyB3aXRoIGRpc3BsYXlpbmcgaGVhZGVyLWxlc3MgaW5kZXhlZCB0YWJsZXMKICAgCShUaGFua3MgdG8gRXJuaWUgTWlsbGVyKQogICAKMjAwMC0wOC0xOSAxMToyOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBBcHBseSBwYXRjaCBmcm9tIDxDaHJpc3RvcGguTWFtbWl0enNjaEB0dS1jbGF1c3RoYWwuZGU+CiAgIHRvIGZpeCBzaWduIGluIGFzbl9yYnVpbGRfdW5zaWduZWRfaW50IC4KICAgCjIwMDAtMDgtMTggMDQ6MTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIHJlc3RvcmUgcHJldmlvdXMgdmVyc2lvbjsgb3BlbmJzZCwgc29sYXJpcywgbGludXggYnVpbGQgb2suCiAgIAoyMDAwLTA4LTE4IDAzOjQ0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICByZW1vdmUgdW51c2VkIHByaW50ZiBhcmd1bWVudCBwYXNzZWQgdG8gc25tcF9sb2cuCiAgIAoyMDAwLTA4LTE4IDAzOjIwICBtc2xpZmNhawoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBmaXggYnVnIDI1MyB3aXRoIHBhdGNoIHN1cHBsaWVkIGJ5IEplZmZyZXkgSG9uaWcgPGpjaEBic2RpLmNvbT4KICAgCjIwMDAtMDgtMTggMDI6NTIgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDIwc25tcHYzZ2V0LCBUMDIxc25tcHYzZ2V0bmV4dDoKCiAgIGZpeCBidWcgMzE4IC0gdGVzdCA5IGFuZCAxMCBleHBsaWNpdGx5IGNyZWF0ZSB0aGUgdGVzdCB1c2VyLgogICAKMjAwMC0wOC0xNyAxMzo0MiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgVGhlIGJhdHRsZSB0byB0cmltIG5ld2xpbmVzIGNvcnJlY3RseSBjb250aW51ZXMuLi5yZWR1Y2UgbGVuZ3RoIGJ5IG9uZS4KICAgCjIwMDAtMDgtMTYgMTU6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdXNtLmM6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wdXNtLmMpOiBmaXggdmFyaW91cyBlbmNyeXB0aW9uL2RlY3J5cHRpb24gcHJvYmxlbXMuCiAgIAoyMDAwLTA4LTE2IDE1OjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogZml4IHBhZGRpbmcgc2l6ZSBpbiBlbmNyeXB0aW9uLgogICAKMjAwMC0wOC0xNiAxNDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IHNldCBwbGFpbnRleHQgbGVuZ3RoIGF0IHRoZSBlbmQgb2Ygc2NfZGVjcnlwdC4KICAgCjIwMDAtMDgtMTUgMDU6MDggIG1zbGlmY2FrCgogICAqIEZBUToKCiAgIEZpeCBidWcgMjg0IHdpdGggYSBzaG9ydCBleHBsYW5hdGlvbiBhYm91dCBzbm1wLmNvbmYuCiAgIAoyMDAwLTA4LTE1IDAzOjAwICBtc2xpZmNhawoKICAgKiBJTlNUQUxMOgoKICAgRml4IGJ1ZyAyODMgLSB1bWFzayAwMjIsIG1ha2UgaW5zdGFsbC4gVGhhbmtzIHRvIGNzYWJhLnRvdGhAc3prLmJrZS5odQogICAKMjAwMC0wOC0xNSAwMDowOCAgbmJhCgogICAqIGFwcHMvOiBzbm1wdGVzdC5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgc25tcHRlc3QuYzoKCiAgIC0gc25tcHRlc3QuYzogb3ZlcmhhdWwgaW5wdXRfdmFyaWFibGUsIGtpbGwgbmV3bGluZQogICAKMjAwMC0wOC0xNCAyMjowNSAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlIChWNC0xLTEtcGF0Y2hlcy5bMSwwLDBdKSwKICAgYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIGFjbG9jYWwubTQsIGNvbmZpZ3VyZS5pbjogZml4ZXMgZm9yIGNvbmZpZ3VyZSAtLXNpbGVudAogICAKMjAwMC0wOC0xNCAxNzoyNyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gLS1lbmFibGUtc2lsZW50LWxpYnRvb2wgdG8gbWFrZSBOaWVscyBzbWlsZS4KICAgCjIwMDAtMDgtMTQgMTc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBpbXBsZW1lbnQgYSBuZXcgKGRlZmF1bHQpIGVuZ2luZUlEIHR5cGUgYmFzZWQKICAgICBvbiBhIHJhbmRvbSBudW1iZXIsIGFuZCBhIHRpbWVzdGFtcC4KICAgICAtIEkgdGhpbmsgaXQgd29uJ3QgaW52YWxpZGF0ZSBleGlzdGluZyBpbnN0YWxsYXRpb25zIChoZWgpLgogICAKMjAwMC0wOC0xNCAxNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBpZiAtRHJlYWRfY29uZmlnLCB0aGVuIHByaW50IGV2ZW4gbm8taGVscCB0b2tlbnMgYW5kIGEgKiBmb3IgUFJFTUlCIG9uZXMuCiAgIAoyMDAwLTA4LTE0IDE0OjUxICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywgYXBwcy9zbm1wYnVsa2dldC5jCiwgc25tcGxpYi9nZXRvcHQuaCwgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKG1hbnkpOiBwb3J0YWJpbGl0eSBmaXhlcyBmb3IgT3BlbkJTRCAyLjYsIEZyZWVCU0QgNC4xLCBVbHRyaXggNC41CiAgIAoyMDAwLTA4LTE0IDExOjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBZaWdhbCBIb2NoYmVyZzoKICAgICAtIHJlbW92ZSB1bnVzZWQgY29udGV4dCB2YXJpYWJsZXMuCiAgIAoyMDAwLTA4LTE0IDExOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogUGF0Y2ggZnJvbSBZaWdhbCBIb2NoYmVyZzoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUga2V5bGVuZ3RoIGNoZWNrLgogICAKMjAwMC0wOC0xMSAxMzowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IG9wdGltaXplIHJldmVyc2UgZW5jb2Rpbmcgb2YgdmFyYmluZGxpc3RzLgogICAKMjAwMC0wOC0xMSAwODo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvUkVBRE1FLm1pYjJjOgoKICAgLSAoUkVBRE1FLm1pYjJjKTogUGF0Y2ggZnJvbSBKYW4gQWxmcmVkIFNhbmR2ZW46CiAgICAgLSB0eXBvcy4KICAgCjIwMDAtMDgtMTEgMDY6MDUgIG5iYQoKICAgKiBhcHBzLzogc25tcGJ1bGtnZXQuYywgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jCiwgc25tcGRmLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLAogICBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBzbm1wdXNtLmMsIHNubXB2YWNtLmMKLCBzbm1wd2Fsay5jOgoKICAgLSBhcHBzLyo6IHNubXBhcHAgLVYgc2hvdWxkIG5vdCBnaXZlIHRoZSB1c2FnZSBtZXNzYWdlIHRvby4KICAgCjIwMDAtMDgtMTEgMDA6NDMgIG5iYQoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOCAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXB0cmFwZC44OgoKICAgLSBzbm1wdHJhcGQuODogZml4IHR5cG8uIFRoYW5rcyB0byBHLiBBbGxlbiBNb3JyaXMgSUlJIDxnYW0zQGFjbS5vcmc+CiAgIAoyMDAwLTA4LTEwIDIzOjIzICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBwcmVkZWZpbmUgT2JqZWN0U3ludGF4LCBBcHBsaWNhdGlvblN5bnRheCwgU2ltcGxlU3ludGF4IGFuZAogICAJT2JqZWN0TmFtZQogICAKMjAwMC0wOC0xMCAxNjoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgbWliMmM6CgogICAtIChNYWtlZmlsZS5pbiwgbWliMmMpOgogICAgIC0gbWFrZSBtaWIyYyBsb29rIGluICQoc25tcGxpYmRpcikgZm9yIC5jb25mIGZpbGVzLgogICAgIC0gaW5zdGFsbCBtaWIyYyBhbmQgLmNvbmYgZmlsZXMuCiAgIAoyMDAwLTA4LTEwIDE0OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jKTogZHluYW1pY2FsbHkgZGVjaWRlIHRvIHJldmVyc2UvZm9yd2FyZCBlbmNvZGUuCiAgIAoyMDAwLTA4LTEwIDE0OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAtIChleHRlbnNpYmxlLmMpOiBmaXggQ1IgdGVybWluYXRpb24uCiAgIAoyMDAwLTA4LTEwIDE0OjI1ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogZGVmaW5lIHJldmVyc2UgZW5jb2Rpbmcgb24gYnkgZGVmYXVsdC4KICAgCjIwMDAtMDgtMTAgMTM6MDIgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgZml4IGJ1ZyAyNTIgZm9yIGNvbmZpZ3VyZSBhbmQgc3lzL3NvY2tldC5oIG9uIEJTRC9PUyA0LjIKICAgCjIwMDAtMDgtMTAgMDk6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wLmgKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsCiAgIHNubXB1c20uaCwgc25tcHYzLmM6CgogICAtIChhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywKICAgICBzbm1wdXNtLmgsIHNubXB2My5jKToKICAgICAtIGltcGxlbWVudCByZXZlcnNlIGVuY29kZWQgbWVzc2FnZXMuCiAgICAgICAtIFRPRE86IGNsZWFuIHVwLCBydW4tdGltZSBkZXRlcm1pbmF0aW9uIG9mIHdlYXRoZXIgdG8gdXNlIGl0IG9yIG5vdC4KICAgCjIwMDAtMDgtMDkgMTU6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeCBidWcgMzMxIHdpdGggcGF0Y2ggaW4gcGFydCBwcm92aWRlZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgogICAKMjAwMC0wOC0wOSAxNToyNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHZhY20uYzoKCiAgIG5vIC8vIGNvbW1lbnQsIGluIGRlZmVyZW5jZSB0byBub24tQU5TSS1DIGNvbXBpbGVycy4KICAgCjIwMDAtMDgtMDkgMDc6MjEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIGhyX3N3cnVuLmM6IGZpeCB0aGUgUnVuUGF0aCBmb3Igc3dhcHBlZCBvdXQgTGludXggcHJvY2VzcwogICAKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9wcmludC5jIChWNC0xLTEtcGF0Y2hlcy4yKSwgaHJfcHJpbnQuYwo6CgogICAtIGhyX3ByaW50LmM6IGZpeCBhIGRlYnVnIHRva2VuCiAgIAoyMDAwLTA4LTA5IDA0OjQ0ICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIG1haW4uYzogZml4IHBhcnNpbmcgb2YgLXYKICAgCjIwMDAtMDgtMDggMTA6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYzoKCiAgIC0gKGV4dGVuc2libGUuYyk6IHN0cmlwIG5ld2xpbmVzLgogICAKMjAwMC0wOC0wOCAwODo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogUGF0Y2ggZnJvbSBTY290dCBMaXBjb246IHN0YXJ0IG9wdGluZCBhdCAxIG5vdCAwLgogICAgIC0KICAgCjIwMDAtMDgtMDggMDY6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgRml4IGJ1ZyAjMjk1IChmcmVlICpzZWNTdGF0ZVJlZiBiZWZvcmUgYWxsb2NhdGluZyBhbm90aGVyIG9uZSkuCiAgIAoyMDAwLTA4LTA4IDA2OjA1ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhZ2VudC9zbm1wZC5jOgoKICAgZml4IGJ1ZyAjMjk4IHJlcG9ydGVkIGFuZCBwYXRjaCBzdXBwbGllZCBieSBDb25yYWQgTGluayA8Y2xpbmtAbWwuY29tPgogICAKMjAwMC0wOC0wOCAwNDo1OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9hcGkuYzogZml4IGEgYnVzeSBsb29wIHdoZW4gYWxhcm0gcXVldWUgaXMgYWN0aXZlIHdpdGhvdXQgYW55CiAgIAlvdXRzdGFuZGluZyByZXF1ZXN0cwogICAKMjAwMC0wOC0wOCAwNDo0NyAgbmJhCgogICAqIG1hbi9zbm1wc2V0LjE6CgogICAtIHNubXBzZXQuMTogY2Fubm90IHNldCBjb3VudGVycwogICAKMjAwMC0wOC0wOCAwNDo0MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4ZWQgKEJVRyMzMzIpIHVzaW5nIHBhdGNoIHN1Ym1pdHRlZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgogICBBbHNvIGNvbnNvbGlkYXRlZCBjb21tZW50cyBhYm91dCB0aGUgZm91ciBzZW5kIFBEVSBmdW5jdGlvbnMuCiAgIAoyMDAwLTA4LTA3IDA2OjU5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggbGVhayBpbiByZXBvcnRhYmxlIGVycm9ycyBmb3VuZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgogICAKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgogICAqIG1hbi9hZGRfbW9kdWxlX3JlcGxhY2VtZW50LjM6CgogICBmaWxlIGFkZF9tb2R1bGVfcmVwbGFjZW1lbnQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDU6NDggIG5iYQoKICAgKiBtYW4vcmVhZF9vYmppZC4zOgoKICAgZmlsZSByZWFkX29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3NubXBfc2V0X21pYl93YXJuaW5ncy4zOgoKICAgZmlsZSBzbm1wX3NldF9taWJfd2FybmluZ3MuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMzoKCiAgIGZpbGUgc25tcF9zZXRfc2F2ZV9kZXNjcmlwdGlvbnMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vcmVhZF9tb2R1bGVfbm9kZS4zOgoKICAgZmlsZSByZWFkX21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3JlYWRfbW9kdWxlLjM6CgogICBmaWxlIHJlYWRfbW9kdWxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3JlYWRfbWliLjM6CgogICBmaWxlIHJlYWRfbWliLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3JlYWRfYWxsX21pYnMuMzoKCiAgIGZpbGUgcmVhZF9hbGxfbWlicy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9wcmludF92YXJpYWJsZS4zOgoKICAgZmlsZSBwcmludF92YXJpYWJsZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9wcmludF92YWx1ZS4zOgoKICAgZmlsZSBwcmludF92YWx1ZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9wcmludF9vYmppZC4zOgoKICAgZmlsZSBwcmludF9vYmppZC4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9wcmludF9taWIuMzoKCiAgIGZpbGUgcHJpbnRfbWliLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL3ByaW50X2Rlc2NyaXB0aW9uLjM6CgogICBmaWxlIHByaW50X2Rlc2NyaXB0aW9uLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL2luaXRfbWliLjM6CgogICBmaWxlIGluaXRfbWliLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCiAgICogbWFuL2luaXRfbWliX2ludGVybmFscy4zOgoKICAgZmlsZSBpbml0X21pYl9pbnRlcm5hbHMuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKICAgKiBtYW4vZ2V0X21vZHVsZV9ub2RlLjM6CgogICBmaWxlIGdldF9tb2R1bGVfbm9kZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgogICAqIG1hbi9hZGRfbWliZGlyLjM6CgogICBmaWxlIGFkZF9taWJkaXIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDgtMDQgMTc6MTMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhZGQgaW4gdGhlIG5vdGlmaWNhdGlvbiBncm91cCBieSBkZWZhdWx0LgogICAKMjAwMC0wOC0wNCAxNzowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLmg6CgogICAtIChub3RpZmljYXRpb24uaCk6IG5vdGlmaWNhdGlvbiBtaWIgd3JhcHBlci4KICAgCjIwMDAtMDgtMDQgMTc6MDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAtIGluaXRpYWxpemUgb3B0aW5kIGJlZm9yZSBjYWxsaW5nIGdldG9wdC4KICAgIC0gZGVidWdnaW5nIG91dHB1dC4KICAgCjIwMDAtMDgtMDQgMTY6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICAtIChwcm94eS5jKTogcHJvcGVybHkgc2V0IHRoZSBmaXJzdCAodW51c2VkKSBhcmd1bWVudCB0byBzbm1wX3BhcnNlX2FyZ3MoKS4KICAgCjIwMDAtMDgtMDQgMTY6NTMgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBtaWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtIChhZ2VudF90cmFwLmMsIHNubXBOb3RpZnlUYWJsZS5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICAgc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgdGFyZ2V0LmMpOgogICAgIC0gaWYgdXNpbmcgdGhlIHNubXBOb3RpZmljYXRpb25UYWJsZSwgaW5zZXJ0IG5vbi12MSB0cmFwIHNpbmtzIGludG8gaXQuCiAgIAoyMDAwLTA4LTA0IDA1OjI2ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJKSi5oOgoKICAgLSAobWliZ3JvdXAvbWliSkouaCBtaWJncm91cC9taWJKSi8qKTogRXhwZXJpbWVudGFsIHJlLXdyaXRlIG9mIG1pYklJCiAgIAoyMDAwLTA4LTA0IDA1OjIxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAobWliZ3JvdXAvdXRpbF9mdW5jcy5bY2hdKTogTmV3ICdjYWNoZWQgdGFibGUnIHJvdXRpbmVzCiAgIAoyMDAwLTA4LTAzIDA4OjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggYnVnICMzMjUgaWRlbnRpZmllZCBieSBKb2huIE5heWxvbiA8amJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tPgogICAKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgogICAqIG1pYnMvSVAtRk9SV0FSRC1NSUIudHh0OgoKICAgZmlsZSBJUC1GT1JXQVJELU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9JTkVULUFERFJFU1MtTUlCLnR4dDoKCiAgIGZpbGUgSU5FVC1BRERSRVNTLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCiAgICogbWlicy9JRi1JTlZFUlRFRC1TVEFDSy1NSUIudHh0OgoKICAgZmlsZSBJRi1JTlZFUlRFRC1TVEFDSy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgogICAKMjAwMC0wOC0wMyAwMToyNCAgbmJhCgogICAqIG1pYnMvSENOVU0tVEMudHh0OgoKICAgZmlsZSBIQ05VTS1UQy50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA4LTAyIDA3OjA2ICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBTaWxlbnQgcnVubmluZyBncmVwIHJlc3VsdHMuCiAgIAoyMDAwLTA4LTAyIDA2OjEwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggQlVHICMyOTE6IGFsbG93ICIyNTUuMjU1LjI1NS4yNTUiIGZvciB0ZXh0IGlucHV0IHRvIEFTTl9JUEFERFJFU1MKICAgCjIwMDAtMDgtMDIgMDU6MjAgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFwcHMvc25tcHRlc3QuYwo6CgogICBGaXggKEJVRyMzMjMpOiBmcmVlIFBEVSB3aGVuIHNubXBfc2VuZCBmYWlscy4KICAgCjIwMDAtMDgtMDIgMDU6MDYgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBBZGQgLXAgb3B0aW9uIG9uY2UgdG8gc25tcGQgYXJncy4KICAgRmluZCBNSUJESVJTIGluIHNvdXJjZSB0cmVlLgogICBGaXggY29uZGl0aW9uIHRvIHNldCBQQVRILgogICAKMjAwMC0wOC0wMSAyMzozMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICAtIGlwLmM6IE9uZSBtb3JlICNpZiBzb2xhcmlzCiAgIAoyMDAwLTA4LTAxIDIzOjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIC0gaXAuYzogQSBiYWQgI2lmIC4uLiB0aGUgcHJvcGVyIGRlZmluZSB0byB0ZXN0IGZvciBTb2xhcmlzIGlzIHNvbGFyaXMyCiAgIAoyMDAwLTA4LTAxIDE2OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmUgdW51c2VkIHVzYWdlKCkgdHlwZWRlZi4KICAgCjIwMDAtMDgtMDEgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcHJveHkuYywgcHJveHkuaDoKCiAgIC0gKHByb3h5LmMsIHByb3h5LmgpOiAtV2FsbCB3YXJuaW5nIGZpeGVzLgogICAKMjAwMC0wOC0wMSAxNjozOSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbWVudGlvbiBuZXdlciB2ZXJzaW9ucyBvZiBTb2xhcmlzLgogICAKMjAwMC0wOC0wMSAxNjozNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaCwgdGVzdGluZy9URVNUQ09ORi5zaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChURVNUQ09ORi5zaCwgVEVTVENPTkYuc2guaW4pOiByZXZlcnQgdG8gbm9uLWNvbmZpZ2VkIFRFU1RDT05GLgogICAKMjAwMC0wOC0wMSAxNjozMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSAoTWFrZWZpbGUudG9wKTogbWFrZSB1bi1xdWlldC4KICAgCjIwMDAtMDgtMDEgMTA6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXAtdWNkLnNoOgoKICAgLSAoc25tcC11Y2Quc2gpOiBmaXggYnVnICMyOTcgKGRvbid0IGtpbGwgZ3JlcCBhbmQgaW5pdCBzY3JpcHQgaW52b2NhdGlvbnMpLgogICAKMjAwMC0wOC0wMSAwNDo0NSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBGaXggYnVnIGZvdW5kIGJ5IFlpZ2FsIEhvY2hiZXJnIDxob2NoYmVyZ0BkbWhzb2Z0d2FyZS5jb20+CiAgIAoyMDAwLTA4LTAxIDAzOjMwICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IGJ1aWxkaW5nIG9mIGNvbXBsZXRlIE9JRAogICAJKHdvcmsgd2l0aCB0aGUgbmFtZSBvcmlnaW5hbGx5IHJlZ2lzdGVyZWQsCiAgIAkgbm90IGFueSBzdWJzZXF1ZW50IGRpdmlzaW9uIGJvdW5kYXJpZXMpCiAgIAoyMDAwLTA3LTMxIDIwOjA5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBSZW1vdmUgZHVwbGljYXRlIGZvcGVuIGZyb20gc2hlbGxfY29tbWFuZC4KICAgCjIwMDAtMDctMzEgMTg6NTggIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVEVTVENPTkYuc2guaW46CgogICAoVEVTVENPTkYuc2guaW4pIC0gc2V0IE1JQkRJUlMgdG8gc2libGluZyBvZiB0aGUgdGVzdGluZyBkaXJlY3RvcnkuCiAgIChSVU5URVNUUykgLSBhbGxvdyBiaW5hcmllcyB0byBiZSBpbiB0aGUgIi1EIGJpbmRpciIgZGlyZWN0b3J5LgogICAKMjAwMC0wNy0zMSAxNToyNSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaC5pbjoKCiAgIERvbnQgYWRqdXN0IFBBVEggaWYgU05NUF9QQVRIIGlzIHNldC4KICAgRG9udCBhZGQgcG9ydCBzcGVjIHRvIFNOTVBfRkxBR1MgaWYgb25lIGlzIGFscmVhZHkgc3BlY2lmaWVkLgogICAKMjAwMC0wNy0zMSAxMzo0OSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgUmVtb3ZlIHRlc3QgZGlyZWN0b3JpZXMgZm9yIHNraXBwZWQgdGVzdHMuCiAgIEtlZXAgdGVzdCBkaXJlY3RvcmllcyBmb3IgZmFpbGVkIHRlc3RzLgogICBLZWVwIHRlc3QgZGlyZWN0b3JpZXMgZm9yIHBhc3NlZCB0ZXN0cyB3aGVuICJSVU5URVNUUyAtcyIgaXMgc3BlY2lmaWVkLgogICBTZWFyY2ggY29uZmlnLmggYXQgdGhlIHJvb3Qgb2YgdGhlIGJ1aWxkIHRyZWUuCiAgIAoyMDAwLTA3LTMxIDExOjMyICBtc2xpZmNhawoKICAgKiBjb25maWcuZ3Vlc3M6CgogICBNZXJnZSBmcm9tIGF1dG9tYWtlLTEuNDogQWRkIGZvciBSaGFwc29keSwgT3BlblN0ZXAsIENyYXktVDMsIFNYLTQsIFNYLTUKICAgCjIwMDAtMDctMzEgMTE6MzEgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5zdWI6CgogICBNZXJnZSBmcm9tIGF1dG9tYWtlLTEuNDogQWRkIGZvciBSaGFwc29keSwgT3BlblN0ZXAKICAgCjIwMDAtMDctMzAgMTc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICBub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmgsIHRhcmdldC90YXJnZXQuYywKICAgdGFyZ2V0L3RhcmdldC5oOgoKICAgLSAoc25tcE5vdGlmeVRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5oLCB0YXJnZXQuYywgdGFyZ2V0LmgpOgogICAgIC0gaW1wbGVtZW50IHVudGVzdGVkIGZpbHRlcmluZyBmdW5jdGlvbiBjYWxsYmFjayBmb3IgdGFyZ2V0IHNlYXJjaGVzLgogICAgIC0gZGVsZXRlIHVudXNlZCBmdW5jdGlvbi4KICAgICAtIG1pc2Mgd2FybmluZyBmaXhlcy4KICAgCjIwMDAtMDctMzAgMTc6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYwosIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oOgoKICAgLSAoc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLCBzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmgsCiAgICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oKToKICAgICAtIG1vcmUgbm90aWZpY2F0aW9uIHRhYmxlIGltcGxlbWVudGF0aW9ucyBmb3IgZmlsdGVyaW5nLgogICAgICAgLSBGcmFtZXdvcmsgY29tcGxldGUsIGZ1bmN0aW9uYWxpdHkgaXMgbm90LgogICAKMjAwMC0wNy0zMCAxNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6CiAgICAgLSBoYW5kbGUgaW1wbGllZCBvYmplY3RzLgogICAgIC0gaW1wbGVtZW50IGhlYWRlcl9jb21wbGV4X2dldCgpIGZvciBzaW1wbGUgZGF0YSByZXRyaWV2YWxzLgogICAKMjAwMC0wNy0yOCAwNjoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YXJfcm91dGUuYyAoVjQtMS0xLXBhdGNoZXMuMiksCiAgIHZhcl9yb3V0ZS5jOgoKICAgQ2xlYW51cCBpbmNsdWRlIGhlYWRlcnMgdG8gZml4IGJ1ZyAjMzA3LiBUaGFua3MgdG8gc2FuZHZlbkByZXNlYXJjaC5hdHQuY29tLgogICAKMjAwMC0wNy0yNyAxNToxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gVmluYXkgTW9odGE6CiAgICAgLSBhY2Nlc3NfaG9zdHMoKSByZXF1aXJlcyBhbiBhcmd1bWVudCBzbyBmYWtlIG9uZS4KICAgCjIwMDAtMDctMjcgMTU6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWF0dGlhcyBCYXJ0aGVsOgogICAgIC0gZml4IGZvciBpbnRlcmZhY2VzIHdpdGhvdXQgYW4gYXR0YWNoZWQgSVAgYWRkcmVzcy4KICAgCjIwMDAtMDctMjcgMTQ6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5oOgoKICAgLSAodm1zdGF0X3NvbGFyaXMyLmMsIHZtc3RhdF9zb2xhcmlzMi5oKTogUGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2g6CiAgICAgLSBzdXBwb3J0IHJhdyB2YWx1ZXMuCiAgIAoyMDAwLTA3LTI3IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IHByaW50IGVycm9ycyB0byBzdGRlcnIuCiAgIAoyMDAwLTA3LTI3IDA2OjIwICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBGaXggYSBtaXNzaW5nIGluaXRpemF0aW9uIHdoZW4gb25lIE1JQiBob2xkcyBNT0RVTEUtQ09NUExJQU5DRQogICAJZm9yIGFub3RoZXIKICAgCjIwMDAtMDctMjcgMDE6MzUgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IEZpeCBwZHUtPmNvbW11bml0eSBiZWluZyBvdmVyd3JpdHRlbiB3aXRoIHNlc3Npb24tPmNvbW11bml0eQogICAJVGhhbmtzIHRvIERhbmEgUC4gQ29vayA8ZGNvb2tAY2FibGV0cm9uLmNvbT4KICAgCjIwMDAtMDctMjYgMjI6MjggIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgVXBkYXRlIGZvciB3aW4zMiBidWlsZDogcmVtb3ZlIHVudXNlZCB2YXJpYWJsZXMgYW5kIHVucHVibGlzaGVkIG1ldGhvZC4KICAgCjIwMDAtMDctMjYgMDg6NTMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IG1pc2MgY2hhbmdlcyBhbmQgaW1wcm92ZW1lbnRzLgogICAKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIHRyYW5zbGF0ZU9iaiBoYWNrLgogICAKMjAwMC0wNy0yNiAwODo0OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIHJlbW92ZSBiZWdpbm5pbmcgbmV3bGluZSBpbiBkZXNjcmlwdGlvbiBjbGF1c2VzLgogICAKMjAwMC0wNy0xNyAxMTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmg6CgogICAtICh2bXN0YXRfc29sYXJpczIuaCk6IGNvbmZpZ19yZXF1aXJlIGtlcm5lbF9zdW5vczUuCiAgIAoyMDAwLTA3LTEyIDA5OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpOiBjb3B5IGtleSBsZW5ndGggYXMgd2VsbCBhcyB0aGUga2V5IHdoZW4gdXNpbmcgdGhlIHNhbWUKICAgICBwcml2YWN5IGtleSBhcyB0aGUgYXV0aCBrZXkuCiAgIAoyMDAwLTA3LTExIDEzOjM0ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgU05NUC5wbSwgU05NUC54cywgdC9taWIudAo6CgogICBhZGRlZCByYW5nZXMgZmllbGQgdG8gU05NUDo6TUlCIGhhc2gKICAgCjIwMDAtMDctMTEgMTA6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gbWFrZSBudWxsIFBSRUZJWCB2YXJpYWJsZSBwb3NzaWJsZSBzbyBub24tZG90LWxlYWRpbmcgb2lkcyBhcmUgYWNjZXB0ZWQuCiAgIAoyMDAwLTA3LTExIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdXNtLmg6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgLSBtYWtlIHRoZSBzZXNzaW9uIHBvaW50ZXJzIGluZGljYXRlIHdlYXRoZXIgb3Igbm90IHRoZXkgYXJlCiAgICAgICAiYXV0aG9yaXRhdGl2ZSIsIG1lYW5pbmcgd2VhdGhlciB0aGV5IHNob3VsZCBiZSBsZWFybmluZyBlbmdpbmVJRHMKICAgICAgIG9yIHJlcG9ydGluZyBvbiB0aGVtLgogICAgIC0gcGFzcyB0aGUgcmVjZWl2ZWQtcGFja2V0IHNlc3Npb24gcG9pbnRlciBpbnRvIHNubXB2M19wYXJzZSBhbmQKICAgICAgIHVzbV9wcm9jY2Vzc19pbl9tc2coKSB0byB1c2UgdGhpcyBmbGFnLgogICAgIC0gc2V0IGlzQXV0aG9yYXRhdGl2ZSA9IHRydWUgaW4gdGhlIGFnZW50LCBhbmQgdW5rbm93biBpbiB0aGUgc25tcHRyYXBkLgogICAKMjAwMC0wNy0xMSAwODozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogbWFrZSB0aGUgY3JlYXRlVXNlciB0b2tlbiBhY2NlcHQgYW4gZW5naW5laWQgKC1lIEFSRykgdG8gdXNlLgogICAKMjAwMC0wNy0wNyAwMTozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAobWliSUkvaW50ZXJmYWNlcy5jKTogUmVjb2duaXNlIFRva2VuIFJpbmcgaW50ZXJmYWNlcyB1bmRlciBMaW51eAogICAKMjAwMC0wNy0wNiAxNzoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IHByaW50IGdlbmVyaWMgc3RyaW5ncyB3aGVuIHNhdmluZyBwZXJzaXN0ZW50IGRhdGEKICAgICB3aGVyZSBwb3NzaWJsZS4gIChJRSwgY2hlY2sgZm9yIHByaW50YWJsZSBjaGFyYWN0ZXJzIGJlZm9yZSBwcmludGluZyBoZXgpLgogICAKMjAwMC0wNy0wNiAxNzowNSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbjoKCiAgIC0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IG1vdmVkIFRFU1RDT05GLnNoIHRvIFRFU1RDT05GLnNoLmluCiAgICAgYW5kIGhhdmUgdGhlIE1JQlMgcGF0aCB2YXJpYWJsZSBidWlsdCBieSBjb25maWd1cmUgc2luY2UgaXQga25vd3MKICAgICB3aGVyZSB0aGUgcm9vdCBsZXZlbCBzb3VyY2UgZGlyZWN0b3J5IGlzLgogICAKMjAwMC0wNy0wNiAxNzowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaGVhZGVyX2NvbXBsZXguYywgc25tcE5vdGlmeVRhYmxlLmMsCiAgICAgYXNuMS5oLCBzbm1wX2FwaS5jKToKICAgICAtIGltcGxlbWVudCBJTVBMSUVEIGluZGV4IGhhbmRsaW5nLgogICAgIC0gbWFrZSB0aGUgY3JlYXRlZCBVU00gZW50cmllcyBzZXQgdGhlIHN0b3JhZ2VUeXBlIGFuZCBSb3dTdGF0dXMKICAgICAgIGFwcHJvcHJpYXRlbHkuCiAgIAoyMDAwLTA3LTA2IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogYmV0dGVyIGNvbW1lbnRzIG9uIGEgY291cGxlIG9mIGZ1bmN0aW9uIGRlZmluaXRpb25zLgogICAKMjAwMC0wNy0wNSAwNzo1MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgZml4IChCVUcjMjkwKSBncmFjZWZ1bGx5IGhhbmRsZSBzb21lIFBEVXMgdGhhdCBoYXZlIG5vIHZhcmlhYmxlcy4KICAgCjIwMDAtMDctMDUgMDY6NDYgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMjoKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDAtMDctMDQgMTA6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgIC0gcmVtb3ZlIGxhc3QgcmVtbmFudHMgb2YgdGhlICJpbml0aWFsIiB1c2VyLgogICAgIC0gbWFrZSBlbmdpbmVpZCByZXBvcnRzIGZyb20gdGhlIHVzbSBoYXBwZW4gYmFzZWQgb24gdGhlIHJlcG9ydCBmbGFnCiAgICAgICBpbiB0aGUgbWVzc2FnZSBmbGFnLgogICAgICAgLSBOb3RlOiB0aGlzIGlzIGEgYmlnIGlzc3VlIHdpdGggdGhlIFNOTVB2MyBwcm90b2NvbCBzcGVjcy4gIFRoZQogICAgICAgICBzcGVjaWZpY2F0aW9ucyBub3RlIHRoYXQgeW91IHNlbmQgYSByZXBvcnQgaWYgeW91IGFyZQogICAgICAgICAiYXV0aG9yaXRhdGl2ZSIsIGJ1dCBkb24ndCBkZXNjcmliZSBob3cgdG8ga25vdyBpZiB5b3UgYXJlCiAgICAgICAgIGF1dGhvcml0YXRpdmUgb3Igbm90LiAgRm9yIHNpdHVhdGlvbnMgbGlrZSBwcm94aWVzIGFuZAogICAgICAgICBub3RpZmljYXRpb24gcmVjZWl2ZXJzLCB3aGVyZSB5b3UgYXJlIHNvbWV0aW1lcyBhdXRob3JpdGF0aXZlCiAgICAgICAgIGFuZCBvdGhlciB0aW1lcyB5b3UncmUgbm90LCB0aGlzIGlzIHByb2JsZW1hdGljLiAgVGhlIFNOTVB2MwogICAgICAgICBBU0lzIGRvIG5vdCBwYXNzIGluIGVub3VnaCBpbmZvcm1hdGlvbiB0byBkZXRlcm1pbmUgdGhpcyBhbmQgdGhlCiAgICAgICAgIFdHIGhhcyBwcm9jbGFpbWVkIHRoYXQgdGhlIEFTSXMgYXJlIG5vdCBtZWFudCB0byBiZSB1c2VkIGFzIGFuCiAgICAgICAgIEFQSSwgYnV0IHRoZSBpbml0aWFsIHdvcmsgZG9uZSBieSBOQUkgYW5kIFRJU0xhYnMgYXR0ZW1wdGVkIHRvCiAgICAgICAgIGltcGxlbWVudCB0aGUgVVNNIHN1Y2ggdGhhdCBpdCB3b3VsZCBiZSBhICJyZWZlcmVuY2UiIHJlbGVhc2UKICAgICAgICAgYW5kIGhlbmNlIHdlIGZvbGxvd2VkIHRoZSBzcGVjaWZpY2F0aW9ucyB0byB0aGUgbGV0dGVyIGFuZCB1c2VkCiAgICAgICAgIHRoZSBBU0lzIGFzIEFQSXMganVzdCB0byBzZWUgaWYgd2UgY291bGQuICBXZSBjb3VsZCBwcmV2aW91c2x5CiAgICAgICAgIG9ubHkgYmVjYXVzZSB3ZSB3ZXJlIGFsd2F5cyBlaXRoZXIgYXV0aG9yaXRhdGl2ZSBvcgogICAgICAgICBub24tYXV0aG9yaXRhdGl2ZS4gIFNpbmNlIGJlZ2lubmluZyB0byB3b3JrIG9uIHByb3h5IGFuZCB0aGUKICAgICAgICAgbm90aWZpY2F0aW9uIG1pYiwgdGhpcyBpcyBubyBsb25nZXIgcG9zc2libGUuICBGb3IgdGhlIHJlY29yZCwgSQogICAgICAgICBhbSBoZXJlYnkgY2hhbmdpbmcgdGhlIGluaXRpYWwgcmVmZXJlbmNlIHJlbGVhc2UgaW4gc3VjaCBhCiAgICAgICAgIG1hbm5lciBhcyBpdCBubyBsb25nZXIgY29uZm9ybXMgZXhhY3RseSB0byB0aGUgU05NUHYzIEFTSXMuICBTbwogICAgICAgICBhcyBub3QgdG8gY29uZnVzZSBhbnlvbmUsIHRoaXMgaXMgYW4gZW50aXJlbHkgdGhlb3JldGljYWwgaXNzdWUKICAgICAgICAgd2l0aCByZXNwZWN0IHRvIHRoZSBTTk1QdjMgc3BlY2lmaWNhdGlvbiBhbmQgaXMgcGVyZmVjdGx5IGxlZ2FsCiAgICAgICAgIHRvIGRvLiAgVGhvdWdoIEkgY291bGQgZWFzaWx5IGdvIG9uLCBJJ2xsIHN0ZXAgb2ZmIG15IHNvYXAgYm94IG5vdy4KICAgCjIwMDAtMDctMDMgMTA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3RyYXAuYywKICAgYWdlbnRfdHJhcC5oLCBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIG1pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBtaWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICAtIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHNubXBOb3RpZnlUYWJsZS5jLAogICAgIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgdGFyZ2V0LmMpOgogICAgIC0gQWRkIGEgbmV3IGNhbGxiYWNrIGZvciBzZW5kaW5nIHRyYXBzLgogICAgICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIHVzZSBpdC4KICAgICAtIG1ha2UgdGhlIHRhcmdldCBtaWIgZ2VuZXJhdGUgbW9yZSBwZXJzaXN0ZW50IHNlc3Npb25zLgogICAgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiBhbHdheXMgYXNrIHRoZSB0YXJnZXQgbWliIGZvciBhIHNlc3Npb24KICAgICAgIGxpc3QsIHdoaWNoIGlzIG5vdyBjYWNoZWQgZGlyZWN0bHkgYnkgdGhlIHRhcmdldCBtaWIuCiAgIAoyMDAwLTA3LTAzIDA4OjM4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMKLCBzeXN0ZW0uYzoKCiAgIGZpeCAoQlVHIzI2MikgLSAoc29tZSkgc3RhdGVtZW50cyB0aGF0IGNhbm5vdCBiZSByZWFjaGVkLgogICAKMjAwMC0wNy0wMyAwNzo1NSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgZml4IChCVUcjMjg3KQogICAKMjAwMC0wNy0wMyAwNjoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICBmaXggYnVnICMgMjg5CiAgIAoyMDAwLTA2LTMwIDA0OjQ1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBzaW1wbGlmeSBtZW1vcnkgYWxsb2NhdGlvbiBpbiByZWFkX2NvbmZpZ19yZWFkX3tvY3RldF9zdHJpbmcsIG9iamlkfQogICAKMjAwMC0wNi0zMCAwMDo0NyAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYzogRml4IGEgbWlzc2luZyBpbml0aWFsaXphdGlvbiBmb3Iga2V5d29yZHMgd2l0aG91dCBoZWxwCiAgIAoyMDAwLTA2LTI4IDIzOjM3ICBuYmEKCiAgICogbWlicy86IElGLU1JQi50eHQsIE1ha2VmaWxlLm1pYjoKCiAgIC0gSUYtTUlCLnR4dDogdXBncmFkZSB0byBSRkMgMjg2MwogICAKMjAwMC0wNi0yOCAwMDo1OCAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCiAgIGNvbmZpZ3VyZSwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSBpbnRlcmZhY2VzLmMsIGNvbmZpZ3VyZTogSXJpeCA2LjUgaGFzIGlmaV9iYXVkcmF0ZS5pZnNfdmFsdWUKICAgCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gbWFpbi5jOiBiZXR0ZXIgb3B0aW9uIHBhcnNpbmcuCiAgIAoyMDAwLTA2LTI3IDAxOjM0ICBuYmEKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gc25tcHYzLmM6IGRvIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2hpbmcgb2Ygb3B0aW9uIHZhbHVlcy4KICAgCjIwMDAtMDYtMjcgMDA6MzMgIG5iYQoKICAgKiBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgLSBzbm1wdHJhbnNsYXRlLjE6IGRvY3VtZW50IHRoYXQgLXcgaXMgYWxzbyBmb3IgLVRkCiAgIAoyMDAwLTA2LTI3IDAwOjMwICBuYmEKCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMSwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMQosIHNubXBnZXQuMSwgc25tcGdldG5leHQuMSwgc25tcG5ldHN0YXQuMSwKICAgc25tcHNldC4xLCBzbm1wc3RhdHVzLjEsIHNubXB0ZXN0LjEsIHNubXB0cmFwLjEKLCBzbm1wdHJhcGQuOCwgc25tcHdhbGsuMSwgdmFyaWFibGVzLjU6CgogICAtIHZhcmlvdXMgbWFuIHBhZ2Ugbml0LXBpY2tpbmcKICAgCjIwMDAtMDYtMjcgMDA6MjggIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogZml4ZXMgYW5kIHVzYWdlIG1lc3NhZ2UgZm9yIC1DaCBhbmQgLUNICiAgIAoyMDAwLTA2LTI2IDIzOjQzICBuYmEKCiAgICogbWlicy86IEFHRU5UWC1NSUIudHh0LCBESVNNQU4tU0NIRURVTEUtTUlCLnR4dCwKICAgRElTTUFOLVNDUklQVC1NSUIudHh0LCBFdGhlckxpa2UtTUlCLnR4dCwKICAgSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LAogICBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCwgSUFOQS1MQU5HVUFHRS1NSUIudHh0CiwgSUFOQWlmVHlwZS1NSUIudHh0LCBJRi1NSUIudHh0LCBJUC1NSUIudHh0CiwgSVBWNi1JQ01QLU1JQi50eHQsIElQVjYtTUlCLnR4dCwgSVBWNi1UQy50eHQKLCBJUFY2LVRDUC1NSUIudHh0LCBNYWtlZmlsZS5pbiwgUk1PTi1NSUIudHh0CiwgU01VWC1NSUIudHh0LCBTTk1QLUNPTU1VTklUWS1NSUIudHh0LAogICBTTk1QLUZSQU1FV09SSy1NSUIudHh0LCBTTk1QLU1QRC1NSUIudHh0LAogICBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgIFNOTVAtVEFSR0VULU1JQi50eHQsIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0LAogICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQsIFNOTVB2Mi1DT05GLnR4dCwKICAgU05NUHYyLU1JQi50eHQsIFNOTVB2Mi1TTUkudHh0LCBTTk1QdjItVEMudHh0LAogICBTTk1QdjItVE0udHh0LCBUQ1AtTUlCLnR4dCwgVURQLU1JQi50eHQ6CgogICAtIE1ha2VmaWxlLmluLCAqTUlCLnR4dDogdXBkYXRlIHRvIGN1cnJlbnQgUkZDIHZlcnNpb24KICAgCjIwMDAtMDYtMjYgMjM6NDIgIG5iYQoKICAgKiBtaWJzLzogTWFrZWZpbGUubWliLCBtaWJmZXRjaCwgc21pc3RyaXA6CgogICAtIE1ha2VmaWxlLm1pYiwgbWliZmV0Y2gsIHNtaXN0cmlwOiB0b29scyB0byBleHRyYWN0IE1JQnMgZnJvbSBSRkMKICAgCWRvY3VtZW50cy4KICAgCjIwMDAtMDYtMjYgMjM6NDAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gcGFyc2UuYywgbWliLltjaF0sIHNubXB0cmFuc2xhdGUuYzogYWRkIHBhcnNpbmcgb2YgQ0hPSUNFIGFuZCBjaGVja3MgZm9yCiAgIAlPQkpFQ1QtR1JPVVAgYW5kIEFHRU5ULUNBUEFCSUxJVElFUy4gVGhpcyBhbGxvd3MgdXMgdG8gcGFyc2UKICAgCWNvbXBsZXRlIE1JQiBleHRyYWN0cyBmcm9tIFJGQyBkb2N1bWVudHMuCiAgIAoyMDAwLTA2LTI2IDIzOjM4ICBuYmEKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSBNYWtlZmlsZS50b3A6IG1ha2UgbGlidG9vbCBzaWxlbnQsIHNvIHdlIGNhbiBzZWUgdGhvc2Ugd2FybmluZ3MKICAgCjIwMDAtMDYtMjYgMjM6MzcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgLSBzbm1wVGFyZ2V0QWRkckVudHJ5LmM6IGRvIGEgY2FzdCB0byBraWxsIGEgd2FybmluZwogICAKMjAwMC0wNi0yNiAyMzozMiAgbmJhCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gYWdlbnRfdHJhcC5jOiBGaXggYSBsZWFrIHdoZW4gcmVxdWVzdCBpcyBibG9ja2VkIGJ5IFZBQ00gYW5kIG5vIHRyYXAKICAgCWlzIHNlbnQuCiAgIAoyMDAwLTA2LTI2IDExOjU2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBmaXggKEJVRyMyMzMpCiAgIAoyMDAwLTA2LTIzIDA2OjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICByZXBsYWNlIG1hbGxvYy9tZW1zZXQgMCB3aXRoIGNhbGxvYy4KICAgCjIwMDAtMDYtMjMgMDE6MDggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzoga2VybmVsX2xpbnV4LmMsIGtlcm5lbF9saW51eC5oCiwgaXAuYzoKCiAgIC0gKG1pYklJL2tlcm5lbF9saW51eC5bY2hdLCBtaWJJSS9pcC5jKTogQWRkZWQgc3VwcG9ydCBmb3IgaXBSb3V0aW5nRGlzY2FyZHMKICAgCShUaGFua3MgdG8gQnJ5YW4gQmxhY2ttYW4pCiAgIAoyMDAwLTA2LTIyIDE3OjA5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICByZW1vdmUgZXh0cmEgaW5jbHVkZSBlcnJvcm1pYi5oCiAgIAoyMDAwLTA2LTIyIDE2OjUwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBGaXggYnVnICMyNzYgLSBjbG9zZSBtb3N0IGZpbGUgZGVzY3JpcHRvcnMgYmVmb3JlIGV4ZWMnaW5nIGNvbW1hbmQuCiAgIAoyMDAwLTA2LTIyIDE1OjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiwgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jCjoKCiAgIGZnZXRzOiB1c2Ugc2l6ZW9mKGJ1ZikgaW4gbGlldSBvZiBjb21waWxlciBjb25zdGFudCBTVFJNQVguCiAgIAoyMDAwLTA2LTIyIDE1OjUzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBVc2UgZmV3ZXIgbGFyZ2Ugc3RhdGljIGJ1ZmZlcnMuICBwYXNzX3BlcnNpc3QgdXNlcyBiaWdnZXIgYnVmZmVycyBub3cuCiAgIAoyMDAwLTA2LTIxIDEyOjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAtIChzbm1wTm90aWZ5VGFibGUuYyk6IFVoLCBvbmx5IGlmIG5vdCBkZWxldGVkLgogICAKMjAwMC0wNi0yMSAxMjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgLSAoc25tcE5vdGlmeVRhYmxlLmMpOiBjaGFuZ2UgY3JlYXRlQW5kR28vY3JlYXRlQW5kV2FpdCBzdGF0ZXMgdG8gYWN0aXZlL05JUy4KICAgCjIwMDAtMDYtMjAgMjA6MDEgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluOgoKICAgRGVjbGFyZSB0b3BfYnVpbGRkaXIgdG8gYXZvaWQgYW5ub3lpbmcgL2xpYnRvb2wgbm90IGZvdW5kIG1lc3NhZ2UuCiAgIAoyMDAwLTA2LTIwIDE3OjMwICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYzoKCiAgIERvbnQgYXNzdW1lIEFOU0kgQy1wcmVwcm9jZXNzb3IgKHJlcGxhY2UgIiMjIiBjb25jYXRlbmF0aW9uIHdpdGggc3ByaW50ZikuCiAgIAoyMDAwLTA2LTIwIDE1OjM3ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IGxpYmFnZW50L2xpYmFnZW50LmRlZiwgbGliYWdlbnQvbGliYWdlbnQuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwLAogICBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLmRzcCwgc25tcGQvc25tcGQuZHNwLAogICBzbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwKICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBzbm1wdXNtL3NubXB1c20uZHNwLAogICBzbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBXaW4zMiBNUy1WQysrIGJ1aWxkIGZpeHVwcy4KICAgCjIwMDAtMDYtMjAgMTU6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBFbmNhcHN1bGF0ZSBsb2NhbCB2YXJpYWJsZSAieCIgdG8gdGhlIHNjb3BlIHdoZXJlIG5lZWRlZC4KICAgCjIwMDAtMDYtMjAgMTU6MzYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFyICJuZXd2YXIiLgogICAKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBVc2UgaW50IHZzIHVsb25nIGZvciBhcnJheSBpbmRleGluZyB2YXJpYWJsZXMgdG8gYXZvaWQgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoLgogICAKMjAwMC0wNi0yMCAxNTozNCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFJlbW92ZSB1bnVzZWQgdmFycyBzdHJ1Y3QgdG0sIHRpbWVfdC4KICAgCjIwMDAtMDYtMjAgMTU6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICBSZW1vdmUgdW51c2VkIHZhciAiaW5pdGxpc3QiLgogICAKMjAwMC0wNi0yMCAxNTozMyAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRGVjbGFyZSBzdHJuY2FzZWNtcCBpbiBzeXN0ZW0uaCA7IFJlbW92ZSB1bnVzZWQgdmFyICJzdGF0dXMiLgogICAKMjAwMC0wNi0yMCAxNTozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcnMuCiAgIAoyMDAwLTA2LTIwIDE1OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBEZWNsYXJlIG9wdGFyZyBpbiBnZXRvcHQuaC4KICAgCjIwMDAtMDYtMjAgMTQ6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IG1pc2MgbWlub3IgY2hhbmdlcy4KICAgCjIwMDAtMDYtMjAgMTM6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IC5jdnNpZ25vcmUsIHNubXBOb3RpZnlUYWJsZS5jCiwgc25tcE5vdGlmeVRhYmxlLmg6CgogICAtICguY3ZzaWdub3JlLCBzbm1wTm90aWZ5VGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmgpOgogICAgIC0gU05NUC1OT1RJRklDQVRJT04tTUlCJ3Mgc25tcE5vdGlmeVRhYmxlIGltcGxlbWVudGVkOgogICAgICAgLSB1c2VzIHRoZSBTTk1QLVRBUkdFVC1NSUIgdG8gZ2V0IGl0cyBhZGRyZXNzZXMgZnJvbS4KICAgICAgIC0gdXNlcyBoZWFkZXJfY29tcGxleCB0byBoYW5kbGUgdGhlIGRhdGEuCiAgICAgICAtIG11Y2ggdG9kbzoKICAgICAgICAgLSBkeW5hbWljIHRhcmdldC9ub3RpZmljYXRpb24gbWliIHVwZGF0aW5nIHdpdGhvdXQga2lsbCAtSFVQIG5lZWRlZC4KICAgICAgICAgICAtIHRoaXMgd2lsbCBiZSBhIHJlYWwgcGFpbi4KICAgICAgICAgLSBmaXggdjMgcmVsYXRlZCB0cmFwcyBzdGlsbCAoc2FtZSB1c20gYnVnIEkndmUgYmVlbiBtZWFuaW5nIHRvIGZpeCkuCiAgICAgICAgIC0gdGhlIHJlc3Qgb2YgdGhlIFNOTVAtTk9USUZJQ0FUSU9OLU1JQiB0YWJsZXMuCiAgIAoyMDAwLTA2LTIwIDEzOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvOiBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKToKICAgLSBnZW5lcmljIHRhcmdldCBzZXNzaW9uIGNyZWF0aW9uCiAgIC0gbWlzYyBvdGhlciBtaW5vciBmaXhlcy4KICAgCjIwMDAtMDYtMjAgMTM6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIHRhcmdldC90YXJnZXQuYywKICAgdGFyZ2V0L3RhcmdldC5oOgoKICAgLSAodGFyZ2V0LmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6IGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KICAgICBiYXNlZCBvbiBlbnRyaWVzIGluIHRoZSBTTk1QLVRBUkdFVC1NSUIgdGFibGUuCiAgIAoyMDAwLTA2LTIwIDEzOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IHJlbW92ZSBNaWNoYWVsJ3MgaG9ycmlibGVseSB3cm9uZyAiZml4ZXMiLgogICAKMjAwMC0wNi0yMCAxMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaDoKCiAgIC0gKGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKTogYWRkIHJlbW92ZV90cmFwX3Nlc3Npb24oKS4KICAgCjIwMDAtMDYtMjAgMTM6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOiBkZWFsIHdpdGggMC1sZW5ndGggcGVyc2lzdGVudCBzdHJpbmdzIGJldHRlci4KICAgCjIwMDAtMDYtMTkgMTI6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIENoZWNrIG1vcmUgYWxsb2MgZmFpbHVyZXMuCiAgIAoyMDAwLTA2LTE5IDEyOjE1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgcHJvdG9jb2wuYzoKCiAgIChwcm90b2NvbC5jKSBVc2Ugc2l6ZW9mKG9pZCksIG5vdCA0IQogICAoY2xpZW50LmMpIEFkZCBfYWxsXyBvZiBPSUQgdmFsdWUgZm9yIGFnZW50eF9yZWdpc3RlciBhbmQgYWdlbnR4X3VucmVnaXN0ZXIuCiAgIAoyMDAwLTA2LTE5IDExOjQxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgIFJlbW92ZWQgc2l6ZW9mKHVfY2hhcikgYW5kIHVubmVjZXNzYXJ5ICh1bnNpZ25lZCkgY2FzdHMgdG8gbWFsbG9jIHBhcmFtcy4KICAgCjIwMDAtMDYtMTkgMDM6MDQgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9sb2cuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsCiAgIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIFByb3RvdHlwZSBmaXh1cC4KICAgCjIwMDAtMDYtMTkgMDM6MDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oOgoKICAgcy9jb25pZmcvY29uZmlnLyAuLi4uIEhycnJtbW1wZgogICAKMjAwMC0wNi0xOSAwMjo1OCAgbmJhCgogICAqIG1ha2Vub3N5c2RlcGVuZC5wbCwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSBtYWtlbm9zeXNkZXBlbmQucGwgTWFrZWZpbGUuaW46IG9iamVjdCBmaWxlcyBhcmUgbm93IG5hbWVkIC5sbyAuLi4KICAgCjIwMDAtMDYtMTYgMTY6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5Lmg6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgpOiBhZGQgdGhlIFNOTVB2Mi1UTSBtaWIgdG8gdGhlIGRlZmF1bHQgbGlzdC4KICAgCjIwMDAtMDYtMTYgMTY6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogZml4IGluY29ycmVjdCBPSURzLgogICAKMjAwMC0wNi0xNSAwNjo0NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBmYXQgZmluZ2VycwogICAKMjAwMC0wNi0xNSAwNjo0MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgTWFrZWZpbGUuUEw6CgogICBhZGQgZGVmYXVsdHMgdG8gZGFlbW9uIHNlYXJjaCBwYXRoLi4ucmVjYWxjIHQvc25tcHRlc3QuY21kIGV2ZXJ5dGltZSBwZXIgbWFrZWZpbGUuUEwgaXMgcnVuCiAgIAoyMDAwLTA2LTEyIDE2OjQzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0cmFwc2Vzcy4KICAgCjIwMDAtMDYtMTIgMTY6MzkgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfdHJhcC5jLAogICBhZ2VudF90cmFwLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCk6CiAgICAgLSBuZXcgc25tcGQuY29uZiB0b2tlbiBmb3IgdHJhcCBzZXNzaW9uczogInRyYXBzZXNzIi4KICAgICAgIC0gdXNlcyBzbm1wX3BhcnNlX2FyZ3Mgc28gYW55IHR5cGUgb2YgdHJhcCBjYW4gYmUgc2VudCB3aXRoIGl0CiAgICAgICAgIG1vZGlmaWVkIGJ5IGFueSBvZiB0aGUgcGFyYW1ldGVycyB0aGF0IGFyZSBkb2N1bWVudGVkIGluIHNubXBjbWQoMSkuCiAgICAgICAtIHYzIHRyYXBzIGRvbid0IHdvcmsgZHVlIHRvIHRoZSBzYW1lIFVTTSBwcm9ibGVtcyBmb3VuZCBpbiB0aGUKICAgICAgICAgcmVjZW50IHByb3h5IHN1Ym1pc3Npb25zIChteSBuZXh0IHRhcmdldCkuCiAgICAgICAtIC1DaSBpbiB0aGUgYXJndW1lbnQgc3BlY2lmaWVzIGluZm9ybXMgc2hvdWxkIGJlIHVzZWQuCiAgIAoyMDAwLTA2LTEyIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZS1lbmFibGUgZnJlZWluZyBvZiBtYXN0ZXIgcmVxdWVzdC4KICAgCjIwMDAtMDYtMTIgMTY6MTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBzYXZlIGV4ZWMgZGF0YSB0byAvdmFyL3VjZC1zbm1wLgogICAgIC0gY291bGQgY2F1c2UgcHJvYmxlbXMgZm9yIG5vbi1yb290IHJ1bnMuICBVbnRlc3RlZC4KICAgCjIwMDAtMDYtMTIgMTQ6MTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgLSAoc25tcHRyYXBkX2xvZy5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gcmVtb3ZlIGVuZGluZyBjb21tYXMgaW4gZW51bSBsaXN0LgogICAKMjAwMC0wNi0wNyAxMzoyMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfY29uZmlnLjUuZGVmLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuaDoKCiAgIC0gKHNubXBfY29uZmlnLjUuZGVmLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIHRoZSBUWVBFLmNvbmYgcGFyc2VyIG5vdyBhY2NlcHRzIHRva2VucyBmcm9tIGEgZGlmZmVyZW50IC5jb25mCiAgICAgICBmaWxlIFRZUEUgaWYgYSBzcGVjaWFsICJbVFlQRV0iIGtleXdvcmQgaXMgaW5zZXJ0ZWQgaW50byB0aGUKICAgICAgIC5jb25mIGZpbGUuICBTZWUgc25tcF9jb25maWcoNSkgZm9yIGEgYmV0dGVyIGRlc2NyaXB0aW9uLgogICAKMjAwMC0wNi0wNyAxMzoyMiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG1hcCBzdHJ0b3VsIHRvIGF0b2kgaWYgdGhlIGZ1bmN0aW9uIGlzbid0IGZvdW5kLgogICAKMjAwMC0wNi0wMiAxMTo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBhZGQgKi5tYWRlLgogICAKMjAwMC0wNi0wMiAxMTo0MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiwgZml4cHJvYywgaXBmLW1vZC5wbCwKICAgbWliMmMsIHRrbWliOgoKICAgLSAoTWFrZWZpbGUuaW4sIGZpeHByb2MsIGlwZi1tb2QucGwsIG1pYjJjLCB0a21pYik6CiAgICAgLSBtYWtlIChhbmQgaW5zdGFsbCkgcGVybCBzY3JpcHRzIGRpZmZlcmVudGx5LCB3aXRob3V0IG1vZGlmeWluZyB0aGUgb3JpZy4KICAgCjIwMDAtMDYtMDEgMTQ6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogc3RvcmUgcGVyc2lzdGVudCBkYXRhIGltbWVkaWF0ZWx5IGFmdGVyIGluaXQnaW5nIHRvCiAgICAgZW5zdXJlIHdlIHVwZGF0ZSBjb3VudGVycyBhbmQgc3R1ZmYgdGhhdCBtdXN0IGNoYW5nZSAoZWcsIGVuZ2luZUJvb3RzKS4KICAgCjIwMDAtMDUtMzEgMTY6MjIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogZGVzY3JpYmUgLUkuCiAgIAoyMDAwLTA1LTMxIDE1OjUyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliX21vZHVsZXMuYwosIGFnZW50L21pYl9tb2R1bGVzLmgsIGFnZW50L3NubXBkLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaCwgc25tcGQuYyk6CiAgICAgLSBuZXcgLUkgc3dpdGNoIHRvIHNubXBkIHRvIGRvIGR5bmFtaWMgZGV0ZXJtaW5hdG9uIG9mIHdoaWNoIG1pYgogICAgICAgbW9kdWxlcyB0byBpbml0aWFsaXplIChhbmQgaGVuY2Ugd2hpY2ggbWliIHRyZWUgc2VjdGlvbnMgdG8gc3VwcG9ydCkuCiAgIAoyMDAwLTA1LTMxIDE1OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmg6CgogICAtIChkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCk6IGRlZmF1bHQgc3RvcmUgcm91dGluZXMgZm9yIHZvaWQgcG9pbnRlcnMuCiAgICAtIHdoaWNoIEkgaW1tZWRpYXRlbHkgZGVjaWRlZCB0byBkbyBzb21ldGhpbmcgZGlmZmVyZW50IGZvciB3aGF0IEkKICAgICAgb3JpZ2luYWxseSBpbXBsZW1lbnRlZCBpdCBmb3IsIHNvIGl0cyBub3QgYmVpbmcgdXNlZCB5ZXQuCiAgIAoyMDAwLTA1LTMxIDA1OjU5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwLmMsIGlwLmg6CgogICAtIChtaWJJSS9pcC5bY2hdKTogQWxsb3cgSVAgc3VwcG9ydCB3aXRob3V0IHRoZSBBdC9pcE5ldFRvTWVkaWEgbW9kdWxlCiAgIAoyMDAwLTA1LTMwIDE3OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHByb3h5LmMsIHByb3h5Lmg6CgogICAtIChwcm94eS5jLCBwcm94eS5oKTogc2ltcGxlIHByb3h5IHN1cHBvcnQuCiAgICAgLSBtYXBzIG9uZSBvaWQgaW5zaWRlIHRoZSBhZ2VudCB0byBhIHBvc3NpYmx5LWRpZmZlcmVudCBvaWQgb24gYSB0YXJnZXQuCiAgICAgLSB1c2VzIHNubXBfcGFyc2VfYXJncygpIHNvIGl0IHRha2VzIHN0YW5kYXJkIGNvbW1hbmQgbGluZSBjb25maWcgb3B0aW9ucy4KICAgICAtIG5vIHNldCBzdXBwb3J0LgogICAgIC0gbm8ga2lsbCAtSFVQIHN1cHBvcnQuCiAgICAgLSBubyBTTk1QdjMgc3VwcG9ydCAoc2lnaCkuCiAgIAoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCiAgICogbWlicy9JQU5BLUxBTkdVQUdFLU1JQi50eHQ6CgogICBmaWxlIElBTkEtTEFOR1VBR0UtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKICAgKiBtaWJzL0lBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0OgoKICAgZmlsZSBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKICAgKiBtaWJzL0RJU01BTi1TQ0hFRFVMRS1NSUIudHh0OgoKICAgZmlsZSBESVNNQU4tU0NIRURVTEUtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKICAgKiBtaWJzL0FHRU5UWC1NSUIudHh0OgoKICAgZmlsZSBBR0VOVFgtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMzAgMDc6NDcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIEZpeCBwcm9ibGVtIGlkZW50aWZpZWQgYnkgVi4gR3JlbmV0OiBuZXcgbWV0aG9kIHNubXBfb2lkX21pbl9jb21wYXJlCiAgIAoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCiAgICogbWlicy9taWJmZXRjaDoKCiAgIGZpbGUgbWliZmV0Y2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCiAgICogbWlicy9zbWlzdHJpcDoKCiAgIGZpbGUgc21pc3RyaXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCiAgICogbWlicy9NYWtlZmlsZS5taWI6CgogICBmaWxlIE1ha2VmaWxlLm1pYiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KICAgCjIwMDAtMDUtMjYgMDk6MjQgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzT1JUYWJsZS5jLCBzeXN0ZW1fbWliLmM6CgogICAtIChtaWJJSS9zeXNPUlRhYmxlLmMgbWliSUkvc3lzdGVtX21pYi5jKToKICAgICAtIFVzZSBuZXcgdGltZSB1dGlsaXR5IHJvdXRpbmVzIHRvIHNpbXBsaWZ5IHByb2Nlc3NpbmcKICAgICAtIFVwZGF0ZSBzeXNPUkxhc3RDaGFuZ2Ugd2hlbiBhZGRpbmcvcmVtb3ZpbmcgZW50cmllcwogICAKMjAwMC0wNS0yNiAwOToyMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuW2NoXSk6IE5ldyB0aW1lLWRpZmYgdXRpbGl0eSByb3V0aW5lcwogICAKMjAwMC0wNS0yNiAwODo0NiAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBzbm1wX2FnZW50LmMsCiAgIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAoc25tcGQuYyBzbm1wX2FnZW50LmMgbWliSUkvdmFyX3JvdXRlLmMpOiBVc2UgJ21pYmluY2wuaCcgaGVhZGVyCiAgIAoyMDAwLTA1LTI2IDA3OjQ4ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYywgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMKOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvY2xpZW50LltjaF0KICAgICAgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAtIFN1cHBvcnQgZm9yIE1JQiByZWdpb24gdGltZW91dHMKICAgCjIwMDAtMDUtMjYgMDc6NDYgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wLmgsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMKOgoKICAgLSAoc25tcC5oIHNubXBfYXBpLmMgc25tcF9jbGllbnQuYyk6IFN1cHBvcnQgZm9yIHBlci1yZXF1ZXN0IHRpbWVvdXQgaGFuZGxpbmcKICAgCjIwMDAtMDUtMjYgMDc6NDUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOiBNaW5vciBlcnJvciBpbiBBZ2VudFggcGFja2V0IGR1bXAKICAgCjIwMDAtMDUtMjUgMTA6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBQYXRjaCBmcm9tIFJhZ25hciBLaueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXniK31gJGL772k9YCMv3JzdGFkOgogICAgIC0gZml4ZWQgbGludXggcHJvYmxlbTogd3JvbmcgcGFyYW1zIGdldHRpbmcgcmV0dXJuZWQuCiAgIAoyMDAwLTA1LTI1IDA1OjM4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBGaXggdXNlIG9mIGJpbjJhc2MgdG8gbm90IGFsd2F5cyBzaG93ICJzdHJpbmciOyB1c2Ugc25tcF9vaWRfY29tcGFyZSwgdG9vLgogICBTZWUgYnVnICMyMzQgZm9yIGRldGFpbHMuCiAgIAoyMDAwLTA1LTI1IDAzOjM5ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb25zb2xpZGF0ZSBoZWFkZXIgaGFuZGxpbmcuCiAgIAoyMDAwLTA1LTI1IDAzOjMxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChtaWJJSS9pbnRlcmZhY2VzLmMpOiBDb3JyZWN0IGNvbmZ1c2luZyBjb21tZW50CiAgIAoyMDAwLTA1LTI1IDAxOjUzICBkYXZlcwoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBSZXBsYWNlIHVzZSBvZiAnY3V0JyB3aXRoIGVxdWl2YWxlbnQgJ3NlZCcgY2FsbHMKICAgCjIwMDAtMDUtMjUgMDE6MzAgIGRhdmVzCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluIGFjbG9jYWwubTQgY29uZmlndXJlKToKICAgICAtIERpcmVjdCBjZXJ0YWluIGNoZWNrcyB0byB0aGUgYXBwcm9wcmlhdGUgZmlsZSBkZXNjcmlwdG9yIChzZWUgQlVHIzI0NykKICAgCjIwMDAtMDUtMjIgMTY6MjIgIGhhcmRha2VyCgogICAqIGFwcHMvLmN2c2lnbm9yZToKCiAgIC0gKGFwcHMvLmN2c2lnbm9yZSk6IGFkZCBtb3JlIHN0dWZmIHRvIGlnbm9yZS4KICAgCjIwMDAtMDUtMjIgMTY6MjEgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGtnZXQuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZGYuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXB3YWxrLmMKLCBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCiwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaDoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBidWxrZ2V0LmMsCiAgICAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZGYuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgICBzbm1wdXNtLmMsIHNubXB2YWNtLmMsIHNubXB3YWxrLmMsIE1ha2VmaWxlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wX3BhcnNlX2FyZ3MuaCk6CiAgICAgLSBtb3ZlZCBzbm1wX3BhcnNlX2FyZ3MgdG8gdGhlIGxpYnJhcnksIGFzIEkgcHJvbWlzZWQgdG8gZG8gYWdlcyBhZ28uCiAgICAgICAtIG5vIGxvbmdlciBjYWxscyB1c2FnZSgpIGRpcmVjdGx5LCBidXQgcmV0dXJucyAtMSBpZiB5b3Ugc2hvdWxkLgogICAKMjAwMC0wNS0yMiAwNTo0NyAgZGF2ZXMKCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAtIChzbm1wbGliL3Rvb2xzLltjaF0pOiBSb3V0aW5lIGZvciBjb21wYXJpbmcgdHdvIG1hcmtlcnMuCiAgIAoyMDAwLTA1LTIyIDA1OjQyICBkYXZlcwoKICAgKiBsb2NhbC9taWIyYzoKCiAgIC0gKGxvY2FsL21pYjJjKTogR2VuZXJhdGUgbXVsdGlwbGUgdGFibGVzIGluIG9uZSBjb2RlIGZpbGUKICAgCjIwMDAtMDUtMTcgMTA6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgc25tcGxpYi92YWNtLmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oLCB2YWNtLmMsIHZhY20uaCk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKICAgICAtIHdyaXRhYmxlIHZhY20gbWliIHN1cHBvcnQuCiAgICAgLSBvdGhlciBtaXNjIHZhY20gZml4ZXMuCiAgIAoyMDAwLTA1LTE3IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKICAgICAtIERvbid0IHNlZ2ZhdWx0IG9uIGFuIHVua25vd24gY29tbWFuZCwgaW5zdGVhZCBwcmludCBhIHdhcm5pbmcuLgogICAKMjAwMC0wNS0xNyAxMDoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdmFjbS5jOgoKICAgLSAoc25tcHZhY20uYyk6IFBhdGNoIGZyb20gQXJuZSBPZXNsZWJvZToKICAgICAtIGFkZGVkIGEgbmV3IGNvbW1hbmQ6IHNubXB2YWNtLgogICAKMjAwMC0wNS0xNyAwOToyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBtZW50aW9uIHRoZSBwb3J0IG51bWJlciBvbiB0aGUgdHJhcHNpbmsgaGVscCBsaW5lLgogICAKMjAwMC0wNS0xNyAwOToyMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogdXNlIHN0YW5kYXJkaXplZCBidWZmZXIgc2l6ZXMKICAgCjIwMDAtMDUtMTcgMDk6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jLCBtYW4vc25tcHRyYXBkLjg6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tCiAgICAgSmVmZiBDb3VyczoKICAgICAtIGN1c3RvbWl6ZWQgZm9ybWF0dGluZyBvZiB0cmFwIG91dHB1dC4KICAgCjIwMDAtMDUtMTcgMDk6MTEgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFkZCBKZWZmIGFuZCBBcm5lLgogICAKMjAwMC0wNS0xNyAwODoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogKmNvcnJlY3RseSogYXNzb2NpYXRlIGVzY2FwZVF1b3RlcyB3aXRoIHRoZSByaWdodCBkZWZhdWx0X3N0b3JlIGJvb2wuCiAgIAoyMDAwLTA1LTE3IDA4OjExICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZXNjYXBlUXVvdGVzLgogICAKMjAwMC0wNS0xNyAwODowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wY21kLjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOiBuZXcgb3B0aW9uIC1PRToKICAgICAtIHNoZWxsIGJhY2tzbGFzaCBlc2NhcGUgcXVvdGF0aW9ucyBtYXJrcyBmb3IgY3V0dGluZyBhbmQgcGFzdGluZwogICAgICAgb250byBhbm90aGVyIHNubXAgY29tbWFuZCBsaW5lLgogICAKMjAwMC0wNS0xNSAwOToyNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBrZXJuZWxfbGludXguYywga2VybmVsX2xpbnV4LmgKLCBpY21wLmMsIGlwLmMsIGlwLmgsIGljbXAuaCwgdGNwLmMKLCB0Y3AuaCwgdWRwLmMsIHVkcC5oOgoKICAgLSAobWliSUkve2lwLGljbXAsdGNwLHVkcCxrZXJuZWxfbGludXh9LltjaF0pOgogICAgIC0gIFB1bGwgTGludXggTUlCLUlJIHN0YXRpc3RpY3MgZ2F0aGVyaW5nIGludG8gYSBzaW5nbGUgcm91dGluZS4KICAgICAtICBDYWNoZSBNSUItSUkgc3RhdGlzdGljcyBvbiBhbGwgYXJjaGl0ZWN0dXJlcy4KICAgCjIwMDAtMDUtMTUgMDg6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdWNkX3NubXAuaCwgdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMKLCB1Y2Qtc25tcC92bXN0YXRfYnNkaTQuaDoKCiAgIC0gKHVjZF9zbm1wLmgsIHZtc3RhdF9ic2RpNC5jLCB2bXN0YXRfYnNkaTQuaCk6IFBhdGNoIGZyb20gQmVydCBEcmllaHVpczoKICAgICAtIHZtc3RhdCBzdXBwb3J0IGZvciBic2RpNC4KICAgCjIwMDAtMDUtMTUgMDM6MDYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlLXJlbW92ZSByZWR1bmRhbnQgUERVIGNsb25lCiAgIAkoSXQgcmVhcHBlYXJlZCBkdXJpbmcgYSByZWNlbnQgY2hhbmdlKQogICAKMjAwMC0wNS0xNSAwMzowMCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9pbmRleC5jLAogICBhZ2VudF9yZWdpc3RyeS5oLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogSW1wbGVtZW50IG1pc3Npbmcgcm91dGluZSAndW5yZWdpc3Rlcl9taWJfY29udGV4dCcKICAgCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnRfaW5kZXguW2NoXSk6IE1vdmUgJ2ZkJyByZWdpc3RyeSBoYW5kbGluZyBiYWNrIHRvIGFnZW50X3JlZ2lzdHJ5CiAgIAogICAtIChhZ2VudHgvY2xpZW50LmMpOiBSZWNvZ25pc2UgbmV3IGNvZGUgZmlsZSBmb3IgaW5kZXggaGFuZGxpbmcKICAgCjIwMDAtMDUtMTIgMTA6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFVtLCBkZWZhdWx0IHRvIHBvcnQgMTYxLiAgT3Bwcy4KICAgCjIwMDAtMDUtMTIgMDk6MDAgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwKICAgdmFyX3N0cnVjdC5oLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIHZhcl9zdHJ1Y3QuaCBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gUHJlcGFyYXRpb24gZm9yIHBlci1NSUIgcmVnaW9uIHRpbWVvdXQsIGFuZCBjb250ZXh0IHN1cHBvcnQKICAgCjIwMDAtMDUtMTIgMDg6NDUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IFJlY29nbmlzZSBTb2xhcmlzIEFUTSBMQU4gRW11bGF0aW9uIGludGVyZmFjZXMKICAgCVRoYW5rcyB0byBKYXkgWW91bmcKICAgCjIwMDAtMDUtMTIgMDg6MTMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYywgYWdlbnRfaW5kZXguaCwgTWFrZWZpbGUuaW4KLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudF9pbmRleC5bY2hdIGFnZW50X3JlZ2lzdHJ5LltjaF0gTWFrZWZpbGUuaW4gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAtIFNwbGl0IGluZGV4IGhhbmRsaW5nIG91dCBmcm9tIHRoZSBNSUIgcmVnaXN0cnkuCiAgIAoyMDAwLTA1LTEyIDA3OjAyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBBZGQgc3VwcG9ydCBmb3IgcmVjb2duaXNpbmcgUXVhZEZhc3RFdGhlciBpbnRlcmZhY2UKICAgCjIwMDAtMDUtMTIgMDY6NTcgIGRhdmVzCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChhcHBzL3NubXB0YWJsZS5jKTogRml4IHByb2JsZW0gd2l0aCBtaXNzaW5nIHNlcGFyYXRvciAod2l0aCAtQ2kgLUNmKQogICAJVGhhbmtzIHRvIFhhdmllciBGT1VSTkVUCiAgIAoyMDAwLTA1LTEyIDA0OjAyICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmUgcmVkdW5kYW50IFBEVSBjbG9uZQogICAJSSdtIHN1cmUgdGhpcyB3YXMgcHV0IGluIGZvciBhIHJlYXNvbiwgYnV0IEkgY2FuJ3QgcmVtZW1iZXIgd2hhdC4KICAgCUl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWVkZWQgbm93LCBhbmQganVzdCBsZWFrcyBtZW1vcnkuCiAgIAlIZXJlJ3MgaG9waW5nLi4uLi4KICAgCjIwMDAtMDUtMTIgMDM6MTEgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogQ2F0Y2ggKGFuZCBpZ25vcmUpIFNJR1BJUEUgc2lnbmFscy4KICAgCURpc2FwcGVhcmluZyBzdWJhZ2VudHMgdGhlcmVmb3IgYXBwZWFyIGFzIG5vcm1hbCBJL08gZmFpbHVyZXMKICAgCjIwMDAtMDUtMTIgMDI6MjQgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAoYWdlbnR4L3Byb3RvY29sLmMpOgogICAgIC0gSW1wbGVtZW50IG9wYXF1ZS1lbmNvZGVkIGZsb2F0ICYgZG91YmxlIHR5cGVzCiAgICAgLSBCcmluZyBwYWNrZXQgZHVtcCBpbiBsaW5lIHdpdGggdGhlIG1haW4gbGlicmFyeSBzdHlsZQogICAgIC0gQWRkIHBhY2tldCBkdW1wIGNhcGFiaWxpdHkgZm9yIG91dGdvaW5nIFBEVXMKICAgCjIwMDAtMDUtMTAgMTY6NTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogZG9jdW1lbnQgLXAuCiAgIAoyMDAwLTA1LTEwIDE2OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBhbHdheXMgdXNlIHRoZSBkZWZhdWx0IHRyYW5zcG9ydCBtYXBwaW5nLCBub3QgdGhlIGxhc3Qgb25lLgogICAKMjAwMC0wNS0xMCAxNjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbXBsZW1lbnQgbXVsdGlwbGUgdHJhbnNwb3J0CiAgICAgbWFwcGluZ3MgdmlhIC1wIFt0cmFuc3BvcnQ6XXBvcnRbQGFkZHJlc3NdLgogICAKMjAwMC0wNS0xMCAxMTowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICBmaXggdWRwc3RhdCAtLT4gdGNwc3RhdAogICAKMjAwMC0wNS0xMCAwNzo1OSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIG1hc3Rlcl9yZXF1ZXN0LmMKOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LCBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gSGFuZGxlIHN1YmFnZW50IGRpc2FwcGVhcmluZyB3aXRob3V0IHdhcm5pbmcKICAgCjIwMDAtMDUtMTAgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jIHNubXBsaWIvc25tcF9hcGkuaCk6CiAgICAgLSBQcm92aWRlIGEgbWVjaGFuaXNtIHRvIGhhbmRsZSBhc3luY2hyb25vdXMgc2VuZCBmYWlsdXJlcy4KICAgCjIwMDAtMDUtMTAgMDY6MTMgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBMb2dpY2FsIE5PVD8gQml0d2lzZSBOT1Q/IFdobydsbCBub3RpY2UgdGhlIGRpZmZlcmVuY2UgYW55d2F5IQogICAKMjAwMC0wNS0xMCAwNTozNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEhhbmRsZSBub24tcmVzcG9uc2l2ZSBzdWJhZ2VudHMKICAgCjIwMDAtMDUtMTAgMDU6MzMgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCjoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgbWliSUkvc3lzT1JUYWJsZS5jKTogRG9uJ3QgYXNzdW1lIHN1YnNlc3Npb24gbGluayBpcyB2YWxpZAogICAKMjAwMC0wNS0xMCAwNToyOSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IERlZmluaXRpb25zIGZvciBzZXNzaW9uIGNsb3NlZG93biBoYW5kbGluZwogICAKMjAwMC0wNS0wOSAxNDo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBhbHNvIGNsZWFuIFdpbjMyIGJpbmFyeSBvYmplY3RzLCBhbmQgY29yZSBmaWxlcy4KICAgCjIwMDAtMDUtMDkgMTQ6MzQgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICB0b3VjaCB1cCB0aGUgImNsZWFuIiBydWxlLgogICAKMjAwMC0wNS0wOSAxMTozMiAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICB1bnRpbCBEYXZlJ3MgdmVyc2lvbiB3aW5zLCBuZWVkIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUgdG8gYnVpbGQgV2luMzIgYWdlbnQuCiAgIAoyMDAwLTA1LTA5IDExOjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZml4IHNvbWUgV2luMzIgYnVpbGRzIChzaWduYWxzPyB3ZSBkb24ndCBuZWVkIG5vIHN0ZWVua2luZyBzaWduYWxzISkKICAgCjIwMDAtMDUtMDkgMTE6MzAgIG1zbGlmY2FrCgogICAqIGx0bWFpbi5zaDoKCiAgIFJlbW92ZSB0cmFpbGluZyBDUiBbMHgwZF0gZnJvbSBvbmUgbGluZS4KICAgCjIwMDAtMDUtMDkgMDg6NTAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKICAgICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgogICAKMjAwMC0wNS0wOSAwODo0NyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgo6CgogICAtIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKICAgICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgogICAKMjAwMC0wNS0wOSAwNzo0MyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IFNlbmQgb3V0IHJlLWRlbGVnYXRlZCByZXF1ZXN0cwogICAJKGFuZCBmaXggYSBwcm9ibGVtIHdpdGggc3BlY2lmeWluZyB0aGUgZW5kLW9mLXJhbmdlIHZhbHVlKQogICAKMjAwMC0wNS0wOSAwNzo0MCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBoYW5kbGluZyBvZiBlcnJvciByZXNwb25zZSBnZW5lcmF0aW9uCiAgIAkoYnkgYW5hbG9neSB3aXRoIHJlY2VudCBjaGFuZ2VzIHRvIHNubXBfYWdlbnQuYykKICAgCjIwMDAtMDUtMDkgMDc6MzQgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IEhhbmRsZSBBZ2VudFggImVuZC1vZi1yYW5nZSIgaW5kaWNhdGlvbi4KICAgCShUaGlzIGlzIG5vdCB0aGUgY2xlYW5lc3Qgd2F5IG9mIGRvaW5nIHRoaW5ncywKICAgCSBidXQgd29ya3MgZm9yIG5vdy4gIFdlIGNhbiB0aWR5IHVwIGxhdGVyKS4KICAgCjIwMDAtMDUtMDkgMDc6MTYgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBVc2UgTUlCIHJlZ2lzdHJ5ICdzdGFydCcgdmFsdWVzCiAgIAkocmF0aGVyIHRoYW4gdGhlIG9yaWdpbmFsIG5hbWUgcmVnaXN0ZXJlZCkKICAgCVRoaXMgaGFuZGxlcyBzdWJzZXF1ZW50IHBhcnQgb2YgJ3NwbGl0JyByYW5nZXMgcHJvcGVybHkuCiAgIAoyMDAwLTA1LTA4IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogSSBjYW4ndCBiZWxpZXZlIHRoZSBsYXN0IGNoZWNraW4gZXZlbiBjb21waWxlZCAobHVjaykuCiAgIAoyMDAwLTA1LTA4IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZml4IGxpYnJhcnkgbGlzdC4KICAgCjIwMDAtMDUtMDUgMDk6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgLSAoZGlza2lvLmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSBkaXNrIGlvIHN1cHBvcnQgZm9yIEJTRC9PUy4KICAgCjIwMDAtMDUtMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYyAoVjQtMS0xLXBhdGNoZXMuMSksIGF0LmM6CgogICAtIChhdC5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgIC0gZml4IGEgemVybyBieXRlIG1hbGxvYyBidWcgKG1vc3RseSBub3RpY2VkIHdpdGggLWxlZmVuY2UpLgogICAKMjAwMC0wNS0wNSAwOTo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlIChWNC0xLTEtcGF0Y2hlcy41KSwgY29uZmlndXJlLCBjb25maWd1cmUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEFsYmVydCBDaGluLUEtWW91bmc6CiAgICAgLSAtLXdpdGgtbGlid3JhcCBpbXByb3ZlbWVudHMuCiAgIAoyMDAwLTA1LTA1IDA5OjAwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBzdWJhZ2VudC5jLCBtYXN0ZXJfcmVxdWVzdC5jCjoKCiAgIC0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKToKICAgICAtIFNpZ25pZmljYW50IGltcHJvdmVtZW50cyB0byBBZ2VudFggcHJvY2Vzc2luZwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDUgMDg6NTggIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdIHNubXBsaWIvc25tcF9jbGllbnQuYyBhZ2VudC9zbm1wX2FnZW50LltjaF0pOgogICAgIC0gTWlub3IgY2hhbmdlcyB0byBhc3Npc3Qgd2l0aCBBZ2VudFggZGV2ZWxvcG1lbnQKICAgCShUaGVzZSBtYXkgbm90IGJlIGFic29sdXRlbHkgbmVjZXNzYXJ5LCBidXQgdGhleSBnZXQgdGhpbmdzIHdvcmtpbmcgYWdhaW4hKQogICAKMjAwMC0wNS0wNCAxNjoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1pbm9yIHVuaW1wb3J0YW50IC0td2l0aG91dC1vcGVuc3NsIGZpeC4KICAgCjIwMDAtMDUtMDQgMTY6MTkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKICAgICAtIGFsbG93IC0td2l0aG91dC1vcGVuc3NsIHRvIHdvcmsuCiAgIAoyMDAwLTA1LTA0IDE2OjE1ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTWFrZWZpbGUuaW4gKFY0LTEtMS1wYXRjaGVzLjIpLCBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogYWRkIHRoZSBESVNNQU4tU0NSSVBULU1JQi50eHQKICAgCjIwMDAtMDUtMDQgMTY6MDEgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQWxiZXJ0IENoaW4tQS1Zb3VuZzoKICAgICAtIGluc3RhbGwgVUNELURJU0tJTy1NSUIudHh0LgogICAKMjAwMC0wNS0wNCAwODoyNiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50Lmg6CgogICAtIChzbm1wbGliL3NubXBfY2xpZW50LltjaF0pOiBOZXcgcm91dGluZSAnc25tcF9jbG9uZV92YXJiaW5kKCknCiAgIAkJKEZyb20gYSBzdWdnZXN0aW9uIGJ5IFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNS0wNCAwODoyNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVmFyaW91cyBtaW5vciBmaXhlcwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDUtMDQgMDE6MjkgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LltjaF0pOiBIYW5kbGUgaW5kZXgvc3RhdHVzIGluZm9ybWF0aW9uIHNlcGFyYXRlbHkgZnJvbSBQRFUuCiAgIAlBbHNvIG1lYW5zIHRoYXQgZGVsZWdhdGVkIHJlcXVlc3RzIGhhdmUgYWNjZXNzIHRvIHZhcmlhYmxlIGluZGV4ZXMKICAgCQkoQmFzZWQgb24gYSBzdWdnZXN0aW9uIGZyb20gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTA0IDAxOjAwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICAtICh1Y2Qtc25tcC9wcm9jLmMpOiBJbml0aWFsaXplIG5ld2x5IG1hbGxvY2VkIHN0cnVjdHVyZQogICAJKFRoYW5rcyB0byBKZWZmIFdpbHNvbiAtIHNlZSBCVUcgIzIzMSkKICAgCjIwMDAtMDUtMDMgMDk6MDYgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKHNubXBfYWdlbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgIC0gQ2xvbmUgUERVIHdpdGhpbiBpbml0X2FnZW50X3NubXBfc2Vzc2lvbi4KICAgICAgIE5ldyByb3V0aW5lICdmcmVlX2FnZW50X3NubXBfc2Vzc2lvbicKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTAzIDA4OjE3ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBXaGVuIHJldHVybmluZyBhbiBlcnJvciByZXNwb25zZSwKICAgCXVzZSBhIGNsZWFuIGNvcHkgb2YgdGhlIG9yaWdpbmFsIHJlcXVlc3QgUERVLgogICAKMjAwMC0wNS0wMyAwODoxNCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuW2NoXSk6IFJvdXRpbmUgdG8gaGFuZGxlIHZhcmlhYmxlcyBpbmRpdmlkdWFsbHkKICAgCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCiAgIAoyMDAwLTA1LTAzIDA0OjM3ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBDaGVjayBhY2Nlc3NpYmlsaXR5IG9mIGV4YWN0IHJlcXVlc3RzIGJlZm9yZSBwcm9jZXNzaW5nCiAgIAkoYW5kIHJlbW92ZSByZWR1bmRhbnQgJ2dlbmVyaWMnIFNFVCBoYW5kbGluZykKICAgCjIwMDAtMDUtMDEgMTE6MzQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogZml4IHByaW50aW5nIG9mIEJJVFMgdmFyaWFibGVzCiAgIAoyMDAwLTA1LTAxIDA2OjU1ICBtYXJ6CgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgIGFwcGxpZWQgcGF0Y2ggZnJvbSBTdGV2ZSBQaGVyYW4gU25vZGdyYXNzIHRvIGZpeCBpbmNvbXBhdGliaWxpdHkgd2l0aCBwZXJsNS42IHJlZiBzdHJpbmdpZmljYXRpb24KICAgCjIwMDAtMDQtMjkgMDc6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMKOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwgYWdlbnRfcmVnaXN0cnkuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIHVzZSBzaWdhY3Rpb24gd2hlbiBhdmFpbGFibGUuCiAgIAoyMDAwLTA0LTI4IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBkLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZml4IHNpZ25hbCBoYW5kbGluZy4KICAgCjIwMDAtMDQtMjcgMTQ6NTggIGhhcmRha2VyCgogICAqIGFwcHMvOiBNYWtlZmlsZS5pbiwgc25tcGRmLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGRmLmMpOiBpbXBsZW1lbnQgYSByZW1vdGUgZGYgY29tbWFuZCB2aWEgc25tcAogICAgIC0gKG5lZWRzIHRoZSBob3N0IHJlc291cmNlcyBtaWIgd29ya2luZyBvbiB0aGUgcmVtb3RlIHN5c3RlbSkuCiAgIAoyMDAwLTA0LTI3IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcnBtIGlzIG5vdwogICAgIHJlcXVpcmluZyB5ZXQgYW5vdGhlciBsaWJyYXJ5OiBsaWJwb3B0LgogICAKMjAwMC0wNC0yNiAxNToyMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSAoTWFrZWZpbGUudG9wKTogcnVuIGxpYnRvb2wgLS1maW5pc2ggd2l0aG91dCAtbiAoZ28gYWhlYWQgYW5kIGRvIHRoZSBjbWRzKQogICAKMjAwMC0wNC0yNiAxNToxOSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6CiAgICAgLSBtb3JlIGxpYnRvb2wgZml4ZXMgKC5zbyB2ZXJzaW9uaW5nLCBwcm9wZXJseSBpbnN0YWxsLi4uKQogICAKMjAwMC0wNC0yNiAxNDoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KLCBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLAogICBtaWJzL01ha2VmaWxlLmluLCBzbm1wbGliLy5jdnNpZ25vcmUsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CiAgICAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCiAgICAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQogICAKMjAwMC0wNC0yNiAxNDoxNSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwKICAgYWNsb2NhbC5tNCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGx0Y29uZmlnLCBsdG1haW4uc2gsIGFnZW50Ly5jdnNpZ25vcmUsCiAgIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4Ly5jdnNpZ25vcmUKLCBhZ2VudC9taWJncm91cC9kdW1teS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9ob3N0Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC9zbXV4Ly5jdnNpZ25vcmUsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvLmN2c2lnbm9yZSwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS8uY3ZzaWdub3JlLAogICBhZ2VudC9taWJncm91cC92ZXN0aW50ZXJuZXR0Ly5jdnNpZ25vcmU6CgogICAtICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbiwgbHRjb25maWcsIGx0bWFpbi5zaCk6CiAgICAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCiAgICAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQogICAKMjAwMC0wNC0yNiAwODoxMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbmV3IHNlY29uZGFyeSBzbG9nYW4uCiAgIAoyMDAwLTA0LTI2IDA3OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jOgoKICAgLSAoc25tcF9hcGkuYywgc25tcHVzbS5jKTogQXR0ZW1wdCB0byBwYXJzZSB0aGUgUERVIHdoZW4gYSByZXBvcnQgaXMKICAgICBiZWluZyBzZW50IHNvIHRoYXQgdGhlIHJlcXVlc3RpZCBjYW4gYmUgdXNlZCBpbiB0aGUgb3V0Z29pbmcgcmVwb3J0LgogICAgIFRoaXMgc2hvdWxkIGZpeCBhIHByb2JsZW0gd2hlcmUgU05NUCBSZXNlYXJjaCdzIEVtYW50ZSBhZ2VudCBpcwogICAgIGRvaW5nIGVuZ2luZUlEIGRpc2NvdmVyeSBwcm9iZXMgYmFzZWQgb24gdGhlIHJlcXVlc3RfaWQgKHdoaWNoIGlzIGEKICAgICBmYWlybHkgcG9vciBjaG9pY2UgYXMgdGhlIG1lc3NhZ2VfaWQgd291bGQgYmUgYSBiZXR0ZXIgb25lIHRvIG1hdGNoCiAgICAgb24gaW4gZ2VuZXJhbCBhbmQgaXMgdGhlIG9ubHkgcG9zc2libGUgdGhpbmcgdG8gdXNlIGluIGNhc2VzIHdoZXJlCiAgICAgdGhlIHJlcG9ydCBpcyBlbmNyeXB0ZWQpLgogICAKMjAwMC0wNC0yNSAxMzowOCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogbWVudGlvbiB0aGF0IHRoZSBwZXJsIG1vZHVsZSBpcyBpbmNsdWRlZCB3aXRoIHRoZSBzb3VyY2UuCiAgIAoyMDAwLTA0LTI1IDA4OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogbWlzYyAtRGR1bXAgZml4ZXMuCiAgIAoyMDAwLTA0LTI1IDA4OjAyICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRhYmxlLmMgKFY0LTEtMS1wYXRjaGVzLjQpLCBzbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogY2hlY2sgZm9yIGVuZCBvZiBtaWIgdmlldyBleGNlcHRpb25zICh2MmMsIHYzKS4KICAgCjIwMDAtMDQtMjQgMTE6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiAtRCBzdXBwb3J0IGZvciB0aG9zZSAib2xkZXIiIHByb3RvY29scyB0aGF0IHNob3VsZG4ndAogICAgIGJlIHVzZWQgYW55bW9yZSAodjEsIHYyYykuCiAgIAoyMDAwLTA0LTI0IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLAogICBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2RlYnVnLmMKLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYzoKCiAgIC0gKGFzbjEuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywKICAgICBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jKToKICAgICAtIHRpbWVzdGFtcHMgY2FuIGJlIHByaW50ZWQgYXMgYSBudW1lcmljIG51bWJlciBvbmx5ICgtT3QpLgogICAgIC0gbW9yZSBjb25maWd1cmFibGUgcGFja2V0IGR1bXBpbmcgY29kZSBmb3IgYm90aCBzZW5kIGFuZCByZWNlaXZlLgogICAgICAgLSB1c2VzIG5ldyAtRCB0b2tlbnM6IGR1bXBoIChoZWFkZXJzKSwgZHVtcHggKGhleCksIGR1bXB2CiAgICAgICAgICh2YWx1ZXMpLiAgZHVtcHhfIGFuZCBkdW1wdl8gKG5vdGUgdGhlIF9zKSBtYWtlIGl0IGVhdCBzcGFjZQogICAgICAgICAoYW5kIG5ld2xpbmUpIGJlZm9yZSB0aGUgc2VnbWVudCBpbiBxdWVzdGlvbi4gIFRyeSAtRGR1bXAgdGhlbgogICAgICAgICAtRGR1bXBoLGR1bXB2XyB0byBzZWUgZXhhbXBsZXMuCiAgICAgICAtIHRvZG86CiAgICAgICAgIC0gYmV0dGVyIGhvcml6b250YWxseSBmb3JtYXRlZCBpbmZvcm1hdGlvbiAocHJvYmFibHkgdXNpbmcgIiVOVU1zIikuCiAgICAgICAgIC0gVVNNIGlzIGNhbGxlZCBhZnRlciBwZHUgYnVpbGRpbmcgKG1ha2VzIHNlbnNlIGJ1dCBpcyBiYWNrd2FyZHMKICAgICAgICAgICB2aXN1YWxseSBpbiB0aGUgZHVtcGVkIHBhY2tldCkuCiAgICAgICAgIC0gb3B0aW9uIHRvIHN0cmlwIGRhdGF0eXBlIHRva2VuIChpZSBJbnRlZ2VyOikuCiAgIAoyMDAwLTA0LTI0IDA5OjM3ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUwICkKICAgCjIwMDAtMDQtMjQgMDk6MTMgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgUkVBRE1FLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4KLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIEVYVC40LjIucHJlMCApCiAgIAoyMDAwLTA0LTIxIDE0OjEzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHdhbGsuYyAoVjQtMS0xLXBhdGNoZXMuMSksIHNubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogZml4IEdFVCBjYWxsIGZvciBhbiBzbm1wd2Fsay4gKHdhcyB1c2luZyBhIEdFVE5FWFQgUERVLCBhY2spLgogICAKMjAwMC0wNC0yMSAxMDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogbW9yZSB1X2xvbmcgLT4gc2l6ZV90IGZvciBlbmdpbmVJRCBsZW4uCiAgIAoyMDAwLTA0LTIxIDA4OjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMgKFY0LTEtMS1wYXRjaGVzLjUpLCBtaWIuYzoKCiAgIC0gKG1pYi5jKTogZml4IGZwcmludF9kZXNjcmlwdGlvbiB0byBjaGVjayBmb3IgbnVsbCBzdWJ0cmVlcy4KICAgCjIwMDAtMDQtMjEgMDg6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYywgc25tcHYzLmg6CgogICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiB1c2Ugc2l6ZV90IGZvciBlbmdpbmVpZCBsZW5ndGhzLgogICAKMjAwMC0wNC0xOSAxMTowMiAgbWFyegoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIGNoYW5nZWQgbW9kZV90IHR5cGVkZWYgdG8gYWdyZWUgd2l0aCB3aGF0IEFjdGl2ZVN0YXRlIHBlcmwgdXNlcyAoYW55b25lIGhhdmUgYSBwcm9ibGVtIHdpdGggdGhpcz8pCiAgIAoyMDAwLTA0LTE5IDEwOjU5ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgYWRkZWQgTWFyYyBMZWhtYW4gcGF0Y2ggdG8gZW5zdXJlIGFsbG9jL2RlYWxsb2MgdXNlIHNhbWUgbWVjaGFuaXNtIChwZXJsIHZzLiBzeXN0ZW0gZGVmYXVsdCkKICAgCjIwMDAtMDQtMTkgMDg6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkgYWx3YXlzIGJsb2NrIGlmIGNhbGxlciByZXF1ZXN0ZWQgaXQuCiAgIAoyMDAwLTA0LTE5IDA0OjM0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgbW92ZSBzdGF0aWMgZGVjbCB0byAuYzttaW5vciBjYXN0aW5nIGFib3V0IHRvIHN1cHBvcnQgYUNDCiAgIAoyMDAwLTA0LTE4IDExOjExICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgU3luY2ggZGV2ZWwgYnJhbmNoIHdpdGggcGF0Y2hlcyBicmFuY2guCiAgIAoyMDAwLTA0LTE4IDExOjA3ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiAgIChWNC0xLTEtcGF0Y2hlcy5bMywzLDMsMiwzLDJdKSwgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgRGVmaW5lIG9wdGFyZyBmb3IgYXBwcyB1c2U7IERlZmluZSB2YWNtX2lzX2NvbmZpZ3VyZWQgZm9yIGFnZW50IHVzZS4KICAgCjIwMDAtMDQtMTggMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0CjoKCiAgIC0gKHZtc3RhdC5jLCB2bXN0YXQuaCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWl6dWtpIEhvbmRhOgogICAgIC0gaW1wbGVtZW50IHJhdyBjcHUgdXNhZ2UgbnVtYmVycy4KICAgCjIwMDAtMDQtMTggMDM6MTggIGRhdmVzCgogICAqIG1hbi9zbm1wdGFibGUuMSwgYXBwcy9zbm1wdGFibGUuYyAoVjQtMS0xLXBhdGNoZXMuWzEsM10pLAogICBtYW4vc25tcHRhYmxlLjEsIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChtYW4vc25tcHRhYmxlLjEgYXBwcy9zbm1wdGFibGUuYyk6CiAgICAgLSBDb21tYW5kLXNwZWNpZmljICctQycgb3B0aW9ucyBmb3Igc25tcHRhYmxlCiAgIAoyMDAwLTA0LTE4IDAyOjAxICBkYXZlcwoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMgKFY0LTEtMS1wYXRjaGVzLjQpLCBzbm1wX3BhcnNlX2FyZ3MuYwo6CgogICAtIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogSGFuZGxlIHByZXZpb3VzIGZvcm0gb2YgLVogb3B0aW9uIGFzIHdlbGwKICAgCjIwMDAtMDQtMTcgMTU6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGZpeCAtWiBpZiBhcmdzIGFyZSB3cm9uZy4KICAgCjIwMDAtMDQtMTcgMTU6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGNtZC4xKTogZml4IC1aIHRvIHVzZSBhICcsJy4KICAgCjIwMDAtMDQtMTcgMTU6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogbXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oCjoKCiAgIC0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IFBhdGNoIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CiAgICAgLSB1cGRhdGUgb24gdGhlIHNlbmRtYWlsIG1vZHVsZS4KICAgCjIwMDAtMDQtMTcgMTU6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0LmMgKFY0LTEtMS1wYXRjaGVzLjEpLCB2bXN0YXQuYwo6CgogICAtICh2bXN0YXQuYyk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgogICAgIC0gZml4IHNzQ3B1U3lzdGVtLCBzc0NwdVVzZXIsIHNzQ3B1SWRsZS4KICAgCjIwMDAtMDQtMTcgMTQ6MTggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4pOiBwcm9wZXJseSB1c2UgTE5fUyBmb3IgbGlua2luZyBzbm1waW5mb3JtLgogICAKMjAwMC0wNC0xNyAxMzo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB1c20uYywgc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHVzbS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOiBlbmdpbmVJRCBjaGFuZ2VzIGZvciBiZXR0ZXIgYUNDIHN1cHBvcnQuCiAgIAoyMDAwLTA0LTE3IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhcHBzLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIHNubXBpbmZvcm0uCiAgIAoyMDAwLTA0LTE3IDA5OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBmaXggcm93IGNyZWF0aW9uLgogICAKMjAwMC0wNC0xNyAwNzoyNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIHNubXBkLmMsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwogICAoVjQtMS0xLXBhdGNoZXMuWzIsMywyXSksIGF1dG9fbmxpc3QuYywgc25tcGQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAoYXV0b19ubGlzdC5jIHNubXBkLmMgYWdlbnR4L21hc3Rlci5jKTogRG9uJ3QgZXhpdCBvbiBmYWlsdXJlIHdpdGggJy1yJwogICAKMjAwMC0wNC0xNCAxNTowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcGdldC4xLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLAogICAgIHNubXBzdGF0dXMuYywgc25tcGNtZC4xLCBzbm1wZ2V0LjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOgogICAgIC0gbW92ZSAtSWYgdG8gLUNmIGFuZCBpbnZlcnQgYmVoYXZpb3VyLgogICAKMjAwMC0wNC0xNCAxNTowNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBkZWJ1Z2dpbmcgb3V0cHV0IChvcHBzKS4KICAgCjIwMDAtMDQtMTQgMDk6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdmVyc2lvbmluZm8uYyAoVjQtMS0xLXBhdGNoZXMuMiksCiAgIHZlcnNpb25pbmZvLmM6CgogICAtICh2ZXJzaW9pbmZvLmMpOiBhbHJpZ2h0LiAgV2hvIG1hZGUgdmVyc2lvbkNsZWFyQ2FjaGUgUk9OTFk/CiAgIAoyMDAwLTA0LTEzIDA1OjQ5ICBuYmEKCiAgICogbWFuL3NubXB0cmFuc2xhdGUuMToKCiAgIC0gc25tcHRyYW5zbGF0ZS4xOiBkZWN1bWVudCB0aGUgLXcgd2lkdGggb3B0aW9uCiAgIAoyMDAwLTA0LTEyIDEyOjA1ICBtc2xpZmNhawoKICAgKiBidWctcmVwb3J0IChWNC0xLTEtcGF0Y2hlcy4xKSwgYnVnLXJlcG9ydDoKCiAgIGhpZGUgdXNlcidzIGhvc3RuYW1lOyBwcm9tcHQgYmVmb3JlIHNlbmRpbmcgZS1tYWlsOyBwcm9tcHQgdG8gc2F2ZSBhcyBmaWxlLgogICAKMjAwMC0wNC0xMiAxMToyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jIChWNC0xLTEtcGF0Y2hlcy4zKSwgbWliLmM6CgogICBmaXggJWYoJXMpCiAgIAoyMDAwLTA0LTEyIDA5OjI5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wY21kLjEgKFY0LTEtMS1wYXRjaGVzLjIpLCBzbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtSWYuCiAgIAoyMDAwLTA0LTEyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwdXQgKysgYmFjayBpbiB0aGF0IGFjY2lkZW50aWNhbGx5IGdvdCBjaGVja2VkIGluLgogICAKMjAwMC0wNC0xMiAwOToxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIChzbm1wc2V0LmMpOiBwdXQgc3BhY2UgYmFjayBpbiB1c2FnZSBsaW5lLgogICAKMjAwMC0wNC0xMiAwOToxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgICBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6CiAgICAgLSBBZGQgYSBuZXcgb3B0aW9uIC1JZiB0byBzcGVjaWZ5IGZpeGluZyBvZiBQRFVzLgogICAgICAgLSBBbnlvbmUga25vdyBhIGJldHRlciBwbGFjZSB0byBwdXQgdGhpcyBvcHRpb24/CiAgICAgLSBBcHBsaWNhdGlvbnMgZG9uJ3QgZG8gdGhpcyBieSBkZWZhdWx0IGFueW1vcmUsIGFuZCB5b3UgY2FuJ3QgaW4gc25tcHNldC4KICAgCjIwMDAtMDQtMTIgMDc6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtICh2YWNtX3ZhcnMuYywgdmFjbS5jLCB2YWNtLmgpOiBmaXggdG8gYWxsb3cgbm8gdjEvdjJjIHJlcXVlc3RzIHdoZW4KICAgICBjb25maWd1cmVkIGZvciBqdXN0IHYzLgogICAKMjAwMC0wNC0xMiAwNjo0OSAgbXNsaWZjYWsKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCiAgIChWNC0xLTEtcGF0Y2hlcy5bMSwxXSksIHdpbjMyLmRzdywgbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgZml4IE1TVkMgYnVpbGQgZm9yIGVuY29kZV9rZXljaGFuZ2UsIGFuZCBhZGQgbW9yZSBzeW1ib2xzIGZvciByZWxlYXNlIGJ1aWxkcwogICAKMjAwMC0wNC0xMiAwNTozMiAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogY29ycmVjdCBwYXJzaW5nIG9mIHN1Yi10eXBlcyB0ZXh0dWFsIGNvbnZlbnRpb25zLiBBbGxvdyBwYXJzaW5nCiAgIAlvZiBNQUNSTyBpbnZvY2F0aW9ucyBmb3Igc3RhbmRhcmQgc3ltYm9scwogICAKMjAwMC0wNC0xMiAwNTozMSAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gcGFyc2UuW2NoXSwgc25tcHRyYW5zbGF0ZS5jOiBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIHdpdGggZm9yIC1UcAogICAKMjAwMC0wNC0xMiAwNTozMCAgbmJhCgogICAqIG1pYnMvOiBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQKOgoKICAgLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQ6IGFsaWduIHdpdGggcHVibGlzaGVkCiAgIAlSRkMgMjc5MAogICAKMjAwMC0wNC0xMSAxNTozMyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1ha2UgY29uZmlnX2FkZF9taWIoKSBhY3R1YWxseSBsb29rIGZvcgogICAgIHRoZSBtaWIgaW4gJHNyY2Rpci9taWJzL2JsYWggYW5kIGluc3RhbGwgaXQgaWYgZm91bmQuCiAgIAoyMDAwLTA0LTExIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcHYzLmMsIHNubXB2My5oOgoKICAgLSAoc25tcHYzLmMsIHNubXB2My5oKTogbWFrZSBtYWNhZGRyIGVuZ2luZWlkIHNldHVwIG5vdCBsaW51eAogICAgIHNwZWNpZmljLCBidXQgI2RlZmluZXMgYXJlIGNoZWNrZWQgaW5zdGVhZC4KICAgCjIwMDAtMDQtMTEgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICAtIChzbm1wX2xvZ2dpbmcuaCk6IHJlbW92ZSBvbGQgY2FsbGJhY2sgdHlwZWRlZiBubyBsb25nZXIgbmVlZGVkLgogICAKMjAwMC0wNC0xMSAxNDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IFBhdGNoIGZyb20gSm9obiBMLiBWaWxsYWxvdm9zOgogICAgIC0gZW5hYmxlIGVuZ2luZUlEIHRvIGJlIHNldCBmcm9tIE1BQ0FkZHIuCiAgIAoyMDAwLTA0LTExIDA5OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaAo6CgogICAtIChtdGFfc2VuZG1haWwuYywgbXRhX3NlbmRtYWlsLmgpOiBOZXcgbW9kdWxlIGZyb20gQ2hyaXN0b3BoIE1hbW1pdHpzY2g6CiAgICAgLSBpbXBsZW1lbnRzIHRoZSBNVEEtTUlCIGZvciBtb25pdG9yaW5nIHNlbmRtYWlsLgogICAKMjAwMC0wNC0xMSAwOTo1MCAgaGFyZGFrZXIKCiAgICogbWlicy86IE1UQS1NSUIudHh0LCBORVRXT1JLLVNFUlZJQ0VTLU1JQi50eHQ6CgogICAtIChNVEEtTUlCLnR4dCwgTkVUV09SSy1TRVJWSUNFUy1NSUIudHh0KTogbmV3IG1pYnMgZm9yIG5ldyBtb2R1bGVzLgogICAKMjAwMC0wNC0xMSAwMzoyNSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogU2F2ZS9yZXN0b3JlIG9yaWdpbmFsIHN0YXRQIHZhbHVlIGZvciBTRVQgaGFuZGxpbmcuCiAgIAoyMDAwLTA0LTExIDAyOjM1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJlcG9ydCBmYWlsdXJlcyBmcm9tIEFDVElPTiBwaGFzZSBvZiBTRVQgY29ycmVjdGx5LgogICAKMjAwMC0wNC0xMSAwMTo1NyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYyAoVjQtMS0xLXBhdGNoZXMuMyksCiAgIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IER5bmFtaWNhbGx5IHJlc2l6ZSBzdWJhZ2VudCByZXF1ZXN0cwogICAJKFRoYW5rcyB0byBSZWluZXIgQmVuaW5nYSkKICAgCjIwMDAtMDQtMTAgMDU6MDggIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYwogICAoVjQtMS0xLXBhdGNoZXMuWzAsMl0pLCBzbm1wX2FnZW50LmMsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoc25tcF9hZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IG11bHRpLXN1YmFnZW50IHJlcXVlc3RzCiAgIAkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQogICAKMjAwMC0wNC0wNyAxMjoyNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jLCBzbm1wbGliL3NubXB1c20uYyAoVjQtMS0xLXBhdGNoZXMuWzIsMl0pLAogICBhcHBzL3NubXB0cmFwLmMsIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHRyYXAuYywgc25tcHVzbS5jKToKICAgICAtIGZpeCBzbm1wdjMgdHJhcHMgdG8gYmUgYXV0aG9yaXRhdGl2ZSBmcm9tIHRoZSBjbGllbnQgc2lkZSwgbm90IHRoZQogICAgICAgcmVjZWl2ZXIgc2lkZS4gIHNubXB2MyBpbmZvcm1zIHN0YXkgYXMgaXMuICBVbmZvcnR1bmF0ZWx5LCBmb3IKICAgICAgIGNvbW1hbmQgbGluZSBhcHBzIHRoaXMgZG9lc24ndCBtYWtlIGEgd2hvbGUgbG90IG9mIHNlbnNlIGJ1dCBpcwogICAgICAgcmlnaHQgaW4gdGVybXMgb2YgaG93IHRoZSBwcm90b2NvbCB3b3JrcyBhbmQgdGhpcyBpcyBoZW5jZQogICAgICAgc29tZXdoYXQgb2YgYSBoYWNrLgogICAKMjAwMC0wNC0wNyAwNzo1MCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjkpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBIYW5kbGUgdjIgZXhjZXB0aW9uIHR5cGVzIGluIHYxIHF1ZXJpZXMKICAgCjIwMDAtMDQtMDcgMDc6MTYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wdjMuYwogICAoVjQtMS0xLXBhdGNoZXMuWzQsMiwzXSksIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wdjMuYyk6CiAgICAgLSBhbGxvdyBOVUxMIGhlbHAgbGluZXMgZm9yIGNvbmZpZyBkaXJlY3RpdmVzIGFuZCB1c2UgaXQgdG8gaGlkZQogICAgICAgaW50ZXJuYWwgZGlyZWN0aXZlcyB1c2VkIGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UuCiAgIAoyMDAwLTA0LTA2IDE1OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gdHVybiBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSBtYWNyb3MgYmFjayBpbnRvIGZ1bmN0aW9ucyBzbwogICAgICAgZGVmYXVsdF9zdG9yZS5oIGRlcGVuZGVuY2llcyBnbyBhd2F5IGFnYWluLgogICAgIC0gY3JlYXRlIGEgZmxhZyB0byBub3QgcHJvYmUgZm9yIGVuZ2luZUlEcyBkdXJuaW5nIHNlc3Nfb3BlbigpLgogICAKMjAwMC0wNC0wNiAwNzoyMCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRml4IG1pc2hhbmRsZWQgQ291bnRlcjY0IHBhcnNpbmcKICAgCjIwMDAtMDQtMDYgMDM6MzYgIGRhdmVzCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChhZ2VudC9zbm1wZC5jKTogRml4IHVzYWdlIG1lc3NhZ2UgYWxpZ25tZW50LgogICAKMjAwMC0wNC0wNiAwMzozMSAgZGF2ZXMKCiAgICogbWFuLzogc25tcGQuMS5kZWYgKFY0LTEtMS1wYXRjaGVzLjEpLCBzbm1wZC4xLmRlZjoKCiAgIC0gKG1hbi9zbm1wZC4xLmRlZik6IERvY3VtZW50IHRoZSBBZ2VudFggc29ja2V0IGNvbW1hbmQtbGluZSBvcHRpb24KICAgCjIwMDAtMDQtMDUgMDg6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL0ZBUTJIVE1MOgoKICAgLSAoRkFRMkhUTUwpOiBpdCdzIGJlZW4gc2l0dGluZyBpbiBteSBwZXJzb25hbCBzcmMgdHJlZSBmb3IgPiAyIHllYXJzLgogICAKMjAwMC0wNC0wNSAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiwgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3NubXB2My5jCjoKCiAgIC0gKG1pYmluY2wuaCwgdXNtVXNlci5jLCBzbm1wdHJhcGQuYywgbGNkX3RpbWUuYywgc2NhcGkuYywgc25tcF9hcGkuYywKICAgICBzbm1wdXNtLmMsIHNubXB1c20uaCwgc25tcHYzLmMpOgogICAgIC0gbWFrZSBzbm1wdHJhcGQgaGFuZGxlIHYzIHVzZXJzIHByb3Blcmx5LCAoYW5kIHNodXRkb3duIHByb3Blcmx5IGFzIHdlbGwpLgogICAgIC0gYSBtb3JlIGdlbmVyaWMgdXNlciBzdG9yYWdlIHJvdXRpbmUgYWRkZWQgdG8gc25tcHVzbS5jIGFuZCB1c2VkIGluCiAgICAgICB1c21Vc2VyLmMgd2l0aCBhIHNpZGUgZWZmZWN0IG9mIG5lZWRpbmcgY2FsbGJhY2suaCBhYm92ZSBzbm1wdXNtLmguCiAgIAoyMDAwLTA0LTA1IDA4OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIC0gKHJzbm1wKTogLT4gL3Vzci9iaW4vcGVybAogICAKMjAwMC0wNC0wNSAwODoyNCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBtaXNjIG1pbm9yIGFkZGl0aW9ucyB0byAvCiAgIAoyMDAwLTA0LTA0IDExOjAzICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuOCksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSB1bmltcGxlbWVudGVkIG9iamVjdHMgcmV0dXJuICdub1N1Y2hPYmplY3QnCiAgIAoyMDAwLTA0LTAzIDE0OjU3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBJbml0aWFsaXplIHN0YXRQLgogICAKMjAwMC0wNC0wMyAwOToxMiAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjcpLCBzbm1wX2FnZW50LmM6CgogICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgYSB2MSBTRVQgcmV0dXJucyBhIHYxIGVycm9yIHN0YXR1cy4KICAgCjIwMDAtMDQtMDMgMDg6MzIgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFllYXIgd2FzICIxMDAiIGZvciAyMDAwIChub3RpY2VkIGJ5IEpheSBSaWRkZWxsKToKICAgCjIwMDAtMDQtMDMgMDc6NTMgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0xLTEtcGF0Y2hlcy42KSwgc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIFNFVHMgZmFpbCBpZiBvbmUgdmFyYmluZCBkb2VzLgogICAKMjAwMC0wMy0zMSAwNzoyNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggdG8gcmVwb3J0ICdub1N1Y2hPYmplY3QnIGluIGNlcnRhaW4gY2lyY3Vtc3RhbmNlcwogICAKMjAwMC0wMy0zMSAwNzoxMyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRG9uJ3QgcmVwZWF0IHRoZSBmaXJzdCBmb3VyIGJ5dGVzIGluIGEgUERVIGR1bXAKICAgCjIwMDAtMDMtMzEgMDc6MDQgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfbG9nZ2luZy5jCjoKCiAgIC0gKHNubXBsaWIvc25tcF9sb2dnaW5nLmMpOiBIYW5kbGUgbG9nZ2luZyBlbXB0eSBzdHJpbmdzIChlLmcuIGEgbnVsbCBpbmRlbnQpCiAgIAoyMDAwLTAzLTMwIDAwOjE1ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuNSksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEluaXRpYWxpc2UgdGltZW91dCBzdHJ1Y3R1cmUgcHJvcGVybHkKICAgCShUaGFua3MgdG8gYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQogICAKMjAwMC0wMy0yNyAxMDozMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY0LTEtMS1wYXRjaGVzLjIpLCBocl9zd3J1bi5jCjoKCiAgIHJlbW92ZSB0cmFpbGluZyBuZXdsaW5lIGZyb20gaHJTV1J1bk5hbWUgdmFsdWVzLgogICAKMjAwMC0wMy0yNCAwOTowOSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXBpbmZvcm0uMToKCiAgIHRvIHN5bmMgd2l0aCBwYXRjaGVzIGJyYW5jaC4KICAgCjIwMDAtMDMtMjQgMDU6MDcgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogY29ycmVjdGx5IGZyZWUgdGhlIHJlcG9uc2UgaWYgc2VuZGluZyBpdCBmYWlscwogICAKMjAwMC0wMy0yNCAwNDoyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgeHhfc3luY2hfcmVzcG9uc2U6IGF2b2lkIGZyZWVpbmcgUERVIHR3aWNlLgogICAKMjAwMC0wMy0yMyAyMzoyOSAgbmJhCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXB0cmFwLjEKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXB0cmFwLmM6CgogICAtIHNubXBjbWQuMSwgc25tcHRyYXAuMSwgc25tcHRyYXAuYywgTWFrZWZpbGUuaW46IEluc3RhbGwgYW5kIGRvY3VtZW50CiAgIAlzbm1waW5mb3JtLgogICAKMjAwMC0wMy0yMyAwOTo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRW5xdWV1ZSBvbmx5IGNvbXBsZXRlIHJlcXVlc3RfbGlzdCBlbnRyeTsgUmVkdWNlIHNjb3Bpbmcgb2YgY2FsbGJhY2sgdmFycy4KICAgCjIwMDAtMDMtMjMgMDM6MDIgIG5iYQoKICAgKiBtYW4vc25tcGluZm9ybS4xOgoKICAgZmlsZSBzbm1waW5mb3JtLjEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCiAgIAoyMDAwLTAzLTIyIDA4OjEzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBwcmludGYgPwogICAKMjAwMC0wMy0yMSAxMToxMiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBtb2RpZnkgRi4gU3RyYXVzcycgcGF0Y2ggcGVyIE4uIEJhZ2dlc2VuJ3Mgc3VnZ2VzdGlvbjogcmVtb3ZlIGV4cG9ydC1keW5hbWljLgogICAKMjAwMC0wMy0yMSAwOToxNCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBtb3JlIHNtb290aCBzYWlsaW5nIHdpdGggV2luMzIgLkRMTCAuIERMTEVYUE9SVCwgYW55b25lID8KICAgCjIwMDAtMDMtMjEgMDk6MDcgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIHdpbjMyIGJ1aWxkIGNoZWNrOiBubyBzaWdhY3Rpb24sIFNJR0NMRCBkZWZpbmVkLgogICAKMjAwMC0wMy0yMSAwODo0NyAgZGF2ZXMKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoZHNfYWdlbnQuaCBzbm1wZC5jIG1pYmdyb3VwL2FnZW50eC97bWFzdGVyLHN1YmFnZW50fS5jKToKICAgICAtICBDb21tYW5kLWxpbmUgb3B0aW9uIGZvciBzcGVjaWZ5aW5nIEFnZW50WCBwb3J0CiAgICAgICAgKGJhc2VkIG9uIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcykKICAgCjIwMDAtMDMtMjEgMDg6MzggIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBTdXBwb3J0ICdob3N0OnBvcnQnIHJlcHJlc2VudGF0aW9uIG9mIHBlZXJuYW1lcwogICAKMjAwMC0wMy0yMSAwNDowNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgKFY0LTEtMS1wYXRjaGVzLjQpLCBzbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBNaXNzaW5nIG5ldy1saW5lIG9uIGRlYnVnIG91dHB1dAogICAKMjAwMC0wMy0yMSAwMjo1MiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB0Y3AuYywgdGNwLmgsIHRjcFRhYmxlLmMKLCB0Y3BUYWJsZS5oLCB1ZHAuYywgaWNtcC5jLCB1ZHAuaCwKICAgdWRwVGFibGUuYywgdWRwVGFibGUuaCwgaWNtcC5oLCBpcC5jLAogICBzeXN0ZW1fbWliLmM6CgogICAtIChtaWJJSS97dGNwLHVkcCxpcCxpY21wfSopIENvbnRpbnVpbmcgbWliSUkgY29kZSBjbGVhbnVwCiAgIAoyMDAwLTAzLTIwIDExOjE0ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQ29tbWVudCAtQyAtLSBkbyBub3QgdXNlIHRoaXMgZmxhZy4KICAgCjIwMDAtMDMtMTcgMTU6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogc2l6ZW9mKHgpKihsZW4rMSkgbm90IHNpemVvZih4KSpsZW4rMQogICAKMjAwMC0wMy0xNiAwMDoxMCAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgY29uZmlnLmguaW4sCiAgIGNvbmZpZ3VyZSwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgLSBjb25maWd1cmUsIGhyX3ByaW50LmM6IGRldGVjdCBzeXN0ZW0gcHJpbnRlcnMgKFN5c1YvbHBzdGF0LCAqQlNEL2NnZXRuZXh0LAogICAJTGludXgvcHJpbnRjYXApCiAgIAoyMDAwLTAzLTE1IDE4OjMwICBtc2xpZmNhawoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgU2Vjb25kIHBhcnQ6IGFsbCBtZW1iZXJzIG9mIHN0cnVjdCBzbm1wX2luZGV4IGFyZSBwb2ludGVycy4KICAgCjIwMDAtMDMtMTUgMTU6MDcgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBGaXggbWVtb3J5IGxlYWsgd2l0aCB1bnJlZ2lzdGVyX2luZGV4LgogICAKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggbWVtb3J5IGxlYWsgd2hlbiBjbGVhbmluZyB1cCB0cmFwIHZhcmlhYmxlcy4KICAgCjIwMDAtMDMtMTUgMDg6NDggIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKTogSW5pdGlhbGlzZSB2YXJiaW5kIGRhdGEgaG9vayBlbHNld2hlcmUgYXMgd2VsbC4KICAgCjIwMDAtMDMtMTUgMDc6NTcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMgKFY0LTEtMS1wYXRjaGVzLjEpLAogICBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaW5maW5pdGUgbG9vcCBwcm9ibGVtIHdoZW4gd2Fsa2luZyBzdWJhZ2VudC4KICAgCjIwMDAtMDMtMTUgMDY6MDkgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEF2b2lkIGNhbGxpbmcgcmVhZCByb3V0aW5lIGZvciBlYWNoIFNFVCBoYW5kbGluZyBwYXNzLgogICAJTi5COiAgVGhpcyBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBBZ2VudFggc3ViYWdlbnRzIHlldAogICAKMjAwMC0wMy0xNSAwNjowNyAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLltjaF0pOiBQcm92aWRlIGhvb2sgZm9yIGludGVybmFsIHZhcmJpbmQtcmVsYXRlZCBkYXRhCiAgIAoyMDAwLTAzLTE1IDA1OjIyICBkYXZlcwoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudC92YXJfc3RydWN0LmgpOiBVc2UgYSBzaW5nbGUgbWFnaWMgbnVtYmVyIGZvciBNSUIgcmVnaXN0cnkgbmFtZSBsZW5ndGhzLgogICAKMjAwMC0wMy0xNSAwMTo1MSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHN5c3RlbS5oIChWNC0xLTEtcGF0Y2hlcy4xKSwgc3lzdGVtLmg6CgogICAtIChzbm1wbGliL3N5c3RlbS5oKTogRG9uJ3QgZGVjbGFyZSBnZXR0aW1lb2ZkYXkoKSBpZiB0aGUgc3lzdGVtIHByb3ZpZGVzIGl0LgogICAJKEZpeCBwcm92aWRlZCBieSBSb24gTWV2aXNzZW4pCiAgIAoyMDAwLTAzLTE0IDA3OjU3ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuMyksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBzdGF0dXMgd2hlbiBjaGVja2luZyBhY2Nlc3MuCiAgIAoyMDAwLTAzLTE0IDA3OjUyICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMS0xLXBhdGNoZXMuMiksIHNubXBfYWdlbnQuYzoKCiAgIC0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFJldHVybiBhIHJlc3BvbnNlLCBldmVuIGlmIHRoZSByZXF1ZXN0IGZhaWxlZC4KICAgCjIwMDAtMDMtMTMgMTU6MzIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuaDoKCiAgIC0gaXBmd2FjYy5oOiBmaXggdGhlIE1JQiBuYW1lCiAgIAoyMDAwLTAzLTEwIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiBhdXRvY29uZiBydW4KICAgCjIwMDAtMDMtMTAgMTE6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL01ha2VmaWxlLmRsbW9kOgoKICAgLSAoTWFrZWZpbGUuZGxtb2QpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBkbG1vZCBidWlsZCBNYWtlZmlsZSBleGFtcGxlLiAgTmVlZHMgaW5jb3JwZXJhdGlvbiB3aXRoIG1haW4gY29uZmlndXJlLgogICAKMjAwMC0wMy0xMCAxMTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBiZXR0ZXIgc2lnbmFsIGNoZWNrIGZyb20gTWljaGFlbCBTbGlmY2FrCiAgIAoyMDAwLTAzLTEwIDEwOjU5ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoVUNELURMTU9ELU1JQi50eHQpOiB0eXBvIGZvdW5kIGJ5IE1pY2hhZWwgU2xpZmNhay4KICAgCjIwMDAtMDMtMTAgMTA6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1VDRC1ETE1PRC1NSUIudHh0OgoKICAgLSAoZGxtb2QuYywgZGxtb2QuaCwgc25tcGQuY29uZi41LmRlZiwgVUNELURMTU9ELU1JQi50eHQpOiBQYXRjaCBmcm9tCiAgICAgRnJhbmsgU3RyYXVzczoKICAgICAtIFJlaW1wbGVtZW50YXRpb24gb2YgdGhlIGRsbW9kIG1pYiBtb2R1bGU6CiAgICAgICBvIG1pYmdyb3VwL21pc2MvZGxtb2QgKyBkbG1vZHMvZGxtb2RfbWliIC0+IG1pYmdyb3VwL3VjZC1zbm1wL2RsbW9kCiAgICAgICBvIGZpeGVkIHJlZ2lzdHJhdGlvbiAodWNkYXZpcy51Y2RFeHBlcmltZW50YWwuMTQgaW5zdGVhZCBvZiB1Y2RhdmlzLjE0KQogICAgICAgbyBhZGRlZCBjb25maWd1cmUgc3R1ZmYgZm9yIEhBVkVfU05QUklOVEYsIHdoaWNoIHdhcyB1c2VkIGJ5IGRsbW9kLmMKICAgICAgIG8gcmVtb3ZlZCBgX2R5bmFtaWNfJyBwcmVmaXhlcyBmcm9tIGluaXQvZGVpbml0IGZ1bmN0aW9ucwogICAgICAgbyBtYWRlIGRsbW9kSW5kZXggbm90LWFjY2Vzc2libGUgKG9ubHkgaW1wbGVtZW50YXRpb24sIG5vdCBkZWZpbml0aW9uKQogICAgICAgbyByZW1vdmVkIHRoZSBhc25fcGFyc2VfWFhYIHN0dWZmCiAgICAgICBvIG1hZGUgZW50cmllcyB3aXRoIHN0YXRlIGBlcnJvcicgYWJsZSB0byBhY2NlcHQgc3RhdGUgYGxvYWQnCiAgICAgICBvIG1hZGUgdGhlIHdvbWJhdCBleGFtcGxlIHVzYWJsZSBhcyBzdGF0aWMgYW5kIGR5bmFtaWMgbW9kdWxlCiAgICAgICBvIGFkZGVkIHNpbXBsZSBjb25maWdfcGFyc2UgZnVuY3Rpb25hbGl0eSB0byB0aGUgd29tYmF0IGV4YW1wbGUKICAgCjIwMDAtMDMtMTAgMTA6NTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcGQuYwo6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gc2lnbmFsIHJlZ2lzdHJ5IHN5c3RlbSBpbXBsZW1lbnRlZCAobmVlZHMgdG8gYmUgcmVkb25lIGFsbG93aW5nCiAgICAgICBtdWx0aXBsZSBjYWxsYmFja3MgYW5kIGhhbmRsZXJzIGZvciBhbGwgc2lnbmFscykuCiAgICAgLSBhcmJpdHJhcnkgZmlsZSBkZXNjcmlwdG9yL3NvY2tldCByZWdpc3RyYXRpb24uCiAgICAgICAtIHRoaXMgaXMgbm90IHRoZSB3YXkgaXQgc2hvdWxkIGJlIGRvbmUgKHVzZSBzZXNzaW9ucyBpbnN0ZWFkKS4KICAgCjIwMDAtMDMtMTAgMTA6NDQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4KLCBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgICBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGNsZWFuIHVwIHNoYXJlZCBsaWJyYXJ5IHVzYWdlLgogICAKMjAwMC0wMy0xMCAxMDoxNiAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcmUtYXJyYW5nZWQgc29tZSBzdHVmZi4KICAgCjIwMDAtMDMtMDcgMTE6NTggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBtb3JlIHRvdWNodXBzIHRvIGFsbG93IFVuaXhXYXJlIGJ1aWxkIHRvIGNvbXBsZXRlLgogICAKMjAwMC0wMy0wNyAxMToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmg6CgogICAtIChkZWZhdWx0X3N0b3JlLmgpOiBtYWtlIE1BWF9TVUJJRFMgbGFyZ2VyIGFuZCBhIG11bHRpcGxlIG9mIDguCiAgIAoyMDAwLTAzLTA3IDEwOjEzICBtc2xpZmNhawoKICAgKiBGQVEsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgSW50cm9kdWNlIC0tZW5hYmxlLW1pbmktYWdlbnQgdG8gY29uZmlndXJlIGFnZW50IChzbm1wdjMsIG5vIG1pYklJIGludGVyZmFjZXMpLgogICAKMjAwMC0wMy0wNyAwOTowMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIGFzc3VtZSAic25tcGFwcCIgaWYgbm8gYXJnIHBhc3NlZCB0byBpbml0X3NubXB2My4KICAgCjIwMDAtMDMtMDcgMDg6NTggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgcmVtb3ZlIGluaXRfbWliKCkgY2FsbCAtIG5vdCBhcHByb3ByaWF0ZSBoZXJlLgogICAKMjAwMC0wMy0wNyAwODozNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgTGV0IHRoZSBhaXg0IHBhdGNoIHdvcmsuCiAgIAoyMDAwLTAzLTA3IDA3OjA4ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJzLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICB0cmltIGZhdCBmcm9tIHJlY2VudCBjaGVjay1pbnMuCiAgIAoyMDAwLTAzLTA2IDIwOjAxICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbjoKCiAgIGNsZWFuZWQgdXAgU0NPIFVuaXhXYXJlIGJ1aWxkLgogICAKMjAwMC0wMy0wNiAxNjo0MCAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZy5ndWVzcywgY29uZmlnLmguaW4sCiAgIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgc3RhcnQgc3VwcG9ydCBmb3IgU0NPIFVuaXhXYXJlIDUgYXMgc3ZyNS4KICAgCjIwMDAtMDMtMDYgMTA6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGRvbid0IGNoZWNrIHJhbmdlcyBpZiBub3QgcmVxdWVzdGVkLgogICAKMjAwMC0wMy0wNiAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcGQuYwo6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gZml4IGV4aXQoKWluZyBiZWhhdmlvdXIgaW4gdGhlIGxpYnVjZGFnZW50IGxpYnJhcnkuCiAgIAoyMDAwLTAzLTA2IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIC1uIHByaW50cyBudW1lcmljIElQIGFkZHJzLgogICAKMjAwMC0wMy0wNiAxMDoyNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmgsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaAo6CgogICAtIChjYWxsYmFjay5oLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOiBJZGVhIGZyb20gYXNoaXBtYW5AZXJnZ3JvdXAuY29tOgogICAgIC0gY2FsbGJhY2sgZnVuY3Rpb24gKHVzaW5nIGNhbGxiYWNrLmgpIGFkZGVkIGZvciBleHRlcm5hbCBsb2dnaW5nLgogICAKMjAwMC0wMy0wNSAwNToyNSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGZpeCB0byBwcmVzZXJ2ZSB0cmFpbGluZyBtdWx0aSBjb21wb25lbnQgaW5zdGFuY2UgaWQncyBhdCB0aGUgZW5kIG9mCiAgIHN5bWJvbGljIG1pYiBuYW1lcyhlLmcuLCBmb28uNi43KSB3aGVuIGRvaW5nIHRyYW5zbGF0ZU9iai4KICAgCjIwMDAtMDMtMDQgMTE6MzQgIG5iYQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gY29uZmlndXJlLmluLCBjb25maWd1cmU6IHN1cHBvcnQgLS13aXRob3V0LW9wZW5zc2wsIGV2ZW4gaWYgT3BlblNTTAogICAJaXMgYXZhaWxhYmxlCiAgIAoyMDAwLTAzLTA0IDExOjMwICBuYmEKCiAgICogYWdlbnQvOiBrZXJuZWwuYywga2VybmVsLmgsIHNubXBfdmFycy5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwo6CgogICAtIGFnZW50Lyh2YXJpb3VzKTogZ2xvYmFsaXplIHRoZSBrdm1fdCAqa2QgdmFyaWFibGUKICAgCjIwMDAtMDMtMDQgMTE6MjYgIG5iYQoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSBtaWJfbW9kdWxlcy5jLCBocl9zdG9yYWdlLmM6IHByZS1wcm9jZXNzb3IgIyBzaG91bGQgYmUgaW4gY29sdW1uIDEKICAgCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaW5ldC5jLCBpbmV0Ni5jOgoKICAgLSBpbmV0LmMsIGluZXQ2LmM6IHN1cnZpdmUgLXYgMmMgZXhjZXB0aW9uIHJlcGxpZXMKICAgCjIwMDAtMDMtMDQgMTE6MTcgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IHJlbW92ZSBhIHN1cGVyZmx1b3VzICYgaW4gZnJvbnQgb2YgYW4gYXJyYXkKICAgCjIwMDAtMDMtMDQgMTE6MTUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMKLCB1Y2Qtc25tcC9tZW1vcnlfbmV0YnNkMS5oLCB1Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jCiwgdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaDoKCiAgIC0gdWNkX3NubXAuaCwge21lbW9yeSx2bXN0YXR9X25ldGJzZDEuW2NoXTogc3VwcG9ydCBmb3IgTmV0QlNECiAgIAoyMDAwLTAzLTA0IDExOjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogZml4ZXMgZm9yIE5ldEJTRAogICAKMjAwMC0wMy0wNCAxMToxMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICAtIHZlcnNpb25pbmZvLmM6IGRvbid0IHJldHVybiB0aGUgdHJhaWxpbmcgbmV3bGluZQogICAKMjAwMC0wMy0wNCAxMTowOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gaHJfc3dydW4uYzogZml4IHByb2Nlc3Mgc2l6ZSBmb3IgRnJlZUJTRCAzIGFuZCBOZXRCU0QKICAgCjIwMDAtMDMtMDQgMTE6MDUgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmg6CgogICAtIGFnZW50X3RyYXAuaDogZml4IGEgd3JvbmcgcHJvdG90eXBlCiAgIAoyMDAwLTAzLTA0IDExOjA0ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGZpeCBwcm9ibGVtcyBwcmludGluZyB0YWJsZSBuYW1lIGFuZCBoZWFkZXJzIHdoZW4gdXNpbmcKICAgCS1PUyBmb3JtYXQKICAgCjIwMDAtMDMtMDIgMTE6NTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIHNubXBfYXBpLmM6IGZpeCBhZGRyZXNzIGxlbmd0aCBpbmZvIGZvciB0Y3AgY29ubmVjdAogICAKMjAwMC0wMy0wMiAxMTo0OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYzoKCiAgIC0gbG9hZGF2ZS5jOiBmaXggZm9yIEFJWCA0CiAgIAoyMDAwLTAzLTAyIDA4OjMwICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwLmMsIGlwQWRkci5jLCBpcEFkZHIuaAosIGlwLmg6CgogICAtIChtaWIyL2lwLltjaF0gbWliMi9pcEFkZHIuW2NoXSk6IEZpcnN0IHN0YWIgYXQgdGlkeWluZyB1cCBtaWIyIHN1cHBvcnQuCiAgIAoyMDAwLTAzLTAxIDA4OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIGZpeCBidWcgMTgwIGZvciBjeWd3aW4gYnVpbGQgd2l0aCBfUkVFTlRSQU5UOyBwZXIgYXNoaXBtYW5AZXJnZ3JvdXAuY29tCiAgIAoyMDAwLTAyLTI5IDE0OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBJbnZva2Ugc25tcF9zZXNzX3NlbmQgZnJvbSB3aXRoaW4gc25tcF9yZWFkIHRvIGF2b2lkIG11dGV4IGRlYWRsb2Nrcy4KICAgCjIwMDAtMDItMjggMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC86IHNubXBkLmgsIG1pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSBzbm1wZC5oLCBzbXV4LmM6IGRvbid0IGluaXRpYWxpemUgc211eCBtYXN0ZXIgaW4gc3ViIGFnZW50CiAgIAoyMDAwLTAyLTI4IDE0OjE2ICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiB1c2UgU1VCX0FHRU5UIHN5bWJvbAogICAKMjAwMC0wMi0yOCAxNDoxMiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBzcHJpbnRfYnlfdHlwZSBzaG91bGQgaGFuZGxlIEFTTl9CSVRfU1RSCiAgIAoyMDAwLTAyLTI4IDE0OjEwICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGNvcnJlY3RseSBjYWxsIHRoZSAtSSBvcHRpb25zIGlucHV0IG9wdGlvbnMKICAgCjIwMDAtMDItMjggMTA6NDcgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgZml4IGJ1ZyAjMTc2IChBSVggNCAtIHVzZSBrbmxpc3QgaW4gbGlldSBvZiBubGlzdCkKICAgCjIwMDAtMDItMjQgMTc6MTcgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgYXBwbHkgcGF0Y2ggdG8gZml4IGJ1ZyBuby4gMTc3LgogICAKMjAwMC0wMi0yNCAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6IG5ldyBzbm1wLmNvbmYga2V5d29yZAogICAgIHRvIGZvcmNlIHRoZSBwYXJzZXIgdG8gaWdub3JlIHVua25vd24gdG9rZW5zLgogICAKMjAwMC0wMi0yNCAwMzo1OSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXBzZXQuMToKCiAgIGRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMiAoJ3UnIGFuZCAnYycpIGluIHNubXBzZXQgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCiAgIAoyMDAwLTAyLTI0IDAzOjU2ICBtc2xpZmNhawoKICAgKiBtYW4vc25tcHRyYXAuMSwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYWRkIHN1cHBvcnQgZm9yIENPVU5URVIzMiB0byBzbm1wX2FkZF92YXI7IGRvY3VtZW50IFVOU0lHTkVEMzIgYW5kIENPVU5URVIzMgogICAoJ3UnIGFuZCAnYycpIGluIHNubXB0cmFwIChncmF0aXMgYXNoaXBtYW5AZXJnZ3JvdXAuY29tKQogICAKMjAwMC0wMi0yMyAyMzowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzoKCiAgIC0gcGFzcy5jLCBwYXNzX3BlcnNpc3QuYzogZml4IHNldHRpbmcgb2Ygb2N0ZXQgc3RyaW5ncy4KICAgCjIwMDAtMDItMjMgMDI6MDkgIG5iYQoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIC0gbXRfc3VwcG9ydC5oOiBhIGJhZCA7IGluIHRoZSBDKysgYnJhY2tldGluZwogICAKMjAwMC0wMi0yMyAwMjowOSAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIHN5c3RlbS5jOiByZW1vdmUgc29tZSBzdXBlcmZsdW91cyBpbmRpcmVjdGlvbnMgaW4gc3RyY2FzZWNtcAogICAKMjAwMC0wMi0yMyAwMjowNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgLSB2bXN0YXRfc29sYXJpcy5jOiBtYWtlIHN1cmUgd2UgYWdyZWUgd2l0aCB0aGUgcHJvdG90eXBlIG9mIGdldHBhZ2VzaXplIQogICAKMjAwMC0wMi0yMiAxNTozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oOgoKICAgLSBwYXNzX3BlcnNpc3QuaDogZGVjbGFyZSBpbml0X3Bhc3NfcGVyc2lzdAogICAKMjAwMC0wMi0yMSAxNjoxNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmg6CgogICBBcHBseSBSLiBTdG9yeSdzIHBhdGNoIGZvciBta2RpcmhpZXIgYW5kIHN0cm5jYXNlY21wIG9uIHdpbjMyCiAgIAoyMDAwLTAyLTIxIDA3OjM5ICBtc2xpZmNhawoKICAgKiBtYW4vOiByZWFkX2NvbmZpZy4zLmRlZiwgc25tcF9hbGFybS4zLAogICBzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMQo6CgogICBmaXggYnVnIDE3MSAodGhhbmtzIHRvIExhcnJ5IFBhcm1lbGVlKS4KICAgCjIwMDAtMDItMjEgMDU6NTYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgcmVtb3ZlIGZyZWUgYWZ0ZXIgc25tcF9jbG9zZSAoZG9uJ3QgZnJlZSB0d2ljZSEpCiAgIAoyMDAwLTAyLTIxIDA0OjU4ICBtc2xpZmNhawoKICAgKiBtYW4vOiBtaWJfYXBpLjMsIHJlYWRfY29uZmlnLjMuZGVmLCBzbm1wX2FsYXJtLjMKLCBzbm1wX3Nlc3NfYXBpLjM6CgogICBBZGRlZCBkZXNjcmlwdGlvbiBpbiBTSF9OQU1FIGZvciBzZXZlcmFsIG1hbi1wYWdlcyAoYy9vIHJhZ25hcmspCiAgIAoyMDAwLTAyLTE4IDEyOjE0ICBtc2xpZmNhawoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcF9jbG9zZS4zLCBzbm1wX2ZyZWVfcGR1LjMKLCBzbm1wX29wZW4uMywgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMwosIHNubXBfc2VuZC4zLCBzbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLAogICBzbm1wX3Nlc3NfY2xvc2UuMywgc25tcF9zZXNzX2Vycm9yLjMsIHNubXBfc2Vzc19pbml0LjMKLCBzbm1wX3Nlc3Nfb3Blbi4zLCBzbm1wX3Nlc3NfcmVhZC4zLAogICBzbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgc25tcF9zZXNzX3NlbmQuMywKICAgc25tcF9zZXNzX3Nlc3NfdGltZW91dC4zLCBzbm1wX3Nlc3Nfc2Vzc2lvbi4zLAogICBzbm1wX3Nlc3NfdGltZW91dC4zLCBzbm1wX3RpbWVvdXQuMzoKCiAgIHJlZmVyIHRoZSAuc28gbWFjcm8gdG8gbWFuMzsgYWRqdXN0IE1ha2VmaWxlLmluIHRvIHVzZSB0aGUgcmVuYW1lZCBmaWxlLgogICAKMjAwMC0wMi0xNyAwNToxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIGluY2x1ZGUgcGFzc19wZXJzaXN0IGluIHRoZSByZXF1aXJlZCBsaXN0LgogICAKMjAwMC0wMi0xNyAwMjowMCAgZGF2ZXMKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgIC0gKGNvbmZpZ3VyZSogdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMpOgogICAgIC0gUHJvdmlkZSBtaXNzaW5nICdnZXRwYWdlc2l6ZScgcm91dGluZSBmb3IgU29sYXJpcyAyLjQKICAgICAgIChUaGFua3MgdG8gUmFnbmFyIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQpCiAgIAoyMDAwLTAyLTE2IDIwOjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3lzdGVtLmMsIG1pYklJL3NubXBfbWliLmMKLCBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pYklJL3N5c3RlbV9taWIuYzoKCiAgIGluY2x1ZGUgbWliaW5jbC5oIGluIGhyX3N5c3RlbS5jIHRvIGZpeCBidWcgIzE1OS4KICAgCjIwMDAtMDItMTYgMTY6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jOgoKICAgcmVtb3ZlIGF1dG9fbmxpc3Qgb2YgdW51c2VkICJzd2FwbGlzdCIgc3ltYm9sLgogICAKMjAwMC0wMi0xNiAxNToxNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBwYXRjaCBzdWdnZXN0ZWQgYnkgUmljayBCZWFtYW4gPGJlYW1hbkBtZWRpYW9uZS5uZXQ+CiAgIAoyMDAwLTAyLTE2IDE0OjU4ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCiAgIAoyMDAwLTAyLTE2IDE0OjU3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogdmFjbS5jLCB2YWNtLmg6CgogICB0ZXN0IGxlbmd0aHMgYmVmb3JlIGFsbG9jYXRpbmcgbWVtb3J5OyB1c2UgbmV3IFZBQ01TVFJJTkdMRU4gY29uc3RhbnQuCiAgIAoyMDAwLTAyLTE2IDA4OjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBpbmNsdWRlIHRpbWUuaCBvbmNlCiAgIAoyMDAwLTAyLTE2IDA4OjAyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYzoKCiAgIHJlc3RvcmUgI2lmIEhBVkUuLi5JTl9QQ0JfSAogICAKMjAwMC0wMi0xNSAyMzo0NyAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaAo6CgogICAtIGNvbmZpZ3VyZS5pbiwgaXBjaC5bY2hdOiBpbml0aWFsIHN0YWJzIGF0IExpbnV4IGlwdjYgc3VwcG9ydC4gQSBsb3QgaXMKICAgCWxhY2tpbmcgaW4gdGhlIGtlcm5lbCBzdGF0aXN0aWNzIHRob3VnaC4KICAgCjIwMDAtMDItMTUgMjM6NDAgIG5iYQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKOgoKICAgLSAobWFueSk6IGNvbmZpZ3VyZSBjaGVjayBmb3IgbmV0aW5ldC9pcDYuaAogICAKMjAwMC0wMi0xNSAyMzozNCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgLSBocl9maWxlc3lzLmM6IE1OVFRZUEUgZGVmaW5lcyBmb3IgRnJlZUJTRC0zIGFuZCBCU0RJLTQsIGFuZCBtb3ZpbmcgdGhlCiAgIAlyZXR1cm4gdmFsdWUgZm9yIEV4dDJGUyB0byB0aGUgbmV3bHkgZGVmaW5lZCBPSUQuCiAgIAoyMDAwLTAyLTE1IDIzOjIzICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLmM6IGdpdmUgYSBzZW5zaWJsZSBvdXRwdXQgZm9yIGFuIGVtcHR5IHRhYmxlLgogICAKMjAwMC0wMi0xNSAyMzoyMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywKICAgc25tcGxpYi92YWNtLmg6CgogICAtIHZhY20qOiBidWZmZXIgbGVuZ3RoIGNoZWNraW5nIQogICAKMjAwMC0wMi0xNSAyMzoyMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSBocl9zdG9yYWdlLmM6IHJldHVybiBtZW1vcnkgc2l6ZSBpbiBwYWdlcy4KICAgCjIwMDAtMDItMTUgMjM6MTcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmgsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jCjoKCiAgIC0gdWNkX3NubXAuaCwgbWVtb3J5X2ZyZWVic2QyLmg6IG1ha2UgaXQgd29yayBmb3IgRnJlZUJTRC0zIHRvbwogICAKMjAwMC0wMi0xNSAyMzoxNiAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gc25tcF9hZ2VudC5jOiBvbmUgbW9yZSBwbGFjZSB0byBzZW5kIGEgQVVUSEZBSUwgdHJhcAogICAKMjAwMC0wMi0xNSAyMzoxNSAgbmJhCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIGFnZW50X3JlZ2lzdHJ5LmM6IGZpeCBhIHJldHVybiBmb3IgU05NUHYxL0NvdW50ZXI2NCBjYXNlCiAgIAoyMDAwLTAyLTE1IDAyOjEyICBkYXZlcwoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyk6IE9taXQgZGVwcmVjYXRlZCBvcHRpb25zIGZyb20gb3B0YXJnIGhhbmRsaW5nLgogICAKMjAwMC0wMi0xMSAxNTo0NyAgaGFyZGFrZXIKCiAgICogbWFrZWRlcGVuZC5pbjoKCiAgIC0gKG1ha2VkZXBlbmQuaW4pOiAvdXNyL2xvY2FsL2Jpbi9wZXJsIC0+IC91c3IvYmluL3BlcmwKICAgCjIwMDAtMDItMTEgMTU6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgLSAocnNubXApOiBwZXJsNSAtPiBwZXJsCiAgIAoyMDAwLTAyLTExIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHNubXBfdHJhcF9hcGkuMwogICAKMjAwMC0wMi0xMSAxNDoyMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChsb2NhbC9NYWtlZmlsZS5pbik6IGxhc3QgbWludXRlIG1ha2VmaWxlIHRvdWNodXAKICAgCjIwMDAtMDItMTEgMTQ6MDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlIGZvciA0LjEuMQogICAKMjAwMC0wMi0xMSAxMzo0NyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogVXBkYXRlIGZvciA0LjEuMQogICAKMjAwMC0wMi0xMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLjEgKQogICAKMjAwMC0wMi0xMSAxMjo1MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbAo6CgogICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgZm9yIFRpbWVvdXQgZm9yIHYyYy4KICAgCjIwMDAtMDItMTEgMTI6NDkgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pOiBkb24ndCBjcCBmb3Igc25tcGNoZWNrCiAgIAoyMDAwLTAyLTExIDEyOjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogZml4IGZvciBzZXBlcmF0ZSBidWlsZCBwYXRoCiAgIAoyMDAwLTAyLTExIDEyOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmg6CgogICAtIChzeXNPUlRhYmxlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gY29tcGlsZXIgd2FybmluZyBmaXguCiAgIAoyMDAwLTAyLTExIDEyOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOiBwYXRjaCBmcm9tIE5pZWxzOgogICAgIC0gZG9uJ3Qgc2VuZCBhdXRoZXJyb3IgcmVzcG9uc2VzIGZvciB2MmMuCiAgICAgLSBzZW5kIGF1dGhGYWlsdXJlIHRyYXAuCiAgIAoyMDAwLTAyLTExIDEyOjIyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY2hhbmdlIHBlcmwgcGF0aCB0byAvdXNyL2Jpbi4KICAgCjIwMDAtMDItMTEgMDY6NTggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBEb250IGRlZmluZSBQUk9DRklYQ01EIGFuZCBFWEVDRklYQ01EIGJ5IGRlZmF1bHQuCiAgIAoyMDAwLTAyLTEwIDExOjE0ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICBmaXggZm9yIG9sZGVyIHBsYXRmb3JtcyB0byB1c2UgcGFzc19wZXJzaXN0OyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdC4KICAgCjIwMDAtMDItMTAgMTA6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZXh0ZW5zaWJsZS5jLCBwYXNzX3BlcnNpc3QuYwo6CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAyLTEwIDEwOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBtaW5vciBmaXhlcyBwb2ludGVkIG91dCBieSBNaWNoYWVsLgogICAKMjAwMC0wMi0xMCAxMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogZml4IHNldHVwIGVuZ2luZUlEIGJ1ZmZlciBvdmVyZmxvdyBmb3VuZCBieSBNaWtlIEJhZXIuCiAgIAoyMDAwLTAyLTEwIDA4OjM5ICBuYmEKCiAgICogbWFuLzogZGVmYXVsdF9zdG9yZS4zLnRvcCwgbWliX2FwaS4zLAogICByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2FnZW50X2FwaS4zCiwgc25tcF9hbGFybS4zLCBzbm1wX2FwaS4zLCBzbm1wX2NvbmZpZy41LmRlZgosIHNubXBfc2Vzc19hcGkuMywgc25tcF90cmFwX2FwaS4zLCBzbm1wYnVsa2dldC4xCiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwgc25tcGQuMS5kZWYsCiAgIHNubXBkLmNvbmYuNS5kZWYsIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEsCiAgIHNubXBnZXRuZXh0LjEsIHNubXBuZXRzdGF0LjEsIHNubXBzZXQuMSwKICAgc25tcHN0YXR1cy4xLCBzbm1wdGFibGUuMSwgc25tcHRlc3QuMSwKICAgc25tcHRyYW5zbGF0ZS4xLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuOCwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMSwgc25tcHdhbGsuMSwKICAgdmFyaWFibGVzLjU6CgogICAtIG1hbi8qOiBzZXQgdGhlIGRhdGVzIG9uIHRoZSBwYWdlcyB0byByZWZsZWN0IHRoZSByZXZpc2lvbiBkYXRlCiAgIAoyMDAwLTAyLTEwIDA4OjEzICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWQ1LmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaAo6CgogICBmaXggdmFyYXJncyBkZWNsL2RlZm4gb2Ygc25tcF9sb2cKICAgCjIwMDAtMDItMTAgMDc6NTQgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1lbnRpb24gdGhlIHR1dG9yaWFsLgogICAKMjAwMC0wMi0xMCAwNzoxNCAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogRXhwbGljaXQgZXhhbXBsZXMgb2Ygc2VuZGluZyB0cmFwcyBieSBoYW5kCiAgIAoyMDAwLTAyLTEwIDA0OjQxICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jOgoKICAgLSAoc25tcGxpYi97c25tcF9hcGksc25tcF9jbGllbnR9LmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0Ni5jKToKICAgICAtICBDb21tZW50IHVudXNlZCBjb2RlIG1vcmUgaW5mb3JtYXRpdmVseSBhcyB0byB3aHkgaXQgaXMgb21pdHRlZC4KICAgCjIwMDAtMDItMDkgMTM6NTMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTLAogICB0ZXN0cy9UMDI0c25tcHYzZ2V0U0hBMSwgdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUzoKCiAgIC0gKGV2YWxfdG9vbHMuc2gsIFQwMjNzbm1wdjNnZXRNRDVERVMsIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTKToKICAgICAtIHNraXAgc3NsIHRlc3RzIHdlIGNhbid0IHBlcmZvcm0uCiAgIAoyMDAwLTAyLTA5IDEzOjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBnZXQgUEFUSF9NQVggb24gRnJlZUJTRC4KICAgCjIwMDAtMDItMDkgMTM6MzggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNTSEFERVNjb25maWcsIFQwMjRzbm1wdjNnZXRTSEExLAogICBUMDI1c25tcHYzZ2V0U0hBREVTOgoKICAgLSAoU3YzU0hBREVTY29uZmlnLCBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUyk6CiAgICAgLSBtYWtlIFNIQSB0ZXN0cyBhY3R1YWxseSB3b3JrLgogICAKMjAwMC0wMi0wOSAxMzozMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9TdjNjb25maWdzaGE6CgogICAtIChTdjNjb25maWdzaGEpOiBzaGEgY29uZmlnIHN1cHBvcnQKICAgCjIwMDAtMDItMDkgMTM6MzEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAzc25tcHYxZ2V0ZmFpbCwgVDAxNnNubXB2MmNnZXRmYWlsCiwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbDoKCiAgIC0gKFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgVDAxOHNubXB2MXRvdjJjZ2V0ZmFpbCk6IGZpeCBmb3IgcHJvcGVyIEFDTSBlcnJvciBvdXRwdXRzLgogICAKMjAwMC0wMi0wOSAxMzozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi90b29scy5oOgoKICAgRGVmaW5lIFNOTVBfTUFYUEFUSCwgYW5kIHVzZSBpdC4KICAgCjIwMDAtMDItMDkgMTM6MzAgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDI0c25tcHYzZ2V0U0hBMSwgVDAyNXNubXB2M2dldFNIQURFUwo6CgogICAtIChUMDI0c25tcHYzZ2V0U0hBMSBUMDI1c25tcHYzZ2V0U0hBREVTKTogbmV3IHRlc3RzCiAgIAoyMDAwLTAyLTA5IDEzOjE2ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbWVudGlvbiBhIG5ldyB1Y2RFeHBlcmltZW50YWwgcmVnaXN0cmF0aW9uICh3YXZsYW4pLgogICAKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVnaXN0cnkuYywKICAgYWdlbnRfcmVnaXN0cnkuaCwgc25tcF9hZ2VudC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICAgIHNubXBfYWdlbnQuYywgdmFjbV92YXJzLmMpOgogICAgIC0gZml4IHBvc2libGUgYWNtIERvUyBwcm9ibGVtcyBieSBjaGVja2luZyBhY2Nlc3MgdGFibGVzIGVhcmx5IG9uLgogICAKMjAwMC0wMi0wOSAxMTozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogcGF0Y2ggZnJvbSByZWRoYXQgZm9yIGJldHRlciBSUE0gc3VwcG9ydC4KICAgCjIwMDAtMDItMDkgMTA6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZSBtb2RlIHRvIGF1dG9jb25mLgogICAKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGZpeCByc25tcCBidWlsZC4gIFJlYWxseS4gIEkgbWVhbiBpdC4KICAgCjIwMDAtMDItMDkgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jKTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgLSBTb2xhcmlzIHBhdGNoZXMuCiAgIAoyMDAwLTAyLTA5IDEwOjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKToKICAgICAtIGZpeCByc25tcC5tYWRlLgogICAgIC0gdXNlICQoTUFLRSkuCiAgIAoyMDAwLTAyLTA5IDA4OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFVwZGF0ZSBmcm9tIEpvY2hlbiBLbWlldHNjaAogICAKMjAwMC0wMi0wNyAxMTo0OSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9vcHMgbWlzc2luZyBpbXBvcnRhbnQgZml4IGZvciB3aW4zMiBidWlsZCAtIGZkX3NldCBtdXN0IGJlIHNhbWUgc2l6ZSBhcyBpbiB3aW5zb2NrCiAgIAoyMDAwLTAyLTA3IDExOjE4ICBtc2xpZmNhawoKICAgKiBidWctcmVwb3J0OgoKICAgVW5kbyBsYXN0IGNoYW5nZTsgb24gU3VuLCBhZGRpdGlvbmFsIHBsYXRmb3JtIGluZm8gd2FzIG5vdCBvYnRhaW5lZDsKICAgdGhlIHByb3BlciBzb2x1dGlvbiB3b3VsZCBiZSB0byByZW1vdmUgdGhlIHNlY29uZCB0b2tlbiAoaG9zdG5hbWUpLgogICAKMjAwMC0wMi0wNyAxMDo0MyAgbXNsaWZjYWsKCiAgICogYnVnLXJlcG9ydDoKCiAgIEtlZXAgY3VzdG9tZXIncyBub2RlbmFtZSBvdXQgb2YgdGhlIHB1Ymxpc2hlZCAndW5hbWUnIGluZm9ybWF0aW9uLgogICAKMjAwMC0wMi0wNyAwNzoyMCAgaGFyZGFrZXIKCiAgICogUE9SVElORzoKCiAgIC0gKFBPUlRJTkcpOiBNaWNoYWVsIGxpa2VzIGRpZmYgLXUuCiAgIAoyMDAwLTAyLTA2IDA2OjExICBuYmEKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSByZWFkX2NvbmZpZy5jOiBGaXggb25lIGZpbmFsICc6JyB0byBFTlZfU0VQQVJBVE9SX0NIQVIKICAgCjIwMDAtMDItMDUgMTc6MzkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGNvcnJlY3Qgc29tZSBhd2Z1bCB0ZXh0IC0+IGVuZ2luZUlEIGNyZWF0aW9uIG1pc3Rha2VzLgogICAKMjAwMC0wMi0wNSAwODozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogZml4IHdyYXBwZWQgbGluZSBjb250aW51YXRpb24gaW4gdXNhZ2UgbWVzc2FnZS4KICAgCjIwMDAtMDItMDUgMDY6NTYgIG1hcnoKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIGZpeCB2ZXJzaW9uICBudW1iZXIKICAgCjIwMDAtMDItMDQgMTg6NTUgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvOiBzZXNzaW9uLnQsIHNldC50LCBzdGFydGFnZW50LnBsOgoKICAgd2VpcmQgZGVsYXkgaW4gY3JlYXRpb24gb2YgcGlkIGZpbGVzCiAgIAoyMDAwLTAyLTA0IDE4OjIxICBtYXJ6CgogICAqIHBlcmwvU05NUC90Lzogbm90aWZ5LnQsIHN0YXJ0YWdlbnQucGw6CgogICBicmFpbi1vCiAgIAoyMDAwLTAyLTA0IDE3OjUyICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEgKQogICAKMjAwMC0wMi0wNCAxNzo0OSAgaGFyZGFrZXIKCiAgICogUE9SVElORywgUkVBRE1FLCBSRUFETUUuc25tcHYzLCBUT0RPOgoKICAgLSAoUE9SVElORywgUkVBRE1FLCBSRUFETUUuc25tcHYzLCBUT0RPKTogbGFzdCBtaW51dGUgZG9jIHVwZGF0ZXMuCiAgIAoyMDAwLTAyLTA0IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBsb2NhbCBmaXhlcyBmb3IgYXJjaGl0ZWN0dXJlcyB0aGF0IGRvbid0IGhhdmUKICAgICBjb21wbGlhbnQgbWFrZWZpbGUgdmFyaWFibGVzIGxpa2UgJDwuCiAgIAoyMDAwLTAyLTA0IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDQuMQogICAKMjAwMC0wMi0wNCAxNTo0NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBCVUcsIGhpbnRzL3NvbGFyaXMucGw6CgogICB1cGRhdGVzIGZvciBwZXJsL1NOTVAgYnVpbGQKICAgCjIwMDAtMDItMDQgMTU6MjEgIG1hcnoKCiAgICogcGVybC9TTk1QLzogaGludHMvc29sYXJpcy5wbCwgdC9nZXQudCwgdC9nZXRuZXh0LnQKLCB0L3Nlc3Npb24udCwgdC9zZXQudCwgdC9zbm1wdGVzdC5jb25mOgoKICAgYnVpbGQgZml4ZXMgYW5kIHRlc3QgZW5oYW5jZW1lbnRzCiAgIAoyMDAwLTAyLTA0IDE1OjA5ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IE1BTklGRVNULCBNYWtlZmlsZS5QTCwgU05NUC54cywKICAgdC9hc3luYy50LCB0L2dldC50LCB0L2dldG5leHQudCwgdC9taWJsb2FkLnQKLCB0L3Nlc3Npb24udCwgdC9zZXQudCwgdC9zbm1wZC5jb25mLAogICB0L3NubXB0ZXN0LmNvbmY6CgogICBidWlsZCBmaXhlcyBhbmQgdGVzdCBlbmhhbmNlbWVudHMKICAgCjIwMDAtMDItMDQgMTQ6MDEgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKHNubXB0cmFwZC44KTogZG9jdW1lbnQgLWMgYW5kIC1DLgogICAKMjAwMC0wMi0wNCAxMzo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKToKICAgICAtIGltcGxlbWVudCAtYyBhbmQgLUMgZmxhZ3MgZm9yIEpvZS4KICAgICAtIHJlZGlkIHRoZSBpbml0IHN0cnVjdHVyZSB0byBtYWtlIGl0IGxvb2sgbW9yZSBsaWtlIHRoZSBjdXJyZW50IGFnZW50LgogICAKMjAwMC0wMi0wNCAxMzo1MiAgbWFyegoKICAgKiBJTlNUQUxMOgoKICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCiAgIAoyMDAwLTAyLTA0IDEzOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IGRvbid0IHJlYWQgdGhlIG9wdCBjb25maWcgZmlsZSBvciBjYWxsCiAgICAgcG9zdF9jb25maWcgY2FsbGJhY2tzLCBzaW5jZSB0aGUgbGlicmFyeSB0YWtlcyBjYXJlIG9mIHRoYXQgbm93LgogICAKMjAwMC0wMi0wNCAxMzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWFrZSBkZXBlbmQuCiAgIAoyMDAwLTAyLTA0IDEzOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZG9uJ3QgcHJpbnQgZmFpbGVkIGFjY2VzcyBlcnJvcnMgKEVBQ0NFUykuCiAgIAoyMDAwLTAyLTA0IDEyOjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHYzLmM6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wdjMuYyk6IHByb3ZpZGUgdjMgZGVmYXVsdHMuCiAgIAoyMDAwLTAyLTA0IDEyOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbG9jYWwvTWFrZWZpbGUuaW4KOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogZmluZCwgbG9jYXRlLCBhbmQgdXNlIHBlcmwgaWYgZm91bmQuCiAgIAoyMDAwLTAyLTA0IDA4OjU1ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgYWRkIGRlZmF1bHRzIGZvciB2MiB0cmFwIHBhcmFtcwogICAKMjAwMC0wMi0wNCAwNjo0NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgICBoYXZlIG1pYiBsb2FkaW5nIGFwaSByZXR1cm4gcmVzdWx0IGNvZGVzCiAgIAoyMDAwLTAyLTA0IDA0OjAwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogcmVhbGx5IGRvIHRoYXQgRnJlQlNEIHNjc2kgdGhpbmcKICAgCjIwMDAtMDItMDQgMDE6MjAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIC0gdmFjbV92YXJzLmM6IHNsaWdodCByZXdvcmRpbmcgb2Ygd2FybmluZyBtZXNzYWdlCiAgIAoyMDAwLTAyLTA0IDAwOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICAtIGhyX2Rpc2suYzogQSBsaXR0bGUgY2xlYW51cCBvZiB0aGUgZGlzayBkZXZpY2UgZGVmaW5pdGlvbnMsIGFsc28gYWRkaW5nCiAgIAlTQ1NJIHRvIEZyZWVCU0QgMwogICAKMjAwMC0wMi0wNCAwMDoxNiAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYywgbWliLmM6IGZpeCBzb21lIFBBVEggc2VwYXJhdG9ycyBmcm9tIGNvbnN0YW50OiB0bwogICAJRU5WX1NFUEFSQVRPUntfQ0hBUn0KICAgCjIwMDAtMDItMDMgMjM6NTkgIG5iYQoKICAgKiBzbm1wbGliL210X3N1cHBvcnQuaDoKCiAgIC0gbXRfc3VwcG9ydC5oOiBhbm90aGVyIHdheSBvZiBkb2luZyBub3RoaW5nLCBub3QgZ2l2aW5nIGEgIm51bGwgZWZmZWN0IgogICAJd2FybmluZyBmcm9tIGdjYy4KICAgCjIwMDAtMDItMDMgMjM6NTcgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywKICAgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgLSBhZ2VudC9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsIGNsaWVudC5jOiBjaGFuZ2Ugc29tZSB0eXBlIGNhc3RzIGZyb20KICAgCShjaGFyICopIHRvICh1X2NoYXIgKikgdG9wIHNpbGVuY2Ugc29tZSB3YXJuaW5ncy4KICAgCjIwMDAtMDItMDMgMTQ6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKFJFQURNRSk6IHJlbW92ZSBkdW1teSByZWZlcmVuY2UuCiAgIAoyMDAwLTAyLTAzIDE0OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gKHN1YmFnZW50LmMpOiBwcm90ZWN0IHN5c09SVGFibGUgY2FsbGJhY2tzIHdpdGggI2lmZGVmcy4KICAgCjIwMDAtMDItMDMgMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgLSAoc3ViYWdlbnQuYyk6IGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaC4KICAgCjIwMDAtMDItMDMgMTQ6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15LzogQWRkTW9kdWxlRm9yRHVtbWllcy50eHQsCiAgIERVTU1ZLU1JQi50eHQsIGR1bW15LmMsIGR1bW15Lmg6CgogICAtIChkdW1teS8qKTogcmVtb3ZlZCwgdXNlIGV4YW1wbGUgaW5zdGVhZC4KICAgCjIwMDAtMDItMDMgMTM6MjggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGb2xsb3cgY29uZGl0aW9uIEhBVkVfR0VUUElEIGZvciBwaWRfZmlsZSBvYmplY3QuCiAgIAoyMDAwLTAyLTAzIDEyOjU4ICBtc2xpZmNhawoKICAgKiBSRUFETUUsIGFnZW50L2RsbW9kcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIE5vdGUgdGhlIHdvbWJhdCBpcyByZXBsYWNlZCBieSBleGFtcGxlIGluIG1vcmUgcGxhY2VzLgogICAKMjAwMC0wMi0wMyAxMjo1NyAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX3NodXRkb3duLmgsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwLCBzbm1wc2V0L3NubXBzZXQuZHNwCjoKCiAgIFJlbW92ZSBET1Mtc3R5bGUgbGluZSB0ZXJtaW5hdGlvbiAoQ1ItTEYgLS0+IExGKS4KICAgbGlic25tcC5kZWYgLSByZW1vdmUgdW5uZWVkZWQgY29tbWVudCBhYm91dCBvYnNvbGV0ZSB2MnBhcnR5LgogICAKMjAwMC0wMi0wMyAxMDo0OCAgbWFyegoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgYWRkIC11IFBJREZJTEUgdG8gc25tcHRyYXBkLCBub3cgd2UgbmVlZCAtYyAtQzopLCBidHcgaXMgdGhlIHZhbHVlIG9mIG9wdGFyZyByZWxpYWJsZSBhZnRlciBnZXRvcHQgaGFzIGJlZW4gY2FsbGVkIGFnYWluLi4uaXQgc2VlbXMgdG8gd29yawogICAKMjAwMC0wMi0wMyAwOTo1NiAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuaCwgd2luMzIvY29uZmlnLmgKOgoKICAgSW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oIGZyb20gbWliaW5jbC5oLCBub3QgdG9wIGxldmVsIGNvbmZpZy5oLgogICAKMjAwMC0wMi0wMyAwOTo0NCAgbWFyegoKICAgKiBSRUFETUU6CgogICB1cGRhdGUgbXkgZW1haWwKICAgCjIwMDAtMDItMDMgMDY6NDMgIG1zbGlmY2FrCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oIHRvIG1ha2UgdGhlIFVTSU5HXyBjb25zdGFudHMgdmlzaWJsZS4KICAgCjIwMDAtMDItMDMgMDQ6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgVW5kbyB1bmluZm9ybWVkIGNoYW5nZTogbG9hZCBhdmVyYWdlICE9IGF2ZXJhZ2UgdGltZSB0aGF0IENQVSBpcyBpZGxlLgogICAKMjAwMC0wMi0wMyAwMTozNSAgZGF2ZXMKCiAgICogRkFROgoKICAgLSAoRkFRKTogRG9jdW1lbnQgY2hhbmdlcyB0byBhY2Nlc3MgY29udHJvbCBzdHVmZi4KICAgCjIwMDAtMDItMDIgMTY6MzYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICBUb3VjaHVwIHRvIGJ1aWxkIG1vcmUgTUlCIG1vZHVsZXMgb24gV2luMzIuCiAgIAoyMDAwLTAyLTAyIDE2OjIzICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzIsIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oLCB3aW4zMi9taWJfbW9kdWxlX2RvdF9jb25mLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIFRvdWNodXAgZm9yIGJ1aWxkaW5nIG1vcmUgTUlCIG1vZHVsZXMgaW4gV2luMzIgKE1TVkMpLgogICAKMjAwMC0wMi0wMiAxNDoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmM6CgogICBMZXQgaHJQcm9jZXNzb3JMb2FkIG91dCBvZiB0aGUgZ2VuaWUncyBib3R0bGUuCiAgIAoyMDAwLTAyLTAyIDE0OjE3ICBtYXJ6CgogICAqIHBlcmwvU05NUC9SRUFETUUsIFJFQURNRS53aW4zMjoKCiAgIGFkZCBpbnN0cnVjdGlvbnMgZm9yIGJ1aWxkaW5nIHcvIE9wZW5TU0wgb24gVkMrKwogICAKMjAwMC0wMi0wMiAxMzo0MiAgbWFyegoKICAgKiBSRUFETUUud2luMzI6CgogICBhZGQgaW5zdHJ1Y3Rpb25zIGZvciBidWlsZGluZyB3LyBPcGVuU1NMIG9uIFZDKysKICAgCjIwMDAtMDItMDIgMTA6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgTWlsZXM6CiAgICAgLSB2YXJpb3VzIGZpeGVzOgogICAgICAgMSkgVGhlIGZpcnN0IHJlZ2lzdHJhdGlvbiByZXF1ZXN0IGNvdWxkIGJlIGxvc3QuCiAgICAgICAyKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIG5ldmVyIHJlY2VpdmVkIGEgcmVzcG9uc2UuCiAgICAgICAzKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIHdlcmUgbm90IGZpbmRpbmcgdGhlIHJlZ2lzdHJhdGlvbiB3aGVuIHRoZQogICAgICAgICAgZGVsZXRlJ3MgcHJpb3JpdHkgd2FzIHNldCB0byAtMS4KICAgICAgIDQpIE5vbi16ZXJvIHZhbHVlcyB3ZXJlIG5vdCBiZWluZyBlbmNvZGVkIHByb3Blcmx5IGluIHJlZ2lzdHJhdGlvbgogICAgICAgICAgcmVzcG9uc2VzLgogICAKMjAwMC0wMi0wMiAwODo1MiAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICBmaXggdGhlIGZhdC1maW5nZXJpbmcgcGF0Y2ggSSBqdXN0IG1hZGUuIGZlaC4KICAgCjIwMDAtMDItMDIgMDg6NDIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgQWxsb3cgLUNvIHRvIGFmZmVjdCB0aGUgb3V0Y29tZS4KICAgCjIwMDAtMDItMDIgMDg6MDIgIGRhdmVzCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOiBDb3JyZWN0bHkgaGFuZGxlIGluZGl2aWR1YWxseSBleGNsdWRlZCBpbnN0YW5jZXMKICAgCjIwMDAtMDItMDIgMDc6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1cGRhdGVkIC0taGVscAogICAKMjAwMC0wMi0wMiAwNjo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSBocl9kaXNrLmM6IGFkZCBOZXRCU0Qgc3VwcG9ydAogICAKMjAwMC0wMi0wMiAwNDo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZGVwZW5kZW5jaWVzIG9uIChtb3ZlZCkgdmVzdGludGVybmV0dC9kaXNraW8KICAgCjIwMDAtMDItMDIgMDE6MTIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgLSAoaG9zdC9ocl9kaXNrLmMpOiBGaXggc29sYXJpcyBpbml0aWFsaXNhdGlvbiwgcGx1cyBleHRyYSBkZWJ1Z2dpbmcgaW5mby4KICAgCjIwMDAtMDItMDEgMTE6MjYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wdXNtLmMsIHNubXB2My5jOgoKICAgRml4dXAgbW9yZSBzaWduZWQvdW5zaWduZWQgY29tcGFyaXNvbnMuCiAgIAoyMDAwLTAyLTAxIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHVzbS4xOgoKICAgLSAoc25tcHVzbS4xKTogY2hhbmdlZCBjb250ZXh0IHN0cmluZyBpbiBleGFtcGxlcyB0byAiIi4KICAgCjIwMDAtMDItMDEgMDg6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiAuUFAgLT4gLklQIGZvciAtT2IuCiAgIAoyMDAwLTAyLTAxIDA4OjQzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZSAoYWdhaW4pLgogICAKMjAwMC0wMi0wMSAwODozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICAtIChkaXNraW8uYyk6IG1vdmUgdG8gdWNkRXhwZXJpbWVudGFsLjE1LgogICAKMjAwMC0wMi0wMSAwODozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmg6CgogICAtIChkaXNraW8uaCk6IGxvYWQgdGhlIG1pYi4KICAgCjIwMDAtMDItMDEgMDg6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdmVzdGludGVybmV0dC9kaXNraW8uYywKICAgdmVzdGludGVybmV0dC9kaXNraW8uaCwgdWNkLXNubXAvZGlza2lvLmMsCiAgIHVjZC1zbm1wL2Rpc2tpby5oOgoKICAgLSAoZGlza2lvLiopOiBtb3ZlZCB0byB0aGUgdWNkLXNubXAgZGlyZWN0b3J5CiAgIAoyMDAwLTAyLTAxIDA1OjI3ICBkYXZlcwoKICAgKiBGQVE6CgogICAtIChGQVEpOiBFeHBhbmQgdGhlIGRlc2NyaXB0aW9uIG9mIGdlbmVyYXRpbmcgdHJhcHMgZnJvbSB0aGUgYWdlbnQgc2xpZ2h0bHkuCiAgIAoyMDAwLTAyLTAxIDA0OjE5ICBkYXZlcwoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDYXRjaCBjb21tb24gaW52YWxpZCBjb25maWd1cmUgb3B0aW9ucy4KICAgCjIwMDAtMDItMDEgMDM6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggc2Vzc2lvbiBJRCBoYW5kbGluZyB3aGVuIGRlbGVnYXRpbmcgcmVxdWVzdHMuCiAgIAoyMDAwLTAyLTAxIDAxOjQ5ICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmUsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKGFjY29uZmlnLmggY29uZmlnLmguaW4gY29uZmlndXJlLmluIGNvbmZpZ3VyZSBzbm1wbGliL3NubXBfYXBpLmgpOgogICAgIC0gRml4IGJyb2tlbiBzZXR0aW5nIG9mIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZSBjaG9pY2UuCiAgIAoyMDAwLTAxLTMxIDEwOjQxICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc2V0IERTX0xJQl9ET05UX0JSRUFLRE9XTl9PSURTIHRvIGdldCBwcmV2aW91bHN5IHJlbGVhc2VkIGJlaGF2aW91ciBvZiBnZXRfc3ltYm9sIHdydCBvY3RldCBiYXNlZCBpbnN0YW5jZSBpZHMgKGkuZS4sIG5vIGRvdWJsZS1xdW90aW5nKQogICAKMjAwMC0wMS0zMSAwNzo1NyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiBleGFtcGxlLmMsIGV4YW1wbGUuaDoKCiAgIC0gKG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuW2NoXSk6CiAgICAgLSBQcm92aWRlIGFuIGV4YW1wbGUgZm9yIGhvdyB0byB0cmlnZ2VyIGEgdHJhcC4KICAgCjIwMDAtMDEtMzEgMDc6NTYgIGRhdmVzCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIC0gKGFwcHMvc25tcHRlc3QuYyk6IERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQogICAKMjAwMC0wMS0zMSAwNzo1NSAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXB2My5jLCBzbm1wdjMuaDoKCiAgIC0gKHNubXBsaWIvc25tcHYzLltjaF0pOiBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKICAgICAtIE4uQjogVGhpcyBjaGFuZ2VzIHRoZSBpbnRlcmZhY2Ugb2Ygc25tcHYzX2dlbmVyYXRlX2VuZ2luZUlEKCkgc2xpZ2h0bHkuCiAgIAoyMDAwLTAxLTMxIDA3OjUzICBkYXZlcwoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBzbm1wLmMsIHNubXBfYXBpLmMsCiAgIHNubXB1c20uYzoKCiAgIC0gKHNubXBsaWIvYXNuMS5jIHNubXBsaWIvc25tcC5jIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXB1c20uYyk6CiAgICAgLSBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKICAgCjIwMDAtMDEtMzEgMDc6NTEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCk6IEF0dGVtcHQgdG8gbWltaWMgSXJpeC1zdHlsZSBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUuCiAgIAoyMDAwLTAxLTMxIDA3OjQ5ICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmU6CgogICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgIC0gSW1wcm92ZWQgY2hlY2tpbmcgZm9yIElyaXgtc3R5bGUgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlLgogICAKMjAwMC0wMS0zMSAwMzo0MSAgZGF2ZXMKCiAgICogQUdFTlQudHh0OgoKICAgLSAoQUdFTlQudHh0KTogUmV2aXNlZCBhbmQgdXBkYXRlZCB2ZXJzaW9uLgogICAKMjAwMC0wMS0zMSAwMzoxNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogSW5pdGlhbGl6ZSBhZGRybGVuIGluIF9zZXNzX3JlYWQoKS4gIChGcmFuayBTdHJhdXNzKQogICAKMjAwMC0wMS0zMSAwMzowMyAgZGF2ZXMKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAtIEF0dGVtcHQgdG8gZGV0ZWN0IG5vbi10cmFkaXRpb25hbCBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUgKG9uIElyaXggNi54KS4KICAgCjIwMDAtMDEtMzEgMDM6MDAgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCk6IEFsdGVybmF0aXZlIGFwcHJvYWNoIHRvIElyaXggc29ja2V0IGhhbmRsaW5nLgogICAKMjAwMC0wMS0zMSAwMjo0MCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLltjaF0pOiBSZXN0b3JlIHRyYWRpdGlvbmFsIHNvY2tldCBmaWVsZCBuYW1lcy4KICAgCjIwMDAtMDEtMzEgMDE6NDUgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gKGFnZW50L2FnZW50X3RyYXAuYyk6IEluY2x1ZGUgaW5zdGFuY2Ugc3ViaWRlbnRpZmllciBpbiBzbm1wVHJhcE9JRCBhbmQKICAgCXNubXBUcmFwRW50ZXJwcmlzZSBPSUQgZGVmaW5pdGlvbnMuICAoVGhhbmtzIHRvIEdlcmFyZCBUYWxtYW4pCiAgIAoyMDAwLTAxLTMxIDAxOjA1ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCk6IExvZyBmYWlsZWQgTUlCIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAwLTAxLTMwIDEwOjU2ICBtYXJ6CgogICAqIHBlcmwvU05NUC86IFJFQURNRSwgUkVBRE1FOgoKICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcyBldGMuCiAgIAoyMDAwLTAxLTMwIDEwOjQ2ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcyBldGMuCiAgIAoyMDAwLTAxLTMwIDEwOjQ0ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcwogICAKICAgTm90ZTogS05PV04gQlVHUwogICB0aGUgbmV3IHF1b3RlZCBPQ1RFVFNUUiBpbnN0YW5jZSBpZGVudGlmaWVycyByZXR1cm5lZCBieSBnZXRfc3ltYm9sCiAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCiAgIAogICBub3Qgc3VyZSB0aGF0IHRoaXMgZXZlciB3b3JrZWQgLSB3aWxsIGhhdmUgdG8gbG9vayBhdCBvbGQgT0NURVRTVFIKICAgYmVoYXZpb3VyIGFuZCBzZWUgaG93IHRvIHJlY3JlYXRlIGl0CiAgIAoyMDAwLTAxLTMwIDEwOjQyICBtYXJ6CgogICAqIHBlcmwvU05NUC9SRUFETUU6CgogICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgIAogICBOb3RlOiBLTk9XTiBCVUdTCiAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgYXJlIG5vdCBjb21wYXRpYmxlIHdpdGggdGhlIHBlcmwvU05NUCBtb2R1bGUgKF9fZ2V0X2xhYmVsX2lpZCkKICAgCjIwMDAtMDEtMzAgMDg6MTkgIG1hcnoKCiAgICogcGVybC9TTk1QL3Qvc25tcGQuY29uZjoKCiAgIGNyZWF0ZSBWMyB1c2VyIGVudHJ5LCBjbGVhbnVwCiAgIAoyMDAwLTAxLTMwIDAzOjExICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSBpZi5jOiBkZWZlbnNpdmUgdGVzdCBmb3IgbWlzc2luZyBvYmplY3RzIChpdCBtaWdodCBmYWlsIHRvIHNob3cKICAgCWRvd24gc3RhdHVzIHByb3Blcmx5KQogICAKMjAwMC0wMS0zMCAwMzowOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgLSBocl9zdG9yYWdlLmM6IGNvbnZlcnQgZnJvbSBwYWdlcyB0byAxayBibG9ja3MKICAgCjIwMDAtMDEtMzAgMDM6MDQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIC0gaHJfZGlzay5jOiBjb252ZXJ0IHRvIDFrIGJsb2NrcwogICAKMjAwMC0wMS0zMCAwMzowMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaDoKCiAgIC0gaG9zdC5oOiBjb25maWdfcmVxdWlyZV9taWIoSE9TVC1SRVNPVVJDRVMtVFlQRVMpCiAgIAoyMDAwLTAxLTI4IDEyOjUyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFRoaXMgd2l0aCBwcmV2aW91cyB0d28gY2hhbmdlcyBjb21wbGV0ZXMgYSBwYXRjaCBmb3IgaXRlbXMgMiwzLDQKICAgZm9yIGJ1ZyAjMTQ5LgogICAKMjAwMC0wMS0yOCAxMjozOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBDaGFuZ2UgYWdlbnR4X3tidWlsZCxwYXJzZX1fc2hvcnQgLiBUaGFua3MgdG8gR2VyYXJkIFRhbG1hbkBoaXR0Lm5sLgogICAKMjAwMC0wMS0yOCAxMjozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICBGaXggc3BlbGwgTElUVExFX0VORElBTi4gVGhhbmtzIHRvIHRhbG1hbkBoaXR0Lm5sLgogICAKMjAwMC0wMS0yOCAwNzoxOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBTb21lIHZhcmlhYmxlIHJlbmFtaW5nIGZvciBjb25zaXN0ZW5jeSwgZXJyb3IgY2hlY2tpbmcKICAgaW1wcm92ZWQsIG1pc3Npbmcgc3RyaW5nLmggaW5jbHVkZWQuICBQYXRjaCBzdXBwbGllZCBieSBhdXRob3IuCiAgIAoyMDAwLTAxLTI3IDE2OjEzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBSZW1vdmUgaGFjayBhcm91bmQgIlNNSSIgdG9rZW47IGtlZXAgdGhlIGdvb2QgcGFydCBvZiB0aGUgcHJldmlvdXMgcGF0Y2guCiAgIAoyMDAwLTAxLTI3IDE0OjUxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgMS4gRml4IG1lbW9yeSBsZWFrIHdoZW4gYW5vbnltb3VzbHkgbmFtZWQgbm9kZXMgYXJlIHVzZWQuCiAgICAyLiBIYWNrIGFyb3VuZCBzbWljbmcncyAiU01JICIgc3RhdGVtZW50cyB0byBwcmV2ZW50IG90aGVyIG1lbW9yeSBsZWFrcy4KICAgCjIwMDAtMDEtMjcgMTE6MTQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgbm8tb3Agc25tcF9zeW5jaF9zZXR1cAogICAKMjAwMC0wMS0yNyAwODozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmMpOiBtYWtlIGNvbmZpZyBwYXJzZXIgaGFuZGxlICIiIChudWxsKSBwYXJzZWQgc3RyaW5ncy4KICAgCjIwMDAtMDEtMjYgMTk6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYSwgY29tbWEtY2hhbWVsZW9uLgogICAKMjAwMC0wMS0yNiAxNzozMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFsbG93ICcsJyBzZXBlcmF0ZWQgLS13aXRoLSotbW9kdWxlcyBmbGFnIHZhbHVlcy4KICAgCjIwMDAtMDEtMjYgMTc6MTggIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMS5wcmUyICkKICAgCjIwMDAtMDEtMjYgMTc6MTUgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBjbWQuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMQo6CgogICAtIChzbm1wY21kLjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLCBzbm1wdXNtLjEpOgogICAgLSBiYWRseSBkb25lIHVwZGF0ZXMuCiAgIAoyMDAwLTAxLTI2IDE2OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzREVTY29uZmlnLCBUMDIzc25tcHYzZ2V0TUQ1REVTOgoKICAgLSAoU3YzREVTY29uZmlnLCBUMDIzc25tcHYzZ2V0TUQ1REVTKTogZml4IERFUyB0ZXN0IHNvIGl0IHdvcmtzLgogICAKMjAwMC0wMS0yNiAxNjo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0gKHNubXB2My5jKTogZml4IHByaXYga2V5IGxlbmd0aCBleHRyYXBvbGF0aW9uLiAgU2hvdWxkIGJlIGRvbmUgZGlmZmVyZW50bHk/LgogICAKMjAwMC0wMS0yNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgIC0gbWFrZSBkZXBlbmQuCiAgIAoyMDAwLTAxLTI2IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2FnZW50X3RyYXAuaCwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAtIGFkZCBhYmlsaXR5IHRvIGFsbG93IHNlbmRpbmcgdHJhcHMgdG8gcG9ydHMgb3RoZXIgdGhhbiAxNjIuCiAgIAoyMDAwLTAxLTI2IDE1OjM0ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LAogICBVQ0QtRExNT0QtTUlCLnR4dCwgVUNELUlQRklMVEVSLU1JQi50eHQsCiAgIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsIFVDRC1ETE1PRC1NSUIudHh0LAogICAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNvcnJlY3QgdWNkLXNubXAtY29kZXJzIGVtYWlsIGFkZHJlc3MgdG8gcmVwbGFjZSAiZWNlIiB3aXRoICJ1Y2Qtc25tcCIuCiAgIAoyMDAwLTAxLTI2IDE1OjMyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgLSBjbGVhbiB1cCBhbmQgcmVmb3JtYXQgc3ViLXJlZ2lzdHJhdGlvbiBjb21tZW50cy4KICAgCjIwMDAtMDEtMjYgMTU6MzEgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELUlQRklMVEVSLU1JQi50eHQ6CgogICAtIChVQ0QtSVBGSUxURVItTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gcHJlZml4IG9pZHMgd2l0aCAidWNkIi4KICAgCjIwMDAtMDEtMjYgMTU6MzAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gcHJlZml4IG9pZCB3aXRoICJ1Y2QiLgogICAKMjAwMC0wMS0yNiAxNToyOSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1ESVNLSU8tTUlCLmluYywgVUNELURJU0tJTy1NSUIudHh0LAogICBWRVNULUlOVEVSTkVUVC1NSUIudHh0OgoKICAgLSAoVUNELURJU0tJTy1NSUIuaW5jLCBVQ0QtRElTS0lPLU1JQi50eHQsIFZFU1QtSU5URVJORVRULU1JQi50eHQpOgogICAgIFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gZml4IHRoZSBkaXNraW8gbWliLCBjb252ZXJ0IHRvIFNNSXYyLCBhbmQgbW92ZSB0byB1Y2RFeHBlcmltZW50YWwuCiAgIAoyMDAwLTAxLTI2IDA3OjI2ICBtc2xpZmNhawoKICAgKiBSRUFETUU6CgogICBBY2tub3dsZWRnZSBtb3JlIGNvbnRyaWJ1dG9ycy4KICAgCjIwMDAtMDEtMjYgMDc6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICBmaXggY29tcGlsZSBlcnJvciB3aGVuIC0td2l0aG91dC1yb290LWFjY2VzcyBpcyB1c2VkIChzdHJhdXNzQGlici5jcy50dS1icy5kZSkKICAgCjIwMDAtMDEtMjUgMjE6NDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIG1pYi5jOnByaW50X3RyZWVfbm9kZSAtIHNob3cgbW9kdWxlIG5hbWUgb25jZSBpbiAtLSBGUk9NOwogICBwYXJzZS5jOiBzaG93ICJDYW5ub3QgZmluZCBtb2R1bGUiIG9uY2UgcGVyIG1pc3NpbmcgbW9kdWxlLgogICAKMjAwMC0wMS0yNSAxOTozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgTGFyZ2VyIGJ1ZmZlciBmb3IgcHJpbnRfbW9kdWxlX25hbWU7IEZpeCBwb3NzaWJsZSBudWxsIGRlcmVmIGluIGdldF90Yy4KICAgCjIwMDAtMDEtMjUgMTQ6NTAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FsYXJtLjMsIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS4zLCBzbm1wX2FsYXJtLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBmaXggcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIHRvIGRvIHdoYXQgaXQgc2F5cyBpdCBzaG91bGQgZG8uCiAgIAoyMDAwLTAxLTI1IDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSk6IGhlbHAgdXBkYXRlCiAgIAoyMDAwLTAxLTI1IDE0OjEyICBuYmEKCiAgICogbWlicy86IEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIEhPU1QtUkVTT1VSQ0VTLVRZUEVTLnR4dAosIE1ha2VmaWxlLmluOgoKICAgLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQsIE1ha2VmaWxlLmluOgogICAJVXBkYXRlIHRvIHRoZSBjdXJyZW50IGRyYWZ0IEhPU1QtUkVTT1VSQ0VTIChkcmFmdC1vcHMtaG9zdG1pYi0wMSkKICAgCjIwMDAtMDEtMjUgMTM6NTYgIGhhcmRha2VyCgogICAqIG1pYnMvVkVTVC1JTlRFUk5FVFQtTUlCLnR4dDoKCiAgIC0gKFZFU1QtSU5URVJORVRULU1JQi50eHQpOiBSYWduYXIgS2pyc3RhZCdzIGRpc2tpbyBtaWIuCiAgIAoyMDAwLTAxLTI1IDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXN0aW50ZXJuZXR0LzogZGlza2lvLmMsIGRpc2tpby5oOgoKICAgLSAodmVzdGludGVybmV0dC9kaXNraW8uW2NoXSk6IFJhZ25hciBLanJzdGFkJ3MgZGlza2lvIG1pYi4KICAgCjIwMDAtMDEtMjUgMTM6NTIgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBhIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gb2YgdGNfaW5kZXgKICAgCjIwMDAtMDEtMjUgMTI6MDUgIG1hcnoKCiAgICogUkVBRE1FLndpbjMyOgoKICAgYWRkaXRpb25hbCB3aW4zMiBpbnN0YWxsIG5vdGVzCiAgIAoyMDAwLTAxLTI1IDExOjQ3ICBtYXJ6CgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgYWRkIG1pc3Npbmcgc3luYm9scyBmb3IgcGVybC9TTk1QIG1vZHVsZQogICAKMjAwMC0wMS0yNSAwNjo0OSAgbWFyegoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBzeW50YXggZm9yIHdpbjMyIGJ1aWxkCiAgIAoyMDAwLTAxLTI0IDEwOjM2ICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0yNCAxMDoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEZpeCBwcmludGluZyBJTVBMSUVEIGluZGV4IChmcm9tIGFzc29jaWF0ZSBvZiBKLiBLbWlldHNjaCkgbW9kaWZpZWQgYW5kIGFwcGxpZWQuCiAgIAoyMDAwLTAxLTI0IDEwOjA1ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEl0b2p1bidzIG5ldGJzZCBFTEYgcGF0Y2ggKyByZW1vdmUgd29tYmF0IFtEYXZlJ3MgZXhhbXBsZSBmaXhdCiAgIAoyMDAwLTAxLTI0IDA5OjU1ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfZGVidWcuYwo6CgogICBGaXggQnVnICMxNDQgaXRlbXMgMSwzLDQ6IGNhc2UgaW5zZW5zaXRpdmUgY2hlY2sgZm9yICJhbGwiIGtleXdvcmQuCiAgIAoyMDAwLTAxLTI0IDA5OjQ0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuYzoKCiAgIE1ha2Ugc3VyZSBrc3RhdF9mZCBpcyBpbml0aWFsaXplZCBiZWZvcmUgYmVpbmcgdXNlZC4KICAgCjIwMDAtMDEtMjQgMDg6NTkgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAucG06CgogICBbbm8gbG9nIG1lc3NhZ2VdCiAgIAoyMDAwLTAxLTI0IDA3OjIxICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IGV4YW1wbGUuYywgZXhhbXBsZS5oLAogICB3b21iYXQuYywgd29tYmF0Lmg6CgogICAtIChleGFtcGxlcy97ZXhhbXBsZSx3b21iYXR9LltjaF0pOgogICAgIC0gQ29uc29saWRhdGVkIGV4YW1wbGUgbW9kdWxlcyBpbnRvIG9uZSwgaW5jbHVkaW5nIGNvbmZpZyBhbmQgU0VUIHN1cHBvcnQuCiAgIAoyMDAwLTAxLTIzIDE2OjQxICBtYXJ6CgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgaGFuZGxlIGFkZGluZyBPUEFRVUUgdmFycyBmb3Igc2V0dGluZyBhbmQgdHJhcHMgZXRjLgogICAKMjAwMC0wMS0yMyAxMjo0MyAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogZXJyZW5vdXMgPT4gZXJyb25lb3VzCiAgIAoyMDAwLTAxLTIzIDEyOjQyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggbWVyZ2luZyBvZiBhbm9ueW1vdXMgbm9kZXMgd2hlbiB0aGV5IGFyZSBuYW1lZAogICAKMjAwMC0wMS0yMyAwODo1MSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogYWRkIHNvbWUgbW9yZSBlcnJvciBjaGVja2luZyB0byBnZXRvaWQKICAgCjIwMDAtMDEtMjEgMTE6MTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBjb25maWdfYXJjaF9yZXF1aXJlIHNvbGFyaXMyIHZlcnNpb24gb2Ygdm1zdGF0LgogICAKMjAwMC0wMS0yMSAxMDo0NyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0yMSAxMDoyMyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0yMSAwODoxMyAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGluZm9ybQogICAKMjAwMC0wMS0yMSAwODowMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGluZm9ybS4KICAgCjIwMDAtMDEtMjEgMDc6MjcgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIGFkZGVkIHYzIGluZm9ybQogICAKMjAwMC0wMS0yMSAwMTo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTWluaW1pemUgZGF0YSBoYW5kbGluZyBhbmQgdXNlIHJlZ2lzdGVyIHZhcmlhYmllcyBpbgogICBzbm1wX29pZF9jb21wYXJlIGFuZCBjb21wYXJlX3RyZWUuCiAgIAoyMDAwLTAxLTIxIDAxOjQ2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3NfcGVyc2lzdC5jLCBwYXNzX3BlcnNpc3QuaAo6CgogICBBZGQgY29uc3QgdG8gY2xlYW51cCBhIGZldyBzaWduYXR1cmVzLgogICAKMjAwMC0wMS0yMSAwMTo0NiAgbXNsaWZjYWsKCiAgICogcGVybC9TTk1QL1JFQURNRToKCiAgIFJlbW92ZSBwYXJ0eSBjcnVkOyBzcGVsbCBjaGVjay4KICAgCjIwMDAtMDEtMjAgMDQ6MjUgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFN1cHBvcnQgc2VsZWN0aXZlIGJpbmRpbmcgb2Ygc2VydmVyIGFkZHJlc3Nlcy4KICAgCjIwMDAtMDEtMTggMjE6MzcgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgQ29uc2lzdGVudCBnZXRwYWdlc2l6ZSAoZmlyc3QgZGl2aWRlIGJ5IDEwMjQpLgogICAKMjAwMC0wMS0xOCAyMToyOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oLCB3aW4zMi9taWJfbW9kdWxlX2luaXRzLmgsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwOgoKICAgMS5NYWtlIHNubXBfZ2V0X2RvX2xvZ2dpbmcgdmlzaWJsZSBmcm9tIERMTAogICAyLkFwcGx5IFdpbjMyIHBhdGNoIGZyb20gUi5TdG9yeSB0byBhY3RpdmF0ZSBtaWIgc3RhdHMgbW9kdWxlIChzbm1wX21pYikuCiAgIAoyMDAwLTAxLTE4IDIxOjI1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFJlbW92ZSBjb21tZW50ZWQgb3V0IG9iamVjdHMgdGhhdCBhcmUgTUFYLUFDQ0VTUyBub3QtYWNjZXNzaWJsZS4KICAgCjIwMDAtMDEtMTggMjE6MjIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jOgoKICAgQ2xlYW51cCBhcm91bmQgaXA2X3ZhcnMuaCBpbmNsdWRlIChubyAjaWYgMCkKICAgCjIwMDAtMDEtMTggMTQ6MjMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogdm1zdGF0X3NvbGFyaXMyLmMsCiAgIHZtc3RhdF9zb2xhcmlzMi5oOgoKICAgTGF0ZXN0IHZtc3RhdF9zb2xhcmlzMiBmcm9tIHRoZSBhdXRob3IgSm9jaGVuIEttaWV0c2NoLgogICAKMjAwMC0wMS0xOCAwODoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgUHJldmVudCBhcnJheSBib3VuZHMgZXJyb3Igd2hlbiBjcmVhdGluZyBzcGVjaWZpYyB0cmFwIG9pZC4KICAgCjIwMDAtMDEtMTggMDc6NTQgIG1hcnoKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggZXJyb3IgbWVzc2FnZXMgYW5kIHJldHVybiB2YWxzIGZvciB0cmFwIGZ1bmNzLCBjbGVhbiB1cCBwZHUKICAgCjIwMDAtMDEtMTggMDc6MDAgIG1hcnoKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIG1vZGlmaWVkIGZvciB2Mi10cmFwLgogICAKMjAwMC0wMS0xNyAxMjo0NyAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtLCBTTk1QLnhzOgoKICAgYWRkZWQgdjIgdHJhcAogICAKMjAwMC0wMS0xNyAwOTowMiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IERpc2NhcmQgInRvby1sYXRlIiByZXNwb25zZXMgZnJvbSBvdmVybGFwcGVkIHJlZ2lvbnMuCiAgIAoyMDAwLTAxLTE3IDA2OjEzICBkYXZlcwoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAtIChtYW4vc25tcHRyYXBkLjgpOiBEZXNjcmliZSBkZWZhdWx0IGxvZ2dpbmcgYmVoYXZpb3VyLgogICAKMjAwMC0wMS0xNCAxNjoxMCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiByZW1vdmUgZXhwb3J0IGNvbnRyb2wgbm90ZSBhYm91dCBERVMuCiAgIAoyMDAwLTAxLTE0IDE2OjA5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKTogaW1wbGVtZW50IERFUyBlbmNyeXB0aW9uLgogICAKMjAwMC0wMS0xNCAxMTozNCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBncmVwIGZvciBjb25maWd1cmUgZmxhZ3MKICAgCjIwMDAtMDEtMTQgMDk6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLCBzbXV4L3NubXBfYmdwLmMKLCBzbXV4L3NubXBfb3NwZi5jLCBzbXV4L3NubXBfcmlwMi5jOgoKICAgU21hbGwgY29tcGlsZSBmaXggYW5kIGRlYnVnIG1lc3NhZ2UgcmVzdG9yYXRpb24uCiAgIAoyMDAwLTAxLTEzIDA2OjMzICBkYXZlcwoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpOiBNb3JlIGNvbXBsZXRlIGhhbmRsaW5nIG9mIHVubG9hZGluZyBNSUIgbW9kdWxlcy4KICAgCjIwMDAtMDEtMTMgMDY6MzEgIGRhdmVzCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAoc25tcGxpYi9wYXJzZS5bY2hdKTogVW5sb2FkIE1JQiBtb2R1bGUKICAgCShOLkI6IFNvbWV3aGF0IHNpbXBsaXN0aWMgd2l0aCByZWdhcmQgdG8gbXVsdGlwbHktbG9hZGVkIG5vZGVzKQogICAKMjAwMC0wMS0xMyAwNTozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIE5vIGdldF9ib290dGltZSBzdXBwb3J0IGZvciBjeWd3aW4gKHlldCkuIEhvcGVmdWxseSBhIHRlbXBvcmFyeSBjb25kaXRpb24uCiAgIAoyMDAwLTAxLTEzIDAyOjQ2ICBkYXZlcwoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogUmVtb3ZlIGV4dHJhbmVvdXMgYnJhY2tldC4KICAgCjIwMDAtMDEtMTIgMjE6MDggIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfcmlwMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLCBhcHBzL3NubXB1c20uYwosIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmgKOgoKICAgVXNlIERFQlVHTVNHT0lEIGxpYmVyYWxseSwgcmVwbGFjaW5nIHNwcmludF9vYmppZDsgc21hbGwgc3BlZWR1cC4KICAgCjIwMDAtMDEtMTIgMTE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChzbm1wdjMuYyk6IGNhc3QgbWFsbG9jIHJldHVybnMuCiAgIAoyMDAwLTAxLTExIDE1OjA1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIFVzZSBDRkxBR1Mgd2hlbiBsaW5raW5nIChjb3VsZCBoYXZlIHByb2ZpbGUgc3dpdGNoLCBldGMpLgogICAKMjAwMC0wMS0xMSAxMDozNyAgbWFyegoKICAgKiBwZXJsL1NOTVAvdC9nZXQudDoKCiAgIHJlbW92ZSBiYWQgc2Vzc2lvbiB0ZXN0IC0gc2Vzc2lvbi50IGhhcyBpdCBhbHJlYWR5IC0gbm90ZSB0aGUgY2FsbCB0byBnZXRob3N0YnluYW1lIGNhbiBoYW5nIGZvciBzb21lIHRpbWUgaWYgRE5TIGlzIG5vdCBzZXR1cCBjb3JyZWN0bHkgLSBhbnlvbmUga25vdyBhIHdheSBhcnJvdW5kIHRoaXM/CiAgIAoyMDAwLTAxLTExIDA5OjEzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaAo6CgogICBSZXN0b3JlIG1lbWR1cCB1c2FnZSB0byBpdHMgZm9ybWVyIGx1c3Rlci4KICAgCjIwMDAtMDEtMTEgMDg6MTAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBJbml0IGZpbGUgY291bnQgYXQgemVybywgbm90IGJ5IGluY3JlbWVudGluZyByYW5kb20gdmFsdWUuCiAgIAoyMDAwLTAxLTExIDA3OjU5ICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEtlZXAgd2luMzIgcmVsZWFzZSBidWlsZCBmcm9tIGJyZWFraW5nLgogICAKMjAwMC0wMS0xMSAwNzo0NCAgbXNsaWZjYWsKCiAgICogd2luMzIvY29uZmlnLmg6CgogICBBZGQgSU5fVUNEX1NOTVBfU09VUkNFIHRvIG5vdCBicmVhayBXaW4zMiBidWlsZHMuCiAgIAoyMDAwLTAxLTExIDAxOjUzICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIEdsZWFuIHJlZnMgdG8gbWliSUkubyBmcm9tIHRoaXMgbWFrZWZpbGUuCiAgIAoyMDAwLTAxLTExIDAxOjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCBzbm1wbGliL3ZhY20uYwo6CgogICBUcm9sbGluZyBmb3IgbWFsbG9jIGVycm9yczsgbW9yZSBncmFjZWZ1bCBkZWdyYWRhdGlvbi4KICAgCjIwMDAtMDEtMTAgMTY6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCBzY2FwaS5oLCBzbm1wX2FwaS5jCjoKCiAgIHNubXBfYXBpLmMgICAgLSBiZXR0ZXIgY29tbWVudCBmb3Igc25tcF9vaWRfY29tcGFyZS4KICAgcmVhZF9jb25maWcuYyAtIHJlbW92ZSBzaXplb2YodV9jaGFyKSBmcm9tIG1hbGxvYyBzaXplIGNhbGMuCiAgIHNjYXBpLmggICAgICAgLSBzcGVsbCBjaGVjay4KICAgCjIwMDAtMDEtMTAgMTY6MzEgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgc25tcHRyYW5zbGF0ZS5jICAtIHNpbXBsZSBkZWZhdWx0IGNhc2UuCiAgIAoyMDAwLTAxLTEwIDE2OjMxICBtc2xpZmNhawoKICAgKiBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgc25tcHRyYW5zbGF0ZS4xICAgLSByZW1vdmUganVuayBsaW5lLgogICAKMjAwMC0wMS0xMCAxNjozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgdWNkRGVtb1B1YmxpYy5jIC0gcmVtb3ZlIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzIGZyb20gd3JpdGUgbWV0aG9kLgogICBzbm1wX3ZhcnMuYyAgICAgLSBwcm9wZXIgb2lkIGNvbXBhcmU7IG5vIGNvcHkgZnJvbSBzYXZlIGlmIG9pZHMgZXhhY3QgbWF0Y2gKICAgc25tcGQuYyAgICAgICAgIC0gdGVybWluYXRlIHN0YXRlbWVudC4KICAgCjIwMDAtMDEtMTAgMTU6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBtYWtlIC0td2l0aG91dC1lZmVuY2Ugd29yay4KICAgICAtIGNoZWNrIGZvciAtbG5zbCBtb3JlIGV4cGxpY2l0bHkuCiAgIAoyMDAwLTAxLTEwIDE1OjM2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1N2M2NvbmZpZzoKCiAgIC0gKFN2M2NvbmZpZyk6IHJlbW92ZSB0aGUgdHJhaWxpbmcgc3BhY2UuCiAgIAoyMDAwLTAxLTEwIDE1OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN0ZGxpYi5oIGFuZCBtYWxsb2MuaC4KICAgCjIwMDAtMDEtMTAgMTQ6NDAgIG1hcnoKCiAgICogcGVybC9TTk1QL01BTklGRVNUOgoKICAgYWRkIG1pYmxvYWQKICAgCjIwMDAtMDEtMTAgMTQ6MzQgIG1hcnoKCiAgICogcGVybC9TTk1QL3QvbWlibG9hZC50OgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMC0wMS0xMCAxNDoyMCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBCVUcsIE1BTklGRVNULCBNQU5JRkVTVC5TS0lQLAogICBNYWtlZmlsZS5QTCwgUkVBRE1FLCBTTk1QLnBtLCBTTk1QLnhzLCBUT0RPCiwgcGVybHNubXAuaCwgdHlwZW1hcCwgZXhhbXBsZXMvYXN5bmMxLnBsLAogICBleGFtcGxlcy9hc3luYzIucGwsIGV4YW1wbGVzL2lwZm9yd2FyZC5wbCwKICAgZXhhbXBsZXMvbWlidHJlZS5wbCwgZXhhbXBsZXMvbWlid2Fsay5wbCwKICAgZXhhbXBsZXMvcGluZ21pYi5wbCwgZXhhbXBsZXMvdGFibGV3YWxrLnBsLAogICBleGFtcGxlcy90ZXN0bGVhay5wbCwgaGludHMvaXJpeC5wbCwgaGludHMvc29sYXJpcy5wbAosIHQvUkVBRE1FLCB0L2FzeW5jLnQsIHQvZ2V0LnQsIHQvZ2V0bmV4dC50CiwgdC9taWIudCwgdC9taWIudHh0LCB0L3Nlc3Npb24udCwgdC9zZXQudAosIHQvc25tcGQuY29uZjoKCiAgIENoZWNraW5nIGluIFNOTVAtMy4xLjBiMQogICAKMjAwMC0wMS0xMCAxMzoyMSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBRdWFsaWZ5IHVzZSBvZiB3aXRodmFsIHRvIGRlZmluZSBsaWJyYXJ5IGFuZCBpbmNsdWRlIHNlYXJjaCBwYXRocy4KICAgCjIwMDAtMDEtMTAgMTM6MTQgIG1zbGlmY2FrCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIEFsbG93IE1TVkMrKyA1LnggdXNlcnMgdG8gYnVpbGQgdXNpbmcgdGhpcyB3b3Jrc3BhY2UuCiAgIAoyMDAwLTAxLTEwIDA2OjEyICBkYXZlcwoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFJlLXN0cnVjdHVyZSBnZXRfdXB0aW1lKCkgdG8gY2FjaGUgYm9vdCB0aW1lLgogICAKMjAwMC0wMS0xMCAwMzowNiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogQ291bnQgbnVtYmVycyBvZiB2YXJpYWJsZXMgcmVxdWVzdGVkL3NldAogICAKMjAwMC0wMS0xMCAwMjozMSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRGlmZmVyZW50aWF0ZSBtYXgtcmVwZXRpdGlvbiBhbmQgbm9uLXJlcGVhdGVyIGVycm9ycy4KICAgCjIwMDAtMDEtMTAgMDE6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICAtIChhZ2VudC9taWJncm91cC9taWJJSS5oKTogUmUtcmVtb3ZlIHJlZHVuZGFudCBwcm90b3R5cGUuCiAgIAoyMDAwLTAxLTA4IDEyOjA3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICBVc2Uga25saXN0IGlmZiBhaXg0IGFuZCBIQVZFX0tOTElTVCBbbm90IGNvbXBsZXRlIHcvbyBjb25maWd1cmUgbW9kc10KICAgCjIwMDAtMDEtMDggMTE6NDQgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgRml4IGJ1aWxkIGZvciBMaW51eCBSZWRIYXQgNi4xIChjYW50IGxpbmsgbGlid3JhcCB3aXRob3V0IGxpYm5zbCkuCiAgIAoyMDAwLTAxLTA4IDAwOjU2ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIGNvbmZpZ3VyZS5pbjogYnVnZml4IGZvciBhIGJ1Z2ZpeCBidWcKICAgCjIwMDAtMDEtMDcgMjM6NDMgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gY29uZmlndXJlLmluOiBzb21lIG1pc3NpbmcgIngiIGluIHRlc3RzIGZvciAtLXdpdGgtb3BlbnNzbCBhbmQKICAgCS0tZGlzYWJsZS1kZXZlbG9wZXIKICAgCjIwMDAtMDEtMDcgMTY6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBwcm9wZXJseSBncm91cCBydy9yb3VzZXJzIGludG8gdXNtIG5vdCB2MS92MmMuCiAgIAoyMDAwLTAxLTA3IDExOjIyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gaGFuZGxlIG11bHRpcGxlIHRyYW5zbGF0ZWQgT0lEcy4KICAgCjIwMDAtMDEtMDcgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogdXBkYXRlIHRvIHY0IEFQSSBzZXQgY29kZS4KICAgCjIwMDAtMDEtMDcgMDk6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGJldHRlciBoYW5kbGluZyBvZiB3cml0ZSBmYWlsdXJlcy4KICAgCjIwMDAtMDEtMDYgMTU6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICAtIChtaWIyYy5jb25mKTogdW5xdW90ZWQgcXVvdGVzIHF1b3RlZC4KICAgCjIwMDAtMDEtMDYgMTU6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiByZW1vdmVkIGEgZGVidWdnaW5nIHN0YXRlbWVudC4KICAgCjIwMDAtMDEtMDYgMTU6MDggIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogeTJrIGJ1Zy4KICAgCjIwMDAtMDEtMDYgMTM6MTQgIG1hcnoKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0OgoKICAgdXBkYXRlIGNvbmZpZyBhY2Nlc3Mgc3ludGF4IChleGFjdCkKICAgCjIwMDAtMDEtMDYgMTM6MDcgIG1hcnoKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHdlIHNob3VsZCBub3QgcHJpbnQgdG8gc3RkZXJyIGlmIHN0ZGVyciBsb2dnaW5nIGlzIGRpYWJsZWQgLSB0aGlzIHRob3dzIG9mZiB0aGUgYWxpZ25tZW50IG9mIHRlc3Qgb3V0cHV0IGZvciAnbWFrZSB0ZXN0JyBpbiBib3RoIHVjZC1zbm1wIGFuZCBQZXJsL1NOTVAKICAgCjIwMDAtMDEtMDYgMTI6NTYgIG1hcnoKCiAgICogdGVzdGluZy90ZXN0cy9TdmFueWNvbmZpZzoKCiAgIHVwZGF0ZSBzeW50YXggKGV4YWN0KQogICAKMjAwMC0wMS0wNiAwODo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAodXRpbF9mdW5jcy5oKTogcHJvcGVybHkgd3JhcCBzdHJ1Y3QuaCBpbmNsdWRlIGRpcmVjdGl2ZSBmb3IKICAgICBub24tc291cmNlLWRpcmVjdG9yeSBpbmNsdWRlLgogICAKMjAwMC0wMS0wNiAwMTo1OCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuYzoKCiAgIC0gKG1pYmdyb3VwL21pYklJLmMpOiBSZW1vdmUgcmVkdW5kYW50IGZpbGUKICAgCjIwMDAtMDEtMDQgMjM6NTEgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogaW1wbGVtZW50IHRyYW5kIGhhbmRsZXJzIGZvciB3aW4zMgogICAKMjAwMC0wMS0wNCAyMzo1MCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogI2lmZGVmIHNvbWUgdmFyaWFibGVzIG5vdCB1c2VkIHVuZGVyIHdpbjMyCiAgIAoyMDAwLTAxLTA0IDIyOjEyICBuYmEKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBzbm1wZC5jb25mLjUuZGVmOiByZW1vdmUgYWxsIHRyYWNlcyBvZiBzZWN1cml0eQogICAJbW9kZWwgImFueSIgaW4gImdyb3VwIiBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMKICAgCjIwMDAtMDEtMDQgMTY6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gU2FuZGVyIFN0ZWZmYW5uOgogICAgIC0gQWRkIC1JL3Vzci9pbmNsdWRlL3JwbSBiZWNhdXNlIG9mIGJhZGx5IHdyaXR0ZW4gcnBtIGhlYWRlciBmaWxlcy4KICAgCjIwMDAtMDEtMDQgMTA6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IGRlYWwgd2l0aCBibG9ja2luZyBiZXR0ZXIgaW4gc25tcF9hZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgogICAKMjAwMC0wMS0wNCAxMDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc3RydWN0LmgKICAgCjIwMDAtMDEtMDQgMDg6NTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoUkVBRE1FLCBGQVEpOiBKYXBhbiBtaXJyb3IgbG9jYXRpb24gY2hhbmdlLgogICAKMjAwMC0wMS0wMyAxNTozOSAgbmJhCgogICAqIG1hbi86IHNubXBjbWQuMSwgc25tcHRyYW5zbGF0ZS4xLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIC0gc25tcGNtZC4xOiBhZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBsaWNhdGlvbnMKICAgLSBzbm1wdHJhbnNsYXRlLjE6IGV4cGxhaW4gLVQgb3V0cHV0cwogICAtIHNubXB0cmFwZC5jb25mLjUuZGVmOiBkZWZhbHQgdHJhcGhhbmRsZXIgaXMgaW1wbGVtZW50ZWQKICAgCjIwMDAtMDEtMDMgMTU6MzQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogYWxzbyBub3RlIFRFWFRVQUwgQ09OVkVOVElPTiBpbiAtVGQgb3V0cHV0CiAgIAoyMDAwLTAxLTAzIDE1OjMyICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSBwYXJzZS5jOiBmaXggRmlsZSB2YXJpYWJsZSBiZWluZyBsZWZ0IHBvaW50aW5nIGludG8gdGhlIHN0YWNrLgogICAJSWdub3JlIC5pbmRleCBmaWxlIG9uIFdJTjMyIHBsYXRmb3JtCiAgIAoyMDAwLTAxLTAzIDE1OjMwICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uaDoKCiAgIC0gc3lzdGVtLmg6IGFkZCBwcm90b3R5cGUgZm9yIHN0cmNhc2VjbXAKICAgCjIwMDAtMDEtMDMgMTU6MjggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IHdvbWJhdC5jLCB3b21iYXQuaDoKCiAgIC0gd29tYmF0LltjaF06IGNvcnJlY3QgcHJvdG90eXBlIGZvciB3b21iYXRfcGFyc2VfY29uZmlnCiAgIAoyMDAwLTAxLTAzIDE1OjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gbWliSUkuaDogYWRkIHByb3RvdHlwZSBmb3IgaW5pdF9taWJJSQogICAKMjAwMC0wMS0wMyAxNToyNiAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIHNubXBkLmM6IGFkZCBhIG1pc3NpbmcgY29uc3Qgc3BlY2lmaWVyCiAgIAoyMDAwLTAxLTAzIDE1OjI2ICBuYmEKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIHNubXBfdmFycy5jOiBpbmNsdWRlIGFnZW50X3JlZ2lzdHJ5Lmggb25seSBvbmNlCiAgIAoyMDAwLTAxLTAzIDE1OjIzICBuYmEKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gRVhBTVBMRS5jb25mLmRlZjogYWRhcHQgdG8gY2hhbmdlcyBpbiB2YWxpZCB2YWNtIHN5bnRheAogICAKMTk5OS0xMi0zMSAxMzoyNyAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYwo6CgogICBBcHBseSBzb21lIE5ldEJTRCAxLjMueCwgMS40IHBhdGNoZXMgYy9vIEdyZWEgQS4gV29vZHMgPHdvb2RzQHBsYW5peC5jb20+CiAgIAoxOTk5LTEyLTMxIDEyOjQzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3N5c3RlbS5jLCB3aW4zMi9jb25maWcuaCwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBGaXggYnVnICM0ODogbm8gc3RyY2FzZWNtcC9zdHJuY2FzZWNtcCBmb3IgU2luaXgKICAgCjE5OTktMTItMzEgMTA6MzYgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFwcHMvc25tcHRhYmxlLmM6CgogICBGaXggd2FybmluZ3Mgb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuCiAgIAoxOTk5LTEyLTMxIDEwOjMzICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIEF1dG9jb25mIHBhdGNoIGMvbyBBbGJlcnQgQ2hpbi1BLVlvdW5nIDxjaGluYUB0aGV3cml0dGVud29yZC5jb20+CiAgIAoxOTk5LTEyLTMxIDEwOjExICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIEZpeCBidWcgIzEyNSAtIGluc2VydCB1bmRlcnNjb3JlIGludG8gc3RydWN0IHNubXBfaXBhZGRyIG1lbWJlciBuYW1lcy4KICAgCjE5OTktMTItMzEgMDk6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYzoKCiAgIEFwcGx5IHBhdGNoIHByb3ZpZGVkIGJ5IFNlcmcgVHJ1c2huaWtvdiA8c2F0QHptYWlsLnJ1PiBmb3IgQUlYIDQuMi4xIGtubGlzdAogICAKMTk5OS0xMi0zMSAwOTozMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jOgoKICAgRml4IGJ1ZyAjIDEyMgogICAKMTk5OS0xMi0zMCAxMjowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICBGaXggY29tcGlsZSBlcnJvcnMuCiAgIAoxOTk5LTEyLTMwIDA3OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHVzYWdlIGxpbmUgb3JkZXIgbWVzc2VkIHVwLCBhcyBwb2ludGVkIG91dCBieSBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTEyLTI4IDE1OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZW1vdmUgdGhlICEgaW4gZnJvbnQgb2YgaW5fYV92aWV3LCB3aGljaCBjaGFuZ2VkLgogICAKMTk5OS0xMi0yMyAwODoyMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAtICh2bXN0YXRfc29sYXJpczIuYyk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgIC0gbm9uIDgwLWNvbHVtbiB3cmFwcGVkIHZlcnNpb24uCiAgIAoxOTk5LTEyLTIyIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdF9zb2xhcmlzMi5jLAogICB2bXN0YXRfc29sYXJpczIuaDoKCiAgIC0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgIC0gZmlyc3QgcGFzcyBhdCB2bXN0YXQgc3VwcG9ydCBmb3Igc29sYXJpcy4KICAgCjE5OTktMTItMjIgMTU6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyX3JlcXVlc3QuYyk6IGluY3JlYXNlIG1heCB2YXJzIHRvIDY0ICh3YXMgMTYpLiAgSSBoYXZlIGEKICAgICB0YWJsZSB3aXRoIG1vcmUgdGhhbiB0aGF0IG51bWJlciBpbiBjb2x1bW5zLCB3aGljaCBicmVha3Mgc25tcHRhYmxlLgogICAKMTk5OS0xMi0yMiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSAobWFzdGVyLmMpOiB1c2Ugc25tcF9zZXNzX29wZW4gZm9yIHRoZSBzZWNvbmQgdHJ5IGF0IG9wZW5pbmcgdGhlCiAgICAgbWFzdGVyIHBvcnQuCiAgIAoxOTk5LTEyLTIyIDA1OjU4ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgLSB2YWNtIHJvdXRpbmVzOiBhbGlnbm1lbnQgd2l0aCBSRkMgbWlicywgcHJlcGFyaW5nIGZvciB0cmFwIGdlbmVyYXRpb24KICAgCWFuZCBhIGJldHRlciBpbnRlZ3JhdGlvbiB3aXRoIHZhcmlhYmxlIHRyZWUgd2Fsa2luZwogICAKMTk5OS0xMi0yMiAwNTo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIC0gc3lzdGVtX21pYi5jOiB1c2Ugc29tZSAjZGVmaW5lcyBpIHBsYWNlIG9mIG51bWJlcnMKICAgCjE5OTktMTItMjIgMDU6NDYgIG5iYQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSBzeXN0ZW0uYzogbmF1Z2h0eSwgbmF1Z2h0eSBOaWVscywganVzdCByZWluZGVudGluZyAuLi4KICAgCjE5OTktMTItMjIgMDI6NDMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gaHJfc3RvcmFnZS5jOiBraWxsIGEgZHVtbXkgdmFsdWUKICAgCjE5OTktMTItMjIgMDI6NDEgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYzoKCiAgIC0gbWVtb3J5X2ZyZWVic2QyLmM6IG1ha2UgaXQgd29yayAoYWdhaW4pIGZvciBGcmVlQlNELTI6LSkKICAgCjE5OTktMTItMjEgMDI6MzcgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wZC5jLCBzbXV4LmMsIHNubXBfYXBpLmM6IHRha2UgYXdheSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoxOTk5LTEyLTIwIDE3OjM0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgRkFRCiwgUkVBRE1FOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMSApCiAgIAoxOTk5LTEyLTIwIDE3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBhZGQgYWdlbnRfdHJhcC5oCiAgIAoxOTk5LTEyLTIwIDE3OjMyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gU01JdjIgdXBkYXRlcy4KICAgCjE5OTktMTItMjAgMTc6MzEgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3Igbm90ZS4KICAgCjE5OTktMTItMjAgMTc6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBEaWdpdGFsIFVuaXggaGFjayBmb3IgYmFkIHJlY3Zmcm9tIGltcGxlbWVudGF0aW9uLgogICAKMTk5OS0xMi0yMCAxNzoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudHgvcHJvdG9jb2wuYyk6IG1ha2UgYSB0aGluZ3Mgc2l6ZV90IGluc3RlYWQgb2YgdV9pbnQgKGZvciA2NGJpdCBjb2RlKS4KICAgCjE5OTktMTItMjAgMTc6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gKGFnZW50X3RyYXAuYyk6IG1ha2UgdXB0aW1lIGEgbG9uZyBmb3IgNjRiaXQgYXJjaGl0ZWN0dXJlcy4KICAgCjE5OTktMTItMjAgMTU6MzggIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IElQRldBQ0MtTUlCLnR4dCAtPiBVQ0QtSVBGV0FDQy1NSUIudHh0CiAgIAoxOTk5LTEyLTIwIDEzOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYzoKCiAgIC0gKGlwZndhY2MuYyk6IG1vdmVkIHRhYmxlIHRvIG9uZSBsZXZlbCBkZWVwZXIgdW5kZXIgbWliIG5vZGUuCiAgIAoxOTk5LTEyLTIwIDEzOjMwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1JUEZXQUNDLU1JQi50eHQ6CgogICAtIChVQ0QtSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgdGFibGUgdG8gb25lIGxldmVsIGRlZXBlciB1bmRlciBtaWIgbm9kZS4KICAgCjE5OTktMTItMjAgMTM6MjYgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtSVBGV0FDQy1NSUIuaW5jLCBVQ0QtSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoVUNELUlQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIGFuZCB1cGRhdGVkIGZyb20gSVBGV0FDQy1NSUIudHh0CiAgIAoxOTk5LTEyLTIwIDEzOjI1ICBoYXJkYWtlcgoKICAgKiBtaWJzL0lQRldBQ0MtTUlCLnR4dDoKCiAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IG1vdmVkIHRvIFVDRC1JUEZXQUNDLU1JQi50eHQKICAgCjE5OTktMTItMjAgMTM6MjMgIGhhcmRha2VyCgogICAqIG1pYnMvSVBTRUMtTUlCLnR4dDoKCiAgIC0gKElQU0VDLU1JQi50eHQpOiByZW1vdmVkCiAgIAoxOTk5LTEyLTIwIDA2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbW92ZWQga2VybmVsLm8gaW50byB0aGUgbGlidWNkYWdlbnQgbGlicmFyeS4KICAgCjE5OTktMTItMjAgMDY6NDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEZvcmNlIHNldCB0byAxIGZvciAtRCBzbyBtdWx0aXBsZSBzd2l0Y2hlcyBjYW4KICAgICBiZSBnaXZlbiAoaWUsIGRvbid0IHRvZ2dsZSB0aGUgdmFsdWUpLgogICAKMTk5OS0xMi0yMCAwNDoxNSAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIHNubXBfdmFycy5jLAogICBtaWJncm91cC9taWJJSS5oLCBtaWJncm91cC9taWJJSS9hdC5jLAogICBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvbWliSUkvaXAuYywgbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMKLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIG1pYmdyb3VwL21pYklJL3RjcC5jCiwgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiwgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oOgoKICAgLSAoYWdlbnRfdHJhcC5jIHNubXBfdmFycy5jIG1pYklJLltjaF0gbWliSUkvKi5jIG1pYklJL3N5c09SVGFibGUuaCk6CiAgICAgLSBVc2UgU05NUF9PSUQgcHJlZml4IGRlZmluaXRpb25zIGluIE9JRCBzcGVjaWZpY2F0aW9ucy4KICAgICAtIFJlZ2lzdGVyIHRoZSB2YXJpb3VzIE1JQi0yIG1vZHVsZXMgc2VwYXJhdGVseSBpbiBzeXNPUlRhYmxlLgogICAKMTk5OS0xMi0yMCAwMzowMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICAtIChhZ2VudHgvUkVBRE1FLmFnZW50eCk6IFVwZGF0ZWQgdG8gZGVzY3JpYmUgY3VycmVudCBzdGF0dXMuCiAgIAoxOTk5LTEyLTE3IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKTogY29tcGxldGVseSByZXN0cnVjdHVyZWQuCiAgICAgLSBkcmFzdGljbHkgcmVkdWNlcyBtZW1vcnkgdXNhZ2UgZm9yIGxhcmdlIGRhdGEgc2V0cyAoMS8zKS4KICAgCjE5OTktMTItMTcgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywKICAgc25tcF92YXJzLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBpbmNsdWRlICJzbm1wX2FsYXJtLmgiIGZvciBtaWIgbW9kdWxlcyB0aGF0IG5lZWQgdGhlIGNhbGxiYWNrIGRlZi4KICAgCjE5OTktMTItMTcgMTU6NTUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWVudGlvbiAtSS4KICAgCjE5OTktMTItMTcgMTU6NDYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS5jKTogbWlzc2luZyAhIG9wZXJhdGVyIG9uIHNpZ25hbCB0ZXN0LgogICAKMTk5OS0xMi0xNyAxNTo0MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0LmMKLCB2bXN0YXRfZnJlZWJzZDIuYzoKCiAgIE5vIGR1bW15IHZhbHVlcyBmb3IgRnJlZUJTRCwgcGxlYXNlLgogICAKMTk5OS0xMi0xNyAxNToyMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1Y2Rfc25tcC5oLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYwosIHVjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgQWRkIEJpbGwgRnVtZXJvbGEncyBwYXRjaCBmb3IgRnJlZUJTRCA0LnggdG8gdXNlIHN3YXBpbmZvLgogICBJbmNsdWRlIEZyZWVCU0QgNC54IHNwZWNpZmljIG1lbW9yeSBhbmQgdm1zdGF0IHdoZW4gYnVpbGRpbmcgdGhhdCBhZ2VudC4KICAgCjE5OTktMTItMTcgMTQ6MjMgIG1zbGlmY2FrCgogICAqIG1hbi86IFJFQURNRSwgbWliX2FwaS4zLCBzbm1wLmNvbmYuNS5kZWYsCiAgIHNubXBjbWQuMSwgc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsCiAgIHNubXBuZXRzdGF0LjEsIHNubXB0ZXN0LjEsIHNubXB1c20uMSwgc25tcHdhbGsuMQo6CgogICBGaXhlZCBhIGZldyBzcGVsaWxuZyBlcnJvcnMuCiAgIAoxOTk5LTEyLTE3IDEwOjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgIC0gKHNubXBfYWdlbnRfYXBpLjMpOiByZS1zdHJ1Y3R1cmUgYmFzZWQgb24gcmVjZW50IGNoYW5nZXMuCiAgIAoxOTk5LTEyLTE3IDEwOjE4ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHNlY29uZCBwYXNzLgogICAKMTk5OS0xMi0xNyAxMDoxNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlZCAtUiBmcm9tIHRoZSAtaCBvdXRwdXQuCiAgIAoxOTk5LTEyLTE3IDEwOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgLSAodXNtVXNlci5jKTogY2hhbmdlZCBoZWxwIGxpbmUgb2YgY3JlYXRlVXNlciB0byBzZXBlcmF0ZSBERVMgdG9rZW4KICAgICBmcm9tIHRoZSBwYXNzcGhyYXNlLgogICAKMTk5OS0xMi0xNyAxMDoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHB1dCBzbm1wZC5vIGludG8gdGhlIG9iamVjdCBsaXN0LCBhbmQgcmVtb3ZlIGl0IGZyb20KICAgICBkaXJlY3QgY29tcGlsYXRpb24gaW4gdGhlIENDIGxpbmsgbGluZS4KICAgCjE5OTktMTItMTcgMTA6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogcmVvcmRlciBpbml0KCkgcm91dGluZXMgZm9yIC1IIHRvIHByZXZlbnQgc2VnZmF1bHRpbmcuCiAgIAoxOTk5LTEyLTE3IDEwOjExICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pOiBQRVJTSVNURU5UX0RJUkVDVE9SWSB0b2tlbiBhZGRlZC4KICAgCjE5OTktMTItMTcgMTA6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogZmlyc3QgcGFzcyBhdCBjaGFuZ2VzLgogICAKMTk5OS0xMi0xNyAwNzo0MCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogZG9jdW1lbnQgY3JlYXRlVXNlci4KICAgCjE5OTktMTItMTcgMDc6MjggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHRoZSBmaWxlIGRpcmVjdGl2ZS4KICAgCjE5OTktMTItMTcgMDc6MjYgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHJvY29tbXVuaXR5LCByd2NvbW11bml0eSwgcm91c2VyLCByd3VzZXIuCiAgIAoxOTk5LTEyLTE3IDA3OjEzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgYSBidW5jaCBvZiBuZXcgY29uZmlndXJhdGlvbiBvcHRpb25zLgogICAKMTk5OS0xMi0xNyAwNzowNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IG1lbnRpb24gdGhhdCAtSVIgYW5kIC1JYiBhcmUgYWN0dWFsbHkgdXNlZCBieSBkZWZhdWx0LgogICAKMTk5OS0xMi0xNyAwNzowMyAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1JIGFuZCAtTyBmbGFncy4KICAgCjE5OTktMTItMTcgMDM6MjIgIG5iYQoKICAgKiB3aW4zMi86IGxpYnNubXAvbGlic25tcC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmCjoKCiAgIC0gbGlic25tcC5kZWY6IGFkZCBzb21lIGZ1bmN0aW9uIG5hbWVzCiAgIAoxOTk5LTEyLTE3IDAyOjE4ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gc25tcHRyYXBkLmM6IG1ha2UgdGhlIG9pZHMgZ2l2ZW4gdG8gdHJhcGQgaGFuZGxlcnMgcHJvcGVybHkgLjAgdGVybWluYXRlZC4KICAgCUFkZCBhIFNOTVAtQ09NTVVOSVRZLU1JQjo6c25tcFRyYXBBZGRyZXNzLjAKICAgCUFkZCBzeXNsb2cgb2YgdjIgdHJhcHMgYW5kIGluZm9ybXMKICAgCjE5OTktMTItMTcgMDI6MTQgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSBzbm1wdGFibGUuYzogY2xlYW51cCBvZiB0aGUgIm5ldyIgbWliIHdhbGsgdG8gZGV0ZXJtaW5lIGZpZWxkcy4gTWFrZSBpdAogICAJZGVmYXVsdCAoZG9uJ3QgZXZlbiBkb2N1bWVudCB0aGUgLUMgY29tcGF0aWJpbGl0eSBvcHRpb24pLiBJZ25vcmUKICAgCW5vdC1hY2Nlc3NpYmxlIGZpZWxkcyBpbiB0aGUgd2Fsay4KICAgCjE5OTktMTItMTcgMDI6MDkgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXMgdXNhZ2UoKSBjYWxscy4KICAgCjE5OTktMTItMTcgMDI6MDggIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzoga2lsbCB0aGF0IHRhaWwgcmVjdXJzaW9uIGVsaW1pbmF0aW9uLCBpdCBqdXN0IGFkZHMgdG9vIG1hbnkKICAgCWNvbmRpdGlvbmFscy4gUHJvcGVybHkgb3V0cHV0IGFuIGVtcHR5IHN0cmluZyBpbmRleC4KICAgCjE5OTktMTItMTYgMjM6MTAgIG5iYQoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSBzbm1wdjMuYzogYSBtb3JlIHNwZXZpZmljIGhlbHAgbWVzc2FnZSBmb3IgZGVmVmVyc2lvbgogICAKMTk5OS0xMi0xNiAyMzowOSAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBmaXggYSB0YWlsIHJlY3Vyc2lvbiBlbGltaW5hdGlvbiBwcm9ibGVtIHByaW50aW5nIG9pZHMKICAgCjE5OTktMTItMTYgMjM6MDggIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gc25tcHRyYW5zbGF0ZS5jOiBiZSBleHBsaWNpdCBpbiB0aGUgLXQgd2FybmluZwogICAKMTk5OS0xMi0xNiAyMzowOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNtdXguaDoKCiAgIC0gc211eC5bY2hdOiBmaXggc29tZSBwcm90b3R5cGVzIGFuZCBpbmNsdWRlcy4KICAgCjE5OTktMTItMTYgMjM6MDYgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBzbm1wZC5jOiBcbiB0ZXJtaW5hdGUgc29tZSBsb2cgbWVzc2FnZXMKICAgCjE5OTktMTItMTYgMjM6MDUgIG5iYQoKICAgKiBhZ2VudC9rZXJuZWwuYzoKCiAgIC0ga2VybmVsLmM6IG91dHB1dCBlcnJvciBzdHJpbmcsIG5vdCBudW1iZXIKICAgCjE5OTktMTItMTUgMTE6MDggIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLAogICB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIFJlcGxhY2Uga2MgZnJvbSBtZW1vcnlfc29sYXJpczIuYyB3aXRoIGtzdGF0X2ZkLCBkZWZpbmVkIGluIGtlcm5lbF9zdW5vczUuYy4KICAgCjE5OTktMTItMTUgMDk6NTYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiB0b29scy5jLCB0b29scy5oOgoKICAgQWRkIHRpbWUgbWFya2VyIGNyZWF0ZSwgc2V0LCBhbmQgZGVsdGEgdGltZSBjaGVjayBtZXRob2RzLgogICAKMTk5OS0xMi0xNSAwOTo0MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIFJlbW92ZSBzbm1wX2xvZ19zeXNsb2csIHNubXBfbG9nX2ZpbGVsb2csIHNubXBfbG9nX3N0ZGVycmxvZzsKICAgU2ltcGxpZnkgc25tcF9sb2dfc3RyaW5nLgogICAKMTk5OS0xMi0xNSAwOToxOSAgaGFyZGFrZXIKCiAgICogbWlicy86IE1ha2VmaWxlLmluLCBTTk1QdjItTTJNLU1JQi50eHQsCiAgIFNOTVB2Mi1QQVJUWS1NSUIudHh0OgoKICAgLSAoU05NUHYyLVBBUlRZLU1JQi50eHQgU05NUHYyLU0yTS1NSUIudHh0ICk6IHJlbW92ZWQuCiAgIAoxOTk5LTEyLTE1IDA5OjE3ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogRXRoZXJMaWtlLU1JQi50eHQsIElQRklMVEVSLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi5pbmMsIFVDRC1JUEZJTFRFUi1NSUIudHh0OgoKICAgLSAoRXRoZXJMaWtlLU1JQi50eHQsIElQRklMVEVSLnR4dCwgVUNELUlQRklMVEVSLU1JQi5pbmMsCiAgICAgVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIEV2ZW4gbW9yZSB1cGRhdGVzLgogICAKMTk5OS0xMi0xNSAwNTo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgU2hhcmUga3N0YXQgZmQgaWZmIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMiBpcyBhbHNvIGNvbmZpZ3VyZWQuCiAgIAoxOTk5LTEyLTE1IDA0OjIxICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYzoKCiAgIElzb2xhdGUgYW5kIHJldG91Y2ggZGVwcmVjYXRlZCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgCjE5OTktMTItMTQgMTY6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogZ2V0IG5leHQgaW4gbGluayBsaXN0IGJlZm9yZSBkZWxldGluZyByb290LgogICAKMTk5OS0xMi0xNCAxNjowNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1vdmUgLWxlZmVuY2UgY2hlY2sgdXAgdG8gZnJvbnQgKGxhc3QgaW4gbGluaykuCiAgIAoxOTk5LTEyLTE0IDE1OjE5ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBETE1PRCAtPiBVQ0QtRExNT0QKICAgCjE5OTktMTItMTQgMTQ6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiByZXZlcnNlIGdlbmVyYXRlX0t1IG9wdGltaXphdGlvbnMsIGFzIHRoZXkgZG9uJ3Qgd29yay4KICAgCjE5OTktMTItMTQgMDg6NDEgIGhhcmRha2VyCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAtIHVwZGF0ZXMuCiAgIAoxOTk5LTEyLTE0IDA4OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmg6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgZGVmYXVsdF9zdG9yZS5oLAogICAgIG1pYi5jLCBtaWIuaCk6CiAgICAgLSBhcmd1bWVudCBzaHVmZmxpbmcuLi4KICAgICAgIC1JIGZvciBpbnB1dCBhcmdzIGNyZWF0ZWQsIGFuZCAtT1IgbW92ZWQgdGhlcmUuCiAgICAgICAtSWIgY3JlYXRlZC4KICAgICAgIC1UQiBjcmVhdGVkIGZvciBzbm1wdHJhbnNsYXRlICh3YXMgLUIpLgogICAKMTk5OS0xMi0xMyAxNjowMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEFsbG93IHNwcmludF92YXJpYWJsZSB0byB3b3JrIGV2ZW4gaWYgbm8gTUlCIGZpbGVzIHdlcmUgcmVhZC4KICAgCjE5OTktMTItMTMgMTU6MTIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaW5pc2ggc3ltYm9sIGNvbnZlcnNpb24gd2l0aCBudW1lcmljIHdoZW4gc3VidHJlZSBpcyBsZWFmIG5vZGUuCiAgIAoxOTk5LTEyLTEzIDE0OjU0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IHByb2JsZW0gcHJpbnRpbmcgSU1QTElFRCBpbmRpY2VzIG9mIE9CSkVDVElEIHR5cGUuCiAgIAoxOTk5LTEyLTEzIDE0OjIwICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiAtLXdpdGgtZWZlbmNlIGltcGxlbWVudGVkLgogICAgIC0gKGZvcmNlZCBjaGVja2luZyBmb3IgLS1lbmFibGUtZGV2ZWxvcGVyIGFuZCBDVlMgY2hlY2tvdXRzKQogICAKMTk5OS0xMi0xMyAxMzo1NCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFNhbml0eSBjaGVja3MgYWRkZWQgdG8gX2dldF9zeW1ib2wuCiAgIAoxOTk5LTEyLTEzIDEyOjA0ICBtc2xpZmNhawoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBDbGVhbiBhbHNvIHJlbW92ZXMgZ2VuZXJhdGVkIGRlZmF1bHRfc3RvcmUuMy5oIC4KICAgCjE5OTktMTItMTMgMDk6NTcgIGhhcmRha2VyCgogICAqIG1pYnMvOiBETE1PRC1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLmluYywKICAgVUNELURMTU9ELU1JQi50eHQ6CgogICAtIChETE1PRC1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLmluYywgVUNELURMTU9ELU1JQi50eHQpOgogICAgIC0gSnVlcmdlbnMgcGF0Y2ggdG8gbW92ZSBETE1PRC1NSUIgLT4gVUNELURMTU9ELU1JQiBhbmQgLT4gU01JdjIuCiAgICAgLSBtb3ZlZCB0byB0aGUgZXhwZXJpbWVudGFsIHRyZWUuCiAgIAoxOTk5LTEyLTEzIDA5OjQ5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICBBZGRlZCBwYXRjaCBmcm9tIE0uTWljaGF1ZCB0byB1c2Ugc2VuZF9lbnRlcnByaXNlX3RyYXBfdmFycy4KICAgCjE5OTktMTItMTMgMDQ6NDMgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcGQuYywgbWliZ3JvdXAvc211eC9zbXV4LmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5oOgoKICAgLSAoYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguW2NoXSk6CiAgICAgLSBQYXRjaCB0byBnZXQgU01VWCBzdXBwb3J0IHdvcmtpbmcgd2l0aCB0aGUgbmV3IGFnZW50IGFyY2hpdGVjdHVyZS4KICAgICAgIFRoaXMgaXMgcHJvYmFibHkgbm90IFRoZSBSaWdodCBXYXkgVG8gRG8gVGhpbmdzIE5vdywgYnV0IGl0IHdvcmtzLgogICAgICAgVGhhbmtzIHRvIE5pY2sgQW1hdG8gYW5kIE1pa2UgTWljaGF1ZC4KICAgCjE5OTktMTItMTMgMDM6MTggIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0gKGFnZW50X3RyYXAuYyk6IGFsbG93IHNwZWNpZmljYXRpb24gb2YgZW50ZXJwcmlzZSBPSUQgd2hlbiBzZW5kaW5nIHRyYXBzCiAgIAoxOTk5LTEyLTEzIDAzOjE3ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IEhhbmRsZSBkZWxlZ2F0ZWQgTUlCIHJlZ2lvbnMgcHJvcGVybHkgd2hlbiBzcGxpdC4KICAgCjE5OTktMTItMTAgMTM6MDMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmM6CgogICBGaXggSFAtVVggcHJvYmxlbSB3aXRoIGlwRGVmYXVsdFRUTC4KICAgCjE5OTktMTItMTAgMTA6NDQgIG1hcnoKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgIChzbm1saWIvc25tcF9hcGkuYyk6IGZpeCBidWcgaW4gX3Nlc3NfY29weSB3aGVyZSBwb2ludGVycyB0aGF0IHdlcmUgbm90IG93bmVkIGJ5IG5ld2x5IGNyZWF0ZWQgc2Vzc2lvbiBjb3VsZCBnZXQgbWlzdGFrZW5seSBmcmVlZCBpZiBlcnJvcnMgd2VyZSBlbmNvdW50ZXJlZCBkdXJpbmcgc2Vzc2lvbiBjb3B5IC0gYWxzbyBlbGltaW5hdGUgc29tZSByZWR1bmRhbnQgY29weWluZyBvZiBzZWN1cml0eXtBdXRofFByaXZ9S2V5IGRhdGEKICAgCjE5OTktMTItMTAgMTA6MjMgIG1zbGlmY2FrCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIEFwcGx5IERhdmUncyBwYXRjaCB0byBmaXggbWF4IHZhcmJpbmRzIHRlc3Rpbmcgb24gR0VUQlVMSy4KICAgCjE5OTktMTItMTAgMDc6MjggIG1zbGlmY2FrCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRml4IHRvIGJ1aWxkIGV4ZWN1dGFibGUgYWdlbnQgb24gSFAtVVguCiAgIAoxOTk5LTEyLTEwIDAzOjE5ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmgsCiAgIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRlZiwgd2luMzIvbGliYWdlbnQvbGliYWdlbnQuZHNwCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kZWYsCiAgIHdpbjMyL2xpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AsIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIC0gKHZhcmlvdXMpOiBjaGFuZ2VzIHRvIGNvbXBpbGUgc25tcGQgd2l0aCBWQysrIDUuMCAoUmVsZWFzZSBtb2RlKQogICAKMTk5OS0xMi0xMCAwMzoxMCAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gcmVhZF9jb25maWcuYzogYWRkIHNvbWUgbWlzc2luZyBjb25zdCBzcGVjaWZpZXJzCiAgIAoxOTk5LTEyLTEwIDAzOjA5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICAtIHBhc3NfcGVyc2lzdC5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KICAgCjE5OTktMTItMTAgMDM6MDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIHBhc3MuYzogZml4IHNvbWUgYnVmL2J1ZjIgY29uZnVzaW9uCiAgIAoxOTk5LTEyLTEwIDAzOjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSBtYXN0ZXIuYzogYWRkIGEgbWlzc2luZyAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPiAoYXQgbGVhc3QgZm9yIFNvbGFyaXMpLgogICAKMTk5OS0xMi0wOSAxNzowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC8qTWFrZWZpbGUuaW4pOiBmaXggZm9yIC0tZW5hYmxlLXNoYXJlZCBvbiBocHV4CiAgIAoxOTk5LTEyLTA5IDE2OjUzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBmaXggZm9yIC0tZW5hYmxlLXNoYXJlZAogICAKMTk5OS0xMi0wOSAxNjoxNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZWQgYWxsIGluc3RhbmNlcyBvZiBrYiB0byBrQi4KICAgCjE5OTktMTItMDkgMTU6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIva2V5dG9vbHMuYzoKCiAgIC0gKGtleXRvb2xzLmMpOiBQYXRjaCBmcm9tIExlb25hcmQgR29tZWxza3k6CiAgICAgLSBnZW5lcmF0ZV9LdSgpIHNwZWVkIGltcHJvdmVtZW50cy4KICAgCjE5OTktMTItMDkgMTA6MDggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbgo6CgogICAtIChNYWtlZmlsZS50b3AsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICBhZ2VudC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbik6CiAgICAgLSBmaXhlZCAtLWVuYWJsZS1zaGFyZWQgKGF0IGxlYXN0IG9uIGxpbnV4KS4KICAgCjE5OTktMTItMDkgMDg6MTQgIG1zbGlmY2FrCgogICAqIG1pYnMvOiBESVNNQU4tU0NSSVBULU1JQi50eHQsIFVDRC1ERU1PLU1JQi5pbmMsCiAgIFVDRC1ERU1PLU1JQi50eHQsIFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQKOgoKICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKdWVyZ2VuIFNjaG9lbndhZWxkZXIuCiAgIAoxOTk5LTEyLTA5IDA3OjQ5ICBuYmEKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gc25tcGNtZC4xOiBzdXBwb3J0IE1JQjo6bGFiZWwKICAgCjE5OTktMTItMDkgMDc6MzQgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogaW1wbGVtZW50IE1JQjo6bGFiZWwKICAgCjE5OTktMTItMDkgMDc6MzQgIGRhdmVzCgogICAqIG1hbi9zbm1wX3RyYXBfYXBpLjM6CgogICAtIChtYW4vc25tcF90cmFwX2FwaS4zKTogSW5pdGlhbCBkb2N1bWVudGF0aW9uIGZvciBhZ2VudCB0cmFwIGdlbmVyYXRpb24uCiAgIAoxOTk5LTEyLTA4IDE3OjEzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1hc3Rlci5jLCByZWFkX2NvbmZpZy5jLCBzeXN0ZW0uYywgc3lzdGVtLmgpOgogICAgIC0gaW1wbGVtZW50IG1rZGlyaGllcigpIGFuZCB1c2UgaXQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZSBhbmQgYWdlbnR4CiAgICAgICBzb2NrZXQgZmlsZSBjcmVhdGlvbi4KICAgCjE5OTktMTItMDggMTU6NDkgIGhhcmRha2VyCgogICAqIG1ha2VmaWxlaW5kZXBlbmQucGwsIG1ha2Vub3N5c2RlcGVuZC5wbCwgcmVtb3ZlLWZpbGVzCjoKCiAgIC0gKG1ha2VmaWxlaW5kZXBlbmQucGwsIG1ha2Vub3N5c2RlcGVuZC5wbCwgcmVtb3ZlLWZpbGVzKToKICAgICAtIG1vdmUgdGhlIG1ha2UgZGVwZW5kIHBlcmwgc2NyaXB0cyB0byB0aGUgdG9wIGxldmVsIHdoZXJlIHRoZXkgb25seQogICAgICAgbmVlZCB0byBiZSBlZGl0ZWQgb25jZS4KICAgCjE5OTktMTItMDggMTU6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9kbG1vZHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBBIHJlYWwgbWFrZSBkZXBlbmQgd2l0aCBubyBzc2wgZGVwZW5kYW5jaWVzLCBldGMuCiAgIAoxOTk5LTEyLTA4IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IG1vdmUgc3lzL3BhcmFtIG91dCBvZiBpZmRlZiBGRF9TRVQuCiAgIAoxOTk5LTEyLTA4IDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtICgqLi5NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0xMi0wOCAxNToyNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkIEp1ZXJnZW4uCiAgIAoxOTk5LTEyLTA4IDE1OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgLSByZW1lbWJlcmVkIElNUExJRUQgaW5kZXhlcy4KICAgICAtIHByb3Blcmx5IHByaW50IE9JRHMgd2l0aCBsZW5ndGggcHJlZml4ZXMgb24gcGFyc2VkIE9JRHMgc28KICAgICAgIGN1dHRpbmcvcGFzdGluZyBvZiB0aGVtIHdvcmtzLgogICAgIC0gcHJvcGVybHkgcHJpbnQgc3RyaW5ncyBhbmQgb2lkcyB0aGF0IGFyZSBJTVBMSUVELgogICAgIC0gcHJpbnQgc3RyaW5ncyBpbiBlaXRoZXIgJyBvciAiIHF1b3RlcyBkZXBlbmRpbmcgb24gaWYgdGhlaXIgSU1QTElFRC4KICAgCjE5OTktMTItMDggMTU6MDQgIG1zbGlmY2FrCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIEFkZCBtaXNzaW5nIGRza1BlcmNlbnROb2RlIHRvIERza0VudHJ5ICh0aGFua3MgdG8KICAgICAgICAgICAgTWljaGFlbCBLaXJraGFtIDxzdXBwb3J0QGl3bC5jb20+KS4KICAgCjE5OTktMTItMDggMTU6MDEgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcHdhbGsuYzoKCiAgIEluY2x1ZGUgZ2V0b3B0LmggdG8gZGVmaW5lIG9wdGFyZy4KICAgCjE5OTktMTItMDggMTQ6NDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGZpeCAtT3MgYW5kIGluZGV4IGJhc2VkIG9pZCBwcmludGluZyB0byB3b3JrIGFnYWluLgogICAKMTk5OS0xMi0wOCAxNDowOCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1ha2UgbXJJbmRleCBJTVBMSUVEIHNpbmNlIGl0IGlzIGluIHRoZSBjb2RlLgogICAKMTk5OS0xMi0wOCAwOToxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogcmVnaXN0ZXIgYSBjb25maWcgdG9rZW4gZm9yIHN1ZmZpeCBwcmludGluZy4KICAgCjE5OTktMTItMDcgMTU6MjMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEVsaW1pbmF0ZSBtdWx0aXBseWluZyBieSBzaXplb2YoY2hhcikgb3Igc2l6ZW9mKHVuc2lnbmVkIGNoYXIpOwogICBhZ2VudHgvY2xpZW50LmMgLSBzbm1wX2ZyZWVfdmFyYmluZCByZXBsYWNlcyBmcmVlIGluIGZvdXIgcGxhY2VzOwogICBzbm1wdjMvdXNtVXNlci5jIC0gdXNtX2ZyZWVfdXNlciByZXBsYWNlcyBmcmVlIGluIG9uZSBwbGFjZS4KICAgCjE5OTktMTItMDcgMTM6NTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wd2Fsay4xOgoKICAgLSAoc25tcHdhbGsuMSk6IGRvY3VtZW50IC1DaSBhbmQgLUNwIChiYWRseSkuCiAgIAoxOTk5LTEyLTA3IDEzOjQ1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKToKICAgICAtIE5ldyBhYmlsaXR5IHRvIHBlZm9ybSBhIGdldCBvbiB0aGUgcmVxdWVzdGVkIE9JRCB3aGVuIGVpdGhlciBubwogICAgICAgcmVzdWx0cyBhcmUgcmV0dXJuZWQgb3Igd2hlbiB0aGUgdXNlciByZXF1ZXN0cyBhbiBpbmNsdXNpdmUgb3B0aW9uLgogICAgIC0gTmV3IGFiaWxpdHkgdG8gcHJpbnQgbnVtYmVyIG9mIHZhcmlhYmxlcyBmb3VuZCBhdCB0aGUgZW5kLgogICAKMTk5OS0xMi0wNyAwOTozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgIC0gY29udmVydCB0byBTTUl2MiBhbmQgY2xlYW51cC4KICAgCjE5OTktMTItMDcgMDk6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKHN5c09SVGFibGUuYyk6IG1ha2Ugc3lzT3JJbmRleCBub3QtYWNjZXNzaWJsZSwgYXMgaXQgc2hvdWxkIGJlLgogICAKMTk5OS0xMi0wNyAwOToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jOgoKICAgLSAoaHJfb3RoZXIuYyk6IHNob3J0ZW4gY3B1IGRlc2NyaXB0aW9uIGxlbmd0aC4KICAgCjE5OTktMTItMDcgMDg6MjkgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvcmVhZF9jb25maWcuaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuW2NoXSBhZ2VudC9zbm1wX3ZhcnMuW2NoXSBhZ2VudC9zbm1wZC5bY2hdCiAgICAgIHNubXBsaWIvcmVhZF9jb25maWcuW2NoXSBzbm1wbGliL3NubXBfYXBpLmMpOgogICAgICAtICBVc2UgdGhlIHNhdmVkIGFwcGxpY2F0aW9uIG5hbWUgZm9yIHJlZ2lzdGVyaW5nIGNvbmZpZyBoYW5kbGVycwogICAJKE4uQjogVGhpcyBjaGFuZ2Ugd2lsbCBuZWVkIHRvIGJlIGFwcGxpZWQgdG8gTUlCIG1vZHVsZXMgYXMgd2VsbCkKICAgCjE5OTktMTItMDcgMDg6MDMgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHVzbS5jOgoKICAgVXNlIGFyZ3ZbMF0gc2luY2UgdGhlIGFwcCB3b250IGJlIHNubXBnZXRuZXh0LCBwcm9iYWJseS4KICAgCjE5OTktMTItMDYgMTY6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHVzbS5jLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIE1vcmUgZnVuIHVwZGF0aW5nIE1TIFZDIGJ1aWxkIG9mIGFwcHMgYW5kIGxpYnJhcnkuCiAgIAoxOTk5LTEyLTA2IDE1OjExICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmgsIHdpbjMyL3dpbjMyLmRzdwosIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmCiwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLAogICB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcAosIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCwKICAgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcAosIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AKLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLCB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3AKOgoKICAgLSBzeXN0ZW0uYywgY29uZmlnLmgsIHdpbjMyLmRzdywgKi5kc3AsIGxpYnNubXAuZGVmOiBjbGVhbmluZyB1cCBmb3IgVkMgYnVpbGRzCiAgIAoxOTk5LTEyLTA2IDE1OjA5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcHVzbS5jLCBzbm1wdXNtLmg6CgogICBDb252ZXJ0IFVTTV9FUlIqIHRvIFNOTVBFUlJfVVNNKi4KICAgCjE5OTktMTItMDYgMTQ6NTggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogZml4IHVzYWdlIGZvciBuZXcgYXJncy4KICAgCjE5OTktMTItMDYgMTQ6NTYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICAtIChTdjNjb25maWcsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24pOiBtYWtlIHYzIHRlc3Rpbmcgd29yayBhZ2Fpbi4KICAgCjE5OTktMTItMDYgMTQ6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKToKICAgICAtIG1ha2Ugc25tcHVzbSB1c2FibGUgYWdhaW4sIGNoYW5naW5nIGFyZ3VtZW50cyBzbGlnaHRseS4KICAgICAtIG1ha2UgaXQgYWxzbyB1c2UgZGVmYXVsdHMgZm9yIHBhc3NwaHJhc2VzLCB1c2VyLCBldGMuCiAgIAoxOTk5LTEyLTA2IDE0OjMyICBuYmEKCiAgICogd2luMzIvOiBiaW4vLmN2c2lnbm9yZSwgbGliLy5jdnNpZ25vcmU6CgogICAtIC5jdnNpZ25vcmU6IE1ha2UgQ1ZTIHNpbGVudCBhYm91dCBpbnN0YWxsYXRpb24gZmlsZXMKICAgCjE5OTktMTItMDYgMTM6NTEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHByaW50IGVycm9yIHN0cmluZ3MgcmV0dXJuZWQgYnkgZ2VuZXJhdGVfS3UoKS4KICAgCjE5OTktMTItMDYgMTM6NDcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGRlZmF1bHQgc3BlY2lmaWNhdGlvbnMgZm9yIGF1dGgvcHJpdiB0eXBlcy4KICAgCjE5OTktMTItMDYgMDk6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICBTaG93IGFsbCBub24tcHJpbnRhYmxlIHN1YmlkcyBpbiBkdW1wX29pZF90b19zdHJpbmcuCiAgIFJlY3Vyc2UgY2xlYXJfdHJlZV9mbGFncyBvbmx5IGlmIG5lY2Vzc2FyeS4KICAgCjE5OTktMTItMDUgMjE6NDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICAtIHBhc3MuYywgcGFzc19wZXJzaXN0LmM6IGVuc3VyZSBwcm9wZXIgYnl0ZSBvcmRlcmluZyB3aGVuIHBhc3MnaW5nCiAgIAlpcGFkZHJlc3MuCiAgIAoxOTk5LTEyLTAzIDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIC0gKHZtc3RhdC5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBsaW1pdHMuaCBpbmNsdWRlLgogICAKMTk5OS0xMi0wMyAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHVzZSAkKE1BS0UpIGluc3RlYWQgb2YgbWFrZS4KICAgCjE5OTktMTItMDMgMTY6NTEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzd2l0Y2ggdG8gUElDIGZyb20gcGljLgogICAKMTk5OS0xMi0wMyAxNTowNSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gcGFyc2UuYzogcmVtZW1iZXIgdG8gTlVMTCBhIGZyZWVkIHBvaW50ZXIKICAgCjE5OTktMTItMDMgMTU6MDQgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSBzbm1wdHJhcGRfaGFuZGxlcnMuYzogYSBsaXR0bGUgbmljZXIgZXJyb3IgbWVzc2FnZQogICAKMTk5OS0xMi0wMyAxNTowMyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBjb3JyZWN0IGhhbmRsaW5nIG9mIFNJR0hVUCB0cCByZWNvbmZpZ3VyZS4KICAgCjE5OTktMTItMDIgMTY6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiB0dXJuIG9uIFJFR0VYX0VYVEVOREVELgogICAKMTk5OS0xMi0wMiAwOToyMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBGaXggYnVnICM4MSAtIGNvbnRpbnVlIGluc3RhbGwgYWZ0ZXIgZXJyb3IgY3JlYXRpbmcgcGVyc2lzdGVudCBkaXJlY3RvcnkuCiAgIAoxOTk5LTEyLTAyIDA1OjA2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zbm1wdjMuaDoKCiAgIC0gdXNtVXNlci5jIHNubXB2My5bY2hdOiBtb3ZlIHVzbV9wYXJzZV9jcmVhdGVfdXNtVXNlciBmcm9tIHRoZSBhZ2VudAogICAgCXRvIHRoZSBsaWJyYXJ5LCBzbyB0aGF0IHNubXB0cmFwZCBjYW4gdXNlIGl0LgogICAKMTk5OS0xMi0wMiAwNDo0MiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIHNubXB0cmFwZC5jOiBmaXggc25tcF9jbG9uZV9wZHUyIGJ5IHVzaW5nIHRoZSBzbm1wbGliIHZlcnNpb24KICAgCjE5OTktMTItMDIgMDQ6NDEgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYzogYWNjZXNzaW5nIGFuZCBmcmVlZWluZyBlbnZfdmFyIG1pc3BsYWNlcyBhcm91bmQgTlVMTCB0ZXN0CiAgIAoxOTk5LTEyLTAxIDE2OjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBVc2UgU05NUF9NQVhCVUYgd2hlbiBkZWZpbmluZyBsYXJnZSBzdGF0aWMgYnVmZmVyIHN0b3JhZ2UuCiAgIAoxOTk5LTEyLTAxIDE1OjU1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmM6CgogICBGaXggYnVnICMxMTIgYW5kIGZpbmlzaCBwYXRjaCBzdXBwbGllZCBieSBBbnRob255IFNoaXBtYW4uCiAgIAoxOTk5LTEyLTAxIDEwOjM4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICBQcmV2ZW50IG92ZXJmbG93IG9mIG9iamVjdCBJRCBpbiBnZXRfbW9kdWxlX25vZGUuCiAgIEluIGZpbmRfYmVzdF90cmVlX25vZGUsIHRyZWF0IHJlc3VsdCBmcm9tIHJlY3Vyc2VkIGNhbGwgc2FtZSBmb3IgbWF0Y2ggPSAwLgogICAKMTk5OS0xMi0wMSAwNjo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRXJyb3IgY2hlY2sgYW5kIGZyZWUgcmVzb3VyY2VzIGR1cmluZyByZWdleCBwcm9jZXNzaW5nLgogICAKMTk5OS0xMS0zMCAxNjo1MCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3BhcnNlLmM6CgogICBBZGQgbXVsdGlwbGUgbWF0Y2ggY2FwYWJpbGl0eSB0byBmaW5kX2Jlc3RfdHJlZV9ub2RlLCBhbmQgdXNlIGl0IGluCiAgIHNubXB0cmFuc2xhdGUgKG5ldyAtQiBvcHRpb24pLgogICAKMTk5OS0xMS0zMCAxNDo0NyAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBVc2UgV2VzJyBjb29sIG5ldyBnZXRfd2lsZF9ub2RlIG1hdGNoIG1ldGhvZC4KICAgCjE5OTktMTEtMzAgMTQ6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMpOiBpbXBsZW1lbnQgcmVnZXggbWF0Y2hpbmcKICAgICBldmVyeXdoZXJlLgogICAKMTk5OS0xMS0zMCAxMzoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEluY2x1ZGUgY3R5cGUuaAogICAKMTk5OS0xMS0zMCAxMzoxMCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBGaXggLVRkIHVzYWdlIGRlc2NyaXB0aW9uOyB1c2Ugc3dpdGNoIHdoZW4gY3VycmVudF9uYW1lIGlzIE5VTEwuCiAgIAoxOTk5LTExLTMwIDA3OjA4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IGhhbmRsaW5nIG9mIG11bHRpLXZhcmlhYmxlIHJlcXVlc3RzIHRvIHN1YmFnZW50cy4KICAgCjE5OTktMTEtMzAgMDc6MDcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIC0gKGFnZW50eC9tYXN0ZXIuYyk6IFJlbW92ZSByZWR1bmRlbnQgcm91dGluZS4KICAgCjE5OTktMTEtMzAgMDM6MDEgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmgsIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oOgoKICAgLSBzbm1wX2FwaS5oLCBzbm1wX21pYi5bY2hdOiBBIGNvdXBsZSBhZGRpdGlvbmFsIFNOTVAgc3RhdGlzdGljcyBwb2ludHMKICAgCjE5OTktMTEtMjkgMTQ6MDQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGFub3RoZXIgbmFtZS4KICAgCjE5OTktMTEtMjkgMTQ6MDMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjaGVjayBmb3IgcmVnZXguaCwgcmVnY29tcCwgc3RyY2FzZXN0ci4KICAgCjE5OTktMTEtMjkgMTQ6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBtYWtlIGJlc3QgbWF0Y2hpbmcgKC1iKSB1c2UgcmVnZXggd2hlbiBhdmFpbGFibGUuCiAgIAoxOTk5LTExLTI5IDE0OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc3lzdGVtLmMsIHN5c3RlbS5oOgoKICAgLSAoc3lzdGVtLmMsIHN5c3RlbS5oKTogaW1wbGVtZW50IHN0cmNhc2VzdHIgKGZyb20gTWljaGFlbCBTbGlmY2FrKS4KICAgCjE5OTktMTEtMjkgMTI6NDMgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcGJ1bGtnZXQuYzoKCiAgIFVzZSBzaXplX3QgZm9yIG5hbWVfbGVuIG1lbWJlci4KICAgCjE5OTktMTEtMjkgMTE6NTggIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEZyZWUgU1RSRUFNIHBhY2tldCBidWZmZXIgd2hlbiBzZXNzaW9uIGlzIGNsb3NlZDsKICAgVGVzdCBmb3IgY2xvc2UgaW4gcHJvZ3Jlc3MgZm9yIHJlYWQsIHdyaXRlLCBzZWxlY3QsIGFuZCB0aW1lb3V0IGZ1bmN0aW9ucy4KICAgCjE5OTktMTEtMjkgMTA6MzYgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wdHJhcC5jLCBzbm1wd2Fsay5jLCBzbm1wbmV0c3RhdC9tYWluLmMKOgoKICAgUmVtb3ZlIGxhc3QgdmVzdGlnZXMgb2YgREVCVUdfTUFMTE9DX0lOQyBmcmFnbWVudHMuCiAgIAoxOTk5LTExLTI5IDEwOjMzICBtc2xpZmNhawoKICAgKiB3aW4zMi9zbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3A6CgogICBGaXggcmVmZXJlbmNlIHRvIHNubXBsaWIuCiAgIAoxOTk5LTExLTI5IDEwOjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgbnRvaHMgbWFjcm8gdG8gY2FyZWZ1bGx5IG9idGFpbiB0aGUgZGVmYXVsdCBzZXJ2aWNlIHBvcnQuCiAgIAoxOTk5LTExLTI5IDA1OjUwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBidWxrZ2V0LmMsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTW9yZSBIUC1VWCBhQ0MgZml4ZXMgc3VwcGxpZWQgYnkgTWFya2t1IExhdWtrYW5lbi4KICAgCjE5OTktMTEtMjcgMDk6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiByZWRvIHJ3dXNlci9yb3VzZXIgdG8gYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiBhdXRoIHR5cGUuCiAgIAoxOTk5LTExLTI3IDA2OjMxICBtYXJ6CgogICAqIGFnZW50L2tlcm5lbC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAgKGFnZW50L2tlcm5lbC5jLCB0ZXN0aW5nL2V2YWxfdG9vbHMuc2gpOiBmaXggLXIgc3dpdGNoIHRvIHN1cHJlc3MgZXJyb3IgbWVzc2FnZXMgYWJvdXQgZmFpbGVkIGtlcm5lbCBhbmQgYWRkIC1yIHRvIGRlZmF1bHQgdGVzdGluZyBjb2RlIHNvICdtYWtlIHRlc3QgY2FuIGJlIHJ1biBieSB1c2VyCiAgIAoxOTk5LTExLTI2IDExOjE4ICBuYmEKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICAtIGRlZmF1bHRfc3RvcmUuYzogYWx0aG91Z2ggcmVhZF9jb25maWcgaXMgY2FzZSBpbnNlbnNpdGl2ZSwgZHNfaGFuZGxlX2NvbmZpZwogICAJd2FzIG5vdC4gQXQgdGhlIHNhbWUgdGltZSBpdCBmYWlsZWQgdG8gcmVwb3J0IHRoZSBwcm9ibGVtIHRoYXQKICAgCWl0IHdhcyBjYWxsZWQgYnV0IGRpZG4ndCBrbm93IHdoYXQgdG8gZG8uCiAgIAoxOTk5LTExLTI1IDE0OjU3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gbWliLmM6IGtpbGwgeWV0IGFub3RoZXIgc2lsbHkgd2FybmluZyBmcm9tIGdjYwogICAKMTk5OS0xMS0yNSAxNDo1NiAgbmJhCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gZGVmYXVsdHNfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcF9wYXJzZV9hcmdzLmM6IGFkZCBkZWZDb21tdW5pdHkKICAgCWRpcmVjdGl2ZQogICAtIHNubXBfYXBpLmgsIHNubXBfYXBpLmM6IGFkZCBlcnJvcmNvZGUgZm9yIG1hbGxvYyBmYWlsdXJlCiAgIAoxOTk5LTExLTI1IDE0OjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIC0gdXNtVXNlci5jOiBuZXcgdXNlciBpcyBub3QgYWRkZWQgdW5sZXNzIGJvdGggYXV0aCBhbmQgcHJpdiBpcyBzcGVjaWZpZWQKICAgCW9uIGNyZWF0ZVVzZXIgZGlyZWN0aXZlCiAgIAoxOTk5LTExLTI1IDE0OjMzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuaDoKCiAgIC0gc25tcF9taWIuaDogZml4IG1pc2FsaWdubWVudCBvZiBzdGF0aXN0aWNzIGNvdW50ZXJzCiAgIAoxOTk5LTExLTI1IDE0OjMyICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oLCBhZ2VudC9hZ2VudF90cmFwLmMsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgIC0gc25tcF9hcGkuYywgYWdlbnRfdHJhcC5jLCBzbm1wX2FnZW50LmMsIHNubXBfbWliLmgsIHNubXBfbWliLmM6CiAgIAlmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKICAgCjE5OTktMTEtMjQgMTE6MDcgIG1zbGlmY2FrCgogICAqIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgRml4IEJVRyM1NyB1c2luZyAyLzMgb2YgcGF0Y2ggc3VwcGxpZWQgYnkgemFueUB0cmlxLm5ldC4KICAgCjE5OTktMTEtMjQgMTA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CiAgICAgLSBhbGxvdyBzZXBlcmF0aW9uIG9mIG1hc2sgd2l0aCBib3RoIC4gYW5kOi4KICAgCjE5OTktMTEtMjQgMDk6MTYgIGhhcmRha2VyCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogY2hhbmdlIGVkaXRpbmcgb2YgY29uZmlnLmggbm90ZS4KICAgCjE5OTktMTEtMjQgMDk6MDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2tleXRvb2xzLmgsCiAgIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3Rvb2xzLmMKLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9zY2FwaXRlc3QuYywKICAgd2luMzIvY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHVzbVVzZXIuYywKICAgICBrZXl0b29scy5jLCBrZXl0b29scy5oLCBsY2RfdGltZS5jLCBzY2FwaS5oLCB0b29scy5jLAogICAgIGtleW1hbmFnZXRlc3QuYywgc2NhcGl0ZXN0LmMsIGNvbmZpZy5oKToKICAgICAtIGZvcmNlIC0tZW5hYmxlLWRldmVsb3BlciBmb3IgQ1ZTIGNoZWNrb3V0cy4KICAgICAtIHJlbW92ZSBhbGwgcmVmZXJlbmNlcyB0byBLTVQuCiAgIAoxOTk5LTExLTI0IDA5OjAzICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBSZWxlYXNlIGFsbG9jYXRlZCBpbmRleGVzIG9uIHN1YmFnZW50IHNodXRkb3duLgogICAKMTk5OS0xMS0yMyAwNTo0MCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6CiAgICAgLSBNYWtlIGluZGV4IHJlZ2lzdHJhdGlvbiBBUEkgbW9yZSBpbW1lZGlhdGVseSBjb252ZW5pZW50CiAgICAgLSBBc3NvY2lhdGUgc3VjaCByZWdpc3RyYXRpb25zIHdpdGggdGhlIG1haW4gc2Vzc2lvbgogICAgIC0gbmV3IHJvdXRpbmUgdG8gdW5yZWdpc3RlciBhbGwgaW5kZXhlcyBmb3IgYSBnaXZlbiBzZXNzaW9uCiAgICAgLSBkaWZmZXJlbnRpYXRlIGJldHdlZW4gQU5ZIGluZGV4IGFuZCBORVcgaW5kZXgKICAgICAtIGNsZWFuIHVwIGFzc29ydGVkIGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoxOTk5LTExLTIzIDA1OjIxICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMgYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICBNYWtlIG1haW4gc2Vzc2lvbiBzdHJ1Y3R1cmUgdmlzaWJsZSB0aHJvdWdob3V0IHRoZSBhZ2VudCwKICAgICAgYW5kIHVzZSB0aGlzIGZvciBBZ2VudFggc3ViYWdlbnQgYXMgd2VsbC4KICAgCjE5OTktMTEtMjMgMDI6MjAgIG5iYQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIHNubXBfYWdlbnQuYzogI2luY2x1ZGUgPHVuaXN0ZC5oPiBmb3Igc2VsZWN0IHByb3RvdHlwZQogICAKMTk5OS0xMS0yMyAwMjoxMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYzoKCiAgIC0gKGhvc3QvaHJfc3RvcmFnZS5jIGhvc3QvaHJfc3dydW4uYyk6IEd1YXJkIGFnYWluc3QgY2FsY3VsYXRpb24gb3ZlcmZsb3cKICAgCjE5OTktMTEtMjMgMDE6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIC0gKGhvc3QvaHJfc3dydW4uYyk6IEZpeCBsaW51eCBwcm9jZXNzIG1lbW9yeSB1c2FnZSBmaWd1cmVzLgogICAJKFJlcG9ydGVkIGJ5IE1pdGNoIFNoaWVsZHMpCiAgIAoxOTk5LTExLTIzIDAxOjI2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICAtIHBhc3NfcGVyc2lzdC5jOiBmaXggc29tZSBhcmd1bWVudHMgKGludCA9PiBzaXplX3QpLiBUaGFua3MgdG8KICAgCUFudGhvbnkgU2hpcG1hbiA8YXNoaXBtYW5AZXJnZ3JvdXAuY29tPgogICAKMTk5OS0xMS0yMyAwMToyNCAgbmJhCgogICAqIG1pYnMvSVBTRUMtTUlCLnR4dDoKCiAgIC0gSVBTRUMtTUlCLnR4dDogY2hhbmdlIHNvbWUgdW5kZXJsaW5lcyBpbnRvIGRhc2hlcywgYW5kIHJlcGFpciB0aGUKICAgCTo6PSAobWF5YmUgSSBzaG91bGQgaGF2ZSBsb29rZWQgYXQgdGhpcyBmaWxlIGJlZm9yZSBhZGRpbmcgaXQ6LSkpCiAgIAoxOTk5LTExLTIzIDAxOjIzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5oOgoKICAgLSBpcHY2Lmg6IHJlbW92ZSBhbiBfX1AgdGhhdCBoYWQgc25lYWtlZCBpbgogICAKMTk5OS0xMS0yMiAxNzo1MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIC0gKFJFQURNRS5zbm1wdjMpOiB1cGRhdGUgdG8gcmVmbGVjdCBuZXcgYW5kIGVhc2llciAuY29uZiBtZWNoYW5pc21zLgogICAKMTk5OS0xMS0yMiAxNzowMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgLSAoc2NhcGkuYyk6IGZpeCBsZW5ndGggY2hlY2sgb2Yga2V5IHNwYWNlLgogICAKMTk5OS0xMS0yMiAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS92YWNtX3ZhcnMuYywgc25tcHYzL3VzbVVzZXIuYwo6CgogICAtICh2YWNtX3ZhcnMuYywgdXNtVXNlci5jKTogbmV3IGNvbmZpZyB0b2tlbnMgYWxsb3dpbmcgZWFzeSB1c2VyIGFuZAogICAgIHZhY20vdXNlciBjb25maWd1cmF0aW9uIGFuZCBzZXR1cC4KICAgCjE5OTktMTEtMjIgMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmUgY3JlYXRpb24gb2YgaW5pdGlhbCBhbmQgdGVtcGxhdGUqIHVzZXJzLgogICAKMTk5OS0xMS0yMiAxMzowNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdGNwLmMpOiBQYXRjaAogICAgIGZyb20gR2FycmV0dCBXb2xsbWFuOgogICAgIC0gRnJlZUJTRCA0LnggZml4ZXMuCiAgIAoxOTk5LTExLTIyIDEyOjUzICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaAosIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgsIGFnZW50L2FnZW50X3RyYXAuYywKICAgYWdlbnQvYWdlbnRfdHJhcC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmgsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvcmVhZF9jb25maWcuaCwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zbm1wdjMuaAo6CgogICAtICo6IGNoYW5nZSB0aGUgZmlyc3QgYXJndW1lbnQgb2YgdGhlIGNvbmZpZyBwYXJzZXIgZnVuY3Rpb25zIHRvIGEKICAgCWNvbnN0IHN0cmluZwogICAKMTk5OS0xMS0yMiAxMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS92YWNtX3ZhcnMuYywgdWNkLXNubXAvcGFzcy5jCjoKCiAgIC0gKHZhY21fdmFycy5jLCBwYXNzLmMpOiBmaXggb2lkIC0+IGNoYXIgY29udmVyc2lvbnMuCiAgIAoxOTk5LTExLTIyIDEyOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jLCB2bXN0YXRfZnJlZWJzZDIuYwo6CgogICAtICh2bXN0YXQuYywgdm1zdGF0X2ZyZWVic2QyLmMpOiB1c2UgaGVhZGVyX2dlbmVyaWMgbm90IGhlYWRlcl9zaW1wbGVfdGFibGUKICAgCjE5OTktMTEtMjIgMDk6MjQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwKOgoKICAgLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIHRlc3RzIGZvciBuZXcKICAgICBlcnJvciBtZXNzYWdlcy4KICAgCjE5OTktMTEtMjIgMDk6MTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaG9zdF9yZXMuaCwgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGJzZGk0LmgpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CiAgICAgLSBic2RpIHN1cHBvcnQgZm9yIHRoZSBob3N0IHJlc291cmNlcyBtaWIuCiAgIAoxOTk5LTExLTIyIDA5OjA3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhZGRlZCBtb3JlIHBlb3BsZSB0byB0aGUgdGhhbmtzIGxpc3QuCiAgIAoxOTk5LTExLTIyIDA5OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgLSAodXNtVXNlci5jKTogZml4IG9pZCAtPiBjaGFyIGNvbnZlcnNpb25zIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwgU2xpZmNhay4KICAgCjE5OTktMTEtMjIgMDg6MjkgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgogICAgIC0gQWRkZWQgYWJpbGl0eSB0byB1c2UgTUlCIHRvIHF1ZXJ5IHRhYmxlcyB3aXRoIG5vbi1zZXF1ZW50aWFsIGNvbHVtbiBPSURzLgogICAgIC0gQWRkZWQgY29kZSB0byBoYW5kbGUgc3BhcnNlIHRhYmxlcy4KICAgCjE5OTktMTEtMjIgMDg6MjEgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYmFnZW50Ly5jdnNpZ25vcmU6CgogICBBZGQgQ1ZTIGlnbm9yZSBsaXN0IGZvciB3aW4zMi9saWJhZ2VudC4KICAgCjE5OTktMTEtMjIgMDg6MjAgIG1zbGlmY2FrCgogICAqIHdpbjMyL2xpYmFnZW50L2xpYmFnZW50LmRzcDoKCiAgIFJldHJ5IGFkZCBNU1ZDKysgcHJvamVjdCBmaWxlLgogICAKMTk5OS0xMS0yMiAwNzozMCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMsIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICBJbmRleCBkZS1hbGxvY2F0aW9uLCBhbmQgQWdlbnRYIGluZGV4IHN1cHBvcnQuCiAgIAoxOTk5LTExLTIyIDA3OjE2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jOgoKICAgLSBpcHY2LmM6IHNvbWUgbW9yZSBBTlNJIHByb3RvdHlwZXMKICAgCjE5OTktMTEtMjIgMDY6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICAtIGlwdjYuYzogdXBncmFkZSB0byB0aGUgY3VycmVudCBLYW1lIHBhdGNoCiAgIAoxOTk5LTExLTIyIDA1OjMyICBuYmEKCiAgICogbWlicy9JUFY2LVRDUC1NSUIudHh0LCBtaWJzL0lQVjYtVURQLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKOgoKICAgLSBJUFY2LVRDUC1NSUIsIElQVjYtVURQLU1JQiwgaXB2Ni5jLCB0Y3AuYzogbW92ZSB0aGUgSVB2NiB0Y3AgYW5kIHVkcAogICAJdGFibGVzIHRvIHRoZWlyIHByb3BlciBwb3NpdGlvbiBpbiB0aGUgdHJlZSwgYWNjb3JkaW5nIHRvIHRoZSBSRkMuCiAgIAoxOTk5LTExLTIyIDA1OjI5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSBwYXNzLmM6IHJlbW92ZSBhIGNvbnN0IGNhc3Rpbmcgd2FybmluZwogICAKMTk5OS0xMS0yMiAwNToyOCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIHNubXBkLmM6IHJlaW5zdGF0ZSBzbm1wZCAtYSBmdW5jdGlvbmFsaXR5CiAgIAoxOTk5LTExLTIyIDA1OjI4ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgICBzbm1wX2xvZ2dpbmcuYzogb25seSB0aW1lc3RhbXAgZWZ0ZXIgYSBuZXdsaW5lCiAgIAoxOTk5LTExLTIyIDA1OjI3ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSBjb25maWd1cmUuaW46IGNvbmZpZ3VyZSB0ZXN0IGZvciBuZXRpbmV0L2lwLmgKICAgCjE5OTktMTEtMTkgMTU6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgICAgZGlzay5jLCBkaXNrLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEFuZHkgSE9PRDoKICAgICAtIG1vbml0b3IgZGlzayBpbm9kZSBwZXJjZW50YWdlcy4KICAgCjE5OTktMTEtMTkgMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBzbm1wbGliL3NubXBfYWxhcm0uaCwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgLSBtYWtlIHNubXBfc2VsZWN0X2luZm8gcG9zc2libHkgaGFuZGxlIGFsYXJtIHRpbWVycy4KICAgICAtIG1ha2Ugc25tcGQgdXNlIHRoZW0gYW5kIGNhbGwgc25tcF9ydW5fYWxhcm1zKCkuCiAgIAoxOTk5LTExLTE5IDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBmaXggbWliMmMuc3RvcmFnZS5jb25mLgogICAKMTk5OS0xMS0xOSAxMTowNiAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmgpOiBQcm92aWRlIG1pc3NpbmcgaW5kZXggYWxsb2NhdGlvbiBkZWZpbmVzLgogICAKMTk5OS0xMS0xOCAxODoyMCAgbXNsaWZjYWsKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2NvbmZpZy5oLCBtaWJfbW9kdWxlX2RvdF9jb25mLmgsCiAgIG1pYl9tb2R1bGVfaW5jbHVkZXMuaCwgbWliX21vZHVsZV9pbml0cy5oLAogICBtaWJfbW9kdWxlX3NodXRkb3duLmgsIGxpYnVjZG1pYnMvLmN2c2lnbm9yZSwKICAgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcCwgc25tcGQvLmN2c2lnbm9yZSwKICAgc25tcGQvc25tcGQuZHNwOgoKICAgTW9yZSBNU1ZDKysgV2luMzIgYWdlbnQgZmlsZXMsIGdyYXRpcyBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTExLTE4IDE4OjE0ICBtc2xpZmNhawoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCB3aW4zMi5kc3c6CgogICBNb3JlIHRvdWNodXAgcGVyIE1TVkMrKyBXaW4zMiBhZ2VudCB3b3JrLgogICAKMTk5OS0xMS0xOCAxNzo1NyAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L2tlcm5lbC5jLAogICBhZ2VudC9taWJfbW9kdWxlcy5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywgYXBwcy9zbm1wYnVsa2dldC5jCjoKCiAgIENoZWNrLWluIGFnZW50IGNoYW5nZXMgdG8gc3VwcG9ydCBXaW4zMiBhZ2VudCBidWlsdCB3aXRoIE1TVkMrKy4KICAgVGhhbmtzIHRvIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMTEtMTcgMjE6NTEgIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIC0gZGVmYXVsdF9zdG9yZS5jOiBkc190b2dnbGVfYm9vbGVhbiBtaXNzZWQgYSBtYXNrCiAgIAoxOTk5LTExLTE3IDEzOjA5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiB1cGRhdGUuICBEZWFscyB3aXRoIFJvd1N0YXR1cyBvYmplY3RzIGJldHRlci4KICAgCjE5OTktMTEtMTcgMTM6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHVwZGF0ZS4KICAgCjE5OTktMTEtMTcgMTM6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IHVwZGF0ZSB0aGUgc28gTEQgZm9yIGxpbnV4IHRvICQoQ0MpLgogICAKMTk5OS0xMS0xNyAxMTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBkLmMKLCBtYW4vc25tcGQuMS5kZWY6CgogICAtIChkc19hZ2VudC5oLCBrZXJuZWwuYywgc25tcGQuYywgc25tcGQuMS5kZWYpOgogICAgIC0gcnVuIHRpbWUgcm9vdGxlc3MgcnVubmluZyBzdXBwb3J0IGZvciBzbm1wZCwgYnkgcmVxZXN0IG9mIEpvZS4gKC1yKQogICAKMTk5OS0xMS0xNyAwNzozNiAgbXNsaWZjYWsKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgQWRkIHNubXBidWxrZ2V0IHRvIGxpc3Qgb2YgYXBwcyB0byBidWlsZC4KICAgCjE5OTktMTEtMTcgMDc6MzUgIG1zbGlmY2FrCgogICAqIHdpbjMyL3NubXBidWxrZ2V0LzogLmN2c2lnbm9yZSwgc25tcGJ1bGtnZXQuZHNwOgoKICAgUHJvamVjdCBmaWxlIGZvciBidWlsZGluZyBzbm1wYnVsa2dldCB1c2luZyBNU1ZDKysgZ3JhdGlzIFJvYmVydCBTdG9yeS4KICAgCjE5OTktMTEtMTcgMDU6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYzoKCiAgIFJlcGxhY2UgdV9pbnQxNl90IHdpdGggbW9yZSB1bml2ZXJzYWxseSBzdXBwb3J0ZWQgdV9zaG9ydC4KICAgCjE5OTktMTEtMTYgMTQ6NTYgIG1zbGlmY2FrCgogICAqIHdpbjMyL3NubXB0cmFwZC9zbm1wdHJhcGQuZHNwOgoKICAgQnVpbGQgd2l0aCBnZXRvcHQuCiAgIAoxOTk5LTExLTE2IDE0OjQwICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgd2luMzIvd2luMzIuZHN3LAogICB3aW4zMi9lbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHdpbjMyL3NubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwCiwgd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLAogICB3aW4zMi9zbm1wc2V0L3NubXBzZXQuZHNwLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwCiwgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LmRzcCwKICAgd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwLCB3aW4zMi9zbm1wdXNtL3NubXB1c20uZHNwLAogICB3aW4zMi9zbm1wd2Fsay9zbm1wd2Fsay5kc3A6CgogICBNU1ZDIHRvdWNodXBzOgogICBBZGRlZCBzbm1wdHJhcGQgcHJvamVjdCAuRFNQIGZpbGU7IEFsbCAuRFNbUFddIGZpbGVzIENSLUxGIGxpbmUgdGVybWluYXRlZDsKICAgRml4IHdhcm5pbmdzIGluIGFzbjEuYyBhbmQgc25tcF9hcGkuYzsgUmVtb3ZlIHVudXNlZCB2YXIgaW4gc25tcHRyYW5zbGF0ZS5jLgogICAKMTk5OS0xMS0xNiAxMDoyNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHRoZSBUOiBmbGFnIGZvciAtVCB0byBnZXRvcHQKICAgCjE5OTktMTEtMTYgMTA6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgLSAocHJvdG9jb2wuYyk6IGFkZCB0aGUgaGVhZGVyIGxlbmd0aCB0byB0aGUgcGFja2V0IGxlbmd0aCBlc3RpbWF0ZS4KICAgCjE5OTktMTEtMTYgMDk6MTMgIGRhdmVzCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoc25tcGxpYi9hc24xLmMpOiBGaXggZW5jb2Rpbmcgb2Ygcm9vdCBPSURzLgogICAKMTk5OS0xMS0xNiAwODo0OCAgbXNsaWZjYWsKCiAgICogY29uZmlnLmd1ZXNzOgoKICAgRW1icmFjZSBhbGwgSFAtOTAwMC82eHgsN3h4LCA4eHggc2VyaWVzIHBsYXRmb3Jtcywgd2l0aG91dCByZWdyZXRzLgogICAKMTk5OS0xMS0xNiAwNjoyMSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYzogcmVkbyB0aGUgc25tcHRyYW5zbGF0ZSBvcHRpb25zCiAgIAl0byBmb2xsb3cgdGhlIGNvbW1vbiBvcHRpb24gc2V0LiBJc3N1ZSB3YXJuaW5ncyB3aGVuIHNvbWVvbmUKICAgCXVzZXMgdGhlIG9sZCBmb3JtLCBhZHZpc2luZyBhYm91dCB0aGUgbmV3LgogICAKMTk5OS0xMS0xNiAwMzozNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICBGaXggc3BlbGxpbmcgbWlzdGVhay4KICAgCjE5OTktMTEtMTUgMjE6NTcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5oOgoKICAgRml4IGJ1ZyM3NTogYnVpbGQgLS13aXRob3V0LW9wYXF1ZS10eXBlcwogICAKMTk5OS0xMS0xNSAxNzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYWdlbnQuYywgbWFzdGVyLmMsIHByb3RvY29sLmMsIHByb3RvY29sLmgsIHN1YmFnZW50LmMsCiAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgLSBtYWtlIFRDUCBzdXBwb3J0IGJldHRlciBmb3IgYWdlbnR4LiAgU3RpbGwgaGFzIGEgcHJvYmxlbSAoSSBicm9rZSBhZ2VudHgpLgogICAKMTk5OS0xMS0xNSAxNjo0MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRG9uJ3QgYWRkIE5VTEwgdmFyYmluZCB3aGVuIEVORE9GTUlCVklFVyBpcyByZWFjaGVkLgogICAKMTk5OS0xMS0xNSAxNTo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgogICAgIC0gaW1wbGVtZW50IHN1cHBvcnQgZm9yIFRDUCBicm9rZW4gU05NUCBwYWNrZXRzIGJ5IHN0b3JpbmcgYnVmZmVycwogICAgICAgYW5kIGRlYWxpbmcgd2l0aCBwaWVjZXMgb2YgaW5jb21pbmcgZGF0YSB0aWxsIHdlIGhhdmUgYSBmdWxsIHBhY2tldC4KICAgCjE5OTktMTEtMTUgMTU6MzggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgogICAKMTk5OS0xMS0xNSAxNTozNSAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYywgc25tcG5ldHN0YXQvbWFpbi5jCjoKCiAgIC0gKHNubXBkZWx0YS5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYyk6CiAgICAgLSBhZGQgZGVmYXVsdF9zdG9yZS5oCiAgIAoxOTk5LTExLTE1IDE1OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmg6CgogICAtIChhc24xLmMsIGFzbjEuaCk6IG5ldyBmdW5jdGlvbjogYXNuX2NoZWNrX3BhY2tldCgpLgogICAKMTk5OS0xMS0xNSAxNToyMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZGVidWdnaW5nIHN0YXRlbWVudHMgaW5zZXJ0ZWQuCiAgIAoxOTk5LTExLTE1IDE1OjIxICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hZ2VudF9hcGkuMzoKCiAgIC0gKHNubXBfYWdlbnRfYXBpLjMpOiBkb24ndCBjYWxsIHN1YmFnZW50X3ByZV9pbml0KCkuCiAgIAoxOTk5LTExLTE1IDE1OjIxICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCB0a21pYjoKCiAgIC0gKG1pYjJjLCB0a21pYik6IHJlbW92ZSAtdy4KICAgCjE5OTktMTEtMTUgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmM6CgogICAtIChoZWFkZXJfY29tcGxleC5jKTogc2V0IHRvICdcMCcgaW5zdGVhZCBvZiBOVUxMIGZvciAtV2FsbC4KICAgCjE5OTktMTEtMTUgMTU6MTkgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogbWVtb3J5IGludCAtPiB1aW50LgogICAKMTk5OS0xMS0xNSAxNToxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKG1pYl9tb2R1bGVzLmMsIHNubXBfdmFycy5jKTogbW92ZSBzdWJhZ2VudF9wcmVfaW5pdCgpIHRvIGluaXRfYWdlbnQoKS4KICAgCjE5OTktMTEtMTUgMTU6MTggIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FOgoKICAgLSAoRkFRLCBSRUFETUUpOiBuZXcgbWlycm9yIGluIEF1c3RyYWxpYS4KICAgCjE5OTktMTEtMTUgMTQ6MDkgIG5iYQoKICAgKiAuY3ZzaWdub3JlLCBhcHBzLy5jdnNpZ25vcmU6CgogICAtIC5jdnNpZ25vcmU6IHVwZGF0ZXMgdG8ga2VlcCBjdnMgc2lsZW50IGFib3V0IGdlbmVyYXRlZCBmaWxlcy4KICAgCjE5OTktMTEtMTUgMTQ6MDUgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIHBhcnNlLmM6IGZpeCBhIHNwZWxsaW5nIGVycm9yIGluIHRoZSBNSUIgcmVwbGFjZW1lbnQgdGFibGUuCiAgIAoxOTk5LTExLTE1IDE0OjAzICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLmluLCBSRkMxMjcxLU1JQi50eHQsIFJNT04tTUlCLnR4dAo6CgogICAtIG1pYnMvOiByZXBsYWNlIFJGQzEyNzEtTUlOLnR4dCB3aXRoIFJNT04tTUlCLnR4dCAoUkZDIDE3NTcgdmVyc2lvbikKICAgCjE5OTktMTEtMTUgMTQ6MDAgIG5iYQoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXBidWxrZ2V0LmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jOiBmdXJ0aGVyIGVycm9yIGNoZWNraW5nLCBjb3VydGVzeSBtc2xpZmNhawogICAgIHNubXBidWxrZ2V0LmM6IG5lZWRzICNpbmNsdWRlIDxnZXRvcHQuaD4gKFRoYW5rcyB0byBSb2JlcnQgU3RvcnkpCiAgIAoxOTk5LTExLTE1IDA4OjI5ICBtc2xpZmNhawoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgRml4IGRlc2NyaXB0aW9uIG9mIHJlYWRfb2JqaWQgcmV0dXJuIHZhbHVlLgogICAKMTk5OS0xMS0xNSAwNzo1NiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCBoYW5kbGluZyBvZiBmYWlsZWQgR0VUL1NFVCByZXF1ZXN0cwogICAKMTk5OS0xMS0xNCAwNjozMiAgbmJhCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgbWFrZXRhcmdldCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuaAosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgKLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWlicy9JUFNFQy1NSUIudHh0LAogICBtaWJzL0lQVjYtSUNNUC1NSUIudHh0LCBtaWJzL0lQVjYtTUlCLnR4dCwKICAgbWlicy9JUFY2LVRDLnR4dCwgbWlicy9JUFY2LVRDUC1NSUIudHh0LAogICBtaWJzL0lQVjYtVURQLU1JQi50eHQsIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIGlwYzY6IEFkZCB0aGUgSVB2NiBjb2RlIGZyb20gdGhlIEthbWUgcHJvamVjdC4gSSBoYXZlIG9ubHkgbWFzc2FnZWQKICAgCWl0IHNvIG11Y2ggYXMgdG8gc3RpbGwgY29tcGlsZSBvbiBub24tSVB2NiBzeXN0ZW1zLCBhbmQgZGV0ZWN0CiAgIAlMaW51eCwgSU5SSUEsIFNvbGFyaXMgSVB2Ni4gTm8gY29kZSBmb3IgdGhlbSB5ZXQuIE9yaWdpbmFsCiAgIAlhdXRob3I6IGl0b2p1bkBpaWpsYWIubmV0CiAgIAoxOTk5LTExLTE0IDA2OjE1ICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44OgoKICAgLSBzbm1wdHJhcGQuODogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKICAgCjE5OTktMTEtMTQgMDY6MTIgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSBzbm1wdHJhcGQuYzogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKICAgCjE5OTktMTEtMTQgMDI6NDIgIG5iYQoKICAgKiBtaWJzL1NOTVB2Mi1DT05GLnR4dDoKCiAgIC0gU05NUHYyLUNPTkYudHh0OiBjb21tZW50IG91dCB0aGUgSU1QT1JUIGNsYXVzZQogICAKMTk5OS0xMS0xNCAwMjowNCAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL21pYi5jOgoKICAgLSBtaWIuYywgc25tcHRyYW5zbGF0ZS5jOiBtb3ZlIHRoZSBNSUI6aWQgaGFuZGxpbmcgaW5zaWRlIHJlYWRfb2JqaWQgZm9yCiAgIAljb25zaXN0ZW5jeS4gQWxzbyBmaXhlcyBhIGJ1ZmZlciBvdmVycnVuIGluIG1pYi5jCiAgIAoxOTk5LTExLTE0IDAyOjAxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtYW4vc25tcGQuY29uZi41LmRlZgo6CgogICAtIHBhc3MuYywgc25tcGQuY29uZi41LmRlZjogYWRkIGFuIFVOU0lHTkVEIHJldHVybiB0eXBlCiAgIAoxOTk5LTExLTE0IDAyOjAwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIHZhY21fdmFycy5jOiBraWxsIGEgd2FybmluZwogICAKMTk5OS0xMS0xNCAwMTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBtaWJzL01ha2VmaWxlLmluLAogICBtaWJzL1NOTVAtQ09NTVVOSVRZLU1JQi50eHQsIG1pYnMvU05NUC1GUkFNRVdPUkstTUlCLnR4dAosIG1pYnMvU05NUC1NUEQtTUlCLnR4dCwgbWlicy9TTk1QLU5PVElGSUNBVElPTi1NSUIudHh0CiwgbWlicy9TTk1QLVBST1hZLU1JQi50eHQsIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dAosIG1pYnMvU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIG1pYnMvU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LCBtaWJzL1NOTVB2Mi1DT05GLnR4dCwKICAgbWlicy9TTk1QdjItU01JLnR4dCwgbWlicy9TTk1QdjItVEMudHh0OgoKICAgLSBtaWJzLyosIHZhY21fdmFycy5oOiB1cGRhdGUgdGhlIG1pYiBmaWxlcyB0byByZmMgMjU3MS0yNTc1LiBBbHNvIGFkZAogICAJU05NUF9DT01NVU5JVFlfTUlCIGZyb20gdGhlIGNvZXggZHJhZnQuCiAgIAoxOTk5LTExLTE0IDAxOjU0ICBuYmEKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaDoKCiAgIC0gc25tcF9wYXJzZV9hcmdzOiBjaGFuZ2VzIHRvIHN1cHBvcnQgbXVsdGktdmFsdWVkIG9wdGlvbnMKICAgCjE5OTktMTEtMTQgMDE6NTMgIG5iYQoKICAgKiBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBidWxrZ2V0LmMsCiAgIG1hbi9zbm1wYnVsa2dldC4xLCBtYW4vTWFrZWZpbGUuaW46CgogICAtIHNubXBidWxrZ2V0OiBuZXcgdG9vbCB0byBpc3N1ZSBhIHNpbmdsZSBHRVRCVUxLIHJlcXVlc3QKICAgCjE5OTktMTEtMTQgMDE6NTEgIG5iYQoKICAgKiBtYW4vc25tcHRhYmxlLjE6CgogICAtIHNubXB0YWJsZTogYWRkIGluIHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBzbm1wdGFibGUgb3B0aW9ucyBiZXR3ZWVuCiAgIAl0aGUgbm9ybWFsIG9wdGlvbnMuCiAgIAoxOTk5LTExLTE0IDAxOjQ4ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gc25tcHRhYmxlLCBzbm1wX3BhcnNlX2FyZ3M6IGFsbG93IHRoZSBhcHBsaWNhdGlvbiBzcGVjaWZpYyBvcHRpb25zIHRvCiAgIAoxOTk5LTExLTEyIDEzOjAxICBtYXJ6CgogICAqIHNubXBsaWIvOiBsY2RfdGltZS5jLCBsY2RfdGltZS5oLCBzbm1wdXNtLmM6CgogICAgKGxjZF90aW1lLltjaF0sIHNubXB1c20uYyk6IGZpeCBlbmdpbmV0aW1lIHVwZGF0ZSBhbGdvcml0aG0gdG8gY29uZm9ybSB0byBzcGVjIHJmYzI1NzQgMy4yLjcuYi4xCiAgIAoxOTk5LTExLTEyIDA4OjQ2ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBQcm92aWRlIGEgdW5pcXVlIElEIGZvciBhbGwgaW5jb21pbmcgUERVcwogICAKMTk5OS0xMS0xMSAyMjo0OSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvbWliLmM6CgogICAtIHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYzogYWxpZ25tZW50IG9mIG9wdGlvbiBjb2RlLgogICAJU29tZSBlbmhhbmNlbWVudHMgdG8gdGhlIHNubXB0cmFuc2xhdGUgLWQgb3V0cHV0LgogICAKMTk5OS0xMS0xMSAyMjoxNCAgbmJhCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIHNubXBjbWQuMTogdXBkYXRlIG1hbiBwYWdlIHRvIGNvcnJlc3BvbmQgdG8gdGhlIG5ldyBnZXRvcHQgc2l0dWF0aW9uCiAgIAlOb3RlOiBldmVuIHRob3VnaCBzb21lIG9wdGlvbnMgaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGlzCiAgIAlwYWdlLCB0aGV5IHN0aWxsIHdvcmshCiAgIAoxOTk5LTExLTExIDAzOjM3ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICAtIChhZ2VudHgvY2xpZW50LmMpOiBTaWxseSB0eXBvIGluIHN0YXJ0IHRpbWUgc3luY2hyb25pc2F0aW9uCiAgIAoxOTk5LTExLTEwIDIyOjEwICBuYmEKCiAgICogd2luMzIvOiAuY3ZzaWdub3JlLCBlbmNvZGVfa2V5Y2hhbmdlLy5jdnNpZ25vcmUsCiAgIGxpYnNubXAvLmN2c2lnbm9yZSwgbGlic25tcC9saWJzbm1wLnBsZywKICAgbGlic25tcF9kbGwvLmN2c2lnbm9yZSwgbGlic25tcF9kbGwvbGlic25tcF9kbGwucGxnLAogICBzbm1wYnVsa3dhbGsvLmN2c2lnbm9yZSwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsCiAgIHNubXBkZWx0YS8uY3ZzaWdub3JlLCBzbm1wZGVsdGEvc25tcGRlbHRhLnBsZywKICAgc25tcGdldC8uY3ZzaWdub3JlLCBzbm1wZ2V0L3NubXBnZXQucGxnLAogICBzbm1wZ2V0bmV4dC8uY3ZzaWdub3JlLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsCiAgIHNubXBuZXRzdGF0Ly5jdnNpZ25vcmUsIHNubXBzZXQvLmN2c2lnbm9yZSwKICAgc25tcHNldC9zbm1wc2V0LnBsZywgc25tcHN0YXR1cy8uY3ZzaWdub3JlLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLCBzbm1wdGFibGUvLmN2c2lnbm9yZSwKICAgc25tcHRlc3QvLmN2c2lnbm9yZSwgc25tcHRlc3Qvc25tcHRlc3QucGxnLAogICBzbm1wdHJhbnNsYXRlLy5jdnNpZ25vcmUsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcKLCBzbm1wdHJhcC8uY3ZzaWdub3JlLCBzbm1wdHJhcC9zbm1wdHJhcC5wbGcsCiAgIHNubXB0cmFwZC8uY3ZzaWdub3JlLCBzbm1wdXNtLy5jdnNpZ25vcmUsCiAgIHNubXB3YWxrLy5jdnNpZ25vcmUsIHNubXB3YWxrL3NubXB3YWxrLnBsZzoKCiAgIC0gd2luMzIvKjogY2xlYW4gdXAgcmVwb3NpdG9yeSBmaWxlcywgYW5kIGFkZCBwcm9wZXIgLmN2c2lnbm9yZSBmaWxlcwogICAKMTk5OS0xMS0xMCAxNToyOSAgbmJhCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdXNtLmMsCiAgIGFwcHMvc25tcHdhbGsuYywgd2luMzIvc25tcGdldC9zbm1wZ2V0LnBsZywKICAgd2luMzIvc25tcHVzbS9zbm1wdXNtLmRzcDoKCiAgIC0gYXBwcy8qOiBjaGFuZ2VzIGZvciBnZXRvcHQgdXNhZ2UsIGFuZCByZXdvcmtpbmcgb2Ygc25tcF9wYXJzZV9hcmdzCiAgIAoxOTk5LTExLTEwIDEyOjIwICBuYmEKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXB0ZXN0L3NubXB0ZXN0LmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIC0gd2luMzIvKi5kc3A6IHlldCBhbm90aGVyIHJvdW5kIG9mIG1ha2luZyB0aGlzIGNyYXAgd29yawogICAKMTk5OS0xMS0xMCAwODo1OSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBBZ2VudFggbm90aWZ5IHN1cHBvcnQKICAgCjE5OTktMTEtMTAgMDg6NTggIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmg6CgogICAtIChhZ2VudC9hZ2VudF90cmFwLltjaF0pOiBtaW5vciByZS1zdHJ1Y3R1cmUgdG8gYWxsb3cgc3ViYWdlbnQgdHJhcCAic2lua3MiCiAgIAoxOTk5LTExLTEwIDA4OjU3ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyk6IE9ubHkgc2V0IHVwIHRyYXAgc2lua3Mgb24gdGhlIG1hc3RlciBhZ2VudAogICAKMTk5OS0xMS0xMCAwODozMSAgbmJhCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCiwgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcHNldC9zbm1wc2V0LmRzcCwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXBkL3NubXB0cmFwZC5kc3A6CgogICAtIHdpbjMyLyo6IFZDKysgcHJvamVjdCB1cGRhdGVzCiAgIAoxOTk5LTExLTEwIDA4OjMwICBuYmEKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAucGxnLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHNubXBnZXQvc25tcGdldC5wbGcsIHNubXB0cmFwL3NubXB0cmFwLmRzcCwKICAgc25tcHRyYXAvc25tcHRyYXAucGxnOgoKICAgLSB3aW4zMi8qOiBmaXhlcyB0byB0aGUgVkMrKyBidWlsZCBwcm9qZWN0cwogICAKMTk5OS0xMS0wOSAyMzozMCAgbmJhCgogICAqIHNubXBsaWIvZ2V0b3B0Lmg6CgogICAtIGdldG9wdC5oOiBhcmd1bWVudHMgdG8gZ2V0b3B0IGRpZCBub3QgbWF0Y2ggdGhvc2UgaW4gZ2V0b3B0LmMKICAgCjE5OTktMTEtMDkgMjI6MjAgIG5iYQoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLiBzbm1wX3BhcnNlX2FyZ3MuYzogYSBnbGl0Y2ggaW4gdGhlIGNvbnZlcnNpb24gdG8gZ2V0b3B0ICh0aGFua3MgdG8KICAgCWRyaWVodWlzQHBsYXliZWluZy5vcmcpCiAgIAoxOTk5LTExLTA5IDE1OjE1ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvZ2V0b3B0LmMsCiAgIHNubXBsaWIvZ2V0b3B0LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICB3aW4zMi93aW4zMi5kc3csIHdpbjMyL3dpbjMyLm9wdCwKICAgd2luMzIvbGlic25tcC9saWJzbm1wLmRzcCwgd2luMzIvbGlic25tcC9saWJzbm1wLnBsZywKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnCiwgd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCwKICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsCiAgIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLmRzcCwgd2luMzIvc25tcHRyYXAvc25tcHRyYXAucGxnCjoKCiAgIC0gdmFyaW91czogYWRhcHQgdG9vbHMgdG8gdXNlIGdldG9wdCAoYW5kIHB1dCBvbmUgaW4gZm9yIFdpbjMyKQogICAKMTk5OS0xMS0wOSAxMzowOSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0aGUgREVNTy1NSUIuCiAgIAoxOTk5LTExLTA5IDEzOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaDoKCiAgIC0gKHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6IHNpbXBsZSBuZXcgLmNvbmYgdG9rZW5zOiByb2NvbW11bml0eSwgcndjb21taXR5LgogICAKMTk5OS0xMS0wOSAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKHVjZF9zbm1wLmgpOiByZXF1aXJlIHRoZSBERU1PLU1JQiAoanVzdCBmb3IgdHV0b3JpYWwgcHVycG9zZXMpLgogICAKMTk5OS0xMS0wOSAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBmaXggLUguCiAgIAoxOTk5LTExLTA5IDEyOjU5ICBuYmEKCiAgICogd2luMzIvc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIHNubXB0cmFwZC5jLHNubXB0cmFwZF9oYW5kbGVycy5jOiBtYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrIDUuMAogICAJKGJ1dCBubyBoYW5kbGVycyAoeWV0KSkKICAgCjE5OTktMTEtMDkgMDE6NTAgIG5iYQoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgcGFyc2UuYywKICAgcGFyc2UuaDoKCiAgIC0gbWliLmMscGFyc2UuYzogbWFrZSBlcnJvciByZXBvcnRpbmcgaW4gcGFyc2VyIHdvcmsgYWNjb3JkaW5nIHRvIHNwZWMgKC1QZSkKICAgCXNob3cgZGVmaW5pbmcgbW9kdWxlcyBpbiBzbm1wdHJhbnNsYXRlIC1kCiAgIAl1c2UgZHNfdG9nZ2xlX2Jvb2xlYW4KICAgCjE5OTktMTEtMDUgMDY6MjIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9jYWxsYmFjay5jLCBzbm1wbGliL2xjZF90aW1lLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3Rvb2xzLmgKOgoKICAgU2F5IGdvb2RieWUgdG8gU05NUF9NQUxMT0MsIG1hbGxvY196ZXJvLCB4Y2FsbG9jLCB4bWFsbG9jLCBhbmQgeHN0cmR1cC4KICAgUmVzcGVjdGl2ZWx5IHJlcGxhY2VkIHdpdGggY2FsbG9jLCBjYWxsb2MsIGNhbGxvYywgbWFsbG9jLCBhbmQgc3RyZHVwLgogICAKMTk5OS0xMS0wNCAxMzo0MyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFNwZWVkIHVwIHNwcmludF92YXJpYWJsZTogaGFsdmUgdGhlIG51bWJlciBvZiBjYWxscyB0byBnZXRfc3ltYm9sLgogICAKMTk5OS0xMS0wNCAxMDoyOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wY21kLjEpOiBtb3ZlIC1xIGZsYWdzIHRvIC1PLgogICAKMTk5OS0xMS0wNCAxMDoxOSAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHdpbjMyL2NvbmZpZy5oOgoKICAgUmVkbyBGcmVlQlNEIDQuMDogZGVmaW5lIGZyZWVic2QzIGluIHMvZnJlZWJzZDQuaDsgcmVkdWNlICJkZWZpbmUiIHRocmFzaGluZy4KICAgCjE5OTktMTEtMDQgMTA6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICAtIChtaWIyYy5jb25mKTogaW5jbHVkZSBoZWFkZXJzIGZvciBjb21waWxhdGlvbiBmb3IgYm90aCBpbnRlcm5hbCBhbmQKICAgICBleHRlcm5hbCB0byB0aGUgdWNkLXNubXAgc291cmNlLgogICAKMTk5OS0xMS0wNCAxMDowMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9taWIuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYi5jKToKICAgICAtIGRlZmluZSBJTl9VQ0RfU05NUF9TT1VSQ0UgaW4gY29uZmlnLmggYnV0IG5vdCBpbiB1Y2Qtc25tcC1jb25maWcuaC4KICAgICAtIG1vdmUgdWNkLXNubXAtY29uZmlnLmggdXAgaW4gdGhlIGJ1aWxkIG9yZGVyIGJlZm9yZSBzdWJkaXJzLgogICAgIC0gTWFrZSBkZWZhdWx0IE1JQkRJUlMgc2VhcmNoIHBhdGggaW5jbHVkZSAkSE9NRS8uc25tcC9taWJzLgogICAgIC0gTWFrZSBNSUJESVJTIHBhcnNpbmcgaGFuZGxlICRIT01FIHZhcmlhYmxlcyBpbiBpdC4KICAgCjE5OTktMTEtMDQgMDU6MTIgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIHNubXBsaWIvdmFjbS5jOgoKICAgRmlyc3QgcGFzcyBzdXBwb3J0IGZvciBGcmVlQlNEIDQuMCBbcHJvYmxlbXMgd2l0aCBwcm9jIHRhYmxlIGxvb2t1cHNdLgogICAKMTk5OS0xMS0wNCAwNDozMyAgbXNsaWZjYWsKCiAgICogQUdFTlQudHh0OgoKICAgQ2hhbmdlIGV4YW1wbGUgYXdheSBmcm9tIFNURENfSEVBREVSUy4KICAgCjE5OTktMTEtMDQgMDQ6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ob3N0L2hyX3V0aWxzLmMsCiAgIG1pYmdyb3VwL21pYklJL2F0LmMsIG1pYmdyb3VwL21pYklJL2ljbXAuYywKICAgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9taWJJSS9pcC5jLAogICBtaWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCBtaWJncm91cC9taWJJSS90Y3AuYywKICAgbWliZ3JvdXAvbWliSUkvdWRwLmMsIG1pYmdyb3VwL21pc2MvZGxtb2QuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLCBtaWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jCiwgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmM6CgogICBNb3JlIFNURENfSEVBREVSUyBjbGVhbnVwOiB1c2UgSEFWRV9TVFJJTkdfSCwgSEFWRV9TVERMSUJfSCBpbnN0ZWFkLgogICAKMTk5OS0xMS0wNCAwMjo0MiAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgUGF0Y2ggdG8gYnVpbGQgQlNEL09TIDQuMC4xOyBmcm9tIEJlcnQgRHJpZWh1aXMgLS0gZHJpZWh1aXNAcGxheWJlaW5nLm9yZwogICAKMTk5OS0xMS0wMyAxMzoyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIEZpeCBidWlsZCBwcm9ibGVtIG9uIExpbnV4IFJlZEhhdCA2LjA6IGtleSBvZmYgR05VX0xJQlJBUlkgdmFsdWUuCiAgIAoxOTk5LTExLTAzIDEzOjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IHV0aWxfZnVuY3MuYywgdWNkLXNubXAvZXh0ZW5zaWJsZS5jCiwgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jCiwgdWNkLXNubXAvcGFzcy5jLCB1Y2Qtc25tcC9wcm9jLmMsCiAgIHVjZC1zbm1wL3Byb2MuaDoKCiAgIEZvbGxvd2luZyBjYWxsIHRvIGZkb3BlbiAobmVhciBnZXRfZXhlY19vdXRwdXQpLCBkbyBub3QgY2xvc2UoZmQpLgogICAKMTk5OS0xMS0wMyAwNjo0OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgTmVhciBsaW5lIDY2MzogY2xvc2UoZmQpIGJlZm9yZSBpbnZva2luZyB3YWl0X29uX2V4ZWMKICAgCjE5OTktMTEtMDMgMDY6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGRlY2xhcmUgZmluZF9iZXN0X3RyZWVfbm9kZSBmb3IgTVNWQyBidWlsZC4KICAgCjE5OTktMTEtMDIgMTU6NDYgIG1zbGlmY2FrCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgc25tcF9hZ2VudF9hcGkuMwogICAKMTk5OS0xMS0wMiAxNTozNiAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5oLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oLAogICBzbm1wbGliL3N5c3RlbS5oLCB3aW4zMi9jb25maWcuaDoKCiAgIFVzZSBIQVZFX1NUREFSR19IIHdoZW4gZGVjaWRpbmcgdG8gdXNlIHZhcmFyZ3MgdnMgQU5TSS1DIHByb3RvdHlwZXMuCiAgIAoxOTk5LTExLTAyIDA5OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG90aGVyIGhlYWRlciBmaWxlcyBuZWVkZWQgYnkgU05NUC5wbS4KICAgCjE5OTktMTEtMDEgMTM6MTcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYWxhcm0uYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBzbm1wX2FsYXJtLmMpOgogICAgIC0gZG9uJ3QgYnJlYWsgb2lkcyBpbnRvIHBpZWNlcyBpZiBxdWlja19wcmludCBpcyB0dXJuZWQgb24uCiAgICAgLSBkaXR0byBpZiB0aGUgbmV3IGRlZmF1bHRfc3RvcmUgb3B0aW9uIGlzIHR1cm5lZCBvbi4KICAgICAtIG1hZGUgYSBkZWZhdWx0X3N0b3JlIG9wdGlvbiB0byBub3QgdXNlIHNpZ2Fscm0gZm9yIHNubXBfYWxhcm1zLgogICAKMTk5OS0xMC0yOSAxOTo1NCAgbWFyegoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgIChhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXB2My5jKTogbWFrZSBlbmdpbmVJRCBzZXR1cCBjb25kaXRpb25hbCBvbiBhcHAgdHlwZSB0byBwcmV2ZW50IGFwcHMgZnJvbSBlYXNpbHkgZW5kaW5nIHVwIHdpdGggdGhlIHNhbWUgZW5naW5lSUQgYXMgYWdlbnQgb24gc2FtZSBob3N0CiAgIAoxOTk5LTEwLTI5IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogbWFrZSBpdCBkbyBzbm1wdjMuICBBZGRlZCBtYW55IHRoaW5ncyB0byB0aGUgb3B0aW9ucyBtZW51LgogICAKMTk5OS0xMC0yOSAxMDoxNSAgaGFyZGFrZXIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogaWdub3JlIGRlZmF1bHRfc3RvcmUuM3ssLmh9CiAgIAoxOTk5LTEwLTI5IDEwOjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMsIGRlZmF1bHRfc3RvcmUuMy5oOgoKICAgLShkZWZhdWx0X3N0b3JlLjN7LC5ofSk6IHJlbW92ZWQgZnJvbSBDVlMgc2luY2UgdGhleSBhcmUgYnVpbHQKICAgCjE5OTktMTAtMjkgMTA6MTMgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkb2N1bWVudCAtVCBhbmQgLXFbb2VdCiAgIAoxOTk5LTEwLTI5IDEwOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kc19hZ2VudC5oLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgLSBzbm1wIG92ZXIgVENQIG9wdGlvbnM6IC1UIFRDUC4KICAgICAtIG5ldyBxdWljayBwcmludCBvcHRpb25zOiAtcW8gLXFlIGZvciBudW1lcmljIG9pZHMgYW5kIGVudW1zLgogICAKMTk5OS0xMC0yOSAwOTo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuaCwgbWliLmM6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogdHdvIG5ldyBwcmludGluZyBvcHRpb25zOgogICAgIC0gcHJpbnROdW1lcmljT2lkcwogICAgIC0gcHJpbnROdW1lcmljRW51bXMKICAgCjE5OTktMTAtMjkgMDk6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oKTogYWRkZWQgdmFyX3N0cnVjdC5oIGFuZCBhZ2VudF9yZWFkX2NvbmZpZy5oCiAgIAoxOTk5LTEwLTI5IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBhZGRlZCByZWZlcmVuY2UgdG8gYW4gYWJvdmUgcXVlc3Rpb24gZm9yIHBlcmwgaW5zdGFsbGF0aW9uLgogICAKMTk5OS0xMC0yOSAwODo1OCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSAobWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IFBhdGNoIGZyb20gS2VpdGggVHVzb246CiAgICAgLSBtaXNjIGZpeGVzLgogICAKMTk5OS0xMC0yOCAwNjo0OSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHJlcGhyYXNlIHN1YnRyZWUgbm90IGZvdW5kIGNvZGUgaW4gX2dldF9zeW1ib2wuCiAgIAoxOTk5LTEwLTI4IDA1OjI1ICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oOgoKICAgT29wcyEgcmVzdG9yZSB2ZXJzaW9uIHIxLjEzMS4KICAgCjE5OTktMTAtMjggMDU6MjMgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oOgoKICAgdV9pbnQ4LzE2LzMyX3QgdHlwZXMgbm8gbG9uZ2VyIG5lZWRlZCBmb3IgV0lOMzIgYnVpbGRzLgogICAKMTk5OS0xMC0yOCAwNDo1NSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRGF2ZSdzIGNvbW1lbnQgYWJvdXQgcHJlX3BhcnNlIGV0Yy4gd2FzIHRvbyBnb29kIHRvIGxvc2UgaW4gZS1tYWlsLgogICAKMTk5OS0xMC0yNyAxNzozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IHdhdGNoIGZvciBudWxsIGNvbW11bml0aWVzIHdoZW4gcHJpbnRpbmcgZGVidWcgc3RhdGVtZW50cy4KICAgCjE5OTktMTAtMjcgMTc6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGJhaWwgaWYgd2UgY2FuJ3QgZmluZCBhbiBpbmRleCBpbiB0aGUgbWliIHRyZWUgdG8gdXNlIGZvcgogICAgIGJyZWFraW5nIGFuIG9pZCBhcGFydC4KICAgCjE5OTktMTAtMjcgMTc6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIC0gKHVjZC1zbm1wLWluY2x1ZGVzLmgpOiBhZGRlZCBtb3JlIGluY2x1ZGUgZmlsZXMuCiAgIAoxOTk5LTEwLTI3IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkIGRlZmF1bHRfc3RvcmUuaCBhbmQgc25tcF9sb2dnaW5nLmgKICAgCjE5OTktMTAtMjcgMTQ6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuaDoKCiAgIC0gKGxjZF90aW1lLmgpOiBkZWZpbmUgYW5kIGNvbW1lbnQgTENEX1RJTUVfU1lOQ19PUFQgYmV0dGVyLgogICAKMTk5OS0xMC0yNyAxNDozNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmg6CgogICAtIChkZWZhdWx0X3N0b3JlLmgpOgogICAgIC0gbWFyayByZWdpb25zIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBkZWZhdWx0X3N0b3JlLjMgbWFudWFsIHBhZ2UuCiAgIAoxOTk5LTEwLTI3IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgZGVmYXVsdF9zdG9yZS4zLAogICBkZWZhdWx0X3N0b3JlLjMuYm90LCBkZWZhdWx0X3N0b3JlLjMuaCwKICAgZGVmYXVsdF9zdG9yZS4zLnRvcCwgc25tcF9hZ2VudF9hcGkuMzoKCiAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMsIGRlZmF1bHRfc3RvcmUuMy5ib3QsCiAgICAgZGVmYXVsdF9zdG9yZS4zLmgsIGRlZmF1bHRfc3RvcmUuMy50b3AsIHNubXBfYWdlbnRfYXBpLjMpOgogICAgIC0gbmV3IG1hbnVhbCBwYWdlczogZGVmYXVsdF9zdG9yZS4zLCBzbm1wX2FnZW50X2FwaS4zLgogICAKMTk5OS0xMC0yNyAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgLSAobWFzdGVyX2FkbWluLmMpOiBzaW1wbGUgZGVidWdnaW5nIHNvIHlvdSBjYW4gd2F0Y2ggc3R1ZmYgcmVnaXN0ZXIuCiAgIAoxOTk5LTEwLTI3IDE0OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgpOiBhZGRlZCBhIGhlYWRlciBmaWxlIHRvCiAgICAgd3JhcCBhcm91bmQgdGhlIHZhcmlvdXMgYWdlbnQgaW5jbHVkZSBmaWxlcy4KICAgCjE5OTktMTAtMjcgMTQ6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQuaCk6IHByb3RvdHlwZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgogICAKMTk5OS0xMC0yNyAxNDozMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGZpeCB1cCB1Y2Qtc25tcC1jb25maWcuaCBidWlsZGluZy4KICAgCjE5OTktMTAtMjYgMTA6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIEFsbG93IHVuc2lnbmVkIHJhbmdlIGZvciBjb3VudGVyL2dhdWdlL3RpbWV0aWNrcyAoZml4IEJVRyM4NCBwZXIgU2FuZGVyIFN0ZWZmYW5uKS4KICAgCjE5OTktMTAtMjUgMTY6MDQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMsIHBhcnNlLmMpOiBoYWNrIHRvIGRvIHdpbGQgY2FyZCBzZWFyY2hlcyBmb3IgYSBtaWIgbm9kZS4KICAgCjE5OTktMTAtMjUgMTQ6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogZW5hYmxlIC1wIHByaW50aW5nIG9mIG9ubHkgYSBzZWN0aW9uIG9mIHRoZSBtaWIgdHJlZS4KICAgCjE5OTktMTAtMjUgMTQ6MTIgIG5iYQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvYXNuMS5jLAogICBzbm1wbGliL2NhbGxiYWNrLmMsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NjYXBpLmMsIHNubXBsaWIvc2NhcGkuaCwgc25tcGxpYi9zbm1wLmMKLCBzbm1wbGliL3NubXBfYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLAogICBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYwosIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi92YWNtLmM6CgogICAtICo6IGNvbmZpZ3VyZSBzdXBwb3J0IGZvciBkbWFsbG9jIG1hbGxvYyBkZWJ1Z2dlciAod3d3LmRtYWxsb2MuY29tKQogICAKMTk5OS0xMC0yNSAxNDowOCAgbmJhCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSBzbm1wZC5jb25mLjUuZGVmOiBtaW5vciBxdWlyawogICAKMTk5OS0xMC0yNSAxNDowNyAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtIHNubXBkZWx0YS5jOiBDT1VOVEVSNjQgd2lsbCBkZXJlZmVyZW5jZSBmcmVlZCBwb2ludGVyCiAgIAoxOTk5LTEwLTI1IDEzOjU2ICBuYmEKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBURVNUQ09ORi5zaCwgZXZhbF9vbmVzY3JpcHQuc2gKLCBldmFsX3Rvb2xzLnNoOgoKICAgLSBSVU5URVNUUywgVEVTVENPTkYuc2ggZXZhbF9vbmVzY3JpcHQuc2ggZXZhbF90b29scy5zaDogc3VwcG9ydCBub24tYmFzaAogICAJc2hlbGxzIChlY2hvIC1uIHZzIGVjaG8gXFxjKS4gRG9uJ3QgcmVxdWlyZSAuIGluIFBBVEgKICAgCjE5OTktMTAtMjUgMTM6NDAgIG5iYQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgLSBjb25maWd1cmUuaW4sIHByb2MuYzogc3VwcG9ydCBmb3IgRnJlZUJTRCAyLjEgd2hlcmUgcHMgZG9lc24ndCBoYXZlIGMgZmxhZwogICAKMTk5OS0xMC0yNSAxMzozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gaW50ZXJmYWNlcy5jOiBmaXggYSBtZW1vcnkgbGVhayBpbiB0aGUgTGludXggcGFydAogICAKMTk5OS0xMC0yNSAwODowNiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIG1pYi5jLCBzY2FwaS5jOgoKICAgbWlub3IgcmV3b3JrIHRvIGNsYXJpZnkgc2lnbmVkIGNvbXBhcmVzIGFuZCByZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KICAgCjE5OTktMTAtMjQgMDg6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gcHJlbWliIGRpcmVjdGl2ZXMgd2VyZW4ndCBnZXR0aW5nIHJlYWQgZHVlIHRvIGEgbWlzc2luZyBuZWdhdGlvbiAoISkuCiAgICAgLSBtb3JlIHBhcnNpbmcgZGVidWdnaW5nIHN0YXRlbWVudHMgYWRkZWQuCiAgIAoxOTk5LTEwLTI0IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBmaXggIm1pYnMiIGFuZCAibWliZGlycyIgLmNvbmYgZGlyZWN0aXZlcyB0byBwcm9wZXJseQogICAgIGhhbmRsZSBtdWx0aXBsZSBjYWxscyAoYWRkaXRpdmUpIGFuZCAnKydzIGFuZCB0aGluZ3MuCiAgIAoxOTk5LTEwLTI0IDA4OjI0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgLSAoUkVBRE1FLnNubXB2Myk6IHR5cG8uCiAgIAoxOTk5LTEwLTI0IDA4OjIzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogU05NUENPTkZQQVRIIHVzZXMgc3lzY29uZmRpciBub3QgZGF0YWRpci4KICAgCjE5OTktMTAtMjIgMTU6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IHByaW50IHN0cmluZyBiYXNlZCBPSURzIGJldHRlci4KICAgCjE5OTktMTAtMjIgMTU6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2tleXRvb2xzLmgKLCBzbm1wbGliL3NjYXBpLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGtleXRvb2xzLmMsCiAgICAga2V5dG9vbHMuaCwgc2NhcGkuYyk6CiAgICAgLSB1c2Ugb3BlbnNzbCBmb3IgbWQ1L3NoYSBzdXBwb3J0IChmcm9tIE9sYWZ1ciBHdWRtdW5kc3NvbikuCiAgIAoxOTk5LTEwLTIyIDEwOjEyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRGlzcGxheSBfc29tZV8gb2N0ZXQgc3RyaW5nIGluZGljZXMgb2Ygb2JqZWN0IGlkZW50aWZpZXJzIGFzIHF1b3RlZCBwcmludGFibGUuCiAgIFNob3VsZCBiZSBleHBhbmRlZCB0byBoYW5kbGUgb3RoZXIgSU5ERVggdHlwZXMuCiAgIAoxOTk5LTEwLTIyIDA5OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBlbmFibGUgaGV4IHN0cmluZ3MgaW5zaWRlIG9pZHMuCiAgIAoxOTk5LTEwLTIyIDA3OjM5ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVtb3ZlZCBkdXBsaWNhdGVkIHZhcmlhYmxlIGluIGEgbmVzdGVkIGJsb2NrLiBBUmchCiAgIAoxOTk5LTEwLTIyIDA2OjI5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBGaXggQlVHICM4My4KICAgCjE5OTktMTAtMjEgMTI6NTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gbWVtb3J5X3NvbGFyaXMyLmM6IHJlb3JkZXIgY29tcHV0YXRpb25zIHRvIGF2b2lkIG92ZXJmbG93LgogICAKMTk5OS0xMC0yMSAxMjozMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgc21hbGwgcGF0Y2ggZnJvbSBNLiBMYXVra2FuZW4gdG8gZml4IEhQIGFDQyBidWlsZC4KICAgCjE5OTktMTAtMjEgMTI6MDkgIG1zbGlmY2FrCgogICAqIG1hbi86IHNubXBfYXBpLjMsIHNubXBfc2Vzc19hcGkuMywgc25tcGQuMS5kZWYKLCBzbm1wbmV0c3RhdC4xLCBzbm1wdGVzdC4xOgoKICAgRml4IEJVRyM3OAogICAKMTk5OS0xMC0yMSAxMDo0MiAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIHNubXBfYWdlbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIHVzZSBzbm1wX29wZW5fZXguCiAgIAoxOTk5LTEwLTIxIDEwOjQxICBtc2xpZmNhawoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMKLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYwosIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICBzbm1wdXNtLmMsIHNubXB3YWxrLmMsIHNubXBuZXRzdGF0L21haW4uYzoKCiAgIHJlbWluZGVycyBmb3Igc25tcF9zZXNzX3BlcnJvciB1c2FnZSBhZnRlciBvcGVuLgogICBzbm1wdGFibGUuYyAtIG9wZW4vY2xvc2Ugc2Vzc2lvbiBmcm9tIG1haW4oKS4KICAgbmV0c3RhdC9tYWluLmMgLSB1c2Ugc25tcF9zZXNzX3BlcnJvci4KICAgCjE5OTktMTAtMjEgMTA6MzkgIG1zbGlmY2FrCgogICAqIHdpbjMyLzogY29uZmlnLmgsIGxpYnNubXAvbGlic25tcC5kc3AsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIEZpeHVwcyBmb3IgYnVpbGRpbmcgd2l0aCBNU1ZDKysuIChubyBocHV4LmMsIHN1cHBseSBNQVhfUEVSU0lTVEVOVF9CQUNLVVBTKS4KICAgCjE5OTktMTAtMjEgMTA6MzcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYwosIHNubXBfYXBpLmg6CgogICBtaWIuYyAtIHJlc3RvcmUgbGluZSBzdG9tcGVkIGluIG15IGxhc3QgdXBkYXRlLgogICByZWFkX2NvbmZpZy5jIC0gZHJvcCB1bnVzZWQgdmFyaWFibGUuCiAgIHNubXBfYXBpLmMgLSBuZXcgbWV0aG9kIHNubXBfb3Blbl9leCByZXBsYWNlcyBzZXQgaW50ZXJuYWwgaG9vayBmdW5jdGlvbnMuCiAgIAoxOTk5LTEwLTIxIDEwOjI2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgTm90ZSAgU05NUEVSUl9VTktOT1dOX09CSklEIGVycm9yIGZyb20gd2l0aGluIHRoZSBsaWJyYXJ5LgogICAKMTk5OS0xMC0yMSAxMDoyMCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIE5vdGUgIFNOTVBFUlJfVU5LTk9XTl9PQkpJRCBlcnJvciB3aXRob3V0IHNwZWNpZnlpbmcgc25tcF9lcnJubyBfb3V0c2lkZV8gdGhlIGxpYnJhcnkuCiAgIAoxOTk5LTEwLTIxIDEwOjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBlbmFibGUgb2lkbmFtZS4iaGkiLid0aGVyZScgaW4gZ2V0X21vZHVsZV9ub2RlKCkgYXMgd2VsbC4KICAgCjE5OTktMTAtMjAgMTg6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGVuYWJsZSBvaWQgcGFyc2VyIHRvIGhhbmRsZSBzaW1wbGUgZW1iZWRkZWQgc3RyaW5ncyBpbiBvaWRzCiAgICAgYW5kIHRvIHRyYW5zbGF0ZSB0aGVtIGludG8gb2lkIHNlZ21lbnRzLgogICAgIEVHOiAuMS4zLlwiaGVsbG9cIi5cJ2hpXCcgLT4gLjEuMy41LjEwNC4xMDEuMTA4LjEwOC4xMTEuMTA0LjEwNQogICAKMTk5OS0xMC0yMCAxNzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYzoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBwYXJzZWQgc3RyaW5ncyBmcm9tIG9pZCdzIGluY2x1ZGUgbnVsbCB0ZXJtaW5hdG9ycy4KICAgCjE5OTktMTAtMTUgMDc6MDkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5jLCBkZWZhdWx0X3N0b3JlLmM6CgogICAtKGRlZmF1bHRfc3RvcmUuYywgY2FsbGJhY2suYykgZml4CiAgIGJ1ZyBpbiBhcnJheS1ib3VuZGFyeSBjaGVjayBpbiBzbm1wbGliL2NhbGxiYWNrLmMKICAgcmVwb3J0ZWQgYnkgQmVydCBIb2xzdGVpbiAxNSBPY3QgMTk5OS4KICAgCjE5OTktMTAtMTMgMDc6MDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eC9tYXN0ZXJfYWRtaW4uYywgbWliSUkvc3lzdGVtX21pYi5jCjoKCiAgIC0gbWFzdGVyX2FkbWluLmMsIHN5c3RlbV9taWIuaDogaW5jbHVkZXMgZm9yIHByb3RvdHlwZXMKICAgCjE5OTktMTAtMTMgMDM6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuaDoKCiAgIGFkZCBtaXNzaW5nIHByb3RvIGZvciBzYXZlX3BlcnNpc3RlbnQuCiAgIAoxOTk5LTEwLTEyIDA2OjA3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEZWZpbmUgYWRkcmVzcyBsZW5ndGggZm9yIEZyZWVCU0QgcGxhdGZvcm0uCiAgIAoxOTk5LTEwLTEyIDA1OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbGNkX3RpbWUuYywgbWliLmM6CgogICBtaWIuYzogcXVpY2tfcHJpbnQgaXMgZXhwb3NlZCBmb3IgQ01VX0NPTVBBVElCTEUgYnVpbGRzLgogICBsY2RfdGltZS5jOiBjb21tZW50ZWQgdW51c2VkIGR1bXBfZXRpbWVsaXN0X2VudHJ5IHVuZGVyIFNOTVBfVEVTVElOR19DT0RFLgogICAKMTk5OS0xMC0wNyAwOTowMSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX2FkbWluLmMsIHN1YmFnZW50LmM6CgogICAtIChhZ2VudHgvc3ViYWdlbnQuYyBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBOb3RpZmljYXRpb24gc3VwcG9ydAogICAKMTk5OS0xMC0wNyAwODo0MiAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaDoKCiAgIC0gKGFnZW50X3RyYXAuW2NoXSk6IEltcHJvdmUgYWNjZXNzaWJpbGl0eSBmb3Igc3ViYWdlbnRzCiAgIAoxOTk5LTEwLTA3IDA3OjI2ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywKICAgYWdlbnRfdHJhcC5oLCBzbm1wZC5oOgoKICAgLSAoYWdlbnRfdHJhcC5jIGFnZW50X3RyYXAuaCBhZ2VudF9yZWFkX2NvbmZpZy5jIHNubXBkLmgpOgogICAgIC0gIFJlLXdyaXRlIG9mIGFnZW50IHRyYXAgaGFuZGxpbmc6CiAgIAlQcm92aXNpb24gZm9yIHYxIHRyYXBzIHdpdGggdmFyYmluZHMKICAgCUNvbnNvbGlkYXRlIHYxIGFuZCB2MiB0cmFwIHNpbmsgbGlzdHMKICAgCVByZWxpbWluYXJ5IElORk9STSBzdXBwb3J0CiAgIAoxOTk5LTEwLTA2IDE2OjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9jbGllbnQuYyk6CiAgICAgLSBTYXZlIGFuZCBwYXJzZSBvbGRlciBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZXMgdG8gbWFrZSBzdXJlIGRhdGEgaXMKICAgICAgIG5vdCBsb3N0IGR1cmluZyBzdG9yYWdlIGNyYXNoZXMuCiAgICAgLSBGaXggU05NUHYzIGVuZ2luZUlEIHByb2JlczogUERVJ3MgYXJlIGFsbG93ZWQgdG8gaGF2ZSBhIE5VTEwgdmFyYmluZGxpc3QuCiAgIAoxOTk5LTEwLTA2IDA4OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgLSAoZml4cHJvYyk6IG5ldyBjb21tZW50ZWQgdmVyc2lvbi4KICAgCjE5OTktMTAtMDUgMjI6MjIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIC0gc3ViYWdlbnQuYzogaW5jbHVkZSBzeXN0ZW0uaCBmb3IgcHJvdG90eXBlIGZvciBjYWxjdWxhdGVfdGltZV9kaWZmCiAgIAoxOTk5LTEwLTA1IDIyOjE4ICBuYmEKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGZpeGVzIHRvIHJlcG9ydCBpbnZhbGlkIGVuZ2luZUlkCiAgIAoxOTk5LTEwLTA1IDIxOjQ5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICAtIHNubXBfZGVidWcuaDogbWFrZSB0aGUgREVCVUcqIG1hY3JvcyBzYWZlIGZvciB1c2UgaW4gY29tcG91bmQgc3RhdGVtZW50cwogICAKMTk5OS0xMC0wNSAwNzoyMyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyX3JlcXVlc3QuYywgc3ViYWdlbnQuYwo6CgogICAtIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyBhZ2VudHgvc3ViYWdlbnQuYyk6IFdvcmtpbmcgU0VUIHN1cHBvcnQKICAgCjE5OTktMTAtMDQgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4LmgpOiBhZGRlZCBoZWFkZXJfY29tcGxleF9maW5kX2VudHJ5KCkuCiAgIAoxOTk5LTEwLTA0IDEzOjUyICBuYmEKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICAtIHN1YmFnZW50LmgsIHN1YmFnZW50LmMsIG1pYl9tb2R1bGVzLmM6IHByZV9pbml0X3N1YmFnZW50IGNvbmZ1c2VzCiAgIAljb25maWd1cmUgaW50byBiZWxpZXZpbmcgdGhlcmUgaXMgYSBpbml0X3N1YmFnZW50IGZ1bmN0aW9uLgogICAJUmVuYW1lIHRvIHN1YmFnZW50X3ByZV9pbml0CiAgIAoxOTk5LTEwLTA0IDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c1NlcnZpY2VzIGNvbmZpZ3VyYWJsZS4KICAgCjE5OTktMTAtMDQgMTM6MzggIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaAo6CgogICAtIHZhcmlvdXM6IGluY2x1ZGUgYWRkaXRpb25zIGFuZCBmaXhlcyB0byBraWxsIHdhcm5pbmdzCiAgIAoxOTk5LTEwLTA0IDExOjUyICBuYmEKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIGNvbmZpZ3VyZS5pbjoJcmVtb3ZlIC1wZWRhbnRpYyBmcm9tIC0td2l0aC1kZXZlbG9wZXIsIGFuZCB0aGUgc3lzdGVtIGhlYWRlcnMKICAgCWFyZSBub3QgcHJlcGFyZWQgZm9yIGl0IChhdCBsZWFzdCBvbiBMaW51eCBhbmQgTmV0QlNEKQogICAKMTk5OS0xMC0wNCAxMTo1MCAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSBNYWtlZmlsZS5pbjoJYWx3YXlzIHVzZSAkKE1BS0UpIGZvciBtYWtlIGluIE1ha2VmaWxlcwogICAKMTk5OS0xMC0wNCAxMTo0OCAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaCwgYXBwcy9zbm1wdHJhcC5jCjoKCiAgIC0gKHNubXBfYXBpPywgaW50NjQuPyBzbm1wdHJhcC5jKTogYWRkIHNvbWUgZXJyb3IgY2hlY2tpbmcgZm9yIHZhcmlhYmxlcwogICAKMTk5OS0xMC0wNCAxMDoyMiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIGNsaWVudC5oLAogICBtYXN0ZXJfYWRtaW4uYzoKCiAgIC0gKGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBUcml2aWFsICdwaW5nJyBpbXBsZW1lbnRhdGlvbgogICAKMTk5OS0xMC0wNCAxMDoxNyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oCjoKCiAgIC0gKGFnZW50X2NhbGxiYWNrcy5oICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLltjaF0KICAgICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jKToKICAgICAgLSBDb21wbGV0ZSBzdWJhZ2VudCBoYW5kbGluZyBvZiBBZ2VudCBDYXBhYmlsaXRpZXMgLyBzeXNPUlRhYmxlCiAgIAoxOTk5LTEwLTA0IDEwOjE1ICBkYXZlcwoKICAgKiBzbm1wbGliL2NhbGxiYWNrLmg6CgogICAtIChzbm1wbGliL2NhbGxiYWNrLmgpOiBJbmNyZWFzZSBudW1iZXIgb2YgYXBwbGljYXRpb24gY2FsbGJhY2tzIHN1cHBvcnRlZAogICAKMTk5OS0xMC0wNCAwOTo1OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBtaWJfbW9kdWxlcy5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICAtIChtaWJfbW9kdWxlcy5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5bY2hdKToKICAgICAtIEVuc3VyZSBzdWJhZ2VudCBpcyBpbml0aWFsaXNlZCBlYXJseSAocHJpb3IgdG8gTUlCIHJlZ2lzdHJhdGlvbiwgZXRjKQogICAKMTk5OS0xMC0wNCAwOTo1MyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBzbm1wX3ZhcnMuaCwgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwosIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIHNubXBfdmFycy5oIG1pYklJL3N5c09SVGFibGUuYwogICAgICBhZ2VudHgvY2xpZW50LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKToKICAgICAgLSBIYW5kbGUgTUlCIHJhbmdlIHJlZ2lzdHJhdGlvbiwgYW5kIGNsZWFuIHVwIHdyYXBwZXIgaW50ZXJmYWNlcwogICAKMTk5OS0xMC0wNCAwMzo1OCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuaCk6CiAgICAgLSBjb25zb2xpZGF0ZSBkZWZpbml0aW9ucyBvZiBkZWZhdWx0IE1JQiByZWdpc3RyYXRpb24gcHJpb3JpdHkKICAgCjE5OTktMTAtMDIgMTQ6MjggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBzdWJhZ2VudC5jOgoKICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jKToKICAgICAtIEZpeCBhIHByb2JsZW0gd2l0aCByZS11c2VkIFBEVSBzdHJ1Y3R1cmVzIGJlaW5nIGZyZWVkIHR3aWNlLgogICAKMTk5OS0xMC0wMSAwOTo0OCAgZGF2ZXMKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IEZpeCBpbmNvbXBhdGFiaWxpdHkgaW4gYWdlbnQgbGlicmFyeSBuYW1lcwogICAKMTk5OS0wOS0zMCAwMTowOSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIC0gKG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMpOgogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IE5VTEwgdXRtcCBmaWxlIChmcm9tIEZhYnJpY2UgRHVwcmUpCiAgIAoxOTk5LTA5LTI5IDIzOjQyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2hwdXguYzoKCiAgIFJlbW92ZSB1bnVzZWQgZmlsZS4uIHNubXBsaWIvaHB1eC5jCiAgIAoxOTk5LTA5LTI5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jOgoKICAgLSAobWliX21vZHVsZXMuYyk6IGluY2x1ZGUgbmV0aW5ldC9pbi5oCiAgIAoxOTk5LTA5LTI5IDE3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oKTogZml4IGJ1Z3MuCiAgIAoxOTk5LTA5LTI5IDE2OjQwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSAobWliMmMudmFydHlwZXMuY29uZik6IHJlbW92ZWQgZXh0cmEgXG4uCiAgIAoxOTk5LTA5LTI5IDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBydW4gbnRvaGwgb24gaXAgYWRkcmVzc2VzIHN0b3JlZCBpbiBhIGxvbmcuCiAgIAoxOTk5LTA5LTI5IDE2OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAtIChtYXN0ZXJfYWRtaW4uYyk6IC1XYWxsIGZpeGVzIGFuZCBmb3VuZCBhIG1pc3NpbmcgfS4KICAgCjE5OTktMDktMjkgMTY6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuaDoKCiAgIC0gKGNsaWVudC5oKTogZGVmaW5lIERFRkFVTFRfTUlCX1BSSU9SSVRZIHRvIDI1NS4KICAgCjE5OTktMDktMjkgMTY6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgIC0gKGNsaWVudC5jKTogdGhhdHMgInRpbWV2YWwiIG5vdCAidGltZXZhbGUiIERhdmUgKGhlaGUpLgogICAKMTk5OS0wOS0yOSAxNjozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6CiAgICAgLSBuZXcgZXh0cmFjdGlvbiBhbmQgZnJlZWluZyBmdW5jdGlvbnMuCiAgICAgLSBidWcgZml4LCBtaXNzaW5nIGEgbWFsbG9jIHNpemUgYnkgb25lIChlbGVjdHJpYyBmZW5jZSBpcyB2ZXJ5IGNvb2wpLgogICAKMTk5OS0wOS0yOSAxNjozNiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkZWQgTWlrZSBNaWNoYXVkIHRvIHRoZSB0aGFuayB5b3UgbGlzdC4KICAgCjE5OTktMDktMjkgMTY6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBmaXggUkFOTElCIHRlc3RpbmcgZm9yIC0tZW5hYmxlLXNoYXJlZC4KICAgCjE5OTktMDktMjkgMTQ6MzEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJvYnVzdCBjb3B5IG9mIGluZm9ybWF0aW9uIHRvIHRyZWUsIGltcG9ydF9saXN0LCBkaXNwbGF5IGhpbnRzLgogICAKMTk5OS0wOS0yOSAxMjoxOSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMsIGNsaWVudC5oLAogICBtYXN0ZXJfYWRtaW4uYywgbWFzdGVyX3JlcXVlc3QuYywgcHJvdG9jb2wuYywKICAgcHJvdG9jb2wuaCwgc3ViYWdlbnQuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC8qKTogIEFzc29ydGVkIGltcHJvdmVtZW50cyEKICAgCjE5OTktMDktMjkgMTE6NDggIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6IENoYW5nZSBpbiBNSUIgcmVnaXN0cmF0aW9uIGludGVyZmFjZQogICAKMTk5OS0wOS0yOSAxMTo0NiAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6CiAgICAgLSBNb3ZlIHNldHRpbmcgYWdlbnQgc3RhcnQgdGltZSB0byBlYXJsaWVyIGluIHRoZSBpbml0aWFsaXNhdGlvbiBzZXF1ZW5jZQogICAgICAgKHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRkZW4gaW4gc3ViYWdlbnRzIHdpdGggdGhlIG1hc3RlcidzIHZhbHVlKQogICAKMTk5OS0wOS0yOSAxMTo0MyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3Zpc2lvbiB0byB1bnJlZ2lzdGVyIE1JQnMgYnkgc2Vzc2lvbgogICAKMTk5OS0wOS0yOSAxMTozOCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgIC0gJ0NoaWxkcmVuJyBub2RlcyBub3cgaGF2ZSBhIGRpZmZlcmVudCBzdGF0dXMsIGFuZCBzaG91bGRuJ3QgYmUgZnJlZWQuIE9vcHMhCiAgIAoxOTk5LTA5LTI5IDExOjM2ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdKToKICAgICAtIEltcHJvdmUgcmVnaXN0cnkgZXJyb3IgaGFuZGxpbmcKICAgICAtIENvcnJlY3RseSBoYW5kbGUgdW5yZWdpc3RlcmluZyBNSUIgcmVnaW9ucwogICAKMTk5OS0wOS0yOSAxMToyMyAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBDb3JyZWN0IHZhbHVlIG9mIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHByaW9yaXR5CiAgIAoxOTk5LTA5LTI5IDExOjE3ICBkYXZlcwoKICAgKiBzbm1wbGliLzogbXRfc3VwcG9ydC5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oCjoKCiAgIC0gKG10X3N1cHBvcnQuaCBzbm1wX2FwaS5bY2hdKTogU3VwcG9ydCBmb3Igc2Vzc2lvbiBhbmQgaW5jb21pbmcgdHJhbnNhY3Rpb24gSURzCiAgIAoxOTk5LTA5LTI5IDExOjE0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBwcm90ZWN0IHNubXBfY2xvc2UoKSBhZ2FpbnN0IGEgbnVsbCBTZXNzaW9ucyBsaXN0CiAgIAoxOTk5LTA5LTI4IDE2OjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oCiwgc25tcF92YXJzLmMsIHNubXBkLmM6CgogICAtIChNYWtlZmlsZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaCwgc25tcF92YXJzLmMsIHNubXBkLmMpOgogICAgIC0gbWFrZSBsaWJ1Y2RhZ2VudCBhbmQgbGlidWNkbWlicyBhcyBzZXBlcmF0ZSBsaWJyYXJpZXMuICBJbiB0aGVvcnksCiAgICAgICB5b3Ugc2hvdWxkbid0IG5lZWQgbGlidWNkbWlicyB0byB1c2UgbGlidWNkYWdlbnQuCiAgIAoxOTk5LTA5LTI3IDE2OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogT3BwczogRFNfTElCX0RPTlRfUkVBRF9DT05GSUdTIG5lZWRlZCBhbiAhLgogICAKMTk5OS0wOS0yMiAxMjo1MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSAtIEltcHJvdmVkIGVycm9yIHN0YXR1cyBhZ2dyZWdhdGlvbi4KICAgCjE5OTktMDktMjIgMTA6MDEgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBJbXByb3ZlZCBBZ2VudFggcmVzcG9uc2UgaGFuZGxpbmcKICAgCjE5OTktMDktMjIgMTA6MDAgIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogRW5zdXJlIHJlZ2lzdHJ5IGlzIGluaXRpYWxpc2VkIGNvcnJlY3RseSBvbiBzdWJhZ2VudHMKICAgCjE5OTktMDktMjIgMDk6NTggIGRhdmVzCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAtIChhZ2VudF9yZWdpc3RyeS5jKTogcmVtb3ZlIHJlZHVuZGFudCByb3V0aW5lcwogICAKMTk5OS0wOS0yMiAwOTo1NCAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuYywKICAgdmFyX3N0cnVjdC5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyB2YXJfc3RydWN0LmgpOgogICAgIENoYW5nZSB0aGUgd2F5IHRoZSBNSUIgcmVnaXN0cnkgaGFuZGxlcyByZWdpc3RlcmVkIHJhbmdlcy4KICAgICBUaGlzIHNob3VsZCB3b3JrIG1vcmUgcmVsaWFibHkgKGFzIHdlbGwgYXMgYmVpbmcgcmF0aGVyIHNpbXBsZXIsIElNSE8pCiAgIAoxOTk5LTA5LTIyIDA5OjM1ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgIC0gRW5zdXJlIGxvY2FsIHN5c09SVGFibGUgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIHN1YmFnZW50IHZlcnNpb25zCiAgIAoxOTk5LTA5LTIyIDA5OjMzICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5Lmg6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5bY2hdKTogUHJvdmlkZSBtZXRob2QgZm9yIHByaW9yaXRpc2VkIHJlZ2lzdHJhdGlvbgogICAKMTk5OS0wOS0yMiAwOTozMSAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIC0gKGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMpOiBzdHVwaWQgdHlwbwogICAKMTk5OS0wOS0yMiAwOToyNyAgZGF2ZXMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpOiBzdHVwaWQgdHlwbwogICAKMTk5OS0wOS0yMSAxMDo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0obWliLmMpIHVuZG8gZXJyb25lb3VzIGNoYW5nZSB0byBpbml0X21pYiAodGhhbmtzIE5CISkKICAgCjE5OTktMDktMjEgMDk6MzIgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcGQuYzoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcGQuYyk6IFNpbXBsZSBydW4tdGltZSBkdW1wIG9mIHJlZ2lzdGVyZWQgTUlCcwogICAKMTk5OS0wOS0yMSAwOToyNSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyk6IEhhbmRsZSBwYXJzaW5nIG51bGwtbGVuZ3RoIHZhcmlhYmxlcwogICAKMTk5OS0wOS0yMSAwOToyMSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogaGFuZGxlIGFkZGluZyAnZXJyb3InIHR5cGUgdmFyaWFibGVzIHRvIGEgUERVCiAgIAoxOTk5LTA5LTE3IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpOiB1cGRhdGUgdG8gMi4xMy4KICAgCjE5OTktMDktMTcgMTE6NDIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIG1ha2UgbW9kdWxlX21hcCogYW5kIHRva2VucyBzdHJ1Y3R1cmVzIHN0YXRpYyAob25seSB1c2VkIGluIHBhcnNlLmMgPykKICAgCjE5OTktMDktMTcgMTE6MjQgIG1zbGlmY2FrCgogICAqIEZBUSwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmg6CgogICAtcmVtb3ZlIG9sZC1zdHlsZSBpbml0IGZvciByZXBsYWNlIG1pYiBmZWF0dXJlLgogICAKMTk5OS0wOS0xNyAxMToxOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLShwYXJzZS5jKSAtIHJlbW92ZSB1bm5lZWRlZCB1c2Ugb2Ygc3RhdGljIHZhciAibGFzdCIKICAgCjE5OTktMDktMTcgMDc6MTcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wX2FwaS4zOgoKICAgLSAoc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTWFyayBILiBXb29kOgogICAgIC0gZml4IGNvbW1lbnRzLgogICAKMTk5OS0wOS0xNiAxNDoxNiAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL210X3N1cHBvcnQuYywgc25tcGxpYi9tdF9zdXBwb3J0Lmg6CgogICAtcGVyIGFncmVlbWVudCB3aXRoIE1hcmtrdSwgbm8gc3VwcG9ydCBuZWVkZWQgZm9yIFNvbGFyaXMtc3BlY2lmaWMgdGhyZWFkcy4KICAgCjE5OTktMDktMTUgMTE6MzAgIG1zbGlmY2FrCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9tdF9zdXBwb3J0LmMsCiAgIHNubXBsaWIvbXRfc3VwcG9ydC5oLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBmaW5lIHR1bmluZyBtdCBzdXBwb3J0CiAgIAoxOTk5LTA5LTE1IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgc25tcF9jbG9zZS4zLCBzbm1wX2ZyZWVfcGR1LjMKLCBzbm1wX29wZW4uMywgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMwosIHNubXBfc2VuZC4zLCBzbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLAogICBzbm1wX3Nlc3NfY2xvc2UuMywgc25tcF9zZXNzX2Vycm9yLjMsIHNubXBfc2Vzc19pbml0LjMKLCBzbm1wX3Nlc3Nfb3Blbi4zLCBzbm1wX3Nlc3NfcmVhZC4zLAogICBzbm1wX3Nlc3Nfc2VsZWN0X2luZm8uMywgc25tcF9zZXNzX3NlbmQuMywKICAgc25tcF9zZXNzX3Nlc3NfdGltZW91dC4zLCBzbm1wX3Nlc3Nfc2Vzc2lvbi4zLAogICBzbm1wX3RpbWVvdXQuMzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2Nsb3NlLjMsIHNubXBfZnJlZV9wZHUuMywgc25tcF9vcGVuLjMsCiAgICAgc25tcF9yZWFkLjMsIHNubXBfc2VsZWN0X2luZm8uMywgc25tcF9zZW5kLjMsCiAgICAgc25tcF9zZXNzX2FzeW5jX3NlbmQuMywgc25tcF9zZXNzX2Nsb3NlLjMsIHNubXBfc2Vzc19lcnJvci4zLAogICAgIHNubXBfc2Vzc19pbml0LjMsIHNubXBfc2Vzc19vcGVuLjMsIHNubXBfc2Vzc19yZWFkLjMsCiAgICAgc25tcF9zZXNzX3NlbGVjdF9pbmZvLjMsIHNubXBfc2Vzc19zZW5kLjMsIHNubXBfc2Vzc19zZXNzX3RpbWVvdXQuMywKICAgICBzbm1wX3Nlc3Nfc2Vzc2lvbi4zLCBzbm1wX3RpbWVvdXQuMyk6IFBhdGNoIGZyb20gTWFyayBILiBXb29kOgogICAgIC0gY3JlYXRlIHNvbWUgZmFrZSBzb3VyY2luZyBtYW4gcGFnZXMgZm9yIGZ1bmN0aW9ucy4KICAgCjE5OTktMDktMTUgMDY6MDggIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICBpbmNsdWRlIG1pYmdyb3VwL21pYl9tb2R1bGVfaW5jbHVkZXMuaCBmb3IgYmVuZWZpdCBvZiBtaWJfbW9kdWxlX2RvdF9jb25mLmgKICAgCjE5OTktMDktMTQgMTM6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIHBhcnNlLmMgLSBhbm90aGVyIGZpeCBmb3Igbm9kZTogY29uc2lkZXIgTlVMTCBuYW1lIG9yIE5VTEwgcGFyZW50CiAgIAoxOTk5LTA5LTE0IDEzOjAwICBtYXJ6CgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogZml4IHNwdXJpb3VzIGVycm9yIG1lc3NhZ2Ugd2hlbiBzbm1wX3BhcnNlX29pZCBmYWlscwogICAKMTk5OS0wOS0xNCAwOTo1MyAgbXNsaWZjYWsKCiAgICogRkFRLCBtYW4vc25tcGNtZC4xLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgKOgoKICAgLShGQVEsIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvcGFyc2UuKikgYWRkIHJlcGxhY2UgTUlCIGNhcGFiaWxpdHkoZXhwZXJpbWVudGFsKQogICAKMTk5OS0wOS0xMyAyMDoyMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSByZS1hc3NlcnQgTmllbHMnIHBhdGNoIHRvIHNubXBfc2VuZCB0byBmcmVlIHYyL3YxIFRyYXAtUERVcwogICAKMTk5OS0wOS0xMyAxNTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfcmVnaXN0cnkuaCwgc25tcF9hZ2VudC5jCiwgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaCwKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwosIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oOgoKICAgLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsCiAgICAgYWdlbnRfcmVnaXN0cnkuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgc3ViYWdlbnQuYywKICAgICBzdWJhZ2VudC5oLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgLSBmdXJ0aGVyIHNlcGFyYXRpb24gb2YgYWdlbnQgY2h1cmNoIGFuZCBzdGF0ZToKICAgICAgIC0gdXNlIGNhbGxiYWNrcyBldmVyeXdoZXJlIG5lZWRlZCB0byBub3QgY2FsbCBtaWIgbW9kdWxlIGNvZGUgZGlyZWN0bHkuCiAgICAgICAtIGdldCByaWQgb2YgYWxsIGluc3RhbmNlcyBvZiBVU0lOR18gaW4gbGliYWdlbnQgY29kZS4KICAgCjE5OTktMDktMTIgMjI6MDAgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSBzbm1wX2ltcGwuaDogcmVtb3ZlZCBzb21lIHVudXNlZC91bm5lZWRlZCBkZWZpbmVzL3N0cnVjdHMKICAgCjE5OTktMDktMTIgMjE6NTkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gcHJvdG9jb2wuYzogYWRkIGEgbWlzc2luZyBpbmNsdWRlIGZpbGUuCiAgIAoxOTk5LTA5LTEyIDIxOjU4ICBuYmEKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIC0gVEVTVENPTkYuc2g6IGZpeCBzb21lIGV4cG9ydHMgdG8gZXhwb3J0IHRoZSByaWdodCB2YXJpYWJsZS4KICAgCjE5OTktMDktMTIgMjE6NTcgIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIGFnZW50LyosIHNubXBsaWIvKjogbWFsbG9jIGZpeGVzLCBzb21lIHByb3Zva2VkIGJ5IHRoZSBjb3JyZWN0ZWQKICAgCXNubXBfc2VuZCBzZW1hbnRpY3MuCiAgIAoxOTk5LTA5LTEyIDIxOjUwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtIHZhcl9yb3V0ZS5jOiBMaW51eCBjbGVhbnVwLiBSZXF1aXJlZCBmb3IgTGludXgvU1BBUkMKICAgCjE5OTktMDktMDkgMTM6NTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIC0obWliLmMsIHBhcnNlLmMpIG1pYi5jIHByaW50X3RyZWVfbm9kZSB0ZXN0IGRpc3BsYXkgbnVsbCB0eXBlIHdpdGggcmFuZ2UKICAgICAgICAgICAgICAgICAgICAgcGFyc2UuYyB3b3JrIGFyb3VuZCBjb3JlIGR1bXAgZnJlZWluZyBUQ3MgdGhhdCBzcGVjaWZ5IHJhbmdlcy4KICAgCjE5OTktMDktMDkgMDI6MzEgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgd2luMzIvY29uZmlnLmg6CgogICAtKCpjb25maWcqKSB0dXJuIG9uIHJlc291cmNlIGxvY2tpbmcgd2l0aCAtLWVuYWJsZS1yZWVudHJhbnQuCiAgIAoxOTk5LTA5LTA5IDAyOjIxICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIC0od2luc3R1Yi5jKSBIYWNrIHRvIGFsbG93IHNubXBuZXRzdGF0IC1hIHRvIHdvcmsgb24gQUlYNCAoc2ljKS4KICAgCjE5OTktMDktMDggMjI6MzQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYmluY2wuaDoKCiAgIC0obWliaW5jbC5oKSBjb21tZW50IG91dCBkdXBsaWNhdGUgI2luY2x1ZGUgaGVhZGVyIGxpbmVzLgogICAKMTk5OS0wOS0wOCAyMjozMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtKHNtdXguYykgdmFyX3NtdXhfd3JpdGUgZml4ZWQgcGVyIE1pa2UgTWljaGF1ZCBhbmQgTmljayBBbWF0bwogICAKMTk5OS0wOS0wOCAxNzo1MiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG10X3N1cHBvcnQuYywgbXRfc3VwcG9ydC5oOgoKICAgLShtdF9zdXBwb3J0LiopIE9yaWdpbmFsIGJ5IE1hcmtrdSBMYXVra2FuZW4sIGNoYW5nZXMgYnkgTS4gU2xpZmNhawogICAKMTk5OS0wOS0wOCAxNzo0OCAgbXNsaWZjYWsKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC0oY29uZmlnKix3aW4zMi8qLHNubXBsaWIvKikgcmVzb3VyY2UgbG9ja2luZyBvcmlnaW5hbGx5IGZyb20gTWFya2t1IExhdWtrYW5lbgogICAKMTk5OS0wOS0wOCAxNzowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJpbmNsLmgsIG1pYklJL2ljbXAuYywKICAgbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJJSS9pcC5jLCBtaWJJSS90Y3AuYywKICAgbWliSUkvdWRwLmM6CgogICBtaWJpbmNsLmgsIG1pYmdyb3VwL21pYklJLyogLSBmaXh1cCBmb3IgQ3lnV2luMzIgYnVpbGQKICAgCjE5OTktMDktMDggMTM6MDQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2NsaWVudC5jLCBzbm1wX2NsaWVudC5oOgoKICAgLShzbm1wbGliL3NubXBfY2xpZW50LiopIGFkZCBzbm1wX3NwbGl0X3BkdSwgc25tcF92YXJiaW5kX2xlbiBtZXRob2RzLgogICAKMTk5OS0wOS0wOCAxMzowMCAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIC0odGVzdGluZy9SVU5URVNUUykgcHJlZml4IFBBVEggd2l0aCAuIGFuZCAuLiAsIGFzIHRoZSBzY3JpcHQgY2hhbmdlcyBkaXIuCiAgIAoxOTk5LTA5LTA4IDA3OjUyICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gYXBwcy9zbm1wdHJhcGQuYzogZml4IGFyZ3VtZW50IHByb2Nlc3NpbmcgKC1sZCBhbmQgc2ltaWxhcikKICAgCjE5OTktMDktMDggMDc6NTEgIG5iYQoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAtIHNubXBkLjEuZGVmOiBmaXggYSBmb3JtYXR0aW5nIHByb2JsZW0KICAgCjE5OTktMDktMDggMDc6NTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywgYWdlbnR4L3N1YmFnZW50LmMsCiAgIG1pYklJL3N5c09SVGFibGUuYzoKCiAgIC0gKHZhcmlvdXMpOiBmaXggY29tcGlsZXIgd2FybmluZ3MKICAgCjE5OTktMDktMDggMDc6NDggIG5iYQoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIHZhcl9zdHJ1Y3QuaDogdGhlIEFnZW50eCBjb2RlIHVzZXMgdW5zaWduZWQgdmFsdWVzIGZvciB0aGUgdmFyaWFibGUgdHlwZS4KICAgCjE5OTktMDktMDggMDc6NDYgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIHNubXBfYXBpLmg6IG1vdmUgaW5jbHVzaW9uIHByb3RlY3Rpb24gdG8gdGhlIHJlYWwgYmVnaW5uaW5nL2VuZCBvZiB0aGUgZmlsZQogICAKMTk5OS0wOS0wOCAwNzo0NSAgbmJhCgogICAqIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgLSAoY29uZmlndXJlLmluLCBsb2FkYXZlLmMpOiBTb2xhcmlzIDIuNyBoYXMgZ2V0bG9hZGF2ZyBwcm90b3R5cGUKICAgCjE5OTktMDktMDggMDU6MTYgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGluY2x1ZGUgcmVhZF9jb25maWcuaAogICAKMTk5OS0wOS0wNyAyMDoxOSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgc25tcHRyYXAuYyAtIHJld29yayBmaXggYnVnICM1NCAobWlzc2VkIGVsc2UpLgogICAKMTk5OS0wOS0wNyAyMDoxMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgbWFuL3NubXBfYXBpLjMsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oYWdlbnRfdHJhcC5jLHNubXB0cmFwLmMsc25tcF9hcGkuWzNjXSkgLSBzbm1wX2ZyZWVfcGR1IGZpeCBCdWcgIzU0IHBlciBOaWVscyBCLgogICAtKHNubXBuZXRzdGF0L2lmLmMpIC0gZml4IGZvciBHRVRORVhUIHBlciBOaWVscyBCLgogICAKMTk5OS0wOS0wNyAxNTo1NyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLShwYXJzZS5jKSBmaXggVW5saW5rZWQgT0lEIHByaW50IHdoZW4gb2JqZWN0IGlkZW50aWZpZXIgaGFzIG5vIHBhcmVudC4KICAgCjE5OTktMDktMDcgMTU6MzIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0ocGFyc2UuYykgcmVtb3ZlIHVubmVlZGVkIHN0cmR1cCB0byBGaWxlIHZhcmlhYmxlIGZyb20gaW5pdF9taWJfaW50ZXJuYWxzLgogICAKMTk5OS0wOS0wNyAxNTozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLShzbm1wX2FwaS5oKSBzdHJ1Y3QgcGR1IGFuZCBzbm1wX3Nlc3Npb24gYWdyZWU6IGxvbmcgdHlwZSBmb3IgdmVyc2lvbiBtZW1iZXIuCiAgIAoxOTk5LTA5LTA3IDE1OjIzICBtc2xpZmNhawoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgICh3aW4zMi9jb25maWcuaCkgLSBzZXQgU05NUENPTkZQQVRIIHRvIHN1Y2NlZWQgY29tcGlsZTsKICAgKHdpbjMyKmxpYnNubXAuZGVmKSAtIGFkZCBuZXcgc25tcF9nZXRfdG9rZW4gdG8gbGlzdC4KICAgCjE5OTktMDktMDcgMTU6MjMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaDoKCiAgIChkZWZhdWx0X3N0b3JlLiopIC0gbWFrZSAzcmQgcGFyYW0gdG8gZHNfc2V0X3N0cmluZyB0eXBlIG9mIGNvbnN0IGNoYXIgKi4KICAgCjE5OTktMDktMDcgMTU6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzbm1wdjMuYyAtIHNpbGVuY2UgdHlwZSB3YXJuaW5nIGZyb20gTVNWQysrLgogICAKMTk5OS0wOS0wNyAxNDo0NyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICAtKHBhcnNlLiopIGZpeCBzbWFsbCBtZW1vcnkgbGVha3M7IGFsbG93IElOREVYe0lOVEVHRVIuLi59IGNsYXVzZXM7CiAgICAgICAgICAgICAgYWxsb3cgbGFyZ2VyIERFU0NSSVBUSU9OIGNsYXVzZXMgW21heCA4MTkyXS4KICAgCjE5OTktMDktMDMgMTU6MDEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG1vcmUgQlNESSBzeXN0ZW0gdmVyc2lvbnMgbGlzdGVkLgogICAKMTk5OS0wOS0wMyAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGRvbid0IGZhbGwgb2ZmIHRoZSBlbmQgb2YgdGhlIHNlYXJjaCB0cmVlLgogICAKMTk5OS0wOS0wMyAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKHNubXBsaWIvTWFrZWZpbGUuaW4pOiBpbnN0YWxsIG1vcmUgbGlicmFyeSBoZWFkZXJzLgogICAKMTk5OS0wOS0wMyAxMzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6CiAgICAgLSBpbnN0YWxsIGxpYmFnZW50LmEuCiAgICAgLSBta2RpcmhlaXIgb24gbmVlZGVkIG5ldyBpbnN0YWxsYXRpb24gZGlyZWN0b3JpZXMuCiAgIAoxOTk5LTA5LTAzIDEzOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBhZ2VudCBoZWFkZXIgZmlsZXMuCiAgIAoxOTk5LTA5LTAzIDEzOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGhpc3RvcnkuYywgaGlzdG9yeS5oLCBzbm1wX3ZhcnMubGludXguaAo6CgogICAtIChoaXN0b3J5LmMsIGhpc3RvcnkuaCwgc25tcF92YXJzLmxpbnV4LmgpOiByZW1vdmVkLiBObyBsb25nZXIgbmVlZGVkLgogICAKMTk5OS0wOS0wMiAwODo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzdWJhZ2VudC5jKTogb3Bwcy4gIEZvcmdvdCBhIHNodXRkb3duIG5hbWUgY2hhbmdlIGluc3RhbmNlLgogICAKMTk5OS0wOS0wMiAwNzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAtIChzdWJhZ2VudC5jKTogc2h1dGRvd25fc3ViYWdlbnQgLT4gc3ViYWdlbnRfc2h1dGRvd24gc28gY29uZmlndXJlCiAgICAgZG9lc24ndCBmaW5kIGl0LgogICAKMTk5OS0wOS0wMiAwNjozOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmM6CgogICAtIChhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYyk6IEZpeCBNSUIgbG9jYXRpb24gb2YgaXBmd2FjYyBtb2R1bGUKICAgCjE5OTktMDgtMzEgMDk6MjYgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIC0oYWdlbnRfdHJhcC5jKSBhbHdheXMgZnJlZSBQRFUgYWZ0ZXIgc25tcF9zZW5kLgogICAKMTk5OS0wOC0zMSAwODoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgLShhZ2VudF90cmFwLmMpIGZpeCByZWNlbnQgbWVtb3J5IGxlYWssIGFuZCBzaXplb2Yob2JqaWRfc25tcHRyYXApIGJ1Zy4KICAgCjE5OTktMDgtMzAgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jOgoKICAgLSAobWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMpOiB5ZXQgbW9yZSBkZWJ1Z2dpbmcuCiAgIAoxOTk5LTA4LTMwIDA5OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBjbGllbnQuYywgbWFzdGVyLmMsCiAgIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsIHN1YmFnZW50LmM6CgogICAtIChjbGllbnQuYywgbWFzdGVyLmMsIG1hc3Rlcl9yZXF1ZXN0LmMsIHByb3RvY29sLmMsIHN1YmFnZW50LmMpOgogICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudHMuCiAgICAgLSB1c2UgbmV3IGRlZmF1bHRfc3RvcmUgc2V0dGluZ3MgaW5zdGVhZCBvZiBleHRlcm5hbCB2YXJpYWJsZXMuCiAgIAoxOTk5LTA4LTMwIDA5OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYywgYWdlbnQvYWdlbnRfdHJhcC5jLAogICBhZ2VudC9hZ2VudF90cmFwLmgsIGFnZW50L2RzX2FnZW50LmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9hZ2VudC5oLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIHNubXBsaWIvY2FsbGJhY2suYywKICAgc25tcGxpYi9jYWxsYmFjay5oLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgYWdlbnRfdHJhcC5jLAogICAgIGFnZW50X3RyYXAuaCwgZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5jLAogICAgIHNubXBkLmMsIHV0aWxfZnVuY3MuYywgc3lzT1JUYWJsZS5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgIGRlZmF1bHRfc3RvcmUuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgLSByZXN0cnVjdHVyZSB0aGUgYWdlbnQgaW50byB0d28gcGllY2VzOiBhIGxpYnJhcnkgYW5kIGEgYXBwbGljYXRpb24uCiAgICAgICAtIG5lZWRzIG11Y2ggbW9yZSB3b3JrLgogICAgICAgLSBtYW55IHBhcmFtZXRlcnMgYXJlIG5vdyBjb250cm9sbGVkIGJ5IG5ldyBkZWZhdWx0X3N0b3JlIHNldHRpbmdzCiAgICAgICAgIHRvIGhlbHAgcmVsaWV2ZSBjb21waWxlIHRpbWUgYmluZGluZ3MuCiAgICAgLSBtZXJnZSBpbml0X3NubXAgYW5kIHRoZSBjdXN0b20gdmVyc2lvbiBjYWxsZWQgaW5zaWRlIHRoZSBhZ2VudC4KICAgICAtIGFkZCBhIG5ldyBwbGFjZSBmb3IgdHJhcCBzcGVjaWZpYyBhZ2VudCBjb2RlIChhZ2VudF90cmFwLltjaF0pLgogICAgIC0gcHJvYmFibHkgb3RoZXIgdGhpbmdzIEkndmUgZm9yZ290dGVuIHRoYXQgSSBkaWQuCiAgIAoxOTk5LTA4LTI4IDA3OjI5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgcmVhZF9jb25maWcuYyk6CiAgICAgLSBhZGQgL2V0Yy9zbm1wIHRvIGRlZmF1bHQgY29uZiBmaWxlIHBhdGggdG8gbWFrZSBSZWRIYXQgaGFwcHkuCiAgIAoxOTk5LTA4LTI4IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcF9hbGFybS4zLgogICAKMTk5OS0wOC0yNyAwOToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYwosIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmM6CgogICAtIChpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6CiAgICAgLSBTdXNhbm5lIE9zdGVkIHBvaW50ZWQgb3V0IGEgbGFjayBvZiAjaWYgSEFWRV9TWVNfUEFSQU1fSC4KICAgCjE5OTktMDgtMjcgMDg6MDMgIG1zbGlmY2FrCgogICAqIFRPRE86CgogICBIb3dhcmQgU3BpbmRlbCBzdWdnZXN0cyBhbiBBUEkgZm9yIHRyYXBzIHdpdGggcGFzc19wZXJzaXN0LgogICAKMTk5OS0wOC0yNyAwNzozNSAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0oY29uZmlndXJlKiwgc2Vkc2NyaXB0KikgY2hhbmdlIC4uLkVYVEVOSVMuLi4gIHRvIC4uLkVYVEVOU0kuLi4KICAgCjE5OTktMDgtMjYgMTM6NDAgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIGRvbid0IGJ1aWx0IHRhcmdldHMgdGhhdCBhcmUgbm8gbG9uZ2VyIHVzZWQKICAgCjE5OTktMDgtMjYgMTM6MTggIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAtKHRlc3RpbmcvUlVOVEVTVFMpIGltcHJvdmVkIFBBVEggc2V0CiAgIAoxOTk5LTA4LTI0IDE3OjQzICBtc2xpZmNhawoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgLSh0ZXN0aW5nL01ha2VmaWxlLmluKSBubyBuZWVkIHRvIGJ1aWxkIHRhcmdldHMgaW4gdGVzdCBydWxlLgogICAKMTk5OS0wOC0yNCAxNzozOSAgbXNsaWZjYWsKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIC0oUlVOVEVTVFMpIGV4cG9ydCBQQVRIIGJlZm9yZSB1c2UKICAgCjE5OTktMDgtMjQgMTc6MTQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oLCBGQVEKLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC4xICkKICAgCjE5OTktMDgtMjQgMTc6MTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgNC4wLjEKICAgCjE5OTktMDgtMjQgMTY6NDkgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvOiBNYWtlZmlsZS5pbiwgUlVOVEVTVFMsIFQyLnNoLAogICBURVNUQ09ORi5zaCwgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2gsCiAgIHRlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0X2t1bC5zaDoKCiAgIC0odGVzdGluZy8qKSBydW4gdGVzdHMgd2hlbiBwYWNrYWdlIGlzIG5vdCBpbnN0YWxsZWQsIGFuZCB3aGVuCiAgIHRoZSBidWlsZCB0cmVlIGlzIG5vdCB0aGUgc2FtZSBhcyB0aGUgc291cmNlIHRyZWUuCiAgIAoxOTk5LTA4LTI0IDE2OjA1ICBtc2xpZmNhawoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0oY29uZmlndXJlLiopIG1vdmUgc3RhdGVtZW50IGFib3V0IHVjZERlbW9QdWJsaWMgaW50byBjb21tZW50IGZpZWxkLgogICAKMTk5OS0wOC0yNCAxNjowMSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiA0LjAuMSB1cGRhdGUKICAgCjE5OTktMDgtMjQgMTU6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdmVyc2lvbiBzZXR0aW5nIGluIHNubXBfYXBpLmMuICBOb3QgbmVlZGVkIHRoZXJlLgogICAKMTk5OS0wOC0yNCAxNToxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtKHNtdXguYykgYXBwbHkgTmljayBBbWF0bydzIHBhdGNoOiBwcmV2ZW50IFNNVVggY2xvc2Ugb24gcGFyc2Ugb3IgZXJyb3IuCiAgIAoxOTk5LTA4LTI0IDE0OjE3ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3dydW4uYywgbWliSUkvaWNtcC5jLAogICBtaWJJSS9pcC5jLCB1Y2Qtc25tcC9kaXNrLmMsIHVjZC1zbm1wL3Byb2MuYzoKCiAgIC0oaG9zdC9ocl9zd3J1bjttaWJJSS9pY21wLGlwO3VjZC1zbm1wL2Rpc2sscHJvYykgbG9nX3BlcnJvciAtLT4gc25tcF9sb2dfcGVycm9yCiAgIAoxOTk5LTA4LTI0IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FsbF9zeXN0ZW0uaDoKCiAgIC0gKGFsbF9zeXN0ZW0uaCk6IHJlbW92ZS4gIGFnYWluLgogICAKMTk5OS0wOC0yNCAxNDowNSAgbXNsaWZjYWsKCiAgICogTWFrZWZpbGUuaW46CgogICAtKHRvcC9NYWtlZmlsZS5pbikgLSByZW1vdmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMgd2l0aCBkaXN0Y2xlYW4gcnVsZS4KICAgCjE5OTktMDgtMjQgMTM6NDEgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogcmVtb3ZlIHNubXB2MyBzdXBwb3J0Oi0pCiAgIAoxOTk5LTA4LTI0IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcHYzLmMpOgogICAgIC0gcHJvdmlkZSBkZWZWZXJzaW9uIHRva2VuIHN1cHBvcnQgaW4gc25tcC5jb25mIChzb3J0IG9mIGhhY2tpc2gpLgogICAKMTk5OS0wOC0yNCAxMzozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBjaGVjayBmb3IgbnVsbCByZXNwb25zZSBwb2ludGVyLgogICAKMTk5OS0wOC0yNCAxMjo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IGNvcnJlY3Qgc3lzT1JUYWJsZSBlbnRyeS4KICAgCjE5OTktMDgtMjQgMTA6MjUgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0odGVzdGluZy9ldmFsX3Rvb2xzKSAtIGxldCBzb21lIChBSVgpIGFnZW50cyBzZXR0bGUgYmVmb3JlIGZpcmluZyByZXF1ZXN0cy4KICAgCjE5OTktMDgtMjQgMDY6MTkgIG1zbGlmY2FrCgogICAqIHRlc3RpbmcvOiBSVU5URVNUUywgVC5jLCBldGltZXRlc3QuYywKICAga2V5bWFuYWdldGVzdC5jLCBtaXNjdGVzdC5jLCBzY2FwaXRlc3QuYzoKCiAgIEFkZCAiLiIgdG8gUEFUSCBmb3IgUlVOVEVTVFM7IERyb3Agb3B0cmVzZXQgdG8gYnVpbGQgbW9zdCBwbGF0Zm9ybXMKICAgCjE5OTktMDgtMjQgMDU6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFJlbW92ZSBBU05fU0hPUlRfTEVOIGhhY2sgLSBrbm93biB0byBkdW1wIGNvcmUgaW4gYWdlbnQuCiAgIAoxOTk5LTA4LTI0IDA0OjQ0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywKICAgc25tcF9sb2dnaW5nLmM6CgogICBDbGVhbiBDUnMgZnJvbSByZWFkX2NvbmZpZyxzbm1wX2xvZ2dpbmc7IGNvbW1lbnQgZGVmaW5lIFVTRV9BU05fU0hPUlRfTEVOLgogICAKMTk5OS0wOC0yMyAxNjo0NCAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBzbm1wdXNtLjEgbWFudWFsIHBhZ2UuCiAgIAoxOTk5LTA4LTIzIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgRkFROgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAgKQogICAKMTk5OS0wOC0yMyAxNjoxNyAgaGFyZGFrZXIKCiAgICogSU5TVEFMTDoKCiAgIC0gKElOU1RBTEwpOiByZW1vdmUgdmVyc2lvbiBzcGVjaWZpYyBpbmZvcm1hdGlvbgogICAKMTk5OS0wOC0yMyAxNjoxMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDI4c25tcHYzZ2V0ZmFpbDoKCiAgIC0gKFQwMjhzbm1wdjNnZXRmYWlsKTogc25tcHYzIGdldCBmYWlsdXJlIHRlc3QuCiAgIAoxOTk5LTA4LTIzIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiB2ZXJzaW9uIHVwZGF0ZQogICAKMTk5OS0wOC0yMyAxNTozMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgSEFDSyEgZml4dXAgc2hvcnQgbGVuZ3RoIChmaXJzdCBwdXQgY29ycmVjdCBjb21tdW5pdHkgc3RyaW5nIGluIHBkdS0+ICkuCiAgIAoxOTk5LTA4LTIzIDE0OjAyICBtc2xpZmNhawoKICAgKiBGQVEsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIERlc2NyaWJlIFVTRV9BU05fU0hPUlRfTEVOIGluIEZBUSwgYW5kIGltcGxlbWVudCBpbiBfc25tcF9idWlsZC4KICAgCjE5OTktMDgtMjMgMTM6NTQgIG5iYQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcF92YXJzLmM6IG1vdmUgc29tZSAtdiBsb2dnaW5nIHRvIGEgbW9yZSByYXRpb25hbAogICAJcGxhY2UuCiAgIAoxOTk5LTA4LTIzIDEyOjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIC0gKHByb3RvY29sLmMpOiBhbGxvdyBOVUxMIHN0cmluZ3MgaW4gYWdlbnRYIHBhY2tldHMuCiAgIAoxOTk5LTA4LTIzIDA5OjAyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIFRlc3QgcG9pbnRlciBiZWZvcmUgZGVyZWZlcmVuY2UgaW4gdXNtX2ZyZWVfdXNlcgogICAKMTk5OS0wOC0yMyAwOTowMiAgbXNsaWZjYWsKCiAgICogUkVBRE1FLndpbjMyOgoKICAgU3BlbGwgY2hlY2s6IHNpbWlsYXIKICAgCjE5OTktMDgtMjMgMDk6MDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYywKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBXaW4zMiBidWlsZCBmaXhlcwogICAKMTk5OS0wOC0yMyAwNzowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBhbnNpIG1lbnRpb25lZC4KICAgCjE5OTktMDgtMjMgMDY6MTQgIG1zbGlmY2FrCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCB3aW4zMi9jb25maWcuaDoKCiAgIFJlbW92ZSBsYXN0IHZlc3RpZ2VzIG9mIGNvbmZpZ19sb2FkX21pYgogICAKMTk5OS0wOC0yMiAyMzoxNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgIC0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jOiBmYWlsdXJlIHdoZW4gY2xvc2luZyBmaXJzdCBhZ2VudHMgc2Vzc2lvbgogICAJKHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUpLgogICAKMTk5OS0wOC0yMiAxNzo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHZlcnNpb24gLT4gdV9sb25nLgogICAKMTk5OS0wOC0yMiAxNzo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTktMDgtMjIgMTc6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gLS13aXRob3V0LWR1bW15LXZhbHVlcyBpcyBkZWZhdWx0IGFnYWluLgogICAgIC0gY2xlYW51cCBvZiAtLWhlbHAgc3R1ZmYuCiAgICAgLSBmaXggb2YgcGVyaXN0ZW50IGRpcmVjdG9yeSBjcmVhdGlvbi4KICAgCjE5OTktMDgtMjIgMTc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvOiBJUEZXQ0hBSU5TLU1JQi50eHQsIFJFQURNRQosIGlwZndjX2tlcm5lbF9oZWFkZXJzLmgsIGlwZndjaGFpbnMuYywKICAgaXBmd2NoYWlucy5oLCBsaWJpcGZ3Yy5jLCBsaWJpcGZ3Yy5oOgoKICAgLSAoaXBmY2hhaW5zKTogcmVtb3ZlZCBmcm9tIGRpc3RyaWJ1dGlvbi4gIE5ld2VyIG9uZSBpbiBmdHAncyBjb250cmliIGRpci4KICAgCjE5OTktMDgtMjAgMTc6MTAgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgKLCBGQVE6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU3ICkKICAgCjE5OTktMDgtMjAgMTc6MDggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbGFzdCBtaW51dGUgY2hhbmdlcwogICAKMTk5OS0wOC0yMCAxNjozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9hcGkuaCwgc25tcF9hdXRoLmMsCiAgIHNubXBfaW1wbC5oOgoKICAgLSAoc25tcF9hcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oLCBhc24xLmMpOiA2NGJpdCBjbGVhbnVwLgogICAKMTk5OS0wOC0yMCAxMzo1NiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZiwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmgsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtIChzbm1wLmNvbmYuNS5kZWYsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9sb2dnaW5nLmMpOgogICAgIC0gdHVybiBvZmYgdGltZSBzdGFtcCBsb2dnaW5nIGJ5IGRlZmF1bHQuICBJdCBtdXN0IGJlIGV4cGxpY2l0bHkKICAgICAgIHJlcXVlc3RlZCBpbiB0aGUgc25tcC5jb25mIGZpbGUgdG8gdHVybiBpdCBvbi4KICAgICAgICh0aGUgcmVhc29uIGlzIHRoYXQgYSBsb3Qgb2YgbG9nZ2luZyBpcyBpbmNyZW1lbnRhbCBpbiBuYXR1cmUgYW5kCiAgICAgICBpcyBub3QgbGluZSBidWZmZXJlZCBiZWZvcmUgYmVpbmcgc2VudCB0byB0aGUgbG9nZ2luZyByb3V0aW5lcy4KICAgICAgIFRoZSBvdGhlciBzb2x1dGlvbiBpcyB0byBoYXZlIHRoZSBsb2dnaW5nIHJvdXRpbmVzIGRldGVjdCB3aGVuIHRvCiAgICAgICBwcmludCB0aW1lc3RhbXBzIGJ5IHdhdGNoaW5nIG91dCBmb3IgXG4ncy4gIEJ1dCwgbm90IHRoaXMgcm91bmQuCiAgIAoxOTk5LTA4LTIwIDEzOjQzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jLAogICBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmg6CgogICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6CiAgICAgLSBtYWtlIGxvZ2dpbmcgb2YgdGltZXN0YW1wcyBvcHRpb25hbCBieSBhIHNubXAuY29uZiBkaXJlY3RpdmUuCiAgIAoxOTk5LTA4LTIwIDAzOjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgLSBhZ2VudHgvKjogdmFyaW91cyBwcm90b3R5cGUgZml4ZXMsIHRvIGtlZXAgbnVtYmVyIG9mIHdhcm5pbmdzIGRvd24KICAgCjE5OTktMDgtMTkgMTY6MDkgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYzoKCiAgIC0gKHNubXBnZXQuYywgc25tcGdldG5leHQuYywgc25tcHNldC5jKTogUGF0Y2ggZnJvbSBkbGVuZ2VsQGhvbWUuY29tOgogICAgIC0gY2hlY2sgYXJndW1lbnQgY291bnQgZm9yIG1pbmltdW0gbnVtYmVyLgogICAKMTk5OS0wOC0xOSAxNDowOSAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSBzbm1wX2FwaS4/LCBzbm1wZC5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYzogcmVpbnN0YXRlIGFnZW50X2FkZHIgaW4KICAgCXRoZSBwZHUgc3RydWN0dXJlICh1c2VkIGZvciB2MSB0cmFwcykuCiAgIAoxOTk5LTA4LTE5IDEwOjQwICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gc25tcGQuYzogcmVtb3ZlIHNvbWUgc3VwZXJmbHVvdXM6IGZyb20gc25tcF9sb2dfcGVycm9yLgogICAJTG9nIHdoZW4gc25tcGQgcmVjb25maWd1cmVzIGZvbGxvd2luZyBhIFNJR0hVUAogICAKMTk5OS0wOC0xOSAxMDozOCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSBzbXV4LmM6IHJlbW92ZSBzb21lIGV4dHJhbmVvdXMgXG4gZnJvbSBzbm1wX2xvZ19wZXJyb3IgY2FsbHMuCiAgIAoxOTk5LTA4LTE5IDEwOjM4ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBzbm1wX2FwaS5jOgljb3JyZWNseSBjYWxsIHByZS1wYXJzZSBob29rLCBhbHNvIHdoZW4gbm90IGRlYnVnZ2luZwogICAJKHRoaXMga2lsbGVkIHRoZSBsaWJ3cmFwIGNoZWNrIGluIHNubXBkKQogICAKMTk5OS0wOC0xOSAwMjozNSAgbmJhCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIC0gc25tcF9sb2dnaW5nLmMsIGFnZW50L3ZhcmlvdXM6IHJlaW5zdGF0ZSAtYSBhbmQgLVYgbG9nZ2luZyAoYWxtb3N0KS4KICAgCXRpbWVzdGFtcCBmaWxlIGFuZCBzdGRlcnIgbG9nZ2luZy4KICAgCjE5OTktMDgtMTkgMDI6MzMgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogcmVtb3ZlIHNvbWUgbGVmdCBvdmVyIGRlYnVnIG91dHB1dAogICAKMTk5OS0wOC0xOCAwOTozMCAgbmJhCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQva2VybmVsLmMsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmgsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAtIChtYW55KToJY2hhbmdlIHRoZSBuYW1lcyBvZiB0aGUgbG9nZ2luZyBmdW5jdGlvbnMgdG8gYmUgc25tcF8qCiAgIAlkZWZhdWx0IGRvX3N0ZGVycl9sb2dnaW5nIHRvIDEuCiAgIAoxOTk5LTA4LTE4IDA5OjI2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaDoKCiAgIC0gaW50ZXJmYWNlcy4/OiB1cGRhdGVzIGZvciBMaW51eCB0byBoYW5kbGUgbGFyZ2UgY291bnRlcnMgYW5kIHZpcnR1YWwKICAgCWludGVyZmFjZXMuCiAgIAoxOTk5LTA4LTE4IDAyOjUxICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLAogICBzbm1wZC5jLCBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgLSBzbm1wZC5jLCBhZ2VudF9yZWFkX2NvbmZpZy4/LCB2ZXJzaW9uaW5mby5jOiBtb3ZlIHRoZSByZWNvbmZpZ3VyYXRpb24KICAgCW91dHNpZGUgdGhlIHNpZ25hbCBoYW5kbGVyLgogICAKMTk5OS0wOC0xOCAwMjo0MCAgbmJhCgogICAqIGFnZW50L3NubXBkLmM6CgogICBhZ2VudC9zbm1wZC5jOgltb3ZlIHRoZSB0ZXJtaW5hdGlvbiBwcm9jZXNzaW5nIGZyb20gdGhlIHNpZ25hbCBoYW5kbGVyCiAgIAl0byBhZnRlciB0aGUgbWFpbiBsb29wIGhhcyB0ZXJtaW5hdGVkLgogICAKMTk5OS0wOC0xNiAxNTowOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTAwYWdlbnRodXA6CgogICAtIChUMTAwYWdlbnRodXApOiBhZGRlZCBuZXcgYWdlbnQgY2FwYWJpbGl0eSB0ZXN0IHRvIHRlc3Qga2lsbCAtSFVQLgogICAKMTk5OS0wOC0xNiAxNDo1OSAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgc25tcG5ldHN0YXQvbWFpbi5jOiBlbmFibGVfc3RkZXJybG9nKCkgc28gdGhhdCB3ZSBnZXQgYW4gZXJyb3IgbWVzc2FnZQogICAJZm9yIGJhZCBob3N0IG5hbWVzLgogICAKMTk5OS0wOC0xNiAxNDo1OCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIHNubXBuZXRzdGF0L2lmLmM6IGFsbG93IC1pIGFuZCAtbyBvdXRwdXRzIGV2ZW4gd2l0aCBpbmNvbXBsZXRlIHJlc3BvbnNlcwogICAJZnJvbSBzbm1wZCAoc3VjaCBhcyBMaW51eCB0aGF0IGRvZXMgbm90IHJldHVybiBpZkluTlVDYXN0UGt0cwogICAJd2l0aCB0aGUgbmV3IERVTU1ZIHNldHVwKQogICAKMTk5OS0wOC0xMyAxNjowNiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgdmVyc2lvbi5oLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNiApCiAgIAoxOTk5LTA4LTEzIDE2OjA1ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICAtIChyZW1vdmUtZmlsZXMpOiByZW1vdmUgdGhlIElTU1VFUyBmaWxlIGZvciByZWxlYXNlcy4KICAgCjE5OTktMDgtMTMgMTY6MDMgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICAtIChURVNUQ09ORi5zaCk6IHN0b3JlIHRoZSBwZXJpc3RlbnQgZGF0YSBpbiBhIHRlbXBvcmFyeSBmaWxlLiAgcmVhbGx5LgogICAKMTk5OS0wOC0xMyAxNTo0OCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwKLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLCBUMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICBUMDMwc25tcHYzdXNlcmNyZWF0aW9uOgoKICAgLSAoVDAwM3NubXB2MWdldGZhaWwsIFQwMTZzbm1wdjJjZ2V0ZmFpbCwgVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCwKICAgICBUMDE4c25tcHYxdG92MmNnZXRmYWlsLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uKToKICAgICAtIGZpeGVkIHRvIGNoZWNrIGZvciAibm9zdWNoIiBlcnJvcnMgYWN0dWFsbHkgcmV0dXJuZWQuCiAgICAgLSBzaG9ydGVuZWQgdGhlIHNubXB1c20gdGVzdCBkZXNjcmlwdGlvbi4KICAgCjE5OTktMDgtMTMgMTU6MzUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBkb24ndCByZW1vdmUgbWliX21vZHVsZV9sb2Fkcy5oLgogICAKMTk5OS0wOC0xMyAxNToyMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBjb25maWdfbG9hZF9taWIgcGFyc2luZy4KICAgCjE5OTktMDgtMTMgMTI6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBwcm9wZXJseSBkbyB3aGF0IC0td2l0aG91dC1kdW1teS12YWx1ZXMKICAgICBzaG91bGQgZG8uCiAgIAoxOTk5LTA4LTEzIDEyOjE4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIHZhcl9yb3V0ZS5jIC0gI2lmZGVmIE5PX0RVTU1ZIC0tPiAjaWYgTk9fRFVNTVkgKGxpa2UgdGhlIG90aGVyIHVzZXMpLgogICAKMTk5OS0wOC0xMyAxMTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYyk6IGRvbid0IGRvIGNhY2hpbmcgZm9yIE5PX0RVTU1ZX1ZBTFVFUy4KICAgCjE5OTktMDgtMTMgMTE6MTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9kZXZpY2UuYywgaG9zdC9ocl9wcmludC5jLAogICBob3N0L2hyX3Byb2MuYywgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3dpbnN0LmMKLCBob3N0L2hyX3N3cnVuLmMsIGhvc3QvaHJfc3lzdGVtLmMsIG1pYklJL2F0LmMKLCBtaWJJSS9pbnRlcmZhY2VzLmMsIG1pYklJL2lwLmMsCiAgIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jLAogICBtaWJJSS92YXJfcm91dGUuYzoKCiAgIChob3N0L2hyX2RldmljZS5jLGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcm9jLmMsaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGhvc3QvaHJfc3dpbnN0LmMsaG9zdC9ocl9zd3J1bi5jLCBob3N0L2hyX3N5c3RlbS5jLG1pYklJL2F0LmMsCiAgIG1pYklJL2ludGVyZmFjZXMuYyxtaWJJSS9pcC5jLCBtaWJJSS9zeXN0ZW1fbWliLmMsbWliSUkvdGNwLmMsCiAgIG1pYklJL3VkcC5jLG1pYklJL3Zhcl9yb3V0ZS5jKSAtICNpZiBOT19EVU1NWV9WQUxVRVMgKGhlbHAgb3V0IGNvbmZpZ3VyZSkKICAgCjE5OTktMDgtMTMgMDk6MzMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkb24ndCB1c2UgTk9fRFVNTVlfVkFMVUVTIGJ5IGRlZmF1bHQuCiAgIAoxOTk5LTA4LTEzIDA3OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wOC0xMyAwNzoxMiAgaGFyZGFrZXIKCiAgICogTkVXUywgUkVBRE1FLnNubXB2MywgY29uZmlndXJlLCBjb25maWd1cmUuaW4KOgoKICAgLSAoTkVXUywgUkVBRE1FLnNubXB2MywgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCiAgIAoxOTk5LTA4LTEzIDA3OjExICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogIm1ha2UgdGVzdCIgaW4gdG9wIGxldmVsIE1ha2VmaWxlLgogICAKMTk5OS0wOC0xMyAwMjo0NiAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwgaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIGlwZndjaGFpbnMvaXBmd2NoYWlucy5oLCBtaXNjL2lwZndhY2MuYywgbWlzYy9pcGZ3YWNjLmgKLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHNtdXgvc25tcF9iZ3AuYwosIHNtdXgvc25tcF9iZ3AuaCwgc211eC9zbm1wX29zcGYuYywKICAgc211eC9zbm1wX29zcGYuaCwgc211eC9zbm1wX3JpcDIuYywgc211eC9zbm1wX3JpcDIuaAo6CgogICAtIChleGFtcGxlcy91Y2REZW1vUHVibGljLltjaF0KICAgICAgaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLltjaF0gbWlzYy9pcGZ3YWNjLltjaF0KICAgICAgdGFyZ2V0L3NubXBUYXJnZXR7QWRkcixQYXJhbXN9RW50cnkuW2NoXQogICAgICBzbXV4L3NubXBfKi5bY2hdKToKICAgICAgLSBSZWdpc3RlciBtb2R1bGVzIGR5bmFtaWNhbGx5IGF0IHJ1bi10aW1lCiAgIAoxOTk5LTA4LTEzIDAyOjQ0ICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IERyb3Agc3VwcG9ydCBmb3IgJ3N0YXRpYycgbW9kdWxlIHJlZ2lzdHJhdGlvbiB2aWEgY29uZmlndXJlCiAgIAoxOTk5LTA4LTEyIDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBORVdTLCBSRUFETUU6CgogICAtIChORVdTLCBSRUFETUUpOiBtaW5vciB1cGRhdGVzLgogICAKMTk5OS0wOC0xMiAxNjo0MSAgaGFyZGFrZXIKCiAgICogRkFRLCBtYW4vc25tcGNtZC4xLCBtYW4vc25tcHRyYXAuMToKCiAgIC0gKEZBUSwgc25tcGNtZC4xLCBzbm1wdHJhcC4xKTogbWlub3IgZG9jIHVwZGF0ZXMuCiAgIAoxOTk5LTA4LTEyIDE2OjIyICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDIwc25tcHYzZ2V0LAogICBUMDIxc25tcHYzZ2V0bmV4dCwgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIC0gKFN2M2NvbmZpZywgVDAyMHNubXB2M2dldCwgVDAyMXNubXB2M2dldG5leHQsCiAgICAgVDAzMHNubXB2M3VzZXJjcmVhdGlvbik6IHRlc3QgdXBkYXRlcywgaW5jbHVkaW5nIGEgbmV3IHNubXB1c20gdGVzdC4KICAgCjE5OTktMDgtMTIgMTY6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdXNtLjE6CgogICAtIChzbm1wdXNtLjEpOiBuby1maWxsIHRoZSAuY29uZiBmaWxlIGVudHJpZXMuCiAgIAoxOTk5LTA4LTEyIDE2OjE2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmKTogdXBkYXRlZCB3aXRoIHRoZSBuZXdlciB0b2tlbiBsaXN0LgogICAKMTk5OS0wOC0xMiAxNjoxNSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXB1c20uMToKCiAgIC0gKHNubXB1c20uMSk6IGFkZGVkIHRvIGRlc2NyaWJlIHRoZSBzbm1wdXNtIGNvbW1hbmQuCiAgIAoxOTk5LTA4LTEyIDA5OjMxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0oc25tcHVzbS5jKSAtIGZpeCBwb3RlbnRpYWwgcmVwZWF0ZWQgImZyZWUiIG9uIG1hbGxvYyBmYWlsdXJlLgogICAKMTk5OS0wOC0xMSAyMTo1MyAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIHNubXBuZXRzdGF0L2lmLmM6CWhhbmRsZSBub24tY29udGlndW91cyBpZlRhYmxlLiBBbHNvIG1ha2UgdGhlCiAgIAljb3VudGVycyB1bnNpZ25lZC4KICAgCjE5OTktMDgtMTEgMjE6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGhyX3N0b3JhZ2UuYzoJcmVtb3ZlIHRvIGZvcmdvdHRlbiBkZWJ1ZyBsaW5lcy4KICAgCjE5OTktMDgtMTEgMTM6MDQgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMpOgogICAgIC0gTWFrZSBwZXJzaXN0ZW50IGNhY2hlIGNvbmZvcm0gdG8gYSBtb3JlIHNlY3VyZSB1bWFzay4KICAgCjE5OTktMDgtMTEgMTA6NTAgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjMsIGFwcHMvc25tcHVzbS5jOgoKICAgLSAoUkVBRE1FLnNubXB2Mywgc25tcHVzbS5jKTogdXNlIHNzIHNlc3Npb24gdG8gZ2V0IHByb2JlZCBlbmdpbmVJRC4KICAgCjE5OTktMDgtMTAgMTc6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIC0gKGxjZF90aW1lLmMpOiBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjE5OTktMDgtMTAgMTc6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogcHJpbnQgLUggdXNhZ2UgdG8gc3RkZXJyLgogICAKMTk5OS0wOC0xMCAxNzoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIC0gKFJFQURNRS5zbm1wdjMpOiB1cGRhdGUuCiAgIAoxOTk5LTA4LTEwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBmb3JjZSB2MyBlbmdpbmVJRCBzZXR0aW5nIHRvIHNvbWV0aGluZyBib2d1cyB0bwogICAgIGdldCBhcm91bmQgbG9jYWwgY29uZmlndXJhdGlvbiBkYXRhIHN0b3JlIHRpbWUgc3luY2hyb25pemF0aW9uIGNvbmZsaWN0cy4KICAgCjE5OTktMDgtMTAgMTQ6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmM6CgogICAtICh1c21Vc2VyLmMpOiBVbSwgY291Z2gsIGFjdHVhbGx5IHJlZ2lzdGVyIHVzIGluIHRoZSAqaW5pdCogZnVuY3Rpb24uLi4KICAgCjE5OTktMDgtMTAgMTQ6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBwcm90ZWN0IGFnYWluc3QgZXZpbCBtaWIgbW9kdWxlcyBmcm9tIG1vZGlmeWluZwogICAgIG1lbW9yeSB0aGV5IHNob3VsZG4ndCBiZSBtb2RpZnlpbmcgeWV0LgogICAgIC0gKGlmZGVmJ2VkIGZvciBzcGVlZCBwcm9maWxpbmcgbGF0ZXIpLgogICAKMTk5OS0wOC0xMCAxMTowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBsb2cgdmVyc2lvbiBudW1iZXIgYWZ0ZXIgc3RkZXJyIGlzIG9wdGlvbmFsbHkgY2xvc2VkLgogICAKMTk5OS0wOC0xMCAxMDowNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBGaXggZm9yIGJ1aWxkIChubyBwYWdlc2l6ZSB2YXIgZGVmaW5lZCBmb3IgbGludXgpLgogICAKMTk5OS0wOC0xMCAwOToxOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmM6CgogICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jIC0gY29udmVydCBmcHJpbnRmKHN0ZGVyciB0byBzbm1wX2xvZyhMT0dfRVJSLFdBUk5JTkcpCiAgIAoxOTk5LTA4LTEwIDA0OjUwICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYwo6CgogICBpbnRlcmZhY2VzLmMgdmFyX3JvdXRlLmMgc25tcF9sb2dnaW5nLmM6IGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMTk5OS0wOC0xMCAwNDo0OCAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIHNubXBuZXRzdGF0L2lmLmM6CWZpeGVzIGZvciBzbm1wbmV0c3RhdCAtaSBvbiB2aXJ0dWFsIGludGVyZmFjZXMKICAgCjE5OTktMDgtMTAgMDQ6NDcgIG5iYQoKICAgKiBhZ2VudC9rZXJuZWwuYzoKCiAgIGFnZW50L2tlcm5lbC5jOglhYm9ydCBvbiBrdm1fb3BlbiBmYWlsdXJlcwogICAKMTk5OS0wOC0xMCAwNDo0NiAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBzbm1wbGliL21pYi5jOglmaXggaGFuZGxpbmcgb2YgbnVtZXJpYyBvaWRzIGFuZCByZXBvcnRpbmcgZXJyb3JzCiAgIAoxOTk5LTA4LTEwIDA0OjQ1ICBuYmEKCiAgICogY29uZmlndXJlLmluLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGNvbmZpZ3VyZS5pbiBjb25maWcuaC5pbiBjb25maWd1cmUgcy9uZXRic2QgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CiAgIAlzdXBwb3J0IGZvciBOZXRCU0Qvc3BhcmMgYW5kIE5ldEJTRCAxLjQKICAgCjE5OTktMDgtMDkgMTU6MDcgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wdXNtLmM6CgogICBzbm1wdXNtLmMgLSBhbHdheXMgY2xlYXIgZmllbGRfbGVuIGlmIHJlZiBpcyB2YWxpZCBwdHI7CiAgIHNubXBfYXBpLmMgLSBkb24ndCBvdmVyd3JpdGUgY29tbXVuaXR5IHBvaW50ZXIgd2l0aCBzZWN1cml0eUF1dGhQcm90byBwb2ludGVyCiAgIAoxOTk5LTA4LTA5IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIC0gKHNubXB1c20uYyk6IGVycm9yIGNoZWNrL251bGwgc2V0ICphZnRlciogZnJlZWluZyB0aGUgb2xkIG1lbW9yeS4KICAgCjE5OTktMDgtMDkgMTQ6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogbW9yZSBlcnJvciBjaGVja2luZyBpbiB0aGUgTUFLRV9FTlRSWSBtYWNyby4KICAgCjE5OTktMDgtMDkgMTM6MTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSAvZGV2L3JhbmRvbSB0ZXN0LgogICAKMTk5OS0wOC0wOSAxMTo0MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IG1kNS5jLCBzbm1wX2FwaS5jOgoKICAgLShtZDUuYykgZml4IHJlYWQgcGFzdCBlbmQgcHJvYmxlbQogICAtKHNubXBfYXBpLmMpIGZpeCBsb3NpbmcgY29tbXVuaXR5IHN0cmluZyBwcm9ibGVtCiAgIAoxOTk5LTA4LTA5IDEwOjQzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICAobWFueSk6CW51a2UgdmFyaW91cyBwcm90b3R5cGUgd2FybmluZ3MKICAgCjE5OTktMDgtMDkgMDk6NDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcC5jOgoKICAgLShzbm1wLmMpIGZpeCBidWZmZXIgb3ZlcmZsb3cgaW4geGR1bXAsIG9mIGFsbCBwbGFjZXMgKDc3IHMvYiA3ODsgdXNpbmcgODApCiAgIAoxOTk5LTA4LTA5IDA2OjU0ICBtc2xpZmNhawoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIGxpYnNubXAuZGVmIC0gcmVtb3ZlIHByaW50X29pZF9yZXBvcnQgZGlzYWJsZSBvcHRpb25zCiAgIAoxOTk5LTA4LTA5IDA2OjUyICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgc25tcGQuYyAtIGxpc3QgYWxsIG9wdGlvbnMgaW4gdXNhZ2UKICAgCjE5OTktMDgtMDkgMDY6NTAgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcGQuYwo6CgogICAgc25tcGRlbHRhLCB0cmFuc2xhdGUsIHRyYXBkKSAtIGxpc3QgYWxsIG9wdGlvbnMgaW4gdXNhZ2U7IHJlbW92ZSBkaXNhYmxlcyBmb3IgcHJpbnRfb2lkX3JlcG9ydCBpbiB0cmFuc2xhdGUuCiAgIAoxOTk5LTA4LTA5IDA2OjQ4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oCjoKCiAgIG1pYi4qLCBwYXJzZS4qIC0gbW92ZSBwcmludF9vaWRfcmVwb3J0IGFuZCBtaW5pb25zIHdob2xseSBpbnRvIG1pYi5jCiAgIAoxOTk5LTA4LTA5IDAxOjAyICBkYXZlcwoKICAgKiBGQVE6CgogICAtIChGQVEpOiBOaW5lIG5ldyBxdWVzdGlvbnMsIHBsdXMgYXNzb3J0ZWQgdHdlYWtzIGZvciB0aGUgbmV3IHJlbGVhc2UuCiAgIAoxOTk5LTA4LTA5IDAwOjI0ICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcGFyc2UuYzoJcGFyc2UgYWdlbnQgY2FwYWJpbGl0aWVzCiAgIAoxOTk5LTA4LTA2IDA3OjM2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgLShzbm1wX2xvZ2dpbmcuKikgLWFkZGVkIFJhZ25hcidzIHBhdGNoICMzIHdpdGggc21hbGwgdG91Y2hlcy4KICAgCjE5OTktMDgtMDYgMDY6MDIgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvYXQuYywgbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJJSS9pcC5jLCBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3RjcC5jLAogICBtaWJJSS91ZHAuYywgbWliSUkvdmFyX3JvdXRlLmMsIGhvc3QvaHJfZGV2aWNlLmMKLCBob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jLAogICBob3N0L2hyX3N0b3JhZ2UuYywgaG9zdC9ocl9zd2luc3QuYywgaG9zdC9ocl9zd3J1bi5jCiwgaG9zdC9ocl9zeXN0ZW0uYzoKCiAgIC0gKG1pYklJLyouYyBob3N0LyouYyk6IERvbid0IHByb3ZpZGUgImR1bW15IiB2YWx1ZXMgKHVubGVzcyBleHBsaWNpdGx5IGNvbmZpZ3VyZWQpCiAgIAoxOTk5LTA4LTA2IDA1OjU5ICBkYXZlcwoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLmluLAogICBjb25maWd1cmU6CgogICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgIC0gY29uZmlndXJlLXRpbWUgZmxhZyB0byBjb250cm9sIHByb3Zpc2lvbiBvZiAiZHVtbXkiIHZhbHVlcwogICAKMTk5OS0wOC0wNSAxMToxMSAgbXNsaWZjYWsKCiAgICogbWFuL3NubXBfYXBpLjM6CgogICBzbm1wX2FwaS4zIC0gZGVzY3JpYmUgc25tcF9lcnJvcigpLCByZXBsYWNlcyBzbm1wX2Vycm5vIGFuZCBzbm1wX2dldF9lcnJubygpCiAgIAoxOTk5LTA4LTA1IDEwOjQ0ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBhZ2VudHgvY2xpZW50LmMgLSByZW1vdmUgcmVmcyB0byBzbm1wX3N5bmNoe3NldHVwLHJlc2V0fSBvcmlnaW5hbCB2ZXJzaW9uCiAgIAoxOTk5LTA4LTA1IDAzOjI1ICBtc2xpZmNhawoKICAgKiBjb25maWcuc3ViOgoKICAgY29uZmlnLnN1YiAtIHBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbiB0byBzdXBwb3J0IEhQVVggMTEKICAgCjE5OTktMDgtMDQgMTI6MzMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBfYXBpLmMgLSBkdW1teSBmdW5jdGlvbnMgc25tcF9zeW5jaF97c2V0dXAscmVzZXR9IGFuZCBzbm1wX2dldF9lcnJuby4KICAgCjE5OTktMDgtMDQgMDk6MTcgIG1zbGlmY2FrCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLShjb25maWd1cmUqKSAtIEtlbiBIb3Juc3RlaW46IGZpeCB0ZXN0IHh4Z2V0aG9zdGJ5bmFtZSwgeHhnZXRzZXJ2YnluYW1lLgogICAKMTk5OS0wOC0wNCAwNTowMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgdW5kbyBwYXRjaCBhcm91bmQgU29sYXJpcycgY29uZmlndXJlIGZhaWx1cmUgdG8gcmVnaXN0ZXIgSEFWRV9HRVRIT1NUQllOQU1FLgogICAKMTk5OS0wOC0wNCAwMzo0OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICAtKHNtdXguYykgLSBwYXRjaCBzdXBwbGllZCBieSBOaWNrIEFtYXRvIHRvIGZpeCBBU05fSVBBRERSRVNTIHBhcnNlLgogICAKMTk5OS0wOC0wNCAwMTo0NiAgZGF2ZXMKCiAgICogbWlicy9VQ0QtREVNTy1NSUIudHh0OgoKICAgLSAobWlicy9VQ0QtREVNTy1NSUIudHh0KTogUmUtcmVzb2x2ZSBmaWxlICYgdWNkRGVtbyBPSUQgY29uZmxpY3QKICAgCjE5OTktMDgtMDMgMTQ6MDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgc25tcF9kZWJ1Zy5jIC0gc2lnbmVkIGNvbXBhcmlzb24gZm9yIGxlbiBpbiBkZWJ1Z21zZ19oZXh0bGkuCiAgIAoxOTk5LTA4LTAzIDEyOjUzICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIHNubXBfZGVidWcuaCAtIGZpeCAid2FybmluZzogQU5TSSBDIGZvcmJpZHMgY29uZGl0aW9uYWwgZXhwciB3aXRoIG9ubHkgb25lIHZvaWQgc2lkZSIuCiAgIAoxOTk5LTA4LTAzIDA4OjM3ICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICBSRUFETUUud2luMzIgLSBydW50aW1lIGxpYiBhbmQgZGVidWcgaW5mbyBjb3VydGVzeSBvZiBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTA4LTAzIDA3OjU4ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHZhY21fdmFycy5jIC0gY29weSBjb21tdW5pdHkgc3RyaW5nLCBudWxsIHRlcm1pbmF0ZSwgdGhlbiBkZWJ1ZyBwcmludAogICAKMTk5OS0wOC0wMyAwNzowMyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICBzbm1wX2RlYnVnLmggLSBtb3ZlIERFQlVHVFJBQ0UgZnJvbSBkZWJ1Z21zZ19oZXh0bGkgdG8gREVCVUdEVU1QU0VUVVAKICAgCjE5OTktMDgtMDMgMDc6MDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgc25tcF9kZWJ1Zy5jIC0gcmVtb3ZlIHRyYWNlIG1lc3NhZ2VzIGZyb20gZGVidWdtc2dfaGV4dGxpLgogICAKMTk5OS0wOC0wMyAwNjo1OSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBhc24xLmMgLSBmaXggb3V0LW9mLWJvdW5kIGFycmF5IHdyaXRlIGFuZCBtZW1vcnkgbGVhayBpbiBwYXJzaW5nIHN0cmluZ3MuCiAgIAoxOTk5LTA4LTAzIDA0OjQ2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBzbm1wX2FwaS5jIC0gcmVtb3ZlICJCWSIgZnJvbSBIQVZFX0dFVEhPU1RCWU5BTUUgKFNvbGFyaXMgMi41LjEgd3JvbmchKQogICAKMTk5OS0wOC0wMiAyMjoyOSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmg6CgogICBzbm1wX2RlYnVnIC0gREVCVUdNU0cgbWFjcm9zIGNhbGwgc25tcF9nZXRfZG9fZGVidWdnaW5nIGJlZm9yZSBpbnZva2luZyBkZWJ1Z21zZyogZnVuY3Rpb25zLgogICAKMTk5OS0wOC0wMiAwNDozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcGFyc2UgLSBzaGFtZSBvbiBtZSBmb3Igbm90IGNvbXBpbGUgdGVzdGluZyBmaXJzdCEKICAgCjE5OTktMDgtMDIgMDQ6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHBhcnNlLmM6CgogICBhc24xLCBwYXJzZSkgZml4ZXMgc3VwcGxpZWQgYnkgTWFya2t1IExhdWtrYW5lbiAoTUpTLXVzZSB4Y2FsbG9jIGluIHBhcnNlKQogICAKMTk5OS0wNy0zMCAxNDoxOSAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIFJFQURNRQosIEZBUToKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTUgKQogICAKMTk5OS0wNy0zMCAxNDoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCiAgIAoxOTk5LTA3LTMwIDE0OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSAvdmFyL3VjZC1zbm1wIGV4aXN0LiAgV2Ugc2hvdWxkIGRvIGEgcGVybWlzc2lvbgogICAgIHNldCBhcyB3ZWxsLgogICAKMTk5OS0wNy0zMCAxNDoxMCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICAtIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuLgogICAKMTk5OS0wNy0zMCAxNDowOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIC0gKFJFQURNRS5zbm1wdjMpOiBnZW5lcmljIHYzIGluc3RydWN0aW9ucywgYnV0IGhhcyBlcnJvcnMuCiAgIAoxOTk5LTA3LTMwIDA4OjMyICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBubyBzdHJ1Y3Qgc29ja2FkZHJfZGwgaW4gQUlYIDMuCiAgIAoxOTk5LTA3LTMwIDA4OjAxICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBhZGQgdnNucHJpbnRmIGNoZWNrIGFuZCBIQVZFX1ZTTlBSSU5URiBjb25zdGFudAogICAKMTk5OS0wNy0zMCAwNzozMSAgZGF2ZXMKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgpOiBDaGVjayBmb3IgbGliZGIvbGliZGIxICYgbGlicnBtIHNlcGFyYXRlbHkKICAgCjE5OTktMDctMzAgMDc6MDEgIGRhdmVzCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IENoZWNrIGZvciBsaWJkYi9saWJkYjEgJiBsaWJycG0gc2VwYXJhdGVseQogICAKMTk5OS0wNy0zMCAwNjo1OCAgbXNsaWZjYWsKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgcmVmZXJlbmNlcyB0byBub24tZXhpc3RlbnQgc25tcF92YXJzX20ybS5oCiAgIAoxOTk5LTA3LTMwIDA2OjQ2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3N5c3RlbS5oOgoKICAgdXNlIHRyYWRpdGlvbmFsIEsmUiBjb21tZW50aW5nOyBub3QgYWxsICJDIiBjb21waWxlcnMgYWNjZXB0ICIvLyIgY29tbWVudHMuCiAgIAoxOTk5LTA3LTMwIDA2OjMwICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIHdpbjMyL2NvbmZpZy5oIC0gZGVmaW5lIEhBVkVfR0VUSE9TVE5BTUUKICAgCjE5OTktMDctMzAgMDY6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBzeXN0ZW0gLSB1c2Ugc2l6ZW9mCiAgIAoxOTk5LTA3LTMwIDA2OjMwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgc25tcHYzIC0ga2V5IG9mZiBIQVZFX0dFVEhPU1ROQU1FOyB1c2Ugc2l6ZW9mIGJ1ZgogICAKMTk5OS0wNy0zMCAwNjoyMyAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWdpc3RyeS5jLAogICBzbm1wX3ZhcnMuYywgc25tcF92YXJzX20ybS5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYyBhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5jIHNubXBfdmFyc19tMm0uaCk6CiAgICAgLSBSZW1vdmVkIGxhc3QgdHJhY2VzIG9mIG9ic29sZXRlIHYycGFydHkgTWFuYWdlci10by1NYW5hZ2VyIHN1cHBvcnQKICAgCjE5OTktMDctMzAgMDY6MTkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBzbm1wdjMgLSB3cmFwIHBvc3NpYmx5IHVudXNlZCB2YXJzIGluICNpZmRlZiBIQVZFX0dFVEhPU1ROQU1FCiAgIAoxOTk5LTA3LTMwIDA2OjAwICBkYXZlcwoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5jIGFnZW50L3NubXBfdmFycy5jIGFnZW50L3NubXBkLmMKICAgICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jCiAgICAgIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICAgIHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkuaCk6CiAgICAgIC0gIFJlbW92ZWQgbGFzdCB0cmFjZXMgb2YgdjJwIHN1cHBvcnQKICAgCjE5OTktMDctMzAgMDU6NDIgIG1zbGlmY2FrCgogICAqIFJFQURNRS53aW4zMiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBocl9zdG9yYWdlLmMgLSBhdXRvX25saXN0IGZvciBIUl9TVE9SRV9TSVpFCiAgIGhyX3N3cnVuLmMgLSBmaXggZ2xvYmFsIHNoYWRvdyBkZWNsCiAgIHNubXBfbG9nZ2luZy5jIC0gY2hhbmdlIGZpbHRlciBmb3Igb3BlbmxvZyBwZXIgQS4gU3ltb25zIHBhdGNoCiAgIAoxOTk5LTA3LTMwIDA0OjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICByZW5hbWUgc2QgdG8gaWZzZCAtIGF2b2lkIGdsb2JhbCBzaGFkb3cgZGVjbAogICAKMTk5OS0wNy0zMCAwNDozOSAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGRlY2wgbG9nX3BlcnJvcgogICAKMTk5OS0wNy0zMCAwNDozNyAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgcmVuYW1lIGxvY2FsIHZhciAnbGFzdCcgdG8gJ2xhc3RfaXBjaCcgLSBhdm9pZCBzaGFkb3cgZ2xvYmFsIGRlY2wKICAgCjE5OTktMDctMzAgMDQ6MDAgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2hpc3RvcnkuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wdjMuYywKICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0oYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyxhZ2VudC9oaXN0b3J5LmMsYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsc25tcGxpYi9yZWFkX2NvbmZpZy5jLHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyxzbm1wbGliL3NubXB2My5jLAogICBzbm1wbGliL3N5c3RlbS5jKSAtIHBzb3MgZGlmZnMgb2ZmZXJlZCBieSBBbnRob255IFN5bW9ucwogICAKMTk5OS0wNy0zMCAwMzo1NyAgbXNsaWZjYWsKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICBSZW1vdmVkIGhpbnQgb2YgdjJwYXJ0eSBmcm9tIGNvbW1lbnQuCiAgIAoxOTk5LTA3LTMwIDAzOjUxICBtc2xpZmNhawoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIFJlbW92ZWQgZHVwbGljYXRlIEhBVkVfR0VUPz8/QllOQU1FOyBSZW1vdmVkIHVudXNlZCBfQ1JUSU1QCiAgIAoxOTk5LTA3LTMwIDAzOjQ4ICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICBSRUFETUUud2luMzIgLSBjbGVhbmVkIHVwLCBhZGRlZCBtb3JlIGFja25vd2xlZGdlbWVudHMKICAgCjE5OTktMDctMjkgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eHguaDoKCiAgIC0gKGFnZW50eHguaCk6IHJlbW92ZWQKICAgCjE5OTktMDctMjkgMTc6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3YycGFydHkvOiBhY2xfdmFycy5jLCBhY2xfdmFycy5oLAogICBhbGFybS5jLCBhbGFybS5oLCBjb250ZXh0X3ZhcnMuYywKICAgY29udGV4dF92YXJzLmgsIGV2ZW50LmMsIGV2ZW50LmgsIHBhcnR5X3ZhcnMuYwosIHBhcnR5X3ZhcnMuaCwgdmlld192YXJzLmMsIHZpZXdfdmFycy5oOgoKICAgLSAobWliZ3JvdXAvdjJwYXJ0eSk6IHJlbW92ZWQgZmlsZXMuCiAgIAoxOTk5LTA3LTI5IDE3OjAzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IHJlbW92ZSB0cmFwX3NwZWNpYWwgc3R1ZmYuCiAgIAoxOTk5LTA3LTI5IDE2OjA1ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgdXNlIGZwdXRzLCBhcyB2c3ByaW50ZiBoYXMgYWxyZWFkeSBkb25lIHRoZSBoYXJkIHdvcmsuCiAgIAoxOTk5LTA3LTI5IDE1OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgZmx1c2ggZmlsZSBhbmQgc3RkZXJyIGFmdGVyIHdyaXRlLgogICAKMTk5OS0wNy0yOSAxNTo1MCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaDoKCiAgIC0oc25tcF9sb2dnaW5nKSBpbmNvcnBvcmF0ZSBSYWduYXIncyBpbXByb3ZlbWVudHMgd2l0aCBpbnRlcmVzdAogICAKMTk5OS0wNy0yOSAxNTowNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIGtlcm5lbC5jOgoKICAgYXV0b19ubGlzdCwga2VybmVsOiBwbGFjZSBsb2dfcGVycm9yIHRvIGNhdGNoIGVycm5vIHZhbHVlIGluIHJlcG9ydC4KICAgCjE5OTktMDctMjkgMTM6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtKGFnZW50L3NubXBkLmMpIC0gbG9nIHN0YW5kYXJkIGVycm9yIHVudGlsIGluaXQgaXMgY29tcGxldGVkLgogICAKMTk5OS0wNy0yOSAxMzoyOCAgbXNsaWZjYWsKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0oYXBwcy9NYWtlZmlsZS5pbikgLSBjb21tZW50IHVubmVlZGVkIFRSQVBTUEVDSUFMIGxpbmUKICAgCjE5OTktMDctMjkgMTI6NTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtKHNubXBfbG9nZ2luZykgLSBmaXggbG9nX3BlcnJvcgogICAKMTk5OS0wNy0yOSAwODozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsCiAgIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgbWVtb3J5X3NvbGFyaXMyOiBoYW5kbGUgbWFsbG9jIGVycm9ycwogICBrZXJuZWxfc3Vub3M1OiBzaGFyZSBrc3RhdCBmaWxkZXMgW1NIQVJFX0tTVEFUX0ZEXQogICAKMTk5OS0wNy0yOSAwMzoyOSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAtIChtaWJJSS92YWNtX3ZhcnMuYyk6IENhdGNoIHVzZSBvZiB1bmNvbmZpZ3VyZWQgRVhBTVBMRS5jb25mIGZpbGVzCiAgIAoxOTk5LTA3LTI4IDEzOjMzICBtc2xpZmNhawoKICAgKiBSRUFETUUud2luMzI6CgogICAtUkVBRE1FLndpbjMyIC0gYnVpbGQgZ3VpZGUgZm9yIFdpbjMyLiBDeWd3aW4gZnJpZW5kbHkgc2NyaXB0IGluY2x1ZGVkLgogICAKMTk5OS0wNy0yOCAwOTo0MSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIHNubXBfbG9nZ2luZy5jOiBhZGp1c3QgaGVhZGVycyBmb3IgdGhhdCBXaW4zMiBwbGF0Zm9ybS4KICAgCjE5OTktMDctMjggMDk6MDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtKHNubXBfbG9nZ2luZykgU3VwcG9ydCBocHV4OSBhbmQgc29sYXJpczIuNS4xIHdpdGggdnNwcmludGYgaW5zdGVhZC4KICAgCjE5OTktMDctMjggMDY6NDUgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogY2hhbmdlIG1haWwgYWRkciB0byB1Y2Qtc25tcC1idWdzCiAgIAoxOTk5LTA3LTI4IDAyOjQyICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMKOgoKICAgaHJfc3dydW4gLSByZXNldCBwb2ludGVyIGluIG1vZHVsZSBpbml0IChoZWxwIEhQL1VYIDkpCiAgIHNubXBfbG9nZ2luZyAtIHVzZSB2c3ByaW50ZiBmb3IgSFAvVVgtOQogICAKMTk5OS0wNy0yNyAyMzo1OCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIG1kNS5jLCBtZDUuaCwgc2NhcGkuYwosIHNubXAuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmM6CgogICAtKGtleXRvb2xzLmMsbWQ1LmMsbWQ1Lmgsc2NhcGkuYyxzbm1wLmMsc25tcF9hcGkuYyxzbm1wX2F1dGguYykgY2F0Y2ggTUQ1IGVycm9ycwogICAKMTk5OS0wNy0yNyAyMzozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0oc25tcGQuYykgaW52b2tlIGxvZyBmdW5jdGlvbnMgZnJvbSBjaGlsZCAoY29ycmVjdCBwcm9jZXNzIElEIGluIHN5c2xvZykKICAgCjE5OTktMDctMjcgMjE6MzAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICAtKHNubXBfbG9nZ2luZy5jKSBmaXggc3lzbG9nIGJ5IHZzbnByaW50ZiB0byBidWZmZXIuCiAgIAoxOTk5LTA3LTI3IDE5OjA2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLShtaWIuYykgZml4IHdhbGtpbmcgT0lEIGxlbmd0aCBwb2ludGVyLCBudW1lcmljIHN1Yi1pZCBub3QgZm91bmQKICAgaW4gcmVhZF9vYmppZCBhbmQgcGFyc2Vfc3VidHJlZS4KICAgCjE5OTktMDctMjcgMTk6MDIgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtKHNubXBfcGFyc2VfYXJncykgaW4gc25tcF9wYXJzZV9vaWQsIHRyeSBnZXRfbm9kZSBpZiByZWFkX29iamlkIGZhaWxzLgogICAKMTk5OS0wNy0yNyAxNzoxNSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBpbmNsdWRpbmcgbWliLmggcmVxdWlyZXMgc3RkaW8uaCB0byBkZWZpbmUgRklMRSAqLgogICAKMTk5OS0wNy0yNyAxNjoyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBmaXggaGVhZGVyIGR1bXAuCiAgIAoxOTk5LTA3LTI3IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBtaWIuYywgbWliLmgsIHNubXBfYXBpLmMKLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwgc25tcHVzbS5jOgoKICAgLSAoYXNuMS5jLCBtaWIuYywgbWliLmgsIHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmMpOgogICAgIC0gY2xlYW5lZCB1cCBkZWJ1Z2dpbmcgZHVtcCBvdXRwdXQuCiAgICAgLSBhZGRlZCBtb3JlIGR1bXAgcGFyc2UgaGVhZGVycyBmb3IgdjMgZHVtcHMuCiAgIAoxOTk5LTA3LTI3IDE2OjA2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtKGludGVyZmFjZXMuYykgLSBmaXggZXJyb3Igc2V0dGluZyBpZl9pYnl0ZXMgZm9yIExpbnV4IDIuMAogICAKMTk5OS0wNy0yNyAxMjoyMyAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHVzbS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLShhcHBzOmVuY29kZV9rZXljaGFuZ2UuYyxzbm1wZGVsdGEuYyxzbm1wdGFibGUuYywgc25tcHVzbS5jOwogICBzbm1wbGliOnJlYWRfY29uZmlnLmMsc25tcHYzLmM7IHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKSAtCiAgICBhZGp1c3QgaGVhZGVycywgYnVpbGQgV2luMzIgc25tcHVzbStlbmNvZGVfa2V5Y2hhbmdlCiAgIAoxOTk5LTA3LTI3IDEyOjAwICBtc2xpZmNhawoKICAgKiB3aW4zMi86IHdpbjMyLmRzdywgZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcAosIHNubXB1c20vc25tcHVzbS5kc3A6CgogICAtKGVuY29kZV9rZXljaGFuZ2UuZHNwLHNubXB1c20uZHNwKSAtYnVpbGQgdXNpbmcgY29tbW9uIFdpbjMyIGNvbXBpbGVyCiAgIAoxOTk5LTA3LTI3IDA5OjQwICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYywgc3ViYWdlbnQuYzoKCiAgIC0obWFzdGVyLmMsIHN1YmFnZW50LmMpIHVuLWNvbW1lbnQgaW5pdF9tYXN0ZXIgYW5kIGluaXRfc3ViYWdlbnQuCiAgIAoxOTk5LTA3LTI3IDA5OjMyICBtc2xpZmNhawoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIC0oYWdlbnQva2VybmVsLmMsYWdlbnQvc25tcGQuYyxhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyxhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLGFwcHMvc25tcGRlbHRhLmMsYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYyxhcHBzL3NubXBzZXQuYyxhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYyxhcHBzL3NubXB0ZXN0LmMsYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLGFwcHMvc25tcHVzbS5jLGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyxzbm1wbGliL3BhcnNlLmMsc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3NubXB2My5jKSBmaXggc25tcF9zZXNzX3BlcnJvciB1c2U7IHVzZSBsb2dfcGVycm9yIGZvciBwZXJyb3IKICAgCjE5OTktMDctMjcgMDc6NTAgIG1zbGlmY2FrCgogICAqIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsCiAgIGFnZW50L2RsbW9kcy9leGFtcGxlLmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICAtKGFnZW50L2tlcm5lbC5jLGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYyxhZ2VudC9kbG1vZHMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYyxhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyxhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyxhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyxhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYyxhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsCiAgIHNubXBsaWIvYXNuMS5jLHNubXBsaWIvc2NhcGkuYyxzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCkgIEVSUk9SX01TRywgcHJpbnRmIC0tPiBERUJVR01TR1RMCiAgIAoxOTk5LTA3LTI3IDA2OjM4ICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYywgZXJyb3JtaWIuYywKICAgZXh0ZW5zaWJsZS5jLCBmaWxlLmMsIGhwdXguYywgbG9hZGF2ZS5jLAogICBtZW1vcnkuYywgbWVtb3J5X2ZyZWVic2QyLmMsIG1lbW9yeV9zb2xhcmlzMi5jLAogICByZWdpc3RyeS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvKi5jKTogdHdlYWsgcmVnaXN0cnkgbGFiZWxzCiAgIAoxOTk5LTA3LTI3IDA0OjI0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgaW5jbHVkZSBuZXQvaWZfZGwuaCBzdWdnZXN0ZWQgYnkgVG9tIEl2YXIgSGVsYmVra21vCiAgIAoxOTk5LTA3LTI2IDE3OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmg6CgogICAtIChzY2FwaS5oKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gc2l6ZV90IGZpeC4KICAgCjE5OTktMDctMjYgMTc6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBrZXl0b29scy5oLCBwYXJzZS5jLAogICBzY2FwaS5jOgoKICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCwgcGFyc2UuYywgc2NhcGkuYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIHNpemVfdCBjaGFuZ2VzLgogICAKMTk5OS0wNy0yNiAxNzowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gdmFyaWFibGUgbmFtaW5nIGNoYW5nZS4KICAgCjE5OTktMDctMjYgMTU6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTA3LTI2IDE1OjEyICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIHNubXAuYywgc25tcF9hcGkuYwosIHNubXBfYXV0aC5jLCBzbm1wdXNtLmM6CgogICAtKGFzbjEuYyxhc24xLmgsc25tcC5jLHNubXBfYXBpLmMsc25tcF9hdXRoLmMsc25tcHVzbS5jKSBtb3JlIGRldGFpbGVkIHBhcnNlIGVycm9yIG1lc3NhZ2VzLgogICAKMTk5OS0wNy0yNiAxNDozMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogQklUX3N0cmluZzogLT4gQklUUzoKICAgCjE5OTktMDctMjYgMTE6NTEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHZlcnNpb24uaCwgRkFRLCBSRUFETUUsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTQgKQogICAKMTk5OS0wNy0yNiAwOToxNCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiB1cGRhdGVkIGEgYml0CiAgIAoxOTk5LTA3LTI2IDA5OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgdGVzdGluZy9NYWtlZmlsZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4KOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCiAgIAoxOTk5LTA3LTI2IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBtaWJzL1NOTVB2Mi1DT05GLnR4dDoKCiAgIC0gKFNOTVB2Mi1DT05GLnR4dCk6IHJlbW92ZWQgYm9ndXMgSU1QT1JUUyBjbGF1c2UKICAgCjE5OTktMDctMjQgMDg6MTEgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICAtKG1kNS5jKSAtIHdyYXAgdW51c2VkIE1ENXByaW50IHdpdGggU05NUF9URVNUSU5HX0NPREUgaWZkZWYKICAgCjE5OTktMDctMjQgMDg6MDUgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBjYWxsYmFjay5oLCBkZWZhdWx0X3N0b3JlLmgsIHNubXBfYWxhcm0uaAosIHNubXBfbG9nZ2luZy5oOgoKICAgLShjYWxsYmFjay5oLGRlZmF1bHRfc3RvcmUuaCxzbm1wX2FsYXJtLmgsc25tcF9sb2dnaW5nLmgpIGV4dGVybiAiQyIgd3JhcHBlZAogICAKMTk5OS0wNy0yNCAwNzo0NSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLShzbm1wX2NsaWVudC5jKSAtIHVzZSBTRVRfU05NUF9FUlJPUiBmb3IgcmVzdG9yZWQgc25tcF9lcnJubyBzZXRzLgogICAKMTk5OS0wNy0yNCAwNzoxOCAgbXNsaWZjYWsKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtKGxpYnNubXAuZGVmKSAtIGFkZCBkZWNscyBmb3IgbmV3IGVycm9yIGxvZ2dpbmcgZnVuY3Rpb25zLgogICAKMTk5OS0wNy0yNCAwNzoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtKGFzbjEuYykgLSBmaXggY29tcGFyZSBlcnJvciBhdCBsaW5lIDM4NjsgcmVtb3ZlIHVudXNlZCB2YXJzIGVsc2V3aGVyZQogICAKMTk5OS0wNy0yMyAxNToyMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYwosIGFwcHMvc25tcHdhbGsuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsCiAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB0cmFwZC5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsCiAgICAgc25tcF9jbGllbnQuYyk6CiAgICAgLSBtYWtlIGFuZCB1c2Ugc25tcF9zZXNzX3BlcnJvcihzdHIsIHNlc3MpIGZvciBlcnJvciBwcmludGluZy4KICAgCjE5OTktMDctMjMgMTQ6MzEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBULnNoLCBUMi5zaCwgZGVtby5yZW1vdGUsIGRlbW8yCiwgZGVtbzIuZnVuY3Rpb25zLCBkZW1vMi5zZXR1cGZpbGU6CgogICAtIChULnNoLCBUMi5zaCwgZGVtby5yZW1vdGUsIGRlbW8yLCBkZW1vMi5mdW5jdGlvbnMsIGRlbW8yLnNldHVwZmlsZSk6CiAgICAgLSByZW1vdmVkIHNvbWUgdW4tbmVlZGVkIG9sZGVyIGRlbW8gZmlsZXMuCiAgIAoxOTk5LTA3LTIzIDE0OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsCiAgIHRlc3RzL1QwMDFzbm1wdjFnZXQsIHRlc3RzL1QwMDJzbm1wdjFnZXRuZXh0LAogICB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCwgdGVzdHMvVDAxNHNubXB2MmNnZXQsCiAgIHRlc3RzL1QwMTVzbm1wdjJjZ2V0bmV4dCwgdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsLAogICB0ZXN0cy9UMDE3c25tcHYyY3RvdjFnZXRmYWlsLCB0ZXN0cy9UMDE4c25tcHYxdG92MmNnZXRmYWlsCiwgdGVzdHMvVDAyMHNubXB2M2dldCwgdGVzdHMvVDAyMXNubXB2M2dldG5leHQsCiAgIHRlc3RzL1QwMjJzbm1wdjNnZXRNRDUsIHRlc3RzL1QwMjNzbm1wdjNnZXRNRDVERVM6CgogICAtIChURVNUQ09ORi5zaCwgZXZhbF90b29scy5zaCwgVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsCiAgICAgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LCBUMDE1c25tcHYyY2dldG5leHQsCiAgICAgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLCBUMDE4c25tcHYxdG92MmNnZXRmYWlsLAogICAgIFQwMjBzbm1wdjNnZXQsIFQwMjFzbm1wdjNnZXRuZXh0LCBUMDIyc25tcHYzZ2V0TUQ1LAogICAgIFQwMjNzbm1wdjNnZXRNRDVERVMpOiBzdXBwb3J0IGEgU05NUF9GTEFHUyBlbnYgdmFyaWFibGUuCiAgIAoxOTk5LTA3LTIzIDE0OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGluaXQgZGVidWdnaW5nLgogICAKMTk5OS0wNy0yMyAxNDoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXBfYXBpLmMKLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmg6CgogICAtIChhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9pbXBsLmgpOgogICAgIC0gcmV2ZXJ0IHRvIG5vbi1kcGFyc2UgdmVyc2lvbnMgb2YgYXNuIGRlY29kaW5nLgogICAKMTk5OS0wNy0yMyAxMzoyMSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgLSAoZXZhbF90b29scy5zaCk6IGEgbGl0dGxlIG1vcmUgdmVyYm9zZSBhYm91dCB3aGF0IGlzIHJ1bm5pbmcuCiAgIAoxOTk5LTA3LTIzIDEzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzoga2V5dG9vbHMuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYwosIHNubXBfYXBpLmM6CgogICAtIChrZXl0b29scy5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKTogc25tcF9sb2cgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA3LTIzIDEzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuYzoKCiAgIC0gKHNubXAuYyk6IHhkdW1wIGZpeGVzLgogICAKMTk5OS0wNy0yMyAxMzoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBudWxsIHRlcm1pbmF0ZSBwYXJzZWQgc3RyaW5ncywganVzdCBpbiBjYXNlLgogICAKMTk5OS0wNy0yMyAxMzoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogY2hhbmdlIG1hbGxvYyBzaXplKCkuCiAgIAoxOTk5LTA3LTIzIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IG1vcmUgc25tcF9sb2cgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA3LTIzIDEzOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuaCk6IGFkZGVkIGZvciBhIHByb3RvdHlwZSBkZWZpbml0aW9uLgogICAKMTk5OS0wNy0yMyAxMDo0MiAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBtaWJzL0hPU1QtUkVTT1VSQ0VTLU1JQi50eHQsCiAgIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0LCBtaWJzL0lGLU1JQi50eHQsCiAgIG1pYnMvSVAtTUlCLnR4dCwgbWlicy9UQ1AtTUlCLnR4dCwgbWlicy9VRFAtTUlCLnR4dAosIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMsIHNubXBsaWIvc25tcF9sb2dnaW5nLmg6CgogICAtIChhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfYWdlbnQuYywKICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywga2VybmVsX3N1bm9zNS5jLCB1dGlsX2Z1bmNzLmMsIGludGVyZmFjZXMuYywKICAgICBpbnRlcmZhY2VzLmgsIHN5c3RlbV9taWIuYywgdmFyX3JvdXRlLmMsIHNubXBFbmdpbmUuYywKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcHRyYXBkLmMsIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsCiAgICAgSUFOQWlmVHlwZS1NSUIudHh0LCBJRi1NSUIudHh0LCBJUC1NSUIudHh0LCBUQ1AtTUlCLnR4dCwKICAgICBVRFAtTUlCLnR4dCwgcGFyc2UuYywgc25tcF9hbGFybS5jLCBzbm1wX2xvZ2dpbmcuYywgc25tcF9sb2dnaW5nLmgpOgogICAgIC0gbWVyZ2UgZnJvbSBWMy1saW5lIHBvc3QgMy42LjIgdG8gY3VycmVudC4KICAgICAtIG1pc2MgYnVnIGZpeGVzLgogICAgIC0gbWFrZSBhcHBzIHR1cm4gb24gc3RkZXJyIGxvZ2dpbmcgYnkgZGVmYXVsdC4KICAgCjE5OTktMDctMjMgMTA6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGxvZyB0byBzdGRlcnIuCiAgIAoxOTk5LTA3LTIxIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5zdG9yYWdlLmNvbmYsIHRrbWliOgoKICAgLSAodGttaWIsIG1pYjJjKTogdWRwYXRlIHRvIHVzZSBpbmRleGVzIChyZXF1aXJlcyBhIHBlcmwgcGF0Y2guCiAgIAoxOTk5LTA3LTIwIDE5OjMzICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0ZXN0LmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gbm8gcHJpbnRmIGluIGFzY2lpX3RvX2JpbmFyeQogICAKMTk5OS0wNy0yMCAxODoxMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9zbm1wX2FsYXJtLmMsIHNubXBsaWIvc25tcF9kZWJ1Zy5jLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIC1taW5vciBjaGFuZ2VzIHRvIGJ1aWxkIFdpbjMyIHBsYXRmb3JtcyB1c2luZyBDeWdXaW4tZWdjcyBhbmQgTVNWQyBjb21waWxlcnMuCiAgIAoxOTk5LTA3LTIwIDE3OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oOgoKICAgLSAoc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogLVdhbGwgZml4ZXMgKEFOU0kpLgogICAKMTk5OS0wNy0yMCAxNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYwosIGRsbW9kcy9kbG1vZF9taWIuYywgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmMsCiAgIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgbWliZ3JvdXAvbWlzYy9kbG1vZC5jLAogICBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYwosIG1pYmdyb3VwL3YycGFydHkvYWxhcm0uYzoKCiAgIC0gKGF1dG9fbmxpc3QuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBkbG1vZF9taWIuYywga2VybmVsX3N1bm9zNS5jLAogICAgIGlwZndjaGFpbnMuYywgaW50ZXJmYWNlcy5jLCBkbG1vZC5jLCBzbXV4LmMsIHZlcnNpb25pbmZvLmMsCiAgICAgYWxhcm0uYyk6CiAgICAgLSBjb252ZXJ0IHNubXBfbG9nKExPR19ERUJVRykgdG8gREVCVUdNU0dUTCgpLgogICAKMTk5OS0wNy0yMCAxNDowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jLCBhZ2VudC9oaXN0b3J5LmMsIGFnZW50L2tlcm5lbC5jCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wX2RlYnVnLmMKLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jLCBzbm1wbGliL3NubXBfbG9nZ2luZy5oOgoKICAgLSAoYXV0b19ubGlzdC5jLCBoaXN0b3J5LmMsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oLCB1dGlsX2Z1bmNzLmMsIGlwZndjaGFpbnMuYywKICAgICBhdC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLAogICAgIHZhY21fdmFycy5jLCB2YXJfcm91dGUuYywgZGxtb2QuYywgc211eC5jLCBkaXNrLmMsIGV4dGVuc2libGUuYywKICAgICBsb2FkYXZlLmMsIG1lbW9yeV9zb2xhcmlzMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsCiAgICAgdmVyc2lvbmluZm8uYywgYWxhcm0uYywgZXZlbnQuYywgTWFrZWZpbGUuaW4sIHBhcnNlLmMsIHNubXAuYywKICAgICBzbm1wX2RlYnVnLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IFBhdGNoIGZyb20gUmFnbmFyCiAgICAgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKICAgICAtIGRvIGZpbGUsIHN0ZGVyciwgYW5kIHN5c2xvZyBzdXBwb3J0LgogICAKMTk5OS0wNy0xNSAwODo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsCiAgIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oOgoKICAgLSAoYXNuMS5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgpOgogICAgIC0gYmVnaW5uaW5nIG9mIGEgLURkdW1wIHZlcnNpb24gb2YgcGFja2V0IGR1bXBpbmcuCiAgICAgLSBuZWVkcyBhIGxvdCBtb3JlIHdvcmsgYW5kIGNsZWFuIHVwLgogICAgIC0gSSBuZWVkIGNvbW1lbnRzLi4uICBUZWxsIG1lIHdoYXQgeW91IHRoaW5rLi4uCiAgIAoxOTk5LTA3LTE1IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAtICh0b29scy5jKTogaW5jbHVkZSBhcnBhL2luZXQuaC4KICAgCjE5OTktMDctMTQgMTM6NDYgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtKHNubXBsaWIvbWliLmMpIC0gY29uZGl0aW9uYWxseSBhbGxvdyBmb3Igbm90IHNldHRpbmcgc25tcF9lcnJubwogICAKMTk5OS0wNy0xNCAxMzoxNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSAtIHNubXBfYWRkX3ZhciByZXR1cm5zIFNOTVBFUlI7IE1BWSBzZXQgc25tcF9lcnJubwogICAKMTk5OS0wNy0xNCAwNzoxOSAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHg6CgogICAtIChhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCk6IFdhcm5pbmcgLSBoZXJlIGJlIGRyYWdvbnMuLi4uCiAgIAoxOTk5LTA3LTEyIDA4OjMyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGV2aWNlLmMsIGhyX2RldmljZS5oLAogICBocl9kaXNrLmMsIGhyX2Rpc2suaCwgaHJfZmlsZXN5cy5jLAogICBocl9maWxlc3lzLmgsIGhyX25ldHdvcmsuYywgaHJfbmV0d29yay5oLAogICBocl9wYXJ0aXRpb24uYywgaHJfcGFydGl0aW9uLmgsIGhyX3ByaW50LmMsCiAgIGhyX3ByaW50LmgsIGhyX3Byb2MuYywgaHJfcHJvYy5oLCBocl9zdG9yYWdlLmMKLCBocl9zdG9yYWdlLmgsIGhyX3N3aW5zdC5jLCBocl9zd2luc3QuaCwKICAgaHJfc3dydW4uYywgaHJfc3dydW4uaCwgaHJfc3lzdGVtLmMsCiAgIGhyX3N5c3RlbS5oOgoKICAgLSAobWliZ3JvdXAvaG9zdC8qKTogRHluYW1pY2FsbHkgcmVnaXN0ZXIgYWxsIEhvc3QgUmVzb3VyY2UgbW9kdWxlcwogICAKMTk5OS0wNy0xMiAwNzoxNCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IHJlbW92ZSBkZXBlbmRlbmN5IG9uIHNubXBsaWIvYWdlbnR4LmgKICAgCjE5OTktMDctMTEgMTg6MzUgIG1zbGlmY2FrCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oOgoKICAgUmVkdWNlIHVzZSBvZiBzbm1wX2Vycm5vIC0gZml4IG1lbW9yeSBsZWFrLCB1bnVzZWQgdmFycywgYW5kIHVuc2V0IHZhci4KICAgCjE5OTktMDctMDkgMTY6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgLSAoc25tcF9hbGFybS5jKTogZml4IGNsaWVudHJlZyBlcnJvci4KICAgCjE5OTktMDctMDkgMTQ6MTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL2FzbjEuYywKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc3lzdGVtLmgsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtKHdpbjMyLHNubXBsaWIsYXBwcyxhZ2VudCkgYWRkIHNubXBfc29ja2V0X2xlbmd0aCB0byBoaWRlIHNvY2thZGRyX3VuOyBXaW4zMiB0b3VjaHVwcwogICAKMTk5OS0wNy0wOSAxMjoxMiAgbXNsaWZjYWsKCiAgICogUkVBRE1FLnRocmVhZCwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBtYW4vc25tcF9zZXNzX2FwaS4zLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLShzbm1wX2NsaWVudC4qKSByZW1vdmUgc25tcF9zeW5jaF9zZXR1cCwgc25tcF9zeW5jaF9yZXNldAogICAKMTk5OS0wNy0wOSAwODozNSAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFnZW50eC5jLCBhZ2VudHguaCwgYWdlbnR4X2NsaWVudC5jOgoKICAgLSAoc25tcGxpYi9hZ2VudHgqKTogTW92ZWQgQWdlbnRYIGhhbmRsaW5nIG91dCBvZiB0aGUgbWFpbiBTTk1QIGxpYnJhcnkKICAgCjE5OTktMDctMDkgMDg6MzQgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnR4LmgsIGFnZW50eC9jbGllbnQuYywKICAgYWdlbnR4L2NsaWVudC5oLCBhZ2VudHgvbWFzdGVyLmMsIGFnZW50eC9tYXN0ZXIuaAosIGFnZW50eC9tYXN0ZXJfYWRtaW4uYywgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50eC9wcm90b2NvbC5jLCBhZ2VudHgvcHJvdG9jb2wuaCwgYWdlbnR4L3N1YmFnZW50LmMKLCBhZ2VudHgvc3ViYWdlbnQuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC5oIGFnZW50L21pYmdyb3VwL2FnZW50eC8qKToKICAgICAtIE1vdmUgQWdlbnRYIHByb3RvY29sIGhhbmRsaW5nIHRvIGEgKG1vc3RseSkgc2VsZi1jb250YWluZWQgbW9kdWxlCiAgIAoxOTk5LTA3LTA5IDA4OjI3ICBkYXZlcwoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgo6CgogICAtICgqL01ha2VmaWxlLmluIHNubXBsaWIvc25tcF9hcGkuYwogICAgICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jIGFnZW50L3NubXBfYWdlbnQuW2NoXSBhZ2VudC9zbm1wX3ZhcnMuW2NoXQogICAgICBhZ2VudC9zbm1wZC5bY2hdIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgIC0gTW92ZSBBZ2VudFggaGFuZGxpbmcgb3V0IG9mIHRoZSBtYWluIFNOTVAgbGlicmFyeQogICAKMTk5OS0wNy0wOSAwMTo0OSAgZGF2ZXMKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBDbGVhbiB1cCBnaWQvdWlkIGNoYW5nZSBsb2dnaW5nCiAgIAoxOTk5LTA3LTA4IDE2OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQ6CiAgICAgLSBBZGQgb3B0aW9ucyBmb3Igc3dpdGNoaW5nIHRvIGEgZ2l2ZW4gdWlkIGFuZCBnaWQuCiAgIAoxOTk5LTA3LTA4IDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaAo6CgogICAtIChzbm1wZGVsdGEuYywgaW50NjQuYywgaW50NjQuaCk6IG1pbmltYWwgYzY0IHN1cHBvcnQgZm9yIHNubXBkZWx0YS4gVW50ZXN0ZWQuCiAgIAoxOTk5LTA3LTA4IDE0OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQKICAgCjE5OTktMDctMDggMTQ6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L3NubXAycC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC92aWV3X3BhcnNlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hY2wuYywgc25tcGxpYi9hY2wuaAosIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvY29udGV4dC5jLAogICBzbm1wbGliL2NvbnRleHQuaCwgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaAosIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3ZpZXcuYywgc25tcGxpYi92aWV3LmgKOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLAogICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCB2aWV3X3BhcnNlLmMsIHZhY21fdmFycy5jLCBzbm1wX3BhcnNlX2FyZ3MuYywKICAgICBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsIG1haW4uYywgTWFrZWZpbGUuaW4sIGFjbC5jLAogICAgIGFjbC5oLCBhY2xfcGFyc2UuYywgY29udGV4dC5jLCBjb250ZXh0LmgsIGNvbnRleHRfcGFyc2UuYywKICAgICBsaWJzbm1wLmgsIHBhcnR5LmMsIHBhcnR5LmgsIHBhcnR5X3BhcnNlLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywgdmlldy5jLCB2aWV3LmgpOgogICAgIC0gdjJwYXJ0eSBzdXBwb3J0IGlzIGZpbmFsbHkgZ29uZSEKICAgCjE5OTktMDctMDggMTQ6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTA3LTA4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWdlbnR4LmMsIGFnZW50eC5oOgoKICAgLSAoYWdlbnR4LmMsIGFnZW50eC5oKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk5LTA3LTA4IDE0OjI5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0gKGNvbmZpZy5oKTogY29tbWVudCBjaGFuZ2UgZm9yIGludGVybmFsIG1kNS4KICAgCjE5OTktMDctMDggMTQ6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuYzoKCiAgIC0gKHRvb2xzLmMpOiB0eXBvIGluICNpZmRlZi4KICAgCjE5OTktMDctMDggMDY6MjUgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc25tcF9taWIuYywgc3lzdGVtX21pYi5jOgoKICAgLSAobWliSUkvc3lzdGVtX21pYi5jIG1pYklJL3NubXBfbWliLmMpOgogICAgIC0gVXBkYXRlICd3cml0ZScgcm91dGluZXMgZm9yIFY0IGFyY2hpdGVjdHVyZSwKICAgICAgIGFuZCB1c2luZyB0aGUgZnVsbCBTRVQgbXVsdGktcGFzcyBhbGdvcml0aG0KICAgCjE5OTktMDctMDggMDI6MTYgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBSZXRhaW4gY29tbXVuaXR5IHN0cmluZyBpbiByZXNwb25zZXMKICAgCjE5OTktMDctMDcgMDY6NTQgIGRhdmVzCgogICAqIHNubXBsaWIvOiBhc24xLmMsIGFzbjEuaCwgc25tcC5jLCBzbm1wLmgKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2F1dGguYywKICAgYWdlbnR4LmMsIHNubXBfaW1wbC5oOgoKICAgLSAoYXNuMS5jIGFzbjEuaCBzbm1wLmMgc25tcC5oIHNubXBfYXBpLmMgc25tcF9hcGkuaAogICAgICBzbm1wX2F1dGguYyBzbm1wX2ltcGwuaCBhZ2VudHguYyk6CiAgICAgIC0gRmlyc3QgYXR0ZW1wdCBhdCBmb3JtYXR0ZWQgZGlzcGxheSBvZiBwYWNrZXQgZGF0YQogICAKMTk5OS0wNy0wNiAwMjoyMCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogRml4IGhhbmRsaW5nIG9mIFNOTVB2MSBub1N1Y2hOYW1lCiAgIAoxOTk5LTA3LTAyIDA4OjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHJlZ2lzdGVyIGRlYnVnZ2luZyB0b2tlbnMgd2l0aCAtRAogICAKMTk5OS0wNy0wMiAwNToxOCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhZ2VudHh4LmgsIGFnZW50eC9tYXN0ZXIuYywKICAgYWdlbnR4L21hc3Rlci5oLCBhZ2VudHgvbWFzdGVyX2FkbWluLmMsCiAgIGFnZW50eC9tYXN0ZXJfYWRtaW4uaCwgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5oOgoKICAgLSAobWliZ3JvdXAvYWdlbnR4eC5oIG1pYmdyb3VwLmFnZW50eC8pOiBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIEFnZW50WCBtYXN0ZXIKICAgCjE5OTktMDctMDIgMDU6MTYgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiBzdXBwb3J0IGxpc3RzIG9mIHNlc3Npb25zIChhbmQgc3Vic2Vzc2lvbnMpCiAgIAoxOTk5LTA3LTAyIDA1OjE1ICBkYXZlcwoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMsIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKHZhcl9zdHJ1Y3QuaCBhZ2VudF9yZWdpc3RyeS5jKToKICAgICAtIG1hcCBiZXR3ZWVuIE1JQiByZWdpc3RyYXRpb25zIGFuZCB0aGUgc3VwcG9ydGluZyAoc3ViYWdlbnQpIHNlc3Npb24KICAgCjE5OTktMDctMDIgMDU6MTMgIGRhdmVzCgogICAqIHNubXBsaWIvYXNuMS5oLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBfdmFycy5oOgoKICAgLSAoc25tcGxpYi9hc24xLmggYWdlbnQvc25tcF92YXJzLmggYWdlbnQvc25tcF9hZ2VudC5jKToKICAgICAtIGltcGxlbWVudCBhbiBpbnRlcmZhY2UgZm9yIGRlbGVnYXRpbmcgcmVxdWVzdHMgdG8gc3ViYWdlbnRzCiAgIAoxOTk5LTA3LTAyIDAyOjM5ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogRml4IHRoYXQgbGFzdCAnc2VuZHRvJyBjYXNlICpjb3JyZWN0bHkqIHRoaXMgdGltZQogICAKMTk5OS0wNy0wMiAwMjowNCAgZGF2ZXMKCiAgICogc25tcGxpYi9hZ2VudHguYzoKCiAgIC0gKGFnZW50eC5jKTogQmV0dGVyIGhhbmRsaW5nIG9mIGJ1aWxkaW5nIG51bGwgc3RyaW5ncwogICAKMTk5OS0wNi0zMCAxOTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYwosIG1pYi5oLCBzbm1wX2FwaS5jLCBzbm1wdjMuYywgc25tcHYzLmgKOgoKICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywKICAgICBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgIC0gY29udmVydCBtb3JlIHN0dWZmIHRvIHRoZSBkZWZhdWx0X3N0b3JlIHNwYWNlLgogICAKMTk5OS0wNi0zMCAxOTozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMsIHRvb2xzLmM6CgogICAtIChrZXl0b29scy5jLCB0b29scy5jKTogLVdhbGwgZml4ZXMgd2hlbiBURVNUSU5HX0NPREUgaXMgZW5hYmxlZC4KICAgCjE5OTktMDYtMzAgMDU6NDggIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBNaXNzZWQgb25lICdzZW5kdG8nIGNhbGwKICAgCjE5OTktMDYtMzAgMDU6MDYgIGRhdmVzCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBjaGVjayBmb3Igc3lzL3VuLmgKICAgCjE5OTktMDYtMzAgMDU6MDUgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQcm92aWRlIHRoZSBjb3JyZWN0IHNpemUgb2Ygc29ja2V0IGFkZHJlc3NlcwogICAKMTk5OS0wNi0zMCAwMzoyMCAgZGF2ZXMKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiBvbWl0IHJlZHVuZGFudCBkZWNsYXJhdGlvbnMKICAgCjE5OTktMDYtMzAgMDI6MzIgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBDb3JyZWN0IHRoZSBzZXR1cCBvZiBzdHJlYW0tYmFzZWQgYWNjZXB0ZWQgaW50ZXJuYWwgc2Vzc2lvbnMKICAgCjE5OTktMDYtMzAgMDE6NDggIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKTogJ2FnZW50X3NubXBfc2Vzc2lvbicgaW5pdGlhbGlzYXRpb24gcm91dGluZQogICAKMTk5OS0wNi0zMCAwMTo0NSAgZGF2ZXMKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jLCBzbm1wX3ZhcnMuaDoKCiAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgogICAKMTk5OS0wNi0zMCAwMTozNyAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaDoKCiAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgogICAKMTk5OS0wNi0yOCAxNTowMSAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogaW5pdF9zbm1wX2FsYXJtKCk7CiAgIAoxOTk5LTA2LTI4IDE1OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmM6CgogICAtICh1Y2REZW1vUHVibGljLmMpOiBjb252ZXJ0IHRvIHNpemVfdAogICAKMTk5OS0wNi0yOCAxNDo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBpbml0X3NubXBfYWxhcm0oKS4KICAgCjE5OTktMDYtMjggMDk6NTIgIGRhdmVzCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyBzbm1wX3ZhcnMuaCB2YXJfc3RydWN0LmgpOgogICAgIC0gTm9uLXJlY3Vyc2l2ZSBNSUIgcmVnaXN0cnkgaW1wbGVtZW50YXRpb24KICAgCjE5OTktMDYtMjggMDg6MzcgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My86IHNubXBFbmdpbmUuYywgc25tcEVuZ2luZS5oLAogICBzbm1wTVBEU3RhdHMuYywgc25tcE1QRFN0YXRzLmgsIHVzbVN0YXRzLmMsCiAgIHVzbVN0YXRzLmgsIHVzbVVzZXIuYywgdXNtVXNlci5oOgoKICAgLSAoc25tcEVuZ2luZS5jIHNubXBFbmdpbmUuaCBzbm1wTVBEU3RhdHMuYyBzbm1wTVBEU3RhdHMuaAogICAgICB1c21TdGF0cy5jIHVzbVN0YXRzLmggdXNtVXNlci5jIHVzbVVzZXIuaCk6CiAgICAgIC0gUnVuLXRpbWUgcmVnaXN0cmF0aW9uIChyYXRoZXIgdGhhbiB2aWEgJ2NvbmZpZ3VyZScpCiAgIAoxOTk5LTA2LTI4IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogU3YzY29uZmlnLCBUMDIxc25tcHYzZ2V0bmV4dCwKICAgVDAyMnNubXB2M2dldE1ENSwgVDAyM3NubXB2M2dldE1ENURFUzoKCiAgIC0gKFN2M2NvbmZpZywgVDAyMXNubXB2M2dldG5leHQsIFQwMjJzbm1wdjNnZXRNRDUsIFQwMjNzbm1wdjNnZXRNRDVERVMpOgogICAgIC0gMyBuZXcgdjMgdGVzdHMuCiAgIAoxOTk5LTA2LTI4IDA3OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLzogUlVOVEVTVFMsIGV2YWxfdG9vbHMuc2g6CgogICAtIChSVU5URVNUUywgZXZhbF90b29scy5zaCk6IGFjY2VwdCBhZ2VudCBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgCjE5OTktMDYtMjggMDQ6MDcgIGRhdmVzCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jOgoKICAgLSB7TWFrZWZpbGUuaW4gYWdlbnRfcmVhZF9jb25maWcuYyBzbm1wX3ZhcnMuYyBhZ2VudF9yZWdpc3RyeS5jKToKICAgICAtIENvbnNvbGlkYXRlIGFsbCByZWdpc3RyeSBoYW5kbGluZyBpbnRvIG9uZSBmaWxlCiAgIAoxOTk5LTA2LTI4IDAzOjA4ICBkYXZlcwoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oOgoKICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6IG1ha2UgU05NUCBwYWNrZXQgaGFuZGxpbmcgcm91dGluZSByZS1lbnRyYW50LgogICAKMTk5OS0wNi0yMyAxMDowOCAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IE1ha2VmaWxlLmluLCBSVU5URVNUUywgVEVTVENPTkYuc2gsCiAgIGV2YWxfdG9vbHMuc2gsIHRlc3RzL1N2M2NvbmZpZzoKCiAgIC0gKE1ha2VmaWxlLmluLCBSVU5URVNUUywgVEVTVENPTkYuc2gsIGV2YWxfdG9vbHMuc2gsIFN2M2NvbmZpZyk6CiAgICAgLSBnaXZlIFJVTlRFU1RTIGxvdHMgb2YgYXJndW1lbnRzLgogICAgIC0gIm1ha2UgdGVzdCIgbm93IGNhbGxzICJSVU5URVNUUyAtYSIKICAgCjE5OTktMDYtMjIgMDU6MjUgIG5iYQoKICAgKiBUT0RPOgoKICAgVE9ETzoJbmVlZCBmb3IgQ291bnRlcjY0IHN1cHBvcnQgaW4gc25tcGRlbHRhCiAgIAoxOTk5LTA2LTIyIDA1OjIxICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgIGludm9rZSBzbm1wX3Nlc3NfaW5pdCBiZWZvcmUgYW55IE1JQiBwcm9jZXNzaW5nIChmaXhlcyBtYXN0ZXIgYWdlbnQpLgogICAKMTk5OS0wNi0xOCAxMjozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IGFnZW50eC5jLCBhZ2VudHhfY2xpZW50LmM6CgogICAtKGFnZW50eCouYykgZml4IGhlYWRlcnMgdG8gY29tcGlsZSBvbiBDeWdXaW4sIFdpbjMyIE1TVkMrKwogICAKMTk5OS0wNi0xOCAxMDowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgLShzeXNPUlRhYmxlLmMpIGZpeCBwdHIgdGVzdAogICAKMTk5OS0wNi0xOCAwOToxNCAgZGF2ZXMKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jCiwgc25tcGQuaCwgc25tcF9hZ2VudC5oLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAtIChzbm1wZC5jIHNubXBkLmggc25tcF92YXJzLmMgc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaAogICAgICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAtIGluaXRpYWwgQWdlbnRYIHN1Yi1hZ2VudCBpbXBsZW1lbnRhdGlvbgogICAKMTk5OS0wNi0xOCAwOTowMCAgZGF2ZXMKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IHByb3RvY29sLWluZGVwZW5kZW50IG1lYW5zIG9mIGJ5cGFzc2luZyBWQUNNIGNoZWNrcwogICAKMTk5OS0wNi0xOCAwODo1NSAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFnZW50eC5jLCBhZ2VudHguaCwgYWdlbnR4X2NsaWVudC5jLAogICBzbm1wX2FwaS5oLCBNYWtlZmlsZS5pbjoKCiAgIC0gKHNubXBfYXBpLmggTWFrZWZpbGUuaW4gYWdlbnR4LmMgYWdlbnR4LmggYWdlbnR4X2NsaWVudC5jKToKICAgICAtIGJhc2ljIEFnZW50WCBwcm90b2NvbCBoYW5kbGluZwogICAKMTk5OS0wNi0xOCAwODo0OSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6CiAgICAgLSBhY2NvbW9kYXRlIHNlcnZlcnMgdGhhdCByZXF1aXJlIGFuIGFjY2Vzc2libGUgY2xpZW50LWVuZCB1bml4IHN0cmVhbSBzb2NrZXQKICAgICAgICAgICAgICAgICAoaW4gcGFydGljdWxhciwgdGhlIENNVSBBZ2VudFggbWFzdGVyIGFnZW50KQogICAKMTk5OS0wNi0xOCAwODo0NyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IHByb3RvY29sLWluZGVwZW5kZW50IG5vbi1yZXNwb25zZSBoYW5kbGluZyBpbiAnc25tcF9zZXNzX3JlYWQnCiAgIAoxOTk5LTA2LTE4IDA4OjQ0ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogTmV3IHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZQogICAKMTk5OS0wNi0xOCAwODowNCAgZGF2ZXMKCiAgICogc25tcGxpYi86IGFzbjEuaCwgc25tcF9hcGkuYzoKCiAgIC0gKGFzbjEuaCBzbm1wX2FwaS5jKTogTmV3IHByaXZhdGUgdHlwZXMgZm9yIE9JRCByYW5nZXMKICAgCjE5OTktMDYtMTggMDg6MDAgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBFbmFibGUgYWNjZXNzIHRvICJlbXB0eSIgcmVzcG9uc2UgUERVcyAoaS5lLiBoZWFkZXIgb25seSkuCiAgIAkoYWxzbyBtYWtlICdzbm1wX2Nsb25lX21lbScgYWNjZXNzaWJsZSB0byBvdGhlciBmaWxlcykKICAgCjE5OTktMDYtMTggMDc6NTYgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wLmgsIHNubXBfYXBpLmM6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyk6IGRpc3Rpbmd1aXNoIGJldHdlZW4gU05NUCBwcm90b2NvbCAmIFBEVSBoYW5kbGluZyBmbGFncwogICAKMTk5OS0wNi0xOCAwNjo1OCAgZGF2ZXMKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaDoKCiAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBuZXcgcm91dGluZSBmb3IgcmVtb3Zpbmcgc3lzT1JUYWJsZSBlbnRyaWVzCiAgIAoxOTk5LTA2LTE4IDA1OjAxICBtc2xpZmNhawoKICAgKiBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywgYXBwcy9zbm1wdXNtLmMsCiAgIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLCBzbm1wbGliL2tleXRvb2xzLmMsCiAgIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NjYXBpLmMKLCBzbm1wbGliL3NjYXBpLmgsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3N5c3RlbS5jOgoKICAgYXBwbGllZCBmaXhlcyBmcm9tIE0uIExhdWtrYW5lbgogICAKMTk5OS0wNi0xNyAxMzoxOCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMsIHNubXBsaWIvc25tcF9hbGFybS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLCB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZgosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIGZpeHVwcyB0byBidWlsZCBtb3N0IGFwcHMgdW5kZXIgV2luMzIgKE1TVkMrKyA1LjAgb3IgbGF0ZXIpCiAgIAoxOTk5LTA2LTE3IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZml4IC0taGVscC4KICAgCjE5OTktMDYtMTYgMTY6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaAo6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCk6CiAgICAgLSAyIG5ldyBzbm1wLmNvbmYgdG9rZW5zOiBkb0RlYnVnZ2luZywgZGVidWdUb2tlbnMuCiAgIAoxOTk5LTA2LTE2IDE2OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jCiwgcGFyc2UuYzoKCiAgIC0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgcGFyc2UuYyk6CiAgICAgLSBmaXJzdCB1c2FnZSBvZiB0aGUgZGVmYXVsdF9zdG9yZSgpIHJvdXRpbmVzOiBtb3ZlIGFsbCB0aGUgbWliCiAgICAgICBwYXJzZXIgdmFyaWFibGVzIHRvIGl0LCBhbmQgYWRkIHNubXAuY29uZiB0b2tlbnMgZm9yIHRoZW0uCiAgICAgICAtIHByZW1pYiBhdXRvLXJlZ2lzdHJhdGlvbiBvZiBkZWZhdWx0X3N0b3JlIG5lZWRzIGNsZWFuaW5nIHVwLi4uICBzaWdoLi4uCiAgIAoxOTk5LTA2LTE2IDA2OjU2ICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IEhvb2tzIGZvciBidWlsZGluZy9wYXJzaW5nIG5vbi1TTk1QIHBhY2tldHMKICAgCjE5OTktMDYtMTYgMDU6NDkgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBoYW5kbGUgcmVzcG9uc2VzIGluIGEgbW9yZSBwcm90b2NvbC1pbmRlcGVuZGVudCBtYW5uZXIKICAgCjE5OTktMDYtMTYgMDU6MTEgIGRhdmVzCgogICAqIHNubXBsaWIvOiBzbm1wLmgsIHNubXBfYXBpLmM6CgogICAtIChzbm1wLmggc25tcF9hcGkuYyk6IG1vdmUgUERVIHZhbGlkYXRpb24sIGV0YyBmcm9tICdzZW5kJyB0byAnYnVpbGQnIHJvdXRpbmVzCiAgIAoxOTk5LTA2LTE1IDE2OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMjBzbm1wdjNnZXQ6CgogICAtIChUMDIwc25tcHYzZ2V0KTogbmV3IHRlc3Q6ICBzbm1wZ2V0IHVzaW5nIHYzIGFuZCB1c2VyICJpbml0aWFsIi4KICAgCjE5OTktMDYtMTUgMTY6MjcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDAxc25tcHYxZ2V0LCBUMDAyc25tcHYxZ2V0bmV4dCwKICAgVDAxNHNubXB2MmNnZXQsIFQwMTVzbm1wdjJjZ2V0bmV4dDoKCiAgIC0gKFQwMDFzbm1wdjFnZXQsIFQwMDJzbm1wdjFnZXRuZXh0LCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0KToKICAgICAtIENoZWNrIGZvciBUaW1ldGlja3M6IGluIG91dHB1dCwgc2luY2Ugb3V0cHV0IGhhcyBjaGFuZ2VkIGluIDQuMC4KICAgCjE5OTktMDYtMTUgMTY6MjYgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIC0gKGV2YWxfdG9vbHMuc2gpOiBkaXNwbGF5IG1vcmUgb3V0cHV0IHN0dWZmIHdoZW4gaW4gdmVyYm9zZSBtb2RlLgogICAKMTk5OS0wNi0xNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIC0gKFRFU1RDT05GLnNoKTogc2F2ZSBwYWNrZXQgZHVtcC4KICAgCjE5OTktMDYtMTUgMTY6MjUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXggYWxsb3dlZCB6ZXJvbGVuZ3RoIHBkdS0+c2VjdXJpdHlOYW1lIHByb2JsZW0gZm9yCiAgICAgdjMgZW5naW5lSUQgZGlzY292ZXJ5IHByb2Jlcy4KICAgCjE5OTktMDYtMTUgMDg6MjcgIGRhdmVzCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBzbm1wX2FnZW50Lmg6CgogICAtIChzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oKToKICAgICAtIE1vdmUgcHJvY2Vzc2luZyBmcm9tICdoYW5kbGVfbmV4dF9wYXNzKCknIHRvICdoYW5kbGVfc25tcF9wYWNrZXQoKScKICAgCjE5OTktMDYtMTUgMDM6NTkgIGRhdmVzCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZWQgZHVwbGljYXRlIGNvZGUKICAgCjE5OTktMDYtMTEgMTc6NDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBTdjFjb25maWcsIFN2MmNjb25maWcsIFN2YW55Y29uZmlnCiwgVDAwMXNubXB2MWdldCwgVDAwMnNubXB2MWdldG5leHQsCiAgIFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE0c25tcHYyY2dldCwgVDAxNXNubXB2MmNnZXRuZXh0CiwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsOgoKICAgLSAoU3YxY29uZmlnLCBTdjJjY29uZmlnLCBTdmFueWNvbmZpZywgVDAwMXNubXB2MWdldCwKICAgICBUMDAyc25tcHYxZ2V0bmV4dCwgVDAwM3NubXB2MWdldGZhaWwsIFQwMTRzbm1wdjJjZ2V0LAogICAgIFQwMTVzbm1wdjJjZ2V0bmV4dCwgVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsLAogICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOgogICAgIC0gaW5pdGlhbCBwYXNzIG9mIHRlc3Rpbmcgc3VpdGUgdGVzdHMuLi4gIEFnYWluLCBzdGlsbCBuZWVkcyB3b3JrLgogICAKMTk5OS0wNi0xMSAxNzo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy86IFJVTlRFU1RTLCBUMi5zaCwgVEVTVENPTkYuc2gsCiAgIGV2YWxfb25lc2NyaXB0LnNoLCBldmFsX3Rvb2xzLnNoOgoKICAgLSAoUlVOVEVTVFMsIFQyLnNoLCBURVNUQ09ORi5zaCwgZXZhbF9vbmVzY3JpcHQuc2gsIGV2YWxfdG9vbHMuc2gpOgogICAgIC0gdGVzdGluZyBzdWl0ZSBzY3JpcHRzLi4uICBzdGlsbCBuZWVkIGhlYXZ5IHdvcmsuCiAgIAoxOTk5LTA2LTA5IDE4OjI5ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsIEZBUQosIElOU1RBTEwsIE5FV1MsIFJFQURNRSwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWFrZXRhcmdldCwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQva2VybmVsLmMsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIG1hbi9zbm1wZC5jb25mLjUuZGVmLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYwosIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3NubXBfYWxhcm0uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3ZhY20uYzoKCiAgIC0gKCopOiBtZXJnZWQgMy42LjIgY2hhbmdlcyBpbnRvIG1haW4gYnJhbmNoLgogICAKMTk5OS0wNi0wOSAwNjozMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IHJlb3JkZXIgUERVIGFuZCBzZXNzaW9uIGZpZWxkcyBtb3JlIGNsZWFybHkKICAgCjE5OTktMDYtMDggMDk6MzIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsCiAgIHZtc3RhdF9mcmVlYnNkMi5jOgoKICAgLSh4eF9fZnJlZWJzZDIuYykgLSBmaXggc2l6ZV90IHRvIGJ1aWxkIG9uIEZyZWVCU0QgMi4yLngKICAgCjE5OTktMDYtMDggMDg6NDMgIGRhdmVzCgogICAqIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywgc25tcGxpYi9zbm1wX2FwaS5jCiwgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jCiAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgKICAgICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oKToKICAgICAgLSAgcmVtb3ZlZCBhbGwgdXNlcyBvZiAnc3RydWN0IHBhY2tldF9pbmZvJyAoc3Vic3VtZWQgaW50byAnc3RydWN0IHNubXBfcGR1JykKICAgCjE5OTktMDYtMDggMDc6NDEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMgKFYzLWxpbmUuNCksIGhyX2ZpbGVzeXMuYwo6CgogICAtKGhyX2ZpbGVzeXMuYykgZml4IG1lbW9yeSBsZWFrIHdoZW4gSEFWRV9HRVRGU1NUQVQgaXMgZGVmaW5lZC4KICAgCjE5OTktMDYtMDcgMTM6MDQgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0oaWYuYykgY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgogICAKMTk5OS0wNi0wNyAwNzo0NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jCiwgdWRwLmM6CgogICAtKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCBpcC5jKSBjbG9uZSBmaXhlcyBmcm9tIDMuNiBsaW5lIChGcmVlQlNEMy4xKQogICAKMTk5OS0wNi0wNCAwOTo1MSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jCiwgbG9jYWwvTWFrZWZpbGUuaW46CgogICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmMsZnJlZWJzZDMuaCkgZml4IEZyZWVCU0QzLjEgaW5jbCBLZW4gS2V5J3MgdGNwL3VkcCBwYXRjaGVzCiAgIAoxOTk5LTA2LTAyIDEyOjEwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcF9hbGFybS4zOgoKICAgLSAoc25tcF9hbGFybS4zKTogZG9jdW1lbnQgdGhlIG5ldyBzbm1wX2FsYXJtKCkgY2FsbHMuCiAgIAoxOTk5LTA2LTAxIDE3OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oCiwgc25tcF9hcGkuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgLSBpbXBsZW1lbnRlZCBhIGdlbmVyaWMgYWxhcm0gaGFuZGxlciB0byByZWdpc3RlciBhbGFybSBmdW5jdGlvbnMgdG8KICAgICAgIGJlIGNhbGxlZCBiYWNrIGFmdGVyIFggcGVyaW9kIG9mIHRpbWUgYW5kIGl0IGhhbmRsZXMgZmlndXJpbmcgb3V0CiAgICAgICB3aGljaCBpcyBuZXh0IGFuZCBjYWxsaW5nIGFsYXJtKCkgYW5kIHNpZ25hbCgpIGFwcHJvcHJpYXRlbHkuCiAgIAoxOTk5LTA2LTAxIDA3OjMwICBkYXZlcwoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgpOiBTdXBwb3J0IGZvciBzdHJlYW0tYmFzZWQgc29ja2V0cwogICAKMTk5OS0wNi0wMSAwMjozMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2VuZXJhbGlzZSBoYW5kbGluZyBvZiBhZGRyZXNzZXMgKHcuci50IHNlbnRvL3JlY3Zmcm9tKQogICAKMTk5OS0wNi0wMSAwMjoxNyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2FyYmFnZSBjb2xsZWN0aW9uIGZvciBUcmFkaXRpb25hbCBTQVBJIHNlc3Npb25zCiAgIAoxOTk5LTA1LTI4IDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywKICAgZGVmYXVsdF9zdG9yZS5oOgoKICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKToKICAgICAtIGNyZWF0ZWQgZ2VuZXJpYyBkZWZhdWx0IHZhbHVlIHN0b3JhZ2Ugc3BhY2UgYW5kIHBhcnNlcnMgdG8gcmVkdWNlCiAgICAgICB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucy9ldGMgY3JlYXRlZCBmb3IgdmFsdWVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUKICAgICAgIGxpYnJhcnkuCiAgIAoxOTk5LTA1LTI4IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6IHNhdmUgYW5kIHVzZSBpbmRleCBjbGF1c2VzLgogICAKMTk5OS0wNS0yOCAwOToyNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLShzbm1wX2FwaS5jKSAtY2F0Y2ggb25lIG1vcmUgZXJyb3IgY2xvc2UgZnJvbSBzbm1wX3Nlc3NfY29weQogICAKMTk5OS0wNS0yOCAwOToxMiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU2VwYXJhdGUgb3V0IGNvcHlpbmcgYSBzZXNzaW9uIGFuZCBvcGVuaW5nIGEgbmV3IG9uZQogICAKMTk5OS0wNS0yOCAwODo1NyAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVW5peCBkb21haW4gKGRhdGFncmFtKSBzb2NrZXQgc3VwcG9ydAogICAKMTk5OS0wNS0yOCAwODoxNCAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogc2F2ZSBsb2NhbCBzb2NrZXQgYWRkcmVzcyBpbiBpbnRlcm5hbCBzZXNzaW9uIHN0cnVjdHVyZQogICAKMTk5OS0wNS0yOCAwNzowMSAgZGF2ZXMKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBwcm9ibGVtIHdpdGggbnVsbCBtYWNybwogICAKMTk5OS0wNS0yNyAxNDozNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZCBpbiBoZWxwIGxpbmUuCiAgIAoxOTk5LTA1LTI3IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wdHJhcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQuCiAgIAoxOTk5LTA1LTI3IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBuZWVkIGFuIGluaXRfbWliKCkuCiAgIAoxOTk5LTA1LTI3IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgdHJhcCBoYW5kbGVyLgogICAKMTk5OS0wNS0yNyAwNToxNiAgbXNsaWZjYWsKCiAgICogYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wdXNtLmM6CgogICAtKGVuY29kZV9rZXljaGFuZ2UsIHJlYWRfY29uZmlnLCBzbm1wdXNtKSBhQ0MgZml4ZXMgYnkgUEtZIChNYXJra3UgTGF1a2thbmVuKQogICAKMTk5OS0wNS0yNiAxNzozOCAgaGFyZGFrZXIKCiAgICogbWlicy86IElQRldBQ0MtTUlCLnR4dCAoVjMtbGluZS4yKSwgSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoSVBGV0FDQy1NSUIudHh0KTogYWRkZWQgU0VRVUVOQ0UgT0YuCiAgIAoxOTk5LTA1LTI2IDE1OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgogICAKMTk5OS0wNS0yNiAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy86IGlwZndhY2MuaCAoVjMtYjMuMiksIGlwZndhY2MuaDoKCiAgIC0gKGlwZndhY2MuaCk6IG1ha2UgaW50byBjb3VudGVycy4KICAgCjE5OTktMDUtMjYgMTU6MTggIGhhcmRha2VyCgogICAqIG1pYnMvOiBJUEZXQUNDLU1JQi50eHQgKFYzLWIzLjEpLCBJUEZXQUNDLU1JQi50eHQ6CgogICAtIChJUEZXQUNDLU1JQi50eHQpOiBjaGFuZ2UgdG8gY291bnRlcnMuCiAgIAoxOTk5LTA1LTI2IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfc3dpbnN0LmMgKFYzLWIzLjEpLCBocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiB0eXBlIHVua25vd24gaW5zdGVhZCBvZiBhcHAuCiAgIAoxOTk5LTA1LTI2IDExOjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjLzogaXBmd2FjYy5oIChWMy1iMy4xKSwgaXBmd2FjYy5oOgoKICAgLSAoaXBmd2FjYy5oKTogcHJvcGVybHkgbG9jYXRlIHRoZSBtaWIuCiAgIAoxOTk5LTA1LTI2IDA4OjE2ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgLSAoc25tcHYzLmMpIC0gaW5jbCBzeXMvdHlwZXMgdG8gZml4IEhQLVVYIDkueCBidWlsZAogICAKMTk5OS0wNS0yNCAwNTozNiAgbXNsaWZjYWsKCiAgICogY29uZmlndXJlOgoKICAgLWNvbmZpZ3VyZSAtIHNhdmUgb25lIHdoaWNoIGxvb2tzIGZvciBuZXRkYi9zb2NrZXQgaGVhZGVycwogICAKMTk5OS0wNS0yMyAwODowNCAgbWFyegoKICAgKiB0ZXN0aW5nL3BhY2tldDEudHh0OgoKICAgZmlsZSBwYWNrZXQxLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMjEgMTU6MjkgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9rZXl0b29scy5jLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXB1c20uYywgc25tcGxpYi9zeXN0ZW0uYywKICAgc25tcGxpYi90b29scy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92aWV3LmMKLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgLSBsaWJyYXJ5IGNoYW5nZXMgdG8gYnVpbGQgb24gV2luMzIuCiAgIAoxOTk5LTA1LTIxIDExOjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZik6CiAgICAgLSBjb252ZXJ0IHRvIHNpemVfdCBzdG9yYWdlcy4KICAgICAtIG1pc2MgZXZhbCBmaXhlcy4KICAgICAtIG1vcmUgY2xlYW51cCBvZiB0aGUgc3RvcmFnZSBkZWYuCiAgIAoxOTk5LTA1LTIxIDExOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhlYWRlcl9jb21wbGV4LmMsIGhlYWRlcl9jb21wbGV4Lmg6CgogICAtIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKICAgICAtIGhlYWRlcl9jb21wbGV4X3BhcnNlX29pZCgpIGNyZWF0ZWQuCiAgICAgLSBjb252ZXJ0IGV2ZXJ5dGhpbmcgdG8gc2l6ZV90LgogICAKMTk5OS0wNS0yMSAwNTo1NCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOgogICAgIC0gIE5ldyBBUEkgY2FsbCB0byBjbG9zZSBkb3duIGFsbCBvcGVuIHNlc3Npb25zCiAgICAgICAgKGFsc28gY2FsbGVkIG9uIGFwcGxpY2F0aW9uIHNodXRkb3duKQogICAKMTk5OS0wNS0yMSAwNToyNCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLShyZWFkX2NvbmZpZy5jKSBjYXN0IGZpeCBwZXIgTWFya2t1IExhdWtrYW5lbgogICAKMTk5OS0wNS0yMSAwMToyNSAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAtIChzbm1wdXNtLmMpOiBGaXggaW5jb3JyZWN0IHBvaW50ZXIgY2FzdAogICAKMTk5OS0wNS0yMCAwMzo0NiAgZGF2ZXMKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IFRlbXBvcmFyeSBmaXggdG8gc29ja2V0IGFkZHJlc3MgcHJvYmxlbXMKICAgCjE5OTktMDUtMTkgMTg6NDkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdF9yZXMuaCAoVjMtbGluZS4xKSwgaG9zdF9yZXMuaDoKCiAgIC0gKGhvc3RfcmVzLmgpIGZpeCBIQVZFX05FVF9JRl9WQVJfSCBkZWZpbmUgKHdhcyBIQVZFX05FVF9JTl9WQVJfSCkKICAgCjE5OTktMDUtMTkgMTg6MDEgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFyX3JvdXRlLmMgKFYzLWxpbmUuMiksIHZhcl9yb3V0ZS5jCjoKCiAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQogICAKMTk5OS0wNS0xOSAwODowMiAgbWFyegoKICAgKiB0ZXN0aW5nL3BrdGdlbi50eHQ6CgogICBmaWxlIHBrdGdlbi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk5LTA1LTE5IDA3OjE2ICBtYXJ6CgogICAqIHRlc3RpbmcvcGFja2V0LnR4dDoKCiAgIGZpbGUgcGFja2V0LnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMTkgMDc6MTQgIG1hcnoKCiAgICogdGVzdGluZy9wa3RnZW4ucGw6CgogICBmaWxlIHBrdGdlbi5wbCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMy4KICAgCjE5OTktMDUtMTkgMDU6MTEgIGRhdmVzCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBNb3JlIGdlbmVyYWxpc2VkIGhhbmRsaW5nIG9mIHNvY2tldCBhZGRyZXNzZXMKICAgCjE5OTktMDUtMTkgMDI6MzMgIGRhdmVzCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBBZGRpdGlvbmFsIGluY2x1ZGUgcHJvdGVjdGlvbiBlbnRyaWVzCiAgIAoxOTk5LTA1LTE4IDA5OjIzICBkYXZlcwoKICAgKiBjb25maWd1cmUuaW4sIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wdjMuYywgc25tcGxpYi9zeXN0ZW0uYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFwLmMKLCBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYzoKCiAgIC0gKGNvbmZpZ3VyZS5pbiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHYzLmMgc25tcGxpYi9zeXN0ZW0uYwogICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcGJ1bGt3YWxrLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICBhcHBzL3NubXBnZXQuYyBhcHBzL3NubXBnZXRuZXh0LmMgYXBwcy9zbm1wc2V0LmMKICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGFibGUuYyBhcHBzL3NubXB0ZXN0LmMKICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHVzbS5jIGFwcHMvc25tcHdhbGsuYwogICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jKToKICAgICAgLSAgQ2xlYW4gdXAgY29uZGl0aW9uYWxzIHByb3RlY3RpbmcgaW5jbHVkZSBmaWxlcwogICAgICAgICAgICggI2lmIEhBVkVfV0lOU09DS19IIC8gI2Vsc2UgLyAjZW5kaWYgKQogICAKMTk5OS0wNS0xOCAwOTowMSAgbXNsaWZjYWsKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtICh4eC9NYWtlZmlsZS5pbikgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gYXMgeWV0IG1pc3NpbmcgZGlzbWFuIGZpbGVzLgogICAKMTk5OS0wNS0xOCAwNjoyNiAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBNb3JlIGdlbmVyYWwgaGFuZGxpbmcgb2YgUERVIGZsYWdzCiAgIAoxOTk5LTA1LTE3IDA3OjE3ICBkYXZlcwoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jCjoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmggYWdlbnQvc25tcGQuYwogICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgIAogICAgIC0gVXNlIGEgc2luZ2xlIGFkZHJlc3MgZmllbGQgd2l0aGluIHRoZSBQRFUgc3RydWN0dXJlCiAgICAgICAgICAgICAgICAgIChvYnNvbGV0aW5nICdhZ2VudF9hZGRyJykKICAgCjE5OTktMDUtMTcgMDQ6MzYgIGRhdmVzCgogICAqIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYzoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgIGFnZW50L3NubXBkLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAKICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwogICAKMTk5OS0wNS0xNyAwNDozNCAgZGF2ZXMKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMKOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgIAogICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzZXMgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKICAgCjE5OTktMDUtMTcgMDM6MjAgIGRhdmVzCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjMtbGluZS4xKSwgc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKICAgCjE5OTktMDUtMTcgMDM6MTcgIGRhdmVzCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKICAgCjE5OTktMDUtMTQgMTM6NTkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgc25tcGxpYi9zbm1wdXNtLmMKOgoKICAgLShhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgc25tcGxpYi9zbm1wdXNtLmMpIGZpeGVzIHRvIGJ1aWxkIEhQICYgQUlYCiAgIAoxOTk5LTA1LTE0IDA5OjQ2ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiwgc25tcGxpYi9wYXJzZS5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmggYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKICAgIHNubXBsaWIvcGFyc2UuYykgbW9yZSBBTlNJLUMgdG91Y2h1cHMKICAgCjE5OTktMDUtMTQgMDY6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgKICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYwogICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBzbm1wbGliL3NubXBfYXV0aC5jKSBtb3JlIHNpemVfdCBmaXhlcwogICAKMTk5OS0wNS0xMyAwOTowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjMtbGluZS4zKSwgdmFjbV92YXJzLmMKOgoKICAgLSAodmFjbV92YXJzLmMpOiBTZXQgcG9pbnRlcnMgdG8gTlVMTCBhZnRlciBmcmVlaW5nIHRoZW0uCiAgIAoxOTk5LTA1LTEzIDAzOjUyICBkYXZlcwoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGlwLmMgKFYzLWxpbmUuMiksIGlwLmM6CgogICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQogICAKMTk5OS0wNS0xMiAxMToyMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMKOgoKICAgLShwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCiAgIAoxOTk5LTA1LTEyIDEwOjUzICBtc2xpZmNhawoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYykgY2FsbCBzbm1wX3N5bmNoX3Jlc2V0IGZyb20gc25tcF9zZXNzX2Nsb3NlCiAgIAoxOTk5LTA1LTExIDE0OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGhwdXguYywgaHB1eC5oOgoKICAgLSAoaHB1eC5jLCBocHV4LmgpOiBpbnQgLT4gc2l6ZV90IGNvbnZlcnNpb25zLgogICAKMTk5OS0wNS0xMSAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICAtIChtZW1vcnkuaCk6IHJlbW92ZSBleHRlcm4uCiAgIAoxOTk5LTA1LTExIDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtICh1dGlsX2Z1bmNzLmMpOiByZWFkIHJldHVybnMgc3NpemVfdCBub3Qgc2l6ZV90LgogICAKMTk5OS0wNS0xMCAxNDo0OSAgbmJhCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHNubXBsaWIvc25tcF9hcGkuYzogTWl4LXVwIG9mIFYxX0lOX1YyL1YyX0lOX1YxIGVycm9yIGNvZGUgd2hlbiBHRVRCVUxLCiAgIAlpbnNpZGUgVjEgc2Vzc2lvbi4KICAgCjE5OTktMDUtMTAgMTQ6NDcgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIva2V5dG9vbHMuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi90b29scy5jOgoKICAgRml4aW5nIHNvbWUgbW9yZSBwcm90b3R5cGVzLiBQb2ludGVkIG91dCBieSBNYXJra3UgTGF1a2thbmVuLgogICAKMTk5OS0wNS0wNiAwOToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICAtICh1Y2Qtc25tcC92bXN0YXQuYykgLSBjb25kaXRpb25hbGx5IGluY2x1ZGUgbGltaXRzLmggcGVyIEVkdWFyZCBLb3Vja3kuCiAgIAoxOTk5LTA1LTA0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogQWRkZWQgLS1lbmFibGUtZGV2ZWxvcGVyIGZsYWcuCiAgIAoxOTk5LTA1LTA0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAtIChzY2FwaS5jKToKICAgICAtIGZpeGVzIGZvciBrbXQuCiAgICAgLSBwb3J0YWJpbGl0eSBlbmhhbmNlbWVudHMuCiAgIAoxOTk5LTA1LTA0IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogZG9uJ3QgdXNlIElTREYoKS4KICAgCjE5OTktMDUtMDQgMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIC0gKHNjYXBpLmMpOiBkb24ndCBkdW1wIGtleWxpc3QuCiAgIAoxOTk5LTA1LTA0IDAwOjUwICBuYmEKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaAosIHNubXBkLmMsIHNubXBkLmgsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiwgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLCBtaWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jCiwgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBtaWJncm91cC9ob3N0L2hyX3Byb2MuYwosIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBtaWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIG1pYmdyb3VwL21pYklJL2F0LmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuYywgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pcC5jLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwosIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS91ZHAuYywKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiwgbWliZ3JvdXAvc211eC9zbXV4LmMsIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMKLCBtaWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIG1pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYwosIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLCBtaWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsIG1pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYwosIG1pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywgbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiwgbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIG1pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmM6CgogICAobWFueSk6CXJlbW92ZSBjb25zdCBzcGVjIGZyb20gRmluZFZhck1ldGhvZC4gVGhhdCB3YXMgd3JvbmcKICAgCjE5OTktMDUtMDQgMDA6NDcgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgKG1pYi5jKToJRml4IHByb2JsZW0gKGNvcmUgZHVtcCkgd2l0aCBNSUJGSUxFUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KICAgCjE5OTktMDUtMDMgMTU6MzggIG5iYQoKICAgKiBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMKLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC92aWV3X3BhcnNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwosIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3RydWN0LmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5oLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oCiwgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGFibGUuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5oLAogICBhcHBzL3NubXB1c20uYywgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMKLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMKLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiwgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywKICAgc25tcGxpYi9hbGxfc3lzdGVtLmgsIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2FzbjEuaAosIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9jb250ZXh0LmMsCiAgIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9tZDUuaCwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaAosIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJ0eS5jLAogICBzbm1wbGliL3BhcnR5LmgsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvc2NhcGkuYywgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXAtdGMuaAosIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmgsCiAgIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5oLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2RlYnVnLmgsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc25tcHYzLmgsIHNubXBsaWIvc3lzdGVtLmgsCiAgIHNubXBsaWIvdG9vbHMuYywgc25tcGxpYi90b29scy5oLCBzbm1wbGliL3ZhY20uYwosIHNubXBsaWIvdmFjbS5oLCBzbm1wbGliL3ZpZXcuYywgc25tcGxpYi92aWV3LmgKOgoKICAgKCouW2NoXSk6CXBhdGNoZXMgdG8gdHlwZXMgdG8gd2lwZSB3YXJuaW5ncyBmcm9tIGNvbXBpbGVycwogICAJd2l0aCBtb3JlIHN0cmljdCBub2lzZSBsZXZlbHMuIChhbHNvIGdvb2Qgd2hlbiBjb21waWxpbmcKICAgCXdpdGggZ2NjIC1XYWxsIC1wZWRhbnRpYyAtV3dyaXRlLXN0cmluZ3MgLVdjYXN0LXF1YWwpCiAgIAoxOTk5LTA1LTAzIDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9hbGxfZ2VuZXJhbF9sb2NhbC5oLCBzbm1wbGliL2FsbF9zeXN0ZW0uaCwKICAgc25tcGxpYi9rZXl0b29scy5jLCBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvc2NhcGkuYwosIHNubXBsaWIvc25tcF9hdXRoLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwgdGVzdGluZy9NYWtlZmlsZS5pbgosIHRlc3RpbmcvVC5jLCB0ZXN0aW5nL2V0aW1ldGVzdC5jLAogICB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywgdGVzdGluZy9taXNjdGVzdC5jLAogICB0ZXN0aW5nL3NjYXBpdGVzdC5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIE1ha2VmaWxlLmluLCBoZWFkZXJfY29tcGxleC5jLAogICAgIE1ha2VmaWxlLmluLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsCiAgICAgc25tcF9hdXRoLmMsIHNubXB1c20uYywgdG9vbHMuYywgdG9vbHMuaCwgTWFrZWZpbGUuaW4sIFQuYywKICAgICBldGltZXRlc3QuYywga2V5bWFuYWdldGVzdC5jLCBtaXNjdGVzdC5jLCBzY2FwaXRlc3QuYyk6CiAgICAgLSBudWtlZCBhbGxfZ2VuZXJhbF9sb2NhbC5oIGFuZCBhbGxfc3lzdGVtLmguCiAgICAgLSBtYWtlZmlsZWluZGVwZW5kIGFzIHdlbGwuCiAgIAoxOTk5LTA1LTAzIDA3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IGZpeCAtQSBmbGFnLCB3aGljaCBnb3QgYnJva2VuIGR1cmluZyBzb21lb25lcyBjaGFuZ2VzLgogICAKMTk5OS0wNS0wMyAwNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYwosIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oLAogICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaCwgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NjYXBpLmgKLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHYzLmMsCiAgIHNubXBsaWIvc25tcHYzLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHNubXB0cmFwZC5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgIHNjYXBpLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgLSBzaHV0ZG93biBhbmQgc3RvcmUgY2FsbGJhY2sgdXNhZ2UuCiAgIAoxOTk5LTA1LTAzIDA3OjA1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAtIChrZXl0b29scy5jKTogLVdhbGwgZml4IGluaXRpYWxpemluZyBhIHZhcmlhYmxlLgogICAKMTk5OS0wNS0wMSAwNzo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGNhbGxiYWNrLmMsIGNhbGxiYWNrLmg6CgogICAtIChjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogcmVuYW1lZCBzbm1wX2NhbGxiYWNrIHRvIHNubXBfZ2VuX2NhbGxiYWNrLgogICAKMTk5OS0wNC0yOSAwODo0NCAgaGFyZGFrZXIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgLSAoUkVBRE1FLndpbjMyKTogTm90ZSBjaGFuZ2UgZnJvbSBSb2JlcnQgU3RvcnkuCiAgIAoxOTk5LTA0LTI5IDA3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wZC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcHVzbS5jLCBzbm1wbGliL3NubXB1c20uaCwgc25tcGxpYi9zbm1wdjMuYwosIHNubXBsaWIvc25tcHYzLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgIHNubXB1c20uaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAtIHVzZSB0aGUgY2FsbGJhY2sgbWVjaGFuaXNtIGZvciBwb3N0LWNvbmZpZyBzdHVmZi4KICAgCjE5OTktMDQtMjkgMDc6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgY2FsbGJhY2suYywgY2FsbGJhY2suaDoKCiAgIC0gKE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogY2FsbGJhY2sgQVBJLgogICAKMTk5OS0wNC0yOCAwNzo1OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuc3RvcmFnZS5jb25mOgoKICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZW51bSAjZGVmaW5lcyBjcmVhdGVkCiAgIAoxOTk5LTA0LTI3IDA5OjUxICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpIGFkZCBpZl90eXBlX2Zyb21fbmFtZSB0byBjb252ZXJ0IGludGVyZmFjZSBuYW1lIHRvIHR5cGUuCiAgIAoxOTk5LTA0LTI2IDEyOjM3ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKSAtIGZpeCBvdGhlciB1c2Ugb2YgcmVxdWVzdCdzIGNhbGxiYWNrIGRhdGEKICAgCjE5OTktMDQtMjYgMTI6MTEgIG5iYQoKICAgKiB2ZXJzaW9uLmgsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b19ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgKLCBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jLCBhZ2VudC92aWV3X3BhcnNlLmMKLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsCiAgIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWFuL3NubXAuY29uZi41LmRlZiwKICAgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZiwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0LCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9hc24xLmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgsIHRlc3RpbmcvTWFrZWZpbGUuaW4KOgoKICAgCiAgICovKjogcmVwbGFjZSBob3JyaWJsZSAoY2hhciAqKSJzdHJpbmciIHdpdGggY29uc3Qgc3BlY2lmaWVycyBpbiByZWxldmFudAogICAJZnVuY3Rpb25zLgogICAKMTk5OS0wNC0yNiAxMjowOSAgbmJhCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywKICAgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsCiAgIHNubXB0YWJsZS5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywKICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXB1c20uYywgc25tcHdhbGsuYzoKCiAgIAogICAKICAgYXBwcy8qLmM6IHVzZSBzbm1wX3BlcnJvciB0byByZXBvcnQgZXJyb3JzIGZyb20gcmVhZF9vYmppZCBhbmQgZnJpZW5kcwogICBhcHBzL3NubXB0cmFwZC5jOiBmaXggYSBidXMgZXJyb3Igd2hlbiB1c2luZyAtUyBhbmQgcmVjZWl2aW5nIGFuCiAgIAllbnRlcnByaXNlIHNwZWNpZmljIHRyYXAuCiAgIAoxOTk5LTA0LTI2IDEyOjAzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgCiAgIChpZi5jKSBtYWtlIHRoZSB3aWR0aCBvZiBzbm1wbmV0IC1pIChhbmQgLW8pIGFkYXB0IHRvIHRoZSBsZW5ndGggb2YgcmV0dXJuZWQKICAgCXN0cmluZ3MKICAgCjE5OTktMDQtMjYgMTE6NDggIG5iYQoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIAogICAKICAgLSBzbm1wbGliL3BhcnNlLmgsIHNubXBsaWIvcGFyc2UuYzogbmV3IG1pYiBwcmludGVyOiBtaWJfcHJpbnRfdHJlZQogICAgIGluc3BpcmVkIGJ5IGEgcmVmZXJlbmNlIHRvIHNubXggaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAtIGFwcHMvc25tcHRyYW5zbGF0ZTogbGV0IHRoZSAtcCBvcHRpb24gY2FsbCB0aGlzIG5ldyBwcmludGVyCiAgIC0gc25tcGxpYi9zbm1wX2FwaS5jOiBzb21lIGxlZnQgb3ZlciBfX1AgbWFjcm9zCiAgIAoxOTk5LTA0LTI2IDExOjIxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgCiAgIChwYXJzZS5oKSBTaWxseSBzcGVsaW5nIG1pc3RlYWsgKEFDQ0VTU19DUkFFVEUpCiAgIAoxOTk5LTA0LTI2IDA5OjIxICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wbGliLmMpIC0gdXNlIHJlcXVlc3QgY2FsbGJhY2sncyBkYXRhIGlmIHJlcXVlc3Qgc3BlY2lmaWVzIGEgY2FsbGJhY2suCiAgIAoxOTk5LTA0LTIzIDEzOjA1ICBtc2xpZmNhawoKICAgKiBSRUFETUUudGhyZWFkOgoKICAgLSBSRUFETUUudGhyZWFkIC0gbG9uZyBuZWVkZWQgZG9jdW1lbnQgZGVzY3JpYmluZyBob3cgdG8gdXNlIFNpbmdsZSBBUEkKICAgCjE5OTktMDQtMjIgMTA6NTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBrZXl0b29scy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oCiwgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIGtleXRvb2xzLmMpOiBBbm90aGVyIHYzIGJyYW5jaCB1cGRhdGUuCiAgIAoxOTk5LTA0LTIyIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBDcmVhdGVkIGEgbmV3IHN1cGVyLWR1cGVyIG1pYjJjIGNvbmZpZ3VyYXRpb24KICAgICBmaWxlIHRoYXQgdGFrZXMgY2FyZSBvZiBqdXN0IGFib3V0IGV2ZXJ5dGhpbmcgaWYgeW91IGhhdmUgYSBtaWIgdGhhdAogICAgIGRvZXMgaXRzIG93biBzdG9yYWdlIChyYXRoZXIgdGhhbiBoYXZpbmcgdG8gcG9rZSBzb21ldGhpbmcgZWxzZSBmb3IKICAgICBpbmZvcm1hdGlvbikuCiAgIAoxOTk5LTA0LTIyIDA3OjU2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhbGxvdyBOb0FjY2VzcyB0byBiZSBwcm9jZXNzZWQsIGFuZCB1c2Ugc2tpcGlmOgogICAgIGRpcmVjdGl2ZXMgd2hlcmUgbmVlZGVkIGJlY2F1c2Ugb2YgaXQuCiAgIAoxOTk5LTA0LTIyIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGVkICpyZWFkX2NvbmZpZ19zdG9yZV9kYXRhKCk7CiAgIAoxOTk5LTA0LTIyIDA3OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IG1ha2UgaGVhZGVyX2NvbXBsZXgoKSBhY2NlcHQgTlVMTHMuCiAgIAoxOTk5LTA0LTIwIDIxOjM5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSAobWliMmMudmFydHlwZXMuY29uZik6IHJlbW92ZSB1bi11c2VkIHZ0eXBlLCBwYXJzZXIgZmllbGRzLgogICAKMTk5OS0wNC0yMCAyMTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLmNvbmYpOiBjbGVhbiB1cCBza2lwaWYgcmVnZXhwcyBhIGJpdC4KICAgCjE5OTktMDQtMjAgMTY6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IGEgbGl0dGxlIG1vcmUgY2xlYW4gdXAuCiAgIAoxOTk5LTA0LTIwIDE2OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLCBtaWIyYy5jb25mOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB2YXJpYWJsZSBuYW1lIGNvbnZlcnNpb25zOgogICAgIC0gdmFyaWFibGVUeXBlcyAtPiB2YXJpYWJsZXMKICAgICAtIGNuYW1lIC0+IE5BTUUKICAgCjE5OTktMDQtMjAgMTU6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgIC0gY29tcGxldGVseSByZS1oYWNrZWQ6CiAgICAgICAtIGVudGlyZSBjb2RlIGJhc2UgaXMgbm93IHB1dCBpbnRvIHRoZSAuY29uZiBmaWxlcyByYXRoZXIgdGhhbiBpbgogICAgICAgICB0aGUgbWliMmMgcHJvZ3JhbS4gIFRoaXMgc2hvdWxkIGVudGl0bGUgbWliMmMgdG8gYmUgdXNlZCBtb3JlCiAgICAgICAgIGdlbmVyaWNhbGx5LCBhbmQgY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29kZSB0ZW1wbGF0ZXMKICAgICAgICAgYmFzZWQgb24gdGhlIC5jb25mIGZpbGUgaXQgaXMgZ2l2ZW4uICBJbiB0aGVvcnksIGl0IHNob3VsZCBiZQogICAgICAgICBhYmxlIHRvIHByb2R1Y2UgQyBjb2RlIGZvciBhIG5vbi11Y2Qtc25tcCBhZ2VudCwgb3IgZXZlbiBiZXR0ZXIsCiAgICAgICAgIGFueSB0eXBlIG9mIGNvZGUgKG5vdCBqdXN0IEMpIGZvciBzb21ldGhpbmcgZWxzZSBiYXNlZCBvbiBtaWIKICAgICAgICAgaW5mb3JtYXRpb24uCiAgICAgICAtIFRoZSBkb3duIHNpZGUsIGlzIHRoYXQgdGhlIGN1cnJlbnQgLmNvbmYgZmlsZXMgYXJlIG5vdyBhbWJpZ3VvdXMKICAgICAgICAgYWdhaW4gYW5kIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5kIHdpdGhvdXQgYmVpbmcsIHdlbGwsIG1lLiAgVGhlCiAgICAgICAgIHVwIHNpZGUgaXMgdGhhdCBJJ20gc3VyZSBEYXZlIFNoaWVsZCB3aWxsIGdvIHRocm91Z2ggYW5kIGNsZWFuCiAgICAgICAgIGl0IHVwIGZvciBtZSBsaWtlIGhlIGRpZCBsYXN0IHRpbWUuICBIYSBoYS4gIEkgd29uZGVyIGlmIGhlJ2xsCiAgICAgICAgIHJlYWQgdGhpcz8gKElmIHNvLCBzZWUgbWUgZmlyc3QpLgogICAKMTk5OS0wNC0yMCAxMToyOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZgo6CgogICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6IG1vcmUgdXBkYXRlcy4KICAgCjE5OTktMDQtMTkgMjE6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIC0gKHRvb2xzLmgpOiBuZXcgY29udmVuaWVuY2UgbWFjcm86IFNOTVBfTUFMTE9DX1NUUlVDVChzdHJ1Y3ROYW1lKS4KICAgCjE5OTktMDQtMTkgMjE6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgLSAoc25tcHVzbS5jKTogZG9uJ3QgZnJlZSB0aGluZ3MgdGhhdCBhcmUgTlVMTC4KICAgCjE5OTktMDQtMTkgMjE6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBEb24ndCBzbm1wX3NldF92YXJfb2JqaWQgaWYgbmFtZSBpcyBOVUxMIGluCiAgICAgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSgpLgogICAKMTk5OS0wNC0xOSAyMToxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIGNyZWF0ZWQgYSBtb3JlIGNvbnZlbmllbnQgcmVhZF9jb25maWdfcmVhZF9kYXRhKCkgZnVuY3Rpb24gdG8KICAgICAgIGdlbmVyaWNhbGx5IHJlYWQgYSB0b2tlbiBpbnRvIGEgZ2l2ZW4gdmFyaWFibGUuCiAgICAgLSBjbGVhbmVkIHVwIHBlcnNpc3RlbnQgc3RvcmFnZSBwYXJzaW5nIHJvdXRpbmVzLgogICAgIC0gdXNlIHByZXZpb3VzbHkgbWFsbG9jZWQgc3BhY2UgaW4gc29tZSByb3V0aW5lcywgb3IgbWFsbG9jIGl0IGZvcgogICAgICAgdGhlbSBpZiB0aGUgc3RvcmFnZSBhcmVhIGlzIE5VTEwuCiAgIAoxOTk5LTA0LTE5IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IE5VTEwgY2hlY2tpbmcuCiAgIAoxOTk5LTA0LTE5IDIxOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICAtIChtaWJpbmNsLmgpOiBhZGQgcmVhZF9jb25maWcuaC4KICAgCjE5OTktMDQtMTkgMjE6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYKOgoKICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgIC0gcmV3cm90ZSBtaWIyYyB0byBiZSBtb3JlIGRlcGVuZGVudCBvbiAuY29uZiBmaWxlcy4gIFRoZSBtYWluIC5jb25mCiAgICAgICBmaWxlIG5vdyBjb250YWlucyB0aGUgY29kZSBpdHNlbGYuCiAgICAgLSBuZWVkIHRvIHdyaXRlIGEgZm9yZWFjaChtaWJub2RlKSB0eXBlIHBhcnNlciBuZXh0LgogICAKMTk5OS0wNC0xOCAwNjo1NCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpIHN1YmRpciBjaGFuZ2UgcGVyIEpvZSBQcnVldHR0OiA5IC0+IDEwCiAgIAoxOTk5LTA0LTE2IDIxOjM0ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCB2ZXJzaW9uLmgsIEZBUSwgUkVBRE1FLAogICBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUzICkKICAgCjE5OTktMDQtMTYgMjE6MjcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgIC0gKHNubXB0cmFwZC44KTogbWFuIHBhdGNoIGZyb20gTmllbHMKICAgCjE5OTktMDQtMTYgMjE6MjcgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlZAogICAKMTk5OS0wNC0xNiAyMToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlZCBmaXggbm90ZS4KICAgCjE5OTktMDQtMTYgMjE6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcC5oOgoKICAgLSAoc25tcC5oKTogU05NUEFETUlOTEVOR1RIIGRlZmluaXRpb24uCiAgIAoxOTk5LTA0LTE2IDIxOjEzICBoYXJkYWtlcgoKICAgKiBtaWJzL0RJU01BTi1TQ1JJUFQtTUlCLnR4dDoKCiAgIC0gKERJU01BTi1TQ1JJUFQtTUlCLnR4dCk6IGFkZGVkIHRvIG1pYnMgZGlyLgogICAKMTk5OS0wNC0xNiAyMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguaDoKCiAgIC0gKGhlYWRlcl9jb21wbGV4LmgpOiBwcm90b3R5cGVzLgogICAKMTk5OS0wNC0xNiAyMToxMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlZCBkZWZhdWx0IHN0b3JlIGxvY2F0aW9uIHRvIC92YXIvdWNkLXNubXAKICAgCjE5OTktMDQtMTYgMjE6MTAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIHYzIHRlYW0gbWVtYmVycy4KICAgCjE5OTktMDQtMTYgMDg6MzMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYykgIi1tIiBvciBNSUJTOiBjYW4gc3BlY2lmeSBNSUIgbW9kdWxlIGJ5IGZpbGUgbmFtZS4KICAgCjE5OTktMDQtMTYgMDc6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvSVBGV0NIQUlOUy1NSUIudHh0OgoKICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0KSBpcGZ3Q2hhaW5UYWJsZSB7aXBmdyAxfSBmaXgKICAgCjE5OTktMDQtMTYgMDc6MzAgIG1zbGlmY2FrCgogICAqIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoSVBGV0FDQy1NSUIudHh0KSBjaGFuZ2UgbW9kdWxlIG5hbWUgZnJvbSBJUEZXQURNLU1JQiB0byBJUEZXQUNDLU1JQi4KICAgCjE5OTktMDQtMTQgMTY6NTYgIG1zbGlmY2FrCgogICAqIGFwcHMvOiBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jCiwgc25tcHNldC5jLCBzbm1wc3RhdHVzLmM6CgogICAtIGFwcHMgdGhhdCB1c2Ugc25tcF9maXhfcGR1IG11c3QgY2xlYW4gdXAgdGhlIHJlc3BvbnNlIFBEVSAhCiAgIAoxOTk5LTA0LTE0IDE2OjMxICBtc2xpZmNhawoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaDoKCiAgIC0gKHNubXBfYWdlbnQsYywgc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuW2NoXSkgZml4IHZhcmlhYmxlX2xpc3Qgd2l0aCBidWlsdC1pbiBzdG9yYWdlCiAgIAoxOTk5LTA0LTE0IDE1OjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IGluaXRfc25tcCgic25tcGFwcCIpLgogICAKMTk5OS0wNC0xNCAxNTozMCAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYykgRmlsZSBwb2ludGVyIGluaXRpYWxpemVkIHRvICIiIGJlZm9yZSBmaXJzdCB1c2UuCiAgIAoxOTk5LTA0LTE0IDE1OjI5ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYykgaW5pdF9zbm1wIHRha2VzIGFyZ3VtZW50OyAiIiB1c2VkLgogICAKMTk5OS0wNC0xMyAxNjowMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHNubXB0cmFwZCBvcHRpb24gdG8gaWdub3JlIGF1dGggdHJhcHMsIGFkZCAtUyBvcHRpb24sIGxvZyB0ZXJtaW5hdGlvbi4KICAgCjE5OTktMDQtMTMgMTY6MDAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBuaWNlciBwYXJzZXIgbWVzc2FnZXMgKGluY2x1ZGUgZmlsZSBuYW1lcykuIENvcnJlY3QgaGVscCBmb3IgLVBjLgogICAgIC0gQWRkIEZSQU1FLVJFTEFZLURURS1NSUIgYXMgcmVwbGFjZW1lbnQgZm9yIFJGQy0xMzE1CiAgIAoxOTk5LTA0LTEzIDE1OjU4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tCiAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgLSBjbGVhbiB1cCBzbWFsbCBidWdzLgogICAKMTk5OS0wNC0xMyAxNTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc3VwcG9ydCAtUC4KICAgCjE5OTktMDQtMTMgMTU6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYmV0dGVyIGNoZWNraW5nIG9mIC5jb25mIGZpbGUgcGFyc2luZyBsaW5lIHJlcXVpcmVtZW50cy4KICAgCjE5OTktMDQtMTMgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGxvZyB3aXRoIHRpbWVzdGFtcCBhdCBzaHV0ZG93bi4KICAgCjE5OTktMDQtMTMgMTU6MzYgIGhhcmRha2VyCgogICAqIG1pYnMvOiBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dDoKCiAgIC0gKFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgICBTTk1QLVZJRVctQkFTRUQtQUNNLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IG1vZHVsZSBsb2NhdGlvbnMgZm9yIGJyb2tlbiBtaWJzLgogICAKMTk5OS0wNC0xMyAxNTozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgLSAocGFzcy5jKTogUGF0Y2ggZnJvbSBKaW0gTWFyOgogICAgIC0gYWRkIGNhcGFiaWxpdHkgZm9yIGJpbmFyeSBvY3RldCBzdHJpbmdzIGluIHBhc3Mgc2NyaXB0cy4KICAgCjE5OTktMDQtMTMgMTU6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgIC0gKHN5c3RlbV9taWIuYyk6IG1ha2Ugc3lzRGVzY3IgcmVhZC1vbmx5LgogICAKMTk5OS0wNC0xMyAxNToxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGFuaWVsIEhhZ2VydHk6CiAgICAgLSBmaXggbGlid3JhcCB0byBvbmx5IGFkZCB0aGUgbGlicmFyeSB0byB0aGUgYWdlbnQuCiAgIAoxOTk5LTA0LTEzIDA4OjQzICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICAtIChSRUFETUUud2luMzIpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAtIGFkZCBhIFVSTCByZWZlcmVuY2UgdG8gY3lnd2luLgogICAKMTk5OS0wNC0xMiAyMjoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIHBvc3NpYmxlIGNyZWF0ZSBhCiAgICAgdmFybGlzdCBiZWZvcmUgYWRkaW5nIHNvbWV0aGluZyB0byBpdC4KICAgCjE5OTktMDQtMTIgMjI6MTYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBtYWtlIGRpc3BsYXllZCBtaWIgbm9kZSBpbmZvIGludG8gdHdvIGNvbHVtbnMgaW5zdGVhZCBvZiBvbmUuCiAgIAoxOTk5LTA0LTEyIDIyOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmg6CgogICAtIChocl91dGlscy5oKTogcmVtb3ZlIHZhcmlhYmxlIG5hbWVzIGZyb20gcHJvdG90eXBlcyAod2FzIGNhdXNpbmcgcHJvYmxlbXMpLgogICAKMTk5OS0wNC0xMiAyMjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oOgoKICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzeXMvdGltZS5oLgogICAKMTk5OS0wNC0xMiAyMjoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oOgoKICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGRlYWwgd2l0aCBtb3JlIGNvbXBsZXggZGF0YQogICAgIHN0cnVjdHVyZXMgd2l0aCBtdWx0aXBsZSBhbmQgdmFyaWFibGUgbGVuZ3RoIGluZGV4ZXMuCiAgIAoxOTk5LTA0LTEyIDIyOjEyICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICAtIChSRUFETUUud2luMzIpOiBuZXcgUkVBRE1FIGZyb20gSm9lIE1hcnpvdC4KICAgCjE5OTktMDQtMDcgMTU6MDAgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zeXN0ZW0uYzoKCiAgIC0odXNtVXNlci5jLHN5c3RlbS5jKSBwbHVnIG1lbSBsZWFrOyAoc25tcF9hcGkuYykgZW5mb3JjZSBhcnJheSBsaW1pdC4KICAgCjE5OTktMDQtMDcgMTI6MjMgIG1zbGlmY2FrCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wbGliL3Rvb2xzLmM6CgogICAtKGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jIHNubXBsaWIvdG9vbHMuYykgbW92ZSBrZXlzdHJva2UgZnVuY3Rpb25zIHRvIGFwcGxpY2F0aW9uLgogICAKMTk5OS0wNC0wNyAxMjoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLmM6CgogICAtKGlwZndjaGFpbnMuYykgcmVtb3ZlIG11bHRpcGxlIGRlZmluaXRpb25zIG9mIE1BVENIX0ZBSUxFRAogICAKMTk5OS0wNC0wNyAxMTo1OSAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcDJwLmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMsCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJ0eS5oLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3ZhY20uaCwgc25tcGxpYi92aWV3LmgKOgoKICAgLSAoYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF9hZ2VudC5jIGFnZW50L3NubXBfdmFycy5oCiAgIGFnZW50L3ZpZXdfcGFyc2UuYyBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgc25tcGxpYi9hY2xfcGFyc2UuYwogICBzbm1wbGliL2NvbnRleHQuaCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3BhcnR5LmgKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jIHNubXBsaWIvcmVhZF9jb25maWcuYyBzbm1wbGliL3NubXBfYXBpLmMKICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oIHNubXBsaWIvdmFjbS5oCiAgIHNubXBsaWIvdmlldy5oKSAgZmdldHMgdXNlIHNpemVvZiBtb3N0bHksIG9pZCBiYXNlIHNpemUgaXMgTUFYX09JRF9MRU4KICAgCjE5OTktMDQtMDcgMTE6MzQgIGhhcmRha2VyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jKTogcmVtb3ZhbCBvZiBkdXBsaWNhdGUgZnVuY3Rpb25zLgogICAKMTk5OS0wNC0wNyAxMTozMiAgaGFyZGFrZXIKCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHVzbS5jOgoKICAgLSAoZW5jb2RlX2tleWNoYW5nZS5jLCBzbm1wdXNtLmMpOiBkZWJ1Z2dpbmcgY29udmVyc2lvbnMuCiAgIAoxOTk5LTA0LTA3IDExOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJJSS92YWNtX3ZhcnMuYywgc211eC9zbXV4LmMKLCBzbm1wdjMvc25tcEVuZ2luZS5jLCBzbm1wdjMvdXNtVXNlci5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMKOgoKICAgLSAodWNkRGVtb1B1YmxpYy5jLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCBzbXV4LmMsIHNubXBFbmdpbmUuYywKICAgICB1c21Vc2VyLmMsIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOgogICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCBjb252ZXJzaW9uCiAgIAoxOTk5LTA0LTA3IDExOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc2NhcGkuYywgc25tcHYzLmM6CgogICAtIChzY2FwaS5jLCBzbm1wdjMuYyk6IGRlYnVnIHR5cG9zIGFuZCBpbmNsdWRlIGZpbGUgYWRkaXRpb25zLgogICAKMTk5OS0wNC0wNyAxMDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYzoKCiAgIC0gKHNubXBfbWliLmMpOiByZW1vdmVkIHVubm5lZWRlZCBoZWFkZXJfc25tcCgpLgogICAKMTk5OS0wNC0wNyAxMDo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kZWJ1Zy5oOgoKICAgLSAoZGVidWcuaCk6IHJlbW92ZWQuCiAgIAoxOTk5LTA0LTA3IDEwOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL01ha2VmaWxlLmluLCBzbm1wbGliL2FsbF9nZW5lcmFsX2xvY2FsLmgsCiAgIHNubXBsaWIva2V5dG9vbHMuYywgc25tcGxpYi9rZXl0b29scy5oLAogICBzbm1wbGliL2xjZF90aW1lLmMsIHNubXBsaWIvbWQ1LmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcHVzbS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaAo6CgogICAtIChjb25maWcuaC5pbiwgc25tcF92YXJzLmMsIGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHRyYXBkLmMsCiAgICAgTWFrZWZpbGUuaW4sIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsCiAgICAgbGNkX3RpbWUuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICBzbm1wdjMuYywgdG9vbHMuYywgdG9vbHMuaCk6CiAgICAgLSBtaXNjIG1lcmdpbmcsIGluY2x1ZGluZyBmaXhlcyBhbmQgZGVidWdnaW5nIHN0YXRlbWVudCBjaGFuZ2VzIHRvCiAgICAgICBuZXdlciBtb2RlbC4KICAgICAtIGEgZmV3IC1XYWxsIGZpeGVzLgogICAKMTk5OS0wNC0wNyAwNjoxNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBzbm1wbGliL2FsbF9zeXN0ZW0uaCwKICAgc25tcGxpYi9kZWJ1Zy5oLCBzbm1wbGliL2tleXRvb2xzLmMsIHNubXBsaWIvbGNkX3RpbWUuYwosIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zY2FwaS5jLCBzbm1wbGliL3NubXAuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wdXNtLmMsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc3lzdGVtLmgKLCBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwKICAgd2luMzIvY29uZmlnLmgsIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3A6CgogICAtICgpIG1vcmUgQU5TSSBoZWFkZXIgZml4dXBzOyB0b3VjaHVwIGZvciBNJCBXaW4zMiBidWlsZAogICAKMTk5OS0wNC0wNiAyMjoxNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYykgbW9yZSB2MnBhcnR5IHJld29yayBuZWVkZWQKICAgCjE5OTktMDQtMDYgMjI6MTMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgLSAodmFjbV92YXJzLmMpIC0gc2V0IGdsb2JhbCBwdHJzID0gMC4KICAgCjE5OTktMDQtMDYgMjE6MjMgIG1zbGlmY2FrCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLCBhcHBzL3NubXB1c20uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmgsIHNubXBsaWIvbGNkX3RpbWUuYywKICAgc25tcGxpYi9sY2RfdGltZS5oLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wdXNtLmMsCiAgIHNubXBsaWIvc25tcHVzbS5oLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3Rvb2xzLmMKOgoKICAgLSBjaGFuZ2VzIGZvciBBTlNJIGhlYWRlcnM7IFBPU0lYKGluZGV4IHZzIHN0cmNocik7IG1pbm9yIGZpeGVzCiAgIAoxOTk5LTA0LTA2IDE1OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsIGFwcHMvc25tcHRyYXBkLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIC0gKG1pYmluY2wuaCwgdWNkRGVtb1B1YmxpYy5jLCB2YWNtX3ZhcnMuaCwgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsCiAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtZXJnZSBwaWVjZXMgb2YgcmVjZW50IHYzIGxpbmUgY2hhbmdlcy4KICAgCjE5OTktMDQtMDYgMTU6MTIgIGhhcmRha2VyCgogICAqIElTU1VFUywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNjb25maWcuaAosIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsCiAgIGFnZW50L2F1dG9fbmxpc3QuaCwgYWdlbnQvbTJtLmgsIGFnZW50L3NubXAycC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaCwKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L3NubXBfdmFycy5oLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCwgYWdlbnQvbWliZ3JvdXAvc25tcHYzbWlicy5oLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAosIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jbWRzLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmYsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLCBhcHBzLy5jdnNpZ25vcmUKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB1c20uYwosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGxvY2FsL3NubXAtdWNkLnNoCiwgbWFuL3NubXBjbWQuMSwgbWFuL3NubXBkLmNvbmYuNS5kZWYsCiAgIG1pYnMvU05NUC1UQVJHRVQtTUlCLnR4dCwgbWlicy9TTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dAosIG1pYnMvU05NUHYyLVRDLnR4dCwgbWlicy9VQ0QtREVNTy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaCwgc25tcGxpYi9hbGxfc3lzdGVtLmgsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2RlYnVnLmgsIHNubXBsaWIva2V5dG9vbHMuYwosIHNubXBsaWIva2V5dG9vbHMuaCwgc25tcGxpYi9sY2RfdGltZS5jLAogICBzbm1wbGliL2xjZF90aW1lLmgsIHNubXBsaWIvbWQ1LmMsIHNubXBsaWIvbWQ1LmgKLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFydHkuaCwgc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmgsIHNubXBsaWIvc2NhcGkuYywKICAgc25tcGxpYi9zY2FwaS5oLCBzbm1wbGliL3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLmMKLCBzbm1wbGliL3NubXAuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3NubXBfaW1wbC5oLCBzbm1wbGliL3NubXB1c20uYywKICAgc25tcGxpYi9zbm1wdXNtLmgsIHNubXBsaWIvc25tcHYzLmMsIHNubXBsaWIvc25tcHYzLmgKLCBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLAogICBzbm1wbGliL3Rvb2xzLmMsIHNubXBsaWIvdG9vbHMuaCwKICAgc25tcGxpYi90cmFuc2Zvcm1fb2lkcy5oLCBzbm1wbGliL3ZhY20uaCwKICAgc25tcGxpYi92aWV3LmMsIHRlc3RpbmcvLmN2c2lnbm9yZSwKICAgdGVzdGluZy9NYWtlZmlsZS5pbiwgdGVzdGluZy9SRUFETUUsIHRlc3RpbmcvVC5jLAogICB0ZXN0aW5nL1Quc2gsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2UtbWQ1LAogICB0ZXN0aW5nL2RhdGEua2V5Y2hhbmdlLXNoYTEsIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMKLCB0ZXN0aW5nL2RhdGEua3VsLW1kNSwgdGVzdGluZy9kYXRhLmt1bC1zaGExLAogICB0ZXN0aW5nL2RlbW8ucmVtb3RlLCB0ZXN0aW5nL2RlbW8yLAogICB0ZXN0aW5nL2RlbW8yLmZ1bmN0aW9ucywgdGVzdGluZy9kZW1vMi5zZXR1cGZpbGUsCiAgIHRlc3RpbmcvZXRpbWV0ZXN0LmMsIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoLAogICB0ZXN0aW5nL2V2YWxfc3VpdGUuc2gsIHRlc3RpbmcvZXZhbF90ZXN0bGlzdCwKICAgdGVzdGluZy9ldmFsX3Rvb2xzLnNoLCB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYywKICAgdGVzdGluZy9taXNjdGVzdC5jLCB0ZXN0aW5nL3NjYXBpdGVzdC5jLAogICB0ZXN0aW5nL3Rlc3Rfa2V5Y2hhbmdlLnNoLCB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgLSAoKik6IE1lcmdlZCB0aGUgNC4wIGxpbmUgaW50byB0aGUgMy42LjEgbGluZS4KICAgCjE5OTktMDQtMDYgMTE6MzMgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfcHJvYy5jLAogICBpcGZ3Y2hhaW5zL2xpYmlwZndjLmMsIG1pYklJL2ljbXAuYywgbWliSUkvaXAuYwosIG1pYklJL3JvdXRlX3dyaXRlLmMsIG1pYklJL3RjcC5jLCBtaWJJSS91ZHAuYwosIHNtdXgvc211eC5jLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsCiAgIHVjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCB1Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaDoKCiAgIC0gYW5vdGhlciByb3VuZCBvZiBBTlNJLWZ5aW5nIHRoZSBhZ2VudCBjb21wbGV0ZWQuCiAgIAoxOTk5LTA0LTA2IDEwOjU5ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAtIChleHRlbnNpYmxlLmMpIHF1ZWxsIHdhcm5pbmcgYWJvdXQgY29tcGFyaW5nIHBvaW50ZXIgd2l0aCBub24tcG9pbnRlci4KICAgCjE5OTktMDQtMDYgMDk6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIC0gKGNvbmZpZy5ndWVzcywgY29uZmlnLnN1Yik6IG5ldyB2ZXJzaW9ucyBmcm9tIGF1dG9jb25mIDIuMTMuCiAgIAoxOTk5LTA0LTA1IDE1OjU5ICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICAtIEJ1aWxkIHVzaW5nIEN5Z1dpbjMyIChpbmNsdWRlcyBOaWVscyBCLidzIHNubXBfdmFycy5jIHBhdGNoKS4KICAgCjE5OTktMDQtMDUgMTQ6MjIgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIEJ1aWxkIHdpdGggQ3lnV2luMzIKICAgCjE5OTktMDQtMDUgMTQ6MTAgIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvOiBNYWtlZmlsZS5pbiwgaWYuYywgd2luc3R1Yi5jCiwgd2luc3R1Yi5oOgoKICAgLSBidWlsZCBzbm1wbmV0c3RhdCB3aXRoIEN5Z1dpbjMyCiAgIAoxOTk5LTA0LTA1IDExOjA2ICBtc2xpZmNhawoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYywgbWFpbi5jLCBzbm1wX3BhcnNlX2FyZ3MuYykgSm9lIE1hcnpvdCdzIGZpeCB0byBjb3B5IGV2ZW4gYW4gZW1wdHkgY29tbXVuaXR5IG5hbWUuCiAgIAoxOTk5LTA0LTAxIDEzOjEwICBtc2xpZmNhawoKICAgKiBzbm1wbGliL2xpYnNubXAuaDoKCiAgIC0gKGxpYnNubXAuaCkgQXN5bXB0b3RpY2FsbHkgY2xvc2VyIHRvIHN1cHBvcnRpbmcgQ01VIGNvbnN0YW50cy4KICAgCjE5OTktMDMtMjggMTY6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuYywKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAtIHdoZW4gdXNpbmcgY29weV93b3JkKCkgZG9uJ3Qgc2tpcCBzcGFjZXMsIHNpbmNlIGl0IGRvZXMgdGhhdC4KICAgCjE5OTktMDMtMjggMTY6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC86IHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5Lmg6CgogICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKTogcmVsb2NhdGUgdG8KICAgICBzbm1wTW9kdWxlcy4xMiwgd2hlcmUgdGhleSBzaG91bGQgYmUuCiAgIAoxOTk5LTAzLTIzIDEwOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHJlZ2V4cCBmaXguCiAgIAoxOTk5LTAzLTIzIDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJkZWZzLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmgsIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChtaWJkZWZzLmgsIHN0cnVjdC5oLCBleHRlbnNpYmxlLmMsIGV4dGVuc2libGUuaCwgcHJvYy5jLCBwcm9jLmgsCiAgICAgc25tcGQuY29uZi41LmRlZiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBwZXItcHJvY2Vzcy9leGVjIGZpeCBzY3JpcHRzIGNyZWF0ZWQuCiAgIAoxOTk5LTAzLTIzIDEwOjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogbWFrZSBjb3B5X3dvcmQoKSByZXR1cm4gdGhlIG5leHQgdG9rZW4sIG5vdCB0aGUKICAgICBuZXh0IHNwYWNlLgogICAKMTk5OS0wMy0yMyAxMDowOSAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBhZGQgbW9yZSB0YXJnZXRzLgogICAKMTk5OS0wMy0xOSAwOToyMyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBnZXQuYywgc25tcHdhbGsuYzoKCiAgIC0gKHNubXBnZXQuYywgc25tcHdhbGsuYyk6IGZpeGVkIGluaXRpYWxpemF0aW9uIGFuZCB1c2FnZSBvZiAiZmFpbHVyZXMiLgogICAKMTk5OS0wMy0xOCAwODozNyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIC0gKG1pYklJL2lwLmMpIGZpeCBNSUJfSVBDT1VOVEVSX1NZTUJPTCB1c2FnZQogICAKMTk5OS0wMy0xNyAxMzo1MyAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgLShocl9zd3J1bi5jKSAtIHByZXZlbnQgU3VuT1MgNC4xIGNvcmUgKHN1bm9zNCBzdGlsbCBwcmltaXRpdmUpCiAgIAoxOTk5LTAzLTE2IDExOjMzICBtc2xpZmNhawoKICAgKiBhZ2VudC86IHNubXBfdmFycy5oLCBtaWJncm91cC9taWJpbmNsLmgsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuaCwgbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsIG1pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsIG1pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMKLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYwosIG1pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYwo6CgogICAtIG1vdmUgTUFUQ0hfRkFJTEVEL01BVENIX1NVQ0NFRURFRCBmcm9tIHV0aWxfZnVuY3MuaCB0byBtaWJpbmNsLmgKICAgCjE5OTktMDMtMTYgMTE6MjMgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0oc25tcF9hcGkuYykgY29uc2lzdGVudCBlcnJvciByZXR1cm4uCiAgIAoxOTk5LTAzLTE2IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogZml4IGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGZyZWVic2QuCiAgIAoxOTk5LTAzLTE2IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmM6CgogICAtIChkbG1vZC5jKTogcmVtb3ZlZCBhIGJvZ3VzIG5ldy1saW5lLgogICAKMTk5OS0wMy0xNSAxNjoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IGRvbid0IGRvIGEgbWFrZSBpbnN0YWxsIG9mIGRsbW9kcwogICAKMTk5OS0wMy0xNSAxNjowMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIEZBUQosIFJFQURNRSwgRkFRLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi4xICkKICAgCjE5OTktMDMtMTUgMTY6MDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IG1hcmsgd2l0aCB2ZXJzaW9uIG51bS4KICAgCjE5OTktMDMtMTUgMTY6MDAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy42LjEuCiAgIAoxOTk5LTAzLTE1IDE1OjU4ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1M6CgogICAtIChGQVEsIE5FV1MpOiB1cGRhdGVzIHRvIHRhbGsgYWJvdXQgdGhlIEFHRU5ULnR4dCBmaWxlLgogICAKMTk5OS0wMy0xNSAxNTo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2VmaWxlaW5kZXBlbmQuCiAgIAoxOTk5LTAzLTE1IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBmaXhlcyBmb3IgbGludXggMi4yIGludGVyZmFjZSBzY2FubmluZy4KICAgCjE5OTktMDMtMTUgMTU6MzEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW50ZXJmYWNlcy5jLCBsaW51eC5oKTogZGV0ZWN0CiAgICAgL3Byb2MvbmV0L2RldiB2ZXJzaW9uIGF0IHJ1biB0aW1lLCBub3QgY29tcGlsZSB0aW1lLgogICAKMTk5OS0wMy0xNSAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0L2hyX3Byb2MuYywgaG9zdC9ocl9wcm9jLmgsCiAgIHVjZC1zbm1wL2xvYWRhdmUuYywgdWNkLXNubXAvbG9hZGF2ZS5oOgoKICAgLSAoaHJfcHJvYy5jLCBocl9wcm9jLmgsIGxvYWRhdmUuYywgbG9hZGF2ZS5oKTogZml4IHRyeV9sb2FkYXZlIGZvciBzb2xhcmlzLgogICAKMTk5OS0wMy0xNSAxNDozMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgpOiBhZGRlZCBDTVVfQ09NUEFUSUJMRQogICAKMTk5OS0wMy0xNSAxNDozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICAtIChzbm1wLmgpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudGVkIG91dCBkZWZpbmUuCiAgIAoxOTk5LTAzLTE1IDA5OjQyICBtc2xpZmNhawoKICAgKiBjb25maWcuaC5pbiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRyYXBkLmMKLCBzbm1wbGliL2xpYnNubXAuaCwgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICB3aW4zMi9jb25maWcuaDoKCiAgIC0gc2Vjb25kIHBhc3MgYXQgQ01VX0NPTVBBVDogRGlzYWJsZSBieSBkZWZhdWx0LCBsZWF2ZSBzbm1wX3BhcnNlIGFsb25lLgogICAKMTk5OS0wMy0xNSAwODo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBzbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMpOgogICAgIC0gcmV2ZXJ0IHRvIHNubXBfcGFyc2UuCiAgICAgLSBkb24ndCBpbnN0YWxsIGxpYnNubXAuaC4KICAgCjE5OTktMDMtMTUgMDU6NTQgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgbGlic25tcC5oLCBtaWIuYywKICAgc25tcC5oLCBzbm1wX2FwaS5jOgoKICAgLSAoTWFrZWZpbGUuaW4gbGlic25tcC5oIG1pYi5jIHNubXAuaCBzbm1wX2FwaS5jKSB1cGRhdGUgQ01VX0NPTVBBVElCTEUKICAgCjE5OTktMDMtMTIgMTU6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvOiBJUEZXQ0hBSU5TLU1JQi50eHQsCiAgIGlwZndjaGFpbnMuaDoKCiAgIC0gKElQRldDSEFJTlMtTUlCLnR4dCwgaXBmd2NoYWlucy5oKTogbW92ZSB0byBhIHN1Yi1vaWQgaW4gdGhlCiAgICAgZXhwZXJpbWVudGFsIHRyZWUuCiAgIAoxOTk5LTAzLTEyIDE1OjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9JUEZXQ0hBSU5TLU1JQi50eHQsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjX2tlcm5lbF9oZWFkZXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaXBmd2NoYWlucy9saWJpcGZ3Yy5jLAogICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2xpYmlwZndjLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgSVBGV0NIQUlOUy1NSUIudHh0LCBSRUFETUUsCiAgICAgaXBmd2Nfa2VybmVsX2hlYWRlcnMuaCwgaXBmd2NoYWlucy5jLCBpcGZ3Y2hhaW5zLmgsIGxpYmlwZndjLmMsCiAgICAgbGliaXBmd2MuaCk6IFBhdGNoIGZyb20gRGlkaWVyIERoYWVuZW5zOgogICAgIC0gbmV3IG1vZHVsZXM6IGlwZndjaGFpbnMuCiAgIAoxOTk5LTAzLTEyIDE1OjIzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IGRvbid0IHByaW50IG1vZHVsZSBsaXN0IGhlcmUuLi4gIHRlbGwgdGhlbSB0byBsb29rIGF0CiAgICAgY29uZmlndXJlIC0taGVscC4KICAgCjE5OTktMDMtMTIgMTQ6NTQgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIGhvc3QvaHJfc3lzdGVtLmgsCiAgIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmgKLCB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gcmVzdG9yZSBjb25maWdfcmVxdWlyZSBsb2dpYzsgZml4IHNwcmludGYgY2FsbHMgdG8gY29tcGlsZSB1bmRlciBTdW5PUyA0LjEueC4KICAgCjE5OTktMDMtMTIgMTQ6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuaCk6IE1BVENIX0ZBSUxFRCAtPiAtMSwgc2luY2Ugc29tZSB1c2UgaXQuCiAgIAoxOTk5LTAzLTEyIDE0OjM1ICBtc2xpZmNhawoKICAgKiBhZ2VudC9taWJncm91cC86IHRhcmdldC5oLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oCiwgdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5oOgoKICAgLSAodGFyZ2V0LmgsIHRhcmdldC8qLmgpIHJlcXVpcmUgdXRpbF9mdW5jcyBvbmNlLgogICAKMTk5OS0wMy0xMiAxNDozNCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5oOgoKICAgLSAoaHJfc3lzdGVtLmgpIC0gZG9uJ3QgcmVxdWlyZSBocl91dGlsOyBkb25lIGluIG1pYmdyb3VwL2hvc3QuaAogICAtIChocl9zd3J1bi5jKSAtIHNvbGFyaXMyOiBtYWtlIHN1cmUga3ZtX29wZW4gaXMgY2FsbGVkIGJlZm9yZSBrZCBpcyB1c2VkLgogICAtIChocl9zd3J1bi5jKSAtIGFkZCBsYW1lIHN1bm9zNCBlcXVpdmFsZW50IGluIEhSU1dSVU5QRVJGX0NQVS4KICAgCjE5OTktMDMtMTIgMTQ6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogcHJvdGVjdCBzdHJjcHkoKSBhZ2FpbnN0IGEgbnVsbCBwYXNzd29yZCBzcGVjaWZpZWQgb24gdGhlCiAgICAgY29uZmlnIGxpbmUuCiAgIAoxOTk5LTAzLTEyIDE0OjE3ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZS4KICAgCjE5OTktMDMtMTIgMTI6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBmaXggYXNuX3BhcnNlIGZ1bmN0aW9ucyB0byBwYXNzIGEgcG9pbnRlciB0byB0aGUgc2l6ZSB2YXJpYWJsZS4KICAgCjE5OTktMDMtMTIgMTE6MzEgIG1zbGlmY2FrCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogZXhwbGljaXQgdGVzdCBmb3IgTUFUQ0hfRkFJTEVECiAgIAoxOTk5LTAzLTEyIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYmluY2wuaCwgZHVtbXkvZHVtbXkuYywKICAgZXhhbXBsZXMvd29tYmF0LmMsIGhvc3QvaHJfZGV2aWNlLmMsIGhvc3QvaHJfZGlzay5jCiwgaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfbmV0d29yay5jLAogICBob3N0L2hyX3BhcnRpdGlvbi5jLCBob3N0L2hyX3ByaW50LmMsIGhvc3QvaHJfcHJvYy5jCiwgaG9zdC9ocl9zdG9yYWdlLmMsIGhvc3QvaHJfc3dpbnN0LmMsCiAgIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYywgbWliSUkvaWNtcC5jCiwgbWliSUkvaW50ZXJmYWNlcy5jLCBtaWJJSS9pcC5jLAogICBtaWJJSS9zbm1wX21pYi5jLCBtaWJJSS9zeXNPUlRhYmxlLmMsCiAgIG1pYklJL3N5c3RlbV9taWIuYywgbWliSUkvdGNwLmMsIG1pYklJL3VkcC5jLAogICBtaXNjL2RsbW9kLmMsIHVjZC1zbm1wL3JlZ2lzdHJ5LmM6CgogICAtIChtaWJpbmNsLmgsIGR1bW15LmMsIHdvbWJhdC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBzbm1wX21pYi5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbV9taWIuYywgdGNwLmMsIHVkcC5jLCBkbG1vZC5jLAogICAgIHJlZ2lzdHJ5LmMpOiBmaXhlZCBNQVRDSF9GQUlMRUQvU1VDQ0VFREVEIGRlZmluZXMgLT4gdXRpbF9mdW5jcy5oLgogICAKMTk5OS0wMy0xMiAwNzowOCAgbXNsaWZjYWsKCiAgICogYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jOgoKICAgLSAoZGxtb2RfbWliLmMpOiBVc2UgTUFUQ0hfRkFJTC9TVUNDRUVERUQgaW4gdXRpbF9mdW5jcy5oCiAgIAoxOTk5LTAzLTExIDE2OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oOgoKICAgLSAoc25tcF9hcGkuaCwgc25tcF9kZWJ1Zy5oKTogUGF0Y2ggZnJvbSBFcmlrIEphY29ic2VuOgogICAgIC0gZml4ZWQgcHJvdG90eXBlcyBmb3IgREVCVUdQKCkgYW5kIERFQlVHUE9JRCgpLgogICAKMTk5OS0wMy0xMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaDoKCiAgIC0gKHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKTogbW92ZSBNQVRDSF9TVUNDRUVERUQgZGVmcyB0byAuaC4KICAgCjE5OTktMDMtMTEgMTY6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBmaXhlZCBhIGNvdXBsZSBvZiBidWdzIGFuZCBhbnNpJ2lmaWVkIHRoaW5ncy4KICAgCjE5OTktMDMtMTEgMTY6MTAgIGhhcmRha2VyCgogICAqIEFHRU5UOgoKICAgLSAoQUdFTlQpOiByZW1vdmVkIEFHRU5UCiAgIAoxOTk5LTAzLTExIDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogY2hhbmdlZCBzb21lIGNvbW1lbnRzIHRvIC8qICovIGluc3RlYWQgb2YgLy8uCiAgIAoxOTk5LTAzLTExIDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBNaWtlIEJhZXIuCiAgIAoxOTk5LTAzLTEwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiBOQU1FIC0+IE9JRC4KICAgCjE5OTktMDMtMTAgMTU6MDcgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogZ3JvdXAgbGluZXMgd2VyZSBiYWNrd2FyZHMuCiAgIAoxOTk5LTAzLTEwIDE1OjA3ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQ6CgogICAtIChBR0VOVC50eHQpOiBtb3ZlZCBmcm9tIEFHRU5UIHRvIGF2b2lkIG5vbi1jYXNlLXNlbnNpdGl2ZSB3MzIgY29uZmxpY3RzLgogICAKMTk5OS0wMy0wOCAxNDoyOCAgbXNsaWZjYWsKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIHJvdXRlLmM6CgogICAtIChzbm1wbmV0c3RhdDppZi5jLCByb3V0ZS5jKSBsaW1pdCBpbnRlcmZhY2UgbmFtZSBzaXplcyB0byBmaXQgZml4ZWQgbGVuZ3RoIGJ1ZmZlcnMuCiAgIAoxOTk5LTAzLTA4IDA5OjU4ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpIENvbXBsZXRlIERhdmUgU2hpZWxkcycgcGF0Y2ggZm9yIGNvbnRpbnVlIGFmdGVyIGVycm9yLgogICAKMTk5OS0wMy0wOCAwNTowNyAgbXNsaWZjYWsKCiAgICogQUdFTlQ6CgogICAtIChBR0VOVCkgTUFYX05BTUVfTEVOIC0tPiBNQVhfT0lEX0xFTiBpbiBleGFtcGxlCiAgIAoxOTk5LTAzLTA4IDA1OjAxICBtc2xpZmNhawoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0od2luMzIvY29uZmlnLmgpIHJlbW92ZSB1bnVzZWQgU1lTX1RJTUVfTkFNRSxHTE9CQUxTRUNVUklUWS4gYWRkIG5ldyBjb25zdGFudHMuCiAgIAoxOTk5LTAzLTA4IDA0OjE0ICBtc2xpZmNhawoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKSB1c2UgcmVxdWVzdCBkYXRhIHdpdGggcmVxdWVzdCBjYWxsYmFjawogICAKMTk5OS0wMy0wOCAwNDowMiAgbXNsaWZjYWsKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgKHBhcnNlLmMpIC0gZml4IHN1YmlkIGluaXQ7IHJlbW92ZSB1c2VsZXNzICctUGwnIG9wdGlvbi4KICAgCjE5OTktMDMtMDUgMTc6MzYgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHZlcnNpb24gdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNzozNSAgaGFyZGFrZXIKCiAgICogRkFRLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaAo6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNiApCiAgIAoxOTk5LTAzLTA1IDE3OjM0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBmaW5hbCB1cGRhdGUuCiAgIAoxOTk5LTAzLTA1IDE3OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgogICAKMTk5OS0wMy0wNSAxNzoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlKTogYXV0b2NvbmYgdXBkYXRlLgogICAKMTk5OS0wMy0wNSAxNzoxOSAgaGFyZGFrZXIKCiAgICogRkFRLCBORVdTOgoKICAgLSAoRkFRLCBORVdTKTogZmluYWwgdXBkYXRlcy4KICAgCjE5OTktMDMtMDUgMTc6MTIgIGhhcmRha2VyCgogICAqIEFHRU5UOgoKICAgLSAoQUdFTlQpOiBEYXZlIFNoaWVsZCdzIG5ldyBkb2N1bWVudC4KICAgCjE5OTktMDMtMDUgMTc6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5oOgoKICAgLSAobWliSUkvc3lzdGVtLmgpOiByZW1vdmVkCiAgIAoxOTk5LTAzLTA1IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiByZWZlcmVuY2UgQUdFTlQgZG9jdW1lbnQuCiAgIAoxOTk5LTAzLTA1IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogZG8gZXJyb3IgcmVwb3J0aW5nIGZvciBzb2xhcmlzIG1lbW9yeSBzdXBwb3J0LgogICAKMTk5OS0wMy0wNSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0Lmg6CgogICAtICh2bXN0YXQuaCk6IGRlY2xhaXIgaW5pdF92bXN0YXQoKS4KICAgCjE5OTktMDMtMDUgMTY6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1cGRhdGVkIC0taGVscCdzIG1vZHVsZSBsaXN0LgogICAKMTk5OS0wMy0wNSAxNTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGV4YW1wbGVzL3dvbWJhdC5jCiwgaG9zdC9ocl9uZXR3b3JrLmMsIG1pYklJL3NubXBfbWliLmgsCiAgIG1pYklJL3N5c3RlbV9taWIuaCwgdWNkLXNubXAvZGlzay5oLAogICB1Y2Qtc25tcC9lcnJvcm1pYi5oLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIHVjZC1zbm1wL2ZpbGUuaCwgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmgsCiAgIHVjZC1zbm1wL3Bhc3MuaCwgdWNkLXNubXAvcHJvYy5oLCB1Y2Qtc25tcC9yZWdpc3RyeS5oCiwgdWNkLXNubXAvdmVyc2lvbmluZm8uaDoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYywgd29tYmF0LmMsIGhyX25ldHdvcmsuYywgc25tcF9taWIuaCwgc3lzdGVtX21pYi5oLAogICAgIGRpc2suaCwgZXJyb3JtaWIuaCwgZXh0ZW5zaWJsZS5oLCBmaWxlLmgsIG1lbW9yeV9zb2xhcmlzMi5oLCBwYXNzLmgsCiAgICAgcHJvYy5oLCByZWdpc3RyeS5oLCB2ZXJzaW9uaW5mby5oKToKICAgICAtIC1XYWxsIGZpeGVzLCBtb3N0bHkgaW5pdF8oKSByb3V0aW5lcyBkZWNsYWlyZWQgaW4gdGhlIGFwcHJvcHJpYXRlIC5oIGZpbGVzLgogICAKMTk5OS0wMy0wNSAxNTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IHVwZGF0ZS4KICAgCjE5OTktMDMtMDUgMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6IGNyZWF0ZSBVTkRPCiAgIAoxOTk5LTAzLTA1IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcmVtb3ZlIHBlcnNpc3RlbnQgc3RvcmFnZSBpbmZvLCBzaW5jZSBpdHMgbm90IHVzZWQgdGhpcyByZWxlYXNlLgogICAKMTk5OS0wMy0wNSAxMTowMiAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICAKICAgKHRjcC5jKSAtIGJyZWFrIG91dCBvZiBpbmZpbml0ZSBsb29wIHdoZW4ga2xvb2t1cCBmYWlscy4KICAgCjE5OTktMDMtMDUgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBzd2l0Y2ggQ09NTUlUIGFuZCBBQ1RJT04gcGhhc2VzLgogICAKMTk5OS0wMy0wNSAxMDoyMSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZTogcmVhcnJhbmdpbmcgYW5kIGNsZWFuaW5nLgogICAKMTk5OS0wMy0wNSAxMDoxMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHRoZSB1c2Ugb2YgJ2hlYWRlcl9zaW1wbGVfdGFibGUnIHJhdGhlciB0aGFuICdjaGVja21pYicKICAgICAtIGV4cGxpY2l0IGNvbXBhcmlzb24gd2l0aCBNQVRDSF9GQUlMRUQKICAgICAtIGRvbid0IHNldCBkZWZhdWx0cyBmb3IgJ3dyaXRlX21ldGhvZCcgYW5kICd2YXJfbGVuJwogICAJCShzaW5jZSBib3RoICdoZWFkZXJfZ2VuZXJpYycgYW5kICdjaGVja21pYicgZG8gdGhpcyBhbnl3YXkpCiAgICAgLSBVc2UgZGVmaW5lZCBjb25zdGFudHMgZm9yIHZhcmlhYmxlIGluaXRpYWxpc2F0aW9uIGluIHRoZQogICAJCXdyaXRlIHJvdXRpbmUgKHNpbWlsYXJseSBpbiB0aGUgbWliMmMuY29uZiBwYXRjaCkKICAgICAgICAgW1RoaXMgaXMgb25lIG9mIG15IGhvYmJ5LWhvcnNlcyB3aXRoIG91ciBzdHVkZW50cywgc28gSSBkb24ndAogICAJCSBzZWUgd2h5ICJwcm9mZXNzaW9uYWwiIHByb2dyYW1tZXJzIHNob3VsZCBiZSBleGVtcHQhXQogICAKICAgICAtIE1ha2UgcHJvcGVyIHVzZSBvZiB0aGUgdGhyZWUtcGhhc2UgbmF0dXJlIG9mIFNFVHMKICAgCjE5OTktMDMtMDUgMDk6NDAgIG1zbGlmY2FrCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAKICAgRml4IFdpbjMyIHZlcnNpb24gb2YgZ2V0dGltZW9mZGF5OiB0dl91c2VjIHdhcyBtaWxsaXNlY3MgLCByZXR1cm4gbm93ID0gMAogICAKMTk5OS0wMy0wNCAxODoxMSAgbXNsaWZjYWsKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAKICAgKHNubXBfYXBpLmMpIC0gZXhwb3NlIHNubXBfZnJlZTsgc25tcF9wZHVfYWRkX3ZhcmlhYmxlIHJldHVybnMgcHRyIHRvIHZhciBmb3IKICAgZnV0dXJlIGltcHJvdmVkIGVycm9yIHJlY292ZXJ5LgogICAKMTk5OS0wMy0wNCAxNzo1MCAgbXNsaWZjYWsKCiAgICogYWdlbnQvaGlzdG9yeS5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgd2luMzIvY29uZmlnLmgKOgoKICAgCiAgIFJlcGxhY2UgdXNlcyBvZiBiemVybyB3aXRoIG1lbXNldCwgYmNvcHkgd2l0aCBtZW1jcHkuCiAgIEZpeCBwcm90b3R5cGVzLgogICAKMTk5OS0wMy0wNCAxNzowMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgCiAgIChzeXNPUlRhYmxlLmMpIC0gcmVtb3ZlIHN0YXRpYyB1X2xvbmcgbG9uZ19yZXR1cm4sIGZvciBjb25zaXN0ZW5jeS4KICAgCjE5OTktMDMtMDQgMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYwosIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtICh1dGlsX2Z1bmNzLmMsIGR1bW15LmMsIGV4YW1wbGUuYywgd29tYmF0LmMsIHRjcC5jLCBocHV4LmMsCiAgICAgbWVtb3J5LmMsIGFsYXJtLmMsIHNubXBfYXBpLmMpOgogICAgIC0gbWlzYyBmaXhlcywgLVdhbGwgbW9zdGx5LgogICAKMTk5OS0wMy0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5OS0wMy0wNCAxNjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICAtICh2bXN0YXRfZnJlZWJzZDIuYyk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIHR5cG8gZml4ZWQuCiAgIAoxOTk5LTAzLTA0IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUUuc211eDoKCiAgIC0gKFJFQURNRS5zbXV4KTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgIC0gdXBkYXRlLgogICAKMTk5OS0wMy0wNCAxNTo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwKICAgZXhhbXBsZXMvZXhhbXBsZS5jLCBtaWJJSS9zeXNPUlRhYmxlLmMsIG1pc2MvaXBmd2FjYy5jCiwgdWNkLXNubXAvZGlzay5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIHVjZC1zbm1wL2ZpbGUuYywgdWNkLXNubXAvbG9hZGF2ZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYwosIHVjZC1zbm1wL3Byb2MuYywgdWNkLXNubXAvdm1zdGF0LmMsCiAgIHVjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIGV4YW1wbGUuYywgc3lzT1JUYWJsZS5jLCBpcGZ3YWNjLmMsCiAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcHJvYy5jLCB2bXN0YXQuYywKICAgICB2bXN0YXRfZnJlZWJzZDIuYyk6CiAgICAgLSBjcmVhdGUgYW5kIHVzZSBoZWFkZXJfc2ltcGxlX3RhYmxlIHRvIHJlcGxhY2UgY2hlY2ttaWIoKS4KICAgCjE5OTktMDMtMDQgMTU6MjkgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgCiAgIChocl9kaXNrLmMpIC0gY29uZGl0aW9uYWxseSB1c2UgZGVmaW5lZCBES0MgZGlzayB0eXBlcwogICAKMTk5OS0wMy0wNCAxNToyNSAgbXNsaWZjYWsKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgCiAgIChkaXNrLmMpIC0gZXhwbGljaXQgYnJhY2VzIHRvIGF2b2lkIGFtYmlndW91cyBgZWxzZScKICAgCjE5OTktMDMtMDQgMTU6MTIgIG1zbGlmY2FrCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9wcm9jLmMsIHVjZC1zbm1wL2xvYWRhdmUuYwo6CgogICAKICAgCiAgIChocl9wcm9jLmMsIGxvYWRhdmUuYykgLSBmaXhlZCBjb3JlIG9uIGdldGxvYWRhdmcgaW4gYSBkaWZmZXJlbnQgd2F5CiAgIAoxOTk5LTAzLTA0IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmVkIHZvaWQgY2hlY2suCiAgIAoxOTk5LTAzLTA0IDA5OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgLSBXaGVuIHRoZSBhZ2VudCBpcyBjb21waWxlZCB3aXRoIEhBVkVfTElCUlBNIHNldCwgeWV0IG5vIGRhdGFiYXNlCiAgICAgICBpcyBmb3VuZCwgYWdlbnQgd2lsbCBjb3JlLi4uCiAgIAoxOTk5LTAzLTA0IDA5OjM4ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXMsIGxvY2FsL2VjZS1zbm1wZC5jb25mLAogICBsb2NhbC9maXhwcm9jLmNvbmY6CgogICAtIChyZW1vdmUtZmlsZXMsIGVjZS1zbm1wZC5jb25mLCBmaXhwcm9jLmNvbmYpOgogICAgIC0gcmVtb3ZlZCBlY2Ugc3BlY2lmaWMgY29uZmlnIGZpbGVzIGZyb20gdGhlIHJlcG9zaXRvcnkuCiAgICAgLSBkb24ndCByZW1vdmUgbG9jYWwvKi5jb25mIGluIHRoZSBmaXJzdCBwbGFjZSBhbnltb3JlLgogICAKMTk5OS0wMy0wNCAwOTozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jOgoKICAgLSAobG9hZGF2ZS5jKTogUGF0Y2ggZnJvbSBDaHJpcyBIdWdoZXM6CiAgICAgLSBmaXggbG9hZCBhdmVyYWdlIG9uIHNvbGFyaXMuCiAgIAoxOTk5LTAzLTA0IDA5OjI0ICBtc2xpZmNhawoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIAogICAKICAgKE1ha2VmaWxlLmluKSAtIGZpbmQgbWliZGVmcy5oIHdoZW4gbm90IGJ1aWxkaW5nIGluIHRoZSBzb3VyY2UgdHJlZQogICAKMTk5OS0wMy0wNCAwOToyMCAgbXNsaWZjYWsKCiAgICogYWdlbnQvc25tcGQuYywgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYwosIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsCiAgIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIAogICAKICAgKGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYyk6IHJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZXMKICAgCiAgIChhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jKTogY2hhbmdlICIqd29yZCIgdG8gIip0b2tlbiIgdG8gaGVscCBzb21lIGNvbXBpbGVyCiAgIAoxOTk5LTAzLTA0IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogZml4IHZvaWQgdGVzdCBmb3IgYW5zaSBjb21waWxlcnMuCiAgIAoxOTk5LTAzLTA0IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUUuc211eDoKCiAgIC0gKFJFQURNRS5zbXV4KTogYWRkIE5pY2suCiAgIAoxOTk5LTAzLTA0IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAodmVyc2lvbnRhZyk6IHJlcG9zaXRvcnkgbW92ZS4KICAgCjE5OTktMDMtMDQgMDQ6MDggIG1zbGlmY2FrCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIAogICAoc25tcG5ldHN0YXQvaWYuYykgLSBhZGQgdm9pZCB0byBlbXB0eSBmb3JtYWwgcGFyYW1ldGVyIGxpc3QKICAgCjE5OTktMDMtMDMgMTg6MDIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlMTAgKQogICAKMTk5OS0wMy0wMyAxODowMiAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBtZW50aW9uIFNNVVguCiAgIAoxOTk5LTAzLTAzIDE4OjAwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1lbnRpb24gbmFtZSBjaGFuZ2UuCiAgIAoxOTk5LTAzLTAzIDE3OjUxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEZBUSwgTkVXUywgUE9SVElORywgUkVBRE1FCiwgVE9ETywgYnVnLXJlcG9ydCwgYWdlbnQvc25tcGQuYywKICAgbG9jYWwvUkVBRE1FLm1pYjJjOgoKICAgLSAoQ2hhbmdlTG9nLCBGQVEsIE5FV1MsIFBPUlRJTkcsIFJFQURNRSwgVE9ETywgYnVnLXJlcG9ydCwgc25tcGQuYywKICAgICBSRUFETUUubWliMmMpOiBlY2UudWNkYXZpcy5lZHUgLT4gdWNkLXNubXAudWNkYXZpcy5lZHUuCiAgIAoxOTk5LTAzLTAzIDExOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmM6CgogICAtIChwcm9jLmMsIHNvbGFyaXMuaCk6IFBhdGNoIGZyb20gQ2hyaXMgSHVnaGVzOgogICAgIC0gVXNlIC9wcm9jIG9uIHNvbGFyaXMuCiAgIAoxOTk5LTAzLTAzIDEwOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogYW5zaSdpZnkgdGhlIGNvbmZpZyBmdW5jdGlvbi4KICAgCjE5OTktMDMtMDMgMDg6MjggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IHJhbiBhdXRvY29uZi4uLgogICAKMTk5OS0wMy0wMyAwODoyNSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkZWQgTmljay4KICAgCjE5OTktMDMtMDIgMTU6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBMaW51eCBjb21waWxlcyBkaWUgYXQgU09fUkNWVElNRU8uCiAgICAgLSAtV2FsbCB0eXBlIGZpeGVzLgogICAKMTk5OS0wMy0wMiAxNToxOCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogdHlwby4KICAgCjE5OTktMDMtMDIgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgLSAobWVtb3J5X3NvbGFyaXMyLmMpOiB0eXBlY2FzdCBmdW5jdGlvbiB3aXRoICh2b2lkKS4KICAgCjE5OTktMDMtMDIgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXguaDoKCiAgIC0gKHNtdXguaCk6IHRvcCBsZXZlbCBzbXV4IGZha2UgbW9kdWxlIGhlYWRlci4KICAgCjE5OTktMDMtMDIgMTU6MTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2RlYnVnLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5oOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2RlYnVnLmMsCiAgICAgc25tcF9kZWJ1Zy5oKToKICAgICAtIG5ldyBmbGFnOiAgLS1kaXNhYmxlLWRlYnVnZ2luZyB0byBjb21wbGV0ZWx5IHR1cm4gb2ZmIGl0cyBzdXBwb3J0LgogICAgIC0gcmVuYW1pbmcgb2YgRE9ERUJVRyB0byBTTk1QX0FMV0FZU19ERUJVRy4KICAgICAtIGNsZWFuIHVwIG9mIHRoZSBjb25maWd1cmUgc2NyaXB0IG9wdGlvbnMgbGlzdGVkLCBpbmNsdWRpbmcgcHV0dGluZwogICAgICAgYSBsaXN0IG9mIGF2YWlsYWJsZSBtb2R1bGVzIGZvciBjb21waWxhdGlvbiBpbnRvIHRoZSBhZ2VudC4KICAgCjE5OTktMDMtMDIgMTM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiBkb24ndCByZXR1cm4gYSBwb2ludGVyIHRvIGEgcG9pbnRlci4KICAgCjE5OTktMDMtMDIgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogbWliSUkvc3lzdGVtX21pYi5jLCBtaWJJSS92YWNtX3ZhcnMuYwosIG1pc2MvaXBmd2FjYy5jOgoKICAgLSAoc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgaXBmd2FjYy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBTdWdnZXN0ZWQgZml4ZXMgdG8gZWxpbWluYXRlIG1vcmUgc2hhZG93ZWQgZ2xvYmFsIHJlZmVyZW5jZXMuCiAgICAgLSBmaXh1cHMgZm9yIHByb3RvdHlwZSBbKHZvaWQpIHJlcGxhY2luZyAoKV0uCiAgIAoxOTk5LTAzLTAyIDA4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIC0gKGFzbjEuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBEb24ndCBkZWZpbmUgTUFYX05BTUVfTEVOIGlmIGRlZmluZWQgc29tZXdoZXJlIGVsc2UuCiAgIAoxOTk5LTAzLTAxIDE3OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6CiAgICAgLSBhbGxvdyBudWxsIGxlbmd0aCBwYXNzd29yZHMuCiAgICAgLSBjbGVhbiB1cCBkZWJ1Z2dpbmcgb3V0cHV0LgogICAKMTk5OS0wMy0wMSAxNjoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmg6CgogICAtIChhc24xLmgpOiBwdXQgYmFjayBpbiBNQVhfTkFNRV9MRU4gdGVtcG9yYXJpbHkuCiAgIAoxOTk5LTAzLTAxIDE2OjIwICBoYXJkYWtlcgoKICAgKiBtYW4vOiBkZXMuMSwgZGVzLjM6CgogICAtIChkZXMuMSwgZGVzLjMpOiByZW1vdmVkIHVudXNlZCBtYW51YWwgcGFnZXMuCiAgIAoxOTk5LTAzLTAxIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYsIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZgosIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwgc25tcGQuMS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAtIHJlbW92ZSByZWZlcmVuY2UgdG8gRUNFIGRlcHQuCiAgIAoxOTk5LTAzLTAxIDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgdGFyZ2V0cy4KICAgCjE5OTktMDMtMDEgMTY6MTcgIGhhcmRha2VyCgogICAqIG1hbi86IG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZgosIHNubXBfY29uZmlnLjUuZGVmLCBzbm1wZC4xLmRlZiwKICAgc25tcGQuY29uZi41LmRlZiwgc25tcHRlc3QuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYKLCB2YXJpYWJsZXMuNToKCiAgIC0gKG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0ZXN0LjEsIHNubXB0cmFwZC5jb25mLjUuZGVmLAogICAgIHZhcmlhYmxlcy41KTogTWljaGFlbCBTbGlmY2FrOgogICAgIC0gc3BlbGwgY2hlY2suCiAgIAoxOTk5LTAzLTAxIDE2OjExICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAtIHJlbW92ZWQgYSB0cmFpbGluZyBiYWNrc2xhc2ggdGhhdCB3YXNuJ3QgbmVlZGVkLgogICAKMTk5OS0wMy0wMSAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jOgoKICAgLSAoYWxhcm0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gQ2FzdCB0byBwb2ludGVyIHRvIGludCBtYXkgb3ZlcmZsb3cgdGhlIHJldHVybiBidWZmZXIuCiAgIAoxOTk5LTAzLTAxIDE0OjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LmMsIHNtdXguaCk6IDMuNmlmaWVkLgogICAKMTk5OS0wMy0wMSAxNDowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYywgc211eC5oOgoKICAgLSAoc211eC5jLCBzbXV4LmgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgLSBjb21wbGV0ZWx5IHJlLXdyaXR0ZW4gc211eCBtb2R1bGVzLgogICAKMTk5OS0wMy0wMSAxMzo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmg6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgpOiBtYWtlIGNvbXBhcmVfdHJlZSgpIGdsb2JhbC4KICAgCjE5OTktMDMtMDEgMTM6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjb250ZXh0X3BhcnNlLmMsIG1pYi5jOgoKICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwZWNhc3RpbmcgZm9yIGNlcnRhaW4gZnVuY3Rpb25zIHRvIChjaGFyICopLgogICAKMTk5OS0wMy0wMSAxMjozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmg6CgogICAtIChhc24xLmgpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIGFkZGVkIE1JTl9PSURfTEVOIGZvciBpbnN0cnVjdGlvbmFsIHVzZSBtb3N0bHkgKGl0cyB1bnVzZWQpLgogICAKMTk5OS0wMy0wMSAxMjoyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCiAgIAoxOTk5LTAzLTAxIDEyOjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHV0IGEgcHJvcGVyICh2b2lkKSBpbnRvIHRoZSBmdW5jdGlvbiBwcm90b3R5cGUuCiAgIAoxOTk5LTAzLTAxIDEyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogc3ByaW50ZiBhcmcgbWlzbWF0Y2guCiAgIAoxOTk5LTAzLTAxIDEyOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgZHVwbGljYXRlIGNhc2UgZW50cmllcy4KICAgCjE5OTktMDMtMDEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAtIGZyZWUgdGhlIGludGVyZmFjZSB0YWJsZS4KICAgCjE5OTktMDMtMDEgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmM6CgogICAtIChlcnJvcm1pYi5jKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgZXJybm8gdmFyaWFibGUuCiAgIAoxOTk5LTAzLTAxIDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gcmVuYW1pbmcgb2YgdmFyaWFibGVzIGF3YXkgZnJvbSBzeXN0ZW0gZnVuY3Rpb24gbmFtZXMgKGluZGV4IC0+IGxpbmRleCkuCiAgIAoxOTk5LTAzLTAxIDEyOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmM6CgogICAtIChkbG1vZF9taWIuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgIC0gaW5pdGlhbGl6ZSB2YXJpYWJsZSB0byAwLgogICAKMTk5OS0wMy0wMSAxMDo0OCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHR5cG86IGZpbGVNYXggLT4gZmlsZUVycm9yRmxhZyBuYW1lIGNoYW5nZS4KICAgCjE5OTktMDItMjYgMTY6MzMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlOSApCiAgIAoxOTk5LTAyLTI2IDE2OjExICBoYXJkYWtlcgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYsCiAgIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYKLCBzbm1wdHJhcGQuOCwgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAtIChNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLjgsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAtIG5ldyBkb2N1bWVudGF0aW9uIG9uIGNvbmZpZ3VyYXRpb24gY2FwYWJpbGl0aWVzLgogICAKMTk5OS0wMi0yNiAxNjoxMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogdXNhZ2UgdXBkYXRlLCBhbmQgLUggc3VwcG9ydC4KICAgCjE5OTktMDItMjYgMTY6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogdXBkYXRlIGZvciAzLjYgcmVsZWFzZS4KICAgCjE5OTktMDItMjYgMTY6MDYgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogdXBkYXRlIGFuZCBtYWRlIGJldHRlciBleGFtcGxlcy4KICAgCjE5OTktMDItMjYgMTU6NDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBVbmxpbmtlZCBPSUQgLi4uIGNjaXR0IDAgZml4IGNvdXJ0ZXN5IG9mIERhdmUgU2hpZWxkLgogICAgIC0gQ29udGludWUgYWZ0ZXIgcmVzZXJ2ZWQgd29yZCBlcnJvciBmaXggY291cnRlc3kgb2YgRGF2ZSBTaGllbGQuCiAgICAgLSBNb2RpZmljYXRpb24gdG8gIzIgY291cnRlc3kgb2YgTmllbHMgQmFnZ2VzZW4uCiAgICAgLSBNb2RpZmljYXRpb24gdG8gcHJpbnQgc3ViLWlkZW50aWZpZXIgPT0gMAogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcuCiAgICAgLSBJbnN0ZWFkIG9mIHJlLW9yZGVyaW5nIGFsbCBzaW5nbHktbGlua2VkIGxpc3RzLCB1c2UgYSBuZXcgbWVtYmVyCiAgICAgICB0aGF0IGZsYWdzIHdoZW4gYSByZXBvcnQgaGFzIGJlZ3VuLgogICAKMTk5OS0wMi0yNiAxNTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIChsb2FkYXZlLmMsIGxvYWRhdmUuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBpbXBsZW1lbnQgbG9hZCBhdmVyYWdlIHJlcG9ydGluZyBhcyBhIGludGVnZXIgYW5kIGFzIGEgZmxvYXQuCiAgIAoxOTk5LTAyLTI1IDEwOjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaDoKCiAgIC0gKFJFQURNRSwgdWNkX3NubXAuaCwgbWVtb3J5X3NvbGFyaXMyLmMsIG1lbW9yeV9zb2xhcmlzMi5oKTogUGF0Y2gKICAgICBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAtIG1lbW9yeSBzdXBwb3J0IGZvciBzb2xhcmlzMi4KICAgCjE5OTktMDItMjQgMTc6MTAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbGludXguaCk6CiAgICAgLSBDaGVjayBmb3IgYW5kIGhhbmRsZSAyLjIgL3Byb2MvbmV0L2RldiBjaGFuZ2VzLgogICAKMTk5OS0wMi0yNCAxNDo0MyAgaGFyZGFrZXIKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiB1cGRhdGUuCiAgIAoxOTk5LTAyLTIyIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBEb24ndCBwcmludCAiY2FuJ3QgZmluZCBtb2R1bGUgWFhYIiBtZXNzYWdlcyB3aXRob3V0IHdhcm5pbmdzIHR1cm5lZCBvbi4KICAgCjE5OTktMDItMjIgMDk6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgLSBUaGUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBzZWxlY3QgImFsbG93IHVuZGVyc2NvcmUgaW4gTUlCCiAgICAgICBzeW1ib2xzIiBpcyBtaXNzaW5nLgogICAKMTk5OS0wMi0xNyAxNjoyMyAgZHJlZWRlcgoKICAgKiBsb2NhbC9zbm1wLXVjZC5zaDoKCiAgIGZpbGUgc25tcC11Y2Quc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk5LTAyLTE3IDE2OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0Lzogd2luc3R1Yi5jLCB3aW5zdHViLmg6CgogICAtICh3aW5zdHViLmMsIHdpbnN0dWIuaCk6IHBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZ2VuZXJpYyB3aW5kb3dzIEFQSSByZXBsYWNlbWVudHMuCiAgIAoxOTk5LTAyLTE3IDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAoc25tcGQuYywgZHVtbXkuYywgd29tYmF0LmMsIHN5c3RlbV9taWIuYywgdmFjbV92YXJzLmMsIGRsbW9kLmMsCiAgICAgZGlzay5jLCBleHRlbnNpYmxlLmMsIGZpbGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywKICAgICBtZW1vcnlfZnJlZWJzZDIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLCBtaWIuYywKICAgICByZWFkX2NvbmZpZy5jKTogd29yZCAtPiB0b2tlbiAoIndvcmQiIGlzIHJlc2VydmVkIGluIHNvbWUgY29tcGlsZXJzLgogICAKMTk5OS0wMi0xNyAxNToyOCAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3LCBsaWJzbm1wL2xpYnNubXAuZHNwCiwgbGlic25tcF9kbGwvbGlic25tcC5kZWYsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIHNubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCwgc25tcHRhYmxlL3NubXB0YWJsZS5kc3AKOgoKICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgc25tcG5ldHN0YXQuZHNwLCBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB3aW4zMiB1cGRhdGVzLgogICAKMTk5OS0wMi0xNyAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHNubXBfYXV0aC5jCjoKCiAgIC0gKHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHNubXBfYXV0aC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB2YXJpYWJsZSBuYW1lIGNvbmZsaWN0IGZpeGVzLgogICAKMTk5OS0wMi0xNyAxNToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAtIChzbm1wX2RlYnVnLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGRlYnVnX2FyZ3Mgd2FzIGRlY2xhcmVkIHR3aWNlLgogICAgIC0gaGVhZGVyIGZpeGVzIGZvciB3aW4zMi4KICAgCjE5OTktMDItMTcgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGZwcmludF92YXJpYWJsZSB0byBub3QgcmVjdXJzZS4KICAgCjE5OTktMDItMTcgMTU6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvY29udGV4dF9wYXJzZS5jOgoKICAgLSAoY29udGV4dF9wYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBkb24ndCB1c2UgYSB2YXJpYWJsZSBjYWxsZWQgJ3RpbWUnLiAgVHNrIHRzay4KICAgCjE5OTktMDItMTcgMTU6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBjb21tZW50IHJlZm9ybWF0dGluZy4KICAgCjE5OTktMDItMTcgMTU6MTggIGhhcmRha2VyCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB1c2UgYSAnLScgaW5zdGVhZCBvZiBhICcuJyBmb3IgSUVFRTgwMi0xMS4KICAgCjE5OTktMDItMTcgMTU6MTcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogc2VwYXJhdGUgdGFyZ2V0IGZvciBnZW5lcmF0ZWQgbWFudWFsIHBhZ2VzLgogICAKMTk5OS0wMi0xNyAxNToxNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgbWliMmMuY29uZjoKCiAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdXBkYXRlIGFnYWluIGZvciBiZXR0ZXIgc3RpbGwgb3V0cHV0LgogICAKMTk5OS0wMi0xNyAxNToxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC86IGlmLmMsIGluZXQuYywgbWFpbi5jLAogICBuZXRzdGF0LmgsIHJvdXRlLmM6CgogICAtIChpZi5jLCBpbmV0LmMsIG1haW4uYywgbmV0c3RhdC5oLCByb3V0ZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtYWtlIHNubXBuZXRzdGF0IHdpbjMyIGNvbXBhdGlibGUuCiAgIAoxOTk5LTAyLTE3IDE1OjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdXNhZ2UgZml4LgogICAKMTk5OS0wMi0xNyAxNToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuaDoKCiAgIC0gKHNubXBkLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgcHJvdG90eXBlLgogICAKMTk5OS0wMi0xNyAxNToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEwuIEhpdGNoOgogICAgIC0gZml4IGlmX25hbWUgdmFyaWFibGUgYnkgbWFraW5nIGl0IHN0YXRpYy4KICAgCjE5OTktMDItMTYgMTc6MDUgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMsIG1pYjJjLmNvbmY6CgogICAtIChtaWIyYywgbWliMmMuY29uZik6IHVwZGF0ZWQgbWliMmMgcHJvZ3JhbS4uLiAgc3RpbGwgaW4gcHJvZ3Jlc3MuLi4KICAgCjE5OTktMDItMTEgMTY6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdXBkYXRlLgogICAKMTk5OS0wMi0xMSAxNjo0OCAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU4ICkKICAgCjE5OTktMDItMTEgMTY6NDYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCBFeHQtMy02LXByZTggKQogICAKMTk5OS0wMi0xMSAxNjozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmM6CgogICAtICh0Y3AuYyk6IHZhcl90Y3BFbnRyeSB3YXMgY2hlY2tpbmcgYWdhaW5zdCB0aGUgaW5jb21pbmcgb2lkIHdpdGggdGhlCiAgICAgd3JvbmcgbGVuZ3RoIGFuZCBjb3VsZCBzdWNjZWVkIGF0IHRpbWVzIHdoZW4gaXQgc2hvdWxkbid0IGhhdmUuCiAgIAoxOTk5LTAyLTExIDE2OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYWNsX3BhcnNlLmMsIGNvbnRleHRfcGFyc2UuYywKICAgcGFydHlfcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYzoKCiAgIC0gKGFjbF9wYXJzZS5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgIC0gTW9yZSBidWYgc2l6ZSBzdGFuZGFyZGl6YXRpb25zIHRoYXQgTWljaGFlbCBtaXNzZWQuCiAgICAgLSBBIGZldyBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4gY29udmVyc2lvbnMgdGhhdCBNaWNoYWVsIG1pc3NlZC4KICAgCjE5OTktMDItMTEgMTY6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogaW5jbHVkZSBzbm1wX3ZhcnMuaCBhaGVhZCBvZiB2YXJfc3RydWN0LmguCiAgIAoxOTk5LTAyLTExIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMKLCBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBkZWx0YS5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0YWJsZS5jLAogICBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfZGVidWcuYywKICAgc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKCopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGNvbnZlcnQgTUFYX05BTUVfTEVOIC0+IE1BWF9PSURfTEVOLgogICAgIC0gY29udmVydCB0ZW1wb3JhcnkgY2hhcmFjdGVyIHN0b3JhZ2UgYnVmZmVycyB0byBTUFJJTlRfTUFYX0xFTi4KICAgICAtIG1ha2UgdGhlIGxpYnJhcmllcyBwcmludF8gZnVuY3Rpb25zIHVzZSB0aGUgZnByaW50XyBmdW5jdGlvbgogICAgICAgYWxyZWFkeSBkZWZpbmVkIGFuZCBwYXNzIGl0IHN0ZG91dC4KICAgCjE5OTktMDItMDkgMTQ6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGluY3JlYXNlIGJ1ZmZlciBzaXplIGZvciBvaWQgcHJpbnRpbmcuCiAgIAoxOTk5LTAyLTA5IDE0OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKHNubXBfZGVidWcuYyk6IGRlZmluZSBhIHN5bWJvbCBmb3IgT0lEIHByaW50aW5nJ3Mgc3RvcmFnZSBidWZmZXIgc2l6ZS4KICAgCjE5OTktMDItMDkgMTQ6MTAgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiB0eXBvLgogICAKMTk5OS0wMi0wOSAxNDoxMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1ha2UgRkFRLmh0bWwuCiAgIAoxOTk5LTAyLTA4IDIzOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9kbG1vZHMvOiBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgsIGV4YW1wbGUuYwosIGV4YW1wbGUuaDoKCiAgIC0gKGFnZW50L2RsbW9kcyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gbWlzYyBmaXhlcy4KICAgCjE5OTktMDItMDggMjM6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBtaWJpbmNsLmg6CgogICAtIChrZXJuZWxfc3Vub3M1LmMsIG1pYmluY2wuaCkgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBpbmNsdWRlIHVwZGF0ZXMuCiAgIAoxOTk5LTAyLTA4IDIzOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvdXRpbF9mdW5jcy5oCiwgc25tcDJwLmMsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsCiAgIHNubXBfdmFycy5oLCBzbm1wZC5oLCB2YXJfc3RydWN0Lmg6CgogICAtIChhZ2VudC8qKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSB0eXBlZGVmIGFsbCBvZiB0aGUgdmFyX3h4eCBhbmQgd3JpdGUgbWV0aG9kIGZ1bmN0aW9ucy4KICAgCjE5OTktMDItMDggMjM6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogZHVtbXkvZHVtbXkuYywgZXhhbXBsZXMvZXhhbXBsZS5jLAogICBleGFtcGxlcy9leGFtcGxlLmgsIGV4YW1wbGVzL3dvbWJhdC5jLCBob3N0L2hyX2RldmljZS5jCiwgaG9zdC9ocl9kZXZpY2UuaCwgaG9zdC9ocl9kaXNrLmMsIGhvc3QvaHJfZGlzay5oCiwgaG9zdC9ocl9maWxlc3lzLmMsIGhvc3QvaHJfZmlsZXN5cy5oLAogICBob3N0L2hyX25ldHdvcmsuYywgaG9zdC9ocl9uZXR3b3JrLmgsCiAgIGhvc3QvaHJfcGFydGl0aW9uLmMsIGhvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcmludC5oLCBob3N0L2hyX3Byb2MuYywKICAgaG9zdC9ocl9wcm9jLmgsIGhvc3QvaHJfc3RvcmFnZS5jLCBob3N0L2hyX3N0b3JhZ2UuaAosIGhvc3QvaHJfc3dpbnN0LmMsIGhvc3QvaHJfc3dpbnN0LmgsCiAgIGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zd3J1bi5oLCBob3N0L2hyX3N5c3RlbS5jCiwgaG9zdC9ocl9zeXN0ZW0uaCwgbWliSUkvYXQuYywgbWliSUkvYXQuaCwKICAgbWliSUkvaWNtcC5jLCBtaWJJSS9pY21wLmgsIG1pYklJL2ludGVyZmFjZXMuYywKICAgbWliSUkvaW50ZXJmYWNlcy5oLCBtaWJJSS9pcC5jLCBtaWJJSS9pcC5oLAogICBtaWJJSS9yb3V0ZV93cml0ZS5oLCBtaWJJSS9zbm1wX21pYi5jLCBtaWJJSS9zbm1wX21pYi5oCiwgbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJJSS9zeXNPUlRhYmxlLmgsCiAgIG1pYklJL3N5c3RlbS5oLCBtaWJJSS9zeXN0ZW1fbWliLmMsIG1pYklJL3N5c3RlbV9taWIuaAosIG1pYklJL3RjcC5jLCBtaWJJSS90Y3AuaCwgbWliSUkvdWRwLmMsCiAgIG1pYklJL3VkcC5oLCBtaWJJSS92YWNtX3ZhcnMuYywgbWliSUkvdmFjbV92YXJzLmgKLCBtaWJJSS92YXJfcm91dGUuYywgbWliSUkvdmFyX3JvdXRlLmgsCiAgIG1pc2MvaXBmd2FjYy5jLCBtaXNjL2lwZndhY2MuaCwgc211eC9zbm1wX2JncC5jLAogICBzbXV4L3NubXBfYmdwLmgsIHNtdXgvc25tcF9vc3BmLmMsIHNtdXgvc25tcF9vc3BmLmgKLCBzbXV4L3NubXBfcmlwMi5jLCBzbXV4L3NubXBfcmlwMi5oLAogICB1Y2Qtc25tcC9kaXNrLmMsIHVjZC1zbm1wL2Rpc2suaCwgdWNkLXNubXAvZXJyb3JtaWIuYwosIHVjZC1zbm1wL2Vycm9ybWliLmgsIHVjZC1zbm1wL2V4dGVuc2libGUuYywKICAgdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCB1Y2Qtc25tcC9maWxlLmMsIHVjZC1zbm1wL2ZpbGUuaAosIHVjZC1zbm1wL2hwdXguYywgdWNkLXNubXAvaHB1eC5oLAogICB1Y2Qtc25tcC9sb2FkYXZlLmMsIHVjZC1zbm1wL2xvYWRhdmUuaCwKICAgdWNkLXNubXAvbWVtb3J5LmMsIHVjZC1zbm1wL21lbW9yeS5oLAogICB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywgdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmgsCiAgIHVjZC1zbm1wL3Bhc3MuYywgdWNkLXNubXAvcGFzcy5oLAogICB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywgdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsCiAgIHVjZC1zbm1wL3Byb2MuYywgdWNkLXNubXAvcHJvYy5oLCB1Y2Qtc25tcC9yZWdpc3RyeS5jCiwgdWNkLXNubXAvcmVnaXN0cnkuaCwgdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgdWNkLXNubXAvdmVyc2lvbmluZm8uaCwgdWNkLXNubXAvdm1zdGF0LmMsCiAgIHVjZC1zbm1wL3Ztc3RhdC5oLCB1Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsIHYycGFydHkvYWNsX3ZhcnMuYywKICAgdjJwYXJ0eS9hY2xfdmFycy5oLCB2MnBhcnR5L2FsYXJtLmMsIHYycGFydHkvYWxhcm0uaAosIHYycGFydHkvY29udGV4dF92YXJzLmMsIHYycGFydHkvY29udGV4dF92YXJzLmgsCiAgIHYycGFydHkvZXZlbnQuYywgdjJwYXJ0eS9ldmVudC5oLCB2MnBhcnR5L3BhcnR5X3ZhcnMuYwosIHYycGFydHkvcGFydHlfdmFycy5oLCB2MnBhcnR5L3ZpZXdfdmFycy5jLAogICB2MnBhcnR5L3ZpZXdfdmFycy5oOgoKICAgLSAoYWdlbnQvKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwZWRlZiBhbGwgb2YgdGhlIHZhcl94eHggYW5kIHdyaXRlIG1ldGhvZCBmdW5jdGlvbnMuCiAgIAoxOTk5LTAyLTA4IDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgIC0gKHNubXBfZGVidWcuYyk6IHN5cy90eXBlcy5oCiAgIAoxOTk5LTAyLTA4IDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1ha2Ugc25tcF9vaWRfY29tcGFyZSB1c2UgY29uc3Qncy4KICAgCjE5OTktMDItMDggMTU6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHVzZSBzaXplX3QgaW5zdGVhZCBvZiAidW5zaWduZWQiIGZvciB4bWFsbG9jLCBldGMuCiAgIAoxOTk5LTAyLTA4IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2luZXQuYzoKCiAgIC0gKGluZXQuYyk6IHByb3BlciBicmFja2V0IGluZGVudGF0aW9uLgogICAKMTk5OS0wMi0wOCAxNToxNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAocm91dGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgaW5kZXggLT4gSWZJbmRleC4KICAgCjE5OTktMDItMDggMTU6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IG5vdGhpbmcuICByZWFsbHkuCiAgIAoxOTk5LTAyLTA4IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgLSAoc25tcGRlbHRhLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIHRpbWUgLT4gbV90aW1lLgogICAKMTk5OS0wMi0wOCAxNToxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHZhcmlhYmxlIHJlbmFtaW5nIGluZGV4IC0+IGlpbmRleC4KICAgCjE5OTktMDItMDggMTU6MTEgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaDoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlYWRfY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1ha2UgdHJlZV9jb21wYXJlKCkgYmUgYSByZWFsIHR5cGVkZWYnZWQgZnVuY3Rpb24gYWdhaW4gbm93IHRoYXQKICAgICAgIHFzb3J0aW5nIGlzIG5vIGxvbmdlciBuZWVkZWQuCiAgIAoxOTk5LTAyLTA4IDE1OjA4ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFRrLnBtIG1lbnRpb24uCiAgIAoxOTk5LTAyLTA4IDEyOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IFBhdGNoIGZyb20gSm9obiBQb2xzdHJhOgogICAgIC0gY2FsbCBhY2NlcHQoKSB0byBnZXQgdGhlIHNvY2tldCBmaWxlIGRlc2NyaXB0b3IuCiAgIAoxOTk5LTAyLTAyIDIyOjAyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIG1lbnRpb24gdGhhdCB0aGUgbWVtb3J5IHNlY3Rpb24gaXNuJ3Qgc3VwcG9ydGVkIG9uIGFsbAogICAgICAgYXJjaGl0ZWN0dXJlcy4KICAgCjE5OTktMDItMDIgMjI6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jOgoKICAgLSAoaHJfcHJvYy5jKTogdXNlIFswXSBpbmRleCBvZiBsb2FkIGF2ZXJhZ2UgdGFibGUuCiAgIAoxOTk5LTAyLTAyIDIyOjAxICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IFJlbW92ZSB1bnN1cHBvcmVkIG1pYiBub2RlcyBmcm9tIG91dHB1dCBpbnN0ZWFkIG9mIHJldHVybmluZyAwJ3MuCiAgIAoxOTk5LTAyLTAyIDIyOjAwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBtZW50aW9uIGxhY2sgb2Ygc29sYXJpcyBtZW1vcnkgc3VwcG9ydC4KICAgCjE5OTktMDItMDIgMTQ6NDggIGJhZXJtCgogICAqIGFnZW50L21pYmdyb3VwLzogdGFyZ2V0LmgsIHRhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMKLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgIC0gKHRhcmdldC5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgpOgogICAtIENvZGUgYWRkZWQgdG8gc3VwcG9ydCB0aGUgdGFyZ2V0IE1JQiwgc3BlY2lmaWNhbGx5IHRoZSBhZGRyZXNzIGFuZAogICAgIHBhcmFtcyB0YWJsZS4KICAgCjE5OTktMDItMDIgMTQ6MzQgIGJhZXJtCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgIC0gVXBkYXRlZCBjb3B5X3dvcmQgdG8gYWNjZXB0IHF1b3RlZCBzdHJpbmdzLCB3aXRoIGluY2x1ZGVkIHdoaXRlCiAgICAgICBzcGFjZXMuICdcJyBlc2NhcGVzIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyLgogICAKMTk5OS0wMi0wMiAxMzozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB0eXBvOiAtTCAtPiAtQSBpbiBoZWxwIHN0cmluZ3MgZG9jcy4KICAgCjE5OTktMDItMDIgMTM6MzMgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIDIwMzYgLT4gMjAzOAogICAKMTk5OS0wMS0yNiAwOTo0NSAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcmVmZXJlbmNlIElQIG5ldCBhZGRyZXNzZXMgdG8gMTAuMTAuMTAuMC4KICAgCjE5OTktMDEtMjUgMTY6MjUgIGhhcmRha2VyCgogICAqIFJFQURNRSwgbG9jYWwvUkVBRE1FLm1pYjJjOgoKICAgLSAoUkVBRE1FLCBSRUFETUUubWliMmMpOiBtaWIyYyByZWFkbWUgZmlsZS4KICAgCjE5OTktMDEtMjUgMTE6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLAogICBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYwosIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIGhvc3RfcmVzLmgsIG1pYmluY2wuaCwKICAgICBmaWxlLmMsIGluZXQuYywgcGFyc2UuYywgc25tcF9kZWJ1Zy5jKToKICAgICAtIC1XYWxsIGZpeGVzLgogICAKMTk5OS0wMS0yNSAxMToxMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHRlc3QgaWYgX19GVU5DVElPTl9fIGlzIHN1cHBvcnRlZCBieSB0aGUgY29tcGlsZXIuCiAgIAoxOTk5LTAxLTI1IDEwOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuaDoKCiAgIC0gKHNubXBfZGVidWcuaCk6IHNwZWNpYWwgdGVzdCBmb3IgX19GVU5DVElPTl9fIGJlZm9yZSB1c2luZyBpdC4KICAgCjE5OTktMDEtMjUgMTA6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IGZpeCBzdHJpbmdzLmggaW5jbHVkZS4KICAgCjE5OTktMDEtMjUgMTA6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBjb250ZXh0X3BhcnNlLmMsIG1pYi5jLCBwYXJzZS5jLAogICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jLAogICBzeXN0ZW0uYzoKCiAgIC0gKGNvbnRleHRfcGFyc2UuYywgbWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsCiAgICAgc25tcF9jbGllbnQuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhbnNpIGZpeGVzLgogICAKMTk5OS0wMS0yNSAxMDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiB0eXBvLgogICAKMTk5OS0wMS0yNSAxMDoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBkZWx0YS5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMKLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgc25tcG5ldHN0YXQvaW5ldC5jLCBzbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIChzbm1wZGVsdGEuYywgc25tcHN0YXR1cy5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBpbmV0LmMsIG1haW4uYyk6IFBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbjoKICAgICAtIG1vcmUgYW5zaSBmaXhlcy4KICAgCjE5OTktMDEtMjIgMDc6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIENoZWNrIGZvciBOVUxMIG9uIHNlc3Npb24gY2xvc2VzLgogICAKMTk5OS0wMS0yMSAwODo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHJlbW92ZSB1Y2Qgc3BlY2lmaWMgbW9kdWxlIGRlcGVuZHMuCiAgIAoxOTk5LTAxLTIxIDA4OjQwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9zbm1wX2FwaS5jCiwgd2luMzIvY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcF9hcGkuYywgY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwKICAgICBKLiBTbGlmY2FrOgogICAgIC0gTk9fTlVMTF9DT01VTklUWSAtPiBOT19aRVJPTEVOR1RIX0NPTU1VTklUWS4KICAgCjE5OTktMDEtMjEgMDg6MzkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBKLiBTbGlmY2FrOgogICAgIC0gdHlwbyBvbiBKb2UncyBuYW1lIGZpeGVkLgogICAKMTk5OS0wMS0yMCAxNzoxMSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU3ICkKICAgCjE5OTktMDEtMjAgMTc6MDQgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlNyApCiAgIAoxOTk5LTAxLTIwIDE3OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogcmFuIGF1dG9oZWFkZXIKICAgCjE5OTktMDEtMjAgMTY6NDAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgbWFpbi5jLCBzbm1wX2FwaS5jKToKICAgICBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGFsbG93IHplcm8gbGVuZ3RoIChsZWdhbCkgY29tbXVuaXR5IHN0cmluZ3MuCiAgIAoxOTk5LTAxLTIwIDE1OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgIC0gKHNtdXguYyk6IGRlYnVnZ2luZyBjaGFuZ2VzLgogICAKMTk5OS0wMS0yMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBleHBvcnQgc2RsaXN0IGFuZCBzZGxlbiB2YXJpYWJsZXMuCiAgIAoxOTk5LTAxLTIwIDE1OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIHVjZCBzcGVjaWZpYyBtaWIgbW9kdWxlIG1ha2UgcmVxdWlyZW1lbnRzLgogICAKMTk5OS0wMS0yMCAxNTo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIC0gKGhyX3N3aW5zdCk6ICNpZmRlZiBSUE0gcHJvdGVjdCBhIGZyZWUgcm91dGluZS4KICAgCjE5OTktMDEtMjAgMTU6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgLSAoc211eC5jKTogdHlwbwogICAKMTk5OS0wMS0yMCAxNTozMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogaGVscGluZyBvdXQgY2hhbmdlcy4KICAgCjE5OTktMDEtMjAgMTU6MzAgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogSXQncyAxOTk5CiAgIAoxOTk5LTAxLTIwIDE1OjIyICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogYWRkZWQgdmVyc2lvbiBzdGFtcC4KICAgCjE5OTktMDEtMjAgMTU6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk5LTAxLTIwIDE1OjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHVjZC1zbm1wLWluY2x1ZGVzLmguCiAgIAoxOTk5LTAxLTIwIDE1OjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogbWluaW1hbGlzaCBpbmNsdWRlIHNldCBmb3IgbGlicmFyeSBjbGllbnRzLgogICAKMTk5OS0wMS0yMCAxNToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNrLmMsIGVycm9ybWliLmMsCiAgIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYzoKCiAgIC0gKGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jKToKICAgICAtIGxpbnV4IDIuMSBrZXJuZWwgbmVlZHMgYXNtL3BhZ2UuaCAoYWxsIGluY2x1ZGVzIG5lZWQgdG8gYmUgcmUtd3JpdHRlbikuCiAgIAoxOTk5LTAxLTIwIDE1OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGludGVyZmFjZXMuYywgaXAuYwosIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMKOgoKICAgLSAoYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsCiAgICAgdmFyX3JvdXRlLmMpOgogICAgIC0gc3lzL3N0cmVhbS5oIG5lZWRlZCBieSBTQ08uCiAgICAgLSBpbnRlcmZhY2VzIHNjYW4gZml4ZXMgZm9yIGxpbnV4IDIuMCB2cyAyLjEgY2FuIGJlIGNvbmZpZ3VyZWQgZWxzZXdoZXJlIG5vdy4KICAgICAtIHByb3RlY3QgZ2V0X2FkZHJlc3MgY2FsbHMgYWdhaW5zdCBOVUxMIHBvaW50ZXIgcmV0dXJucy4KICAgCjE5OTktMDEtMjAgMTU6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdmVyc2lvbiB0YWdnaW5nIGFiaWxpdHkgdG8gZG8gbWFueSB0aGluZ3MuCiAgIAoxOTk5LTAxLTIwIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOiBpbmNsdWRlIHN5cy9zdHJlYW0uaCBmb3IgU0NPLgogICAKMTk5OS0wMS0yMCAxNToxNCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoZWNrIGZvciBhc20vcGFnZS5oIChsaW51eCkuCiAgICAgLSBjaGVjayBmb3Igc3lzL3N0cmVhbS5oIChTQ08pLgogICAgIC0gRml4IHJ0ZW50cnkgdGVzdC4KICAgCjE5OTktMDEtMjAgMTU6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiB2ZXJzaW9uIHRhZyBjcmVhdGlvbi4KICAgCjE5OTktMDEtMjAgMTI6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmgsCiAgIGFwcHMvLmN2c2lnbm9yZSwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcmVhZF9jb25maWcuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfZGVidWcuYywgc25tcGxpYi9zbm1wX2RlYnVnLmgsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgaG9zdF9yZXMuaCwgbWliaW5jbC5oLCAuY3ZzaWdub3JlLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGlmLmMsIE1ha2VmaWxlLmluLCBtaWIuYywgcGFyc2UuYywKICAgICByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2RlYnVnLmMsIHNubXBfZGVidWcuaCwKICAgICB2YWNtLmMpOiBkZWJ1Z2dpbmcgc3VwcG9ydCBjb2RlIG1vdmVkIHRvIHNubXBfZGVidWcuW2NoXS4KICAgCjE5OTktMDEtMjAgMTI6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IHR5cG8gaW4gYW5zaSBjaGFuZ2VzLgogICAKMTk5OS0wMS0yMCAxMjoyMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaDoKCiAgIC0gKGFjY29uZmlnLmgpOiB1bm5lZWRlZCBjb21tZW50IHJlbW92ZWQuCiAgIAoxOTk5LTAxLTIwIDEyOjIwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICAtIChGQVEpOiBwZXJsLVNOTVAgYW5kIHkyayBxdWVzdGlvbnMgYWRkZWQuCiAgIAoxOTk5LTAxLTIwIDEyOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC8ucHVyZSwgc25tcGxpYi8ucHVyZToKCiAgIC0gKC5wdXJlLCAucHVyZSwgLnB1cmUpOiByZW1vdmVkLgogICAKMTk5OS0wMS0xOSAyMDowMSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9zbm1wX2F1dGguYywgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYKOgoKICAgLSAoc25tcHRhYmxlLmMsIG1pYi5jLCBwYXJzZS5jLCBzbm1wX2F1dGguYywgbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tCiAgICAgTWljaGFlbCBKLiBTbGlmY2FrOgogICAgIC0gYXBwcy9zbm1wdGFibGUuYyAtIHNvbWUgY29tcGlsZXJzIHdhcm4gY29tcGFyaW5nIHBvaW50ZXIgd2l0aCBpbnRlZ2VyCiAgICAgLSBzbm1wbGliL21pYi5jIC0gYWxyZWFkeSBtZW50aW9uZWQgYmVmb3JlOyBoZXJlIGZvciBjb21wbGV0ZS1uZXNzCiAgICAgLSBzbm1wbGliL3BhcnNlLmMgLSBtaW5vciB0b3VjaHVwIG9mIGluY2x1ZGVzOyBzeXN0ZW0uaCBkdXAgcmVtb3ZlZAogICAgIC0gc25tcGxpYi9zbm1wX2FwaS5oIC0gTVNWaXN1YWwgQysrIGRvZXNuJ3QgaGF2ZSBfX0ZVTkNUSU9OX18KICAgICAtIHNubXBsaWIvc25tcF9hdXRoLmMgLSBtaW5vciBmaXggb2YgY29tbWVudAogICAgIC0gd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLSBzbm1wX3BhcnNlX2FyZ3MgbmVlZHMgYSBuZXcgZnVuY3Rpb24KICAgCjE5OTktMDEtMTkgMTk6NTkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBfX1AgY2hlY2tpbmcuCiAgIAoxOTk5LTAxLTE4IDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuaCwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaCwKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgd2luMzIvY29uZmlnLmg6CgogICAtIChSRUFETUUsIGFwcHMsIGFnZW50LCBhY2NvbmZpZy5oKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgIC0gYW5zaSdpZnkgZXZlcnl0aGluZy4KICAgCjE5OTktMDEtMTggMTA6NDMgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWNjb25maWcuaCwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYwosIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgsIGFnZW50L2F1dG9fbmxpc3QuYywKICAgYWdlbnQvYXV0b19ubGlzdC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsLmgKLCBhZ2VudC9zbm1wMnAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYywgYWdlbnQvc25tcGQuaAosIGFnZW50L3Zhcl9zdHJ1Y3QuaCwgYWdlbnQvdmlld19wYXJzZS5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuaCwKICAgYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywgYWdlbnQvZGxtb2RzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmMsIGFnZW50L21pYmdyb3VwL3YycGFydHkuaAosIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfb3RoZXIuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wYXJ0aXRpb24uaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5oLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuaCwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jCiwgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5oLAogICBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgKLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmgKLCBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuaCwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuaDoKCiAgIC0gKFJFQURNRSwgYXBwcywgYWdlbnQsIGFjY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhbnNpJ2lmeSBldmVyeXRoaW5nLgogICAKMTk5OS0wMS0xNiAyMzoxMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU2ICkKICAgCjE5OTktMDEtMTYgMjM6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2wuYywgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMKLCBhc24xLmgsIGNvbnRleHQuYywgY29udGV4dC5oLAogICBjb250ZXh0X3BhcnNlLmMsIGludDY0LmMsIGludDY0LmgsIG1kNS5jLAogICBtZDUuaCwgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oCiwgcGFydHkuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywKICAgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcC5jLCBzbm1wLmgKLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2F1dGguYywKICAgc25tcF9jbGllbnQuYywgc25tcF9jbGllbnQuaCwgc25tcF9pbXBsLmgsCiAgIHN5c3RlbS5jLCBzeXN0ZW0uaCwgdmFjbS5jLCB2YWNtLmgsCiAgIHZpZXcuYywgdmlldy5oOgoKICAgLSAoc25tcGxpYi8qLltjaF0pOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgLSBhc25pJ2lmeSBhbGwgZnVuY3Rpb25zLgogICAKMTk5OS0wMS0xNiAyMzowNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMToKCiAgIC0gKHNubXBjbWQuMSk6IHVwZGF0ZWQgLUQgZGVzY3JpcHRpb24uCiAgIAoxOTk5LTAxLTE1IDE2OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4Lzogc211eC5jLCBzbXV4Lmg6CgogICAtIChzbXV4LmMsIHNtdXguaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAtIHNtdXggcGF0Y2hlcy4KICAgCjE5OTktMDEtMTUgMTU6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgLSAodmFjbS5jKTogREVCVUdNU0cgdHlwby4KICAgCjE5OTktMDEtMTUgMTU6NTggIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlZmlsZWluZGVwZW5kLgogICAKMTk5OS0wMS0xNSAxNToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBtaWJncm91cC9NYWtlZmlsZS5pbgosIG1pYmdyb3VwL21pYklJLmgsIG1pYmdyb3VwL2R1bW15L2R1bW15LmMsCiAgIG1pYmdyb3VwL2R1bW15L2R1bW15LmgsIG1pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oLCBtaWJncm91cC9leGFtcGxlcy93b21iYXQuYwosIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oLCBtaWJncm91cC9taWJJSS9hdC5jLAogICBtaWJncm91cC9taWJJSS9hdC5oLCBtaWJncm91cC9taWJJSS9pY21wLmMsCiAgIG1pYmdyb3VwL21pYklJL2ljbXAuaCwgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwLmgsIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmgsIG1pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5oLCBtaWJncm91cC9taWJJSS9zeXN0ZW0uYywKICAgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmgKLCBtaWJncm91cC9taWJJSS90Y3AuYywgbWliZ3JvdXAvbWliSUkvdGNwLmgsCiAgIG1pYmdyb3VwL21pYklJL3VkcC5jLCBtaWJncm91cC9taWJJSS91ZHAuaCwKICAgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBtaWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suaCwKICAgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYywgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuaAosIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5oLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmMKLCBtaWJncm91cC91Y2Qtc25tcC9maWxlLmgsIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYwosIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguaCwgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiwgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jCiwgbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBtaWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmgsIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwgbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYwosIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmgsIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jCiwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmgsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwLyopOgogICAgIC0gbWFkZSBhbGwgKG9rLCBzb21lLiAhaG9zdCkgbWliIG1vZHVsZXMgdXNlIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkuCiAgICAgLSBtYWRlIGFsbCAob2ssIHNvbWUuICFob3N0KSBtaWIgbW9kdWxlcyB1c2UgcmVnaXN0ZXJfbWliKCkuCiAgIAoxOTk5LTAxLTE1IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAtIHJlbW92ZSByZXZlcnNlX2J5dGVzKCkgdXNhZ2UuCiAgIAoxOTk5LTAxLTE1IDExOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wMnAuYzoKCiAgIC0gKHNubXAycC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgcmV2ZXJzZV9ieXRlcygpIHVzYWdlLgogICAKMTk5OS0wMS0xNCAwOTowMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICAtIChtaWIyYyk6IHVwZGF0ZSBmb3IgU05NUC5wbSAxLjguCiAgIAoxOTk5LTAxLTA5IDIxOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIGF1dG9fbmxpc3QuYywKICAgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBtaWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIG1pYmdyb3VwL2R1bW15L2R1bW15LmMsIG1pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5jLAogICBtaWJncm91cC9ob3N0L2hyX2RldmljZS5jLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBtaWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLCBtaWJncm91cC9ob3N0L2hyX3ByaW50LmMsCiAgIG1pYmdyb3VwL2hvc3QvaHJfcHJvYy5jLCBtaWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBtaWJncm91cC9taWJJSS9hdC5jLAogICBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvbWliSUkvaXAuYywgbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLCBtaWJncm91cC9taWJJSS9zeXN0ZW0uYywKICAgbWliZ3JvdXAvbWliSUkvdGNwLmMsIG1pYmdyb3VwL21pYklJL3VkcC5jLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIG1pYmdyb3VwL3NtdXgvc211eC5jLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsIG1pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywgbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKLCBtaWJncm91cC91Y2Qtc25tcC9wcm9jLmMsIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMKLCBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgLSAoYWdlbnQvKi5jKToKICAgICAtIHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCiAgICAgLSBpbXBsZW1lbnQgbmVlZGVkIC1EIGZsYWcgY2hhbmdlcy4KICAgCjE5OTktMDEtMDkgMjA6NTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAtIChzbm1wY21kLjEpOiBkaXNjdXNzIC1EIHVzYWdlIGNoYW5nZS4KICAgCjE5OTktMDEtMDkgMjA6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IERFQlVHUE9JRCByZXBsYWNlbWVudDogREVCVUdNU0dPSUQuCiAgIAoxOTk5LTAxLTA5IDIwOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogcmVtb3ZlIG9sZCB0b2tlbiBzcGVjaWZpZXIgaW4gYSBkZWJ1Z2dpbmcgc3RhdGVtZW50CiAgICAgZm9ybWF0IGxpbmUuCiAgIAoxOTk5LTAxLTA5IDIwOjUwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgbWFpbi5jOgoKICAgLSAoaWYuYywgbWFpbi5jKTogdXNlIHRoZSBuZXcgZGVidWdnaW5nIGZ1bmN0aW9ucy4KICAgCjE5OTktMDEtMDkgMjA6NTAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6CgogICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOiB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgogICAKMTk5OS0wMS0wOSAyMDo0OSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUU6CgogICAtIChGQVEsIFJFQURNRSk6IFVSTCBjaGFuZ2VzLgogICAKMTk5OS0wMS0wOSAyMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbWFrZSAtRCByZWdpc3RlciB0aGUgZGVidWdnaW5nIHRva2VucyBzcGVjaWZpZWQuCiAgIAoxOTk5LTAxLTA5IDIwOjMwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgLSAoc25tcHRhYmxlLmMpOiBjaGFuZ2UgaW50ZXJuYWwgZGVidWcgdmFyaWFibGUgdG8gbG9jYWxkZWJ1Zy4KICAgCjE5OTktMDEtMDkgMjA6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgdmFjbS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHZhY20uYyk6CiAgICAgLSBJbXBsZW1lbnQgdGhlIG5ldyB0b2tlbiBiYXNlZCBkZWJ1Z2dpbmcgbWVzc2FnZSBzdXBwb3J0LgogICAKMTk5OS0wMS0wNSAxMDo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgIHNubXB3YWxrLmM6CgogICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgICBzbm1wdGFibGUuYywgc25tcHdhbGsuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAtIG1ha2UgbWFpbigpIHJldHVybiBhbiBpbnQgaW5zdGVhZCBvZiB2b2lkLgogICAKMTk5OS0wMS0wNSAxMDo0MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogTWFrZSBmaWVsZCBzZXBhcmF0b3IgdGFrZSBhcmd1bWVudHMgZGlyZWN0bHkgYWZ0ZXIgdGhlIC1mLgogICAKMTk5OS0wMS0wMiAwODo0OCAgaGFyZGFrZXIKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIEpha29iIEVsbGVyc3RlZHQ6CiAgICAgLSBuZXcgY29tcGxldGUgbGlzdCBvZiBpZlR5cGVzLgogICAKMTk5OC0xMi0zMSAxNzo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgIC0gb2lkTGVuJ3Mgd2VyZSB3cm9uZyBmb3IgbTJtIG9pZHMuCiAgIAoxOTk4LTEyLTMxIDE3OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBEYXZpZCBUaWxsZXI6CiAgICAgLSBuZWVkIHRvIHJlYWRfb2JqaWQoKSB0aGUgY29udGV4dCBvaWQgYmFzZSwgbm90IHRoZSBwYXJ0eSBvaWQgYmFzZQogICAgICAgaW4gb25lIGxvY2F0aW9uLgogICAKMTk5OC0xMi0zMSAxNzo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jOgoKICAgLSAoZXZlbnQuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgIC0gbWVtY21wJ3Mgc2l6ZXMgd2VyZSB3cm9uZy4KICAgCjE5OTgtMTItMjkgMTc6MDEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB2YWNtLmMgKFYzLWIzLjIpLCB2YWNtLmM6CgogICAtICh2YWNtLmMpOiBFbmFibGUgbXVsdGlwbGUgc2lkZSBieSBzaWRlIHZpZXdzIGluIHRoZSB2aWV3IGZhbWlseQogICAgIHRyZWUuICBUaGUgdmlld3MgYWxyZWFkeSBleGlzdGVkLCBidXQgd2VyZW4ndCBjaGVja2VkIGFuZCBvbmx5IHRoZQogICAgIGZpcnN0IHZpZXcgd2FzIGZvdW5kLgogICAgIC0gTm90IGRvbmUgaW4gYSBjbGVhbiBmYXNoaW9uLiAgTXVjaCBvZiB0aGUgc3RydWN0dXJlIGRlZmluaXRpb25zCiAgICAgICBzaG91bGQgYmUgcmV3cml0dGVuIHdpdGggc3ViLXBpZWNlcyB0byBkbyBpdCBwcm9wZXJseSB3aXRoIGdyZWF0ZXIKICAgICAgIHNwZWVkLgogICAKMTk5OC0xMi0yOSAxNjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgbmV3bGluZXMgZnJvbSBzcHJpbnRfdmFsdWUoKSB3aGVyZSBhcHBsaWNhYmxlLgogICAKMTk5OC0xMi0yNiAxMDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgLSAoZGxtb2QuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IGRsbW9kIGNvbXBpbGF0aW9uIGluIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkgY2FsbC4KICAgCjE5OTgtMTItMjIgMTQ6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYzoKCiAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggbXkgYnJva2VuIHNldF9sb2NhbGUgc3R1ZmYuCiAgIAoxOTk4LTEyLTIyIDA4OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgY29tcGlsZSBkbG1vZHMKICAgCjE5OTgtMTItMjEgMTg6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzeXN0ZW0uYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gV2luMzIgbWVtb3J5IGxlYWsgZml4ZXMgZm9yIG9wZW5kaXIoKSwgZXRjLgogICAKMTk5OC0xMi0yMSAxODoxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSAoZmlsZS5oLCBVQ0QtU05NUC1NSUIudHh0KTogbW92ZSB0aGUgZmlsZSBtaWIgdG8gLjE1IHNvIGl0IGRvZXNuJ3QKICAgICBjb25mbGljdCB3aXRoIHRoZSBkZW1vIG1pYi4KICAgCjE5OTgtMTItMjEgMTg6MTggIGhhcmRha2VyCgogICAqIGFnZW50Ly5jdnNpZ25vcmU6CgogICAtICguY3ZzaWdub3JlKTogYSAuZ2RiIGZpbGUgb2YgbWluZS4KICAgCjE5OTgtMTItMjEgMDk6NTQgIGhhcmRha2VyCgogICAqIGxvY2FsL2lwZi1tb2QucGwsIG1pYnMvSVBGSUxURVIudHh0OgoKICAgLSAoaXBmLW1vZC5wbCwgSVBGSUxURVIudHh0KTogUGF0Y2ggZnJvbSBZYXJvc2xhdiBUZXJsZXRza3k6CiAgICAgLSBpcGZpbHRlciBwYXNzIHNjcmlwdCBhbmQgbWliIGZpbGUuCiAgIAoxOTk4LTEyLTE4IDE4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZlcnNpb25pbmZvLmMsIHZlcnNpb25pbmZvLmgKOgoKICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IG1pYiBvYmplY3QgdG8gZGlzcGxheSBjb25maWd1cmUgb3B0aW9ucy4KICAgCjE5OTgtMTItMTggMTg6MTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBzdG9yZSBjb25maWd1cmUgZmxhZ3MgdG8gYSBkZWZpbmUuCiAgIAoxOTk4LTEyLTE4IDE4OjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBpbmNsdWRlIHJlYWRfY29uZmlnLmguCiAgIAoxOTk4LTEyLTE4IDE4OjExICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogdXBkYXRlIGZyb20gTWljaGFlbCBTbGlmY2FrLgogICAKMTk5OC0xMi0xOCAxODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgKOgoKICAgLSAocGFyc2UuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSBmaXhlcyBmcm9tIE1pY2hhZWwgU2xpZmNhay4KICAgICAtIG1pc2MgcmVhZF9jb25maWcgZnVuY3Rpb25zIHB1bGxlZCBpbiBmcm9tIHRoZSB2MyB3b3JrLgogICAKMTk5OC0xMi0xOCAxMTozNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gdHlwby4KICAgCjE5OTgtMTItMTcgMDg6MDUgIGRyZWVkZXIKCiAgICogbG9jYWwvc25tcGQtdWNkLnNoOgoKICAgZmlsZSBzbm1wZC11Y2Quc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjMuCiAgIAoxOTk4LTEyLTE2IDA3OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBwb2ludGVyIGNoZWNrcyBiZWZvcmUgZnJlZWluZyBtZW1vcnkuCiAgIAoxOTk4LTEyLTEzIDA4OjU5ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTUgKQogICAKMTk5OC0xMi0xMyAwODo1NyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogYWRkZWQgSmVmZiBKb2huc29uIHRvIHRoZSBjb250cmlidXRvcnMgbGlzdC4KICAgCjE5OTgtMTItMTMgMDg6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gSmVmZiBKb2huc29uOgogICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG1lbW9yeSBsZWFrcyB3aXRoIHRoZSBSUE0gcGFja2FnZSBpbmZvIGNhbGxzLgogICAKMTk5OC0xMi0xMyAwODo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICAtIChpbmV0LmMpOiBpbml0IHBvaW50ZXIgdG8gTlVMTC4KICAgCjE5OTgtMTItMTMgMDg6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogd2F0Y2ggb3V0IGZvciBOVUxMIGZpbGUgcG9pbnRlcnMuCiAgIAoxOTk4LTEyLTEzIDA4OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiByZW1vdmUgYSBmZXcgZGVmaW5lcyB0aGF0IHdlcmUgbWVzc2luZyB1cCBzb2xhcmlzIDcuCiAgIAoxOTk4LTEyLTEzIDA4OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmUgLXcvLVcgZmxhZyBpbiB1c2FnZS4KICAgCjE5OTgtMTItMTMgMDg6MTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBzcGFjaW5nIGluIG1pYiBvcHRpb24gdXNhZ2UgZml4ZXMuCiAgIAoxOTk4LTEyLTEzIDA4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBmaXggZGlzayBzaXplIGVycm9yIGZsYWcgcmVwb3J0aW5nIG9uIFNvbGFyaXMuCiAgIAoxOTk4LTEyLTEzIDA4OjA2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGJlZ2lubmluZyBub3RlcyBmb3IgMy42LgogICAKMTk5OC0xMi0xMyAwNzo0OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogLVAgZmxhZyBmb3IgdG9nZ2xpbmcgbmV3IG1pYiBwYXJzaW5nIG9wdGlvbnMuCiAgIAoxOTk4LTEyLTEzIDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBuZXcgZnVuY3Rpb25zOiBzbm1wX21pYl90b2dnbGVfb3B0aW9ucygpIGFuZCB1c2FnZS4KICAgCjE5OTgtMTItMTMgMDc6NDIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgLSB1c2Ugc2V0bG9jYWxlKCkgaWYgYXZhaWxhYmxlIHRvIGNvcnJlY3QgaXNwcmludCBwcm9ibGVtcy4KICAgCjE5OTgtMTItMDUgMTY6NTIgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kZW1vLnJlbW90ZToKCiAgIGZpbGUgZGVtby5yZW1vdGUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmNvbmY6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuY21kczoKCiAgIGZpbGUgdWNkRGVtb1B1YmxpYy5jbWRzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wNCAxNjo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jOgoKICAgZmlsZSB1Y2REZW1vUHVibGljLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTA0IDE2OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmg6CgogICBmaWxlIHVjZERlbW9QdWJsaWMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTY6NDUgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELURFTU8tTUlCLnR4dDoKCiAgIGZpbGUgVUNELURFTU8tTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTItMDQgMTE6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHVzbS5jOgoKICAgZmlsZSBzbm1wdXNtLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAzIDE4OjQ0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtbzIuZnVuY3Rpb25zOgoKICAgZmlsZSBkZW1vMi5mdW5jdGlvbnMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEyLTAzIDE4OjQ0ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGVtbzI6CgogICBmaWxlIGRlbW8yIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wMyAxODo0NCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2RlbW8yLnNldHVwZmlsZToKCiAgIGZpbGUgZGVtbzIuc2V0dXBmaWxlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMi0wMiAxNToxOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIGZpbGUgc25tcC5jb25mLjUuZGVmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0yNyAxNjo1NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wcGFzcy5jOgoKICAgZmlsZSBzbm1wcGFzcy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMS0yNCAxNjo0MyAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3RyYW5zZm9ybV9vaWRzLmg6CgogICBmaWxlIHRyYW5zZm9ybV9vaWRzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTI0IDE2OjQzICBkcmVlZGVyCgogICAqIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jOgoKICAgZmlsZSBlbmNvZGVfa2V5Y2hhbmdlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTIzIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1pc2MgcGFyc2luZyBidWcgZml4ZXMuCiAgICAgLSAtdyAmIC1XIG9wdGlvbnMgdG8gZGVmYXVsdCBhcHBsaWNhdGlvbiBwYXJzZV9hcmdzLgogICAgIC0gcnVudGltZSBvcHRpb25zIHRvIGNvbnRyb2wgdW5kZXJzY29yZSBhbmQgY29tbWVudCBwYXJzaW5nIGluIG1pYnMuCiAgIAoxOTk4LTExLTIzIDE2OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBtaXNjIHBhcnNpbmcgYnVnIGZpeGVzLgogICAgIC0gLXcgJiAtVyBvcHRpb25zIHRvIGRlZmF1bHQgYXBwbGljYXRpb24gcGFyc2VfYXJncy4KICAgICAtIHJ1bnRpbWUgb3B0aW9ucyB0byBjb250cm9sIHVuZGVyc2NvcmUgYW5kIGNvbW1lbnQgcGFyc2luZyBpbiBtaWJzLgogICAKMTk5OC0xMS0yMyAxNTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jLCBpcml4LmgpOiBmaXggbG9jYXRpb24gb2YgX0tFUk5FTCBkZWZpbmUgZm9yIGlyaXguCiAgIAoxOTk4LTExLTIyIDA3OjI4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nLy5jdnNpZ25vcmU6CgogICBmaWxlIC5jdnNpZ25vcmUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTIyIDA3OjI3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2RlbW86CgogICBmaWxlIGRlbW8gd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTExLTE2IDIyOjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogdG9vIG1hbnkgaW1wcm92ZW1lbnRzIHRvIGNvdW50LgogICAKMTk5OC0xMS0wNiAxNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiB2MiB0cmFwIHNlbmQgZGVidWdnaW5nLgogICAKMTk5OC0xMS0wNiAxNzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmgpOiB1c2UgdHJhcDJzaW5rIGZvciB2MiBoYW5kbGVycwogICAKMTk5OC0xMS0wNiAxNzoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBmaXggdjIgdHJhcCBnZW5lcmF0aW9uLgogICAKMTk5OC0xMC0yNCAyMzowNyAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL21pc2N0ZXN0LmM6CgogICBmaWxlIG1pc2N0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDE1OjM5ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXRpbWV0ZXN0LmM6CgogICBmaWxlIGV0aW1ldGVzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAxMzo1OCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5oLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMKLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5oLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jCiwgYXBwcy9zbm1wdHJhcGQuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jLCBzbm1wbGliL3JlYWRfY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcGQuYywgd29tYmF0LmgsCiAgICAgc3lzdGVtLmgsIHZhY21fdmFycy5oLCBkbG1vZC5jLCBkaXNrLmgsIGV4dGVuc2libGUuaCwgZmlsZS5oLAogICAgIGxvYWRhdmUuaCwgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5oLCBwYXNzLmgsIHBhc3NfcGVyc2lzdC5oLAogICAgIHByb2MuaCwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtaWIuYywgcmVhZF9jb25maWcuYywKICAgICByZWFkX2NvbmZpZy5oKToKICAgICAtIG5ldyBvcHRpb24gLUggb24gY29tbWFuZCBsaW5lIHRvIHByaW50IG91dCAuY29uZiBmaWxlIGRpcmVjdGl2ZXMKICAgICAgIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHVuZGVyc3RhbmRzLgogICAgIC0gY3JlYXRlZCBhIG5ldyBvcHRpb24gdG8gdGhlIHJlYWQgY29uZmlnIHJlZ2lzdHJhdGlvbiB0byBhbGxvdwogICAgICAgc3BlY2lmeWluZyBvZiBhIGhlbHAgbGluZS4KICAgCjE5OTgtMTAtMjMgMTM6NTYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBlZGl0YWJsZSBvaWQgZmllbGQuCiAgIAoxOTk4LTEwLTIzIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCjoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jKTogYnVnIGZpeGVzLCBtaXNzaW5nICNlbmRpZi4KICAgCjE5OTgtMTAtMjMgMTM6NTQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBpbnNlcnQgQCBzaWduLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL1Quc2g6CgogICBmaWxlIFQuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF90ZXN0bGlzdDoKCiAgIGZpbGUgZXZhbF90ZXN0bGlzdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjMgMDk6NDUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgZmlsZSBldmFsX3Rvb2xzLnNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMyAwOTo0NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2V2YWxfc3VpdGUuc2g6CgogICBmaWxlIGV2YWxfc3VpdGUuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZXZhbF9vbmVwcm9ncmFtLnNoOgoKICAgZmlsZSBldmFsX29uZXByb2dyYW0uc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvVC5jOgoKICAgZmlsZSBULmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA5OjQ1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvUkVBRE1FOgoKICAgZmlsZSBSRUFETUUgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIzIDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIC0gKGhyX2ZpbGVzeXMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBOVUxMIGNoZWNraW5nIG9uIHRoZSBmaWxlc3lzdGVtIG1vdW50IHBvaW50LgogICAKMTk5OC0xMC0yMSAxOTo1NSAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL3Rlc3Rfa3VsLnNoOgoKICAgZmlsZSB0ZXN0X2t1bC5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy90ZXN0X2tleWNoYW5nZS5zaDoKCiAgIGZpbGUgdGVzdF9rZXljaGFuZ2Uuc2ggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvdGVzdF90b29scy5zaDoKCiAgIGZpbGUgdGVzdF90b29scy5zaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmt1bC1tZDU6CgogICBmaWxlIGRhdGEua3VsLW1kNSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmtleWNoYW5nZS1zaGExLWRlczoKCiAgIGZpbGUgZGF0YS5rZXljaGFuZ2Utc2hhMS1kZXMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTIxIDE5OjU1ICBkcmVlZGVyCgogICAqIHRlc3RpbmcvZGF0YS5rZXljaGFuZ2Utc2hhMToKCiAgIGZpbGUgZGF0YS5rZXljaGFuZ2Utc2hhMSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmtleWNoYW5nZS1tZDU6CgogICBmaWxlIGRhdGEua2V5Y2hhbmdlLW1kNSB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMjEgMTk6NTUgIGRyZWVkZXIKCiAgICogdGVzdGluZy9kYXRhLmt1bC1zaGExOgoKICAgZmlsZSBkYXRhLmt1bC1zaGExIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0yMSAxNzowMSAgaGFyZGFrZXIKCiAgICogbWFuLzogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLjMuZGVmCjoKCiAgIC0gKC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZik6CiAgICAgLSBuZXcgdW5wcm9vZnJlYWQgbWFudWFsIG9uIHRoZSByZWFkX2NvbmZpZyBhcGkgKG1vc3Qgb2YgaXQpLgogICAKMTk5OC0xMC0yMSAxMTowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gd2F0Y2ggb3V0IGZvciBlbXB0eSBmaWxlIG5hbWVzIHBhc3NlZCBpbi4KICAgCjE5OTgtMTAtMjEgMTA6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gRml4IHBhcnNlciB0byBkZWFsIHdpdGggYW5vbnltb3VzIGNoaWxkcmVuIHByb3Blcmx5LgogICAKMTk5OC0xMC0yMCAxMTozOCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL2tleW1hbmFnZXRlc3QuYzoKCiAgIGZpbGUga2V5bWFuYWdldGVzdC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xOCAyMToxNCAgZHJlZWRlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgZmlsZSBNYWtlZmlsZS5pbiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTggMjE6MTQgIGRyZWVkZXIKCiAgICogdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIGZpbGUgc2NhcGl0ZXN0LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE2IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCjoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBhaXguaCk6IGFpeCBoZWFkZXIgZmlsZSBmaXhlcy4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi90b29scy5jOgoKICAgZmlsZSB0b29scy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmg6CgogICBmaWxlIHRvb2xzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuaDoKCiAgIGZpbGUgbGNkX3RpbWUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgZmlsZSBzY2FwaS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL3NjYXBpLmg6CgogICBmaWxlIHNjYXBpLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvbGNkX3RpbWUuYzoKCiAgIGZpbGUgbGNkX3RpbWUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5oOgoKICAgZmlsZSBrZXl0b29scy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNSAxMjowMiAgZHJlZWRlcgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICBmaWxlIGtleXRvb2xzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTEwLTE1IDEyOjAyICBkcmVlZGVyCgogICAqIHNubXBsaWIvYWxsX2dlbmVyYWxfbG9jYWwuaDoKCiAgIGZpbGUgYWxsX2dlbmVyYWxfbG9jYWwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9hbGxfc3lzdGVtLmg6CgogICBmaWxlIGFsbF9zeXN0ZW0uaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMTAtMTUgMTI6MDIgIGRyZWVkZXIKCiAgICogc25tcGxpYi9kZWJ1Zy5oOgoKICAgZmlsZSBkZWJ1Zy5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0xMC0xNCAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IGZpeCBmb3IgaHB1eDkuCiAgIAoxOTk4LTEwLTE0IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBmb3IgYnJva2VuIGNvbXBpbGVyIHdhcm5pbmdzIG9uIE5ULgogICAKMTk5OC0xMC0xNCAxNjo0MiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBkb2N1bWVudCAtQS4KICAgCjE5OTgtMTAtMTQgMTY6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZG9jdW1lbnQgLUEuCiAgIAoxOTk4LTEwLTE0IDE2OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IC1BOiBhcHBlbmQgdG8gbG9nIGZpbGUuCiAgIAoxOTk4LTEwLTE0IDA5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIC0gKGhyX3N0b3JhZ2UuYyk6IG1hY2hpbmUvdHlwZXMuaCBhbmQgc3lzL3ZtbWV0ZXIuaCBmb3IgZnJlZWJzZDMuCiAgIAoxOTk4LTEwLTE0IDA5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IG5ldC9pbl92YXIuaCBmb3IgZnJlZWJzZDMuCiAgIAoxOTk4LTEwLTE0IDA5OjQxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbWFjaGluZS90eXBlcy5oLgogICAKMTk5OC0xMC0xNCAwOToxNyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcHVibGljIGNvbW11bml0eSBleGFtcGxlcyAtPiBwcml2YXRlLgogICAKMTk5OC0xMC0wOSAyMzoyMCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSBTaGllbGQgZXhwbGFpbnMgaW4gd29uZGVyb3VzIGRldGFpbCBhbGwgYWJvdXQgdGhlIFZBQ00gbW9kdWxlLgogICAKMTk5OC0xMC0wOSAyMzoxMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBzdXBwb3J0IGZvciBzdHJpY3QgKGNhc2Ugc2Vuc2l0aXZlKSBvcHRpb24gdG8gdGhlIG1pYiBjb21waWxlci4KICAgCjE5OTgtMTAtMDkgMjM6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gQ2hlY2sgZm9yIGZ1bGx5IHF1YWxpZmllZCBvaWQgc3RhdGVtZW50cy4KICAgCjE5OTgtMTAtMDkgMDg6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHVzZSB6bGliIHdoZW4gdXNpbmcgcnBtIGxpYnJhcmllcy4KICAgCjE5OTgtMTAtMDcgMTc6MDAgIGhhcmRha2VyCgogICAqIHdpbjMyLzogbGlic25tcC9saWJzbm1wLmRzcCwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwCjoKCiAgIC0gKGxpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHdpbk5UIHByb2plY3QgZmlsZSB1cGRhdGVzLgogICAKMTk5OC0xMC0wNyAxNjo1NCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggZXhpdGluZyBwcm9ibGVtcyBvbiBOVC4KICAgCjE5OTgtMTAtMDcgMTY6NTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXggZGVmYXVsdCBwb3J0IHByb2JsZW1zIChhZ2FpbikuCiAgIAoxOTk4LTEwLTA3IDE2OjUwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgdW4tbmVlZGVkIGhlYWRlcnMuCiAgIAoxOTk4LTEwLTA3IDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZml4IG1ha2UgaHRtbC4KICAgCjE5OTgtMTAtMDcgMTY6NDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHByb3Blcmx5IGxvY2F0ZSB2ZXJzaW9uLmggaW4gJChzcmNkaXIpLgogICAKMTk5OC0xMC0wNiAxNTozOCAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUzICkKICAgCjE5OTgtMTAtMDYgMTU6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogdHlwby4KICAgCjE5OTgtMTAtMDYgMTU6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICAtICh2ZXJzaW9udGFnKTogZml4IGZvciBjdnMgMS4xMC4KICAgCjE5OTgtMTAtMDYgMTU6MzQgIGhhcmRha2VyCgogICAqIHJlbW92ZS1maWxlczoKCiAgIC0gKHJlbW92ZS1maWxlcyk6IHVwZGF0ZS4KICAgCjE5OTgtMTAtMDYgMTU6MzAgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLU9MRC50eHQ6CgogICAtIChVQ0QtU05NUC1NSUItT0xELnR4dCk6IGFkZGVkCiAgIAoxOTk4LTEwLTA2IDE1OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogc2V0dXAgZGVmaW5lIGZvciBIQVZFX1VTTEVFUC4KICAgCjE5OTgtMTAtMDYgMTU6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiBoYWNrIGZpeGVzIGZvciBocHV4MTAgYW5kIHJ0ZW50cnkuCiAgIAoxOTk4LTEwLTA1IDE3OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYzoKCiAgIC0gKGhyX3Byb2MuYyk6IHBvc3NpYmxlIGZpeCBmb3Igc29sYXJpcydzIHByb2Nlc3MgcGVyY2VudGFnZS4KICAgCjE5OTgtMTAtMDUgMTY6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15LzogZHVtbXkuYywgZHVtbXkuaDoKCiAgIC0gKGR1bW15LmMsIGR1bW15LmgpOiB1cGRhdGUgdG8gcmVtb3ZlIGNvbW1vbl9oZWFkZXIuaAogICAKMTk5OC0wOS0zMCAxNDo1NiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmLCBORVdTLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFwLmMsIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKENoYW5nZUxvZywgRVhBTVBMRS5jb25mLmRlZiwgTkVXUywgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgaW50ZXJmYWNlcy5jLCBtZW1vcnkuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgcGFyc2UuYyk6CiAgICAgLSBtZXJnZSAzLjUuMyBjaGFuZ2VzIGludG8gbWFpbiB0cnVuay4KICAgCjE5OTgtMDktMjUgMTg6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdXRpbF9mdW5jcy5jKTogdXNlIFVTTEVFUCBpZiBhdmFpbGFibGUgZm9yCiAgICAgc21hbGwgc2xlZXAgdGltZXMgd2hpbGUgd2FpdGluZyBmb3IgcHJvY2Vzc2VzIHRvIGZpbmlzaC4KICAgCjE5OTgtMDktMjUgMTg6MDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudC1vdXQuCiAgIAoxOTk4LTA5LTI1IDE4OjAzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB2ZXJzaW9uLmgsIGFuZCBzdHJpcCBpbmNsdWRlcyBvdXQgb2YgY29uZmlnLmgKICAgCjE5OTgtMDktMjUgMTc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGRvbid0IGluc3RhbGwgbGlic25tcC5oLiAgSXQncyBnb2luZyB0byBjaGFuZ2UgdG9vCiAgICAgbXVjaCBpbiB0aGUgZnV0dXJlLgogICAKMTk5OC0wOS0yNSAxNzo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBpbnN0YWxsIG1vcmUgaGVhZGVycy4KICAgCjE5OTgtMDktMjUgMTc6MzIgIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBzbm1wdGFibGUvc25tcHRhYmxlLmRzcDoKCiAgIC0gKGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAuZHNwLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwuZHNwLAogICAgICBzbm1wdGFibGUuZHNwKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBzdHVwaWQgT1MgdXBkYXRlLgogICAKMTk5OC0wOS0yNSAxNzoyNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMzoKCiAgIC0gKHNubXBfc2Vzc19hcGkuMyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gc2Vzc2lvbiBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KICAgCjE5OTgtMDktMjUgMTc6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IHByb2Nlc3MgYXJncyBkaXJlY3RseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gZ2V0X29wdCgpLgogICAKMTk5OC0wOS0yNSAxNzoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywKICAgc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20KICAgICBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBmaXggY29tcGlsZXIgd2FybmluZ3MsIGVycm9ycy4KICAgCjE5OTgtMDktMjUgMTc6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jCjoKCiAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgIC0gVGhlIENNVSBsaWJyYXJ5IGhhcyBhbiBvcHRpbWl6YXRpb24gaW4gc25tcF9jbG9uZV9wZHUoKSB0aGF0IGRvZXMKICAgICAgbm90IGNvcHkgemVybyBsZW5ndGggc3RyaW5ncy4gIEkgaGFkIG1lcmdlZCB0aGlzIGluIHdpdGggY2hhbmdlcwogICAgICBtYWRlIGZvciBtdWx0aS10aHJlYWQgc3VwcG9ydC4gIFVuZm9ydHVuYXRlbHksIEkgZGlkIG5vdCBtYWtlIHN1cmUKICAgICAgdGhlIGNsb25lZCBQRFUgaGFkIG5vIHBvaW50ZXIgZm9yIHRoaXMgY2FzZS4gIE9vcHMhCiAgICAtIEFub3RoZXIgcHJvYmxlbSBpbiBzbm1wX2Nsb25lX3BkdSgpIHdhcyB0aGUgdGVzdCBmb3IgemVybyBsZW5ndGgKICAgICAgc3RyaW5nIHdhcyBub3QgYmVpbmcgcGVyZm9ybWVkIG9uIHRoZSBmaXJzdCB2YXJiaW5kIGluIHRoZSBjaGFpbi4KICAgCjE5OTgtMDktMjUgMTc6MDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChFeHQtMy01LXBhdGNoZXMuNSksIHNubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZG9uJ3QgcmVseSBvbiB0aGUgZ2V0c2VydmJ5bmFtZSBwb2ludGVyIHRvIHN0YXkgYXJvdW5kLgogICAKMTk5OC0wOS0yMyAxMzowNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3BhcnNlLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHBhcnNlLmMpOiBOZXcgZmxhZzoKICAgICAtIC0tZW5hYmxlLWVvbC10ZXJtaW5hdGVkLWNvbW1lbnRzLgogICAKMTk5OC0wOS0yMyAxMjoxNSAgaGFyZGFrZXIKCiAgICogSVNTVUVTOgoKICAgZmlsZSBJU1NVRVMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTIxIDExOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jIChFeHQtMy01LXBhdGNoZXMuNSksIHNubXBfdmFycy5jCiAgIChWMy1iMS5bNSwyXSksIHNubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KICAgCjE5OTgtMDktMjEgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZmlsZS5jLCBmaWxlLmg6CgogICAtIChmaWxlLmMsIGZpbGUuaCk6IGFsbG93IC0xIHNpemUgdG8gaW5kaWNhdGUgc2ltcGxlIHNpemUgbW9uaXRvcmluZy4KICAgCjE5OTgtMDktMTggMTQ6MDQgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDaGFuZ2UgZmlsZSByZXR1cm4gY29kZSBmcm9tIFRydXRoVmFsdWUgdG8KICAgICBpbnRlZ2VyIHNpbmNlIDEvMiBkb2VzIG5vdCBmaXQgdGhlIGN1cnJlbnQgMC8xIHJldHVybiBjb2RlIHNjaGVtZS4KICAgCjE5OTgtMDktMTggMTQ6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuaDoKCiAgIC0gKGZpbGUuaCk6IHJlbWFwIHRvIHRoZSAxMDAvMTAxIGNvbnZlbnRpb25zIG9mIHRoZSB1Y2Qtc25tcCB0YWJsZXMuCiAgIAoxOTk4LTA5LTE4IDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgLSAodWNkX3NubXAuaCk6IGFkZCB0aGUgZmlsZSBtaWIgbW9kdWxlLgogICAKMTk5OC0wOS0xOCAxMzo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBmaWxlLmMsIGZpbGUuaDoKCiAgIC0gKGZpbGUuYywgZmlsZS5oKTogUGF0Y2ggZnJvbSBKb25hcyBPbHNzb246CiAgICAgLSBJbXBsZW1lbnQgYSBmaWxlIHNpemUgd2F0Y2hpbmcgbWliIG1vZHVsZSAodWNkLXNubXAvZmlsZSkuCiAgIAoxOTk4LTA5LTE4IDEzOjIwICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogYWRkZWQgdGhlIEZpbGVUYWJsZSBzdWJtaXR0ZWQgYnkgSm9uYXMgT2xzc29uLgogICAKMTk5OC0wOS0xOCAxMjo0MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmg6CgogICBmaWxlIHNubXAtdGMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTggMDk6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgZmlsZSBzbm1wdXNtLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE4IDA5OjU5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uaDoKCiAgIGZpbGUgc25tcHVzbS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgIGZpbGUgdXNtVXNlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xOCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuaDoKCiAgIGZpbGUgdXNtVXNlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNiAwNzowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmg6CgogICBmaWxlIHVzbVN0YXRzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE2IDA3OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYzoKCiAgIGZpbGUgdXNtU3RhdHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTUgMTM6MDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIGZpeCBpbml0X3NubXAgY2FsbHMgZnJvbSBzZXNzaW9uIHJvdXRpbmVzLgogICAKMTk5OC0wOS0xNSAxMzowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogLy8gY29tbWVudCAtPiAvKiAqLyBjb21tZW50LgogICAKMTk5OC0wOS0xNSAxMzowMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmM6CgogICAtIChpbmV0LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIG1lbW9yeSByZWxhdGVkIGZpeGVzLgogICAKMTk5OC0wOS0xNCAyMjoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jOgoKICAgZmlsZSBzbm1wTVBEU3RhdHMuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuaDoKCiAgIGZpbGUgc25tcE1QRFN0YXRzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTE0IDE3OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjNtaWJzLmg6CgogICBmaWxlIHNubXB2M21pYnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMTI6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsOgogICAgIC0gZG8gZGxtb2RzIGNvbXBpbGF0aW9uIGJldHRlciBhdCBsZWFzdCBvbiBzb2xhcmlzIGFuZCBsaW51eC4KICAgCjE5OTgtMDktMTQgMTI6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS92aWV3X3ZhcnMuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgZGxtb2RfbWliLmMsIHV0aWxfZnVuY3MuYywKICAgICBkdW1teS5jLCB3b21iYXQuYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgaXAuYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHNubXBfYmdwLmMsCiAgICAgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jLCBocHV4LmMsIHBhc3MuYywgcGFzc19wZXJzaXN0LmMsCiAgICAgcmVnaXN0cnkuYywgYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsCiAgICAgcGFydHlfdmFycy5jLCB2aWV3X3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIHJlbmFtZSBjb21wYXJlIC0+IHNubXBfb2lkX2NvbXBhcmUoKS4KICAgCjE5OTgtMDktMTQgMTI6MzUgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBpbnN0YWxsIHNubXBfc2Vzc19hcGkuMy4KICAgCjE5OTgtMDktMTQgMDk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmM6CgogICBmaWxlIHNubXBFbmdpbmUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMDk6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmg6CgogICBmaWxlIHNubXBFbmdpbmUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMy1iMS4KICAgCjE5OTgtMDktMTQgMDk6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICBmaWxlIHNubXB2My5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYzLWIxLgogICAKMTk5OC0wOS0xNCAwOToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuaDoKCiAgIGZpbGUgc25tcHYzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjMtYjEuCiAgIAoxOTk4LTA5LTEzIDIxOjA5ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdXBkYXRlOiAzLjYucHJlMgogICAKMTk5OC0wOS0xMyAyMTowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCByZWFkX2NvbmZpZy5jOgoKICAgLSAobWliLmMsIHJlYWRfY29uZmlnLmMpOiByZWZpeCB0aGUgbm9uLW1hbGxvY2VkIGNvbmZpZ3VyYXRpb24gdmFycy4KICAgCjE5OTgtMDktMTMgMjE6MDUgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IE5hbWUgYWRkaXRpb24uCiAgIAoxOTk4LTA5LTEzIDIwOjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJldmVudCBkb3VibGUgaW5pdF9zbm1wKClzLgogICAKMTk5OC0wOS0xMyAyMDoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6IG5vdCBmaW5kaW5nIGEgY29uZmlnIGZpbGUgaXMgcHJpbnRlZCB3aXRoIERFQlVHUCgpIGluc3RlYWQuCiAgIAoxOTk4LTA5LTEzIDIwOjE4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogZGVmaW5lIHVzYWdlIG1pc3BlbGxpbmcgU05NUF9CQURfUEFSU0UgLT4gU05NUEVSUl9CQURfUEFSU0UuCiAgIAoxOTk4LTA5LTEzIDIwOjExICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmg6CgogICAtIChzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYywgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgpOgogICAgIC0gbWVyZ2UgaW50byBtYWluIGxpbmUgZnJvbSB0aGUgMy02LXByZTEtdHJhbnMgYnJhbmNoLgogICAKMTk5OC0wOS0xMyAxODoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgIC0gZXhpdCAtPiByZXR1cm4uCiAgIAoxOTk4LTA5LTEyIDA5OjA4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogTW92ZSBDQU5fVVNFX05MSVNUIHRlc3RzIGJlbG93IGFyY2ggLmggZmlsZXMuCiAgIAoxOTk4LTA5LTEyIDA5OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSBidWcgZml4IHRvIGNoZWNrIGZvciBOVUxMIHNlc3Npb24gcG9pbnRlciBiZWZvcmUgdXNpbmcgaXQuCiAgIAoxOTk4LTA5LTEyIDA4OjU2ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbjoKCiAgIC0gKG92L01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgLSByZW1vdmUgZHVwbGljYXRlIHNlY3Rpb25zIGFscmVhZHkgZGVmaW5lZCBpbiBNYWtlZmlsZS50b3AuCiAgIAoxOTk4LTA5LTEyIDA4OjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCBtaWJfbW9kdWxlX3NodXRkb3duLmgKICAgCjE5OTgtMDktMTIgMDg6NTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBEb24ndCBmb3JjZSBjYyBhbnltb3JlLCBhbGxvdyBnY2MgdG8gZ28gZmlyc3QuCiAgIAoxOTk4LTA5LTEyIDA4OjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbW92ZSB1bi1jb25maWd1cmVkIGRlZmluZXMgYWJvdmUgQFRPUEAuCiAgIAoxOTk4LTA5LTEyIDA4OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcHJvdG90eXBlIG1vdmUgaW5pdF9zbm1wKCkgYWJvdmUgaW5pdF9zbm1wX3Nlc3Npb24uCiAgIAoxOTk4LTA5LTExIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIG1hbi9zbm1wX3Nlc3NfYXBpLjMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL2ludDY0LmMsIHNubXBsaWIvaW50NjQuaAosIHNubXBsaWIvbGlic25tcC5oLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oLCB3aW4zMi9jb25maWcuaAosIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAoKik6IE1lcmdlZCB0aGUgTVQgY2hhbmdlcyBpbnRvIHRoZSBtYWluIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMjE6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbGlic25tcC5oOgoKICAgZmlsZSBsaWJzbm1wLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS0xLU1ULgogICAKMTk5OC0wOS0wOSAyMTozNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfc2Vzc19hcGkuMzoKCiAgIGZpbGUgc25tcF9zZXNzX2FwaS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtMS1NVC4KICAgCjE5OTgtMDktMDkgMTY6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogZml4IHRyYXAgc3R1ZmYgYnJva2VuIGJ5IHRoZSBjb2RlIG1lcmdlLgogICAKMTk5OC0wOS0wOSAxNjowOSAgaGFyZGFrZXIKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIHdpbjMyLm9wdCwgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXAvbGlic25tcC5wbGcsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcAosIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywKICAgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnCiwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEucGxnCiwgc25tcGdldC9zbm1wZ2V0LmRzcCwgc25tcGdldC9zbm1wZ2V0LnBsZywKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc2V0L3NubXBzZXQucGxnLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0ZXN0L3NubXB0ZXN0LnBsZywKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCwKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHRyYXAvc25tcHRyYXAuZHNwLAogICBzbm1wdHJhcC9zbm1wdHJhcC5wbGcsIHNubXB3YWxrL3NubXB3YWxrLmRzcCwKICAgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAoKik6IE1lcmdlIGludG8gbWFpbiBicmFuY2ggZnJvbSAzLjUuMSBicmFuY2guCiAgIAoxOTk4LTA5LTA5IDE1OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIGFjbC5oLCBhc24xLmMsIGFzbjEuaAosIG1kNS5oLCBtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwKICAgc25tcC5jLCBzbm1wLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsCiAgIHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50LmgsIHNubXBfaW1wbC5oLAogICBzeXN0ZW0uYywgdmFjbS5oLCB2aWV3Lmg6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDkgMTU6MzQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwgYXBwcy9NYWtlZmlsZS5pbgosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcGRlbHRhLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaCwgbWFuL21pYl9hcGkuMywKICAgbWFuL3NubXBfYXBpLjMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBtYW4vc25tcHRyYW5zbGF0ZS4xLCBtYW4vc25tcHRyYXBkLjgsCiAgIG1hbi92YXJpYWJsZXMuNToKCiAgIC0gKCopOiBNZXJnZSBpbnRvIG1haW4gYnJhbmNoIGZyb20gMy41LjEgYnJhbmNoLgogICAKMTk5OC0wOS0wOSAxNTozMCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgQ09QWUlORywgQ2hhbmdlTG9nLCBNYWtlZmlsZS5pbgosIE5FV1MsIFJFQURNRSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L3NubXAycC5jLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvc25tcGQuaCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jLAogICBhZ2VudC9taWJncm91cC9zbXV4L3NubXBfYmdwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmg6CgogICAtICgqKTogTWVyZ2UgaW50byBtYWluIGJyYW5jaCBmcm9tIDMuNS4xIGJyYW5jaC4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcGRlbHRhL3NubXBkZWx0YS5kc3A6CgogICBmaWxlIHNubXBkZWx0YS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLnBsZzoKCiAgIGZpbGUgc25tcGRlbHRhLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0ZXN0L3NubXB0ZXN0LnBsZzoKCiAgIGZpbGUgc25tcHRlc3QucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTk6NDIgIG1hcnoKCiAgICogd2luMzIvc25tcHRyYXAvc25tcHRyYXAuZHNwOgoKICAgZmlsZSBzbm1wdHJhcC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wNyAxOTo0MiAgbWFyegoKICAgKiB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3A6CgogICBmaWxlIHNubXB0ZXN0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDE5OjQyICBtYXJ6CgogICAqIHdpbjMyL3NubXB0cmFwL3NubXB0cmFwLnBsZzoKCiAgIGZpbGUgc25tcHRyYXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDktMDcgMTI6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5oOgoKICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCiAgIAoxOTk4LTA5LTA3IDEyOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuaDoKCiAgIGZpbGUgbWVtb3J5X2ZyZWVic2QyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOS0wMyAxNDoyOSAgbmJhCgogICAqIGxvY2FsL2ZpeHByb2M6CgogICAtIChmaXhwcm9jKTogYWRkZWQgY29tbWVudCB0byB0ZXN0IENWUy4KICAgCjE5OTgtMDktMDIgMTg6NTAgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwKICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBkLmg6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICBzbm1wZC5oKToKICAgICAtIHN1cHBvcnQgbWliLW1vZHVsZSBzaHV0ZG93biBmdW5jdGlvbnMuCiAgICAgLSBkbyBhIG1pbmltYWwgcGVyc2lzdGVudCBjYWNoZSBpbXBsZW1lbnRhdGlvbiBhbmQgcmVhZCBpdCBhdCBzdGFydCB1cC4KICAgICAtIHRlc3Qgd2l0aCBiZWdpbm5pbmdzICh3cm9uZyBwbGFjZSkgb2YgYWdlbnRCb290cyB2YXJpYWJsZS4KICAgCjE5OTgtMDktMDIgMTg6NDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHVzZSBpbml0X3NubXAgaW5zdGVhZCBvZiBpbml0X21pYigpLgogICAKMTk5OC0wOS0wMiAxODo0OCAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtIChsaWJzbm1wLmRlZik6IGZpbmRfbW9kdWxlLgogICAKMTk5OC0wOS0wMiAxODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogaW5pdF9zbm1wKCkuCiAgIAoxOTk4LTA5LTAyIDE4OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLAogICByZWFkX2NvbmZpZy5oOgoKICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKToKICAgICAtIHByZS9wb3N0IG1pYiBsb2FkaW5nIGNvbmZpZyBmaWxlcy4KICAgICAtIGNyZWF0ZSBpbml0X3NubXAoKSB0byB3cmFwIG90aGVyIGZ1Y3Rpb25zLgogICAgIC0gbmV3IHNubXAuY29uZiBkaXJlY3RpdmVzOiBtaWJzLCBtaWJkaXJzLCBtaWJmaWxlLgogICAKMTk5OC0wOS0wMiAxODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IHR5cG8uCiAgIAoxOTk4LTA5LTAyIDE4OjQ0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcGVyc2lzdGVudCBjb25maWcgZmlsZSBxdWVzdGlvbi4KICAgCjE5OTgtMDktMDIgMTg6NDMgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogYWRkZWQgc2VjdXJpdHkgY2hlY2tzLgogICAKMTk5OC0wOC0zMSAxMzozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCiAgIAoxOTk4LTA4LTMxIDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoRXh0LTMtNS1wYXRjaGVzLjIpLAogICBpbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCiAgIAoxOTk4LTA4LTE0IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIGZpbGUgdm1zdGF0X2ZyZWVic2QyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgogICAKMTk5OC0wOC0xNCAwODo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmM6CgogICBmaWxlIG1lbW9yeV9mcmVlYnNkMi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KICAgCjE5OTgtMDctMjIgMTY6MjMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW46CgogICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogZml4IHNlZHNjcmlwdCBpbmNsdWRlcy4KICAgCjE5OTgtMDctMjIgMTU6MzUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IGRvbid0IGNoYW5nZSBydW5uaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIHN0cnRvay4KICAgCjE5OTgtMDctMjAgMTc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChzbm1wY2hlY2suZGVmKTogd29yayBhcm91bmQgZm9yIG5ldyBtdWx0aS1kZXB0aCBtaWIgdGFibGVzLi4KICAgCjE5OTgtMDctMTcgMTM6MjIgIGhhcmRha2VyCgogICAqIG1pYnMvUkZDLTEyMTUudHh0OgoKICAgLSAoUkZDLTEyMTUudHh0KTogY3JlYXRlZCBhbiBlbXB0eSBtaWIgbW9kdWxlIGZvciBpbXBvcnRpbmcgb2YgVFJBUC1UWVBFLgogICAKMTk5OC0wNy0xNyAxMzoxMSAgaGFyZGFrZXIKCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGNyZWF0ZWQgc21pY25nIGlucHV0IGZpbGUuCiAgICAgLSBmaXhlZCB0aGUgVUNELVNOTVAgbWliIHRvIGRlYWwgd2l0aCBtb3N0IHNtaWMgZXJyb3JzLgogICAKMTk5OC0wNy0xNSAxNTo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5Lmg6CgogICAtIChtZW1vcnkuaCk6IE1FTVNXQVBNSU5JTVVNIHdhc24ndCBiZWluZyB1c2VkLgogICAKMTk5OC0wNy0xNSAxNTo0NiAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogdXNpbmdfbW9kdWxlIGNoYW5nZXMuCiAgIAoxOTk4LTA3LTEwIDA5OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6IHdyb25nIHBkdSBwb2ludGVyIGZvciBzbm1wdjJjIHRyYXBzLgogICAKMTk5OC0wNy0wOCAxNTo1MSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxICkKICAgCjE5OTgtMDctMDggMTU6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuYzoKCiAgIC0gKGRsbW9kX21pYi5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmM6CgogICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jOgoKICAgLSAoc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jKTogLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiAtV2FsbCBjb3JyZWN0aW9ucy4KICAgCjE5OTgtMDctMDggMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IGJ1ZyBmaXhlcy4KICAgCjE5OTgtMDctMDggMTQ6NDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBpbmNsdWRlIGZpeGVzLgogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaAogICAKMTk5OC0wNy0wOCAxNDo0NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzX3BlcnNpc3QuYywgcGFzc19wZXJzaXN0LmgKOgoKICAgLSAocGFzc19wZXJzaXN0LmMsIHBhc3NfcGVyc2lzdC5oKTogY2xlYW5lZCB1cCBhbmQgLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgLSAodmVyc2lvbmluZm8uYyk6IGluY2x1ZGUgc3lzdGVtLmgKICAgCjE5OTgtMDctMDggMTQ6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYyk6IGluY2x1ZGUgc3lzL3dhaXQuaAogICAKMTk5OC0wNy0wOCAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKHVjZF9zbm1wLmgpOiByZW1vdmVkIHVjZC1zbm1wL3Bhc3NfcGVyc2lzdCBmcm9tIGRlZmF1bHQgaW5jbHVkZSBsaXN0LgogICAKMTk5OC0wNy0wOCAxNDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgZml4ZXMuCiAgIAoxOTk4LTA3LTA4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3NfcGVyc2lzdC5jLCBwYXNzX3BlcnNpc3QuaAosIHBhc3MtcGVyc2lzdC5jLCBwYXNzLXBlcnNpc3QuaDoKCiAgIC0gKHBhc3MtcGVyc2lzdC5jIHBhc3MtcGVyc2lzdC5oKTogbW92ZWQgdG8gcGFzc19wZXJzaXN0LltjaF0uCiAgIAoxOTk4LTA3LTA4IDE0OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGUgdW5yZWdpc3Rlcl9yZWFkLi4oKSBmdW5jdGlvbi4KICAgCjE5OTgtMDctMDggMTQ6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYzoKCiAgICAtIChkbG1vZC5jKTogdXNlIHNubXBkXyByZWdpc3Rlcl9yZWFkX2NvbmZpZygpIHdyYXBwZXJzLgogICAKMTk5OC0wNy0wOCAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oOgoKICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCk6IHdyYXBwZXJzIGZvciByZWFsIHJlYWRfY29uZmlnKClzLgogICAKMTk5OC0wNy0wOCAxNDowNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9kbG1vZHMvLmN2c2lnbm9yZSwgYWdlbnQvZGxtb2RzL01ha2VmaWxlLmluLAogICBhZ2VudC9kbG1vZHMvZGxtb2RfbWliLmMsIGFnZW50L2RsbW9kcy9kbG1vZF9taWIuaCwKICAgYWdlbnQvZGxtb2RzL2V4YW1wbGUuYywgYWdlbnQvZGxtb2RzL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jLCBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmgKLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiwgbWlicy9ETE1PRC1NSUIudHh0LCBtaWJzL01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluLAogICAgIC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBkbG1vZF9taWIuYywgZGxtb2RfbWliLmgsIGV4YW1wbGUuYywKICAgICBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICBETE1PRC1NSUIudHh0LCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEV1Z2VuZQogICAgIFBvbG92bmlrb3Y6CiAgICAgLSBuZXcgZGxtb2Qgc2V0LgogICAgIC0gZml4IGNvbmZpZ3VyZSBzY3JpcHQuCiAgIAoxOTk4LTA3LTA4IDEzOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCBmb3IgbWlzc2luZyBvYmplY3QgaWRlbnRpZmllciBsYWJlbHMuCiAgIAoxOTk4LTA3LTA4IDEzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBkb24ndCBmcmVlIGVudiBwb2ludGVycyB0aGF0IGFyZSBjcmVhdGVkLgogICAKMTk5OC0wNy0wOCAxMzowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogbWFrZSBocF9pbnRlcmZhY2VzIHN0cnVjdHVyZSBzdGF0aWMuCiAgIAoxOTk4LTA3LTA4IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgIC0gZml4ICJudW1iZXIgb2YgcmV0cmllcyIgYnVnLgogICAgIC0gcmVtb3ZlIG9kZCB0aW1lb3V0IGNhbGN1bGF0aW9uIGNvZGUgZm9yIHJldHJpZXMgPiAzLgogICAKMTk5OC0wNy0wOCAxMjo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaDoKCiAgIC0gKHVjZF9zbm1wLmgpOiBhZGRlZCBwYXNzLXBlcnNpc3QgbW9kdWxlLgogICAKMTk5OC0wNy0wOCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IHJlbW92ZWQgZnJvbSBhZ2VudCBkaXIuCiAgIAoxOTk4LTA3LTA4IDEyOjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHN0cnVjdC5oLCB1dGlsX2Z1bmNzLmMsCiAgIHV0aWxfZnVuY3MuaCwgdWNkLXNubXAvcGFzcy1wZXJzaXN0LmMsCiAgIHVjZC1zbm1wL3Bhc3MtcGVyc2lzdC5oOgoKICAgLSAoc3RydWN0LmgsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBwYXNzLXBlcnNpc3QuYywKICAgICBwYXNzLXBlcnNpc3QuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAtIGNyZWF0ZSBhIHBhc3MtcGVyc2lzdCBtb2R1bGUgdG8gaGFuZGxlIGNvbnRpbnVvdXNseSBydW5uaW5nIHBhc3MgdGhyb3VnaHMuCiAgIAoxOTk4LTA3LTA4IDEyOjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi86IHdpbjMyLm9wdCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcC9saWJzbm1wLnBsZywgbGlic25tcF9kbGwvbGlic25tcC5kZWYsCiAgIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wYnVsa3dhbGsvc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC9zbm1wZ2V0LmRzcAosIHNubXBnZXQvc25tcGdldC5wbGcsIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcAosIHNubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgc25tcHNldC9zbm1wc2V0LmRzcAosIHNubXBzZXQvc25tcHNldC5wbGcsIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AKLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay9zbm1wd2Fsay5kc3AKLCBzbm1wd2Fsay9zbm1wd2Fsay5wbGc6CgogICAtICh3aW4zMi5vcHQsIGxpYnNubXAuZHNwLCBsaWJzbm1wLnBsZywgbGlic25tcC5kZWYsIGxpYnNubXBfZGxsLnBsZywKICAgICBzbm1wYnVsa3dhbGsuZHNwLCBzbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0LmRzcCwgc25tcGdldC5wbGcsCiAgICAgc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQuZHNwLCBzbm1wc2V0LnBsZywKICAgICBzbm1wc3RhdHVzLmRzcCwgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUuZHNwLAogICAgIHNubXB0cmFuc2xhdGUucGxnLCBzbm1wd2Fsay5kc3AsIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lCiAgICAgTWFyem90OgogICAgIC0gd2luMzIgdXBkYXRlLgogICAKMTk5OC0wNy0wMSAxNTo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYzoKCiAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6CiAgICAgLSBmaXggZXh0ZW5zaWJsaXR5IGNoZWNraW5nIG9mIG9pZHMuCiAgICAgLSBzZXBlcmF0ZSBydW5uaW5nIG9mIGV4dGVybmFsIGNvbW1hbmQgaW50byBuZXcgZnVuY3Rpb24uCiAgIAoxOTk4LTA3LTAxIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBtaW5vciBzcGFjaW5nIGNoYW5nZXMuCiAgIAoxOTk4LTA3LTAxIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc3lzdGVtLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzeXN0ZW0uaCk6CiAgICAgLSBhZGRlZCBERUJVR1BPSUQobmFtZSwgbmFtZWxlbik7CiAgICAgLSBtb3ZlZCBERUJVR1AgZGVmaW5pdGlvbiBpbnRvIHNubXBfYXBpLmggd2hlcmUgaXQgYmVsb25ncy4KICAgCjE5OTgtMDctMDEgMTE6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaAosIHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgICAgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBNYWtlZmlsZS5pbiwKICAgICBzdHJ1Y3QuaCwgcGFzcy5oLCBNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9oYW5kbGVycy5jLAogICAgIHNubXB0cmFwZF9oYW5kbGVycy5oLCBNYWtlZmlsZS5pbiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwKICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIG1vdmVkIHJlYWRfY29uZmlnIHN1cHBvcnQgaW50byB0aGUgbGlicmFyeSBhbmQgdXNlIGl0LgogICAgIC0gYmVnaW5uaW5ncyBvZiBzbm1wdHJhcGQgZXh0ZW5zaWJpbGl0eS4KICAgCjE5OTgtMDctMDEgMTE6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbgosIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmgKLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcF92YXJzLmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaCwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYywgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuaDoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgICBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIE1ha2VmaWxlLmluLAogICAgIHN0cnVjdC5oLCBwYXNzLmgsIE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmgsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLAogICAgIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZWQgcmVhZF9jb25maWcgc3VwcG9ydCBpbnRvIHRoZSBsaWJyYXJ5IGFuZCB1c2UgaXQuCiAgICAgLSBiZWdpbm5pbmdzIG9mIHNubXB0cmFwZCBleHRlbnNpYmlsaXR5LgogICAKMTk5OC0wNi0yOCAwOTozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IGZpeCBzbm1wX2FkZF92YXIoKS4KICAgCjE5OTgtMDYtMjYgMTA6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvOiBzbXV4LmMsIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jCiwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oOgoKICAgLSAoc211eC5jLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oKTogUGF0Y2gKICAgICBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gRml4IGZvciBuZXcgZGVmaW5lcyBhbmQgcHJvcGVyIGhlYWRlciBpbmNsdWRlcy4KICAgCjE5OTgtMDYtMjYgMTA6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIC0gKGRpc2suYyk6IFBhdGNoIGZyb20gTWljaGFlbCBEb3VnbGFzczoKICAgICAtIGZpeCBjYWxjdWxhdGlvbiBvZiB0b3RhbGRpc2sgYnkgZG9pbmcgYmxvY2sgZGl2aXNpb24gZmlyc3QgdG8KICAgICAgIHByb3RlY3QgYWdhaW5zdCAzMiBiaXQgb3ZlcmZsb3dzLgogICAKMTk5OC0wNi0yNCAxMTo0MCAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBhZGRlZCAuaW5kZXguCiAgIAoxOTk4LTA2LTI0IDExOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBkLmMsIHNubXBkLmg6CgogICAtIChzbm1wZC5jLCBzbm1wZC5oKToKICAgICAtIGNyZWF0ZWQgKHBvb3JseSkgc2VuZF90cmFwX3BkdSgpIGZvciBzZW5kaW5nIHYyIHRyYXBzIGZyb20gbWliIG1vZHVsZXMuCiAgIAoxOTk4LTA2LTI0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogLmN2c2lnbm9yZSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc2h1dGRvd24gdHJhcCBzcGVjaWZpY2F0aW9ucy4KICAgICAtIG1pc2MgbWliIGZpeGVzLgogICAKMTk5OC0wNi0yNCAxMDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvLmN2c2lnbm9yZSwgYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSwgLmN2c2lnbm9yZSk6IGEgZmV3IHVwZGF0ZXMuCiAgIAoxOTk4LTA2LTI0IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKG1hbi8uY3ZzaWdub3JlKTogaWdub3JlIC5odG1sIGZpbGVzLgogICAKMTk5OC0wNi0yNCAxMDo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhcC5jCiwgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wc2V0LmMsIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgogICAgIC0gbW92ZWQgaGV4X3RvX2JpbmFyeSwgYXNjaWlfdG9fYmluYXJ5LCBhbmQgc25tcF9hZGRfdmFyIHRvIHNubXBsaWIuCiAgIAoxOTk4LTA2LTI0IDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMsIHNubXBfYXBpLmgKOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBjcmVhdGUgc25tcF9wZHVfYWRkX3ZhcmlhYmxlKCkuCiAgIAoxOTk4LTA2LTI0IDEwOjMwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IG1hbi0+aHRtbCBtYWtlIHNwZWNpZmljYXRpb24uCiAgIAoxOTk4LTA2LTIyIDA5OjE2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKG1haW4uYyk6IFBhdGNoIGZyb20gSmVycnkgRy4gRGVMYXBwOgogICAgIC0gY29tbWVudGVkIG91dCB0cmFpbGluZyAjZW5kaWYgY29tbWVudC4KICAgCjE5OTgtMDYtMTkgMTM6MTQgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy41LgogICAKMTk5OC0wNi0xOSAxMzoxMyAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNSApCiAgIAoxOTk4LTA2LTE5IDEzOjEyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IExhc3QgdXBkYXRlIGZvciAzLjUuCiAgIAoxOTk4LTA2LTE5IDEzOjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTA2LTE5IDEyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogbWVtc2V0IHRvIDAgdGhlIGVudGlyZSBzdWJ0cmVlIHN0cnVjdC4KICAgCjE5OTgtMDYtMTkgMTI6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IGZpeCBjaGVja21pYigpIGluIGNhc2Ugd2UgZ2V0IGNhbGxlZCBvbiBhIGdldCB3aGVuCiAgICAgd2UgcmVhbGx5IHNob3VsZG4ndCAoYmFkIGFydGlmYWN0IG9mIG5ldyB0cmVlIHN0cnVjdHVyZSkuCiAgIAoxOTk4LTA2LTE5IDEyOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jOgoKICAgLSAoZHVtbXkuYyk6IG1lbnRpb24gYXV0b19ubGlzdCgpLgogICAKMTk5OC0wNi0xOSAxMjowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZHVtbXkvQWRkTW9kdWxlRm9yRHVtbWllcy50eHQ6CgogICAtIChBZGRNb2R1bGVGb3JEdW1taWVzLnR4dCk6IHVwZGF0ZSB0byBmaXggcGF0aHMgYW5kIG1pc2Mgc3R1ZmYuCiAgIAoxOTk4LTA2LTE5IDEyOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogZml4IHJlZ2lzdGVyX21pYigpIHRvIGluaXQgcG9pbnRlcnMgdG8gbnVsbC4KICAgCjE5OTgtMDYtMTkgMDg6NTkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSBpbnN0YWxsIElQRldBQ0MgbWliLgogICAKMTk5OC0wNi0xOSAwODo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQpOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgIC0gdHVybiBpbnRvIGEgY29ycmVjdCB0YWJsZS4KICAgCjE5OTgtMDYtMTkgMDg6NTggIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogUGF0Y2ggZnJvbSBDcmlzdGlhbiBFc3RhbjoKICAgICAtIGV4YW1wbGUgb3V0cHV0IGNvcnJlY3Rpb25zLgogICAKMTk5OC0wNi0xOSAwODo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHdhcm4gQlNESSB1c2VycyBhZ2FpbnN0IC91c3IvdWNiL2NjLgogICAKMTk5OC0wNi0xOSAwODo0MSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQ6IG5vdCBmb3VuZCBtb2R1bGVzIHdpdGggY29uZmlndXJlPy4KICAgCjE5OTgtMDYtMTcgMTU6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15Lmg6CgogICAtIChkdW1teS5oKTogYWRkIERVTU1ZLU1JQiBieSBkZWZhdWx0LgogICAKMTk5OC0wNi0xNyAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbWVudGlvbiBkdW1teSBncm91cC4KICAgCjE5OTgtMDYtMTcgMDg6MjEgIGhhcmRha2VyCgogICAqIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvZHVtbXkvQWRkTW9kdWxlRm9yRHVtbWllcy50eHQKLCBhZ2VudC9taWJncm91cC9kdW1teS9EVU1NWS1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLCBhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5oCjoKCiAgIC0gKFJFQURNRSwgQWRkTW9kdWxlRm9yRHVtbWllcy50eHQsIERVTU1ZLU1JQi50eHQsIGR1bW15LmMsIGR1bW15LmgpOgogICAgIFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAtIG1pYiBtb2R1bGUgZG9jdW1lbnRhdGlvbiBhbmQgZXhhbXBsZSBmb3IgZHVtbWllcy4KICAgCjE5OTgtMDYtMTcgMDg6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmg6CgogICAtIChtaWIuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSByZW1vdmUgMm5kIGluaXRfbWliKCkgcHJvdG90eXBlLgogICAKMTk5OC0wNi0xNyAwODoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYmNvcHkgLT4gbWVtY3B5LgogICAKMTk5OC0wNi0xNyAwODoxMCAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXBidWxrd2Fsay4xLCBzbm1wY21kLjEsCiAgIHNubXBkZWx0YS4xLCBzbm1wZ2V0LjEsIHNubXBnZXRuZXh0LjEsIHNubXBzZXQuMQosIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0cmFwLjEsCiAgIHNubXB3YWxrLjE6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLjEsIHNubXBjbWQuMSwgc25tcGRlbHRhLjEsIHNubXBnZXQuMSwKICAgICBzbm1wZ2V0bmV4dC4xLCBzbm1wc2V0LjEsIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0cmFwLjEsCiAgICAgc25tcHdhbGsuMSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2N1bWVudGF0aW9uIGNsZWFudXAgYW5kIGNlbnRyYWxpemF0aW9uIG9mIGNvbW1vbiBvcHRpb25zLgogICAKMTk5OC0wNi0xNyAwODowOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIC0gKHNubXBkZWx0YS5jKTogdXNhZ2UoKSB1cGRhdGUuCiAgIAoxOTk4LTA2LTE3IDA4OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oOgoKICAgLSAoc25tcDJwLmMsIHNubXBkLmMsIHNubXBkLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbWlzYyB0eXBlIGZpeGVzLgogICAKMTk5OC0wNi0xMiAxNToxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0LAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjcmVhdGUgYW5kIHVzZSBhIHVjZEV4cGVyaW1lbnRhbCBzZWN0aW9uIGZvciB0aGUgaXBmd2FjYyBtaWIgdGlsbAogICAgICAgaXQgc3RhYmlsaXplcy4KICAgCjE5OTgtMDYtMTIgMTM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbC5jOgoKICAgLSAoa2VybmVsLmMpOiBkb24ndCBwcmludCBrbHJlYWQgZXJyb3JzIHVubGVzcyBpbiBkZWJ1Z2dpbmcgbW9kZS4KICAgCjE5OTgtMDYtMTIgMTM6NDMgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogNjRiaXQgZml4IG1lbnRpb25lZC4KICAgCjE5OTgtMDYtMTIgMTM6MTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgLSAobGlic25tcC5kZWYpOiBhZGQgc2V0ZW52IHRvIHRoZSBsaXN0LgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmg6CgogICAtICh3aW4zMi9jb25maWcuaCk6IGRvbid0IGhhdmUgc2V0ZW52LgogICAKMTk5OC0wNi0xMiAxMzoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IGZ1bmN0aW9uIG5hbWUgdHlwby4KICAgCjE5OTgtMDYtMTIgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiB0cmFwIHR5cGVzIHdlcmUgaW50J3Mgbm90IGxvbmdzIChmYWlsZWQgdW5kZXIgNjRiaXQgYXJjaCkuCiAgIAoxOTk4LTA2LTEyIDEzOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBwZXJjZW50YWdlIGNoZWNrIHdhcyBiYWNrd2FyZHMuCiAgIAoxOTk4LTA2LTEyIDEwOjEyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1pbm9yIHVwZGF0ZS4KICAgCjE5OTgtMDYtMTIgMTA6MTIgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogc2hvdyB2YWNtIGV4YW1wbGUgZm9yIHB1YmxpYy9wcml2YXRlIGZyb20gYW55d2hlcmUuCiAgIAoxOTk4LTA2LTEyIDA4OjUyICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmLCBGQVE6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCBGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gdXBkYXRlIGZvciBWQUNNIHN0dWZmLgogICAKMTk5OC0wNi0xMCAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wMnAuYywgc25tcGQuYywgc25tcGQuaDoKCiAgIC0gKHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oKTogLVdhbGwgY2xlYW51cHMuCiAgIAoxOTk4LTA2LTEwIDE1OjMxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IHVwZGF0ZS4KICAgCjE5OTgtMDYtMTAgMTU6MzAgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogYWRkZWQgRGF2ZSdzIGxpc3QuCiAgIAoxOTk4LTA2LTEwIDE0OjE1ICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy41LnByZTIgKQogICAKMTk5OC0wNi0xMCAwODo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBkLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gIHN0YXJ0cyB0byBzZXBhcmF0ZSBvdXQgdGhlIGhpc3RvcmljIFNOTVB2MiBzdHVmZi4KICAgICAtICBkb2VzIGEgYml0IG9mICdjb2RlIHRpZHlpbmcnLgogICAgIC0gIHN0YXJ0cyB0byBtb3ZlIHRvd2FyZHMgcG9ydC1zcGVjaWZpYyBoYW5kbGVycy4KICAgCjE5OTgtMDYtMTAgMDc6MTEgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluOgoKICAgLSAoY29uZmlnLmguaW4pOiBoYXZlX3NldGVudi4KICAgCjE5OTgtMDYtMDggMTQ6NTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiB1bmRpZCByZWRvIG9mIGNvbW1lbnQgb2YgZ2V0dGltZW9mZGF5KCkuCiAgIAoxOTk4LTA2LTA4IDE0OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywKICAgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYzoKCiAgIC0gKHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaAogICAgZnJvbSBKb2UgTWFyem90OgogICAgIC0gYXN5bmMgc3R1ZmYgYWRkZWQuCiAgICAgLSBnZXRfdGMgYWRkZWQuCiAgICAgLSBiZXR0ZXIgY29tbWVudHMgaW4gc29tZSBwbGFjZXMuCiAgIAoxOTk4LTA2LTA4IDE0OjE2ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKGxpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiB3MzIgdXBkYXRlLgogICAKMTk5OC0wNi0wOCAxNDoxMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIHJlbW92ZSBtb3JlIGNvbmZpZyBjcmVhdGVkIGhlYWRlcnMgb24gbWFrZSBjb25maWdjbGVhbi4KICAgCjE5OTgtMDYtMDggMTM6NTkgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IHVwZGF0ZSByZmMgIyBmb3IgdmFjbSByZWZlcmVuY2UuCiAgIAoxOTk4LTA2LTA4IDEzOjU5ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBBZGRlZCBFdWdlbmUncyBuYW1lLgogICAKMTk5OC0wNi0wOCAxMjozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGNyZWF0ZSBhIC5jIC0+IC5vIHJ1bGUgdG8gbWFrZSBzdXJlIGFuZCBwbGFjZSB0aGUKICAgICBvYmplY3QgZmlsZXMgaW4gdGhlIGFwcHJvcHJpYXRlIHN1YmRpcmVjdG9yaWVzLgogICAKMTk5OC0wNi0wOCAxMDo1MCAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXJsIHR5cGUgc3BsaXR0aW5nLgogICAKMTk5OC0wNi0wNSAxMTowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9kbG1vZC5jOgoKICAgLSAoZGxtb2QuYyk6CiAgICAgLSBjaGFuZ2Uge2RlLH1pbml0IGZ1bmN0aW9ucyB0byBfZHluYW1pY197ZGUsfWluaXRfTU9EVUxFLgogICAgIC0gdXNlIFNOTVBMSUJQQVRIIGluc3RlYWQgb2YgaGFyZCBjb2RlZCAvdXNyL2xvY2FsL2xpYi4KICAgCjE5OTgtMDYtMDUgMTA6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMsIG1pYi5jLCBwYXJzZS5oLCBzeXN0ZW0uYwosIHN5c3RlbS5oOgoKICAgLSAoYXNuMS5jLCBtaWIuYywgcGFyc2UuaCwgc3lzdGVtLmMsIHN5c3RlbS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIE1JQl9BQ0NFU1MgZGVmaW5lIGNoYW5nZXMuCiAgICAgLSBzZXRlbnYgaW1wbGVtZW50YXRpb24uCiAgICAgLSBpZmRlZiB3cmFwcGVycyBmb3IgT1BBUVVFX1NQRUNJQUxfVFlQRVMuCiAgIAoxOTk4LTA2LTA1IDEwOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRlc3QgZm9yIG51bGwgcG9pbnRlci4KICAgCjE5OTgtMDYtMDUgMTA6NTIgIGhhcmRha2VyCgogICAqIG1ha2V0YXJnZXQ6CgogICAtIChtYWtldGFyZ2V0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHN1cHBvcnQgZm9yIGxhcmdlciB0cmVlIGRlcHRocy4KICAgCjE5OTgtMDYtMDUgMTA6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGVzdCBmb3Igc2V0ZW52LgogICAKMTk5OC0wNi0wMyAxNDoyNiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuNS5wcmUxICkKICAgCjE5OTgtMDYtMDMgMTQ6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiByZWFkX2NvbmZpZy5vIGlzIG1pYm1vZHVsZSBoZWFkZXIgZGVwZW5kYW50IHRvby4KICAgCjE5OTgtMDYtMDMgMTQ6MjMgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluJ3MpOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDYtMDMgMTQ6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFwcHMvc25tcHNldC5jLAogICBzbm1wbGliL2FzbjEuaCwgc25tcGxpYi9pbnQ2NC5jLCBzbm1wbGliL2ludDY0LmgsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKGhyX2Rpc2suYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBzbm1wc2V0LmMsIGFzbjEuaCwKICAgICBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgLSAtV2FsbCBmaXhlcy4KICAgCjE5OTgtMDYtMDMgMTQ6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggbmV3IC0td2l0aC1jYyBhbmQgLS13aXRoLWNmbGFncyBhcmd1bWVudHMuCiAgIAoxOTk4LTA2LTAzIDEzOjUyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGZyZWVic2QyLmgpOgogICAgIC0gbW92ZSBjb25maWd1cmFibGUgZGVmaW5lcyB0byBjb25maWd1cmUgcmF0aGVyIHRoYW4gaW4gZnJlZWJzZDIuaC4KICAgCjE5OTgtMDYtMDMgMTM6NDMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcHRyYXBkLmMpOgogICAgIC0gY2hlY2sgZm9yIGdldGR0YWJsZXNpemUgYW5kIHVzZSBhIGdlbmVyaWMgaWYgbm90IGF2YWlsYWJsZS4KICAgCjE5OTgtMDYtMDMgMTM6MzkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBOZXcgZmxhZ3M6CiAgICAgLSAtLXdpdGgtY2M9Q0MKICAgICAtIC0td2l0aC1jZmxhZ3M9Q0ZMQUdTCiAgIAoxOTk4LTA2LTAzIDEyOjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9zbm1wX2ltcGwuaDoKCiAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAtIGZpeCBwZHUtPnZlcnNpb25zIHRvIGJlIGFsbCBpbnRzLgogICAKMTk5OC0wNi0wMyAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogbWlzc2VkIGEgbmVlZGVkIE9QQVFVRV9TUEVDSUFMX1RZUEVTIGlmZGVmLgogICAKMTk5OC0wNi0wMyAxMToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBkLmMpOiBpbmNsdWRlIG1pYklJL3NubXBfbWliLmguCiAgIAoxOTk4LTA2LTAzIDExOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IFJFQURNRSwgZXhhbXBsZS5jLCBleGFtcGxlLmgsCiAgIHdvbWJhdC5jLCB3b21iYXQuaCwgZXhhbXBsZXMvZXhhbXBsZS5jLAogICBleGFtcGxlcy9leGFtcGxlLmgsIGV4YW1wbGVzL3dvbWJhdC5jLAogICBleGFtcGxlcy93b21iYXQuaDoKCiAgIC0gKFJFQURNRSwgZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCwgZXhhbXBsZS5jLAogICAgIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKToKICAgICAtIG1vdmVkIHdvbWJhdCBhbmQgZXhhbXBsZSB0byBleGFtcGxlcy8gZGlyZWN0b3J5LgogICAKMTk5OC0wNi0wMyAxMTowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIGV4YW1wbGUuaCwgbWlzYy9kbG1vZC5jCiwgbWlzYy9kbG1vZC5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgpOiBQYXRjaCBmcm9tIEV1Z2VuZSBQb2xvdm5pa292OgogICAgIC0gaW1wbGVtZW50IGEgZHluYW1pYyBsb2FkaW5nIG1vZHVsZSBmb3IgbG9hZGluZyBzaGFyZWQgb2JqZWN0IG1pYiBtb2R1bGVzLgogICAKMTk5OC0wNi0wMyAxMDo1OCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbWVudGlvbiBDcmlzdGlhbiBFc3RhbiBpbiB0aGUgY29kZXJzIGxpc3QuCiAgIAoxOTk4LTA2LTAzIDEwOjU4ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IG1lbnRpb24gaXBmd2FjYwogICAKMTk5OC0wNi0wMyAxMDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oLCBtaWJzL0lQRldBQ0MtTUlCLnR4dCwKICAgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5jLCBpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBtb3ZlZCBpcGZ3YWNjIHRvIHVjZGF2aXMuMTMgYW5kIHJlbW92ZWQgXk1zIGFuZCBzb21lIGJsYW5rIGxpbmVzLgogICAKMTk5OC0wNi0wMyAxMDo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmg6CgogICAtIChpcGZ3YWNjLmgpOiBjb25maWdfYWRkX21pYihJUEZXQUNDLU1JQikuCiAgIAoxOTk4LTA2LTAzIDEwOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYywKICAgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmgsIG1pYnMvSVBGV0FDQy1NSUIudHh0OgoKICAgLSAoaXBmd2FjYy5jLCBpcGZ3YWNjLmgsIElQRldBQ0MtTUlCLnR4dCk6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgLSBpcCBmaXJld2FsbCBhY2NvdW50aW5nIGluZm9ybWF0aW9uIG1pYiBpbXBsZW1lbnRhdGlvbi4KICAgCjE5OTgtMDYtMDMgMTA6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogc211eC5jLCBzbXV4LmgsIHNtdXhfZ2F0ZWQuaCwKICAgc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMsIHNubXBfb3NwZi5oCiwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oLCBzbXV4L3NtdXguYywKICAgc211eC9zbXV4LmgsIHNtdXgvc25tcF9iZ3AuYywgc211eC9zbm1wX2JncC5oLAogICBzbXV4L3NubXBfb3NwZi5jLCBzbXV4L3NubXBfb3NwZi5oLCBzbXV4L3NubXBfcmlwMi5jCiwgc211eC9zbm1wX3JpcDIuaDoKCiAgIC0gKHNtdXguYywgc211eC5oLCBzbXV4X2dhdGVkLmgsIHNubXBfYmdwLmMsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLAogICAgIHNubXBfb3NwZi5oLCBzbm1wX3JpcDIuYywgc25tcF9yaXAyLmgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLAogICAgIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oKToKICAgICAtIG1vdmVkIHNtdXggc3R1ZmYgaW50byBhIHNtdXggc3ViLWRpcmVjdG9yeS4KICAgCjE5OTgtMDYtMDIgMTQ6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3NubXBfYXV0aC5jLAogICBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvX25saXN0LmgsIGtlcm5lbC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsCiAgICAgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9uZXR3b3JrLmMsIGhyX290aGVyLmMsCiAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgICBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaHJfdXRpbHMuYywgYXQuYywgaW50ZXJmYWNlcy5jLAogICAgIHZhcl9yb3V0ZS5jLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLAogICAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIGZyZWVic2QyLmgsIGhwdXguaCwgbGludXguaCwgbmV0YnNkLmgsCiAgICAgc29sYXJpcy5oLCBzeXN2LmgsIGFzbjEuYywgbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXV0aC5jLAogICAgIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZW5zZW46CiAgICAgLSBtYWtlIGhvc3QgcmVzb3VyY2VzIHdvcmsgdW5kZXIgTmV0QlNELCBGcmVlQlNELCBTb2xhcmlzIGFuZCBMaW51eC4KICAgICAgIC0gU3VuT1M0IGFsbW9zdCB3b3Jrcy4KICAgICAtIEFkZCAtcy8tUyB0byBjb21tYW5kIGxpbmUgb3B0aW9ucyBmb3IgcHJpbnRpbmcgb2Ygc2hvcnRlciBvaWRzLgogICAgIC0gbnVtZXJvdXMgYnVnIGZpeGVzLgogICAKMTk5OC0wNS0zMSAxNzo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG1ha2UgaXQgcG9zc2libGUgbm90IHRvIHVzZSBvcGFxdWUgc3BlY2lhbCB0eXBlcyB3aXRoIG5ldyBjbWQgbGluZSBmbGFnLgogICAKMTk5OC0wNS0zMSAxNzo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmM6CgogICAtIChzbm1wc2V0LmMpOiBlbmFibGUgc2V0dGluZyBvZiBvcGFxdWUgZmxvYXRzLCBkb3VibGVzLCBpbnQ2NHMsIHVpbnQ2NHMuCiAgIAoxOTk4LTA1LTMxIDE3OjU1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBhc24xLmgsIGludDY0LmMsIGludDY0LmgKLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oCiwgc25tcF9pbXBsLmg6CgogICAtIChhc24xLmMsIGFzbjEuaCwgaW50NjQuYywgaW50NjQuaCwgbWliLmMsIHNubXAuYywgc25tcF9hcGkuYywKICAgICBzbm1wX2FwaS5oLCBzbm1wX2ltcGwuaCk6CiAgICAgLSBpbXBsZW1lbnQgc3BlY2lhbCBkYXRhIHR5cGVzIHZpYSBvcGFxdWVzOiBmbG9hdCwgZG91YmxlLCBpbnQ2NCwgdWludDY0cy4KICAgCjE5OTgtMDUtMjkgMTY6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6IGNoYW5nZSBwZHUgdmVyc2lvbiBmcm9tIGxvbmcgdG8gaW50LgogICAKMTk5OC0wNS0yOSAxNjoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaAosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLAogICBhZ2VudC9taWJncm91cC9hbGFybS5jLCBhZ2VudC9taWJncm91cC9hbGFybS5oLAogICBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgKLCBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgKLCBhZ2VudC9taWJncm91cC9ob3N0LmgsIGFnZW50L21pYmdyb3VwL2hwdXguYywKICAgYWdlbnQvbWliZ3JvdXAvaHB1eC5oLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmgsIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5oLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuaCwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5oLAogICBhZ2VudC9taWJncm91cC9ocl9vdGhlci5jLCBhZ2VudC9taWJncm91cC9ocl9vdGhlci5oLAogICBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYywgYWdlbnQvbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgKLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5jLCBhZ2VudC9taWJncm91cC9ocl9wcmludC5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmgKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmMKLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmgsIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmMKLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5oLCBhZ2VudC9taWJncm91cC9pY21wLmMKLCBhZ2VudC9taWJncm91cC9pY21wLmgsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYwosIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYwosIGFnZW50L21pYmdyb3VwL2lwLmgsIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYwosIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMKLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkuYwosIGFnZW50L21pYmdyb3VwL21pYklJLmgsIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jCiwgYWdlbnQvbWliZ3JvdXAvcGFzcy5oLCBhZ2VudC9taWJncm91cC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuaCwgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuaCwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYwosIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsCiAgIGFnZW50L21pYmdyb3VwL3N5c09SVGFibGUuYywgYWdlbnQvbWliZ3JvdXAvc3lzT1JUYWJsZS5oCiwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3RjcC5oLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5jLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsCiAgIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYwosIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmMsIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmgKLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9vdGhlci5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5oLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfdXRpbHMuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbS5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5oCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FjbF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5oLAogICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmgsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmg6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBtb3ZlZCBtb3N0IG1pYmdyb3VwIHBpZWNlcyBpbnRvIHJlbGV2ZW50IHN1Yi1kaXJlY3Rvcmllcy4KICAgICAgIC0gY2hhbmdlZCBhbGwgaGVhZGVyIGZpbGUgYW5kICNpZmRlZiBVU0lOR18qIGxpbmVzIHRvIHJlZmxlY3QgdGhpcy4KICAgCjE5OTgtMDUtMjkgMTU6MjEgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBhYmlsaXR5IHRvIHNwZWNpZnkgbWliIGluZm9ybWF0aW9uIG9uIHRoZSBjbWQgbGluZS4KICAgCjE5OTgtMDUtMjkgMTU6MjAgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogd2luU05NUCBtZW50aW9uLgogICAKMTk5OC0wNS0yOSAxMTozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgLSBBZGQgYSBkZXBlbmRhbmN5IGxpbmUgZm9yIHNubXBfdmFycy5vIGZvciBhbGwgdGhlIG1vZHVsZSBpbmNsdWRlcy4KICAgCjE5OTgtMDUtMjkgMTE6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSk6IG1ha2Ugb2YgY29uZmlndXJlLgogICAKMTk5OC0wNS0yOSAxMToyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogcGF0Y2ggZnJvbSBOaWVsczogaW5jbHVkZSBzeXMvc29ja2V0IGluIGlmX210dSB0ZXN0LgogICAKMTk5OC0wNS0yOSAxMDoyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfaW1wbC5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgLSBmaXggY29tbXVuaXR5IG5hbWUgbGVuZ3RoIHByb2JsZW1zIGFuZCBpbmNyZWFzZSBzaXplLgogICAKMTk5OC0wNS0yOSAxMDoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYXQuYzoKCiAgIC0gKGF0LmMpOiBQYXRjaCBmcm9tIENocmlzIFNtaXRoOiBmaXggZm9yIGlyaXguCiAgIAoxOTk4LTA1LTI0IDE1OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggZm9yIG5ldGJzZCA8IDEuMy4KICAgCjE5OTgtMDUtMjQgMTU6MjIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogY2hhbmdlIHZhY20gbmV3cyB3b3JkaW5nLgogICAKMTk5OC0wNS0yNCAxNToyMiAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogdXBkYXRlIHRvIGNoYW5nZSBhIGZldyB0aGluZ3MuCiAgIAoxOTk4LTA1LTIwIDA4OjMzICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40ICkKICAgCjE5OTgtMDUtMjAgMDg6MzAgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZS4KICAgCjE5OTgtMDUtMjAgMDg6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KICAgCjE5OTgtMDUtMjAgMDg6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogY29uZmlnX3BlcnJvcigpIC0+IGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIHRva2Vucy4KICAgCjE5OTgtMDUtMjAgMDc6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wX2ltcGwuaCk6IHZlcnNpb24gc2hvdWxkIGJlIGEgbG9uZy4KICAgCjE5OTgtMDUtMjAgMDc6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IG1ha2UgY2hlY21pYigpIHVzZSBvaWQgbm90IGludCBmb3IgbmV3bmFtZS4KICAgCjE5OTgtMDUtMjAgMDc6MzQgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5OC0wNS0yMCAwNzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZXh0ZW5kIHJhbmRvbSBsb29rdXBzIGZ1cnRoZXIuCiAgIAoxOTk4LTA1LTE5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogZml4IHN3YXBpbmZvIG9uIGhwdXgxMCBzeXN0ZW1zLiAoL2V0Yy9zd2FwaW5mbyAtcikuCiAgIAoxOTk4LTA1LTE5IDEwOjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hdC5jOgoKICAgLSAoYXQuYyk6IHNldCB0byBkbyBub3RoaW5nIHdoZW4gQ0FOX1VTRV9TWVNDVEwuCiAgIAoxOTk4LTA1LTE4IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2ludDY0LmM6CgogICAtIChpbnQ2NC5jKToKICAgICAtIGluY2x1ZGUgaGVhZGVyIGNoYW5nZXMgZm9yIHdpbjMyLgogICAKMTk5OC0wNS0xOCAxNTozOSAgaGFyZGFrZXIKCiAgICogdmVyc2lvbi5oLCBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU5ICkKICAgCjE5OTgtMDUtMTggMTM6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5jOgoKICAgLSAoaHJfc3dpbnN0LmMpOiBwcm90ZWN0IHVzaW5nIHRoZSBkYXRlIHBvaW50ZXIgYWdhaW5zdCBOVUxMIHNldHRpbmdzLgogICAKMTk5OC0wNS0xOCAxMjo1MiAgaGFyZGFrZXIKCiAgICogbWlicy8uaW5kZXg6CgogICAtIChtaWJzLy5pbmRleCk6IHJlbW92ZWQuCiAgIAoxOTk4LTA1LTE4IDExOjE3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gZml4IHJ0ZW50cnkgc3RydWN0dXJlIHRlc3Qgb24gcmUtY29uZmlndXJlcy4KICAgCjE5OTgtMDUtMTUgMTE6MTggIGhhcmRha2VyCgogICAqIHdpbjMyLzogY29uZmlnLmgsIHdpbjMyLm9wdCwgbGlic25tcC9saWJzbm1wLmRzcAosIGxpYnNubXAvbGlic25tcC5wbGcsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZwosIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLCBzbm1wZ2V0L3NubXBnZXQucGxnCiwgc25tcGdldG5leHQvc25tcGdldG5leHQucGxnLCBzbm1wc2V0L3NubXBzZXQucGxnCiwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZywKICAgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAoY29uZmlnLmgsIHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwKICAgICBsaWJzbm1wX2RsbC5kc3AsIGxpYnNubXBfZGxsLnBsZywgc25tcGJ1bGt3YWxrLnBsZywgc25tcGdldC5wbGcsCiAgICAgc25tcGdldG5leHQucGxnLCBzbm1wc2V0LnBsZywgc25tcHN0YXR1cy5wbGcsIHNubXB0cmFuc2xhdGUucGxnLAogICAgIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIHdpbjMyIGZpbGUgdXBkYXRlcy4KICAgCjE5OTgtMDUtMTUgMTE6MTcgIGhhcmRha2VyCgogICAqIEZBUSwgc25tcGxpYi9taWIuYzoKCiAgIC0gKEZBUSwgbWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gaGFuZGxlIHJhbmRvbSBsb29rdXBzIHdpdGggbXVsdGlwbGUgb2lkIHNlZ21lbnRzLgogICAKMTk5OC0wNS0xNSAxMDoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHByb3ZpZGUgYWJpbGl0eSB0byBkbyByYW5kb20gc2VhcmNoZXMgc3BlY2lmeWluZyBhIG1vZHVsZSBuYW1lIHRvIGxvb2sgaW4uCiAgIAoxOTk4LTA1LTE1IDEwOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYwosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcHRhYmxlLmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBtYW4vc25tcHRyYW5zbGF0ZS4xLAogICBzbm1wbGliL2ludDY0LmgsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvbWliLmgsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oOgoKICAgLSAocmVhZF9jb25maWcuYywgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgIGhyX3N5c3RlbS5oLCBocl91dGlscy5jLCB1dGlsX2Z1bmNzLmMsIHZhcl9yb3V0ZS5jLAogICAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhbnNsYXRlLjEsCiAgICAgYnNkLmgsIHNvbGFyaXMuaCwgc3Vub3MuaCwgaW50NjQuaCwgbWliLmMsIG1pYi5oLCBwYXJzZS5jLCBwYXJzZS5oKToKICAgICBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc25tcHRyYW5zbGF0ZSBzdXBwb3J0cyAtUiBhbmQgLXIuCiAgICAgLSBtaXNjZWxsYW5lb3VzIHdhcm5pbmcgZml4ZXMuCiAgICAgLSBvaWQgc2VhcmNoZXIgYWx3YXlzIGlnbm9yZXMgY2FzZS4KICAgICAtIGZpeGVkIGhyX3N5c3RlbSB0byBjb21waWxlIG9uIFN1bk9TNC4KICAgCjE5OTgtMDUtMTUgMTA6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBzaW5nbGUgcXVvdGUgbWlzc2luZyBtb2R1bGUgbmFtZXMuCiAgIAoxOTk4LTA1LTE0IDA4OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogdHlwb3MuCiAgIAoxOTk4LTA1LTE0IDA4OjIyICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IG1pYjJjIG1lbnRpb25lZC4KICAgCjE5OTgtMDUtMTQgMDg6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IG5ldyBGQVEgZnJvbSBEYXZlIFNoaWVsZHMuCiAgIAoxOTk4LTA1LTE0IDA3OjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogbW92ZSBzeXMvcGFyYW0uaCB1cCBhYm92ZSBmcy5oIGhlYWRlcnMuCiAgIAoxOTk4LTA1LTEzIDIxOjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBzcHJpbnRfYnlfdHlwZSgpIGRpZG4ndCBoYW5kbGUgY291bnRlcjY0J3MuCiAgIAoxOTk4LTA1LTEzIDIxOjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCBmb3IgYnNkaQogICAKMTk5OC0wNS0xMyAyMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaXAuYzoKCiAgIC0gKGlwLmMpOiBpbmNsdWRlIG5ldC9yb3V0ZS5oIGFuZCBzeXNsb2cuaCBmb3IgYnNkaS4KICAgCjE5OTgtMDUtMTMgMjE6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBkb24ndCByZXR1cm4gYSBjb3VudGVyNjQgdG8gYSBzbm1wdjEgcmVxdWVzdC4KICAgCjE5OTgtMDUtMTMgMjE6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYzoKCiAgIC0gKGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogbWFrZSBpbnQ2NC5jIHVzZSBjb3VudGVyNjQncyBzdHJ1Y3R1cmUuCiAgIAoxOTk4LTA1LTEyIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTggKQogICAKMTk5OC0wNS0xMiAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNrLmMsIGV4YW1wbGUuYywgaW50ZXJmYWNlcy5jCiwgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMKLCB1dGlsX2Z1bmNzLmgsIHZtc3RhdC5jOgoKICAgLSAoZGlzay5jLCBleGFtcGxlLmMsIGludGVyZmFjZXMuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYywgcGFzcy5jLAogICAgIHByb2MuYywgdXRpbF9mdW5jcy5oLCB2bXN0YXQuYyk6CiAgICAgLSBpbmNsdWRlIHRpbWUuaCBwcm9wZXJseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdXRpbF9mdW5jcy5oIHRvIGRvIGl0LgogICAKMTk5OC0wNS0xMiAxMTo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHN5c3RlbS5jOgoKICAgLSAoc25tcF9hcGkuYywgc3lzdGVtLmMpOgogICAgIC0gbW92ZSBkZWJ1Z2dpbmcgY29kZSBmcm9tIHN5c3RlbS5jIHRvIHNubXBfYXBpLmMsIHdoZXJlIGl0IHNob3VsZCBiZS4KICAgCjE5OTgtMDUtMTIgMTE6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5jOgoKICAgLSAodm1zdGF0LmMpOiBjb3JyZWN0IHN0cmluZ3MgaW5jbHVzaW9uLgogICAKMTk5OC0wNS0xMiAxMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogTlVMTCAtPiAwLgogICAKMTk5OC0wNS0xMiAxMToxMSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIG11bmdlIHJwbSBsaWIgY2hlY2sgdG8gbGluayB3aXRoIC1sZGIgYXMgd2VsbC4KICAgCjE5OTgtMDUtMTIgMTE6MTAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbW9yZSB1cGRhdGVzLgogICAKMTk5OC0wNS0xMiAxMDo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGluY2x1ZGUgYSBnZXRkdGFibGVzaXplKCkgZnVuY3Rpb24gZm9yIGhwdXg5LgogICAKMTk5OC0wNS0xMiAxMDo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBtb3JlIHN3aW5zdCBmaXhlcyBmb3IgcnBtIG1vZHVsZXMuCiAgIAoxOTk4LTA1LTExIDEwOjM0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsCiAgIHNubXBfYXBpLmgsIHZhY20uYywgdmFjbS5oOgoKICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmgsIHZhY20uYywgdmFjbS5oKTogUGF0Y2ggZnJvbQogICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdmFjbSAodG8gYWxsb3cgLUhVUCkKICAgICAtIGZpeCB0aGUgcGFyc2VyIHRvIHJlcG9ydCB1bmxpbmtlZCBPSURzLiBUaGlzIGRpZCByZXZlYWwgYW4gZXJyb3IgaW4gYQogICAgICAgQ2lzY28gTUlCIChDSVNDTy1JUE1DQVNULU1JQikgdGhhdCBJIGhhZCBiZWVuIHVzaW5nIChpdCBuZWVkcyBhbgogICAgICAgSU1QT1JUUyBjaXNjb0V4cGVyaW1lbnQgRlJPTSBDSVNDTy1TTUkpCiAgICAgICBBY3R1YWxseSB0aGUgcGFyc2VyIHdvcmtlZCBvaywgZXhjZXB0IGZvciB0aGUgbWlzc2luZyBlcnJvciBtZXNzYWdlcy4KICAgICAtIHJld3JpdGUgb2YgdGhlIHBhcnNlcnMgbGV4aWNhbCBhbmFseXNlciwgdG8gY29ycmVjdCB0aGUgZXJyb3JzIHRoYXQKICAgICAgIERhdmUgUGVya2lucyBhbmQgb3RoZXJzIGhhdmUgcG9pbnRlZCBvdXQgcmVjZW50bHkgKG5hbWU6Oj0gLCBERVNDUklQVElPTiIKICAgICAgIGFuZCBwcm9wZXIgaGFuZGxpbmcgb2YgLS0gcGFydGlhbCBsaW5lIGNvbW1lbnRzIC0tKS4gV2F0Y2ggb3V0ISB0aGlzIGxhc3QKICAgICAgIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZSB2ZXJzaW9uIG9mIFNOTVB2Mi1UQyB0aGF0CiAgICAgICB3ZSBzaGlwKS4gTXkgRm9yZSBTeXN0ZW1zIE1JQnMgaGFkIGVycm9ycyB3aXRoIHRoaXMuCiAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKICAgCjE5OTgtMDUtMTEgMTA6MzIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gQ29ycmVjdGlvbnMgb2YgZGlzayBlbnRyeSBjYXBpdGlsYXphdGlvbiBwcm9ibGVtcy4KICAgCjE5OTgtMDUtMTEgMTA6MzEgIGhhcmRha2VyCgogICAqIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gKFNOTVB2Mi1UQy50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gdGhpcyBsYXN0IFtwYXJzZXJdIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZQogICAgICAgdmVyc2lvbiBvZiBTTk1QdjItVEMgdGhhdCB3ZSBzaGlwKS4KICAgCjE5OTgtMDUtMTEgMTA6MzAgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIChzbm1wdHJhbnNsYXRlLjEpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlLgogICAKMTk5OC0wNS0xMSAxMDozMCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gaW1wbGVtZW50IHRoZSBsb25nIHNpbmNlIGFubm91bmNlZCAtSCBvcHRpb24gdG8gc25tcHRhYmxlCiAgIAoxOTk4LTA1LTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICBocl9wYXJ0aXRpb24uYywgdmFjbV92YXJzLmM6CgogICAtIChocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbQogICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc29tZSBwcm90b3R5cGVzIGZvciB0aGUgaHJfKi5jIGZpbGVzIChuZWVkcyBEYXZlJ3MgcmVjZW50IHBhdGNoKQogICAgICAgV2FybmluZzogdGhlIHByb2MgcGFydCBzdGlsbCBkb2VzIG5vdCB3b3JrIHdpdGggU29sYXJpcyEKICAgCjE5OTgtMDUtMTEgMTA6MjkgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsCiAgIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBzbm1wZC5oLCB2YXJfc3RydWN0LmgpOiBQYXRjaAogICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB2YWNtICh0byBhbGxvdyAtSFVQKQogICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdGhlIHRyYXBzaW5rIGRpcmVjdGl2ZXMgaW4gc25tcGQKICAgCjE5OTgtMDUtMTEgMDg6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIC0gKGludDY0LmMpOiBhZGQgaW5jckJ5VTMyKCkuCiAgIAoxOTk4LTA1LTExIDA4OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogb3BhcXVlJ3MgY2FuIGhhdmUgYSBzaXplIHNwZWNpZmllci4KICAgCjE5OTgtMDUtMTEgMDg6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOgogICAgIC0gY291bnRlcjY0cy4KICAgICAtIGNvbnNvbG9kYXRpb24gb2YgdmFyaWFibGUgZGVjbGFyYXRpb25zLgogICAgIC0gbW9yZSBlcnJvciBzdGluZ3MgaW4gYWxsIGZpbGVzIGZvciB1bmtub3duIHZhcmlhYmxlIHR5cGVzLgogICAKMTk5OC0wNS0xMSAwODowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IG9wdGlvbmFsIHBvcnQgbnVtYmVyLgogICAKMTk5OC0wNS0xMSAwODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKTogYmxhbmsgbGluZSByZW1vdmFsLgogICAKMTk5OC0wNS0wOCAxNDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogd29yZGluZyBjaGFuZ2UuCiAgIAoxOTk4LTA1LTA4IDExOjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhyX2Rpc2suYywgaHJfc3dpbnN0LmM6CgogICAtIChocl9zd2luc3QuYywgaHJfZGlzay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMuCiAgIAoxOTk4LTA1LTA4IDEwOjU3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIHBrZ2xvY3MuaC4KICAgCjE5OTgtMDUtMDcgMDk6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKTogZGVidWcgaW5mbyBmb3IgY29uZmlnIGZpbGVzIHJlYWQuCiAgIAoxOTk4LTA1LTA3IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3lzL3N0YXQgaW5jbHVzaW9uIGluIGZzIGNoZWNrcy4KICAgCjE5OTgtMDUtMDcgMDk6MDUgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogY29ycmVjdGlvbiBmb3IgZGF0ZXMuCiAgIAoxOTk4LTA1LTA2IDIyOjI4ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIC0gKHdpbjMyL2NvbmZpZy5oKTogdXBkYXRlIGZyb20gSm9lIE1hcnpvdC4KICAgCjE5OTgtMDUtMDYgMjE6MDggIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgLSAobWliMmMpOiBjcmVhdGVkIGEgbWliMmMgdGVtcGxhdGUgY3JlYXRvci4KICAgCjE5OTgtMDUtMDYgMjE6MDggIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIGJvZ3VzIGluZGV4J3MgYmUgMC4KICAgCjE5OTgtMDUtMDYgMjE6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmg6CgogICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6CiAgICAgLSBuZXcgZnVuY3Rpb246IGNhbGN1bGF0ZV90aW1lX2RpZmYodDEsIHQyKS4KICAgCjE5OTgtMDUtMDYgMjE6MDYgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAtIChORVdTKTogbWlub3Igd29yZGluZyBjaGFuZ2UuCiAgIAoxOTk4LTA1LTA2IDE0OjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXJyb3JtaWIuYywgZXhhbXBsZS5jCiwgZXhhbXBsZS5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgbWVtb3J5LmMsIHByb2MuYywgc3lzT1JUYWJsZS5jLCBzeXN0ZW0uYwosIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCB2ZXJzaW9uaW5mby5jCiwgdm1zdGF0LmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4YW1wbGUuYywgZXhhbXBsZS5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgICBtZW1vcnkuYywgcHJvYy5jLCBzeXNPUlRhYmxlLmMsIHN5c3RlbS5jLCB1dGlsX2Z1bmNzLmMsCiAgICAgdXRpbF9mdW5jcy5oLCB2ZXJzaW9uaW5mby5jLCB2bXN0YXQuYyk6CiAgICAgLSByZW1vdmUgdGhlIG5ld25hbWUgcmVxdWlyZW1lbnQgZnJvbSBjaGVja21pYigpLgogICAgIC0gY3JlYXRlIGhlYWRlcl9nZW5lcmljKCkgZm9yIHNpbXBsZSBzY2FsYXIgdGVzdHMuCiAgICAgLSB1c2UgaGVhZGVyX2dlbmVyaWMoKSBpbiBhbGwgdWNkIHNwZWNpZmljIHNjYWxhciBtaWJzLCBhbmQgZXhhbXBsZS5bY2hdLgogICAKMTk5OC0wNS0wNiAxNDowNiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBhZGRlZCBpbnRlcm5hbCB0YWJsZSBzZWN0aW9uLgogICAgIC0gbWliIG51bWJlciBjb3JyZWN0aW9ucyB0byBtYXRjaCB0aGUgc291cmNlLgogICAKMTk5OC0wNS0wNiAxMToyMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGttaWIuCiAgIAoxOTk4LTA0LTI5IDExOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKToKICAgICAtIGRpc3BsYXkgdW5sb2FkZWQgbW9kdWxlIGVycm9yLgogICAgIC0gZG9uJ3QgdHJ5IHRvIGxvYWQgYSBmaWxlIG9uIGEgY2FuY2VsLgogICAKMTk5OC0wNC0yOSAxMTozMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHB1dCB2bXN0YXQgYmFjayBpbiBhbmQgcmVuYW1lZCB0byBzeXN0ZW1TdGF0cy4KICAgCjE5OTgtMDQtMjkgMTE6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdm1zdGF0LmMsIHZtc3RhdC5oOgoKICAgLSAodm1zdGF0LmMsIHZtc3RhdC5oKTogbW92ZXMsIGNoYW5nZXMsIHJlbW92YWxzLCBhbmQgZml4ZXMuCiAgIAoxOTk4LTA0LTI5IDEwOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGV4YW1wbGUuYywgZXhhbXBsZS5oLCB3b21iYXQuYwosIHdvbWJhdC5oOgoKICAgLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCk6IG1vcmUgY2xlYW4gdXBzLgogICAKMTk5OC0wNC0yOSAxMDozNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlLmMsIHByb2MuYywgdmFyX3JvdXRlLmMKLCB3b21iYXQuYzoKCiAgIC0gKGV4YW1wbGUuYywgcHJvYy5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMpOgogICAgIC0gbmxpc3QgY2xlYW51cHMuCiAgIAoxOTk4LTA0LTI5IDEwOjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90Y3AuYzoKCiAgIC0gKHRjcC5jKTogZG9uJ3QgdXNlIFRDUFNUQVRfU1lNQk9MIHVubGVzcyBkZWZpbmVkLgogICAKMTk5OC0wNC0yOSAwODo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIC0gKHNubXB0YWJsZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCAtSCBoZWFkZXIgcHJpbnRpbmcuCiAgIAoxOTk4LTA0LTI3IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKTogYnVnIGZpeGVzLgogICAKMTk5OC0wNC0yNyAxNjo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IE5ldyBtaWIgbWVudSBjb21tYW5kOiBsb2FkIGEgbWliIG1vZHVsZSBieSBJRCBuYW1lLgogICAKMTk5OC0wNC0yNyAxNjoyNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICAtICh0a21pYik6IGJ1ZyBmaXhlcyBhbmQgbmV3IG1pYiBtZW51IHRvIGxvYWQgbmV3IG1pYnMuCiAgIAoxOTk4LTA0LTI3IDEzOjMxICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy40LnByZTcgKQogICAKMTk5OC0wNC0yNyAxMTowMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jCiwgc25tcGdldG5leHQuYywgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHdhbGsuYzoKCiAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsCiAgICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHdhbGsuYyk6CiAgICAgLSBQdXQgdGhlIHdvcmQgIlRpbWVvdXQ6ICIgaW4gZnJvbnQgb2YgdGhlICJObyBSZXNwb25zZSIgZXJyb3JzLgogICAKMTk5OC0wNC0yNyAxMTowMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRlZmluZSBTSExJQl9MRENPTkZJR19DTUQgYXMgIjoiIGZvcgogICAgIHN0YXRpYyBsaWJyYXJ5IGNhc2VzLgogICAKMTk5OC0wNC0yNyAxMDo1OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgLSAoTWFrZWZpbGUudG9wKTogcmVtb3ZlZCB1bm5lZWRlZCB2YXJpYWJsZS4KICAgCjE5OTgtMDQtMjQgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAodmFyX3JvdXRlLmMpOiB3YXRjaCBvdXQgZm9yIHNpbmdsZSByb3V0ZSBsb29wcy4KICAgCjE5OTgtMDQtMjQgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvX25saXN0Lmg6CgogICAtIChhdXRvX25saXN0LmMsIGF1dG9fbmxpc3QuaCk6IG5fdmFsdWUgaXMgYSBsb25nOgogICAgIC0gcmV0dXJuIHRoZSB2YWx1ZSBmcm9tIGF1dG9fbmxpc3RfdmFsdWUgYXMgYW4gdW5zaWduZWQgbG9uZy4KICAgCjE5OTgtMDQtMjQgMTY6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC5jOgoKICAgLSAodGNwLmMpOiBpbmNsdWRlIG5ldGluZXQvdGNwaXAuaCBmb3IgRFU0LjAuCiAgIAoxOTk4LTA0LTI0IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBjYWxjdWxhdGUgdmZzIGJsb2NrIHNpemUgaWYgcG9zc2libGUgYW5kIHNpemUgPiAyNTUgYnl0ZXMuCiAgIAoxOTk4LTA0LTI0IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYzoKCiAgIC0gKGhyX3BhcnRpdGlvbi5jKTogY2xvc2UgZmlsZSBkZXNjcmlwdG9yIGp1c3Qgb3BlbmVkLgogICAKMTk5OC0wNC0yNCAxNDozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jOgoKICAgLSAoaHJfZmlsZXN5cy5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBkZWZpbmUgTUFYUEFUSExFTi4KICAgCjE5OTgtMDQtMjQgMTQ6MzIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjaGVjayBzdGF0dmZzLmggZm9yIGZfYmF2YWlsLgogICAKMTk5OC0wNC0yNCAxNDowMyAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IG1vcmUgY2xlYW5pbmcgYW5kIHJlbmFtaW5nLgogICAKMTk5OC0wNC0yNCAxMDoyMiAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHRoZSB0ZXh0dWFsIGRlc2NyaXB0aW9ucyB3ZXJlIHVwZGF0ZWQgc29tZS4KICAgCjE5OTgtMDQtMjQgMTA6MDIgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gcmVuYW1lZCBsYWJlbHMgdG8gYmUgdW5pcXVlIGZyb20gdGhlIG9sZCBkZWZpbml0aW9ucy4KICAgICAtIHJlbnVtYmVyZWQgYWdhaW4uCiAgICAgLSBjb21tZW50ZWQgb24gdGhlIGRlc2dpbiBvZiB0aGUgbWliIGF0IHRoZSB0b3AuCiAgICAgLSBDaGFuZ2VkIGJhY2sgdG8gU01JdjEuCiAgICAgLSByZW1vdmVkIGxvY2tkIHNlY3Rpb24uCiAgICAgLSByZW1vdmVkIHZtc3RhdCBzZWN0aW9uIHRpbGwgaXQgZ2V0cyBpbXBsZW1lbnRlZC4KICAgICAtIHJlbW92ZWQgc2VxdWVuY2VzIG9mIHNjYWxlcnMuCiAgIAoxOTk4LTA0LTI0IDEwOjAwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbWliIG9pZCBsb2NhdGlvbiB1cGRhdGVzIGZvciB1Y2Qtc25tcCBtaWIuCiAgIAoxOTk4LTA0LTIyIDA4OjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHBhcnNlIEJJVFMga2V5d29yZHMuCiAgIAoxOTk4LTA0LTIyIDA3OjQ5ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogY2hhbmdlZCB3b3JkaW5nLCBjbGVhbmVkIHVwIGEgYml0LgogICAKMTk5OC0wNC0yMCAxNjowNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBuZWVkZWQgcG9pbnRlciBjb3BpZXMuCiAgIAoxOTk4LTA0LTIwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmM6CgogICAtICh0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtICNpZmRlZiBjaGVja3Mgb24gc3ltYm9scyBhbmQgaGVhZGVyIG1vdmVtZW50LgogICAKMTk5OC0wNC0yMCAxNjowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmM6CgogICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0eXBlY2FzdCBhIHBvaW50ZXIuCiAgIAoxOTk4LTA0LTIwIDE2OjA1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZ2V0aG9zdGJ5YWRkciBtb3ZlcyB1cC4KICAgICAtIGluY2x1ZGUgc3lzL3dhaXQuaC4KICAgICAtIHN5c2xvZyAlZCAtPiAlbGQgZm9yIGxvbmcgc3BlY2lmaWNfdHlwZS4KICAgCjE5OTgtMDQtMjAgMTY6MDMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBwcm90b3R5cGluZyBhbmQgb3RoZXIgY2xlYW51cHMuCiAgIAoxOTk4LTA0LTIwIDE2OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB0ZXN0IHN5bWJvbCBkZWZpbmVzIGFuZCBjbGVhbnVwLgogICAKMTk5OC0wNC0yMCAxNjowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGhlYWRlciBtb3Zlcy4KICAgCjE5OTgtMDQtMjAgMTY6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGFwcHJvcHJpYXRlIHVzZSBvZiBzdHJkdXAgZHVyaW5nIHN0YXJ0dXAgYW5kIGJldHRlciBmbGFnIGNoZWNraW5nLgogICAKMTk5OC0wNC0yMCAxNTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9maWxlc3lzLmMsIGhyX3N3cnVuLmM6CgogICAtIChocl9maWxlc3lzLmMsIGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IHNvbWUgaG9zdCByZXNvdXJjZXMgZm9yIHNvbGFyaXMuCiAgIAoxOTk4LTA0LTIwIDE1OjU2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3Igc3lzL2RraW8uaAogICAKMTk5OC0wNC0yMCAxNTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0X3Jlcy5oLCBocl9kaXNrLmMsCiAgIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYzoKCiAgIC0gKGhvc3RfcmVzLmgsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9wYXJ0aXRpb24uYywgaHJfc3RvcmFnZS5jKToKICAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgICAtIGNvbnNvbGlkYXRlIHRoZSBzeXN0ZW0tc3BlY2lmaWMgc3R1ZmYgYSBiaXQgKHNob3VsZCBtYWtlIGl0IGVhc2llcgogICAgICAgICB0byBmb2xsb3cpCiAgICAgICAtIFJlLXN0cnVjdHVyZXMgdGhlIERpc2sgc2VhcmNoaW5nLCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgY2FuIHNldCB1cAogICAgICAgICB2aWEgdGhlIGNvbmZpZyBmaWxlLiAod2hpY2ggSSBzdGlsbCBuZWVkIHRvIGRvKQogICAgICAgLSBTcGVlZCB1cCBkaXNrIHNlYXJjaGluZyAoYnkgY2FjaGluZyBpbnZhbGlkIHJlc3VsdHMgLSBhICptYWpvciogd2luISkKICAgICAgIC0gSGFuZGxlIHBhcnRpdGlvbnMgc2Vuc2libHkgKGFydGhlciB0aGFuIG9uZSBwZXIgZGlzaykKICAgICAgIC0gSW1wcm92ZSBTb2xhcmlzIHN1cHBvcnQgZm9yIHRoZSBEZXZpY2UgZ3JvdXAKICAgCjE5OTgtMDQtMjAgMTA6MzEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogY2hhbmdlIG9pZCBmcm9tIHRleHR1YWwgdG8gbnVtZXJpYyB0byBhbGxvdyBub3cgbWlicyB0bwogICAgIGJlIGxvYWRlZC4KICAgCjE5OTgtMDQtMDEgMTY6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IGFsd2F5cyBzZW5kIGVudGVycHJpc2UgYW5kIHRyYXBvaWQgdG8gc2NyaXB0cy4KICAgCjE5OTgtMDQtMDEgMTQ6NDMgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNiApCiAgIAoxOTk4LTA0LTAxIDE0OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCk6IG1ha2UgdW5yZWdlc3RlcmluZyBvZiBtaWJzIHdvcmsuCiAgICAgLSAoaW4gbW9zdCBjYXNlczotPykKICAgCjE5OTgtMDQtMDEgMTQ6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTA0LTAxIDE0OjEwICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IHJlbW92ZWQgYSBmZXcgdGhpbmdzIQogICAKMTk5OC0wNC0wMSAxMzo1NCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogbW92ZWQgdGhlIHZpZXcgZXhhbXBsZSBzZWN0aW9uIGFib3ZlIHRoZSBhY2Nlc3Mgc2VjdGlvbi4KICAgCjE5OTgtMDQtMDEgMTM6NTMgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmKTogYWRkZWQgdmFjbSBleGFtcGxlIGNvbmZpZ3VyYXRpb24uCiAgIAoxOTk4LTA0LTAxIDEzOjQ3ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKEZBUSwgUkVBRE1FKTogbW9yZSAzLjQgdXBkYXRlcy4KICAgCjE5OTgtMDQtMDEgMTM6MzEgIGhhcmRha2VyCgogICAqIE5FV1MsIFBPUlRJTkc6CgogICAtIChORVdTLCBQT1JUSU5HKTogdXBkYXRlcyBmb3IgMy40LgogICAKMTk5OC0wNC0wMSAxMzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgLSAoYXV0b19ubGlzdC5jKToKICAgICAtIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGRlYnVnZ2luZyBzdGF0ZW1lbnRzIG9mIHRyZWUgdHJhdmVyc2FsLgogICAKMTk5OC0wNC0wMSAwOTo1MiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IGVudGVycHJpc2VfbGVuZ3RoIGlzIHNpemVvZihvaWQpIGRlcGVuZGVudC4KICAgCjE5OTgtMDMtMjcgMTY6NDMgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL2lwLmMsCiAgIG1pYmdyb3VwL3JlZ2lzdHJ5LmM6CgogICAtIChzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsIGludGVyZmFjZXMuYywgaXAuYywgcmVnaXN0cnkuYyk6CiAgICAgLSBwcm90b3R5cGluZyBhbmQgLVdhbGwgZml4ZXMuCiAgIAoxOTk4LTAzLTI3IDE2OjQyICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCk6IGRvY3VtZW50IGxpYndyYXAuCiAgIAoxOTk4LTAzLTI3IDE2OjIzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3NubXBkLmM6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOgogICAgIC0gY29ycmVjdGx5ICNpZmRlZiBvdXQgdGhlIHRjcHdyYXBwZXJzIHBhdGNoLgogICAKMTk5OC0wMy0yNyAxNjoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogSW50ZXJmYWNlc19TY2FuX05leHQgbmVlZGVkIGEgNHRoIChOVUxMKSBhcmd1bWVudC4KICAgCjE5OTgtMDMtMjcgMTY6MTAgIGhhcmRha2VyCgogICAqIFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jOgoKICAgLSAoUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOiBQYXRjaCBmcm9tCiAgICAgQXJ0aHVyIEh5dW46CiAgICAgLSB0Y3B3cmFwcGVycyBzdXBwb3J0LgogICAKMTk5OC0wMy0yNyAxMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmM6CgogICAtIChocl9kZXZpY2UuYyk6IGNoZWNrIGRldmljZSBpbmRleCBhZ2FpbnN0IG1heGltdW0gKHNlZ2ZhdWx0IG9uIEhQVVgpLgogICAKMTk5OC0wMy0yNyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzay5jOgoKICAgLSAoZGlzay5jKTogdXNlIGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIGRpc2tzLgogICAKMTk5OC0wMy0yNyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgLSBjcmVhdGUgY29uZmlnX3B3YXJuKCkgdGhhdCBkb2Vzbid0IGluY3JlYXNlIHRoZSBlcnJvciBjb3VudCB0bwogICAgICAgcHJldmVudCBleGl0aW5nLiAgVXNlZCBmb3IgZGlza3MsIHNpbmNlIHNvbWUgbWlnaHQgYnkgcHJvY2VzcyBvcgogICAgICAgbmZzIG1vdW50ZWQuCiAgIAoxOTk4LTAzLTI3IDA5OjIwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOgogICAgIC0gQmV0YSB2ZXJzaW9uIG9mIGFuIGV4dGVuc2libGUgdHJhcCBkZW1vbi4KICAgICAgIC0gLUMgJ2NvbW1hbmQnIG9uIHRoZSBjb21tYW5kIGxpbmUgcnVucyB0aGUgY29tbWFuZCBhbmQgZmVlZHMgaXQKICAgICAgICAgc3RkaW4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRyYXAuCiAgICAgICAtIHYxIHRyYXBzIGFyZSBjb252ZXJ0ZWQgdG8gdjIgdHJhcHMgZm9yIGNvbnNpc3RhbmN5IG9mCiAgICAgICAgIGluZm9ybWF0aW9uIHNlbnQgdG8gdGhlIHNjcmlwdHMuCiAgIAoxOTk4LTAzLTI2IDA3OjIyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvYXV0b19ubGlzdC5oLAogICBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L2tlcm5lbC5jLAogICBhZ2VudC9yZWFkX2NvbmZpZy5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jLCBhZ2VudC9taWJncm91cC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYywgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMKLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYywgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYwosIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYwosIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFzcy5jCiwgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfYmdwLmMsIGFnZW50L21pYmdyb3VwL3NubXBfb3NwZi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX3JpcDIuYywgYWdlbnQvbWliZ3JvdXAvc3lzT1JUYWJsZS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5jCiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYwosIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsIHNubXBsaWIvYXNuMS5jCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc3lzdGVtLmMsIHNubXBsaWIvdmFjbS5jLCBzbm1wbGliL3ZpZXcuYwo6CgogICAtICgqLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gbWlzYyBwb3J0aW5nIGltcHJvdmVtZW50cyAodGhlIGJzZCBncm91cHMsIHN1bm9zLCAuLi4pLgogICAgIC0gc3dpdGNoIGF1dG9fbmxpc3RzIGNhbGxpbmcgb3JkZXIgb2YgXyB2cyBub24gXyBsb29rdXBzLgogICAgIC0gcmV2ZXJzZSBhbGwgc3RyaW5nLmgvc3RyaW5ncy5oIGluY2x1ZGUgcG9zc2liaWxpdGllcy4KICAgCjE5OTgtMDMtMjUgMTY6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hwdXguYzoKCiAgIC0gKGhwdXguYyk6IGZpeCB3cml0ZV9tZXRob2QgZGVjbGFyYXRpb24uCiAgIAoxOTk4LTAzLTI1IDEzOjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IG1pYklJLmMsIHYycGFydHkuYywgdmFjbV92YXJzLmMKOgoKICAgLSAodjJwYXJ0eS5jLCBtaWJJSS5jLCB2YWNtX3ZhcnMuYyk6IGRlY2xhaXIgcmVnaXN0cmF0aW9uIHZhcmlhYmxlcyBzdGF0aWNseS4KICAgCjE5OTgtMDMtMjUgMTI6NDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgaW50NjQuYywgaW50NjQuaCwgbWliLmMKOgoKICAgLSAoTWFrZWZpbGUuaW4sIGludDY0LmMsIGludDY0LmgsIG1pYi5jKTogQ29kZSBmcm9tIERhdmlkIFQuIFBlcmtpbnM6CiAgICAgLSBpbnRlZ3JhdGVkIERhdmlkJ3MgY29kZSB0byBwcmludCBjb3VudGVyNjRzIGFzIGludGVnZXJzIHJhdGhlciB0aGFuIGhleC4KICAgCjE5OTgtMDMtMjUgMTA6NTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBBZGQgYW4gJiB0byBhcnBjb20uYWNfZW5hZGRyIGluIG1lbXNldC4KICAgCjE5OTgtMDMtMjUgMTA6NDYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGxpbnV4LmgpOiBuZXcgZGVmaW5lOiBET05UX1VTRV9OTElTVC4KICAgCjE5OTgtMDMtMjUgMTA6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBkLmMsIHNubXBfYXBpLmMpOiBTcGVsbGluZyBlcnJvcnMgZnJvbSB0aGUgQ01VIGNvZGUgZml4ZWQuCiAgIAoxOTk4LTAzLTI1IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2ltcGx5IGRvbid0IGRlZmluZSBDQU5fVVNFX05MSVNUIG9uIGxpbnV4LgogICAKMTk5OC0wMy0yNSAxMDozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYwosIG1pYmdyb3VwL3JlZ2lzdHJ5LmMsIG1pYmdyb3VwL3JlZ2lzdHJ5Lmg6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCk6CiAgICAgLSBmaXggdGhlIHJlZ2lzdHJ5IG1pYiB0byB1c2UgdGhlIG5ldyBtb2R1bGUgc3RydWN0dXJlLgogICAgIC0gY3JlYXRlIGEgd29ya2luZyBmaW5kX3N1YnRyZWUoKSBhbmQgZmluZF9zdWJ0cmVlX25leHQoKS4KICAgCjE5OTgtMDMtMjUgMDk6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RjcC5jOgoKICAgLSAodGNwLmMpOiBpbmNsdWRlIHRjcGlwLmggZm9yIGRpZ2l0YWwgdW5peC4KICAgCjE5OTgtMDMtMjIgMTg6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogcGFzcy5jLCBwcm9jLmMsIHZhY21fdmFycy5jOgoKICAgLSAocGFzcy5jLCBwcm9jLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAtIG1vdmUgc3lzL3R5cGVzLmggdXAgZm9yIHVsdHJpeC4KICAgCjE5OTgtMDMtMTggMTQ6MDkgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNSApCiAgIAoxOTk4LTAzLTE4IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3JlYWRfY29uZmlnLmMsIGFnZW50L3NubXBkLmMKLCBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgbWFuL21pYl9hcGkuMywKICAgd2luMzIvY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMsCiAgICAgc25tcGQuYywgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtYWluLmMsIG1pYl9hcGkuMywKICAgICBjb25maWcuaCk6CiAgICAgLSBTTk1QTElCUEFUSCAtPiBTTk1QU0hBUkVQQVRICiAgICAgLSBhIHJlYWwgU05NUExJQlBBVEgKICAgICAtIG1ha2UgdGhlIGFnZW50IHJlYWQgLmNvbmYgZmlsZXMgZnJvbSBTTk1QU0hBUkVQQVRIOlNOTVBMSUJQQVRILgogICAKMTk5OC0wMy0xOCAxMzoyNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleHRlbnNpYmxlLmMsIG1lbW9yeS5jLCBwYXNzLmMKLCBwcm9jLmMsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oOgoKICAgLSAoZXh0ZW5zaWJsZS5jLCBtZW1vcnkuYywgcGFzcy5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oKToKICAgICAtIHdhaXQgZm9yIHBpZCBhZnRlciBnZXRfZXhlY19vdXRwdXQoKSB3aXRoIG5ldyB3YWl0X29uX2V4ZWMoKSBmdW5jdGlvbi4KICAgCjE5OTgtMDMtMTggMTM6MTAgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4sCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4sIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gcmUtbnVtYmVyaW5nIG9mIHRoZSBuZXcgdGFibGUgbW9kdWxlcy4KICAgCjE5OTgtMDMtMTggMDk6MTcgIGhhcmRha2VyCgogICAqIG92L1JFQURNRToKCiAgIC0gKFJFQURNRSk6IGNoYW5nZWQgT1YgcGF0aCdzIHRvIG5ld2VyIHJlbGVhc2UgcGF0aHMuCiAgIAoxOTk4LTAzLTExIDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgY2hvbXAgbmV3IGxpbmUgb24gcmVhZF9jb25maWcgdXRpbHMuCiAgIAoxOTk4LTAzLTExIDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZGVwZW5kIHVwZGF0ZS4KICAgCjE5OTgtMDMtMTEgMTU6NTYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IG5hbWUgdXBkYXRlLgogICAKMTk5OC0wMy0xMSAxNTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgLSAoYXV0b19ubGlzdC5jKTogYmV0dGVyIGRlYnVnZ2luZyBwcmludGZzCiAgIAoxOTk4LTAzLTExIDE0OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuYwosIHNubXBfdmFycy5jLCBzbm1wZC5jLCBtaWJncm91cC9ob3N0X3Jlcy5oCiwgbWliZ3JvdXAvaHJfZGV2aWNlLmMsIG1pYmdyb3VwL2hyX2RldmljZS5oLAogICBtaWJncm91cC9ocl9kaXNrLmMsIG1pYmdyb3VwL2hyX2Rpc2suaCwKICAgbWliZ3JvdXAvaHJfZmlsZXN5cy5jLCBtaWJncm91cC9ocl9maWxlc3lzLmgsCiAgIG1pYmdyb3VwL2hyX25ldHdvcmsuYywgbWliZ3JvdXAvaHJfbmV0d29yay5oLAogICBtaWJncm91cC9ocl9vdGhlci5jLCBtaWJncm91cC9ocl9wYXJ0aXRpb24uYywKICAgbWliZ3JvdXAvaHJfcGFydGl0aW9uLmgsIG1pYmdyb3VwL2hyX3ByaW50LmMsCiAgIG1pYmdyb3VwL2hyX3ByaW50LmgsIG1pYmdyb3VwL2hyX3Byb2MuYywKICAgbWliZ3JvdXAvaHJfcHJvYy5oLCBtaWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hyX3N0b3JhZ2UuaCwgbWliZ3JvdXAvaHJfc3dpbnN0LmMsCiAgIG1pYmdyb3VwL2hyX3N3aW5zdC5oLCBtaWJncm91cC9ocl9zd3J1bi5jLAogICBtaWJncm91cC9ocl9zd3J1bi5oLCBtaWJncm91cC9ocl9zeXN0ZW0uYywKICAgbWliZ3JvdXAvaHJfc3lzdGVtLmgsIG1pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvaXAuYywgbWliZ3JvdXAvbWliSUkuYywgbWliZ3JvdXAvbWliSUkuaAosIG1pYmdyb3VwL3N5c09SVGFibGUuYywgbWliZ3JvdXAvdjJwYXJ0eS5jLAogICBtaWJncm91cC92MnBhcnR5LmgsIG1pYmdyb3VwL3ZhY21fdmFycy5jLAogICBtaWJncm91cC92YWNtX3ZhcnMuaDoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgICAgaG9zdF9yZXMuaCwgaHJfZGV2aWNlLmMsIGhyX2RldmljZS5oLCBocl9kaXNrLmMsIGhyX2Rpc2suaCwKICAgICBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaCwgaHJfbmV0d29yay5jLCBocl9uZXR3b3JrLmgsIGhyX290aGVyLmMsCiAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3BhcnRpdGlvbi5oLCBocl9wcmludC5jLCBocl9wcmludC5oLCBocl9wcm9jLmMsCiAgICAgaHJfcHJvYy5oLCBocl9zdG9yYWdlLmMsIGhyX3N0b3JhZ2UuaCwgaHJfc3dpbnN0LmMsIGhyX3N3aW5zdC5oLAogICAgIGhyX3N3cnVuLmMsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5jLCBocl9zeXN0ZW0uaCwgaW50ZXJmYWNlcy5jLAogICAgIGlwLmMsIG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYywgdjJwYXJ0eS5jLCB2MnBhcnR5LmgsCiAgICAgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oKToKICAgICAtIG1hc3NpdmUgcHJvdG90eXBpbmcgYW5kIC0tV2FsbCBmaXhlcy4KICAgICAtIGZpeGVkIHRoaW5ncyBicm9rZW4gYnkgdGhlIGZyZWVic2QgcGF0Y2ggKG9ubHkgc29tZSBJJ20gc3VyZSkuCiAgIAoxOTk4LTAzLTExIDEyOjU2ICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAoYWNsb2NhbC5tNCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBpY21wLmMsCiAgICAgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBHYXJyZXR0CiAgICAgV29sbG1hbjoKICAgICAtIGZyZWVic2QgMyBzeXNjdGwgaW1wbGVtZW50YXRpb25zLgogICAKMTk5OC0wMy0xMSAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBpbnRlcmZhY2VzLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmMsIHZhcl9yb3V0ZS5oOgoKICAgLSAoaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB2YXJfcm91dGUuaCk6IFBhdGNoIGZyb20KICAgICBDcmFpZyBCZXZpbnM6CiAgICAgLSBwb3J0IHRvIE9wZW5CU0QuCiAgIAoxOTk4LTAzLTExIDEwOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYwosIHN5c3RlbS5oOgoKICAgLSAoc3lzT1JUYWJsZS5jLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCBzeXN0ZW0uaCk6CiAgICAgLSBmaXggdGltZSB2YWx1ZXMgYW5kIG1vdmUgc3lzT1JMYXN0Q2hhbmdlZCB0byB0aGUgc3lzdGVtIGdyb3VwLgogICAKMTk5OC0wMy0xMSAwOTo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocHV4LmgsIGhyX2ZpbGVzeXMuaCwgbWVtb3J5LmgKLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmgsCiAgIHN5c09SVGFibGUuaCwgdm1zdGF0Lmg6CgogICAtIChocHV4LmgsIGhyX2ZpbGVzeXMuaCwgbWVtb3J5LmgsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5oLAogICAgIHNubXBfcmlwMi5oLCBzeXNPUlRhYmxlLmgsIHZtc3RhdC5oKToKICAgICAtIGZpbmlzaCBjb252ZXJ0aW5nIGEgZmV3IG9mIHRoZSBmaWxlcyB0aGF0IE5pZWxzIG1pc3NlZC4KICAgCjE5OTgtMDMtMTEgMDg6MDYgIGhhcmRha2VyCgogICAqIG1pYnMvLmluZGV4OgoKICAgLSAobWlicy8uaW5kZXgpOiB1cGRhdGUuLi4KICAgCjE5OTgtMDMtMTEgMDg6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L2F1dG9fbmxpc3QuYywgYWdlbnQvY29tbW9uX2hlYWRlci5oLAogICBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBkLmMsCiAgIGFnZW50L21pYmdyb3VwL2FjbF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2FsYXJtLmMsCiAgIGFnZW50L21pYmdyb3VwL2FsYXJtLmgsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5oLCBhZ2VudC9taWJncm91cC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgKLCBhZ2VudC9taWJncm91cC9ocl9kZXZpY2UuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5oLAogICBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmgsIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuaCwgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5oLAogICBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaCwgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvaXAuaCwgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLAogICBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFjbV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5oLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oCiwgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMKLCBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmMKLCBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovKi8qLyopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZml4IGF1dG9fbmxpc3Qgb24gcHJlY2VlZGluZyBfIGFyY2hpdGVjdHVyZXMuCiAgICAgLSBDaGFuZ2UgKmFsbCogZGVmaW5lIHVzYWdlIHRvIG5ldyBTTk1QXyBhbmQgQVNOXyBwcmVmaXhlcy4KICAgICAtIGxlYXZlIG1pYiBhY2Nlc3Mgb3BlbiBpZiBubyBjb20yc2VjIHN0YXRlbWVudHMgd2VyZSBmb3VuZCBpbiBzbm1wZC5jb25mLgogICAKMTk5OC0wMy0wOSAxNzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJJSS5jLCBtaWJJSS5oLCBzeXNPUlRhYmxlLmMKLCBzeXNPUlRhYmxlLmgsIHN5c3RlbS5jLCB2MnBhcnR5LmMsCiAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaDoKCiAgIC0gKG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYywgdjJwYXJ0eS5jLAogICAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgLSBpbXBsZW1lbnQgc3lzT1JUYWJsZS4KICAgICAtIHJlZ2lzdGVyIG1pYnMgdW5kZXIgaXQuCiAgIAoxOTk4LTAzLTA2IDE1OjQ4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gcmVtb3ZlIHNlY3VyaXR5IHR5cGUgcHJvbXB0cy4KICAgCjE5OTgtMDMtMDYgMTU6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmg6CgogICAtIChob3N0X3Jlcy5oKTogbW92ZSBzbm1wX2FwaS5oIHVwIGFib3ZlIHNubXBfaW1wbC5oLgogICAKMTk5OC0wMy0wNiAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkuaDoKCiAgIC0gKG1pYklJLmgpOiBhZGQgdmFjbV92YXJzLgogICAKMTk5OC0wMy0wNiAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAodXRpbF9mdW5jcy5jKToKICAgICAtIHJlbW92ZSBHTE9CQUwtU0VDVVJJVFkgY2hlY2tzLgogICAKMTk5OC0wMy0wNiAxNDowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9yZWFkX2NvbmZpZy5jCiwgYWdlbnQvcmVhZF9jb25maWcuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9pY21wLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliaW5jbC5oLAogICBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuYywKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5jLAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC90Y3AuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZhY21fdmFycy5jLCBhZ2VudC9taWJncm91cC92YWNtX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYwosIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRhYmxlLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWFuL3NubXB0YWJsZS4xLCBtaWJzLy5pbmRleAosIG1pYnMvTWFrZWZpbGUuaW4sIG1pYnMvU05NUC1GUkFNRVdPUkstTUlCLnR4dCwKICAgbWlicy9TTk1QLU1QRC1NSUIudHh0LCBtaWJzL1NOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsCiAgIG1pYnMvU05NUC1QUk9YWS1NSUIudHh0LCBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQsCiAgIG1pYnMvU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsCiAgIG1pYnMvU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0LCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FjbC5oLCBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL2FzbjEuYwosIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMKLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmgKLCBzbm1wbGliL3ZpZXcuYzoKCiAgIC0gKE1ha2VmaWxlLmluLCBrZXJuZWwuYywgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5jLAogICAgIHNubXBfdmFycy5jLCBzbm1wZC5jLCBhY2xfdmFycy5jLCBhbGFybS5jLCBjb250ZXh0X3ZhcnMuYywgZGlzay5jLAogICAgIGV2ZW50LmMsIGV4dGVuc2libGUuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIG1pYmluY2wuaCwKICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCByZWdpc3RyeS5oLCByb3V0ZV93cml0ZS5jLAogICAgIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwKICAgICB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLAogICAgIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhbnNsYXRlLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLAogICAgIGlmLmMsIGluZXQuYywgcm91dGUuYywgc25tcGQuY29uZi41LmRlZiwgc25tcHRhYmxlLjEsIC5pbmRleCwKICAgICBNYWtlZmlsZS5pbiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwgU05NUC1NUEQtTUlCLnR4dCwKICAgICBTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsIFNOTVAtVEFSR0VULU1JQi50eHQsCiAgICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwKICAgICBNYWtlZmlsZS5pbiwgYWNsLmgsIGFjbF9wYXJzZS5jLCBhc24xLmMsIGNvbnRleHQuaCwgY29udGV4dF9wYXJzZS5jLAogICAgIG1pYi5jLCBwYXJ0eS5oLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywKICAgICBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywgc25tcF9pbXBsLmgsIHN5c3RlbS5jLCB2YWNtLmMsIHZhY20uaCwKICAgICB2aWV3LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gSW1wbGVtZW50IHRoZSBTTk1QdjMgVmlldyBCYXNlZCBBY2Nlc3MgQ29udHJvbCBNb2RlbCAoUkZDIDIyNzUpLgogICAgIC0gaGVhZGVyIGZpeGVzLgogICAgIC0gYmV0dGVyIGhlYWRlci1maWxlICNkZWZpbmUgbmFtZXMgdG8gaW5jbHVkZSBTTk1QXywgQVNOXywgZXRjLiBwcmVmaXhlcy4KICAgCjE5OTgtMDMtMDQgMTU6NDkgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogZG9jdW1lbnRhdGlvbiByZXF1aXJlbWVudCBjaGFuZ2UuCiAgIAoxOTk4LTAyLTI1IDA3OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBkLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGZpeCByZWFkX2NvbmZpZyBwYXJzZXIncyBlbmQgb2YgbGluZSBwcm9ibGVtcy4KICAgCjE5OTgtMDItMjAgMTE6MTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kIHRvIGxvb2sgZm9yIGFuZCBzdHJpcCAvdXNyL2xpYi8qLgogICAKMTk5OC0wMi0yMCAxMToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IGZpeCBtYWtlIGRlcGVuZCB0byBsb29rIGZvciBhbmQgc3RyaXAgL3Vzci9saWIvKi4KICAgCjE5OTgtMDItMjAgMDk6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgIC0gZml4IGluY2x1ZGUgZmlsZSBkZXBlbmRhbmNpZXMgb24gaXJpeCB3aXRoIF9LRVJORUwgZGVmaW5lZC4KICAgCjE5OTgtMDItMTggMTY6NTEgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNCApCiAgIAoxOTk4LTAyLTE4IDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk4LTAyLTE4IDE2OjMzICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKTogb3BlbmJzZCBkZWZpbmVzLgogICAKMTk5OC0wMi0xOCAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYwosIHZhcl9yb3V0ZS5jOgoKICAgLSAoYXQuYywgcHJvYy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCBic2QuaCwgYnNkaS5oLCBmcmVlYnNkLmgsCiAgICAgZ2VuZXJpYy5oLCBocHV4LmgsIG5ldGJzZC5oKToKICAgICAtIHRyaWVkIHRvIG1lcmdlIHNvbWUgdGhpbmdzIGludG8gcy8qLmggZGVmaW5lcyBpbnN0ZWFkLiAgVGhlcmUgaXMgYQogICAgICAgbG90IHRvIGdvIHN0aWxsLgogICAKMTk5OC0wMi0xOCAxNjoyOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoYWNjb25maWcuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSByZW1vdmVkIHVubmVlZGVkIHN0dWZmLgogICAgIC0gYWRkZWQgb3BlbmJzZC4KICAgCjE5OTgtMDItMTggMTQ6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IHByb3RvdHlwaW5nIGNoZWNrcy4KICAgCjE5OTgtMDItMTggMTQ6MzIgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGNoZWNrcy4KICAgCjE5OTgtMDItMTggMTQ6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWNsX3ZhcnMuYywgYXQuYywgY29udGV4dF92YXJzLmMKLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLAogICBocl9zd3J1bi5jLCBocl91dGlscy5jLCBpY21wLmMsIGludGVyZmFjZXMuYwosIGludGVyZmFjZXMuaCwgaXAuYywgbWVtb3J5LmMsCiAgIG1pYmluY2wuaCwgcGFydHlfdmFycy5jLCBwYXNzLmMsIHByb2MuYywKICAgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYwosIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsCiAgIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLCB2bXN0YXQuYzoKCiAgIC0gKGFjbF92YXJzLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX2Rpc2suYywKICAgICBocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMsCiAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbWVtb3J5LmMsIG1pYmluY2wuaCwKICAgICBwYXJ0eV92YXJzLmMsIHBhc3MuYywgcHJvYy5jLCByZWdpc3RyeS5jLCBzbXV4LmMsIHNubXBfbWliLmMsCiAgICAgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmMsIHZpZXdfdmFycy5jLAogICAgIHZtc3RhdC5jKToKICAgICAtIG1hc3NpdmUgLVdhbGwgYW5kIC0tc3RyaWN0LXByb3RvdHlwZXMgY2hlY2tpbmcuCiAgICAgLSBiemVybyAtPiBtZW1zZXQuCiAgIAoxOTk4LTAyLTE4IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGV4YW1wbGUuYywgaHB1eC5jLAogICBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsCiAgIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jCiwgaXAuYywgcGFzcy5jLCByZWdpc3RyeS5jLCBzbXV4LmMKLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jCiwgdmFyX3JvdXRlLmMsIHdvbWJhdC5jOgoKICAgLSAoYXQuYywgZXhhbXBsZS5jLCBocHV4LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgIHBhc3MuYywgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLAogICAgIHZhcl9yb3V0ZS5jLCB3b21iYXQuYyk6CiAgICAgLSBhbGwgYmNvcHlzIC0+IG1lbWNweS4KICAgICAtIGluY2x1ZGUgYSBmZXcgZXh0cmEgaGVhZGVycyBmb3IgREVCVUdQIHN0YXRlbWVudHMuCiAgIAoxOTk4LTAyLTE4IDEzOjM0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBhdXRodHJhcHNlbmFibGUgLT4gYXV0aHRyYXBlbmFibGUuCiAgIAoxOTk4LTAyLTE4IDEzOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKGRpc2suaCwgZXh0ZW5zaWJsZS5oLCBsb2FkYXZlLmgsIHByb2MuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSB0dXJuIHRoZXNlIG1pYnMgaW50byByZWFsIHRhYmxlcy4gIFJlcXVpcmVkIGNoYW5naW5nIHRoZSBtaWIgdGhvdWdoLgogICAKMTk5OC0wMi0xOCAxMTo0NiAgaGFyZGFrZXIKCiAgICogbWFuLzogc25tcGQuMS5kZWYsIHNubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZik6IGNoYW5nZSB0byBEQVRBRElSIGZyb20gTElCRElSLgogICAKMTk5OC0wMi0xOCAxMTo0NSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgLSAoc2Vkc2NyaXB0LmluKTogZGVmaW5lIExJQkRJUiBhbmQgREFUQURJUi4KICAgCjE5OTgtMDItMTggMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgIGlwLmMsIHRjcC5jLCB1ZHAuYzoKCiAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIGlyaXguaCk6CiAgICAgUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgLSBwb3J0IHRvIGlyaXguCiAgIAoxOTk4LTAyLTE4IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hdXRvX25saXN0LmM6CgogICAtIChhdXRvX25saXN0LmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIGZpeCBhIGRlYnVnZ2luZyBzdGF0ZW1lbnQgKG1pc3NpbmcgYSB2YXJpYWJsZSkuCiAgIAoxOTk4LTAyLTE4IDA4OjE1ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbjoKICAgICAtIGNoZWNrIGZvciBzeXMvc3lzbXAuaC4KICAgCjE5OTgtMDItMTggMDg6MDUgIGhhcmRha2VyCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwgYWdlbnQvbWliZ3JvdXAvdm1zdGF0LmMsCiAgIGFnZW50L21pYmdyb3VwL3Ztc3RhdC5oOgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgdm1zdGF0LmMsIHZtc3RhdC5oLCB1Y2Rfc25tcC5oLAogICAgIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEx1dWsgZGUgQm9lcjoKICAgICAtIGltcGxtZW50IGEgdm1zdGF0IG1pYiBncm91cCBvbiBsaW51eC4KICAgCjE5OTgtMDItMTcgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogdGNwLmMsIHVkcC5jOgoKICAgLSAodGNwLmMsIHVkcC5jKToKICAgICAtIG5saXN0IHN5bWJvbCBuYW1lIGVycm9ycy4KICAgCjE5OTgtMDItMTcgMDk6NTMgIGhhcmRha2VyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jLCBhdXRvbmxpc3QuaCwgc25tcF92YXJzLmMKOgoKICAgLSAoYXV0b19ubGlzdC5jLCBhdXRvbmxpc3QuaCwgc25tcF92YXJzLmMpOgogICAgIC0gdXNlIGFwcHJvcHJpYXRlIG1hbGxvY3MsIGFuZCBOVUxMIGluaXRpYWxpemF0aW9uIG9mIHBvaW50ZXJzLgogICAgIC0gbWFsbG9jIHRoZSBzeW1ib2wgcmF0aGVyIHRoYW4gdXNpbmcgYSBmaXhlZCBsZW5ndGguCiAgICAgLSBpbnNlcnQgZGVidWdnaW5nIGNvZGUuCiAgICAgLSBlbmFibGUgcHJpbnRpbmcgb2YgdGhlIG5saXN0IHRyZWUgaWYgVEVTVElORyBpcyBkZWZpbmVkLgogICAKMTk5OC0wMi0xNyAwOTo1MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAtIHVzZSBzbm1wX2lwYWRkciBpbnN0ZWFkIG9mIGlwYWRkciB0byBhdm9pZCBocHV4IGNvbmZsaWN0cy4KICAgCjE5OTgtMDItMTMgMDk6MDcgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHR5cG86IGF1dGh0cmFwc2VuYWJsZSAtPiBhdXRodHJhcGVuYWJsZS4KICAgCjE5OTgtMDItMTEgMTY6NDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBzZWQgZG9lc24ndCBsaWtlIFthLXpdKyB0eXBlIGV4cHJlc3Npb25zLgogICAKMTk5OC0wMi0xMSAwOToyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jOgoKICAgLSAoaHJfbmV0d29yay5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIHNvbGFyaXMgZml4ZXMuCiAgIAoxOTk4LTAyLTExIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBkb24ndCBpbmNsdWRlIGNvbmZpZy5oCiAgIAoxOTk4LTAyLTExIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHBzIGF1eCBzaG91bGQgZGVmaW5lIGF1eCBub3QgLWF1eC4KICAgCjE5OTgtMDItMTEgMDk6MTkgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvaHJfcHJvYy5jLAogICBtaWJncm91cC9ocl9zdG9yYWdlLmMsIG1pYmdyb3VwL21lbW9yeS5jLAogICBtaWJncm91cC90Y3AuYywgbWliZ3JvdXAvdWRwLmMsIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYXV0b19ubGlzdC5jOgoKICAgLSAoZ2VuZXJpYy5oLCBhdXRvX25saXN0LmMsIGF0LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBtZW1vcnkuYywKICAgICB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGZpeCBhbGwgbXkgdHlwb3MgOy0pLgogICAgIC0gY3JlYXRlIGF1dG9fbmxpc3RfdmFsdWUgdG8gcmV0dXJuIHRoZSBsb29rZWQtdXAgdmFsdWUuCiAgIAoxOTk4LTAyLTA5IDExOjE5ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBpb2N0bHMuaC4KICAgCjE5OTgtMDItMDkgMTE6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGludGVyZmFjZXMuYyk6ICBpbmNsdWRlIGlvY3Rscy5oIGlmIGF2YWlsYWJsZS4KICAgCjE5OTgtMDItMDkgMTE6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBpb2N0bHMuaAogICAKMTk5OC0wMi0wOSAxMToxNyAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUzICkKICAgCjE5OTgtMDItMDkgMTE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZml4IHByb3RvdHlwZXMgb24gbXkgYnJva2VuIHRhYmxlIHdhbGtpbmcgcm91dGluZXMuCiAgIAoxOTk4LTAyLTA5IDExOjAzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIGNoYW5nZWQgLS13aXRoLXNoYXJlZC1saWJyYXJpZXMgdG8gLS1lbmFibGUtc2hhcmVkIHRvIG1hdGNoIG90aGVyIHBrZ3MuCiAgICAgLSBkaXNwbGF5IGFyZ3VtZW50cyBmb3VuZCBmb3IgLS1lbmFibGUtc2hhcmVkLgogICAKMTk5OC0wMi0wOSAxMTowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYXV0b19ubGlzdC5oOgoKICAgLSAoYXV0b19ubGlzdC5oKTogcHJvdG90eXBlIHdyYXBwZXIuCiAgIAoxOTk4LTAyLTA5IDExOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGRpc2suYywgZXJyb3JtaWIuYywKICAgZXh0ZW5zaWJsZS5jLCBocHV4LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jCiwgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywKICAgaW50ZXJmYWNlcy5jLCBpcC5jLCBrZXJuZWxfc3Vub3M1LmMsIGxvYWRhdmUuYwosIG1lbW9yeS5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywKICAgdmFyX3JvdXRlLmM6CgogICAtIChhdC5jLCBkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgaHB1eC5jLCBocl9wcm9jLmMsCiAgICAgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgICAga2VybmVsX3N1bm9zNS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLCBwcm9jLmMsIHRjcC5jLCB1ZHAuYywKICAgICB2YXJfcm91dGUuYyk6CiAgICAgLSB1c2UgYXV0b19ubGlzdC4KICAgCjE5OTgtMDItMDYgMTc6MTAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9hdXRvX25saXN0LmMsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvYXV0b25saXN0LmgsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wX3ZhcnMuYwosIGFnZW50L21pYmdyb3VwL2lwLmM6CgogICAtIChNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICAgIGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oLCBhdXRvbmxpc3QuaCwga2VybmVsLmMsIHNubXBfdmFycy5jLCBpcC5jKToKICAgICAtIGNyZWF0ZWQgYSBuZXcgYXV0b19ubGlzdCBmdW5jdGlvbiBhbmQgdXNlIGl0IGluIGlwLmMuCiAgIAoxOTk4LTAyLTA2IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9kaXNrLmM6CgogICAtIChocl9kaXNrLmMpOiBjbG9zZSgpIGdvdCBjYXVnaHQgaW5zaWRlIGFuIGVsc2UgaXQgc2hvdWxkbid0IGhhdmUgZHVlCiAgICAgdG8gYW4gaWZkZWYgZXJyb3IuCiAgIAoxOTk4LTAyLTA2IDEzOjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICBpcC5jLCB0Y3AuYywgdWRwLmM6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKTogcHJvdGVjdCBhZ2FpbnN0IG5saXN0LmgKICAgCjE5OTgtMDItMDIgMDg6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaG4gSGF3a2luc29uOgogICAgIC0gZml4IHR5cG8gaW4gY29uZmlndXJlIGZvciBzaGFyZWQgbGlicmFyeSBleHRlbnNpb24gdy9vIHNoYXJlZCBsaWJyYXJpZXMuCiAgIAoxOTk4LTAxLTMwIDE1OjI1ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmM6CgogICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXAuYyk6IGZpeCBkZWZhdWx0IHBvcnQgZm9yIHNubXB0cmFwLgogICAKMTk5OC0wMS0zMCAxNDozMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogZmluaXNoIGxpbnV4IHByb2JsZW1zIGFuZCB1c2UgaWZfc3BlZWQuCiAgIAoxOTk4LTAxLTMwIDE0OjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgaWZfc3BlZWQuCiAgIAoxOTk4LTAxLTMwIDEzOjUwICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICAtIChhY2xvY2FsLm00LCBjb25maWd1cmUpOiBkZWZpbmUgaWZuZXQgZm9yIGxpbnV4LgogICAKMTk5OC0wMS0zMCAxMzo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogSSBjYW4ndCByZWFsbHkgaGF2ZSBmb3Jnb3R0ZW4gU2ltb24ncyBuYW1lIGluIHRoZSBsaXN0CiAgICAgY291bGQgST8KICAgCjE5OTgtMDEtMzAgMTA6NTUgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMiApCiAgIAoxOTk4LTAxLTMwIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgsCiAgIGFnZW50L21pYmdyb3VwL3Bhc3MuYywgYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKGRpc2suYywgaG9zdF9yZXMuaCwgcGFzcy5jLCByZWdpc3RyeS5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywKICAgICB2ZXJzaW9uaW5mby5jLCBzbm1wX2FwaS5oKToKICAgICAtIGluY2x1ZGUgbmV0aW5ldC9pbi5oIGZvciBhZGRyZXNzIHN0cnVjdHVyZS4KICAgCjE5OTgtMDEtMzAgMTA6NDMgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2UgbW9kdWxlIGluZGV4aW5nIHRvIHVzZSBvaWQgaW5zdGVhZCBvZiBhIG51bWVyaWMuCiAgIAoxOTk4LTAxLTMwIDEwOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5Lmg6CgogICAtIChyZWdpc3RyeS5jLCByZWdpc3RyeS5oKTogYmVnaW4gbXVuZ2luZyBmb3IgbmV3IGhpZXJhcmNoeS4KICAgCjE5OTgtMDEtMzAgMTA6NDEgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgpOgogICAgIC0gbWVyZ2UgRGF2ZSdzIGNvZGUgd2l0aCBtaW5lLiAgU3RpbGwgYSBmZXcgYnVncyB0byB3b3JrIHRocm91Z2guCiAgIAoxOTk4LTAxLTMwIDEwOjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9wYXNzLmM6CgogICAtIChwYXNzLmMpOiBwdXQgcGFzc19jb21hcHJlIGhlcmUuCiAgIAoxOTk4LTAxLTMwIDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYywgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gTHV1ayBkZSBCb2VyOgogICAgIC0gcmVwb3J0IGNhY2hlZCwgYnVmZmVyLCBhbmQgc2hhcmVkIHN0YXRpc3RpY3MgZm9yIGxpbnV4LgogICAKMTk5OC0wMS0zMCAwODo1NyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHRlc3QgZm9yICdwcyBhdXgnIChyZWRoYXQgNS4wKS4KICAgCjE5OTgtMDEtMjMgMTY6MzQgIGhhcmRha2VyCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmMsCiAgIGFnZW50L21pYmdyb3VwL3JlZ2lzdHJ5LmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvdmFyX3N0cnVjdC5oLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCB2YXJfc3RydWN0LmgsCiAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgIC0gbWFrZSB0aGUgbWliIHJlZ2lzdHJ5IHJlY29yZCBhbmQgZGlzcGxheSBhIG1pYiBtb2R1bGUgbmFtZSBhcyB3ZWxsLgogICAKMTk5OC0wMS0yMyAxNjoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsCiAgIGhyX290aGVyLmgsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVjZF9zbm1wLmgsCiAgIHVkcC5jLCB2ZXJzaW9uaW5mby5jOgoKICAgLSAoYXQuYywgZGlzay5jLCBob3N0X3Jlcy5oLCBocl9vdGhlci5oLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVjZF9zbm1wLmgsIHVkcC5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAtICNpbmNsdWRlICJzbm1wX2FwaS5oIgogICAKMTk5OC0wMS0yMyAxNjoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvcmVnaXN0cnkuYywgbWlicy9VQ0QtU05NUC1NSUIudHh0LAogICBhZ2VudC9taWJncm91cC9yZWdpc3RyeS5oOgoKICAgLSAocmVnaXN0cnkuW2NoXSwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgLSBjcmVhdGUgYSBuZXcgdGFibGUgYXQgdWNkYXZpcy4xMDMgdG8gZGlzcGxheSByZWdpc3RlcmVkIG1pYnMuCiAgIAoxOTk4LTAxLTIzIDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2V4dGVuc2libGUuYywgcmVhZF9jb25maWcuYywKICAgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLAogICBtaWJncm91cC9wYXNzLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgICAgZXh0ZW5zaWJsZS5jLCBwYXNzLmMpOgogICAgIC0gY3JlYXRlIG5ldyBmdW5jdGlvbnM6CiAgICAgICAtIHJlZ2lzdGVyX3N1YnRyZWUoKQogICAgICAgLSByZWdpc3Rlcl9taWIoKQogICAgICAgLSB1bnJlZ2lzdGVyX21pYigpLgogICAgIC0gZ2V0IHJpZCBvZiByZWFkX2NvbmZpZyBzcGVjaWFsIHN0dWZmIGZvciBleHRlbnNpYmlsaXR5IGFuZCBwdXQgaXQKICAgICAgIGluIHRoZWlyIG93biBzdWJtb2R1bGVzIHdoaWNoIG5vdyBjYWxsIHJlZ2lzdGVyX21pYigpLgogICAKMTk5OC0wMS0yMyAwODozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmM6CgogICAtIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb24ndCBjbG9zZSBmaWxlIGRlc2NyaXB0b3IgaW4gbGludXgncyBGSUxFX1RPX0JVRiBtYWNyby4KICAgCjE5OTgtMDEtMjEgMjI6MDUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBjcmVhdGUgbS8gYW5kIHMvIGRpcmVjdG9yaWVzIGFuZCB1c2UgdGhlbSBmb3Igc3VwcGxlbWVudGFsIGNvbmZpZwogICAgICAgaW5jbHVkZSBmaWxlcyBiYXNlZCBvbiB0aGUgY29uZmlnLmd1ZXNzIG91dHB1dC4KICAgCjE5OTgtMDEtMjEgMTc6MzIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcCwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgKi9NYWtlZmlsZS5pbik6CiAgICAgLSBEbyBhIGJldHRlciB2ZXJzaW9uIG9mIHNobGliIHN1cHBvcnQuICBTaG91bGQgYmUgdXNlYWJsZSBub3cgYXQgbGVhc3QuCiAgIAoxOTk4LTAxLTIxIDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGRpc2suYywgZXJyb3JtaWIuYywgZXh0ZW5zaWJsZS5jCiwgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLAogICBwYXNzLmMsIHByb2MuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywKICAgdmFyX3JvdXRlLmMsIHZlcnNpb25pbmZvLmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsCiAgICAgbWVtb3J5LmMsIHBhc3MuYywgcHJvYy5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLCB2YXJfcm91dGUuYywKICAgICB2ZXJzaW9uaW5mby5jKToKICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KICAgCjE5OTgtMDEtMjEgMTE6MTIgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYwosIHNubXBkLmM6CgogICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKToKICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KICAgCjE5OTgtMDEtMjEgMTE6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICAgIGNvbmZpZ3VyZS5pbik6CiAgICAgLSBiZWdpbiBzdXBwb3J0IGZvciBjcmVhdGluZyBhbmQgdXNpbmcgc2hhcmVkIGxpYnJhcmllcy4KICAgICAtIGFsbCBNYWtlZmlsZXMgbm93IGluY2x1ZGUgYSBNYWtlZmlsZS50b3AgZm9yIGVhc2llciBmdXR1cmUgZ2xvYmFsIGNoYW5nZXMuCiAgIAoxOTk4LTAxLTIxIDExOjA4ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgLSAoQ09QWUlORyk6IHVwZGF0ZS4KICAgCjE5OTgtMDEtMTYgMDk6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBTaGVzaGFkcmkgWWFnYXRpOgogICAgIC0gc2lnbmFsIGEgdHJhcCAoMikgd2hlbiB0aGUgYWdlbnQgaXMgc2h1dCBkb3duLgogICAKMTk5OC0wMS0xMiAwOTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGluY3JlYXNlIGJ1ZmZlciBzaXplIHRvIGluY3JlYXNlIG1heCBpbnRlcmZhY2VzIHJlcG9ydGVkIG9uIFNvbGFyaXMuCiAgIAoxOTk4LTAxLTEyIDA5OjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogVW5kaWQgYW5vbi1jaGlsZHJlbiBjaGFuZ2UuCiAgIAoxOTk4LTAxLTEyIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogYXNuMS5jLCBtaWIuYywgc25tcF9hcGkuaCwKICAgc25tcF9pbXBsLmgsIHN5c3RlbS5oOgoKICAgLSAoYXNuMS5jLCBtaWIuYywgc25tcF9hcGkuaCwgc25tcF9pbXBsLmgsIHN5c3RlbS5oKTogUGF0Y2ggZnJvbSBOaWVscwogICAgIEJhZ2dlc2VuOgogICAgIC0gaGVhZGVyIGNoYW5nZXMgYW5kIGJvb2xlYW4gY2hlY2sgY29ycmVjdGlvbnMuCiAgIAoxOTk4LTAxLTEyIDA5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jCjoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGhlYWRlciBmaXhlcy4KICAgICAtIHNubXBfcGVycm9yIHVzYWdlLgogICAKMTk5OC0wMS0xMiAwOTo0MCAgaGFyZGFrZXIKCiAgICogRkFRLCBJTlNUQUxMLCBNYWtlZmlsZS5pbjoKCiAgIC0gKEZBUSwgSU5TVEFMTCwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gRG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gZml4IHBhdGhzIGZyb20gcmVjZW50IGNoYW5nZXMuCiAgIAoxOTk4LTAxLTEyIDA5OjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGFsYXJtLmMsIGF0LmMsIGNvbnRleHRfdmFycy5jCiwgZXZlbnQuYywgaHJfZGV2aWNlLmMsIGhyX2ZpbGVzeXMuYywKICAgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsCiAgIGhyX3N3cnVuLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBwcm9jLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsCiAgIHZhcl9yb3V0ZS5jOgoKICAgLSAoYWxhcm0uYywgYXQuYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsIGhyX2RldmljZS5jLCBocl9maWxlc3lzLmMsCiAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGljbXAuYywKICAgICBpbnRlcmZhY2VzLmMsIGlwLmMsIHByb2MuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBGaXggaGVhZGVycyBmb3IgRnJlZUJTRCBhbmQgTmV0QlNELgogICAKMTk5OC0wMS0xMiAwOToxOSAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMKLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywKICAgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywKICAgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsIHNubXB3YWxrLmM6CgogICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0YWJsZS5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLAogICAgIHNubXB0cmFwZC5jLCBzbm1wd2Fsay5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHJlbW92ZSB1bnVzZWQgaGVhZGVycy4KICAgICAtIHNubXBfcGVycm9yIGNoYW5nZXMuCiAgIAoxOTk4LTAxLTEyIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBsaW5rIGRpcmVjdGx5IHRvIGxpYi4KICAgCjE5OTgtMDEtMTIgMDk6MTggIGhhcmRha2VyCgogICAqIG1hbi86IG1pYl9hcGkuMywgc25tcF9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMywgc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2MgdXBkYXRlIHRvIHJlZmxlY3QgbW92ZWQgaGVhZGVycy4KICAgCjE5OTgtMDEtMTIgMDk6MTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgZml4IGFub25fY2hpbGRyZW4gaW52YWxpZCBtZW1vcnkgYWNjZXNzLgogICAKMTk5OC0wMS0wNSAxNzozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHN3YXAgYXJncyB0byBtZXJnZV9hbm9uX2NoaWxkcmVuKCkuCiAgIAoxOTk4LTAxLTA1IDE2OjI5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBmaXggYXNuMV9idWlsZF9vYmppZC4KICAgCjE5OTgtMDEtMDUgMTM6MjggIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKTogc25tcHYzCiAgIAoxOTk4LTAxLTA1IDEzOjI4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IHB1dCBpbml0X21pYiBiYWNrIGluIHBsYWNlIChvcHBzKS4KICAgCjE5OTgtMDEtMDUgMTM6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYywgcGFyc2UuaDoKCiAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogYWRkIGEgZmluZF9tb2R1bGUoKSByb3V0aW5lLgogICAKMTk5OC0wMS0wNSAxMzoyNyAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IGNoYW5nZSAiYWxsIiB0byAiQUxMIi4KICAgCjE5OTctMTItMzAgMTc6MDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBDcmVhdGUgYSBncmFwaGluZyB3aWRnZXQuCiAgIAoxOTk3LTEyLTMwIDE0OjAwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gKHRrbWliKToKICAgICAtIG5ldyBjb21tYW5kOiB0YWJsZSB0byBkaXNwbGF5IHNubXB0YWJsZXMgYXMgYSB0YWJsZS4KICAgICAtIG1pc2MuLi4KICAgCjE5OTctMTItMjkgMDk6MzcgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgLSAodGttaWIpOiBGaXJzdCBpbXBsZW1lbnRhdGlvbi4KICAgCjE5OTctMTItMjMgMTY6MzAgIGhhcmRha2VyCgogICAqIHZlcnNpb24uaCwgc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMSApCiAgIAoxOTk3LTEyLTIzIDE1OjU5ICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogQ3JlYXRlIGEgbWliIHZhcmlhYmxlIHRvIHNldC9yZXBvcnQgaWYgZGVidWdnaW5nCiAgICAgaXMgb24gb3Igb2ZmLgogICAKMTk5Ny0xMi0yMyAxNTo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oOgoKICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IENyZWF0ZSBhIG1pYiB2YXJpYWJsZSB0byBzZXQvcmVwb3J0CiAgICAgaWYgZGVidWdnaW5nIGlzIG9uIG9yIG9mZi4KICAgCjE5OTctMTItMjMgMTU6MjcgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvYXQuYywgbWliZ3JvdXAvYXQuaCwKICAgbWliZ3JvdXAvaG9zdF9yZXMuaCwgbWliZ3JvdXAvaWNtcC5oLAogICBtaWJncm91cC9pbnRlcmZhY2VzLmMsIG1pYmdyb3VwL2ludGVyZmFjZXMuaCwKICAgbWliZ3JvdXAvaXAuaCwgbWliZ3JvdXAvdGNwLmMsIG1pYmdyb3VwL3RjcC5oLAogICBtaWJncm91cC91ZHAuYywgbWliZ3JvdXAvdWRwLmgsIHJlYWRfY29uZmlnLmMsCiAgIHNubXBfdmFycy5jOgoKICAgLSAoYXQuYywgYXQuaCwgaG9zdF9yZXMuaCwgaWNtcC5oLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuaCwKICAgICB0Y3AuYywgdGNwLmgsIHVkcC5jLCB1ZHAuaCwgcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOgogICAgIC0gY2xlYW4gdXAgcmVxdWlyZWQgaGVhZGVycyBmb3IgbGludXguCiAgIAoxOTk3LTEyLTIzIDE0OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2F0LmMsIG1pYmdyb3VwL2ljbXAuYywKICAgbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBtaWJncm91cC9pcC5jLAogICBtaWJncm91cC9zbm1wX21pYi5jLCBtaWJncm91cC9zeXN0ZW0uYywgbWliZ3JvdXAvdGNwLmMKLCBtaWJncm91cC91ZHAuYywgcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMKOgoKICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byBicmVhayB1cCBjb21tb25faGVhZGVyLmguCiAgIAoxOTk3LTEyLTIzIDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcHRyYXBkLjg6CgogICAtIChzbm1wZC4xLmRlZiwgc25tcHRyYXBkLjgpOiBkZWJ1Z2dpbmcgZmxhZyBhZGRpdGlvbnMuCiAgIAoxOTk3LTEyLTIzIDE0OjQyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jLAogICBhZ2VudC9taWJncm91cC9ocHV4LmMsIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uYwosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuYwosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3dpbnN0LmMsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9taWJncm91cC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvc211eC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX2JncC5jLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX29zcGYuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9yaXAyLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBkZWx0YS5jLCBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jCiwgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLAogICBhcHBzL3NubXB0YWJsZS5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoKik6IFR1cm4gYWxsIGRlYnVnZ2luZyByb3V0aW5lcyBpbnRvIGxpYnJhcnkgY2FsbHMgdGhhdCBjYW4gYmUKICAgICB0dXJuZWQgb24gYW5kIG9mZiBhdCBydW4gdGltZS4KICAgICAtIERFQlVHUCgpIGlzIG5vdyBhIHR5cGljYWwgcHJpbnRmIHN0eWxlIGZ1bmN0aW9uIGFuZCBpcyB1c2VkIGV2ZXJ5d2hlcmUuCiAgICAgLSB2b2lkIHNubXBfc2V0X2RvX2RlYnVnZ2luZyhpbnQpLgogICAgIC0gaW50IHNubXBfZ2V0X2RvX2RlYnVnZ2luZygpLgogICAKMTk5Ny0xMi0yMyAxNDo0MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogQWRkIFRlZCBSdWxlIHRvIGNvZGVycyBsaXN0LgogICAKMTk5Ny0xMi0yMyAxMjo0OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKToKICAgICAtIENoYW5nZSAtZiBmbGFnIHRvIC1sIGFuZCBtYWtlIC1mIG5vLWZvcmsuCiAgICAgLSBmaXggcGF0Y2ggd2hpY2ggbXVuZ2VkIGFiaWxpdHkgdG8gZ2VuZXJhdGUgYm90aCAtUCBhbmQgLXMgc2ltdWx0YW5lb3VzbHkuCiAgIAoxOTk3LTEyLTIzIDEyOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIFRlZCBSdWxlOgogICAgIC0gVXNlIHN5c2xvZyBvcHRpb24gTE9HX1BJRCBvbiBzdGFydHVwLgogICAgIC0gZm9yayBpZiBzeXNsb2cgZW5hYmxlZC4KICAgICAtIEVuYWJsZSBsb2dnaW5nIHRvIG90aGVyIHN5c2xvZyBmYWNpbGl0aWVzLgogICAgIC0gcHJpbnQgYWxsIHRyYXAgZGF0YSB0byBhIHNpbmdsZSBzeXNsb2cgbGluZS4KICAgCjE5OTctMTItMjMgMTE6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hwdXguYzoKCiAgIC0gKGhwdXguYyk6ICNpZmRlZidlZCBvdXQgdW51c2VkIHdyaXRlSFAgZnVuY3Rpb24uCiAgIAoxOTk3LTEyLTIzIDExOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjQyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChzbm1wdHJhcC5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KICAgCjE5OTctMTItMjMgMTE6NDIgIGhhcmRha2VyCgogICAqIGFnZW50LzogbWliZ3JvdXAvZGlzay5jLCBtaWJncm91cC9lcnJvcm1pYi5jLAogICBtaWJncm91cC9leHRlbnNpYmxlLmMsIG1pYmdyb3VwL2hyX2ZpbGVzeXMuYywKICAgbWliZ3JvdXAvaHJfcHJvYy5jLCBtaWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hyX3N3cnVuLmMsIG1pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBtaWJncm91cC9sb2FkYXZlLmMsIG1pYmdyb3VwL21lbW9yeS5jLAogICBjb21tb25faGVhZGVyLmg6CgogICAtIChtaWJncm91cC8qLmMsIGNvbW1vbl9oZWFkZXIuaCk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCiAgIAoxOTk3LTEyLTIzIDExOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgogICAKMTk5Ny0xMi0yMyAxMTozNSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHNlZHNjcmlwdC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4pOiBCU0RJIGRlZmluaXRpb24gZml4ZXMuCiAgIAoxOTk3LTEyLTIzIDExOjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmM6CgogICAtIChocl9maWxlc3lzLmMpOiBTb2xhcmlzIHNwZWNpZmljIGZpeGVzLgogICAKMTk5Ny0xMi0yMyAxMToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBDb3JyZWN0IGEgbm9uLWNhc3RlZCBtYWxsb2MuCiAgIAoxOTk3LTEyLTE1IDE1OjA3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoVUNELWZpZWxkcywgb2lkX3RvX3N5bS5pbiwgb2lkX3RvX3R5cGUuaW4sIHNubXBfcGFyc2VfYXJncy5jLCBhY2NvbmZpZy5oKToKICAgICAtIFBhdGNoIGZyb20gVEFOQUtBIFRha2FzaGk6CiAgICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgICAgLSBkb24ndCBjb3JlIGR1bXAgb24gLXYgd2l0aG91dCBhbnkgYXJndW1lbnRzLgogICAKMTk5Ny0xMi0xNSAxNTowNyAgaGFyZGFrZXIKCiAgICogb3YvOiBVQ0QtZmllbGRzLCBvaWRfdG9fc3ltLmluLCBvaWRfdG9fdHlwZS5pbjoKCiAgIC0gKFVDRC1maWVsZHMsIG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluKTogUGF0Y2ggZnJvbSBUQU5BS0EgVGFrYXNoaToKICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAtIG1pc3Rha2U6ICBic2RpIHdhcyBnZXR0aW5nIGRlZmluZWQgYXMgaXJpeC4KICAgICAtIGRvbid0IGNvcmUgZHVtcCBvbiAtdiB3aXRob3V0IGFueSBhcmd1bWVudHMuCiAgIAoxOTk3LTEyLTE1IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYmdyb3VwL2F0LmMsIG1pYmdyb3VwL2V4YW1wbGUuYywKICAgbWliZ3JvdXAvaHJfcHJvYy5jLCBtaWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIG1pYmdyb3VwL2hyX3N3cnVuLmMsIG1pYmdyb3VwL2hyX3N5c3RlbS5jLAogICBtaWJncm91cC9pY21wLmMsIG1pYmdyb3VwL2ludGVyZmFjZXMuYywKICAgbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBtaWJncm91cC9pcC5jLAogICBtaWJncm91cC9sb2FkYXZlLmMsIG1pYmdyb3VwL21lbW9yeS5jLAogICBtaWJncm91cC9yb3V0ZV93cml0ZS5jLCBtaWJncm91cC90Y3AuYywgbWliZ3JvdXAvdWRwLmMKLCBtaWJncm91cC92YXJfcm91dGUuYywgbWliZ3JvdXAvd29tYmF0LmMsCiAgIGNvbW1vbl9oZWFkZXIuaDoKCiAgIC0gKGF0LmMsIGV4YW1wbGUuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpbnRlcmZhY2VzLmgsIGlwLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsCiAgICAgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMsIGNvbW1vbl9oZWFkZXIuaCk6CiAgICAgLSBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbiB0byBpbXByb3ZlIGlyaXggNi4yIHN1cHBvcnQuCiAgIAoxOTk3LTEyLTE1IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QuaCwgdWNkX3NubXAuaCwgdjJwYXJ0eS5oOgoKICAgLSAoaG9zdC5oLCB1Y2Rfc25tcC5oLCB2MnBhcnR5LmgpOgogICAgIC0gdXNlIGNvbmZpZ19hZGRfbWliKCkuCiAgIAoxOTk3LTEyLTE1IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgIC0gbmV3IG1hY3JvIHRvIGNoYW5nZSBkZWZhdWx0IE1JQlMgd2hlbiBtb2R1bGVzIGFyZSBjb21waWxlZDoKICAgICAgIGNvbmZpZ19hZGRfbWliKCkuCiAgIAoxOTk3LTEyLTA1IDE0OjMwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBpbnN0ZWFkIG9mIGVycm9yIGZvciBjb25maWdfcmVxdWlyZSBtYWNybydzLgogICAKMTk5Ny0xMi0wNSAxMTo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsCiAgIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHRhYmxlLmMsCiAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB3YWxrLmM6CgogICAtIChhcHBzLyouYyk6IHN1cHBvcnQgcmFuZG9tIGFjY2VzcyByZXF1ZXN0cyBvbiBhbGwgYXBwcyB2aWEgLVIgc3dpdGNoLgogICAKMTk5Ny0xMi0wNSAwODo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBtYWtlIHRyYXAgdmFyaWFibGVzIGxvbmcncyBub3QgaW50cyBmb3IgNjRiaXQgbWFjaGluZXMgdG8gbWF0Y2gKICAgICAgIGFzbl9idWlsZF9pbnQgZnVuY3Rpb25zLgogICAKMTk5Ny0xMi0wMSAxMjo0NCAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgogICAKMTk5Ny0xMi0wMSAxMjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhcGQuYywgbWFuL3NubXBfYXBpLjMKLCBtaWJzL1JGQzEyNzEtTUlCLnR4dCwgc25tcGxpYi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgogICAKMTk5Ny0xMi0wMSAxMjozMiAgaGFyZGFrZXIKCiAgICogRkFRLCBJTlNUQUxMLCBORVdTLCBSRUFETUUsCiAgIGFjY29uZmlnLmgsIGJ1Zy1yZXBvcnQsIGNvbmZpZy5oLmluLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oCiwgYWdlbnQvbWliZ3JvdXAvaHJfZGlzay5jLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMKLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmMKLCBhZ2VudC9taWJncm91cC9ocl91dGlscy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmMKLCBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgogICAKMTk5Ny0xMS0xNyAwODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBwYXJ0eV92YXJzLmMgKEV4dC0zLTMtcGF0Y2hlcy4xKSwgcGFydHlfdmFycy5jCjoKCiAgIC0gKHBhcnR5X3ZhcnMuYyk6IHVzZSBzdHJpbmdzLmggZGVmaW5lIG5vdCBzdHJpbmcuaC4KICAgCjE5OTctMTEtMTQgMTI6MzYgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMgKQogICAKMTk5Ny0xMS0xNCAxMjozNiAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogdmVyc2lvbiB1cGRhdGUuCiAgIAoxOTk3LTExLTE0IDEyOjM1ICBoYXJkYWtlcgoKICAgKiBGQVEsIE5FV1MsIFJFQURNRToKCiAgIC0gKEZBUSwgTkVXUywgUkVBRE1FKTogbGFzdCBkb2N1bWVudGF0aW9uIHVwZGF0ZXMuCiAgIAoxOTk3LTExLTE0IDEyOjIxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC93b21iYXQuYzoKCiAgIC0gKHdvbWJhdC5jKTogcXVpY2sgZG9jIGNoYW5nZS4KICAgCjE5OTctMTEtMTQgMDg6MzIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IGNvZGVyIGxpc3QgdXBkYXRlLgogICAKMTk5Ny0xMS0xNCAwODozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvd29tYmF0LmM6CgogICAtICh3b21iYXQuYyk6IGNvZGUgY29tbWVudHMgZnJvbSBBbGFuIEJhdGllLgogICAKMTk5Ny0xMS0xMiAyMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC92YXJfcm91dGUuYywgcmVhZF9jb25maWcuYzoKCiAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogU1REQyB0eXBvcy4KICAgCjE5OTctMTEtMTIgMjA6NDMgIGhhcmRha2VyCgogICAqIGFnZW50LzogcmVhZF9jb25maWcuYywgbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtICh2YXJfcm91dGUuYywgcmVhZF9jb25maWcuYyk6IGZpeCBxc29ydCBwYXJhbXMgZm9yIFNUREMuCiAgIAoxOTk3LTExLTEyIDIwOjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvcmVhZF9jb25maWcuYywKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gRGF2aWQgWmltbWVybWFuOgogICAgIC0gRml4ZXMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMjA6MzUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAtICgpOiBQYXRjaCBmcm9tIERhdmlkIFppbW1lcm1hbjoKICAgICAtIEZpeGVzIGZvciBBSVguCiAgIAoxOTk3LTExLTEyIDIwOjI3ICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIC0gKHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBmdW5jdGlvbiBjaGFuZ2VzLgogICAKMTk5Ny0xMS0xMiAxNjowNSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxMSApCiAgIAoxOTk3LTExLTEyIDE1OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTExLTEyIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogaW5jbHVkZSBTVERDX0hFQURFUlMgZm9yIEFJWC4KICAgCjE5OTctMTEtMTIgMTU6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYzoKCiAgIC0gKHBhcnR5X3ZhcnMuYyk6IGluY2x1ZGUgU1REQ19IRUFERVJTIGZvciBBSVguCiAgIAoxOTk3LTExLTEyIDE1OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoc3lzdGVtLmgpOiBEb24ndCBpbmNsdWRlIGNvbmZpZy5oIQogICAKMTk5Ny0xMS0xMiAxMTo0OSAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgLSAoYXBwcy8uY3ZzaWdub3JlKTogYWRkZWQgc25tcHRhYmxlLgogICAKMTk5Ny0xMS0xMiAxMDo0NCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBkb2MgdXBkYXRlLgogICAKMTk5Ny0xMS0xMiAxMDozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmM6CgogICAtIChwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHBhcnNlciBpbXByb3ZlbWVudHMuCiAgICAgLSBwYXJzZXIgZGlyZWN0b3J5IGNhY2hpbmcuCiAgICAgLSBzYXZlX2Rlc2NyaXB0aW9ucy9taWJfd2FybmluZ3Mgc2V0IGZ1bmN0aW9ucy4KICAgCjE5OTctMTEtMTIgMTA6MzMgIGhhcmRha2VyCgogICAqIG1hbi86IHNubXBkZWx0YS4xLCBzbm1wdGFibGUuMSwgc25tcHRyYXBkLjg6CgogICAtIChtYW4vc25tcGRlbHRhLjEsc25tcHRhYmxlLjEsc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gZG9jdW1lbnRhdGlvbiBjaGFuZ2VzIGFuZCBhZGRpdGlvbnMuCiAgIAoxOTk3LTExLTEyIDEwOjMyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBuZXRzdGF0L21haW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wdjJjIHN1cHBvcnQgYW5kIGFyZ3VtZW50IHBhcnNpbmcgY2hhbmdlcy4KICAgCjE5OTctMTEtMTIgMTA6MzAgIGhhcmRha2VyCgogICAqIGFwcHMvOiBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYW5zbGF0ZS5jCiwgc25tcHRyYXAuYywgc25tcHRyYXBkLmM6CgogICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSB2YXJpb3VzIChyZW1vdmUgdW5uZWVkZWQgdmFycywgZXRjKS4KICAgICAtIGFkZCBzbm1wdGFibGUuCiAgICAgLSBtYWtlIHNubXB0cmFwZCBtdWx0aS1saW5ndWFsLgogICAKMTk5Ny0xMS0xMiAxMDoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwKICAgbWFuL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gYWRkIEBkYXRhZGlyQCB0byBmaWxlcyB0aGF0IG5lZWRlZCBpdC4KICAgCjE5OTctMTEtMTIgMTA6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYzoKCiAgIC0gKHBhcnR5X3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBpbmNsdWRlIG5ldGluZXQvaW4uaCBpZiBhdmFpbGFibGUuCiAgIAoxOTk3LTExLTEyIDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gc29sYXJpcyBwYXRjaGVzLgogICAKMTk5Ny0xMS0xMiAxMDoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICAtICgqL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGFkZCBAZGF0YWRpckAgdG8gZmlsZXMgdGhhdCBuZWVkZWQgaXQuCiAgIAoxOTk3LTExLTEyIDEwOjI1ICBoYXJkYWtlcgoKICAgKiBORVdTLCBUT0RPOgoKICAgLSAoTkVXUywgVE9ETyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBkb2MgdXBkYXRlLgogICAKMTk5Ny0xMS0xMiAwOToxOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uYzoKCiAgIC0gKGhyX3N3cnVuLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIGZvciBsaW51eC9ocHV4MTAgcHJvYmxlbXMuCiAgIAoxOTk3LTExLTEyIDA5OjE3ICBoYXJkYWtlcgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0xMS0xMiAwOToxNyAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgLSAoRkFRKTogRG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0xMS0xMiAwODoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAtIEZyZWUgYSBwZHUgaW4gYSBzcG90IHRoYXQgc2hvdWxkIHRlY2huaWNhbGx5IG5ldmVyIGJlIG5lZWRlZCwgYnV0CiAgICAgICBpcyBuaWNlIGZvciBwZW9wbGUgcmVhZGluZyB0aGUgY29kZS4KICAgCjE5OTctMTEtMTIgMDc6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiBXMzIgc3BlY2lmaWMgZml4ZXMuCiAgIAoxOTk3LTExLTA3IDE2OjM4ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTEwICkKICAgCjE5OTctMTEtMDcgMTY6MzcgIGhhcmRha2VyCgogICAqIE5FV1MsIFJFQURNRSwgVE9ETzoKCiAgIC0gKE5FV1MsIFJFQURNRSwgVE9ETyk6IERvY3VtZW50YXRpb24gdXBkYXRlcy4KICAgCjE5OTctMTEtMDcgMTY6MTQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IHdhdGNoIG91dCBmb3IgL3Vzci91Y2IvY2Mgb24gc29sYXJpcyBhbmQgZG9uJ3QgdXNlIGl0LgogICAKMTk5Ny0xMS0wNyAxNToyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFwcHMvc25tcGdldG5leHQuYywKICAgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmgsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgd2luMzIvY29uZmlnLmgsIHdpbjMyL3dpbjMyLm9wdAosIHdpbjMyL2xpYnNubXAvbGlic25tcC5wbGcsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZywKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AsCiAgIHdpbjMyL3NubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsucGxnLAogICB3aW4zMi9zbm1wZ2V0L3NubXBnZXQuZHNwLCB3aW4zMi9zbm1wZ2V0L3NubXBnZXQucGxnLAogICB3aW4zMi9zbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LnBsZywgd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcAosIHdpbjMyL3NubXBzZXQvc25tcHNldC5wbGcsCiAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsCiAgIHdpbjMyL3NubXBzdGF0dXMvc25tcHN0YXR1cy5wbGcsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHdpbjMyL3NubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5wbGcsCiAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCwgd2luMzIvc25tcHdhbGsvc25tcHdhbGsucGxnCjoKCiAgIC0gKCopOiBtZXJnZSB0byBtYWluIGJyYW5jaDogIHBhdGNoZXMgZnJvbSBKb2UgTWFyem90LgogICAKMTk5Ny0xMS0wNyAxMzozOCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoc25tcHdhbGsuYyk6IHN0b3Agb24gbm8gcmVzcG9uc2UgZnJvbSBob3N0LgogICAKMTk5Ny0xMS0wNyAxMzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaHJfbmV0d29yay5jOgoKICAgLSAoaHJfbmV0d29yay5jKTogZG9uJ3QgcGFzcyBjaGFyICoqIHRvIGludGVyZmFjZXNfc2Nhbl9uZXh0KCkuCiAgIAoxOTk3LTExLTA3IDEzOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYzoKCiAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IFVTSU5HLipfTUlCX01PRFVMRSAtPiBVU0lORy4qX01PRFVMRS4KICAgCjE5OTctMTEtMDcgMTI6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IHBhdGNoIGZyb20gTmllbHMgZm9yIHNvbGFyaXMgPjIuNi4KICAgCjE5OTctMTEtMDcgMTI6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hyX3N3cnVuLmM6CgogICAtIChocl9zd3J1bi5jKTogZG9uJ3QgcHJpbnQgYSB2YXJpYWJsZSB0aGF0IGRvZXNuJ3QgZXhpc3QgdW5kZXIgbGludXguCiAgIAoxOTk3LTExLTA3IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgbGludXgvaGRyZWcuaAogICAKMTk5Ny0xMS0wNSAxNToyOSAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU5ICkKICAgCjE5OTctMTEtMDUgMTQ6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiBwcm90ZWN0IHZtbWV0ZXIuaCBmcm9tIG11bHRpcGxlIGluY2x1c2lvbnMgb24gbmV0YnNkLgogICAKMTk5Ny0xMS0wNSAxMzo1OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsIHNubXBsaWIvbWliLmM6CgogICAtIChNYWtlZmlsZS5pbiwga2VybmVsX3N1bm9zNS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBvY3RldCBjb3VudGVycyBmb3Igc29sYXJpcy4KICAgICAtIE1ha2VmaWxlLmluIHBhdGNoZXMuCiAgIAoxOTk3LTExLTA1IDEzOjU2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLAogICBpcC5jLCB0Y3AuYywgdWRwLmM6CgogICAtIChhdC5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywgdGNwLmMsIHVkcC5jKToKICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIgogICAKMTk5Ny0xMS0wNSAxMzo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLAogICBtaWJncm91cC9kaXNrLmMsIG1pYmdyb3VwL3Byb2MuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgLSAoc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgZGlzay5jLCBwcm9jLmMsIHV0aWxfZnVuY3MuYyk6CiAgICAgLSAjaW5jbHVkZSAibWliX21vZHVsZV9jb25maWcuaCIuCiAgIAoxOTk3LTExLTA1IDEzOjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGNvbW1vbl9oZWFkZXIuaCwgbWliZ3JvdXAvaHJfZGlzay5jLAogICBtaWJncm91cC9ocl9maWxlc3lzLmMsIG1pYmdyb3VwL2hyX3N3cnVuLmMsCiAgIG1pYmdyb3VwL2hyX3V0aWxzLmMsIG1pYmdyb3VwL3Zhcl9yb3V0ZS5jOgoKICAgLSAoKik6IG1lcmdlIGZyb20gRGF2ZSdzIHByZTYgcGF0Y2hlcy4KICAgCjE5OTctMTEtMDUgMTM6NDIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChhcHBzL01ha2VmaWxlLmluKTogcHV0IHNubXB0cmFwZCBpbiBAc2JpbmRpckAKICAgCjE5OTctMTEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKToKICAgICAtIENoZWNrIGZvciAkcHJlZml4IGJlaW5nIGRlZmluZWQgYXMgTk9ORSBmb3Igb3RoZXIgdmFycy4KICAgCjE5OTctMTEtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L3JlYWRfY29uZmlnLmM6CgogICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAtICNpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgICAtIFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRSAtPiBVU0lOR19FWFRFTlNJQkxFX01JQl9NT0RVTEUKICAgCjE5OTctMTAtMjkgMTQ6MDAgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlOCApCiAgIAoxOTk3LTEwLTI5IDEyOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0X3Jlcy5oOgoKICAgLSAoaG9zdF9yZXMuaCk6IGRvbid0IGluY2x1ZGUgY29uZmlnLmggdHdpY2UuCiAgIAoxOTk3LTEwLTI5IDEyOjU3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgYW5kIGluY2x1ZGUgc3lzL2NkZWZzLmggaW4gY29uZmlnLmguCiAgIAoxOTk3LTEwLTI5IDEyOjQyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIGFnZW50L2NvbW1vbl9oZWFkZXIuaAosIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwKICAgYWdlbnQvcmVhZF9jb25maWcuYywgYWdlbnQvcmVhZF9jb25maWcuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2FnZW50LmgsCiAgIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L3Zhcl9zdHJ1Y3QuaCwKICAgYWdlbnQvdmlld19wYXJzZS5jLCBhZ2VudC9taWJncm91cC9hY2xfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hY2xfdmFycy5oLCBhZ2VudC9taWJncm91cC9hbGFybS5jLAogICBhZ2VudC9taWJncm91cC9hbGFybS5oLCBhZ2VudC9taWJncm91cC9hdC5jLAogICBhZ2VudC9taWJncm91cC9hdC5oLCBhZ2VudC9taWJncm91cC9jb250ZXh0X3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmgsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5oLCBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5oLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9ldmVudC5oLCBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuaCwgYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmgsIGFnZW50L21pYmdyb3VwL2hwdXguaCwKICAgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsIGFnZW50L21pYmdyb3VwL2hyX2ZpbGVzeXMuYwosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaAosIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBhZ2VudC9taWJncm91cC9tZW1vcnkuYywgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmgsCiAgIGFnZW50L21pYmdyb3VwL3BhcnR5X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvcGFzcy5jLCBhZ2VudC9taWJncm91cC9wYXNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3Byb2MuYywgYWdlbnQvbWliZ3JvdXAvcHJvYy5oLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5oLCBhZ2VudC9taWJncm91cC9zbXV4LmMsCiAgIGFnZW50L21pYmdyb3VwL3NtdXguaCwgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdGNwLmgsIGFnZW50L21pYmdyb3VwL3VkcC5jLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmgKLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvdmlld192YXJzLmgKLCBhZ2VudC9taWJncm91cC93b21iYXQuYywgYWdlbnQvbWliZ3JvdXAvd29tYmF0LmgKLCBhcHBzLy5jdnNpZ25vcmUsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsCiAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMKLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMsCiAgIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgc25tcGxpYi92aWV3LmgKLCB3aW4zMi9jb25maWcuaDoKCiAgIC0gKCouKi4qKTogX19VQ0RfUCAtPiBfX1AsIGFuZCBhIGNvbmZpZ3VyZSBjaGVjayB0byBsb29rIGZvciBpdC4KICAgCjE5OTctMTAtMjkgMTI6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuaDoKCiAgIC0gKHBhcnNlLmgpOiBTVEFUVVNfS1dfT1BUSU9OQUwgLT4gU1RBVFVTX09QVElPTkFMCiAgIAoxOTk3LTEwLTI5IDExOjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZGVsdGEuYywgYXBwcy9zbm1wZ2V0LmMKLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wd2Fsay5jLCBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wZGVsdGEuMQosIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5oOgoKICAgLSAoYWNjb25maWcuaCwgYXNuMS5jLCBtaWIuW2NoXSwgcGFyc2UuaCxhcHBzLyosZXJyb3JtaWIuYyxsb2FkYXZlLmMsCiAgICAgIGV4dGVuc2libGUuYywgZGlzay5jLCBzbm1wZGVsdGEqKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIHRoZSBub3cgd2VsbGtub3duIE5ldEJTRCBmaXgsCiAgICAgLSBTdW5PUzQgY2MgZG9lc24ndCBsaWtlIHVuc2lnbmVkIGxpdGVyYWxzIG9yIHN0cnRvdWwsCiAgICAgLSBhZGRlZCBhIGNoYXIgdmVyc2lvbiBvZiAiOyIsCiAgICAgLSBhZGRlZCBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBldGMKICAgICAtIGNoYW5nZWQgdGhlIGFwcHMgdG8gcHJpbnQgYWxsIGVycm9yIG1lc3NhZ2VzIHRvIHN0ZGVyciwKICAgICAtIGNvbXBsZXRlZCB0aGUgYWNjZXNzIGFuZCBzdGF0dXMgdmFsdWVzIGluIHNubXBsaWIvcGFyc2UuaAogICAgIC0gYWRkZWQgYSByb3VnaGx5IHBhdGNoZWQgdmVyc2lvbiBvZiBzbm1wZGVsdGEuCiAgIAoxOTk3LTEwLTI5IDEwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogb3BwcywgZm9yZ290IHRvIHB1dCBpbiBAZXhlY19wYXRoQC4KICAgCjE5OTctMTAtMjkgMTA6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBsb2NhbC9NYWtlZmlsZS5pbiwgbWFuL01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluCiwgb3YvTWFrZWZpbGUuaW46CgogICAtIChjb25maWcqLCAqL01ha2VmaWxlLmluKToKICAgICAtIE1vdmUgc25tcGxpYnBhdGggdG8gQGRhdGFkaXJAIHdoaWNoIGRlZmF1bHRzIHRvIC91c3IvbG9jYWwvc2hhcmUvc25tcC4KICAgCjE5OTctMTAtMjkgMTA6MjUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluCiwgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbgosIGxvY2FsL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4sCiAgIG1hbi9taWJfYXBpLjMsIG1hbi9zbm1wZC4xLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYKLCBtaWJzL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4sIG1hbi8qKToKICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gY2hhbmdlIGluc3RhbGxhdGlvbiBwYXRocy4KICAgICAgIC0gKG1vZGlmaWVkIHRvIHBvaW50IGFnZW50IHRvIHNiaW5kaXIgaW5zdGVhZCBvZiBldGNkaXIpLgogICAKMTk5Ny0xMC0yOSAxMDowNiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChzbm1wZC5jb25mLjUuZGVmKTogcmVtb3ZlIHNwYWNlIGJlZm9yZSAlIHNpZ24uCiAgIAoxOTk3LTEwLTI5IDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNrLmM6CgogICAtIChkaXNrLmMpOiBmaXggcG9pbnRlciBwcm9ibGVtcyBmcm9tIG9sZCByZWFkX2NvbmZpZyBmb3JtIHRvIG5ldy4KICAgCjE5OTctMTAtMjkgMDk6NTcgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmgsIGFnZW50L21pYmdyb3VwL3N0cnVjdC5oLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoZGlzay5bY2hdLCBzdHJ1Y3QuaCwgc2Vkc2NyaXB0LmluLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIFBhdGNoIGZyb20gU2ltb24gQnVyZ2UgdG8gYWxsb3cgYSBtaW5pbXVtIHBlcmNlbnRhZ2Ugb24gZGlzayBzcGFjZS4KICAgICAgIC0gKHdhcyBvcmlnaW5hbGx5IGEgbWF4aW11bSwgYnV0IEkgY2hhbmdlZCBpdCB0byBtaW5pbXVtIGluc3RlYWQpLgogICAKMTk5Ny0xMC0yOSAwOTo0MiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIHN5cy9zZWxlY3QuaCBmb3IgYWl4LgogICAKMTk5Ny0xMC0yOSAwOTo0MSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6IHJlbW92ZSB1bnVzZWQgbmxpc3Qgc3RydWN0LgogICAKMTk5Ny0xMC0yOCAxNzoxMiAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU3ICkKICAgCjE5OTctMTAtMjggMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIC0gKHV0aWxfZnVuY3MuYyk6IFBhdGNoIGZyb20gTm9idW9fT2thYmVAeW9rb2dhd2EuY28uanA6CiAgICAgLSBmaXggdW53cmFwcGVkIGZvcGVuKCkgYnkgYWRkaW5nIHJldHVybiBOVUxMIGNoZWNrLgogICAKMTk5Ny0xMC0yOCAxNzowOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1pYnMvVUNELVNOTVAtTUlCLnR4dAo6CgogICAtIChhY2NvbmZpZy5oLCBVQ0QtU05NUC1NSUIudHh0KTogZGVmaW5lIGJzZGkgYWdlbnQgdHlwZS4KICAgCjE5OTctMTAtMjggMTU6NDkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmM6CgogICAtIChjb25maWcqLCByb3V0ZV93cml0ZS5jLCB2YXJfcm91dGUuYyk6CiAgICAgLSBmaXggcnRlbnRyeSBwcm9ibGVtcyBvbmNlIGFuZCBmb3IgcHJvYmFibHkgbmV2ZXIuCiAgIAoxOTk3LTEwLTI4IDE0OjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L2tlcm5lbC5jCiwgYWdlbnQva2VybmVsLmgsIGFnZW50L3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L3JlYWRfY29uZmlnLmgsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvc25tcF9hZ2VudC5oLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgKLCBhZ2VudC92YXJfc3RydWN0LmgsIGFnZW50L3ZpZXdfcGFyc2UuYywKICAgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuaCwKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uaCwKICAgYWdlbnQvbWliZ3JvdXAvYXQuYywgYWdlbnQvbWliZ3JvdXAvYXQuaCwKICAgYWdlbnQvbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5oCiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLCBhZ2VudC9taWJncm91cC9kaXNrLmgsCiAgIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmMsIGFnZW50L21pYmdyb3VwL2Vycm9ybWliLmgsCiAgIGFnZW50L21pYmdyb3VwL2V2ZW50LmMsIGFnZW50L21pYmdyb3VwL2V2ZW50LmgsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGUuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hwdXguaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMKLCBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuaCwKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmgsCiAgIGFnZW50L21pYmdyb3VwL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuaCwKICAgYWdlbnQvbWliZ3JvdXAvcGFydHlfdmFycy5jLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmgKLCBhZ2VudC9taWJncm91cC9wYXNzLmMsIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwKICAgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLCBhZ2VudC9taWJncm91cC9wcm9jLmgsCiAgIGFnZW50L21pYmdyb3VwL3JvdXRlX3dyaXRlLmgsIGFnZW50L21pYmdyb3VwL3NtdXguYywKICAgYWdlbnQvbWliZ3JvdXAvc211eC5oLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLAogICBhZ2VudC9taWJncm91cC9zbm1wX21pYi5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaCwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaCwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uaAosIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLCBhZ2VudC9taWJncm91cC92aWV3X3ZhcnMuaAosIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLCBhZ2VudC9taWJncm91cC93b21iYXQuaAosIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIGFwcHMvc25tcF9wYXJzZV9hcmdzLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L25ldHN0YXQuaAosIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmgKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21kNS5oCiwgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmgsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuaCwgc25tcGxpYi9zbm1wX2ltcGwuaCwKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgc25tcGxpYi92aWV3LmgKLCB3aW4zMi9jb25maWcuaDoKCiAgIC0gKCouKi4qLiopOiByZW5hbWUgbWFjcm8gX19QIC0+IF9fVUNEX1AgdG8gcmVkdWNlIHN0dXBpZCBjb25mbGljdHMuCiAgIAoxOTk3LTEwLTI4IDE0OjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBmaXggcnRlbnRyeSBzdHJ1Y3R1cmUgY2hlY2tzIGZvciB0aGUgKmJzZCBncm91cHMuCiAgIAoxOTk3LTEwLTI4IDE0OjMwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcGxpYi9taWIuYzoKCiAgIC0gKGFjY29uZmlnLmgsIG1pYi5jKTogdXNlICc7J3MgZm9yIERPUyBlbnYgcGF0aHMuCiAgIAoxOTk3LTEwLTI4IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBzbm1wbGliL3NubXAuYywgc25tcGxpYi9zeXN0ZW0uYwosIHNubXBsaWIvc3lzdGVtLmg6CgogICAtIChhY2NvbmZpZy5oLCBzeXN0ZW0uW2NoXSwgc25tcC5jKTogbW92ZSBzdHJkdXAgZGVmIHRvIHN5c3RlbS5bY2hdLgogICAKMTk5Ny0xMC0yNyAxODozMSAgaGFyZGFrZXIKCiAgICogYnVnLXJlcG9ydCwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU2ICkKICAgCjE5OTctMTAtMjcgMTg6MjYgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluKTogZml4IGNvbmZpZ19hcmNoX3JlcXVpcmUgbWFjcm8gdG8gYWN0dWFsbHkgd29yay4KICAgCjE5OTctMTAtMjcgMTg6MTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhY2xfcGFyc2UuYywgY29udGV4dF9wYXJzZS5jLCBwYXJ0eV9wYXJzZS5jCiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBsaWIvKi5jKTogdXNlIHNubXBfc2V0X2RldGFpbCB0byBoYW5kbGUgbWFsbG9jL2ZyZWUgb2Ygc25tcF9kZXRhaWwuCiAgIAoxOTk3LTEwLTI3IDE4OjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogcmVtb3ZlIGdvdHJvb3QgdmFyLgogICAKMTk5Ny0xMC0yNyAxODowNSAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wL2xpYnNubXAucGxnLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLAogICBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5wbGcsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGcsIHNubXBnZXQvc25tcGdldC5kc3AKLCBzbm1wZ2V0L3NubXBnZXQucGxnLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AKLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQvc25tcHNldC5kc3AKLCBzbm1wc2V0L3NubXBzZXQucGxnLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wc3RhdHVzL3NubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwCiwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZywgc25tcHdhbGsvc25tcHdhbGsuZHNwCiwgc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgLSAod2luMzIpOiAgYWRkIGZpbGVzIG9uIG1haW4gYnJhbmNoLgogICAKMTk5Ny0xMC0yNyAxODowMiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCwgd2luMzIuZHN3LCB3aW4zMi5vcHQ6CgogICB3aW4zMiBmaWxlcwogICAKMTk5Ny0xMC0yNyAxNzo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IG1lcmdlIGJ1Z3M6IGVsc2UgY2hlY2sgYWdhaW5zdCBwZHUgY29tbWFuZCB0eXBlLgogICAKMTk5Ny0xMC0yNyAxNzo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2F1dGguYzoKCiAgIC0gKHNubXBfYXV0aC5jKTogbWVyZ2UgYnVncy4gIE1pc3NpbmcgYnJhY2tldHMuCiAgIAoxOTk3LTEwLTI3IDE3OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBtaXNzaW5nIGEgZWxzZSBzdGF0ZW1lbnQgKHNpZ2gpLgogICAKMTk5Ny0xMC0yNyAxNzo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9kZXZpY2UuaCwgaHJfZGlzay5oLCBocl9maWxlc3lzLmgKLCBocl9uZXR3b3JrLmgsIGhyX3ByaW50LmgsIGhyX3Byb2MuaCwKICAgaHJfc3dpbnN0LmgsIGhyX3N3cnVuLmgsIGhyX3N5c3RlbS5oOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvaHJfKi5oKTogcHJvcGVyIGluaXRfIHByb3RvdHlwZXMuCiAgIAoxOTk3LTEwLTI3IDE3OjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogdHdvIG1vZHVsZXMgZm9yIGV4dGVuc2libGUgY291bnQuCiAgIAoxOTk3LTEwLTI3IDE3OjA1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgIC0gKHNubXBzdGF0dXMuYyk6IHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFpcmF0aW9uLgogICAKMTk5Ny0xMC0yNyAxNzowNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMKLCBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLAogICBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMKLCBocl9zeXN0ZW0uYzoKCiAgIC0gKGhyXyouYyk6IEVSUk9SIC0+IEVSUk9SX01TRy4KICAgCjE5OTctMTAtMjcgMTY6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgLSAoc25tcF9hcGkuW2NoXSk6IGZpeCBwZXJyb3IgbG9zc2VzIGZyb20gbWVyZ2UuCiAgIAoxOTk3LTEwLTI3IDE2OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvYWNsX3ZhcnMuYywgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYwosIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2NvbnRleHRfdmFycy5jCiwgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZS5jCiwgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMKLCBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9wYXJ0eV92YXJzLmMKLCBhZ2VudC9taWJncm91cC9zbm1wX21pYi5jLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYwosIGFnZW50L21pYmdyb3VwL3RjcC5jLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsIGFnZW50L21pYmdyb3VwL3ZpZXdfdmFycy5jLAogICBhZ2VudC9taWJncm91cC93b21iYXQuYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jCiwgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2xfcGFyc2UuYywgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvYXNuMS5oCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLAogICBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJ0eS5jLAogICBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXAuaAosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvc3lzdGVtLmgsIHNubXBsaWIvdmlldy5jOgoKICAgLSAoKik6IG1lcmdlIG9mIFczMiBwb3J0IGFuZCBtYWluIHZlcnNpb24gYnJhbmNoLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHdhbGsvc25tcHdhbGsucGxnOgoKICAgZmlsZSBzbm1wd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgZmlsZSBzbm1wd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcDoKCiAgIGZpbGUgc25tcHRyYW5zbGF0ZS5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLnBsZzoKCiAgIGZpbGUgc25tcHRyYW5zbGF0ZS5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcDoKCiAgIGZpbGUgc25tcHN0YXR1cy5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHN0YXR1cy9zbm1wc3RhdHVzLnBsZzoKCiAgIGZpbGUgc25tcHN0YXR1cy5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHNldC9zbm1wc2V0LnBsZzoKCiAgIGZpbGUgc25tcHNldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcHNldC9zbm1wc2V0LmRzcDoKCiAgIGZpbGUgc25tcHNldC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwOgoKICAgZmlsZSBzbm1wZ2V0bmV4dC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldG5leHQvc25tcGdldG5leHQucGxnOgoKICAgZmlsZSBzbm1wZ2V0bmV4dC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcDoKCiAgIGZpbGUgc25tcGdldC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGdldC9zbm1wZ2V0LnBsZzoKCiAgIGZpbGUgc25tcGdldC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5wbGc6CgogICBmaWxlIHNubXBidWxrd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3A6CgogICBmaWxlIHNubXBidWxrd2Fsay5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgogICAKMTk5Ny0xMC0yNyAxNDoxOSAgaGFyZGFrZXIKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBmaWxlIGxpYnNubXAuZGVmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcDoKCiAgIGZpbGUgbGlic25tcF9kbGwuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXBfZGxsLnBsZzoKCiAgIGZpbGUgbGlic25tcF9kbGwucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC5kc3A6CgogICBmaWxlIGxpYnNubXAuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2xpYnNubXAvbGlic25tcC5wbGc6CgogICBmaWxlIGxpYnNubXAucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL3dpbjMyLmRzdzoKCiAgIGZpbGUgd2luMzIuZHN3IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KICAgCjE5OTctMTAtMjcgMTQ6MTkgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgZmlsZSBjb25maWcuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDE0OjE5ICBoYXJkYWtlcgoKICAgKiB3aW4zMi93aW4zMi5vcHQ6CgogICBmaWxlIHdpbjMyLm9wdCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCiAgIAoxOTk3LTEwLTI3IDA5OjU2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oLAogICBhZ2VudC9taWJncm91cC91ZHAuaCwgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmMsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5oOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvKi5oKToKICAgICAtIG5ldyBjb25maWcgbWFjcm86ICBjb25maWdfYXJjaF9yZXF1aXJlKGFyY2gsIG1vZHVsZSkuCiAgICAgLSBtb3ZlZCBhcmNoIGRlcGVuZGFudCBtb2R1bGVzIChtZW1vcnksIGhwdXgsIGtlcm5lbF9zdW5vczUpIGxvYWRzCiAgICAgICBmcm9tIHRoZSBjb25maWd1cmUgaW50byB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCiAgIC0gKGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMpOgogICAgIC0gdHlwZWNhc3Qga2xvb2t1cCBjYWxscyBmb3IgZnJlZWJzZDIuCiAgIAoxOTk3LTEwLTIyIDExOjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKGNvbW1vbl9oZWFkZXIuaCwgcmVhZF9jb25maWcuYywgZGlzay5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgLSBUeXBvJ3MgZml4ZWQgYnkgTmllbHMuCiAgIAoxOTk3LTEwLTIxIDEyOjM2ICBoYXJkYWtlcgoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIHZlcnNpb24gdGFnICggMy4zLnByZTUgKQogICAKMTk5Ny0xMC0yMSAxMjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IGRpZCBhIG1ha2UgZGVwZW5kLgogICAKMTk5Ny0xMC0yMSAxMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIG1ha2VmaWxlaW5kZXBlbmQuLgogICAKMTk5Ny0xMC0yMSAxMjozMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIG1ha2VmaWxlaW5kZXBlbmQgc2V0dXAuCiAgIAoxOTk3LTEwLTIxIDEyOjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oCiwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgbWliZ3JvdXAvZGlzay5oLCBtaWJncm91cC9leHRlbnNpYmxlLmMsCiAgIG1pYmdyb3VwL2V4dGVuc2libGUuaCwgbWliZ3JvdXAvbG9hZGF2ZS5oLAogICBtaWJncm91cC9wYXNzLmgsIG1pYmdyb3VwL3Byb2MuYywgbWliZ3JvdXAvcHJvYy5oCiwgbWliZ3JvdXAvcmVhZF9jb25maWcuYywgbWliZ3JvdXAvcmVhZF9jb25maWcuaCwKICAgbWliZ3JvdXAvc3lzdGVtLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgLSAoYWdlbnQvcmVhZF9jb25maWcuW2NoXSwgc25tcGQuYywgc25tcF92YXJzLmMsIG1pYmdyb3VwLyopOgogICAgIC0gbW92ZWQgcmVhZF9jb25maWcuW2NoXSB1cCBhIGxldmVsIHRvIGFsd2F5cyBiZSBjb21waWxlZCBpbi4KICAgCjE5OTctMTAtMjEgMTE6MDIgIGhhcmRha2VyCgogICAqIGJ1Zy1yZXBvcnQsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlNCApCiAgIAoxOTk3LTEwLTIxIDExOjAxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUyk6IGJlZ2lubmluZ3Mgb2YgTkVXUyB1cGRhdGVzLgogICAKMTk5Ny0xMC0yMSAxMTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIG1lbW9yeS5jCjoKCiAgIC0gKGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgbWVtb3J5LmMpOiBjbG9zZSBvcGVuIGZpbGVzIG9uIGxpbnV4LgogICAKMTk5Ny0xMC0yMSAxMDo0NSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWxsb3cgLXYgMmggYW5kIDJwIGZvciBwYXJ0eSBjb2RlLgogICAKMTk5Ny0xMC0yMSAxMDoxNSAgaGFyZGFrZXIKCiAgICogUE9SVElORywgUkVBRE1FOgoKICAgLSAoUE9SVElORywgUkVBRE1FKTogbWlub3IgdXBkYXRlcy4KICAgCjE5OTctMTAtMjAgMTk6NDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBkZWZpbmUgYXQgbGVhc3QgYmxhbmsgZnVuYyBubGlzdF9pbml0KCkgb24gbGludXguCiAgIAoxOTk3LTEwLTIwIDE5OjQyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogZGVmaW5lIGxpbnV4J3MgT1MgdHlwZS4KICAgCjE5OTctMTAtMjAgMTg6MDEgIGhhcmRha2VyCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJLmgsCiAgIGFnZW50L21pYmdyb3VwL3NtdXhfZ2F0ZWQuaCwgYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS5oLCBhZ2VudC9taWJncm91cC93b21iYXQuYywKICAgYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsIHVjZF9zbm1wLmgsIHNtdXhfZ2F0ZWQuaCk6CiAgICAgLSBjcmVhdGVkIG5ldyB3cmFwcGVycyBmb3IgdGhlIHZhcmlvdXMgbW9kdWxlcyB0byBtYWtlIHRoZW0gZWFzeSB0bwogICAgICAgYWRkIGFuZCByZW1vdmUgYXMgbmVlZGVkLgogICAKMTk5Ny0xMC0yMCAxNzoxNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBob3N0LmMsIGhvc3QuaCwgaHJfZGV2aWNlLmMsCiAgIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLCBocl9uZXR3b3JrLmMsIGhyX290aGVyLmMKLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLAogICBocl9zdG9yYWdlLmMsIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLAogICBocl9zeXN0ZW0uYzoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyXyouYyk6CiAgICAgLSBBIG1vZHVsZS5jIGZpbGUgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLiAgT25seSB0aGUgLmggZmlsZSBpcwogICAgICAgbmVjZXNzYXJ5LCBmb3IgcGVvcGxlIHdobyB3YW50IHRvIGhhdmUgb25lIG1vZHVsZSB3cmFwIGEgYnVuY2ggb2Ygb3RoZXJzLgogICAgIC0gcmVtb3ZlZCBob3N0LmMKICAgICAtIHJlbmFtZWQgYWxsIGhyX2luaXQgZnVuY3Rpb25zIHRvIGJlIGF1dG8tY2FsbGVkLgogICAKMTk5Ny0xMC0yMCAxNzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSRUFETUUsIHdvbWJhdC5jLCB3b21iYXQuaDoKCiAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSwgd29tYmF0LltjaF0pOgogICAgIC0gZG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gcmVmbGVjdCBjb25maWdfcGFyc2VfZG90X2NvbmYoKSB1c2FnZS4KICAgCjE5OTctMTAtMjAgMTc6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAtIEEgbW9kdWxlLmMgZmlsZSBpcyBubyBsb25nZXIgcmVxdWlyZWQuICBPbmx5IHRoZSAuaCBmaWxlIGlzCiAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgIC0gcmVuYW1lZCBhbGwgaHJfaW5pdCBmdW5jdGlvbnMgdG8gYmUgYXV0by1jYWxsZWQuCiAgIAoxOTk3LTEwLTIwIDE2OjQ0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBwYXRjaCBhbGwgb3RoZXIgZW52LXZhcnMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCiAgIAoxOTk3LTEwLTIwIDE2OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiBGcm9tIERhdmU6ICBwYXRjaCBERUZBVUxUX01JQlMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCiAgIAoxOTk3LTEwLTIwIDE2OjA2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9yZWFkX2NvbmZpZy5jOgoKICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBkb24ndCByZXBvcnQgYW4gZXJyb3IgaWYgeW91IGNhbid0IGZpbmQgYSBzbm1wZC5jb25mIGZpbGUuCiAgICAgLSBkb24ndCByZXBvcnQgYWxsIGxpbmVzIGFzIGFuIGVycm9yIChvcHBzKS4KICAgCjE5OTctMTAtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Bhc3MuYzoKCiAgIC0gKHBhc3MuYykgZG9uJ3QgbnVsbCBsYXN0IGNoYXIgaW4gY29tbWFuZCBsaW5lLgogICAKMTk5Ny0xMC0yMCAxMTo1MSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfYWdlbnQuaAosIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBkLmgsCiAgIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmUsIGFnZW50L21pYmdyb3VwL2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzay5oLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5jLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMKLCBhZ2VudC9taWJncm91cC9ocl9uZXR3b3JrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwgYWdlbnQvbWliZ3JvdXAvaHJfcHJpbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfcHJvYy5jLCBhZ2VudC9taWJncm91cC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuaCwgYWdlbnQvbWliZ3JvdXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL21lbW9yeS5oLCBhZ2VudC9taWJncm91cC9wYXNzLmMsCiAgIGFnZW50L21pYmdyb3VwL3Bhc3MuaCwgYWdlbnQvbWliZ3JvdXAvcHJvYy5jLAogICBhZ2VudC9taWJncm91cC9wcm9jLmgsIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmMsCiAgIGFnZW50L21pYmdyb3VwL3JlYWRfY29uZmlnLmgsIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMKLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgKOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvc25tcCosIGFnZW50L21pYmdyb3VwLyouW2NoXSk6CiAgICAgLSBDcmVhdGVkIGEgbmV3IG1pYm1vZHVsZS5oIGNvbmZpZ3VyYXRpb24gbWFjcm8gY2FsbGVkCiAgICAgICBjb25maWdfcGFyc2VfZG90X2NvbmYoKSB3aGljaCBjYW4gYmUgY2FsbGVkIHRvIHJlcXVlc3QgcGFyc2luZyBvZgogICAgICAgdGhlIHNubXBkLmNvbmYgZmlsZShzKSBvbiBhIHBlciBtb2R1bGUgYmFzaXMuCiAgICAgLSBBbGwgcmVsYXRlZCBwYXJzaW5nIGhhcyBiZWVuIHN0cmlwZWQgZnJvbSByZWFkX2NvbmZpZy5jIGFuZCBtb3ZlCiAgICAgICB0byB0aGVpciBjb3JyZWN0IG1vZHVsZSBpbnN0ZWFkLgogICAgIC0gTmV3IGZ1bmN0aW9uOiBjb25maWdfcGVycm9yKGNoYXIgKik6IHByaW50IGVycm9yIHdpdGggZmlsZSAmIGxpbmUgIy4KICAgICAtIGJhc2ljIC1XYWxsIGNsZWFudXBzIGluIGhyKiBhcyB3ZWxsIChub3QgbmVhcmx5IGRvbmUgeWV0KS4KICAgCjE5OTctMTAtMjAgMTE6NDUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgogICAKMTk5Ny0xMC0xNSAxODo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0LmMsIGFnZW50L21pYmdyb3VwL2hvc3QuaCwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaCwgYWdlbnQvbWliZ3JvdXAvaHJfZGV2aWNlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2RldmljZS5oLCBhZ2VudC9taWJncm91cC9ocl9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL2hyX2Rpc2suaCwgYWdlbnQvbWliZ3JvdXAvaHJfZmlsZXN5cy5jLAogICBhZ2VudC9taWJncm91cC9ocl9maWxlc3lzLmgsIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuYwosIGFnZW50L21pYmdyb3VwL2hyX25ldHdvcmsuaCwgYWdlbnQvbWliZ3JvdXAvaHJfb3RoZXIuYwosIGFnZW50L21pYmdyb3VwL2hyX290aGVyLmgsCiAgIGFnZW50L21pYmdyb3VwL2hyX3BhcnRpdGlvbi5jLCBhZ2VudC9taWJncm91cC9ocl9wYXJ0aXRpb24uaAosIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmMsIGFnZW50L21pYmdyb3VwL2hyX3ByaW50LmgKLCBhZ2VudC9taWJncm91cC9ocl9wcm9jLmMsIGFnZW50L21pYmdyb3VwL2hyX3Byb2MuaAosIGFnZW50L21pYmdyb3VwL2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaHJfc3RvcmFnZS5oLCBhZ2VudC9taWJncm91cC9ocl9zd2luc3QuYwosIGFnZW50L21pYmdyb3VwL2hyX3N3aW5zdC5oLCBhZ2VudC9taWJncm91cC9ocl9zd3J1bi5jCiwgYWdlbnQvbWliZ3JvdXAvaHJfc3dydW4uaCwgYWdlbnQvbWliZ3JvdXAvaHJfc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC9ocl9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvaHJfdXRpbHMuYwosIGFnZW50L21pYmdyb3VwL2hyX3V0aWxzLmgsIGFnZW50L21pYmdyb3VwL21lbW9yeS5jCjoKCiAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyKik6IEhvc3QgcmVzb3VyY2VzIG1pYiBmcm9tIERhdmUgU2hpZWxkLgogICAgIC0gbWlub3IgcGF0Y2hlcyBieSBtZSwgbW9zdGx5IHBvaW50ZXIgZXJyb3JzLgogICAtIChtZW1vcnkuYyk6IGZpeGVkIGEgbnVsbCBwb2ludGVyIHByb2JsZW0gdW5kZXIgbGludXguCiAgIAoxOTk3LTEwLTE1IDEyOjEyICBoYXJkYWtlcgoKICAgKiBtaWJzLy5jdnNpZ25vcmU6CgogICAtIChtaWJzLy5jdnNpZ25vcmUpOiAgYWRkZWQgTWFrZWZpbGUuCiAgIAoxOTk3LTEwLTE1IDEyOjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jLCBzbm1wbGliL2FjbF9wYXJzZS5jLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwo6CgogICAtIChhcHBzLyouYywgYWdlbnQvc25tcGQuYywgc25tcGxpYi8qLmMpOgogICAgIC0gY3JlYXRlIGFuZCB1c2UgbmV3IGZ1bmN0aW9uOiAgc25tcF9wZXJyb3IoY2hhciAqKQogICAgIC0gZnJlZSBhbGxvY2F0ZWQgc3BhY2Ugb2Ygc25tcF9kZXRhaWwgdXBvbiB1c2FnZSBieSBzbm1wX2FwaV9lcnJzdHJpbmcoKS4KICAgCjE5OTctMTAtMTUgMDk6NTggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvYWNsX3BhcnNlLmMsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3NubXBfY2xpZW50LmMsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvdmlldy5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLAogICBhcHBzL3NubXBfcGFyc2VfYXJncy5jLCBhcHBzL3NubXBfcGFyc2VfYXJncy5oLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXBnZXQuYywKICAgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYXAuYywKICAgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jOgoKICAgLSAoYXBwcy8qLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvKi5jKTogUGF0Y2ggZnJvbSBOaWVsczoKICAgICAtIHdhcm5pbmcgZml4ZXMuCiAgICAgLSByZW1vdmUgdGhlIHByaW50ZidzIGZyb20gdGhlIGxpYnJhcnkgYW5kIHNldCBhIHNubXAgJ2Vycm5vJyBlcXVpdmFsZW50LgogICAKMTk5Ny0xMC0xNSAwOTo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiB2aWV3X3BhcnNlLmMsIHNubXBfdmFycy5jOgoKICAgLSAodmlld19wYXJzZS5jLCBzbm1wX3ZhcnMuYyk6IEZyb20gTmllbHM6IHdhcm5pbmcgcmVtb3ZhbHMgYW5kIHN0YW5kYXJkaXphdGlvbi4KICAgCjE5OTctMTAtMTQgMTU6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMKLCBldmVudC5jLCBldmVudC5oLCBpbnRlcmZhY2VzLmMsCiAgIGtlcm5lbF9zdW5vczUuYywgbWVtb3J5LmMsIG1lbW9yeS5oLCBwYXJ0eV92YXJzLmMKLCByZWFkX2NvbmZpZy5jLCB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYwosIHZpZXdfdmFycy5jOgoKICAgLSAoYWdlbnQvbWliZ3JvdXAvKi5jKTogWU1XUkFNRlNGTjoKICAgICAtICh5ZXQgbW9yZSB3YXJuaW5nIHJlbW92YWxzIGFuZCBtZW1vcnkgZnVuY3Rpb24gc3RhbmRhcmRpemF0aW9ucyBmcm9tIE5pZWxzKS4KICAgICAtIG1pbm9yIGxpbnV4L25ldGJzZC9ic2RpIGNsZWFuIHVwcy4KICAgCjE5OTctMTAtMTQgMTU6MjEgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEZyb20gRGF2ZSBTaGllbGRzOiByZWZlciByZWFkZXIgdG8gYW5vdGhlciBhbnN3ZXIgYXMgd2VsbC4KICAgCjE5OTctMTAtMTQgMTU6MTggIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oKTogZHluaXggZG9lc24ndCBoYXZlIG5ldC9yb3V0ZS5oLgogICAKMTk5Ny0xMC0xNCAxNToxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IEZyb20gRGF2ZSBTaGllbGRzOgogICAgIC0gc2VsZiBjb250YWluZWQgbWliIC50eHQgZmlsZXMgd2l0aCBtdWx0aXBsZSBtb2R1bGVzLgogICAKMTk5Ny0xMC0xNCAxNToxNSAgaGFyZGFrZXIKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IGRvYyBhZGRpdGlvbjogIGFkZF9taWJkaXIoKSByZXR1cm4gdmFsdWUuCiAgIAoxOTk3LTA4LTI1IDAwOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyBmb3IgbmV0YnNkLgogICAKMTk5Ny0wOC0yNSAwMDoyMSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIC0gKHZlcnNpb250YWcpOiBjaGVja2luIHZlcnNpb24uaC4KICAgCjE5OTctMDgtMjUgMDA6MjEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL21lbW9yeS5jOgoKICAgLSAobWVtb3J5LmMpOiB0eXBvIGluIGlmZGVmLgogICAKMTk5Ny0wOC0xNSAwNjo0NSAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0LCB2ZXJzaW9uLmg6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUzICkKICAgCjE5OTctMDgtMTUgMDI6MzAgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc3lzdGVtLmMsIGFnZW50L3NubXBkLmMKLCBzbm1wbGliL3N5c3RlbS5oOgoKICAgLSAoY29uZmlnKiwgc25tcGQuYywgc25tcF9jbGllbnQuW2NoXSwgc3lzdGVtLltjaF0pOgogICAgIC0gZml4IG1vcmUgbG9uZy9pbnQgcHJvYmxlbXMgb24gNjQgYml0IG1hY2hpbmVzIHVfbG9uZyAtPiBpbl9hZGRyX3QuCiAgICAgLSBDaGVjayBmb3IgU0lPQ0dJRkFERFIgaW4gc3lzL2lvY3RsLmggYW5kIHVzZSBpdCBpbiBnZXRfbXlhZGRyKCkgaWYKICAgICAgIGRlZmluZWQuCiAgIAoxOTk3LTA4LTE0IDA4OjIxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIERhdmlkIEMuIExhd3JlbmNlIGZvciBuZXRic2QgKiBic2Qvb3MgMi4wLgogICAKMTk5Ny0wOC0xNCAwODoxNiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvcHJvYy5jOgoKICAgLSAocHJvYy5jKTogZG9uJ3QgdXNlIHNldGVycm9yc3RhdHVzKCkgaWYgbm90IHVzaW5nIHRoZSBlcnJvcm1pYi4KICAgCjE5OTctMDgtMTQgMDg6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSk6IFBvaW50IG91dCB0aGF0IG1pYiBsaXN0IG11c3QgYmUgaW4gZGVzY2VuZGluZyBvcmRlci4KICAgCjE5OTctMDgtMTQgMDg6MTUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKik6CiAgICAgLSBUeXBvJ3Mgd2hlbiBjb3B5aW5nIGluIGEgYXV0b2NvbmYgdGVzdC4KICAgICAtIEFkZCBlcnJvcm1pYiB0byBkZWZhdWx0IG1vZHVsZSBsaXN0IChzaW5jZSBpdHMgbm8gbG9uZ2VyIHJlcXVpcmVkKS4KICAgICAtIGJhY2txdW90ZSBhIC4gaW4gYSBzZWQgcmVnZXhwIHRvIHdhdGNoIG91dCBmb3IgbW9kdWxlIG5hbWVzCiAgICAgICBiZWdpbm5pbmcgd2l0aCB0aGUgbGV0dGVyIG8uCiAgIAoxOTk3LTA4LTE0IDA3OjM3ICB3aGFyZGFrZQoKICAgKiBGQVEsIFJFQURNRSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9jb21tb25faGVhZGVyLmgsCiAgIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9lcnJvcm1pYi5jLCBhZ2VudC9taWJncm91cC9ldmVudC5jLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlLmMsIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuaAosIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvcmVhZF9jb25maWcuYwosIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhcHBzL3NubXBidWxrd2Fsay5jCiwgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMKLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcC5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmM6CgogICAtIChjb25maWcqLCBGQVEsIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvKi5jLCBhcHBzLyouYyk6CiAgICAgLSBQYXRjaCBmcm9tIERhdmlkIFBhdWwgWmltbWVybWFuOgogICAgICAgLSBwb3J0IHRvIEFJWCA0LjEuNS4KICAgICAgIC0gZml4IG1vcmUgdHlwZSBjYXN0aW5nIHByb2JsZW1zLgogICAKMTk5Ny0wOC0xNCAwMDo0NiAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYwosIHNubXBuZXRzdGF0L21haW4uYzoKCiAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYywgbWFpbi5jKToKICAgICAtIGFkZCAtViB2ZXJzaW9uIGZsYWdlLgogICAKMTk5Ny0wOC0xMyAwODoxMCAgd2hhcmRha2UKCiAgICogdmVyc2lvbi5oLCBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3NubXBfYWdlbnQuYwosIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLAogICBhZ2VudC9taWJncm91cC9kaXNrLmMsIGFnZW50L21pYmdyb3VwL2Rpc2suaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLCBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgKLCBhZ2VudC9taWJncm91cC9wcm9jLmMsIGFnZW50L21pYmdyb3VwL3Byb2MuaCwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgKLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvdmFyX3JvdXRlLmgKLCBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5oLCBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnCiwgc25tcGxpYi9jb250ZXh0LmgsIHNubXBsaWIvcGFydHkuaDoKCiAgIC0gKHZlcnNpb24uaCwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBtb3ZlIHZlcnNpb24gc3RyaW5nIHRvIGEgZ2xvYmFsIGhlYWRlci4KICAgICAtIGluc2VydCBVU0lOR18qX01PRFVMRSBtYWNybydzIGluIG1hbnkgcGxhY2VzIHRvIG1ha2UgbW9kdWxlCiAgICAgICByZW1vdmFsIG1vcmUgcG9zc2libGUuICBZb3UgY2FuIG5vdyBjb21waWxlIHdpdGggYWxtb3N0IG5vIG1vZHVsZXMKICAgICAgIGluc3RhbGxlZC4KICAgCjE5OTctMDgtMTMgMDQ6NDcgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgLSAoc25tcHN0YXR1cy5jKTogb3B0YXJnL29wdGluZCBuZWVkIHRvIGJlIGRlY2xhaXJlZCB1bmRlciB1bHRyaXg0LgogICAKMTk5Ny0wOC0wNyAwMjozNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKToKICAgIC0gZml4IHN3YXAgb24gSFBVWCAxMC4yMAogICAKMTk5Ny0wOC0wNyAwMTozMyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgbWliZ3JvdXAvcHJvYy5jOgoKICAgLSAoa2VybmVsLmMsIHByb2MuYyk6IFBhdGNoIGZyb20gU2ltb24gQnVyZ2U6CiAgICAgLSBJbXBsZW1lbnQgcmVhbCBwcm9jZXNzIHRhYmxlIHdhbGtzIG9uIFVsdHJpeC4KICAgCjE5OTctMDgtMDcgMDE6MTAgIHdoYXJkYWtlCgogICAqIFJFQURNRSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZQosIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvZGlzay5jLAogICBhZ2VudC9taWJncm91cC9sb2FkYXZlLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wLmM6CgogICAtIChjb25maWcqLCBsb2FkLmMsIGRpc2suYywgcGFyc2UuYywgc25tcC5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAtIFVsdHJpeCBmaXhlcyBmb3Igc3RhdGZzLCBsb2FkYXZlLgogICAgIC0gaW1wbGVtZW50IHN0cmR1cCBpZiBub3QgZm91bmQgaW4gc3lzdGVtLgogICAgIC0gdGVzdCBmb3IgdGVzdCBmbGFncyBmb3Iga2VybmVsIGNoZWNraW5nLgogICAgIC0gd2F0Y2ggb3V0IGZvciBwcydlcyB0aGF0IHJldHVybiBlZ3JlcCB3aXRoIHRoZSBwcyBhcmcgb24gdGhlIGxpbmUuCiAgICAgLSB1cCBtYXhpbXVtIGRpc2tzIHRvIDUwLgogICAKMTk5Ny0wOC0wNyAwMDoyOSAgd2hhcmRha2UKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pOiBiZXR0ZXIgZXJyb3IgbWVzc2FnZXMgYnkgYXBwcy4KICAgCjE5OTctMDctMjQgMjM6NTAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIEVkZHkgSi4gR3VybmV5OiAgdW5jb21tZW50IGdldHRpbWVvZmRheSgpIGNhbGwuCiAgIAoxOTk3LTA3LTAzIDIzOjM0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUyICkKICAgCjE5OTctMDctMDMgMjM6MzMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oCiwgc25tcGxpYi9wYXJzZS5jLCBzbm1wbGliL3BhcnNlLmg6CgogICAtIChzbm1wdHJhbnNsYXRlLmMsIG1pYi5bY2hdLCBwYXJzZS5bY2hdKToKICAgICAtIE5ldyBvcHRpb24gdG8gc25tcHRyYW5zbGF0ZSAoLWEpIHRvIG91dHB1dCBhIGFzY2lpIGR1bXAgb2YgdGhlIG1pYgogICAgICAgZGF0YWJhc2UgY2FwYWJsZSBvZiBiZWluZyB1c2VkIGJ5IHRoZSBwYXJzZXIgZm9yIHF1aWNrIE9JRCB0cmFuc2xhdGlvbnMuCiAgIAoxOTk3LTA3LTAxIDA4OjM3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzZWRzY3JpcHQuaW4sCiAgIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUxICkKICAgCjE5OTctMDctMDEgMDc6MjAgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgogICAKMTk5Ny0wNy0wMSAwNjo0MSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBkaXNrLmMsIGVycm9ybWliLmMsIGxvYWRhdmUuYywKICAgbWVtb3J5LmM6CgogICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgogICAKMTk5Ny0wNy0wMSAwNjowMiAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwKICAgc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKICAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIHNubXB0ZXN0LmMsCiAgIHNubXB3YWxrLmM6CgogICAtIChhcHBzLyouYyk6IEJldHRlciB1c2FnZSBpbmZvcm1hdGlvbiBhbmQgdXNhZ2UoKSBzdGFuZGFyaXphdGlvbi4KICAgCjE5OTctMDctMDEgMDU6NDEgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvY29tbW9uX2hlYWRlci5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jCiwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oLCBpbnRlcmZhY2VzLmMsIHZhcl9yb3V0ZS5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAtIGZpeCBmcmVlYnNkMyBzcGVjaWZpYyBwcm9ibGVtcyAoYmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBCaWxsIEZlbm5lcikuCiAgIAoxOTk3LTA3LTAxIDAxOjEwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4LmM6CgogICAtIChzbXV4LmMpOiBmaXggcHJvdG90eXBpbmcgZmFpbHVyZXMuCiAgIAoxOTk3LTA2LTMwIDA3OjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHNubXBfYXBpLmM6CgogICAtIChtaWIuYywgcGFyc2UuYywgc25tcF9hcGkuYyk6IFN1Z2dlc3Rpb25zIGZyb20gTGF1a2thbmVuIE1hcmtrdSBOUkMvSGtpOgogICAgIC0gTWFsbG9jIHR5cGVjYXN0cyBhbmQgb3RoZXIgY29ycmVjdGlvbnMgaW4gY2FzdGluZy4KICAgCjE5OTctMDYtMzAgMDY6NTggIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjMsIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oCjoKCiAgIC0gKG1pYl9hcGkuMywgcGFyc2UuW2NoXSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgLSBIYW5kbGUgbWliIG1vZHVsZSByZXBsYWNlbWVudHMgdGhyb3VnaCBuZXcgZnVuY3Rpb24gYW5kIHJlcGxhY2VtZW50IHRhYmxlLgogICAKMTk5Ny0wNi0zMCAwNjo0OSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKGNvbmZpZyosIG1lbW9yeS5jKTogUGF0Y2ggZnJvbSB2bGFkQG1pc2VyeS5yb3NwcmludC5ydToKICAgICAtIGltcGxlbWVudCBtZW1vcnkgc2VjdGlvbiBvZiB1Y2QgbWliIG9uIGxpbnV4LgogICAKMTk5Ny0wNi0zMCAwNjozOCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvd29tYmF0Lmg6CgogICAtICh3b21iYXQuaCk6IGJldHRlciBkb2N1bWVudCBjb25maWdfbG9hZF9taWIoKSBleGFtcGxlLgogICAKMTk5Ny0wNi0zMCAwNjozMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdGVzdC5jOgoKICAgLSAoc25tcHRlc3QuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gZml4IGdldCAtPiBmZ2V0ICdcbicgcHJvYmxlbS4KICAgICAtIEFsc28gbWFrZXMgc3VyZSBpdCBoYW5kbGVzIHVwIGFuZCBsb3dlciBjYXNlcy4KICAgCjE5OTctMDYtMzAgMDU6NTQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYzoKCiAgIC0gKGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYyk6IERvbid0IHB1dCAmIGluIGZyb250IG9mIG9zZjQgYWNfZW5hZGRyLgogICAKMTk5Ny0wNi0zMCAwNTo1MyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWxhcm0uYywgYWdlbnQvbWliZ3JvdXAvZXZlbnQuYywKICAgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYywKICAgYXBwcy9zbm1wX3BhcnNlX2FyZ3MuaCwgYXBwcy9zbm1wYnVsa3dhbGsuYywKICAgYXBwcy9zbm1wZ2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMKLCBhcHBzL3NubXBzdGF0dXMuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFwLmMsIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYwosIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jLCBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoYWdlbnQvc25tcF97YWdlbnQsdmFyc30uYywgYWxhcm0uYywgZXZlbnQuYywgYXBwcy8qLAogICAgICBzbm1wbGliL3NubXB7LF9hcGksX2F1dGh9LmMpOgogICAgICAtIEFkZGVkIGJhc2ljIChtb3N0bHkgY29uZm9ybWluZz8pIHYyYyBzdXBwb3J0LgogICAgICAtIE1lcmdlZCBhcmcgcGFyc2luZyBvZiBhcHBzLyogY2xpZW50cyBpbnRvIG9uZSBmaWxlLgogICAKMTk5Ny0wNi0yNiAyMzozOSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5jOgoKICAgLSAoc211eC5jKTogX19QIG1hY3JvcyB3ZXJlIGNhbGxlZCB3aXRoIHRvbyBtYW55IGFyZ3VtZW50cyAobmVlZGVkIChhcmdzKSkuCiAgIAoxOTk3LTA2LTIzIDIzOjQyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9SRUFETUU6CgogICAtIChhZ2VudC9taWJncm91cC9SRUFETUUpOiBuZWVkIDIgbGVhZGluZyAnLSdzIG9uIC0td2l0aC1taWItbW9kdWxlcyBmbGFnLgogICAKMTk5Ny0wNi0yMyAyMzo0MSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqKTogYnNkaTMgbmVlZHMgdG8gZGVmaW5lIGJzZGkyLCBub3QgaXRzZWxmIChkdWgpLgogICAKMTk5Ny0wNi0yMyAyMzo0MCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9obiBDaGFybHRvbiB0byBmaXggbGVhZGluZyBzcGFjZXMgaW4gc2Vkc2NyaXB0LgogICAKMTk5Ny0wNi0xMSAwNTo0NiAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogd2hvb3BzLgogICAKMTk5Ny0wNi0xMSAwNDo1MyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBtYWtlIE1JQkZJTEVTIGVudiB2YXIgd29yayBjb3JyZWN0bHkuCiAgIAoxOTk3LTA1LTI2IDAyOjM4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBuaWVscyBCYWdnZXNlbiB0bzoKICAgICAtIGNsb3NlIG1pYmZpbGVzIGZvciBNSUJTPUFMTC4KICAgICAtIEFsbG93IFNZTlRBWCBEaXNwbGF5U3RyaW5nIChTSVpFKSBpbnNpZGUgT0JKRUNULVRZUEUuCiAgIAoxOTk3LTA1LTI2IDAxOjU4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBidWctcmVwb3J0LAogICBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMiApCiAgIAoxOTk3LTA1LTI2IDAxOjU3ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2c6CgogICAtIChDaGFuZ2VMb2cpOiBVcGRhdGUgZm9yIDMuMi4KICAgCjE5OTctMDUtMjYgMDE6NTYgIHdoYXJkYWtlCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChzbm1wY2hlY2suZGVmKTogbmV3IHZhcmlhYmxlcyB0byBzZXQgd2Fsay9nZXQvc2V0IGNvbW1hbmQgbGluZSB1c2FnZS4KICAgCjE5OTctMDUtMjYgMDE6NTIgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBfYXBpLmgpOiB0cmFwIGxvbmcncyBiYWNrIHRvIGludHMsIGJhZCBzb2x1dGlvbi4KICAgCjE5OTctMDUtMjYgMDE6NTAgIHdoYXJkYWtlCgogICAqIElOU1RBTEwsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoSU5TVEFMTCwgY29uZmlndXJlKTogZGVmYXVsdCBtaWJzIGxpc3RlZCBjb3JyZWN0bHkuCiAgIAoxOTk3LTA1LTIzIDA3OjM0ICB3aGFyZGFrZQoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgLSAobWliX2FwaS4zKTogTW9kaWZpeSB0byBub3RlIGRlZmF1bHQgbWlicy4KICAgCjE5OTctMDUtMjMgMDc6MjMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlOCApCiAgIAoxOTk3LTA1LTIzIDA0OjQwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wX2FwaS5oKTogQ2hhbmdlIHRyYXAgdHlwZXMgZnJvbSBpbnQgdG8gbG9uZy4KICAgCjE5OTctMDUtMjMgMDQ6NDAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIChtaWIuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBTTk1QIHBlcmwgYWdhaW4uCiAgIAoxOTk3LTA1LTIzIDA0OjM4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggbXVsdGlwbGUgZnJlZXMgaW4gdjIgcGR1J3MuCiAgIAoxOTk3LTA1LTIzIDA0OjM3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggZW5kaWVubmVzIHByb2JsZW1zLgogICAKMTk5Ny0wNS0yMyAwNDozNiAgd2hhcmRha2UKCiAgICogbWlicy86IEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsIFNOTVB2Mi1UQy50eHQ6CgogICAtIChIT1NULVJFU09VUkNFUy1NSUIudHh0LCBTTk1QdjItVEMudHh0KTogRnJvbSBOaWVsczogY2hhbmdlIGltcG9ydCBjbGF1c2VzLgogICAKMTk5Ny0wNS0yMyAwNDozNiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2Vzc2VuIHRvIGZpeCBlbmRpYW5uZXMgcHJvYmxlbXMuCiAgIAoxOTk3LTA1LTIzIDA0OjM1ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogU2V0IGRlZmF1bHQgTUlCIGxpc3QuCiAgIAoxOTk3LTA1LTIyIDA0OjEzICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1NMk0tTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1NMk0tTUlCLnR4dCk6IHJlc3RvcmVkLiAgR290IHRydW5jYXRlZC4KICAgCjE5OTctMDUtMjEgMDY6NDAgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IENoYW5nZXMgZnJvbSBEYXZlLgogICAKMTk5Ny0wNS0yMSAwNjozOCAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KICAgCjE5OTctMDUtMjEgMDE6MTMgIHdoYXJkYWtlCgogICAqIE5FV1M6CgogICAtIChORVdTKTogVXBkYXRlIGZvciAzLjIuCiAgIAoxOTk3LTA1LTIwIDA3OjUwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogY29kZSBmcm9tIERhdmUgU2hpZWxkOiBhZGQgYmFjayBpbiBmaW5kX25vZGUoKSBmb3IgcGVybCB1c2FnZS4KICAgCjE5OTctMDUtMjAgMDc6NTAgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogc25tcHNldCBzaG91bGQgY2hlY2sgYWdhaW5zdCBzaXplIGRlZmluZWQgaW4gbWliLgogICAKMTk5Ny0wNS0yMCAwMjoyNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLmM6CgogICAtICh1ZHAuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjogIEZpeCBteSBjcHAgc3R1cGlkaXR5LgogICAKMTk5Ny0wNS0yMCAwMTowOCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU3ICkKICAgCjE5OTctMDUtMTkgMjM6MTkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hdXRoLmM6CgogICAtIChtaWIuYywgc25tcF9hdXRoLmMpOiBpbmNsdWRlIHN5cy9zZWxlY3QuaCBmb3IgQUlYLgogICAKMTk5Ny0wNS0xOSAyMzoxOSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGltcG9ydCBjYWxscy4KICAgCjE5OTctMDUtMTkgMjM6MTggIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gKFNOTVB2Mi1UQy50eHQpOiBDb21tZW50IG91dCBPYmplY3RTeW50YXggaW1wb3J0LgogICAKMTk5Ny0wNS0xOSAyMzowMyAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdWRwLmM6CgogICAtICh1ZHAuYyk6IE9ubHkgZG8gTWFydGluIEphY29ic3NlbidzIGZpeGVzIGZvciBmcmVlYnNkMi4KICAgCjE5OTctMDUtMTYgMDI6MjUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQcm90ZWN0IG1hbGxvYyBhZ2FpbnN0IDAgZXh0ZXJuYWwgaW1wb3J0cy4KICAgCjE5OTctMDUtMTUgMDc6NDMgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3VkcC5jOgoKICAgLSAodWRwLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzZW46CiAgICAgLSBGaXggdWRwX2lucGNiIHN0cnVjdHVyZXMuCiAgIAoxOTk3LTA1LTE1IDA3OjI2ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgIC0gV29yZGluZyBhbmQgb3JkZXIgY2hhbmdlcyBpbiBjb25maWd1cmUgLS1oZWxwIGxpbmVzLgogICAKMTk5Ny0wNS0xNSAwNzoyMiAgd2hhcmRha2UKCiAgICogSU5TVEFMTCwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqLCBJTlNUQUxMKToKICAgICAtIERpc3BsYXkgZGVmYXVsdHMgaW4gY29uZmlndXJlIC0taGVscCBsaW5lcy4KICAgCjE5OTctMDUtMTUgMDc6MDEgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9taWIuYzoKCiAgIC0gKGNvbmZpZyosIG1pYi5jKToKICAgICAtIENoYW5nZWQgZW52IHZhcmlhYmxlIE1JQkZJTEUgLT4gTUlCRklMRVMgKHNpbmNlIGl0IGlzIGEgbGlzdCBub3cpLgogICAgICAgKHdpbGwgYWNjZXB0IE1JQkZJTEUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KS4KICAgICAtIEJ5IGRlZmF1bHQsICpubyogYWRkaXRpb25hbCBtaWJmaWxlcyBhcmUgbG9hZGVkIChpZSwgbWliLnR4dCBpcyBubwogICAgICAgbG9uZ2VyIGxvYWRlZCkgYW5kIG11c3QgYmUgdHVybmVkIG9uIHRocm91Z2ggY29uZmlndXJlIG9yIHRoZSBlbnYgdmFyLgogICAgIC0gTmV3IGNvbmZpZ3VyZSBvcHRpb25zIHRvIHNldCBkZWZhdWx0IE1JQlMsIE1JQkZJTEVTLCBNSUJESVJTLgogICAKMTk5Ny0wNS0xNSAwNjoyMiAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6ICBBZGQgbmV3IG5vZGUgc3RydWN0dXJlIGVudHJpZXMuCiAgIAoxOTk3LTA1LTE1IDA1OjM3ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogcGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAtIGRlYWwgd2l0aCBtdWx0aXBsZSBtb2R1bGUgSUQncyBiZWluZyByZWZlcmVuY2VkIG9yIG5vZGVzIGRlZmluZWQuCiAgICAgLSBzdXByZXNzICJuYW1lIGNsYXNoIiB3YXJuaW5ncyBmb3IgYW5vbnltb3VzIG5vZGVzLgogICAKMTk5Ny0wNS0xNSAwMjozMiAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAobWliLmMsIHBhcnNlLmMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgIC0gcHJvdG90eXBpbmcgYW5kIG51bGwgY2hlY2tpbmcuCiAgICAgLSBpZiBNSUJTIGlzIHNldCB0byBBTEwsIHBhcnNlIGV2ZXJ5dGhpbmcgZm91bmQuCiAgIAoxOTk3LTA1LTE1IDAyOjMxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1TTUkudHh0OgoKICAgLSAoU05NUHYyLVNNSS50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgY2NpdHQgLT4gMC4KICAgCjE5OTctMDUtMTUgMDI6MzAgIHdoYXJkYWtlCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgaW1wb3J0IGluZGVudGlmaWVycy4KICAgCjE5OTctMDUtMTUgMDI6MjkgIHdoYXJkYWtlCgogICAqIG1hbi9taWJfYXBpLjM6CgogICAtIChtaWJfYXBpLjMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgTUlCUyB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIEFMTC4KICAgCjE5OTctMDUtMTUgMDI6MjggIHdoYXJkYWtlCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byByZWZlcmVuY2UgdGhlIG1ha2V0YXJnZXQgc2NyaXB0LgogICAKMTk5Ny0wNS0xNSAwMjoyMyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IHB1cmVseSBudW1lcmljIE9JRHMuCiAgIAoxOTk3LTA1LTE1IDAyOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmM6CgogICAtIChpbnRlcmZhY2VzLmMpOiBwYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gZm9yIEZyZWVCU0QKICAgCjE5OTctMDUtMTQgMDY6MDAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb25pbmZvLmMsIGJ1Zy1yZXBvcnQsCiAgIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNiApCiAgIAoxOTk3LTA1LTE0IDA0OjQ1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoc25tcGQuYyk6ICBUeXBlY2FzdCBtYWxsb2MuCiAgIAoxOTk3LTA1LTE0IDA0OjE3ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gT2RkYmpvcm4gU3RlZmZlbnNlbjoKICAgICAtIFByb3RlY3QgYWdhaW5zdCBiYXNoIG5lZWRpbmcgJzsncyBvbiBtdWx0aXBsZSBzdWJkaXIgbWFrZXMuCiAgIAoxOTk3LTA1LTE0IDA0OjEzICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogd2FybiBpZiBtaWIudHh0IGlzIGluc3RhbGxlZCBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4KICAgCjE5OTctMDUtMTQgMDI6NDEgIHdoYXJkYWtlCgogICAqIG1pYi50eHQsIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIG1pYi50eHQpOiByZW1vdmVkIG1pYi50eHQgZnJvbSBkaXN0cmlidXRpb24uICBObyBsb25nZXIgbmVlZGVkLgogICAKMTk5Ny0wNS0xMyAwNzoyMiAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL21pYi5jOgoKICAgLSAoY29uZmlnKixtaWIuYyk6IE5ldyBjb25maWd1cmUgb3B0aW9uIC0td2l0aC1kZWZhdWx0LW1pYnM9Imxpc3Q6bGlzdCIuCiAgIAoxOTk3LTA1LTEzIDA2OjM4ICB3aGFyZGFrZQoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHVjZC1zbm1wLnR4dCAtPiBVQ0QtU05NUC1NSUIudHh0LgogICAKMTk5Ny0wNS0xMyAwNjozNiAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtICh1Y2Qtc25tcC50eHQpOiBtb3ZlZCB0byBVQ0QtU05NUC1NSUIudHh0CiAgIAoxOTk3LTA1LTEzIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAtIChVQ0QtU05NUC1NSUIudHh0KTogbW92ZWQgZnJvbSB1Y2Qtc25tcC50eHQuCiAgIAoxOTk3LTA1LTEzIDA2OjA1ICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBhcmNoaXRlY3R1cmUgbGlzdCB1cGRhdGUuCiAgIAoxOTk3LTA1LTEzIDA2OjA1ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIElOU1RBTEwpOiBOZXcgZmxhZ3MgdG8gc2V0IHByb21wdGVkIHZhbHVlcyBpbnN0ZWFkIG9mIHByb21wdGluZy4KICAgCjE5OTctMDUtMTMgMDU6NDggIHdoYXJkYWtlCgogICAqIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogQ2hhbmdlZCBJRCB0byBVQ0QtU05NUAogICAKMTk5Ny0wNS0xMyAwMzowMyAgd2hhcmRha2UKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIC0gKG1pYnMvTWFrZWZpbGUuaW4pOiByZW1vdmVkIHNubXB2Mi50eHQsIHJmYzEyNzEudHh0LgogICAKMTk5Ny0wNS0xMyAwMzowMiAgd2hhcmRha2UKCiAgICogbWlicy9zbm1wdjIudHh0OgoKICAgLSAoc25tcHYyLnR4dCk6IHJlbW92ZWQuCiAgIAoxOTk3LTA1LTEzIDAyOjU3ICB3aGFyZGFrZQoKICAgKiBtaWJzL3JmYzEyNzEudHh0OgoKICAgLSAocmZjMTI3MS50eHQpOiByZW1vdmVkLgogICAKMTk5Ny0wNS0xMyAwMTo1MiAgd2hhcmRha2UKCiAgICogbWlicy86IHVjZC1zbm1wLnR4dCwgdWNkLnR4dDoKCiAgIC0gKHVjZC50eHQpOiB3aG9vcHMuICBSZW1vdmVkLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9SRkMxMjEzLU1JQi50eHQ6CgogICAtIChSRkMxMjEzLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvUkZDMTE1NS1TTUkudHh0OgoKICAgLSAoUkZDMTE1NS1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1JGQzEyNzEtTUlCLnR4dDoKCiAgIC0gKFJGQzEyNzEtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItTTJNLU1JQi50eHQ6CgogICAtIChTTk1QdjItTTJNLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVBBUlRZLU1JQi50eHQ6CgogICAtIChTTk1QdjItUEFSVFktTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9VRFAtTUlCLnR4dDoKCiAgIC0gKFVEUC1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1RDUC1NSUIudHh0OgoKICAgLSAoVENQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVRNLnR4dDoKCiAgIC0gKFNOTVB2Mi1UTS50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVRDLnR4dDoKCiAgIC0gKFNOTVB2Mi1UQy50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvU05NUHYyLVNNSS50eHQ6CgogICAtIChTTk1QdjItU01JLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9TTk1QdjItTUlCLnR4dDoKCiAgIC0gKFNOTVB2Mi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCiAgIAoxOTk3LTA1LTEzIDAxOjUxICB3aGFyZGFrZQoKICAgKiBtaWJzL1NOTVB2Mi1DT05GLnR4dDoKCiAgIC0gKFNOTVB2Mi1DT05GLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9JUC1NSUIudHh0OgoKICAgLSAoSVAtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9JQU5BaWZUeXBlLU1JQi50eHQ6CgogICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvSE9TVC1SRVNPVVJDRVMtTUlCLnR4dDoKCiAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KICAgCjE5OTctMDUtMTMgMDE6NTEgIHdoYXJkYWtlCgogICAqIG1pYnMvRXRoZXJMaWtlLU1JQi50eHQ6CgogICAtIChFdGhlckxpa2UtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy91Y2QudHh0OgoKICAgLSAodWNkLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMyAwMTo1MSAgd2hhcmRha2UKCiAgICogbWlicy9JRi1NSUIudHh0OgoKICAgLSAoSUYtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgogICAKMTk5Ny0wNS0xMSAyMzo1MiAgd2hhcmRha2UKCiAgICogbWlicy91Y2Qtc25tcC50eHQ6CgogICAtIChtaWJzL3VjZC1zbm1wLnR4dCk6IFBhdGNoIGZyb20gTWFyaW8gRGVGYXppbyB0byBmaXggdHlwb3MuCiAgICAgLSBjb21waWxlcyB1bmRlciBTTk1QYyA0LjFnLgogICAKMTk5Ny0wNS0xMSAyMzo0OSAgd2hhcmRha2UKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBtaWJfYXBpLjMuCiAgIAoxOTk3LTA1LTExIDIzOjQ4ICB3aGFyZGFrZQoKICAgKiBJTlNUQUxMLCBSRUFETUUsIFRPRE86CgogICAtIChJTlNUQUxMLCBSRUFETUUsIFRPRE8pOiBkb2N1bWVudGF0aW9uIHVwZGF0ZS4KICAgCjE5OTctMDUtMTEgMjM6NDQgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiByZW1vdmVkIENDSEFDSyA/Pz8uCiAgIAoxOTk3LTA1LTExIDIzOjQzICB3aGFyZGFrZQoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2V4dGVuc2libGUuYzoKCiAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6ICBCU0RJMyBzcGVjaWZpYyBoZWFkZXJzIGFuZCBkZWZpbmVzLgogICAKMTk5Ny0wNS0xMCAwODoyMyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wZC5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5jLAogICBtaWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKHNubXBkLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAtIGRlZmF1bHQgdHJhcCBjb21tdW5pdHkuCiAgICAgLSBtdWx0aXBsZSB0cmFwIHNpbmtzLgogICAKMTk5Ny0wNS0xMCAwNzo1MiAgd2hhcmRha2UKCiAgICogbWFuL21pYl9hcGkuMzoKCiAgIC0gKG1pYl9hcGkuMyk6IE5ldyBmaWxlIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTA1LTEwIDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIHVwZGF0ZS4KICAgCjE5OTctMDUtMTAgMDc6NDEgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkb24ndCBzdWJtaXQgYmxhbmsgYnVnLXJlcG9ydHMuCiAgIAoxOTk3LTA1LTA5IDE1OjUwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmMsIHBhcnNlLmg6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBkZWFsIHdpdGggYW5vbnltb3VzIElEcyAoZXZlbiBiZXR0ZXIpLgogICAKMTk5Ny0wNS0wOSAxNTo0NiAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IG1pYi5jLCBwYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZGVhbCB3aXRoIGFub255bW91cyBJRHMuCiAgIAoxOTk3LTA1LTA5IDE1OjI4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICBuZWdhdGl2ZSBudW1iZXJzIGluIG1pYnMuCiAgIAoxOTk3LTA1LTA5IDE1OjAzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliLzogbWliLmMsIHBhcnNlLmM6CgogICAtIChtaWIuYywgcGFyc2UuYyk6IHBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbjogcHJvdG90eXBpbmcgKG1vc3RseSkuCiAgIAoxOTk3LTA1LTA5IDE0OjUyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNtdXguYywgc211eC5oOgoKICAgLSAoc211eC5bY2hdKTogcGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuOiBwcm90b3R5cGluZy4KICAgCjE5OTctMDUtMDkgMTM6NDYgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogVXBkYXRlLgogICAKMTk5Ny0wNS0wOSAxMzo0NiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC5jLCBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZQosIGNvbmZpZy5oLmluOgoKICAgLSAoc211eC5jLCBjb25maWcqKToKICAgICAtIGNoZWNrIGZvciBzZ3R0eS5oIGFuZCBwcm90b3R5cGUgYmV0dGVyLgogICAKMTk5Ny0wNS0wOSAxMzozOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBtaWIuYywgbWliLmgsIHBhcnNlLmMKLCBwYXJzZS5oOgoKICAgLSAobWliLltjaF0sIHBhcnNlLltjaF0sIE1ha2VmaWxlLmluKTogTmV3IHBhcnNlciBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gUnVuLXRpbWUgY29udHJvbCBvZiBpbml0aWFsIG1vZHVsZSBsb2FkaW5nCiAgICAgICAgICAgICAodXNlcyBlbnYgdmFyaWFibGVzIE1JQkRJUlMsIE1JQlMsIGFuZCBNSUJGSUxFKQogICAgIC0gRGVmaW5lZCBpbnRlcmZhY2VzIGZvciBsb2FkaW5nIG1vZHVsZXMgYW5kIHJldHJlaXZpbmcgZW50cmllcwogICAgIC0gTW9kdWxlIHNjb3Bpbmcgbm93IGluY2x1ZGVzIFRleHR1YWwgQ29udmVudGlvbnMKICAgICAtIFRva2VucyBpbXBsZW1lbnRlZCBpbnRlcm5hbGx5IG5vIGxvbmdlciByZXF1aXJlIGltcG9ydGluZyB0aGUKICAgICAgIGNvcnJlc3BvbmRpbmcgbW9kdWxlcwogICAKMTk5Ny0wNC0yMiAxMTo0OSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgYnVnLXJlcG9ydCwKICAgc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU1ICkKICAgCjE5OTctMDQtMjIgMDg6NDMgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvbWliZ3JvdXAvc211eC5jOgoKICAgLSAoY29uZmlnKiwgc211eC5jKTogQ2hlY2sgZm9yIGhlYWRlcnMgYW5kIGRlZmluZSBGRF9DT1BZIGlmIG5vdCBkZWZpbmVkLgogICAKMTk5Ny0wNC0yMiAwNzo0MSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywKICAgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jOgoKICAgLSAoc25tcF9iZ3AuYywgc25tcF9yaXAyLmMsIHNubXBfb3NwZi5jLCBzbXV4LltjaF0pOgogICAgIC0gc3RhbmRhcmRpemUgaGVhZGVycyBmb3IgYXV0b2NvbmYuCiAgICAgLSBzbXV4X2luaXQoKSAtPiBpbml0X3NtdXgoKS4KICAgICAtIFNNVVhERUJVRyAtPiBET0RFQlVHICgtLWVuYWJsZS1kZWJ1Z2dpbmcgdHVybnMgdGhpcyBvbiBhdXRvbWF0aWNhbGx5KS4KICAgCjE5OTctMDQtMjIgMDY6NTEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogc25tcF9iZ3AuYywgc25tcF9iZ3AuaCwgc25tcF9vc3BmLmMKLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oOgoKICAgLSAoc25tcF9iZ3AuW2NoXSwgc25tcF9yaXAyLltjaF0sIHNubXBfb3NwZi5bY2hdKToKICAgICAtIGNvbmZvcm0gdG8gbmV3IG1vZHVsZSBzdGFuZGFyZHMgb2YgY29kaW5nLgogICAKMTk5Ny0wNC0yMiAwNjo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29tbW9uX2hlYWRlci5oKTogcmVtb3ZlIGR1cGxpY2F0ZSAod2FybmluZykgVENQIGRlZmluZXMgb24gb3NmNCBzeXN0ZW1zLgogICAKMTk5Ny0wNC0yMiAwNjoyMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBSRUFETUUuc211eCwgc211eC5jLCBzbXV4LmgsCiAgIHNubXBfYmdwLmMsIHNubXBfb3NwZi5jLCBzbm1wX3JpcDIuYzoKCiAgIC0gKFJFQURNRS5zbXV4LCBzbXV4LmMsIHNtdXguaCwgc25tcF9iZ3AuYywgc25tcF9vc3BmLmMsIHNubXBfcmlwMi5jKToKICAgICAtIHNtdXggc3VwcG9ydCBmb3IgZ2F0ZWQgZnJvbSBSb2hpdCBEdWJlLgogICAKMTk5Ny0wNC0yMiAwNjowMiAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wZ2V0LmMsCiAgIGFwcHMvc25tcGdldG5leHQuYywgYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgYXBwcy9zbm1wd2Fsay5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCB2YXJpb3VzIHRoaW5ncywgbW9zdGx5IG9uIGxpbnV4LgogICAKMTk5Ny0wNC0yMiAwNTo1OSAgd2hhcmRha2UKCiAgICogbWFrZXRhcmdldCwgYWdlbnQvY29tbW9uX2hlYWRlci5oLCBhZ2VudC9rZXJuZWwuYwosIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF92YXJzLmxpbnV4LmgsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc2suYywgYWdlbnQvbWliZ3JvdXAvZXJyb3JtaWIuYywKICAgYWdlbnQvbWliZ3JvdXAvaWNtcC5jLCBhZ2VudC9taWJncm91cC9pY21wLmgsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oCiwgYWdlbnQvbWliZ3JvdXAvaXAuYywgYWdlbnQvbWliZ3JvdXAvaXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvbG9hZGF2ZS5jLCBhZ2VudC9taWJncm91cC9tZW1vcnkuYywKICAgYWdlbnQvbWliZ3JvdXAvcm91dGVfd3JpdGUuYywgYWdlbnQvbWliZ3JvdXAvc25tcF9taWIuYwosIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmgsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jCiwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsIGFnZW50L21pYmdyb3VwL3RjcC5oLAogICBhZ2VudC9taWJncm91cC91ZHAuYywgYWdlbnQvbWliZ3JvdXAvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaDoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIGZpeCB2YXJpb3VzIHRoaW5ncywgbW9zdGx5IG9uIGxpbnV4LgogICAKMTk5Ny0wNC0yMSAyMzo0MiAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogdmFyaW91cyB1cGRhdGVzLgogICAKMTk5Ny0wMy0yNiAwODowNSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmM6CgogICAtIChtaWJncm91cC9zeXN0ZW0uYyk6IHJlcG9ydCBhZ2VudCB1cHRpbWUgcmF0aGVyIHRoYW4gc3lzdGVtIHVwdGltZS4KICAgCjE5OTctMDMtMjUgMDQ6MzAgIHdoYXJkYWtlCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogbWlub3IgZG9jIHVwZGF0ZSBmb3IgbmV3IGZsYWdzLgogICAKMTk5Ny0wMy0yNSAwMDozOSAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBhZGRlZCBzeXNsb2NhdGlvbiBhbmQgc3lzY29udGFjdCBleGFtcGxlcy4KICAgCjE5OTctMDMtMjQgMDQ6NTYgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQuCiAgIAoxOTk3LTAzLTI0IDAwOjUxICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBydW5zIG9uIGJzZGkgMi4xLgogICAKMTk5Ny0wMy0yNCAwMDo1MSAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFdhdGNoIG91dCBmb3IgbXVsdGlwbGUgc3BhY2VzIGluIEMgZGVmcy4KICAgCjE5OTctMDMtMjQgMDA6NTAgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZS5jLCBleGFtcGxlLmg6CgogICAtIChleGFtcGxlLmMsLmgpOiBOZXcgZXhhbXBsZSBtaWIgbW9kdWxlIGR1cGxpY2F0aW5nIHRoZSBwYXNzdGVzdAogICAgIHNjcmlwdCBpbiBDIGNvZGUuCiAgIAoxOTk3LTAzLTI0IDAwOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9tZW1vcnkuYzoKCiAgIC0gKG1lbW9yeS5jKTogcHJvdG90eXBlIHdyaXRlIGZ1bmN0aW9uIGJldHRlci4KICAgCjE5OTctMDMtMTggMDc6NTMgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IHNubXAuY29uZiAtPiBzbm1wZC5jb25mCiAgIAoxOTk3LTAzLTE4IDA3OjUyICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMTQgMDc6MTYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgogICAKMTk5Ny0wMy0xNCAwNDo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgc2Vkc2NyaXB0LmluLAogICBidWctcmVwb3J0OgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU0ICkKICAgCjE5OTctMDMtMTQgMDQ6NTQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBtaWJzL3VjZC1zbm1wLnR4dDoKCiAgIC0gKGFjY29uZmlnLmgsIHVjZC1zbm1wLnR4dCk6IHJlY29nbml6ZSBuZXcgaG9zdHMgZm9yIHN5c09iamVjdElkLgogICAKMTk5Ny0wMy0xNCAwNDo1MyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYywKICAgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwgYWdlbnQvc25tcGQuYwo6CgogICAtIChzbm1wZC5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHN5c3RlbS5bY2hdKToKICAgICAtIDY0Yml0IGZpeDogZ2V0X215YWRkcigpIHNob3VsZCByZXR1cm4gaW50IG5vdCBsb25nLgogICAKMTk5Ny0wMy0xNCAwNDo1MSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGFwcHMvTWFrZWZpbGUuaW4pOiBmaXggdHJhcCBieSBpbmNsdWRpbmcgb3B0aW9uYWwgLm8gZmlsZXMuCiAgIAoxOTk3LTAzLTE0IDAyOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2dyb3VwdmFycy5oOgoKICAgLSAoc25tcF9ncm91cHZhcnMuaCk6IGF4ZS4KICAgCjE5OTctMDMtMTQgMDI6MjAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyc19ldmVudC5oOgoKICAgLSAoc25tcF92YXJzX2V2ZW50LmgpOiBheGUuCiAgIAoxOTk3LTAzLTE0IDAyOjE4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCiAgIAoxOTk3LTAzLTE0IDAyOjE3ICB3aGFyZGFrZQoKICAgKiBtYWtlZGVwZW5kLmluOgoKICAgLSAobWFrZWRlcGVuZC5pbik6IHJ1biBvbiBzbm1wbmV0c3RhdCBkaXIgYWxzby4KICAgCjE5OTctMDMtMTQgMDI6MDcgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggc2Vkc2NyaXB0IHRvIGluY2x1ZGUgcyMgYXMgd2VsbCBhcyBzLyBjb21tYW5kcy4KICAgCjE5OTctMDMtMTQgMDI6MDEgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC4xLmRlZjoKCiAgIC0gKHNubXBkLjEuZGVmKTogVXBkYXRlZCB0byBpbmNsdWRlIC1jLy1DIGFuZCBTTk1QQ09ORlBBVEggZW52IHZhci4KICAgCjE5OTctMDMtMTQgMDE6NDkgIHdoYXJkYWtlCgogICAqIG1pYnMvdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogcmVtb3ZlIHRoZSBsYXN0IG9mIHRoZSBzZWQgc2NyaXB0IGRlZnMuCiAgIAoxOTk3LTAzLTE0IDAxOjQ4ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIG1pYnMvTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbiwgY29uZmlnKiwgbWlicy9NYWtlZmlsZS5pbik6IGVuYWJsZSBtaWJzLyBtYWtlIGluc3RhbGwuCiAgIAoxOTk3LTAzLTE0IDAwOjQ5ICB3aGFyZGFrZQoKICAgKiBtaWJzLzogcmZjMTI3MS50eHQsIHNubXB2Mi50eHQsIHVjZC1zbm1wLnR4dDoKCiAgIC0gKG1pYnMve3JmYzEyNzEsc25tcHYyLHVjZC1zbm1wfS50eHQpOiBOZXcgbWlicyBkaXJlY3RvcnkgZm9yIHN1Yi1taWJzLgogICAKMTk5Ny0wMy0xNCAwMDo0NyAgd2hhcmRha2UKCiAgICogbWliLnR4dDoKCiAgIC0gKG1pYi50eHQpOiBzdHJlYW1lZCBkb3duLgogICAKMTk5Ny0wMy0xNCAwMDo0NiAgd2hhcmRha2UKCiAgICogdWNkLXNubXAudHh0OgoKICAgLSAodWNkLXNubXAudHh0KTogbW92ZWQgdG8gbWlicy8uCiAgIAoxOTk3LTAzLTE0IDAwOjM4ICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbiwgZWNlLW1pYi5kZWYsIG1pYi50eHQsIG1pYklJLnR4dAosIHVjZC1zbm1wLnR4dDoKCiAgIC0gKHVjZC1zbm1wLnR4dCwgbWliLnR4dCwgTWFrZWZpbGUuaW4pOiBEb24ndCBidWlsZCBtaWIgZmlsZXMgYW55bW9yZS4KICAgCjE5OTctMDMtMTMgMDg6NDUgIHdoYXJkYWtlCgogICAqIG1ha2V0YXJnZXQsIGFnZW50L2tlcm5lbC5jLCBhZ2VudC9rZXJuZWwuaCwKICAgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvc25tcGQuYwosIGFnZW50L3NubXBkLmgsIGFnZW50L21pYmdyb3VwL2F0LmMsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmgsIGFnZW50L21pYmdyb3VwL2lwLmMsCiAgIGFnZW50L21pYmdyb3VwL2xvYWRhdmUuYywgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5jLCBhZ2VudC9taWJncm91cC92YXJfcm91dGUuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmgKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wZC4xLmRlZiwKICAgbWFuL3NubXBuZXRzdGF0LjEsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYwosIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKG1hbnkpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAtIEEgbGFyZ2UgbnVtYmVyIG9mIHByb2JsZW1zIHdpdGggdGhlIExpbnV4IHBvcnQKICAgICAtIFNvbWUgcHJvYmxlbXMgd2l0aCBOZXRCU0QgMS4yQywgYnV0IGl0J3Mgc3RpbGwgbm90IHBlcmZlY3QKICAgICAtIE1vcmUgKHN5bWJvbGljKSBkZWJ1ZyBvdXRwdXQgZnJvbSBzbm1wZCwgd2hlbiB1c2luZyAtVi4gLWQgaW1wbGllcyAtVgogICAgICAgU2hvd3MgeW91IHZhcmlhYmxlIHJlcXVlc3RlZCBhbmQgdmFsdWUgcmV0dXJuZWQKICAgICAtIFJldHVybiBpcFJvdXRlTWFzayB1bmRlciBTb2xhcmlzCiAgICAgLSBzbm1wbmV0c3RhdCAtciBzaG93cyBub24tc3RhbmRhcmQgbmV0bWFza3MKICAgICAtIHNubXBuZXRzdGF0IC1vIChuZXcpIHNob3dzIGludGVyZmFjZSBvY3RldHMsIHdpdGhvdXQgZW5xdWlyaW5nIGZvciBtdHUKICAgICAgIGFuZCBvdGhlciB2YXJpYWJsZXMgbm90IHByZXNlbnQgZm9yIGEgQ2lzY28gRnJhbWUtUmVsYXkgdmlydHVhbCBjaXJjdWl0CiAgICAgICBpbnRlcmZhY2UKICAgICAtIHNubXBuZXRzdGF0IHRjcC91ZHAgcHJpbnQtb3V0IGhhZCBudG9ocy9odG9ucyBpbiB3cm9uZyBwbGFjZXMgZm9yIHBvcnQKICAgICAgIG51bWJlcnMgKHNob3dzIHVwIG9uIGxpdHRsZS1lbmRpYW4gYXJjaGl0ZWN0dXJlcykKICAgICAtIGFkZHMgYSBtYWtldGFyZ2V0IHNjcmlwdCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBhIHBhcmFsbGVsIHN5bWxpbmtlZAogICAgICAgc291cmNlIGRpcmVjdG9yeS4gVXNlZnVsIGlmIHlvdXIgbWFrZSBkb2VzIG5vdCBzdXBwb3J0IFZQQVRICiAgIAoxOTk3LTAzLTEzIDA4OjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9jb21tb25faGVhZGVyLmg6CgogICAtIChjb21tb25faGVhZGVyLmgpOiBmaXggcGF0aCB0byBhbGFybS5oLgogICAKMTk5Ny0wMy0xMyAwNzoxNyAgd2hhcmRha2UKCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvKi9NYWtlZmlsZS5pbik6IGRlcGVuZCBwcm9ibGVtcyBmaXguCiAgIAoxOTk3LTAzLTEzIDA3OjEwICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiByZW1vdmUgZHVwbGljYXRlIGdldGhvc3RuYW1lIGNoZWNrLgogICAKMTk5Ny0wMy0xMyAwNzowNyAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgcnVsZSBmaXhlcyBhcyB3ZWxsLgogICAKMTk5Ny0wMy0xMyAwNjo0NSAgd2hhcmRha2UKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IE5ldyBtYWtlIGRlcGVuZCBydWxlcyB0byBzZXBlcmF0ZSBzeXN0ZW0vbm9uIGRlcGVuZGVudCBzdHVmZi4KICAgCjE5OTctMDMtMTMgMDY6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBzeXN0ZW0gZGVwZW5kZW50IG1vZHVsZXMuCiAgIAoxOTk3LTAzLTEzIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHZpZXdfdmFycy5jLCBjb250ZXh0X3ZhcnMuYywKICAgYWNsX3ZhcnMuYzoKCiAgIC0gKHZpZXdfdmFycy5jLCBjb250ZXh0X3ZhcnMuYywgYWNsX3ZhcnMuYyk6IGRvbid0IGluY2x1ZGUgc25tcHYyX3ZhcnMuaC4KICAgCjE5OTctMDMtMTMgMDY6MzUgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogaHB1eC5jLCBtZW1vcnkuYywgbWVtb3J5Lmg6CgogICAtIChocHV4LmMsIG1lbW9yeS5jLCBtZW1vcnkuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIHRvIGZpeCBtaW5vciBwcm9ibGVtcy4KICAgCjE5OTctMDMtMTMgMDU6NDQgIHdoYXJkYWtlCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGFjbC5jb25mLCBrZXJuZWxfc3Vub3M1LmMKLCBrZXJuZWxfc3Vub3M1LmgsIHJvdXRlX3dyaXRlLmMsCiAgIHNubXBfdmFyX3JvdXRlLmMsIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYywKICAgbWliZ3JvdXAva2VybmVsX3N1bm9zNS5oOgoKICAgLSAoa2VybmVsX3N1bm9zNS5bY2hdKTogbW92ZWQgdG8gbWliZ3JvdXAvLgogICAtIChyb3V0ZV93cml0ZS5jLCBzbm1wX3Zhcl9yb3V0ZS5jKTogZGVsZXRlIGZyb20gYWdlbnQgZGlyLgogICAKMTk5Ny0wMy0xMyAwNTozNCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgYWNsX3ZhcnMuYywgYWxhcm0uYywKICAgYWxhcm0uaCwgY29tbW9uX2hlYWRlci5oLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYwosIGV2ZW50LmgsIHBhcnR5X3ZhcnMuYywgc25tcF92YXJzLmMsCiAgIHNubXBkLmMsIHZpZXdfdmFycy5jLCBtaWJncm91cC9hY2xfdmFycy5jLAogICBtaWJncm91cC9hY2xfdmFycy5oLCBtaWJncm91cC9hbGFybS5jLCBtaWJncm91cC9hbGFybS5oCiwgbWliZ3JvdXAvY29udGV4dF92YXJzLmMsIG1pYmdyb3VwL2NvbnRleHRfdmFycy5oCiwgbWliZ3JvdXAvZXZlbnQuYywgbWliZ3JvdXAvZXZlbnQuaCwKICAgbWliZ3JvdXAvcGFydHlfdmFycy5jLCBtaWJncm91cC9wYXJ0eV92YXJzLmgsCiAgIG1pYmdyb3VwL3NubXB2Ml9zdWJ0cmVlcy5oLCBtaWJncm91cC9zbm1wdjJfdmFycy5oLAogICBtaWJncm91cC92aWV3X3ZhcnMuYywgbWliZ3JvdXAvdmlld192YXJzLmg6CgogICAtIChhZ2VudC8qLCBtaWJncm91cC8qKTogbW92ZWQgYWxhcm0sIGNvbnRleHQsIHZpZXdzLCBldmVudCwgcGFydHksCiAgICAgYW5kIGFjbCB2YXJpYWJsZSBncm91cHMgdG8gbWliZ3JvdXAvLgogICAKMTk5Ny0wMy0xMyAwMToxNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvZXh0ZW5zaWJsZV9zdWJ0cmVlcy5oOgoKICAgLSAoZXh0ZW5zaWJsZV9zdWJ0cmVlcy5oKTogUmVtb3ZlZCBmaWxlLgogICAKMTk5Ny0wMy0xMyAwMDozNyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvcGFydHlfcGFyc2UuYzoKCiAgIC0gKGNvbmZpZyopOiBjaGVjayBmb3IgaW5fYWRkcl90IGFuZCBkZWZpbmUgYXMgdV9pbnQgKDMyIGJpdHMpIGlmIG5vdCBwcmVzZW50LgogICAtIChhcHBzLyouYywgcGFydHlfcGFyc2UuYyk6IHVzZSBpdC4KICAgCjE5OTctMDMtMTMgMDA6MzIgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFwcHMvc25tcGJ1bGt3YWxrLmMsCiAgIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jCiwgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB3YWxrLmM6CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIGluX2FkZHJfdCBhbmQgZGVmaW5lIGFzIHVfaW50ICgzMiBiaXRzKSBpZiBub3QgcHJlc2VudC4KICAgLSAoYXBwcy8qLmMsIHBhcnR5X3BhcnNlLmMpOiB1c2UgaXQuCiAgIAoxOTk3LTAzLTEyIDA4OjE1ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogcmV0dXJucyBmcm9tIGluZXRfYWRkciBhcmUgaW5fYWRkcl90ICh1X2ludCkgbm90IHVfbG9uZy4KICAgCjE5OTctMDMtMTIgMDY6NTUgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL1JFQURNRToKCiAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IGRvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KICAgCjE5OTctMDMtMTIgMDY6NDggIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIHVwZGF0ZS4KICAgCjE5OTctMDMtMTIgMDY6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLAogICBhZ2VudC9taWJncm91cC9pcC5jLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5jLCBhZ2VudC9taWJncm91cC9yb3V0ZV93cml0ZS5oCiwgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXBfbWliLmMsIGFnZW50L21pYmdyb3VwL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC92YXJfcm91dGUuaDoKCiAgIC0gKGNvbmZpZ3VyZS5pbiwgc25tcGQuYywgc25tcF9hZ2VudC5jLCByb3V0ZV93cml0ZS5bY2hdLAogICAgIHZhcl9yb3V0ZS5bY2hdLCBpcC5bY2hdLCBzbm1wLltjaF0gLT4gc25tcF9taWIuW2NoXSk6CiAgICAgLSBNb3ZlZCBzbm1wIG1pYiBtb2R1bGUgLT4gc25tcF9taWIgZm9yIG5hbWluZyBjb25mbGljdHMgd2l0aCBzbm1wbGliLgogICAgIC0gTW92ZWQgc25tcF92YXJfcm91dGUuYyAtPiBtaWJncm91cC92YXJfcm91dGUuYwogICAgIC0gTW92ZWQgd3JpdGVfcm91dGUuYyAtPiBtaWJncm91cC93cml0ZV9yb3V0ZS5jCiAgIAoxOTk3LTAzLTEyIDAwOjI4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC86IHNubXBfbWliLmMsIHNubXBfbWliLmg6CgogICAtIChtaWJncm91cC9zbm1wLltoY10gLT4gbWliZ3JvdXAvc25tcF9taWIuW2hjXSk6IE1vdmVkIGR1ZSB0byBuYW1lIGNsYXNoZXMuCiAgIAoxOTk3LTAzLTExIDA4OjM2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9hdC5oLCBhZ2VudC9taWJncm91cC9pY21wLmMsCiAgIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYywgYWdlbnQvbWliZ3JvdXAvaXAuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcC5jLCBhZ2VudC9taWJncm91cC9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL3N5c3RlbS5jLCBhZ2VudC9taWJncm91cC90Y3AuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmMsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIHNubXBsaWIvbWliLmM6CgogICAtIChtaWJncm91cC8qKToKICAgICAtIHJlbW92ZSB0cmFpbGluZyA7cyBvbiBidW5jaGVzIG9mIGZ1bmN0aW9ucy4KICAgICAtIG1ha2UgZXZlcnl0aGluZyBidXQgaW50ZXJmYWNlcy5jIGNvbXBpbGUgb24gaXJpeDYuMy4KICAgLSAoY29uZmlnKixzeXN0ZW0uYyk6IHVzZSB1bmFtZSBhbmQgZ2V0aG9zdG5hbWUgaWYgYXZhaWxhYmxlLgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IERvbid0IGNoZWNrIF9LRVJORUwgaWYgaWZuZXQuaWZfbXR1IGFscmVhZHkgd29ya3MuCiAgIAoxOTk3LTAzLTExIDAwOjA0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pcC5jOgoKICAgLSAoaXAuYyk6IGZyZWVic2QyIHBhdGNoLgogICAKMTk5Ny0wMy0xMCAwODoyOCAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBzcGFjZSBwcm90ZWN0IG1vZHVsZXMgd2hlbiBjaGVja2luZyBmb3Igd2l0aCBncmVwLgogICAKMTk5Ny0wMy0xMCAwNzo1NSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBOZXcgY29uZmlndXJlIG9wdGlvbjogIC0td2l0aC1vdXQtbWliLW1vZHVsZXM9Imxpc3QiLgogICAKMTk5Ny0wMy0wNyAwNzoxMSAgd2hhcmRha2UKCiAgICogYWdlbnQvY29tbW9uX2hlYWRlci5oOgoKICAgLSAoY29tbW9uX2hlYWRlci5oKTogY29tbWVudCBvdXQgZW5kIG9mICNlbmRpZi4KICAgCjE5OTctMDMtMDcgMDc6MDkgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBtYWtlIG5ldyBjb25maWd1cmUgb3B0aW9ucyByZXNwZWN0ICQoc3JjZGlyKS4KICAgCjE5OTctMDMtMDcgMDY6MDIgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKTogcmVtb3ZlZCB7fSByZXF1aXJlbWVudCBmcm9tIGNvbmZpZ19sb2FkX21pYigpIGNhbGxzLgogICAKMTk5Ny0wMy0wNyAwNjowMCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBhdC5oLCBkaXNrLmgsIGVycm9ybWliLmgsCiAgIGV4dGVuc2libGUuaCwgaWNtcC5oLCBpbnRlcmZhY2VzLmgsIGlwLmgsCiAgIGxvYWRhdmUuaCwgbWVtb3J5LmgsIHByb2MuaCwgc25tcC5oLAogICBzeXN0ZW0uaCwgdGNwLmgsIHVkcC5oLCB2ZXJzaW9uaW5mby5oLAogICB3b21iYXQuaDoKCiAgIC0gKG1pYmdyb3VwLyopOiByZW1vdmVkIHt9IHJlcXVpcmVtZW50IGZyb20gY29uZmlnX2xvYWRfbWliKCkgY2FsbHMuCiAgIAoxOTk3LTAzLTA3IDA1OjAxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9uaW5mby5jLCBzZWRzY3JpcHQuaW4sCiAgIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTMgKQogICAKMTk5Ny0wMy0wNyAwNDo1MSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAtIChzbm1wbGliL3NubXAuYyk6IHJlbW92ZSBzZWNvbmQgY3R5cGUuaCBpbmNsdWRlLgogICAKMTk5Ny0wMy0wNyAwNDo1MCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaHB1eC5jOgoKICAgLSAoaHB1eC5jKTogaWZkZWYgYSBmZXcgaGVhZGVycyBmb3IgY29ycmVjdCBtYWtlIGRlcGVuZC4KICAgCjE5OTctMDMtMDcgMDQ6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAobWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pOiBkZXBlbmQuCiAgIAoxOTk3LTAzLTA3IDA0OjQ4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmM6CgogICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jKTogcmVtb3ZlIGV4dHByb3RvLmggaW5jbHVkZS4KICAgCjE5OTctMDMtMDcgMDQ6NDcgIHdoYXJkYWtlCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgZXh0ZW5zaWJsZS8gcmVtb3Zlcy4KICAgCjE5OTctMDMtMDcgMDQ6NDYgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBjb25maWcuaC5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbik6IEZpeCBzZWRzY3JpcHQgZ2VuZXJhdGlvbi4gIHNpZ2guCiAgIAoxOTk3LTAzLTA3IDA0OjQ0ICB3aGFyZGFrZQoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSAoLmN2c2lnbm9yZSk6IGFkZCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoxOTk3LTAzLTA3IDA0OjQwICB3aGFyZGFrZQoKICAgKiByZW1vdmUtZmlsZXM6CgogICAtIChyZW1vdmUtZmlsZXMpOiBhZGQgbWFrZWRlcGVuZC5pbgogICAKMTk5Ny0wMy0wNyAwNDozOSAgd2hhcmRha2UKCiAgICogbWFrZWRlcGVuZC5pbjoKCiAgIC0gKG1ha2VkZXBlbmQuaW4pOiBuZXcgbWFrZSBkZXBlbmQgc2NyaXB0CiAgIAoxOTk3LTAzLTA3IDAyOjQyICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBnZW5lcmF0ZSBhIG1pYl9tb2R1bGVfY29uZmlnLmggd2l0aCBkZWZpbmVzIG9mIHdoYXRzIGJlaW5nIHVzZWQuCiAgIAoxOTk3LTAzLTA3IDAxOjQ5ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zdHJ1Y3QuaDoKCiAgIC0gKG1pYmdyb3VwL3N0cnVjdC5oKTogbW92ZWQgdG8gaGVyZS4KICAgCjE5OTctMDMtMDcgMDE6MzQgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLzogaHB1eC5jLCBocHV4Lmg6CgogICAtIChocHV4LltjaF0pOiBBZGRlZCBocHV4IHNwZWNpZmljIGZpbGVzIGZyb20gZXh0ZW5zaWJsZSBkaXIuCiAgIAoxOTk3LTAzLTA3IDAxOjA3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgLSAobWlibW9kdWxlL3ZlcnNpb250YWcpOiBtb3ZlZCBpbnRvIHBsYWNlIGZyb20gZXh0ZW5zaWJsZS8KICAgCjE5OTctMDMtMDcgMDA6NTggIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJzLmgsIG1pYmdyb3VwL2Rpc2suYywgbWliZ3JvdXAvZGlzay5oCiwgbWliZ3JvdXAvZXJyb3JtaWIuYywgbWliZ3JvdXAvZXJyb3JtaWIuaCwKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5jLCBtaWJncm91cC9leHRlbnNpYmxlLmgsCiAgIG1pYmdyb3VwL2lwLmMsIG1pYmdyb3VwL2lwLmgsIG1pYmdyb3VwL2xvYWRhdmUuYywKICAgbWliZ3JvdXAvbG9hZGF2ZS5oLCBtaWJncm91cC9wYXNzLmMsIG1pYmdyb3VwL3Bhc3MuaAosIG1pYmdyb3VwL3Byb2MuYywgbWliZ3JvdXAvcHJvYy5oLAogICBtaWJncm91cC9yZWFkX2NvbmZpZy5jLCBtaWJncm91cC9yZWFkX2NvbmZpZy5oLAogICBtaWJncm91cC9zbm1wLmMsIG1pYmdyb3VwL3N5c3RlbS5jLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuaDoKCiAgIC0gKHNubXBfdmFycy5oLCBtaWJncm91cC8qKTogc3RyaWN0LXByb3RvdHlwaW5nIGFuZCBjb25maWdfcmVxdWlyZSgpcy4KICAgCjE5OTctMDMtMDcgMDA6MDcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1vcmUgbm9uLW1pYmdyb3VwIHNwZWNpZmljIGNhbGxzIGFuZCBoZWFkZXJzLgogICAKMTk5Ny0wMy0wNyAwMDowNSAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBtaWJncm91cC9NYWtlZmlsZS5pbiwgbWliZ3JvdXAvZGlzay5jLAogICBtaWJncm91cC9kaXNrLmgsIG1pYmdyb3VwL2Vycm9ybWliLmMsCiAgIG1pYmdyb3VwL2Vycm9ybWliLmgsIG1pYmdyb3VwL2V4dGVuc2libGUuYywKICAgbWliZ3JvdXAvZXh0ZW5zaWJsZS5oLCBtaWJncm91cC9sb2FkYXZlLmMsCiAgIG1pYmdyb3VwL2xvYWRhdmUuaCwgbWliZ3JvdXAvbWVtb3J5LmMsCiAgIG1pYmdyb3VwL21lbW9yeS5oLCBtaWJncm91cC9taWJkZWZzLmgsCiAgIG1pYmdyb3VwL21pYmluY2wuaCwgbWliZ3JvdXAvcGFzcy5jLCBtaWJncm91cC9wYXNzLmgKLCBtaWJncm91cC9wcm9jLmMsIG1pYmdyb3VwL3Byb2MuaCwKICAgbWliZ3JvdXAvcmVhZF9jb25maWcuYywgbWliZ3JvdXAvcmVhZF9jb25maWcuaCwKICAgbWliZ3JvdXAvc3lzdGVtLmMsIG1pYmdyb3VwL3N5c3RlbS5oLAogICBtaWJncm91cC91dGlsX2Z1bmNzLmMsIG1pYmdyb3VwL3V0aWxfZnVuY3MuaCwKICAgbWliZ3JvdXAvdmVyc2lvbmluZm8uYywgbWliZ3JvdXAvdmVyc2lvbmluZm8uaCwKICAgTWFrZWZpbGUuaW46CgogICAtIChleHRlbnNpYmxlLyogLT4gbWliZ3JvdXAvKik6IG1vdmVkIGV4dGVuc2libGUgc3R1ZmYgdG8gbWliIG1vZHVsZXMuCiAgIAoxOTk3LTAzLTA1IDA3OjI5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAtIChzbm1wX2FwaS5jKTogWWVwLiBJdCB3YXMgd3JvbmcuICBUZXN0ZWQgYW5kIHdvcmtzIG5vdy4KICAgCjE5OTctMDMtMDUgMDc6MTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgaW4gc25tcF9wYXJzZS4gIFBvc3NpYmx5IHdyb25nLgogICAKMTk5Ny0wMy0wNSAwNzoxMyAgd2hhcmRha2UKCiAgICogYWdlbnQvYWNsX3ZhcnMuYzoKCiAgIC0gKGFjbF92YXJzLmMpOiBpbmNvcnJlY3RseSBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgZm9yIHdyaXRlX2FjbCgpLgogICAKMTk5Ny0wMy0wNSAwNjowNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IGFjbC5jLCBhY2wuaCwgYWNsX3BhcnNlLmMsIGFzbjEuYwosIGFzbjEuaCwgY29udGV4dC5jLCBjb250ZXh0LmgsCiAgIGNvbnRleHRfcGFyc2UuYywgbWQ1LmMsIG1kNS5oLCBtaWIuYywKICAgbWliLmgsIHBhcnNlLmMsIHBhcnNlLmgsIHBhcnR5LmMsIHBhcnR5LmgKLCBwYXJ0eV9wYXJzZS5jLCBzbm1wLmgsIHNubXBfYXBpLmMsCiAgIHNubXBfYXBpLmgsIHNubXBfYXV0aC5jLCBzbm1wX2NsaWVudC5jLAogICBzbm1wX2NsaWVudC5oLCBzbm1wX2ltcGwuaCwgc3lzdGVtLmMsIHN5c3RlbS5oCiwgdmlldy5jLCB2aWV3Lmg6CgogICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KICAgCjE5OTctMDMtMDUgMDY6MDEgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwL2F0LmMsIGFnZW50L21pYmdyb3VwL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL2ljbXAuYywgYWdlbnQvbWliZ3JvdXAvaWNtcC5oLAogICBhZ2VudC9taWJncm91cC9pbnRlcmZhY2VzLmMsIGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuaAosIGFnZW50L21pYmdyb3VwL2lwLmMsIGFnZW50L21pYmdyb3VwL2lwLmgsCiAgIGFnZW50L21pYmdyb3VwL3NubXAuYywgYWdlbnQvbWliZ3JvdXAvc25tcC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wdjJfdmFycy5oLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uYywKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmgsIGFnZW50L21pYmdyb3VwL3RjcC5jLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL3VkcC5oLCBhcHBzL3NubXBidWxrd2Fsay5jLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYwosIGFwcHMvc25tcHN0YXR1cy5jLCBhcHBzL3NubXB0ZXN0LmMsCiAgIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB0cmFwLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHdhbGsuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYzoKCiAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgogICAKMTk5Ny0wMy0wNSAwNTo1OCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L2FjbF92YXJzLmMsCiAgIGFnZW50L2FsYXJtLmMsIGFnZW50L2FsYXJtLmgsIGFnZW50L2NvbW1vbl9oZWFkZXIuaAosIGFnZW50L2NvbnRleHRfdmFycy5jLCBhZ2VudC9ldmVudC5jLAogICBhZ2VudC9ldmVudC5oLCBhZ2VudC9rZXJuZWwuaCwgYWdlbnQvcGFydHlfdmFycy5jCiwgYWdlbnQvcm91dGVfd3JpdGUuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBfdmFyc19ldmVudC5oLAogICBhZ2VudC9zbm1wZC5jLCBhZ2VudC9zbm1wZC5oLCBhZ2VudC92YXJfc3RydWN0LmgKLCBhZ2VudC92aWV3X3BhcnNlLmMsIGFnZW50L3ZpZXdfdmFycy5jOgoKICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCiAgIAoxOTk3LTAzLTA1IDAyOjM3ICB3aGFyZGFrZQoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBDb250cmlidXRlciBuYW1lIGFkZGl0aW9uLgogICAKMTk5Ny0wMy0wNSAwMjoyOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuaDoKCiAgIGZpbGUgc25tcGQuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KICAgCjE5OTctMDMtMDUgMDI6MjggIHdoYXJkYWtlCgogICAqIGFnZW50L2tlcm5lbC5oOgoKICAgZmlsZSBrZXJuZWwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy0xLTQtcHJlMi1uaWVscy4KICAgCjE5OTctMDMtMDUgMDI6MTcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIEVsd3luIEIgRGF2aWVzOgogICAgIC0gRml4IGEgUERVIGNsb25pbmcgYnVnLgogICAKMTk5Ny0wMy0wNSAwMTowNCAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvLmN2c2lnbm9yZToKCiAgIC0gKG1pYmdyb3VwLy5jdnNpZ25vcmUpOiBuZXcgdG8gaWdub3JlIGNyZWF0ZWQgLmggZmlsZXMuCiAgIAoxOTk3LTAzLTA1IDAxOjAzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9zeXN0ZW0uYzoKCiAgIC0gKHN5c3RlbS5jKTogcmVtb3ZlZCBzeXN0ZW0gbmxpc3QgKHVudXNlZCkuCiAgIAoxOTk3LTAzLTA1IDAwOjQ4ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9jb21tb25faGVhZGVyLmgsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9zbm1wX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sCiAgIGFnZW50L21pYmdyb3VwL2F0LmgsIGFnZW50L21pYmdyb3VwL2ljbXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5oLAogICBhZ2VudC9taWJncm91cC9zbm1wLmMsIGFnZW50L21pYmdyb3VwL3NubXAuaCwKICAgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL3N5c3RlbS5oLAogICBhZ2VudC9taWJncm91cC90Y3AuaCwgYWdlbnQvbWliZ3JvdXAvdWRwLmgsCiAgIGFnZW50L21pYmdyb3VwL3dvbWJhdC5oOgoKICAgLSAoY29uZmlnKiwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgLSBBZGRlZCAubyBmaWxlIGxpc3QgdG8gYWdlbnQvTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGNvbmZpZ3VyZS4KICAgICAtIG5ldyBmaWxlcyBnZW5lcmF0ZWQgYnkgY29uZmlndXJlOgogICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmg6ICBBIGxpc3Qgb2YgbWliIC5oIGZpbGVzIGZvciBzbm1wX3ZhcnMuaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZXZlcnkgbW9kdWxlICptdXN0KiBoYXZlIGEgLmggZmlsZSkKICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9pbml0cy5oOiBBIGxpc3Qgb2YgaW5pdF93b21iYXQoKSB0eXBlIGZ1bmN0aW9ucy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25seSBwcmVzZW50IGlmIGV4aXN0IGluIHdvbWJhdC5jKS4KICAgICAgIC0gbWliZ3JvdXAvbWliX21vZHVsZV9sb2Fkcy5oOiBUaGlzIGZpbGUgaXMgZ2VuZXJhdGVkIGJ5IGEgbmV3IG1hY3JvIGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIG1pYi5oIGZpbGVzIGNhbGxlZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19sb2FkX21pYigpLCB3aGljaCBzaW1wbGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhlIGxvYWRpbmcgb2YgdGhlIG1pYiBzZWN0aW9ucy4KICAgCjE5OTctMDMtMDQgMDY6NDQgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICAtIChjb25maWcqLCBtaWJncm91cC9NYWtlZmlsZS5pbik6CiAgICAgLSBtaWJncm91cCBjb21waWxlIGxpc3QgaXMgYnVpbGQgYnkgY29uZmlndXJlIGFuZCBjYW4gYmUgYXVnbWVudGVkCiAgICAgICBieSB0aGUgLS13aXRoLW1pYi1tb2R1bGVzPSJsaXN0IG9mIG1vZHVsZXMiIGNvbW1hbmQgbGluZSB0byBjb25maWd1cmUuCiAgIAoxOTk3LTAyLTE3IDA3OjExICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTIgKQogICAKMTk5Ny0wMi0xNyAwNjozMiAgd2hhcmRha2UKCiAgICogYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jOgoKICAgLSAoaW50ZXJmYWNlcy5jKTogUmVtb3ZlIE1BWF9OQU1FX0xFTkdUSCByZXF1aXJlbWVudHMuCiAgIAoxOTk3LTAyLTE3IDA2OjMxICB3aGFyZGFrZQoKICAgKiBhZ2VudC9taWJncm91cC9pY21wLmM6CgogICAtIChpY21wLmMpOiBkb24ndCB1c2UgcmV0IHZhcmlhYmxlLCBzaW5jZSBpdCdzIG5vdCBkZWZpbmVkLgogICAKMTk5Ny0wMi0xNyAwNjozMCAgd2hhcmRha2UKCiAgICogYWdlbnQvZXZlbnQuYzoKCiAgIC0gKGV2ZW50LmMpOiBXYXMgcGFzc2luZyBhbiBpbnQgdG8gYmNvcHkgaW5zdGVhZCBvZiAmaW50LgogICAKMTk5Ny0wMi0xNyAwNjozMCAgd2hhcmRha2UKCiAgICogYWdlbnQvYWxhcm0uYzoKCiAgIC0gKGFsYXJtLmMpOiB0eXBlZGVmIGZvciBnZXRTdGF0UHRyKCkuCiAgIAoxOTk3LTAyLTE3IDA1OjUzICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBtaWJncm91cC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6ICBNYWtlIGRlcGVuZC4KICAgCjE5OTctMDItMTcgMDU6NDcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBtaWIuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaDoKCiAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byByZW1vdmUKICAgICBBTlNJIHNwZWNpZmljIHJlcXVpcmVtZW50cy4KICAgCjE5OTctMDItMTcgMDU6NDYgIHdoYXJkYWtlCgogICAqIGFnZW50L21pYmdyb3VwLy5jdnNpZ25vcmU6CgogICAtIChhZ2VudC9taWJncm91cC8uY3ZzaWdub3JlKTogQWRkZWQuCiAgIAoxOTk3LTAyLTE3IDA1OjM4ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4sCiAgIGFnZW50L2NvbW1vbl9oZWFkZXIuaCwgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluLCBhZ2VudC9taWJncm91cC9SRUFETUUKLCBhZ2VudC9taWJncm91cC9hdC5jLCBhZ2VudC9taWJncm91cC9hdC5oLAogICBhZ2VudC9taWJncm91cC9leHRlbnNpYmxlX3N1YnRyZWVzLmgsIGFnZW50L21pYmdyb3VwL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL2ljbXAuaCwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5jCiwgYWdlbnQvbWliZ3JvdXAvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9pcC5jCiwgYWdlbnQvbWliZ3JvdXAvaXAuaCwgYWdlbnQvbWliZ3JvdXAvc25tcC5jLAogICBhZ2VudC9taWJncm91cC9zbm1wLmgsIGFnZW50L21pYmdyb3VwL3NubXB2Ml9zdWJ0cmVlcy5oCiwgYWdlbnQvbWliZ3JvdXAvc25tcHYyX3ZhcnMuaCwgYWdlbnQvbWliZ3JvdXAvc3lzdGVtLmMKLCBhZ2VudC9taWJncm91cC9zeXN0ZW0uaCwgYWdlbnQvbWliZ3JvdXAvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL3RjcC5oLCBhZ2VudC9taWJncm91cC91ZHAuYywKICAgYWdlbnQvbWliZ3JvdXAvdWRwLmgsIGFnZW50L21pYmdyb3VwL3dvbWJhdC5jLAogICBhZ2VudC9taWJncm91cC93b21iYXQuaDoKCiAgIC0gKGFnZW50L3NubXBfdmFycywgYWdlbnQvbWliZ3JvdXApOiBEYXZlIFNoaWVsZCBzcGxpdCB1cCB0aGUKICAgICBzbm1wX3ZhcnMuYyBhbmQgcmVsYXRlZCBmaWxlcyBpbnRvIHBpZWNlcyBmb3IgZWFzaWVyIG1hbmFnZW1lbnQuCiAgICAgVGhlIHJlc3VsdHMgb2YgaGlzIHdvcmsgYXJlIGluIHRoZSBuZXcgYWdlbnQvbWliZ3JvdXAgZGlyZWN0b3J5LgogICAKMTk5Ny0wMi0xMSAwODowMCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFJlc3Qgb2YgUGhpbGlwJ3MgcGF0Y2ggdG8gZml4IHNyY2RpciBwcm9ibGVtcyAoc2ggdmFycykuCiAgIAoxOTk3LTAyLTExIDA3OjQ0ICB3aGFyZGFrZQoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBmaXggc3JjZGlyIHByb2JsZW1zLgogICAKMTk5Ny0wMi0xMSAwNzo0MiAgd2hhcmRha2UKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKGFwcHMvTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBkZXNjZW5kIHdoZW4gbWFrZSBjbGVhbmluZy4KICAgCjE5OTctMDItMTEgMDU6MTQgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlMSApCiAgIAoxOTk3LTAyLTExIDA1OjEzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfYXV0aC5jOgoKICAgLSAoc25tcF9hdXRoLmMpOiByZW1vdmUgbm9uLXN0YXRpYyBtZDVkaWdlc3QgcHJvdG90eXBlLgogICAKMTk5Ny0wMi0xMSAwNToxMSAgd2hhcmRha2UKCiAgICogbG9jYWwvTWFrZWZpbGUuaW4sIG1hbi9NYWtlZmlsZS5pbiwgb3YvTWFrZWZpbGUuaW4KOgoKICAgLSAoe2xvY2FsLG1hbixvdn0vTWFrZWZpbGUuaW4pOiBSZW1vdmUgc3BhY2VzIGluIGZyb250IG9mIHRhYnMuCiAgIAoxOTk3LTAyLTExIDA1OjEwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMubGludXguaDoKCiAgIC0gKHNubXBfdmFycy5saW51eC5oKTogRml4ICNpZmRlZi4KICAgCjE5OTctMDItMTEgMDQ6MTcgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wc3RhdHVzLmMsIGFwcHMvc25tcHRlc3QuYywKICAgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvYWNsX3BhcnNlLmMKLCBzbm1wbGliL2NvbnRleHQuYywgc25tcGxpYi9jb250ZXh0LmgsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5LmgsCiAgIHNubXBsaWIvcGFydHlfcGFyc2UuYywgc25tcGxpYi9zbm1wLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2FwaS5oLAogICBzbm1wbGliL3NubXBfYXV0aC5jLCBzbm1wbGliL3ZpZXcuYywgc25tcGxpYi92aWV3LmgKOgoKICAgLSAoYWxsIC5jIHdpdGggbWFpbigpLCBzbm1wbGliLyopOiBQYXRjaCBmcm9tIFBoaWxpcCBHdWVudGhlcjoKICAgICAtIE1ha2UgYmV0dGVyIHN1cHBvcnQgZm9yIHNoYXJlZCBsaWIgcG9zc2liaWxpdGllcy4KICAgCjE5OTctMDItMTEgMDQ6MTIgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IFVwZGF0ZSBwZW9wbGUgc3VwcGx5aW5nIHBhdGNoZXMgbGlzdC4KICAgCjE5OTctMDItMTEgMDQ6MTAgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbgosIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIGxvY2FsL01ha2VmaWxlLmluCiwgbWFuL01ha2VmaWxlLmluLCBvdi9NYWtlZmlsZS5pbiwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gKCpNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgIC0gRml4IGFsbCBNYWtlZmlsZS5pbidzIHRvIHN1cHBvcnQgYSBkaWZmZXJlbnQgc3JjIGRpci4KICAgCjE5OTctMDItMTEgMDM6NTQgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgRml4IGhwdXggc3BlY2lmaWMgcHJvYmxlbXMuCiAgIAoxOTk3LTAyLTExIDAzOjUwICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMubGludXguaDoKCiAgIC0gKHNubXBfdmFycy5saW51eC5oKTogUmVtb3ZlZCBub24tbGludXggc3BlY2lmaWMgc3R1ZmYuCiAgIAoxOTk3LTAyLTExIDAzOjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLAogICBzbm1wX3ZhcnMubGludXguaDoKCiAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMubGludXguaCk6IFBhdGNoIGZyb20gSmVubmlmZXIgQnJheToKICAgICAtIEdldCBhZ2VudCB3b3JraW5nIG9uIGxpbnV4LgogICAKMTk5Ny0wMi0xMCAwMDo1NCAgd2hhcmRha2UKCiAgICogTkVXUzoKCiAgIC0gKE5FV1MpOiBXaG9vcHMuCiAgIAoxOTk3LTAyLTEwIDAwOjUxICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zICkKICAgCjE5OTctMDItMTAgMDA6NTAgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgMy4xLjMKICAgCjE5OTctMDItMTAgMDA6MjIgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jOgoKICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUmVtb3ZlIG1hbGxvYyBwcm90b3R5cGUsIG5vdyBpbiBzdGRsaWIuaC4KICAgCjE5OTctMDItMTAgMDA6MjIgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IERhdmUgU2hpZWxkcycgYWRkaXRpb25zOiAgZmluZGluZyBtb3JlIGluZm8uCiAgIAoxOTk3LTAyLTA1IDA4OjQxICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW4sIGJ1Zy1yZXBvcnQ6CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTQgKQogICAKMTk5Ny0wMi0wNSAwODoyOSAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdGNsIHN0dWZmLgogICAKMTk5Ny0wMi0wNSAwODoyNCAgd2hhcmRha2UKCiAgICogTkVXUywgbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKE5FV1MpOiByZW1vdmVkIHRjbCBzdHVmZi4KICAgCjE5OTctMDItMDUgMDg6MjAgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KTogQ2hhbmdlIHN1YmplY3QgbGluZSB0byBzaG9ydGVuIGFuZCBmb3JjZSBiZXR0ZXIgZGVzY3JpcHRpb24uCiAgIAoxOTk3LTAyLTA1IDA4OjEzICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc3lzdGVtLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBubGlzdCBwcm9ibGVtcy4KICAgCjE5OTctMDItMDUgMDg6MDkgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvc25tcF9ncm91cHZhcnMuaCwKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgYWdlbnQvc25tcF92YXJzLmMsCiAgIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvaWYuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBzbm1wIG1pYiBncm91cCBjbGVhbnVwcy4KICAgICAtIHRyYXAgZ2VuZXJhdGlvbiBjbGVhbnVwcy4KICAgICAtIGFkZGVkIG1hbiBlbnRyaWVzIGZvciB0cmFwIGdlbmVyYXRpb24uCiAgICAgLSBpbXByb3ZlZCBhZ2VudCBkZWJ1Z2dpbmcgb3V0cHV0IHdpdGggYWdlbnQncyAtZCBmbGFnLgogICAKMTk5Ny0wMi0wNSAwODowNyAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFB1dCAvZGV2L2tzeW1zIGFoZWFkIG9mIC9rZXJuZWwvdW5peC4KICAgCjE5OTctMDItMDUgMDc6MzMgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKTogbWlzYyByZXF1ZXN0ZWQgYWRkaXRpb25zLgogICAKMTk5Ny0wMi0wNSAwNzozMyAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSB1cGRhdGVkIGFyY2hpdGVjdHVyZSBsaXN0cy4KICAgCjE5OTctMDItMDQgMDA6NDEgIHdoYXJkYWtlCgogICAqIEZBUToKCiAgIC0gKEZBUSk6IEFkZGVkIFRPQyBhbmQgYXV0b3Igbm90ZXMgOy0pLgogICAKMTk5Ny0wMi0wNCAwMDozNyAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBTaW1vbjogY29tbWVudCAjaWZkZWYgZW5kaW5ncyBmb3IgQU5TSSBjb21wbGllcnMuCiAgIAoxOTk3LTAyLTA0IDAwOjM2ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRml4IGhwdXggcHJvYmxlbXMsICphZ2FpbiouCiAgIAoxOTk3LTAyLTA0IDAwOjM1ICB3aGFyZGFrZQoKICAgKiBUT0RPOgoKICAgLSAoVE9ETyk6IEFkZGVkIHN1Z2dlc3Rpb25zIGZyb20gdWNkLXNubXAtY29kZXJzLgogICAKMTk5Ny0wMi0wNCAwMDozNSAgd2hhcmRha2UKCiAgICogRkFROgoKICAgLSAoRkFRKTogRGF2ZSdzIGxhdGVzdCByZXZpc2lvbi4KICAgCjE5OTctMDItMDMgMDQ6NTUgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbiwgYnVnLXJlcG9ydDoKCiAgIHZlcnNpb24gdGFnICggMy4xLjMucHJlMyApCiAgIAoxOTk3LTAyLTAzIDA0OjUzICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0OgoKICAgLSAoYnVnLXJlcG9ydCk6IG1vdmUgY29uZmlnLmNhY2hlIHRvIGVuZCBvZiBtZXNzYWdlLgogICAKMTk5Ny0wMi0wMyAwNDozMyAgd2hhcmRha2UKCiAgICogTkVXUywgUkVBRE1FLCBUT0RPOgoKICAgLSAoUkVBRE1FLCBORVdTLCBUT0RPKTogVXBkYXRlIGZvciAzLjEuMy4KICAgCjE5OTctMDItMDMgMDQ6MTUgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6CiAgICAgLSBhZGRlZCBGQVEgcG9pbnRlci4KICAgICAtIERhdmUncyBFbmdsaXNoIHBvaW50ZXJzIChpZSwgaGUgcHJvb2ZlZCBpdCBhbmQgSSwgdWgsIGRvbid0Li4uKS4KICAgICAtIHN3aXRjaCBmdHAgbWlycm9yLgogICAgIC0gYnVnLXJlcG9ydCBzY3JpcHQgbWVudGlvbmVkLgogICAgIC0gSSAtPiBXZSwgbWUgLT4gdXMuLi4KICAgCjE5OTctMDItMDMgMDM6NTEgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IHJlbW92ZSBwcm9qZWN0IGhpc3RvcnkuCiAgIAoxOTk3LTAyLTAzIDAzOjQ3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogYWRkIHNvbWUgaXJpeCBhcHByb3ByaWF0ZSBpbmNsdWRlcy4KICAgCjE5OTctMDItMDMgMDM6NDQgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIChzbm1wbGliL3N5c3RlbS5jKTogdHlwbzogIG5lZWRzIGEgc3BhY2UgYmV0d2VlbiAnc3RhdGljJyBhbmQgJ3N0cnVjdCcuCiAgIAoxOTk3LTAyLTAzIDAyOjUwICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBhY2xvY2FsLm00LCBjb25maWcuaC5pbiwKICAgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKToKICAgICAtIENoZWNrIGZvciBpcml4IDYuMiBoZWFkZXJzLgogICAgIC0gQ2hlY2sgaWYgX0tFUk5FTCBuZWVkcyB0byBiZSBkZWZpbmVkIGZvciBpcml4IGFuZCBpZm5ldCB1c2FnZS4KICAgICAtIFVzZSB0aGUgZm91bmQgVU5BTUUgcHJvZ3JhbSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHdlIGhhdmUgaXQuCiAgIAoxOTk3LTAyLTAzIDAxOjQ4ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6ICBVc2UgQ0FOX1VTRV9TWVNDVEwgaW5zdGVhZCBvZiBic2RsaWtlLgogICAKMTk5Ny0wMi0wMyAwMTo0NyAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQKICAgICAtIE1hcmsgc3R1ZmYgZm9yIGxhdGVyIGNoYW5nZXMuCiAgIAoxOTk3LTAyLTAzIDAxOjQ1ICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgLSBDaGVjayBmb3Igd2hvYW1pLCBsb2duYW1lLgogICAgIC0gRG9uJ3QgcGFzcyBudWxsIGFyZ3MgdG8ga3NoLgogICAKMTk5Ny0wMi0wMyAwMTowMyAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjb21tZW50IG91dCBwb3NzaWJsZSBzZWN1cml0eSBwcm9ibGVtIGxpbmVzLgogICAKMTk5Ny0wMi0wMyAwMTowMiAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgIC0gZG9tYWluIG5hbWUgZml4IGFuZCBlZGl0b3IgYm9tYiBvdXQuCiAgIAoxOTk3LTAxLTMxIDAyOjAzICB3aGFyZGFrZQoKICAgKiBidWctcmVwb3J0LCBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyB1cGRhdGUKICAgCjE5OTctMDEtMzEgMDE6NTkgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBjaGFuZ2VkIGFyY2ggdG8gaHBwYSBhbmQgbWFrZSBzdXJlIC9iaW4va3NoIGV4aXN0cy4KICAgCjE5OTctMDEtMzEgMDE6NDkgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXJlIG9mZiBrc2ggaWYgaHB1eCAmJiBzaC4KICAgCjE5OTctMDEtMzEgMDE6MDEgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjoKICAgICAtIENoYW5nZSBzb21lIHN5c3RlbSBzcGVjaWZpYyBpZmRlZnMgdG8gQ0FOX1VTRV9TWVNDVEwuCiAgICAgLSBGaXggY29tcGxpYXRpb24gZXJyb3JzIG9uIGJzZGkyLgogICAgIC0gRml4IHJvdXRpbmcgdGFibGVzIGZvciBzaW1pbGFyLgogICAKMTk5Ny0wMS0zMSAwMDo1NyAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmUsIGNvbmZpZy5oLmluLAogICBhY2NvbmZpZy5oOgoKICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBrc3RhdC5oIGFuZCBpZiBzeXNjdGwgY2FuIHJlYWQgdGhlIGJvb3R0aW1lLgogICAKMTk5Ny0wMS0yOSAwNDowOCAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIC0gKGJ1Zy1yZXBvcnQpOgogICAgIC0gY2hhbmdlIHRvIGFkZHJlc3MgKGJhY2spIHRvIHVjZC1zbm1wLWNvZGVycy4KICAgICAtIEFkZCBhIHRyYXAgb24gc2lnbmFscyB0byByZW1vdmUgdG1wIGZpbGVzLgogICAKMTk5Ny0wMS0yOSAwMzo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jOgoKICAgLSAoa2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgLSBGaXggdmFyaW91cyB3YXJuaW5ncy9lcnJvcnMuCiAgICAgLSBJbXBsZW1lbnQgcmVhbCB0cmFwcy4KICAgCjE5OTctMDEtMjkgMDM6MTEgIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlKTogdXBkYXRlCiAgIAoxOTk3LTAxLTI5IDAzOjExICB3aGFyZGFrZQoKICAgKiBGQVE6CgogICAtIChGQVEpOiByZXZpc2lvbiBvbmUhCiAgIAoxOTk3LTAxLTI5IDAzOjEwICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pOiBOZXcgcHMgb3B0aW9ucyB0byBjaGVjayBmb3IuCiAgIAoxOTk3LTAxLTI5IDAzOjA5ICB3aGFyZGFrZQoKICAgKiBhY2xvY2FsLm00OgoKICAgLSAoYWNsb2NhbC5tNCk6IEZpeCBjaGVja19zdHJ1Y3RfZm9yIHRvIGRlZmluZSB0aGluZ3MgY29ycmVjdGx5LgogICAKMTk5Ny0wMS0yOSAwMzowOCAgd2hhcmRha2UKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgLnNvZnR3YXJlLmRiLnNoCiAgIAoxOTk3LTAxLTI5IDAzOjA3ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oOgoKICAgLSAoYWNjb25maWcuaCk6CiAgICAtIFNOTVBCTE9DSyA9ICFTTk1QQkxPQ0sKICAgCjE5OTctMDEtMjkgMDM6MDcgIHdoYXJkYWtlCgogICAqIGJ1Zy1yZXBvcnQ6CgogICAtIChidWctcmVwb3J0KToKICAgIC0gQWx3YXlzIHVzZSBtdWx0aXBhcnQ6IHZlcnNpb24gaW5mbyBhbmQgY29uZmlnLmNhY2hlIGFyZSBvbmUuCiAgICAtIHJlLWFycmFuZ2VkIGEgYml0LgogICAgLSBBZGRlZCBpbnRyb2R1Y3Rpb24uCiAgICAtIEd1ZXNzIGF0IGRvbWFpbiBuYW1lIGlmIHBvc3NpYmxlLgogICAKMTk5Ny0wMS0yOSAwMTo0NyAgd2hhcmRha2UKCiAgICogYnVnLXJlcG9ydDoKCiAgIGJ1ZyByZXBvcnRpbmcgc2NyaXB0IGFkZAogICAKMTk5Ny0wMS0yMSAwMDoxNyAgd2hhcmRha2UKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jKToKICAgICAtIFBhdGNoIGZyb20gS2FybCBMZWhlbmJhdWVyIDxrYXJsQGhhbW1lcjEub3BzLk5lb1NvZnQuY29tPgogICAgICAgLSBoYW5kbGUgbXVsdGlwbGUgaW50ZXJmYWNlIG5hbWVzID4gMTAgcHJvcGVybHkuCiAgIAoxOTk3LTAxLTIwIDIzOjM0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50Lmg6CgogICAtIChzbm1wX2NsaWVudC5oKTogcmVtb3ZlIHNlY29uZCAod3JvbmcpIGZ1bmN0aW9uIHByb3RvdHlwZS4KICAgCjE5OTctMDEtMjAgMjM6MzMgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKTogcmVtb3ZlIHNlY29uZCBjaGFyIGRlZmluaXRpb24uCiAgIAoxOTk3LTAxLTIwIDA3OjU5ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTEgKQogICAKMTk5Ny0wMS0yMCAwNzo0MyAgd2hhcmRha2UKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMsIHNubXBfY2xpZW50LmgKOgoKICAgLSAoc25tcF9hcGkuYywgc25tcF9jbGllbnQuW2NoXSk6CiAgICAgLSBQYXRjaCBmcm9tIFBhdHJpY2UgVkFOQUNLRVIgPHZhbmFja2VyQHdvcmxkbmV0LmZyPjoKICAgICAgIC0gZml4IHJlcXVlc3QgZGVsZXRpb25zIGluIHNubXBfcmVhZCgpLgogICAgICAgLSBhZGRlZCByZXR1cm4gYXJndW1lbnQgdG8gc25tcF9hZGRfbnVsbF92YXIoKS4KICAgCjE5OTctMDEtMjAgMDY6NTUgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gPG1hcnRpbkBleG1hbmRhdG8uc2U+OgogICAgIC0gYWRkIGJzZGkgdG8gc29tZSAjaWZkZWZzLgogICAKMTk5Ny0wMS0yMCAwNjozOCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jLCByZWFkX2NvbmZpZy5jKTogUmVtb3ZlIEFOU0kgY3BwICNlbGlmJ3MuCiAgIAoxOTk3LTAxLTIwIDA2OjM2ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQXV0b2hlYWRlciBpcyBkdW1iOiAgUHV0IG1hY3JvIGRlZmluZXMgYmVsb3dlIEBCT1RUT01AIHN5bWJvbC4KICAgCjE5OTctMDEtMjAgMDY6MjIgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gUGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAtIChzbm1wX2NsaWVudC5jKTogV2FpdCAxMjAgc2Vjb25kcyBiZWZvcmUgcmV0dXJuaW5nLgogICAKMTk5Ny0wMS0yMCAwNjowOCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsCiAgIG1hbi9zbm1wdHJhcGQuOCwgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY29udGV4dC5oLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL21pYi5oLAogICBzbm1wbGliL3BhcnNlLmMsIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcC5oLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZpZXcuaDoKCiAgIC0gUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgLSBpbXBsZW1lbnRlZDogaW50ZXJmYWNlcy5pZlRhYmxlLmlmRW50cnkuaWZTcGVjaWZpYywKICAgICAgICAgaXAuaXBSb3V0aW5nRGlzY2FyZHMsCiAgICAgICAgIGlwLmlwQWRkclRhYmxlLmlwQWRkckVudHJ5LmlwQWRFbnRSZWFzbU1heFNpemUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1hc2sgLAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNZXRyaWM1LAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVJbmZvLCBpcC5pcE5ldFRvTWVkaWFUYWJsZSwKICAgICAgICAgdWRwLnVkcFRhYmxlLgogICAgLSB1ZHAgY29ubmVjdGlvbiB0YWJsZS4KICAgIC0gaXBOZXRUb01lZGlhLgogICAKICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgIC0gdWRwTm9Qb3J0LCB0Y3BJbkVycnMgZml4ZXMgZm9yIFNvbGFyaXMuCiAgICAtIGxpbnV4IGFwcGxpY2F0aW9uIHN1cHBvcnQuCiAgICAtIHNubXAgdmFyaWFibGUgZ3JvdXAuCiAgICAtIHNpbXBsZSBjb2xkIHN0YXJ0IHRyYXBzIHZpYSBleGVjKCdzbm1wdHJhcCcpLgogICAgLSBNSUIgcGFyc2VyIGZpeGVzLgogICAgLSBNZW1vcnkvZnJlZSBhbGxvY2F0aW9uIGZpeGVzLgogICAKMTk5Ny0wMS0yMCAwNjowNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9hbGFybS5oLCBhZ2VudC9ldmVudC5jLAogICBhZ2VudC9ldmVudC5oLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQva2VybmVsX3N1bm9zNS5jCiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX2dyb3VwdmFycy5oLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3Zhcl9zdHJ1Y3QuaAosIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jLAogICBhcHBzL3NubXBnZXRuZXh0LmMsIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXBzdGF0dXMuYwosIGFwcHMvc25tcHRlc3QuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsCiAgIGFwcHMvc25tcHRyYXAuYywgYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wd2Fsay5jCjoKCiAgIC0gUGF0Y2hlcyBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgLSBpbXBsZW1lbnRlZDogaW50ZXJmYWNlcy5pZlRhYmxlLmlmRW50cnkuaWZTcGVjaWZpYywKICAgICAgICAgaXAuaXBSb3V0aW5nRGlzY2FyZHMsCiAgICAgICAgIGlwLmlwQWRkclRhYmxlLmlwQWRkckVudHJ5LmlwQWRFbnRSZWFzbU1heFNpemUsCiAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1hc2sgLAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVNZXRyaWM1LAogICAgICAgICBpcC5pcFJvdXRlVGFibGUuaXBSb3V0ZUVudHJ5LmlwUm91dGVJbmZvLCBpcC5pcE5ldFRvTWVkaWFUYWJsZSwKICAgICAgICAgdWRwLnVkcFRhYmxlLgogICAgLSB1ZHAgY29ubmVjdGlvbiB0YWJsZS4KICAgIC0gaXBOZXRUb01lZGlhLgogICAKICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgIC0gdWRwTm9Qb3J0LCB0Y3BJbkVycnMgZml4ZXMgZm9yIFNvbGFyaXMuCiAgICAtIGxpbnV4IGFwcGxpY2F0aW9uIHN1cHBvcnQuCiAgICAtIHNubXAgdmFyaWFibGUgZ3JvdXAuCiAgICAtIHNpbXBsZSBjb2xkIHN0YXJ0IHRyYXBzIHZpYSBleGVjKCdzbm1wdHJhcCcpLgogICAgLSBNSUIgcGFyc2VyIGZpeGVzLgogICAgLSBNZW1vcnkvZnJlZSBhbGxvY2F0aW9uIGZpeGVzLgogICAKMTk5Ny0wMS0xNyAwMjo1OCAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpOgogICAgIC0gVXNhZ2UoKSB1cGRhdGUgYW5kIHZlcnNpb24gcHJpbnRvdXQgdXBkYXRlLgogICAKMTk5Ny0wMS0xNyAwMjo1MSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMsIGV4dGVuc2libGUuYyk6CiAgICAgLSBOZXcgYXJnIC1jIEZJTEU6ICAJICAgUmVhZCBGSUxFIGFzIGEgY29uZmlndXJhdGlvbiBmaWxlIGFzIHdlbGwuCiAgICAgLSBOZXcgYXJnIC1DOiAgICAgICAJICAgRG9uJ3QgcmVhZCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZXMuCiAgICAgLSBOZXcgZW52IFNOTVBDT05GUEFUSDogIFJlYWQgc25tcGR7LC5sb2NhbH0uY29uZiBmaWxlcyBpbjogc2VwZXJhdGVkIHBhdGguCiAgIAoxOTk3LTAxLTE0IDA3OjQ1ICB3aGFyZGFrZQoKICAgKiBQT1JUSU5HLCBSRUFETUUsIFRPRE86CgogICAtIChQT1JUSU5HLCBSRUFETUUsIFRPRE8pOiAgQWRkZWQgdWNkLXNubXAtY29kZXJzIGFzIGRlZmF1bHQgbWFpbCBhZGRyZXNzLgogICAKMTk5Ny0wMS0wOSAyMzo0NiAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIC0gKHNubXB0cmFwZC5jKTogUmVtb3ZlIGJyb2tlbiBGRF9TRVQgY29kZS4KICAgCjE5OTctMDEtMDkgMjM6NDUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IENoZWNrIGZvciAvZGV2L2tzeW1zIGZvciBzb2xhcmlzIGtlcm5lbC4KICAgCjE5OTctMDEtMDkgMjM6NDMgIHdoYXJkYWtlCgogICAqIENPUFlJTkc6CgogICAtIChDT1BZSU5HKTogIFVwZGF0ZSBmb3IgOTcuCiAgIAoxOTk2LTEyLTA1IDAwOjE5ICB3aGFyZGFrZQoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS4yLjEgKQogICAKMTk5Ni0xMi0wNSAwMDoxOSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nOgoKICAgLSAoQ2hhbmdlTG9nKTogVXBkYXRlLgogICAKMTk5Ni0xMi0wNSAwMDoxNCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIC0gKG1kNS5jKTogcmVtb3ZlIGFuc2kgc3BlY2lmaWMgQyBmZWF0dXJlcyAodW5zaWduZWQgY29uc3RhbnRzKS4KICAgCjE5OTYtMTItMDUgMDA6MTMgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiAjaWZuZGVmIC0+ICNpZmRlZiBmb3Igc2lnc2V0LgogICAKMTk5Ni0xMi0wNCAwMTowMyAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMiApCiAgIAoxOTk2LTEyLTA0IDAxOjAxICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChDaGFuZ2VMb2csIE5FV1MpOiAgVXBkYXRlIGZvciByZWxlYXNlIDMuMS4yLgogICAKMTk5Ni0xMi0wNCAwMDo0OSAgd2hhcmRha2UKCiAgICogUE9SVElORywgUkVBRE1FOgoKICAgLSAoUE9SVElORywgUkVBRE1FKTogIFVwZGF0ZSBmb3IgcmVsZWFzZSAzLjEuMi4KICAgCjE5OTYtMTItMDQgMDA6MTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBhc24xLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsCiAgIHNubXBfY2xpZW50LmM6CgogICAtIChhc24xLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8TmllbHMuQmFnZ2VzZW5AdW5pLWMuZGs+OgogICAgICAgLSBQYXJzZXIgZml4ZXMgZm9yIG11bHRpcGxlIG5vZGVzLgogICAgICAgLSBtZW1tb3ZlL2NvcHkgZGVsZXRlcy4KICAgCjE5OTYtMTItMDMgMDU6NTEgIHdoYXJkYWtlCgogICAqIGVjZS1taWIuZGVmOgoKICAgLSAoZWNlLW1pYi5kZWYpOiBVc2VkIC0+IEF2YWlsIGluIG1lbW9yeSBzZXF1ZW5jZS4KICAgCjE5OTYtMTItMDMgMDI6MTQgIHdoYXJkYWtlCgogICAqIEVYQU1QTEUuY29uZi5kZWYsIGxvY2FsL3Bhc3N0ZXN0OgoKICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgcGFzc3Rlc3QpOiBNb3ZlIHBhc3N0ZXN0IHRvIHVjZGF2aXMgc3VidHJlZS4KICAgCjE5OTYtMTItMDMgMDI6MDMgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogRnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAtIEZpeCBhcnAgdGFibGUgZm9yIGhwdXguCiAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3IgYXJwaGQuYXRfbmV4dCBhbmQgdXNlIGluIGFib3ZlLgogICAKMTk5Ni0xMi0wMyAwMTowNSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9tZDUuYzoKCiAgIC0gKG1kNS5jKTogUHV0ICdVJ25zaWduZWQgbWFya2VyIGF0IGVuZCBvZiBjb25zdGFudHMgdG8gcmVtb3ZlIGdjYyB3YXJucy4KICAgCjE5OTYtMTItMDMgMDE6MDMgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChjb25maWcqLCBzbm1wX3ZhcnMuYyk6CiAgICAgLSBXcm90ZSBBQ19DSEVDS19TVFJVQ1RfRk9SIGFuZCB1c2UgaXQuCiAgICAgLSBNYWtlIEFDX0NIRUNLX0lGTkVUX0ZPUiB1c2UgYWJvdmUuCiAgICAgLSBDaGFuZ2VxdW90ZSAnW10nIC0+ICcnIGFyb3VuZCBzZWQgZXhwcmVzc2lvbiB3aXRoIFtdcyAoLURvc3R5cGUpLgogICAKMTk5Ni0xMi0wMSAyMzo1NSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBpZlBoeXNBZGRyIC0gaW4gSW50ZXJmYWNlX0dldF9FdGhlcl9CeV9JbmRleCwgSFAtVVggaGFzIHRoZSBzYW1lCiAgICAgICAgICAgRXRoZXJBZGRyIHN0cnVjdXJlIGFzIE1JUFMuCiAgIAogICAgIC0gaXBBZEVudElmSW5kZXggLSBpbiB2YXJfaXBBZGRyRW50cnksIHRoZXJlIGlzIGEgZmFsc2UgbWF0Y2ggb24KICAgICAgICAgICB0aGUgbG9vcGJhY2sgaW50ZXJmYWNlLCBnaXZpbmcgdGhlIHdyb25nIGFuc3dlciBvZiB0aGUgZmlyc3QKICAgICAgICAgICBpbnRlcmZhY2UgaW5kZXguCiAgIAogICAgIC0gdWRwSW5FcnJvcnMgLSBpbiB2YXJfdWRwLCB0aGUgY291bnQgb2YgVURQIGVycm9ycyBvbWl0cyBkaXNjYXJkZWQKICAgICAgICAgICBwYWNrZXRzLiAgU29tZSBzeXN0ZW1zIChpLmUuIEhQLVVYKSBoYXZlIGV4dGVuZGVkIHRoZSB1ZHBzdGF0CiAgICAgICAgICAgc3RydWN0dXJlIHRvIGluY2x1ZGUgdGhlc2UuICBJJ3YgdHdlYWtlZCB0aGlzIGFuYWxvZ291cyB0byBhCiAgICAgICAgICAgc2ltaWxhciBhZGRpdGlvbiBpbiB0aGUgdGNwc3RhdCBzdHJ1Y3R1cmUuCiAgIAogICAgIC0gdGNwQ29ublN0YXRlIC0gSFAtVVggaGFzIGFkZGVkIGFuIGV4dHJhIHN0YXRlIGludG8gdGhlIGxpc3QsIHdoaWNoCiAgICAgICAgICAgdGhyb3dzIHRoZSByZXN0IG9mIHRoZW0gb3V0LgogICAKMTk5Ni0xMS0yNiAyMzo1NiAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSk6IFRydW5jYXRlIHN5c3RlbSBuYW1lcyBiZXlvbmQgWy1fXS4qLgogICAKMTk5Ni0xMS0yNiAyMzo0NSAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IFJlc2V0IHNpZ25hbCBvbiBhbGwgdHlwZXMgb2Ygc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KICAgCjE5OTYtMTEtMjYgMjM6MzQgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGlmLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gV2F0Y2ggb3V0IGZvciBpbnRlcmZhY2UgbmFtZXMgd2l0aCAnICcgaW4gdGhlbS4KICAgICAtIFJlc2V0IHNpZ25hbCBvbiBCU0Qgc2lnbmFsIGltcGxlbWVudGF0aW9ucy4KICAgCjE5OTYtMTEtMjYgMjM6MjEgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IFVwZGF0ZS4KICAgCjE5OTYtMTEtMjYgMjM6MjEgIHdoYXJkYWtlCgogICAqIElOU1RBTEw6CgogICAtIChJTlNUQUxMKTogVHlwbzogIDMuMS4zIC0+IDMuMC4zLgogICAKMTk5Ni0xMS0yNiAyMzowNSAgd2hhcmRha2UKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IERlZmF1bHQgc3lzbG9jIFVDRGF2aXMgLT4gVW5rbm93bi4KICAgCjE5OTYtMTEtMjYgMjM6MDIgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgIC0gQ2hhbmdlIGNvbW1lbnRzIHRvIHJlZmxlY3Qgd2hhdCBpdHMgYWN0dWFsbHkgbG9va2luZyBhdC4KICAgICAtIFJlbW92ZSBpZmRlZiBhcm91bmQgaWZuZXQgZGVjbGFyYXRpb25zLgogICAKMTk5Ni0xMS0yNSAwMDoxNSAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoY29uZmlnKiwgc25tcF9pbXBsLmgpOiBNb3ZlZCB2b2lkIC0+IGNoYXIgZGVmaW5lIHRvIGEgY29uZmlndXJlIHRlc3QuCiAgIAoxOTk2LTExLTI0IDIzOjQzICB3aGFyZGFrZQoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gKHthZ2VudCxhcHBzfS9NYWtlZmlsZS5pbik6IFB1dCBsaWJzbm1wLmEgaW4gZnJvbnQgb2YgLWwgbGlicy4KICAgCjE5OTYtMTEtMjQgMDc6NDUgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjIucHJlMSApCiAgIAoxOTk2LTExLTI0IDA3OjI0ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9rZXJuZWwuYywgSU5TVEFMTCwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoa2VybmVsLmMsIGNvbmZpZyosIElOU1RBTEwpOiAgTmV3IGNvbmZpZ3VyZSBzd2l0Y2g6ICAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MuCiAgICAgLSBUaGUgYWdlbnQgZG9lc24ndCBleGl0IGlmIGl0IGNhbid0IG9wZW4gL2Rldi9rbWVtLgogICAKMTk5Ni0xMS0yMiAwNTozNyAgd2hhcmRha2UKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuaC5pbiwgY29uZmlnLnN1YiwKICAgY29uZmlndXJlLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzOgoKICAgLSAoY29uZmlnKiwgaW5zdGFsbC1zaCwgbWtpbnN0YWxsZGlycyk6IFVwZ3JhZGVkIHRvIGF1dG9jb25mIDIuMTEuCiAgIAoxOTk2LTExLTIyIDAwOjE0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogQWRkIGNoZWNrcyBmb3IgaWZuZXQuW2lvXWJ5dGVzLgogICAKMTk5Ni0xMS0yMiAwMDowNiAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChzbm1wX3ZhcnMuYyk6IE1lcmdlIGZyb20gRnJlZUJTRDItMy0xLTEuCiAgICAgLSBBZGQgY2hlY2tzIGZvciBpZm5ldC5baW9dYnl0ZXMuCiAgIAoxOTk2LTExLTIxIDIzOjE4ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogVHJhc2ggaW50ZXJmYWNlIGNhY2hpbmcuCiAgIAoxOTk2LTExLTE1IDA3OjQ0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKTogIEFkZCBiYWNrIGluICJyZWFkaW5nIG1pYi4uLiIgZGVidWdnaW5nIHN0YXRtZW50cy4KICAgCjE5OTYtMTEtMTUgMDc6NDMgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IE1ha2UgdW5hbWUgY2FsbHMgd29yayBjb3JyZWN0bHkuCiAgIAoxOTk2LTExLTE0IDA2OjI0ICB3aGFyZGFrZQoKICAgKiBhcHBzLzogc25tcHRyYXAuYywgc25tcG5ldHN0YXQvaW5ldC5jLAogICBzbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgLSAoc25tcHRyYXAuYywgaW5ldC5jLCByb3V0ZS5jKTogdHlwZWNhc3Rpbmcgd2FybmluZyBmaXhlcy4KICAgCjE5OTYtMTEtMTQgMDY6MTcgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOgogICAgIC0gQ2hlY2sgZm9yIGV4aXN0YW5jZSBvZiB0Y3BzdGF0LnRjcHNfcmN2bWVtZHJvcC4KICAgICAtIENoZWNrIGZvciBzeXMvdmZzLmguCiAgIAoxOTk2LTExLTE0IDA2OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKToKICAgICAtICNpZmRlZiB0eXBvLgogICAgIC0gcHJvdG90eXBlIGZvciBJbnRlcmZhY2VfU2Nhbl9Jbml0KCkuCiAgICAgLSBDaGVjayBmb3IgZXhpc3RhbmNlIG9mIHRjcHN0YXQudGNwc19yY3ZtZW1kcm9wIGJlZm9yZSB1c2luZy4KICAgCjE5OTYtMTEtMDggMDg6MDYgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXhlZCAndG91Y2hpdCcuCiAgIAoxOTk2LTExLTA4IDA4OjAzICB3aGFyZGFrZQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogQ3JlYXRlZCBhICd0b3VjaGl0JyB0byB0b3VjaCBjb25maWcgZmlsZXMgcHJvcGVybHkuCiAgIAoxOTk2LTExLTA3IDA1OjE5ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgLSAobWliLmMpOiB0eXBlY2FzdCBmb3Igc3ByaW50X29iamlkKCkuCiAgIAoxOTk2LTExLTA3IDA1OjE3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogaWZkZWYgdHlwb3MuCiAgIAoxOTk2LTExLTA3IDA1OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYyk6IGlmZGVmJ3MgYXJvdW5kIHN0cmluZ3MuaC4KICAgCjE5OTYtMTEtMDcgMDU6MTUgIHdoYXJkYWtlCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBDaGFuZ2VkIGRlZmF1bHQgU05NUFYyQVVUSCB0byBTTk1QVjEuCiAgIAoxOTk2LTExLTA3IDAwOjM0ICB3aGFyZGFrZQoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIGFnZW50L3JvdXRlX3dyaXRlLmMsCiAgIGFnZW50L3NubXBfdmFyX3JvdXRlLmMsIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBCU0RpMiAzLjEuMSBicmFuY2ggbWVyZ2UuCiAgIAoxOTk2LTExLTA3IDAwOjIyICB3aGFyZGFrZQoKICAgKiBhZ2VudC9rZXJuZWwuYywgYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wYnVsa3dhbGsuYwosIGFwcHMvc25tcGdldC5jLCBhcHBzL3NubXBnZXRuZXh0LmMsCiAgIGFwcHMvc25tcHNldC5jLCBhcHBzL3NubXB0ZXN0LmMsIGFwcHMvc25tcHRyYW5zbGF0ZS5jCiwgYXBwcy9zbm1wdHJhcC5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYywgbWFuL3NubXB0cmFuc2xhdGUuMSwKICAgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9wYXJzZS5jLAogICBzbm1wbGliL3BhcnNlLmg6CgogICAtIE5pZWxzIDMuMS4xIGJyYW5jaCBtZXJnZS4KICAgCjE5OTYtMTEtMDcgMDA6MTUgIHdoYXJkYWtlCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc2Vkc2NyaXB0LmluLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmg6CgogICAtIE5ldEJTRCAzLjEuMC4xIGJyYW5jaCBtZXJnZS4KICAgCjE5OTYtMTEtMDQgMDE6MDggIHdoYXJkYWtlCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3Igbmxpc3QgaW4gLWxtbGQgKGlyaXgpLgogICAKMTk5Ni0xMS0wNCAwMDozMCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGNvbmZpZyosIHNubXBfdmFycy5jLCBleHRlbnNpYmxlLmMpOiAgTW9yZSBpbmNsdWRlIGNoZWNrcyBmb3IgbGludXguCiAgIAoxOTk2LTEwLTMxIDIzOjU0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuICA8c2ltb25Ac3dpdGNoLmNoPjoKICAgICAtIGFzbl9idWlsZF91bnNpZ25lZF9pbnQsIGFzbl9idWlsZF91bnNpZ25lZF9pbnQ2NDoKICAgICAgIC0gRG9uJ3QgdHJ5IHRvIHN0cmlwIEZGcyBmcm9tIHRoZSBoaWdoIGVuZCBvZiB1bnNpZ25lZCB2YWx1ZXMuCiAgICAgICAtIFNraXAgdGhlIHN0cmlwcGluZyBjb2RlIGVudGlyZWx5IGlmIHdlIGhhdmUgdG8gYWRkIGEgbnVsbCBieXRlLgogICAKMTk5Ni0xMC0zMCAwNDo0OCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBlY2UtbWliLmRlZjoKCiAgIC0gKGNvbmZpZyosIGVjZS1taWIuZGVmKToKICAgICAtIENoYW5nZSBleHRlbnNpYmxlIG1pYiBsb2NhdGlvbiB0byB1Y2RhdmlzIGVudGVycHJpc2UgbWliOiAyMDIxLgogICAgIC0gUmVtb3ZlIGFzc29jaWF0ZWQgcHJvbXB0aW5nIGZyb20gY29uZmlndXJlIHNjcmlwdCBhbmQgZXRjLgogICAKMTk5Ni0xMC0zMCAwNDo0NyAgd2hhcmRha2UKCiAgICogUE9SVElORywgUkVBRE1FOgoKICAgLSAoUE9SVElORyxSRUFETUUpOiBBZGQgYSBuZXcgUE9SVElORyBmaWxlIHRvIHJlZmVyZW5jZSBhdXRvY29uZiBwbGVlLgogICAKMTk5Ni0xMC0xNiAyMzowMiAgd2hhcmRha2UKCiAgICogc2Vkc2NyaXB0LmluOgoKICAgdmVyc2lvbiB0YWcgKCAzLjEuMS5CU0RJICkKICAgCjE5OTYtMTAtMDkgMDc6NDYgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjEgKQogICAKMTk5Ni0xMC0wOSAwNzo0NSAgd2hhcmRha2UKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogdXBkYXRlIGZvciAzLjEuMS4KICAgCjE5OTYtMTAtMDkgMDc6MjIgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIHRoYW5rcyBuYW1lLgogICAKMTk5Ni0xMC0wOSAwNzoxOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IEZyb206IGdhaEBiZWxsY29yZS5jb20gKEdhcnkgQS4gSGF5d2FyZCkKICAgICAtIEZyZWUgcGR1IGNvbW11bml0eSB0byBxdWVsY2ggcHVyaWZ5LgogICAKMTk5Ni0xMC0wOSAwMDozMCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6CiAgICAgLSBwcmludCBhIG5ldyBsaW5lIGluIHByaW50X2Vycm9yKCkgaWYgZGVidWdnaW5nIGlzIHR1cm5lZCBvbi4KICAgICAtIHRvc3NPYmplY3RJZGVudGlmaWVyKCk6IGNhdGNoIG11bHRpcGxlIGJyYWNrZXQgY2xhdXNlcyAoSUUgeyB7MCAwfSB9ICkuCiAgIAoxOTk2LTEwLTA5IDAwOjA0ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChwYXJzZS5jKToKICAgICAtIFBhcnNlIE9CSkVDVC1JREVOVFkgYXMgT0JKRUNULUdST1VQIChzYXZlcyBvbmx5IGRlc2NyaXB0aW9uKS4KICAgICAtIENoYW5nZSBwcmludF9lcnJvcigpLCByZWFkX21pYigpIHRvIHJlZmxlY3QgZmlsZSBhbmQgY29ycmVjdCBsaW5lIG51bWJlci4KICAgCjE5OTYtMTAtMDcgMDQ6MjMgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IEFkZGVkIHN5c2NvbnRhY3QgYW5kIHN5c2xvY2F0aW9uLgogICAKMTk5Ni0xMC0wNyAwNDoyMyAgd2hhcmRha2UKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgLSAoc25tcGQuMS5kZWYpOiBDaGFuZ2VkIHRvIHJlZmxlY3QgU05NUExJQi9taWJzLgogICAKMTk5Ni0xMC0wNyAwMzowNiAgd2hhcmRha2UKCiAgICogLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiAgQWRkZWQgdWNkLXNubXAudHh0CiAgIAoxOTk2LTEwLTA3IDAzOjAwICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZS5pbik6CiAgICAgLSB0aW1lc3RhbXAgc3RhbXAtaCBhdCBlbmQuCiAgICAgLSBlbWFjcyBsb2NhbCB2YXJzLgogICAKMTk5Ni0xMC0wNyAwMjoyMiAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6CiAgICAgLSBhZGRlZCAtLXJlY2hlY2sgdG8gY29uZmlnLnN0YXR1cyBjYWxsIHRvIHJlZ2VuZXJhdGUgc2VsZi4KICAgICAtIENoYW5nZWQgZWNlLW1pYi50eHQgLT4gdWNkLXNubXAudHh0IGFuZCBpbnN0YWxsIChhbmQgZ2VuZXJhdGUpIHByb3Blcmx5LgogICAKMTk5Ni0xMC0wNyAwMToxMSAgd2hhcmRha2UKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoc25tcF9hZ2VudC5jKTogUmVtb3ZlZCBzbm1wIHZlcnNpb24gY2hlY2sgb24gZXJyb3IgcmV0dXJuIGZyb20gc2V0LgogICAKMTk5Ni0xMC0wNyAwMDo1MiAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKik6IGNoZWNrIGNvcnJlY3RseSBmb3IgZ2V0L3NldG1udGVudC4KICAgCjE5OTYtMTAtMDcgMDA6MDEgIHdoYXJkYWtlCgogICAqIE1ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBNaWIgaW5zdGFsbGF0aW9uIGNoYW5nZWQgdG8gcmVmbGVjdCBuZXcgbWliIGRpcmVjdG9yeS4KICAgCjE5OTYtMTAtMDYgMjM6NDkgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiAgUHJvcGVyIGF1dG9jb25mIGRpcmVudCBoZWFkZXJzLgogICAKMTk5Ni0xMC0wNiAyMzo0MSAgd2hhcmRha2UKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgLSAocGFyc2UuYyk6ICBOb3cgbG9hZHMgYWxsIG1pYnMgKGZpbGVzKSBpbiB0aGUgZGlyZWN0b3J5IFNOTVBMSUIvbWlicy4KICAgCjE5OTYtMTAtMDQgMDI6MDEgIHdoYXJkYWtlCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6IGxpYiAtPiBsaWIvc25tcCBwYXRoIGNvcnJlY3Rpb24gaW4gRklMRVMgc2VjdGlvbi4KICAgLSAoc25tcGQuMS5kZWYpOgogICAgIC0gQWRkZWQgYSBGSUxFUyBzZWN0aW9uLgogICAgIC0gR2VuZXJhbCBjbGVhbiB1cC4KICAgCjE5OTYtMTAtMDQgMDE6NDYgIHdoYXJkYWtlCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgLSAoc25tcGQuY29uZi41LmRlZik6CiAgICAgLSBDbGVhbmVkIHVwIG1hbiBwYWdlIGZvcm1hdHRpbmcuCiAgICAgLSBBZGRlZCBub3RlIGFib3V0IFNOTVBzZXQgY29tbXVuaXR5IHN0cmluZ3MuCiAgICAgLSBtaW5vciBwcm9vZi1yZWFkaW5nIChtYWpvciBwcm9vZmluZyBuZWVkZWQgc3RpbGwpLgogICAgIC0gUmUtb3JnYW5pemVkIGEgYml0LgogICAKMTk5Ni0xMC0wNCAwMTo0NCAgd2hhcmRha2UKCiAgICogTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZS5pbik6IFJlbW92ZSBzcGFjZXMgZnJvbSBzZWRzY3JpcHQgd2hlbiB1c2luZyBicm9rZW4gY3BwIChnY2MpLgogICAKMTk5Ni0xMC0wNCAwMTo0MyAgd2hhcmRha2UKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBBZGRlZCBzbm1wZ2V0L3NldCB0byBwYXNzIGV4YW1wbGUuCiAgIAoxOTk2LTEwLTAzIDA4OjEwICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL3NubXBfaW1wbC5oOgoKICAgLSAoc25tcF9pbXBsLmgpOiAgVHVybiBvbiBvbGQgQ01VIGRlYnVnZ2luZyBzdGF0bWVudHMgd2l0aCAtLWVuYWJsZS1kZWJ1Z2dpbmcuCiAgIAoxOTk2LTEwLTAzIDA4OjA1ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAtIChzbm1wX2FnZW50LmMpOgogICAgIC0gTWFrZSBhZ2VudCBwcm9wZXJseSBjaGVjayBzbm1wc2V0IGV4aXQgY29kZXMgYW5kIHVzZSB0aGVtIChvbiBDT01NSVQpLgogICAKMTk5Ni0xMC0wMSAwODoyOCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlnKiwgcmVhZF9jb25maWcuYyk6CiAgICAgLSBDaGVjayBmb3IgbW50ZW50LmggYW5kIGluY2x1ZGUgaXQuCiAgICAgLSBDaGVjayBmb3IgL2V0Yy9tbnR0YWIgb3IgL2V0Yy9tdGFiIGFuZCB1c2UgYXBwcm9wcmlhdGVseS4KICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgLSBwaWNrIGdldG1udGVudCBvdmVyIGdldGZzZmlsZSBpZiBib3RoIGFyZSBhdmFpbGFibGUuCiAgICAgLSBkZWJ1ZyBjbGVhbnVwIChvZmlsZSAtPiBzdGRlcnIsIGNoZWNrIGZvciBET0RFQlVHIGluc3RlYWQgb2YgY29uc3QgdmFyKS4KICAgCjE5OTYtMTAtMDEgMDc6MzAgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvOiBwYXJzZS5jLCBwYXJzZS5oOgoKICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IEZyb20gSm9lIE1hcnpvdDoKICAgICAtIGFsbG93cyB0aGUgQ01VIGxpYiB0byByZXRhaW4gdGhlIFRDIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBhCiAgICAgICBwYXJ0aWN1bGFyIG9iamVjdC4gSW4gcGFydGljdWxhciB0aGlzIGFsbG93cyBEaXNwbGF5U3RyaW5ncyB0byBiZQogICAgICAgZGlmZmVyZW50aWF0ZWQgZnJvbSBPY3RldFN0cmluZ3Mgd2hlbiB0aGV5IGFyZSBsb29rZWQgdXAgaW4gdGhlCiAgICAgICBNaWIgVHJlZS4KICAgCjE5OTYtMDktMjUgMDU6MTQgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogZnJlZWJzZDIgdHlwZWNhc3QuCiAgIAoxOTk2LTA5LTI0IDA4OjE2ICB3aGFyZGFrZQoKICAgKiBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jOgoKICAgLSAoc25tcF92YXJfcm91dGUuYyk6IHR5cG8gZml4aW5nIGEgdHlwbyAoc2lnaC4uKS4KICAgCjE5OTYtMDktMjQgMDg6MDIgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBNb3ZlZCBhIHZhcmlhYmxlIGRlY2xhaXJhdGlvbi4KICAgCjE5OTYtMDktMjQgMDc6NTkgIHdoYXJkYWtlCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IHR5cG9zLgogICAKMTk5Ni0wOS0yNCAwNzo1NCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIC0gKGNvbmZpZyosIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOiBBZGRlZCBzeXMvc2VsZWN0LmggZm9yIEFJWC4KICAgCjE5OTYtMDgtMzAgMDI6NTEgIHdoYXJkYWtlCgogICAqIENoYW5nZUxvZzoKCiAgIC0gKENoYW5nZUxvZyk6IE1vcmUgbWlub3IgYnVncyBsaXN0ZWQKICAgCjE5OTYtMDgtMzAgMDI6NDkgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1hbGxvYyBwcm90b3R5cGUgZHVlIHRvIGNvbmZsaWN0aW9ucy4KICAgCjE5OTYtMDgtMzAgMDE6MTUgIHdoYXJkYWtlCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKICAgCjE5OTYtMDgtMzAgMDA6MzQgIHdoYXJkYWtlCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4xLjAuMSApCiAgIAoxOTk2LTA4LTMwIDAwOjM0ICB3aGFyZGFrZQoKICAgKiBDaGFuZ2VMb2csIE5FV1M6CgogICAtIChORVdTLCBDaGFuZ2VMb2cpOiBVcGRhdGVkIGZvciAzLjEuMC4xCiAgIAoxOTk2LTA4LTMwIDAwOjI0ICB3aGFyZGFrZQoKICAgKiBhcHBzL01ha2VmaWxlLmluOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6ICBBZGRlZCBrZXJuZWxfc3Vub3M1Lm8gdG8gc25tcHRyYXAgZm9yIGdldEtzdGF0LgogICAKMTk5Ni0wOC0zMCAwMDoyMyAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6IHBhdGNoIHNjcmV3ZWQgdXAuCiAgIAoxOTk2LTA4LTMwIDAwOjIyICB3aGFyZGFrZQoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZToKCiAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAtIHJlbW92ZWQgLVhzIGZsYWcgZm9yIGdjYyBvbiBzb2xhcmlzLgogICAgIC0gbG9nZmlsZSBjaGVja3MgZm9yIGV4aXN0YW5jZSBvZiAvdmFyL2xvZyBhbmQgL3Vzci9hZG0uCiAgIAoxOTk2LTA4LTI5IDA3OjI5ICB3aGFyZGFrZQoKICAgKiBSRUFETUUsIFRPRE86CgogICAtIENoYW5nZWQgbXkgZW1haWwgYWRkcmVzcyB0byBteSBuZXcgb25lLgogICAKMTk5Ni0wOC0yOSAwNzoyMCAgd2hhcmRha2UKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGF1dG9jb25mKiwgc25tcF92YXJzLmMpOiBSZW1vdmVkIHNvbWUgc29sYXJpcyBpZmRlZnMuCiAgIAoxOTk2LTA4LTI5IDA3OjAzICB3aGFyZGFrZQoKICAgKiBhcHBzL3NubXB3YWxrLmM6CgogICAtIChzbm1wd2Fsay5jKTogUmVtb3ZlZCBTVlI0IGlmZGVmcwogICAKMTk5Ni0wOC0yOSAwNjo1OCAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wc3RhdHVzLmM6CgogICAtIChzbm1wc3RhdHVzLmMpOiBQYXRjaCBmcm9tIFRyZXZvciBCb3VyZ2V0IDx0Ym91cmdldEBxdWFsY29tbS5jb20+CiAgICAgLSBtYWxsb2Mgc3lzZGVzYyBpbnN0ZWFkIG9mIGFzc3VtaW5nIDwgMTI4IGJ5dGVzLgogICAKMTk5Ni0wOC0yOSAwNjowOCAgd2hhcmRha2UKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIGdjYyB3YXJuaW5ncyBOVUxMIC0+IDAKICAgCjE5OTYtMDgtMjkgMDY6MDcgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgLSBzYXZlIG1pYiBkZXNjcmlwdGlvbnMgZm9yIHNubXB0cmFuc2xhdGUgYW5kIG90aGVyIGFwcHMgdGhhdCBuZWVkIGl0LgogICAKMTk5Ni0wOC0yOSAwNjowNiAgd2hhcmRha2UKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgIC0gcHJvdG90eXBlcyBmb3IgZ2NjIHdhcm5pbmdzCiAgIAoxOTk2LTA4LTI5IDA2OjA2ICB3aGFyZGFrZQoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHVjaGFyKHMpIGNhbid0IGJlIGxlc3MgdGhhbiAwLgogICAKMTk5Ni0wOC0yOSAwNjowMyAgd2hhcmRha2UKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIHNubXB0cmFwLjE6CgogICAtIChtYW4vc25tcHRyYXAuMSk6ICBhZGRlZCBieSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAKMTk5Ni0wOC0yOSAwNTo1OSAgd2hhcmRha2UKCiAgICogYXBwcy86IHNubXBidWxrd2Fsay5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMKLCBzbm1wc2V0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgc25tcHRyYXBkLmMsIHNubXB3YWxrLmM6CgogICAtIChhcHBzLyouYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHNldCBleGl0IGNvZGVzIG9mIDAgZm9yIGFsbCBhcHBzLgogICAgIC0gUmVtb3ZlZCBTVlI0ICNpZmRlZnMuCiAgICAgLSBHcmVhdGx5IGltcHJvdmVkIHNubXB0cmFwLgogICAKMTk5Ni0wOC0yNyAwMTowNCAgd2hhcmRha2UKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoYXV0b2NvbmYqKToKICAgICAtIEZyZWVCU0QgYWRkaXRpb25zLgogICAgIC0gTmV3IGtlcm5lbCBsb2NhdGlvbjogIC9rZXJuZWwgKGljaykuCiAgICAgLSBMb2cgZmlsZSBkZWZhdWx0IGludGVsbGlnZW50bHkgY2hlY2tzIGZvciAvdmFyL2xvZyBhbmQgL3Vzci9hZG0uCiAgICAgLSBDaGVja3MgZm9yIGdldGxvYWRhdmcoKS4KICAgCjE5OTYtMDgtMjcgMDE6MDAgIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoc25tcF92YXJzLmMpOiBNb3JlIHdhcnBlZCBGcmVlQlNEIGNoYW5nZXMKICAgCjE5OTYtMDgtMjcgMDA6MzggIHdoYXJkYWtlCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jKTogRnJlZUJTRCBzcGVjaWZpYyBjaGFuZ2VzLgogICAKMTk5Ni0wOC0yNyAwMDowMSAgd2hhcmRha2UKCiAgICogYXBwcy9zbm1wdHJhcC5jOgoKICAgLSAoc25tcHRyYXAuYyk6CiAgICAgLSBGcmVlQlNEIHNwZWNpZmljIGNoYW5nZXMuCiAgICAgLSBtb3JlIGF1dG9jb25mIGNvbXBsZXRlOiBwYXRocyB0byBsaWJyYXJpZXMgYW5kIGtlcm5lbCBsb2NhdGlvbi4KICAgCjE5OTYtMDgtMjYgMjM6NDcgIHdoYXJkYWtlCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAtIChzbm1wdHJhcGQuYyk6IEZpeCBieXRlIG9yZGVyIHByb2JsZW0gKGNvbnZlcnQgdG8gbmV0d29yayBiZWZvcmUgc2VuZGluZykuCiAgIAoxOTk2LTA4LTI2IDA3OjU3ICB3aGFyZGFrZQoKICAgKiBhZ2VudC86IGV2ZW50LmMsIGtlcm5lbC5jLCByb3V0ZV93cml0ZS5jOgoKICAgLSAoZXZlbnQuYywga2VybmVsLmMsIHJvdXRlX3dyaXRlLmMpOiBGcmVlQlNEIG1vZGlmaWNhdGlvbnMKICAgCjE5OTYtMDgtMjYgMDc6NTUgIHdoYXJkYWtlCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gKHNubXBfYXBpLmMpOiBGaXhlZCBhIGdjYy9GcmVlQlNEIG9wdGltaXphdGlvbiBidWcgKHN0dXBpZCBjb21waWxlcikKICAgCjE5OTYtMDgtMjYgMDE6MzcgIHdoYXJkYWtlCgogICAqIGVjZS1taWIuZGVmOgoKICAgLSAoZWNlLW1pYi5kZWYpOiAgY29tbWFzIG91dCBvZiBwbGFjZS4KICAgCjE5OTYtMDgtMjYgMDE6MzcgIHdoYXJkYWtlCgogICAqIFRPRE86CgogICAtIChUT0RPKSBFeHRyYSBtaWIgcGFyc2luZyBpZGVhcyBhZGRlZC4KICAgCjE5OTYtMDgtMjYgMDE6MzYgIHdoYXJkYWtlCgogICAqIE5FV1M6CgogICAtIChORVdTKSBUeXBvLCBleHRyYSBxdW90YXRpb24gbWFyay4KICAgCjE5OTYtMDgtMjEgMDY6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3N0ZXN0OgoKICAgQWRkZWQgcGFzc3Rlc3QhCiAgIAoxOTk2LTA1LTI0IDE1OjQ2ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMSApCiAgIAoxOTk2LTA1LTI0IDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgY29weXJpZ2h0IHVwZGF0ZQogICAKMTk5Ni0wNS0yNCAxNTo0MyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogMy4xIHJlbGVhc2UgaW5mbyB1cGRhdGUuCiAgIAoxOTk2LTA1LTI0IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBzb21lIGlmZGVmIHJlcXVpcmVtZW50cy4KICAgCjE5OTYtMDUtMjQgMTU6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluOgoKICAgLSAoYWNjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogI2lmZGVmIHR5cG9zCiAgIAoxOTk2LTA1LTI0IDE0OjAyICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIG1lbW1vdmUgYmVmb3JlIHlvdSBkZWZpbmUgaXQuCiAgIAoxOTk2LTA1LTI0IDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYywgcm91dGUuYzoKCiAgIC0gKGlmLmMsIHJvdXRlLmMpOiBjYXN0IHJldHVybnMgZnJvbSBpbmRleCB0byBjaGFyICouCiAgIAoxOTk2LTA1LTI0IDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogIGRlZmluZSBtZW1tb3ZlIGlmIG5vdCBkZWZpbmVkIGFuZCBtZW1jcHkgaXMuCiAgIAoxOTk2LTA1LTI0IDEzOjEzICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiAgbm90ZSBvbiBjcmVhdGluZyBjb21tZW50cyBhZGRlZC4KICAgCjE5OTYtMDUtMjQgMTM6MTAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIC0gKHBhcnNlLmMpOiBkZWNsYXJhdGlvbnMgY2xlYW51cAogICAKMTk5Ni0wNS0yNCAxMzowOSAgaGFyZGFrZXIKCiAgICogbWliSUkudHh0OgoKICAgLSAobWliSUkudHh0KTogcmVtb3ZlZCA7cyBhdCB0aGUgZW5kIG9mIHRoZSBCRUdJTiBsaW5lcy4KICAgCjE5OTYtMDUtMjQgMTM6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZyopOiAgQ2hlY2sgZm9yIHN5cy9tbnR0YWIuaAogICAKMTk5Ni0wNS0yNCAxMzowOCAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZjoKCiAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBleGFtcGxlIGZpbGUgY2hhbmdlcy4KICAgCjE5OTYtMDUtMjQgMTI6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSk6IEFkZGVkIGEgdGhhbmtzIHNlY3Rpb24uCiAgIAoxOTk2LTA1LTI0IDEyOjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAtIChzbm1wbGliL3BhcnNlLmMpOiAgcGFyc2luZyBmaXhlcyBmcm9tIE1pa2UgUGVyaWsgPG1pa2VwQGNydC5jb20+CiAgIAoxOTk2LTA1LTIzIDE3OjQ3ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIChjb25maWcqKTogY2hlY2sgZm9yIGdldG1udGVudC4KICAgCjE5OTYtMDUtMjMgMTc6MDkgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6IGZpeGVkIGRpc2sgY2hlY2tzIG9uIFNvbGFyaXMgYW5kIGFscGhhJ3MKICAgICAtIHVzZSBzdGF0dmZzIG92ZXIgZnN0YWIgaWYgYm90aCBwcmVzZW50LgogICAKMTk5Ni0wNS0yMyAxNjoyNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmM6CgogICAtIChhY2wuYywgcGFydHkuYyk6IGluY2x1ZGUgc3RkaW8uaAogICAKMTk5Ni0wNS0yMyAxNDo1NiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoaWYuYyk6IHR5cGUgY2FzdGluZyBidWdzLgogICAKMTk5Ni0wNS0yMyAxNDo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFjbC5jLCBwYXJ0eS5jLCB2aWV3LmM6CgogICAtIChhY2wuYywgcGFydHkuYywgdmlldy5jKTogcmVtb3ZlZCBOVUxMIGRlZmluZXMuCiAgIAoxOTk2LTA1LTIzIDE0OjQzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogRG9uJ3QgZGVmaW5lIHJhbmRvbSBpZiBpdCBhbHJlYWR5IGV4aXN0cy4KICAgCjE5OTYtMDUtMjIgMTI6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIHJld29ya2VkIHRoZSB3YXkgc25tcG5ldHN0YXQgLWkgd29ya3MuCiAgIAoxOTk2LTA1LTIyIDEyOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGtlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmM6CgogICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIHNubXBfdmFycy5jLAogICAgICBhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyxyZWFkY29uZmlnLmMsc25tcF92YXJzLmMpOgogICAgIC0gUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPjoKICAgICAgIC0gZmluYWxseSBuYWlsZWQgdGhhdCBtaXNzaW5nIGluaXRpYWxpemF0aW9uIHRoYXQgZ2F2ZSBwcm9ibGVtcwogICAgICAgICB3aXRoIHRoZSBBVCBzdWJ0cmVlCiAgICAgICAtIEkgYWxzbyBpbXBsZW1lbnRlZCB0aGUgZGlzayBwYXJ0IG9mIHRoZSBleHRlbnNpYmlsaXR5IGluIHRoZQogICAgICAgICBhdHRhY2hlZCBwYXRjaC4KICAgCjE5OTYtMDUtMjIgMDg6NTAgIGhhcmRha2VyCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlndXJlLCBpbnN0YWxsLXNoLAogICBta2luc3RhbGxkaXJzOgoKICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWd1cmUsIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnMpOiBBdXRvY29uZi0yLjEwCiAgIAoxOTk2LTA1LTIyIDA4OjUwICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pIFVwZGF0ZWQgdGhlIHdheSBzZWRzY3JpcHQgaXMgdXNlZC4KICAgCjE5OTYtMDUtMTUgMTI6MzUgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIC0gKHNlZHNjcmlwdC5pbikgRml4ZWQgYSBob3JyaWJsZSB0eXBvLiAgUCAtPiBQUkVGSVgKICAgCjE5OTYtMDUtMTUgMTI6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgIC0gKGFwcHMvc25tcG5ldHN0YXQvaWYuYykgcmVtb3ZlZCAmIGluIGZyb250IG9mIGFycmF5IHBhc3NlZCBhcyBhcmcuCiAgIAoxOTk2LTA1LTE1IDEyOjAzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpIEFkZGVkIGEgbm90ZSAocG9pbnRlciB0byBkb2NzKSBvbiB0aGUgYWdlbnQncyBleHRlbnNpYmxpdHkuCiAgIAoxOTk2LTA1LTE1IDEyOjAwICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCkgbWFrZSBpbnN0YWxsIGFzIHJvb3QuCiAgIAoxOTk2LTA1LTE1IDA5OjUxICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMS5BMSApCiAgIAoxOTk2LTA1LTE1IDA5OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9rZXJuZWxfc3Vub3M1LmM6CgogICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMpIHBhdGNoIG1pc3Rha2UuCiAgIAoxOTk2LTA1LTE1IDA5OjI5ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBSRUFETUUsIFRPRE86CgogICAtIChDT1BZSU5HLCBSRUFETUUsIFRPRE8pIFJlbGVhc2UgZG9jcyB1cGRhdGVkLgogICAKMTk5Ni0wNS0xNSAwOTowNyAgaGFyZGFrZXIKCiAgICogRVhBTVBMRS5jb25mLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAtIChFWEFNUExFLmNvbmYuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50ZWQgcGFzcyB0aHJ1IG1pYnMuCiAgIAoxOTk2LTA1LTE1IDA5OjA2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUuaW4sc2Vkc2NyaXB0LmluKSBBZGRlZCBQUkVGSVggdG8gdGhlIHNlZHNjcmlwdC4KICAgCjE5OTYtMDUtMTUgMDk6MDUgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmUsIGFnZW50Ly5jdnNpZ25vcmUsIGFwcHMvLmN2c2lnbm9yZSwKICAgbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKCovLmN2c2lnbm9yZSkgaWdub3JlIGZpbGUgdXBkYXRlLgogICAKMTk5Ni0wNS0xNSAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaDoKCiAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYykgUGF0Y2ggZnJvbSAiRGFuIEEuIERpY2tleSIgPGRkaWNrZXlAdHJhbnNpdGlvbi5jb20+CiAgICAgLSBCZXR0ZXIgY2FjaGluZyBhbGdvcml0aG0gZm9yIGltcHJvdmVkIHNwZWVkLgogICAKMTk5Ni0wNS0xNSAwODo1OSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS9wYXNzLmMpIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAtIEltcGxlbWVudGVkIG1pc3NpbmcgcGFydHMgb2YgaW50ZXJmYWNlIGFkZHJlc3MgYW5kIG5ldHdvcmsgb3V0cHV0ICgtaSkKICAgCjE5OTYtMDUtMTMgMTU6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICAtIChzbm1wbGliL3NubXBfaW1wbC5oKTogQ2hhbmdlIFJXUklURSB0byBpbmNsdWRlIFdyaXRlIGZvciBWMiBiaXRzLgogICAKMTk5Ni0wNS0xMyAxNTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9zbm1wX3ZhcnMuYywgYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgIC0gQnVnIGZpeDogR0xPQkFMU0VDVVJJVFkgYnVnOiAgc2F2ZSByaWdodG1vc3QgdHdvIGJpdHMgaW4gYWNsLgogICAKMTk5Ni0wNS0xMCAxODoxNiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQva2VybmVsX3N1bm9zNS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wc3RhdHVzLmMKLCBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBtYW4vTWFrZWZpbGUuaW4sIG1hbi9zbm1wc3RhdHVzLjEsIHNubXBsaWIvcGFyc2UuYwo6CgogICAtIChtYW55KTogTWVyZWdlZCBiYWdnZXNlbi0zLTAtNy0yIGJyYW5jaCBpbnRvIG1haW4gdHJ1bmsuCiAgIAoxOTk2LTA1LTEwIDE3OjA2ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHN0YXR1cy4xOgoKICAgZmlsZSBzbm1wc3RhdHVzLjEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQmFnZ2VzZW4tMy0wLTctMi4KICAgCjE5OTYtMDUtMTAgMTc6MDUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHN0YXR1cy5jOgoKICAgZmlsZSBzbm1wc3RhdHVzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggQmFnZ2VzZW4tMy0wLTctMi4KICAgCjE5OTYtMDUtMTAgMTA6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2tlcm5lbF9zdW5vczUuYzoKCiAgIC0gKGtlcm5lbF9zdW5vczUuYyk6IEEgcGF0Y2ggdG8gZml4IGEgdmlydHVhbCBpbnRlcmZhY2UgcHJvYmxlbS4KICAgICAtIHBhdGNoIHN1cHBsaWVkIGJ5ICJEYW4gQS4gRGlja2V5IiA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KICAgCjE5OTYtMDUtMDkgMTY6MTMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jCjoKCiAgIC0gKGNvbmZpZ3VyZS5pbik6IFNvbGFyaXMgc3BlY2lmaWMgY3BwIGZsYWdzIGFkZGVkIGZvciBTVU5zcHJvJ3MgY3BwLgogICAtIChhZ2VudC97c25tcF92YXJzLHNubXBkfS5jLGFnZW50L2V4dGVuc2libGUve2V4dGVuc2libGUsbWlzYyxwYXNzfS5jLAogICAgICBzbm1wbGliL3ttaWIsc25tcF9jbGllbnR9LmMpOgogICAgIC0gQ2xlYW5lZCB1cCBwcm90b3R5cGVzIHRvIG1hdGNoIG1vcmUgY2FyZWZ1bGx5ICh3aXRoIFNvbGFyaXMncyBzcHJvIGNjKS4KICAgCjE5OTYtMDUtMDkgMTM6MzIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBhZ2VudC9NYWtlZmlsZS5pbiwKICAgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIChhY2NvbmZpZy5oLGFnZW50L3tNYWtlZmlsZSxzbm1wX3ZhcnMuY30sYWdlbnQvZXh0ZW5zaWJsZS9tYW55KToKICAgICAtIEFkZGVkIHN1cHBvcnQgZm9yIHBhc3N0aHJ1IG1pYnMuICBUb3RhbCBjb250cm9sIGlzIGhhbmRlZCB0byBleGVjJ3MuCiAgIAoxOTk2LTA1LTA5IDEzOjI3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4pCiAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KICAgCjE5OTYtMDUtMDkgMTM6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHNldC5jOgoKICAgLSAoYXBwcy9zbm1wc2V0LmMpIEFkZGVkICcuJyBhcyBhIGRlbGltaXRlciBmb3IgZGVjaW1hbCBlbmNvZGVkIHN0cmluZ3MuCiAgIAoxOTk2LTA1LTAzIDE0OjQwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwLmM6CgogICAtIChhcHBzL3NubXB0cmFwLmMpIEFkZGVkICNpbmNsdWRlPHN5cy9zb2NraW8uaD4KICAgCjE5OTYtMDUtMDMgMTQ6MzcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIFNvbGFyaXMgZml4IGZvciBpbnRlcmZhY2VzLgogICAgIC0gRnJvbSBEYW4gQS4gRGlja2V5IDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgogICAKMTk5Ni0wNS0wMyAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMsc25tcF92YXJzLmMpCiAgICAgLSBDaGFuZ2VkIHRoZSBpbnRlcmZhY2UgY291bnRlciB0byBhIHNob3J0IGZvciBhbGwgYXJjaGl0ZWN0dXJlcyAoYnVzIGVycikKICAgICAtIFVuZGVmZWQgYSBmdW5jdGlvbiB0aGF0IGlzIG5ldmVyIHVzZWQuCiAgIAoxOTk2LTA1LTAzIDE0OjMzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgLSAoYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKQogICAgIC0gQWRkZWQgYSBjaGVjayBmb3IgdmFyaW91cyByYW5kb20gZnVuY3Rpb25zLgogICAgIC0gSW5jbHVkZWQgYW5vdGhlciBpZmRlZiB0byBlbnN1cmUgbm8gI2RlZmluZSBsb29wcyBvY2N1ciB3aXRoIHN0ci9pbmRleCBmbnMuCiAgIAoxOTk2LTA1LTAxIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC43LjIgKQogICAKMTk5Ni0wNS0wMSAxNDo1OSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLE5FV1MpIHZlcnNpb24gdXBkYXRlIDMuMC43LjIKICAgCjE5OTYtMDUtMDEgMTQ6NTYgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICAtIChhY2NvbmZpZy5oLGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oKTogcmVtb3ZlZCBjb21lbnRzL3NwYWNlcyBmcm9tIGRlZmluZXMuCiAgIAoxOTk2LTA1LTAxIDE0OjM3ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICAtIChzZWRzY3JpcHQuaW4pIGZvcmdvdCBORVRCU0QxSUQgZGVmLgogICAKMTk5Ni0wNS0wMSAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKGxvY2FsL3NubXBjaGVjaykgVGstYjEwIGZpeGVzLgogICAKMTk5Ni0wNS0wMSAxNDozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvcm91dGVfd3JpdGUuYzoKCiAgIC0gKGFnZW50L3JvdXRlX3dyaXRlLmMsYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgIC0gbmV0YnNkMS4xQiBzcGVjaWZpYyBmaXhlczogY2xhc2ggd2l0aCBzeXNfZXJybGlzdCBhbmQgcnRfZHN0IGRlZmluZXMuCiAgIAoxOTk2LTA1LTAxIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKG1hbi9zbm1wZC4xLmRlZixzbm1wZC5jb25mLjUuZGVmKSAuQyAtPiAuQiwgdG8gaW5jcmVhc2UgbnJvZmYgcG9ydGFiaWxpdHkuCiAgIAoxOTk2LTA1LTAxIDEzOjU0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUqLCBhZ2VudC9leHRlbnNpYmxlL3tyZWFkX2NvbmZpZyxleHRlbmlzYmxlfS5jKToKICAgICAtIGNvbmZpZ3VyaWZpZWQgKG5ldyB3b3JkKSBzb21lIG9mIE5pZWxzJyBjaGFuZ2VzIGFuZCB0aGUgYmNvcHkvbWVtbW92ZSBzdHVmZi4KICAgCjE5OTYtMDUtMDEgMTI6MzcgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIGtlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmMKLCBzbm1wZC5jOgoKICAgLSAobWFueSkgRml4ZXMgZm9yIFNvbGFyaXMgKDIuNSkgc3VibWl0dGVkIGJ5CiAgICAgICAgICAgIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+OgogICAgICAgIlNvbWUgYXJlIG15IG93biwgb3RoZXJzIGFyZSBmcm9tIFl1cmkgUmFib3ZlciB3aG8gb3JpZ2luYWxseQogICAgICAgIGNyZWF0ZWQgdGhlIHBhdGNoLiBTb21lIG9mIHRoaXMgaXMgdGhlcmUgdG8gZWxpbWluYXRlIHRoZQogICAgICAgIGRlcGVuZGVuY3kgb24gdGhlIHVjYmxpYiBjb21wYXRpYmlsaXR5IHN0dWZmLCBzb21lIGlzICJjb3NtZXRpYyIsCiAgICAgICAgYnV0IGl0IGFsc28gZml4ZXMgYSBzZXJpb3VzIHByb2JsZW0gaW4gdGhlIGFnZW50LCB3aGVyZSB3YWxraW5nCiAgICAgICAgdGhlIG1pYiB0cmVlIGNhbiBsb29wIGVuZGxlc3NseSBpZiB5b3UgaGF2ZSBtdWx0aXBsZSBuZXR3b3JrCiAgICAgICAgaW50ZXJmYWNlcy4iCiAgIAoxOTk2LTA0LTI1IDEyOjE5ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC43LjEgKQogICAKMTk5Ni0wNC0yNSAxMjoxOCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbjoKCiAgIC0gKENoYW5nZUxvZywgYWNjb25maWcuaCwgY29uZmlnLmguaW4pIERlZmluZWQgREVCVUdQIGlmIERPREVCVUcgaXMgbm90IGRlZmluZWQuCiAgIAoxOTk2LTA0LTI0IDE0OjU0ICBoYXJkYWtlcgoKICAgKiBzZWRzY3JpcHQuaW46CgogICB2ZXJzaW9uIHRhZyAoIDMuMC43ICkKICAgCjE5OTYtMDQtMjQgMTQ6NTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIC0gKENoYW5nZUxvZyxORVdTKSB1cGRhdGUgZm9yIDMuMC43CiAgIAoxOTk2LTA0LTI0IDE0OjM3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSAobG9jYWwvc25tcGNoZWNrKSBuZXcgcHJlZjogIGRvbid0IHBvcCBmb3J3YXJkIG9uIG5ldyBwcm9ibGVtcy4KICAgCjE5OTYtMDQtMjQgMTM6MjUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGNvbmZpZyosYWdlbnQvc25tcF92YXJfcm91dGUuYykgY29uZmlnIGNoZWNraW5nIGZvciBydGVudHJ5LnJ0X25leHQKICAgCjE5OTYtMDQtMjQgMTE6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBAIyQlaW5nIHNvbGFyaXMKICAgCjE5OTYtMDQtMjQgMTE6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIChhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jKSBDaGVja2VkIGZvciBzeXMvbWJ1ZiBmb3IgZGV0ZXJtaW5pbmcgcnRlbnRyeS5ydF9uZXh0CiAgIAoxOTk2LTA0LTI0IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCkgdXBkYXRlZAogICAKMTk5Ni0wNC0yNCAwOTowMCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKSB1cGRhdGVkCiAgIAoxOTk2LTA0LTI0IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIC0gKG1hbi8uY3ZzaWdub3JlKSBhZGRlZCBzbm1wZC4xCiAgIAoxOTk2LTA0LTI0IDA4OjUzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgZWNlLW1pYi5kZWYsCiAgIG92L1VDRC1maWVsZHMsIG92L29pZF90b19zeW0uaW4sIG92L29pZF90b190eXBlLmluCjoKCiAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBlY2UtbWliLmRlZiwgb3YvKikgQWRkZWQgTmV0QlNEIHRvIHN5cy1PSUQgcmV0dXJuZWQuCiAgIAoxOTk2LTA0LTI0IDA4OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jOgoKICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykgbW9yZSBjb25maWcgZmlsZXMgZm9yIE5ldEJTRC4KICAgLSAoYWdlbnQvc25tcF92YXJzLmMpIHJlbW92ZWQgYXJwIHRhYmxlcyBmb3IgbmV0YnNkLgogICAKMTk5Ni0wNC0yNCAwODozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWxhcm0uYzoKCiAgIC0gKGFnZW50L2FsYXJtLmMpIEZpeGVkIHNvbWUgZGVmaW5lIG5hbWluZyBjb25mbGljdHMgZm9yIE5ldEJTRCAodGltZXJhZGQoKSkuCiAgIAoxOTk2LTA0LTI0IDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIC0gKGFnZW50L01ha2VmaWxlLmluKSBGb3Jnb3QgYSBxdW90ZS4gICh3aHkgaGFzbid0IHRoaXMgYXBwZWFyZWQgYmVmb3JlPykKICAgCjE5OTYtMDQtMjQgMDg6MzYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZS5pbikgTW9yZSBoZWFkZXIgZmlsZSBjaGVja3MgKHZtL3ZtLmggKCsgb3RoZXJzKSBhbmQgdWZzL2Zmcy9mcy5oKQogICAKMTk5Ni0wNC0xNiAxODowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKHNubXBkLmMpIEFkZGVkIGZmbHVzaCBjYWxscyBhZnRlciBwcmludGluZyBwYWNrZXQgZHVtcHMKICAgCjE5OTYtMDQtMTYgMDk6NDggIGhhcmRha2VyCgogICAqIGFnZW50Lzogcm91dGVfd3JpdGUuYywgc25tcF92YXJfcm91dGUuYzoKCiAgIC0gKGFnZW50L3tyb3V0ZV93cml0ZS5jLHNubXBfdmFyX3JvdXRlLmN9KSBPU0YzLjIgc3BlY2lmaWMgY2hhbmdlcy4gIGFyZy4KICAgCjE5OTYtMDQtMTYgMDk6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBJIGZvcmdvdCBETUVNX0xPQyBuZWVkcyB0byBiZSAjdW5kZWYnZWQgaWYgbm90IGZvdW5kCiAgIAoxOTk2LTA0LTE1IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSAoYWdlbnQvc25tcGQuYykgRml4ZWQgMiBnZXR0aW1lb2ZkYXkgY2FsbHMgLS0gYWRkZWQgYSBOVUxMIHRpbWV6b25lIHB0ci4KICAgCjE5OTYtMDQtMTUgMTQ6MTEgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSkgTmV3IGNvbW1hbmQgbGluZSBvcHRpb246ICAtLXdpdGgtZGVmYXVsdHMuICBEb24ndCBwcm9tcHQgdGhlIHVzZXIuCiAgIC0gKGNvbmZpZ3VyZSkgYnVnIGZpeGVzOiAgd2Fzbid0IHF1b3Rpbmcga2VybmVsIGFuZCBkbWVtIGxvY2F0aW9uLgogICAtIChjb25maWd1cmUpIGdjYyBjcHAgcmVxdWlyZXMgLXggYyB0byBhY2NlcHQgLmluIGZpbGUgc3VmZml4LgogICAKMTk5Ni0wNC0xNSAxMjo1MyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluOgoKICAgLSAoY29uZmlndXJlKSBOZXcgY29tbWFuZCBsaW5lIG9wdGlvbjogIC0tZW5hYmxlLWRlYnVnZ2luZy4gIFR1cm5zIG9uIGRlYnVnZ2luZy4KICAgLSAoY29uZmlndXJlKSBGaXhlcyBmb3IgdHlwZSBjaGVja2luZyBvZiA0LjQgcnRlbnRyeSBzdHJ1Y3R1cmVzIG9uIGFscGhhcy4KICAgCjE5OTYtMDQtMTIgMTY6NDggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsIGNvbmZpZy5oLmluLAogICBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZWNlLW1pYi5kZWYsCiAgIHNlZHNjcmlwdC5pbiwgYWdlbnQvcm91dGVfd3JpdGUuYywKICAgYWdlbnQvc25tcF92YXJfcm91dGUuYywgb3YvVUNELWZpZWxkcywKICAgb3Yvb2lkX3RvX3N5bS5pbiwgb3Yvb2lkX3RvX3R5cGUuaW4sCiAgIG92L2JpdG1hcHMvVUNELmZpZWxkczoKCiAgIC0gKHNubXBfdmFyX3JvdXRlLmMpCiAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCiAgIC0gKG1hbnkpIEFkZGVkIHN1cHBvcnQgZm9yIGhwcGExLjEtaHAtaHB1eDEwLjAxCiAgICAgLSB0b3RhbGx5ISByZWRpZCB0aGUgcm91dGluZyB0YWJsZXMgZm9yIEJTRCA0LjQgZGVyaXZlZCBzeXN0ZW1zCiAgICAgICAoYWxwaGEsIGhwdXgxMC4wMSssIG5ldGJzZCkgc2luY2UgaHB1eDEwIGRvZXNuJ3QgaGF2ZSA0LjMgY29tcGF0IHN0cnVjdHMuCiAgIC0gKGVjZS1taWIuZGVmKSBDYXBpdGFsaXphdGlvbiBwcm9ibGVtLgogICAtIChjb25maWd1cmUuaW4pCiAgICAgLSBDbGVhbmVkIHVwIGtlcm5lbCBjaGVja2luZwogICAgIC0gU3RhcnRlZCB1c2luZyBhIGF1dG9jb25mIDIuOCBmZWF0dXJlIHRvIGNoZWNrIGZvciBjYWNoZSB2YWx1ZXMuCiAgIAoxOTk2LTA0LTEyIDE0OjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIC0gKGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlLmMpCiAgICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCiAgIAoxOTk2LTA0LTA1IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAtIChtYW4vTWFrZWZpbGUuaW4pIEFkZGVkIGEgJ2NsZWFuJyBkZWZpbml0aW9uIHRvIHRoZSBNYWtlZmlsZS4KICAgCjE5OTYtMDQtMDUgMTY6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgLSAoc25tcGxpYi9hc24xLmMpIHJlbW92ZWQgYSByZXF1aXJlZCAndW5peCcgZGVmaW5lIHN1cnJvdW5kaW5nIGEgaGVhZGVyIGZpbGUuCiAgIAoxOTk2LTA0LTA1IDE2OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpIGF1dG9jb25mLTIuNyAtPiBhdXRvY29uZi0yLjkKICAgCjE5OTYtMDQtMDUgMTY6MTEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2suZGVmKSBUay1iOCA9PiBUay1iMTAgY2hhbmdlcwogICAKMTk5Ni0wMy0xMSAxNTo1OCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgc21hbGwgQ2hhbmdlTG9nIHVwZGF0ZQogICAKMTk5Ni0wMy0xMSAxNTo1NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogZml4ZWQgYSB0aW1lb3V0IGJ1ZyBjYXVzZWQgYnkgYXJjaGl0ZWN0dXJlcwogICAgIHdpdGggYW4gdW5zaWduZWQgdGltZXZhbC50dl9zZWMgdmFsdWUuCiAgICAgLSBUaGFua3MgZ29lcyB0byBHaW92YW5uaSBTLiBNYXJ6b3QgPGdtYXJ6b3RAYmF5bmV0d29ya3MuY29tPiBmb3IKICAgICAgIHRoZSBwYXRjaCEKICAgCjE5OTYtMDMtMTEgMTU6NDEgIGhhcmRha2VyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIHZlcnNpb24gdGFnICggMy4wLjYgKQogICAKMTk5Ni0wMy0xMSAxNTo0MSAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nL05FV1MpOiB1cGRhdGVkIGZvciAzLjAuNgogICAKMTk5Ni0wMy0xMSAxNTozOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSAoUkVBRE1FKTogbW9yZSBjbGVhbiB1cCBhbmQgYWRkZWQgcmVmZXJlbmNlIHRvIHRoZSB1Y2Qtc25tcCBtYWlsaW5nIGxpc3QuCiAgIAoxOTk2LTAzLTExIDE1OjE3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIChSRUFETUUpOiBjbGVhbmVkIHVwLCByZS1hcnJhbmdlZCwgc2hvcnRlbmVkIChzZWN0aW9ucyBtb3ZlZCB0byBtYW4vKiBkb2NzKS4KICAgCjE5OTYtMDMtMTEgMTU6MTcgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLjEuZGVmLAogICBtYW4vc25tcGQuY29uZi41LmRlZiwgc2Vkc2NyaXB0LmluOgoKICAgLSAobWFuL3tNYWtlZmlsZS5pbixzbm1wZC4xLmRlZixzbm1wZC5jb25mLjUuZGVmfSx2ZXJzaW9udGFnLHNlZHNjcmlwdC5pbik6CiAgICAgLSBjbGVhbmVkIHVwIGRvY3VtZW50YXRpb24gbW9yZSBhbmQgYWRkZWQgdGhlIHZlcnNpb24gbnVtYmVyIHRvIHRoZSB0cmFpbGVycy4KICAgCjE5OTYtMDMtMTEgMTM6MzcgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmM6CgogICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jKTogY29tbWVudGVkIG91dCBubGlzdCB3YXJuaW5ncy4KICAgCjE5OTYtMDMtMDggMTA6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCkgZml4ZWQgYSBmaXggdGhhdCBzaG91bGRuJ3QgaGF2ZSBiZWVuIGZpeGVkLgogICAKMTk5Ni0wMy0wOCAxMDozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgLSAoc25tcGxpYi9zbm1wX2NsaWVudC5jKSBDaGVjayBpZiB2YXJpYWJsZSBjb250ZW50IGlzIE5VTEwgYmVmb3JlIHVzaW5nLgogICAKMTk5Ni0wMy0wNiAxNjo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gKHNubXBsaWIvbWliLmMpIHByaW50ZWQgdmFsdWVzIGZvciB0aW1ldGlja3MgYXJlIG5vIGxvbmdlciBuZWdhdGl2ZS4KICAgCjE5OTYtMDMtMDYgMTY6MzggIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgLSAoZWNlLW1pYi5kZWYpCiAgICAgLSBDaGFuZ2VkIGNhcGl0YWxpemF0aW9uIHNjaGVtZXMgdG8gYmUgbW9zeSBjb21wbGlhbnQuCiAgICAgLSBNYWRlIHRoZSBtZW1vcnkgbWliIFNZTlRBWCBwb2ludCB0byB0aGUgTWVtb3J5IHNlcXVlbmNlIGxpa2UgaXQgc2hvdWxkLgogICAKMTk5Ni0wMy0wNiAwOTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gKGFnZW50L3NubXBkLmMpIEFkZGVkIE9fVFJVTkMgdG8gdGhlIGxvZ2ZpbGUgb3BlbigpIGNhbGwuCiAgIAoxOTk2LTAyLTIxIDE2OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAtIChzbm1wbGliL3NubXBfYXBpLmgpCiAgICAgLSBDaGFuZ2VkIHRyYXBfdHlwZSAmIHNwZWNpZmljX3R5cGUgdG8gbG9uZyBmcm9tIGludCBmb3IgNjQgYml0IGFyY2hpdGVjdHVyZXMuCiAgICAgICAtIHN1Z2dlc3RlZCBieSBmcmFuY3VzQG1ldHNueS5kZWxwaGkuY29tLgogICAKMTk5Ni0wMi0yMSAxNjoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy86IC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCBzbm1wdHJhcC5jOgoKICAgLSAoYXBwcy9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wdHJhcC5jKQogICAgIC0gQWRkZWQgYXBwcy9zbm1wdHJhcAogICAgICAgLSBjb2RlIHRha2VuIGZyb20gMi4wLjEgYW5kIHN1Ym1pdHRlZCB0byBtZSBieSBmcmFuY3VzQG1ldHNueS5kZWxwaGkuY29tLgogICAgICAgLSBJIGhhdmUgeWV0IHRvIHRlc3QgaXQuCiAgIAoxOTk2LTAyLTIxIDE2OjEyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluLCBtYW4vLmN2c2lnbm9yZSwKICAgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gKE1ha2VmaWxlLmluLCBzZWRzY3JpcHQuaW4sIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpCiAgICAgLSBBZGRlZCB0aGUgYmVnaW5uaW5ncyBvZiBhIHNubXBkLmNvbmYgbWFudWFsIHBhZ2UuCiAgIAoxOTk2LTAyLTE2IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSAoYWNjb25maWcuaCxjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9leHRlbnNpYmxlL3JlYWRfY29uZmlnLmMpCiAgICAgLSAuY29uZiBmaWxlIGFkZGl0aW9uOiAgImNvbW11bml0eSBOIFNUUklORyIgdG8gY2hhbmdlIGNvbW11bml0eSBuYW1lcwogICAKMTk5Ni0wMi0xMiAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW46CgogICAtIChhY2NvbmZpZy5oLCBjb25maWcuaGluLCBhZ2VudC9leHRlbnNpYmxlL21pc2MuYykKICAgICAtIFRoZSBhZ2VudCBub3cgc2V0cyBhbiBhbGFybSB0byByZXN0YXJ0IHJhdGhlciB0aGFuIGRvaW5nIGF0IHRoZQogICAgICAgc25tcHNldCB0aW1lIHRvIHJldHVybiBhIHZhbHVlIHRvIHRoZSBzbm1wc2V0IHJlcXVlc3QuCiAgIAoxOTk2LTAyLTA5IDE3OjA0ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwKICAgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBlY2UtbWliLmRlZiwgc2Vkc2NyaXB0LmluLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgb3YvLmN2c2lnbm9yZSwgb3YvTWFrZWZpbGUuaW4sIG92L1JFQURNRSwKICAgb3YvVUNELUNvbXB1dGVyLCBvdi9VQ0QtZmllbGRzLCBvdi9vaWRfdG9fc3ltLmluLAogICBvdi9vaWRfdG9fdHlwZS5pbiwgb3YvYml0bWFwcy9VQ0QuMjAubSwKICAgb3YvYml0bWFwcy9VQ0QuMjAucCwgb3YvYml0bWFwcy9VQ0QuMjYubSwKICAgb3YvYml0bWFwcy9VQ0QuMjYucCwgb3YvYml0bWFwcy9VQ0QuMzIubSwKICAgb3YvYml0bWFwcy9VQ0QuMzIucCwgb3YvYml0bWFwcy9VQ0QuMzgubSwKICAgb3YvYml0bWFwcy9VQ0QuMzgucCwgb3YvYml0bWFwcy9VQ0QuNDQubSwKICAgb3YvYml0bWFwcy9VQ0QuNDQucCwgb3YvYml0bWFwcy9VQ0QuNTAubSwKICAgb3YvYml0bWFwcy9VQ0QuNTAucCwgb3YvYml0bWFwcy9VQ0QuZmllbGRzOgoKICAgLSBCZXR0ZXIgT3BlblZpZXcgc3VwcG9ydAogICAgIC0gUmV0dXJucyBkaWZmZXJlbnQgc3lzT2JqZWN0SUQncyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUKICAgICAtIEFkZGVkIGEgJ292JyBkaXJlY3RvcnkgZm9yIE9wZW5WaWV3IHN1cHBvcnQgZmlsZXMKICAgICAgIC0gY3VycmVudGx5IGNvbnRhaW5zIG5lY2Vzc2FyeSBmaWxlcyB0byBzdXBwb3J0IGEgVUNEIGJpdG1hcCBmaWxlCiAgICAgICAgIGZvciBob3N0cyB1c2luZyB0aGUgdWNkLXNubXAgYWdlbnQuICBTZWUgdGhlIG92L1JFQURNRSBmaWxlIGZvciBkZXRhaWxzLgogICAKMTk5Ni0wMS0yNiAwODoyNSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAtIFRoZSBTb2xhcmlzIDIuNSBrZXJuZWwgaGFzIG1vdmVkIHRvIC9rZXJuZWwvZ2VudW5peAogICAgIC0gVGhhbmtzIGdvZXMgdG8gcG9tbWllckB2b2xuYXkuc3RvcnRlay5jb20gKFZpbmNlbnQgUG9tbWllciAoVG91bG91c2UpKQogICAKMTk5Ni0wMS0yNCAxNjozNiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLAogICBlY2UtbWliLmRlZiwgc2Vkc2NyaXB0LmluOgoKICAgLSAoTWFrZWZpbGUsIGNvbmZpZy5oLCBlY2UtbWliLiosIHNlZHNjcmlwdC5pbikKICAgICAtIGNoYW5nZWQgdGhlIHdheSBtaWIudHh0IGlzIGJ1aWx0CiAgICAgICAtIHNwbGl0IHRoZSBjb21tYW5kIGludG8gdHdvIHBhcnRzIHRvIGJ1aWxkIGEgZWNlLW1pYi50eHQgYXMgd2VsbAogICAgIC0gYWRkZWQgYSBuZXcgT2JqZWN0SUQgYWRkaXRpb24gdG8gZWNlLW1pYi50eHQKICAgICAtIERFRk1BWExPQURBVkUgLT4gRFJFTU9WRU1FRUZNQVhMT0FEQVZFCiAgIAoxOTk2LTAxLTI0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+CiAgICAgLSBmaXhlcyAtcCBQT1JUIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIHRoZSByZXF1ZXN0ZWQgcG9ydC4KICAgICAtIGZpeGVzIHRoZSAtbCBMT0dGSUxFIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIGl0LgogICAKMTk5Ni0wMS0yNCAxNjozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAtIFJldHVybmluZyBFWFRFTlNJQkxFRE9UTUlCLkFHRU5USUQgYXMgdGhlIG5ldyBvYmplY3RpZAogICAKMTk5Ni0wMS0yMiAxNzozMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLE5FV1MpCiAgICAgLSBQcmVwZWQgZm9yIDMuMC41IHJlbGVhc2UKICAgCjE5OTYtMDEtMjIgMTc6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIChsb2NhbC9zbm1wY2hlY2spCiAgICAgLSBhZGRlZCBhZ2VudCBjb250cm9sczogIHJlc3RhcnQsIHVwZGF0ZWNvbmZpZywgY2xlYXJjYWNoZS4KICAgICAtIHJlbW92ZWQgYW4gb2xkIGRlYnVnZ2luZyBwcmludGYuCiAgICAgLSBjdHJsLWYgPT4gZml4YWxsLgogICAgIC0gQWRkZWQga2V5Ym9hcmQgYWNjZWxlcmF0b3JzIHRvIHRoZSBhc3NvY2lhdGVkIG1lbnUgaXRlbXMuCiAgICAgLSBNYWRlIGhpZ2hsaWdodFRoaWNrbmVzcyBhIGdsb2JhbCBwYXJhbWV0ZXIgdmlhICR3aW5kb3ctPm9wdGlvbignYWRkJykuCiAgICAgLSBBZGRlZCBhIGVudHJ5IGJveCB0byB0aGUgZXhlY3V0YWJsZSBjb21tYW5kcyB3aXRoIHRoZSBjb21tYW5kIHRvIHJ1bi4KICAgCjE5OTYtMDEtMjIgMTc6MTggIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAobG9jYWwvTWFrZWZpbGUuaW4pIEFkZGVkIGEgY2htb2QgdG8gbWFrZSB0aGUgc25tcGNoZWNrIHNjcmlwdCBleGVjdXRhYmxlCiAgIAoxOTk2LTAxLTIyIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSAoYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L2V4dGVuc2libGUvKi5jKQogICAgIC0gQWRkZWQgbmV3IGRlZmluZXMgdG8gdHVybiBvbi9vZmYgc2VjdGlvbnMgb2YgdGhlIGV4dGVuc2libGUgbWliLgogICAgIC0gVGhpcyBhbHNvIGZpeGVzIHRoZSBtaWIudHh0IGZpbGUgZGVmaW5pdGlvbnMgaWYgc29tZXRoaW5nIGlzIHR1cm5lZCBvZmYuCiAgIC0gKE1ha2VmaWxlLmluKSByZW1vdmVkICR7c3JjZGlyfSBmcm9tIHRoZSBmcm9udCBvZiBzdGFtcC1oLmluCiAgIAoxOTk2LTAxLTE5IDE3OjMxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIHJlbW92ZS1maWxlczoKCiAgIC0gKGNvbmZpZ3VyZSopCiAgICAgLSB1cGRhdGVkIHRvIGF1dG9jb25mIHYyLjcKICAgICAtIEhvcGVmdWxseSBub3cgdXNpbmcgY29ycmVjdCAnbWFrZScgZGVmaW5pdGlvbnMKICAgCjE5OTUtMTItMjggMTU6MjQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluLCBsb2NhbC9NYWtlZmlsZS5pbikgTWlub3IgY2xlYW51cHMuCiAgIAoxOTk1LTEyLTI4IDEyOjE0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWY6CgogICAtIChDaGFuZ2VMb2csRVhBTVBMRS5jb25mLmRlZikgc3BlbGwgY2hlY2sgKHNpZ2gpCiAgIAoxOTk1LTEyLTI4IDEyOjA5ICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBDaGFuZ2VMb2csIEVYQU1QTEUuY29uZi5kZWYsCiAgIE1ha2VmaWxlLmluLCBORVdTLCBSRUFETUUsIHNlZHNjcmlwdC5pbjoKCiAgIC0gQ3JlYXRlZCBhIEVYQU1QTEUuY29uZiBmaWxlIGZvciBleGFtcGxlIHVzYWdlLgogICAKMTk5NS0xMi0yOCAxMDo0NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgLSAoQ2hhbmdlTG9nLCBORVdTKTogIFVwZGF0ZWQgdGhlc2UgZm9yIDMuMC40IHJlbGVhc2UuCiAgIAoxOTk1LTEyLTI4IDEwOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbjoKCiAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogIE5ldmVyIGZpbmlzaGVkIHRoZSBpbnN0YWxsIGl0ZW0uCiAgIAoxOTk1LTEyLTI4IDEwOjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgVE9ETywgYWNjb25maWcuaCwgY29uZmlnLmguaW4KLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgZWNlLW1pYi5kZWYsCiAgIHNlZHNjcmlwdC5pbiwgbG9jYWwvLmN2c2lnbm9yZSwgbG9jYWwvTWFrZWZpbGUuaW4KLCBsb2NhbC9zbm1wY2hlY2suZGVmLCBUT0RPOgoKICAgLSBBZGRlZCBhIHNlZHNjcmlwdCB3aGljaCBpcyBidWlsdCBmcm9tIGNvbmZpZy5oIGFuZCBhZ2VudC9leHRlbnNpYmxlL21pYmRlZnMuaAogICAgIC0gdXNlZCB0byBkeW5hbWljYWxseSBidWlsZCBtaWIudHh0IGFuZCBsb2NhbC9zbm1wY2hlY2suCiAgIAoxOTk1LTEyLTI4IDEwOjAxICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgLSBBZGRlZCBzZWRzY3JpcHQgdG8gdGhlIC5jdnNpZ25vcmUgZmlsZS4KICAgCjE5OTUtMTItMjAgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFyX3JvdXRlLmM6CgogICAtIEZvdW5kIGFuZCBmaXhlZCBhIG1lbW9yeSBsZWFrIGluIHRoZSByb3V0aW5nIHRhYmxlIG1pYi4KICAgCjE5OTUtMTItMjAgMDk6NTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gc25tcF9vcGVuIGNhbGxzIGdldHNlcnZieW5hbWUgb25seSBvbmNlIG5vdywgYXQgdGhlIHJlcXVlc3Qgb2YgR2FyeQogICAgIEhheXdhcmQgPGdhaEBkaXJhYy5iZWxsY29yZS5jb20+LgogICAKMTk5NS0xMi0wNSAxNTowMSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gKHNubXBjaGVjaykKICAgICAtIE5ldyBmbGFnOiAgLWQsIGRvbid0IHN0YXJ0IGNoZWNraW5nIGFueXRoaW5nLiAgSnVzdCBicmluZyB1cCBpbnRlcmZhY2UuCiAgICAgLSBjaGVjayBmb3IgYmxhbmsgb3V0cHV0IG9mIHNubXBnZXQgYmVmb3JlIHBhcnNpbmcgd2l0aCBzLy8vZwogICAgICAgY29uc3RydWN0cy4KICAgCjE5OTUtMTItMDUgMTQ6NTcgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIC0gKGNvbmZpZ3VyZSopIGFkZGVkIEFDX1RZUEVfUElEX1QgdG8gdGhlIGNvbmZpZ3VyZSBjaGVja3MKICAgCjE5OTUtMTItMDEgMTY6MjAgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICAtIGxvY2FsL3NubXBjaGVjazogICAgICAgKm5ldyBmZWF0dXJlcyoKICAgICAtIGhhbmRsZXMgZmFpbGVkIHNubXB3YWxrL2dldC9zZXRzIG11Y2ggbW9yZSBncmFjZWZ1bGx5IG5vdwogICAgIC0gbmV3IHByZWZlcmVuY2U6ICBZb3UgY2FuIHBpY2sgd2hhdCB0eXBlcyBvZiBwcm9ibGVtcyB0byBjaGVjayBmb3IKICAgICAgIC0gLWYgb24gdGhlIGNvbW1hbmQgbGluZSBvbmx5IGNoZWNrcyBmb3IgZml4YWJsZSBwcm9ibGVtcwogICAgIC0gbm8gbG9uZ2VyIHBpbmc6OmVjaG9zIGhvc3RzIGJlZm9yZSBjaGVja2luZyB0aGVtCiAgICAgICAtIGluc3RlYWQgcmVsaWVzIG9uICdObyBSZXNwb25zZScgdHlwZSByZXBsaWVzIGZyb20gc25tcHdhbGsvZ2V0IHRvCiAgICAgICAgIGRldGVybWluZSBpZiBhIGhvc3QgaXMgdXAuCiAgICAgICAtIHBpbmcgdGhlIGhvc3QgaXMgc3RpbGwgYW4gb3B0aW9uICh0aHJvdWdoIHRoZSBjb21tYW5kIGxpbmUgYW5kIG1lbnVzKQogICAgIC0gY29udmVydGVkIGZyb20gVGstYjQgdG8gVGstYjgKICAgICAtIEFkZGVkIGEgbG9nZ2luZyB3aW5kb3cgZm9yIGRlYnVnZ2luZyBhbmQgdHJhY2tpbmcgb2YgYWN0aW9ucy4KICAgICAgIC0gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOiAgLVYgTlVNICBpbml0aWFsIGxvZyB2ZXJib3NpdHkgbGV2ZWwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLUwgICAgICBzaG93IHRoZSBsb2cgd2luZG93IGF0IHN0YXJ0dXAKICAgICAtIE5vdyB0cmFuc2xhdGVzIG1pYiBudW1iZXJzIGludG8gbW9yZSByZWFzb25hYmxlIG5hbWVzCiAgIAoxOTk1LTExLTIwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICAtICh0cmFwbm90aWYpIExvZ3Mgbm8tcmVzcG9uY2UgZXJyb3JzLgogICAtICh0cmFwbm90aWYpIEJldHRlciBzdHJpbmcgY2hlY2tpbmcgKHF1b3RlcyBhbGwgdmFyaWFibGVzIG5vdykKICAgCjE5OTUtMTEtMjAgMTY6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLAogICBta2luc3RhbGxkaXJzOgoKICAgLSAoYWxsIGF1dG9jb25mIGJ1aWx0IGZpbGVzKSBVcGRhdGVkIGV2ZXJ5dGhpbmcgdG8gYXV0b2NvbmYgMi41CiAgIAoxOTk1LTExLTIwIDE2OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIC0gKGNvbmZpZy5oLmluKSBDaGVjayBmb3IgLWxlbGYgZm9yIHNvbGFyaXMgMi4zIGFuZCB5b3VuZ2VyCiAgIAoxOTk1LTExLTIwIDE2OjA3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUuaW4pIENoZWNrIGZvciAtbGVsZiBmb3Igc29sYXJpcyAyLjMgYW5kIHlvdW5nZXIKICAgLSAoY29uZmlndXJlLmluKSBNb3JlIHNvbGFyaXMgc3BlY2lmaWNzOiAgLURTVlI0CiAgIC0gKGNvbmZpZ3VyZS5pbikgQ2FjaGVzIGluaXRpYWwgcHJvbXB0IGluIHRoZSBjb25maWd1cmUgc2NyaXB0IHNvIHlvdQogICAgIHdvbid0IGJlIGJ1Z2dlZCB0d2ljZSBieSB0aGUgaW5pdGlhbCBxdWVzdGlvbi4KICAgCjE5OTUtMTEtMjAgMTY6MDUgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAtIChUT0RPKSBGaW5kIGFuZCBmaXggbWVtb3J5IGxlYWsgc29tZXRpbWUKICAgCjE5OTUtMTEtMjAgMTY6MDQgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgQWRkZWQgcG9pbnRlciB0byB0aGlzIGZpbGUgdmlhIGZ0cAogICAKMTk5NS0xMC0xNyAxNzoyNyAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlTG9nIHVwZGF0ZQogICAKMTk5NS0xMC0xNyAxNzoxMCAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlLWZpbGVzIG5lZWRzIHRvICdjZCcgdG8gdGhlIGNvcnJlY3QgZGlyZWN0b3J5IGZpcnN0CiAgIAoxOTk1LTEwLTE3IDE2OjU3ICBoYXJkYWtlcgoKICAgKiByZW1vdmUtZmlsZXM6CgogICBhZGRlZCB0aGUgcmVtb3ZlLWZpbGVzIGV4cG9ydCBjb21tYW5kCiAgIAoxOTk1LTEwLTE2IDE3OjIzICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICAtIChjb25maWd1cmUpIE9uZSBsYXN0IGVjaG8gLW4gdnMgXGMgZml4CiAgIAoxOTk1LTEwLTE2IDE2OjQzICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcGJ1bGt3YWxrLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYwosIHNubXBzZXQuYywgc25tcHRlc3QuYywgc25tcHRyYXBkLmMsCiAgIHNubXB3YWxrLmM6CgogICAtIChhcHBzKSBhbGwgYXBwcyB3ZXJlIHN0aWxsIGxvb2tpbmcgaW4gL2V0Yy8gZm9yIC5jb25mIGZpbGVzCiAgIAoxOTk1LTEwLTE2IDE2OjQxICBoYXJkYWtlcgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUpIGZpeGVkIFxjIHZzIC1uIGRlcGVuZGVuY3kKICAgCjE5OTUtMTAtMTYgMTY6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSB3YXMgc3RpbGwgbG9va2luZyBpbiAvZXRjIGZvciB0d28gLmNvbmYgZmlsZXMuCiAgIAoxOTk1LTEwLTE2IDE1OjU1ICBoYXJkYWtlcgoKICAgKiBUT0RPOgoKICAgLSBBZGRlZCBpbmZvIHJlcXVlc3QgdG8gYm90dG9tIG9mIFRPRE8KICAgCjE5OTUtMTAtMTYgMTU6NTUgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIC0gQ2hhbmdlTG9nIHVwZGF0ZQogICAKMTk5NS0xMC0xNiAxNTowNSAgaGFyZGFrZXIKCiAgICogVE9ETzoKCiAgIC0gKFRPRE8pIG1hcmtlZCBpbnN0YWxsIGFzIGZpbmlzaGVkIGFuZCBzb2xhcmlzIHBvcnQgYXMgY2xvc2UKICAgCjE5OTUtMTAtMTYgMTU6MDEgIGhhcmRha2VyCgogICAqIElOU1RBTEwsIE1ha2VmaWxlLmluLCBSRUFETUUsCiAgIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluLCBtYW4vTWFrZWZpbGUuaW4KLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGVzKSBtYWtlIGluc3RhbGwgZWNob3Mgd2hhdCBpdHMgZG9pbmcgaW4gYSBtb3JlIGNsZWFyIGZhc2hpb24KICAgLSAoSU5TVEFMTCkgYWRkZWQgYmV0dGVyIGluc3RydWN0aW9ucyB0byB0aGUgSU5TVEFMTCBmaWxlLgogICAtIChSRUFETUUpIG1pbm9yIHdvcmRpbmcgY2hhbmdlcwogICAKMTk5NS0xMC0xNiAxMzowMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE5FV1MsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCiwgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIG1hbi8uY3ZzaWdub3JlLCBtYW4vTWFrZWZpbGUuaW46CgogICAtIChNYWtlZmlsZXMpIEZhaXJseSBkZWNlbnQgJ21ha2UgaW5zdGFsbCcgbm93IHBvc3NpYmxlLiAgSW5zdGFsbHMKICAgICBpbnRvIHRoZSBkaXJlY3Rvcnkgc3BlY2lmaWVkIGJ5IC0tcHJlZml4IGZvciB0aGUgLi9jb25maWd1cmUgc2NyaXB0LgogICAtIChleHRlbnNpYmxlLmMpIGNvbmZpZyBmaWxlIHJlLWxvY2F0aW9uOiBub3cgdXNlcyB0aGUgU05NUExJQlBBVEgKICAgICBkZWZpbmVkIGxvb3NlbHkgYXMgJChwcmVmaXgpL2xpYi9zbm1wLy4KICAgCjE5OTUtMTAtMTMgMTU6NDQgIGhhcmRha2VyCgogICAqIFRPRE8sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUKLCBjb25maWd1cmUuaW4sIHN0YW1wLWgsIGFnZW50L3NubXBkLmMsCiAgIHNubXBsaWIvbWliLmM6CgogICAtIChzbm1wZC5jKSBBZGRlZCAtcCBwb3J0IHRvIC0taGVscCBvdXRwdXQKICAgLSAoY29uZmlnKSBTZXR1cCB0byB1c2UgLS1wcmVmaXggdG8gbG9vayBmb3IgY29uZmlnIGZpbGVzLgogICAKMTk5NS0xMC0xMSAxNzozMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGFjbG9jYWwubTQsCiAgIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW46CgogICAtIFRoZSBjb25maWd1cmUgc2NyaXB0IG5vdyBwcm9tcHRzIGZvciBpbXBvcnRhbnQgdmFsdWVzIHRvIGJlIHB1dCBpbgogICAgIGNvbmZpZy5oLiAgU29tZSB0aGluZ3MgbmVlZCB0byB1c2UgJChwcmVmaXgpIGluc3RlYWQgaG93ZXZlci4KICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluKQogICAgICsgbGlua2luZyB0byAuLi9zbm1wbGliL2xpYnNubXAuYSBpbnN0ZWFkIG9mIC4uL2xpYi9saWJzbm1wLmEgdG8KICAgICAgIHJlbW92ZSBpbnN0YWxsIHJlcXVpcmVtZW50LgogICAgICsgIHB1dCAuLi9saWIvbGlic25tcC5hIGluIGFwcGxpY2F0aW9uCiAgIAoxOTk1LTEwLTA2IDE2OjQxICBoYXJkYWtlcgoKICAgKiBORVdTLCBUT0RPOgoKICAgLSAoTkVXUy8tVE9ETykgLWgvLS1oZWxwLCAtdi8tLXZlcnNpb24gY29tbWFuZCBsaW5lIG9wdGlvbnMKICAgCjE5OTUtMTAtMDYgMTY6NDAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSBVc2FnZSBvZiAtLWhlbHAgYW5kIC0tdmVyc2lvbiBzaG91bGQgd29yayBub3cuLi4gIEdOVSBzdGFuZGFyZC4KICAgCjE5OTUtMTAtMDYgMTY6MzIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBNYWtlZmlsZS5pbiwgcGFyc2UuYywgc25tcC5jOgoKICAgLSAocGFyc2UuYywgc25tcC5jKSBhZGRlZCBjb25maWcuaCB0byB0aGUgbGlzdCBvZiBpbmNsdWRlcy4KICAgCjE5OTUtMTAtMDYgMTY6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICAtIChzbm1wZC5jKSBBZGRlZCB0d28gbmV3IGZsYWdzOgogICAgIC1oIGZvciBoZWxwCiAgICAgLXYgZm9yIHZlcnNpb24gaW5mb3JtYXRpb24KICAgCjE5OTUtMTAtMDYgMTE6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIC0gKFJFQURNRSkgTW92ZWQgSU5TVEFMTEFUSU9OIGluc3RydWN0aW9ucyB0byBJTlNUQUxMCiAgICAgICAgICAgICAgQ2hhbmdlZCBsaXN0aW5nIG9mIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzCiAgICAgICAgICAgICAgVXBkYXRlZCBBVkFJTEFCSUxJVFkgc2VjdGlvbgogICAKMTk5NS0xMC0wNiAxMToyNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbikgbm93IGNhY2hlcyBtb3JlIHZhbHVlcyAocHMgYXJncywgZXRjKSBhbmQKICAgICBjaGVja3MgZm9yIHRoZSBsb2NhdGlvbiBvZiBwcyAobm8gbG9uZ2VyIGFzc3VtaW5nIHRvIGJlIC9iaW4vcHMpCiAgIAoxOTk1LTEwLTA2IDExOjI0ICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgLSAoSU5TVEFMTCkgaW5zdGFsbGF0aW9uIGluc3RydWN0aW9ucyBtb3ZlZCB0byBoZXJlCiAgIAoxOTk1LTEwLTA1IDE1OjIyICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlLCBUT0RPLCBjb25maWcuaC5pbiwgY29uZmlndXJlLAogICBjb25maWd1cmUuaW4sIHN0YW1wLWguaW4sIGFnZW50L01ha2VmaWxlLmluLAogICBhZ2VudC9rZXJuZWxfc3Vub3M1LmMsIGFnZW50L2tlcm5lbF9zdW5vczUuaCwKICAgYWdlbnQvcm91dGVfd3JpdGUuYywgYWdlbnQvc25tcF92YXJfcm91dGUuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICAtIE1vcmUgU29sYXJpcyBwb3J0aW5nLgogICAgIC0gTW9zdCBtaWJJSSBlbnRyaWVzIG5vdyB3b3JrLgogICAgICAgIC0gSGF2ZW4ndCBjaGVja2VkIHJldHVybmVkIGluZm9ybWF0aW9uIGZvciBhY2N1cmFjeQogICAgIC0gc3lzVXBUaW1lIHN0aWxsIGZhaWxzLgogICAgIC0gY2MgYW5kIGdjYyBib3RoIGNvbXBpbGUgZXZlcnl0aGluZyBub3cuCiAgIAoxOTk1LTEwLTAzIDA5OjQyICBoYXJkYWtlcgoKICAgKiBzdGFtcC1oLCBzdGFtcC1oLmluOgoKICAgKC5jdnNpZ25vcmUpIHJlbW92ZWQgZmlsZXMgc3RhbXAtaCBzdGFtcC1oLmluIGZpbGVzIHNpbmNlIG1ha2VmaWxlIG5lZWRlZCB0aGVtLgogICAKMTk5NS0xMC0wMyAwOTozNSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAoTWFrZWZpbGUuaW4pIFJlbW92ZWQgLi9jb25maWd1cmUgYW5kIC4vY29uZmlnLmguaW4gZnJvbSAiYWxsOiIgZGVwZW5kZW5jaWVzCiAgIAoxOTk1LTEwLTAzIDA5OjMxICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgKC5jdnNpZ25vcmUpIHJlbW92ZWQgY29uZmlnLmguaW4gZnJvbSBjdnMgaWdub3JlIGxpc3QgKGJhZCBiYWQpCiAgIAoxOTk1LTEwLTAzIDA5OjMxICBoYXJkYWtlcgoKICAgKiBjb25maWcuaC5pbjoKCiAgIChjb25maWcuaC5pbikgQWRkZWQgZmlsZS4KICAgCjE5OTUtMTAtMDMgMDk6MjQgIGhhcmRha2VyCgogICAqIFRPRE86CgogICAoVE9ETykgVXBkYXRlIG9mIHRoZSBUT0RPIGxpc3Q6ICBpbmNsdWRlZCBzbm1wdjEgY29uZmlnIGlkZWFzCiAgIAoxOTk1LTEwLTAzIDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgKGFjY29uZmlnLmgpIE1pbm9yIGJ1ZzogIHJlY3Vyc2l2ZSBjb21tZW50cyBub3QgY29ycmVjdCBmb3IgY29tcGlsZXJzIChBSVgpCiAgIAoxOTk1LTA5LTI5IDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgLSAoTkVXUykgdXBkYXRlZCB0aGUgbmV3cyBmaWxlLgogICAKMTk5NS0wOS0yOSAxMzo0MSAgaGFyZGFrZXIKCiAgICogLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIFRPRE8sIGFjY29uZmlnLmgKLCBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBpbnN0YWxsLXNoLCBta2luc3RhbGxkaXJzLAogICBhZ2VudC8uY3ZzaWdub3JlLCBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvYWNsX3ZhcnMuYwosIGFnZW50L2FsYXJtLmMsIGFnZW50L2NvbnRleHRfdmFycy5jLAogICBhZ2VudC9ldmVudC5jLCBhZ2VudC9rZXJuZWwuYywgYWdlbnQvcGFydHlfdmFycy5jCiwgYWdlbnQvcm91dGVfd3JpdGUuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcF92YXJzLmgsIGFnZW50L3NubXBkLmMsIGFnZW50L3ZpZXdfcGFyc2UuYwosIGFnZW50L3ZpZXdfdmFycy5jLCBhcHBzLy5jdnNpZ25vcmUsCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzZXQuYywKICAgYXBwcy9zbm1wdGVzdC5jLCBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYwosIGFwcHMvc25tcHdhbGsuYywgYXBwcy9zbm1wbmV0c3RhdC8uY3ZzaWdub3JlLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBzbm1wbGliLy5jdnNpZ25vcmUsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4sIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsX3BhcnNlLmMKLCBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9jb250ZXh0LmMsCiAgIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jLCBzbm1wbGliL21pYi5jCiwgc25tcGxpYi9wYXJ0eS5jLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsCiAgIHNubXBsaWIvc25tcC5jLCBzbm1wbGliL3NubXBfYXBpLmMsIHNubXBsaWIvc25tcF9hdXRoLmMKLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvdmlldy5jOgoKICAgLSBwb3J0ZWQgdG8gR05VJ3MgYXV0b2NvbmZpZzIuNAogICAgIC0gdG8gaW5zdGFsbCwgeW91IG11c3Qgbm93IHJ1biAuL2NvbmZpZ3VyZSBmaXJzdCB0byBnZW5lcmF0ZSB0aGUKICAgICAgIE1ha2VmaWxlcyBhbmQgY29uZmlnLmgKICAgICAtIGFsbW9zdCBhbGwgb2YgdGhlIGNvZGUgaXMgbm93IGR5bmFtaWNhbGx5IGNoZWNrZWQgZm9yIHByb2JsZW1zCiAgICAgICByYXRoZXIgdGhhbiBiZWluZyBkZXBlbmRhbnQgb24gYXJjaGl0ZWN0dXJlIG5hbWVzLgogICAtIHN5c3RlbSBuYW1lIG5vdyBkeW5hbWljYWxseSBkZXRlcm1pbmVkIGF0IHJ1biB0aW1lIChmcm9tIHVuYW1lIC1uKQogICAtIGNyZWF0ZWQgYSAnbWFrZSBkZXBlbmQnIGNhbGwgKGZpbmFsbHkpLgogICAtIChhZ2VudC9zbm1wX3ZhcnMuaCkgY2hhbmdlZCBTWVNOQU1FIGRlZmluZSB0byBTWVNURU1OQU1FIGRlZmluZSB0bwogICAgIGF2b2lkIGEgY29uZmxpY3Qgd2l0aCBhIHNvbGFyaXMgaGVhZGVyIGZpbGUuCiAgIC0gcHJvdGVjdGluZyBiZXR0ZXIgYWdhaW5zdCBpbmNsdWRlIGhlYWRlciBmaWxlcyB0d2ljZS4KICAgLSBNb3N0IG9mIHBvcnQgdG8gU29sYXJpcyAyLjQgZmluaXNoZWQuICBUaGUga2VybmVsIHJlYWRzIHN0aWxsIG5lZWQgd29yay4KICAgCjE5OTUtMDktMjEgMDk6MjkgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIDMuMC4yLjEgcmVsZWFzZSAoY29tcGlsYXRpb24gYnVnIGZpeCkKICAgCjE5OTUtMDktMjEgMDk6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICAoc25tcGxpYi9tZDUuYykgRm9yZ290IHRvIGluY2x1ZGUgc3lzL3R5cGVzLmggZm9yIHVfbG9uZyBkZWZpbml0aW9uLgogICAKMTk5NS0wOS0xOCAxNjoyNCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgTmV3cy9DaGFuZ2Vsb2cgdXBkYXRlcwogICAKMTk5NS0wOS0xOCAxNjoxNCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLjEuZGVmOgoKICAgQmVnaW5uaW5ncyBvZiBhIG1hbnVhbCBwYWdlIGZvciBzbm1wZAogICAKMTk5NS0wOS0xOCAxNjowOSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgTWlub3IgbW9kcyB0byBSRUFETUUgZmlsZS4KICAgCjE5OTUtMDktMDEgMTQ6NTIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBBZGRlZCBhIE5FV1MgZmlsZSB0byByZXBvcnQvcmVjb3JkIG1ham9yIGNoYW5nZXMKICAgCjE5OTUtMDktMDEgMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jCjoKCiAgIC0gRml4ZWQgYWxwaGEncyBrZXJuZWwgbG9va3VwczoKICAgICAqIENNVSBjb2RlIHdhcyBwYXNzaW5nIGludHMgaW50byBsc2VlayAobmVlZHMgbG9uZykuCiAgIAoxOTk1LTA3LTMxIDE2OjI3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgLSBzbm1wY2hlY2sgY2hhbmdlczoKICAgICAtIHRlcm1pbmFsIChhc2NpaSkgYmFzZWQgc3VwcG9ydGVkIGZpeGVkLgogICAgICAgLSBEZXRlY3RzIHByZXNlbmNlIG9mIGEgRElTUExBWSB2YXJpYWJsZS4KICAgICAgIC0gTm93IHJlcXVpcmVzIHRoZSBUZXJtOjpSZWFka2V5IHBhY2thZ2UuCiAgICAgICAtIGFza3MgdXNlcnMgd2VhdGhlciB0byBmaXggcHJvYmxlbXMKICAgICAtIHJhaXNlcyBhbmQgZGVpY29uaWZpZXMgd2hlbiBuZXcgcHJvYmxlbXMgYXJlIGZvdW5kCiAgICAgLSBzZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIG5ldyBwcm9ibGVtcyB0byBwaW5raXNoCiAgICAgLSBuZXcgcHJlZmVuY2U6ICBwaW5nIGhvc3Q/CiAgICAgLSBnbG9iYWwga2V5IGJpbmRpbmdzOgogICAgICAgICBjdHJsLXEgPSBxdWl0OyBjdHJsLWggPSBoaWRlOyBjdHJsLXMgPSBzZWVuIGFsbAogICAKMTk5NS0wNy0yOCAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICBZZXQgbW9yZSBwcm9ibGVtcyBmaXhlZCBpbiB0aGUgYWxwaGEgcG9ydC4KICAgICAtLSBtb3JlIGludCAtPiBsb25nIGNoZWNraW5nLgogICAKMTk5NS0wNy0yNiAxNjozMCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQva2VybmVsLmMsIGFnZW50L3JvdXRlX3dyaXRlLmMKLCBhZ2VudC9zbm1wX3Zhcl9yb3V0ZS5jLCBhZ2VudC9zbm1wX3ZhcnMuYywKICAgYWdlbnQvc25tcGQuYywgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWQ1LmMsCiAgIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICAtIEFkZGVkIGEgbmV3ICNkZWZpbmU6IEVYSVRfT05fQkFEX0tMUkVBRCB0byBjb25maWcuaAogICAgIElmIGRlZmluZWQsIGFuZCBhbiBlcnJvciBvY2N1cnMgd2hpbGUgcmVhZGluZyB0aGUga2VybmVsIGNvbnRlbnRzLAogICAgIHRoZSBhZ2VudCB3aWxsIGV4aXQuICBUaGlzIHdhcyB0aGUgZGVmYXVsdC4gIEkgd2FudGVkIGl0IHRvCiAgICAgY29udGludWUuCiAgIAogICAtIFBvcnQgdG8gZGVjLWFscGhhL09TRiAzLjEKICAgICAtIGFscGhhJ3MgbG9uZyBpcyA4IGJ5dGVzLCBub3QgNC4KICAgICAtIHNob3VsZCBiZSAobW9zdGx5KSA2NCBiaXQgY2xlYW4gbm93LgogICAgIC0gY2xlYW5lZCB1cCBhIExPVCBvZiBidWdzIENNVSBjb2RlIGluIHRoZSBwcm9jZXNzLgogICAKMTk5NS0wNy0xNCAxNToyMCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgQ2hhbmdlbG9nIHVwZGF0ZQogICAKMTk5NS0wNy0xNCAxNToxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIC0gc25tcGNoZWNrICh0ay1wZXJsLWI0IHNjcmlwdCkgaXMgcHJldHR5IHN0YWJsZSBhdCB0aGlzIHBvaW50LiAgSQogICAgIGxvc3QgY3Vyc2VzIHN1cHBvcnQsIGFuZCBuZWVkIHRvIHJlLWFkZCBpdCBzdGlsbCwgc28gaXQgaXMgc3RpbGwKICAgICBiZXRhLiAgSXQgZG9lcyBleHBlY3QgYSBsb2cgZmlsZSBvZiBwcm9ibGVtcyB0byBleGlzdCAocG9pbnQgaXQgdG8KICAgICAvZGV2L251bGwpLCBhbmQgbmVlZHMgdG8ga25vdyB0aGUgbG9jYXRpb25zIG9mIHRoZSBtaWJzIHRvIGNoZWNrCiAgICAgKHdoaWNoIGFyZW4ndCBjb25maWd1cmVkIGJ5ICdtYWtlJyksIHNvIGl0IG5lZWRzIHNvbWUgd29yay4KICAgICBIb3dldmVyLCBpdCB3aWxsIHF1ZXJ5IGFuIGFnZW50LCBjaGVjayBpdHMgcHJvYmxlbXMgYmFzZWQgb24gdGhlCiAgICAgc3RhdHVzIG9mIHRoZSBlcnJvciBmbGFnIChvciByZXR1cm4gY29kZSkgYmVpbmcgPjEgYW5kIHJlcG9ydCB0aGVtCiAgICAgd2l0aCBuZWF0IEdVSS1idXR0b25zIGFuZCBzdHVmZiAob2ggd293KS4gIE5vIGRvY3VtZW50YXRpb24gb24gaXQgdGhvdWdoLgogICAKMTk5NS0wNy0xNCAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIC0gRmluaXNoZWQgdGhlIHJlc3RhcnQgbWliLiAgVGhpcyBpcyBhIHNldGFibGUgc3ViLW1pYiBvZiB0aGUgdmVyc2lvbgogICAgIG1pYiwgZGVmYXVsdCB0byBWRVJTSU9OLjEyKC4xKS4gIElmIHNubXAtc2V0IHRvICcxJywgaXQgd2lsbCByZXN0YXJ0CiAgICAgdGhlIGFnZW50LgogICAKICAgICAqICBBIHNpZGUgZWZmZWN0IG9mIHRoaXMgaXMgdGhhdCBpdCByZXN0YXJ0cyAzIHRpbWVzIG9yIHNvLCBzaW5jZSBpdAogICAgICAgIG5ldmVyIHJldHVybnMgYSByZXNwb25jZSB0byB0aGUgcHJvZ3JhbSBnZW5lcmF0aW5nIHRoZSByZXF1ZXN0LgogICAgICAgIElmIHNhaWQgcHJvZ3JhbSB0cmllcyB0byByZXNlbmQgdGhlIHJlcXVlc3QgKHdoaWNoIG1vc3QgZG8pLCBpdAogICAgICAgIHdpbGwgQUdBSU4gcmVzdGFydCB0aGUgYWdlbnQuLi4gIG9oIHdlbGwuCiAgIAoxOTk1LTA3LTEwIDEyOjMwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgTWlub3IgY29tbWVudCBjaGFuZ2UgaW4gY29uZmlnLmgKICAgCjE5OTUtMDctMTAgMTE6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBUd28gbmV3IGNvbW1hbmQgbGluZSBvcHRpb25zOgogICAgIC1sIExPR0ZJTEUgICAgICAgT3V0cHV0cyBzdGRlcnIvb3V0IHRvIExPR0ZJTEUgKG92ZXJyaWRlcyBjb25maWcuaCBkZWYpCiAgICAgLUwgICAgICAgICAgICAgICBEbyBOT1Qgd3JpdGUgdG8gYSBsb2cgZmlsZSAob3ZlcnJpZGVzIGNvbmZpZy5oKQogICAKMTk5NS0wNi0yMSAwOToyMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgc25tcGxpYjoKICAgICBCdWcgZml4OiAgZmRzZXQgLT4gKGludCAqKSBmZHNldCBpbiBzZWxlY3QgY2FsbC4KICAgCjE5OTUtMDYtMjEgMDk6MTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBDaGFuZ2VkIGRlZmF1bHQgQ0MgdG8gY2MgYWdhaW4uCiAgIAoxOTk1LTA2LTIxIDA5OjE4ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIGVjZS1taWIuZGVmOgogICBCdWcgRml4OgogICAgIExvYWRhdmUgbWliOiAgSW50ZWdlciAtPiBEaXNwbGF5U3RyaW5nCiAgICAgdmVyc2lvbkNsZWFyQ2FjaGU6ICAtPiByZWFkLXdyaXRlICh3YXMgcmVhZC1vbmx5KQogICAKICAgRmVhdHVyZToKICAgICBBZGRlZCBhIHNldGFibGUgbWliIGVudHJ5IHRvIHRoZSB2ZXJzaW9uIG1pYiB0byByZS1yZWFkIHRoZSBjb25maWcgZmlsZShzKS4KICAgCjE5OTUtMDYtMjEgMDk6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIENoYW5nZWQgYW5vdGhlciAiZW1wdHkiIGVycm9yIG1lc3NhZ2UgaW4gdGhlIENNVSBjb2RlIHRvIGEgcmVhbCB3YXJuaW5nLgogICAKMTk5NS0wNi0xNiAxNDoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBIb3VzZSBDbGVhbmluZzoKICAgICBNaXNzZWQgYSBWRVJTSU9OX0lECiAgIAoxOTk1LTA2LTE2IDE0OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEhvdXNlIENsZWFuaW5nOgogICAgIFRvb2sgb3V0IGdjYy9hbnNpIHJlcXVpcmVtZW50IGZvciB0aGUgYWdlbnQuCiAgICAgcGVycm9yKCkgaXMgY2FsbGVkIG1vcmUgZnJlcXVlbnRseSBmb3IgbG9nIGFyY2hpdmFsCiAgIAogICBOZXcgQnVnL0hhdmVuJ3Qgc29sdmVkOgogICAgIEhQLVVYOiAgaWYgYWdlbnQvKi5jIGFuZCBhZ2VudC9leHRlbnNpYmxlLyouYyBhcmUgYnVpbHQgd2l0aCBnY2MsCiAgIAkgIERpc3BsYXlTdHJpbmdzIHJldHVybiBnYXJiYWdlLiAgTm8gY2x1ZSBhcyB0byB3aHkuCiAgIAoxOTk1LTA2LTE2IDEwOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfdmFyX3JvdXRlLmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaAosIHNubXBkLmM6CgogICBIb3VzZSBjbGVhbmluZwogICAgIC0gQ29tcGlsZXMgY2xlYW5seSBvbiBocHV4L2djYwogICAJKGV4Y2VwdCBvbmUgaW5jbHVkZSBmaWxlIGVycm9yIEkgZG9uJ3QgaGF2ZSBjb250cm9sIG92ZXIuKQogICAgIC0gQ2hhbmdlIFZFUlNJT05fSUQgLT4gVkVSU0lPTklEIHRvIGF2b2lkIGNvbmZsaWN0cyB3aXRoIEhQJ3MgaW5jbHVkZXMuCiAgIAoxOTk1LTA2LTE2IDEwOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIFJlbW92ZWQgJ2dtYWtlJyAtPiAnbWFrZScgaW4gYWdlbnQvTWFrZWZpbGUKICAgCjE5OTUtMDYtMTQgMTQ6MDkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZGVkIEFWQUlMQUJJTElUWSBzZWN0aW9uIHRvIHRoZSBSRUFETUUgZmlsZS4KICAgCjE5OTUtMDYtMTQgMTM6NTYgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgUkVBRE1FOgoKICAgVXBkYXRlZCB0aGUgQ2hhbmdlTG9nCiAgIEFkZGVkIGEgInJlYWwiIGRpc2NsYWltZXIgdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMTk5NS0wNi0xNCAxMzo0MyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgLSBBZGRlZCBtb3JlIGRvY3VtZW50YXRpb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAtIENyZWF0ZWQgYSBtYWlsaW5nIGxpc3QgdG8gaGFuZGxlIGFubm91bmNlbWVudHMKICAgICAodWNkLXNubXAtYW5ub3VuY2VAZWNlLnVjZGF2aXMuZWR1KQogICAKMTk5NS0wNi0xNCAxMjo1NiAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIENsZWFuZWQgdXAvQWRkZWQgbW9yZSBkb2N1bWVudGF0aW9uIHRvIGNvbmZpZy5oCiAgIC0gR0xPQkFMU0VDVVJJVFkgbm93IHVzZXMgdGhlIGxlZnQgbW9zdCBmb3VyIGJpdHMgaW4gdGhlIE1JQiBhY2wuCiAgICAgVGhpcyBpcyBtb3JlIGNvbXBhdGlibGUgd2l0aCB0aGUgQ01VIGNvZGUgdGhhbiB1c2luZyB0aGUgbGVmdCBtb3N0CiAgICAgMiwgd2hpY2ggd2FzIGRvbmUgcHJldmlvdXNseS4KICAgCjE5OTUtMDYtMTQgMTE6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgYWdlbnQ6CiAgIC0gTWliIHRhYmxlIGlzIG5vdyBxc29ydGVkIGF0IHJ1biB0aW1lIGFuZCB0aGUgZXh0ZW5zaWJsZSB2YXJpYWJsZXMgYXJlCiAgICAgc29ydGVkIGluIGF0IHRoaXMgdGltZS4gIFRoaXMgYnJpbmdzIHRoZSBhZ2VudCB1cCB0byBjb3JyZWN0CiAgICAgU05NUHdhbGsvZ2V0bmV4dCBwcm90b2NvbHMuICBZb3UgY2FuIG5vdyB3YWxrIHRoZSBlbnRpcmUgdHJlZQogICAgIGluY2x1ZGluZyB0aGUgZXh0ZW5zaWJsZSBzZWN0aW9ucyBhbmQgaXQgd29uJ3Qgc3RvcC4KICAgICAqIFRoaXMgaGFzIGFuIGFkZGVkIGJvbnVzIG9mIGNoZWNraW5nIHRoZSBtaWIgdGFibGUKICAgICAgIChhZ2VudC9zbm1wX3ZhcnMuYykgZm9yIGNvcnJlY3Qgb3JkZXIuICBJIGhhdmUgYWRkZWQgdGhpbmdzIHRvIHRoZQogICAgICAgd3JvbmcgbG9jYXRpb24gdG9vIG1hbnkgdGltZXMgYW5kIGNhdXNlZCB0aGUgYWdlbnQgdG8gZnVuY3Rpb24KICAgICAgIGluY29ycmVjdGx5LiAgTWFqb3Igd2luLgogICAKMTk5NS0wNi0xMiAxMDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgbG9jYWwvdHJhcG5vdGlmOgogICAgIC0tIHVzZXMgc25tcHYyIG5vdyAoY29ycmVjdGx5KQogICAKMTk5NS0wNi0wOSAxNDowOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIENoYW5nZWQgdGVzdCAteCB0byB0ZXN0IC1mIGluIHNubXBsaWIvTWFrZWZpbGUuICBOb3QgYWxsIE9TZXMKICAgICAoaWUgdWx0cml4KSBoYW5kbGUgdGhpcy4KICAgCjE5OTUtMDYtMDkgMTM6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWQ1LmM6CgogICBGaXhlZCBBdXRoZW50aWNhdGlvbiBlcnJvciAoYWdhaW4pIChjb3JyZWN0IHRoaXMgdGltZSkgYmV0d2VlbgogICAgICAgICByZXZlcnNlZCBieXRlIG9yZGVyIG1hY2hpbmVzLgogICAgIC0tICAjaWZkZWYgaHB1eC9TWVNWL3N1biBpbiBtZDUuYyByZXZlcnNlcyBieXRlIG9yZGVyCiAgIAoxOTk1LTA2LTA5IDEyOjM5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21kNS5jOgoKICAgRml4ZWQgQXV0aGVudGljYXRpb24gZXJyb3IgYmV0d2VlbiByZXZlcnNlZCBieXRlIG9yZGVyIG1hY2hpbmVzLgogICAgIC0tICAjaWZkZWYgaHB1eC9TWVNWIGluIG1kNS5jIHJldmVyc2VzIGJ5dGUgb3JkZXIKICAgCjE5OTUtMDYtMDkgMTA6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQ29ycmVjdGx5IG9yZGVyZWQgdGhlIG1pYiB0YWJsZSBsaXN0LgogICAgIC0tICBOZWVkIHRvIHdyaXRlIGEgZHluYW1pYyBjaGVja2VyL3JlLW9yZGVyZXIuCiAgIAoxOTk1LTA2LTA5IDEwOjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBBZGRlZCBhIFNOTVBCTE9DSyBvcHRpb24gdG8gdGhlIGNvbmZpZy5oIGZpbGUuICBTdXBwb3NlZGlseSBzZXR0aW5nCiAgICAgdGhpcyB0byB6ZXJvIChub3cgdGhlIGRlZmF1bHQpIHdpbGwgYWxsb3cgc25tcCByZXF1ZXN0cyB0byB0aW1lIG91dC4KICAgICBIYXZlbid0IHRlc3RlZCBpdCB0aHJvdWdobHkuCiAgICAgICAtLSBDb250cmlidXRlZCBieSBTYW5qYWkgTmFyYWluIDxuYXJhaW5AdGh1bXBlci5iZWxsY29yZS5jb20+CiAgIAoxOTk1LTA2LTA1IDEyOjQ0ICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2csIFJFQURNRSwgYWdlbnQvc25tcF92YXJzLmM6CgogICAqIGFnZW50L2V4dGVuc2libGUvTWFrZWZpbGU6CiAgICAgICAtLSAgbm8gbG9uZ2VyIHJlcXVpcmVzIEdOVSBtYWtlCiAgICAgICAtLSAgZXRhZ3Mgbm8gbG9uZ2VyIHJ1biBieSBkZWZhdWx0CiAgIAogICAqIFN1bk9TIGFkZGl0aW9uczoKICAgICAgIC0tIGxvYWRhdmVyYWdlIGNoZWNraW5nIE1JQiBlbmFibGVkCiAgICAgICAtLSBkaXNrIGNoZWNraW5nIE1JQiBlbmFibGVkCiAgIAoxOTk1LTA2LTAyIDE2OjIxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBGaW5hbCBtb2RpZmljYXRpb24gZm9yIGluaXRhbCByZWxlYXNlCiAgIAoxOTk1LTA2LTAyIDE1OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICNpZmRlZiBocHV4IGFyb3VuZCBocHV4IHNwZWNpZmljIG1pYnMKICAgCjE5OTUtMDYtMDIgMTU6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9pbXBsLmg6CgogICBFUlJPUigpIGRlZmluZSBub3cgZmx1c2hlcyBzdGRvdXQKICAgCjE5OTUtMDYtMDIgMTU6MzAgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIE5vdyB1c2VzIHYyIHJlcXVlc3QgcHJvdG9jb2wuCiAgIAoxOTk1LTA2LTAyIDE1OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQcmludHMgTUlCIHRvIHN0ZG91dCBmb3IgZXhpc3RlbnQgbWlicwogICAKMTk5NS0wNi0wMiAxNToyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBhIGNoZWNrIGZvciBTTk1QVjIvU05NUFYyQVVUSCB0eXBlIGF1dGhvcml6YXRpb24uCiAgIAoxOTk1LTA2LTAyIDE1OjI3ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oOgoKICAgUmVvcmdhbml6ZWQgY29uZmlnLmggaW4gbW9yZSBvciBsZXNzIG9yZGVyIG9mIGltcG9ydGFuY2UKICAgQWRkZWQgZGVmaW5pdGlvbnMgZm9yIFNOTVBWMk9OTFkgdHlwZSBhdXRob3JpemF0aW9uLgogICAKMTk5NS0wNi0wMiAxNToyNiAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICByZW1vdmVkIGJvZ3VzIHR3byBsaW5lcwogICAKMTk5NS0wNS0zMSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBOZXc6CiAgIAogICAgIEFkZGVkIHR3byBuZXcgQUNMIHR5cGVzOiAgUFJJVkFVVEhSVyBhbmQgUFJJVkFVVEhSTyB3aGljaCB3aWxsIG9ubHkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmsgaWYgdGhlIHJlcXVlc3QgaXMgYXV0aGVudGljYXRlZCAoYnkgYW55dGhpbmcpLgogICAKMTk5NS0wNS0zMSAxNDo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgTmV3OgogICAKICAgICBBZGRlZCAtZiBvcHRpb24gdG8gUkVBRE1FCiAgIAoxOTk1LTA1LTMxIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIE5ldzoKICAgCiAgICAgTmV3IE1JQjogIHNubXBFcnJvcnMgdG8gbG9nIHByb2JsZW1zIHdpdGggdGhlIGFnZW50CiAgIAoxOTk1LTA1LTMxIDE0OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX3ZhcnMuYywgc25tcGQuYzoKCiAgIE5ldzoKICAgCiAgICAgTmV3IGRlZmluaXRpb24gaW5jbHVkZWQgZm9yIGEgZGVmYXVsdCBwbGFjZSB0byBsb2cgbWVzc2FnZXM6IExPR0ZJTEUKICAgICBOZXcgTUlCOiAgc25tcEVycm9ycyB0byBsb2cgcHJvYmxlbXMgd2l0aCB0aGUgYWdlbnQKICAgICBGb3JrcyBhd2F5IGZyb20gY2FsbGluZyBzaGVsbCBieSBkZWZhdWx0IG5vdyB1bmxlc3MgLWYgc3BlY2lmaWVkLgogICAKICAgTWlzYzoKICAgCiAgICAgSWZkZWZzIGFyb3VuZCBhbGwgYWRkZWQgc2VjdGlvbnMgb2YgY29kZSB0byBkaXNhYmxlIGR1cm5pbmcgY29tcGlsYXRpb24KICAgCjE5OTUtMDUtMzEgMTQ6NDUgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBOZXc6CiAgIAogICAgIE5ldyBkZWZpbml0aW9uIGluY2x1ZGVkIGZvciBhIGRlZmF1bHQgcGxhY2UgdG8gbG9nIG1lc3NhZ2VzOiBMT0dGSUxFCiAgICAgTmV3IE1JQjogIHNubXBFcnJvcnMgdG8gbG9nIHByb2JsZW1zIHdpdGggdGhlIGFnZW50CiAgIAogICBCdWdzOgogICAKICAgICBocHV4IGNvbXBsaWVycyBkb24ndCBkZWZpbmUgU1lTViBieSBkZWZhdWx0Li4uCiAgIAoxOTk1LTA1LTE5IDE1OjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgQWRkZWQgbWVudXMgYW5kIG1vdmVkIHNvbWUgY29tbWFuZHMgdGhlcmUgYXMgd2VsbCBhcyBwcmVmcmVuY2VzLgogICBOb3cgcmVzY2FucyBhZnRlciA1IG1pbnV0ZXMgYW5kIGNoZWNrcyB0aGUgbG9nLgogICAKMTk5NS0wNS0xOSAxNTo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgZWdyZXBpbmcgZm9yIGFuIGV4YWN0IG1hdGNoIGZvciBob3N0cyBub3cuCiAgIAoxOTk1LTA1LTE5IDE1OjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE1vcmUgZGVmaW5lcyBtb3ZlZCB0byBjb25maWcuaAogICAKMTk5NS0wNS0xOSAxNTo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBhY2NvbmZpZy5oLCBlY2UtbWliLmRlZjoKCiAgIFdvcmtpbmcgdG93YXJkIGFuIGV4cG9ydGFibGUgdmVyc2lvbi4KICAgCjE5OTUtMDUtMTcgMTI6NDUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBXb3JraW5nIHZlcnNpb24uCiAgICAgLS0gIG5vdyBvcGVyYXRlcyBvbiBhIHNlbGVjdGlvbgogICAgIC0tICBzdGlsbCBoYXMgYSBsb3Qgb2Ygcm9vbSBmb3IgaW1wcm92ZW1lbnQuCiAgIAoxOTk1LTA1LTA4IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgRmFpcmx5IGZ1bmN0aW9uaW5nIHZlcnNpb24uCiAgIE5lZWQgdG8gcG9ydCB0byBwZXJsNS4wMDEgJiB0azRiMwogICAKMTk5NS0wNS0wNSAxNzowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBPcHBzLiAgU2V0IHRwLT5uYW1lbGVuIHRvIGJlIC0xLCB3aGVuIGl0IGlzIGEgdW5zaWduZWQgY2hhci4gIFVzaW5nIDAgbm93LgogICAKMTk5NS0wNS0wNSAxNjoxOCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCwgYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L3NubXBfdmFycy5jCjoKCiAgIFJlLWFycmFuZ2luZyBhbmQgUmUtbmFtaW5nIHN0dWZmIGZvciBleHRlcm5hbCBkaXN0cmlidXRpb24KICAgCjE5OTUtMDUtMDMgMTM6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTWFqb3IgYnVnOgogICAgIENoYW5naW5nIHRyZWUgc2l6ZSBjYXVzZWQgcHJvYmxlbXMuCiAgICAgZXh0ZW5zaWJsZSB0cmVlIG5vdyBhZGRzIGEgaGFsdCBjb25kaXRpb24gKG5hbWVsZW4gPSAtMSkgdG8gY2hlY2sgZm9yCiAgIAoxOTk1LTA1LTAzIDEyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIHByb3RvdHlwZSBkZWNsYWlyYXRpb24gZm9yIGZpbmRfZXh0ZW5zaWJsZSgpCiAgIAoxOTk1LTA1LTAzIDA5OjIzICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBDaGFuZ2VkIHRpbWVvdXQgdG8gYmUgMzAgc2Vjb25kcy4KICAgCjE5OTUtMDUtMDMgMDk6MjEgIGhhcmRha2VyCgogICAqIGxvY2FsL3Jzbm1wOgoKICAgTmV3IHNjcmlwdDoKICAgICB3YWxrcyBhbiBleHRlbnNpYmxlIChvciBhbnkpIG1pYiB0cmVlLiAgSGFzIGJ1aWx0IGluIGtub3dsZWRnZSBvZgogICAgIHRoZSBtaWJzIGZvciBsYXktcGVvcGxlcyB1c2VhZ2UuCiAgIAoxOTk1LTA1LTAzIDA5OjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgRml4ZWQgYnVnOiAgVXNpbmcgYSB3cm9uZyB2YXJpYWJsZQogICAKMTk5NS0wNS0wMyAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBleHRlbnNpYmxlIG1pYiBlbnRyeS4KICAgICAtLSBmaW5kX2V4dGVuc2libGUgbm93IHJldHVybnMgdGhlIGRlZmF1bHQgbWliIHRyZWUgb3IgYW4KICAgICAgICBhcHByb3ByaWF0ZSBtaWIgdHJlZSB3aXRoIHRoZSBjcmVhdGVkIGV4dGVuc2libGUgZW50cnkgaW4gaXQuCiAgIAoxOTk1LTA1LTAzIDA5OjEwICBoYXJkYWtlcgoKICAgKiBlY2UtbWliLmRlZjoKCiAgIEFkZGVkIGxvYWQgYXZlcmFnZSBtaWIgZW50cnkKICAgCjE5OTUtMDQtMTcgMTI6MjUgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBTdGFydGVkIHdyaXR0aW5nIGEgVGsgaW50ZXJmYWNlLi4uICBDb2RlIGlzIHN0aWxsIHZlcnkgdmVyeSB1Z2x5LCBidXQgd29ya3MuCiAgIAoxOTk1LTA0LTE3IDEyOjI0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBOb3cgbG9ncyBpdHNlbGYgY29ycmVjdGx5LgogICAKMTk5NS0wNC0xMyAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBBZGRlZCBhIGRlcGVuZGFuY3kgZm9yIHdlcy9taWJkZWZzLmggdG8gc25tcF92YXJzLmMKICAgCjE5OTUtMDQtMDcgMTI6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9zbm1wZC5jLCBhcHBzL3NubXB0cmFwZC5jCiwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIHNubXBsaWIvc3lzdGVtLmM6CgogICAtLSBQb3J0ZWQgdG8gZGVjIDUwMDAvMjAwIFVsdHJpeCA0LjIgYXJjaGl0ZWN0dXJlcwogICAgICAgICBUT0RPOiAgbWVtb3J5L3N3YXAgaW4gd2VzLmMKICAgCjE5OTUtMDMtMzEgMTU6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBCdWdzOgogICAgIFdhcyBhY3Rpbmcgc2xvdyBzaW5jZSBpdCB3YXMgY2hlY2tpbmcgZWFjaCBtaWIgbG9jYXRpb24gdHdpY2UuCiAgICAgUmVtb3ZlZCBwZXJsIC13IHdhcm5pbmdzCiAgIAoxOTk1LTAzLTE1IDE2OjQ4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgc25tcGNoZWNrIGlzIG5vdyB3cml0dGVuIHVzaW5nIHBlcmw1J3Mgb2JqZWN0IG9yaWVudGVkIHJvdXRpbmVzLgogICAKMTk5NS0wMy0xNSAxNDoxOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ01VIEJ1ZyBmaXhlczoKICAgICAtLSBiZXR0ZXIgam9iIHRoYW4gbXkgcHJldmlvdXMgaGFjayBmaXhpbmcgZ2V0X3Rva2VuLgogICAgICAgICsgZ2V0X3Rva2VuIG5vdyByZXF1aXJlcyBhIHRoaXJkIGFyZ3VtZW50IGRpY3RhdGluZyB0aGUgbWF4IHN0cmluZwogICAgICAgICAgbGVuZ3RoIHRoZSB0b2tlbiBjYW4gaG9sZC4KICAgCjE5OTUtMDMtMTUgMDk6MjYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIFVwZGF0ZWQgUkVBRE1FLmhwdXggZmlsZSBmcm9tIEhQLXBvcnQtMS0xLTEuLi4KICAgCjE5OTUtMDMtMTUgMDk6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBwZXJsIC0+IHBlcmw1CiAgIE5vIGxvbmdlciBkZXBlbmRzIG9uIE9WcyBzbm1wc2V0LCBjYW4gbm93IHVzZSBDTVVzIHNubXBzZXQgKC91c3IvbG9jYWwvZXRjKQogICAKMTk5NS0wMy0xMCAxMzozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEFkZGVkIC9ldGMgYXMgYW5vdGhlciBwYXRoIHRvIHNlYXJjaCB3aGVuIGxvb2tpbmcgZm9yIG1pYi50eHQKICAgCjE5OTUtMDMtMTAgMTM6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIE1ham9yIGhhY2tpbmcgdG8gcGFyc2UoKSB0byB3b3JrIGF0IGFsbC4KICAgICAtLSBOb3cgSSBkb24ndCB1bnN0YW5kIHdoeSBpdCBldmVyIHN1Y2Nlc3NmdWxseSBwYXJzZWQgdGhlIG1pYi50eHQgZmlsZS4KICAgICAtLSBnZXRfdG9rZW4gd2FzIGNvbnN0YW50bHkgY2FsbGVkIHRvIHJlYWQgREVTQ1JJUFRJT04gc3RyaW5ncyBpbnRvCiAgICAgICAgYSBjaGFyIGFycmF5IG9mIGVpdGhlciA2NCAoTUFYVE9LRU4pIG9yIDQwOTYgKE1BWFFVT1RFU1RSKSBpbgogICAgICAgIGxlbmd0aC4gIE1BTlkgb2YgdGhlIERFU0NSSVBUSU9OIHN0cmluZ3MgYXJlIGxvbmdlciB0aGFuIHRoaXMuCiAgICAgLS0gSGFja2VkIHBhcnNlUXVvdGVkU3RyaW5nIHRvIG1ha2Ugc3VyZSByZXR1cm5lZCBhcmUgc3RyaW5ncyA8IE1BWFFVT1RFU1RSCiAgIAoxOTk1LTAzLTEwIDEzOjE4ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBzbm1wbGliL3N5c3RlbS5jOgoKICAgI2luY2x1ZGUgPHNvY2tldGlvLmg+IGlzIG5vdCBuZWVkZWQgb24gSFBVWAogICAKMTk5NS0wMy0xMCAxMzoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgQWRkZWQgc25tcGdldG5leHQgYW5kIHNubXBzZXQgdG8gLmN2c2lnbm9yZQogICAKMTk5NS0wMy0wOSAxMzoyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4sIGFnZW50L3NubXBkLmMsIHNubXBsaWIvTWFrZWZpbGUuaW4KLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIENNVSAyLjEuMiAtPiAyLjEuMi4xIE1lcmdlLgogICAKMTk5NS0wMy0wOCAxNjowNyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wc2V0LmMsIGFwcHMvc25tcGdldG5leHQuYywKICAgbWFuL3NubXBidWxrd2Fsay4xLCBtYW4vc25tcGdldC4xLCBtYW4vc25tcGdldG5leHQuMQosIG1hbi9zbm1wbmV0c3RhdC4xLCBtYW4vc25tcHNldC4xLAogICBtYW4vc25tcHRyYW5zbGF0ZS4xLCBtYW4vc25tcHRyYXBkLjg6CgogICBJbml0aWFsIHJldmlzaW9uCiAgIAoxOTk1LTAzLTA4IDE2OjA2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgUkVBRE1FLmNtdSwgYWdlbnQvTWFrZWZpbGUuaW4KLCBhZ2VudC9zbm1wZC5jLCBhcHBzL01ha2VmaWxlLmluLAogICBhcHBzL3NubXBnZXQuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXBidWxrd2Fsay5jLCBhcHBzL3NubXB0cmFwZC5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcHNldC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wZ2V0bmV4dC5jLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMKLCBhcHBzL3NubXBuZXRzdGF0L2luZXQuYywKICAgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmMsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwosIG1hbi9SRUFETUUsIG1hbi9zbm1wdGVzdC4xLAogICBtYW4vc25tcHdhbGsuMSwgbWFuL3NubXBidWxrd2Fsay4xLAogICBtYW4vc25tcGdldC4xLCBtYW4vc25tcGdldG5leHQuMSwKICAgbWFuL3NubXBuZXRzdGF0LjEsIG1hbi9zbm1wc2V0LjEsCiAgIG1hbi9zbm1wdHJhbnNsYXRlLjEsIG1hbi9zbm1wdHJhcGQuOCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9hY2wuYywKICAgc25tcGxpYi9hY2wuaCwgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaCwKICAgc25tcGxpYi9jb250ZXh0X3BhcnNlLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvcGFyc2UuYywgc25tcGxpYi9wYXJzZS5oLAogICBzbm1wbGliL3BhcnR5LmMsIHNubXBsaWIvcGFydHkuaCwKICAgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuaCwgc25tcGxpYi9zbm1wX2F1dGguYywKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL3NubXBfaW1wbC5oLAogICBzbm1wbGliL3N5c3RlbS5jLCBzbm1wbGliL3ZpZXcuYywKICAgc25tcGxpYi92aWV3Lmg6CgogICBOZXcgcmVsZWFzZSBvZiBDTVUncyBjb2RlOgogICAgIC0tIFNlZSBSRUFETUUgZm9yIHNwZWNpZmljIGRldGFpbHMKICAgICAtLSBzbm1wc2V0LHNubXBnZXRuZXh0IGFkZGVkCiAgICAgLS0gLXEgZmxhZyBhZGRlZCAicXVpY2sgcHJpbnQiCiAgICAgLS0gYnVnIGZpeGVzCiAgICAgLS0gTWFuIHBhZ2VzIHVwZGF0ZWQKICAgCjE5OTUtMDMtMDIgMTQ6MDkgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBNaW5vciBiYWNrc3BhY2UgY2hhbmdlcy4uLgogICBSZW1vdmVkIC13IHN3aXRjaCBmb3IgcGVybAogICAKMTk5NS0wMy0wMiAxNDowOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvZml4cHJvYzoKCiAgIEZpeCBmcm9tIFRpbTogY29ycmVjdGx5IGZpbmRzIHBpZCBub3cKICAgCjE5OTUtMDItMDkgMTI6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBwZXJsIC13IHByb2R1Y2VzIG5vIHdhcm5pbmdzIG5vdyBpZiBubyBjbWQgbGluZSBhcmdzIGFyZSBnaXZlbi4KICAgQWRkZWQgdHdvIG1vcmUgc3RhdHVzIGluZGljYXRvcnMgKHNsZWVwaW5nLCBjaGVja2luZykgZm9yIGZpeCByb3V0aW5lLgogICBOb3cgc2xlZXBzIGZvciAyIHNlY29uZHMgaW5zdGVhZCBvZiAxIChub3QgcXVpY2sgZW5vdWdoIHRvIGNhdGNoIFggcmVzdGFydHMpCiAgIAoxOTk1LTAyLTA5IDEyOjMxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9maXhwcm9jOgoKICAgQ2hhbmdlZCBwcyAtZWwgdG8gcHMgLWU6ICBwcyAtZWwgcmVwb3J0ZWQgWCBhcyBiZWluZyBhbGl2ZSBpbnN0ZWFkIG9mIDxkZWZ1bmN0PgogICAKMTk5NS0wMi0wOCAxNToyMCAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBBZGRlZCBhIG1pYiB0byBwcm92aWRlIGNhcGFiaWxpdHkgZm9yIGlnbm9yaW5nIHRoZSBleGVjIGNhY2hlLgogICAgIC0tICBOZWVkZWQgaW1tZWRpYXRlbHkgZm9sbG93aW5nIGEgJ2ZpeCcgdG8gY2hlY2sgdG8gc2VlIGlmIHRoZSAnZml4JyB3b3JrZWQuCiAgIAoxOTk1LTAyLTA4IDE1OjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgUG9rZXMgdGhlIHJlc2V0LWNhY2hlIG1pYiB0byBlbnN1cmUgYSBuZXcgJ3BzJyBvdXRwdXQgZm9yIGZpeGVkIHByb2JsZW1zLgogICAKMTk5NS0wMi0wOCAxNDo0NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIE5ldyBvcHRpb25zOgogICAgIC15OiAgYWx3YXlzIHRyeSB0byBmaXggdGhlIHByb2JsZW1zCiAgICAgLW46ICBuZXZlciB0cnkgdG8gZml4IHRoZSBwcm9ibGVtcwogICBDdXJyZW50bHkgZGVmYXVsdHMgdG8gbmV2ZXIgKHNob3VsZCBwcm9tcHQpIHRpbGwgSSBjYW4gZ2V0IHBlcmwncwogICAgIGdldGMoU1RESU4pIHRvIHdvcmsuLi4KICAgVXNlcyBzbm1wc2V0IHRvIGFjY29tcGxpc2ggdGhpcywgd2hpY2ggaXMgT1ZzIGFuZCBvbmx5IGxpY2VuY2VkIGZvciBvbmUgaG9zdC4KICAgCjE5OTUtMDItMDggMTA6MzQgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBkLmM6CgogICBBZGRlZCAnY2xvc2Ugb24gZXhlYycgZmxhZ3MgdG8gb3BlbiBmaWxlcyAoL2Rldi8qbWVtKikgYW5kIHNvY2tldHMuCiAgICAgLS0gIFByZXZlbnRzIHNwYXduZWQgcHJvY2Vzc2VzIGZyb20ga2VlcGluZyBzbm1wZCBmcm9tIHJlc3RhcnRpbmcuCiAgICAgICAgIChFcnJvcnMgd2VyZTogIENhbid0IGJpbmQgc29ja2V0IChpbiB1c2UpIGFuZCBDYW4ndCBvcGVuIC9kZXYvZG1lbSkKICAgU2V0IE9fUkRPTkxZIGZsYWcgb24gL2Rldi8qbWVtKiBmaWxlcywgcmVxdWlyZWQgYnkgdGhlICdtYW4gcGFnZScgKGVsc2UgdW5kZWYpCiAgIAoxOTk1LTAyLTAzIDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIEFkZGVkIHdlcy9leGVjLm8KICAgCjE5OTUtMDItMDMgMTM6NDkgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgbWliIGRlZnMgZm9yIHRoZSByZWFkL3dyaXRlIGZpeCBmb3IgcHJvY3MgYW5kIGV4ZWMgZnVuY3Rpb25zCiAgIAoxOTk1LTAyLTAzIDEzOjM4ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IGVjZS1zbm1wZC5jb25mLCBmaXhwcm9jLCBmaXhwcm9jLmNvbmY6CgogICBBZGRlZCBmaXhwcm9jIGFuZCBpdHMgZGF0YWJhc2UgKGluc3RhbGxlZCBpbiAvbG9jYWwvc2NyaXB0cyBhbmQgL2xvY2FsL2V0YykKICAgQ29waWVkIHRoZSBjdXJyZW50IC9ldGMvZWNlLXNubXBkLmNvbmYgdG8gdGhpcyBkaXJlY3RvcnksIGZvcgogICBhcmNoaXZpbmcuCiAgIAoxOTk1LTAyLTAxIDE0OjI0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX2FnZW50LmM6CgogICBBZGRlZCB3cml0ZS1taWIgYWJpbGl0eSB0byBmaXggYSBnaXZlbiBwcm9jZXNzCiAgICAgLS0gd2lsbCBldmVudHVhbGx5IGNhbGwgVGltJ3Mgc2NyaXB0IHRvIGZpeCB0aGUgcHJvY2VzcwogICAgIC0tIERlZmluZWQgaW4gd2VzLmgKICAgCjE5OTUtMDItMDEgMTE6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRml4ZWQgTWFrZWZpbGUgYnVnOiAgY2FsbGVzICQoTUFLRSkgbm93IGluc3RlYWQgb2YgZXhwbGljaXQgbWFrZS4KICAgCjE5OTUtMDEtMzAgMTM6MzMgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgVmVyc2lvbiBpbmZvcm1hdGlvbiBub3cgY29udGFpbnMgYSBDVlMgdGFnIGluZm8gbWliCiAgIFZFUkNEQVRFIG5vdyB3b3JrcyBwcm9wZXJseS4KICAgCjE5OTUtMDEtMzAgMTE6MTkgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWRkZWQgdmVyc2lvbiBtaWIgdG8gZGVmaW5pdGlvbnMuCiAgIAoxOTk1LTAxLTMwIDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBzbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIHZlcnNpb24gbWliIChWRVJJREVOVCxWRVJEQVRFLFZFUkNEQVRFKQogICBBZGRlZCBtaWJpbmNsLmggYW5kIG1pYmRlZnMuaCB0byBzdGFydCBzcGxpdHRpbmcgdXAgbWlicyBpbiB3ZXMuYyBpbnRvCiAgICAgc2VwZXJhdGUgZmlsZXMuICBJbmNsdWRlIHRoZXNlIHR3byBmaWxlcyB0byBpbmNsdWRlIG5lY2Vzc2FyeSBkZWZzCiAgIEVSUk9STVNHIGRlZnMgbm93IEFMTCByZXR1cm4gY3VycmVudCBudW1lcmljYWwgcmVzdWx0IHdpdGggdGhlIG1zZy4KICAgCjE5OTUtMDEtMjcgMTc6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgUHV0IGluIGRlZmluZXMgZm9yIHRoZSBzdWIgbWliIG51bXMge3NubXBfdmFycy5jLCB3ZXMuaH0KICAgCjE5OTUtMDEtMjcgMTM6MTcgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjaGVjay5kZWY6CgogICBBZGRlZCBwYXRocyAoL3Vzci9sb2NhbC9ldGMpIHRvIHNubXB7Z2V0LHdhbGt9CiAgIAoxOTk1LTAxLTI3IDEyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIE1hZGUgbmxpc3QgZW50cnkgY2hhbmdlcy4gIG5vIGxvbmdlciBkaWVzIGZyb20gYSBBcnBUYWJsZSBxdWVyeS4KICAgCjE5OTUtMDEtMjcgMTI6MjYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgTW92ZWQga2VybmVsL25saXN0IHByaW50b3V0IG9mIG5vdCBmb3VuZCBubGlzdCBlbnRyaWVzIG91dCBvZiAjaWZkZWYgaHB1eAogICAKMTk5NS0wMS0yNyAxMTo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBjcHAgTWlzdGFrZSBmaXg6ICNpZmRlZiBIUFVYIC0+ICNpZmRlZiBocHV4CiAgIAoxOTk1LTAxLTI1IDE3OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIFBvcnRlZCAoYmFjaykgdG8gU3VuNDoKICAgICAtLSBzd2FwIGFuZCBkaXNrIG1pYnMgbm90IHN1cHBvcnRlZCB5ZXQKICAgICAtLSBmb3VuZCBudW1lcm91cyBidWdzIEkgaGFkbid0IG5vdGljZWQgdW5kZXIgSFBVWCwgbW9zdGx5IHR5cGUKICAgICAgICBjYXN0aW5nLgogICAKMTk5NS0wMS0yNSAxNjoxOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEFkZGVkIFN3YXAvTWVtb3J5IG1pYiBjaGVjayAoLjQpLCBub3cgdGhhdCBpdCBjb25mb3JtcyB0byAuezEsMiwxMDAsMTAxfSBzcGVjcy4KICAgQ2hhbmdlZCBmb3JtYXRpbmcgdG8gdXNlICUtbi5ucyBzcGVjaWZpY2F0aW9ucyBpbnN0ZWFkIG9mIHRhYiBzZXBlcmF0aW9ucy4KICAgCjE5OTUtMDEtMjMgMTY6MDIgIGhhcmRha2VyCgogICAqIGxvY2FsL3RyYXBub3RpZjoKCiAgIEJ1ZyBmaXg6ICBQb2xsZWQgd3JvbmcgbWliICgxMDAgaW5zdGVhZCBvZiAxMDEpIGZvciBlcnJtc2cgc3RyaW5nLgogICAKMTk5NS0wMS0yMyAxMjo1NyAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBUeXBvIGZpeGVzIGluIHRoZSBtaWIgZGVmIGZpbGUgZm9yIE9WLgogICAKMTk5NS0wMS0yMyAxMjowMCAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIFdvbid0IGNoZWNrIGRvd24gaG9zdHM6LSkKICAgCjE5OTUtMDEtMjMgMTA6NTcgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQWxsICh3YXRjaGVkKSBtaWJzIG5vdyB1c2U6CiAgICAgMTogIE1JQklOREVYLCBqdXN0IGFuIGluZGV4IHRvIHRoZSBudW1iZXIgb2YgdmFycwogICAgIDI6ICBFUlJPUk5BTUUsIGEgZ2VuZXJpYyBvbmUgd29yZCBuYW1lIGZvciB0aGUgY2F1c2Ugb2YgRVJST1J7RkxBRyxNU0d9LgogICAKMTk5NS0wMS0yMyAxMDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgQWRkZWQgLzEvT1YvYmluIHRvIHRoZSBwYXRoIHRvIGZpbmQgdGhlIHNubXAgdXRpbHMgd2l0aG91dCBwYXRoIGV4dGVuc2lvbnMuCiAgIE1vcmUgdmFyaWFibGUgdXNhZ2U6IHJlbW92ZWQgdXNlIG9mIGNvbW1hbmQgbGluZSBhcmdzIGRpcmVjdGx5LgogICBJZiB0aGUgZXJyb3IgZmxhZyBoYXMgY2hhbmdlZCBiYWNrIHRvIG5vcm1hbCwgb25seSBsb2cgaXQgaW4gdGhlCiAgICAgZWNlLXRvdGFsIGxvZyBmaWxlIGluc3RlYWQuCiAgIAoxOTk1LTAxLTIzIDEwOjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY2hlY2suZGVmOgoKICAgV2lsbCB0YWtlIGhvc3RzIGZyb20gdGhlIGxvZyBmaWxlIGlmIG5vbmUgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCiAgICAgLS0gIG9yIGlmIHRoZSBmaXJzdCBhcmcgaXMgYSAnLWEnIHdpbGwgKEEpZGQgdG8gdGhlIGNvbW1hbmQgbGluZSBsaXN0LgogICBEaXNwbGF5cyB3aGF0IGhvc3QgaXQgaXMgY2hlY2tpbmcgYXMgaXQgY2hlY2tzIGl0LgogICBDaGFuZ2VkIHRoZSBvdXRwdXQgZm9ybWF0IChJJ3ZlIHlldCB0byBzZWUgaWYgaXQgYWN0dWFsbHkgbG9va3MgZ29vZCB0aG91Z2gpLgogICAKMTk5NS0wMS0xOCAxNToyMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNoZWNrLmRlZjoKCiAgIEJlZ2lubmluZyBvZiBhIHNjcmlwdCB0byBjaGVjayBlcnJvcnMgd2l0aCBhIG1hY2hpbmUgYW5kIHJlcG9ydCB0aGVtCiAgICAgdmlhIHNubXAKICAgVE9ETzogIG9wdGlvbiB0byBmaXggdGhlIGVycm9ycyBpZiByb290IG9uIGNsb3ZlciAobmVlZCB0byByc2ggdG8gdGhlIG1hY2hpbmUpCiAgIAoxOTk1LTAxLTA1IDE0OjUxICBoYXJkYWtlcgoKICAgKiBsb2NhbC90cmFwbm90aWY6CgogICBDaGFuZ2VkIHRoZSB0cmFwbm90aWYgZmlsZSB0byByZWZsZWN0IHJlY2VudCBzb3VyY2UgY2hhbmdlczoKICAgICAtLSByZW1vdmVkIG1lbSBlcnJvciBzZWN0aW9uLi4uICBUaGV5IGFyZSBoYW5kbGVkIHZpYSB0aGUgbm9ybWFsIGVycgogICAgICAgIHJvdXRlIHNpbmNlIHRoZXkgbm93IGhhdmUgYW4gZXJyb3IgbXNnIGxpa2UgdGhlIHJlc3QKICAgICAtLSBFcnJvciBmbGFnIGlzIG5vdyBhdCAxMDAsIGFuZCBlcnJvciBtZXNzYWdlIGlzIGF0IDEwMS4KICAgCjE5OTUtMDEtMDUgMTQ6NDUgIGhhcmRha2VyCgogICAqIGVjZS1taWIuZGVmOgoKICAgQ2hhbmdlZCB0aGUgbWliIGZpbGUgdG8gcmVmbGVjdCB0aGUgY3VycmVudCBzb3VyY2UgY29kZS4KICAgQWxsIG1pYnMgbm93IGhhdmUgRXJyb3JGbGFnIGFuZCBFcnJvck1zZyBhcyAxMDAsMTAxCiAgIAoxOTk1LTAxLTA1IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IHRyYXBub3RpZiwgd2VzcmVzdGFydDoKCiAgIGNvcGllZCB0aGUgcmVzdGFydCBhbmQgdHJhcG5vdGlmIHNjcmlwdHMgdG8gdGhlIHNyYyB0cmVlIGZvciBjdnMgYXJjaGl2aW5nLgogICAKMTk5NS0wMS0wNCAxNjozMiAgaGFyZGFrZXIKCiAgICogZWNlLW1pYi5kZWY6CgogICBJbml0aWFsIHJlbGVhc2UuCiAgIE5lZWRzIHRvIGJlIHVwZGF0ZWQuCiAgIAoxOTk1LTAxLTA0IDE2OjMwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogLmN2c2lnbm9yZSwgc25tcG5ldHN0YXQvLmN2c2lnbm9yZToKCiAgIEp1c3QgYSAuY3ZzaWdub3JlIGZpbGUKICAgCjE5OTUtMDEtMDQgMTY6MjYgIGhhcmRha2VyCgogICAqIGFnZW50LzogLmN2c2lnbm9yZSwgc25tcF92YXJzLmM6CgogICBGZWF0dXJlOgogICAgIEFkZGVkIHRoZSBkaXNrIHdhdGNoaW5nIGZhY2lsaXRpZXMgdG8gcmVwb3J0IGRpc2sgc3BhY2UKICAgICAgIC0tIG5ldyBjb25maWcgb3B0aW9uICdkaXNrIERJU0sgTUlOQVZBSUwnCiAgICAgQWRkZWQgc3VwcG9ydCBmb3IgYSBzZWNvbmQgY29uZmlnIGZpbGUgYXMgQ09ORklHRklMRVRXTwogICAgICAgLS0gZGVmYXVsdHMgdG8gL2V0Yy9lY2Utc25tcGQubG9jYWwuY29uZgogICAgICAgLS0gaW50ZW50OiAgb25lIGlzIHJkaXN0ZWQgYW5kIG9uZSBpcyBtYWNoaW5lIHNwZWNpZmljCiAgICAgICAtLSBUT0RPOiAgTmVlZHMgdG8gZXJhc2UgcHJldmlvdXMgZGVmaW5pdGlvbnMgcmF0aGVyIHRoYW4gYWRkaW5nCiAgICAgICAgICB0d28gd2l0IHRoZSBzYW1lIG5hbWUKICAgCiAgIENoYW5nZToKICAgICBNSUIgZGVmaW5pdGlvbiBjaGFuZ2U6CiAgICAgICAtLSBBbGwgbWlicyB3aXRoIGVycm9yIGZsYWdzIG5vdyB1c2UgRVJST1JGTEFHL0VSUk9STVNHIGluc3RlYWQuCiAgICAgICAtLSBUaGVzZSBkZWZhdWx0IHRvIDEwMCBhbmQgMTAxLCBhbmQgYXJlIHNldCBieSBvbmx5IHR3byBkZWZpbmVzCiAgICAgU2hvcnRlbmVkIGVycm9yIG1lc3NhZ2UgZm9yIHByb2Nlc3MgZXJyb3JzIHRvIGZpdCBvbiB0aGUgc2NyZWVuLgogICAgIFN3YXAgbWliIGNvZGUgY2xlYW51cAogICAKICAgVE9ETzoKICAgICBBZGRlZCBiZWdpbm5pbmdzIG9mIGtlcm5hbCBsb2NraW5nIHRlc3RzLiAgTmVlZCB0byBmaW5kIGEgbWFjaGluZQogICAgIHdpdGggYSBicm9rZW4gcnBjLmxvY2tkIHRvIHRlc3QgdGhlIGNvZGUgdGhvdWdoLgogICAKICAgQnVnczoKICAgICBNeSBubGlzdCBhcnJheSBkaWRuJ3QgaGF2ZSBhIE5VTEwgZW5kaW5nLgogICAKMTk5NC0xMi0xNCAxNzoxMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgdGhlIFJFQURNRSBmaWxlCiAgIAoxOTk0LTEyLTE0IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2hwdXguYzoKCiAgIEFkZGVkIGhwdXguYwogICAKMTk5NC0xMi0xNCAxNjo1NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IE1ha2VmaWxlLmluLCBwYXJ0eV9wYXJzZS5jLCBzbm1wX2NsaWVudC5jCjoKCiAgIEhQLVVYIHBvcnQgb2YgdGhlIENNVSBjb2RlCiAgIAoxOTk0LTEyLTE0IDE1OjQzICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgUkVBRE1FLmNtdSwgbWliSUkudHh0LAogICBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9wYXJzZS5jCiwgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hcGkuYywKICAgc25tcGxpYi9zbm1wX2F1dGguYywgc25tcGxpYi9hc24xLmgsCiAgIHNubXBsaWIvbWliLmgsIHNubXBsaWIvcGFyc2UuaCwKICAgc25tcGxpYi9zbm1wX2NsaWVudC5jLCBzbm1wbGliL01ha2VmaWxlLmluLAogICBzbm1wbGliL2FjbF9wYXJzZS5jLCBzbm1wbGliL3NubXAuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5oLCBzbm1wbGliL3NubXBfY2xpZW50LmgsCiAgIHNubXBsaWIvc25tcF9pbXBsLmgsIHNubXBsaWIvYWNsLmMsCiAgIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvcGFydHkuYywgc25tcGxpYi9wYXJ0eS5oCiwgc25tcGxpYi9wYXJ0eV9wYXJzZS5jLCBzbm1wbGliL3ZpZXcuYwosIHNubXBsaWIvY29udGV4dC5jLCBzbm1wbGliL2NvbnRleHQuaAosIHNubXBsaWIvY29udGV4dF9wYXJzZS5jLCBzbm1wbGliL21kNS5jCiwgc25tcGxpYi9tZDUuaCwgc25tcGxpYi92aWV3LmgsCiAgIGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcGdldC5jLCBzbm1wbGliLy5wdXJlCiwgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaCwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYywgYXBwcy9zbm1wdGVzdC5jLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wd2Fsay5jLAogICBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluLAogICBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYywgYXBwcy9zbm1wbmV0c3RhdC9tYWluLmgKLCBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMsIG1hbi9zbm1wX2FwaS4zCiwgbWFuL3NubXB0ZXN0LjEsIG1hbi9zbm1wd2Fsay4xLAogICBtYW4vdmFyaWFibGVzLjUsIG1hbi9SRUFETUUsIG1hbi9kZXMuMQosIG1hbi9kZXMuMzoKCiAgIEluaXRpYWwgQ01VIHNubXAgY29kZSwgdmVyc2lvbiAyLjEuMgogICAKMTk5NC0xMi0xNCAxNTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIFJFQURNRS5jbXUsIG1pYklJLnR4dCwKICAgc25tcGxpYi9hc24xLmMsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvcGFyc2UuYywKICAgc25tcGxpYi9zbm1wLmMsIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2F1dGguYwosIHNubXBsaWIvYXNuMS5oLCBzbm1wbGliL21pYi5oLCBzbm1wbGliL3BhcnNlLmgKLCBzbm1wbGliL3NubXBfY2xpZW50LmMsIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHNubXBsaWIvYWNsX3BhcnNlLmMsIHNubXBsaWIvc25tcC5oLCBzbm1wbGliL3NubXBfYXBpLmgKLCBzbm1wbGliL3NubXBfY2xpZW50LmgsIHNubXBsaWIvc25tcF9pbXBsLmgsCiAgIHNubXBsaWIvYWNsLmMsIHNubXBsaWIvYWNsLmgsIHNubXBsaWIvcGFydHkuYywKICAgc25tcGxpYi9wYXJ0eS5oLCBzbm1wbGliL3BhcnR5X3BhcnNlLmMsIHNubXBsaWIvdmlldy5jCiwgc25tcGxpYi9jb250ZXh0LmMsIHNubXBsaWIvY29udGV4dC5oLAogICBzbm1wbGliL2NvbnRleHRfcGFyc2UuYywgc25tcGxpYi9tZDUuYywgc25tcGxpYi9tZDUuaAosIHNubXBsaWIvdmlldy5oLCBhcHBzL01ha2VmaWxlLmluLCBhcHBzL3NubXBnZXQuYwosIHNubXBsaWIvLnB1cmUsIHNubXBsaWIvc3lzdGVtLmMsCiAgIHNubXBsaWIvc3lzdGVtLmgsIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcHRlc3QuYwosIGFwcHMvc25tcHRyYW5zbGF0ZS5jLCBhcHBzL3NubXB3YWxrLmMsCiAgIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYywgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLCBhcHBzL3NubXBuZXRzdGF0L21haW4uaCwKICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jLCBtYW4vc25tcF9hcGkuMywKICAgbWFuL3NubXB0ZXN0LjEsIG1hbi9zbm1wd2Fsay4xLCBtYW4vdmFyaWFibGVzLjUsCiAgIG1hbi9SRUFETUUsIG1hbi9kZXMuMSwgbWFuL2Rlcy4zOgoKICAgSW5pdGlhbCByZXZpc2lvbgogICAKMTk5NC0xMS0xOCAxNTo1OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywKICAgc25tcGQuYzoKCiAgIEFkZGVkIHNvbWUgaHAtbWlicwogICAKMTk5NC0xMS0wNCAxNTo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICBBZGRlZCBWaXJ0dWFsIE1lbW9yeSBtaWIgKGN1cnJlbnRseSBvbmx5IHRvdGFsIGFuZCB1c2VkKQogICAKMTk5NC0xMC0yOCAxMzozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYzoKCiAgIGhwLXV4IG1hY2hpbmVzIG5vdyByZXR1cm4gdGhlIGNvcnJlY3QgbWliIGxvY2F0aW9uIGZvciB0aGVpciBhcmNoIHR5cGUuCiAgIEFkZGVkIGhwLXV4IHRvIHRoZSBpZmRlZnMgZm9yIFJvdXRlX1NjYW5fUmVsb2FkKCkgZnVuY3Rpb24gZm9yIGNvcnJlY3QKICAgICAga2VybmFsIHJlYWRpbmcuCiAgIAoxOTk0LTEwLTI2IDEzOjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHBhcnR5X3ZhcnMuYywgc25tcF92YXJzLmM6CgogICBEZWMgY29tcGlsYXRpb24gYWNoaXZlZCwgdGhvdWdoIGl0cyBub3Qgb3BlbmluZyBhbnkgcG9ydHMgd2hlbiBydW4uCiAgIAoxOTk0LTEwLTI0IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEFkZGVkIHRoZSBleHRlbnNpYmxlIG1pYiBzZWN0aW9uLgogICAKMTk5NC0xMC0yMCAxNjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBNYWtlZmlsZS5pbiwgc25tcF92YXJzLmMsIHZhcl9zdHJ1Y3QuaDoKCiAgIEFkZGVkIHRoZSByZW1haW5pbmcgaHAtdXggc3ltYm9scwogICBwdXQgYWxsIGRlcGVuZGFuY2llcyBmb3IgbXkgc3R1ZmYgdW5kZXIgd2VzLwogICBtb3ZlZCB0aGUgdmFyaWFibGUgZGVjbGFpcmF0aW9ucyAoc3RydWN0cykgdG8gdmFyX3N0cnVjdHMuaCBzbyB0aGV5IGNvdWxkIGJlCiAgIHJlZmVyZW5jZWQgYnkgb3RoZXIgZmlsZXMuCiAgIENoYW5nZWQgdGhlIGRlZmF1bHQgdmFsdWVzIHRvIGhwLXV4IGZyb20gQlNEIGFuZCBvdGhlciBtaXNjIHN0cmluZ3MKICAgQWRkZWQgYXBwcm9wcmlhdGUgZGVwZW5kYW5jaWVzIHRvIHRoZSBtYWtlZmlsZQogICBDaGFuZ2VkIGVycm9ycyBhbmQgYWRkZWQgc3R1ZmYgdG8gdGhlIHZhcmlhYmxlIGRlY2xhaXJhdGlvbnMgZm9yIG15IHN0dWZmCiAgIAoxOTk0LTEwLTE0IDEwOjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluLCBrZXJuZWwuYywgc25tcF92YXJfcm91dGUuYwosIHNubXBfdmFycy5jOgoKICAgZml4ZWQgbmxpc3QgZm9yIHRoZSBocHMuICBOb3Qgc3VyZSBvZiB0aHJlZSBwYXJ0aWN1bGFyIG5saXN0CiAgIHJlZmVyZW5jZXMgKGZvciB0aGUgYXJwIHRhYmxlKS4gIFRoZSByZXN0IGFyZSB3b3JraW5nLgogICBBbHNvIGFkZGVkIHdlcy8qIGRvIHRoZSBkZXBlbmRhbmNlcyBmb3Igc25tcF92YXJzLmMKICAgCjE5OTQtMTAtMTQgMDg6MzkgIGhhcmRha2VyCgogICAqIGFnZW50Lzoga2VybmVsLmMsIHNubXBfdmFycy5jOgoKICAgSSBmaXhlZCB0aGUgc291cmNlIGZvciBjb21waWxhdGlvbiBhbmQgYmVnYW4gYWRkaW5nIG15IG93biBtaWIgZGVmcy4KICAgQW55IGluY2x1ZGVkIG1pYnMgd2hpY2ggbWFrZSBrZXJuYWwgcmVhZHMgc3RpbGwgZmFpbC4KICAgCjE5OTQtMTAtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50LzogTWFrZWZpbGUuaW4sIGhpc3RvcnkuaCwga2VybmVsLmMKLCBzbm1wX2FnZW50LmMsIHNubXBfdmFyX3JvdXRlLmMsCiAgIHNubXBfdmFycy5oLCBzbm1wZC5jLCBhbGFybS5jLAogICBldmVudC5jLCBoaXN0b3J5LmMsIHBhcnR5X3ZhcnMuYywKICAgc25tcF92YXJzLmMsIHNubXBfdmFyc19ldmVudC5oLCB2aWV3X3ZhcnMuYwosIGFjbC5jb25mLCBhY2xfdmFycy5jLCBhbGFybS5oCiwgY29udGV4dF92YXJzLmMsIGV2ZW50LmgsIG0ybS5oCiwgc25tcF92YXJzX20ybS5oLCB2aWV3X3BhcnNlLmMsIC5wdXJlCiwgcm91dGVfd3JpdGUuYzoKCiAgIEluaXRhbCBDTVUgc291cmNlLgogICAKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjggLT4gVjUuMC45CgoyMDAzLTA5LTA1IDIzOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kCiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQKLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAzLTA5LTA1IDIzOjQxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZvcmdvdCBhIHRlc3QgYWZ0ZXIgdGhlIGlmCiAgIAoyMDAzLTA5LTA1IDIzOjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGRlZCBCb2IgUm93bGFuZHMKICAgCjIwMDMtMDktMDUgMjM6MzAgIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMwosIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsCiAgIG5ldHNubXBfaW5zdGFuY2UuMywgbmV0c25tcF9saWJyYXJ5LjMsCiAgIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLCBuZXRzbm1wX21vZGVfZW5kX2NhbGwuMwosIG5ldHNubXBfbXVsdGlwbGV4ZXIuMywgbmV0c25tcF9vbGRfYXBpLjMKLCBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zCiwgbmV0c25tcF9zZXJpYWxpemUuMywgbmV0c25tcF90YWJsZS4zCiwgbmV0c25tcF90YWJsZV9hcnJheS4zLCBuZXRzbm1wX3RhYmxlX2RhdGEuMwosIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLAogICBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsIG5ldHNubXBfdG9kby4zLAogICBuZXRzbm1wX3dhdGNoZXIuMzoKCiAgIGRveHlnZW4gdXBkYXRlCiAgIAoyMDAzLTA5LTA1IDIzOjI1ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS50b3A6CgogICB1cGRhdGUgZm9yIDUuMC45CiAgIAoyMDAzLTA5LTA1IDIyOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFBhdGNoICM4MDA1NjEgZnJvbSBCb2IgUm93bGFuZHMgdG8gZml4IDY0Yml0IHByb2JsZW1zICgtPiBzaXplX3QpCiAgIAoyMDAzLTA5LTA1IDIyOjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFBhdGNoICM4MDA0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIDY0IGJpdCBhZ2VudHggcHJvYmxlbXMKICAgCjIwMDMtMDktMDUgMjI6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgUGF0Y2ggIzc5MjAwOCBmcm9tIFRob21hcz8gdG8gYWxsb3cgdXNtVXNlciB0b2tlbnMgdG8gb3ZlcnJpZGUgcHJldmlvdXMgZW50cmllcwogICAKMjAwMy0wOS0wNSAyMjowNCAgaGFyZGFrZXIKCiAgICogbWFuLzogbWliMmMuMS5kZWYsIHNubXBjbWQuMS5kZWYsCiAgIHNubXBkZWx0YS4xLCBzbm1wZGYuMSwgc25tcG5ldHN0YXQuMSwKICAgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRhYmxlLjEuZGVmLAogICBzbm1wdGVzdC4xLmRlZiwgc25tcHRyYW5zbGF0ZS4xLmRlZjoKCiAgIFBhdGNoICM3ODk0ODUgZnJvbSBCb2IgUm93bGFuZHMgZm9yIGEgbG9uZyBuZWVkZWQgb3ZlcmhhdWwgb2YgdGhlIG1hbnVhbCBwYWdlcy4KICAgCjIwMDMtMDktMDUgMjI6MDAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgb25lIHJ1bi1hd2F5IHBhdGNoCiAgIAoyMDAzLTA5LTA1IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlLmluLCBhZ2VudC9zbm1wZC5jCiwgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmgsIHNubXBsaWIvbWliLmMKLCBzbm1wbGliL3BhcnNlLmM6CgogICBoaWdoIGxldmVsIGNvbW1lbnRzIGFib3V0IGNvbnRhaW5lZCBjb3B5cmlnaHRzIG1vdmVkIGZyb20gdGhlIG1haW4gYnJhbmNoCiAgIAoyMDAzLTA5LTA1IDIxOjU0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWlub3IgdXBkYXRlcwogICAKMjAwMy0wOS0wNSAyMToyMSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluCjoKCiAgIEFkZCBvcHRpb25hbCBhcmd1bWVudHMgdG8gdGhlIC0td2l0aC1wZXJsLW1vZHVsZXMgZmxhZyBmb3IgcGFzc2luZyBkb3duCiAgIAoyMDAzLTA5LTA1IDE2OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgLSBmaXggYSBnZXRidWxrIGJ1ZyBwb2ludGVkIG91dCBieSBKdXJpaiBTbWFrb3YuCiAgIAoyMDAzLTA3LTI3IDE2OjU0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggZmlsZW5hbWUgaW4gZXJyb3IgbXNnLCBhcyBub3RlZCBpbiBjb2RlcnMKICAgCjIwMDMtMDctMjQgMTg6MTQgIHJzdG9yeQoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGFkZCBhY2Nlc3MgdG8gYXVnbWVudHMgdGFnIChmaXggYnVnIDc0MDA4MjogbWliMmMgaGFuZGxlcyBBVUdNRU5UaW5nIHRhYmxlcwogICBpbmNvcnJlY3RseSkKICAgCjIwMDMtMDctMjQgMTg6MTMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBpbmRleGVzIGZyb20gYXVnbWVudGVkIHRhYmxlIGZvciB0YWJsZXMgdXNpbmcgYXVnbWVudHMgKGZpeAogICBidWcgNzQwMDgyOiBtaWIyYyBoYW5kbGVzIEFVR01FTlRpbmcgdGFibGVzIGluY29ycmVjdGx5KQogICAKMjAwMy0wNy0yNCAwNToyNyAgcnN0b3J5CgogICAqIGFjY29uZmlnLmg6CgogICBkZWZpbmUgTkVUU05NUF9JTkxJTkUgYXMgZW1wdHkgaWYgbm90IGRlZmluZWQKICAgCjIwMDMtMDctMTAgMDk6MzIgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggdHlwbzsgdXNlIHdoaWNoIHRvIGZpbmQgc2NwOyBhZGQgZXh0cmEgY29uZmlnIHRvIG90aGVyIGNvbmZpZwogICAKMjAwMy0wNy0wOSAyMDo1NiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCBob3N0L3BhdGggdXBsb2FkOyB0cnkgdG8gZXh0cmFjdCBtb3JlIGluZm8gZnJvbSBtYWtlIGxvZyBvbiBlcnJvcgogICAKMjAwMy0wNy0wOSAyMDo1NCAgcnN0b3J5CgogICAqIGRpc3QvOiBuc2ItcGFja2FnZSwgbnNiLW5pZ2h0bHk6CgogICBhZGQgaG9zdC9wYXRoIHVwbG9hZCBwYXJhbXM7IHVzZSBuZXcgbnNiLWRlZmF1bHQtcGF0aHMKICAgCjIwMDMtMDctMDMgMjA6NTIgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBjb250YWluZXJfbnVsbC5jCjoKCiAgIG9vcHMgLSBubyBuZXcgZmVhdHVyZXMgZm9yIDUuMC44CiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbGlzdF9zc2xsLmM6CgogICBmaWxlIGNvbnRhaW5lcl9saXN0X3NzbGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAzIDIwOjI2ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfbnVsbC5jOgoKICAgZmlsZSBjb250YWluZXJfbnVsbC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY1LTAtcGF0Y2hlcy4KICAgCjIwMDMtMDctMDMgMjA6MjYgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogY29udGFpbmVyX2xpc3Rfc3NsbC5jLCBjb250YWluZXJfbnVsbC5jCjoKCiAgIG5ldyBjb250YWluZXJzCiAgIAoyMDAzLTA3LTAyIDEzOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUGF0Y2ggIzcyNDkyNSBmcm9tIFBldGVyIFdhcmFzaW4gdG8gZml4IG5ldHNubXBfc3VidHJlZV91bmxvYWQoKSB0byB1cGRhdGUgdGhlIHJvb3QgcG9pbnRlcgogICAKMjAwMy0wNy0wMiAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jLCBzbm1wbGliL3BhcnNlLmMKOgoKICAgUGF0Y2ggIzc2MDQ0OCBmcm9tIEJvYiBSb3dsYW5kcy9TdW4gdG8gZml4IGJ1ZyAjNzUxOTEzIHRvIHByb3RlY3QgYSBmZXcgbWlub3Igc2VjdXJpdHkgdmlvbGF0aW9ucwogICAKMjAwMy0wNy0wMiAxMDo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zdHJsY3B5LmM6CgogICBmaWxlIHN0cmxjcHkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNS0wLXBhdGNoZXMuCiAgIAoyMDAzLTA3LTAyIDEwOjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbgosIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCwKICAgc25tcGxpYi9NYWtlZmlsZS5pbiwgc25tcGxpYi9taWIuYywKICAgc25tcGxpYi9zdHJsY3B5LmM6CgogICBQYXRjaCAjNzYwNDE3IGZyb20gQm9iIFJvd2xhbmRzL1N1biBmb3IgZml4aW5nIEJ1ZyAjNzUxOTIwIGZvciBtaW5vciBzZWN1cml0eSBwcm9ibGVtcyAoUElEIGZpbGUgdW5saWtlZCBmaXJzdCwgYW5kIHVzZSBzdHJsY3B5IGluc3RlYWQgb2Ygc3RyY3B5LiAgQSBuZXcgc3RybGNweSBmaWxlIHdhcyBkZWZpbmVkIGlmIG5vdCBkZWZpbmVkIGZvciBhIHN5c3RlbS4KICAgCjIwMDMtMDctMDIgMTA6MzcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBkb24ndCB1c2UgaXNzcGFjZSBhbmQgaXNwcmludCBzaW11bHRhbmlvdXNseQogICAKMjAwMy0wNy0wMiAxMDozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgY29tbWVudCBjaGFuZ2UgZm9yIGNsYXJpZmljYXRpb24KICAgCjIwMDMtMDctMDIgMTA6MjYgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBQYXRjaCAjNzY0MDQ3IGZyb20gU3RlcGhlbiBKLiBGcmllZGw6IFJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb24gZnJvbSBzbm1wX2RlYnVnLmggYW5kIGZpeCBhIGZldyBjb21tZW50cwogICAKMjAwMy0wNy0wMiAxMDoyMSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCAjNzU5MzA5IGZyb20gU3RlcGhlbiBGcmllZGwgdG8gYWRkIHByb21wdCBvdmVyLXJpZGUgZmxhZyBkZXNjcmlwdGlvbnMgdG8gcHJvbXB0IG91dHB1dAogICAKMjAwMy0wNy0wMiAxMDoxOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCAjNzU5Mjk4OiBmaXggc3BlbGxpbmcgZXJyb3IKICAgCjIwMDMtMDYtMjUgMTQ6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggcHJveHlpbmcgZm9yIGdldGJ1bGsKICAgCjIwMDMtMDYtMjIgMDc6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIGZpeCB1c2FnZSBmb3IgZmxhZyBvcmRlcmluZwogICAKMjAwMy0wNi0xNiAxNDo1OSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIHJlbW92ZSBubyBsb25nZXIgbmVlZGVkIGNvbW1lbnQgYWJvdXQgaXQgYmVpbmcgYnJva2VuLCBhcyBwb2ludGVkIG91dAogICBieSBCcnVjZS4KICAgCjIwMDMtMDYtMTYgMTQ6NTggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBzdXBwb3J0ICwgc2VwYXJhdGVkIGFyZ3VtZW50cyB0byAtVCBsaWtlIC1oIHNheXMgaXQgd2lsbC4KICAgCjIwMDMtMDYtMTYgMTQ6NTcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBCcnVjZSBTaGF3J3MgcGF0Y2ggNzU1NTUzIHRvIGZpeCBSVU5URVNUUyB0ZXN0IG51bWJlciByZXBvcnRpbmcgd2hlbgogICB0ZXN0aW5nIHN1YnNldHMgYXJlIHVzZWQuCiAgIAoyMDAzLTA2LTE2IDE0OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBQYXRjaCAjNzU1NTQwIGZyb20gQnJ1Y2UgU2hhdyBhbmQgSVJDOlNlYk5vYiB0byBmaXggYnVnICM3MDE0MzkgZm9yIDY0IGJpdCBzb2xhcmlzIHN5c3RlbXMgYW5kIDY0IGJpdCBpbnRlZ2VycyByZXR1cm5lZCBieSBnZXRLc3RhdAogICAKMjAwMy0wNi0xNiAxNDo0MyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTVhZ2VudHYxbWludHJhcCwgVDA1NmFnZW50djJjbWludHJhcAo6CgogICBQYXRjaCAjNzU0MTA1IGZyb20gQnJ1Y2UgU2hhdyB0byBmaXggc29tZSBzcGVsbGluZyBlcnJvcnMKICAgCjIwMDMtMDYtMTAgMTU6NDggIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBCZXdhcmUgb2YgZGVyZWZlcmVuY2luZyBhIE5VTEwgcG9pbnRlcgogICAKMjAwMy0wNi0xMCAxMDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRoZSB1bnVzZWQgZnVuY3Rpb24gYXMgcG9pbnRlZCBvdXQgYnkgQm9iIFJvd2xhbmRzCiAgIAoyMDAzLTA2LTA5IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYWdlbnQvc25tcF9hZ2VudC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCwKICAgc25tcGxpYi92YWNtLmM6CgogICBMb25nIG92ZXJkdWUgcGF0Y2ggIzY5NTE5MiBmcm9tIFJvbiBUYWJvciB0byBmaXggdGhlIFZBQ00gc3Bpbm5pbmcgcHJvYmxlbSB0aGF0IEkgZGlkbid0IHF1aXRlIGZpeCBiZWZvcmUKICAgCjIwMDMtMDYtMDkgMTY6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgdGVzdGluZy90ZXN0cy9UMDIzc25tcHYzZ2V0TUQ1REVTCiwgdGVzdGluZy90ZXN0cy9UMDI1c25tcHYzZ2V0U0hBREVTOgoKICAgZml4IGJ1ZyAjNzA2NzEwIHRvIHNob3cgd2hlbiBwcml2YWN5IGhhcyBiZWVuIGRpc2FibGVkCiAgIAoyMDAzLTA2LTA5IDE1OjMzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBidWcgIzc0ODQzMSBmcm9tIEpvaG4gU2hpdmVyOiBmaXggdGhyZWFkLXNhZmUgcHJvYmxlbXMgd2l0aCBzbm1wX2dldF9mZF9mb3Jfc2Vzc2lvbiAod2hpY2ggd2FzIG1pc3NpbmcgaW4gdGhlIDUueCBsaW5lIGFueXdheSkKICAgCjIwMDMtMDYtMDkgMTQ6NDkgIGhhcmRha2VyCgogICAqIFJFQURNRS5NYXRzdXNoaXRhLnR4dCwgUkVBRE1FLk1hdHN1c2hpdGEudHh0OgoKICAgUGF0Y2ggIzc0ODMwNSBmcm9tIHNyaW5pdmFzYSByYW8gZ3VydXN1IGRlc2NyaWJpbmcgaG93IHRvIGJ1aWxkIG5ldC1zbm1wIG9uIE1hdHN1c2hpdGEgZW1iZWRkZWQgc3lzdGVtcwogICAKMjAwMy0wNi0wOSAxNDo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBQYXRjaCA3NDYzMzk6IE90dG8gU29sYXJlcyBmaXhlcyBhIGZpbGUgZGVzY3JpcHRvciBsZWFrIG9uIGxpbnV4CiAgIAoyMDAzLTA2LTA5IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBwYXRjaCAjNzQwOTE4IGZyb20gRXJpYyBFLiBCb3dsZXM6IGZpeCBwYXNzIHRocm91Z2ggaW52b2NhdGlvbiBmb3IgU0VUcwogICAKMjAwMy0wNi0wOSAxNDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgUGF0Y2ggIzc0OTA2MiB0byBmaXggY2FjaGluZyBjcmFzaGluZyBhbmQgY2xhc2hpbmcgdW5kZXIgU29sYXJpcwogICAKMjAwMy0wNi0wOSAxNDoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIHBhdGNoICM3NDkxMDMgZnJvbSBHYXJyeSBDIE1hcnNoYWxsIHRvIGZpeCB0aGUgcHJveHkgd2hlbiBhIHRpbWVvdXQgb2NjdXJzIGZyb20gdGhlIHRhcmdldAogICAKMjAwMy0wNi0wNiAyMzoxNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBGaXggbWlzc2luZyBsZW5ndGggYnl0ZSB3aGVuIHNldHRpbmcgaW5kZXggd2l0aCBjaGVja3MgZGlzYWJsZWQKICAgCjIwMDMtMDUtMjggMTc6MjUgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgcmVtb3ZlIHVudXNlZCBjb2RlIGFzIHBvaW50ZWQgb3V0IGJ5IFBldGVyIFdhcmFzaW4KICAgCjIwMDMtMDUtMjggMTQ6MjkgIGhhcmRha2VyCgogICAqIEFHRU5ULnR4dDoKCiAgIGFkZGVkIFY0L1Y1IG5vdGUgZnJvbSBtYWluIGJyYW5jaCB0byBwYXRjaGVzCiAgIAoyMDAzLTA1LTIzIDExOjI1ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmcmVlIGNvbnRhaW5lciBhZnRlciBmcmVlaW5nIGNvbnRlbnRzCiAgIAoyMDAzLTA1LTIzIDExOjI0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgdXBkYXRlIGNvbnRhaW5lciBmcmVlIG1hY3JvL2NvZGUgdG8gZGVhbCB3L3BvaW50ZXIgYmVpbmcgZGVsZXRlZAogICAKMjAwMy0wNS0yMyAxMToyMiAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmM6CgogICBFWFRFTlNJQkxFTUlCIC0+IFVDREFWSVNfTUlCCiAgIAoyMDAzLTA1LTE0IDEwOjMwICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZy5pbgogICAKMjAwMy0wNS0xNCAxMDoyOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBuZXQtc25tcC1jb25maWcgY2htb2QgdG8gd29yayBmcm9tIGNvbmZpZ3VyZSBhbmQgY29uZmlnLnN0YXR1cwogICAKMjAwMy0wNS0xMiAyMjo1OCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFBhdGNoICM3MzU1MTEgZnJvbSBBbGV4IEJ1cmdlcjogZml4IHNubXB0cmFwZCB0byBlbnN1cmUgdGhlcmUgYXJlIHRoZSBjb3JyZWN0IG51bWJlciBvZiB2YXJiaW5kcwogICAKMjAwMy0wNS0xMiAyMjo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIFBhdGNoICM3MzY3ODQgZnJvbSBSb24gVGFib3I6IGZpeCBwcm94aWVzIGZvciByZXN0YXJ0ZWQgTlNNUHYzIHN1Yi1hZ2VudHMKICAgCjIwMDMtMDUtMDggMTY6MTYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIG1lbnRpb24gQW5kcmV3IEZpbmRsYXkKICAgCjIwMDMtMDUtMDggMTY6MTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICAoZXhjZWxsZW50KSBwYXRjaCAjNzA1NTY2IGZyb20gQW5kcmV3IEZpbmRsYXkgb24gcGVybCBhZ2VudCBzdXBwb3J0OgogICAKICAgMSkgQWdlbnQgY2Fubm90IHJldHVybiBNQUMgYWRkcmVzc2VzIGNvbnRhaW5pbmcgemVybyBvY3RldC4KICAgCiAgIDIpIEFnZW50IGNvcmVkdW1wcyB3aGVuIHRyeWluZyB0byByZXR1cm4gSVAgYWRkcmVzc2VzCiAgIGlmIHRoZXNlIGFyZSBzdXBwbGllZCBhcyBkb3R0ZWQtcXVhZCBvciBhcyBhIGhvc3RuYW1lCiAgIHRoYXQgZmFpbHMgdG8gcmVzb2x2ZS4KICAgCiAgIDMpIEFnZW50IGNvcnJ1cHRzIE9JRCB2YWx1ZXMuCiAgIAogICA0KSBBZ2VudCB0cnVuY2F0ZXMgYW55IE9DVEVUX1NUUklORyBvciBCSVRfU1RSSU5HIHRoYXQKICAgY29udGFpbnMgYSB6ZXJvIG9jdGV0ICh0aGlzIGlzIHRoZSByb290IGNhdXNlIG9mICgxKSBhYm92ZSkKICAgCiAgIEFQSSBjaGFuZ2VzIGludHJvZHVjZWQ6CiAgIAogICBhKSBJUCBhZGRyZXNzZXMgbm93IHBhc3NlZCBhcyBiaW5hcnkgc3RyaW5ncyAoNCBvY3RldHMKICAgZm9yIElQdjQpIHJhdGhlciB0aGFuIGRvdHRlZC1xdWFkIG9yIG5hbWUuIFRoaXMKICAgc2lkZXN0ZXBzIHRoZSBJUHY0L0lQdjYgcHJvYmxlbSBhbmQgbGVhdmVzIHRoZSBjYWxsaW5nCiAgIHNjcmlwdCB0byBkZWFsIHdpdGggbmFtZS0+YWRkcmVzcyByZXNvbHV0aW9uIGFuZAogICBhc3NvY2lhdGVkIGVycm9yIGhhbmRsaW5nLgogICAKMjAwMy0wNS0wOCAwOTo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbWVudGlvbiBBbGV4IEJ1cmdlciwgd2hvIHN1Ym1pdHRlZCB0aGUgcGVybCB3aW4zMiBwYXRjaGVzCiAgIAoyMDAzLTA1LTA4IDA5OjMyICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtZW50aW9uIFN0ZXBoZW4KICAgCjIwMDMtMDUtMDggMDk6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FwaS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9jbGllbnQuaCwgc25tcGxpYi9taWIuYwosIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jCjoKCiAgIHBhdGNoICM3MTAyNzUgZnJvbSBTdGVwaGVuIEouIEZyaWVkbDogY29uc3QgZml4ZXMgZm9yIEFQSXMgdGhhdCBkb24ndCBtb2RpZnkgdGhlaXIgYXJndW1lbnRzCiAgIAoyMDAzLTA1LTA4IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBtaXNzZWQgYSBjb21taXQgZm9yIGEgcGVybCBwYXRjaAogICAKMjAwMy0wNS0wOCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBBcHBsaWVkIHBhdGNoICM3MTIxMDE6IG1pbm9yIGlyaXggZml4CiAgIAoyMDAzLTA1LTA4IDA5OjIxICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgTWVudGlvbiBwYXRjaCAjNzE1NjAzCiAgIAoyMDAzLTA1LTA4IDA5OjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLnN1YnMucGwsCiAgIEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBTTk1QL1JFQURNRSwgU05NUC9TTk1QLnhzCiwgYWdlbnQvTWFrZWZpbGUuUEwsCiAgIGFnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEwsCiAgIGRlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBwYXRjaCAjNzE1NjAzOiBmaXggcGVybCBtb2R1bGUgYnVpbGRzIHVuZGVyIHdpbmRvd3MKICAgCjIwMDMtMDUtMDggMDc6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICB0cnkgdG8gdXNlIGRlZmF1bHQgY29udGFpbmVyIGlmIG5vbmUgc3BlY2lmaWVkOyBub24tZXhpc3RlbnQgcm93IHN0YXR1cyBub3QKICAgbGVnYWwgZm9yIGEgbmV3IHJvdzsgc2FuaXR5IGNoZWNrIGFzc2VydHM7IHJlbW92ZSB1bnVzZWQgY29vcGVyYXRpdmUKICAgbm90aWZpY2F0aW9uIGNvZGU7IGNoZWNrIGZvciBudWxsIHRhYmxlIGNvbnRhaW5lcgogICAKMjAwMy0wNS0wOCAwNzowNiAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIG9iamVjdF9tb25pdG9yIGFzIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcgYW5kIHdvdWxkIGJlIGEgbmV3IGZlYXR1cmUgaWYKICAgaXQgZGlkCiAgIAoyMDAzLTA1LTA4IDA3OjA1ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHN5c25hbWUgdHJhbnNsYXRpb24gZm9yIC87IGFsbG93IGV4dHJhIGNvbmZpZyB0byBiZSBzcGVjaWZpZWQgaW4KICAgZW52aXJvbm1lbnQgdmFyCiAgIAoyMDAzLTA1LTA4IDA3OjAyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0Lmg6CgogICBjaGcgTkVUX1NOTVBfVVNFX0FTU0VSVCBkZWZpbmUgdG8gTkVUU05NUF9VU0VfQVNTRVJUIHRvIGJlIGNvbnNpc3RlbnQKICAgCjIwMDMtMDUtMDggMDY6NTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsCiAgIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBhcHBseSBwYXRjaCBbIDcyNDkyNyBdIHRvIGZpeCBsb2cgbXNnOyBhZGQgXG4gdG8gbG9nIG1zZ3MKICAgCjIwMDMtMDUtMDUgMTU6MzUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgYWdlbnR4UGluZ0ludGVydmFsCiAgIAoyMDAzLTA1LTA1IDEwOjM1ICByc3RvcnkKCiAgICogY29uZmlndXJlOgoKICAgY29uZmlndXJlIHRvIG1hdGNoIGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wNS0wNSAxMDoyOSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBjb25maWd1cmUuaW46CgogICBjaG1vZCBuZXQtc25tcC1jb25maWcgYWZ0ZXIgY29uZmlndXJlLCBpbnN0ZWFkIGluIG1ha2UKICAgCjIwMDMtMDQtMDMgMTU6MTIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIHdyYXAgU05NUF9GUkVFIG1hY3JvIHcvZG8gd2hpbGUsIHNvIGl0IHdvbid0IGFmZmVjdCBpZi90aGVuIGZsb3cKICAgCjIwMDMtMDMtMjggMDY6NDggIGhhcmRha2VyCgogICAqIFJFQURNRS5rcmI1OgoKICAgS2VuIEhvcm5zdGVpbiBub3RlZCB0aGF0IHRoZSByd3VzZXIgLXMgZmxhZyB3YXMgbWlzc2luZyBpdCdzIGFyZ3VtZW50CiAgIAoyMDAzLTAzLTI4IDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFBhdGNoIGZyb20gS2VuIGZvciBtaXNjIGtyYjUgZml4ZXMgKGVuY3J5cHRpb24gdHlwZXMsIE5ldyBjcnlwdG8gc3VwcG9ydCwuLi4KICAgCjIwMDMtMDMtMTkgMTE6NDYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSB0cmFpbGluZyBcIGZyb20gcGVybCBydWxlcwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC43IC0+IFY1LjAuOAoKMjAwMy0wMy0xNyAxNzozMyAgcnN0b3J5CgogICAqIE5FV1MsIG1hbi9uZXRzbm1wX2hhbmRsZXIuMywKICAgbWFuL25ldHNubXBfdGFibGUuMywgbWFuL25ldHNubXBfdGFibGVfZGF0YS4zOgoKICAgdXBkYXRlIGZvciA1LjAuOAogICAKMjAwMy0wMy0xNyAxNzoyMCAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRCiwgUkVBRE1FLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuOCApCiAgIAoyMDAzLTAzLTE0IDE0OjU1ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwKICAgYWdlbnQvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAosIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kCiwgcGVybC9TTk1QL1NOTVAucG0sIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjgucHJlMgogICAKMjAwMy0wMy0xNCAxNDo0MCAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjgucHJlMgogICAKMjAwMy0wMy0xNCAxMzo1MyAgcnN0b3J5CgogICAqIG1hbi86IG5ldHNubXBfdGFibGUuMywgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMKOgoKICAgdXBkYXRlIGZvciA1LjAuOC5wcmUyCiAgIAoyMDAzLTAzLTE0IDEzOjQ1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB0cmFpbGluZyBzbGFzaCBvbiBzcmNkaXIgZm9yIGNvbW1lbnQgY2hlY2tzCiAgIAoyMDAzLTAzLTE0IDEzOjQ0ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgbW9yZSBleHRyYSBtb2R1bGVzIGFuZCB0cmFuc3BvcnRzCiAgIAoyMDAzLTAzLTE0IDEyOjQ0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICB1c2UgbmV3IG1hY3JvIGZvciBpbmxpbmluZzsgZml4IHNvbWUgaW5kZW50IG1hZG5lc3MKICAgCjIwMDMtMDMtMTQgMTI6NDMgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmg6CgogICB1c2UgbmV3IG1hY3JvIGZvciB0ZXN0aW5nIGlmIGlubGluaW5nIGlzIG9uCiAgIAoyMDAzLTAzLTE0IDEyOjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vOiBhaXguaCwgaHB1eC5oLAogICBpcml4Lmg6CgogICBkb24ndCB1bmRlZiBpbmxpbmUKICAgCjIwMDMtMDMtMTQgMTI6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgcmVuYW1lIG1hY3JvIHVzZWQgdG8gdGVzdCBmb3IgaW5saW5pbmcKICAgCjIwMDMtMDMtMTQgMTI6MzkgIHJzdG9yeQoKICAgKiB3aW4zMi86IGNvbmZpZy5oLCBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIGlmIGlubGluZSBtYWNybyBub3QgZGVmaW5lZCwgZGVmaW5lIGFzIGVtcHR5CiAgIAoyMDAzLTAzLTE0IDEyOjM3ICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jCiwgYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jCiwgYWdlbnQvaGVscGVycy90YWJsZS5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jCiwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oLCBzbm1wbGliL2RhdGFfbGlzdC5jCiwgc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIHJlcGxhY2UgaW5saW5lIHcvbWFjcm8KICAgCjIwMDMtMDMtMTMgMTk6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW4gdG8gZml4IHNvbWUgQWdlbnRYIChtb3N0bHkpIG1lbW9yeSBsZWFrcwogICAKMjAwMy0wMy0xMiAxMzo0MCAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgcGF0Y2ggIzY5OTM4MDogRnJvbSBDaHJpc3RvcGhlIEthbHQ6IG1ha2UgbmV0LXNubXAtY29uZmlnIGRvIHdoYXQgaXQncyBkb2N1bWVudCB0byBkbyAoYWRkIC1MQGxpYmRpckApCiAgIAoyMDAzLTAzLTEyIDExOjQ4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBwYXRjaCAjNzAwNjcyOiByZXNldCBpdG1wIHRvIHRoZSBuZXcgdmFsdWUgbGVuZ3RoIGFmdGVyIGRlY29kaW5nIGEgaGV4IHN0cmluZwogICAKMjAwMy0wMy0xMSAxNzozNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgQXBwbGllZCBvcGVuc3NsIGR5bmFtaWMgdmVyc2lvbiBoYWNrL2ZpeAogICAKMjAwMy0wMy0xMSAxNToxNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkIFdSQVBMSUJTIHZhciBpbnN0ZWFkIG9mIGRpcmVjdCBzdWJzdGl0dXRpb24KICAgCjIwMDMtMDMtMTEgMTU6MTIgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgV1JBUExJQlMgdG8gLS1hZ2VudC1saWJzIGFuZCAtLWV4dGVybmFsLWFnZW50LWxpYnMKICAgCjIwMDMtMDMtMTEgMDA6MzEgIHJzdG9yeQoKICAgKiBjb25maWd1cmU6CgogICByZXZlcnQgdG8gMi4xMwogICAKMjAwMy0wMy0wNiAwMTo0NCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBmb3IgbmV3IGNvbmZpZ3VyZS5pbgogICAKMjAwMy0wMy0wNiAwMTo0MSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBsaWJ3cmFwIHcvbnNsOyBtYWtlIHN1cmUgYWxsIHF1b3RlcyByZXN0b3JlZCBiZWZvcmUgdXNpbmcgQUMgbWFjcm9zLiBUaGlzCiAgIHNlZW1zIHRvIG1lc3MgdXAgdGhlIGNvbmZpZyBvdXRwdXQgd2hpbGUgY2hlY2tpbmcgZm9yIG1vZHVsZXMsIGJ1dCB3L291dCBpdCwKICAgSSBnZXQgZXJyb3JzIGZyb20gbTQgd2hlbiBydW5uaW5nIGF1dG9jb25mLgogICAKMjAwMy0wMy0wNSAyMDo1MSAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgbmV0LXNubXAtY29uZmlnLXgKICAgCjIwMDMtMDMtMDUgMjA6NDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgY2hlY2sgZm9yIGFuIG9wdGlvbmFsIDNyZCBwYXJhbSwgbm9jdnMsIHRvIG5vdCBjb21taXQgYWZ0ZXIgdXBkYXRpbmcgdmVyc2lvbgogICAKMjAwMy0wMy0wNSAyMDo0OCAgcnN0b3J5CgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBwdXQgYWxsIHRoZSB2ZXJzaW9uIG51bWJlciBjaGFuZ2VzIGluIHRoZSBzYW1lIHN0ZXAKICAgCjIwMDMtMDMtMDUgMjA6MjEgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuOC5wcmUxICkKICAgCjIwMDMtMDMtMDUgMjA6MDAgIHJzdG9yeQoKICAgKiBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtLAogICBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgdXBkYXRlIHZlcnNpb24gdG8gNS4wLjgucHJlMQogICAKMjAwMy0wMy0wNSAxOTowNCAgcnN0b3J5CgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgYmFjayBvdXQgZG9jcyBmb3IgbmV3IGZ1bmN0aW9uYWxpdHkgYWNjaWRlbnRhbGx5IGFkZGVkIHdoZW4gYXBwbHlpbmcgcGF0Y2gKICAgCjIwMDMtMDMtMDUgMTg6NDAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBiYWNrIG91dCBuZXcgZnVuY3Rpb25hbGl0eSBhY2NpZGVudGFsbHkgYWRkZWQgd2hlbiBhcHBseWluZyBwYXRjaAogICAKMjAwMy0wMy0wNSAxODoyMCAgcnN0b3J5CgogICAqIFJFQURNRS5zb2xhcmlzOgoKICAgdXBkYXRlcyBmcm9tIEJydWNlIFNoYXcKICAgCjIwMDMtMDMtMDUgMTg6MTggIHJzdG9yeQoKICAgKiBtYW4vLmN2c2lnbm9yZToKCiAgIGFkZCBzbm1wZC44CiAgIAoyMDAzLTAzLTA1IDE4OjEyICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2hhbmRsZXIuMywKICAgbmV0c25tcF9saWJyYXJ5LjMsIG5ldHNubXBfbWliX3V0aWxpdGllcy4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGEuMzoKCiAgIHVwZGF0ZXMgZm9yIDUuMC44CiAgIAoyMDAzLTAzLTA1IDE4OjA0ICByc3RvcnkKCiAgICogZG94eWdlbi5jb25mOgoKICAgdXBkYXRlIHRvIDUuMC44CiAgIAoyMDAzLTAzLTA1IDE3OjU4ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIHJlbW92ZSBvYnNvbGV0ZSBhcmd1bWVudDsgZml4IHR5cG8KICAgCjIwMDMtMDMtMDUgMTc6NTggIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGV4Y2x1ZGUgZnRwIGZyb20gY29tbWVudCBjaGVjazsgdXNlIGVncmVwCiAgIAoyMDAzLTAzLTA1IDE3OjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBjaGcgQysrIHN0eWxlIGNvbW1lbnQKICAgCjIwMDMtMDMtMDUgMTc6NTAgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgYXJnaCEgRnJlZUJTRCBpcyBkcml2aW5nIG1lIGNyYXp5ISAgc2V0IFJBTkRPTT0yIGlmIFJBTkRPTSBub3QgZGVmaW5lZDsgdXNlIHRlc3QKICAgCjIwMDMtMDMtMDUgMTc6MjIgIHJzdG9yeQoKICAgKiB0ZXN0aW5nL1RFU1RDT05GLnNoOgoKICAgc2ltcGxpZnkgbmV0c3RhdCBhcmdzICYgdHdlYWsgZ3JlcCByZWdleCBmb3IgbXVsdGkgcGxhdGZvcm0gY29tcGF0YWJpbGl0eQogICAKMjAwMy0wMy0wNSAxNzoxMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBjaGVjayAvYmluIGFuZCAvdXNyL2JpbiBmb3IgbmV0c3RhdCAocHJvYmFibHkgYSBnb29kIGpvYiBmb3IgY29uZmlndXJlKQogICAKMjAwMy0wMy0wNSAxNzowMiAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICBtaXNzZWQgb25lLCByZTogKCggKSkgLT4gZXhwcgogICAKMjAwMy0wMy0wNSAxNjo1OCAgcnN0b3J5CgogICAqIHRlc3RpbmcvVEVTVENPTkYuc2g6CgogICB1c2UgbW9yZSBwb3J0YWJsZSBleHByIGluc3RlYWQgb2YgICgoICkpIGZvciBhcml0aG1ldGljIGV4cHJlc3Npb25zCiAgIAoyMDAzLTAzLTA1IDE2OjE2ICByc3RvcnkKCiAgICogdGVzdGluZy9URVNUQ09ORi5zaDoKCiAgIGZvciBzeXN0ZW1zIHdpdGggL2Jpbi9uZXRzdGF0LCBjaGVjayB0aGF0IHNubXBkIHBvcnQgaXMgbm90IGluIHVzZS4gSWYgaXQgaXMsCiAgIHRyeSB1cCB0byB0aHJlZSByYW5kb20gb3RoZXJzIGJlZm9yZSBnaXZpbmcgdXAuCiAgIAoyMDAzLTAzLTA1IDE1OjE2ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1mdW5jdGlvbnMsIG5zYi1wYWNrYWdlOgoKICAgZG9uJ3QgcHJvbXB0IGJldHdlZW4gc3RlcHMgYnkgZGVmYXVsdAogICAKMjAwMy0wMy0wNSAxNToxMSAgcnN0b3J5CgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBpbXBvcnQgU05NUF9TTEVFUCB0aW1lIGZyb20gZW52aXJvbm1lbnQsIGlmIGF2YWlsYWJsZQogICAKMjAwMy0wMy0wNSAxNToxMCAgcnN0b3J5CgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgZG9uJ3QgcmVkZWZpbmUgaW5saW5lCiAgIAoyMDAzLTAzLTA1IDE1OjA4ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdmVyc2lvbiA1LjAuOAogICAKMjAwMy0wMy0wNSAxNTowNyAgcnN0b3J5CgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgc29tZSBmaWxlcyBhdXRvY29uZiBtYXkgY3JlYXRlCiAgIAoyMDAzLTAzLTA1IDEzOjQyICBuYmEKCiAgICogYWNsb2NhbC5tNCwgY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViCiwgbHRtYWluLnNoLCBjb25maWd1cmU6CgogICBVcGRhdGUgbGlidG9vbCB0byB2ZXJzaW9uIDEuNC4zLCBmb3IgdGhlIGJlbmVmaXQgb2YgRGFyd2luCiAgIAoyMDAzLTAzLTA1IDEzOjM5ICBuYmEKCiAgICogY29uZmlndXJlLmluOgoKICAgRG9udCBmb3JjZSAtSS91c3IvbG9jYWwvaW5jbHVkZSBmb3IgLS13aXRoLWRtYWxsb2MKICAgCjIwMDMtMDMtMDQgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIHdyb25nIHR5cGUgcmV0dXJuZWQgZm9yIG5zTW9kdWxlTW9kZXMgYXMgcmVwb3J0ZWQgYnkgTWljaGFlbCBLaXJraGFtCiAgIAoyMDAzLTAzLTAzIDE1OjAzICBuYmEKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBNZW50aW9uIHRoZSBBZ2VudFhBZGRyZXNzLCBBZ2VudHNSZXRyaWVzIGFuZCBBZ2VudFhUaW1lb3V0IHBhcmFtZXRlcnMKICAgCjIwMDMtMDMtMDMgMTQ6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgQWRkIHN1cHBvcnQgZm9yIE9wZW5CU0QgMy4gU29ydCBzb21lIGxpbmVzIGZvciBlYXNpZXIgcmVmZXJlbmNlLgogICAKMjAwMy0wMy0wMSAxMDoyNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgYWdlbnR4IHBhdGNoIGZyb20gVG9tbXkgQ2hyaXN0ZW5zZW46IGJldHRlciBlcnJvciBjaGVja2luZwogICAKMjAwMy0wMy0wMSAwOTo1OSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgIGFnZW50eCBwYXRjaCBmcm9tIFRvbW15IENocmlzdGVuc2VuOiBkb24ndCBjcmVhdGUgZGVsZWdhdGVkIGNhY2hlIGZvciBDTEVBTlVQU0VUCiAgIAoyMDAzLTAyLTI4IDIzOjQ2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICB0eXBvCiAgIAoyMDAzLTAyLTI4IDIzOjExICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBQYXRjaCAjNTk3NjI5IGZyb20gTWF0dCBTZWxza3kgdG8gZml4IG1hbiBwYWdlIGluc3RhbGxhdGlvbgogICAKMjAwMy0wMi0yOCAxMzoxOCAgbmJhCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICBCZXR0ZXIgZXJyb3IgbWVzc2FnZSBpZiB3ZSBjYW5ub3QgY3JlYXRlIHBpZCBmaWxlCiAgIAoyMDAzLTAyLTI4IDEzOjE3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmM6CgogICBVc2UgRlMgdHlwZXMgd2l0aCBMaW51eAogICAKMjAwMy0wMi0yNyAwMDo1OSAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHN5bmMgdy9tYWluCiAgIAoyMDAzLTAyLTI2IDE4OjUyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgc3luYyB3L21haW46IHB1dCBpbiBtaXNzaW5nIElOU1RBTExfREFUQQogICAKMjAwMy0wMi0yNiAxODowNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgSW1wbGVtZW50IHN5c1Jhd0ludGVycnVwdHMgYW5kIHN5c1Jhd0NvbnRleHQgZm9yIFNvbGFyaXMKICAgCjIwMDMtMDItMjYgMTQ6MzAgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgRml4IGEgQyBwcmVjZWRlbmNlIGJvdGNoLXVwLCB0aGFua3MgdG8gRmFicueIrfWAkYvvvaT1gJGL772k5q274oCyY2lvIExhcyBDYXNhcyA8RmFicmljaW9AYXRhbi5jb20uYnI+CiAgIAoyMDAzLTAyLTI2IDE0OjE0ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBJbXBsZW1lbnQgdGhlIHNzUmF3SW50ZXJydXB0cyBhbmQgc3NSYXdDb250ZXh0IGNvdW50ZXJzIGluIExpbnV4CiAgIAoyMDAzLTAyLTI2IDE0OjEzICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEZpeCB0aGUgLVMgb3B0aW9uCiAgIAoyMDAzLTAyLTI1IDE0OjM4ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBmaXggbG9naWMgb2YgdGVzdCBvcGVyYXRpb24KICAgCjIwMDMtMDItMjUgMTQ6MzMgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiwgTWFrZWZpbGUudG9wOgoKICAgdXNlIEFVVE8oQ09ORnxIRUFERVIpIGZyb20gY29uZmlndXJlLCBpbnN0ZWFkIG9mIGhhcmRjb2RlZDsgZG9uJ3QgdHJ5IGFuZCBydW4KICAgQVVUTyhDT05GfEhFQURFUikgaWYgbm90IGZvdW5kCiAgIAoyMDAzLTAyLTI1IDE0OjExICByc3RvcnkKCiAgICogbWFuL3NubXBkLjguZGVmOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiBuZXcgZmlsZQogICAKMjAwMy0wMi0yNSAxNDowMyAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2ggKGNvcnJlY3RseSwgdGhpcyB0aW1lKQogICAKMjAwMy0wMi0yNSAxMzo0OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiBhZGQgTk9BVVRPREVQUwogICAKMjAwMy0wMi0yNSAxMzozOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogYWRkIHNtdXggdG8gZGlzdCBtb2R1bGVzOyBtb3ZlIG1ha2UgdGVzdCBpbnRvIG5zYi1tYWtlOwogICByZW1vdmUgdGVlIHNvIHJjIGlzIHByZXNlcnZlZDsgdXNlIG5ldyBOT0FVVE9ERVBTCiAgIAoyMDAzLTAyLTI1IDEzOjI5ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUmVjb2duaXNlICJkZWZWZXJzaW9uIHYzIiBhcyB3ZWxsIGFzICJkZWZWZXJzaW9uIDMiIGFzIGRvY3VtZW50ZWQKICAgaW4gdGhlIG1hbiBwYWdlcyAocHJpb3IgdG8gUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGNvcnJlY3Rpb24pCiAgIFtXZSBtaWdodCBhcyB3ZWxsIHN1cHBvcnQgYm90aCBzdHlsZXMuLi4uXQogICAKMjAwMy0wMi0yNSAxMzoyMCAgcnN0b3J5CgogICAqIEVYQU1QTEUuY29uZi5kZWYsIHNlZHNjcmlwdC5pbiwKICAgbWFuL01ha2VmaWxlLmluLCBtYW4vbWliMmMuMS5kZWYsCiAgIG1hbi9yZWFkX2NvbmZpZy4zLmRlZiwgbWFuL3NubXAuY29uZi41LmRlZiwKICAgbWFuL3NubXBfY29uZmlnLjUuZGVmLCBtYW4vc25tcGNtZC4xLmRlZiwKICAgbWFuL3NubXBjb25mLjEuZGVmLCBtYW4vc25tcGQuMS5kZWYsCiAgIG1hbi9zbm1wdHJhcGQuY29uZi41LmRlZiwgbWlicy9NYWtlZmlsZS5pbjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDogKEkgaG9wZSBJIGdvdCB0aGlzIHJpZ2h0KQogICAtQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGRvY3VtZW50YXRpb24gY2hhbmdlcwogICAgKHBhdGNoZXMgIzY5MjM4MSwgIDY5MjM4MiBhbmQgIDY5MjM4OCkKICAgCjIwMDMtMDItMjUgMTM6MTYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIHBhdGNoICM2NTc4MDg6IGNhbGN1bGF0ZSBhIHByb3BlciBpZlNwZWVkIHVuZGVyIGxpbnV4IHdoZW4gcG9zc2libGUKICAgYW5kIGRvIG1vcmUgcHJvcGVyIGlmT3BlclN0YXR1cyBzdGF0ZSBkZXRlcm1pbmF0aW9uLgogICAKMjAwMy0wMi0yNSAxMzoxNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAtIElyZmFuIFNoZXJpZmYgcG9pbnRlZCBvdXQgYSBidWcgd2l0aCBnZXRuZXh0IHJlcXVlc3RzIGRpcmVjdGx5IHRvIGEgY29sdW1uLgogICAtIGNoZWNrIGVudHJ5IG5vZGUgYXMgc3VnZ2VzdGVkIGJ5IElyZmFuIFNoZXJpZmYKICAgCjIwMDMtMDItMjUgMTM6MTQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBSZW1vdmUgbGFzdCByZW1haW5pbmcgdXNlIG9mICdubGlzdCcgdW5kZXIgSFAtVVggMTAgJiAxMS4KICAgQXMgcGVyIHBhdGNoICM2NTY3NzMgZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIKICAgCjIwMDMtMDItMjUgMTM6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgQ2hlY2tpbmcgdGhlIGxlbmd0aCBvZiBhIHN0cmluZyBidWZmZXIgb25jZSBpcyBzdWZmaWNpZW50LgogICBVc2luZyAnc3Rybm5jcHknIFtzaWNdIHRvIGNoZWNrIHRoaXMgbGVuZ3RoIHR3aWNlIGlzIHVubmVjZXNzYXJ5Li4uCiAgIAoyMDAzLTAyLTI1IDEzOjEyICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIC0gTWVzcyB3aXRoIG91dHB1dCBvZiBkb3h5Z2VuIHRvIGFkZCBzZiBsb2dvcywgZXRjLCB0byB0aGUgYm90dG9tIG9mIHRoZQogICAgIGdlbmVyYXRlZCBodG1sIGZpbGVzLgogICAtIEFwcGx5IFBldGVyIEJyZWl0ZW5sb2huZXIncyBuZXQtc25tcC1jb25maWcgcGF0Y2ggKCM2OTIzNzMpCiAgIAoyMDAzLTAyLTI1IDEzOjExICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUGF0Y2ggIzY1NTE1NCBmcm9tIEpvZWwgUm9zZGFobDogbW9yZSBwcm9wZXIgZGVtb25pemF0aW9uOgogICAgIC0gY2xvc2Ugc3RkaW4vc3Rkb3V0L3N0ZGVyciBpZiBhcHByb3ByaWF0ZS4KICAgICAtIGRvdWJsZSBmb3JrLgogICAgIC0gY2hkaXIgLyAgIFtleGNlcHQgdW5kZXIgd2luZG93c10KICAgCjIwMDMtMDItMjUgMTM6MTAgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNraW8uYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUGF0Y2ggIzY2MjE2OSBmcm9tIEphbiBXaWxsZW0gTHVpdGVuOiBkaXNraW8gc3VwcG9ydCBmb3IgRGFyd2luCiAgIAoyMDAzLTAyLTI1IDEzOjEwICByc3RvcnkKCiAgICogcGVybC9TTk1QL3QvOiBidWxrd2Fsay50LCBzZXQudDoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgRml4IHRlc3RzIGZvciBidWxrd2FsayAoZHVwbGljYXRlIGhlYWRlcikgYW5kIHNldCAoaW52YWxpZCBPSUQgY29uc3RhbnQpCiAgIAoyMDAzLTAyLTI1IDEzOjA5ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIEFjY29tbW9kYXRlIGEgZnVzc3kgSVJJWCBlbnZpcm9ubWVudCwgd2hpY2ggaXMgcGlja3kgYWJvdXQgPHVuaXN0ZC5oPgogICBTZWUgYnVnICM2Njc3MjYKICAgCjIwMDMtMDItMjUgMTM6MDQgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICBCcnVjZSBTaGF3IHBvaW50ZWQgb3V0IGEgY29tbWVudCB0eXBvCiAgIAoyMDAzLTAyLTI1IDEzOjAyICByc3RvcnkKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgZml4IG15IGRlY2xhcmF0aW9ucyBhcyBwb2ludGVkIG91dCBieSBBbmRyZXcgUGFnZQogICAKMjAwMy0wMi0yNSAxMzowMSAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIEFuIGFkZGl0aW9uYWwgY2hhbmdlIHRvIHN1cHBvcnQgJ3QnIGhpbnRzCiAgIAoyMDAzLTAyLTI1IDEzOjAwICByc3RvcnkKCiAgICogbWFuL3NubXB0cmFwZC44LmRlZjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgLWRvY3VtZW50IHBhdGNoICM2NzQyMTg6IHJlb3BlbiBsb2cgZmlsZXMgb24gSFVQLgogICAtQXBwbHkgUGV0ZXIgQnJlaXRlbmxvaG5lcidzIGRvY3VtZW50YXRpb24gY2hhbmdlcwogICAgKHBhdGNoZXMgIzY5MjM4MSwgIDY5MjM4MiBhbmQgIDY5MjM4OCkKICAgCjIwMDMtMDItMjUgMTI6NTkgIHJzdG9yeQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgLWRvY3VtZW50IG1vbml0b3IgLXQgZm9yIHRocmVzaG9sZCBtb25pdG9yaW5nCiAgIC1BcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgZG9jdW1lbnRhdGlvbiBjaGFuZ2VzCiAgICAocGF0Y2hlcyAjNjkyMzgxLCAgNjkyMzgyIGFuZCAgNjkyMzg4KQogICAKMjAwMy0wMi0yNSAxMjo1NyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHN5bmMgdy9tYWluIGJyYW5jaDoKICAgUGF0Y2ggZnJvbSBDaHJpc3RvcGhlIHRvIHN1cHBvcnQgbW9uaXRvciAtdCBmb3IgdGhyZXNob2xkIG1vbml0b3JpbmcKICAgCjIwMDMtMDItMjUgMTI6NTUgIHJzdG9yeQoKICAgKiBGQVE6CgogICBzeW5jIHcvbWFpbiBicmFuY2g6CiAgIENsYXJpZnkgdGhlIGxvY2FsLW9ubHkgYWNjZXNzIGZvciBub24tc3RhbmRhcmQgcG9ydCBBZ2VudFggY29ubmVjdGlvbnMKICAgCjIwMDMtMDItMjUgMTI6NTQgIHJzdG9yeQoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgc3luYyB3L21haW4gYnJhbmNoOgogICAgIC0gIGNsb3NlIGFuZCByZS1vcGVuIGxvZyBmaWxlIG9uIHJlY2VpdmluZyBhIEhVUCAocGF0Y2ggNjc0MjE4LCBzdWJtaXR0ZWQKICAgICAgICBieSBhbm9ueW1vdXMpCiAgIAoyMDAzLTAyLTI1IDEyOjUyICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgc3luYyB3L21haW4gYnJhbmNoOiBCcnVjZSBTaGF3IHBvaW50ZWQgb3V0IGEgY29tbWVudCB0eXBvCiAgIAoyMDAzLTAyLTI1IDA5OjA0ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuOC5kZWY6CgogICBBcHBseSBQZXRlciBCcmVpdGVubG9obmVyJ3MgY29uZmlndXJhdGlvbi1yZWxhdGVkIGRvY3VtZW50YXRpb24gYW5kIGluc3RhbGxhdGlvbiBjaGFuZ2VzLgogICAocGF0Y2hlcyAjNjkyMzcyLCAgNjkyMzc3LCAgNjkyMzc5IGFuZCA2OTIzODYpCiAgIAoyMDAzLTAyLTEzIDIwOjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIFBhdGNoICM2NTQzMjk6IGRvdWJsZSBjaGVjayBsZW5ndGhzIHdoZW4gY29weWluZwogICAKMjAwMy0wMi0xMiAwOTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5oOgoKICAgdXBkYXRlCiAgIAoyMDAzLTAyLTExIDExOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHBhc3MuYywgcGFzc19wZXJzaXN0LmMKOgoKICAgcGF0Y2ggIzY2NzY5NCAoYW5vbikgdG8gYWRkIGJhY2sgbmV3bGluZXMgdG8gcGFzcyBjb2RlCiAgIAoyMDAzLTAyLTAzIDEwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGcm9tIFJpY2hhcmQgTGFpbmc6IGNoYW5nZSB2YWx1ZSBjaGVjayBvZiBhIHN0cmluZyB0byB1c2UgYSBwcm9wZXIgbGVuZ3RoLgogICAKMjAwMy0wMS0yNCAxMDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBwYXRjaCAjNjcyMDIxIGZyb20gSm9zaHVhIEdpbGVzOiBsYXJnZSBzZXQgcmVxdWVzdCBmaXhlcwogICAKMjAwMy0wMS0yMCAyMzoyMSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgYWRkIG1pc3NpbmcgYnJhY2UKICAgCjIwMDMtMDEtMjAgMjM6MTMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC92ZXJzaW9udGFnOgoKICAgYWRkIGJhY2sgKGFjY2lkZW50YWxseSBkZWxldGVkKSBjcmVhdGlvbiBvZiBnemlwcGVkIHRhcmJhbGwKICAgCjIwMDMtMDEtMjAgMjM6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3Rlc3RfYmluYXJ5X2FycmF5LmM6CgogICBhZGQgc3RyaW5nIHRlc3QgY2FzZQogICAKMjAwMy0wMS0yMCAyMzowOSAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZml4IGFycmF5X3Fzb3J0OyBmaXggYmluYXJ5IHNlYXJjaDsgY29uJ3QgcmVjdXJzZSBvbiBpbnNlcnQsIGRlbCwgZXRjIHNpbmNlCiAgIHRoZSBJTlNFUlQvREVMRVRFIG1hY3JvcyBhbHJlYWR5IGhhbmRsZSBtdWx0aXBsZSBpbmRleGVzCiAgIAoyMDAzLTAxLTIwIDIyOjU0ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgb2ZmaWNpYWwgcGF0Y2ggWyA2Njk3MDcgXSA1LjAuNzogMTYtQml0IFJlcXVlc3QgSURzCiAgIAoyMDAzLTAxLTIwIDIyOjUyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLAogICBzbm1wbGliL2NvbnRhaW5lci5jOgoKICAgZml4IHR5cG8gaW4gbG9nIG1lc3NhZ2U7IGFkZCBuZXRzbm1wX2NvbXBhcmVfbWVtCiAgIAoyMDAzLTAxLTIwIDIyOjUxICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNyZWF0ZSBtZDVzdW1zIGFmdGVyIGNyZWF0aW5nIGd6aXBwZWQgdGFyYmFsbAogICAKMjAwMy0wMS0yMCAyMjo1MSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgYWRkIGFub3RoZXIgbGV2ZWwgb2YgZGlyZWN0b3JpZXMgdG8gbWFrZSBkZXBlbmQsIHBlciBkdHMgb24gY29kZXJzCiAgICh0aG91Z2h0IHRoaXMgd2FzIGluIDUuMC43LCBidXQgYXBwYXJlbnRseSBub3QhKQogICAKMjAwMy0wMS0xNCAwODo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYywgZG94eWdlbi5jb25mLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMKLCBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgZG94eWdlbiBjaGFuZ2VzCiAgIAoyMDAzLTAxLTEzIDIxOjQ5ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2hhbmRsZXIuMzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcKICAgCjIwMDMtMDEtMTMgMjA6MzAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcmVjb2duaXplIG5ldyAndCcgY29kZSBpbiBkaXNwbGF5IGhpbnRzCiAgIAoyMDAzLTAxLTEzIDIwOjA3ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcGF0Y2ggZm9yIG1lbW9yeSBsZWFrcyBzZW50IHRvIGNvZGVycyBieSBKYXkgUGFybGFyCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjYgLT4gVjUuMC43CgoyMDAzLTAxLTExIDAxOjE1ICByc3RvcnkKCiAgICogLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBjb25maWd1cmUtc3VtbWFyeQogICAKMjAwMy0wMS0xMSAwMToxNCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDMtMDEtMTEgMDE6MDggIHJzdG9yeQoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIHZhcmlhdGlvbnMgb2YgY2hhbmdlbG9nLmFkZAogICAKMjAwMy0wMS0xMCAyMDowOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IG1pYi5jLCBzbm1wX2FwaS5jOgoKICAgZG94eWdlbiBvdXRwdXQgdGFncyB0byBwdXQgdGhlIHJlY2VudGx5IGRlZmluZWQgZnVuY3Rpb25zIGludG8gZ3JvdXBzLgogICAKMjAwMy0wMS0xMCAyMDowOSAgaGFyZGFrZXIKCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIG5ldHNubXBfYWdlbnQuMywKICAgbmV0c25tcF9idWxrX3RvX25leHQuMywgbmV0c25tcF9kZWJ1Zy4zLAogICBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zLAogICBuZXRzbm1wX2xpYnJhcnkuMywgbmV0c25tcF9taWJfdXRpbGl0aWVzLjMsCiAgIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBkb3h5Z2VuIHVwZGF0ZXMKICAgCjIwMDMtMDEtMTAgMTc6MzggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgb3BwcwogICAKMjAwMy0wMS0xMCAxNzoyOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICByZW1vdmUgZG91YmxlIGNoZWNraW5nIG91dHB1dAogICAKMjAwMy0wMS0xMCAxNDozMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDE2MHNubXB2MmNidWxrZ2V0OgoKICAgZml4IHBvc2l0aW9uYWwgYXJndW1lbnRzCiAgIAoyMDAzLTAxLTEwIDA5OjA0ICBkdHMxMgoKICAgKiBGQVE6CgogICBSZWZlcmVuY2UgQnJ1Y2UgU2hhdydzIGRpc2N1c3Npb24gb2YgdGhlIHBlcmwgY29tcGlsYXRpb24gcHJvYmxlbXMKICAgKHNlZSBSRUFETUUuc29sYXJpcykKICAgCjIwMDMtMDEtMTAgMDg6MzEgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gQWdlbnRYIHVuZGVyIHdpbmRvd3MsIGFuZCBiZWVmIHVwIHRoZSBwZXJsIHN0dWZmIGEgYml0LgogICBBZGQgYSBtaXNzaW5nIGVudHJ5IGluIHRoZSBjb250ZW50cyBsaXN0LgogICAoVGhpcyBtYXkgcHJvdmUgdG9vIGxhdGUgZm9yIDUuMC44LCBidXQgYXQgbGVhc3QgaXQnbGwgYmUgcmVhZHkgZm9yIG5leHQgdGltZSEpCiAgIAoyMDAzLTAxLTA5IDE4OjQxICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBtYWtlIGRvYyB1cGRhdGUuCiAgIAoyMDAzLTAxLTA5IDE4OjM4ICBoYXJkYWtlcgoKICAgKiBtYW4vOiBuZXRzbm1wX2FnZW50LjMsIG5ldHNubXBfYnVsa190b19uZXh0LjMsCiAgIG5ldHNubXBfZGVidWcuMywgbmV0c25tcF9oYW5kbGVyLjMsIG5ldHNubXBfaW5zdGFuY2UuMwosIG5ldHNubXBfbW9kZV9lbmRfY2FsbC4zLCBuZXRzbm1wX211bHRpcGxleGVyLjMsCiAgIG5ldHNubXBfb2xkX2FwaS4zLCBuZXRzbm1wX3JlYWRfb25seS4zLAogICBuZXRzbm1wX3NjYWxhci4zLCBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMKLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsIG5ldHNubXBfdGFibGVfZGF0YS4zLAogICBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLAogICBuZXRzbm1wX3RvZG8uMywgbmV0c25tcF93YXRjaGVyLjM6CgogICBtYWtlIGRvYyB1cGRhdGUuCiAgIAoyMDAzLTAxLTA5IDE4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluLCBhZ2VudC9oZWxwZXJzL21vZGVfZW5kX2NhbGwuYwosIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tb2RlX2VuZF9jYWxsLmg6CgogICBlbmQtb2YtbW9kZSBoZWxwZXIgdG8gY2FsbCBtb3JlIGhhbmRsZXJzIGFmdGVyIHByb2Nlc3NpbmcgdGhlIG1haW4KICAgbGluZS4gIEZ1bmN0aW9uYWxseSBhbGxvd3MgcGFyYWxsZWwgaGFuZGxlciB0cmVlcyBhbmQgY2FsbGJhY2tzIGFmdGVyCiAgIGEgcGFydGljdWxhciBtb2RlIGlzIGNvbXBsZXRlZCAodXNlZnVsIGZvciB0aGluZ3MgcmVnaXN0ZXJlZCB1bmRlciBhCiAgIHNlcmlhbGl6ZSBoYW5kbGVyIHdoZW4geW91IGRvbid0IGtub3cgd2hlbiB0aGUgbW9kZSBpcyBvdmVyKS4KICAgICAgKG5vdCB1c2VkIGFueXdoZXJlIGluIHByb2R1Y3Rpb24gY29kZSB5ZXQuKS4KICAgCjIwMDMtMDEtMDkgMTE6NTUgIGR0czEyCgogICAqIEZBUToKCiAgIE1lbnRpb24gdGhlIHBlcmwgc2hhcmVkL3N0YXRpYyBsaWJyYXJ5IHByb2JsZW0sCiAgIHRoZSB1bnJlc3BvbnNpdmUgYWdlbnQgcHJvYmxlbSAoYW5kIGZpeCksIGFuZAogICBkaXNjbGFpbSBhbGwga25vd2xlZGdlIG9mIERhdmlkIFRvd24ncyBOZXQ6OlNOTVAgbW9kdWxlLAogICAKMjAwMy0wMS0wOSAxMDoyNyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwMTYwc25tcHYyY2J1bGtnZXQsIFQwMjIwc25tcHYzYnVsa2dldAo6CgogICBHZXRCdWxrIHRlc3Rpbmcgc3VwcGxpZWQgYnkgWGlhb2ZlbmcgTGluZwogICAKMjAwMy0wMS0wOSAxMDoyNiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9SVU5URVNUUzoKCiAgIEFkZCAteCBmbGFnIGZvciBjYWxsaW5nIHN1YnRlc3RzIHdpdGggInNoIC14Ii4KICAgRml4IG51bWJlciBjb3VudGluZyBmb3IgaW50ZXJhY3RpdmUgb3V0cHV0LgogICAKMjAwMy0wMS0wNyAxODo0OSAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAoVjQtMi1wYXRjaGVzLjgpLCBDT1BZSU5HOgoKICAgeWVhciB1cGRhdGUKICAgCjIwMDMtMDEtMDcgMTM6MTggIGhhcmRha2VyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjU4KSwgRkFROgoKICAgaXJjIHNlcnZlciBuYW1lIGNoYW5nZQogICAKMjAwMy0wMS0wNyAxMTowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGJ1ZyAjNjYzNjI4IGFuZCBwYXRjaDogZml4IGlwIGFkZHJlc3MgaW5kZXggcGFyc2luZyBmcm9tIE9JRHMKICAgCjIwMDMtMDEtMDcgMDQ6NTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFJlbW92ZSByZWR1bmRhbnQgY29kZSB0byBmcmVlICdjYWxsYmFja19kYXRhX2tlZXAnIGRhdGEuCiAgIFRoaXMgYnJhbmNoIHdvdWxkIG5ldmVyIGJlIGludm9rZWQsIGFuZCBpcyBpbiB0aGUgd3JvbmcKICAgcGxhY2UgYW55d2F5LiAgUGF0Y2ggc3VwcGxpZWQgYnkgSmF5IFBhcmxhcgogICAKMjAwMy0wMS0wNiAxMToxNiAgbmJhCgogICAqIE1ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBTb2xhcmlzIDkgaGVhZGVyCiAgIAoyMDAzLTAxLTA1IDE4OjE0ICBuYmEKCiAgICogd2luMzIvd2luMzIub3B0OgoKICAgTWFrZSBpdCBjb21waWxlIHdpdGggVkMrKwogICAKMjAwMy0wMS0wNSAxNzoyOCAgbmJhCgogICAqIHdpbjMyLzogZW5jb2RlX2tleWNoYW5nZS9lbmNvZGVfa2V5Y2hhbmdlLmRzcCwgd2luMzIub3B0CiwgbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBNYWtlIGl0IGNvbXBpbGUgd2l0aCBWQysrCiAgIAoyMDAzLTAxLTA1IDE1OjQ1ICBuYmEKCiAgICogbWlicy86IE1ha2VmaWxlLm1pYiwgU05NUC1GUkFNRVdPUkstTUlCLnR4dCwKICAgU05NUC1NUEQtTUlCLnR4dCwgU05NUC1OT1RJRklDQVRJT04tTUlCLnR4dCwKICAgU05NUC1QUk9YWS1NSUIudHh0LCBTTk1QLVRBUkdFVC1NSUIudHh0LAogICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCwgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0CiwgU05NUHYyLU1JQi50eHQsIFNOTVB2Mi1UTS50eHQsIHJmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbnMKICAgCjIwMDMtMDEtMDMgMTU6NTAgIHJzdG9yeQoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGRvbid0IGNhbGwgQUNfRElTQUJMRV9TSEFSRUQsIGFzIHNldHMgdGhlIGRlZmF1bHQgdG8gZGlzYWJsZWQgKGl0J3MgdmVyeQogICBwcmVzZW5jZSBpbiBjb25maWd1cmUuaW4gZ2VuZXJhdGVzIGEgY29uZmlndXJlIHdpdGggc2hhcmVkIGRpc2FibGVkLCBldmVuCiAgIGlmIGl0IHdhcyBpbiBhbiBpZiBibG9jazsgZm9yIGRldmVsb3BlciBkZWZhdWx0LCBzZXQgZW5hYmxlX3NoYXJlZCBkaXJlY3RseQogICB1bmxlc3MgaXQgd2FzIHByZXZpb3VzbHkgc2V0OyB0ZXN0IHRoYXQgZW5hYmxlX3NoYXJlZD15ZXMgZm9yIGVtYmVkZGVkLXBlcmwKICAgCjIwMDMtMDEtMDMgMDg6MDIgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjU3KSwgRkFROgoKICAgTWVudGlvbiB0aGUgU3RyYXR1cyBWT1MgcG9ydC4gKFRoYW5rcyB0byBCcmFuZG9uIEhhbGwpCiAgIAoyMDAzLTAxLTAyIDE4OjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgcGFyZW5zIGFyb3VuZCB4IGluIG1hY3JvIGluIGNhc2UgeCBpcyBtdWx0aXBsZSBDIHRva2VucwogICAKMjAwMi0xMi0yMiAxMjozMiAgcnN0b3J5CgogICAqIHNlZHNjcmlwdC5pbiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYywgRkFRLAogICBSRUFETUUsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC43LnByZTIgKQogICAKMjAwMi0xMi0yMiAxMjozMSAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIHVwZGF0ZSBmb3IgNS4wLjcucHJlMgogICAKMjAwMi0xMi0yMiAxMjoyMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQKLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kCiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTItMjAgMDc6NTggIG5iYQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGNsZWFuIGF3YXkgbmV0LXNubXAtY29uZmlnIG9uIG1ha2UgY2xlYW4KICAgCjIwMDItMTItMjAgMDc6NTcgIG5iYQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYl9hcGkuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIHN0YXNoIHRoZSBvaWRfc3Rhc2ggLi4uCiAgIAoyMDAyLTEyLTIwIDA0OjQ5ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQSBwYXRjaCBmcm9tIFY0IHRoYXQgZGlkbid0IG1ha2UgaXQgLi4uIGFsbG93IGxpc3Qgb2YgbnVtZXJpYyBiaXRzIHNldHRpbmcgQklUUwogICAKMjAwMi0xMi0yMCAwMjo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oLCBzbm1wbGliL29pZF9zdGFzaC5jCjoKCiAgIGFkZCBhIGdsb2JhbCBjYWxsYmFjayBmdW5jdGlvbiBmb3IgcmVnaXN0ZXJpbmcgZGlyZWN0bHkgdmlhIGEgY2FsbGJhY2suCiAgIAoyMDAyLTEyLTIwIDAyOjM1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oOgoKICAgYWRkIGNhbGxiYWNrLmgKICAgCjIwMDItMTItMjAgMDI6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZSByZW5hbWluZy4gIChzbnByaW50ZiBjaGFuZ2UgbWlzdGFrZSkKICAgCjIwMDItMTItMjAgMDI6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCwgc25tcGxpYi9vaWRfc3Rhc2guYwo6CgogICBzb21lIG5ldyByb3V0aW5lcyBmb3Igc2F2aW5nIG9pZCBzdGFzaCBkYXRhIHRvIHBlcnNpc3RlbnQgc3RvcmFnZS4KICAgICAobm90IHVzZWQgYW55d2hlcmUgaW4gY3VycmVudCBwcm9kdWN0aW9uIGNvZGUpCiAgIAoyMDAyLTEyLTE5IDE3OjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIC0gd2F0Y2ggZm9yIHVuZGVmcyBwYXNzZWQgaW4gYXMgYSB2YWx1ZSB0byBhIFNFVCBjbGF1c2UuCiAgIC0gY2hhbmdlIEJJVFMgdG8gYSBPY3RldCBTdHJpbmcgYXMgaXQgc2hvdWxkIGJlLgogICAgIC0gb24gYSBzaWRlIG5vdGUsIGRvIHlvdSBrbm93IHRoYXQgdGhlIE5ldC1TTk1QIHBhcnNlciBkb2Vzbid0CiAgICAgICBkaXN0aW5ndWlzaCBiZXR3ZWVuIEJJVFMgYW5kIEJJVCBTVFJJTkcgaW4gaXQncyBsaXN0IG9mIHR5cGVzPyAgSQogICAgICAgZG9uJ3QgdGhpbmsgaXQncyBwb3NzaWJsZSB0byB1c2UgYm90aCB0eXBlcyBpbiB0aGUgY29kZSB0b2RheQogICAgICAgKHdoaWNoIGlzIGZpbmUsIHNpbmNlIEJJVCBTVFJJTkcgaXMgbm90IHVzZWQgaW4gU05NUHYyIGFuZCBiZXlvbmQpLgogICAKMjAwMi0xMi0xOSAxNzo0OSAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcHJpbnQgYSB3YXJuaW5nIHdoZW4geW91IGNhbid0IHBhcnNlIGFuIE9JRCAoZXJyLCBub3QgaWRlYWwpCiAgIAoyMDAyLTEyLTE5IDE3OjQ4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBza2lwIFNFVGluZyBjb2x1bW5zIHdpdGggbm8gdmFsdWUgcGFzc2VkIGluLgogICAKMjAwMi0xMi0xOSAxNDo0MyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogZXhhbXBsZXMvZXhhbXBsZS5jLCBob3N0L2hyX25ldHdvcmsuYwosIGhvc3QvaHJfc3dpbnN0LmM6CgogICBCZWluZyBhIGJpdCBxdWljaywgZWgsIERhdmUgLi4uCiAgIAoyMDAyLTEyLTE5IDExOjE0ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMgKFY0LTItcGF0Y2hlcy4xMiksIGF0LmM6CgogICBFbnN1cmUgdGhlIGlmbmFtZSBidWZmZXIgaXMgYmlnIGVub3VnaCB0byByZWFkIGluIGEgZnVsbC1sZW5ndGggbmFtZS4KICAgKEZyb20gdGhlIFNVU0UgImF1ZGl0IiBwYXRjaCkKICAgCjIwMDItMTItMTkgMTE6MDUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYywKICAgYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvbWliLmMKICAgKFY0LTItcGF0Y2hlcy5bMjgsOSwzLDMsMzBdKSwgYWdlbnQvc25tcGQuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsIHNubXBsaWIvbWliLmM6CgogICBEZXRlY3Qgd2hlbiBtZW1vcnkgYWxsb2NhdGlvbnMgZmFpbCwgYW5kIGRvbid0IHBsb3VnaCBvbiByZWdhcmRsZXNzLgogICAoQmFzZWQgb24gY2hhbmdlcyB3aXRoaW4gdGhlIFNVU0UgImF1ZGl0IiBwYXRjaCkKICAgCjIwMDItMTItMTkgMTA6MDcgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYywKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzX3BlcnNpc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLCBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMsCiAgIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMsCiAgIHNubXBsaWIvYXNuMS5jLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3BhcnNlLmMsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYywgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXB2My5jLCBzbm1wbGliL3ZhY20uYzoKCiAgIFRoZSBHcmVhdCBTVVNFICdzcHJpbnRmJyBIdW50Li4uLi4KICAgCjIwMDItMTItMTkgMDY6MDIgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgICAgLSBjb2RlIHdpdGggQlNEaTQKICAgCjIwMDItMTItMTkgMDU6NTAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNoYW5nZSBhIGNvbW1lbnQgdGhhdCBkb2Vzbid0IHRha2UgaW50byBhY2NvdW50IHRoZSB0cmFuc3BvcnQgc3R1ZmYKICAgICAtIGZpeCBzb21lIHBhcnRpY3VsYXJseSBiYWQgZm9ybWF0dGluZyBpbiBzbm1wX29wZW5fZXgKICAgCjIwMDItMTItMTggMTM6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIHJlbW92ZSBtZW0tbGVhayBjb21tZW50LiAgT3V0IG9mIGRhdGUgYW5kIHdhcyBmaXhlZAogICAKMjAwMi0xMi0xOCAxMzo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYywgbWFuL3NubXBkLmNvbmYuNS5kZWYKOgoKICAgZGVsZXRlIGV4cGVyaW1lbnRhbCB3YXJuaW5nIGFib3V0IGFnZW50eAogICAKMjAwMi0xMi0xOCAxMzo0MCAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgZml4IGJ1ZyM2NTU0ODg6IGRlc2NyaXB0aW9ucyBvZiBzc0lPUmF3UmVjZWl2ZWQgYW5kIHNzUmF3SW50ZXJydXB0cyB3ZXJlIHJldmVyc2VkCiAgIAoyMDAyLTEyLTE4IDA4OjE5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gcmVzdGFydCBzdGRlcnIgbG9nZ2luZyBvbiBIVVAgKGlmIC1MIHdhcyBnaXZlbiBvbiBjb21tYW5kIGxpbmUpCiAgIAoyMDAyLTEyLTE3IDE5OjMzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgcmVtb3ZlICc7JyBmcm9tIGRlZmluZTsgaWYgdGFibGUgaGFzIGEgc3RvcmFnZSB0eXBlLCBjaGVjayB0aGF0IGl0J3Mgbm90CiAgIHJlYWQgb25seSBiZWZvcmUgYWxsb3dpbmcgc2V0cwogICAKMjAwMi0xMi0xNyAxOToyNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXBlcnNpc3RlbnQuY29uZjoKCiAgIG5ldmVyIG1pbmQKICAgCjIwMDItMTItMTcgMTk6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL3Rlc3QucGw6CgogICBEb24ndCBjaGVjayBmb3IgcHJlZml4ZXMgaW4gdGVzdC4gIFRoZXkgZG9uJ3QgZXhpc3QuICBIb3dldmVyLCBkbyBzZXQgU05NUENPTkZQQVRIIGluIHRlc3QgaW5pdGlhbGl6YXRpb24gdG8gYSBib2d1cyB2YWx1ZQogICAKMjAwMi0xMi0xNyAxODo1OCAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgcmVtb3ZlIGRpcmVjdCBjYWxsIHRvIGluaXRfc25tcCgpLiAgVGhpcyBpcyBhbHJlYWR5IGNhbGxlZCBieSB0aGUgLnBtIGZpbGUKICAgCjIwMDItMTItMTcgMTA6MjIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS1wZXJzaXN0ZW50LmNvbmY6CgogICBwZXJzaXN0ZW5jZSBmb3IgYXJyYXktdGFibGVzCiAgIAoyMDAyLTEyLTE3IDEwOjA3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3JlYWRfY29uZmlnLmgsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGFkZCByZWFkX2NvbmZpZ19zdG9yZV9kYXRhX3ByZWZpeDsgYWRkIEFTTl9USU1FVElDS1Mgdy9BU05fVU5TSUdORUQgY2FzZXMKICAgCjIwMDItMTItMTcgMDk6NDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIGRvbid0IHVzZSBTT19SRVVTRV9BRERSIHNvIGFnZW50IHBvcnQgY2FuJ3QgYmUgaGlqYWNrZWQKICAgCjIwMDItMTItMTcgMDk6NDMgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICB1c2UgbG9jYWwgdmFyIGZvciBiYXNlIGFnZW50IGxpYnM7IHJlb3JkZXIgYmFzZSBhZ2VudCBsaWJzIHNvIHN0YXRpYyBsaW5raW5nCiAgIHdvcmtzCiAgIAoyMDAyLTEyLTE2IDE4OjMyICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5jLCBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmg6CgogICBZZXQgYW5vdGhlciBjb21waWxlciB3YXJuaW5nIC4uLgogICAKMjAwMi0xMi0xNiAxNzo1MCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgcmVtb3ZlIGJvZ3VzIGNvbW1lbnQgcmVmZXJlbmNlIHRvIHRhYmxlX2RhdGFzZXQgaGVscGVyLgogICAKMjAwMi0xMi0xNiAxNzo0MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVFdmVudFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oLCBhcHBzL3NubXB0cmFwZC5jCiwgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmgsIHNubXBsaWIvdG9vbHMuYwo6CgogICBTcHJlYWQgc29tZSBtYWdpYyBkdXN0IHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmdzICh3aHkgaXNuJ3QgLS1lbmFibGUtc2xpZW50LWxpYnRvb2wgdGhlIGRlZmF1bHQgLi4uKQogICAKMjAwMi0xMi0xNiAxMTo0NCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gZml4IHNtYWxsIG1lbW9yeSBsZWFrIChwZWVybmFtZSBpcyBjb3BpZWQgYnkgc25tcF9vcGVuX2V4KQogICAKMjAwMi0xMi0xNiAxMTozMSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhawogICAKMjAwMi0xMi0xNiAxMToxOSAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrCiAgIAoyMDAyLTEyLTE2IDEwOjAyICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHJlbW92ZSByZWR1bmRhbnQgaW5jbHVkZSAoY2F1c2VkIHByb2JsZW1zIG9uIFN1biA1LjcsIHJlcG9ydGVkIGJ5IGpicG4pCiAgIAoyMDAyLTEyLTE2IDA4OjIyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY29uZmlndXJlIHcvb3V0IGRldmVsb3BlcgogICAKMjAwMi0xMi0xNiAwODoxOCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgREVWRkxBR1M9IiIgaWYgbm90IGRldmVsb3BlcgogICAKMjAwMi0xMi0xNiAwMjozOSAgbmJhCgogICAqIHNubXBsaWIvOiBvaWRfc3Rhc2guYywgc2NhcGkuYywgc25tcEFBTDVQVkNEb21haW4uYwosIHNubXBJUFhEb21haW4uYywgc25tcFRDUElQdjZEb21haW4uYywKICAgc25tcFVEUElQdjZEb21haW4uYzoKCiAgIGRtYWxsb2Mgc3VwcG9ydAogICAKMjAwMi0xMi0xNiAwMjozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jOgoKICAgUG9zc2libGUgbGVhayBvZiBmZCBvbiBlcnJvciByZXR1cm4KICAgCjIwMDItMTItMTQgMTA6MjIgIHJzdG9yeQoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbQosIHNubXBsaWIvc25tcF92ZXJzaW9uLmM6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjcucHJlMSApCiAgIAoyMDAyLTEyLTE0IDEwOjIxICByc3RvcnkKCiAgICogQ2hhbmdlTG9nLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNy5wcmUxCiAgIAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuNiAtPiBWNS4wLjdwcmUxCgoyMDAyLTEyLTE0IDA5OjU5ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIGFnZW50L21pYmdyb3VwOyBmaXggbW9kdWxlcyBmb3IgY29uZmlnX2Rpc3QKICAgCjIwMDItMTItMTQgMDk6NTggIHJzdG9yeQoKICAgKiBtYW4vOiBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLCBuZXRzbm1wX2RlYnVnLjMsCiAgIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90b2RvLjM6CgogICB1cGRhdGUgZm9yIDUuMC43LnByZTEKICAgCjIwMDItMTItMTQgMDk6NTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS50b3A6CgogICBidW1wIHJldiB0byA1LjAuNwogICAKMjAwMi0xMi0xNCAwOTo0OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkIC1uIHRvIGdyZXAgZm9yIEMrKyBjb21tZW50cwogICAKMjAwMi0xMi0xNCAwOTo0NyAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTEyLTE0IDA5OjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmM6CgogICByZW1vdmUgQysrIGNvbW1lbnRzCiAgIAoyMDAyLTEyLTE0IDA5OjMwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBhZGQgY29tbWVudHMgdG8gc29tZSBzdHJ1Y3R1cmUgbWVtYmVycwogICAKMjAwMi0xMi0xNCAwOToyOSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGVycm9ycyBkdXJpbmcgY29tbWl0IHVuZG8gc2hvdWxkIGJlIHh4RkFJTEVEOyB1c2Ugc2V0X3JlcXVlc3RfZXJyb3IgaW5zdGVhZCBvZgogICBzZXRfbW9kZV9yZXF1ZXN0X2Vycm9yOyByZW1vdmUgaW5jb3JyZWN0IGNvbW1lbnQ7IG1vcmUgZGVidWdnaW5nOyBjaGVjayBmb3IKICAgYW5kIGNhbGwgbG93ZXIgaGFuZGxlcnMKICAgCjIwMDItMTItMTQgMDk6MjcgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBhbHdheXMgcHJvY2VzcyBsYXRlciBwYXNzZXMgb2YgYSBzZXQgcmVxdWVzdAogICAKMjAwMi0xMi0xMyAxNjowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxNTo0NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYwo6CgogICBRdWVsbCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMi0xMyAxNTo0MCAgbmJhCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEZpeCBpbmNvbXBsZXRlIHplcm9pbmcgb2Ygc2VjdXJpdHkgZGF0YQogICAKMjAwMi0xMi0xMyAxNTozOSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIEZpeCBhIHBvc3NpYmxlIGZyZWVpbmcgb2YgYSBOVUxMIHBvaW50ZXIKICAgCjIwMDItMTItMTMgMTU6MzggIG5iYQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oLCBzbm1wbGliL3NubXBfYXBpLmMKOgoKICAgUXVlbGwgY29tcGlsZXIgd2FybmluZ3MKICAgCjIwMDItMTItMTMgMTE6MzggIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIENsZWFyIHRoZSAncHJvY2Vzc2VkJyBmbGFnIGJldHdlZW4gcGFzc2VzLCBzbyB0aGF0IGhhbmRsZXJzCiAgIGNhbiBjb3JyZWN0bHkgY2xlYW4gdXAgYWZ0ZXIgZXJyb3JzIGhhdmUgYmVlbiBkZXRlY3RlZC4KICAgCjIwMDItMTItMTMgMTE6MDYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIGFkZCBhc3NlciB0byB0cnkgYW5kIGNhdGggaW50ZXJtaXR0ZW50IGNyYXNoIGkndmUgYmVlbiBzZWVpbmcKICAgCjIwMDItMTItMTMgMTE6MDQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBsb2cgdW5rbm93biBhZ2VudHggb3BlcmF0aW9uCiAgIAoyMDAyLTEyLTEzIDEwOjEyICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgaWYgbm8gcm93IGNyZWF0ZSBjYWxsYmFjayBvbiBzZXQsIHVzZSBOT1RXUklUQUJMRSBpbnN0ZWFkIG9mIE5PU1VDSElOU1RBTkNFCiAgIAoyMDAyLTEyLTEzIDEwOjA0ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmM6CgogICBmaXggY3V0LW4tcGFzdGUgc28gZGVsZWdhdGVkIGZsYWcgZGlzcGxheWVkIHByb3Blcmx5CiAgIAoyMDAyLTEyLTEzIDEwOjAxICByc3RvcnkKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBsb2cgdGV4dCAoQVBQfExJQnxUT0spIGluc3RlYWQgb2Ygc3RvcmUgaWQgaW4gZGVidWcgbXNncwogICAKMjAwMi0xMi0xMyAwOTo1MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGFkZCAtLXdpdGgtbGlid3JhcAogICAKMjAwMi0xMi0xMyAwOTo0OSAgcnN0b3J5CgogICAqIEZBUToKCiAgIGdyYW1tYXIvaW5kZW50aW9uIHR3ZWFrICsgbWVudGlvbiBzdHJpcCBmb3IgbWVtb3J5IGZvb3RwcmludCBxdWVzdGlvbgogICAKMjAwMi0xMi0xMyAwOTozMiAgZHRzMTIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgUmVtb3ZlIGV4cGxpY2l0IG1lbnRpb24gb2YgU05NUCBtb2R1bGUgZG9jdW1lbnRhdGlvbi4KICAgVGhpcyBzZXR0aW5nIGRvZXNuJ3Qgc2VlbSB0byBiZSBuZWNlc3NhcnksIGFuZCB3aXRob3V0IGl0LAogICB0aGUgbWFuIHBhZ2UgaXMgaW5zdGFsbGVkIGF1dG9tYXRpY2FsbHkuCiAgIAoyMDAyLTEyLTEzIDA3OjQ3ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gbWFrZSAtUyBkbyB0aGUgc2FtZSBhcyBzbm1wZCAtUyAoc2V0IHRoZSBzeXNsb2cgZmFjaWxpdHkpCiAgICAgLSBtYWtlIC1sIHByaW50IGEgd2FybmluZyBzYXlpbmcgdGhhdCBpdCBpcyBkZXByZWNhdGVkIGFuZCAtUyBzaG91bGQKICAgICAgIGJlIHVzZWQgaW5zdGVhZAogICAKMjAwMi0xMi0xMyAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gaW5jcmVhc2Ugd2lkdGggb2YgdG9rZW4gZmllbGQgdG8gaW1wcm92ZSBsZWdpYmlsaXR5IG9mCiAgICAgICBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZSBoZWxwIG91dHB1dAogICAKMjAwMi0xMi0xMiAxNzo0NiAgbmJhCgogICAqIGFwcHMvc25tcHRhYmxlLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdW5rbm93biAtTyBvcHRpb25zCiAgIAoyMDAyLTEyLTEyIDE1OjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBGaXggc29tZSBzaXplX3QgdGhhdCByZWFsbHkgc2hvdWxkIGJlIGludAogICAKMjAwMi0xMi0xMiAxNDoxOCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCwgbWFuL3NubXAuY29uZi41LmRlZiwKICAgbWFuL3NubXBjbWQuMS5kZWYsIHNubXBsaWIvbWliLmMsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBBIGxvbmcgb3ZlcmR1ZSBwYXRjaCAoIzQxNTI1MikgZnJvbSBSb2JlcnQgSGFzdGluZ3MgdGhhdCBpbXBsZW1lbnRzCiAgIHJldmVyc2UgRElTUExBWS1ISU5UIHByb2Nlc3NpbmcsIGkuZS4gaXQgYWxsb3dzIHlvdSB0byBpbnB1dCBkYXRhCiAgIGZvcm1hdHRlZCBsaWtlIHRoZSBESVNQTEFZLUhJTlQgcHJlc2NyaWJlcy4gRW5hYmxlZCBieSBkZWZhdWx0LCBidXQKICAgY2FuIGJlIGRpc2FibGVkIHdpdGggdGhlIC1JaCBvcHRpb24gb3Igbm9EaXNwbGF5SGludCBpbiBzbm1wLmNvbmYKICAgCjIwMDItMTItMTIgMTM6NTYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHBhcnNlIG9pZHMgaW4gdmlldyBzdGF0ZW1lbnRzIHRoZSBzYW1lIHdheSB0aGUgYXBwcyBkbyBpdCAoY29uc2lzdGVuY3ksIGhlIHNhaWQpCiAgIAoyMDAyLTEyLTEyIDEzOjM1ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgQWRkIGEgZ2V0Um9vdE9JRCBmdW5jdGlvbiB0byB0aGUgcmVnaW5mbyBwb2ludGVyIHBhc3NlZCBpbnRvIGhhbmRsZXJzLgogICAKMjAwMi0xMi0xMiAxMzozNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIGNoYW5nZSBjcmVhdGUgYW5kIGR1cGxpY2F0ZSByb3cgdG8gcmV0dXJuIHNwZWNpZmljIGNvbnRleHQgaW5zdGVhZCBvZiBnZW5lcmljCiAgIG5ldHNubXBfaW5kZXg7IGNhdGNoIGVycm9yIGZyb20gcGFyc2Vfb2lkX2luZGV4ZXMgb24gcm93IGNyZWF0aW9uCiAgIAoyMDAyLTEyLTEyIDEzOjM0ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvdC9taWIudDoKCiAgIFByaW50IGVycm9ycyB0byBTVERFUlIgaW5zdGVhZC4KICAgICAoYWN0dWFsbHkgZG9uJ3QgYmVjYXVzZSB0aGVzZSBzdGF0ZW1lbnRzIGFyZSBjb21tZW50ZWQgb3V0IGluIHRoZQogICAgIGZpcnN0IHBsYWNlKQogICAKMjAwMi0xMi0xMiAxMzozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIFJldmVyc2UgdGhlIGNvbnRleHQgb2YgYSBjb250ZXh0IGlmIHN0YXRlbWVudCBzbyBpZiBub3QgdGhlIGNvbnRleHQKICAgdGhlbiBkb24ndCB1c2UgdGhlIGNvbnRleHQgaW4gdGhlIGdpdmVuIGNvbnRleHQuCiAgIAoyMDAyLTEyLTEyIDEyOjU2ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZHJvcCBsb25nLWRlcHJlY2F0ZWQgLXEgYW5kIC1TIG9wdGlvbnMKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMTItMTIgMTI6MzUgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBtZXNzYWdlIGluIHVzYWdlCiAgIAoyMDAyLTEyLTEyIDExOjM3ICBkdHMxMgoKICAgKiBtYW4vc25tcGQuMS5kZWYsIGFnZW50L3NubXBkLmM6CgogICBJbXBsZW1lbnQgYSBjb21tYW5kLWxpbmUgb3B0aW9uICgtUykgdG8gc2V0IHRoZSBmYWNpbGl0eSB0byB1c2Ugd2hlbgogICBsb2dnaW5nIHZpYSBzeXNsb2cuICAgQmFzZWQgb24gYW4gaWRlYSBieSBKb2VsIFJvc2RhaGwgKFBhdGNoICM2Mjc3MDEpCiAgIE5vdGUgdGhhdCAtbCBhbmQgLUwgYXJlIGFscmVhZHkgdGFrZW46LSgKICAgCiAgIFRvRG86CiAgICAgUHJvdmlkZSBjb25maWd1cmF0aW9uIGRpcmVjdGl2ZXMgZm9yIGJvdGggdGhpcywgYW5kIHRoZSBzeXNsb2cgdG9rZW4gKCdzbm1wZCcpLgogICAKMjAwMi0xMi0xMiAxMToxOCAgZHRzMTIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWYsIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYwo6CgogICBTdXBwb3J0IHNldHRpbmcgb2Ygc3lzRGVzY3IgYW5kIHN5c09iamVjdElEIHZpYSBzbm1wZC5jb25mCiAgIGNvbmZpZ3VyYXRpb24gZGlyZWN0aXZlcyAodGhvdWdoIG5vdCB2aWEgU05NUCBTRVQgcmVxZXN0cykuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3NzAyIGFuZCAjNjI4MDExKQogICAKMjAwMi0xMi0xMiAxMDo1OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IGFsbF9oZWxwZXJzLmMsIHRhYmxlLmM6CgogICBTdXBwcmVzcyBzb21lIGNvbXBpbGVyIHdhcm5pbmdzLgogICBCYXNlZCBvbiBwYXRjaCBzdXBwbGllZCBieSBDaHJpcyBKb2hucyAoIzY0NDA0MSkKICAgCjIwMDItMTItMTIgMTA6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X3NvbGFyaXMyLmMgKFY0LTItcGF0Y2hlcy42KSwKICAgbWVtb3J5X3NvbGFyaXMyLmM6CgogICBVc2UgJ3N5c2NvbmYnIHRvIHJlcG9ydCBvbiBTb2xhcmlzIG1lbW9yeSB1c2FnZS4KICAgQmFzZWQgb24gcGF0Y2ggc3VwcGxpZWQgYnkgQmVuIFN0ZXJuICgjNjUxMTgyKQogICAKMjAwMi0xMi0xMiAxMDowMCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgQmFzaWMgc3VwcG9ydCBmb3IgbXVsdGlwbGUgQWdlbnRYIHNvY2tldHMgKG9uIHRoZSBtYXN0ZXIgc2lkZSBhdCBsZWFzdCkuCiAgIFNlZSBGZWF0dXJlIFJlcXVlc3QgIzYzMjU1NgogICAKMjAwMi0xMi0xMiAwODo1NyAgcnN0b3J5CgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBjcmVhdGUgdmVyc2lvbiB0YWcgZnJvbSB2ZXJzaW9uIHNvIGN2cyBleHBvcnQgd29ya3M7IGZpeCBSRUw7IGFkZCB0YXIuZ3oKICAgb2Ygc291cmNlIGFzIGRlcGVuZGVuY3kgZm9yIHJwbWZpbGVzCiAgIAoyMDAyLTEyLTEyIDA4OjA0ICBuYmEKCiAgICogc25tcGxpYi86IGRhdGFfbGlzdC5jLCBzbm1wQ2FsbGJhY2tEb21haW4uYywKICAgc25tcFRDUERvbWFpbi5jLCBzbm1wVURQRG9tYWluLmMsIHNubXBVbml4RG9tYWluLmMKLCBzbm1wX2VudW0uYywgc25tcF9zZWNtb2QuYywgc25tcF90cmFuc3BvcnQuYwo6CgogICBkbWFsbG9jIHN1cHBvcnQKICAgCjIwMDItMTItMTIgMDc6MTggIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBEb2N1bWVudCB0aGUgLU9VIG9wdGlvbiwgYW5kIGFscGhhYmV0aXNlIHRoZSBoYW5kbGluZyBvZiBvcHRpb25zLgogICAKMjAwMi0xMi0xMiAwNjoyNSAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgJ3NubXBpbmZvcm0nIGFzIGEgcmVsYXRpdmUgbGluaywgcmF0aGVyIHRoYW4gYW4gYWJzb2x1dGUgb25lLgogICBGaXggcHJvdmlkZWQgYnkgdGhlIGluZGVmYXRpZ2FibGUgU3RlZmFuIFJhZG1hbiAoQnVnICM2NTI1ODcpCiAgIAoyMDAyLTEyLTEyIDA1OjU2ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFF1b3RlIGNvbmZpZ3VyZSBvcHRpb25zIHdoZW4gY29udHJ1Y3RpbmcgbmV0LXNubXAtY29uZmlndXJlIGFuZCBuZXQtc25tcC1jb25maWd1cmUuaAogICBUaGlzIGFsbG93cyBvcHRpb25zIGNvbnRhaW5pbmcgc3BhY2VzLCBldGMsIHRvIGJlIGhhbmRsZWQgY29ycmVjdGx5LgogICAoU2VlIEZlYXR1cmUgUmVxdWVzdCAjNTQ3MTUyKQogICAKMjAwMi0xMi0xMSAxNjo1MiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgUGF0Y2ggZm9yIEZyZWVCU0QuIFRoYW5rcyB0byBKdW4gS3VyaXlhbWEKICAgCjIwMDItMTItMTEgMTI6MTYgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYyAoVjQtMi1wYXRjaGVzLjQpLCBzbm1wX2xvZ2dpbmcuYzoKCiAgIFRyeSBkaXNhYmxpbmcgbGluZS1idWZmZXJpbmcgb24gV2luZG93cyBzeXN0ZW1zIChzaW5jZSBpdAogICBhcHBhcmVudGx5IGVuYWJsZXMgZnVsbC1idWZmZXJpbmcgaW5zdGVhZCkuICBTZWUgQnVnICM1NTg4MzcuCiAgIAoyMDAyLTEyLTExIDExOjI1ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvdC86IGFzeW5jLnQsIGdldC50LCBnZXRuZXh0LnQsCiAgIG5vdGlmeS50LCBzZXQudDoKCiAgIEV4cGxpY2l0bHkgc2V0IFNOTVAgdmVyc2lvbiA9IDEgKHRoZSBvcmlnaW5hbCBkZWZhdWx0IGFzIGV4cGVjdGVkIGJ5IHRoZSB0ZXN0cykKICAgVGhpcyBzaG91bGQgbm93IHBhc3MgYWxsIHRlc3RzIGFwYXJ0IGZyb20gY29uZi50ICMzCiAgIAoyMDAyLTEyLTExIDA2OjQ2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaDoKCiAgIEJlIG1vcmUgc2VsZWN0aXZlIGluIHVzaW5nIHRoZSA2NC1iaXQgdmVyc2lvbiBvZiBubGlzdC4gKEJ1ZyAjNjExNjU1KQogICAKMjAwMi0xMi0xMSAwNjoyNyAgZHRzMTIKCiAgICogUkVBRE1FLnNvbGFyaXM6CgogICBNZW50aW9uIHRoZSBub24tZnVuY3Rpb25hbGl0eSBvZiBvbmUgb2YgdGhlIHN1Z2dlc3RlZCBhcHByb2FjaGVzLgogICAoQnVnICM2MTcxMTkpLiAgIFJlcG9ydGVkIGJ5IFF1YW5haCBHaWJzb24tTW91bnQKICAgCjIwMDItMTItMTEgMDY6MjAgIGR0czEyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgRW5zdXJlIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBleGlzdHMgYmVmb3JlIGluc3RhbGxpbmcgdGhlCiAgIGVtYmVkZGVkIHBlcmwgc2NyaXB0LiAgKEJ1ZyAjNjE3ODkxKSBGaXggcHJvdmlkZWQgYnkgU3RlZmFuIFJhZG1hbi4KICAgCjIwMDItMTItMTEgMDU6NTYgIGR0czEyCgogICAqIFJFQURNRS5zbm1wdjMgKFY0LTItcGF0Y2hlcy40KSwgUkVBRE1FLnNubXB2MzoKCiAgIERvY3VtZW50IHRoZSBsb2NhdGlvbiBhc3N1bXB0aW9ucyBiZWluZyBtYWRlIGluIHRoaXMgZGVzY3JpcHRpb24uCiAgIAoyMDAyLTEyLTExIDA0OjQ3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgUHJvdmlkZSBhIG1lY2hhbmlzbSBmb3IgZm9yY2luZyBzdHJpbmdzIHRvIGJlIGRpc3BsYXllZCBpbiBlaXRoZXIKICAgQVNDSUkgb3IgSGV4IGZvcm1hdCwgYnlwYXNzaW5nIHRoZSAiZ3Vlc3MiIG1lY2hhbmlzbSBhcyB0byB3aGljaAogICBpcyBtb3JlIGFwcHJvcHJpYXRlLiAgIFN1Z2dlc3RlZCBieSBOaWNrIEthbmFrYWtvcm4uCiAgICAgTm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgYWZmZWN0IG9iamVjdHMgd2l0aCBhIERpc3BsYXktSGludCBpbgogICB0aGVpciBNSUIgZGVmaW5pdGlvbi4KICAgCjIwMDItMTItMTEgMDQ6MzAgIGR0czEyCgogICAqIGFnZW50L2RzX2FnZW50LmgsIGFnZW50L3NubXBkLmMsIHRlc3RpbmcvZXZhbF90b29scy5zaAogICAoVjQtMi1wYXRjaGVzLlsyLDI2LDZdKSwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcGQuYywgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBDb21tYW5kLWxpbmUgb3B0aW9uIHRvIGNvbnRyb2wgd2hldGhlciB0byB1bmxpbmsgdGhlIFBJRCBmaWxlIG9yIG5vdC4KICAgTmVjZXNzYXJ5IGZvciBjb3JyZWN0IHRlc3Qgb3BlcmF0aW9uLgogICAKMjAwMi0xMi0xMSAwNDoyMSAgZHRzMTIKCiAgICogcGVybC9PSUQvdGVzdC5wbDoKCiAgIFRoZSBsYXRlc3QgbGlicmFyeSBkZWZhdWx0cyB0byBNT0RVTEU6Om5hbWUgc3R5bGUgb3V0cHV0LAogICBzbyBhZGp1c3QgdGhlIGV4cGVjdGVkIG91dHB1dCBjaGVja3MgYWNjb3JkaW5nbHkuCiAgIEFsc28sIHRoZXJlIGFyZSBhY3R1YWxseSAzNiB0ZXN0cywgbm90IDM1IQogICAKMjAwMi0xMi0xMSAwNDoxNyAgZHRzMTIKCiAgICogcGVybC9PSUQvT0lELnhzOgoKICAgSW5pdGlhbGlzZSB0aGUgU05NUCBsaWJyYXJpZXMsIHRvIHNldCB1cCB0aGUgT0lEIHRyZWUuCiAgIEFkZHJlc3NlcyBidWdzICM2MzgwMjQgYW5kICM2Mjc2NDMKICAgICBbUW46IERvIHdlIG5lZWQgdG8gc3VwcGx5IGFuICdhcHBuYW1lJyAoYy5kIHRoZSBTTk1QIG1vZHVsZSkgP10KICAgCjIwMDItMTItMTAgMTk6MjkgIG5iYQoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmLCBzbm1wbGliL3NubXBfYXBpLmMsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYzoKCiAgIEFsbG93IHJ1bnRpbWUgY29uZmlndXJhdGlvbiBvZiBwZXJzaXN0ZW50IGRpcmVjdG9yeQogICAKMjAwMi0xMi0xMCAxOToyNCAgbmJhCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIFJlcG9ydCBlcnJvcnMgaGFuZGxpbmcgcGVyc2lzdGVudCBzdG9yYWdlIGZpbGVzCiAgIAoyMDAyLTEyLTEwIDE5OjIzICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIFBhc3MgdXAgZXJyb3Igb24gZGlyZWN0b3J5IGNyZWF0aW9uCiAgIAoyMDAyLTEyLTEwIDE3OjI3ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJldHRlciByZXNwZWN0IGZvciB0aGUgbWF4IHdpZHRoIG9wdGlvbiAoc25tcHRyYW5zbGF0ZSAtVGQpCiAgIAoyMDAyLTEyLTEwIDE3OjI2ICBuYmEKCiAgICogbWFuL3NubXAuY29uZi41LmRlZjoKCiAgIERvY3VtZW50IHRoZSBvaWRPdXRwdXRGb3JtYXQgb3B0aW9uCiAgIAoyMDAyLTEyLTEwIDE3OjI1ICBuYmEKCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgIENsZWFuIHVwLiBSZW1vdmUgY2FsbHMgdG8gb2Jzb2xldGUgZnVuY3Rpb25zIHNubXBfc2V0X3F1aWNrX3ByaW50LAogICBzbm1wX2dldF9kdW1wX3BhY2tldCwgc25tcF9nZXRfc3VmZml4X29ubHkuIFJlbW92ZSBsYXN0IHRyYWNlcyBvZiB0aGUKICAgbm9uX3NlcXVlbnRpYWwgYmFja3dhcmRzIGhhY2suIE1ha2Ugc3VyZSBpdCB3b3JrcyBmb3IgYWxsIC1PIG9wdGlvbnMuCiAgIAoyMDAyLTEyLTEwIDExOjU4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGludGVyZmFjZXMuYyAoVjQtMi1wYXRjaGVzLjI2KSwKICAgaW50ZXJmYWNlcy5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGVtcHR5IGxpbmVzIGluIC9wcm9jL25ldC9kZXYgIChCdWcgIzYyNTQyNikKICAgCjIwMDItMTItMTAgMTE6NDEgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wdjMuYyAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wdjMuYzoKCiAgIEZyZWUgZGVzdGluYXRpb24gbWVtb3J5IGJlZm9yZSBjbG9uaW5nIFNOTVAgRW5naW5lIElELgogICBGaXggcHJvdmlkZWQgYnkgTWFydGluIENhcmxzc29uLiAgKEJ1ZyAjODM1NDgxKQogICAKMjAwMi0xMi0xMCAxMTowNyAgZHRzMTIKCiAgICogcGVybC86IEFTTi9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTAo6CgogICBBZGQgIiRDb25maWd7Y2NmbGFnc30iIHRvIENDRkxBR1MuICAgKFNlZSBidWcgIzY0MDg5OSkKICAgCjIwMDItMTItMTAgMTA6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaXBBZGRyLmMgKFY0LTItcGF0Y2hlcy44KSwgaXBBZGRyLmM6CgogICBBZGQgc3VwcG9ydCBmb3IgTGludXggdmlydHVhbCBpbnRlcmZhY2VzIGluIHRoZSBpcEFkZHJlc3NUYWJsZS4KICAgKE5vdGUgdGhpcyBkb2VzICpub3QqIGluY2x1ZGUgc2VwYXJhdGUgcGVyLXYtaW50ZXJmYWNlIHN0YXRpc3RpY3MKICAgIGluIHRoZSBpbnRlcmZhY2VzIHRhYmxlKS4KICAgCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IEplbnMgU2l0dG5lciAoIzYyMTI3NCkKICAgCjIwMDItMTItMTAgMDQ6NTkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIFJlbW92ZSBhIGNvdXBsZSBvZiBleHRyYW5lb3VzIF5NIGNoYXJhY3RlcnMuCiAgIAoyMDAyLTEyLTEwIDAyOjM2ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFdoZW4gdXNpbmcgLU9xdiBhbmQgcHJpbnRpbmcgYW4gZW1wdHkgc3RyaW5nIHlvdSBjb3VsZCBlbmQgdXAgd2l0aAogICBhIE5VTEwgc3RyaW5nIGFuZCBub3QgYW4gZW1wdHkgc3RyaW5nIGxlYWRpbmcgdG8gc29tZSB2ZXJ5IG9ic2N1cmUKICAgcHJvYmxlbXMgaW4gc25tcHRhYmxlIGFuZCBvdGhlciBhcHBsaWNhdGlvbnMuCiAgIAoyMDAyLTEyLTA5IDExOjEyICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBIYW5kbGUgbWlzc2luZyBpbnRlZ2VyIHZhbHVlcyAod2hldGhlciAzMi0gb3IgNjQtYml0ISkuICAgT29wcyEKICAgCjIwMDItMTItMDkgMTA6MTIgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuMzgpLCBzbm1wX2FwaS5jOgoKICAgSGFuZGxlIGludGVnZXItYmFzZWQgdmFsdWVzIGNvcnJlY3RseSBvbiBhIDY0LWJpdCBwbGF0Zm9ybS4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgVGhvbWFzIFdlYmVyICgjNTYxMDcxKQogICAKMjAwMi0xMi0wOSAwOTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgVGFrZSBub3RlIG9mIHN1YmFnZW50LXJlcXVlc3RlZCBieXRlIG9yZGVyaW5nIGluIHN1YnNlcXVlbnQgY29tbXVuaWNhdGlvbnMuCiAgIFBhdGNoIHN1cHBsaWVkIGJ5IFVyYmFuICgjNjMyMjg0KQogICAKMjAwMi0xMi0wOSAwOTozMiAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMjUpLCBzbm1wZC5jOgoKICAgUmVtb3ZlIHRoZSBQSUQgZmlsZSBvbiBhZ2VudCBzaHV0ZG93bi4KICAgUGF0Y2ggc3VwcGxpZWQgYnkgSm9lbCBSb3NkYWhsICgjNjI3Njk5KQogICAKMjAwMi0xMi0wOSAwOToyNSAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uYzoKCiAgIEhhbmRsZSAnc3RydWN0IHNvY2thZGRyJyB0aGF0IGNvbnRhaW4gJ3NhX2xlbicgZmllbGRzIGRpZmZlcmVudGx5CiAgIHRvIHRob3NlIHRoYXQgZG9uJ3QgKGMuZiBpZmlsdGVyX2lvY3RsLmMgaW4gQklORCA5LjIuMSBzb3VyY2VzKQogICBQYXRjaCBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwgKCM2Mjc2OTYpCiAgIAoyMDAyLTEyLTA5IDA3OjEyICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlY29nbmlzZSBCU0RpNCwgYW5kIHR3ZWFrIHRoZSByZWNvZ25pdGlvbiBvZiAnZGxvcGVuJy4KICAgUGF0Y2hlcyBzdXBwbGllZCBieSBKb2VsIFJvc2RhaGwuCiAgIAoyMDAyLTEyLTA5IDA2OjEwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGludGVyZmFjZXMuYywgaXAuYwo6CgogICBSZW1vdmUgc29tZSB3YXJuaW5ncywgYW5kIHRyeSB0byBjb3BlIHdpdGggJ3N5c2N0bCcgZmFpbHVyZXMuCiAgIFBhdGNoZXMgc3VwcGxpZWQgYnkgQ2hyaXMgSm9obnMuCiAgIAoyMDAyLTEyLTA5IDA0OjIwICBkdHMxMgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIE1lbnRpb24gdGhlIGxpbWl0YXRpb25zIG9uIC91c3IvdWNiL3NlZCwKICAgYW5kIHBvaW50IHBlb3BsZSB0b3dhcmRzIC91c3IvYmluL3NlZCBpbnN0ZWFkLgogICAKMjAwMi0xMi0wNyAwODo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBJbnNlcnQgbmV3bHktY3JlYXRlZCByb3dzIGludG8gdGhlIHBlci1yZXF1ZXN0IGxpc3RzLCBzbyB0aGF0IGxvd2VyCiAgIGxldmVsIGhhbmRsZXJzIGNhbiBhY2Nlc3MgdGhlbS4KICAgICBbUW46IFNob3VsZCB3ZSBkbyBzb21ldGhpbmcgc2ltaWxhciB3aXRoIHVwZGF0ZWQgbGlzdHMgYXMgd2VsbD9dCiAgIAoyMDAyLTEyLTA3IDA4OjM0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFJlcG9ydCBiYWNrIHRoZSBjb3JyZWN0IGVycm9yIGZvciByb3dzIHRoYXQgY291bGRuJ3QgYmUgY3JlYXRlZC4KICAgCjIwMDItMTItMDcgMDg6MzIgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IGZyZWVpbmcgYSByb3cgdGhhdCBuZXZlciBnb3QgY3JlYXRlZCBpbiB0aGUgZmlyc3QgcGxhY2UuCiAgIAoyMDAyLTEyLTA2IDE4OjA1ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwMzBzbm1wdjN1c2VyY3JlYXRpb246CgogICBTa2lwIG9uIG5vbi1vcGVuc3NsIG1hY2hpbmVzLiAgVEhpcyBzaG91bGQgYmUgY2hhbmdlZCB0byBqdXN0IG5vdCB1c2luZyBlbmNyeXB0aW9uIG9uIHRob3NlIG1hY2hpbmVzLCBidXQgSSBkbyBub3QgaGF2ZSB0aGUgdGltZSBhdCB0aGUgbW9tZW50CiAgIAoyMDAyLTEyLTA2IDEzOjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW46CgogICByZW1vdmUgdWNkRGVtb1B1YmxpYyBmcm9tIC0tZW5hYmxlLW1pbmktYWdlbnQKICAgCjIwMDItMTItMDYgMTM6MDIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIHJlbW92ZSB1Y2REZW1vUHVibGljIGZyb20gLS1lbmFibGUtbWluaS1hZ2VudAogICAKMjAwMi0xMi0wNiAxMjowMSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBEb24ndCBkZWxldGUgdGhlICJvbGQiIChub24tZXhpc3RlbnQpIHJvdywgd2hlbiB0aWR5aW5nIHVwIGFmdGVyCiAgIGNyZWF0aW5nIGEgbmV3IHJvdy4KICAgCjIwMDItMTItMDYgMTE6NDAgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgVHdlYWsgaGFuZGxpbmcgb2YgKGludmFsaWQpIFJvd1N0YXR1cyBjcmVhdGlvbiByZXF1ZXN0cyBpbiBhbgogICAiYXV0b21hdGljIGNyZWF0aW9uIiB0YWJsZS4gICBUaGVzZSBzaG91bGQgcmV0dXJuIHdyb25nVmFsdWUgb3IKICAgaW5jb25zaXN0ZW50VmFsdWUsIHJhdGhlciB0aGFuIG5vdFdyaXRhYmxlLgogICAKMjAwMi0xMi0wNSAwNTo0NyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBTdXBwb3J0IHVzZSBvZiBSb3dTdGF0dXMgb2JqZWN0IHRvIGNvbnRyb2wgY3JlYXRpb24gb2YgbmV3IHJvd3MKICAgKGkuZS4gd2hlbiB0aGUgJ2FsbG93X2NyZWF0aW9uJyBmbGFnIGlzIG5vdCBzZXQpLgogICBUaGlzIHNob3VsZCBkZWFsIHdpdGggZXZlcnl0aGluZyBleGNlcHQgZGV0ZXJtaW5pbmcgd2hldGhlciBhCiAgIHJvdyBpcyByZWFkeSB0byBnbyAnYWN0aXZlJyAoZS5nLiB2aWEgJ2NyZWF0ZUFuZEdvJykuICBTdWNoIGEKICAgZGVjaXNpb24gaXMgaW5oZXJlbnRseSBzcGVjaWZpYyB0byBlYWNoIGluZGl2aWR1YWwgTUlCLCBzbyBtdXN0CiAgIHJlYWxseSBiZSBkb25lIGluIHRoZSBsb3dlci1sZXZlbCBoYW5kbGVyLgogICAKMjAwMi0xMi0wNSAwNTo0MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBTdG9wIHByb2Nlc3Npbmcgd2hlbiBhICdub24td3JpdGFibGUgY3JlYXRlJyBpcyBkZXRlY3RlZC4KICAgCjIwMDItMTItMDQgMTk6MzUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIC0gQklUX1NUUiAtPiBPQ1RFVF9TVFIsIHdoaWNoIGlzIHdoYXQgaXQgc2hvdWxkIGJlLgogICAtIHJ1biBldmVudFRhYmxlIGVudHJpZXMuCiAgIAoyMDAyLTEyLTA0IDE5OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmM6CgogICBCSVRfU1RSIC0+IE9DVEVUX1NUUiwgd2hpY2ggaXMgd2hhdCBpdCBzaG91bGQgYmUuCiAgIAoyMDAyLTEyLTA0IDE5OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVPYmplY3RzVGFibGUuYywKICAgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jOgoKICAgdXNlIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsIHRvIGdldCByZWFsIHN0cmluZ3MgZnJvbSBtaWIgZGF0YS4KICAgCjIwMDItMTItMDQgMTk6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oLAogICBtdGVFdmVudE5vdGlmaWNhdGlvblRhYmxlLmMsIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUuaAosIG10ZUV2ZW50VGFibGUuYywgbXRlRXZlbnRUYWJsZS5oOgoKICAgLSBpbXBsZW1lbnRlZCB0aGUgbXRlRXZlbnRUYWJsZSBhbmQgdGhlIG10ZUV2ZW50Tm90aWZpY2F0aW9uVGFibGUKICAgICAtIEZZSSwgdG90YWwgaW1wbGVtZW50YXRpb24gdGltZTogYWJvdXQgNCBob3VycwogICAgIC0gbm8gZWFzeS10by11c2UgLmNvbmYgd3JhcHBlcnMgeWV0IHRob3VnaC4gIHNubXBzZXQgc3VwcG9ydCBvbmx5LgogICAKMjAwMi0xMi0wNCAxOToyOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIC0gdXNlIHRoZSBuZXRzbm1wX3RhYmxlX3NldF9hZGRfaW5kZXhlcyBmdW5jdGlvbiB3aGljaCBhY3R1YWxseSB3b3Jrcy4KICAgCjIwMDItMTItMDQgMTk6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaDoKCiAgIC0gY3JlYXRlIGEgbmV0c25tcF90YWJsZV9zZXRfYWRkX2luZGV4ZXMgZnVuY3Rpb24uCiAgIC0gQWxsb3cgcm93IGNyZWF0aW9uIHVzaW5nIHJvd1N0YXR1cyB3aGVuIHRoZSBkYXRhIGNvbHVtbiBleGlzdHMsIGJ1dAogICAgIHRoZXJlIGlzIG5vIGFzc2lnbmVkIHZhbHVlIChpZSwgaXMgTlVMTCkuCiAgIC0gdXNlIG5ldHNubXBfc3RyZHVwX2FuZF9udWxsIGluc3RlYWQgb2YgbWVtZHVwIHRvIG1ha2Ugc3VyZSBhbgogICAgIGltcGxpY2l0IE5VTEwgaXMgaW4gcGxhY2UgZm9yIHRoaW5ncyB0aGF0IHVzZSB0aGUgZGF0YSBhbmQgbmVlZCBpdAogICAgIGFzIGEgcmVhbCBzdHJpbmcuCiAgIAoyMDAyLTEyLTA0IDE5OjI3ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBkb2N1bWVudCAtLXByZWZpeAogICAKMjAwMi0xMi0wNCAxMzoxNiAgaGFyZGFrZXIKCiAgICogTkVXUyAoVjQtMi1wYXRjaGVzLjkpLCBORVdTOgoKICAgZG9jdW1lbnQgNC4yLjYKICAgCjIwMDItMTItMDMgMDQ6NDQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIENsb3NlIHByaW50ZXIgZmlsZSBoYW5kbGUgd2l0aCAnZmNsb3NlJyByYXRoZXIgdGhhbiAncGNsb3NlJyB0byBhdm9pZAogICBhIG1lbW9yeSBsZWFrIG9uIFNvbGFyaXMgMi42LiAgIEZpeCBwcm92aWRlZCBieSBKYWNvYm8gTWF0dXRlLgogICAKMjAwMi0xMi0wMyAwNDozMyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2RhdGEuYywgdGFibGVfZGF0YXNldC5jOgoKICAgVHJhbnNsYXRlIEdldE5leHQgKGFuZCBHZXRCdWxrKSByZXF1ZXN0cyBpbnRvIHNpbXBsZSBHZXQgcmVxdWVzdHMsCiAgIHdoZW4gcGFzc2luZyB0aGVtIGZyb20gdGhlIHRhYmxlX2RhdGEgaGFuZGxlciB0byB0YWJsZV9kYXRhc2V0LgogICAgIFRoaXMgaXMgYW5hbG9nb3VzIHRvIGhvdyB0aGUgaXRlcmF0ZSBoYW5kbGVyIHdvcmtzLCBhbmQgYWxsb3dzCiAgIGxvd2VyIGxldmVsIGhhbmRsZXJzIHRvIG92ZXJyaWRlIHRoZSBiYXNpYyBiZWhhdmlvdXIgKHdpdGhvdXQKICAgaGF2aW5nIHRvIGR1cGxpY2F0ZSBhbGwgb2YgdGhlICJmaW5kIG5leHQgcm93IiBjb2RlIGV2ZXJ5IHRpbWUpLgogICAKMjAwMi0xMi0wMiAwNDo0OCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgUmV0dXJuIFNOTVB2Mi1zdHlsZSBleGNlcHRpb25zLCByYXRoZXIgdGhhbiB0aGUgU05NUHYxICdub1N1Y2hOYW1lJyBlcnJvci4KICAgVGhpcyB1c2VkIHRvIGJyZWFrIEFnZW50WCBzdWJhZ2VudHMsIGJ1dCB0aGUgbGF0ZXN0IGNoYW5nZSB0byBzbm1wX2FnZW50LmMKICAgKHRvIGNhdGNoIG5vU3VjaHtJbnN0YW5jZSxPYmplY3R9IGV4Y2VwdGlvbnMpIHNlZW1zIHRvIGhhdmUgZml4ZWQgdGhhdCBwcm9ibGVtLgogICAKMjAwMi0xMi0wMiAwNDo0MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgRXhwbGljaXRseSBwYXJlbnRoZXNpc2UgYSBjb21wYXJpc29uLCB0byBrZWVwIHRoZSBjb21waWxlciBoYXBweS4KICAgCjIwMDItMTItMDIgMDQ6MzkgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEluY2x1c2l2ZS1yYW5nZSBHZXROZXh0IHJlcXVlc3RzIGFyZSB0cmFuc21pdHRlZCBhcyBHZXQgcmVxdWVzdHMsIHNvIG1heQogICB3ZWxsIHJldHVybiBub1N1Y2h7SW5zdGFuY2UsT2JqZWN0fSBleGNlcHRpb25zLiAgQ2F0Y2ggdGhlc2UgYXMgd2VsbC4KICAgCjIwMDItMTItMDIgMDQ6MzYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgQ2F0Y2ggKGFuZCByZWplY3QpIGF0dGVtcHRzIHRvIGNyZWF0ZSBhIG5ldyByb3cgdmlhIGEgbm9uLXdyaXRhYmxlIG9iamVjdC4KICAgCjIwMDItMTEtMjggMDQ6MjQgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIE51bGwgb3V0IG9uZSBmaW5hbCBsb29wX2NvbnRleHQgcG9pbnRlciBhZnRlciBiZWluZyBmcmVlZC4KICAgKFBhdGNoIHByb3ZpZGVkIGJ5IFJvZ2VyIE1jQ2FsbWFuKQogICAKMjAwMi0xMS0yNiAxNzo1OSAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIERpc2NhcmQgdGhlIHNlY29uZGFyeSAoR1JPVVApIERFU0NSSVBUSU9OIGluc2l6ZSBhIE1PRFVMRS1DT01QTElBTkNFCiAgIHRvIGF2b2lkIGxlYWtpbmcgbWVtb3J5LiBUaGFua3MgdG8gRXVnZW5lX0JydWtAYm1jLmNvbQogICAKMjAwMi0xMS0yNiAxNzo1MyAgbmJhCgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgUmVpbnN0YXRlIHRoZSAtdyBvcHRpb25zIHRoYXQgd2FzIGxvc3QgaW4gdGhlIGluZGVudCBmdXJ5CiAgIAoyMDAyLTExLTI2IDEwOjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIFRoZSBub3RpZmljYXRpb24gdmFyaWFibGUgc2hvdWxkbid0IGJlIHN0YXRpYy4gIEEgYnVnIGZvdW5kIHdoaWxlCiAgIHRyYWNraW5nIGRvd24gYSBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IFZlbmljZSBvbiBJUkMuCiAgIAoyMDAyLTExLTI2IDA0OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfZW51bS5jOgoKICAgRml4IGluY29ycmVjdCB1c2FnZSBvZiBTRV9NQVhfSURTIHZzIFNFX01BWF9TVUJJRFMuCiAgIFJlcG9ydGVkIGJ5ICdzaGluZXBlYWsnCiAgIAoyMDAyLTExLTI1IDIyOjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9GQVEySFRNTDoKCiAgIGhhY2sgb2YgYSBoYWNrIG9mIGEgaGFjaywgb3I6IGZpeCBtdWx0aS1saW5lIEZBUSBxdWVzdGlvbnMKICAgCjIwMDItMTEtMjUgMTA6MDggIGhhcmRha2VyCgogICAqIFJFQURNRS5hZ2VudHg6CgogICBtZW50aW9uIGFnZW50eFBpbmdJbnRlcnZhbAogICAKMjAwMi0xMS0xOCAyMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4Lmg6CgogICBhcHBsaWVkIHBhdGNoICM1Mjc2NTAKICAgCjIwMDItMTEtMTEgMTc6MTAgIG5iYQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUmVzcGVjdCB0aGUgbWliZGlycyBjb25mIGRpcmVjdGl2ZS4gVGhhbmtzIHRvIFN0ZWZhbiBSYWRtYW4gKHNyYWRtYW4pCiAgIAoyMDAyLTExLTExIDE2OjU3ICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggYSBtaXNzaW5nIGVycm9yIHJldHVybgogICAKMjAwMi0xMS0xMSAxNDoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYywgc25tcFVEUERvbWFpbi5jOgoKICAgZml4IHRhZGRyIGdlbmVyYXRpb24vcGFyc2luZyBmb3IgcG9ydCBiYXNlZCB0cmFuc3BvcnRzIHRvIHByb3Blcmx5IHVzZQogICBuZXR3b3JrIGJ5dGUgb3JkZXJpbmcuCiAgIAoyMDAyLTExLTExIDE0OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgZml4IHdyaXRlIHN1cHBvcnQgZm9yIHRoZSB0aW1lb3V0IGNvbHVtbgogICAKMjAwMi0xMS0wOSAxMDowNiAgbmJhCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmMsIGFnZW50L3NubXBfdmFycy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbWliX21vZHVsZXMuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmg6CgogICBEbyBhd2F5IHdpdGggYSBidW5jaCBvZiBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0xMS0wOSAwOTo1OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jLCB1Y2Qtc25tcC9leHRlbnNpYmxlLmMsCiAgIHVjZC1zbm1wL21lbW9yeS5jLCB1Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYywKICAgdWNkLXNubXAvcGFzcy5jLCB1Y2Qtc25tcC9wcm9jLmMsIGhvc3QvaHJfcHJpbnQuYwo6CgogICBaZXJvIGlzIGFuIE9LIGZpbGUgZGVzY3JpcHRvci4gLTEgaXMgdGhlIGVycm9yIHJldHVybgogICAKMjAwMi0xMS0wOSAwOTo1NCAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6CgogICBNb3JlIHRvIHRoZSBwb2ludCBtZXNzYWdlIGZvciB1bmRlZmluZWQgaWRlbnRpZmllcnMuIEJyb3VnaHQgZm9yd2FyZCBmcm9tIDQuMgogICAKMjAwMi0xMS0wOSAwOTo1MiAgbmJhCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIFByaW50IHRoZSBlcnJvciBpbmZvcm1hdGlvbiBpbiBjYXNlIG9mIGVycm9yCiAgIAoyMDAyLTExLTA5IDA5OjUxICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jOgoKICAgUHJvdGVjdCBhZ2FpbnN0IHYyIGV4Y2VwdGlvbiByZXN1bHRzCiAgIAoyMDAyLTExLTA5IDA5OjQ5ICBuYmEKCiAgICogc2Vkc2NyaXB0LmluLCBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIFByb3RlY3QgUFJFRklYIHdoZW4gaXQgaXMgdGhlIGVudiB2YXIuIFRoYW5rcyB0byBTdGVmYW4gUmFkbWFuIChzcmFkbWFuKQogICAKMjAwMi0xMS0wOSAwOTo0NyAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIEFkZCBSRkMgMzM3MSBMMlRQLU1JQgogICAKMjAwMi0xMS0wOSAwOTo0NiAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlZCBmcm9tIElBTkEKICAgCjIwMDItMTEtMDcgMDU6NTUgIGpicG4KCiAgICogYXBwcy9zbm1wdGFibGUuYzoKCiAgICAgLSBmaXggLUNmIGFuZCAtQ3cgb3B0aW9uIHByb2Nlc3NpbmcgKHByZXZpb3VzbHkgd291bGQgY29yZSBkdW1wIGlmCiAgICAgICBubyBvcHRpb24gcGFzc2VkKSwgYXMgcG9pbnRlZCBvdXQgYnkgaGFtcGEgb24gI25ldC1zbm1wCiAgIAoyMDAyLTExLTA2IDE1OjM1ICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgZml4IGN1dC9wYXN0ZQogICAKMjAwMi0xMS0wNiAxNTowNCAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIGNvbmZpZ3VyZSB0byBtYXRjaCBjb25maWd1cmUuaW4gJiBtYWtlZmlsZXMKICAgCjIwMDItMTEtMDYgMTQ6MDggIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgbWlzc2luZyBlbmQgcXVvdGUKICAgCjIwMDItMTEtMDYgMTM6MzUgIHJzdG9yeQoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgQERFVkZMQUdTQCB3ZWhlcnZlciB0aGVyZSBpcyBhIEBDRkxBR1NALCBleGNlcHQgZm9yIHRoZSBuZXcgLS1iYXNlLWNmbGFncwogICAKMjAwMi0xMS0wNiAxMzoyMiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIGFkZCBAREVWRkxBR1NAIHRvIENGTEFHUwogICAKMjAwMi0xMS0wNiAxMzoyMSAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIHNlcGVyYXRlIGRldmVsb3BlciBjZmxhZ3MgZnJvbSBub3JtYWwgY2ZsYWdzCiAgIAoyMDAyLTExLTA2IDEyOjU1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5oOgoKICAgY2hhbmdlIHN0cnVjdC5oIGluY2x1ZGUgdG8gdXNlICIiIGluc3RlYWQgb2YgPG5ldC1zbm1wLz4sIHNpbmNlIGl0IGl0IGEgbG9jYWwKICAgaW5jbHVkZSwgbm90IGEgc3lzdGVtIGluY2x1ZGUKICAgCjIwMDItMTEtMDYgMTI6MzkgIHJzdG9yeQoKICAgKiBhY2NvbmZpZy5oLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmgsIHdpbjMyL2NvbmZpZy5oLAogICB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIHB1cmdlIElOX1VDRF9TTk1QX1NPVVJDRQogICAKMjAwMi0xMS0wNSAxMjoyNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBhZGRlZCBhIHhtbHNob3J0IGRlbGltaXRlciBhcyByZXF1ZXN0ZWQgYnkgbGFuZHMgb24gSVJDCiAgIAoyMDAyLTExLTA1IDExOjU5ICByc3RvcnkKCiAgICogZGlzdC9jdnN1cDoKCiAgIHRhYnMgLT4gc3BhY2VzIG9ubHkgdHJ5IHRvIGNobW9kIFJPIHNyYyBkaXIgaWYgb3duZXIgb2YgZGlycwogICAKMjAwMi0xMS0wNSAxMTo1NiAgcnN0b3J5CgogICAqIG1raW5zdGFsbGRpcnM6CgogICBtYWtpbmcgYSBkaXJlY3RvcnkgaXMgbm90IGFuIGVycm9yLCBzbyBkb24ndCBzZW5kIG91dHB1dCB0byBzdGRlcnIKICAgCjIwMDItMTEtMDQgMTE6MTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIGFsbG93IHVucmVnaXN0ZXJlZCBzZWN1cml0eSBtb2RlbHMgPD0gMgogICAKMjAwMi0xMS0wNCAxMToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiB0byBiZSBiZXR0ZXIgc3VwcG9ydGVkIChyb3dzdGF0dXMgbm8gbG9uZ2VyIGhhcyB0bwogICBiZSBmaXJzdCBpbiB0aGUgbGlzdCwgLi4uKQogICAKMjAwMi0xMS0wNCAxMToxMyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIGNwcGZsYWdzIHRvIC0tY2ZsYWdzCiAgIAoyMDAyLTExLTA0IDExOjEzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkIHN0dWZmIGZvciA1LjAuNyAob3Igd2hhdGV2ZXIpIG1lbnRpb25pbmcgYSBmZXcgbmV3IGZlYXR1cmVzLgogICAKMjAwMi0xMS0wMSAxMjowNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4ZWQgYnVnICM2MzIwOTQgdXNpbmcgdGhlIHN1Z2dlc3RlZCBtZXRob2Q6IHdhdGNoIGZvciBOVUxMIHN0cmVycm9yKCkgcmV0dXJuCiAgIAoyMDAyLTExLTAxIDEwOjA5ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICB1bmRvIG15IGNoYW5nZXMgZnJvbSByIDUuMTcsIGF0dGVtcHRpbmcgdG8gcmVkdWNlIHJ1bnMgb2YgY29uZmlnLnN0YXR1cwogICBieSB1c2luZyBleHBsaWNpdCBwYXRocyB0byBzcmNkaXIsIGFuZCBsZXQgVlBBVEggZG8gaXQncyB0aGluZwogICAKMjAwMi0xMC0yOSAxNDozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICB0YXJnZXQgdG8gYnVpbGQgYmluYXJ5IGFycmF5IHRlc3QgYXBwOyB0d2VhayB0byBwYXJzZSB0ZXN0IHRhcmdldCAocmVkdWNlcyBtb3N0CiAgIGJ1dCBub3QgYWxsIGV4dGVybmFsIHJlZmVyZW5jZXMpCiAgIAoyMDAyLTEwLTI5IDE0OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBmaXggZm9yIGJpbmFyeSBzZWFyY2ggcHJvYmxlbSBub3RlZCBieSBSb215IENocmlzdGVuc2VuIG9uIGNvZGVyczsgcGFydGlhbAogICAoaWZkZWYnZCBvdXQpIGNvZGUgZm9yIGEgYmluYXJ5IGFycmF5IGl0ZXJhdG9yCiAgIAoyMDAyLTEwLTI5IDE0OjI1ICByc3RvcnkKCiAgICogc25tcGxpYi90ZXN0X2JpbmFyeV9hcnJheS5jOgoKICAgc2ltcGxlIHRlc3QgcHJvZ3JhbSBmb3IgYmluYXJ5IGFycmF5CiAgIAoyMDAyLTEwLTI5IDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEZpeCBkZWJ1Z2dpbmcgYXMgbm90ZWQgaW4gYnVnICM2MzAzNDgKICAgCjIwMDItMTAtMjggMTk6NDcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgY2hhbmdlZCAuMS42LjMgdG8gMS4zLjYgYXMgbm90ZWQgaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAKMjAwMi0xMC0yOCAxNTowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgY2hhbmdlZCBwYXNzd29yZAogICAKMjAwMi0xMC0yOCAxNDo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jb25mOgoKICAgbWlzYyB2YWNtIGZpeGVzCiAgIAoyMDAyLTEwLTI4IDA4OjQxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZW1vdmUgZXJyb25lb3VzIGZyZWUoKSBvZiByeGJ1ZgogICAKMjAwMi0xMC0yNSAxMjozNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZml4ZWQgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIC0+IE5FVFNOTVBfT1BfQ0FMTEJBQ0tfRElTQ09OTkVDVCBhcyBub3RlZCBieSBUcm9nTCBvbiBJUkMKICAgCjIwMDItMTAtMjUgMDc6MzQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHBlcmZvcm0gYSBORVRTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgdHlwZSBjYWxsYmFjayBpZiB3ZQogICAgICAgZGVjaWRlIHRvIHNodXRkb3duIGEgc3RyZWFtIHR5cGUgY29ubmVjdGlvbiBiZWNhdXNlIHdlIHJlY2VpdmVkCiAgICAgICBhbiBleGNlc3NpdmVseSBsYXJnZSBwYWNrZXQuCiAgIAoyMDAyLTEwLTI0IDEwOjQxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBBZGRlZCB0aGUgc3VwZXItYnVnLXBhdGNoIGdlbmVyYXRvciBTdGVmYW4gUmFkbWFuIHRvIHRoZSBUSEFOS1MgbGlzdAogICAKMjAwMi0xMC0yNCAxMDo0MCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLmluOgoKICAgYnVnICM2MTc1MDg6IGFkZGVkIHRoZSBtdGFfc2VuZG1haWwgbW9kdWxlIHRvIC0taGVscAogICAKMjAwMi0xMC0yNCAxMDozNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICB1cGRhdGUgaW5zdGFsbCBsaXN0IGZvciBtaWIyYyBjb25mIGZpbGVzIGFuZCByZW1vdmUgb2xkIG9uZQogICAKMjAwMi0xMC0yMyAyMDozNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBmaXggaW5jb3JyZWN0IHZhcmlhYmxlIG5hbWUgSSBub3RpY2VkIHdoZW4gY29weWluZyB0byBhIGRpZmZlcmVudCBjb25maWd1cmUgc2NyaXB0IGluIGFub3RoZXIgcGFja2FnZQogICAKMjAwMi0xMC0yMyAyMDoyOCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBGaXhlZCBidWcjNjE3ODM4OiB2ZXJzaW9udGFnIGlzbid0IGRpc3RyaWJ1dGVkIGFuZCBzaG91bGRuJ3QgYmUgYWx3YXlzCiAgIHVzZWQgaW4gdGhlIG1ha2UgZGlzdGNsZWFuIGNhbGxzLgogICAKMjAwMi0xMC0yMyAyMDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgaW5jb25zZXF1ZW5jaWFsIG1lbW9yeSBsZWFrcyBmaXhlZCAoaW5pdCB0aW1lIGxlYWtzKS4KICAgCjIwMDItMTAtMjMgMjA6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIEZpeGVkIHZhcmlvdXMgbWVtb3J5IGxlYWtzIGluIHRoZSB0YWJsZV9pdGVyYXRvciBhcyBwb2ludGVkIG91dCBieQogICBSb2dlciBNY0NhbG1hbiBhbmQgSmF5IFBhcmxhciBvbiB0aGUgLWNvZGVycyBsaXN0IChpbmNsdWRpbmcgdGhlaXIgcGF0Y2hlcykKICAgCjIwMDItMTAtMjMgMTg6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHNubXBOb3RpZnlUYWJsZS5jCiAgIAoyMDAyLTEwLTIzIDE4OjQwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmcmVlIGEgcHJldmlvdXNseSBtYWxsb2NlZCBwb2ludGVyIHRvIHRoZSB3YXRjaCB2YXJpYWJsZSBiZWZvcmUgcmVwbGFjaW5nIGl0LgogICAKMjAwMi0xMC0yMyAxODo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jOgoKICAgcmVtb3ZlIGR1cGxpY2F0ZSB1bnVzZWQgbWFsbG9jLgogICAKMjAwMi0xMC0yMSAxMjo0MyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi45Lmg6CgogICAgIC0gYWRkIHN5c3RlbSBmaWxlIGZvciBTb2xhcmlzIDkKICAgCjIwMDItMTAtMTcgMjI6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMsIGFnZW50L3NubXBfYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsIHNubXBsaWIvdmFjbS5jOgoKICAgT3B0aW1pemVkIHRoZSBWQUNNIGNoZWNrcyBpbiB0aGUgY2FzZSBvZiBnZXRuZXh0L2dldGJ1bGsgc28gdGhhdCB3aGVuCiAgIGxhcmdlIHBvcnRpb25zIG9mIHRoZSBtaWIgdHJlZSBhcmUgZXhjbHVkZWQsIHRoZSBzdWItbWliIGFjY2VzcyBjb2RlCiAgIHdvbid0IGJlIGNhbGxlZCBhdCBhbGwgKGZpbmFsbHkgaW1wbGVtZW50aW5nIGEgdmVyeSBsb25nIG5lZWRlZCBvcHRpbWl6YXRpb24pLgogICAKMjAwMi0xMC0xNyAyMjo0MSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBuZXcgZnVuY3Rpb24gdG8gZmluZCB0aGUgY29tbW9uYWxpdHkgYmV0d2VlbiB0d28gb2lkczogbmV0c25tcF9vaWRfZmluZF9wcmVmaXgKICAgCjIwMDItMTAtMTcgMjI6MzkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluLCBhY2xvY2FsLm00LCBjb25maWd1cmUsCiAgIGNvbmZpZ3VyZS5pbjoKCiAgIFByaW50IG91dCBhICJzdW1tYXJ5IiBhdCB0aGUgZW5kIG9mIGEgcnVuCiAgIAoyMDAyLTEwLTE3IDA1OjQwICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBQcm9wZXJseSB0ZXJtaW5hdGUgYSBsb29wIGNvbnN0cnVjdCAobWlzc2luZyAnQGVuZEAnKQogICBTcG90dGVkIGJ5IEthcmwgQ29vcGVyLiAgICBPb3BzIQogICAKMjAwMi0xMC0xNiAxNzoxOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZXN0b3JlIGNvbnRpbnVlIGFmdGVyIEVJTlRSIGNhdXNlZCBieSBzaWduYWwgd2UgaGFuZGxlZCAoaW5zdGVhZCBvZiBmYWxsaW5nCiAgIHRob3JvdWdoIHRvIGV4aXQhKQogICAKMjAwMi0xMC0xNiAxNzowMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICBjaGVjayBmb3Igb3VyIHNpZ25hbCBmbGFncyBvbiBFSU5UUiwgYW5kIG9ubHkgcmVsZXNlY3QgaWYgbm90IGNoYW5nZWQ7CiAgIGRlYnVnIG1zZyB3aGVuIHNpZ25hbHMgcmVnaXN0ZXJlZCBhbmQgZm9yIHNlbGVjdC9mZHNldHM7CiAgIAoyMDAyLTEwLTE2IDE1OjUyICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgbW92ZSBDUFBGTEFHUyBiZWZvcmUgdXNlciBjb25maWd1cmUgQ0ZMQUdTLi4gc28gaWYgYSB1c2VyIGFkZHMgc29tZXRoaW5nCiAgIGxpa2UgL3Vzci9sb2NhbC9pbmNsdWRlIHRvIENGTEFHUywgd2Ugd2lsbCBwaWNrIHVwIG91ciBsb2NhbCBpbmNsdWRlcyBmaXJzdCwKICAgaW5zdGVhZCBvZiBpbmNsdWRlcyBmcm9tIGEgcHJldmlvdXMgcmVsZWFzZS4uCiAgIAoyMDAyLTEwLTE2IDAwOjA2ICByc3RvcnkKCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZF9sb2cuaAo6CgogICBtYWtlIHN1cmUgc25tcHRyYXBkIGFsd2F5cyBob25vcnMgRFNfQVBQX05VTUVSSUNfSVAgZm9yIGxvZ2dpbmcKICAgCjIwMDItMTAtMTUgMTc6MDkgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgbmV0c25tcF9nZXRfYm9vbGVhbiAtPiBuZXRzbm1wX2RzX2dldF9ib29sZWFuCiAgIAoyMDAyLTEwLTE1IDE0OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgZml4IGNvbnN0YW50IHVzZWQgaW4gYXNzZXJ0LCBub3RlZCBvbiBjb2RlcnMKICAgCjIwMDItMTAtMTUgMTQ6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBpbmNsdWRlIHN5c2xvZyBmb3IgbGlid3JhcCBsb2cgbGV2ZWxzCiAgIAoyMDAyLTEwLTE1IDEwOjM5ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgIEFkZCB5ZXQgYW5vdGhlciB3YXkgdG8gc3BlY2lmeSB2NiBhZGRyZXNzZXMKICAgCjIwMDItMTAtMTQgMTE6NTQgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgZml4IGlwdjYgdHJhbnNwb3J0IGFkZHJlc3Mgc3BlY3MKICAgCjIwMDItMTAtMTEgMTk6MTggIGhhcmRha2VyCgogICAqIFJFQURNRS5jbXUsIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIFJlbW92ZSB0aGUgUkVBRE1FLmNtdSBmaWxlIChlbnRpcmVseSBvdXQgb2YgZGF0ZSBhdCB0aGlzIHBvaW50KS4KICAgCjIwMDItMTAtMTEgMTY6NTcgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBwYXRjaCAjNjAwOTMzIGZyb20gRG9uYWwgRGlhbW9uZDogZHNrUGVyY2VudE5vZGUgZm9yIEZyZWVCU0Q0CiAgIAoyMDAyLTEwLTExIDE2OjQ5ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgUGF0Y2ggIzU5ODI4MCBmcm9tIEplZmYgV2F0c29uOiBtYWtlIC1PUSBub3QgcHJpbnQgdHlwZSB3YXJuaW5ncy4KICAgCjIwMDItMTAtMTEgMTY6NDMgIGhhcmRha2VyCgogICAqIGRpc3QvTWFrZWZpbGU6CgogICBmaXggaW5jbHVkZSBkaXJlY3RvcnkKICAgCjIwMDItMTAtMTEgMTY6NDIgIGhhcmRha2VyCgogICAqIGRpc3QvLmN2c2lnbm9yZToKCiAgIGlnbm9yZSBycG0gc3ViZGlyCiAgIAoyMDAyLTEwLTExIDE2OjMyICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYmV0dGVyIGRvY3MgYWJvdXQgYXV0by1leHRyYWN0ZWQgU0YgbmV3cwogICAKMjAwMi0xMC0xMSAxNjowNCAgaGFyZGFrZXIKCiAgICogZGlzdC86IE1ha2VmaWxlLCBuZXQtc25tcC5zcGVjOgoKICAgbWVyZ2UgaW4gcGF0Y2ggIzU5ODg2OTogTWFyayBIYXJpZydzIGJldHRlciBycG0gc3R1ZmYKICAgCjIwMDItMTAtMTEgMTU6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIHNubXBsaWIvbWliLmMKOgoKICAgQWx0ZXJuYXRpdmUgdG8gYSBwYXRjaCBzdWdnZXN0aW9uOiBhZGQgLU9VIHRvIG5vdCBwcmludCBVTklUUyBzdWZmaXhlcy4KICAgCjIwMDItMTAtMTEgMTU6MTggIGhhcmRha2VyCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgLi4vYWdlbnQvc25tcF9hZ2VudC5jCiAgIAoyMDAyLTEwLTExIDE1OjE0ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcC5jb25mLjUuZGVmOgoKICAgZG9jdW1lbnQgZG9udFByaW50VW5pdHMKICAgCjIwMDItMTAtMTEgMTQ6NDggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoICM2MTcxNTEgZnJvbSBBbmRyZXcgUnVja2VyIEpvbmVzOiBmaXggbGlid3JhcCBoZWFkZXJzLgogICAgIC0gSSdtIHN0aWxsIHVuaGFwcHkgd2l0aCBob3cgbGlid3JhcCBmdW5jdGlvbnMuLi4gIG5lZWRzIHRoaW5raW5nIGFib3V0LgogICAKMjAwMi0xMC0xMSAxMzo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBQYXRjaCAjMzEyNjk0IGZyb20gSm9obiBTdXJ2ZXlvcjogZml4IGRpc2tpbyBvbiBzb2xhcmlzLgogICAKMjAwMi0xMC0xMSAxMzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzYyMTM5OCBmcm9tIE1hdHRoZXcgS3JlbnplciB0byBmaXggbGludXggYXJwIHRhYmxlLgogICAKMjAwMi0xMC0xMSAwOTo0NyAgcnN0b3J5CgogICAqIHdpbjMyL3NubXBkc2RrL3NubXBkLmRzcDoKCiAgIGNoZyBuZXRzbm1wbWlicyAtPiBuZXRzbm1wbWlic3NrZCAobm90ZWQgb24gY29kZXJzIGJ5IEplZCBXaGl0dGVuKQogICAKMjAwMi0xMC0xMSAwOTo0NSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xLmRlZjoKCiAgICAgLSBub3RlIHNxdWFyZSBicmFja2V0cyBmb3IgSVB2NiBhZGRyZXNzZXMKICAgCjIwMDItMTAtMTEgMDk6NDAgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSByZXN0YXJ0IHNlbGVjdCgpIG1vcmUgcXVpY2tseSBpZiBhbiBFSU5UUiBoYXBwZW5zCiAgIAoyMDAyLTEwLTExIDAxOjUxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhcHBsaWVkIEhhcnJpZSdzIHBhdGNoIGRlc2NyaWJpbmcgbG93IG1lbW9yeSBmb290cHJpbnRzCiAgIAoyMDAyLTEwLTEwIDExOjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIFBhdGNoIGZyb20gS2VuIEhvcnN0ZWluIHRvIGZpeCBLU00gbW9kdWxlCiAgIAoyMDAyLTEwLTEwIDA2OjIyICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgICAgLSByZW1vdmUgYmFkIGlubGluZXMgd2hpY2ggY2F1c2UgZmlsZSBub3QgdG8gY29tcGlsZSB3aXRoIFN1biBDQy4KICAgICAgIFNlZSBidWcgIzYyMDgyNy4KICAgCjIwMDItMTAtMTAgMDI6MDMgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIGFkZCAubGEgZmlsZXMKICAgCjIwMDItMTAtMTAgMDI6MDAgIGhhcmRha2VyCgogICAqIGRpc3QvbmV0LXNubXAuc3BlYzoKCiAgIG1ha2UgdGhlIC5zcGVjIGZpbGUgYWxtb3N0IHVzYWJsZS4KICAgCjIwMDItMTAtMDggMTg6NTUgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIEZBUSB1cGRhdGVzIGZvciBkb3dubG9hZCBzaXRlcy4KICAgCjIwMDItMTAtMDggMTA6MzYgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIFBhdGNoIGZyb20gSm9zaHVhIEtlcm9lcyBmb3Igc3RyaW5nIGNvbXBhcmlzb25zCiAgIAoyMDAyLTEwLTA3IDEzOjU3ICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBhZGRlZCBhIHN0YXRlbWVudCBhYm91dCB0aGUgQ09QWUlORyBmaWxlIChzdWdnZXN0ZWQgYnkgSGFycmllKQogICAKMjAwMi0xMC0wNiAxNDozMiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBuc2ItKiBsaWtlcyBmdWxsIHBhdGhzLCB1cGRhdGUgZXhhbXBsZXM7IGZpeCBzb3VyY2Vmb3JnZSB1cGxvYWQgc2l0ZQogICAKMjAwMi0xMC0wNSAxNzo0MiAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMKLCBGQVEsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC42ICkKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWNS4wLjUgLT4gVjUuMC42CgoyMDAyLTEwLTA1IDE0OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5kZXBlbmQsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuZGVwZW5kLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQsIGFwcHMvTWFrZWZpbGUuZGVwZW5kLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCwgc25tcGxpYi9NYWtlZmlsZS5kZXBlbmQKOgoKICAgbWFrZSBkZXBlbmQKICAgCjIwMDItMTAtMDUgMTQ6MDkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnRvcDoKCiAgIHVwZGF0ZSBmb3IgNS4wLjYKICAgCjIwMDItMTAtMDUgMTQ6MDggIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICByZW1vdmUgaWxsZWdhbCBmbGFnIGZyb20gbnNiLWNvbmZpZwogICAKMjAwMi0xMC0wNSAxMzo0MSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGVmZW5jZSBpcyB5b3VyIGZyaWVuZDogZG9uJ3QgYWxsb2NhdGUgMCBieXRlcwogICAKMjAwMi0xMC0wNSAxMjo1OCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgZWZlbmNlIGlzIHlvdXIgZnJpZW5kOiBkb24ndCByZWZlcmVuY2UgcHRyIGFmdGVyIGlzIGhhcyBiZWVuIGZyZWUnZC4KICAgCjIwMDItMTAtMDQgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBzZWNvbmRhcnkgZWZmZWN0IG9mIGJ1ZyA2MTM5ODMgYW5kIHJlYWxseSBmaXggaXQgdGhpcyB0aW1lLgogICAKMjAwMi0xMC0wMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdHVubmVsLzogdHVubmVsLmMgKFY0LTItcGF0Y2hlcy4yKSwgdHVubmVsLmMKOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIGZpeCBzb21lIGNvZGluZyBlcnJvcnMKICAgCjIwMDItMTAtMDEgMDc6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIG9mZmljYWwgcGF0Y2ggNjE3MDQ5OiBpbml0aWFsaXplIGNvbnRhaW5lciBsaXN0IGVhcmxpZXIgKGluIGluaXRfYWdlbnQpCiAgIAoyMDAyLTEwLTAxIDA3OjM1ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICByZW1vdmUgXk0gY2hhcmFjdGVycyAoZGFtbiB3aW5kb3dzIGVkaXRvcnMpCiAgIAoyMDAyLTA5LTMwIDE1OjE3ICByc3RvcnkKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC41ICkKICAgCjIwMDItMDktMzAgMTU6MTYgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIGluZm8gb24gbWQ1c3VtcyBhbmQgZ3BnIHNpZ25pbmcKICAgCjIwMDItMDktMzAgMTU6MTUgIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgZml4IGNobW9kIHRvIGRvIHdoYXQgSSB3YW50ZWQsIG5vdCB3aGF0IEkgdG9sZCBpdAogICAKMjAwMi0wOS0zMCAxNToxNCAgcnN0b3J5CgogICAqIENoYW5nZUxvZywgTWFrZWZpbGUudG9wLCBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNQogICAKMjAwMi0wOS0zMCAxNDoyNyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIG1lcmdlIHByZSBjaGFuZ2VzIGludG8gNS4wLjQgY29tbWVudHMKICAgCjIwMDItMDktMzAgMTQ6MjUgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0zMCAxNDoyMyAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIE5FV1MgdXBkYXRlcyBmb3IgNS4wLjQKICAgCjIwMDItMDktMzAgMTQ6MDMgIHJzdG9yeQoKICAgKiBSRUFETUU6CgogICB1cGRhdGUgbXkgZW1haWwgYWRkcmVzcwogICAKMjAwMi0wOS0zMCAxNDowMyAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBmb3IgcmVsZWFzZSA1LjAuNAoKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuMyAtPiBWNS4wLjUKCjIwMDItMDktMzAgMTY6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBtYWtlIGxlbiBhIHNpemVfdCB0byBmaXggcHJvYmxlbSBvbiA2NCBiaXQgc3lzdGVtLCByZXBvcnRlZCBieSBzZWJub2RgIGluIElSQwogICAKMjAwMi0wOS0zMCAxNjowNSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgIGRvbid0IHVzZSBzdGF0aWMgbG9jYWwgdmFycywgYXMgdGhleSBhcmUgbGlrZWx5IHRvIGNhdXNlIHByb2JsZW1zIHdpdGggdGhyZWFkcwogICAKMjAwMi0wOS0zMCAxNTo0OCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2U6CgogICBtYWtlIHN1cmUgaW5zdGFsbCBkaXIgaXMgcmVsYXRpdmUgdG8gYnVpbGQgZGlyCiAgIAoyMDAyLTA5LTMwIDE1OjIwICByc3RvcnkKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBhZGQgbWlzc2luZyBuZXdsaW5lIGluIGRlYnVnCiAgIAoyMDAyLTA5LTMwIDE1OjE5ICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1mdW5jdGlvbnMsIG5zYi1wYWNrYWdlOgoKICAgZml4IHR5cG9zCiAgIAoyMDAyLTA5LTMwIDE1OjE4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgYXZvaWQgaW5maW5pdGUgbG9vcAogICAKMjAwMi0wOS0zMCAxNDo1OSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IGFzc3VtZSBtYWtlIGlzIEdOVSBtYWtlLCBhbmQgc2VhcmNoIGZvciBpdC4gcmVxdWlyZSB1c2VyIHRvIHNldCBhbgogICBlbnYgdmFyIGlmIG5vIEdOVSBtYWtlIGlzIGZvdW5kIGluIFBBVEgKICAgCjIwMDItMDktMzAgMTQ6NTggIHJzdG9yeQoKICAgKiBkaXN0L2N2c3VwOgoKICAgaWYgQ1ZTIGRpciBpcyBybywgYXV0b21hZ2ljYWxseSBtYWtlIGl0IHJ3IGJlZm9yZSB1cGRhdGUgYW5kIHJvIGFmdGVyIHVwZGF0ZQogICAKMjAwMi0wOS0yNyAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgbWFrZSBnZXRfc2V0X2NhY2hlKCkgcmV0dXJuIGFuIGVycm9yIGlmIG5vIHByZXZpb3VzIFNFVCBoYXMgYmVlbiBzdGFydGVkLgogICAKMjAwMi0wOS0yNyAxNDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIGRvdWJsZSBjaGVjayBhZ2FpbnN0IHNvbWUgbnVsbCBwb2ludGVycyBiZWZvcmUgdXNpbmcgdGhlbSBpbiB0aGUgY2FjaGUgY29kZS4KICAgCjIwMDItMDktMjcgMTM6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHNldCB0cmVlY2FjaGVfbnVtIHRvIC0xIGF0IGluaXQgb2YgbWVtb3J5LCB0byBiZSBleHRyYSBzYWZlLgogICAKMjAwMi0wOS0yNiAxNDo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMsIHNubXBkLmM6CgogICBtb3ZlIGxpYndyYXAgdmFyaWFibGVzCiAgIAoyMDAyLTA5LTI2IDE0OjU3ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgb2ssIHJlbW92ZSB0Y3B3cmFwcGVycyB2YXJzCiAgIAoyMDAyLTA5LTI2IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L2FnZW50LnhzOgoKICAgZGVmaW5lIHN0dXBpZCB2YXJpYWJsZXMgbmVlZGVkIGJ5IHRjcHdyYXBwZXJzIGJlY2F1c2UgdGhleSBkb24ndCBnZXQKICAgY29uY2VwdHMgb2YgZW5jYXBzdWxhdGlvbi4gIGFyZy4KICAgCjIwMDItMDktMjYgMTE6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBjaGFuZ2UgY2FsbF9wdiB0byBwZXJsX2NhbGxfcHYgZm9yIG9sZGVyIHZlcnNpb25zIG9mIHBlcmwuCiAgIAoyMDAyLTA5LTI2IDExOjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgcnVuIHN0cmR1cCgpIG9uIGdldF9taWJfZGlyKCkgcmVzdWx0cyB0byBmaXggYnVnIHBvaW50ZWQgb3V0IGJ5IEV1Z2VuZSBCcnVrLgogICAKMjAwMi0wOS0yMyAxMzoxNCAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIG1lbnRpb24gZnJlc2htZWF0CiAgIAoyMDAyLTA5LTIzIDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5oLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQKOgoKICAgLSBpbXBsZW1lbnQgYSAobG9uZyBuZWVkZWQpIHNldHRhYmxlIHZhcmlhYmxlIHRvIHN0b3JlIHRoZSBjdXJyZW50CiAgICAgcGVyc2lzdGVudCBpbmZvcm1hdGlvbi4KICAgCjIwMDItMDktMjMgMTI6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIC0gbWFrZSBub3QgaW4gdGltZSB3aW5kb3cgcmVwb3J0cyB0cmlnZ2VyIGEgcmVzZW5kIG9mIGluZm9ybXMuCiAgICAgKHN1Z2dlc3Rpb24gZnJvbSBFcmlrIEFuZ2dhcmQpCiAgIAoyMDAyLTA5LTIwIDExOjI4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oOgoKICAgICAtIHJlbW92ZSBmdW5jdGlvbnMgdmFjbV9wYXJzZV9zZWN1cml0eSBhbmQgdmFjbV9mcmVlX3NlY3VyaXR5IHdoaWNoCiAgICAgICBkb24ndCBleGlzdAogICAKMjAwMi0wOS0xOSAxNzowMSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIC0gc3VwcG9ydCBhZ2VudCBzaHV0ZG93bnMgKHdlbGwsIG9rIGl0J3MganVzdCBhbiBhcGkgc2luY2UgaXQgZG9lc24ndCB3b3JrKS4KICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDktMTkgMTY6MzggIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBhZ2VudC54cywgbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG06CgogICBmaXggYWdlbnQgcmVxdWVzdF9pbmZvUHRyIHByb2JsZW1zLgogICAKMjAwMi0wOS0xOSAxMjowNCAgZHRzMTIKCiAgICogd2luMzIvc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcDoKCiAgIENvbXBpbGUgYW5kIGxpbmsgd2l0aCAnZ2V0b3B0LmMnIGV4cGxpY2l0bHkuCiAgIAogICBUaGlzIHNob3VsZCBub3QgYmUgbmVjZXNzYXJ5LCBidXQgZm9yIHNvbWUgcmVhc29uCiAgICh0aGF0IGNvbXBsZXRlbHkgZXNjYXBlcyBtZSEpLCB1c2luZyBjb21tYW5kLWxpbmUgb3B0aW9ucwogICAoc3VjaCBhcyAtSVIpIHdpdGggdGhlIFJlbGVhc2UgdmVyc2lvbiBvZiBzbm1wdHJhbnNsYXRlCiAgIGNhdXNlcyBhIHJ1bi10aW1lIERMTCBlcnJvci4gIChUaGUgRGVidWcgdmVyc2lvbiBpcyBmaW5lKS4KICAgVGhlIG90aGVyIGFwcGxpY2F0aW9ucyBzZWVtIHRvIGJlIE9LIC0gdGhpcyBwcm9ibGVtIG9ubHkKICAgc2VlbXMgdG8gaGl0IHNubXB0cmFuc2xhdGUuICBTbyBhcyBhIHN0aWNraW5nLXBsYXN0ZXIsCiAgIGNvbXBpbGlpbmcgZ2V0b3B0LmMgaW4gYXMgcGFydCBvZiB0aGUgcHJvamVjdCwga2VlcHMgYm90aAogICB2ZXJzaW9ucyBvZiB0aGUgYXBwbGljYXRpb24gaGFwcHkuCiAgICAgU29tZW9uZSB3aXRoIGJldHRlciBXaW5kb3dzIGtub3dsZWRnZSB0aGFuIG1lIG5lZWRzIHRvCiAgIGxvb2sgYXQgdGhpcyBhbmQgZml4IGl0IHByb3Blcmx5LgogICAKMjAwMi0wOS0xOSAwNjoxNCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgICAgLSB1bmRvIHdvcnN0IG9mIGluZGVudCBkYW1hZ2UKICAgCjIwMDItMDktMTkgMDY6MDMgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIF9kcGFyc2UgZnVuY3Rpb25zICh3aGljaCBkb24ndCBleGlzdCkKICAgCjIwMDItMDktMTggMTA6NTUgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIHJlc2V0IFNOTVBfU0xFRVAgYWZ0ZXIgbG9vcAogICAKMjAwMi0wOS0xOCAxMDo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gcmVtb3ZlIHZlcnkgb2Jzb2xldGUgKGFuZCBub3QgdXNlZCBhbnl3aGVyZSkgI2RlZmluaXRpb25zIG9mCiAgICAgICBQQVJUWV9NSUJfQkFTRSBhbmQgQ09OVEVYVF9NSUJfQkFTRQogICAKMjAwMi0wOS0xOCAwMjo1OSAgcnN0b3J5CgogICAqIENoYW5nZUxvZzoKCiAgIHR3ZWFrIGZvciA1LjAuNCBsYXN0IG1pbnV0ZSB1cGRhdGUKICAgCjIwMDItMDktMTggMDI6NDggIHJzdG9yeQoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICBjaGcgPiB0byAtZ3QgdG8gYWNoaWV2ZSBpbnRlbmRlZCByZXN1bHQKICAgCjIwMDItMDktMTggMDE6MzkgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0xOCAwMTozMyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNCApCiAgIAoyMDAyLTA5LTE4IDAxOjMyICByc3RvcnkKCiAgICogQ2hhbmdlTG9nOgoKICAgdXBkYXRlIGZvciA1LjAuNAogICAKMjAwMi0wOS0xOCAwMDo1OSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgYWRkICQoc3JjZGlyKSB0byBhIGZldyBkZXBlbmRlbmNpZXMgdG8gdHJ5IGFuZCByZWR1Y2UgdGhlICMgb2YgdGltZXMgdGhhdAogICBjb25maWcuc3RhdHVzIGlzIHJ1biB3aGVuIGJ1aWxkaW5nIG91dHNpZGUgdGhlIHNyYyBkaXIKICAgCjIwMDItMDktMTggMDA6NTQgIHJzdG9yeQoKICAgKiBSRUFETUUud2luMzI6CgogICB2aXN1YWxseSBwcm92b2NhdGl2ZSBzZWN0aW9uIGhlYWRlcnM7IGFkZCByZWNlbnQgc3RhdHVzIChhbGwgYmFkIG5ld3MpOwogICBub3QgdG8gdXNlIG5ldyB3aW4zMnNkay5kc3cgdG8gZ2V0IGFkZGl0b25hbCBmdW5jdGlvbmFsaXR5IHdpdGggcGxhdGZvcm0gc2RrOwogICByZW1vdmUgaW5mbyBvbiByZW1vdmluZyBhZ2VudHgsIGFzIGl0J3MgYmVlbiBhcm91bmQgbm93IGZvciBhIHdoaWxlOyBhZGQKICAgc2VjdGlvbiBvbiB3aGF0IGZpbGVzIHRvIGVkaXQgdG8gYWRkIG1pYjJjIGdlbmVyYXRlZCBjb2RlIHRvIGFnZW50OyByZW1vdmUKICAgcmVmZXJlbmNlIHRvIHNwZWNpZmljIHJlbGVhc2UgbnVtYmVyIGluIGV4YW1wbGUKICAgCjIwMDItMDktMTggMDA6MjUgIHJzdG9yeQoKICAgKiB3aW4zMi9zbm1wZHNkay9zbm1wZC5kc3A6CgogICB0YWtlICdzZGsnIG91dCBvZiBleGUgbmFtZQogICAKMjAwMi0wOS0xOCAwMDoyNSAgcnN0b3J5CgogICAqIHdpbjMyL3dpbjMyc2RrLmRzdzoKCiAgIHN3YXAgc25tcGRzZGsgZm9yIHNubXBkCiAgIAoyMDAyLTA5LTE4IDAwOjE0ICByc3RvcnkKCiAgICogd2luMzIvOiBlbmNvZGVfa2V5Y2hhbmdlL2VuY29kZV9rZXljaGFuZ2UuZHNwLAogICBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCwgc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AKLCBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLAogICBzbm1wZGYvc25tcGRmLmRzcCwgc25tcGdldC9zbm1wZ2V0LmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKLCBzbm1wc2V0L3NubXBzZXQuZHNwLCBzbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwLAogICBzbm1wdGFibGUvc25tcHRhYmxlLmRzcCwgc25tcHRlc3Qvc25tcHRlc3QuZHNwLAogICBzbm1wdHJhbnNsYXRlL3NubXB0cmFuc2xhdGUuZHNwLCBzbm1wdHJhcC9zbm1wdHJhcC5kc3AsCiAgIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwLCBzbm1wdXNtL3NubXB1c20uZHNwLAogICBzbm1wdmFjbS9zbm1wdmFjbS5kc3AsIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIGdldCBhbGwgb3VyIGR1Y2tzIGluIGEgcm93OiBhZGQgYWR2YXBpMzIubGliIHRvIGxpbmsgbGluZXMsIG1ha2Ugc3VyZSBhbGwKICAgUmVsZWFzZSBhbmQgRGVidWcgbGlicy9hcHBzIGFyZSBjb21waWxlIHdpdGggc2FtZSBDKysgc2V0dGluZ3MKICAgCjIwMDItMDktMTggMDA6MTIgIHJzdG9yeQoKICAgKiB3aW4zMi9uZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICByZW1vdmUgc2RrIGRlcGVuZGVudCBtb2R1bGVzCiAgIAoyMDAyLTA5LTE4IDAwOjEwICByc3RvcnkKCiAgICogd2luMzIvbWliX21vZHVsZV9pbml0cy5oOgoKICAgZ3JvdXAgbW9kdWxlcyB0aGF0IGRlcGVuZCBvbiB3aW4zMiBzZGsgdG9nZXRoZXIsIHdpdGggaWZkZWYKICAgCjIwMDItMDktMTggMDA6MDggIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIG5vIGNhbGxiYWNrIGZvciB3aW4zMiB1bnRpbCBwaXBlIGZkIHByb2JsZW0gaXMgZml4ZWQKICAgCjIwMDItMDktMTggMDA6MDcgIHJzdG9yeQoKICAgKiB3aW4zMi86IG5ldHNubXBtaWJzc2RrL25ldHNubXBtaWJzc2RrLmRzcCwKICAgc25tcGRzZGsvc25tcGQuZHNwOgoKICAgbmV3IHZlcnNpb25zIGZvciBzZGsgdXNlcnMKICAgCjIwMDItMDktMTggMDA6MDUgIHJzdG9yeQoKICAgKiB3aW4zMi93aW4zMnNkay5kc3c6CgogICBuZXcgd29ya3NwYWNlIGZvciBzZGsgdXNlcnMKICAgCjIwMDItMDktMTYgMTY6MjcgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgbWliIG1vZHVsZSBsb2FkaW5nIGZpeGVzIGJ5IGNhbGxpbmcgaW5pdF9zbm1wIGZpcnN0CiAgIAoyMDAyLTA5LTEzIDE1OjA1ICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUzoKCiAgIHR3ZWFrIGV4YW1wbGUgbnNiLWNvbmZpZyBjb21tYW5kOyBhZGQgLWIgYmFjayB0byBjdnMyY2wsIG90aGVyd2lzZSB5b3UKICAgZ2V0IGNoYW5nZWxvZyBtc2dzIGZyb20gb3RoZXIgYnJhbmNoZXMgYW5kIGhhdmUgdG8gd2VlZCB0aGVtIG91dAogICAKMjAwMi0wOS0xMyAxMjozMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvOiBPSUQucG0sIE9JRC54cywgdGVzdC5wbDoKCiAgIGZpeCBpbGxlZ2FsIG9pZHMgdG8gbm90IHJldHVybiBhIHBvaW50ZXIuCiAgIAoyMDAyLTA5LTEzIDEwOjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIG1pbm9yIG9wdGltaXNhdGlvbjsgd2UgZG9uJ3QgbmVlZCBhIHplcm8tdGVybWluYXRlZCBjb21tdW5pdHkKICAgICAgIHN0cmluZyBleGNlcHQgZm9yIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAyLTA5LTEzIDEwOjM1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZGVkIC1pIG9wdGlvbiB0byByZXF1ZXN0IGluZGVudCBub3QgYmUgcnVuCiAgIAoyMDAyLTA5LTEzIDEwOjA2ICBqYnBuCgogICAqIENPUFlJTkc6CgogICAgIC0gYWRkIG1pc3NpbmcgdmVyYiBpbiBpbnRyb2R1Y3Rpb24KICAgCjIwMDItMDktMTIgMTU6NTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgcHJvdGVjdCBjYWxsaW5nIHNvbWUgU3ZJViBkZXJlZmVyZW5jZSBmdW5jdGlvbnMgaWYgaXQncyBub3QgYW4gSVYuCiAgICAgLSBlbGltaW5hdGVzIHRoZSByZW1haW5pbmcgcGVybCB3YXJuaW5ncy4KICAgCjIwMDItMDktMTIgMTQ6NDUgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGluY2x1ZGUgbGRmbGFncyB3aGVyZSBhcHByb3ByaWF0ZSAoLS1saWJzLCAtLWFnZW50LWxpYnMsIC4uLikKICAgCjIwMDItMDktMTIgMDE6NDggIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLW5pZ2h0bHksIG5zYi1wYWNrYWdlOgoKICAgYWRkL3VzZSBuZXcgb3B0aW9uIHRvIHJlbW92ZSBidWlsZCBkaXIgYWZ0ZXIgc3VjY2Vzc2Z1bCBidWlsZAogICAKMjAwMi0wOS0xMiAwMTo0NyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHByaW50IGJ1aWxkIGRpcgogICAKMjAwMi0wOS0xMiAwMToxOSAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFN2M2NvbmZpZywgVDAzMHNubXB2M3VzZXJjcmVhdGlvbjoKCiAgIG11Y2ggbW9yZSBjb21wbGV4IHRlc3RzIG9mIFVTTSB1c2VyIGNyZWF0aW9uL21vZGlmaWNhdGlvbi4KICAgCjIwMDItMDktMTIgMDE6MDcgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoLCB0ZXN0cy9UMDAxc25tcHYxZ2V0LAogICB0ZXN0cy9UMDAyc25tcHYxZ2V0bmV4dCwgdGVzdHMvVDAwM3NubXB2MWdldGZhaWwsCiAgIHRlc3RzL1QwMDRzbm1wdjFub3N1Y2g6CgogICAtIHN1cHBvcnQgZm9yIG11bHRpcGxlIHRlc3RzIGF0IG9uY2UuCiAgIC0gbWVyZ2UgdjEgdGVzdHMgaW50byBhIHNpbmdsZSAoZmFzdGVyKSB0ZXN0LgogICAKMjAwMi0wOS0xMiAwMDozNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IG1vbmtleSBhcm91bmQgd2l0aCByZXR1cm5pbmcgZXJyb3IgY29kZXMsIGp1c3QgZXhpdDsgbW9yZSByZWdleHAgdHdlYWtzCiAgIAoyMDAyLTA5LTExIDE5OjM2ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICAtIHVzZSBzdWItc2Vjb25kIHNsZWVwcyBpZiBhdmFpbGFibGUKICAgLSBzbGVlcCAxIChzdWItKXNlY29uZCBhdCBhIHRpbWUgd2hlbiB3YWl0aW5nIGZvciBwYXJ0aWN1bGFyIHRlc3RzCiAgICAgcmF0aGVyIHRoYW4gdGhlIGZ1bGwgU05NUF9TTEVFUCBkdXJhdGlvbi4KICAgCjIwMDItMDktMTEgMTk6MjQgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICB1c2Ugc25tcF9sb2cgaW5zdGVhZCBvZiBwcmludGYgZm9yIHNodXRkb3duIG1lc3NhZ2UuCiAgIAoyMDAyLTA5LTExIDE4OjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtaXNzaW5nIHZhcmlhYmxlIGRlY2wgcG9pbnRlZCBvdXQgYnkgaXJjOmRmCiAgIAoyMDAyLTA5LTEwIDE2OjE2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgdHdlYWsgZXJyb3IgcmVnZXhwcyAmIGVycm9yIG1lc3NhZ2VzCiAgIAoyMDAyLTA5LTEwIDE1OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgY29tcGlsZXIgd2FybmluZ3MgYXJlIHlvdXIgZnJpZW5kITsgZml4IGVtYmVkZWQgY29tbWVudHM7IGZpeCBub24tdm9pZAogICBmdW5jdGlvbnMgdy9ubyBydG4gdmFsdWVzOyBjb2RlIHJlb3JnIHRvIGZpeCBlbWFjcyBpbmRlbnQgY29tcGxhaW50cwogICAKMjAwMi0wOS0xMCAxNToyNiAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluOgoKICAgbmV3IHN0YXJ0LWZsYWcgZW5kLWZsYWcgdGFyZ2V0cyB0byBoZWxwIG5pZ2h0bHkgYnVpbGQgc2NyaXB0IGRldGVybWluZQogICBpZiBhIG1ha2UgY29tcGxldGVkIHN1Y2Nlc3NmdWxseQogICAKMjAwMi0wOS0xMCAxNToxMiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHR3ZWFrcyBmb3IgbmV3IHNjcmlwdCBmb3IgYXV0b21hdGVkIG5pZ2h0bHkgYnVpbGRzOyBhZCBuc2ItYWJvcnQsIG5zYi1mbG93OwogICBkaXJlY3Qgc29tZSBtZXNzYWdlcyB0byBzdGRlcnI7IHVzZSBuZXcgc3RhcnQtZmxhZyBlbmQtZmxhZyBtYWtlIHRhcmdldHM7CiAgIHVwZGF0ZSBlcnJvciBncmVwIHRvIGluY2x1ZGUgJyoqKic7IGNoZWNrIGZvciBuZXcgdmFsdWUgdG8gcm0gLWZSIGJ1aWxkIGRpcgogICAKMjAwMi0wOS0xMCAxNTowOCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLW5pZ2h0bHk6CgogICBuZXcgc2NyaXB0IGZvciBhdXRvbWF0ZWQgbmlnaHRseSBidWlsZHMKICAgCjIwMDItMDktMTAgMTU6MDggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wYWNrYWdlOgoKICAgYWRkIG9wdGlvbiB0byBybSAtZlIgYnVpbGQgZGlyIGF0IHN0YXJ0OyBjaGVjayBzY3JpcCBwYXRoIGZvciBuc2ItZnVuY3Rpb25zOwogICBwcmVmaXggZGVmYXVsdCBidWlsZCBkaXIgdy92ZXJzaW9uOyBleGl0IHcvcmMgZnJvbSBuc2ItYnVpbGQKICAgCjIwMDItMDktMTAgMTU6MDUgIHJzdG9yeQoKICAgKiBkaXN0LzogbnNiLWNvbmZpZywgbnNiLXBsYXRmb3JtOgoKICAgYWRkIGN1cnJlbnQgcGF0aCB0byBzY3JpcHQgdG8gbnNiLWZ1bmN0aW9uIHNlYXJjaCBwYXRoCiAgIAoyMDAyLTA5LTA5IDA5OjI4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmaXggYnVnIHBvaW50ZWQgb3V0IGJ5IEphcmVkIFNtaXRoLU1pY2tlbHNvbiAoYnVnICM2MDUxNDcpCiAgICAgICB3aGVyZWJ5IHBhc3NpbmcgYW4gdW5rbm93biB0eXBlIGNoYXJhY3RlciB0byBzbm1wX2FkZF92YXIgd291bGQKICAgICAgIGNhdXNlIGEgc2VnZmF1bHQuCiAgIAoyMDAyLTA5LTA5IDA5OjA5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIGRvdWJsZSBjaGVjayBhIHBvaW50ZXIgdmFsdWUgYmVmb3JlIHVzaW5nIGl0LgogICAKMjAwMi0wOS0wOSAwOTowOSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDdXJyZW50IGhlYWRlciB1cGRhdGUgcGF0Y2ggZm9yIG5ldGJzZCBmcm9tIFBhdHJpY2sgV2VsY2hlLgogICAKMjAwMi0wOS0wNiAxODozMCAgZHJpZWh1aXMKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgTWFyayB0aGUgbm9uLXJhdyB2YXJpYW50cyBvZiBvYmplY3RzIHRoYXQgYXJlIGFjY2Vzc2FibGUgYXMgcmF3IGNvdW50ZXJzCiAgIGFzIGRlcHJlY2F0ZWQsIHRvIChob3BlZnVsbHkhKSBjdXQgZG93biBvbiB0aGUgbnVtYmVyIG9mIHVzZXJzIHRoYXQgZ2V0CiAgIGJpdHRlbiBieSBpdC4uCiAgIAoyMDAyLTA5LTA0IDE0OjM2ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIGFkZGVkIEJydWNlJ3MgZW1haWwgYWRkcmVzcwogICAKMjAwMi0wOS0wNCAxNDoyNyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IHBlcmxjbGVhbgogICAKMjAwMi0wOS0wNCAxNDoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEZpeCBwcm9jZXNzIGdyb3VwaW5nIGJ5IGNhbGxpbmcgc2V0c2lkKCkgKHJlcG9ydGVkIGJ5IGlyYzpUcm9nTCkKICAgCjIwMDItMDktMDQgMTQ6MDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY2hlY2sgZm9yIHNldHNpZCgpLgogICAKMjAwMi0wOS0wMyAxMzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggY2FzZXMgd2hlcmUgdGhlcmUgZWl0aGVyIGFyZSBubyB0YWJsZXMgb3Igbm8gc2NhbGFycy4KICAgCjIwMDItMDktMDMgMTM6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZG9uJ3QgdXNlIE5VTEwgdmFyaWFibGVzLgogICAKMjAwMi0wOS0wMiAyMjozMyAgcnN0b3J5CgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHBlcmwvU05NUC9TTk1QLnBtCiwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNC5wcmUyICkKICAgCjIwMDItMDktMDIgMjI6MzMgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMgogICAKMjAwMi0wOS0wMiAyMjoyMiAgcnN0b3J5CgogICAqIG1hbi9uZXRzbm1wX2hhbmRsZXIuMzoKCiAgIHVwZGF0ZWQgZG9jcwogICAKMjAwMi0wOS0wMiAyMjoxOSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOS0wMiAyMjoxNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWNvbmZpZzoKCiAgIHRyeSBhbmQgZ3Vlc3MgYXQgc3JjIGRpciBpZiBub3Qgc3BlY2lmaWVkCiAgIAoyMDAyLTA5LTAyIDIyOjE1ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGFkZCBub3RlIGFib3V0IGVyciB3aGVuIGJ1aWxkaW5nIGluIGFuZCBvdXQgb2Ygc291cmNlIHRyZWUKICAgCjIwMDItMDktMDIgMjE6NTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGZ1bGwgcGF0aCB0byB2ZXJzaW9udGFnLCBpbiBjYXNlIHdlIGFyZSBidWlsZGludCBvdXRzaWRlIG9mIHNyYyBkaXJlY3RvcnkKICAgCjIwMDItMDktMDIgMjE6MzcgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICByZW1vdmUgZm9yY2VkIHByb21wdCBvbiBlcnJvcnMKICAgCjIwMDItMDktMDIgMjE6MzYgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCB3YXJuaW5ncyB3aGVuIFZFUlNJT04gaXMgcmVxdWlyZWQ7IGFkZCB0YXJjbGVhbiB0YXJnZXQ7IGFkZCB0YXJjbGVhbiB0bwogICBkaXN0Y2xlYW4gdGFyZ2V0CiAgIAoyMDAyLTA5LTAyIDIxOjM0ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGFkZCBtc2cgb24gZXJyb3I7IGFkZCBjbGVhbiB0YXJnZXQKICAgCjIwMDItMDktMDIgMjA6MjcgIHJzdG9yeQoKICAgKiBORVdTOgoKICAgdXBkYXRlIHdpbjMyICYgQWdlbnRYIHN0YXR1cwogICAKMjAwMi0wOS0wMiAyMDoyMCAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jCiwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50Lmg6CgogICBmaXggdG8gYXZvaWQgbG9ja2luZyB1cCB0aGUgYWdlbnQgd2hlbiBhIHN1Z2FnZW50IGRpZXMgZHVyaW5nIGEgc2V0IHJlcXVlc3QuIFdlCiAgIG11c3QgY2xlYW4gdXAgdGhlIGRlbGVnYXRlZCByZXF1ZXN0cyB3aGVuIHRoZSBzZXNzaW9uKHMpIGFyZSBjbG9zZWQsIHNvIHRoYXQKICAgdGhleSB3aWxsIGJlIHByb2Nlc3NlZCBhbmQgcmVtb3ZlZCwgYWxsb3dpbmcgZnVydGhlciByZXF1ZXN0cyB0byBiZSBwcm9jZXNzZWQuCiAgIAoyMDAyLTA5LTAxIDEzOjQzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICBjaGFuZ2UgcmVzdWx0IHR5cGUgYmFjayB0byBpbnQsIGFzIGl0IG1heSByZWNlaXZlIGEgbmVnYXRpdmUgdmFsdWUKICAgCiAgIFBMRUFTRSBjaGVjayB0aGUgdXNlIG9mIGEgdmFyaWFibGUgYmVmb3JlIGNoYW5naW5nIGlzIHNpZ25lZG5lc3MsIGVzcGVjaWFsbHkKICAgYXJlb3VuZCByZWxlYXNlIHRpbWUhCiAgIAoyMDAyLTA4LTMwIDE1OjE4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC91dGlsaXRpZXMuaDoKCiAgIGluY2x1ZGUgY2hlY2tfdmFyYmluZC5oCiAgIAoyMDAyLTA4LTMwIDE1OjE4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgY2hhbmdlIE5PU1VDSE5BTUUgdG8gTk9TVUNISU5TVEFOQ0UgYWdhaW4sIGFzIGl0IHNlZW1zIHRoZSBhZ2VudFggZml4IGFsc28KICAgY29ycmVjdGx5IGRlYWxzIHdpdGggdGhpcyBlcnJvciBjb2RlCiAgIAoyMDAyLTA4LTMwIDA5OjE0ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIC0gZGVsZXRlIHN1bnNpdGUuY25sYWItc3dpdGNoLmNoIG1pcnJvciwgYXMgaXQgaXNuJ3Qgb25lIGFueW1vcmUuCiAgIAoyMDAyLTA4LTI5IDEzOjMyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgY2hlY2sgZm9yIG1vZHVsZXMgYmVmb3JlIGNvbmZpZ3VyaW5nIHRoZW0KICAgCjIwMDItMDgtMjkgMTA6NTIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgIEZpeCB0aGUgbGFzdCBBRVMgYnVnIEkga25vdyBvZi4gIEFFUzEyOCB3b3JrcyBncmVhdC4KICAgICBJIHN0aWxsIE5lZWQgdG8gZml4IDE5Mi8yNTYgZm9yIGxvbmdlciBrZXkgZ2VuZXJhdGlvbiBmcm9tIE1ENS9TSEEKICAgCjIwMDItMDgtMjkgMTA6NTIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQucG06CgogICB1c2UgdGhlIHJpZ2h0IHBlcmwgbW9kdWxlIG5hbWUgaW4gdGhlIHVzZSBsaW5lLgogICAKMjAwMi0wOC0yOSAwNjo0NyAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMKLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmgsCiAgIHdpbjMyL2NvbmZpZy5oOgoKICAgTW9yZSBXaW4zMi1yZWxhdGVkIHRpZHlpbmcgdXAuCiAgIFRoZSBhZ2VudCBub3cgY29tcGlsZXMgd2l0aCByZWxhdGl2ZWx5IGZldyB3YXJuaW5ncy4KICAgCjIwMDItMDgtMjkgMDQ6NTAgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYywKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L210X3N1cHBvcnQuaCwKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmMsIHNubXBsaWIvc25tcHVzbS5jLAogICB3aW4zMi9jb25maWcuaCwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBEZWNsYXJlIG5ldyByb3V0aW5lICduZXRzbm1wX29pZF9lcXVhbHMnLCBhbmQgYXNzb3J0ZWQgV2luMzIgY2xlYW51cCBmaXhlcy4KICAgCjIwMDItMDgtMjggMTQ6MTUgIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgY2xhcmlmeSBjdnMyY2wgc2NyaXB0IG5hbWU7IHJlbW92ZSAtYiBmbGFnIGZyb20gY3ZzMmNsIHBlciBEYXZlOyBhIGxpdHRsZQogICByZW9yZ2FuaXphdGlvbjsgcHV0IGNvbW1hbmRzIG9uIHNlcGFyYXRlIGxpbmVzIHByZWZpeGVkIHdpdGggJDsgbm90ZSA1LngvNC54CiAgIGRpZmZlcmVuY2VzIHBlciBEYXZlJ3MgZW1haWw7IHBsdWcgbXkgbmV3IHNjcmlwdHMgd2hlcmUgYXBwcm9wcmlhdGUKICAgCjIwMDItMDgtMjcgMTQ6NDggIHJzdG9yeQoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgYWRkIFVSTCBmb3IgY3ZzMmNsOyB1cGRhdGUgY3ZzMmNsIGNtZHMgdG8gY3ZzMmNsLnBsLCBzaW5jZSB0aGF0J3MgdGhlIGZpbGUKICAgdGhhdCdzIGFjdHVhbGx5IGRpc3RyaWJ1dGVkCiAgIAoyMDAyLTA4LTI3IDAwOjU5ICByc3RvcnkKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGZvciByZWxlYXNlIDUuMC40LnByZTEKICAgCjIwMDItMDgtMjcgMDA6MjUgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfdmVyc2lvbi5jLCBGQVEsIFJFQURNRSwKICAgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAuNC5wcmUxICkKICAgCjIwMDItMDgtMjcgMDA6MjQgIHJzdG9yeQoKICAgKiBDaGFuZ2VMb2c6CgogICB1cGRhdGUgZm9yIHJlbGVhc2UgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNyAwMDoxOSAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCAoNS42KSwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQgKDUuNSksCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCAoNS42KSwgYXBwcy9NYWtlZmlsZS5kZXBlbmQgKDUuNSksCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kICg1LjUpLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAogICAoNS41KToKCiAgIG1ha2UgZGVwZW5kCiAgIAoyMDAyLTA4LTI3IDAwOjE3ICByc3RvcnkKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zICg1LjMpLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zICg1LjMpLAogICBuZXRzbm1wX2RlYnVnLjMgKDUuMyksIG5ldHNubXBfaGFuZGxlci4zICg1LjMpLCBuZXRzbm1wX2luc3RhbmNlLjMKICAgKDUuMyksIG5ldHNubXBfbXVsdGlwbGV4ZXIuMyAoNS4zKSwgbmV0c25tcF9vbGRfYXBpLjMgKDUuMyksCiAgIG5ldHNubXBfcmVhZF9vbmx5LjMgKDUuMyksIG5ldHNubXBfc2NhbGFyLjMgKDUuMiksCiAgIG5ldHNubXBfc2VyaWFsaXplLjMgKDUuMyksIG5ldHNubXBfdGFibGUuMyAoNS4zKSwKICAgbmV0c25tcF90YWJsZV9hcnJheS4zICg1LjMpLCBuZXRzbm1wX3RhYmxlX2RhdGEuMyAoNS4zKSwKICAgbmV0c25tcF90YWJsZV9kYXRhc2V0LjMgKDUuMyksIG5ldHNubXBfdGFibGVfaXRlcmF0b3IuMyAoNS4zKSwKICAgbmV0c25tcF90b2RvLjMgKDUuMyksIG5ldHNubXBfd2F0Y2hlci4zICg1LjIpOgoKICAgdXBkYXRlIG1hbiBwYWdlcyBmb3IgNS4wLjQucHJlMQogICAKMjAwMi0wOC0yNyAwMDoxMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWNvbmZpZyAoMS4xKToKCiAgIG5ldyBmaWxlIHRvIGNvbmZpZ3VyZSB1c2luZyBzYW1lIG9wdGlvbnMgYXMgbnNiLXBhY2thZ2UgZm9yIHRlc3Qgb3IgZGlzdAogICAKMjAwMi0wOC0yNyAwMDowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLXBhY2thZ2UgKDEuMyk6CgogICBkb24ndCBhcHBlbmQgc3lzLW5hbWUgd2hlbiBidWlsZGluZyBpbiBzcmMgdHJlZQogICAKMjAwMi0wOC0yNyAwMDowOSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xOSk6CgogICBmaXggdHlwbwogICAKMjAwMi0wOC0yNyAwMDowNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xOCk6CgogICByZW5hbWUgbnNiLWdldC1jb25mZyAtPiBuc2ItY29uZmlnLWRpc3Q7IHVzZSBkb3VibGUgcXVvdGVzIGN1eiBvZiBzb21lCiAgIHdpZXJkIHNoZWxsIHRoaW5nIEkgZG9uJ3QgeWV0IHVuZGVyc3RhbmQ7IGNoZWNrIGZvciBzcmMgZGlyIGluIGNvbmZpZyoKICAgCjIwMDItMDgtMjYgMjM6MzQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbiAoNS4xMik6CgogICB0d2VhayBjb21tZW50Y2hlY2sgdGFyZ2V0IHRvIHdvcmsgb3V0c2lkZSB0aGUgc291cmNlIHRyZWUKICAgCjIwMDItMDgtMjYgMjM6MzMgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgKDUuMyksCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgKDUuMSksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmggKDUuMiksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfc3Rhc2guaCAoNS4xKSwgc25tcGxpYi93aW5zZXJ2aWNlLmMKICAgKDUuMSk6CgogICByZW1vdmUgQysrIHN0eWxlIGNvbW1lbnRzIChhbmQgYW55dGhpbmcgdGhhdCBldmVuIHJlbW90ZWx5IHJlc2VtYmxlcyBvbmUpCiAgIAoyMDAyLTA4LTI2IDE3OjQ3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zICgxLjE3KToKCiAgIHBhc3MgbWFrZSBwYXJhbXMgdG8gbWFrZSwgc28gd2UgZG9uJ3QgdHJ5IHRvIGluc3RhbGwgaW4gL3Vzci9sb2NhbC9iaW4gb2YKICAgdGhlIGNvbXBpbGUgc2VydmVycy4uLiA6LS8KICAgCjIwMDItMDgtMjYgMTc6MzkgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTYpOgoKICAgbWFrZSBkaXN0ICYgZXh0cmEgdHJhbnNwb3J0czsgbm8gaXB2NiBvbiBEYXJ3aW47IG1ha2UgdG91Y2hpdCBiZWZvcmUgbWFrZQogICAKMjAwMi0wOC0yNiAxNzowNCAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYyAoNS40KToKCiAgIHJlcGxhY2UgdV9pbnQzMl90LCB3aGljaCBkb2Vzbid0IGNvbXBpbGUgb24gU3VuIDUuOCwgd2l0aCB1X2ludAogICAKMjAwMi0wOC0yNiAxNjo1MyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vcm93cy5jICg1LjIpOgoKICAgZml4IHVuZGVjbGFyZWQgdmFyaWFibGUgZXJyb3Igc3BvdHRlZCBvbiBTdW4sIHdoaWNoIGxpbnV4IG1pc3NlZCBjb21wbGV0ZWx5LgogICBJIGhhdmUgbm8gaWRlYSBob3cgdGhpcyBjb21waWxlZCBiZWZvcmUhIQogICAKMjAwMi0wOC0yNiAxNjo0MyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xNSk6CgogICBjbGVhbmVyIHdheSB0byBhZGQgc3lzdGVtIHNwZWNpZmljIG1vZHVsZXM7IGRpc2FibGUgcGVybCwgYXMgaXQgYnJlYWtzCiAgIGJ1aWxkcyBvdXRzaWRlIG9mIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMi0wOC0yNiAxNTo0NSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xNCk6CgogICBvbmx5IGNvbmZpZ3VyZSBJUFggb24gTGludXgKICAgCjIwMDItMDgtMjYgMTU6NDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnMgKDEuMTMpOgoKICAgb25seSBjb25maWd1cmUgSVBYIG9uIExpbnV4OyBiYWlsIG9uIGNvbmZpZ3VyZSBlcnJvcnMKICAgCjIwMDItMDgtMjYgMTU6MDQgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzICgxLjQpOgoKICAgYWRkIHN1Z2dlc3Rpb24gdG8gc3ltbGluayBuc2ItKiBpbiBsb2NhbCBiaW4gZGlyCiAgIAoyMDAyLTA4LTI2IDE1OjAzICByc3RvcnkKCiAgICogZGlzdC86IG5zYi1wYWNrYWdlICgxLjIpLCBuc2ItZnVuY3Rpb25zICgxLjEyKToKCiAgIGFkZCBvcHRpb24gZm9yIHByZS1yZWxlYXNlIHRlc3QgY29uZmlndXJlIG9wdGlvbnMKICAgCjIwMDItMDgtMjYgMTU6MDIgIHJzdG9yeQoKICAgKiBSRUFETUUuc25tcHYzICg1LjMpOgoKICAgbWFrZSBzZWN0aW9uIGhlYWRlcnMgc3RhbmQgb3V0IG1vcmU7IG1vdmUgbm90ZSBhYm91dCBlbmNyeXB0aW9uIG5vdCBiZWluZwogICBlbmFibGVkIHRvIGEgbW9yZSBwcm9taW5lbnQgcGxhY2UuCiAgIAoyMDAyLTA4LTI0IDIxOjI0ICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jCiAgIChWNC0yLXBhdGNoZXMuWzM3LDNdKToKCiAgIE1lcmdlIGZyb20gSEVBRDogZGV0ZWN0IHRoZSByZXF1aXJlbWVudCBmb3IgbGlua2luZyB3aXRoIC1sZGV2c3RhdC4KICAgVWdseSBoYWNrIHRvIG1ha2Ugc3VyZSBkaXNraW8gZGV2aWNlIG5hbWVzIGluY2x1ZGUgdGhlIGRldmljZSBudW1iZXIuCiAgIAoyMDAyLTA4LTIzIDExOjQ2ICBkdHMxMgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluIChWNC0yLXBhdGNoZXMuMyk6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0yMiAwODozMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmggKDUuMik6CgogICAgIC0gRE9OVF9VU0VfTkxJU1QgcmVpbnN0YXRlZCwgc28gTk9fS01FTV9VU0FHRSByZWR1bmRhbnQKICAgCjIwMDItMDgtMjIgMDg6MjkgIGpicG4KCiAgICogYWNjb25maWcuaCAoNS45KSwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAoNS4xMCk6CgogICAgIC0gcmVpbnN0YXRlIHRlc3QgZm9yIERPTlRfVVNFX05MSVNUCiAgIAoyMDAyLTA4LTIyIDA3OjExICBqYnBuCgogICAqIGFnZW50L3NubXBkLmMgKDUuMTApOgoKICAgICAtIHN0b3AgYW5kIHJlc3RhcnQgbG9nZ2luZyB3aGVuIEhVUHBlZC4gIFRoaXMgYWxsb3dzIGxvZ2ZpbGVzIHRvIGJlCiAgICAgICByb3RhdGVkIGFuZCBzbyBmb3J0aC4KICAgCjIwMDItMDgtMjIgMDc6MDYgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYyAoVjQtMi1wYXRjaGVzLjI0KToKCiAgICAgLSBzdG9wIGFuZCByZXN0YXJ0IGxvZ2dpbmcgd2hlbiBIVVBwZWQuICBUaGlzIGFsbG93cyBsb2dmaWxlcyB0byBiZQogICAgICAgcm90YXRlZCBhbmQgc28gZm9ydGguCiAgIAoyMDAyLTA4LTIyIDA0OjMxICBkdHMxMgoKICAgKiBSRUFETUUuc25tcHYzICg1LjIpOgoKICAgQWRkIHRoZSBtaXNzaW5nICcteC9YJyBvcHRpb25zIHRvIHRoZSBleGFtcGxlIGF1dGhQcml2IGNvbW1hbmQgbGluZQogICAgIChyZXBvcnRlZCBieSBQcmFzYWRhIFIgVmFua2F5YWxhcGF0aSkKICAgCjIwMDItMDgtMjAgMTE6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICg1LjYpLCBhcHBzL3NubXB0cmFwZC5jICg1LjQpLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmggKDUuMyksIEZBUSAoNS4xNyk6CgogICBxdWlldCBzbm1wdHJhcGQgd2hlbiBpdCBjYW4ndCBjb25uZWN0IHRvIHRoZSBhZ2VudHggbWFzdGVyLgogICAKMjAwMi0wOC0yMCAwODo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9zb2xhcmlzMi43LmggKDUuMSk6CgogICAgIC0gYWRkICNkZWZpbmUgTk9fS01FTV9VU0FHRSAxIHNpbmNlIG5ldC1zbm1wLWNvbmZpZy5oLmluIG5vIGxvbmdlcgogICAgICAgcGF5cyBhdHRlbnRpb24gdG8gdGhlIERPTlRfVVNFX05MSVNUIHRva2VuLiAgT21pc3Npb24gb2YgdGhpcwogICAgICAgY2F1c2VzIHRoZSBhZ2VudCB0byBleGl0IHdpdGggdGhlIG1lc3NhZ2UgImluaXRfa21lbToga3ZtX29wZW4KICAgICAgIGZhaWxlZDogZXJyb3IgMCIuCiAgIAogICAgICAgTk9URTogdGhpcyBtYXkgbmVlZCBhcHBseWluZyB0byBvdGhlciBtZW1iZXJzIG9mIHRoZSBTb2xhcmlzIDIKICAgICAgIGZhbWlseSwgYnV0IEkgZG9uJ3QgaGF2ZSBtYWNoaW5lcyB0byBoYW5kIHRvIHRlc3QgdGhpcy4KICAgCjIwMDItMDgtMjAgMDg6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICg1LjIpOgoKICAgICAtIGRldGVjdCBnaWdhYml0IGV0aGVybmV0IGRldmljZXMgKGdlTikKICAgICAtIHVuZG8gaW5kZW50IG1heWhlbQogICAKMjAwMi0wOC0yMCAwNTo1NyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oICg1LjEpOgoKICAgICAtIGZvciBub3csIGRvbid0ICNpbmNsdWRlIHNubXBfbG9ja2luZy5oIHNpbmNlIGl0IGJyZWFrcyByZS1lbnRyYW50CiAgICAgICBzdXBwb3J0IChiZWNhdXNlIG11dGV4X3R5cGUgZ2V0cyBtdWx0aXBseS1kZWZpbmVkKS4gIEZ1cnRoZXJtb3JlLCB0aGUKICAgICAgIGZ1bmN0aW9ucyBpdCBkZWNsYXJlcyBhcmUgbmV2ZXIgdXNlZCBhbnl3aGVyZSwgbm9yIGRlZmluZWQgYW55d2hlcmUuCiAgIAoyMDAyLTA4LTIwIDA1OjU2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9tdF9zdXBwb3J0LmggKDUuMSk6CgogICAgIC0gZG9uJ3QgZGVmaW5lICJkbyBub3RoaW5nIiBtYWNyb3MgZm9yIHNubXBfcmVzX2xvY2sgZXQgYWwuIGZ1bmN0aW9ucwogICAgICAgb24gV2luMzIgcGxhdGZvcm0gKHNpbmNlIHJlYWwgImRvIG5vdGhpbmciIGZ1bmN0aW9ucyBhcmUgcmVxdWlyZWQgZm9yCiAgICAgICByZWFzb25zIGJlc3Qga25vd24gdG8gc29tZW9uZSBlbHNlKS4KICAgICAtIHVubWFuZ2xpbmcKICAgCjIwMDItMDgtMjAgMDU6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9ja2luZy5oICg1LjEpOgoKICAgICAtIGZpeCBoaWdobHkgYm9ndXMgbm9uLUMgc3ludGF4CiAgIAoyMDAyLTA4LTIwIDA1OjUzICBqYnBuCgogICAqIHNubXBsaWIvbXRfc3VwcG9ydC5jICg1LjEpOgoKICAgICAtIHNubXBfcmVzX2xvY2sgZXQgYWwuIGZ1bmN0aW9ucyBubyBsb25nZXIgI2RlZmluZWQgdG8gImRvIG5vdGhpbmciCiAgICAgICB0YXJnZXRzIGZvciBXaW4zMiBpbiBtdF9zdXBwb3J0LmgsIHRoZXJlZm9yZSBubyBuZWVkIHRvICN1bmRlZiB0aGVtCiAgICAgICBoZXJlLgogICAgIC0gdW5tYW5nbGluZwogICAKMjAwMi0wOC0yMCAwMToxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICg1LjIpOgoKICAgaGVhZGVycyBmb3IgY2FjaGUgZW5hYmxpbmcgZnVuY3Rpb25zLgogICAKMjAwMi0wOC0yMCAwMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICg1LjMpOgoKICAgZG9uJ3QgdXNlIG5vbi1leGlzdGVudCBtZW1vcnkgcG9pbnRlcnMgdG8gdGhlIHJlc3BvbnNlIGRhdGEgKGVnOiAidGltZW91dCIpCiAgIAoyMDAyLTA4LTE5IDE3OjQ2ICBuYmEKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oICg1LjEpOgoKICAgQ2hhbmdlIGEgZmV3IGNvbmRpdGlvbmFscyB0byB1c2UgI2lmIGluIHBsYWNlIG9mICNpZmRlZgogICAKMjAwMi0wOC0xOSAxNzoyOCAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYyAoNS4xNyksIHBhcnNlLmMgKDUuNCk6CgogICBBbGlnbiB3aXRoIDQuMiBicmFuY2gKICAgCjIwMDItMDgtMTkgMTc6MjYgIG5iYQoKICAgKiBtaWJzLzogRElTTUFOLVNDSEVEVUxFLU1JQi50eHQgKDUuMSksCiAgIElBTkEtQUREUkVTUy1GQU1JTFktTlVNQkVSUy1NSUIudHh0ICg1LjEpLCBJQU5BaWZUeXBlLU1JQi50eHQKICAgKDUuMSksIElORVQtQUREUkVTUy1NSUIudHh0ICg1LjEpLCBNYWtlZmlsZS5taWIgKDUuMiksIGlhbmFsaXN0CiAgICg1LjEpLCBtaWJmZXRjaCAoNS4xKSwgcmZjbGlzdCAoNS4xKToKCiAgIFVwZGF0ZSB0byBjdXJyZW50IE1JQnMKICAgCjIwMDItMDgtMTkgMTc6MjUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAoNS43KToKCiAgIEJhaWwgb3V0IGZvciBiYWQgc25tcEFkbWluU3RyaW5nIHZhbHVlCiAgIAoyMDAyLTA4LTE5IDEwOjQzICBqYnBuCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUzKSwgRkFRICg1LjE2KToKCiAgICAgLSBkb24ndCB1c2UgcG9zaXRpb25hbCBjb21tdW5pdHkgcGFyYW1ldGVyIGluIGV4YW1wbGVzCiAgICAgLSBicmVhayBhIGNvdXBsZSBvZiBvdmVyLWxvbmcgbGluZXMKICAgICAtIG1lbnRpb24gbmV0c25tcF8gdmFyaWFudCBvZiBkc19zZXRfIGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTE5IDA1OjQ0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41MiksIEZBUSAoNS4xNSk6CgogICBBZGQgYW4gZW50cnkgYWJvdXQgdGhlIHNubXB0cmFwZC9BZ2VudFggd2FybmluZyBtZXNzYWdlLgogICAKMjAwMi0wOC0xOCAyMToyNCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9ucyAoMS4xMSk6CgogICBkb24ndCBjb25maWd1cmUgd2l0aCBidWlsZCBpbnN0YWxsIGRpciwgaXQgaXMgYWxyZWFkeSBzcGVjaWZpZWQgb24gY21kIGxpbmUKICAgZm9yIG1ha2UgaW5zdGFsbAogICAKMjAwMi0wOC0xOCAxMzo1OSAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYyAoNS43KToKCiAgIG1vcmUgZGVidWdnaW5nIC0gbG9nIHZhbHVlIHJlcXVlc3QgaXMgdHJ5aW5nIHRvIHNldAogICAKMjAwMi0wOC0xNiAxODoxMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FICg1LjkpOgoKICAgYWRkZWQgQnJ1Y2UgU2hhdyB0byB0aGUgdGhhbmtzIGxpc3QKICAgCjIwMDItMDgtMTYgMTg6MTIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zb2xhcmlzICgxLjIpOgoKICAgQSBncmVhdCB1cGRhdGUgdGFsa2luZyBhYm91dCBwZXJsIGFuZCBzb2xhcmlzIGZyb20gQnJ1Y2UgU2hhdwogICAKMjAwMi0wOC0xNiAwNDo1MSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICg1LjQpOgoKICAgQ2F0Y2ggZXhwbGljaXRseSAnbm9TdWNoSW5zdGFuY2UnIGV4Y2VwdGlvbnMsIHdoZW4gd2Fsa2luZyBhbgogICBpdGVyYXRvci1oYW5kbGVkIG1vZHVsZSwgc28gdGhhdCBob2xlcyBjYW4gYmUgc2tpcHBlZCBhbmQgdGhlCiAgIG5leHQgcmVhbCBpbnN0YW5jZSByZXRyaWV2ZWQuICAoVGhpcyB3YXMgYWxyZWFkeSBoYW5kbGVkIGZvcgogICBtb2R1bGVzIHRoYXQgZGlkbid0IG1hcmsgbWlzc2luZyBpbnN0YW5jZXMgZXhwbGljaXRseSkuCiAgIAoyMDAyLTA4LTE2IDAzOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgKDUuMTMpOgoKICAgdHVybiBvZmYgY2FjaGluZyBieSBkZWZhdWx0LCBzaW5jZSB0aGUgYWdlbnR4IGNvZGUgYXBwZWFycyBicm9rZW4uCiAgIAoyMDAyLTA4LTE2IDAzOjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKDUuNSksIHNubXBfYWdlbnQuYyAoNS4xMik6CgogICBzcGVlZCBlbmhhbmNlbWVudHMgdmlhIGltcGxlbWVudGluZyBhIHJlZ2lzdHJhdGlvbiBzdWJ0cmVlIGxvb2t1cAogICBjYWNoZS4gIGdyZWF0bHkgc3BlZWRzIHRoaW5ncyB1cCB3aGVuIHNpbWlsYXIgcmVxdWVzdHMgY29tZSBpbgogICAoc25tcHdhbGssIC4uLikuCiAgIAoyMDAyLTA4LTE1IDEzOjM1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmMgKDUuMyk6CgogICBwcm90ZWN0IGFnYWluc3QgTlVMTCBsYWJlbHMgaW4gc3VidHJlZXMKICAgCjIwMDItMDgtMTUgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2luZGV4LmMgKDUuMyksIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgKDUuNCksCiAgIGFnZW50L2FnZW50X3RyYXAuYyAoNS4xKSwgYWdlbnQvaGVscGVycy9vbGRfYXBpLmMgKDUuMiksCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMgKDUuMSksIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgKDUuMSksIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAoNS4yKSwgc25tcGxpYi9zbm1wdXNtLmMgKDUuMyk6CgogICB1c2UgbmV0c25tcF9vaWRfZXF1YWxzICh3aGljaCBpcyBzb21ldGltZXMgZmFzdGVyIHRoYW4KICAgc25tcF9vaWRfY29tcGFyZSkgaW4gYSBmZXcgcGxhY2VzIHRvIGFjaGlldmUgYmFyZWx5IG5vdGljZWFibGUgc3BlZWQgZ2FpbnMuCiAgIAoyMDAyLTA4LTE1IDExOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3BhcnNlLmMgKDUuMik6CgogICBkb3VibGUgY2hlY2sgYSBwb2ludGVyIGV4aXN0cyBiZWZvcmUgcGFzc2luZyBpdCB0byBzdHJjbXAoKQogICAKMjAwMi0wOC0xNSAxMTowNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMICg1LjcpOgoKICAgY2hhbmdlIE1BTjNQT0RTIHRvIHNvbWV0aGluZyBjb21wbGlhbnQgd2l0aCB0aGUgcGVybCBtYW51YWxzLiAgSSB0aGluay4KICAgCjIwMDItMDgtMTQgMTM6NDIgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBzZXQuYyAoNS4yKToKCiAgIGFkZCBkZWJ1ZyBmb3IgbG9jYWwgcGFyc2luZyBvZiBhcmdzCiAgIAoyMDAyLTA4LTE0IDEyOjI2ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgKDUuNSksIG1hc3Rlcl9hZG1pbi5jICg1LjQpLAogICBzdWJhZ2VudC5jICg1LjUpOgoKICAgYWRkIG1vcmUgZGV0YWlsZWQgaW4gZGVidWcgbWVzc2FnZXM7IGFkZCBhIGZldyBuZXcgZGVidWdzCiAgIAoyMDAyLTA4LTE0IDEyOjIzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICg1LjExKToKCiAgIHdoZW4gYWxsIGRlbGVnYXRlZCByZXF1ZXN0cyBoYXZlIGZpbmlzaGVkLCBjaGVjayBhbGwgcmVxdWVzdHMgc3RhdHVzIHNvIHRoYXQKICAgYXNwIHN0YXR1cyBpcyBzZXQsIHdoaWNoIGlzIG5lY2Vzc2FyeSBmb3IgY29ycmVjdCBhZ2VudHggc2V0IHByb2Nlc3NpbmcuCiAgIChub3cgaWYgSSBjYW4ganVzdCBnZXQgYWxsIHRoaXMgaGFpciBvZmYgdGhlIGZsb29yLCBhbmQgZ2x1ZSBpdCBiYWNrIHRvIG15CiAgIGhlYWQsIGFuZCB0aGVuIGZpeCB0aGF0IGRlbnQgaW4gdGhlIHdhbGwgd2hlcmUgSSd2ZSBiZWVuIGJhbmdpbmcgbXkgaGVhZC4uLi4pCiAgIAoyMDAyLTA4LTEzIDE3OjI1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmMgKDUuMTQpOgoKICAgZml4IGEgbGVuZ3RoIGNvbXBhcmlzb24gcHJvYmxlbSB3aXRoIG5ldHNubXBfb2lkX2lzX3N1YnRyZWUoKQogICAKMjAwMi0wOC0xMyAxNzoyNCAgaGFyZGFrZXIKCiAgICogTkVXUyAoNS42KToKCiAgIGRvY3VtZW50IGEgZmV3IHJlY2VudCBjaGFuZ2VzLgogICAKMjAwMi0wOC0xMyAxNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICg1LjEpOgoKICAgRml4IG9wZW4gZmlsZSBydW5hd2F5IG9uIHNvbGFyaXMuICBTZWUgYnVnICM1OTI4MDYgcmVwb3J0ZWQgYnkgSmFtZXMgSXJ3aW4uCiAgIAoyMDAyLTA4LTEzIDE1OjA1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oICg1LjcpOgoKICAgYXJyYXkgb2YgcG9pbnRlcnMgPSBwb2ludGVyIHRvIGEgcG9pbnRlcgogICAKMjAwMi0wOC0wOSAxOTozMiAgaGFyZGFrZXIKCiAgICogbG9jYWwvRkFRMkhUTUwgKDUuMSk6CgogICBtaXNjIGRvYyBmaXhlcy4KICAgCjIwMDItMDgtMDkgMTk6MzEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgKDUuNCksCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oICg1LjIpLCBzbm1wbGliL3NubXB1c20uYwogICAoNS4yKSwgc25tcGxpYi9zbm1wdjMuYyAoNS4zKToKCiAgIGluaXRpYWwgQUVTIHN1cHBvcnQuCiAgIAoyMDAyLTA4LTA5IDE5OjMxICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAoNS4yKSwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICg1LjEzKToKCiAgIHNsaWdodCBzcGVlZCB1cHMgZm9yIHNubXBfb2lkX2NvbXBhcmUoKSB0byBkbyBzaW5nbGUgaW50IGNvbXBhcmVzIHRpbGwgIT0KICAgCjIwMDItMDgtMDkgMTk6MjkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc2NhcGkuYyAoNS4yKToKCiAgIC0gb3BlbnNzbCAwLjkuNyBzdXBwb3J0IGZvciBERVMgY2hhbmdlcy4KICAgLSBpbml0aWFsIEFFUyBzdXBwb3J0LgogICAKMjAwMi0wOC0wOSAxOToyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9rZXl0b29scy5jICg1LjIpOgoKICAgaW5kZW50IGZpeGVzLgogICAKMjAwMi0wOC0wOSAxOToyNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5Lzogc2NhcGkuaCAoNS4xKSwgc25tcHVzbS5oICg1LjEpOgoKICAgZGVmaW5lIEFFUyBrZXkgc3BlY2lmaWNzCiAgIAoyMDAyLTA4LTA5IDE5OjI2ICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICg1LjgpLCBjb25maWd1cmUgKDUuMTcpLCBjb25maWd1cmUuaW4gKDUuMTUpLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICg1LjkpOgoKICAgLSBjaGVjayBmb3Igb3BlbnNzbCAuMC45LjcgREVTIHN0cnVjdHVyZXMgYW5kIGZ1bmN0aW9ucy4KICAgLSBjaGVjayBmb3IgQUVTIHN1cHBvcnQgaW4gb3BlbnNzbCAoPiAwLjkuNykKICAgCjIwMDItMDgtMDkgMTk6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICg1LjQpOgoKICAgZml4IG1vZGUgcHJvY2Vzc2luZyBmb3IgUkVTRVJWRTEvUkVTRVJWRTIgdGVzdCBmYWlsdXJlcwogICAKMjAwMi0wOC0wOSAxODoyOSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYyAoNS4xMCk6CgogICBsb2cgbXNnIHdoZW4gd2UgaWdub3JlL2ZpeCBpbGxlZ2FsIGVycm9yX3ZhbHVlcyBmb3IgdGhlIGNsaWVudCBBUElzCiAgIAoyMDAyLTA4LTA5IDE4OjI4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mICg1LjEyKToKCiAgIGNvcnJlY3Rpb25zIHRvIGV4YW1wbGUgY29kZQogICAKMjAwMi0wOC0wOSAxODoyNyAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYyAoNS42KToKCiAgIHJldmVydCBlcnJvcnMgdG8gdW5pbmZvcm1hdGl2ZSBTTk1QdjEgbm9TdWNoTmFtZSBmb3IgQWdlbnRYIGdldC1uZXh0L2luY2x1c2l2ZQogICBwcm9jZXNzaW5nOyBhbHNvIGFkZCBtb3JlIGNvbW1lbnRzIGhlcmUgYW5kIHRoZXJlCiAgIAoyMDAyLTA4LTA5IDE3OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICg1LjQpOgoKICAgZGVidWcgbXNnIGZvciBhZ2VudHggb2lkIGZvciBjYXNlcyBvdGhlciB0aGFuIGdldC9nZXRuZXh0CiAgIAoyMDAyLTA4LTA5IDExOjQ1ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICg1LjMpOgoKICAgZG9uJ3QgZnJlZSByZWdpc3RyYXRpb24gaW5mbyBvbiBmYWlsdXJlLCBhcyBuZXRzbm1wX3JlZ2lzdGVyX21pYiBhbHJlYWR5IGRpZCBpdAogICAKMjAwMi0wOC0wOSAwOTo1NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAoNS4yKSwgc25tcENhbGxiYWNrRG9tYWluLmMgKDUuMSksCiAgIHNubXBJUFhEb21haW4uYyAoNS4xKSwgc25tcFRDUERvbWFpbi5jICg1LjQpLCBzbm1wVENQSVB2NkRvbWFpbi5jCiAgICg1LjUpLCBzbm1wVURQRG9tYWluLmMgKDUuNiksIHNubXBVRFBJUHY2RG9tYWluLmMgKDUuNyksCiAgIHNubXBVbml4RG9tYWluLmMgKDUuNCksIHNubXBfdHJhbnNwb3J0LmMgKDUuMSk6CgogICAgIC0gcmVuYW1lIHNubXBfPGRvbWFpbj5fYmxhaCBmdW5jdGlvbnMgdG8gbmV0c25tcF88ZG9tYWluPl9ibGFoCiAgICAgLSBtYWtlIHRyYW5zcG9ydCBtZW1iZXIgZnVuY3Rpb25zIHN0YXRpYywgdG8gZW1waGFzaXNlIHRoYXQgdGhleSBzaG91bGQKICAgICAgIG5vdCBiZSB1c2VkIGRpcmVjdGx5CiAgICAgLSBoYW5kbGUgRUlOVFIgaW4gc2VuZCBhbmQgcmVjdiBmdW5jdGlvbnMgKGFzIHBvaW50ZWQgb3V0IGJ5IEFudHRpIEt1bnRzaQogICAgICAgaW4gYnVnIHJlcG9ydCAjNTc2ODA2KQogICAgIC0gZm9ybWF0dGluZyBmaXhlcwogICAKMjAwMi0wOC0wOSAwOTo1NCAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wQUFMNVBWQ0RvbWFpbi5oICg1LjMpLAogICBzbm1wSVBYRG9tYWluLmggKDUuMiksIHNubXBUQ1BEb21haW4uaCAoNS4yKSwgc25tcFRDUElQdjZEb21haW4uaAogICAoNS4zKSwgc25tcFVEUERvbWFpbi5oICg1LjIpOgoKICAgICAtIG1pbm9yIGZvcm1hdHRpbmcgZml4ZXMKICAgCjIwMDItMDgtMDkgMDk6NTQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggKDUuMyk6CgogICAgIC0gZG9uJ3QgZXhwb3J0IG5ldHNubXBfdW5peF9ibGFoKCkgZnVuY3Rpb25zCiAgIAoyMDAyLTA4LTA5IDA5OjUzICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3RyYW5zcG9ydC5oICg1LjEpOgoKICAgICAtIGZpeCBuYXN0eSBmb3JtYXR0aW5nCiAgIAoyMDAyLTA4LTA4IDEyOjE0ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wdjMuYyAoNS4yKToKCiAgIHJld29yZCBjb25maWdfcGVycm9yIG1zZ3MgdG8gcmVtb3ZlICJFcnJvciIsIGFzIGl0IGlzIHJlZHVuZGFudAogICAKMjAwMi0wOC0wOCAxMjoxMSAgcnN0b3J5CgogICAqIHNubXBsaWIva2V5dG9vbHMuYyAoNS4xKToKCiAgIHJlbW92ZSBpZmRlZiB0byBsb2cgbXNnIHRvIHVzZXIsIGFmdGVyIG1ha2luZyBtc2cgbW9yZSBpbmZvcm1hdGl2ZTsgcmVtb3ZlCiAgIGFubm95aW5nIGJsYW5rIGxpbmVzCiAgIAoyMDAyLTA4LTA4IDExOjMzICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICg1LjcpLCBjb25maWd1cmUgKDUuMTYpLCBjb25maWd1cmUuaW4gKDUuMTQpOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgdG8gY29tcGxldGVseSBkaXNhYmxlIGttZW0gdXNhZ2UKICAgCjIwMDItMDgtMDYgMDM6MzAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgKDUuMyk6CgogICAgIC0gc2V0IG1haW5fc2Vzc2lvbiB0byBOVUxMIGluIHN1YmFnZW50X3NodXRkb3duKCkuICBUaGlzIChhbG9uZyB3aXRoIHRoZQogICAgICAgZGVyZWdpc3RyYXRpb24gb2YgYWxsIGFsYXJtcykgYWxsb3dzIEFnZW50WCBmdW5jdGlvbmFsaXR5IHRvIGJlCiAgICAgICBzdG9wcGVkIGFuZCByZXN0YXJ0ZWQgaW4gc3ViYWdlbnRzLgogICAgIC0gVGhhbmtzIHRvIFZpc2hhbCBWZXJtYSBmb3Igb3JpZ2luYWwgcGF0Y2gKICAgCjIwMDItMDgtMDYgMDM6MjcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYWxhcm0uaCAoNS4xKToKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgIAoyMDAyLTA4LTA2IDAzOjI2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMgKDUuMyksIHNubXBfYXBpLmMgKDUuMTIpOgoKICAgICAtIGFkZCBzbm1wX2FsYXJtX3VucmVnaXN0ZXJfYWxsKCkgZnVuY3Rpb24KICAgICAtIGNhbGwgaXQgZnJvbSBzbm1wX3NodXRkb3duKCkKICAgICAtIHRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIG9yaWdpbmFsIHBhdGNoCiAgIAoyMDAyLTA4LTA2IDAzOjE3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jIChWNC0yLXBhdGNoZXMuNCk6CgogICAgIC0gYWRkIGRlYnVnZ2luZyBvdXRwdXQgd2hlbiBhbGwgYWxhcm1zIHVucmVnaXN0ZXJlZAogICAKMjAwMi0wOC0wNiAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjQpOgoKICAgICAtIHNldCBtYWluX3Nlc3Npb24gdG8gTlVMTCBpbiBzdWJhZ2VudF9zaHV0ZG93bigpLiAgVGhpcyAoYWxvbmcgd2l0aCB0aGUKICAgICAgIGRlcmVnaXN0cmF0aW9uIG9mIGFsbCBhbGFybXMpIGFsbG93cyBBZ2VudFggZnVuY3Rpb25hbGl0eSB0byBiZQogICAgICAgc3RvcHBlZCBhbmQgcmVzdGFydGVkIGluIHN1YmFnZW50cy4KICAgICAtIFRoYW5rcyB0byBWaXNoYWwgVmVybWEgZm9yIHRoaXMgcGF0Y2ggKCM1NTg1MTcpCiAgIAoyMDAyLTA4LTA2IDAzOjA4ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FsYXJtLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYwogICAoVjQtMi1wYXRjaGVzLlszLDEsMzZdKToKCiAgICAgLSBhZGQgc25tcF9hbGFybV91bnJlZ2lzdGVyX2FsbCgpIGZ1bmN0aW9uCiAgICAgLSBjYWxsIGl0IGZyb20gc25tcF9zaHV0ZG93bigpCiAgICAgLSB0aGFua3MgdG8gVmlzaGFsIFZlcm1hIGZvciBwcm92aWRpbmcgdGhpcyBwYXRjaAogICAKMjAwMi0wOC0wNSAxMDowNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiAoNS4zKToKCiAgIG1hdGNoIGZ1bmN0aW9uIGRlZmluaXRpb24gdy9OZXRzbm1wXypfRGF0YVBvaW50IHR5cGVkZWZzOyBhZGQgY3ZzIElkCiAgIAoyMDAyLTA4LTAzIDExOjUyICByc3RvcnkKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUyAoMS41KToKCiAgIGJyZWFrIHVwIGxpbmVzIGxvbmcgdGhhbiA4MCBjaGFyczsgYWJjZGUsIG5vdCBhYmNkZAogICAKMjAwMi0wOC0wMyAwMzoyMSAgaGFyZGFrZXIKCiAgICogZGlzdC9SRUxFQVNFLUlOU1RSVUNUSU9OUyAoMS40KToKCiAgIG1vcmUgdXBkYXRlcyBhYm91dCB0aGluZ3MgV2VzIGRvZXMgYXQgMTI6MzAgYW0KICAgCjIwMDItMDgtMDMgMDI6NDQgIGhhcmRha2VyCgogICAqIEZBUSAoNS4xNCksIFJFQURNRSAoNS44KSwgc2Vkc2NyaXB0LmluICg1LjYpLCBwZXJsL1NOTVAvU05NUC5wbQogICAoNS4xMiksIHNubXBsaWIvc25tcF92ZXJzaW9uLmMgKDUuNSk6CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjMgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjUuMC4yIC0+IFY1LjAuMwoKMjAwMi0wOC0wMiAyMzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvLmN2c2lnbm9yZToKCiAgIGFkZCAubGlicwogICAKMjAwMi0wOC0wMiAyMzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvUm1vbi8uY3ZzaWdub3JlOgoKICAgaWdub3JlIGZpbGUKICAgCjIwMDItMDgtMDIgMjM6MzkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBtYWtlIGRlcGVuZAogICAKMjAwMi0wOC0wMiAyMzozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIGZvcmdvdHRlbiB0byBjaGVjayBpbiB0ZXN0IGZvciBwZXJsX2V2IGNoYW5nZXMKICAgCjIwMDItMDgtMDIgMjM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgcmVtb3ZlIGRlYnVnZ2luZyBwcmludCAob3BwcykKICAgCjIwMDItMDgtMDIgMjM6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAucG0sIFNOTVAueHM6CgogICBmaXggZGVmYXVsdCB2ZXJzaW9uIHVzYWdlLgogICAKMjAwMi0wOC0wMiAyMzozNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgUGF0Y2ggIzU3MjM5NCBmcm9tIEthdHN1aGlzYSBBQkU6CiAgICAgLSBzdXBwb3J0IGxpbmsgbG9jYWwgYWRkcmVzc2VzCiAgICAgLSBiaW5kIHRvIGlwdjYgb25seSBpZiBJUFY2X1Y2T05MWSBpcyBkZWZpbmVkLgogICAKMjAwMi0wOC0wMiAyMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCBjb25maWd1cmUgc3BlY2lmaWVkIGRlZmF1bHQgdmVyc2lvbmluZwogICAKMjAwMi0wOC0wMiAyMjo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQYXRjaCAjNTcyMzk0OiBhZGQgaXB2NiB0cmFuc3BvcnRzIHdoZW4gLS1lbmFibGUtaXB2NiBkZWZpbmVkLiAgVGhhbmtzIHRvIEthdHN1aGlzYSBBQkUuCiAgIAoyMDAyLTA4LTAyIDE0OjU5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuMwogICAKMjAwMi0wOC0wMiAxNDo1NSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgdXBkYXRlCiAgIAoyMDAyLTA4LTAyIDE0OjM5ICBoYXJkYWtlcgoKICAgKiBkaXN0L1JFTEVBU0UtSU5TVFJVQ1RJT05TOgoKICAgbW9yZSBkb2NzLgogICAKMjAwMi0wOC0wMiAxNDoyOSAgaGFyZGFrZXIKCiAgICogbWFuLzogbmV0c25tcF9hZ2VudC4zLCBuZXRzbm1wX2J1bGtfdG9fbmV4dC4zLAogICBuZXRzbm1wX2RlYnVnLjMsIG5ldHNubXBfaGFuZGxlci4zLCBuZXRzbm1wX2luc3RhbmNlLjMKLCBuZXRzbm1wX211bHRpcGxleGVyLjMsIG5ldHNubXBfb2xkX2FwaS4zLAogICBuZXRzbm1wX3JlYWRfb25seS4zLCBuZXRzbm1wX3NjYWxhci4zLAogICBuZXRzbm1wX3NlcmlhbGl6ZS4zLCBuZXRzbm1wX3RhYmxlLjMsCiAgIG5ldHNubXBfdGFibGVfYXJyYXkuMywgbmV0c25tcF90YWJsZV9kYXRhLjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YXNldC4zLCBuZXRzbm1wX3RhYmxlX2l0ZXJhdG9yLjMsCiAgIG5ldHNubXBfdG9kby4zLCBuZXRzbm1wX3dhdGNoZXIuMywgTWFrZWZpbGUuaW46CgogICBkb3h5Z2VuIHVwZGF0ZS4KICAgCjIwMDItMDgtMDIgMTQ6MjYgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICB1cGRhdGUgZm9yIHlldCBtb3JlIHN0dWZmLgogICAKMjAwMi0wOC0wMiAxNDoyNiAgaGFyZGFrZXIKCiAgICogcmVtb3ZlLWZpbGVzOgoKICAgcmVtb3ZlIGEgZmV3IG1vcmUgZGlzdCByZWxhdGVkIGZpbGVzLgogICAKMjAwMi0wOC0wMiAxNDoyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZXJyb3IgbWVzc2FnZSBjaGFuZ2UgdG8gcmVtb3ZlIERFUyBzcGVjaWZpYyBlcnJvciBtc2cuCiAgIAoyMDAyLTA4LTAyIDE0OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL2FnZW50L3R5cGVtYXA6CgogICBzcGFjaW5nIGZpeGVzLgogICAKMjAwMi0wOC0wMiAxNDoyMiAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IE1ha2VmaWxlLlBMLCBhZ2VudC54czoKCiAgIHJlbmFtZWQgZmlsZS4KICAgCjIwMDItMDgtMDIgMTQ6MjIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvOiBuZXRzbm1wX3JlcXVlc3RfaW5mby5wbSwKICAgbmV0c25tcF9yZXF1ZXN0X2luZm9QdHIucG06CgogICByZW5hbWVkIGZpbGUKICAgCjIwMDItMDgtMDIgMTQ6MjAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgQWRkIGEgImV2YWx2YXJzIiBkaXJlY3RpdmUgdG8gZG8gc2ltcGx5IHJlcGxhY2VtZW50cy4KICAgCjIwMDItMDgtMDIgMTQ6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWc6CgogICB1c2UgQ1ZTVVNFUiB2YXJpYWJsZSB3aGVuIGRvaW5nIHN0dWZmIGluc3RlYWQgb2YgbXkgaGFyZC1jb2RlZCBuYW1lLgogICAKMjAwMi0wOC0wMiAxNDoxNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgdXBkYXRlIGxpYnRvb2wgdmVyc2lvbiBmb3IgNS4wLjMKICAgCjIwMDItMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgY2hhbmdlIGNoZWNrY29tbWVudCB0YWcgdG8gZXhjbHVkZSB3aW4zMiBmaWxlcy4KICAgCjIwMDItMDgtMDIgMTQ6MTMgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZzoKCiAgIHVwZGF0ZSBjaGFuZ2Vsb2cgYnVpbGQgbm90ZXMgYXQgdGhlIGJvdHRvbSBvZiB0aGUgZmlsZS4KICAgCjIwMDItMDgtMDIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGRpc3QvUkVMRUFTRS1JTlNUUlVDVElPTlM6CgogICBjcmVhdGVkIGEgaG93LXRvIGZpbGUgZm9yIG1ha2luZyByZWxlYXNlcwogICAKMjAwMi0wOC0wMiAxNDowMSAgaGFyZGFrZXIKCiAgICogZGlzdC9jaGFuZ2Vsb2dmaXg6CgogICBjaGFuZ2Vsb2cgZml4LXVwIHNjcmlwdAogICAKMjAwMi0wOC0wMiAxMDoyMSAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIHRyYW5zbGF0ZSAnLycgaW4gc3lzdGVtIG5hbWUgdG8gJ18nIChmb3IgY3lnd2luKQogICAKMjAwMi0wOC0wMiAwOTo1NiAgcnN0b3J5CgogICAqIGRpc3QvUkVBRE1FLmJ1aWxkLXNjcmlwdHM6CgogICBmaXggc2VjdGlvbiBjdnMgZ2V0IGNvbW1hbmQgZXhhbXBsZQogICAKMjAwMi0wOC0wMiAwOTowNiAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oOgoKICAgU3VwcHJlc3MgJ2lubGluZScgd2hlbiBub3QgdXNpbmcgR0NDLiBTdWdnZXN0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyCiAgIAoyMDAyLTA4LTAyIDA4OjU5ICByc3RvcnkKCiAgICogZGlzdC9SRUFETUUuYnVpbGQtc2NyaXB0czoKCiAgIGZpeCBzZWN0aW9uIG9uIHNraXBwaW5nIG1ha2UgdGVzdDsgYWRkIC1wIGZsYWcgdG8gZXhhbXBsZXMKICAgCjIwMDItMDgtMDIgMDg6NTIgIHJzdG9yeQoKICAgKiBkaXN0L1JFQURNRS5idWlsZC1zY3JpcHRzOgoKICAgZGVzY3JpYmUgdXNlIG9mIG5zYi1wYWNrYWdlIHNjcmlwdC4gVGVzdGVycyBhbmQgY29tbWVudHMgYXBwcmVjaWF0ZWQuLi4KICAgCjIwMDItMDgtMDIgMDg6MzMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1wbGF0Zm9ybToKCiAgIG91dHB1dCBwbGF0Zm9ybSBpbmZvCiAgIAoyMDAyLTA4LTAyIDA4OjE4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICByZW5hbWVkIHRvIG5zYi1wYWNrYWdlCiAgIAoyMDAyLTA4LTAyIDA4OjE4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItcGFja2FnZToKCiAgIHJlbmFtZWQgbnNiLWJ1aWxkIHRvIGF2b2lkIGNvbmZ1c2lvbiB3aXRoIHNjcmlwdCBmdW5jdGlvbgogICAKMjAwMi0wOC0wMiAwODoxNSAgaGFyZGFrZXIKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgQ2hhbmdlIGxvY2F0aW9uIG5hbWUgdG8gVW5rbm93bgogICAKMjAwMi0wOC0wMiAwODowOCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIGFnZW50L2FnZW50LnBtLAogICBhZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIG1vcmUgb2xkIHBlcmwgZml4ZXMKICAgCjIwMDItMDgtMDIgMDg6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvOiBPSUQvT0lELnBtLCBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0KOgoKICAgbW9yZSBvbGQgcGVybCBmaXhlcwogICAKMjAwMi0wOC0wMiAwODowMCAgaGFyZGFrZXIKCiAgICogcGVybC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG06CgogICBtb3JlIG9sZCBwZXJsIGZpeGVzCiAgIAoyMDAyLTA4LTAyIDA3OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgZml4IHJldHVybiBjb2RlCiAgIAoyMDAyLTA4LTAyIDA3OjQ4ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICBkb24ndCBwdWxsIGZpcnN0IGFyZyB0aWwgYWZ0ZXIgZ2V0b3B0cy9zaGlmdDsgbW92ZSBzZXQgb2YgZGVmYXVsdCBvcHRzCiAgIAoyMDAyLTA4LTAyIDA3OjM3ICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIGJ1aWxkIG9yIHRlc3Qgc3RlcHM7IGFkZCAtZiBvcHRpb24gdG8gcHJvbXB0IHRvIG92ZXJyaWRlCiAgIG5vIHByb21wdCBmbGFnICh1c2VmdWwgZm9yIGVycm9ycyk7IG5ldyBuc2ItbWFrZSBtZXRob2Q7IGNoZWNrIHJjIG9mCiAgIG1ha2UgY2xlYW4KICAgCjIwMDItMDgtMDIgMDc6MzYgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGFkZCBvcHRpb24gdG8gc2tpcCBidWlsZCBvciB0ZXN0IHN0ZXBzOyB0d2VhayB1c2FnZQogICAKMjAwMi0wOC0wMiAwNzoxMCAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZml4IHR5cG87IHJlbW92ZSBleHRyYSB0cmFpbGluZyBzbGFzaCBpbiBkaXIKICAgCjIwMDItMDgtMDIgMDY6MzMgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIGNoZWNrIG1vcmUgcGxhY2VzIHRvIHNvdXJjZSBuc2ItZnVuY3Rpb25zOyBmaXggZm9yIGNtZCBsaW5lIGJ1aWxkIHBhdGgKICAgCjIwMDItMDgtMDIgMDY6MjggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBqdXN0IHNob3cgZXJyb3JzIGFmdGVyIGJ1aWxkLCBub3Qgd2FybmluZ3MKICAgCjIwMDItMDgtMDEgMTc6MDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC54czoKCiAgIHJldmVydCB0byBub24tYW5zaSBwcm90b3R5cGVzIGZvciBvbGRlciBwZXJsIHdpdGggb2xkZXIgY29tcGlsZXJzIG9uCiAgIG9sZGVyIHN5c3RlbXMuICBOb3QgdGhhdCBJJ20gZ3J1bXB5LCBvZiBjb3Vyc2UuCiAgIAoyMDAyLTA4LTAxIDE2OjI1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4sIGFnZW50L3NubXBfcGVybC5jOgoKICAgY2hlY2sgZm9yIG9sZGVyIGFuZCBuZXcgZW1iZWRkZWQgcGVybCBjYWxsIGZ1bmN0aW9ucwogICAKMjAwMi0wOC0wMSAxNDowNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGRvbid0IHN5bWxpbmsgdG8gc3JjIGZyb20gYnVpbGQ7IHVwZGF0ZSBuc2ItZ2V0LWNvbmZpZwogICAKMjAwMi0wOC0wMSAxNDowNiAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWJ1aWxkOgoKICAgZml4IGZvciBjbWQgbGluZSBidWlsZCBkaXIKICAgCjIwMDItMDgtMDEgMTI6NTggIHJzdG9yeQoKICAgKiBkaXN0L25zYi1mdW5jdGlvbnM6CgogICBmaXggY29uZmlnIGluc3RhbGwgcGF0aDsgcmVtb3ZlIHBsYXRmb3JtIHNwZWNpZmljIGZyb20gbnNiLWJ1aWxkCiAgIAoyMDAyLTA4LTAxIDEyOjU2ICByc3RvcnkKCiAgICogZGlzdC9uc2ItYnVpbGQ6CgogICByZW1vdmUgaGFyZCBjb2RlZCBpbmZvCiAgIAoyMDAyLTA4LTAxIDEyOjIyICByc3RvcnkKCiAgICogZGlzdC9uc2ItZnVuY3Rpb25zOgoKICAgYWRkIG9wdGlvbiB0byBza2lwIHByb21wdHM7IHJlbW92ZSBwcmV2aW91cyBpbnN0YWxsczsgdHdlYWsgZXJyIHBhdHRlcm4KICAgCjIwMDItMDgtMDEgMTI6MTQgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMy5kZWY6CgogICAgIC0gdXNlIG5ldHNubXBfZHNfc2V0X2Jvb2xlYW4oKSBpbnN0ZWFkIG9mIGRzX3NldF9ib29sZWFuKCkKICAgCjIwMDItMDgtMDEgMTI6MTIgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjMuZGVmOgoKICAgICAtIGNoYW5nZSBjb2RlIHNhbXBsZSB0byB1c2UgbmV0c25tcF9kc19zZXRfYm9vbGVhbigpCiAgICAgLSB1cGRhdGUgcmVmZXJlbmNlcyB0byBsaWJyYXJpZXMgKHdoaWNoIHdlcmUgc3RpbGwgdGFsa2luZyBhYm91dAogICAgICAgbGlidWNkYWdlbnQgZXQgYWwuKSAtLSBQTEVBU0UgUkVWSUVXIEJFRk9SRSA1LjAuMwogICAKMjAwMi0wOC0wMSAxMjowNyAgcnN0b3J5CgogICAqIGRpc3QvbnNiLWZ1bmN0aW9uczoKCiAgIGxvdHMgb2YgZml4ZXMgdG8gcHJldmlvdXNlIHVudGVzdGVkIHNjcmlwdHMKICAgCjIwMDItMDgtMDEgMTI6MDQgIHJzdG9yeQoKICAgKiBkaXN0L25zYi1idWlsZDoKCiAgIHNjcmlwdCB0byBidWlsZCByZWxlYXNlcy4uLiBzdGlsbCBzb21lIGhhcmRjb2Rpbmcgd2hpbGUgdGVzdGluZywgYnV0IGl0cwogICBnZXR0aW5nIHRoZXJlLi4uCiAgIAoyMDAyLTA4LTAxIDExOjUxICByc3RvcnkKCiAgICogZGlzdC86IGN2c3Nob3csIGN2c3VwOgoKICAgdXRpbGl0eSBzY3JpcHRzCiAgIAoyMDAyLTA4LTAxIDA5OjMwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzLzogc2NhbGFyLmMsIHNjYWxhcjIuYzoKCiAgIEdvIHdpdGggdGhlICJzY2FsYXIgYXMgc3VwZXItaGFuZGxlciBvZiBpbnN0YW5jZSIgaW1wbGVtZW50YXRpb24uCiAgIFNjYWxhcjEuYyBpcyBwcm9iYWJseSByZWR1bmRlbnQsIGJ1dCB3ZSBjYW4gcmVtb3ZlIHRoaXMgbGF0ZXIuCiAgIChZdXAgLSBJJ20gYSBjb3dhcmQuLi4uKQogICAKMjAwMi0wOC0wMSAwMToxMSAgZHRzMTIKCiAgICogUkVBRE1FLndpbjMyOgoKICAgTWlub3IgdHlwb3MsIHBsdXMgZW1waGFzaXNlIHRoZSBuZWVkIGZvciB0aGUgSXBIbHBBUEkgbGlicmFyeS4KICAgCjIwMDItMDctMzAgMDg6MjYgIGR0czEyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci9zbm1wLWRhdGEvb3V0cHV0OgoKICAgUmVjb2duaXNlICcwJyBhcyBhIHZhbGlkIHNldHRpbmcgZm9yIHN1ZmZpeFByaW50aW5nLCBhbmQgdXBkYXRlIHRoZQogICBwcm9tcHRzIHRvIG1hdGNoIHRoZSB2NSBvdXRwdXQgZm9ybWF0cyBkZWZhdWx0cy4gU2VlIEJ1ZyAjNTY3NDUxCiAgIAoyMDAyLTA3LTMwIDA3OjU5ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgRmlyc3QgYXR0ZW1wdCBhdCB0YWNrbGluZyBCdWcgIzU3NDQzNAogICBSZWNvZ25pc2UgdGhhdCBkZWZhdWx0IG91dHB1dCBmb3JtYXQgaXMgZXF1aXZhbGVudCB0byAtT1MuCiAgIFNubXB0YWJsZSBzdGlsbCBjcmFzaGVzIHdpdGggLU9mIG9yIC1PdSwgYnV0IGF0IGxlYXN0IHRoZQogICBkZWZhdWx0IGludm9jYXRpb24gd29ya3MuCiAgIAoyMDAyLTA3LTMwIDA1OjQxICBkdHMxMgoKICAgKiB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIEV4cG9ydCBuZXdseS1kZWZpbmVkIHB1YmxpYyBuYW1lcywgYW5kIHJlLWV4cG9ydCBzb21lIHJvdXRpbmVzIHRoYXQKICAgaGF2ZSBjaGFuZ2VkIG5hbWUuICBUaGlzIHNob3VsZCBub3cgY29tcGlsZSB1bmRlciBWaXN1YWwgQysrIGFnYWluLgogICAKMjAwMi0wNy0zMCAwMjoyNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBEb24ndCByZW1vdmUgYSBSb3ctU3RhdHVzIGF1dG8tZGVsZXRlZCByb3cgdW50aWwgdGhlIGxhc3QgbWludXRlLAogICBpbiBjYXNlIG90aGVyIChsb3dlcikgaGFuZGxlcnMgdHJ5IHRvIGFjY2VzcyBpdC4KICAgCjIwMDItMDctMzAgMDE6MzggIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjEpLCBGQVE6CgogICBNZW50aW9uIHRoZSBuZWVkIHRvIGVzY2FwZSBxdW90ZXMgd2hlbiBxdWVyeWluZyBzdHJpbmctaW5kZXhlZCB0YWJsZXMuCiAgIAoyMDAyLTA3LTI5IDIzOjU2ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXBkYXRlIHJlZ2lzdGVyIGZ1bmN0aW9uIG5hbWUKICAgCjIwMDItMDctMjkgMjM6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBhdXRvZ2VuIGV4YW1wbGUgY29kZSBmb3IgaW5kZXggY2hlY2tpbmcgaW4gZXh0cmFjdF9pbmRleDsgdXBkYXRlIHJlZ2lzdGVyCiAgIGZ1bmN0aW9uIG5hbWU7IHVzZSBjb250YWluZXIgaW4gKl9nZXRfYnlfaWR4KCkKICAgCjIwMDItMDctMjkgMTY6MjMgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgZm9yIG5ldyBzdHJ1Y3QgbmFtZTsgYWRkIGV4YW1wbGUgY29kZSBhcyBjb21tZW50cyBpbnN0ZWFkIG9mIHZhcl9YWFgKICAgYW5kIHN1Y2g7IGluIGEgZmV3IGltcG9ydGFudCBwbGFjZXMgYWRkIGNvZGUgd2hpY2ggd2lsbCBhbGxvdyBhIG5ld2x5CiAgIGdlbmVyYXRlZCBtb2R1bGUgdG8gYmUgY29tcGlsZWQgaWYgLURUQUJMRV9DT05UQUlORVJfVE9ETyBpcyBzcGVjaWZpZWQ7CiAgIHByb2JhYmx5IGEgZmV3IG90aGVyIHR3ZWFrcyBJIGZvcmdvdAogICAKMjAwMi0wNy0yOSAwMzowNiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlX2FycmF5LmMsIHRhYmxlLmMsIHRhYmxlX2RhdGEuYwosIHRhYmxlX2RhdGFzZXQuYywgdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCBkZWZlcmVuY2luZyBOVUxMIHBvaW50ZXJzLgogICAoTW9zdCBvZiB0aGVzZSBTaG91bGQgTmV2ZXIgSGFwcGVuIGJ1dCBZb3UgQ2FuJ3QgQmUgVG9vIENhcmVmdWwhKQogICAKMjAwMi0wNy0yOSAwMzowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gZGV0ZWN0IGBkbWZlJyBldGhlcm5ldCBjYXJkcyBhcyBmb3VuZCBvbiBOZXRyYSBYMSBtYWNoaW5lcy4KICAgICAgIFRoYW5rcyB0byBKb2huIE9sc29uIGZvciB2ZXJpZnlpbmcgdGhpcyBmaXguCiAgIAogICAgICAgQWxzbyBub3RlIHRoYXQgYGluZGVudCcgaGFzIC0tLS1lZCB0aGUgZm9ybWF0dGluZyBvZiB0aGlzIGZpbGUKICAgICAgIGJleW9uZCBsZWdpYmlsaXR5IGluIHNldmVyYWwgcGxhY2VzLiAgSSBkb24ndCB0aGluayB3ZSB3YW50IHRvCiAgICAgICBkbyAqdGhhdCogYWdhaW4uCiAgIAoyMDAyLTA3LTI5IDAyOjQwICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIEZ1bGxlciB2YWxpZGF0aW9uIG9mIFJvd1N0YXR1cyB2YWx1ZXMgd3J0IHJvdyBjcmVhdGlvbi9leGlzdGluZyByb3dzLgogICAKMjAwMi0wNy0yOSAwMToyNSAgZHRzMTIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AKLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3A6CgogICBUYWtlIGFjY291bnQgb2YgcmVjZW50IGNoYW5nZXMgaW4gbGlicmFyeSBmaWxlcy4KICAgJ1JlbGVhc2UnIGFwcGxpY2F0aW9ucyBzdGlsbCBkb24ndCBsaW5rIHByb3Blcmx5LCBidXQgYXQgbGVhc3QKICAgdGhlIGxpYnJhcmllcyBjb21waWxlLCBhbmQgdGhlICdEZWJ1Zycgc2lkZSBzZWVtcyB0byB3b3JrLgogICAKMjAwMi0wNy0yOSAwMToyMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYWl4Lmg6CgogICBUd2VhayBpbmxpbmUgaGFuZGxpbmcgZm9yIEFJWCAtIHN1Z2dlc3RlZCBieSBBbmR5IEhvb2QuCiAgIAoyMDAyLTA3LTI2IDEwOjUyICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBhdXRvZGVwZW5kZW5jaWVzIHVudGlsIHBvcnRhYmxlIHNvbHV0aW9uIGNhbiBiZSBmb3VuZAogICAKMjAwMi0wNy0yNiAwODo0MSAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2NvbmZpZy5oLCBtaWJfbW9kdWxlX2luY2x1ZGVzLmgsCiAgIG1pYl9tb2R1bGVfaW5pdHMuaDoKCiAgIFJlbW92ZSBtZW50aW9uIG9mIHRoZSAob2Jzb2xldGUpIHVjZC1zbm1wL3JlZ2lzdHJ5IG1vZHVsZS4KICAgCjIwMDItMDctMjYgMDc6MzIgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgUHJvdGVjdCB0aGUgV2luMzIgdmVyc2lvbiBvZiB0aGUgY29uZmlnIGZpbGUsIHNvIHRoYXQgdGhlIG90aGVyIGhlYWRlcgogICBmaWxlcyByZWNvZ25pc2UgdGhhdCBpdCBoYXMgaW5kZWVkIGJlZW4gaW5jbHVkZWQuCiAgIAoyMDAyLTA3LTI2IDA3OjI0ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy4wKSwgRkFROgoKICAgQSBiaXQgbW9yZSBkZXRhaWwgb24gbWliMmMsIHBsdXMgdGhlIG5vbi13cml0ZWFiaWxpdHkgb2Ygc3lze0xvY2F0aW9uLENvbnRhY3R9CiAgIAoyMDAyLTA3LTI2IDA1OjIyICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy45KSwgRkFROgoKICAgQW5vdGhlciBlbnRyeSBhYm91dCBpbnZhbGlkIHVzZSBvZiBtaWIyYy4KICAgCjIwMDItMDctMjYgMDU6MTYgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBTdXBwcmVzcyB0aGUgIm5vbi1zdGFuZGFyZCIgY29uZGl0aW9uYWwgY29uc3RydWN0LAogICBzaW5jZSBpdCdzIG5vdCByZWNvZ25pc2VkIGJ5IHNvbWUgdmVyc2lvbnMgb2YgJ21ha2UnLgogICAKMjAwMi0wNy0yNSAwNTowMCAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIEFkZCB0aGUgJ3NjYWxhcicgYW5kICd3YXRjaGVyJyBoZWxwZXJzIHRvIHRoZSBoZWxwZXIgbGlicmFyeS4KICAgCjIwMDItMDctMjUgMDM6MjggIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBTdXBwb3J0IGZvciB3YXRjaGluZyBhIHN5c1VwVGltZSBtYXJrZXIuCiAgIAoyMDAyLTA3LTI1IDAzOjI0ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBOZXcgcm91dGluZSBmb3IgcmV0cmlldmluZyBhIGNvbHVtbiB2YWx1ZSBkaXJlY3RseSBmcm9tIGEgcmVxdWVzdCBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA3LTI0IDEzOjE3ICByc3RvcnkKCiAgICogc25tcGxpYi9kZWZhdWx0X3N0b3JlLmM6CgogICBjaGVjayBmb3Igc2V0dGluZyBzYW1lIHZhbHVlIGluIGRzX3NldF9zdHJpbmcsIHNpbmNlIGl0IGZyZWVzIHRoZSBvbGQKICAgdmFsdWUgYmVmb3JlIGR1cGluZyB0aGUgbmV3IG9uZQogICAKMjAwMi0wNy0yNCAxMTo1OCAgcnN0b3J5CgogICAqIGRpc3Qvc25tcGQtaW5pdC5kOgoKICAgZmlyc3Qgc3RhYiBhdCBpbml0LmQgc3RhcnR1cCBzY3JpcHQgZm9yIHNubXBkCiAgIAoyMDAyLTA3LTI0IDA2OjQ4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIFdoZW4gcnVubmluZyBvZmYgdGhlIGVuZCBvZiBvbmUgY29sdW1uLCBhbmQgbW92aW5nIG9uIHRvIHRoZSBuZXh0CiAgIChpbiBhIEdldE5leHQpLCB3ZSBuZWVkIHRvIHN0YXJ0IGFnYWluIHdpdGggdGhlIGZpcnN0IHJvdy4KICAgVGhpcyBpcyBwcm9iYWJseSB0aGUgaW50ZW50aW9uIG9mIHRoZSBjb25kaXRpb25hbCBibG9jayBhdCB0aGUgc3RhcnQKICAgb2YgdGhpcyBsb29wLCBidXQgSSBjYW4ndCBzZWUgaG93IHRoaXMgdGVzdCBjb3VsZCBldmVyIHBvc3NpYmx5IG1hdGNoLgogICAKICAgTm90ZSB0aGF0IHRoZXJlIGlzIGFsc28gYSByZWZlcmVuY2UgdG8gdGhlIHJvdyBkYXRhIGFjY2Vzc2libGUgdmlhCiAgIHRoZSAncmVxdWVzdC0+cGFyZW50X2RhdGEnIGRhdGEgbGlzdC4gICBUaGlzIHdpbGwgYWxzbyBuZWVkIHRvIGJlCiAgIHJld291bmQuICBTdWdnZXN0aW9ucyBhcyB0byBob3cgYmVzdCB0byBkbyBzbyBncmF0ZWZ1bGx5IHJlY2VpdmVkLgogICAKMjAwMi0wNy0yNCAwNjozOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgbWlzc2luZyB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yNCAwNjozNyAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBQcm90ZWN0IGFnYWluc3QgdGhlIHBvc3NpYmlsaXR5IG9mIGZhaWxpbmcgdG8gZXh0cmFjdCBhIHJvdyBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTA3LTI0IDA2OjM1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIFVzZSBTTk1QdjItc3R5bGUgZXhjZXB0aW9ucyByYXRoZXIgdGhhbiB0aGUgdW5pbmZvcm1hdGl2ZSBTTk1QdjEKICAgJ25vU3VjaE5hbWUnIGVycm9yIGZvciBtaXNzaW5nIHRhYmxlIG9iamVjdHMuCiAgIAoyMDAyLTA3LTI0IDA2OjMyICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBVc2UgU05NUHYyLXN0eWxlIGV4Y2VwdGlvbnMgcmF0aGVyIHRoYW4gdGhlIHVuaW5mb3JtYXRpdmUgU05NUHYxCiAgICdub1N1Y2hOYW1lJyBlcnJvciBmb3IgaW52YWxpZCB0YWJsZSBvYmplY3RzLgogICAKMjAwMi0wNy0yMyAxNDo1OSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2Fzc2VydC5oOgoKICAgbWlzc2luZyBjb21tZW50IHRlcm1pbmF0b3IuOi0oCiAgIAoyMDAyLTA3LTIzIDEyOjAyICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYywgYWdlbnQvc25tcF9hZ2VudC5jLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgc25tcGxpYi9jb250YWluZXJfYmluYXJ5X2FycmF5LmM6CgogICB1c2UgbmV3IG5ldHNubXBfYXNzZXJ0IGluc3RlYWQgb2YgYXNzZXJ0CiAgIAoyMDAyLTA3LTIzIDEyOjAwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXNzZXJ0LmgsIHNubXBsaWIvTWFrZWZpbGUuaW4KOgoKICAgYWRkIG5ldyBuZXRzbm1wX2Fzc2VydCwgd2hpY2ggZGVmYXVsdHMgdG8gbG9nZ2luZyBhIG1lc3NhZ2UKICAgCjIwMDItMDctMjMgMDc6NDMgIGR0czEyCgogICAqIG1hbi86IG1pYl9hcGkuMyAoVjQtMi1wYXRjaGVzLjMpLCBtaWJfYXBpLjMuZGVmOgoKICAgRml4IHRoZSBkZXNjcmlwdGlvbnMgb2YgdGhlICdzcHJpbnRfcmVhbGxvYycgY2FsbHMsIHRvIGluY2x1ZGUgdGhlICdhbGxvd19yZWFsbG9jJyBwYXJhbWV0ZXIuCiAgIAoyMDAyLTA3LTIyIDEwOjU4ICByc3RvcnkKCiAgICogZGlzdC86IG5ldC1zbm1wLnNwZWMsIG5zYi1mdW5jdGlvbnM6CgogICBuZXcgKGFsbW9zdCBlbXB0eSkgc3BlYyBmaWxlOyBzdGFydCBjcmVhdGluZyBmdW5jdGlvbnMgZm9yIGF1dG9tYXRlZCBidWlsZHMKICAgCjIwMDItMDctMjIgMDE6NDYgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvd2F0Y2hlci5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3dhdGNoZXIuaAo6CgogICBBIG1vcmUgZ2VuZXJhbGlzZWQgZm9ybSBvZiB0aGUgJ25zX3JlZ2lzdGVyX3t0eXBlfV9pbnN0YW5jZScgcm91dGluZXMsCiAgIGltcGxlbWVudGVkIGFzIGEgc2VwYXJhdGUgaGVscGVyIG1vZHVsZSwgYW5kIHVzZWFibGUgd2l0aCBib3RoIHRoZQogICBpbnN0YW5jZSBhbmQgc2NhbGFyIGhlbHBlcnMuCiAgICAgVGhpcyBhbHNvIHN1cHBvcnRzIGFyYml0cmFyeSBBU04gdHlwZXMgKGluY2x1ZGluZyBzdHJpbmdzIGFuZCBPSURzKS4KICAgCjIwMDItMDctMjIgMDE6NDMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvc2NhbGFyMS5jLCBhZ2VudC9oZWxwZXJzL3NjYWxhcjIuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zY2FsYXIuaDoKCiAgIEFnZW50IGhlbHBlciBtb2R1bGUgZm9yIHN1cHBvcnQgb2Ygc2NhbGFyIG9iamVjdHMuCiAgIFZlcnkgc2ltaWxhciB0byB0aGUgImluc3RhbmNlIiBoZWxwZXIsIGV4Y2VwdCB0aGF0IHRoaXMgZGVhbHMgd2l0aAogICBpbnZhbGlkIGluc3RhbmNlIHN1YmlkZW50aWZpZXJzIGFzIHdlbGwgKHJlcG9ydGluZyBub1N1Y2hJbnN0YW5jZQogICByYXRoZXIgdGhhdCBub1N1Y2hPYmplY3QpLgogICAKICAgVGhlcmUgYXJlIHR3byBwYXJhbGxlbCBpbXBsZW1lbnRhdGlvbnMgYXMgdGhlIG1vbWVudDoKICAgICAtIHNjYWxhcjEgaXMgZXNzZW50aWFsbHkgYW4gZW5oYW5jZWQgY29weSBvZiB0aGUgaW5zdGFuY2UgaGVscGVyLAogICAgICAgYnV0IGlzIGNvbXBsZXRlbHkgaW5kZXBlbmRlbnQgb2YgaXQuCiAgICAgLSBzY2FsYXIyIHNpdHMgYWJvdmUgdGhlIGluc3RhbmNlIGhlbHBlciwgYW5kIHVzZXMgdGhhdCB0byBkbyBtb3N0CiAgICAgICBvZiB0aGUgcmVhbCBwcm9jZXNzaW5nLgogICBTY2FsYXIxIGlzIHByb2JhYmx5IHNsaWdodGx5IG1vcmUgZWZmaWNpZW50LCB3aGlsZSBzY2FsYXIyIGZlZWxzIG1vcmUKICAgaW4ga2VlcGluZyB3aXRoIHRoZSBnZW5lcmFsIGV0aG9zIG9mIHRoZSBoYW5kbGVyIG1lY2hhbmlzbS4KICAgV2UgcHJvYmFibHkgbmVlZCB0byBkZWNpZGUgd2hpY2ggdG8gYWRvcHQsIGFuZCBqdW5rIHRoZSBvdGhlci4KICAgCjIwMDItMDctMTkgMTQ6MjQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICB1c2UgbmV0IGFnZW50eCByZXRpcmVzL3RpbWVvdXQgZHMgdmFsdWVzCiAgIAoyMDAyLTA3LTE5IDE0OjIyICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYzoKCiAgIHJlZ2lzdGVyIHBhcnNlciBmb3IgYWdlbnR4VGltZW91dCBhbmQgYWdlbnR4UmV0cmllcyB0b2tlbnMKICAgCjIwMDItMDctMTkgMTQ6MTUgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5kZXBlbmQ6CgogICByZW1vdmUgcmVmcyB0byBub24tZXhpc3RlbnQgbnN0QWdlbnQqIGZpbGVzCiAgIAoyMDAyLTA3LTE5IDE0OjE0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIG1vdmUgT05FX1NFQyB0byBkZWZpbml0aW9ucy5oOyBhZGQgQUdFTlRYX1RJTUVPVVQgYW5kIEFHRU5UWF9SRVRSSUVTIGRlZmF1bHRzCiAgIAoyMDAyLTA3LTE5IDE0OjEwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oOgoKICAgYWRkIEFHRU5UWF9USU1FT1VUIGFuZCBBR0VOVFhfUkVUUklFUwogICAKMjAwMi0wNy0xOSAxNDoxMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvZGVmaW5pdGlvbnMuaDoKCiAgIG1vdmUgZGVmaW5pdGlvbiBvZiBPTkVfU0VDIGhlcmUgZnJvbSBzbm1wZC5jCiAgIAoyMDAyLTA3LTE5IDExOjIzICByc3RvcnkKCiAgICogc25tcGxpYi9jb250YWluZXIuYzoKCiAgIHBhc3MgbG9jYWwgb2JqLCBub3QgcmFuZG9tIHVuaXRpYWxpemVkIHBvaW50ZXIuOi0oCiAgIAoyMDAyLTA3LTE5IDA0OjA0ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdG9vbHMuaDoKCiAgIEhhbmRsZSBzeXN0ZW1zIHdoZXJlIE1BWFBBVEhMRU4gaXNuJ3QgZGVmaW5lZC4KICAgCjIwMDItMDctMTkgMDM6MzEgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgVXNlIHRoZSAic3lzdGVtLWluZGVwZW5kZW50IiBTTk1QX01BWFBBVEggbGVuZ3RoIGRlZmluaXRpb24gaW5zdGVhZCBvZiBNQVhQQVRITEVOCiAgIAoyMDAyLTA3LTE4IDIyOjAwICByc3RvcnkKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIHJlZnMgdG8gbm9uZXhpc3RlbnQgbWliZ3JvdXAvbnN0QWdlbnRNb2R1bGVPYmplY3QuaAogICAKMjAwMi0wNy0xOCAxOTo0NCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgcGVybC9TTk1QL1NOTVAucG0KLCBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC4yICkKICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAuMSAtPiBWNS4wLjIKCjIwMDItMDctMTggMTk6NDEgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvZXZhbF90b29scy5zaDoKCiAgIG1pbm9yIHBhdGNoIGZvciBub24tZXhpc3RlbnQgKGRpZWQpIGxvZyBmaWxlcy4KCjIwMDItMDctMTggMTk6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZDoKCiAgIG1ha2UgZGVwZW5kCgoyMDAyLTA3LTE4IDE5OjQwICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA1LjAuMgoKMjAwMi0wNy0xOCAxOTo0MCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBtYWtlIGRlcGVuZCBmaXhlcy4KCQoyMDAyLTA3LTE4IDE4OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLzogYWxhcm0uYywgZXZlbnQuYzoKCiAgIG1ha2UgdGhlIHJtb24gY29kZSBjb21waWxlLgogICAgLSBuZXcgc3VidHJlZSBwb2ludGVyIHN0cnVjdHVyZS4KICAgIC0gc3ByaW50X29iamlkIC0+IHNucHJpbnRfb2JqaWQKICAgCjIwMDItMDctMTggMTg6MzIgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgc2lsZW5jZSBwZXJsIHN1YmRpcmVjdG9yeSBidWlsZCBjb21tYW5kcy4KICAgCjIwMDItMDctMTggMTg6MzEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgLSBVc2UgbmV0c2ggLXQgLWQgeG1sIHRvIGdldCB4bWwgb3V0cHV0IGZyb20gbmV0c2guCiAgICAgKE9rLCBJJ20gc2l0dGluZyBoZXJlIGF0IGFuIElFVEYgY29uZmVyZW5jZSBoYXZpbmcgYW4gYXJndW1lbnQgYWJvdXQKICAgICAgeG1sIHZzIEJFUiBhbmQgbmVlZGVkIGEgWE1MKC1saWtlKSBleGFtcGxlIG9mIGEgaHVnZSBkYXRhIHNldCwgc28gSQogICAgICBtYWRlIG5ldHNoIGRvIGl0LikKICAgCjIwMDItMDctMTggMTc6NTQgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL1N0b3JhZ2UucG06CgogICAtIGluaXRpYWwgc3VwcG9ydCBmb3IgZG9pbmcgcmVxdWVzdHMgZnJvbSBtdWx0aXBsZSBob3N0cyAocmV0cmlldmFsLCBub3Qgc2V0cykKICAgCjIwMDItMDctMTggMTc6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgbW9yZSBmaXhlcyB0byBzdGlsbCB1Z2x5IGNvbG9yaXplZCB0ZXh0ICh3ZWxsLCB0aGUgdGV4dCBpcyBwcmV0dHkgYnV0CiAgIHRoZSBzdXBwb3J0IGlzIHVnbHkpLgogICAKMjAwMi0wNy0xOCAxNzo0MiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oOgoKICAgY2hhbmdlIHRleHQgc3RyaW5nIGVycm9yIHRvIG1hdGNoIGZ1bmN0aW9uIG5hbWUgY2FsbGVkLgogICAKMjAwMi0wNy0xOCAxNTozMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaCwgc25tcGxpYi9jb250YWluZXIuYwosIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgcmVuYW1lIGZyZWUgLT4gY2ZyZWUgdG8gYXZvaWQgc29tZSBwcm9ibGVtIHdlcyBoYWQuLi4gOy0pCiAgIAoyMDAyLTA3LTE4IDE0OjQxICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHR3byBwZW9wbGUgZml4aW5nIG1lbW9yeSBsZWFrIGluIGRpZmZlcmVudCBwbGFjZXMgPSBzZWdmYXVsdAogICAKMjAwMi0wNy0xOCAxMTowMiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgICRuYW1lIC0+ICRpCiAgIAoyMDAyLTA3LTE4IDEwOjU2ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oOgoKICAgdXBkYXRlIHRvIHVzZSBjb250YWluZXJzCiAgIAoyMDAyLTA3LTE4IDA5OjQwICByc3RvcnkKCiAgICogbmV0LXNubXAtY29uZmlnLmluOgoKICAgYWRkIC0tZGVidWctdG9rZW5zLCAtLWluZGVudC1vcHRpb25zCiAgIAoyMDAyLTA3LTE4IDA5OjE4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2F1dG9fbmxpc3QuaCwgc25tcGxpYi9zbm1wLXRjLmMKLCBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9pcml4Lmg6CgogICBBcHBseSBwYXRjaCBmcm9tIEJ1ZyAjNTgyMzQ3LCBmb3IgSXJpeCA2LjUgc3VwcG9ydC4KICAgU3VibWl0dGVkIGJ5IEphbiBZZW55YSBLYXNwcnphawogICAKMjAwMi0wNy0xOCAwOToxMiAgZHRzMTIKCiAgICogbWFuLzogc25tcHRyYXBkLjggKFY0LTItcGF0Y2hlcy41KSwgc25tcHRyYXBkLjguZGVmOgoKICAgRml4IG1hcmt1cCBwcm9ibGVtIG9uIHNubXB0cmFwZCBtYW4gcGFnZSAoQnVnICM1ODMzMjkpCiAgIAoyMDAyLTA3LTE4IDA5OjEwICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIFRoZSBmaXggZm9yIHRoZSB0bV9nbXRvZmYgcHJvYmxlbSBvbiBBSVggKEJ1ZyAjNTY1NzY5KSBhbHNvIGFwcGxpZXMgdG8gQUlYIDUKICAgCjIwMDItMDctMTggMDk6MDYgIGR0czEyCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMgKFY0LTItcGF0Y2hlcy4xKSwgZW5jb2RlX2tleWNoYW5nZS5jCjoKCiAgIEZpeCBvZmYtYnktb25lIGJ1ZmZlciBvdmVyZmxvdyAocGF0Y2ggIzU3NzI2MSkKICAgCjIwMDItMDctMTggMDg6NTEgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIEdlbmVyYXRlIG9uZSBjb2RlLWZpbGUgcGVyIHRhYmxlICh0byBtYXRjaCB0aGUgaGVhZGVyIHN0cnVjdHVyZSkuCiAgIE15IGFwb2xvZ2llcyBpZiB0aGlzIGlzbid0IGNvcnJlY3QsIFJvYmVydCAtIGJ1dCB0aGUgcHJldmlvdXMgYmVoYXZpb3VyCiAgIHNlZW1lZCB0byBiZSBicm9rZW4uCiAgIAoyMDAyLTA3LTE4IDA4OjM3ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5vbGQtYXBpLmNvbmY6CgogICBUYWNrbGUgc29tZSBvZiB0aGUgaW1tZWRpYXRlIGRlZmljaWVuY2llcyBpbiB0aGUgZmlyc3QgZHJhZnQgb2xkLWFwaSBjb25maWcuCiAgIChOb3cgdGhhdCBXZXMgaGFzIHBvaW50ZWQgbWUgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgZG9jdW1lbnRhdGlvbiEpCiAgIAoyMDAyLTA3LTE4IDA4OjIyICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIEZpeCB0aGUgJ2RlY2wnIHN1YnN0aXR1dGlvbiBoYW5kbGluZyAoc28gaXQgZG9lc24ndCBpbmNsdWRlIHRoZSBpbnRlcm5hbCB0b2tlbiBhcyB3ZWxsKS4KICAgCjIwMDItMDctMTggMDc6MTggIGR0czEyCgogICAqIGxvY2FsL21pYjJjLnNjYWxhci5jb25mOgoKICAgUHJvdmlkZSB0aGUgbWlzc2luZyBwYXJhbWV0ZXIgaW4gYSByZWFkX29ubHkgaW5zdGFuY2UgcmVnaXN0cmF0aW9uLgogICAKMjAwMi0wNy0xOCAwNzowOSAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmgKOgoKICAgQnJpbmcgdGhlICdyZWFkX29ubHlfaW50JyBpbnN0YW5jZSBoYW5kbGVyIGluIGxpbmUgd2l0aCB0aGUgcmVzdCBvZgogICB0aGUgY29udmVuaWVuY2UgaW5zdGFuY2UgaGFuZGxlcnMuCiAgIChhbmQgZXZlbiBicmVhayB0aGUgaGFiaXQgb2YgYSBsaWZldGltZSBhbmQgZGVjbGFyZSB0aGUgdGhpbmcuLi4uKQogICAKMjAwMi0wNy0xOCAwNTo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgZml4IGFub3RoZXIgbWVtb3J5IGxlYWsgZHVlIHRvIGFuIGltcHJvcGVyIGlmZGVmZWQgb3V0IHNlY3Rpb24gb2YgY29kZQogICAKMjAwMi0wNy0xOCAwNDo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zY2FwaS5jOgoKICAgSSdtIGJlZ2lubmluZyB0byByZWdyZXQgZXZlciBydW5uaW5nIGluZGVudCBvbiB0aGUgY29kZSBiYXNlLi4uCiAgIAoyMDAyLTA3LTE3IDE1OjQzICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb25mOgoKICAgZG9jdW1lbnQgYW5kIGluc3RhbGwgbWliMmMub2xkLWFwaS5jb25mCiAgIAoyMDAyLTA3LTE3IDEzOjA3ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4IHNlZ2ZhdWx0IChwb3NzaWJseSBjcmVhdGluZyBtZW1vcnkgbGVhayk7IGF1dGhvciBuZWVkcyB0byBleGFtaW5lIGNvZGUKICAgCjIwMDItMDctMTcgMDc6NDEgIGR0czEyCgogICAqIGxvY2FsLzogbWliMmMuYXJyYXktdXNlci5jb25mLCBtaWIyYy5jb25mLAogICBtaWIyYy5jcmVhdGUtZGF0YXNldC5jb25mLCBtaWIyYy5pbnRfd2F0Y2guY29uZiwKICAgbWliMmMuaXRlcmF0ZS5jb25mLCBtaWIyYy5zY2FsYXIuY29uZjoKCiAgIERhdmUncyBiZWluZyB1bnJlYXNvbmFibHkgcGlja3kgYWJvdXQgZ3JhbW1hciAmIHNwZWxsaW5nIGFnYWluLgogICBKdXN0IGlnbm9yZSBoaW0sIGFuZCBoZSdsbCBnbyBhd2F5Li4uLi4KICAgCjIwMDItMDctMTcgMDc6MjAgIGR0czEyCgogICAqIGxvY2FsL21pYjJjLm9sZC1hcGkuY29uZjoKCiAgIEluaXRpYWwgc3VwcG9ydCBmb3IgdGhlIG9sZCA0eC1zdHlsZSBhZ2VudCBBUEkgdXNpbmcgdGhlIG5ldyB2ZXJzaW9uIG9mIG1pYjJjLgogICBJdCBkb2Vzbid0IGhhbmRsZSB0eXBlcyBwcm9wZXJseSwgYW5kIEknbSBzdXJlIEknbGwgaGF2ZSBidWdnZXJlZCB1cCBzb21lIG9mCiAgIHRoZSBjb250cm9sIHN0cnVjdHVyZSBoYW5kbGluZywgYnV0IGl0IHNlZW1zIHRvIGdlbmVyYXRlIHNvbWV0aGluZyB0aGF0J3MKICAgcHJldHR5IGNsb3NlIHRvIHRoZSBvbGQgb3V0cHV0LiAgIEl0J3MgYmV0dGVyIHRoYW4gbm90aGluZy4uLi4uCiAgIAoyMDAyLTA3LTE2IDIyOjQwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIHJlc3RvcmUgaW5saW5lIGZ1bmN0aW9ucyAoc2lnaC4gSSBmZWVsIGxpa2UgSSdtIHBsYXlpbmcgcmluZy1hcm91bmQtdGhlLXJvc2llKQogICAKMjAwMi0wNy0xNiAyMTo1OCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oLAogICBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICByZW5hbWUgc29tZSBzdHJ1Y3QgbWVtYmVycyB0byBtYWtlIGNvZGUgZWFzaWVyIHRvIHJlYWQ7IGEgYml0IG9mIHJlLW9yZGVyaW5nCiAgIGluIHRoZSBzZXQgY29kZTsgbmV3IGZsYWdzIGZvciBuZXcgYW5kIGRlbGV0ZWQgcm93czsgcm93IGRlbGV0ZXMgbm93CiAgIGFjdHVhbHkgd29yayEKICAgCjIwMDItMDctMTYgMTk6MzIgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgY2hhbmdlIGNvbXBsZXggbWFjcm9zIGludG8gZnVuY3Rpb25zLiB3b3VsZCBiZSBuaWNlIGlmIEMgaGFkIGlubGluZS4KICAgCjIwMDItMDctMTYgMTg6MDcgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICB1bW0sIHRyeSB1c2luZyBjb3JyZWN0IGRlZmluZS46LS8KICAgCjIwMDItMDctMTYgMTg6MDUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICB0ZXN0IHRoYXQgbmV0LXNubXAtY29uZmlnLmggaGFzIGJlZW4gaW5jbHVkZWQsIGluc3RlYWQgb2YgYWN0dWFsbHkgaW5jbHVkaW5nIGl0Li4KICAgKHNob3VsZG4ndCB0aGlzIHJlYWxseSBiZSBpbiBhbGwgdGhlIGhlYWRlciBmaWxlcz8pCiAgIAoyMDAyLTA3LTE2IDEyOjE0ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdXBkYXRlIGZvciBjb250YWluZXJzCiAgIAoyMDAyLTA3LTE2IDExOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMTYgMTE6MTYgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMgKGdydW1ibGUgZ3J1bWJsZSkKICAgCjIwMDItMDctMTYgMTE6MTQgIHJzdG9yeQoKICAgKiBhcHBzL01ha2VmaWxlLmRlcGVuZDoKCiAgIHJlbW92ZSBvaWRfYXJyYXkgcmVsYXRlZCBkZXBlbmRlbmNpZXMKICAgCjIwMDItMDctMTYgMTE6MDIgIHJzdG9yeQoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmRlcGVuZCwgbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIG9pZF9hcnJheSByZWxhdGVkIGRlcGVuZGVuY2llcwogICAKMjAwMi0wNy0xNiAxMDo1MiAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZAo6CgogICByZW1vdmUgb2lkX2FycmF5IHJlbGF0ZWQgZGVwZW5kZW5jaWVzCiAgIAoyMDAyLTA3LTE2IDEwOjUwICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIHJlbW92ZSBmYWN0b3J5LmMKICAgCjIwMDItMDctMTYgMTA6MjkgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgbmV0c25tcF9jb250YWluZXJfaW5pdF9saXN0KCkgaW4gc3RhcnR1cCBpbml0cwogICAKMjAwMi0wNy0xNiAxMDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCwgc25tcGxpYi9vaWRfYXJyYXkuYwo6CgogICByZW1vdmUgdW51c2VkIGZpbGVzCiAgIAoyMDAyLTA3LTE2IDEwOjIxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NvbnRhaW5lci5oLCBzbm1wbGliL2NvbnRhaW5lci5jCjoKCiAgIGNoZyBwYXJhbSB0eXBlIGZyb20gdm9pZCogdG8gc3RydWN0ICoKICAgCjIwMDItMDctMTYgMTA6MDMgIHJzdG9yeQoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgcmVtb3ZlIHJlY2VudGx5IGRlbGV0ZWQgb2lkX2FycmF5Lmg7IGFkZCBmYWN0b3J5LCBiaW5hcnkgYXJyYXkgLltjaF07IGRlcml2ZQogICBPQkpTIGFuZCBMT0JKUyBmcm9tIENTUkNTOyBhZGQgKG9wdGlvbmFsKSBhdXRvIGRlcGVuZGVuY3kgZ2VuZXJhdGlvbgogICAKMjAwMi0wNy0xNiAwOTo1MyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oOgoKICAgcmVtb3ZlIHJlY2VudGx5IGRlbGV0ZWQgb2lkX2FycmF5LmgKICAgCjIwMDItMDctMTYgMDk6NTIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmg6CgogICBzdHJ1Y3Qgc3VidHJlZSAtPiBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTYgMDk6NDYgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHJlbW92ZSBsYXN0IHJlbWFpbmluZyByZWZzIHRvIG5vdyBkZWZ1bmN0IG9pZF9hcnJheQogICAKMjAwMi0wNy0xNiAwOTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXJfYmluYXJ5X2FycmF5LmgsCiAgIHNubXBsaWIvY29udGFpbmVyX2JpbmFyeV9hcnJheS5jOgoKICAgZ2VuZXJpYyBiaW5hcnkgYXJyYXkgY29udGFpbmVyIGV4dHJhY3RlZCBmcm9tIG9pZF9hcnJheQogICAKMjAwMi0wNy0xNiAwOTo0MCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmg7IG5ldyB0eXBlZGVmIHN0cnVjdCBuZXRzbm1wX2luZGV4IChvaWQgcHRyICsgbGVuKQogICAKMjAwMi0wNy0xNiAwOTozOCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYywKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgdXNlIGdlbmVyaWMgY29udGFpbmVyIGludGVyZmFjZTsgdXNlIG5ldyBuZXRzbm1wX2luZGV4IGluc3RlYWQgb2YKICAgb2lkX2FycmF5X2hlYWRlcjsgcmVuYW1lIGFycmF5X2dyb3VwIC0+IHJlcXVlc3RfZ3JvdXAKICAgCjIwMDItMDctMTYgMDk6MzQgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY29udGFpbmVyLmgsIHNubXBsaWIvY29udGFpbmVyLmMKOgoKICAgYWRkIGl0ZXJhdG9yczsgbW9yZSBmdW5jdGlvbiB0eXBlZGVmczsgcmVuYW1lIHNvbWUgZnVuYyBwdHJzLCBhZGQgZmluZF9uZXh0LAogICBnZXRfc3Vic2V0LCBnZXRfaXRlcmF0b3IsIGZvcl9lYWNoLCBuY29tcGFyZTsgYWRkIGFiaWxpdHkgdG8gaGF2ZSBuZXN0ZWQKICAgY29udGFpbmVyczsgbW9yZSB1dGlsaXR5IHJvdXRpbmVzOyBjb252ZW5pZW5jZSBtYXJjcm9zOyBzdGFydCBhZGRpbmcgY29tbWVudHMKICAgCjIwMDItMDctMTYgMDk6MjkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZmFjdG9yeS5oOgoKICAgZGVjbGFyYXRpb25zIGZvciBhIGdlbmVyaWMgZmFjdG9yeQogICAKMjAwMi0wNy0xNiAwODo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfZHluaXguYywgbWVtb3J5X2hwdXguYwosIHZtc3RhdF9keW5peC5jLCB2bXN0YXRfaHB1eC5jOgoKICAgQXBwbHkgcGF0Y2ggZnJvbSBidWcgcmVwb3J0IDU4MTYxOCAoYWxzbyBhcHBsaWNhYmxlIHRvIGR5bml4KQogICBQcm92aWRlZCBieSBOaWNob2xhcyBMLiBOaWdheQogICAKMjAwMi0wNy0xNiAwNjo1NCAgaGFyZGFrZXIKCiAgICogcGVybC86IEFTTi9BU04ucG0sIE9JRC9PSUQucG0sIGFnZW50L2FnZW50LnBtLAogICBhZ2VudC9kZWZhdWx0X3N0b3JlL2RlZmF1bHRfc3RvcmUucG0sCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbToKCiAgIHJlbW92ZSAib3VyIiBwcm9ibGVtIGFuZCB1c2Ugb2xkZXIgInVzZSB2YXJzIiBpbnN0ZWFkIGZvciBvbGRlciBwZXJsLgogICAgICh0aGlzIHNob3VsZCBtYWtlIGl0IHdvcmsgd2l0aCBwZXJsIDUuMDA1LiAgQ291bGQgc29tZSBvbmUgdGVzdCB0aGlzCiAgICAgIGZvciBtZT8pCiAgIAoyMDAyLTA3LTE1IDA2OjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBuYW1lcyBvZiBuZXRzbm1wX3N1YnRyZWUgZWxlbWVudHMgY2hhbmdlZAogICAKMjAwMi0wNy0xNSAwNjo0MiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgCjIwMDItMDctMTUgMDU6MjUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL25ldHNoOgoKICAgU29tZSByZWFsbHkgbmFzdHkgaGFja3MgdG8gZ2V0IGNvbG9yaXplZCB0YWJsZXMgdG8gd29yay4KICAgCjIwMDItMDctMTQgMjA6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90LzogYnVsa3dhbGsudCwgbWliLnQ6CgogICBjb21tZW50IG91dCBicm9rZW4gdGVzdHMgZm9yIG5vdyAoWFhYIG1hcmtlZCkKICAgCjIwMDItMDctMTQgMjA6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IGdldGJ1bGsuCiAgIAoyMDAyLTA3LTE0IDIwOjIwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgQSBuZXcgZnVuY3Rpb24gdG8gY2FsbCBhIHN1Yi1oYW5kbGVyIGJ1dCBwYXNzaW5nIGl0IG9ubHkgb25lIHJlcXVlc3QgdG8gaGFuZGxlLgogICAKMjAwMi0wNy0xMCAyMToyMSAgcnN0b3J5CgogICAqIHdpbjMyLzogY29uZmlnLmgsIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgZGVmaW5lIExPR19EQUVNT04sIHNpbmNlIHdpbmRvd3MgZG9lc24ndCBoYXZlIGl0CiAgIAoyMDAyLTA3LTEwIDIxOjA3ICByc3RvcnkKCiAgICogd2luMzIvOiBjb25maWcuaCwgbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgZGVmaW5lIG9mIGluX2FkZHJfdCwgd2hpY2ggY2FuIGJlIGZvdW5kIGluIG5ldC1zbm1wL3R5cGVzLmgKICAgCjIwMDItMDctMTAgMDI6MzYgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTEwIDAyOjM1ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gZG9uJ3QgdXNlIDAgaW4gJXAgZm9ybWF0IHNwZWNpZmllcnMKICAgCjIwMDItMDctMTAgMDI6MzQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBmaXggc29tZSBob3JyaWJsZSBpbmRlbnQgYnJva2VuIGZvcm1hdHRpbmcKICAgCjIwMDItMDctMTAgMDI6MzMgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIHJlbW92ZSBzb21lIG9ic29sZXRlIHZhcmlhYmxlcwogICAKMjAwMi0wNy0xMCAwMjozMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSByZWZsZWN0IGNoYW5nZWQgZnVuY3Rpb24gbmFtZXMgZnJvbSBhZ2VudF9yZWdpc3RyeQogICAKMjAwMi0wNy0xMCAwMjozMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICAgIC0gY2hhbmdlcyBkdWUgdG8gcmVuYW1pbmcgb2Ygc3RydWN0IHN1YnRyZWUgdG8gbmV0c25tcF9zdWJ0cmVlCiAgICAgLSBOT1RFIE1FTU9SWSBMRUFLICh3aGljaCBJIGNhbid0IHNlZSBob3cgdG8gZml4IC0tIG5ldyBhZ2VudCBBUEkKICAgICAgIGV4cGVydHMgcGxlYXNlIGV4YW1pbmUpCiAgIAoyMDAyLTA3LTEwIDAyOjI5ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gc3RydWN0IHN1YnRyZWUgcmVuYW1lZCB0byBuZXRzbm1wX3N1YnRyZWUKICAgICAtIG5hbWUsIHN0YXJ0LCBlbmQgbWVtYmVycyBhcmUgbm93IGR5bmFtaWNhbGx5IGFsbG9jYXRlZCB0byByZWR1Y2UKICAgICAgIHdhc3RlZCBtZW1vcnkgKGJ5IGEgZmFjdG9yIG9mIDUgb3Igc28pCiAgICAgLSBmdW5jdGlvbnMgYXJlIHJlbmFtZWQgY29uc2lzdGVudGx5CiAgIAoyMDAyLTA3LTEwIDAyOjIwICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5oLAogICBuZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oLCBzbm1wX2FnZW50LmgsIHNubXBfdmFycy5oCiwgdmFyX3N0cnVjdC5oOgoKICAgICAtIHN0cnVjdCBzdWJ0cmVlIHJlbmFtZWQgdG8gbmV0c25tcF9zdWJ0cmVlCiAgIAoyMDAyLTA3LTA5IDA2OjAyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmcmVlIGNhY2hlX2lkIHN0b3JhZ2Ugd2hlbiBjbG9zaW5nIHNlc3Npb24KICAgCjIwMDItMDctMDkgMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGp1c3QgY2FsbCBuZXRzbm1wX2RzX3NodXRkb3duKCkgb25jZSBpbiBzbm1wX3NodXRkb3duKCkKICAgCjIwMDItMDctMDkgMDQ6MTUgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gbmV0c25tcF9maXh1cF9taWJfZGlyZWN0b3J5KCkKICAgCjIwMDItMDctMDkgMDM6MTQgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgYSBjYXN0IHRvIHF1ZWxsIGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDctMDggMjI6MDkgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmg6CgogICBleHRlcm4gQyBmb3IgQysrIGNvbXBpbGVzCiAgIAoyMDAyLTA3LTA4IDA3OjIxICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmg6CgogICAgIC0gcmVtb3ZlIG9ic29sZXRlIGZ1bmN0aW9uIHByb3RvdHlwZXMKICAgCjIwMDItMDctMDcgMTk6NDUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB1cGRhdGUgdG8gdXNlIGNvbnRhaW5lcnMKICAgCjIwMDItMDctMDcgMTk6MzggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5Lmg6CgogICBmaXggdHlwbwogICAKMjAwMi0wNy0wNyAxOTozNyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogZGlzay5jLCBwcm9jLmM6CgogICBmaXggY29tcGlsZXIgd2FybmluZwogICAKMjAwMi0wNy0wNyAxOTozMyAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwLzogYWdlbnQvbnNNb2R1bGVUYWJsZS5jLAogICBhZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYywgaG9zdC9ocl9zd2luc3QuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE5OjAzICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJzCiAgIAoyMDAyLTA3LTA3IDE5OjAwICByc3RvcnkKCiAgICogc25tcGxpYi9vaWRfc3Rhc2guYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5ncwogICAKMjAwMi0wNy0wNyAxODo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvbXBpbGVyIHdhcm5pbmdzCiAgIAoyMDAyLTA3LTA3IDE4OjUwICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmgsIHNubXBsaWIvc25tcF9hcGkuYwo6CgogICBtYWtlIHBhcmFtIGNvbnN0OyBmaXggY29tcGlsZSBjb25zdCB3YXJuaW5nCiAgIAoyMDAyLTA3LTA3IDE4OjI3ICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBjb21waWxlciB3YXJuaW5nOyBmaXggbWVtb3J5IGxlYWs7IHByZXAgYSBmZXcgY29tbWVudHMgZm9yIGluZGVudAogICAKMjAwMi0wNy0wNiAxNDoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHNubXBsaWIvc25tcF92ZXJzaW9uLmMsCiAgIEZBUSwgcGVybC9TTk1QL1NOTVAucG06CgogICAtIChzbm1wbGliL3NubXBfdmVyc2lvbi5jIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNS4wLjIucHJlMSApCiAgIAoyMDAyLTA3LTA2IDE0OjEwICBoYXJkYWtlcgoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBjaGFuZ2UgcHJvamVjdCB2ZXJzaW9uIHRvIDUuMC4yCiAgIAoyMDAyLTA3LTA2IDE0OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBzbm1wdHJhcGQgaXMgYWN0dWFsbHkgYnVpbHQgaW4gdGhlIGFwcHMgZGlyZWN0b3J5LCBub3QgdGhlIGFnZW50IGRpcmVjdG9yeS4KICAgCjIwMDItMDctMDUgMTE6NTUgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGNsYXJpZnkgZGlyZWN0aW9ucyBmb3Igb2J0YWluaW5nIHBlcmwvU05NUCBtb2R1bGUuCiAgIAoyMDAyLTA3LTA1IDA1OjE4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIEkgbXVzdCBub3QgY2hlY2sgaW4gY29kZSB3aXRob3V0IGNvbXBpbGluZyBpdAogICAgIC0gSSBtdXN0IG5vdCBjaGVjayBpbiBjb2RlIHdpdGhvdXQgY29tcGlsaW5nIGl0CiAgICAgLSBJIG11c3Qgbm90IGNoZWNrIGluIGNvZGUgd2l0aG91dCBjb21waWxpbmcgaXQKICAgICAtIC4uLgogICAKMjAwMi0wNy0wNSAwMzoyMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IGFnZW50eC9jbGllbnQuYywgbWliSUkvc3lzdGVtX21pYi5jOgoKICAgICAtIHN5c09iamVjdElEIHdhcyBiZWluZyByZXR1cm5lZCBtaW51cyBpdHMgbGFzdCBzdWItaWRlbnRpZmllciBiZWNhdXNlCiAgICAgICB0aGUgbGVuZ3RoIHZhcmlhYmxlIGhhZCBub3QgYmVlbiB1cGRhdGVkIHRvIHJlZmxlY3QgdGhlIGZhY3QgdGhhdCBpdAogICAgICAgaXMgbm93IGxvbmdlci4gIENvZGUgY2hhbmdlZCB0byB1c2Ugc2l6ZW9mKCkgaW5zdGVhZCwgc28gdGhpcyB3b24ndAogICAgICAgaGFwcGVuIGFnYWluLiAgUmVwb3J0ZWQgYnkgU3RpYW4gU29pbGFuZCAoYnVnICM1Nzc0MzkpLgogICAKMjAwMi0wNy0wNCAxMDoxMyAgcnN0b3J5CgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wCiAgIAoyMDAyLTA3LTA0IDA3OjA2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtb2RpZmllZCBoYW5kbGluZyBvZiBvcGFxdWUgcG9pbnRlciBmb3Igc3RyZWFtLWJhc2VkIHRyYW5zcG9ydHMgdG8KICAgICAgIGF2b2lkIGJvdGggbXVsdGlwbGUgZnJlZSgpIHByb2JsZW0gYW5kIHVubmVjZXNzYXJ5IGNvcHlpbmcuCiAgIAoyMDAyLTA3LTA0IDA2OjAwICBkdHMxMgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZiwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgKFY0LTItcGF0Y2hlcy5bNSw5XSksIG1hbi9zbm1wZC5jb25mLjUuZGVmLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIEFwcGx5IEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlcidzIE5ldHdvcmtEaXNrIHBhdGNoICM1NTQ1NTQKICAgCjIwMDItMDctMDQgMDU6NTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9maWxlc3lzLmMsIGhyX2ZpbGVzeXMuaAogICAoVjQtMi1wYXRjaGVzLls1LDFdKSwgaHJfZmlsZXN5cy5jLCBocl9maWxlc3lzLmg6CgogICBBcHBseSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIncyBORlMgZmlsZXN5c3RlbSBwYXRjaCAjNTU0NTUzCiAgIChzaW1wbGlmaWVkIHRvIGF2b2lkIHRoZSByZS1pbmRlbnRhdGlvbiAtIHdoaWNoIG1ha2VzIGl0IGVhc2llciB0byBzZWUKICAgIHdoYXQncyBjaGFuZ2VkLiAgVGhlIHdob2xlIEhvc3RSZXMgZ3JvdXAgbmVlZHMgY2xlYW5pbmcgdXAgYW55d2F5ISkKICAgCjIwMDItMDctMDQgMDU6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEVuc3VyZSB0cmFuc3BvcnQgb3BhcXVlIGRhdGEgaXNuJ3QgbXVsdGlwbHkgYXNzaWduZWQKICAgKGFuZCBoZW5jZSBtdWx0aXBseSBmcmVlZCkgZm9yIHN0cmVhbS1iYXNlZCB0cmFuc3BvcnRzLgogICBEYXRhZ3JhbS1iYXNlZCB0cmFuc3BvcnRzIGRvbid0IHN1ZmZlciBmcm9tIHRoaXMgcHJvYmxlbS4KICAgQmFzZWQgb24gUGF0Y2ggNTczNzcxCiAgIAoyMDAyLTA3LTAzIDE2OjI4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBiZSBwcmVjaXNlIGFib3V0IHdoYXQgZmlsZSBuZWVkcyB0byBiZSBjb25maWd1cmVkIGZvciBhY2Nlc3MgY29udHJvbAogICAKMjAwMi0wNy0wMyAxNDoxMyAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmNvbmY6CgogICBmaXggbWlub3IgZ3JhbW1hciBlcnJvcnM7IGFkZCBkZXNjciBmb3IgbWliMmMuYXJyYXktdXNlcjsgYWRkIHNlY3Rpb24gaGVhZGVyCiAgIGZvciBnZW5lcmF0aW5nIGhlYWRlciBkZWZpbml0aW9uIGZpbGVzCiAgIAoyMDAyLTA3LTAzIDEzOjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IHR5cGVzLmgsIGxpYnJhcnkvc3lzdGVtLmg6CgogICBtb3ZlIGluY2x1ZGUgZm9yIGluX2FkZHJfdCB0byBuZXQtc25tcC90eXBlcy5oLCB3aGVyZSBpbl9hZGRyX3QgaXMgZGVmaW5lZAogICBmb3Igc3lzdGVtcyB3L291dCBuZXRpbmV0L2luLmgKICAgCjIwMDItMDctMDMgMTI6NTEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zY2FsYXIuY29uZjoKCiAgIG1vcmUgdHdlYWtzIG5vdGljZWQgb24gdGhlIG1haWxpbmcgbGlzdAogICAKMjAwMi0wNy0wMyAwODoyMyAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC90ZXN0LnBsOgoKICAgbWFrZSB0ZXN0IGNsZWFudXBzIHRlc3QucGwKICAgCjIwMDItMDctMDMgMDM6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogdXRpbF9mdW5jcy5jIChWNC0yLXBhdGNoZXMuMSksIHV0aWxfZnVuY3MuYwo6CgogICBTaHV0IHRoZSBhZ2VudCBkb3duIGNsZWFubHkgYmVmb3JlIHJlc3RhcnRpbmcuCiAgIFRoaXMgY2xvc2VzIGFueSBTTk1QL0FnZW50WCBwb3J0cyBhcyB3ZWxsLgogICAKMjAwMi0wNy0wMyAwMzoyNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgT0lEIHN1Yi1pZGVudGlmaWVycyBhcmUgdW5zaWduZWQsIHNvIHRyZWF0aW5nIHRoZW0gYXMgc2lnbmVkIGNhbgogICBnaXZlIHRoZSB3cm9uZyByZXN1bHRzIHdpdGggbGFyZ2UgdmFsdWVzLgogICAKMjAwMi0wNy0wMyAwMzoyMCAgZHRzMTIKCiAgICogc25tcGxpYi9zeXN0ZW0uaCAoVjQtMi1wYXRjaGVzLjUpLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc3lzdGVtLmg6CgogICBFbnN1cmUgaW5fYWRkcl90IGlzIGRlZmluZWQuCiAgIAoyMDAyLTA3LTAzIDAyOjM0ICBkdHMxMgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFRlc3RpbmcgZm9yIDxzeXMvZGlza2xhYmVsLmg+IHJlcXVpcmVzIDxtYWNoaW5lL3R5cGVzLmg+IG9uIE5ldEJTRCAxLjUuCiAgIFJlcG9ydGVkIGJ5IEZlbGljaWEgTmVmZi4KICAgKEFwcGFyZW50bHkgZnJvbSB0aGUgTmV0QlNEIGJ1ZyBkYXRhYmFzZSAtIHdoeSB0aGV5IGRpZG4ndCB0ZWxsIHVzIGFib3V0CiAgIGl0IGlzIGEgbXlzdGVyeSB0byBtZS4uLi4pCiAgIAoyMDAyLTA3LTAzIDAyOjE5ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW46CgogICBGaXggdGhlIGRlZmF1bHQgdmFsdWUgZm9yIHN5c09iamVjdElEIGFzIHJlcG9ydGVkIGluIHRoZSBjb25maWd1cmUgLS1oZWxwIG91dHB1dC4KICAgKFRoZSBhY3R1YWwgdmFsdWUgdXNlZCBpcyBjb3JyZWN0IC0gaXQncyBqdXN0IHRoZSBoZWxwIG91dHB1dCB0aGF0J3Mgd3JvbmcpLgogICBTcG90dGVkIGJ5IFNhbmRoeWEgU2F0eWFuYXJheWFuLgogICAKMjAwMi0wNy0wMiAyMzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIHVwZGF0ZSB0ZXh0IGZvciB2YXJpb3VzIC5jb25mIGZpbGVzCiAgIAoyMDAyLTA3LTAyIDEzOjQ2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuc2NhbGFyLmNvbmY6CgogICBmaXhlcyBub3RlZCBvbiB0aGUgbWFpbGluZyBsaXN0IGJ5IFBhdHJpY2UgS2FkaW9uaWsgPGthZGlvbmlrQGVuc2VpcmIuZnI+CiAgIAoyMDAyLTA3LTAyIDAyOjM5ICBkdHMxMgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBBZGQgdGhlICdzbm1wZCcgYW5kICdzbm1wdHJhcGQnIGJpbmFyeSBuYW1lcyB0byB0aGUgYXBwcm9wcmlhdGUgcGF0aHMKICAgd2hlbiBzZXR0aW5nIHVwIHRoZSB0ZXN0aW5nIGZyYW1ld29yay4KICAgCjIwMDItMDctMDEgMDc6NTMgIGR0czEyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy44KSwgYXNuMS5jOgoKICAgRW5jb2RlL0RlY29kZSBPSURzIG9mIHRoZSBmb3JtIDIuWCAoWCA+IDQwKSBjb3JyZWN0bHkuCiAgIAoyMDAyLTA3LTAxIDAyOjQwICBqYnBuCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBob3JyaWJsZSBmb3JtYXR0aW5nIGluIGhlbHAgZm9yIHRyYW5zcG9ydHMKICAgCjIwMDItMDctMDEgMDI6MjMgIGR0czEyCgogICAqIHNlZHNjcmlwdC5pbjoKCiAgIFBpY2sgdXAgdGhlIGNoYW5nZWQgZGVmaW5pdGlvbiBmb3IgdGhlIHJvb3Qgb2YgdGhlIFVDRCBleHRlbnNpYmxlIGFnZW50IHRhYmxlcwogICAoc28gdGhhdCB0aGUgRVhBTVBMRS5jb25mIGZpbGUgZ2V0cyBzZXQgdXAgd2l0aCB0aGUgY29ycmVjdCBudW1lcmljIE9JRHMpCiAgIAoyMDAyLTA2LTI4IDA2OjQ2ICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIHJlbW92ZSB0cmFuc3BvcnQgc3BlY2lmaWVyIGFuZCBwb3J0IG51bWJlciBmcm9tIHN0cmluZ3MgcmV0dXJuZWQKICAgICAgIGZyb20gc25tcF90Y3BfZm10YWRkcigpIHdoaWNoIGJyZWFrIHRjcF93cmFwcGVycyAoYW5kIHBlcmhhcHMKICAgICAgIG90aGVyIHRoaW5ncykuCiAgIAoyMDAyLTA2LTI4IDA0OjQxICBkdHMxMgoKICAgKiBwZXJsL2FnZW50L3Rlc3QucGw6CgogICBVcGRhdGUgZGVmYXVsdCBzdG9yZSByZXRyaWV2YWwgZnVuY3Rpb25zIHRvIHVzZSB0aGUgY29ycmVjdCBuYW1lLgogICAKICAgTm90ZSB0aGF0IHRoaXMgdGVzdCBzY3JpcHQgYXBwZWFycyB0byBpbmNsdWRlIHR3byBpbmZpbml0ZSBsb29wcy4KICAgSSdtIG5vdCBjbGVhciBob3cgdGhpcyBpcyBleHBlY3RlZCB0byBydW4gc3VjY2Vzc2Z1bGx5ID8KICAgCjIwMDItMDYtMjggMDQ6MzkgIGR0czEyCgogICAqIHBlcmwvYWdlbnQvYWdlbnQueHM6CgogICBSZW1vdmUgcmVmZXJlbmNlIHRvIG5vbi1leGlzdGVudCBkZWd1Z2dpbmcgZnVuY3Rpb24uCiAgIAoyMDAyLTA2LTI4IDA0OjM3ICBkdHMxMgoKICAgKiBwZXJsL21hbmFnZXIvOiBNYWtlZmlsZS5QTCwgZGlzcGxheXRhYmxlLnBtLAogICBnZXRWYWx1ZXMucG0sIG1hbmFnZXIucG0sIHNubXB0b3NxbDoKCiAgIEJyaW5nIHBlcmwgJ21hbmFnZXInIG1vZHVsZSB1bmRlciB0aGUgTmV0U05NUCBiYW5uZXIKICAgKGJvdGggaW4gdGVybXMgb2YgbW9kdWxlIGdyb3VwIG5hbWUsIGFuZCByZWZlcmVuY2VzIHRvICd1Y2Qtc25tcCcpLgogICBSZW1vdmUgc29tZSBVQ0Qtc3BlY2lmaWMgc2V0dGluZ3MuCiAgIAogICBOb3RlIHRoYXQgc25tcHRvc3FsIHN0aWxsIHJlZmVycyBleHBsaWNpdGx5IHRvIFdlcycgVUNEIGVtYWlsIGFkZHJlc3MsCiAgIGFuZCBtYW5hZ2VyLnBtIHRvIFdlcycgVUNEIGZpbGVzdG9yZSBwYXRoLiAgVGhlIHJlbGV2YW50IGxpbmVzIGhhdmUKICAgYmVlbiBoaWdobGlnaHRlZCwgdG8gZW5jb3VyYWdlIGFueW9uZSB3aXNoaW5nIHRvIHVzZSB0aGlzIHRvIGNoYW5nZSB0aGVtLgogICAKMjAwMi0wNi0yOCAwNDoxMiAgZHRzMTIKCiAgICogcGVybC86IEFueURhdGFfU05NUC9NYWtlZmlsZS5QTCwgT0lEL01ha2VmaWxlLlBMLAogICBTTk1QL01ha2VmaWxlLlBMLCBhZ2VudC9NYWtlZmlsZS5QTCwKICAgbWFuYWdlci9NYWtlZmlsZS5QTDoKCiAgIFJlbW92ZSBjaGVja2luZyBmb3IgImludGVybmFsIiBwcmVyZXF1aXNpdGVzLCBzbyB0aGF0ICJwZXJsIE1ha2VmaWxlLlBMIgogICBhdCB0aGUgdG9wIGxldmVsIHdpbGwgd29yayAtIGV2ZW4gb24gYSBwcmlzdGluZSBzeXN0ZW0uCiAgIAogICBRbjoKICAgICBJcyBpdCBuZWNlc3NhcnkvZGVzaXJhYmxlIHRvIHNlcGFyYXRlIHRoZSBOZXRTTk1QIG1vZHVsZXMgdG8gdGhpcyBleHRlbnQ/CiAgIFdvdWxkIGl0IG5vdCBiZSBzaW1wbGVyIHRvIGhhdmUgYWxsIG9mIHRoZSBtYWluIC5wbS8ueHMgZmlsZXMgaW4gYSBzaW5nbGUKICAgTmV0U05NUCBkaXJlY3RvcnksIGFuZCBjb21waWxlL2luc3RhbGwgdGhlbSBhbGwgZnJvbSB0aGVyZT8KICAgCjIwMDItMDYtMjggMDE6NDUgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ2hlY2sgZm9yIC0td2l0aC1lbnRlcnByaXNlIChldCBhbCkgYmVpbmcgaW52b2tlZCB3aXRob3V0IGEgdmFsdWUsIGFuZCBib21iIG91dC4KICAgCjIwMDItMDYtMjcgMjE6NDMgIHJzdG9yeQoKICAgKiBSRUFETUUuc29sYXJpczoKCiAgIG5ldyBSRUFETUUgZGV0YWlubGluZyB0aGUgdXNlIG9mIFNGSU8gdG8gY2lyY3VtdmVudCB0aGUgMjU1IGZkIGxpbWl0IG9uCiAgIHNvbGFyaXMuCiAgIAoyMDAyLTA2LTI3IDExOjA5ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICByZW1vdmUgY2hhbmdpbmcgYXJyYXk7IGFkZCBuZXRzbm1wX3RhYmxlX2FycmF5X3JlbW92ZV9yb3coKQogICAKMjAwMi0wNi0yNyAwNDoxNSAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBTb21lIHZlcnNpb25zIG9mICdtYWtlZGVwZW5kJyAoZS5nLiBSZWRIYXQgNy4xKSwgY2FuJ3QgaGFuZGxlICItb3N1ZmZpeCIKICAgYXMgYSBzaW5nbGUgb3B0aW9uLiAgQWxsIHZlcnNpb25zIHNlZW0gaGFwcHkgd2l0aCAiLW8gc3VmZml4IiBzbyB1c2UgdGhhdC4KICAgCjIwMDItMDYtMjcgMDM6MzEgIGR0czEyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBVc2UgRU5WX1NFUEFSQVRPUl9DSEFSIHJhdGhlciB0aGFuIGhhcmR3aXJpbmcgJzonIGluIG5ldHNubXBfc2V0X21pYl9kaXJlY3RvcnkKICAgKGFzIHN1Z2dlc3RlZCBieSBSb2JlcnQpCiAgIAoyMDAyLTA2LTI3IDAzOjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgICAtIHJlbW92ZSB0cmFuc3BvcnQgc3BlY2lmaWVyIGFuZCBwb3J0IG51bWJlciBmcm9tIHN0cmluZ3MgcmV0dXJuZWQKICAgICAgIGZyb20gc25tcF91ZHBfZm10YWRkcigpIHdoaWNoIGJyZWFrIHRjcF93cmFwcGVycyAoYW5kIHBlcmhhcHMKICAgICAgIG90aGVyIHRoaW5ncykuCiAgIAoyMDAyLTA2LTI3IDAzOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHNubXBfbWliLmMgKFY0LTItcGF0Y2hlcy4yKSwgc25tcF9taWIuYwo6CgogICBWYWxpZGF0ZSBuZXcgc25tcEVuYWJsZUF1dGhlblRyYXBzIHZhbHVlIGJlZm9yZSB0cnlpbmcgdG8gdXNlIGl0LgogICBTcG90dGVkICYgZml4ZWQgYnkgU2hhbnRoYSBLdW1hcmEKICAgCjIwMDItMDYtMjUgMTQ6MDkgIHJzdG9yeQoKICAgKiBhcHBzL3NubXBzZXQuYzoKCiAgIGFkZCBBUFBUT1BTICgtQ3EpIGZvciBzdXBwcmVzc2luZyBvdXRwdXQgb2Ygc2V0IHJlc3VsdHMgb24gc3VjY2VzcwogICAKMjAwMi0wNi0yNSAwOToyOCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jOgoKICAgQXBwbHkgcGF0Y2ggIzU1OTg0OCB0byB1c2UgdGhlIC9wcm9jIHBzZXVkby1maWxlc3lzdGVtIHVuZGVyIExpbnV4CiAgIChyYXRoZXIgdGhhbiBwYXJzaW5nIHRoZSBvdXRwdXQgb2YgcHMpCiAgIAoyMDAyLTA2LTI1IDA4OjU5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIENoZWNrIGZvciAnYWl4NCcgKHdoaWNoIGlzIHRoZSB0b2tlbiBkZWZpbmVkIGluIHRoZSBzeXN0ZW0gaGVhZGVyIGZpbGUpCiAgIHJhdGhlciB0aGFuICdhaXgnLiAgIFNlZSBidWcgIzU2NTc2OQogICAKMjAwMi0wNi0yNSAwODozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgVHJlYXQgJzAnIGFzIGFuIGludmFsaWQgaW5kZXggZm9yIGEgInNpbXBsZSB0YWJsZSIuCiAgIAoyMDAyLTA2LTI1IDA3OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQtZGF0YS9zeXN0ZW06CgogICBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHN5c0NvbnRhY3QuMCBhbmQgc3lzTG9jYXRpb24uMAogICBjb25maWd1cmF0aW9uIHRva2Vucy4KICAgCjIwMDItMDYtMjUgMDY6NDAgIGpicG4KCiAgICogbWFuLzogTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuMy5ib3QsCiAgIGRlZmF1bHRfc3RvcmUuMy50b3A6CgogICAgIC0gYWRkIG5ldHNubXBfIHByZWZpeCB0byBkZWZhdWx0X3N0b3JlIGZ1bmN0aW9ucwogICAKICAgICAtIGNsZWFuIHVwIG1hbnBhZ2UgYSBiaXQKICAgCiAgICAgLSBmaXggYnJlYWthZ2UgaW4gZ2VuZXJhdGlvbiBvZiBkZWZhdWx0X3N0b3JlLjMuaCBkdWUgdG8gYXV0by1pbmRlbnRhdGlvbgogICAgICAgb2YgZGVmYXVsdF9zdG9yZS5oCiAgIAoyMDAyLTA2LTI1IDAyOjU1ICBqYnBuCgogICAqIEVYQU1QTEUuY29uZi5kZWYgKFY0LTItcGF0Y2hlcy4zKSwgRVhBTVBMRS5jb25mLmRlZjoKCiAgICAgLSBtZW50aW9uIHRoYXQgc2V0dGluZyBzeXNMb2NhdGlvbiBldCBhbC4gaW4gc25tcGQuY29uZiBtYWtlcyB0aGVtCiAgICAgICByZWFkLW9ubHkKICAgCiAgICAgLSBhbHNvIGNoYW5nZSBzeW50YXggb2YgYWxsIGV4YW1wbGUgY29tbWFuZCBsaW5lIHRvb2xzIHRvIHVzZSBuZXdlcgogICAgICAgLWMgQ09NTVVOSVRZIHN5bnRheCBub3QgcG9zaXRpb25hbCBwYXJhbWV0ZXIKICAgCjIwMDItMDYtMjQgMDg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgbWFrZSBidWZmZXIgc2l6ZSBpbmNyZWFzZSBub3RlIGEgZGVidWcgc3RhdGVtZW50IHJhdGhlciB0aGFuIGEgZ2VuZXJpYwogICBsb2cgc3RhdGVtZW50LgogICAKMjAwMi0wNi0yMyAxODo0MCAgZHJpZWh1aXMKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBIYW5kbGUgQ09VTlRFUjY0IGluIF9fdHJhbnNsYXRlX2Fzbl90eXBlLgogICAKMjAwMi0wNi0yMyAxNjowMyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvbmV0c2g6CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgc2NyaXB0IGFuZCB0aGUgbGFuZ3VhZ2UgaXQgaG91c2VzLgogICAgIChtYW4gcGFnZSBhdXRvLWdlbmVyYXRlZCBmcm9tIHRoZSBjb250YWluZWQgcG9kIGRvY3VtZW50YXRpb24pCiAgIAoyMDAyLTA2LTIzIDE1OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvUkVBRE1FOgoKICAgdXBkYXRlIHRvIHJlZmVyZW5jZSB0b3AgbGV2ZWwgTWFrZWZpbGUuUEwKICAgCjIwMDItMDYtMjMgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFNOTVAueHMgKFY0LTItcGF0Y2hlcy4xKSwgU05NUC54czoKCiAgIGZpeCByZXBvcnRlZCBieSBXaWxsZW0gRGVra2VyIGZvciBXaW5kb3dzLiAgQnVnICM1NDMxOTQgZml4ZWQuCiAgIAoyMDAyLTA2LTIyIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuc25tcHYzOgoKICAgdXBkYXRlIGZvciByZWNlbnQgbWV0aG9kb2xvZ2llcwogICAKMjAwMi0wNi0yMSAxNjowNyAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaW5hbCAoaG9wZWZ1bGx5ISkgZml4IGZvciBwYXJzaW5nIGlwIGFkZHJlc3NlcyBmcm9tCiAgICJGY28uIEphdmllciBSaWRydWVqbyIgPGFjYnJpcGVmQHNpLmVodS5lcz4KICAgCjIwMDItMDYtMTkgMTQ6MzggIGhhcmRha2VyCgogICAqIG1hbi86IG5ldHNubXBfYWdlbnQuMywgbmV0c25tcF9idWxrX3RvX25leHQuMywKICAgbmV0c25tcF9kZWJ1Zy4zLCBuZXRzbm1wX2hhbmRsZXIuMywgbmV0c25tcF9pbnN0YW5jZS4zCiwgbmV0c25tcF9tdWx0aXBsZXhlci4zLCBuZXRzbm1wX29sZF9hcGkuMywKICAgbmV0c25tcF9yZWFkX29ubHkuMywgbmV0c25tcF9zZXJpYWxpemUuMywKICAgbmV0c25tcF90YWJsZS4zLCBuZXRzbm1wX3RhYmxlX2FycmF5LjMsCiAgIG5ldHNubXBfdGFibGVfZGF0YS4zLCBuZXRzbm1wX3RhYmxlX2RhdGFzZXQuMywKICAgbmV0c25tcF90YWJsZV9pdGVyYXRvci4zLCBuZXRzbm1wX3RvZG8uMzoKCiAgIHVwZGF0ZSBmcm9tIGRveHlnZW4KICAgCjIwMDItMDYtMTkgMTE6NTAgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuaW50X3dhdGNoLmNvbmYsIG1pYjJjLnNjYWxhci5jb25mOgoKICAgc2NhbGFyIG1pYjJjIGNvbmZpZ3VyYXRpb24gZmlsZXMgZm9yIGdlbmVyYXRpbmcgc2NhbGFyIGNvZGUuCiAgIAoyMDAyLTA2LTE5IDExOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9zY2FsYXJfaW50LmM6CgogICBjbGVhbiB1cCBtdWx0aS1saW5lIGNvbW1lbmQgd2hpY2ggd2FzIG1lc3NlZCB1cCBieSBpbmRlbnQuCiAgIAoyMDAyLTA2LTE5IDExOjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9uZXRzaDoKCiAgIC0gYWRkIHN1cHBvcnQgZm9yIHByb21wdGluZyBvZiB1bmtub3duIHBhcmFtZXRlcnMgdG8gYWxpYXNlcy4KICAgLSBtaXNjIG90aGVyIGltcHJvdmVtZW50cyAobGlrZSAicmVoYXNoIikKICAgCjIwMDItMDYtMTkgMTE6MzggIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGZpeCBmb3IgbmV3IGRlZmF1bHQgc3RvcmUgQVBJCiAgIAoyMDAyLTA2LTE5IDExOjI5ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogTWFrZWZpbGUuUEwsIE1ha2VmaWxlLm1ha2VmaWxlcywKICAgTWFrZWZpbGUuc3Vicy5wbCwgbWFrZS1wZXJsLW1ha2VmaWxlcywgQVNOL01ha2VmaWxlLlBMCiwgT0lEL01ha2VmaWxlLlBMLCBTTk1QL01ha2VmaWxlLlBMLAogICBhZ2VudC9NYWtlZmlsZS5QTCwgYWdlbnQvZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCwKICAgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTDoKCiAgIEFSR0dHR0dHCiAgIEkgbG92ZSBwZXJsLgogICBJIGhhdGUgcGVybCdzIG1ha2Ugc3lzdGVtLgogICBJIGhhdGUgdGhlIGZhY3QgdGhhdCBwZXJsIHNlZ2ZhdWx0cyBpZiBHZXRPcHRpb25zKCkgaXMgY2FsbGVkIG1vcmUKICAgdGhhbiBvbmNlLgogICBzaWdoLgogICBUaGlzIGhvcGVmdWxseSB3aWxsIGZpeCB0aGUgcGVybCBtb2R1bGUgYnVpbGQgcm91dGluZXMgc28gaXQgYXQgbGVhc3QKICAgd29ya3MgKGJ1dCBpdCdzIHN0aWxsIHVnbHkgYW5kIGNvdWxkIHVzZSBtb3JlIGNsZWFuaW5nKS4KICAgCjIwMDItMDYtMTkgMDc6NDUgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBmaXggaW5maW50ZSBsb29wIGFuZCBhZGQgZGVidWcgaW4gcmVtb3ZlX2RlbGVnYXRlZAogICAKMjAwMi0wNi0xOCAwNzozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgTlVMTCB0aGUgcHJpdiBwb2ludGVyIG9uIHNlc3Npb24gZHVwbGljYXRpb24uICB0aGFua3MgdG8gcmV6aXRvegogICAKMjAwMi0wNi0xNyAwNjoyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQ2hhbmdlZCBLYXRzdWhpc2EncyBlbWFpbCBhZGRyZXNzLCBvbiByZXF1ZXN0CiAgIAoyMDAyLTA2LTE0IDA3OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICBQYXRjaCAjNTY5MDIxOiBmcm9tIExhdXJpIE15bGxhcmkKICAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiB0aGUgdGFibGUgaXRlcmF0b3Igc3VwcG9ydC4KICAgCjIwMDItMDYtMTQgMDc6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzU2OTAyMCBmcm9tIHJleml0b3ogb24gSVJDIHRvIGZpeCBub24taW5pdGlhbGl6ZWQgdmFyaWFibGUKICAgCjIwMDItMDYtMTQgMDM6NTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYzoKCiAgIEFkZCAobnVsbCkgY29udGV4dCwgdG8gYnJpbmcgaW50byBsaW5lIHdpdGggdGhlIHY1IHJlZ2lzdHJ5IEFQSXMuCiAgIEZpeGVzIGJ1ZyA1Njg1ODAuCiAgIAoyMDAyLTA2LTE0IDAyOjI3ICBkdHMxMgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmU6CgogICBVc2UgbWF0Y2hpbmcgJyBhbmQgIiBxdW90ZXMgZm9yIEFJWCBjb25maWd1cmUgdGVzdC4KICAgTWVudGlvbmVkIGluIHBhc3NpbmcgaW4gYnVnIDU2NTc2OS4KICAgCjIwMDItMDYtMTMgMTQ6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L2NvbmYudDoKCiAgIGZpeCBkZWZhdWx0X3N0b3JlIHJvdXRpbmVzCiAgIAoyMDAyLTA2LTEyIDA2OjQzICBkdHMxMgoKICAgKiB3aW4zMi9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaDoKCiAgIEJyaW5nIFdpbmRvd3MgT0lEIHVzYWdlIGludG8gbGluZSB3aXRoIHRoZSBtYWluIGNvbmZpZyBmaWxlIHNldHRpbmdzLgogICAKMjAwMi0wNi0xMiAwNjozNyAgZHRzMTIKCiAgICogYWNjb25maWcuaCwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIENvcnJlY3QgdGhlIGRlZmF1bHQgRW50ZXJwcmlzZSBPSUQgdXNlZCBpbiB0cmFwcywgdG8gYXZvaWQgYSByZXBlYXRlZCAwCiAgIHN1YmlkZW50aWZpZXIuICAoRml4ZXMgYnVnICM1NjY5MTcpCiAgIAoyMDAyLTA2LTEyIDA1OjE0ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBEZWZpbmUgJ2xlbmd0aCcgYXMgYSBzaWduZWQgdmFyaWFibGUsIHNvIGl0IGNhbiBoYW5kbGUgYW4gZXJyb3IgdmFsdWUgb2YgLTEuCiAgIFJlcG9ydGVkIGJ5IEpvYWtpbSBBbHRoaW5pLgogICAKMjAwMi0wNi0xMiAwMzoxMSAgZHRzMTIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgTWFrZSBzdXJlIHRoZSBhZGRyZXNzIG9mIHRoZSBuZXh0IGxpbmsgaXMgcHJvcGVybHkgc2F2ZWQsIGJlZm9yZSBmcmVlaW5nIG1lbW9yeS4KICAgUHJvYmxlbSBkaXNjb3ZlcmVkIGJ5IEh1Z28gQ2Fjb3RlLgogICAKMjAwMi0wNi0xMiAwMjoxNSAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGFnZW50L2FnZW50X2luZGV4LmgsIGFnZW50L2FnZW50X3RyYXAuaAosIGFnZW50L2FsbF9oZWxwZXJzLmgsIGFnZW50L2F1dG9fbmxpc3QuaCwKICAgYWdlbnQvYnVsa190b19uZXh0LmgsIGFnZW50L2RlYnVnX2hhbmRsZXIuaCwKICAgYWdlbnQvbWliX21vZHVsZXMuaCwgYWdlbnQvbXVsdGlwbGV4ZXIuaCwgYWdlbnQvbnVsbC5oCiwgYWdlbnQvb2xkX2FwaS5oLCBhZ2VudC9yZWFkX29ubHkuaCwKICAgYWdlbnQvc2VyaWFsaXplLmgsIGFnZW50L3NldF9oZWxwZXIuaCwKICAgbGlicmFyeS9jbXVfY29tcGF0LmgsIGxpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCwKICAgbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCwgbGlicmFyeS9zbm1wSVBYRG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFRDUERvbWFpbi5oLCBsaWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFVEUERvbWFpbi5oLCBsaWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmgsCiAgIGxpYnJhcnkvc25tcFVuaXhEb21haW4uaCwgbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCwKICAgbGlicmFyeS9zbm1wX3NlY21vZC5oLCBsaWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmgsCiAgIGxpYnJhcnkvdWNkX2NvbXBhdC5oOgoKICAgU3VwcGx5IG1pc3NpbmcgI2lmbmRlZi8jZGVmaW5lLyNlbmRpZiBhbmQgZXh0ZXJuICJDIiB7fSB3cmFwcGVycwogICAKMjAwMi0wNi0xMSAxNzo1NiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICByZW1vdmUgc3B1cmlvdXMgcHJpbnRmIHRvIHN0ZGVycgogICAKMjAwMi0wNi0xMSAxNDoyMSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvdHlwZXMuaDoKCiAgIGFkZCBleHRlcm4gIkMiOyBhZGQgdm9pZF9hcnJheSBzdHJ1Y3QKICAgCjIwMDItMDYtMTEgMTQ6MjAgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICByZW1vdmUgdHNlYXJjaDsgdXNlIG5ldyBjb250YWluZXIgaW5zdGVhZAogICAKMjAwMi0wNi0xMSAxNDoxOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaDoKCiAgIHVzZSBjb250YWluZXIgZm9yIHNlY29uZGFyeSBpbmRleAogICAKMjAwMi0wNi0xMSAxNDoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBhZGQgY29udGFpbmVyIHRvIGhlYWRlcnM7IGFkZCBjb250YWluZXIuYwogICAKMjAwMi0wNi0xMSAxNDoxNyAgcnN0b3J5CgogICAqIHNubXBsaWIvY29udGFpbmVyLmM6CgogICBpbml0IGZ1bmN0aW9ucyBmb3IgYmFzaWMvc29ydGVkIGNvbnRhaW5lcgogICAKMjAwMi0wNi0xMSAxNDoxNSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIG1vcmUgbWV0aG9kcyBmb3IgYmFzaWMgY29udGFpbmVyOyBhZGQgc29ydGVkICh3aWxsIHByb2JhYmx5IHJlbmFtZSkgY29uYXRpbmVyCiAgIAoyMDAyLTA2LTExIDEyOjIyICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oOgoKICAgcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGluY2x1ZGVzOyBhZGQgZXh0ZXJuICJDIiBmb3IgX19jcGx1c3BsdXMKICAgCjIwMDItMDYtMTEgMTE6MTEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogSU5TVEFMTCwgTWFrZWZpbGUuUEwsIFJFQURNRQosIG5ldHNoLCBzbm1wc2g6CgogICByZW5hbWVkIHNubXBzaCB0byBuZXRzaCwgYXMgSSBsaWtlIHRoZSBuYW1lIGJldHRlciBhbmQgaXQgYXBwZWFscyB0byBhCiAgIHdpZGVyIG51bWJlciBvZiBwZW9wbGUuCiAgIAoyMDAyLTA2LTEwIDA5OjUzICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgd2hlbiBkZWxldGluZyBhbiBhc3AgcG9pbnRlciwgbWFrZSBzdXJlIGl0IGlzbid0IGluIHRoZSBkZWxlZ2F0ZWQgbGlzdAogICAKMjAwMi0wNi0xMCAwODo0NiAgcnN0b3J5CgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXggcGFyc2Vfb25lX29pZF9pbmRleCB0byBhbGxvdyB0b28gc2hvcnQgSVAgYWRkcmVzcyB3aGVuIGNvbXBsZXRlIGlzCiAgIHNwZWNpZmllZDsgYWRkIG5ldHNubXBfb2lkMmNoYXJzICYgbmV0c25tcF9vaWQyc3RyCiAgIAoyMDAyLTA2LTEwIDA3OjQyICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvOiBkZWZhdWx0X3N0b3JlLnBtLCBkZWZhdWx0X3N0b3JlLnhzCiwgdGVzdC5wbDoKCiAgIHVwZGF0ZSB0byBsYXRlc3QgZGVmYXVsdF9zdG9yZSBkZWZpbmVzCiAgIAoyMDAyLTA2LTEwIDA3OjM5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiwgcGVybC8uY3ZzaWdub3JlLCBwZXJsL01ha2VmaWxlLlBMOgoKICAgVG9wIGxldmVsIHBlcmwgTWFrZWZpbGUuUEwgdG8gaW5zdGFsbCB0aGUgd2hvbGUgYnVuY2ggdW5kZXJuZWF0aC4KICAgVGhpcyBzaG91bGQgbm93IGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgbG93ZXIgbGV2ZWwgbWFrZWZpbGVzIGZvcgogICBzaW1wbGljaXR5LgogICAKMjAwMi0wNi0xMCAwNzoyNyAgZHRzMTIKCiAgICogcGVybC9TTk1QL3QvbWliLnQ6CgogICBBY2tub3dsZWRnZSBrbm93biBmYWlsaW5nIHRlc3RzLgogICBUaGlzIG1lc3NhZ2UgY2FuIGJlIHJlbW92ZWQgb25jZSB0aGUgcHJvYmxlbSBoYXMgYmVlbiBpc29sYXRlZCBhbmQgZml4ZWQuCiAgIAoyMDAyLTA2LTEwIDA3OjE3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgc3VwcG9ydCBmb3IgaXBhZGRyZXNzIGJ1aWxkaW5nL3BhcnNpbmcgb2YgT0lEIGluZGV4ZXMuCiAgIAoyMDAyLTA2LTEwIDAyOjA3ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgTWVudGlvbiB0aGUgb3RoZXIgcGVybCBtb2R1bGVzLCBpbnRyb2R1Y2VkIHdpdGggdjUgKHBhcnRpY3VsYXJseSAnZGVmYXVsdF9zdG9yZScpCiAgIAoyMDAyLTA2LTEwIDAxOjI4ICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy43KSwgRkFROgoKICAgTmV3IGVudHJ5IGRlc2NyaWJpbmcgcG9zc2libGUgcHJvYmxlbXMgd2l0aCB0cmFwIGhhbmRsZXJzLgogICAKMjAwMi0wNi0wOCAyMTozOSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC5wbToKCiAgIGRlZmF1bHRfc3RvcmUgZml4ZXMKICAgCjIwMDItMDYtMDggMjA6NTQgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGJyZWFrIHBlcmwgbWFrZWZpbGUgY3JlYXRpb24gaW50byBzZXBlcmF0ZSBzdGVwOyBvbmx5IGNsZWFuIHBlcmwgZGlyZWN0b3J5CiAgIGlmIHRoZXJlIGlzIGEgbWFrZWZpbGUKICAgCjIwMDItMDYtMDggMjA6MTUgIHJzdG9yeQoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGFkZCBwZXJsdGVzdCB0YXJnZXQgdG8gbWFrZSB0ZXN0IGluIGFsbCBwZXJsIGRpcmVjdG9yaWVzCiAgIAoyMDAyLTA2LTA4IDA5OjQ3ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9TdG9yYWdlLnBtOgoKICAgZml4IHRvIGRlYWwgd2l0aCB1cGRhdGVkIFNRTDo6U3RhdGVtZW50IG1vZHVsZS4KICAgCjIwMDItMDYtMDggMDc6MDggIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICB1cGRhdGUgdG8gU1FMLVN0YXRlbWVudCByZXF1aXJlbWVudCBvZiAxLjAwNAogICAKMjAwMi0wNi0wOCAwNjo0NSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICByZW1vdmUgbWliIGluaXQgY29kZSBmcm9tIEMgc25tcF90cmFuc2xhdGVfb2JqIGNhbGwKICAgCjIwMDItMDYtMDggMDY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgaW5pdF9zbm1wIGluc2lkZSB0cmFuc2xhdGVPYmoKICAgCjIwMDItMDYtMDggMDY6NDQgIGhhcmRha2VyCgogICAqIHBlcmwvT0lEL09JRC5wbToKCiAgIGNoYW5nZSB2ZXJzaW9uIHRvIDAuMQogICAKMjAwMi0wNi0wOCAwNjo0MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4OgoKICAgQSBmZXcgY2xlYW51cHMgdG8gaWZjb25maWcgYW5kIG5ldHN0YXQgY29tbWFuZHMKICAgCjIwMDItMDYtMDggMDY6MzUgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIC0gYmVnaW5uaW5nIHN1cHBvcnQgZm9yIGltcG9ydC9leHBvcnQgb2YgZGF0YSAoY3VycmVudGx5IHRvL2Zyb20gQ1NWKS4KICAgLSBzdXBwb3J0IGZvciAiZGlmZiIgd2hpY2ggY29tcGFyZXMgb2xkIChwb3NzaWJseSBpbXBvcnRlZCBkYXRhKSB0byBjdXJyZW50LgogICAKMjAwMi0wNi0wOCAwNjozNCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGFuZ2UgcmVxdWlyZWQgU05NUCBtb2R1bGUgdmVyc2lvbiBmcm9tIDQgdG8gNQogICAKMjAwMi0wNi0wOCAwNjozNCAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQWRkIGEgdHV0b3JpYWwgcGxhY2UgaG9sZGVyIGNvbW1lbnQgT0lELgogICAKMjAwMi0wNi0wOCAwNjozMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggdGttaWIgZm9yIG5ld2VyIHBlcmwgbW9kdWxlcy4KICAgCjIwMDItMDYtMDggMDY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgdHVybiBvZmYgZXh0cmEgYm9sZC91bmRlcmxpbmUgZm9ybWF0dGluZyBieSBkZWZhdWx0LgogICAKMjAwMi0wNi0wNyAxNTowNCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jb250YWluZXIuaDoKCiAgIGdlbmVyaWMgY29udGFpbmVyIHN0cnVjdHVyZSBmb3Igc3RvcmluZyBkYXRhCiAgIAoyMDAyLTA2LTA3IDEzOjAxICByc3RvcnkKCiAgICogcGVybC9BU04vQVNOLnhzOgoKICAgaW5jbHVkZSBuZXQtc25tcC1jb25maWcuaAogICAKMjAwMi0wNi0wNyAxMDozNyAgcnN0b3J5CgogICAqIGNvbmZpZ3VyZToKCiAgIHVwZGF0ZSBjb25maWd1cmUgdG8ga2VlcCBpbiBsaW5lIHdpdGggY29uZmlndXJlLmluICh3aHk/IHNob3VsZG4ndAogICBjb25maWd1cmUgbm90IGJlIGluIENWUyBhbmQgYmUgYXV0b2dlbmVyYXRlZD8gT25lIG9mIHRoZXNlIGRheXMgSSdtIGdvaW5nCiAgIHRvIGhhdmUgdG8gbGVhcm4gYXV0b2NvbmYuLi4uKQogICAKMjAwMi0wNi0wNyAxMDozNSAgcnN0b3J5CgogICAqIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5ydWxlczoKCiAgIGFsd2F5cyBjaGVjayByZXR1cm4gc3RhdHVzIG9mIG1ha2Ugd2hlbiBpbnNpZGUgYSBsb29wLCBhbmQgZXhpdCBvbiBlcnJvcnMKICAgCjIwMDItMDYtMDcgMDg6MTcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jIChWNC0yLXBhdGNoZXMuMyksCiAgIGludGVyZmFjZXMuYzoKCiAgIE9ubHkgbnVsbC10ZXJtaW5hdGUgdGhlIGludGVyZmFjZSBuYW1lIHdoaWxlIGl0J3MgYWN0dWFsbHkgYmVpbmcgY29waWVkLgogICBSZXN0b3JlIHRoZSBkYXRhIGxpbmUgYWZ0ZXJ3YXJkcywgc28gdGhlIGRlYnVnZ2luZyBvdXRwdXQgaXMgbWVhbmluZ2Z1bC4KICAgCjIwMDItMDYtMDcgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEZpeCBmb3IgaW5kZXhpbmcgZXJyb3IsIHRoYXQgY2F1c2VzIGEgY3Jhc2ggaWYgbW9yZSB0aGFuIDE2IHZhcmJpbmRzCiAgIGFyZSBhZGRlZCB0byB0aGUgY2FjaGUgaW4gb25lIGdvLiAgU3BvdHRlZCBieSBTaGFudGggS3VtYXJhCiAgIAoyMDAyLTA2LTA2IDAxOjEyICBkdHMxMgoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUgKFY0LTItcGF0Y2hlcy5bNyw1XSksIGFjbG9jYWwubTQsCiAgIGNvbmZpZ3VyZToKCiAgIERvbid0IGRpZmZlcmVuY2lhdGUgYmV0d2VlbiBlbGYtIGFuZCBhLm91dC1iYXNlZCBOZXRCU0Qgc3lzdGVtcy4KICAgKFByb2JsZW0gaGlnaGxpZ2h0ZWQgYnkgRmVsaWNpYSBOZWZmKQogICAKMjAwMi0wNi0wNSAxODo1MCAgcnN0b3J5CgogICAqIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBpbmNsdWRlL25ldC1zbm1wL3R5cGVzLmg6CgogICBwdXQgZGVmaW5lcyBmb3Igc29ja2xlbl90IGFuZCBpbl9hZGRyX3QgaW4gbmV0LXNubXAvdHlwZXMuaCBpbnN0ZWFkIG9mIGhhdmluZwogICBjb25maWd1cmUgZ2VuZXJhdGUgdGhlbTsgY29uZmlndXJlIGluc3RlYWQgZ2VuZXJhdGVzIEhBVkVfU09DS0xFTl9UIGFuZAogICBIQVZFX0lOX0FERFJfVCBmb3Igc3lzdGVtcyB3aGljaCBkb24ndCBuZWVkIHRoZSBkZWZpbmVzOyB0aGlzIGlzIHByaW1hcmlseQogICBmb3IgdGhlIGJlbmVmaXQgb2YgdGhlIFdpbjMyIHBsYXRmb3JtLCB3aGljaCBkb2Vzbid0IGhhdmUgY29uZmlndXJlLgogICAKMjAwMi0wNi0wNSAwOToyMCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIGRvbid0IGFkdmFuY2UgcmVxdWVzdCBwb2ludGVyIGluc2lkZSBmb3IgbG9vcCwgc2luY2UgZm9yIGxvb3AgZG9lcyBpdCBmb3IKICAgdXM7IG90aGVyd2lzZSBmb3IgbG9vcCBtYXkgZW5kIHVwIGRlcmVmZXJlbmNpbmcgTlVMTCBwb2ludGVyLgogICAKMjAwMi0wNi0wNSAwNjo0MSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy91bml4OgoKICAgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gZHVwbGljYXRlIHZhcmlvdXMgdW5peCB1dGlsaXRpZXM6CiAgICAtIGN1cnJlbnRseTogbmV0c3RhdCwgcHMsIGRmLCBpZmNvbmZpZwogICAKMjAwMi0wNi0wNSAwNjo0MCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvY29uZmlncy9zY2xpOgoKICAgZXhhbXBsZSBjb25maWd1cmF0aW9uIGZpbGUgdG8gZHVwbGljYXRlIGZ1bmN0aW9uYWxpdHkgaW4gSnVlcmdlbidzCiAgIHNjbGkgY29tbWFuZC4KICAgCjIwMDItMDYtMDUgMDY6MzkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIG5ldyBjb21tYW5kczoKICAgICBzb3VyY2UgZmlsZSAtLSBzb3VyY2VzIGFuIHJjIGZpbGUKICAgICB3YXRjaCBleHByZXNzaW9uIC0tIHJlcGVhdGVkbHkgcnVucyBhIGNvbW1hbmQgYW5kIGNvbG9yaXplcwogICAgICAgZGlmZmVyZW5jZXMgaW4gZGF0YQogICAgIGV2YWwgZXhwcmVzc2lvbiAtLSBldmFsdWF0ZXMgYW4gZXhwcmVzc2lvbiBkaXJlY3RseSBpbiBwZXJsCiAgICAgICAtIGJlZ2lubmluZ3Mgb2Ygb3ZlcmxvYWRzIGluIHBlcmwgc28gdGhhdCBjYWxsaW5nIHN5c0NvbnRhY3QoKQogICAgICAgICB3aWxsIHJldHVybiB0aGUgc3lzQ29udGFjdCB2YWx1ZS4gIHRhYmxlcyBub3QgcmV0dXJuZWQgeWV0LgogICBmaXhlczoKICAgICB0dXJucyBvZiBvcm5hbWVudGFsIHByb21wdCBzdXBwb3J0IChpY2spIGJ5IGRlZmF1bHQKICAgCjIwMDItMDYtMDUgMDQ6NDMgIGR0czEyCgogICAqIG1hbi86IHNubXBjbWQuMSAoVjQtMi1wYXRjaGVzLjgpLCBzbm1wY21kLjEuZGVmOgoKICAgQnJpZWYgbWVudGlvbiBvZiB0aGUgbmVlZCB0byBxdW90ZSBPSURzIGNvbnRhaW5pbmcgc3RyaW5nIGluZGV4ZXMsCiAgIHRvIHByb3RlY3QgdGhlIGRvdWJsZSBxdW90ZXMgZnJvbSB0aGUgc2hlbGwuCiAgIAoyMDAyLTA2LTA0IDEwOjM4ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgdGVzdCBmb3IgYSBudWxsIHRyZWVjYWNoZSBiZWZvcmUgZGVyZWZlcmVuY2luZyBpdDsgbm90ZWQgb24gdGhlIGNvZGVycwogICBsaXN0IGJ5IGpvYWtpbS5hbHRoaW5pQHJlZGRvLm5ldAogICAKMjAwMi0wNi0wNCAxMDozMyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHRlc3QgZm9yIGFzcC0+cGR1ID09IE5VTEwgYmVmb3JlIGRlcmVmZXJlbmNpbmcgaXQ7IG5vdGVkIG9uIHRoZSBjb2RlcnMKICAgbGlzdCBieSBqb2FraW0uYWx0aGluaUByZWRkby5uZXQuCiAgIAoyMDAyLTA2LTA0IDA1OjU0ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9zbm1wc2g6CgogICBzdXBwb3J0IGZvciBwcmludGYsIHNpbmdsZSBxdWVyeS9zZXRzIG9mIHNjYWxhcnMsIG11bHRpLWxpbmUgYWxpYXNlcy4KICAgCjIwMDItMDUtMzAgMTU6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZGVmYXVsdF9zdG9yZSBmaXhlcwogICAKMjAwMi0wNS0zMCAxNToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9PSUQvT0lELnBtOgoKICAgbWFrZSBuZXcoKSBvcGVyYXRvciBhIGJpdCBzbWFydGVyCiAgIAoyMDAyLTA1LTI5IDE5OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hbGFybS5jIChWNC0yLXBhdGNoZXMuMiksIHNubXBfYWxhcm0uYzoKCiAgIHNldCB0aGUgc3RvcmFnZSBwb2ludGVyIHRvIE5VTEwsIGFzIHBvaW50ZWQgb3V0IGJ5IE1hcmsgSG95LgogICAKMjAwMi0wNS0yOSAwOToyMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oLCBzbm1wbGliL21pYi5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBBUElpZnkgTUlCRElSUyBzdXBwb3J0CiAgIAoyMDAyLTA1LTI5IDA3OjQzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy42KSwgRkFROgoKICAgRXhwYW5kIG9uIHdoZW4gT3BlblNTTCBpcyBuZWNlc3NhcnksIGFuZCBob3cgdG8gY29tcGlsZSB1c2luZyBpdC4KICAgCjIwMDItMDUtMjkgMDY6NTIgIGR0czEyCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgU2V0IFJFVVNFQUREUiBzbyB0aGF0IHNwZWNpZnlpbmcgdGhlIHNhbWUgcG9ydCB0d2ljZSBkb2Vzbid0IGtpbGwgdGhlIGFnZW50LgogICAoU3VnZ2VzdGVkIGJ5IFJvYmVydCBIYXN0aW5ncykKICAgCjIwMDItMDUtMjkgMDI6NDEgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjUpLCBGQVE6CgogICBSZWZlcmVuY2UgYm90aCB2ZXJzaW9ucyBvZiB0aGUgdHV0b3JpYWwgKHNpbmNlIHRoaXMgZG9jdW1lbnQgaXMgdXNlZAogICBmb3IgYnVpbGRpbmcgdGhlIG9uLWxpbmUgdmVyc2lvbiBvZiB0aGUgRkFRKQogICAKMjAwMi0wNS0yOSAwMjoxNiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuNCksIEZBUToKCiAgIENsYXJpZnkgdGhhdCB0cmFwIGZpbHRlcmluZyBpcyBub3QgeWV0IG9wZXJhdGlvbmFsLgogICAKMjAwMi0wNS0yOCAxNDo1MyAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICByZW1vdmUgXk0gY2hhcnMKICAgCjIwMDItMDUtMjggMTQ6NTIgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICBmaXggbG9naWMgaW4gY2FuX2RlbGV0ZTsgY29uc29saWRhdGUgdXNlIG9mIG5ldHNubXBfc2V0X21vZGVfcmVxdWVzdCBieSBzZXR0aW5nCiAgIHJjIGZvciB1c2UgYXQgZW5kIG9mIGxvb3A7IGRvbid0IHVzZSByZW1vdmVkIG1hY3JvcyBmb3Igcm93c3RhdHVzL3N0b3JhZ2V0eXBlLAogICB1c2luZyBuZXcgbmV0c25tcF9jaGVja192Yiogcm91dGluZXMgaW5zdGVhZDsgYWRkIGFzc2VydHMgZm9yIGVycm9yIGNhc2VzIHRoYXQKICAgc2hvdWxkIGJlIGNhdWdodCBieSBlYXJsaWVyIHJvdXRpbmVzCiAgIAoyMDAyLTA1LTI4IDE0OjQ3ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIGNhbGxiYWNrcyBmb3Igcm93IChkZSlhY3RpdmF0aW9uCiAgIAoyMDAyLTA1LTI4IDA2OjIzICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBQcm90ZWN0ICIjaW5jbHVkZSA8c2VhcmNoLmg+IiB3aXRoIHRoZSBIQVZFX1NFQVJDSF9IIHRva2VuLiAgKFN1Z2dlc3RlZCBieSBIYXJyaWUpCiAgIAoyMDAyLTA1LTI4IDA2OjIwICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9sb2dnaW5nLmg6CgogICBGaXggdGhlIGRlY2xhcmF0aW9uIG9mIHNubXBfZW5hYmxlX3N5c2xvZ19pZGVudC4gKFNwb3R0ZWQgYnkgSGFycmllKQogICAKMjAwMi0wNS0yNyAwMTo1MyAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfbG9nZ2luZy5oCiwgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYzoKCiAgIERvbid0IGhhcmR3aXJlIHN5c2xvZyBmYWNpbGl0eSB0byBMT0dfREFFTU9OLgogICBGaXggcHJvdmlkZWQgYnkgSm9ha2ltIEZhbGxzam8uCiAgIAoyMDAyLTA1LTI3IDAxOjMyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLCBhcHBzL3NubXB0cmFwZC5jCiAgIChWNC0yLXBhdGNoZXMuWzIsOF0pLCBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgVHdlYWsgJ3VzbVVzZXInIGhlbHAgc3RyaW5nIHRvIGFjY3VyYXRlbHkgcmVmbGVjdCB3aGljaCBiaXRzIGFyZSBvcHRpb25hbC4KICAgUmVwb3J0ZWQgYnkgQWxpIENoYW5hdWkuCiAgIAoyMDAyLTA1LTI3IDAxOjIyICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wZC5jb25mLjUuZGVmIChWNC0yLXBhdGNoZXMuNCksIHNubXBkLmNvbmYuNS5kZWY6CgogICBEb2N1bWVudCB0aGUgbGltaXQgb24gdGhlIG51bWJlciBvZiAiZmlsZSIgZGlyZWN0aXZlcy4KICAgCjIwMDItMDUtMjcgMDE6MTcgIGR0czEyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGFuIGV4dHJhbmVvdXMgdHJhaWxpbmcgYmFja3NsYXNoLCB0aGF0IGNvbmZ1c2VzIHNvbWUgJ21ha2UncwogICAKMjAwMi0wNS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9uZXRzbm1wX3JlcXVlc3RfaW5mby5wbToKCiAgIFByb3BlciBjcmVhdGlvbiBvZiByZXR1cm5lZCBOZXRTTk1QOjpPSUQgb2JqZWN0LgogICAKMjAwMi0wNS0yNCAwOTo1NCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9hZ2VudC54czoKCiAgIGluY3JlYXNlIHJlZmVyZW5jZSBjb3VudHMgb24gcmV0dXJuZWQgbWliIHJlZ2lzdHJhdGlvbiBvYmplY3RzIHNvCiAgIHRoZXkncmUgbm90IGF1dG8tY2xlYW5lZCBieSBwZXJsICh0aGUgYWdlbnQgbm93IGhhcyBhIGNvcHkgb2YgdGhlIHBvaW50ZXIpCiAgIAoyMDAyLTA1LTI0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG5ldyBkZWZhdWx0X3N0b3JlIG5ldHNubXBfIHByZWZpeGVzLgogICAKMjAwMi0wNS0yNCAwOTo1MyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IGZvciBzY2FsYXJzIChtaWIyYy5zY2FsYXIuY29uZiBmaWxlIGNvbWluZyBzaG9ydGx5KQogICAKMjAwMi0wNS0yNCAwOTo1MiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBBIG5ldyBydWxlIGNhbGxlZCAiY29tbWVudGNoZWNrIiB0byBncmVwIGFsbCBzb3VyY2VzIGZvciAvLyBjb21tZW50cy4KICAgCjIwMDItMDUtMjQgMDg6MDkgIGR0czEyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBEZWNsYXJlICdyZWdpc3Rlcl9taWJfZGV0YWNoX25vZGUnIGJlZm9yZSBpdCdzIHVzZWQgZm9yIHRoZSBmaXJzdCB0aW1lLgogICAoU3BvdHRlZCBieSBYaWFuZyBaaGFuZykKICAgCjIwMDItMDUtMjQgMDc6NDQgIGR0czEyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBSZW1vdmUgZXh0cmFuZW91cyB0cmFpbGluZyBiYWNrc2xhc2guCiAgIChUaGF0ICptaWdodCogYmUgY29uZnVzaW5nIFN1bidzIG1ha2UsIGJ1dCBpcyB3cm9uZyBhbnl3YXkpCiAgIAoyMDAyLTA1LTIzIDAxOjM5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IHZtc3RhdC5jLCB2bXN0YXRfYnNkaTQuYywKICAgdm1zdGF0X2R5bml4LmMsIHZtc3RhdF9mcmVlYnNkMi5jLCB2bXN0YXRfaHB1eC5jLAogICB2bXN0YXRfbmV0YnNkMS5jLCB2bXN0YXRfc29sYXJpczIuYzoKCiAgIEJyaW5nIHRoZSB2YXJpb3VzICd2YXJfZXh0ZW5zaWJsZV92bXN0YXQnIGRlZmluaXRpb25zIGludG8gbGluZQogICB3aXRoIHRoZSBkZWNsYXJhdGlvbiBpbiB0aGUgaGVhZGVyIGZpbGUgLSBpLmUuIG5vbi1zdGF0aWMuCiAgIAoyMDAyLTA1LTIxIDE1OjI1ICByc3RvcnkKCiAgICogTWFrZWZpbGUuaW46CgogICBhZGQgLUkkKHNyY2RpcikvaW5jbHVkZSB0byBDUFAgcGF0aCBmb3IgcGVvcGxlIGJ1aWxkaW5nIG91dHNpZGUgb2Ygc3JjIHRyZWUKICAgCjIwMDItMDUtMjEgMDg6MTQgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBhcHBseSBwYXRjaCBbIDU1ODEyOSBdIE1ha2UgdGhlIHR1bm5lbCBtaWIgY29tcGlsZSBpbiA1LjAuMSwgc3VibWl0dGVkCiAgIGJ5IExvcmVuem8gQ29saXR0aSAobGNvbGl0dGkpLCB3aGljaCBhZGRzIG1pc3NpbmcgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDUtMjEgMDU6MzIgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBmaXggY29yZSBkdW1wIGluIC11IG9wdGlvbiBwcm9jZXNzaW5nLCBub3RlZCBieSBBbmRyZWFzIE1hdXMKICAgCjIwMDItMDUtMjEgMDU6MjAgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy45KSwgbWVtb3J5LmMKOgoKICAgTGF0Y2ggbWVtb3J5IHJlcG9ydGluZyBhdCAyXjMxLTEsIHJhdGhlciB0aGFuIDJeMzItMSBzaW5jZSB0aGVzZQogICBvYmplY3RzIGFyZSBkZWZpbmVkIGFzIChzaWduZWQpIEludGVnZXIzMi4KICAgT25seSBsYXRjaCBpZiB0aGUgdmFsdWUgaXMgKmdyZWF0ZXIqIHRoYW4gdGhpcyB0aHJlc2hvbGQsIG5vdCBsZXNzIQogICAKMjAwMi0wNS0yMSAwMToyMCAgamJwbgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL2RlZmF1bHRfc3RvcmUuaCwgc25tcGxpYi91Y2RfY29tcGF0LmMKOgoKICAgICAtIGFkZCBjb21wYXRpYmlsaXR5IGRlZmluaXRpb25zIGFuZCBmdW5jdGlvbnMgZm9yIG5ld2x5LXJlbmFtZWQKICAgICAgIGRlZmF1bHQgc3RvcmUgbWFuaXB1bGF0aW9uIGZ1bmN0aW9ucyBhbmQgY29uc3RhbnRzIChkZWZpbmVkIGlmZgogICAgICAgLS1lbmFibGUtdWNkLWNvbXBhdGliaWxpdHkgaXMgZ2l2ZW4gdG8gYXQgY29uZmlndXJhdGlvbiB0aW1lKQogICAKMjAwMi0wNS0yMSAwMDo1MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgICAgLSBtb3ZlIGRlZmluaXRpb24gb2YgbmV0c25tcF9kc19yZWFkX2NvbmZpZyB0eXBlIGZyb20gZGVmYXVsdF9zdG9yZS5oCiAgICAgICBpbnRvIGRlZmF1bHRfc3RvcmUuYyAoc2luY2UgaXQgaXMgbm90LCBhbmQgc2hvdWxkIG5vdCwgYmUgdXNlZAogICAgICAgZWxzZXdoZXJlKS4KICAgCjIwMDItMDUtMjAgMDM6NDIgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIHJlZ2lzdGVycyB0b2tlbnMgZm9yIGlwdjYgcm8vcncgY29tbXVuaXR5LCBhbmQgbWFrZSBzdXJlIHRvIHBhcnNlIHRoZW0KICAgYXMgaXB2Niwgbm90IHY0LgogICAKMjAwMi0wNS0xOSAxMTozOCAgZHJpZWh1aXMKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBCdWdmaXggZm9yIEZyZWVCU0Qgc3VwcG9ydCBvZiB0aGUgZGlza0lPIG1pYi4gVGhlIG9yaWdpbmFsIGNvZGUgbmVnbGVjdGVkCiAgIHRoZSBkZXZpY2UgbnVtYmVyLCB3aGljaCBtYWRlIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4sIHNheSwgYWQwIGFuZCBhZDEKICAgaW1wb3NzaWJsZS4KICAgCjIwMDItMDUtMTcgMDk6MDUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwosIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXB2Ni5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaDoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gc2xpZ2h0bHkgcmVkdWNlIG1lbW9yeSBjb3N0cyBvZiByZWdpc3RhcnRpb25zCiAgIAoyMDAyLTA1LTE2IDE3OjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBkZWZhdWx0IHN0b3JlIHRhZyBuYW1lcy4KICAgZml4IGluaXRfc25tcCgpIGRlZmluaXRpb24gdG8gbWF0Y2ggbm9ybWFsIHBlcmwgbm9uLWFuc2kgbW9kZS4KICAgCjIwMDItMDUtMTYgMTY6MzkgIGRyaWVodWlzCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIE1ha2Ugc3VyZSAtLWNmbGFncyBzcGl0cyBvdXQgdGhlIHJlcXVpcmVkIGluY2x1ZGUgcGF0aCB3aGVuIGluc3RhbGxpbmcKICAgaW4gYSBub24tZGVmYXVsdCBsb2NhdGlvbiwgYXMgZG9jdW1lbnRlZCBpbiB0aGUgdXNhZ2UgaW5mbyBpbiB0aGUgc2NyaXB0LgogICAKMjAwMi0wNS0xNiAxNTozNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLWRhdGEvc3lzdGVtOgoKICAgYWRkIGEgbGluZSB0byB0aGUgc3lzU2VydmljZXMgcHJvbXB0IHNheWluZyBpZiB5b3UgZG9uJ3Qga25vdywgc2F5IG5vLgogICAKMjAwMi0wNS0xNiAxMjo1NSAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC9kZWZhdWx0X3N0b3JlLzogZGVmYXVsdF9zdG9yZS5wbSwKICAgZGVmYXVsdF9zdG9yZS54czoKCiAgIHVwZGF0ZSB0byBuZXcgZGVmaW5lIGxpc3QKICAgCjIwMDItMDUtMTYgMTI6NTUgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS90ZXN0LnBsOgoKICAgdGVzdCBzY3JpcHQKICAgCjIwMDItMDUtMTYgMTI6NDkgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS9nZW46CgogICBhdXRvZ2VuZXJhdGlvbiBzY3JpcHQKICAgCjIwMDItMDUtMTYgMTA6NTggIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IGRlZmF1bHRfc3RvcmUucG0sIGRlZmF1bHRfc3RvcmUueHMKLCB0ZXN0LnBsOgoKICAgdXBkYXRlcyB0byBuZXcgLmggdG9rZW5zCiAgIAoyMDAyLTA1LTE2IDEwOjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL2RlZmF1bHRfc3RvcmUvZ2VuOgoKICAgLmggLT4gcGVybG1vZHVsZSByZWdlbmVyYXRpb24gc2NyaXB0CiAgIAoyMDAyLTA1LTE2IDA3OjA5ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmgsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvc25tcF9hcGkuYywgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBDb25zb2xpZGF0ZSB0aGUgdmFyaW91cyBPSUQgb3V0cHV0IGNvbmZpZ3VyYXRpb24gbWVjaGFuaXNtcyBpbnRvIG9uZS4KICAgVGhpcyBkb2VzIG5vdCBhZmZlY3QgdGhlIGNvbW1hbmQtbGluZSBvcHRpb25zICh5ZXQhKSAtIGp1c3QgdGhlIGludGVybmFscy4KICAgCjIwMDItMDUtMTUgMTc6NDQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGVmYXVsdF9zdG9yZS5oLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICBmaXggZGVmYXVsdF9zdG9yZQogICAKMjAwMi0wNS0xNSAxNzoyMCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgcnVuIGF1dG9jb25mCiAgIAoyMDAyLTA1LTE1IDE3OjIwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgY3JlYXRlIGEgZGVmaW5lIGxvY2F0aW9uIGZvciBIQVZFX0dFVERFVlMKICAgCjIwMDItMDUtMTUgMTc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmRlcGVuZCwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCwgYXBwcy9NYWtlZmlsZS5kZXBlbmQsCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuZGVwZW5kLCBzbm1wbGliL01ha2VmaWxlLmRlcGVuZAo6CgogICBkZXBlbmQgdXBkYXRlLCB3aGljaCBJIG1lYW50IHRvIGNoZWNrIGluIGJlZm9yZSB0aGUgNS4wLjEgcmVsZWFzZQogICAKMjAwMi0wNS0xNSAwNTo1MyAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMsIGFnZW50X3JlYWRfY29uZmlnLmMsCiAgIGFnZW50X3JlZ2lzdHJ5LmMsIGF1dG9fbmxpc3QuYywga2VybmVsLmMsCiAgIHNubXBfYWdlbnQuYywgc25tcF9wZXJsLmMsIHNubXBfdmFycy5jLCBzbm1wZC5jCjoKCiAgICAgLSB1c2UgbmV3IG5ldHNubXBfZHNfYmxhaCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cwogICAKMjAwMi0wNS0xNSAwNTozOSAgamJwbgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYywgYXBwcy9ub3RpZmljYXRpb25fbG9nLmgsCiAgIGFwcHMvc25tcGJ1bGt3YWxrLmMsIGFwcHMvc25tcGRlbHRhLmMsIGFwcHMvc25tcGdldC5jCiwgYXBwcy9zbm1wZ2V0bmV4dC5jLCBhcHBzL3NubXBzdGF0dXMuYywKICAgYXBwcy9zbm1wdGFibGUuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXAuYwosIGFwcHMvc25tcHRyYXBkLmMsIGFwcHMvc25tcHVzbS5jLAogICBhcHBzL3NubXB3YWxrLmMsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3NubXBfbWliLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwosIGFnZW50L21pYmdyb3VwL3R1bm5lbC90dW5uZWwuYzoKCiAgICAgLSB1c2UgbmV3IG5ldHNubXBfZHNfYmxhaCBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cwogICAKMjAwMi0wNS0xNSAwNTozNyAgamJwbgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5jLCBtaWIuYywgcGFyc2UuYywKICAgcmVhZF9jb25maWcuYywgc25tcFVEUERvbWFpbi5jLCBzbm1wVURQSVB2NkRvbWFpbi5jCiwgc25tcF9hbGFybS5jLCBzbm1wX2FwaS5jLCBzbm1wX2xvZ2dpbmcuYywKICAgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfc2VjbW9kLmMsIHNubXB1c20uYywKICAgc25tcHYzLmMsIHVjZF9jb21wYXQuYywgdmFjbS5jOgoKICAgICAtIHJlbmFtZSBmdW5jdGlvbnMgYW5kIGNvbnN0YW50cyBmcm9tIGRlZmF1bHRfc3RvcmUgZnJvbSBkc19ibGFoCiAgICAgICB0byBuZXRzbm1wX2RzX2JsYWgKICAgCjIwMDItMDUtMTUgMDI6MDIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYyAoVjQtMi1wYXRjaGVzLjApLCBzbXV4LmM6CgogICAgIC0gaW5pdGlhbGlzZSBzbXV4X2xpc3Rlbl9zZCB0byBhdm9pZCBwcm9ibGVtcyBub3RlZCBpbiBidWcgIzU0NTQ0OAogICAgICAgKGEgYml0IHVucmVhc29uYWJsZSBpbiBteSB2aWV3IGJ1dCBpdCBjYW4ndCBkbyBhbnkgaGFybSkuCiAgIAoyMDAyLTA1LTE0IDEyOjQwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcHJlY2lzaW9uIGV4dHJhY3Rpb24gb2YgdHVtb3IgaW5zdGVhZCBvZiBhbXB1dGF0aW9uLCBvciwgaWZkZWYgc2VhcmNoLmgKICAgZnVuY3Rpb25zIHRoYXQgYXJlbid0IGVzc2VudGlhbCB0byB0YWJsZV9hcnJheSBvcGVyYXRpb24gYW5kIHdpbGwgcHJvYmFibHkKICAgdmFuaXNoIGluIHRoZSBuZWFyIGZ1dHVyZSBhbnl3YXkuCiAgIAoyMDAyLTA1LTEzIDIwOjE2ICByc3RvcnkKCiAgICogYWdlbnQvb2JqZWN0X21vbml0b3IuYzoKCiAgIGZpeCB0eXBlIGluIHNpemVvZgogICAKMjAwMi0wNS0xMyAxMzowNCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwosIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBDaGVjayBmb3Igc2VhcmNoLmggYmVmb3JlIGNvbXBpbGluZyB0aGUgdGFibGVfYXJyYXkgaGVscGVyCiAgIAoyMDAyLTA1LTEzIDA4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIHJlbW92ZSBDKysgY29tbWVudHMKICAgCjIwMDItMDUtMTMgMDA6MzkgIGRyaWVodWlzCgogICAqIENoYW5nZUxvZzoKCiAgIE5vdGUgY2hhbmdlcyB0byBjb25maWd1cmUuaW4uCiAgIAoyMDAyLTA1LTEyIDEwOjMwICBkcmllaHVpcwoKICAgKiBjb25maWd1cmUuaW46CgogICBNYWtlIHN1cmUgdGhlIGNoZWNrcyBmb3Iga3ZtIHJlbGF0ZWQgc3R1ZmYgaGFwcGVucyB3aGVuIC1sa3ZtIGlzIGluIHNjb3BlLgogICBBZGQgZGV0ZWN0aW9uIG9mIHRoZSAtbGRldnN0YXQgcmVxdWlyZW1lbnQgd2hlbiBidWlsZGluZyB3aXRoIHVjZC1zbm1wL2Rpc2tpby4KICAgCgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY1LjAgLT4gVjUuMC4xCgoyMDAyMC0wNS0xMiAxNzozMCAgZHJpZWh1aXMKCiAgICogY29uZmlndXJlLmluOgoKICAgZGV0ZWN0IC1sZGV2c3RhdCB3aGVuIG5lZWRlZDsgZml4IC1sa3ZtIGRldGVjdGlvbgoKMjAwMi0wNS0xMCAxNzowOSAgaGFyZGFrZXIKCiAgICogRkFRLCBORVdTLCBSRUFETUUsIFJFQURNRS5hZ2VudHg6CgogICBtZW50aW9uIHR1dG9yaWFsLTUgaW5zdGVhZCBvZiB0dXRvcmlhbAogICAKMjAwMi0wNS0xMCAxNzowNCAgaGFyZGFrZXIKCiAgICogcGVybC9hZ2VudC86IE1ha2VmaWxlLlBMLCBhZ2VudC5wbSwKICAgbmV0c25tcF9yZXF1ZXN0X2luZm8ucG06CgogICByZXF1ZXN0IGluZm8gcGVybCBjb2RlIG1vdmVkIHRvIHNlcGFyYXRlIGZpbGUuCiAgIAoyMDAyLTA1LTEwIDE3OjAxICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC9PSUQucG06CgogICBkb2N1bWVudGF0aW9uIGZvciB0aGUgT0lEIGJ1aWxkaW5nIG92ZXJsb2Fkcy4KICAgCjIwMDItMDUtMTAgMTY6NTUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIEFkZCBwcm9wZXIgbGVuZ3RoIHNlZ21lbnQgdG8gdGhlIGJ1aWxkIHZpZXcgT0lELgogICAKMjAwMi0wNS0xMCAxNDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIG5ldyBkb2MgcGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmcKICAgCjIwMDItMDUtMTAgMTQ6MDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy4wKSwgdmFjbV92YXJzLmMKOgoKICAgZml4IHZhY20gcHJvYmxlbSBvbiBzZXRzIHdpdGggT0lEcyBjb250YWluaW5nIGxhcmdlIG51bWJlcnMgYXMgbm90ZWQKICAgYnkgVmluYXkgR2FvbmthciBvbiB0aGUgLWNvZGVycyBtYWlsaW5nIGxpc3QuCiAgIAoyMDAyLTA1LTEwIDEzOjQ2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGZpeCBjYWxsaW5nIG9uIG11bHRpcGxlIHRhYmxlcwogICAKMjAwMi0wNS0xMCAwMzoyMyAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1lcmdlICJTVFJJTkc6IEhleDoiIHR5cGUgdG9rZW5zIGludG8gYSBzaW5nbGUgdG9rZW4gIkhleC1TVFJJTkc6IgogICAKMjAwMi0wNS0xMCAwMzoxMiAgZHRzMTIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgUmVwb3J0IG5vbi1leGlzdGVudCBzdWJpbnN0YW5jZXMgYXMgJ25vU3VjaEluc3RhbmNlJyByYXRoZXIgdGhhbiAnbm9TdWNoT2JqZWN0Jy4KICAgInNubXBnZXQgLi4uLiAuMS4zLjYuMS42LjMuMTIuMS41LjAuOTkiIG5vdyByZXNwb25kcyBjb3JyZWN0bHkuCiAgICh0aG91Z2ggInNubXBnZXQgLi4uLiAuMS4zLjYuMS42LjMuMTIuMS41LjEiIHN0aWxsIHJldHVybnMgJ25vU3VjaE9iamVjdCcpCiAgIAogICBBbHNvIGd1ZXNzIHRoYXQgZmFpbGVkIFNFVCByZXF1ZXN0cyBhcmUgJ25vQ3JlYXRpb24nIGVycm9ycyAod2hpY2ggaXMKICAgcHJvYmFibHkgdGhlIG1vc3QgbGlrZWx5IG9wdGlvbikuCiAgIAoyMDAyLTA1LTA5IDE1OjU0ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIGV4aXQgcHJvcGVybHkgd2hlbiBhIHN1YmRpciBmYWlscyB0byBtYWtlIHByb3Blcmx5CiAgIAoyMDAyLTA1LTA5IDE1OjMwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgY3JlYXRlIGEgdG9rZW4gZm9yIHRoZSAtT3YgZXF1aXZlbGFudAogICAKMjAwMi0wNS0wOSAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfc29sYXJpczIuYyAoVjQtMi1wYXRjaGVzLjUpLAogICBtZW1vcnlfc29sYXJpczIuYzoKCiAgIHBhdGNoIGZyb20gVGFrdW1pIEthZG9kZSB0byBmaXggbWVtb3J5IHVzYWdlIG9uIHNvbGFyaXMKICAgCjIwMDItMDUtMDkgMDg6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgdXBkYXRlcyBmcm9tIG1hbGxvY2VkIHZtc3RhdCBmaXhlcyBmcm9tIHBhdGNoZXMgYnJhbmNoCiAgIAoyMDAyLTA1LTA4IDE2OjM0ICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBuZXcgLS1jb21waWxlLXN1YmFnZW50IGZlYXR1cmVzOgogICAgIC0tY2ZsYWdzCiAgICAgLS1ub3JtCiAgICAgLS1sZGZsYWdzCiAgICAgaW5jbHVkZXMgaGVhZGVyIGZpbGVzCiAgICAgbWlzYyBvdGhlciBidWcgZml4ZXMuCiAgIAoyMDAyLTA1LTA4IDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG1ha2UgdGhlIHN1YmFnZW50IHByb3Blcmx5IGNhbGwgdGhlIHJlc2VydmUyIHN0YXRlIGFnYWluLgogICAKMjAwMi0wNS0wOCAxMDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmM6CgogICBydW4gaW5kZW50CiAgIAoyMDAyLTA1LTA4IDA5OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYzoKCiAgIHVtLCB1c2UgMzAgc2Vjb25kcyBsaWtlIGFkdmVydGlzZWQuCiAgIAoyMDAyLTA1LTA4IDA4OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy9ub3RpZmljYXRpb24uYywKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvbm90aWZpY2F0aW9uLmgsCiAgIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIGRlZmluZSBhIGJldHRlciBub3RpZmljYXRpb24gZXhhbXBsZSAobm8gcmVxdWVzdHMuICBqdXN0IGFsYXJtIC0+IHNlbmQpCiAgIAoyMDAyLTA1LTA3IDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIHVwZGF0ZSB0byBjdXJyZW50IGluZGVudCBjb21tYW5kCiAgIAoyMDAyLTA1LTA3IDIyOjQ0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mOgoKICAgbW92ZSB0ZXh0IGluIGNvbW1lbnQgbGVmdCBzbGlnaHQgKHdhcyB0b28gbG9uZykuCiAgIAoyMDAyLTA1LTA3IDIyOjQzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGVudW0gZml4ZXMuCiAgIAoyMDAyLTA1LTA3IDIyOjQyICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBtaWIyYy5jb2x1bW5fZGVmaW5lcy5jb25mLAogICBtaWIyYy5jb2x1bW5fZW51bXMuY29uZiwgbWliMmMuY29uZjoKCiAgIE5ldyBtaWIyYyBmaWxlcyBmb3IgZ2VuZXJhdGluZyBoZWFkZXJzIGZ1bGwgb2YgY29sdW1uIG51bWJlciBkZWZpbmVzCiAgIGFuZCBlbnVtIGRlZmluZXMuCiAgIAoyMDAyLTA1LTA3IDIyOjQwICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICAtIC0tY29tcGlsZS1zdWJhZ2VudCBhZ2VudCBsaWJyYXJ5IHJlb3JkZXJpbmcgc28gaXQgYWN0dWFsbHkgd29ya3MuCiAgIC0gLS1jb21waWxlLXN1YmFnZW50IG5vdyBzdXBwb3J0cyAubyBmaWxlcyAocHJlY29tcGlsZWQgY29kZSkuCiAgIAoyMDAyLTA1LTA3IDIyOjMxICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oLCBjb25maWd1cmU6CgogICBobW0uICBtaXNzZWQgc29tZSBjaGVja2luIGZpbGVzLgogICAKMjAwMi0wNS0wNyAxMToxNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL3QvOiBjb25mdGVzdC5jb25mLCBzdGFydGFnZW50LnBsLCBjb25mLnQKOgoKICAgdGVzdCBmb3IgY29uZmlndXJhdGlvbiBmaWxlL2RlZmF1bHRfc3RvcmUgc3VwcG9ydAogICAKMjAwMi0wNS0wNyAxMToxNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSwgU05NUC54czoKCiAgIG1ha2UgaW5pdF9zbm1wKCkgdGFrZSBhIGNoYXIgKiBhcmd1bWVudCBsaWtlIHRoZSByZWFsIEFQSQogICAKMjAwMi0wNS0wNyAxMTowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgdHlwb3MuCiAgIAoyMDAyLTA1LTA3IDA5OjQxICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZjoKCiAgIGZpeCB0aGUgLWcgZmxhZy4KICAgCjIwMDItMDUtMDcgMDk6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNhbGwgbmV0c25tcF9zZXRfcmVxdWVzdF9lcnJvciBsaWtlIGEgZ29vZCBib3kuCiAgIAoyMDAyLTA1LTA2IDIwOjQzICByc3RvcnkKCiAgICogbWlicy9NYWtlZmlsZS5taWI6CgogICBmaXggbWlzc2luZyAkIG5vdGVkIGJ5IEpvaG4gTWlsbHMgb24gdGhlIGNvZGVycyBsaXN0CiAgIAoyMDAyLTA1LTA2IDE2OjEyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIHNubXBsaWIvc25tcF9hcGkuYwogICAoVjQtMi1wYXRjaGVzLls0LDIsMywzXSksIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluLAogICBzbm1wbGliL3NubXBUQ1BEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVRFBEb21haW4uYywgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmM6CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUgKGNvcnJlY3RseSBkb25lIHRoaXMgdGltZSkKICAgCjIwMDItMDUtMDYgMTU6NTkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wVENQRG9tYWluLmMsIHNubXBUQ1BJUHY2RG9tYWluLmMsCiAgIHNubXBVRFBEb21haW4uYywgc25tcFVEUElQdjZEb21haW4uYywgc25tcFVuaXhEb21haW4uYwo6CgogICB1c2Ugc2l6ZV90IHdoZW4gc29ja2xlbl90IGlzIG5vdCBhdmFpbGFibGUKICAgCjIwMDItMDUtMDYgMTU6NDkgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbgogICAoVjQtMi1wYXRjaGVzLlszLDcsMSwyXSksIGFjY29uZmlnLmgsIGNvbmZpZ3VyZSwKICAgY29uZmlndXJlLmluLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgdXNlIHNpemVfdCB3aGVuIHNvY2tsZW5fdCBpcyBub3QgYXZhaWxhYmxlCiAgIAoyMDAyLTA1LTA2IDE1OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9ocHV4LmMsIG1lbW9yeV9ocHV4LmgKLCB2bXN0YXRfaHB1eC5jLCB2bXN0YXRfaHB1eC5oOgoKICAgcnVuIGluZGVudAogICAKMjAwMi0wNS0wNiAxNToxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnlfaHB1eC5jLCBtZW1vcnlfaHB1eC5oCiwgdm1zdGF0X2hwdXguYywgdm1zdGF0X2hwdXguaDoKCiAgIFBhdGNoZXMgIzU1MTkxNCsgZnJvbSBHYXJ5IEVkd2FyZHMgdG8gc3VwcG9ydCBocHV4MTEgZm9yIG1lbW9yeSBhbmQgdm1zdGF0IG1vZHVsZXMKICAgCjIwMDItMDUtMDYgMTU6MDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmg6CgogICBhZGQgbmV3IGhwdXggbW9kdWxlcwogICAKMjAwMi0wNS0wNiAxNDozNCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbmV3IGNvbnRyaWJ1dG9ycy4KICAgCjIwMDItMDUtMDYgMTQ6MzIgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmgsIG1hbi9zbm1wY21kLjEuZGVmCiwgc25tcGxpYi9taWIuYzoKCiAgIFBhdGNoICM1NTE0ODk6IEZyb20gSmVmZnJleSBXYXRzb24gdG8gYWRkIGEgLVEgb3B0aW9uIGZvciBxdWljayBidXQgdy8gYW4gJz0nCiAgIAoyMDAyLTA1LTA2IDE0OjI4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICBjaGFuZ2UgLUQgZG9jdW1lbnRhdGlvbiB0byByZWZsZWN0IGN1cnJlbnQgY29kZS4KICAgCjIwMDItMDUtMDYgMTQ6MjcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIG1pc2Mgc21hbGwgYnVncyBhbmQgZXJyb3IgbWVzc2FnZSB3b3JkaW5nIGZpeGVzLgogICAKMjAwMi0wNS0wNiAwOTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC86IHNtdXguYyAoVjQtMi1wYXRjaGVzLjkpLCBzbXV4LmM6CgogICBidWcgIzU0NzAxMDogZml4IHNtdXggYXV0aCBidWcgYXMgcmVwb3J0ZWQgYW5kIGZpeGVkIGJ5IFN0ZWZhbiBSYWRtYW4KICAgCjIwMDItMDUtMDEgMjM6MDEgIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmY6CgogICB0d2Vha3MgZm9yIHVwZGF0ZSB0byB0YWJsZV9hcnJheQogICAKMjAwMi0wNS0wMSAyMzowMCAgcnN0b3J5CgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkIG9iamVjdF9tb25pdG9yIHN0dWZmCiAgIAoyMDAyLTA1LTAxIDIyOjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGFkZCBjaGVja192YXJiaW5kIHN0dWZmCiAgIAoyMDAyLTA1LTAxIDIyOjQ1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NoZWNrX3ZhcmJpbmQuaCwKICAgc25tcGxpYi9jaGVja192YXJiaW5kLmM6CgogICBjb252ZW5pZW5jZSBmdW5jdGlvbnMgZm9yIHZhbGlkYXRpb24gdmFicmluZCBpbmZvCiAgIAoyMDAyLTA1LTAxIDIyOjQzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5Lmg6CgogICBkbyBJIHJlYWxseSBoYXZlIHRvIGRvIHRoaXM/IHNpZ2guIE9rLCByZW5hbWUgZGVidWcgdG9rZW47IHJldmFtcCBsb2dpYyB0bwogICBtb2RpZnkgcm93cyBpbiBwbGFjZSwga2VlcGluZyB1bmRvIGluZm8gKHZzIGFsd2F5cyBjaGFuZ2luZyBhIGNvcHkgb2YgYSByb3cKICAgYW5kIHN3YXBwaW5nIHJvd3Mgd2hlbiBzZXQgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSkgdG8gYWxsb3cgZXh0ZXJuYWwgY29kZQogICB0byBrZWVwIHBvaW50ZXJzIHRoYXQgZG9uJ3QgZGlzYXBwZWFyIG9uIHRoZW07IGFkZCBhIGZldyBjYWxsYmFja3MsIGluY2x1ZGluZwogICByb3dfY29tcGFyZSwgc28gdGFibGVfYXJyYXkgY2FuIG1haW50YWluIHRoZSBzZWNvbmRhcnkgaW5kZXggdHJlZTsgZG9uJ3QgY2FsbAogICBjYW5fYWN0aXZhdGUvY2FuX2RlbGV0ZSB1bmxlc3Mgd2UgYXJlIGFjdHVhbGx5IHRyeWluZyB0byBhY3RpdmF0ZS9kZWxldGUgcm93OwogICBhZGQgc2tlbGV0b24gKGlmZGVmJ2Qgb3V0KSBjb2RlIGZvciBjb29wZXJhdGl2ZSBub3RpZmljYXRpb25zIG9mIHJvdyBldmVudHM7CiAgIHVwZGF0ZSBjaGFuZ2luZyBhcnJheSBpbiBjb21taXQgJiB1bmRvIGNhc2VzLCBub3QganVzdCBjb21taXQ7IGNoYW5nZSB0eXBkZWZzCiAgIGZvciBhIGZldyBjYWxsYmFjayBwb2ludGVyczsgdW1tbW0uLi4gSSAqdGhpbmsqIHRoYXQncyBpdC4uLi46LSkKICAgCjIwMDItMDUtMDEgMTc6MzAgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogT0lELnBtLCBPSUQueHMsIHRlc3QucGw6CgogICBBZGQgaW5kZXggYnVpbGRpbmcgdG8gdGhlICsgb3BlcmF0b3IuCiAgIAoyMDAyLTA1LTAxIDA5OjUyICBoYXJkYWtlcgoKICAgKiBwZXJsLzogT0lEL09JRC5wbSwgT0lEL09JRC54cywgYWdlbnQvTWFrZWZpbGUuUEwKLCBhZ2VudC9hZ2VudC5wbSwgYWdlbnQvYWdlbnQueHMsIGFnZW50L3Rlc3QucGwKLCBhZ2VudC90eXBlbWFwOgoKICAgTWFrZSBnZXRPSUQgZm9yIHJlcXVlc3RzIHJldHVybmVkIGEgTmV0U05NUDo6T0lEIGJsZXNzZWQgcmVmZXJlbmNlLgogICBJJ20gbm90IGhhcHB5IGFib3V0IGhvdyB0aGlzIGlzIGRvbmUsIGJ1dCBhbGwgYXR0ZW1wdHMgdG8gZG8gaXQKICAgY29ycmVjdGx5IG9ubHkgbGVmdCBtZSBpbiBjb25mdXNpb24uCiAgIAoyMDAyLTA1LTAxIDA5OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmgsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmgsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYywgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jCiwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKOgoKICAgQ2hhbmdlIHRoZSBkb21haW4gT0lEcyB0byBwb2ludCB0byB0aGUgbmV0LXNubXAgZG9tYWlucyBjcmVhdGVkIGJ5IERhdmUuCiAgIFRoaXMgZml4ZXMgYnVnICM1NDQyNDUgYXMgd2VsbC4KICAgCjIwMDItMDUtMDEgMDk6MzAgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgQWRkIHRoZSBPSUQgcGVybCBtb2R1bGUgdG8gdGhlIGxpc3Qgb2YgbW9kdWxlcy4KICAgCjIwMDItMDUtMDEgMDc6NDUgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtU05NUC1NSUIudHh0IChWNC0yLXBhdGNoZXMuMCksIFVDRC1TTk1QLU1JQi50eHQ6CgogICByZW1vdmUgb2xkIChhbmQgY29uZmxpY3Rpbmcgd2l0aCB0cmFwcykgdHJhbnNwb3J0IGRvbWFpbiBPSURzCiAgIAoyMDAyLTA1LTAxIDA2OjE5ICBkdHMxMgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xLmRlZiwgc25tcGJ1bGt3YWxrLjEuZGVmLAogICBzbm1wY21kLjEuZGVmLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLmRlZiwKICAgc25tcHNldC4xLmRlZiwgc25tcHN0YXR1cy4xLmRlZiwgc25tcHRlc3QuMS5kZWYsCiAgIHNubXB3YWxrLjEuZGVmOgoKICAgQWRkIHR5cGUgdGFncyAiU1RSSU5HOiAiIGFuZCAiSU5URUdFUjogIiB0byBleGFtcGxlIG91dHB1dC4KICAgQWRkIGV4cGxpY2l0IHNldHRpbmcgb2YgcHJvdG9jb2wgdmVyc2lvbiB0byBleGFtcGxlIGNvbW1hbmRzLgogICAKMjAwMi0wNS0wMSAwMzozNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uLzogYWd1dGlsLmMsIGFndXRpbC5oLAogICBhZ3V0aWxfYXBpLmgsIGFsYXJtLmMsIGFsYXJtLmgsIGV2ZW50LmMsCiAgIGV2ZW50LmgsIGhpc3RvcnkuYywgaGlzdG9yeS5oLCByb3dfYXBpLmgsCiAgIHJvd3MuYywgcm93cy5oLCBzdGF0aXN0aWNzLmMsIHN0YXRpc3RpY3MuaDoKCiAgICAgLSByZW1vdmUgQ1ZTIExvZzogZW50cmllcyB3aGljaCBhcmUgY2F1c2luZyBwcm9ibGVtcyBzaW5jZSB0aGV5IGFyZQogICAgICAgZW1iZWRkZWQgaW4gYSBjb21tZW50LCBidXQgc29tZSBvZiB0aGUgbG9nIGVudHJpZXMgY29udGFpbiBjb21tZW50CiAgICAgICBkZWxpbWl0ZXJzLgogICAKMjAwMi0wNC0zMCAyMjoxNSAgcnN0b3J5CgogICAqIGFnZW50L3NubXBkLmM6CgogICByZW1vdmUgbmV0c25tcF9wcm9jZXNzaW5nX3NldCwgaXQgbGl2ZXMgaW4gc25tcF9hZ2VudC5jCiAgIAoyMDAyLTA0LTMwIDIyOjEzICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCwgc25tcGxpYi9zbm1wLXRjLmMKOgoKICAgcmVtb3ZlIHVudXNlZCBwYXJhbWV0ZXI7IGFsbG93IE5PTkUgYXMgb2xkIHZhbHVlIGZvciBzdG9yYWdlIHR5cGUgdHJhbnN0aW9ucwogICAKMjAwMi0wNC0zMCAyMjoxMiAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaDoKCiAgIHJlbW92ZSBvdmVybHkgY29tcGxleCBtYWNybyBzdHVmZiBmb3Igcm93c3RhdHVzL3N0b3JhZ2V0eXBlCiAgIAoyMDAyLTA0LTMwIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL09JRC86IE1ha2VmaWxlLlBMLCBPSUQucG0sIE9JRC54cywgUkVBRE1FCiwgdGVzdC5wbDoKCiAgIC0gYWxsb3cgY29udmVyc2lvbnMgdG8gYW4gYXJyYXkgKG5lZWRzIHRvIGJlIHRpZWQgc3RpbGwpLgogICAtIGRvY3VtZW50YXRpb24uCiAgIAoyMDAyLTA0LTMwIDA4OjE1ICBqYnBuCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjMpLCBzbm1wZC5jOgoKICAgICAtIGZpeCBidWcgIzU0NTc3NSwgcmVwb3J0ZWQgYnkgRGF2ZSBEZW5zb24sIHdoZXJlYnkgdGhlIFBJRCBvZiBhbgogICAgICAgYWxyZWFkeS1ydW5uaW5nIHNubXBkIHdvdWxkIGJlIG92ZXJ3cml0dGVuIGJ5IHN0YXJ0aW5nIGEgbmV3IHNubXBkCiAgICAgICAod2hpY2ggd291bGQgdGhlbiBleGl0LCBsZWF2aW5nIHRoZSBvcmlnaW5hbCBzbm1wZCBydW5uaW5nIGFuZCB0aGUKICAgICAgIHdyb25nIFBJRCBpbiB0aGUgZmlsZSkuICBTb2x1dGlvbiBpcyBub3QgdG8gd3JpdGUgdGhlIFBJRCB1bnRpbCB3ZQogICAgICAgaGF2ZSBzdWNjZXNzZnVsbHkgb3BlbmVkIGFsbCBvdXIgc29ja2V0cy4KICAgCjIwMDItMDQtMzAgMDc6MjMgIGhhcmRha2VyCgogICAqIHBlcmwvT0lELzogLmN2c2lnbm9yZSwgQ2hhbmdlcywgTUFOSUZFU1QsCiAgIE1ha2VmaWxlLlBMLCBPSUQucG0sIE9JRC54cywgUkVBRE1FLAogICB0ZXN0LnBsLCB0eXBlbWFwOgoKICAgT0lEIHBlcmwgbW9kdWxlIHNvIHlvdSBjYW4gZG8gc2ltcGxlIE9JRCBtYW5pcHVsYXRpb25zIHdpdGhpbiBwZXJsIGVhc2lseToKICAgICAtIEV4YW1wbGU6ICBuZXcgTmV0U05NUDo6T0lEKCdpbnRlcmZhY2VzJykgPiBuZXcgTmV0U05NUDo6T0lEKCdzeXN0ZW0nKQogICAKMjAwMi0wNC0yOSAxNjo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHJlZ2V4cCBmaXggZm9yIHdoaXRlIHNwYWNlIGNoZWNrcyBpbiBpbmRlbnQgZm9ybWF0dGVkIGNvZGUKICAgCjIwMDItMDQtMjkgMTY6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgcmVvcmRlciBwZXJsIG1vZHVsZSBuYW1lcyB0byByZWZsZWN0IChuZXcpIGRlcGVuZGVuY2llcy4KICAgCjIwMDItMDQtMjkgMDk6NDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L21pYi50OgoKICAgZml4IGEgZmV3IHdhcm5pbmdzIG9uIGZhaWxlZCB0ZXN0cyAoanVzdCBzY3JlZW4gY2xlYW51cHMpCiAgIAoyMDAyLTA0LTI5IDA5OjQxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgU05NUC5wbToKCiAgIE1ha2UgdGhlIHBlcmwgbW9kdWxlIHJlc3BlY3Qgc25tcC5jb25mIHNldHRpbmdzIChmaW5hbGx5KS4KICAgICAtIE5vdyByZXF1aXJlcyBhIGRlcGVuZGVuY3kgb24gdGhlIE5ldFNOTVA6OmRlZmF1bHRfc3RvcmUgbW9kdWxlIHRob3VnaC4KICAgCjIwMDItMDQtMjcgMDg6MTkgIHJzdG9yeQoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBkb24ndCBwcm9jZXNzIHNldCByZXF1ZXN0IHRpbGwgZGVsZWdhdGVkIHJlcXVlc3RzIGFyZSBjb21wbGV0ZSwgYW5kIHF1ZXVlCiAgIGFueSBvdGhlciByZWNlaXZlZCBwYWNrZXRzIHVudGlsIGEgc2V0IGhhcyBjb21wbGV0ZWQgcHJvY2Vzc2luZy4KICAgCjIwMDItMDQtMjcgMDg6MTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBjbGVhbiB1cCBjb21tZW50cyBtdW5nZWQgYnkgaW5kZW50CiAgIAoyMDAyLTA0LTI3IDA4OjA4ICByc3RvcnkKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50Lmg6CgogICBhZGQgbWlzc2luZyBwcm90b3R5cGUgdG8gZml4IGNvbXBpbGVyIHdhcm5pbmcKICAgCjIwMDItMDQtMjcgMDg6MDcgIHJzdG9yeQoKICAgKiBhZ2VudC86IG9iamVjdF9tb25pdG9yLmMsIGhlbHBlcnMvdGFibGUuYywKICAgaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgaWZkZWYgZ3ltbmFzdGljcyB0byBtYWtlIHN1cmUgYXNzZXJ0cyBhcmUgb25seSBjb21waWxlZCBpbiBvbmx5IGlmIGV4cGxpY2l0eQogICByZXF1ZXN0ZWQKICAgCjIwMDItMDQtMjYgMjE6MjYgIHJzdG9yeQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYzoKCiAgIGZpeCB1bmJhbGFuY2VkIGVuZGlmIG9uIGxpbnV4LiBob3BlIEkgZGlkbid0IGJyZWFrIGFueXRoaW5nIGVsc2UuCiAgIAoyMDAyLTA0LTI2IDE5OjE0ICByc3RvcnkKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZpeCB1bnVzZWQgdmFyIHdhcm5pbmcgZm9yICF3aW5kb3dzCiAgIAoyMDAyLTA0LTI2IDE0OjMzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9SbW9uL2V2ZW50LmMsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9hc24xLmg6CgogICBmaXggT0lEX0xFTkdUSCBkZWZpbml0aW9ucwogICAKMjAwMi0wNC0yNiAxMDo1MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4sIHBlcmwvQVNOL01ha2VmaWxlLlBMLAogICBwZXJsL2FnZW50L01ha2VmaWxlLlBMLCBwZXJsL2FnZW50L2RlZmF1bHRfc3RvcmUvTWFrZWZpbGUuUEw6CgogICBmaXggLS13aXRoLXBlcmwtbW9kdWxlcyBpbiBtYWtlZmlsZXMuICBNYWtlIGV2ZXJ5dGhpbmcgdXNlCiAgIG5ldC1zbm1wLWNvbmZpZywgLi4uCiAgIAoyMDAyLTA0LTI2IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCwgUkVBRE1FLCBTTk1QLnBtOgoKICAgLSBDbGVhbnVwLgogICAtIE1ha2UgYnVpbGRhYmxlIGZyb20gd2l0aGluIHRoZSBzb3VyY2UuCiAgIC0gQ2hhbmdlIGRvY3VtZW50YXRpb24gcmVmZXJlbmNlcyBmb3IgdWNkLXNubXAKICAgLSBDaGFuZ2UgY29udGFjdCBsb2NhdGlvbiB0byBuZXQtc25tcC11c2VycyAocGVyIEpvZSdzIGFncmVlbWVudCkKICAgCjIwMDItMDQtMjYgMTA6MTkgIGhhcmRha2VyCgogICAqIHBlcmwvZGVmYXVsdF9zdG9yZS86IE1BTklGRVNULCBNYWtlZmlsZS5QTCwgUkVBRE1FLCAKCWRlZmF1bHRfc3RvcmUucG0sIHRlc3QucGw6CgogICAtIGNsZWFudXAuCiAgIC0gVXNlIG5ldC1zbm1wLWNvbmZpZyB0byBmaW5kIGxpYnJhcnksIGV0Yy4KICAgLSBNYWtlIGJ1aWxkYWJsZSBmcm9tIHdpdGhpbiB0aGUgc291cmNlLgogICAtIGEgZmV3IG1vcmUgdGVzdHMgYWRkZWQKICAgLSB1c2UgY29ycmVjdCBsaWJyYXJpZXMKICAgLSBhZGQgZG9jdW1lbnRhdGlvbgogICAKMjAwMi0wNC0yNiAwNDoyMiAgZHRzMTIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBFeHRyYWN0aW5nIHRoZSB2ZXJzaW9uIGZyb20gJ3NubXBsaWIvc25tcF92ZXJzaW9uLmMnIG5lZWRzIHRvIHRha2UgYWNjb3VudAogICBvZiBibGFuayBzcGFjZS4gIFJlcG9ydGVkIGJ5IFN0ZWZhbiBSYWRtYW4gKEJ1ZyAjNTQ3Mzc5KQogICAKMjAwMi0wNC0yNiAwNDoxMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYyAoVjQtMi1wYXRjaGVzLjgpLCBtZW1vcnkuYwo6CgogICBIYW5kbGUgbWVtb3J5IHZhbHVlcyA+IDMyYml0IChsYXRjaGluZyBhdCAyXjMyLTEpCiAgIFBhdGNoICM1NDg2NjMgZnJvbSBSb2IgTXllcnMKICAgCjIwMDItMDQtMjYgMDM6NTUgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBSZW1vdmUgcmVkdW5kYW50ICdJbnZhbGlkIG9wdGlvbicgbWVzc2FnZSwgc2luY2UgdGhpcyBpcyB0eXBpY2FsbHkKICAgcmVwb3J0ZWQgYnkgZ2V0b3B0KCkuICAoU3VnZ2VzdGVkIGJ5IEFuZHJldyBSdWNrZXIgSm9uZXMgLSBwYXRjaCAjNTQ4NzQ4ICkKICAgCjIwMDItMDQtMjYgMDM6NTEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBBZGQgJ3YnIHRvIHRoZSBsaXN0IG9mIHZhbGlkIG9wdGlvbnMgKHBhdGNoICM1NDg3NDgpCiAgIFRoYW5rcyB0byBBbmRyZXcgUnVja2VyIEpvbmVzLgogICAKMjAwMi0wNC0yNiAwMzozNiAgZHRzMTIKCiAgICogUkVBRE1FLmhwdXgxMSwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5oOgoKICAgQXBwbHkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyJ3MgaW1wcm92ZWQgSFAtVVggMTEgcGF0Y2gKICAgKCM1MzA3MjQpIHRvIHRoZSBtYWluIHY1IGxpbmUsIGFzIHdlbGwgYXMgdGhlIHY0LTIgYnJhbmNoLgogICBUaGUgY29kZSBub3cgY29tcGlsZXMgY2xlYW5seSB1bmRlciBIUC1VWCAxMSB1c2luZyBnY2MuCiAgIAoyMDAyLTA0LTI1IDA3OjE5ICBoYXJkYWtlcgoKICAgKiBSRUFETUUsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92YWNtLmgsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgUGF0Y2ggZnJvbSBBeGVsIEtpdHRlbmJlcmcgdG8gZml4IHBvc3NpYmxlIHZhcmlhYmxlIG5hbWUgY2xhc2gKICAgCjIwMDItMDQtMjQgMjI6MzkgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgaGFuZGxlIGNhbGxiYWNrcyBzZW5kaW5nIG5ldyBub3RpZmljYXRpb25zICh3aGlsZSBwcm9jZXNzaW5nIG5vdGlmaWNhdGlvbnMpCiAgIAoyMDAyLTA0LTI0IDIxOjM1ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vYmplY3RfbW9uaXRvci5oOgoKICAgaGVhZGVyIGZvciBuZXcgZnVjbnRpb25zIGZvciBtb25pdG9yaW5nIG9iamVjdHMKICAgCjIwMDItMDQtMjQgMjE6MzQgIHJzdG9yeQoKICAgKiBhZ2VudC9vYmplY3RfbW9uaXRvci5jOgoKICAgbmV3IGZ1bmN0aW9ucyBmb3IgbW9uaXRvcmluZyBvYmplY3QgdmFsdWVzCiAgIAoyMDAyLTA0LTI0IDE1OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYzoKCiAgIC9wcm9jL3N0YXQgY2FuIGJlIGxhcmdlciB0aGFuIDEwMjQKICAgCjIwMDItMDQtMjQgMDY6MTkgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtaXNzaW5nICdtZDUuaCcgaGVhZGVyIGZpbGUuCiAgIAoyMDAyLTA0LTIzIDA5OjQzICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy86IHRhYmxlLmMsIHRhYmxlX2FycmF5LmM6CgogICByZW1vdmUgbGFzdCBvZiB0aGUgI3dhcm5pbmdzLCBhZGQgeHh4LXJrcyBpZiBuZWNlc3NhcnkKICAgCjIwMDItMDQtMjMgMDc6NTMgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIHJlbW92ZSB3YXJuaW5ncwogICAKMjAwMi0wNC0yMiAxOToxMSAgcnN0b3J5CgogICAqIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvUkVBRE1FOgoKICAgdXBkYXRlIFVSTCB0byB1c2UgZnJlZW5tcC5jb20gbWlycm9yICh1bmxlc3Mgc29tZW9uZSBrbm93cyBhIGJldHRlciBwbGFjZT8pCiAgIAoyMDAyLTA0LTIyIDE0OjEwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGFwcGx5IGRvY3VtZW50YXRpbiBwYXRjaCBmcm9tIEF4ZWwgS2l0dGVuYmVyZ2VyIDxBeGVsLktpdHRlbmJlcmdlckBtYXh4aW8uY29tPgogICAKMjAwMi0wNC0yMiAxMzo1MCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHJlbW92ZSBleHRyYSBAZW5kQCAoc3VyZSB3b3VsZCBiZSBuaWNlIGlmIG1pYjJjIHdvdWxkIGNoZWNrIGZvciB1bmJhbGFuY2VkCiAgIEBlbmRAcykKICAgCjIwMDItMDQtMjIgMDk6NDggIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgdXBkYXRlIGZ1bmN0aW9uIG5hbWVzIHRvIG1hdGNoIGhlYWRlciAobm8gbWl4ZWQgY2FzZSkKICAgCjIwMDItMDQtMjIgMDg6MTEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2RlYnVnLmg6CgogICBmaXggYnVnICM1NDcxMTA6IHByb3Blcmx5IHNwZWxsIGRlZmluZQogICAKMjAwMi0wNC0yMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jOgoKICAgYWRkIHN0YXRpYyB0byBhIHJldHVybmVkIHZhcmlhYmxlCiAgIAoyMDAyLTA0LTIxIDE2OjQyICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCAtLXdpdGgtcGVybC1tb2R1bGVzCiAgIAoyMDAyLTA0LTIxIDExOjM3ICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIDUuMC5wcmUzIC0+IDUuMDsgKEknbSBzdXJlIHRoZXJlIGFyZSBvdGhlciBwbGFjZXMgdGhpcyBuZWVkcyB0byBjaGFuZ2UsCiAgIGJ1dCBJIHdhbnRlZCB0byBnZXQgdGhlIGZpcnN0IHBvc3QgNS4wIGNoZWNraW4uLi46LSkKICAgCjIwMDItMDQtMjAgMDA6MzcgIGhhcmRha2VyCgogICAqIEZBUSwgc2Vkc2NyaXB0LmluLCBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAgKQoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIgLT4gVjUuMAoKMjAwMi0wNC0yMCAwMDoyNyAgaGFyZGFrZXIKCiAgICogZXZlcnl0aGluZzoKCiAgIHNldCBhbGwgQ1ZTL1JDUyByZXZpc2lvbiBjb250cm9sIG51bWJlcnMgdG8gNS4wCgkKMjAwMi0wNC0yMCAwMDowNyAgaGFyZGFrZXIKCiAgICogZXZlcnl0aGluZzoKCQogICBXaGl0ZSBzcGFjZSwgb2ggZ2xvcmlvdXMgd2hpdGUgc3BhY2UuCiAgIEhvdyBncmVhdCBvdXIgdGhvdWdoPwogICBUaGUgY29kZSBpcyBmaW5lLgogICBXZSBhZ3JlZSBvbiBmdW5jdGlvbmFsaXR5IGVhc2lseS4KICAgV2hhdCByZWFsbHkgdHJvdWJsZXMgdXM/CiAgIFNvbWV0aGluZyB3ZSBjYW4ndCBzZWUuCiAgIFNvbWV0aGluZyBiZXR3ZWVuIHRoZSBjb2RlLgogICBXZSBib3cgZG93biB0byB5b3VyIG1hZ25pZmljZW5jZSwKICAgRm9yIHlvdSBhcmUgZXZlcnl3aGVyZSwKICAgQmV0d2VlbiBldmVyeXRoaW5nLgogICBQcmV0dHkgbm90aGluZ25lc3MgeW91IGFyZS4KCQoyMDAyLTA0LTIwIDAwOjAxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICB0dXJuIG9uIHVjZCBjb21wYXQgYnkgZGVmYXVsdC4KICAgCjIwMDItMDQtMjAgMDA6MDAgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBsYXN0IHVwZGF0ZXMKICAgCjIwMDItMDQtMTkgMjM6MzMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmg6CgogICByZW1vdmUgdGVzdGRlbGF5ZWQKICAgCjIwMDItMDQtMTkgMjM6MTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy86IC5jdnNpZ25vcmUgLCAuY3ZzaWdub3JlOgoKICAgY3ZzIGlnbm9yZSBmaWxlCiAgIAoyMDAyLTA0LTE5IDIzOjE3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3BlcmwuYzoKCiAgIGRvbid0IGRpZSBpZiBwZXJsIGRvZXNuJ3QgaW5pdC4KICAgCjIwMDItMDQtMTkgMjM6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSAsIFJFQURNRSAsIFNOTVAucG06CgogICBjaGFuZ2Ugd2FybmluZy4KICAgCjIwMDItMDQtMTkgMjI6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGRvdWJsZSBjaGVjayB0aGF0IG11bHRpcGxlIGluc2VydHMgaW50byB0aGUgZGVsZWdhdGVkIGNoYWluIGRvbid0CiAgIGhhcHBlbiAocmVhZDogdGhleSBzaG91bGRuJ3QgYW55d2F5LCBidXQuLi4uLikuCiAgIAoyMDAyLTA0LTE5IDIyOjI5ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIHR5cGVkZWYgdXBkYXRlCiAgIAoyMDAyLTA0LTE5IDIyOjE2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgRml4IHRoZSBjYWxsYmFjayBidWlsZCBob29rIHRvIHR1cm4gb2ZmIHRoZSBleHBlY3QgcmVzcG9uc2UgZmxhZyB3aGVuCiAgIG5vdCBhcHByb3ByaWF0ZS4KICAgCjIwMDItMDQtMTkgMTk6MDkgIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvb2lkX2FycmF5Lmg6CgogICBzcGVsbGluZyBtaXN0ZWFrOyByZW1vdmUgY2FwaXRhbCBsZXR0ZXJzIGluIGZ1bmN0aW9uIG5hbWVzCiAgIAoyMDAyLTA0LTE5IDE5OjA4ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgdXBkYXRlIGZvciBmdW5jdGlvbiBuYW1lIGNoYW5nZWQgaW4gb2lkX2FycmF5LmgKICAgCjIwMDItMDQtMTkgMTg6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfcGVybC5jOgoKICAgbWFrZSB0aGUgcGVybEluaXRGaWxlIGFuZCBkaXNhYmxlUGVybCB0b2tlbnMgcmVnaXN0ZXIgYXMgcHJlbWliIHN1Y2gKICAgdGhhdCB3aGVuIHBhc3NlZCBhcyBhIC0tRkxBRyBpdCdsbCBhY3R1YWxseSBkbyB0aGUgcmlnaHQgdGhpbmcgYW5kCiAgIGRpc2FibGUgdGhlIGxhdGVyICJwZXJsIiB0b2tlbiBoYW5kbGVycy4KICAgCjIwMDItMDQtMTkgMTc6MjkgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgbWFuL01ha2VmaWxlLmluICwgbWFuL25ldHNubXBfYWdlbnQuMwogICAsIG1hbi9uZXRzbm1wX2J1bGtfdG9fbmV4dC4zICwgbWFuL25ldHNubXBfZGVidWcuMyAsCiAgIG1hbi9uZXRzbm1wX2V4YW1wbGVfc2NhbGFyX2ludC4zICwgbWFuL25ldHNubXBfaGFuZGxlci4zCiAgICwgbWFuL25ldHNubXBfaW5zdGFuY2UuMyAsCiAgIG1hbi9uZXRzbm1wX21pYl9oYW5kbGVyX21ldGhvZHMuMyAsIG1hbi9uZXRzbm1wX211bHRpcGxleGVyLjMKICAgLCBtYW4vbmV0c25tcF9vbGRfYXBpLjMgLCBtYW4vbmV0c25tcF9yZWFkX29ubHkuMyAsCiAgIG1hbi9uZXRzbm1wX3NlcmlhbGl6ZS4zICwgbWFuL25ldHNubXBfdGFibGUuMyAsCiAgIG1hbi9uZXRzbm1wX3RhYmxlX2FycmF5LjMgLCBtYW4vbmV0c25tcF90YWJsZV9kYXRhLjMgLAogICBtYW4vbmV0c25tcF90YWJsZV9kYXRhc2V0LjMgLCBtYW4vbmV0c25tcF90YWJsZV9pdGVyYXRvci4zCiAgICwgbWFuL25ldHNubXBfdG9kby4zOgoKICAgZG9jdW1lbnRhdGlvbi4gIENhbid0IGdldCBlbm91Z2guCiAgICAgLSBtYWtlIGRvY3Mgbm93IGluc3RhbGxzIG1hbiBwYWdlcyBpbnRvIHRoZSBtYW4gZGlyLCB3aGljaCBhcmUgdGhlbiBpbnN0YWxsZWQuCiAgIAoyMDAyLTA0LTE5IDE3OjE0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCAsIFQxMjFwcm94eXNldDoKCiAgIENvcnJlY3QgZm9yIG5ldyBTVFJJTkcgcHJlZml4LgogICAKMjAwMi0wNC0xOSAxNzowMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkIEthdHN1aGlzYSBBQkUKICAgCjIwMDItMDQtMTkgMTc6MDMgIGhhcmRha2VyCgogICAqIHBlcmwvOiBBU04vQVNOLnhzICwgZGVmYXVsdF9zdG9yZS9kZWZhdWx0X3N0b3JlLnhzOgoKICAgZml4IGhlYWRlciBmaWxlcyBmb3IgbmV3IHBhdGhzLgogICAKMjAwMi0wNC0xOSAxNzowMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgbWFuL3NubXBkLmNvbmYuNS5kZWYgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICBBcHBseSBwYXRjaCAjNTMyNTU1OiBpcHY2IGNvbTJzZWMgc3VwcG9ydCwgdGhhbmtzIHRvIEthdHN1aGlzYSBBQkUuCiAgIAoyMDAyLTA0LTE5IDE2OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oICwgc25tcGxpYi90b29scy5jOgoKICAgZml4IHN5c1VwVGltZSAoYW5kIHJlbGF0ZWQgZnVuY3Rpb25zKSB0byBoYW5kbGUgbXVjaCBsYXJnZXIgdXBUaW1lCiAgIHZhbHVlcyAoaWUsIGZpeCBzaWduZWQgaW50ZWdlciB3cmFwcGluZykuCiAgIAoyMDAyLTA0LTE5IDExOjM3ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50IGVtYmVkZGVkIHBlcmwgc3VwcG9ydC4KICAgCjIwMDItMDQtMTkgMTE6MzQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIGFnZW50L01ha2VmaWxlLmluCiAgICwgYWdlbnQvc25tcF9wZXJsLmMgLCBhZ2VudC9zbm1wX3BlcmwucGwgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50LmggLCBwZXJsL2FnZW50L01ha2VmaWxlLlBMOgoKICAgQWRkIHNvbWUgbmV3IHNubXBkLmNvbmYgdG9rZW5zIGZvciBjb250cm9sbGluZyBwZXJsIGJldHRlci4KICAgRml4IGVtYmVkZGVkIHBlcmwgc3VwcG9ydCBzbyBpdCBhY3R1YWxseSB3b3Jrcy4KICAgCjIwMDItMDQtMTkgMTE6MzIgIGhhcmRha2VyCgogICAqIHBlcmwvYWdlbnQvZGVmYXVsdF9zdG9yZS86IC5jdnNpZ25vcmUgLCBNYWtlZmlsZS5QTCAsCiAgIGRlZmF1bHRfc3RvcmUucG0gLCBkZWZhdWx0X3N0b3JlLnhzOgoKICAgQWRkZWQgbWlzc2luZyBhZ2VudCBkZWZhdWx0X3N0b3JlIHN0dWZmLiAgKHRoZXkgZXhpc3RlZCBvbiBteSBtYWNoaW5lLAogICBJIGRvbid0IGtub3cgd2h5IGV2ZXJ5b25lIGVsc2Ugd2FzIGhhdmluZyBwcm9ibGVtcykKICAgCjIwMDItMDQtMTkgMTA6MzAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIFByb3RlY3QgYWdhaW5zdCB0aGluZ3MgdGhhdCBzaG91bGQgbmV2ZXIgZXZlciBoYXBwZW4KICAgCjIwMDItMDQtMTkgMDM6MTAgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgPFNpZ2g+IEEgbGl0dGxlIGxlYXJuaW5nIGlzIGEgZGFuZ2Vyb3VzIHRoaW5nLgogICBBcHBseSB0aGUgcmVzdCBvZiB0aGUgcGF0Y2ggZnJvbSBBeGVsIC0gc29ycnkuCiAgIAoyMDAyLTA0LTE5IDAxOjQ5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5pbiAsIGRveHlnZW4uY29uZjoKCiAgIEhhbmRsZSBnZW5lcmF0aW5nIGRvY3VtZW5hdGlvbiB3aGVuIHNyY2RpciAhPSBjb25maWdkaXIKICAgKFBhdGNoIHN1cHBsaWVkIGJ5IEF4ZWwgS2l0dGVuYmVyZ2VyKQogICAKMjAwMi0wNC0xOCAxNzozOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wSVBYRG9tYWluLmM6CgogICBmaXggc25tcElQWERvbWFpbiAoYWdhaW4pCiAgIAoyMDAyLTA0LTE4IDE3OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIFBhdGNoIGZyb20gVmlzaGFsIFZlcm1hOiBvbmx5IG9wZW4gc3ViYWdlbnQgY29ubmVjdGlvbnMgb25jZSBhdCBzdGFydHVwCiAgIAoyMDAyLTA0LTE4IDE3OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgUGF0Y2ggZnJvbSBWaXNoYWwgVmVybWE6IGZvciBkb3duIHN1YmFnZW50IGNhc2VzLCBtYXJrIHJlZ2lzdHJhdGlvbnMgYXMgZGV0YWNoZWQKICAgCjIwMDItMDQtMTggMTc6MTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGRlZmluZSBhIG1heGltdW0gcGFja2V0IHNpemUgd2UgY2FuIGFjY2VwdCB0byBwcm90ZWN0IGNlcnRhaW4gZXJyb3IKICAgY29uZGl0aW9ucyAoLTEgYWZ0ZXIgY29udmVyc2lvbiBpcyBub3cgdG9vIGxhcmdlKS4KICAgCjIwMDItMDQtMTggMTY6MjggIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmg6CgogICBjaGFuZ2UgdGhlIGVudGVycHJpc2UgT0lEcyBpbiB0aGUgcHJvcGVyIHBsYWNlIChuZXQtc25tcC1jb25maWcuaC5pbgogICBpcyBnZW5lcmF0ZWQgZnJvbSB0aGlzIGZpbGUpLgogICAKMjAwMi0wNC0xOCAxMzo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwgbmV0LXNubXAtY29uZmlnLmluOgoKICAgLSBBZGQgdHdvIG5ldyBvcHRpb25zIHRvIG5ldC1zbm1wLWNvbmZpZyBhcyByZXF1ZXN0ZWQgb24gdGhlIElSQyBjaGFubmVsLgogICAgIC0tY29uZmlndXJlLW9wdGlvbnMKICAgICAtLXNubXBkLW1vZHVsZS1saXN0CiAgIAoyMDAyLTA0LTE4IDExOjQzICByc3RvcnkKCiAgICogbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgYWRkIG1pc3NpbmcgY29tbWEKICAgCjIwMDItMDQtMTggMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIENhbGN1bGF0ZSB0aGUgbGVuZ3RoIG9mIHN1cHBsaWVkIGVudGVycHJpc2UgT0lEcyBjb3JyZWN0bHkKICAgKGFuZCB1c2UgYSBtb3JlIG1lYW5pbmdmdWwgb3V0cHV0IG1lc3NhZ2UpCiAgIAogICBTaGFtZSB0aGVzZSBzZXR0aW5ncyBhcmVuJ3QgY2FjaGVkIGZvciBsYXRlciByZS11c2UuLi4uCiAgIAoyMDAyLTA0LTE4IDA3OjE4ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgTm90aWZ5IG9uIGFnZW50IHJlY29uZmlndXJhdGlvbi4KICAgCjIwMDItMDQtMTggMDc6MTYgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW46CgogICBVc2UgdGhlIE5ldC1TTk1QIG5vdGlmaWNhdGlvbnMgYnkgZGVmYXVsdCwgcmF0aGVyIHRoYW4gdGhlIHVjZGF2aXMgb25lcy4KICAgCjIwMDItMDQtMTggMDc6MDggIGR0czEyCgogICAqIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dDoKCiAgIEZpeCB0aGUgdGFibGUtb2YtY29udGVudHMgc2VxdWVuY2UgZm9yIHRoZSBuc01vZHVsZVRhYmxlLCBhZGQgbm90aWZpY2F0aW9uCiAgIGRlZmluaXRpb25zIGZvciB0aGUgYWdlbnQsIGFuZCBkZWZpbmUgZ3JvdXBzIGZvciBldmVyeXRoaW5nLgogICAKMjAwMi0wNC0xOCAwMjo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIEJyaW5nIGludGVnZXIgYW5kIHN0cmluZyBvdXRwdXQgZm9ybWF0cyBpbnRvIGxpbmUgd2l0aCB0aGUgb3RoZXIgdHlwZXMKICAgYnkgcHJpbnRpbmcgYSB0eXBlIHRva2VuIGJlZm9yZSB0aGUgdmFsdWUgKHVubGVzcyBzdXByZXNzZWQgYnkgJ3F1aWNrIHByaW50JykKICAgVGhhbmtzIHRvIEVyaWsgZm9yIHRoZSBwYXRjaAogICAKMjAwMi0wNC0xOCAwMTo0NiAgZHRzMTIKCiAgICogRkFROgoKICAgUmVwbGFjZSB0aGUgZGxtb2QgJ1dIRVJFJyB3aXRoIHNvbWV0aGluZyBtb3JlIG1lYW5pbmdmdWwuLi4uCiAgIAoyMDAyLTA0LTE3IDEyOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBJUFhEb21haW4uYzoKCiAgIGRlZmluZSB0aGUgaXB4RG9tYWluIHZhcmlhYmxlcwogICAKMjAwMi0wNC0xNyAxMjoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgRXJyb3IgY29uZGl0aW9uIHRlc3RzCiAgIAoyMDAyLTA0LTE3IDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgT2gsIGp1c3QgYSBzbWFsbCBwYXRjaCB0byBtYWtlIGl0IHBvc3NpYmxlIHRvIG1ha2UgbW9kdWxlcyByZXF1ZXN0CiAgIHRoYXQgYWxsIHF1ZXJpZXMgdG8gYSBzZXQgb2YgcmVnaXN0cmF0aW9ucyBnZXQgcGFzc2VkIGFsbCBhdCBvbmNlCiAgICh3aGljaCBhcHBhcmVudGx5IGlzIGltcG9ydGFudCBmb3IsIG9oLCBhZ2VudHgpCiAgIAoyMDAyLTA0LTE3IDEwOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBtaXNjIG5vbi1jaGFuZ2UgY2xlYW4gdXBzCiAgIAoyMDAyLTA0LTE3IDEwOjAzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmg6CgogICByZW5hbWUgc3RydWN0dXJlcyBiZWdpbm5pbmcgd2l0aCBfIHRvIGVuZGluZyB3aXRoIF9zCiAgIAoyMDAyLTA0LTE3IDEwOjAyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaDoKCiAgIGFkZCBhIHZvaWQgKiBwb2ludGVyIGZvciB0aGUgc2Vzc2lvbiBjcmVhdG9yIHRvIHVzZSBhdCB3aWxsIChkaWZmZXJlbnQKICAgZnJvbSB0aGUgY2FsbGJhY2sgbWFnaWMpLgogICAKMjAwMi0wNC0xNyAwOTowMCAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbjoKCiAgIFVzZSB0aGUgTmV0LVNOTVAgc3lzT0lEcyBieSBkZWZhdWx0LCByYXRoZXIgdGhhbiB0aGUgdWNkYXZpcyBvbmVzLgogICAKMjAwMi0wNC0xNyAwODoyNiAgZHRzMTIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEJsYW5rIGNvbnRpbnVhdGlvbiBsaW5lcyBjb25mdXNlIEhQJ3MgdmVyc2lvbiBvZiBtYWtlLgogICAKMjAwMi0wNC0xNyAwODoxNiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBCbGFuayBjb250aW51YXRpb24gbGluZXMgY29uZnVzZSBIUCdzIHZlcnNpb24gb2YgbWFrZQogICAKMjAwMi0wNC0xNyAwNjo1NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jICwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgbW92ZSBuc01vZHVsZVRhYmxlIGludG8gRGF2ZSdzIHN0cnVjdHVyZS4KICAgCjIwMDItMDQtMTcgMDY6NTQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS86IHNubXBBQUw1UFZDRG9tYWluLmggLAogICBzbm1wVENQSVB2NkRvbWFpbi5oICwgc25tcFVEUElQdjZEb21haW4uaDoKCiAgIGZpeCBkZWNsYXJhdGlvbnMgb2YgRG9tYWluIG9iamVjdHMgKGNvbnN0IC0+IGV4dGVybikKICAgCjIwMDItMDQtMTcgMDY6MzEgIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mLmRpci86IHNubXAtZGF0YS9zbm1wY29uZi1jb25maWcgLAogICBzbm1wZC1kYXRhL3NubXBjb25mLWNvbmZpZyAsIHNubXB0cmFwZC1kYXRhL3NubXBjb25mLWNvbmZpZzoKCiAgIHNubXBjb25mIGNvbmZpZ3VyYXRpb24gZGF0YQogICAKMjAwMi0wNC0xNyAwMzowMSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQnJpbmcgdGhlIHJlcG9ydGVkIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHN5c29pZCAmIG5vdGlmaWNhdGlvbiBPSURzCiAgIGJhY2sgaW50byBsaW5lIHdpdGggd2hhdCB3ZSBhY3R1YWxseSB1c2UgKGkuZS4gdGhlIHVjZGF2aXMgT0lEcykuCiAgIAogICBRbjogIERvIHdlIHdhbnQgdG8gc3dpdGNoIHRvIHVzaW5nIHRoZSBuZXQtc25tcCBlcXVpdmFsZW50IHN5c09JRHM/CiAgIFFuOiAgV2hhdCBhYm91dCBkZWZpbmluZyBuZXQtc25tcCBub3RpZmljYXRpb25zPwogICAKMjAwMi0wNC0xNyAwMjo1NSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgRml4IC0td2l0aC1lbnRlcnByaXNlLXN5c29pZCBhbmQgLS13aXRoLWVudGVycHJpc2Utbm90aWZpY2F0aW9uLW9pZCwKICAgYW5kIHRyeSB0byBjbGFyaWZ5IHRoYXQgdGhlc2UgYXJlIE9JRHMsIHdoaWxlIC0td2l0aC1lbnRlcnByaXNlLW9pZAogICBpcyBhY3R1YWxseSBqdXN0IHRoZSBlbnRlcnByaXNlICpudW1iZXIqCiAgIAogICBRbjogIHNob3VsZCB3ZSBjaGFuZ2UgdGhlIG5hbWUgb2YgdGhlIGNvbmZpZ3VyZSBvcHRpb24gdG8gcmVmbGVjdCB0aGlzPwogICAKMjAwMi0wNC0xNiAxMDowNCAgaGFyZGFrZXIKCiAgICogc2Vkc2NyaXB0LmluICwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYyAsIEZBUSAsCiAgIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAoc25tcGxpYi9zbm1wX3ZlcnNpb24uYyBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUzICkKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGRlbGV0ZSB0b3AgZGlzY2xhaW1lcnMKICAgCjIwMDItMDQtMTYgMTA6MDIgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtaXNjIHVwZGF0ZXMKICAgCjIwMDItMDQtMTYgMTA6MDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgbWlzYyBidWcgZml4ZXMKICAgCjIwMDItMDQtMTYgMDg6MTkgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhbiBlbnRyeSBjb25jZXJuaW5nIHRoZSAnbGliY3J5cHRvJyBSUE0gZGVwZW5kZW5jeS4KICAgCjIwMDItMDQtMTYgMDg6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zTW9kdWxlVGFibGUuYzoKCiAgIGZpeCBtZW1vcnkgbGVhawogICAKMjAwMi0wNC0xNiAwNzoxMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgcmVtb3ZlIGEgbm8gbG9uZ2VyIGFwcHJvcHJpYXRlIHRvZG8gY29tbWVudAogICAKMjAwMi0wNC0xNiAwNzoxMiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlOgoKICAgSSBndWVzcyBJIGZvcmdvdCB0byBydW4gYXV0b2NvbmYKICAgCjIwMDItMDQtMTUgMDg6NTggIGhhcmRha2VyCgogICAqIGxvY2FsLzogc25tcGNvbmYgLCBNYWtlZmlsZS5pbjoKCiAgIG1vdmUgc25tcGNvbmYgZGF0YSBkaXJlY3RvcmllcyB0byBkaWZmZXJlbnQgbmFtZXMgdG8gYXZvaWQgY29uZnVzaW9uCiAgIAoyMDAyLTA0LTE1IDA4OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9zbm1wY29uZi5kaXIvOiBzbm1wLWRhdGEvYXV0aG9wdHMgLAogICBzbm1wLWRhdGEvZGVidWdnaW5nICwgc25tcC1kYXRhL21pYnMgLCBzbm1wLWRhdGEvb3V0cHV0CiAgICwgc25tcGQtZGF0YS9hY2wgLCBzbm1wZC1kYXRhL2Jhc2ljX3NldHVwICwKICAgc25tcGQtZGF0YS9leHRlbmRpbmcgLCBzbm1wZC1kYXRhL21vbml0b3IgLAogICBzbm1wZC1kYXRhL29wZXJhdGlvbiAsIHNubXBkLWRhdGEvc3lzdGVtICwKICAgc25tcGQtZGF0YS90cmFwc2lua3MgLCBzbm1wdHJhcGQtZGF0YS9mb3JtYXR0aW5nICwKICAgc25tcHRyYXBkLWRhdGEvdHJhcGhhbmRsZToKCiAgIGRhdGEgZmlsZSBtb3ZpbmcKICAgCjIwMDItMDQtMTIgMTQ6MzggIGhhcmRha2VyCgogICAqIGxvY2FsL3NubXBjb25mOgoKICAgTWFzc2l2ZSBjbGVhbnVwIGVmZm9ydC4gIEl0IHNob3VsZCBub3cgcmVzcGVjdCBvcmRlcmluZyBpbiB0aGUKICAgc25tcGNvbmYgY29uZmlndXJhdGlvbiBmaWxlcyBhcyB3ZWxsLgogICAKMjAwMi0wNC0xMiAxMzowMCAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIGZpeCBmb3Igb3ZlcnplYWxvdXMgcGVybCBzY3JpcHQKICAgCjIwMDItMDQtMTIgMDk6NDcgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgY29weSB1Y2QgcGVyc2lzZW50IGRpcmVjdG9yeSB0byBuZXQtc25tcCAocHJvbXB0cywgZmxhZ3MgYW5kIG90aGVyIGZ1bikKICAgCjIwMDItMDQtMTIgMDc6NTcgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgaW5zdGFsbCB0cmFwdG9lbWFpbAogICAKMjAwMi0wNC0xMiAwNzo1NSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdHJhcG5vdGlmOgoKICAgcmVtb3ZlIHRyYXBub3RpZgogICAKMjAwMi0wNC0xMiAwNzo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBNYWtlZmlsZS5pbiAsIHJzbm1wOgoKICAgcmVtb3ZlIHJzbm1wLCB3aGljaCBpcyB2ZXJ5IHZlcnkgb2xkIGFuZCBvdXQgb2YgZGF0ZQogICAKMjAwMi0wNC0xMiAwNzo0NyAgaGFyZGFrZXIKCiAgICogbWFuLzogLmN2c2lnbm9yZSAsIE1ha2VmaWxlLmluICwgbWliMmMuMS5kZWY6CgogICBBIG1hbnVhbCBwYWdlIGZvciBtaWIyYyAoaGVscCwgSSdtIHR1cm5pbmcgaW50byBEYXZlKQogICAKMjAwMi0wNC0xMiAwNzoyOCAgaGFyZGFrZXIKCiAgICogZG90Z2RiaW5pdDoKCiAgIGEgZ2RiIGluaXRpYWxpemF0aW9uIGZpbGUgd2l0aCBoZWxwZnVsIGZ1bmN0aW9ucwogICAKMjAwMi0wNC0xMiAwMjo0MiAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBBZGQgJ3NubXBjb25mJyBhbmQgJ21pYjJjJyB0byB0aGUgbGlzdCBvZiBzY3JpcHRzIHRvIGluc3RhbGwuCiAgIAogICBJJ3ZlIGxlZnQgJ3RyYXB0b2VtYWlsJyBvZmYgdGhpcyBsaXN0LCBzaW5jZSBpdCBzYXlzIGl0J3Mgbm90IGludGVuZGVkCiAgIGFzIGEgZGlyZWN0bHkgdXNlci1pbnZva2VkIGNvbW1hbmQsIHNvIHByb2JhYmx5IG91Z2h0IG5vdCB0byBiZSBpbnN0YWxsZWQKICAgaW50byBhIGJpbmFyeSBkaXJlY3RvcnkuCiAgIAoyMDAyLTA0LTEyIDAyOjQxICBkdHMxMgoKICAgKiBsb2NhbC9yc25tcDoKCiAgIEZpeCB0aGUgcGF0aCBvZiBzbm1wd2FsayB0byBiZSBzb21ldGhpbmcgbW9yZSBwbGF1c2libGUuCiAgIChJJ20gbm90IGNvbnZpbmNlZCBhYm91dCB0aGUgdmFsaWRpdHkgb2YgdGhhdCBpbml0aWFsICdydG9wbWliJyBPSUQgbWluZCEpCiAgIAoyMDAyLTA0LTEyIDAyOjM2ICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYy5jb25mOgoKICAgRml4IHR5cG8gaW4gcmVmZXJlbmNlIHRvICdtaWIyYy5pdGVyYXRlLmNvbmYnCiAgIAoyMDAyLTA0LTEyIDAyOjMzICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlcyAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBtYWluIGxpYnJhcnkgYXMgJ2xpYnNubXAnIGlmIGNvbmZpZ3VyZWQgdXNpbmcgVUNEIGNvbXBhdGliaWxpdHkuCiAgIFRoaXMgc2hvdWxkIGhhbmRsZSB0aGUgcmVxdWlyZW1lbnRzIG9mIGFwcGxpY2F0aW9uIGNvbXBhdGliaWxpdHkuCiAgIEFnZW50IGxpYnJhcnkgY29tcGF0aWJpbGl0eSBpcyBsaWtlbHkgdG8gcHJvdmUgYSBoYXJkZXIgcHJvYmxlbQogICAoc2luY2UgdGhlcmUgYXJlIG5vdyB0aHJlZSBsaWJyYXJpZXMsIG5vdCBqdXN0IHR3by4uLikKICAgCjIwMDItMDQtMTEgMjI6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBzZXQgU05NUENPTkZQQVRIIGlmZiBbc2ljXSBub3Qgc2V0CiAgIAoyMDAyLTA0LTExIDIyOjI3ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHJldHVybiBmcm9tIGluaXRNaWIgYmVmb3JlIGRvaW5nIGFueXRoaW5nLgogICAKMjAwMi0wNC0xMSAyMjoyNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL01ha2VmaWxlLlBMOgoKICAgdHVybiBvZmYgY29tcGxpZXIgd2FybmluZ3MKICAgCjIwMDItMDQtMTEgMjI6MjYgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL3NubXBzaDoKCiAgIHN1cHBvcnQgInNob3cgY29sdW1ucyBmcm9tIFRBQkxFIgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogbWlicy9ORVQtU05NUC1FWEFNUExFUy1NSUIudHh0OgoKICAgQWRkIGEgbmV3IGRlbW8gc2NhbGFyOiB0aGUgc2xlZXBlci4gIChkYWggZGFoIGRhaCBkdW1tbW1tKQogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgaW5kZW50LgogICAKMjAwMi0wNC0xMSAyMjoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBleGFtcGxlcy5oICwgZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5jCiAgICwgZXhhbXBsZXMvZGVsYXllZF9pbnN0YW5jZS5oOgoKICAgQWRkIGEgZGVsYXllZCBpbnN0YW5jZSBleGFtcGxlLCBzaG93aW5nIGhvdyB0byByZXR1cm4gbWliIHJlcXVlc3QKICAgcmVzdWx0cyBsYXRlciByYXRoZXIgdGhhbiBpbW1lZGlhdGVseS4KICAgCjIwMDItMDQtMTEgMjI6MjQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmM6CgogICByZW1vdmUgbGVnYWN5IGV4YW1wbGUuCiAgIAoyMDAyLTA0LTExIDIyOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBhZGQgY29tbWVudCBhYm91dCBwb3NzaWJseSBmaXhpbmcgaW5jbHVzaXZlIHJlcXVlc3RzIGluIHRoZSBmdXR1cmUuCiAgIAoyMDAyLTA0LTExIDE3OjA4ICBoYXJkYWtlcgoKICAgKiBSRUFETUUud2luMzI6CgogICBjaGFuZ2UgbW9kdWtlcy0+IG1vZHVsZXMKICAgCjIwMDItMDQtMTEgMDc6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICB0dXJuIG9mZiBkZWJ1Z2dpbmcgd2hlbiBjYWxsaW5nIGxvZ2dpbmcgY2FsbGJhY2tzCiAgIAoyMDAyLTA0LTEwIDEyOjUxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBTTk1QLnBtICwgU05NUC54czoKCiAgIGZpeCBwZXJsIG1vZHVsZSBpbiBtYW55IG1hbnkgcGxhY2VzLiAgbW9zdCB0ZXN0cyBub3cgcGFzcy4KICAgCjIwMDItMDQtMTAgMTI6NTAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC90L3N0YXJ0YWdlbnQucGw6CgogICBmb3JjZSBzZXR0aW5nIHRvIGEgImJvZ3VzIiBTTk1QQ09ORlBBVEguCiAgIAoyMDAyLTA0LTEwIDEyOjQ4ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgRXhwb3J0aW5nIGZ1bmN0aW9ucyBnb29kLiAgSW50ZXJuYWxpemluZyBiYWQuCiAgIAoyMDAyLTA0LTEwIDA5OjI4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9wcHMuICBzaWdoLgogICAKMjAwMi0wNC0xMCAwOToyNyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBvcHBzLiAgcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgogICAKMjAwMi0wNC0xMCAwOToyMyAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAtIE1ha2UgdGhlIHBlcmwgbW9kdWxlIGNhbGwgaW5pdF9zbm1wKCkKICAgICAtIHRoaXMgaXMgYSBmYWlybHkgbWFqb3IgY2hhbmdlLCBpcyBpdCBub3cgd2lsbCByZWFkIC5jb25mIGZpbGVzLgogICAgIC0gbWFueSBwZW9wbGUgaGF2ZSBhc2tlZCBmb3IgdGhpcy4KICAgLSBtaXNjIGNsZWFuIHVwcy4KICAgCjIwMDItMDQtMTAgMDk6MTggIGR0czEyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgRG9uJ3QgcmVjdXJzZSBpbnRvIHN1YmRpcmVjdG9yaWVzIGZvciB0aGUgY29uc2l0dWVudCBzdWJ0YXJnZXRzIG9mICJtYWtlIGluc3RhbGwiCiAgIAoyMDAyLTA0LTEwIDA5OjA5ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgYWRkZWQgYSBmZXcgdGhpbmdzLCBzZXBhcmF0ZWQgcGVybCBzdHVmZiBpbnRvIGl0J3Mgb3duIHNlY3Rpb24uCiAgIAoyMDAyLTA0LTEwIDA4OjQ2ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBCcmluZyB0aGUgaGVscCBtZXNzYWdlIGZvciB0aGUgVUNEIGNvbXBhdGFiaWxpdHkgb3B0aW9uIGludG8gbGluZSB3aXRoCiAgIHdoYXQncyBhY3R1YWxseSByZWNvZ25pc2VkLgogICAKMjAwMi0wNC0xMCAwNzo1MiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wOgoKICAgY2hhbmdlIGxpYnRvb2wgdmVyc2lvbmluZyB0byB0aGVpciByZWNvbW1lbmRlZCBtZXRob2Qgb2YgZG9pbmcgdGhpbmdzCiAgICh3aGljaCBJIGhhdGUsIGJ1dCBpcyBzdGlsbCBiZXR0ZXIgdGhhbiB3aGF0IHdlIHdlcmUgZG9pbmcsIEkgZ3Vlc3MpCiAgIAoyMDAyLTA0LTEwIDA3OjEwICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIEJyaW5nIHVzZSBvZiBCVUlMVFNVQkRJUiB3aXRoaW4gJ2luc3RhbGxsb2NhbGhlYWRlcnMnIGludG8gbGluZQogICB3aXRoIHRoZSBwcmVjZWRpbmcgY29tbWVudCwgYW5kIGFjdHVhbCB1c2FnZS4KICAgKGkuZS4gSU5TVEFMTEJVSUxUU1VCRElSIHJhdGhlciB0aGFuIElOQ0xVREVCVUlMVFNVQkRJUikKICAgCjIwMDItMDQtMTAgMDU6NTggIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBUeXBvIGluIHNlY3VyaXR5LWluY2x1ZGUgaGVhZGVyIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSB2YXJpYWJsZQogICAKMjAwMi0wNC0xMCAwNTo1NSAgZHRzMTIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBFbnN1cmUgdGhlIGRlc3RpbmF0aW9uIGRpcmVjdG9yeSBleGlzdHMgYmVmb3JlIGluc3RhbGxpbmcgbWliMmMgY29uZiBmaWxlcy4KICAgCjIwMDItMDQtMTAgMDE6NTUgIGR0czEyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDA0c25tcHYxbm9zdWNoICwgVDAxOXNubXB2MmNub3N1Y2g6CgogICBUd28gbmV3IHRlc3RzIHRvIGNoZWNrIGhhbmRsaW5nIG9mIEdFVGluZyBub24tZXhpc3RhbnQgaW5zdGFuY2VzCiAgIAoyMDAyLTA0LTEwIDAxOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBBIGZpeCBmb3IgU05NUHYxIGVycm9ycyB0aGF0IGRvZXNuJ3QgZW5kIHVwIGJyZWFraW5nIEFnZW50WCBlcnJvciBoYW5kbGluZy4KICAgCjIwMDItMDQtMDkgMTA6MzggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIFBhdGNoIGZyb20gRGF2ZSB0byBmaXggdjEgZXJyb3IgcmVzdWx0cy4KICAgCjIwMDItMDQtMDggMjE6MDggIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgZml4IGluY29ycmVjdCBsZW5ndGggcmV0dXJuIHZhbHVlCiAgIAoyMDAyLTA0LTA4IDE4OjAwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHZhY21fdmFycy5jICwgdmFjbV92YXJzLmg6CgogICBkb24ndCBhbGxvdyBuby1jb25maWd1cmF0aW9uIGFjY2VzcyBhbnltb3JlLgogICAKMjAwMi0wNC0wOCAxNzo1OSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmggLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXB1c20uYzoKCiAgIG1vcmUgdW5jb25zdCBjb3JyZWN0bmVzcwogICAKMjAwMi0wNC0wOCAxNzozMSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0Lmg6CgogICBzaXplX3QgZXh0ZXJucyBmb3IgZXhwb3J0ZWQgb2lkcwogICAKMjAwMi0wNC0wOCAxNzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcmVtb3ZlIHRlbXBvcmFyeSBkZWJ1Z2dpbmcgc3RhdGVtZW50cyB0aGF0IGFjY2lkZW50YWxseSBiZWNhbWUgcGVybWFuZW50LgogICAKMjAwMi0wNC0wOCAxNzoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBVRFBEb21haW4uYyAsIHNubXBfdHJhbnNwb3J0LmM6CgogICBkZWZpbmUgbGVuZ3RoIHNpemVfdCdzIGZvciBvaWQgdmFyaWFibGVzLgogICAKMjAwMi0wNC0wOCAxNjo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmM6CgogICBzdXBwb3J0ICJudWxsIiB0eXBlcy4KICAgCjIwMDItMDQtMDggMTY6NTIgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBpbml0aWFsaXplIG5vdGlmaWNhdGlvbiBsb2cgbWliIHN1cHBvcnQgYmVmb3JlIC1IIHVzYWdlLgogICAKMjAwMi0wNC0wOCAxNjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9zZXJpYWxpemUuYzoKCiAgIGZpeCBhIGZldyB0aGluZ3MgYW5kIG1ha2Ugc3ViaGFuZGxlcnMgbm90IGFibGUgdG8gdGVsbCB0aGVyZSB3ZXJlIG1vcmUgcmVxdWVzdHMuCiAgIAoyMDAyLTA0LTA4IDE2OjQzICBoYXJkYWtlcgoKICAgKiBJTlNUQUxMOgoKICAgQSBjby13b3JrZXIgcG9pbnRlZCBvdXQgdGhhdCB0aGUgSU5TVEFMTCBzY3JpcHQgc3RpbGwgc2FpZCB0byBlZGl0IGNvbmZpZy5oCiAgIAoyMDAyLTA0LTA4IDE1OjEzICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsCiAgIHNubXBsaWIvc25tcFRDUERvbWFpbi5jICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgdW5zdGF0aWMtaXplIGEgZmV3IG9pZHMgdGhhdCBzaG91bGQgaGF2ZSBiZWVuIGV4dGVybmFsCiAgIAoyMDAyLTA0LTA4IDE0OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBUQ1BEb21haW4uYyAsCiAgIHNubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wVURQSVB2NkRvbWFpbi5jICwKICAgc25tcFVuaXhEb21haW4uYyAsIHNubXBfYXBpLmMgLCBzbm1wX3RyYW5zcG9ydC5jCiAgICwgc25tcHVzbS5jOgoKICAgQ2hhbmdlIGNvbnN0IG9pZCBkZWNsYXJhdGlvbnMgaW50byBzdGF0aWMgb25lcyBzaW5jZSBzaGFyZWQgbGlicmFyaWVzCiAgIGhhdmUgYSBwcm9ibGVtIHdpdGggaW5pdGlhbGl6aW5nIHRoZW0gb24gbGludXggc3lzdGVtcyBhdCBsZWFzdC4KICAgCjIwMDItMDQtMDggMTE6NDUgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgbWluaW1hbCBkb2N1bWVudGF0aW9uIGZvciBkZWJ1Z2dpbmcgYW5kIHRoZSBpbmplY3RIYW5kbGVyIHRva2VuCiAgIAoyMDAyLTA0LTA1IDE0OjMyICBoYXJkYWtlcgoKICAgKiBtYW4vOiBzbm1wdHJhcGQuOC5kZWYgLCBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIGRvY3VtZW50YXRpb24gZm9yIHRoZSBOT1RJRklDQVRJT04tTE9HLU1JQiBzdXBwb3J0LgogICAKMjAwMi0wNC0wNSAxNDowOSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCBjb250ZXh0IG5hbWUgc3VwcG9ydCBpbiBwcm94eSBjb2RlLgogICAKMjAwMi0wNC0wNSAxMzo1MSAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBkb2N1bWVudCB0aGUgZGlzbWFuIGV2ZW50IG1pYiBzdXBwb3J0IGZvciBzZW5kaW5nIHRyYXBzIHZpYSBtb25pdG9yZWQgT0lEcy4KICAgCjIwMDItMDQtMDUgMTA6MTIgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgcHV0IHRyYXAgY29uZmlnIGludG8gaXRzIG93biBzZWN0aW9uLgogICBkb2N1bWVudCB0aGUgIm92ZXJyaWRlIiB0b2tlbi4KICAgCjIwMDItMDQtMDUgMDY6MzkgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjM6CgogICBjaGFuZ2UgZGVmYXVsdCBjb250ZXh0IHRvIGFuIGVtcHR5IHN0cmluZwogICAKMjAwMi0wNC0wNCAxNToxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jIChWNC0yLXBhdGNoZXMuNSksIGFnZW50X3JlZ2lzdHJ5LmM6CgogICBkZWFsIHdpdGggZmQgdW5yZWdpc3RyYXRpb25zIHByb3Blcmx5LgogICAKMjAwMi0wNC0wMyAwOToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy5oCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2RhdGFfc2V0LmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9kYXRhX3NldC5oICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBtaWJzL05FVC1TTk1QLUVYQU1QTEVTLU1JQi50eHQ6CgogICBNYWtlIGFuIGV4YW1wbGUgZGF0YXNldCB0YWJsZSB0byBob2xkIGFuZCBzdG9yZSBkYXRhIGluIChhZG1pdHRlZGx5CiAgIHVzZWxlc3MgZGF0YSBmcm9tIGEgbmV0d29yayBtYW5hZ2VtZW50IHBvaW50IG9mIHZpZXcsIGJ1dCBpdCdzIGFuIGV4YW1wbGUpLgogICAKMjAwMi0wNC0wMiAyMjoxMiAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGxhdGlvbiBmcm9tIHN1YmRpciBidWlsZCBjYXNlLgogICAKMjAwMi0wNC0wMiAyMTo0NSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgc25tcHYzLXNlY3VyaXR5LWluY2x1ZGVzIGZyb20gZnJvbSBidWlsZCBkaXIuCiAgIAoyMDAyLTA0LTAyIDIxOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbWliX21vZHVsZV9jb25maWcuaCBhbmQgbWliX21vZHVsZV9pbmNsdWRlcy5oIGZyb20gYnVpbGQgZGlyLgogICAKMjAwMi0wNC0wMiAyMTo0MyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG5ldC1zbm1wLWNvbmZpZy5oIGZyb20gdGhlIGJ1aWxkIGRpci4KICAgCjIwMDItMDQtMDIgMjE6NDMgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLnJ1bGVzOgoKICAgY3JlYXRlIHNvbWUgaW5zdGFsbCBmcm9tIGJ1aWx0IGhlYWRlciBydWxlcy4KICAgCjIwMDItMDQtMDIgMTc6MjcgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4gLCBtaWIyYy5jb25mOgoKICAgcmVtb3ZlIGRlbGV0ZWQgYXJyYXktYXV0byBmcm9tIC5jb25mIGluc3RhbGwvcmVmZXJlbmNlIGxpc3RzCiAgIAoyMDAyLTA0LTAyIDE1OjAzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHVjZF9zbm1wLmggLCB1Y2Qtc25tcC9yZWdpc3RyeS5jICwKICAgdWNkLXNubXAvcmVnaXN0cnkuaDoKCiAgIHJlbW92ZSB0aGUgcmVnaXN0cnkgbW9kdWxlLCBhcyBpdCdzIG9ic29sZXRlIGR1ZSB0byBjb250ZXh0cy4gIFVzZSB0aGUgbnNNb2R1bGVUYWJsZSBpbnN0ZWFkCiAgIAoyMDAyLTA0LTAyIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgKFY0LTItcGF0Y2hlcy43KSwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZGFyd2luLmg6CgogICBBcHBseSBwYXRjaCAjNTI0NDI0IGZvciBkYXJ3aW4gZml4ZXMgZm9yIHVjZC1zbm1wL2Rpc2suYwogICAKMjAwMi0wNC0wMiAxNDo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMgKFY0LTItcGF0Y2hlcy44KSwKICAga2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGF0Y2ggNTI3NTczIHRvIGZpeCA2NCBiaXQgdHlwZXMgb24gc29sYXJpcwogICAKMjAwMi0wNC0wMiAwNzowNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgY2hlY2sgY2hhciBmb3IgTlVMTCBiZWZvcmUgc2V0dGluZyB0bzoKICAgCjIwMDItMDQtMDEgMjI6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jIChWNC0yLXBhdGNoZXMuOSksIGNtdV9jb21wYXQuYyAsCiAgIHNubXBfYXBpLmM6CgogICBMZXQgaW5pdF9zbm1wIHByb3RlY3QgaXRzZWxmLgogICAKMjAwMi0wMy0yOSAxNTowNCAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHR3ZWFrcyAmIHVwZGF0ZXMKICAgCjIwMDItMDMtMjkgMTA6NDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgYWRkIGNvbW1lbnQKICAgCjIwMDItMDMtMjkgMDg6MzYgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmY6CgogICBhZGQgYSBhbGxvd19jcmVhdGlvbiBkZWZpbml0aW9uLgogICAKMjAwMi0wMy0yOSAwODoyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICBtYWtlIG5ldC1zbm1wLWNvbmZpZyBleGVjdXRhYmxlIGFmdGVyIGl0J3MgYnVpbHQKICAgCjIwMDItMDMtMjkgMDg6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc2V0U2VyaWFsTm8uYyAsIHNldFNlcmlhbE5vLmg6CgogICBvcHBzLiAgZm9yZ290IHRvIGNoZWNrIHRoZSBzZXRTZXJpYWwgY29kZSBpbgogICAKMjAwMi0wMy0yOCAyMzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBwYXNzLmMgKFY0LTItcGF0Y2hlcy40KSwgcGFzcy5jOgoKICAgZW5hYmxlIHJvdyBjcmVhdGlvbiBmb3IgcGFzcyBtb2R1bGVzLiAgUGF0Y2ggIzQ4MjAwNQogICAKMjAwMi0wMy0yOCAyMzo0NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgKFY0LTItcGF0Y2hlcy4yKSwKICAgaW50ZXJmYWNlcy5jOgoKICAgcGF0Y2ggIzUxNzM0MDogZnJlZWJzZDUgc3VwcG9ydAogICAKMjAwMi0wMy0yOCAyMzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2ZpbGVzeXMuYyAoVjQtMi1wYXRjaGVzLjQpLCBocl9maWxlc3lzLmM6CgogICBhcHBseSBmcmVlYnNkNSBwYXRjaCAjNTE3MzMzCiAgIAoyMDAyLTAzLTI4IDIzOjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3lzdGVtLmMgLCBtaWJJSS9pbnRlcmZhY2VzLmMKICAgLCBtaWJJSS9pcEFkZHIuYzoKCiAgIEFwcGx5IG5ldGJzZCBmaXggcGF0Y2ggIzUyOTczMwogICAKMjAwMi0wMy0yOCAyMzowMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKFY0LTItcGF0Y2hlcy44KSwgc25tcF9hcGkuYyAsCiAgIHNubXBfYXBpLmM6CgogICB1c2UgYSBzdGF0aWMgdmFyaWFibGUgZm9yIGluaXQgY2hlY2tpbmcuICBCdWcgIzUzNjM4Ni4KICAgCjIwMDItMDMtMjggMTU6MjUgIGR0czEyCgogICAqIG1hbi86IGRlZmF1bHRfc3RvcmUuMy50b3AgLCByZWFkX2NvbmZpZy4zLmRlZiAsCiAgIHNubXBfYXBpLjMuZGVmOgoKICAgVHdlYWsgdG8gdXNlIHRoZSBuZXcgaW5jbHVkZSBzdHJ1Y3R1cmUuCiAgIAoyMDAyLTAzLTI4IDE1OjIzICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy44KSwgRkFROgoKICAgQWRkIGEgZmV3IG5ldyBlbnRyaWVzIChtb3N0bHkgcmVsYXRpbmcgdG8gdHJhcHMpCiAgIAoyMDAyLTAzLTI4IDE0OjU2ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgcmVuYW1lL3ByZWZpeCBmdW5jdGlvbnM7IGFkZCBkb3h5Z2VuIGRvY3VtZW50YXRpb24KICAgCjIwMDItMDMtMjggMTM6MDAgIHJzdG9yeQoKICAgKiBkb3h5Z2VuLmNvbmY6CgogICBhZGQgZGVmaW5lIGZvciBleGNsdWRpbmcgc3R1ZmYgKERPWFlHRU5fU0hPVUxEX1NLSVBfVEhJUykKICAgCjIwMDItMDMtMjggMTI6NTAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLmg6CgogICBhZGQgc2V0U2VyaWFsTm8KICAgCjIwMDItMDMtMjggMTI6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkX2NvbXBhdC5jOgoKICAgZml4IGEgbmV2ZXItc2Vlbi1idXQtdmVyeS1vbGQtYnVnIHVzaW5nIHRoZSB3cm9uZyBkZWZhdWx0X3N0b3JlIHRva2VuLgogICAKMjAwMi0wMy0yOCAxMjo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgb25seSBzZXQgdGhlIGRlZmF1bHQgb3V0cHV0IHN0eWxlIGlmIGl0J3Mgbm90IGFscmVhZHkgc2V0IHRvIHNvbWV0aGluZy4KICAgCjIwMDItMDMtMjggMTI6NDUgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmM6CgogICB3cmFwcGluZy4KICAgCjIwMDItMDMtMjggMTI6MTcgIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIGNoYW5nZSB2ZXJzaW9uIG51bWJlcgogICAKMjAwMi0wMy0yOCAxMjowOCAgcnN0b3J5CgogICAqIGFwcHMvc25tcHRyYW5zbGF0ZS5jOgoKICAgYmFjayBvdXQgY2hhbmdlIGZyb20gdmVyc2lvbiAxLjY1IHVudGlsIGJldHRlciBzb2x1dGlvbiBjYW4gYmUgZm91bmQ7CiAgIGJ1ZyAjNTM1MDI5CiAgIAoyMDAyLTAzLTI4IDEyOjAzICByc3RvcnkKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIHJldHVybiBzcGVjaWZpYyByZXN1bHQgY29kZSBmb3IgcmVnaXN0cmF0aW9uIGZhaWx1cmUgaWYgYXZhaWxhYmxlLgogICAKMjAwMi0wMy0yOCAxMTo1NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9yZWdpc3RyeS5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgcGVybCB0eXBvCiAgIAoyMDAyLTAzLTI3IDE1OjQ4ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mOgoKICAgZGVsZXRlIG9sZCwgdW51c2VkIGNvbmYgZmlsZQogICAKMjAwMi0wMy0yNyAwODoyNyAgaGFyZGFrZXIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYyAsIG5vdGlmaWNhdGlvbl9sb2cuaCAsCiAgIHNubXB0cmFwZC5jOgoKICAgYWRkICJkb250UmV0YWluTG9ncyIgdG9rZW4gdG8gc25tcHRyYXBkLmNvbmYgdG8gbm90IGVuYWJsZSB0aGUKICAgbm90aWZpY2F0aW9uIGxvZyBtaWIuCiAgIAoyMDAyLTAzLTI3IDAxOjU0ICBkdHMxMgoKICAgKiBjb25maWd1cmUuaW4sIGNvbmZpZ3VyZSAoVjQtMi1wYXRjaGVzLlsxLDFdKSwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluOgoKICAgVXNlIHRoZSBjb3JyZWN0IG5hbWUgb2YgdGhlIFdpbmRvd3MgSVAgSGVscGVyIEFQSSBsaWJyYXJ5LgogICAoQ29tcHV0ZXJzIGNhbiBiZSBzb29vbyBwaWNreSEpCiAgIAoyMDAyLTAzLTI2IDIzOjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwogICAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYwogICAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdmFyX3N0cnVjdC5oOgoKICAgLSBSZWFsbHkgZml4IHRoZSAidW5kbyBmYWlsZWQiIHByb2JsZW0uICBJRSwgbm90IGp1c3QgYW55IG9sZCBlcnJvcgogICAgIHdpbGwgY2F1c2UgYW4gdW5kbyBmYWlsZWQgbWVzc2FnZSB0byBnZXQgc2VudCBiYWNrLiAgT25seSB2YXJiaW5kcwogICAgIHdpdGggYW4gdW5kbyBmYWlsZWQgZXJyb3IgY29kZSB3aWxsIGNhdXNlIGFuIHVuZG8gZmFpbGVkIHJlc3VsdC4KICAgICB1bmRvIGZhaWxlZCByZXN1bHRzIGRvIHN0aWxsIHN1cGVyc2VkZSBhbGwgb3RoZXIgZXJyb3IgY29kZXMsCiAgICAgaG93ZXZlciwgd2hpY2ggaXMgd2hhdCB0aGUgb3JpZ2luYWwgcHJvYmxlbSB3YXMgYWxsIGFib3V0LiAgV2Ugc3RpbGwKICAgICBoYXZlIHRvIGRlcGVuZCBvbiB0aGUgbW9kdWxlcyByZXR1cm5pbmcgdGhlIHJpZ2h0IGVycm9yIGNvZGUgKGJ1dAogICAgIHRoYXQncyB0aGVpciBmYXVsdCBpZiB0aGV5IGRvbid0KS4KICAgLSBtaXNjIGNsZWFudXBzIGFuZCByZW5hbWVzCiAgIAoyMDAyLTAzLTI2IDIzOjIwICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBhZGQgQ3JhaWcgU2V0ZXJhCiAgIAoyMDAyLTAzLTI2IDE0OjA3ICByc3RvcnkKCiAgICogVE9ETzoKCiAgIGFkZCBjcmVhdGluZyBzcmMgcnBtIHNwZWMgZmlsZQogICAKMjAwMi0wMy0yNiAwODoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBkaXNraW8uYyAoVjQtMi1wYXRjaGVzLjIpLCBkaXNraW8uYzoKCiAgIGVuYWJsZSBkaXNraW8gb24gZnJlZWJzZDUuICBJbXBsZW1lbnRzIHBhdGNoIDUxNzMyOCBpbiBhIGRpZmZlcmVudCB3YXkuCiAgIAoyMDAyLTAzLTI2IDA3OjU4ICBoYXJkYWtlcgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgZml4IGZvciBvdGhlci1kaXIgYnVpbGRzCiAgIAoyMDAyLTAzLTI2IDA3OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZHVwbGljYXRlIHJlZ2lzdHJhdGlvbiBpbmZvIGluIHNwbGl0X3N1YnRyZWUKICAgCjIwMDItMDMtMjYgMDc6NDMgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzAsMF0pLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW46CgogICBBZGQgL2V0Yy9maWxlc3lzdGVtcyB0byBsaXN0IG9mIG1vdW50IHRhYmxlIGZpbGVzIChmb3IgQUlYKQogICBTaG91bGQgZml4IGJ1Z3MgMjMyNTg4IGFuZCAoPyk1MTcxMTMKICAgCjIwMDItMDMtMjYgMDc6MzkgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzksOV0pLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW46CgogICBSZW1vdmUgdHJhaWxpbmcgJzonIGZyb20gbGlzdCBvZiBNSUIgbW9kdWxlIG5hbWVzIGluIGNvbmZpZ3VyZSBvdXRwdXQsCiAgIHRvIGF2b2lkIGNvbmZ1c2lvbiAoc2VlIEJ1ZyAjNDkxMTI5KQogICAKMjAwMi0wMy0yNiAwNjo0MSAgZHRzMTIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQWRkICctbGhscGFwaScgdG8gdGhlIGxpc3Qgb2YgYWdlbnQgbGlicmFyaWVzLCB3aGVuIHJ1bm5pbmcgb24gV2luZG93cwogICAodXNpbmcgQ3lnd2luKS4gIFNob3VsZCBmaXggQnVnICM1MzQ0MDkuCiAgIAoyMDAyLTAzLTI1IDIyOjMzICByc3RvcnkKCiAgICogc25tcGxpYi86IHBhcnNlLmMgKFY0LTItcGF0Y2hlcy4zKSwgcGFyc2UuYzoKCiAgIGZpeCBidWcjNTIwNDc4IHNob3dNaWJFcnJvcnMgdG9rZW4gaXMgaW52ZXJ0ZWQKICAgCjIwMDItMDMtMjUgMTU6MTggIHJzdG9yeQoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKCiAgIHJlbW92ZSBeTSBjaGFyYWN0ZXJzCiAgIAoyMDAyLTAzLTI1IDE0OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmMgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaDoKCiAgIHVzZSBlbWFjcyB0byBmaXggcGVybCBzZWFyY2ggYW5kIHJlcGxhY2UgZXJyb3JzLCBvZiBjb3Vyc2UKICAgCjIwMDItMDMtMjUgMTQ6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgc25tcGxpYi9taWIuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHVzZSBwZXJsIHRvIHNlYXJjaCBhbmQgcmVwbGFjZSBwZXJsIHNlYXJjaCBhbmQgcmVwbGFjZSBlcnJvcnMsIG9mIGNvdXJzZQogICAKMjAwMi0wMy0yNSAxNDoyMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBhcGkgY2hhbmdlcwogICAKMjAwMi0wMy0yNSAwODo0MyAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5vcHQgLCBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsCiAgIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCAsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwCiAgICwgc25tcGQvc25tcGQuZHNwICwgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AgLAogICBzbm1wZGYvc25tcGRmLmRzcCAsIHNubXBnZXQvc25tcGdldC5kc3AgLAogICBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AgLCBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AKICAgLCBzbm1wc2V0L3NubXBzZXQuZHNwICwgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcAogICAsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwICwgc25tcHRlc3Qvc25tcHRlc3QuZHNwCiAgICwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCAsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCAsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwICwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCAsIHNubXB2YWNtL3NubXB2YWNtLmRzcCAsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFJlbW92ZSByZWR1bmRhbnQgZGVjbGFyYXRpb25zIG9mICdnZXRvcHQuYycgYW5kICdzbm1wX3BhcnNlX2FyZ3MuYycgaW4KICAgZWFjaCBpbmRpdmlkdWFsIGFwcGxpY2F0aW9uIHByb2plY3QuICBUaGVzZSByb3V0aW5lcyBhcmUgaW5jbHVkZWQgd2l0aGluCiAgIHRoZSBsaWJyYXJpZXMsIHNvIHdlIG1pZ2h0IGFzIHdlbGwgdXNlIHRob3NlLgogICAKMjAwMi0wMy0yNSAwNTo1MyAgZHRzMTIKCiAgICogd2luMzIvOiBtaWJfbW9kdWxlX2luaXRzLmggLCB3aW4zMi5vcHQgLAogICBsaWJzbm1wX2RsbC9saWJzbm1wLmRlZiAsIGxpYnNubXBfZGxsL2xpYnNubXBfZGxsLmRzcCAsCiAgIHNubXBkL3NubXBkLmRzcDoKCiAgIEdvdGNoYSEgIEV2ZXJ5dGhpbmcgbm93IGJ1aWxkcyAobW9yZS1vci1sZXNzKSBjbGVhbmx5IHVuZGVyIFZpc3VhbCBDKysuCiAgIFlvdSBzdGlsbCBoYXZlIHRvIHVzZSB0aGUgIkJhdGNoIEJ1aWxkIiBtZWNoYW5pc20gKG9yIGVsc2UgYmUgY2FyZWZ1bCB3aGljaAogICBvZiBsaWJzbm1wL2xpYnNubXBfZGxsIHlvdSBidWlsZCBpbiBlYWNoIG9mIHRoZSBEZWJ1ZyAmIFJlbGVhc2UgbW9kZXMpLAogICBhbmQgeW91IG5lZWQgdG8gYnVpbGQgdHdpY2UgaW4gb3JkZXIgdG8gZ2V0IGVuY29kZV9rZXljaGFuZ2UgbGlua2luZy4KICAgQnV0IHRoaW5ncyAqZG8qIGZpbmFsbHkgYnVpbGQuCiAgIAoyMDAyLTAzLTI0IDA1OjIxICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE9vcHMgLSBzbnByaW50XyogY2Fubm90IHJlYWxsb2MKICAgCjIwMDItMDMtMjMgMDk6NDAgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICByZWFsbHkgZml4IHNubXBpbmZvcm0gaW5zdGFsbHMgdGhpcyB0aW1lLgogICAKMjAwMi0wMy0yMiAyMjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBmaW5hbCBjbGVhbnVwcyBvZiBub3RpZmljYXRpb24gbG9nIHN1cHBvcnQKICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFwcHMvTWFrZWZpbGUuaW46CgogICBmaXggaW5zdGFsbGF0aW9uIG9mIHNubXBpbmZvcm0KICAgCjIwMDItMDMtMjIgMjI6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0Lmg6CgogICBSZW5hbWUgc3R1ZmYuICBGaXggc3R1ZmYuICBZb3Uga25vdywgbm9ybWFsIHJvdXRpbmUuCiAgIAoyMDAyLTAzLTIyIDIyOjMxICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBmaXggdmVyc2lvbiBmaWxlIGxvY2F0aW9uIGZvciBub24tc291cmNlZGlyIGJ1aWxkcwogICAKMjAwMi0wMy0yMiAxNDoxMyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmg6CgogICBmb3Jnb3QgdG8gY29tbWl0IGEgcHJvdG90eXBlLgogICAKMjAwMi0wMy0yMiAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaDoKCiAgIHJlZ2lzdGVyX21pYl9jb250ZXh0MiAtPiBuZXRzbm1wX3JlZ2lzdGVyX21pYiAoYW5kIG1hcmtlZCBhcyBpbnRlcm5hbCkKICAgCjIwMDItMDMtMjIgMTQ6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgc3ViYWdlbnQuYzoKCiAgIHVzZSBuZXcgZXJyb3IgbG9nZ2luZyBhcGkgd2hlbiAhcm9vdAogICAKMjAwMi0wMy0yMiAxNDowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgZW5hYmxlIGxvZ2dpbmcgc2Vzc2lvbiBlcnJvcnMgdG8gc29tZSBsb2cgbGV2ZWwgb3RoZXIgdGhhbiBFUlIuCiAgIAoyMDAyLTAzLTIyIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIHN1YmFnZW50LmM6CgogICBiZXR0ZXIgYWdlbnR4IGNvbm5lY3Rpb24gcmVsYXRlZCBlcnJvciBtZXNzYWdlcy4KICAgCjIwMDItMDMtMjIgMDk6MzUgIGR0czEyCgogICAqIHdpbjMyLzogd2luMzIuZHN3ICwgd2luMzIub3B0ICwKICAgbGliaGVscGVycy9saWJoZWxwZXJzLmRzcCAsIGxpYnNubXBfZGxsL2xpYnNubXAuZGVmICwKICAgbmV0c25tcG1pYnMvbmV0c25tcG1pYnMuZHNwICwgc25tcGQvc25tcGQuZHNwOgoKICAgU2xvd2x5IG1ha2luZyBwcm9ncmVzcyBvbiA1LjAgV2luZG93cyBidWlsZC4KICAgRXZlcnl0aGluZyBub3cgY29tcGlsZXMsIHRob3VnaCB0aGUgUmVsZWFzZSB2ZXJzaW9uIGRvZXNuJ3QgbGluay4KICAgICAoY29tcGxhaW5zIGFib3V0IGFzc29ydGVkIHVua25vd24gcm91dGluZXMgdGhhdCBhcmUgdGhlcmUsCiAgICAgIHN0YXJpbmcgaXQgaW4gdGhlIGZhY2UuICBHcnJyISEhISkKICAgCjIwMDItMDMtMjIgMDg6MjQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gZG8gbm90ICJ0d2VhayIgcmFuZ2Vfc3ViaWQgd2hlbiBkZWFsaW5nIHdpdGggY29tcHJlc3NlZCBPSURzLgogICAgICAgVGhhbmtzIHRvIENyYWlnIFNldGVyYSBmb3IgcG9pbnRpbmcgb3V0IHRoaXMgZGV2aWF0aW9uIGZyb20gUkZDCiAgICAgICAyNzQxLgogICAKMjAwMi0wMy0yMiAwNzo1MCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oICwgc25tcGxpYi9vaWRfYXJyYXkuYwogICAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBWYXJpb3VzIG1pbm9yIGluY29uc2lzdGVuY2llcyAobW9zdGx5IHRvIGRvIHdpdGggc3VidGxlIHZhcmlhdGlvbnMgaW4gdHlwZXMpCiAgIAoyMDAyLTAzLTIyIDA3OjMxICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIGZpeCB0eXBvCiAgIAoyMDAyLTAzLTIyIDA3OjI5ICBkdHMxMgoKICAgKiB3aW4zMi86IG1pYl9tb2R1bGVfaW5jbHVkZXMuaCAsIG1pYl9tb2R1bGVfaW5pdHMuaCAsCiAgIG5ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oICwKICAgbmV0LXNubXAvbGlicmFyeS9zbm1wdjMtc2VjdXJpdHktaW5jbHVkZXMuaDoKCiAgIEJyaW5nIFdpbmRvd3MgdmVyc2lvbnMgb2YgImF1dG9tYXRpY2FsbHktZ2VuZXJhdGVkIiBoZWFkZXIgZmlsZXMgdXAgdG8gZGF0ZS4KICAgCjIwMDItMDMtMjIgMDI6MjMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgICAtIGRvbid0IHVzZSAicmVnIiBhcyBhIHBhcmFtZXRlciBuYW1lIGluIGtlcm5lbF9zdW5vczVfY2FjaGVfYWdlKCkKICAgICAgIGFzIC91c3IvaW5jbHVkZS9pbmV0L2NvbW1vbi5oIHNheXM6CiAgICAgICAjZGVmaW5lIHJlZyByZWdpc3RlcgogICAgICAgKCEpIHdoaWNoIHRoZSBjb21waWxlciB0aGVuIGJhcmZzIG9uLiAgUmVwb3J0ZWQgYXMgYnVnICM1MzMzMzYgYnkKICAgICAgIEFub255bW91cy4KICAgCjIwMDItMDMtMjEgMDk6MjQgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgLCBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgLSBzbm1wX2NvbmZpZyogLT4gbmV0c25tcF9jb25maWcgKGZvciBuZXcgZnVuY3Rpb25zIG9ubHkpCiAgIC0gZml4IGJ1ZyB3aGVyZSBzbm1wX2NvbmZpZygpIHN0cmluZ3Mgd2VyZSBnZXR0aW5nIHBhcnNlZCB0d2ljZS4KICAgCjIwMDItMDMtMjEgMDk6MjMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICB3cmFwIGFnZW50eCBzdHVmZiBpbiBhIHN0aWxsIHVudXNlZCB2YXJpYWJsZSAoYXQgdGhpcyBwb2ludCkuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgIAoyMDAyLTAzLTIxIDA5OjIzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsaXRpZXMvb3ZlcnJpZGUuYzoKCiAgIGZpeCBvaWQgcGFyc2luZy4KICAgCjIwMDItMDMtMjEgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogUm1vbi9hbGFybS5jICwgUm1vbi9zdGF0aXN0aWNzLmMgLAogICBtaWJJSS9hdC5jOgoKICAgY2hhbmdlIC8vIGNvbWVudHMgdG8gLyogKi8gY29tbWVudHMgKGJhZCBiYWQgYmFkKQogICAKMjAwMi0wMy0yMSAwNjo0MCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBjaGFuZ2UgLy8gY29tZW50cyB0byAvKiAqLyBjb21tZW50cyAoYmFkIGJhZCBiYWQpCiAgIAoyMDAyLTAzLTIwIDIwOjEyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBhZGQgYSBsaXN0IG9mIHJlZ2lzdGVyZWQgdGV4dCBlbnVtcyB0byBBU05fKiB2YWx1ZXMuCiAgICAgKEluIHByb2JhYmx5IHRoZSB3cm9uZyBwbGFjZS4pCiAgIAoyMDAyLTAzLTIwIDIwOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9taWJncm91cC91dGlsaXRpZXMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxpdGllcy9vdmVycmlkZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdXRpbGl0aWVzL292ZXJyaWRlLmg6CgogICBjcmVhdGUgYSBuZXcgIm92ZXJyaWRlIiBkaXJlY3RpdmUgdG8gZm9yY2UgYW4gT0lEIHRvIGEgcGFydGljdWxhciB2YWx1ZQogICAtIG5vdCBmaW5pc2hlZC4gIEl0J3MgZGVzaWduZWQgdG8gZG8gcmVhZC13cml0ZSBhcyB3ZWxsLCBidXQgZG9lc24ndC4KICAgCjIwMDItMDMtMjAgMjA6MDggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYzoKCiAgIGNoZWNrIGZvciBpbmNsdXNpdmUKICAgCjIwMDItMDMtMjAgMTE6MzcgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgaW5jbHVkZSBuZXcgZGVsZXRlL3JlbW92ZSBicmVha2Rvd24gQVBJcwogICAKMjAwMi0wMy0yMCAxMTozNiAgaGFyZGFrZXIKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmM6CgogICBBUEkgY2hhbmdlLgogICAKMjAwMi0wMy0yMCAxMTozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBzb21lICJ0aGlzIHdpbGwgY2hhbmdlIiBlYXJseSByb3cgc3RhdHVzIGltcGxlbWVudGF0aW9uLgogICAgLSAodGhpcyB3aWxsIG1vdmUgdG8gYSBzZXBhcmF0ZSBoYW5kbGVyKQogICAKMjAwMi0wMy0yMCAxMTozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmM6CgogICBwb2ludGVyIGNoZWNraW5nIGFnYWluc3QgaWxsZWdhbCBhZGRzIChpZSwgc2hvdWxkbid0IGhhcHBlbiBidXQgY2hlY2sgYW55d2F5KQogICAKMjAwMi0wMy0yMCAwODo0MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIE9rLCBJIG1ha2UgbWlzdGFrZXMuICBJIGFkbWl0IGl0LiAgSXQgcmVhbGx5IHNob3VsZCBoYXZlIGJlZW4gYSBOVUxMLgogICAKMjAwMi0wMy0yMCAwODozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGFkZCBtaXNzaW5nIGNvbW1hCiAgIAoyMDAyLTAzLTIwIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oOgoKICAgc2VwYXJhdGUgb3V0IGRlbGV0ZS9yZW1vdmUgcm93IGZ1bmN0aW9uYWxpdHkKICAgCjIwMDItMDMtMjAgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jIChWNC0yLXBhdGNoZXMuNiksCiAgIHN5c3RlbV9taWIuYzoKCiAgIHJlbW92ZSBpbGxlZ2FsIFNFVCBzdXBwb3J0IGZvciBzeXNEZXNjci4KICAgCjIwMDItMDMtMjAgMDY6MjcgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlICwgbG9jYWwvbWliMmM6CgogICAtIGFkZCBtYW55IG1hbnkgLVQgZmxhZ3MgZm9yIGRlZmluaW5nIHR5cGVzLgogICAKMjAwMi0wMy0xOSAyMToxMyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIGZvcmNlIHNldHRpbmcgb2YgJyFyb290JyBmbGFnIHNvIHRoYXQgaXQgd2lsbCBydW4gZm9yIG5vbi1wcml2aWxlZ2VkCiAgIHVzZXJzIG9yIHdoZW4gYW4gYWdlbnR4IG1hc3RlciBzaW1wbHkgaGFzIG5ldmVyIGV4aXN0ZWQuCiAgIAoyMDAyLTAzLTE5IDE2OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oOgoKICAgLSBhbGxvdyB0YWJsZXMgdG8gYmUgbWFya2VkIHdoZXRoZXIgdGhleSBzaG91bGQgc3VwcG9ydCBjcmVhdGlvbiBvciBub3QuCiAgIC0gYnVnIGZpeGVzCiAgIAoyMDAyLTAzLTE5IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YS5jICwgdGFibGVfZGF0YXNldC5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNzoyOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBoZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGRvY3VtZW50YXRpb24gY2xlYW4gdXAKICAgCjIwMDItMDMtMTkgMDc6MTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgaGVscGVycy9idWxrX3RvX25leHQuYyAsCiAgIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jICwgbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jOgoKICAgZG9jdW1lbnRhdGlvbiBjbGVhbiB1cAogICAKMjAwMi0wMy0xOSAwNjo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsCiAgIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLCBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvZGF0YV9saXN0LmggLAogICBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwgcGVybC9hZ2VudC9hZ2VudC54cyAsCiAgIHNubXBsaWIvZGF0YV9saXN0LmM6CgogICAtIHJlbmFtZWQgYSBmZXcgYmFkbHkgbmFtZWQgZnVuY3Rpb25zIChuZXRzbm1wXyBhcHBlYXJlZCB0d2ljZSkuCiAgIC0gaW1wbGVtZW50ZWQgdGhlIGJlZ2lubmluZyBvZiBjcmVhdGlvbiBzdXBwb3J0IGZvciBkYXRhc2V0cy4KICAgCjIwMDItMDMtMTkgMDY6MzUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZToKCiAgIEFwcGFyZW50bHkgSSByYW4gYXV0b2NvbmYgZWFybGllciBhbmQgbWlzc2VkIGNoZWNraW5nIGluIHRoZSByZXN1bHRzLgogICAKMjAwMi0wMy0xOSAwNjozNSAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICBhZGQgLW5mY2EKICAgCjIwMDItMDMtMTcgMTY6MjUgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXAuYzoKCiAgIFNldCBkZWZhdWx0IHBvcnQgdG8gMTYyLgogICAKMjAwMi0wMy0xNyAxNTo1MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBUQ1BEb21haW4uYyAsIHNubXBVRFBEb21haW4uYzoKCiAgIGltcHJvdmVkIGZvcm1hdHRpbmcgc3RyaW5ncyBzaG93aW5nIGJvdGggdHJhbnNwb3J0IHR5cGUgYW5kIHBvcnQgbnVtYmVyLgogICAKMjAwMi0wMy0xMyAyMzozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBhZGQgbWlzc2luZyAiaW5zdGFsbHN1YmRpcnMiIHRhcmdldCBtaXNzaW5nICh0aGFua3MgdG8gS2F0c3VoaXNhIEFCRSkKICAgCjIwMDItMDMtMTMgMjM6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiAsIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWNyZWF0ZS1zbm1wdjMtdXNlciB0byBhdXRvbWF0ZSBhZGRpbmcgYSB2MyB1c2VyIHRvIGJvdGggdGhlIHVzbQogICBhbmQgdmFjbSB0YWJsZXMgKGJ5IGFkZGluZyBsaW5lcyB0byBib3RoIHRoZSBwZXJzaXN0ZW50IGFuZCBub3JtYWwKICAgY29uZiBmaWxlcykuCiAgIAoyMDAyLTAzLTEzIDE2OjMwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc01vZHVsZVRhYmxlLmM6CgogICBidWcgZml4IGZvciBwcmUtcHJvY2Vzc2VkIHJlcXVlc3RzLgogICAKMjAwMi0wMy0xMyAxNjozMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUucnVsZXMgLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL2FnZW50X21pYnMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfaW5kZXguaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvYWdlbnRfdHJhcC5oICwgaW5jbHVkZS91Y2Qtc25tcC9hc24xLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL2F1dG9fbmxpc3QuaCAsIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaAogICAsIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9kc19hZ2VudC5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9oZWFkZXJfY29tcGxleC5oICwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oICwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvbWliX21vZHVsZV9jb25maWcuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oICwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FsYXJtLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfYXBpLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfZGVidWcuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9pbXBsLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXBfbG9nZ2luZy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvc25tcF92YXJzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB1c20uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcHYzLmggLCBpbmNsdWRlL3VjZC1zbm1wL3N0cnVjdC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaCAsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oICwgaW5jbHVkZS91Y2Qtc25tcC92YXJfc3RydWN0LmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaDoKCiAgIC0gLS1lbmFibGUtdWNkLXNubXAtY29tcGF0aWJpbGl0eSBhY3R1YWxseSBpbnN0YWxscyBoZWFkZXJzIChhcyBvcHBvc2VkCiAgICAgdG8gYWx3YXlzLCB3aGljaCBpcyB3aGF0IGl0IHVzZWQgdG8gZG8pLgogICAtIGFkZCBhZ2VudF9taWJzIHRvIGNvbmZpZ3VyZSBkZWZhdWx0IG1pYiBtb2R1bGVzIGFuZCBkb2N1bWVudC4KICAgLSBjaGFuZ2UgaGVscCBkb2N1bWVudGF0aW9uIGEgYml0IGZvciB0aGUgbWliIG1vZHVsZXMuCiAgIC0gYWRkIGEgZm9yY2VkIGRlcGVuZGVuY3kgZm9yIG1pYl9tb2R1bGVzLmxvCiAgIAoyMDAyLTAzLTEzIDE2OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC5oOgoKICAgb3Bwcy4gIGR1cGxpY2F0ZXMgZXhpc3RpbmcgYWdlbnRfbWlicy5oCiAgIAoyMDAyLTAzLTEzIDE1OjUwICBoYXJkYWtlcgoKICAgKiBtaWJzLzogVUNELURFTU8tTUlCLnR4dCwgVUNELURJU0tJTy1NSUIudHh0LCBVQ0QtRExNT0QtTUlCLnR4dCwKICAgVUNELUlQRklMVEVSLU1JQi50eHQsIFVDRC1JUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQKICAgKFY0LTItcGF0Y2hlcy5bMSwxLDEsMSwxLDldKSwgVUNELURFTU8tTUlCLnR4dCAsCiAgIFVDRC1ESVNLSU8tTUlCLnR4dCAsIFVDRC1ETE1PRC1NSUIudHh0ICwKICAgVUNELUlQRklMVEVSLU1JQi50eHQgLCBVQ0QtSVBGV0FDQy1NSUIudHh0ICwKICAgVUNELVNOTVAtTUlCLnR4dDoKCiAgIGFkZHJlc3MgY2hhbmdlcyBmb3IgdWNkLXNubXAgLT4gbmV0LXNubXAgbm90ZSBzYXlpbmcgdGhlc2UgbWlicyBhcmUgbm8KICAgbG9uZ2VyIHN1cHBvcnRlZCBieSBVQ0QuCiAgIAoyMDAyLTAzLTEzIDE1OjM5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNNb2R1bGVUYWJsZS5oICwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0OgoKICAgQWRkZWQgYSBuc01vZHVsZVRhYmxlIHRhYmxlIHdoaWNoIHJlcGxhY2VzIHRoZSBvbGRlciBtclRhYmxlLgogICBGdW5jdGlvbmFsbHksIHRoaXMgaXMgYSBsaXN0IG9mIGFsbCByZWdpc3RlcmVkIGl0ZW1zIHdpdGhpbiB0aGUgTUlCCiAgIHRyZWUganVzdCBsaWtlIHRoZSBtclRhYmxlIHdhcywgYnV0IHdpdGggc3VwcG9ydCBmb3IgY29udGV4dHMgYW5kIGZvcgogICBkdXBsaWNhdGUgcmVnaXN0cmF0aW9ucyB3aXRoIGRpZmZlcmVudCBwcmlvcml0aWVzLgogICAKMjAwMi0wMy0xMyAxNToyMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHRvb2xzLmMgKFY0LTItcGF0Y2hlcy40KSwgdG9vbHMuYzoKCiAgIG1hbGxvYyBhdCBsZWFzdCBvbmUgYnl0ZSBpbiBoZXhfdG9fYmluYXJ5MgogICAKMjAwMi0wMy0xMyAxNToxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgcmVtb3ZlIHVubmVlZGVkIGRlYnVnIHN0YXRlbWVudAogICAKMjAwMi0wMy0xMyAxNDoxMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIFVzZSBsb2NhbCB2YXJpYWJsZSBuYW1lIGJ1ZmZlcnMgYnkgZGVmYXVsdCB3aGVuIGJ1aWxkaW5nIG9pZCBzZWdtZW50cy4KICAgCjIwMDItMDMtMTMgMTQ6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIC8qIHN0b3Agd2F0ZXIgZnJvbSBmbG93aW5nIHRocm91Z2ggZGFtICovCiAgIGZpbmdlci0+aW5zZXJ0KCJob2xlIikKICAgCjIwMDItMDMtMTMgMDQ6MDMgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjcpLCBGQVE6CgogICBBZGQgYSBkZXNjcmlwdGlvbiBvZiAidW5saW5rZWQgT0lEcyIuCiAgIAoyMDAyLTAzLTEyIDIxOjMwICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IG1pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLCBtaWIyYy5pdGVyYXRlLmNvbmY6CgogICBmaXggaGVhZGVycy4KICAgCjIwMDItMDMtMTIgMjE6MTUgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgYWRkIGRvbid0IGZvcm1hdCBjb21tZW50cyBvcHRpb24KICAgCjIwMDItMDMtMTIgMjE6MTAgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgZml4IGZvciB0YWJsZXMgd2l0aCBob2xlcy4KICAgCjIwMDItMDMtMTIgMjE6MDkgIGhhcmRha2VyCgogICAqIG1pYnMvTWFrZWZpbGUuaW46CgogICBtb3ZlIGRlZmF1bHQgbWlicyB0byB0aGVpciBvd24gdmFyaWFibGUuCiAgIAoyMDAyLTAzLTEyIDIxOjA2ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogU05NUC9NYWtlZmlsZS5QTCAsIGFnZW50L01ha2VmaWxlLlBMICwKICAgYWdlbnQvYWdlbnQueHMgLCBhZ2VudC90eXBlbWFwOgoKICAgLSB1c2UgbmV0LXNubXAtY29uZmlnIHRvIGZpZ3VyZSB0aGluZ3Mgb3V0LgogICAtIHVwZGF0ZSBoZWFkZXJzIGFuZCB0eXBlaW5mbyBmb3IgcmVjZW50IGNoYW5nZXMuCiAgIAoyMDAyLTAzLTEyIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IEZBUTJIVE1MICwgUkVBRE1FLm1pYjJjICwgbWliMmMgLCB0a21pYgogICAsIG1pYjJjLmFycmF5LWF1dG8uY29uZiAsIG1pYjJjLmFycmF5LXVzZXIuY29uZjoKCiAgIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTEyIDIwOjMzICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICByZW1vdmUgb2Jzb2xldGUgbWliMmMuY29uZiBmaWxlCiAgIAoyMDAyLTAzLTEyIDE4OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGRvbid0IGZvcmdldCB0byBzZXQgcm93LT5uZXh0LT5wcmV2IHRvIHNvbWV0aGluZyB3aGVuIHJlbW92aW5nIHJvdy4KICAgCjIwMDItMDMtMTIgMTc6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBhZ2VudHggaW5jbHVzaXZlIHNlYXJjaGVzIHRvIGlnbm9yZSBnZXQgZXJyb3JzLgogICAKMjAwMi0wMy0xMiAxNzo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIHNvbWUgbWluaW1hbCBkdW1wIGRlYnVnZ2luZy4KICAgCjIwMDItMDMtMTIgMDg6MzQgIGR0czEyCgogICAqIEZBUSAoVjQtMi1wYXRjaGVzLjYpLCBGQVE6CgogICBVcGRhdGluZyBvZiB0aGUgRkFRIHJlYWR5IGZvciB0aGUgbmV4dCByZWxlYXNlLgogICAoTW9zdGx5IHJlcGhyYXNpbmcgb2YgZXhpc3RpbmcgZW50cmllcywgYnV0IGEgZmV3IG5ldyBxdWVzdGlvbnMpCiAgIAoyMDAyLTAzLTExIDE4OjAwICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmM6CgogICBjYXN0IC0xIHRvIHVfY2hhciBzbyB0ZXN0IGRvZXNuJ3QgYWx3YXlzIGZhaWwgKGZpeCBjb21waWxlciB3YXJuaW5nKQogICAKMjAwMi0wMy0xMSAxNzoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgdHJlYXQgKGlsbGVnYWwpIGVycm9ycyBmcm9tIHN1YmFnZW50cyBzcGVjaWFsbHkgZm9yIGdldG5leHQgY2FzZXMuCiAgIAoyMDAyLTAzLTExIDEzOjQxICBoYXJkYWtlcgoKICAgKiBuZXQtc25tcC1jb25maWcuaW46CgogICBhZGQgb3VyIHNubXAgbGlicmFyaWVzIHRvIG91dHB1dAogICAKMjAwMi0wMy0xMSAxMDozNCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC86IHRhYmxlX2RhdGEuaCAsIHRhYmxlX2RhdGFzZXQuaDoKCiAgIGRlbGV0ZS9yZW1vdmUgc3VwcG9ydCBoZWFkZXIgY2hhbmdlcy4KICAgCjIwMDItMDMtMTEgMDk6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gYWxsb3cgY29tcGlsYXRpb24gLS13aXRoLW91dC10cmFuc3BvcnRzPVRDUAogICAKMjAwMi0wMy0xMSAwODoyMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgICAtIGZpeGVzIGZvciAtLWRpc2FibGUtZGVidWdnaW5nCiAgIAoyMDAyLTAzLTExIDA3OjQxICBkdHMxMgoKICAgKiBGQVEgKFY0LTItcGF0Y2hlcy41KSwgRkFROgoKICAgQnJpbmcgdGhlIDR4LSBhbmQgbWFpbi1icmFuY2ggRkFRcyBpbnRvIGFncmVlbWVudC4KICAgCjIwMDItMDMtMTEgMDY6NTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIHVzZSBjb3JyZWN0IHNlc3Npb24gSUQgd2hlbiB0YWxraW5nIHRvIHN1YmFnZW50cy4gIFRoYW5rcyB0byBDcmFpZwogICAgICAgU2V0ZXJhIGZvciB0aGlzIGZpeC4KICAgCjIwMDItMDMtMTEgMDU6MjAgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBiYWQgdHlwZSBhc3NpZ25tZW50IGluIGJ1aWxkX3RyYW5zbGF0aW9uX3RhYmxlKCksIG5vdGljZWQgYnkKICAgICAgIFBldGVyIFN0ZXZlbnMuCiAgIAoyMDAyLTAzLTExIDAwOjEzICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgY2hlY2sgZm9yIE5VTEwgZnJlZXMsIGV2ZW4gdGhvdWdoIGl0J3Mgc3VwcG9zZWQgdG8gYmUgb2sgYWNjb3JkaW5nIHRvIGFuc2kuCiAgIAoyMDAyLTAzLTExIDAwOjEyICBoYXJkYWtlcgoKICAgKiBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYzoKCiAgIGJlZ2lubmluZyBzdXBwb3J0IGZvciBtYXhpbXVtIGxvZ2dlZCBjaGVja2luZy4KICAgCjIwMDItMDMtMTEgMDA6MTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jOgoKICAgLSByZW1vdmUvZGVsZXRlIHJvdyBzdXBwb3J0LgogICAtIG51bGwgY2hlY2sKICAgLSBkb2MgY29tbWVudHMuCiAgIAoyMDAyLTAzLTExIDAwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIHJlbW92ZS9kZWxldGUgcm93IHN1cHBvcnQuCiAgIAoyMDAyLTAzLTExIDAwOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICBjYWxsIG5leHQgaGFuZGxlcnMgKG9wcHMpLgogICAKMjAwMi0wMy0xMCAxNDoxMSAgbmJhCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgRml4IG9uZSBzcHJpbnRfdmFyaWFibGUgPT4gc25wcmludF92YXJpYWJsZQogICAKMjAwMi0wMy0xMCAxNDowNiAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICBBZGQgc25wcmludF8qIGZ1bmN0aW9ucyB0aGF0IHdlcmUgc3ByaW50XyogaW4gdWNkLXNubXAgNAogICAKMjAwMi0wMy0xMCAxNDowNSAgbmJhCgogICAqIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jOgoKICAgRml4IGNvbXBpbGF0aW9uIHdoZW4gSVBYLXRyYW5zcG9ydCBlbmFibGVkCiAgIAoyMDAyLTAzLTEwIDE0OjAzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbjoKCiAgIEZpeCBjb21waWxhdGlvbiBvdXRzaWRlIHNvdXJjZSBkaXJlY3RvcnkKICAgCjIwMDItMDMtMDggMjI6MjYgIGhhcmRha2VyCgogICAqIEZBUSAsIHNlZHNjcmlwdC5pbiAsIHBlcmwvU05NUC9TTk1QLnBtICwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIC0gKHNubXBsaWIvc25tcF92ZXJzaW9uLmMgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAucHJlMiApCiAgIAoyMDAyLTAzLTA4IDE4OjIzICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICBtaXNjIGNoYW5nZXMuCiAgIAoyMDAyLTAzLTA4IDE4OjIzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG5ldyBhcGkgY2hhbmdlcwogICAKMjAwMi0wMy0wOCAxNzoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmM6CgogICBQYXRjaCBmcm9tIExhd3JlbmNlIEdyZWVuZmllbGQgdG8gZGVhbCB3aXRoIFNlbmRtYWlsIDguMTIgcXVldWVncm91cHMuCiAgIAoyMDAyLTAzLTA4IDE2OjU5ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluOgoKICAgcGF0Y2ggZnJvbSBjc2V0ZSB0byBmaXggd2luMzIgYnVpbGRzCiAgIAoyMDAyLTAzLTA4IDE2OjU1ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBhZGQgQ2FsbGJhY2sgdHJhbnNwb3J0IHRvIGN5Z3dpbgogICAKMjAwMi0wMy0wOCAxNjo0OSAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIG1lbnRpb24gcm1vbiBzdXBwb3J0LgogICAKMjAwMi0wMy0wOCAxNjozOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byByZW1vdmUgb2xkIGFuIHVudXNlZCBwb2ludGVyCiAgIAoyMDAyLTAzLTA4IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L2hlbHBlcnMvaW5zdGFuY2UuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMgLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5oICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL1Jtb24vZXZlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmggLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmggLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmMgLCBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaAogICAsIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmggLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwogICAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oICwgYXBwcy9zbm1wYnVsa2dldC5jICwKICAgYXBwcy9zbm1wYnVsa3dhbGsuYyAsIGFwcHMvc25tcGRlbHRhLmMgLCBhcHBzL3NubXBkZi5jCiAgICwgYXBwcy9zbm1wZ2V0LmMgLCBhcHBzL3NubXBnZXRuZXh0LmMgLAogICBhcHBzL3NubXBzZXQuYyAsIGFwcHMvc25tcHN0YXR1cy5jICwgYXBwcy9zbm1wdGFibGUuYwogICAsIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYXAuYyAsCiAgIGFwcHMvc25tcHRyYXBkLmMgLCBhcHBzL3NubXB0cmFwZF9sb2cuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5oICwgYXBwcy9zbm1wdXNtLmMgLCBhcHBzL3NubXB2YWNtLmMKICAgLCBhcHBzL3NubXB3YWxrLmMgLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYyAsIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jICwgYXBwcy9zbm1wbmV0c3RhdC9uZXRzdGF0LmggLAogICBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvb2xkX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3Zhcl9zdHJ1Y3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9jbXVfY29tcGF0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGlic25tcC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZiAsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiAsCiAgIGxvY2FsL21pYjJjLnN0b3JhZ2UuY29uZiAsIHBlcmwvU05NUC9TTk1QLnhzICwKICAgc25tcGxpYi9jbXVfY29tcGF0LmMgLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYyAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXBsaWIvc25tcF9zZWNtb2QuYyAsCiAgIHNubXBsaWIvc25tcGtzbS5jICwgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB2My5jCiAgICwgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBzdHJ1Y3Qgc25tcF9zZXNzaW9uIHR5cGVkZWZlZCB0byBuZXRzbm1wX3Nlc3Npb24uICAmIHBkdS4gJiAuLi4KICAgCjIwMDItMDMtMDggMTQ6MDAgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZ2V0X3N5bWJvbCAtPiBnZXRfdHJlZQogICAKMjAwMi0wMy0wOCAwNzo0NSAgaGFyZGFrZXIKCiAgICogcGVybC86IFNOTVAvU05NUC54cyAsIGFnZW50L2FnZW50LnBtICwgYWdlbnQvYWdlbnQueHMKICAgLCBhZ2VudC90ZXN0LnBsOgoKICAgbWlzc2VkIHVwZGF0ZXMKICAgCjIwMDItMDMtMDggMDc6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYyAsIGRlZmF1bHRfc3RvcmUuYyAsIG1pYi5jCiAgICwgb2lkX2FycmF5LmMgLCBvaWRfc3Rhc2guYyAsIHJlYWRfY29uZmlnLmMKICAgLCBzbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcENhbGxiYWNrRG9tYWluLmMgLAogICBzbm1wSVBYRG9tYWluLmMgLCBzbm1wVENQRG9tYWluLmMgLCBzbm1wVENQSVB2NkRvbWFpbi5jCiAgICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBVbml4RG9tYWluLmMgLCBzbm1wX2FwaS5jICwgc25tcF9kZWJ1Zy5jICwKICAgc25tcF90cmFuc3BvcnQuYyAsIHNubXB2My5jOgoKICAgbWlzc2luZyB1cGRhdGVkIGNvZGUKICAgCjIwMDItMDMtMDggMDI6MDcgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBzb21lIHNubXAgLT4gbmV0c25tcCBmaXhlcwogICAKMjAwMi0wMy0wNyAxMzo0MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jCiAgICwgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcHRyYXBkX2xvZy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcENhbGxiYWNrRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVbml4RG9tYWluLmggLAogICBsb2NhbC9taWIyYy5hcnJheS1hdXRvLmNvbmYgLCBsb2NhbC9taWIyYy5hcnJheS11c2VyLmNvbmYKICAgLCBsb2NhbC9taWIyYy5jcmVhdGUtZGF0YXNldC5jb25mICwKICAgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgNCkKICAgCjIwMDItMDMtMDcgMTM6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLCBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jCiAgICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL251bGwuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvc2NhbGFyX2ludC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0X2NvdW50ZXJzLmMgLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWxsX2hlbHBlcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYnVsa190b19uZXh0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RlYnVnX2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvaW5zdGFuY2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbnVsbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9vbGRfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3JlYWRfb25seS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXJpYWxpemUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9kYXRhc2V0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2l0ZXJhdG9yLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mICwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiAgICwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1hc3NpdmUgbmV0c25tcF8gcHJlZml4aW5nIG9mIHN0dWZmIChwYXNzIDMpCiAgIAoyMDAyLTAzLTA3IDEzOjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5jICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLAogICBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLAogICBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYwogICAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oICwKICAgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgbWFzc2l2ZSBuZXRzbm1wXyBwcmVmaXhpbmcgb2Ygc3R1ZmYgKHBhc3MgMikKICAgCjIwMDItMDMtMDcgMDg6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMgLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvc25tcF9hZ2VudC5jICwKICAgYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jCiAgICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwgYWdlbnQvaGVscGVycy9udWxsLmMgLAogICBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMKICAgLCBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmgKICAgLCBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmggLCBhcHBzL25vdGlmaWNhdGlvbl9sb2cuYwogICAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oICwgYXBwcy9zbm1wc3RhdHVzLmMgLAogICBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmMgLCBhcHBzL3NubXB0cmFwZF9sb2cuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc2Vzc2lvbl9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfYWdlbnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF92YXJzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfYXBpLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF90cmFuc3BvcnQuaCAsCiAgIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZiAsIGxvY2FsL21pYjJjLmFycmF5LXVzZXIuY29uZgogICAsIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLAogICBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYXNzaXZlIG5ldHNubXBfIHByZWZpeGluZyBvZiBzdHVmZiAocGFzcyAxKQogICAKMjAwMi0wMy0wNyAwNjoyMSAgamJwbgoKICAgKiBtYW4vc25tcF9zZXNzX2FwaS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6NDcgIGpicG4KCiAgICogbWFuL3NubXBfdHJhcF9hcGkuMy5kZWY6CgogICAgIC0gbWlub3IgdXBkYXRlcwogICAKMjAwMi0wMy0wNyAwNTozOSAgamJwbgoKICAgKiBtYW4vc25tcF9hbGFybS4zLmRlZjoKCiAgICAgLSBzdHlsZSB1cGRhdGUKICAgCjIwMDItMDMtMDcgMDU6MDAgIGpicG4KCiAgICogbWFuL3JlYWRfY29uZmlnLjMuZGVmOgoKICAgICAtIG1ha2UgcHJvdG90eXBlcyBtYXRjaCBoZWFkZXIKICAgCiAgICAgLSBtYWtlIHN0eWxlIGNvbnNpc3RlbnQgd2l0aCBtaWJfYXBpCiAgIAoyMDAyLTAzLTA3IDAzOjA3ICBqYnBuCgogICAqIG1hbi9taWJfYXBpLjMuZGVmOgoKICAgICAtIGZpeCB1cCBzbnByaW50XyBkZWNsYXJhdGlvbnMsIGZpeCBzbWFsbCB0eXBvLiAgUGF0Y2ggYnkgR3V5CiAgIEhhcnJpcy4KICAgCjIwMDItMDMtMDcgMDI6NDQgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVjbGFyYXRpb24gb2Ygc3ByaW50X3JlYWxsb2NfYnlfdHlwZSwgYXMgbm90ZWQKICAgICAgIGJ5IEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDE3OjE1ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2FnZW50Ly5jdnNpZ25vcmUgLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvLmN2c2lnbm9yZSAsIHBlcmwvU05NUC90Ly5jdnNpZ25vcmU6CgogICBuZXcgaWdub3JlIGZpbGVzCiAgIAoyMDAyLTAzLTA2IDE3OjEzICBoYXJkYWtlcgoKICAgKiAuY3ZzaWdub3JlOgoKICAgaWdub3JlIGRvY3MKICAgCjIwMDItMDMtMDYgMTc6MDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzLmg6CgogICBleGFtcGxlcyBtb2R1bGUgd3JhcHBlciB0byBpbmNsdWRlIGFsbCAobmV3KSBleGFtcGxlcy4KICAgCjIwMDItMDMtMDYgMTY6NTggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3NjYWxhcl9pbnQuYzoKCiAgIGRvY3VtZW50IGJldHRlci4KICAgCjIwMDItMDMtMDYgMTY6NTggIGhhcmRha2VyCgogICAqIGRveHlnZW4uY29uZjoKCiAgIHNlYXJjaCBleGFtcGxlcyBmb3IgZG9jcy4KICAgCjIwMDItMDMtMDYgMTY6MjkgIGhhcmRha2VyCgogICAqIG1pYnMvTkVULVNOTVAtRVhBTVBMRVMtTUlCLnR4dDoKCiAgIGV4YW1wbGUgTUlCIHRlbXBsYXRlIChhbmQgb25lIG5vZGUpCiAgIAoyMDAyLTAzLTA2IDE2OjI4ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLU1JQi50eHQ6CgogICBpbnN0YW50aWF0ZSBleGFtcGxlcwogICAKMjAwMi0wMy0wNiAxNjoyNyAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgc29tZSBOUyBtaWJzCiAgIAoyMDAyLTAzLTA2IDE2OjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9leGFtcGxlcy86IHNjYWxhcl9pbnQuYyAsIHNjYWxhcl9pbnQuaDoKCiAgIEV4YW1wbGUgaW1wbGVtZW50YXRpb24gb2YgYSBTTk1QIGVuYWJsZWQgaW50IHJlZ2lzdGVyZWQgYXQgYSBzY2FsYXIuCiAgIAoyMDAyLTAzLTA2IDE2OjI1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2luc3RhbmNlLmg6CgogICBtYW55IGNoYW5nZXMgZm9yIGluc3RhbmNlcy4gIFNwZWNpZmljaWNhbGx5OgogICAgIC0gYWxsb3cgZm9yIHN1YmhhbmRsZXJzLgogICAgIC0gcHJvdmlkZSBhbiBpbnQgd3JhcHBlci4KICAgICAtIHJldXNlIG1vcmUgY29kZS4KICAgICAtIG51bWVyb3VzIGJ1ZyBmaXhlcy4KICAgCjIwMDItMDMtMDYgMTQ6MDUgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICByZW1vdmUgYSBibGFuayBsaW5lLgogICAKMjAwMi0wMy0wNiAxNDowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBtYXN0ZXJfYWRtaW4uYzoKCiAgIEZpeCBtYXN0ZXIgYWdlbnQgZ2V0YnVsayBzdXBwb3J0LiAgdGhpcyBoYXMgdG8gYmUgaW5kZXBlbmRlbnRseSBvZiB0aGUKICAgbm9ybWFsIGJ1bGstPm5leHQgZml4ZXMgZHVlIHRvIGRlbGVnYXRpb24uICBMb25nIHN0b3J5LgogICAKMjAwMi0wMy0wNiAxNDowMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgIG1vdmUgYnVsa190b19uZXh0IGZpeGluZyBmdW5jdGlvbmFsaXR5IGludG8gYSBzZXBhcmF0ZSBmdW5jdGlvbiBmb3IgcmV1c2UuCiAgIAoyMDAyLTAzLTA2IDEwOjI2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsIHNubXBsaWIvbWliLmM6CgogICAgIC0gc3ByaW5rbGUgbWFnaWMgY29uc3QgZHVzdAogICAKMjAwMi0wMy0wNiAxMDoxOCAgamJwbgoKICAgKiBtYW4vbWliX2FwaS4zLmRlZjoKCiAgICAgLSBkb2N1bWVudCBjaGFuZ2VkIEFQSSwgaW5jb3Jwb3JhdGluZyBwYXRjaGVzIGJ5IEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDA5OjM0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMmFnZW50eHNldGZhaWwgLCBUMTIycHJveHlzZXRmYWlsOgoKICAgZml4IHRlc3RzLgogICAKMjAwMi0wMy0wNiAwOToyNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIHJlLWVuYWJsZSBzZXR0aW5nIG9wdGluZCB0byAxIHRpbGwgRGF2ZSB0ZWxscyBtZSB3aGVyZSB0aGlzIGJyZWFrcy4KICAgCjIwMDItMDMtMDYgMDk6MDggIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvOiBUMDUxc25tcHYyY3RyYXAgLCBUMDUyc25tcHYyY2luZm9ybSAsCiAgIFQwNThhZ2VudGF1dGh0cmFwOgoKICAgZml4ZXMgZm9yIG5ldyBjb21tYW5kIGxpbmUgdXNhZ2UuCiAgIAoyMDAyLTAzLTA2IDA5OjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBtb3JlIGltcHJvdmVkIGVycm9yIG1lc3NhZ2VzIChtb3N0bHkpCiAgIAoyMDAyLTAzLTA2IDA4OjU0ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmU6CgogICBhdXRvY29uZgogICAKMjAwMi0wMy0wNiAwODo0MSAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXB2My5jIChWNC0yLXBhdGNoZXMuMyksIHNubXB2My5jOgoKICAgRml4IGEgY29uZnVzaW9uIGJldHdlZW4gZGVmQXV0aFR5cGUgYW5kIGRlZlByaXZUeXBlLgogICAKMjAwMi0wMy0wNiAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBwcm90b2NvbC5jOgoKICAgcHJvcGVyIGZpeCBmb3Igbm90IHJlcXVpcmluZyByZXNwb25zZXMgdG8gQ0xFQU5VUCBtZXNzYWdlcy4KICAgCjIwMDItMDMtMDYgMDY6MDcgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHplcm8gdGhlIG5hbWUgb2YgZWxlbWVudHMgb2YgdGhlIGJ1bGsgY2FjaGUKICAgCjIwMDItMDMtMDYgMDY6MDYgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjYWxsb2MoKSBub3QgbWFsbG9jKCkgaW4gYSBmZXcgcGxhY2VzIHRvIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzCiAgICAgICB0byB6ZXJvZXMuCiAgIAoyMDAyLTAzLTA2IDA1OjUyICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjYpLCBzbm1wX2FwaS5jOgoKICAgQWN0dWFsbHkgdXNlIHRoZSBjb21tb24gJ2RlZlBhc3NwaHJhc2UnIHZhbHVlIGlmICdkZWZ7QXV0aCxQcml2fVBhc3NwaHJhc2UnIGlzbid0IHNldC4KICAgUW46IFNob3VsZCB0aGUgQXV0aFBhc3NwaHJhc2UgYWxzbyBiZSB1c2VkIGZvciBwcml2YWN5IGlmIG5vIG90aGVyIHZhbHVlIGlzIGF2YWlsYWJsZT8KICAgCjIwMDItMDMtMDYgMDU6NDUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGRvbid0IHNlbmQgcmVxdWVzdHMgZm9yIE9JRHMgcHJlY2VlZGluZyB0aGUgc3RhcnQgb2YgYSByZWdpb24KICAgICAgICh0aGlzIGNhbiBsZWFkIHRvIGxvb3BzIGlmIGUuZy4gYSBzdWJhZ2VudCBoYXMgcmVnaXN0ZXJlZCB0d28KICAgICAgIGFkamFjZW50IHJvd3MpLgogICAKMjAwMi0wMy0wNiAwNTowNyAgamJwbgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgICAtIGlnbm9yZSBlcnJvcnMgZG9pbmcgcm0gLXJmIC90bXAvc25tcC10ZXN0KiB3aGVuIG1ha2luZyB0ZXN0Y2xlYW4KICAgCjIwMDItMDMtMDYgMDI6MjYgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSB1c2UgbW9yZSBlZmZpY2llbnQgZ2V0X3RyZWUoKSBpbiBzcHJpbnRfcmVhbGxvY192YWx1ZSgpCiAgIAoyMDAyLTAzLTA1IDE4OjI4ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAxNXNubXB2MmNnZXRuZXh0ICwgVDAwMXNubXB2MWdldCAsCiAgIFQwMDJzbm1wdjFnZXRuZXh0ICwgVDAwM3NubXB2MWdldGZhaWwgLCBUMDE0c25tcHYyY2dldAogICAsIFQwMTZzbm1wdjJjZ2V0ZmFpbCAsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwgLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsICwgVDEwMGFnZW50aHVwOgoKICAgZml4ZXMgZm9yIG5ldyBmb3JjZWQgLWMgZmxhZ3MKICAgCjIwMDItMDMtMDUgMTg6MjEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBhcHByb3ByaWF0ZSBjb21tZW50LgogICAKMjAwMi0wMy0wNSAxODoyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICBmaXggZHVwbGljYXRlIGZyZWUgYnkgY2xvbmluZyB0aGUgcGR1IGJlZm9yZSBzZW5kaW5nIGl0IG91dCBhZ2FpbgogICAodGhvdWdodCBJIGhhZCBkb25lIHRoaXMgb25jZSBpbiB0aGUgcGFzdCBhbHJlYWR5LCBidXQgSSBnb3QgMS8yIGZ1bmN0aW9ucykuCiAgIAoyMDAyLTAzLTA1IDE4OjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIFRlbXBvcmFyeSBmaXggdG8gZml4IGZvciBhZ2VudHggU0VUIHJlcXVlc3RzLiAgVGhpcyByZXZlcnNlcyBhCiAgIHByZXZpb3VzIEpvaG4gY2hhbmdlIHdoZXJlIHJlc3BvbnNlcyB0byBjbGVhbnVwcyBhcmUgbm93IGV4cGVjdGVkCiAgIGFnYWluLiAgVGhpcyB0b29rIG1lIGEgZ29vZCAyIGRheXMgdG8gdHJhY2sgZG93biwgc2lnaC4uLgogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgLSBhZGQgKGFzY2lpKSBhZ2VudHggc3RhdGUgZGlhZ3JhbQogICAKMjAwMi0wMy0wNSAxODowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgLSBtdWx0aXBsZSBmcmVlIGJ1ZyBmaXhlcy4KICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgCjIwMDItMDMtMDUgMTA6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9yZXF1ZXN0LmMgLCBtYXN0ZXJfcmVxdWVzdC5oOgoKICAgcmVtb3ZlZCB1bnVzZWQgZmlsZXMKICAgCjIwMDItMDMtMDUgMTA6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gb29wcywgZml4IGJhZCBjdXQgYW5kIHBhc3RlCiAgIAoyMDAyLTAzLTA1IDEwOjI1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIHJlaW50cm9kdWNlIHNjb3BlIHByb2Nlc3NpbmcgKHNlZSBSRkMgMjc0MSwgcC4gNjYsIHNlY3Rpb24gNy4yLjMuMgogICAgICAgcGFyYWdyYXBoIDIpOiAiSWYgdGhlIHN1YmFnZW50IGNhbid0IGxvY2F0ZSBhbiBhcHByb3ByaWF0ZQogICAgICAgdmFyaWFibGUsIF9fdi5uYW1lX2lzX3NldF90b190aGVfc3RhcnRpbmdfT0lEX18gW3RoZSBpbXBvcnRhbnQKICAgICAgIGJpdF0gYW5kIHRoZSBWYXJCaW5kIGlzIHNldCB0byBgZW5kT2ZNaWJWaWV3JyIKICAgCjIwMDItMDMtMDUgMDk6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBpbXBvc2UgbWF4IGxlbmd0aCByZXN0cmljdGlvbiBzdXBwbGllZCBieSBtaWIgZm9yIGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KICAgCjIwMDItMDMtMDUgMDg6NDggIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jICwgc25tcF9hZ2VudC5jICwKICAgaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICAgIC0gdXNlIG5ldyBERUJVR01TR1ZBUiBtYWNybyBpbiBhIGZldyBwbGFjZXMKICAgCjIwMDItMDMtMDUgMDg6NDUgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9kZWJ1Zy5oOgoKICAgICAtIGFkZCBERUJVR01TR1ZBUiBtYWNybyB0byBwcmludCBvdXQgYSB2YXJpYWJsZQogICAKMjAwMi0wMy0wNSAwODozNCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSAsIFNOTVAueHM6CgogICBwcmludF92YWx1ZSBmdW5jdGlvbiB1cGRhdGVzLgogICAKMjAwMi0wMy0wNSAwODowNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvOiB1Y2REZW1vUHVibGljLmMgKFY0LTItcGF0Y2hlcy4yKSwKICAgdWNkRGVtb1B1YmxpYy5jOgoKICAgQWRkIG1pc3NpbmcgInN0YW5kYXJkIiBoZWFkZXJzLCBhbmQgdHdlYWsgYSB0eXBlIHNsaWdodGx5LgogICAoQmFzZWQgb24gcmVxdWVzdHMgZnJvbSBHcmVnb3J5IFRvdGgpLgogICAKMjAwMi0wMy0wNSAwODowNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZ3JyciwgYm90Y2hlZCBsYXN0IGZpeAogICAKMjAwMi0wMy0wNSAwODowMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IGNhbGxiYWNrIHNlc3Npb24gdmVyc2lvbiBudW1iZXIgdG8gdGhlIGdlbmVyaWMgLTEKICAgdmVyc2lvbiBhbGxvd2luZyB0aGUgcGR1IHRvIHBhc3NlZCB3aXRob3V0IHZlcnNpb24gY2hlY2tpbmcuCiAgIAoyMDAyLTAzLTA1IDA3OjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBtb3ZlIE5VTEwgY2hlY2sgdG8gKmJlZm9yZSogeW91IGFjdHVhbGx5IHVzZSB0aGUgcG9pbnRlci4KICAgCjIwMDItMDMtMDUgMDc6NTkgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIG1hcmsgSU5DTFVTSVZFIHJlcXVlc3RzIGFzIHN1Y2gKICAgCjIwMDItMDMtMDUgMDc6NTggIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jOgoKICAgLSB1c2UgYSBmb3IgbG9vcCBpbnN0ZWFkIG9mIGEgd2hpbGUgbG9vcCwganVzdCBhIHByZWNhdXRpb24gZm9yIGZ1dHVyZSBwcm9ibGVtcy4KICAgCjIwMDItMDMtMDUgMDc6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIC0gKHNubXBfY2hlY2tfcGFyc2UpIGFsbG93IGludGVybmFsIHNldCB0cmFuc2FjdGlvbnMgdG8gYmUgcGFzc2VkIHRvCiAgICAgdGhlIGFnZW50LCBzaW5jZSBhZ2VudHggc2VuZHMgdGhlbS4KICAgCjIwMDItMDMtMDUgMDc6MjEgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBkb24ndCBhZGQgdGhlICJtb2R1bGUgSUQiIHRvIE9JRHMgaWYgaXQgaXMgbnVtZXJpYyBiZWNhdXNlIHdlCiAgICAgICBjb3VsZG4ndCBsb29rIGl0IHVwIHByb3Blcmx5ICh0byBhdm9pZCBob3JyaWJsZSBsb29raW5nIG91dHB1dAogICAgICAgbGlrZSB0aGlzOiAiT0lEOiAjLTE6Omlzby4yLjMuNC41LiIpCiAgIAoyMDAyLTAzLTA1IDA3OjA1ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSByZW1vdmUgcmVmZXJlbmNlIHRvIDJjIGluIGVycm9yIG1lc3NhZ2UgZnJvbSB2ZXJzaW9uIHByb21wdAogICAKMjAwMi0wMy0wNSAwNzowMSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSB0ZXN0cwogICAKMjAwMi0wMy0wNSAwNjo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgLSByZS1lbXBoYXNpcyBhIHN1Z2dlc3Rpb24gdG8gc3dpdGNoIHRvIGEgc2VjdXJlIHZlcnNpb24gb2YgdGhlIHByb3RvY29sLgogICAtIGRlbGV0ZSBub3Rpb24gdGhhdCB2MyB3aXRob3V0IGF1dGgvcHJpdiBwcm92aWRlcyBiZXR0ZXIgc2VjdXJpdHkgKGl0IGRvZXNuJ3QpLgogICAtIERvbid0IGFjY2VwdCB2MmMgYXMgYW4gYWNjZXB0ZWQgdmFsdWUsIGFzIGl0J3MgdXNlZCBhcyBhbiBpbnQuCiAgICAgLSBidXQgZG8gY2hhbmdlIGhlbHAgbWVzc2FnZXMsIGV0YywgdG8gcmVmbGVjdCB0aGF0IDIgPSB2MmMuCiAgIAoyMDAyLTAzLTA1IDA2OjUwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgQ2FzdCBhIGNhbGxvYyBhcHByb3ByaWF0ZWx5IChyZXF1ZXN0ZWQgYnkgR3JlZ29yeSBUb3RoKQogICAKMjAwMi0wMy0wNSAwNjoyMCAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCB0eXBvIGluIE9CSlMgZGVmaW5pdGlvbgogICAKMjAwMi0wMy0wNSAwNjoxOCAgamJwbgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbjoKCiAgICAgLSBjbGVhbiB0YXJnZXQgZGVwZW5kcyBvbiAkKE9CSlMpIGFuZCAkKExPQkpTKSwgc28gZGVmaW5lIHRoZW0KICAgCjIwMDItMDMtMDUgMDM6NTIgIGpicG4KCiAgICogY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBkZWZhdWx0IHZlcnNpb24gdGVzdHMgKHNwbGl0dGluZyB0aGVtIG92ZXIgc2V2ZXJhbCBsaW5lcwogICAgICAgY29uZnVzZXMgc2ggb24gU29sYXJpcywgYXQgbGVhc3QpLgogICAKICAgICAtIGRpc2FtYmlndWF0ZSBzb21lIGluc3RhbmNlcyBvZiAidmVyc2lvbiIgaW4gZGVmYXVsdCB2ZXJzaW9uCiAgICAgICBwcm9tcHQgdGV4dC4KICAgCjIwMDItMDMtMDUgMDI6MzQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIENvcnJlY3RseSBkZXRlY3Qgd2hlbiBubyBpbml0aWFsIGRlZmF1bHQgdmVyc2lvbiBoYXMgYmVlbiBzZXQuCiAgIEFjY2VwdCAnMmMnIGFzIHdlbGwgYXMgJzInIGZvciBhIGRlZmF1bHQgdmVyc2lvbiBjaG9pY2UuCiAgIEZpeCB0aGUgdGl0bGUgZm9yIHRoaXMgcHJvbXB0LCBhbmQgcmV3b3JkIHRoZSBkZXNjcmlwdGlvbiB0bwogICBtYWtlIGl0IGEgKnNsaWdodGx5KiBsZXNzIGxlYWRpbmcgcXVlc3Rpb24sIG0nbHVkLgogICAKICAgUW46IFNob3VsZCB3ZSBzdXBwb3J0IGEgIm5vIGRlZmF1bHQgdmVyc2lvbiIgb3B0aW9uID8KICAgICAoaGVuY2UgYWxsb3cgdGhlIGFkbWluIHRvIGZvcmNlIHRoZSBkZWNpc2lvbiBkb3duIHRvIHRoZSB1c2VyKQogICAKMjAwMi0wMy0wNCAxODoxNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jOgoKICAgdWNkLXNubXAgLT4gbmV0LXNubXAgY2hhbmdlCiAgIAoyMDAyLTAzLTA0IDE4OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICAoVG8gSm9obik6IGRvIG5vdCBmcmVlIHRoZSBteXZvaWQgcG9pbnRlciBpbiBhIGhhbmRsZXIuICBZb3UgY2FuIG5vdAogICBhc3N1bWUgdGhhdCBpdCdzIGEgZnJlZWFibGUgcmVzb3VyY2UuICBGb3IgaW5zdGFuY2UsIHRoZSBhZ2VudHggbWFzdGVyCiAgIGFnZW50IHdhcyB1c2luZyBpdCB0byBzdG9yZSB0aGUgbWFzdGVyIHNlc3Npb24gcG9pbnRlciBpbiBpdCAod2hpY2gKICAgd291bGQgZXhpc3QgaW4gbXVsdGlwbGUgcmVnaXN0ZXJlZCBub2RlcykuCiAgIAoyMDAyLTAzLTA0IDE3OjI2ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUuaW4gLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2M19hcGkuaCAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICB1c2UgYSBjb25maWd1cmUgZ2VuZXJhdGVkIHdyYXBwZXIgaGVhZGVyIGZvciB2MyBzZWN1cml0eSBtb2R1bGVzLgogICAKMjAwMi0wMy0wNCAxMTo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgYWRkIGRtYWxsb2MuaCB0byB0aGUgcHJvcGVyIHBsYWNlLgogICAKMjAwMi0wMy0wNCAxMTo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgc3RyaW5nIGNsZWFuIHVwcy4KICAgCjIwMDItMDMtMDQgMTE6NTIgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBhY2xvY2FsLm00ICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kZWZhdWx0X3N0b3JlLmggLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wdjMuYzoKCiAgIEltcGxlbWVudCBhIGRlZmF1bHQgdmVyc2lvbiBwcm9tcHQgZm9yIGNvbmZpZ3VyZS4KICAgIC0gKFdlcyBkdWNrcyBhcyB0aGlzIGlzIGN1cnJlbnRseSBzZXQgdG8gJzMnIHdoaWNoIGhlIG1heSBoYXZlIHRvCiAgICAgICBjaGFuZ2UgYXMgaXQgaGFzbid0IGV4YWN0bHkgYmVlbiBhZ3JlZWQgdXBvbiBhcyB0aGUgcHJvcGVyIGRlZmF1bHQgeWV0KS4KICAgIC0gLS13aXRoLWRlZmF1bHQtc25tcC12ZXJzaW9uIGFsc28gY3JlYXRlZC4KICAgIC0gY2hhbmdlZCBoYW5kbGluZyBvZiBkZWZhdWx0IHN0b3JlIC8gc25tcC5jb25mIHVzYWdlIGJ1dCBpbXBhY3QKICAgICAgc2hvdWxkIGJlIGxvdywgaG9wZWZ1bGx5LgogICAKMjAwMi0wMy0wNCAxMTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgYSBmZXcgZXJyb3Igc3RyaW5ncyBzbGlnaHRseSBpbXByb3ZlZC4gIFdlIHJlYWxseSBuZWVkIHRvIGNoYW5nZSB0aGUKICAgd2F5IHRoZXNlIGFyZSBoYW5kbGVkIHRvIGdldCBiZXR0ZXIgaW1wcm92ZW1lbnQuCiAgIAoyMDAyLTAzLTA0IDA3OjQ5ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL01ha2VmaWxlLmluOgoKICAgc2VwYXJhdGUgb3V0IHRoZSBjbGVhbmluZyBvZiAvdG1wIGZyb20gdGhlIG1haW4gY2xlYW5pbmcgdG8gcHJvdmlkZSBpdAogICBhcyBhIHNwZWNpYWwgdGFyZ2V0LgogICAKMjAwMi0wMy0wNCAwNzozOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAtV2FsbCBmaXhlcy4KICAgCjIwMDItMDMtMDQgMDU6MzIgIGpicG4KCiAgICogbWFuLzogc25tcGJ1bGtnZXQuMS5kZWYgLCBzbm1wYnVsa3dhbGsuMS5kZWYgLAogICBzbm1wZ2V0LjEuZGVmICwgc25tcGdldG5leHQuMS5kZWYgLCBzbm1wc3RhdHVzLjEuZGVmCiAgICwgc25tcHRlc3QuMS5kZWYgLCBzbm1wdHJhcC4xLmRlZjoKCiAgICAgLSByZW1vdmUgZnVydGhlciBpbnN0YW5jZXMgb2YgcG9zaXRpb25hbCBjb21tdW5pdHkgc3RyaW5nIHBhcmFtZXRlciwKICAgICAgIGFmdGVyIFBhdHJpY2sgV2VsY2hlCiAgIAoyMDAyLTAzLTA0IDA1OjI1ICBqYnBuCgogICAqIG1hbi86IHNubXBkLmNvbmYuNS5kZWYgLCBzbm1wd2Fsay4xLmRlZjoKCiAgICAgLSBwYXRjaGVzIGZyb20gUGF0cmljayBXZWxjaGUKICAgCjIwMDItMDMtMDQgMDE6MTYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5LmMgKFY0LTItcGF0Y2hlcy42KSwgbWVtb3J5LmM6CgogICBDb3JyZWN0IGRlYnVnIG91dHB1dCBtZXNzYWdlICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAzLTAxIDIyOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIG1ha2luZyB0aGUgKHNhbWUpIGRlYnVnZ2luZyBzdGF0ZW1lbnQgbW9yZSB1c2VmdWwuCiAgIAoyMDAyLTAzLTAxIDIyOjQzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgIGFkZCBtaXNzaW5nIG5ld2xpbmUgdG8gYSBkZWJ1Z2dpbmcgc3RhdGVtZW50LgogICAKMjAwMi0wMy0wMSAxMjo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGtleXRvb2xzLmMgLCBtaWIuYyAsIHNubXBfYXBpLmMgLAogICBzbm1wX2NsaWVudC5jICwgc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wdjMuYzoKCiAgIEZpcnN0IHBhc3MgYXQgYSBmZXcgYmV0dGVyIGVycm9yIG1lc3NhZ2VzLgogICAKMjAwMi0wMy0wMSAxMjowMSAgaGFyZGFrZXIKCiAgICogbWlicy9NYWtlZmlsZS5pbjoKCiAgIGRvbid0IGluc3RhbGwgaGVhZGVycyBoZXJlLgogICAKMjAwMi0wMy0wMSAwNTo0MSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLCBzbm1wbGliL21pYi5jOgoKICAgICAtIGFkZCBzbnByaW50X3ZhbHVlLCBzbnByaW50X3ZhcmlhYmxlLCBzbnByaW50X29iamlkCiAgIAoyMDAyLTAyLTI4IDA2OjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYyAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMgLAogICB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwICwgd2luMzIvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmg6CgogICBBZGQgYmFjayB0aGUgJ3NubXBDYWxsYmFjaycgZG9tYWluIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI3IDEwOjA0ICBqYnBuCgogICAqIGFwcHMvOiBzbm1wYnVsa2dldC5jICwgc25tcGJ1bGt3YWxrLmMgLCBzbm1wZ2V0LmMKICAgLCBzbm1wZ2V0bmV4dC5jICwgc25tcHNldC5jICwgc25tcHN0YXR1cy5jCiAgICwgc25tcHRhYmxlLmMgLCBzbm1wdGVzdC5jICwgc25tcHRyYW5zbGF0ZS5jCiAgICwgc25tcHRyYXAuYyAsIHNubXB1c20uYyAsIHNubXB3YWxrLmM6CgogICAgIC0gdGFydCB1cCB1c2FnZSBtZXNzYWdlcywgbWFrZSB0aGVtIG1vcmUgY29uc2lzdGVudCBhbmQgYnJpbmcgaW4gbGluZQogICAgICAgd2l0aCBtYW51YWwgcGFnZXMKICAgCjIwMDItMDItMjcgMTA6MDMgIGpicG4KCiAgICogbWFuLzogc25tcHNldC4xLmRlZiAsIHNubXB0YWJsZS4xLmRlZiAsIHNubXB0cmFwLjEuZGVmCiAgICwgc25tcHVzbS4xLmRlZjoKCiAgICAgLSBtaW5vciBmb3JtYXR0aW5nIGNoYW5nZXMKICAgCjIwMDItMDItMjcgMTA6MDMgIGpicG4KCiAgICogc25tcGxpYi86IG1pYi5jICwgcGFyc2UuYyAsIHNubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRyb3AgY29tbXVuaXR5IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAogICAgIC0gdGFydCB1cCB1c2FnZSBtZXNzYWdlcyB0byBiZSBtb3JlIGNvbnNpc3RlbnQgYW5kIGluIGxpbmUgd2l0aCBtYW51YWwKICAgICAgIHBhZ2VzCiAgIAoyMDAyLTAyLTI3IDA5OjQ3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogdmFjbS5jIChWNC0yLXBhdGNoZXMuNCksIHZhY20uYzoKCiAgIEhhbmRsZSB2aWV3cyB0aGF0IHNwZWNpZnkgYSBmdWxsIGluc3RhbmNlIE9JRC4KICAgKFNpbmNlIHRoZSBpbnRlcm5hbGx5IHN0b3JlZCBPSUQgcHJlcGVuZHMgdGhlIGxlbmd0aCBhcyB3ZWxsLAogICAgdGhlIGFwcGFyZW50IGxlbmd0aCBpcyBvbmUgZ3JlYXRlciB0aGFuIGl0IHJlYWxseSBpcykKICAgCjIwMDItMDItMjcgMDY6NTAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBbQUREUkVTU0VTXSAtPiBbTElTVEVOSU5HIEFERFJFU1NFU10gaW4gdXNhZ2UgbWVzc2FnZSwgdG8gbWF0Y2gKICAgICAgIG1hbnVhbCBwYWdlLgogICAKMjAwMi0wMi0yNyAwNjowOSAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkcm9wIG9wdGlvbmFsIHBvc2l0aW9uYWwgY29tbXVuaXR5IHBhcmFtZXRlciBmcm9tIHRyYXBzZXNzCiAgICAgICBkZXNjcmlwdGlvbi4KICAgCjIwMDItMDItMjcgMDU6NTEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L21pYi5oICwgc25tcGxpYi9taWIuYzoKCiAgICAgLSBkcm9wIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKICAgICAtIG5vIHNucHJpbnRfYmxhaCB5ZXQKICAgCjIwMDItMDItMjcgMDU6NDMgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmM6CgogICAgIC0gZG9uJ3QgdXNlIHNwcmludF9ibGFoIGZ1bmN0aW9ucwogICAKMjAwMi0wMi0yNyAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfZGVidWcuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X2JsYWggZnVuY3Rpb25zCiAgIAogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MzcgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zdG9yYWdlLmMgLCBocl9zd3J1bi5jOgoKICAgVXNlIHRoZSBtb3JlIGluZm9ybWF0aXZlICdvdXRwdXRfYXBpLmgnIGhlYWRlciBmaWxlIG5hbWUKICAgICAoSSBtdXN0IGhhdmUgbWlzc2VkIHRoZXNlIGVhcmxpZXIpCiAgIAoyMDAyLTAyLTI3IDA1OjM1ICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjEuZGVmOgoKICAgICAtIGRyb3AgY29tbXVuaXR5IHBvc2l0aW9uYWwgcGFyYW1ldGVyCiAgIAogICAgIC0geWVzLCBmb3Igb25jZSB0aGUgZG9jdW1lbnRhdGlvbiBoYXMgYmVlbiB1cGRhdGVkICpiZWZvcmUqIHRoZQogICBjb2RlIQogICAKMjAwMi0wMi0yNyAwNToxMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcHY2LmM6CgogICAgIC0gZG9uJ3QgdXNlIG9ic29sZXRlIERFQlVHUCBmdW5jdGlvbgogICAKMjAwMi0wMi0yNyAwNToxMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvOiBzbm1wX2FwaS5oICwgc25tcF9kZWJ1Zy5oICwKICAgc3lzdGVtLmg6CgogICAgIC0gZHJvcCBhcmNoYWljIERFQlVHUCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDU6MTAgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NjYXBpLmg6CgogICAgIC0gZG9uJ3QgdXNlIG9ic29sZXRlIERFQlVHUEwgZnVuY3Rpb24KICAgCjIwMDItMDItMjcgMDQ6MzIgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYyAsIGFwcHMvc25tcGRlbHRhLmMgLAogICBhcHBzL3NubXB0YWJsZS5jICwgYXBwcy9zbm1wdXNtLmMgLCBhcHBzL3NubXB3YWxrLmMKICAgLCBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfYmxhaCBmdW5jdGlvbnMKICAgCjIwMDItMDItMjcgMDI6MjYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUKICAgCjIwMDItMDItMjcgMDI6MDggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGRvbid0IHVzZSBzcHJpbnRfdmFyaWFibGUsIG5vLCBJIE1FQU4gaXQgdGhpcyB0aW1lCiAgIAoyMDAyLTAyLTI3IDAyOjA1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBkb24ndCB1c2Ugc3ByaW50X3ZhcmlhYmxlCiAgIAoyMDAyLTAyLTI2IDEyOjQ2ICByc3RvcnkKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY2xlYXIgbmV3IG1lbW9yeSBhZnRlciByZWFsbG9jKCkgc2luY2UgcmVhbGxvYyBkb2Vzbid0IGRvIGl0LgogICAKMjAwMi0wMi0yNiAxMjozMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBhZGQgVU5TSUdORUQzMgogICAKMjAwMi0wMi0yNiAwODo1NSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IGtlcm5lbF9zdW5vczUuYyAsIGtlcm5lbF9zdW5vczUuaCAsCiAgIG1pYklJL2F0LmMgLCBtaWJJSS9pY21wLmMgLCBtaWJJSS9pbnRlcmZhY2VzLmMgLAogICBtaWJJSS9pcC5jICwgbWliSUkvdGNwLmMgLCBtaWJJSS91ZHAuYyAsCiAgIG1pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIGNoYW5nZSBjYWNoZSBpbXBsZW1lbnRhdGlvbiBhZnRlciBzb21lIGludGVyZXN0aW5nIHByb2ZpbGluZyAoc2VlCiAgICAgICBsZW5ndGh5IG5ldyBjb21tZW50IGluIGtlcm5lbF9zdW5vczUuYykKICAgCjIwMDItMDItMjYgMDg6MTMgIGR0czEyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuYyAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwgc25tcGxpYi9zbm1wLXRjLmMgLAogICBzbm1wbGliL3VjZF9jb21wYXQuYzoKCiAgIFJlbW92ZSBhc3NvcnRlZCBleHRyYW5lb3VzIF5NJ3MKICAgCjIwMDItMDItMjYgMDc6MTQgIGR0czEyCgogICAqIFJFQURNRS53aW4zMjoKCiAgIEEgcXVpY2sgZ3VpZGUgdG8gaW5zdGFsbGluZyB0aGUgQ29yZSBQbGF0Zm9ybSBTREssIG5lZWRlZCBmb3IgdGhlIFdpbmRvd3MgYWdlbnQuCiAgIAoyMDAyLTAyLTI2IDA3OjAzICBkdHMxMgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgLCBhcHBzL3NubXB0cmFwZF9sb2cuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF90cmFwLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGFzZXQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9taWIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wdjMuYyAsCiAgIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgQXNzb3J0ZWQgbWlub3IgdHdlYWtzIHRvIGVuc3VyZSB0aGF0IHRoZSBwcm9qZWN0IGJ1aWxkcyB1bmRlciBWaXN1YWwgQysrLgogICBNb3N0bHkgYmVjYXVzZSBWQysrIGlzIGZ1c3N5IGFib3V0IHNvcnQtb2YtY29tcGF0aWJsZSBkYXRhIHR5cGVzCiAgICAgKGUuZy4gc2lnbmVkIHZzIHVuc2lnbmVkIGludGVnZXJzKS4KICAgCjIwMDItMDItMjYgMDc6MDAgIGR0czEyCgogICAqIHdpbjMyLzogbWliX21vZHVsZV9pbml0cy5oICwgd2luMzIuZHN3ICwgd2luMzIub3B0CiAgICwgbGliYWdlbnQvbGliYWdlbnQuZHNwICwgbGlic25tcC9saWJzbm1wLmRzcCAsCiAgIGxpYnVjZG1pYnMvbGlidWNkbWlicy5kc3AgLCBuZXRzbm1wbWlicy9uZXRzbm1wbWlicy5kc3AgLAogICBzbm1wZC9zbm1wZC5kc3AgLCBzbm1wdHJhcGQvc25tcHRyYXBkLmRzcDoKCiAgIFJlbmFtZSAnbGlidWNkbWlicycgdG8gcmVmbGVjdCB0aGUgY2hhbmdlIG9mIHByb2plY3QgbmFtZSwKICAgYW5kIGFzc29ydGVkIHR3ZWFrcyBzbyB0aGF0IHRoZSBmdWxsIHByb2plY3QgYnVpbGRzIHVuZGVyIFZpc3VhbCBDKysuCiAgICAgKE4uQjogVGhlIGFnZW50IHJlcXVpcmVzICJNaWNyb3NvZnQgUGxhdGZvcm0gQ29yZSBTREsiIGluIG9yZGVyCiAgICAgICB0byBidWlsZCB0aGUgJ25ldHNubXBtaWJzJyBwcm9qZWN0KQogICAKMjAwMi0wMi0yNiAwNjo1MyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIHJlbW92ZSBkdXBsaWNhdGUgdmFyaWFibGUgaW4gYSB3YXJuaW5nCiAgIAoyMDAyLTAyLTI2IDA2OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jOgoKICAgICAtIGluY2x1ZGUgbmV0LXNubXAtY29uZmlnLmgKICAgCjIwMDItMDItMjUgMjE6MDkgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtb3JlIGluc3RhbGwgY2hhbmdlcwogICAKMjAwMi0wMi0yNSAyMTowOCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1lbnRpb24gaW5zdGFsbGluZyBEQkQ6OkZpbGUuCiAgIAoyMDAyLTAyLTI1IDIwOjM4ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgb25lIHRvbyBtYW55ICcwJ3MgaW4gYSB1cmwuCiAgIAoyMDAyLTAyLTI1IDIwOjMzICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9JTlNUQUxMOgoKICAgcmV3b3JkLgogICAKMjAwMi0wMi0yNSAyMDozMCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvU3RvcmFnZS5wbToKCiAgIG1vdmUgd2FybmluZyBvdXRzaWRlIHNlY29uZGFyeSB3YXJuaW5nIGF1Z21lbnRhdGlvbiBsb29wLgogICAKMjAwMi0wMi0yNSAyMDoyOSAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIHVwZGF0ZSBTUUw6OlN0YXRlbWVudCBtb2R1bGUuCiAgIAoyMDAyLTAyLTI1IDE2OjI1ICByc3RvcnkKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jOgoKICAgYWRkIGZpbmRfdGFibGVfYXJyYXlfaGFuZGxlcigpOyByZW1vdmUgZGVidWdnaW5nIGNvZGUvY29tbWVudHM7CiAgIG1ha2Ugc3VyZSB3ZSBoYXZlIHRoZSByaWdodCBoYW5kbGVyIGJlZm9yZSB1c2luZyB0aGUgdm9pZCBwb2ludGVyOwogICByZW1vdmUgXk0gY2hhcmFjdGVycwogICAKMjAwMi0wMi0yNSAxMTo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuYyAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaDoKCiAgIDIgbmV3IGZ1bmN0aW9ucy4KICAgCjIwMDItMDItMjUgMTE6MTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgc2V0IHNlY3VyaXR5IG1vZGVsCiAgIAoyMDAyLTAyLTI1IDA4OjE1ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGUuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2hhbmRsZXIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGUuaCAsIHdpbjMyL3dpbjMyLmRzdzoKCiAgIENvbnRpbnVpbmcgaW1wcm92ZW1lbnRzIHRvIGNvbXBpbGF0aW9uIG9mIHRoZSBsYXRlc3QgY29kZSB1bmRlciBWaXN1YWwgQysrLgogICBUaGUgJ2xpYmhlbHBlcnMnIHByb2plY3Qgbm93IGNvbXBpbGVzLCBhbmQgdGhpcyBhbHNvIGFkZHJlc3NlcyBhIG51bWJlcgogICBvZiB3YXJuaW5ncyBhbmQgZXJyb3JzIGluIHRoZSBsaWJhZ2VudCBhbmQgbGlidWNkbWlicyBwcm9qZWN0cy4KICAgICBCdXQgdGhlc2UgdHdvIHN0aWxsIGZhaWwgb24gJ09JRF9MRU5HVEgnIGFuZCAnaXBobHBhcGkuaCcKICAgCjIwMDItMDItMjUgMDc6MDAgIGR0czEyCgogICAqIHdpbjMyL25ldC1zbm1wL2FnZW50L21pYl9tb2R1bGVfY29uZmlnLmg6CgogICBQcm92aWRlIGEgcGxhdXNpYmxlIG1vZHVsZSBjb25maWd1cmF0aW9uIGxpc3QgZm9yIHRoZSBXaW5kb3dzIGFnZW50LgogICAKMjAwMi0wMi0yNSAwNjowNCAgamJwbgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICAgIC0gcmVzb2x2ZSBjb25mbGljdGluZyBTWU5UQVhlcyBmb3IgbnNUcmFuc2FjdGlvbk1vZGUKICAgCiAgICAgLSBhZGQgcmFuZ2UgZm9yIGluZGV4IG5zVHJhbnNhY3Rpb25JRAogICAKMjAwMi0wMi0yNSAwMzoyMyAgZHRzMTIKCiAgICogd2luMzIvOiBsaWJzbm1wL2xpYnNubXAuZHNwICwgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwOgoKICAgRW5zdXJlIHRoZSBtYWluIGxpYnJhcnkgY29tcGlsZXMgYW5kIHdvcmtzIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI1IDAzOjE5ICBkdHMxMgoKICAgKiBhcHBzLzogbm90aWZpY2F0aW9uX2xvZy5oICwgc25tcHRyYXBkLmM6CgogICBFbnN1cmUgc25tcHRyYXBkIGNvbXBpbGVzIHVuZGVyIFdpbmRvd3MuCiAgIAoyMDAyLTAyLTI1IDAzOjA5ICBkdHMxMgoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMgLCBvaWRfc3Rhc2guYyAsIHNubXAtdGMuYyAsCiAgIHVjZF9jb21wYXQuYzoKCiAgIE1pbm9yIHR3ZWFrcyB0byBrZWVwIFZpc3VhbCBDKysgaGFwcHkuCiAgIAoyMDAyLTAyLTI1IDAyOjU3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaDoKCiAgIFdyYXAgd2l0aCAiZXh0ZXJuIEMiCiAgIAoyMDAyLTAyLTI1IDAyOjU2ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oOgoKICAgUGFuZGVyIHRvIENQUCdzIGluY3JlZGlibHkgZnVzc3kgbmF0dXJlLCBhbmQgcHJvdmlkZSB0aGUgY29ycmVjdCBoZWFkZXIgZmlsZSBuYW1lLgogICAKMjAwMi0wMi0yNSAwMToyMSAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuMSksIHNubXBkLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGRlYnVnIHRva2VuIGZvciBkaXNwbGF5aW5nIHRoZSBsaXN0IG9mIG1vZHVsZXMKICAgKHNwb3R0ZWQgYnkgQnJpYW4gU2hhdmVyKQogICAKMjAwMi0wMi0yMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBzdXBwb3J0IEBmb3JlYWNoICR2YXIxICR2YXIyIGVudW1zQAogICAKMjAwMi0wMi0yMiAxMDo1NiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvc25tcHNoOgoKICAgcmVtb3ZlIHRyYWlsaW5nIDsncyBmcm9tIHNxbCBzdGF0ZW1lbnRzLgogICAKMjAwMi0wMi0yMiAxMDo1NSAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3Rvb2xzLmggLCBzbm1wbGliL3Rvb2xzLmM6CgogICBkZWZpbmUgbmV0c25tcF9zdHJkdXBfYW5kX251bGwKICAgCjIwMDItMDItMjIgMTA6NTMgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIGluY2x1ZGUgdXRpbGl0aWVzLgogICAKMjAwMi0wMi0yMiAxMDo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgLSBkb24ndCBsb29wIGFnYWluIGZvciBzZWNvbmRhcnkgU0VUIG1vZGVzIGFuZCBjYWNoZSBpbmZvcm1hdGlvbiBpbnN0ZWFkLgogICAtIHZhcmlvdXMgZml4ZXMuCiAgIAoyMDAyLTAyLTIyIDEwOjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgZml4IGluc3RhbGwgZGlyZWN0b3JpZXMgZm9yIGhlYWRlcnMKICAgCjIwMDItMDItMjIgMTA6NDkgIGhhcmRha2VyCgogICAqIG5ldC1zbm1wLWNvbmZpZy5pbjoKCiAgIGFkZCAtLWNvbXBpbGUtc3ViYWdlbnQgZm9yIGF1dG9tYXR0ZWQgc3ViYWdlbnQgY29tcGlsYXRpb24gZnJvbQogICBtaWJtb2R1bGUgLmMgZmlsZXMgOy0pCiAgIAoyMDAyLTAyLTIyIDA5OjI3ICBkdHMxMgoKICAgKiBzbm1wbGliLzogTVNHMDAwMDEuYmluLCB3aW5zZXJ2aWNlLm1jIChWNC0yLXBhdGNoZXMuWzEsMV0pLAogICBNU0cwMDAwMS5iaW4gLCB3aW5zZXJ2aWNlLm1jOgoKICAgQWRkIG1pc3NpbmcgZmlsZXMgZm9yIFdpbmRvd3Mgc2VydmljZSBvcGVyYXRpb24uCiAgIAoyMDAyLTAyLTIyIDA4OjU1ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgSnVzdCBjbG9zZSB0aGUgbWFpbiBzZXNzaW9uIHdoZW4gc2h1dHRpbmcgZG93biB1bmRlciBXaW5kb3dzLAogICBub3QgZXZlcnl0aGluZyAoc28gdGhhdCBpdCBjYW4gc3RpbGwgZ2VuZXJhdGUgdGhlIHNodXRkb3duIHRyYXApLgogICAKMjAwMi0wMi0yMiAwODo0MCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfaW1wbC5oICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL21pYi5jICwgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jCiAgICwgc25tcGxpYi9zbm1wX2VudW0uYyAsIHNubXBsaWIvc25tcHYzLmM6CgogICBUd2Vha3MgcmVxdWlyZWQgdG8gZ2V0IHRoZSBsaWJyYXJ5IGNvbXBpbGluZyB1bmRlciBXaW5kb3dzIFZDKysKICAgCjIwMDItMDItMjIgMDg6MzcgIGR0czEyCgogICAqIHdpbjMyLzogc25tcHNtX2luaXQuaCAsCiAgIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AgLAogICBuZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCAsIGxpYmFnZW50L2xpYmFnZW50LmRzcCAsCiAgIGxpYmhlbHBlcnMvbGliaGVscGVycy5kc3AgLCBsaWJzbm1wL2xpYnNubXAuZHNwICwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwICwgbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcAogICAsIHNubXBidWxrZ2V0L3NubXBidWxrZ2V0LmRzcCAsCiAgIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwICwgc25tcGQvc25tcGQuZHNwICwKICAgc25tcGRlbHRhL3NubXBkZWx0YS5kc3AgLCBzbm1wZGYvc25tcGRmLmRzcCAsCiAgIHNubXBnZXQvc25tcGdldC5kc3AgLCBzbm1wZ2V0bmV4dC9zbm1wZ2V0bmV4dC5kc3AgLAogICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AgLCBzbm1wc2V0L3NubXBzZXQuZHNwICwKICAgc25tcHN0YXR1cy9zbm1wc3RhdHVzLmRzcCAsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwICwKICAgc25tcHRlc3Qvc25tcHRlc3QuZHNwICwgc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcAogICAsIHNubXB0cmFwL3NubXB0cmFwLmRzcCAsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwCiAgICwgc25tcHVzbS9zbm1wdXNtLmRzcCAsIHNubXB2YWNtL3NubXB2YWNtLmRzcCAsCiAgIHNubXB3YWxrL3NubXB3YWxrLmRzcDoKCiAgIFByb3ZpZGUgV2luZG93cy1zcGVjaWZpYyB2ZXJzaW9ucyBvZiBhdXRvbWF0aWNhbGx5LWdlbmVyYXRlZCBoZWFkZXIgZmlsZXMsCiAgIGFuZCBhZGQgdGhlIG5ldyBpbmNsdWRlIHN0cnVjdHVyZSB0byB0aGUgcHJvamVjdCBmaWxlcy4KICAgCjIwMDItMDItMjIgMDc6MjQgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90cmFuc2Zvcm1fb2lkcy5oOgoKICAgRGVmaW5lIHN0YW5kYXJkIE9JRCBsZW5ndGhzIGhlcmUgKHdoZXJlIHRoZXkncmUgYXZhaWxhYmxlIHRvIGFueQogICBmaWxlIHdhbnRpbmcgdG8gYWNjZXNzIHRoZSBPSUQgc3RydWN0dXJlcykKICAgCjIwMDItMDItMjIgMDM6MjQgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYyAsIHNubXB2My5jOgoKICAgU3VwcG9ydCAiLi4uLiAtM3Uge3NlY05hbWV9IC4uLi4iIHN5bnRheAogICAoaW4gdGhlIG5vcm1hbCBnZXRvcHQgc3R5bGUgLSBpLmUuIG5vIG5lZWQgZm9yIHN1cnJvdW5kaW5nIHF1b3RlcykKICAgCiAgIEl0IHNob3VsZCBub3cgYmUgcG9zc2libGUgdG8gc3dpdGNoIHRvIHRoaXMgYXMgdGhlIHJlY29tbWVuZGVkIGZvcm0KICAgZm9yIFNOTVB2MyBvcHRpb25zIC0gaWYgdGhhdCdzIHdoYXQgd2Ugd2FudCB0byBkby4KICAgICBRbjogIERvIHdlIHdhbnQgdG8/CiAgIAoyMDAyLTAyLTIxIDA4OjM5ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgU3VwcG9ydCAiLTN1IHtzZWNOYW1lfSIgc3ludGF4ICgqd2l0aCogdGhlIHF1b3RlcywgdW5mb3J0dW5hdGVseSkuCiAgIE5vdyBjb21lcyB0aGUgZnVuIGJpdC4uLi4uCiAgIAoyMDAyLTAyLTIxIDA3OjU0ICBkdHMxMgoKICAgKiB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBGaXggYm9ndXMgc3RydWN0dXJlIGNvbW1lbnRzIGluIHRoZSBzbm1wZCBwcm9qZWN0IGZpbGUuCiAgIAoyMDAyLTAyLTIxIDA3OjMwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSBkcm9wIGlubGluZSAobW9yZSB0cm91YmxlIHRoYW4gaXQgaXMgd29ydGgpCiAgIAoyMDAyLTAyLTIxIDA1OjAwICBkdHMxMgoKICAgKiBzbm1wbGliLzogc25tcF9wYXJzZV9hcmdzLmMgLCBzbm1wdjMuYzoKCiAgIEZpcnN0IHBhc3MgYXQgYW4gU05NUHYzICJjb21iaW5lZC1vcHRpb24iIGNvbW1hbmQtbGluZSBmbGFnICgtM3gpLgogICAoSW4gKmFkZGl0aW9uKiB0byB0aGUgY3VycmVudCBjb21tYW5kLWxpbmUgZmxhZ3MsIEkgaGFzdGVuIHRvIGFkZCEpCiAgIAogICBTdXBwb3J0cyAgIi4uLiAtM3V7c2VjTmFtZX0gLi4uIiBhbmQgIi4uLiAtM3U9e3NlY05hbWV9IC4uLiIgc3ludGF4LAogICBidXQgbm90IHRoZSBzZXBhcmF0ZSAiLi4uIC0zdSB7c2VjTmFtZX0gLi4uIiBzdHlsZS4KICAgCiAgIEkgaGF2ZW4ndCB0b3VjaGVkIHRoZSBkb2N1bWVudGF0aW9uIG9yIHVzYWdlIG1lc3NhZ2UgdG8gbWVudGlvbiB0aGlzLgogICAKMjAwMi0wMi0yMCAxODoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgdXNlIGZvciBpbnN0ZWFkIG9mIGNvbnRpbnVlIGZvciBsb29wcy4KICAgCjIwMDItMDItMjAgMTM6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRS5zbm1wdjMgLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2RzX2FnZW50Lmg6CgogICAtIEFkZCBhIC0tcXVpdCBvcHRpb24gKGFuZCBhIGNvbmZpZ3VyYXRpb24gdG9rZW4pIHNvIHRoYXQgeW91IGNhbiBub3cKICAgICBjcmVhdGUgbmV3IHVzZXJzIGJ5IHNpbXBseSBjYWxsaW5nIHNubXBkIGFzOgogICAgICAgc25tcGQgLS1jcmVhdGVVc2VyPSJteXVzZXIgTUQ1IG15cGFzc3dvcmQiIC0tcXVpdAogICAtIENoYW5nZSBSRUFETUUuc25tcHYzIGRvY3VtZW50YXRpb24gdG8gbWFrZSB1c2Ugb2YgdGhpcyBmZWF0dXJlLgogICAKMjAwMi0wMi0yMCAwNjoxNiAgamJwbgoKICAgKiBhcHBzL01ha2VmaWxlLmluICwgYXBwcy9zbm1wdHJhcGQuYyAsIGNvbmZpZ3VyZQogICAsIGNvbmZpZ3VyZS5pbiAsIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBhZGQgbGlid3JhcCBzdXBwb3J0IHRvIHNubXB0cmFwZCAodW50ZXN0ZWQpCiAgIAogICAgIC0gbWlub3IgY2hhbmdlcyB0byBzbm1wZCBsaWJ3cmFwIHN1cHBvcnQKICAgCiAgICAgLSBjb25maWd1cmUgZml4ZXMgZm9yIGxpYndyYXAKICAgCjIwMDItMDItMjAgMDM6MDcgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gdXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyB0byBtYWtlIHN1cmUgYnVmZmVyIGlzIGluaXRpYWxseQogICAgICAgemVyby10ZXJtaW5hdGVkIChpbiBjYXNlIG9mIDAgdmFyYmluZHMpLiAgQnVnICM1MTg3MDAsIG5vdGVkIGJ5CiAgICAgICBBbmRyZWFzIEhhcnRtYW5uLgogICAKMjAwMi0wMi0yMCAwMzowNiAgamJwbgoKICAgKiBhcHBzL3NubXBkZWx0YS5jOgoKICAgICAtIGluaXRpYWxpc2Ugc29tZSBidWZmZXJzLCB0byBhdm9pZCBnYXJiYWdlIHByaW50aW5nIHByb2JsZW1zLCBhcwogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIGluIGJ1ZyAjNTIwMjIwLgogICAKMjAwMi0wMi0yMCAwMzowMyAgZHRzMTIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIENsZWFuIHVwIHRoZSBvYmplY3QgZmlsZXMgYXMgd2VsbAogICAKMjAwMi0wMi0yMCAwMTo0MSAgZHRzMTIKCiAgICogbWFuLy5jdnNpZ25vcmU6CgogICBJZ25vcmUgdGhlIG5ldyBjcm9wIG9mIGdlbmVyYXRlZCBtYW4gcGFnZXMuCiAgIAoyMDAyLTAyLTIwIDAxOjM3ICBkdHMxMgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBTdXBwbHkgbWlzc2luZyBkb3VibGUtcXVvdGUgIChvb3BzKQogICAKMjAwMi0wMi0xOSAwNDowMSAgZHRzMTIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmM6CgogICBJbml0aWFsaXNlIHRoZSBsaWJyYXJ5IGludGVybmFscyAqYmVmb3JlKiBwYXJzaW5nIHRoZSBjb21tYW5kIGxpbmUsCiAgIHNvIHRoYXQgZGVmYXVsdHMgY2FuIGJlIG92ZXJyaWRkZW4gYnkgY29tbWFuZCBsaW5lIG9wdGlvbnMuCiAgICAgUW46ICBTaG91bGQgJ19pbml0X3NubXAnIGJlIGludm9rZWQgYnkgJ3NubXBfcGFyc2VfYXJncycgaXRzZWxmPwogICAKMjAwMi0wMi0xOSAwMzo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1ha2Ugc3VyZSB0aGF0IG11bHRpcGxlIG91dHB1dCBmb3JtYXQgZmxhZ3Mgd29yayBpbiBhIGNvbnNpc3RlbnQgbWFubmVyLgogICAoaS5lLiB0aGUgbGFzdCBvbmUgaXMgdXNlZCwgcmF0aGVyIHRoYW4gcmVseWluZyBvbiBpbnRlcm5hbCBvcmRlcmluZykuCiAgIAoyMDAyLTAyLTE4IDIxOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC86IHRlc3RkZWxheWVkLmMgLCB0ZXN0aGFuZGxlci5jOgoKICAgaW5jbHVkZSBzdGRsaWIuaAogICAKMjAwMi0wMi0xOCAyMTo1MiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmM6CgogICBmaXggaW5jbHVkZXMKICAgCjIwMDItMDItMTggMjE6NTEgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfaXRlcmF0b3IuaDoKCiAgIC0gbWFrZSBjYXBhYmlsaXR5IHRvIGNyZWF0ZSBkYXRhIGNvbnRleHRzIGZyb20gYSBsb29wIGNvbnRleHQgKGxlc3MKICAgICBtYWxsb2NzIHdoZW4gbWFsbG9jcyBhcmVuJ3Qgb3RoZXJ3aXNlIGF2b2lkYWJsZSkuCiAgIC0gZG9uJ3QgZG91YmxlIGZyZWUgdGhlIGRhdGEgY29udGV4dCBwb2ludGVyLgogICAKMjAwMi0wMi0xOCAyMTo1MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgaW5jbHVkZSBhbGwgYWdlbnQgaGVscGVycy4KICAgCjIwMDItMDItMTggMjE6NDkgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbXVsdGlwbGV4ZXIuaDoKCiAgIHByb3RlY3QgaW5jbHVkZSBmcm9tIGRvdWJsZSBpbmNsdWRlCiAgIAoyMDAyLTAyLTE4IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJpbmNsLmg6CgogICBmaXggaW5jbHVkZSBwYXRocwogICAKMjAwMi0wMi0xOCAwMjozNSAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgVHdlYWsgdGhlIGxpc3Qgb2YgaGVhZGVyIGZpbGVzIHRvIGJlIGluc3RhbGxlZCAodGhhbmtzIHRvIENocmlzdG9waCBNYW1taXR6c2NoKQogICAKMjAwMi0wMi0xOCAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N0b3JhZ2UuYyAoVjQtMi1wYXRjaGVzLjcpLCBocl9zdG9yYWdlLmM6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgdW5oZWxwZnVsIE9TRiBkZWZpbml0aW9ucyAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMi0xOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYyAoVjQtMi1wYXRjaGVzLjMpLCBhc24xLmM6CgogICBkb24ndCBidWlsZCBvaWQncyB3aXRoID4xMjggbGVuZ3RoIHN1Ymlkcy4gIChzZWUgYnVnICM1MTg4NTUpCiAgIAoyMDAyLTAyLTE2IDIzOjE4ICBoYXJkYWtlcgoKICAgKiBtaWJzLzogTkVULVNOTVAtTUlCLnR4dCAsIE5FVC1TTk1QLU1PTklUT1ItTUlCLnR4dCAsCiAgIE5FVC1TTk1QLVNZU1RFTS1NSUIudHh0ICwgTkVULVNOTVAtVEMudHh0OgoKICAgd2hpdGUgc3BhY2UgY2xlYW4gdXAuICAoQUdFTlQtTUlCIG5vdCBjaGVja2VkIGluIGR1ZSB0byBvdGhlcgogICBpbmNvbXBsZXRlIGNoYW5nZXMpLgogICAKMjAwMi0wMi0xNiAwMDoxNyAgaGFyZGFrZXIKCiAgICogTkVXUyAsIGFnZW50L3NubXBkLmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9yZWFkX2NvbmZpZy5oICwgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIC0gZmluaXNoIGltcGxlbWVudGluZyBzbm1wX2NvbmZpZygibXkgY29uZmlnIGxpbmUiKQogICAgIC0gd2FzIGRvbmUgYmVmb3JlLCBidXQgcHJldmlvdXNseSBoYWQgdG8gYmUgY2FsbGVkIG9ubHkgYWZ0ZXIKICAgICAgIGNvbmZpZ3VyYXRpb24gZmlsZXMgaGFkIGJlZW4gcmVhZC4gIE5vdyBjYW4gYmUgY2FsbGVkIGF0IGFueSB0aW1lLgogICAtIG1ha2UgYWxsIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBhdmFpbGFibGUgYXMgLS1sb25nb3B0cyBjb21tYW5kIGxpbmUgb3B0aW9ucy4KICAgICAtIC0tc29tZXRoaW5nPXZhbHVlIC0+ICJzb21ldGhpbmcgdmFsdWUiCiAgICAgLSAtLXNvbWV0aGluZyAgICAgICAtPiAic29tZXRoaW5nIDEiICh3b3JrcyBmb3Igc2V0dGluZyBib29sZWFucyB0byB0cnVlKQogICAKMjAwMi0wMi0xNiAwMDowMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICBpbnN0YWxsIG1pYl9tb2R1bGVfY29uZmlnLmgKICAgCjIwMDItMDItMTYgMDA6MDEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIGZpeCBycG0gZm9yIDQuMC4zIGFuZCBhYm92ZSAob3Igd2hlbmV2ZXIgaXQgd2FzIHRoYXQgd2Ugbm93IG5lZWQgbGlicnBtZGIpCiAgIAoyMDAyLTAyLTE2IDAwOjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIE1ha2VmaWxlLnJ1bGVzOgoKICAgZml4IG5ldC1zbm1wLWNvbmZpZyBpbnN0YWxsL2NsZWFuL2V0Yy4KICAgCjIwMDItMDItMTUgMjI6MzQgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgTWFrZWZpbGUucnVsZXM6CgogICBpbnN0YWxsIGFsbCBzeXN0ZW0gYW5kIG1hY2hpbmUgZmlsZXMsIHNpbmNlIHRoZXkgaW5jbHVkZSBlYWNoIG90aGVyCiAgIAoyMDAyLTAyLTE1IDA5OjI4ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIG1pYnMvTkVULVNOTVAtQUdFTlQtTUlCLnR4dCAsIG1pYnMvTkVULVNOTVAtTUlCLnR4dCAsCiAgIG1pYnMvTkVULVNOTVAtTU9OSVRPUi1NSUIudHh0ICwgbWlicy9ORVQtU05NUC1TWVNURU0tTUlCLnR4dAogICAsIG1pYnMvTkVULVNOTVAtVEMudHh0OgoKICAgU2tlbGV0b24gZnJhbWV3b3JrIGZvciB0aGUgTmV0LVNOTVAgZW50ZXJwcmlzZSB0cmVlLgogICAoaW5jb3Jwb3JhdGluZyB0aGUgaW5pdGlhbCAnbnNUcmFuc2FjdGlvblRhYmxlJywgYnV0IG5vdGhpbmcgZWxzZSBhcyB5ZXQpCiAgIAoyMDAyLTAyLTE1IDA5OjEwICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGRlcHJlY2F0ZWQgY29tbWFuZC1saW5lIG9wdGlvbnMuCiAgIAoyMDAyLTAyLTE1IDA3OjI4ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvd2luc2VydmljZS5oICwgc25tcGxpYi93aW5zZXJ2aWNlLmMKICAgLCBhZ2VudC9zbm1wZC5jICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvd2luc2VydmljZS5yYyAsIHdpbjMyL3NubXBkL3NubXBkLmRzcDoKCiAgIFN1cHBvcnQgZm9yIHJ1bm5pbmcgYXMgYSBXaW5kb3dzIHNlcnZpY2UuCiAgIChTdXBwbGllZCBieSBSYWp1IEtyaXNobmFwcGEgJiBMYXRodSBQcmFiaHUpCiAgIAoyMDAyLTAyLTE1IDA3OjI1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWluY2x1ZGVzLmg6CgogICBTdG9rZSBXZXMnIHNlbnNlIG9mIHBhcmFub2lhIGJ5IGNvbmNlZGluZyB3aXRob3V0IGNvbW1lbnQuCiAgICAgICAoV2hhdCBtaWdodCBTaGllbGQgYmUgcGxvdHRpbmcgbm93Li4uLi4uKQogICAKMjAwMi0wMi0xNSAwNzoxOSAgamJwbgoKICAgKiBtYW4vc25tcHVzbS4xLmRlZjoKCiAgICAgLSBmaXggdGlueSBmb3JtYXR0aW5nIGVycm9yCiAgIAoyMDAyLTAyLTE1IDA3OjE3ICBkdHMxMgoKICAgKiBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBOT1RJRklDQVRJT04tTE9HLU1JQiAoc2luY2UgaXQncyBvbmUgb2YgdGhlIGRlZmF1bHQgbG9hZCBsaXN0ISkKICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5oOgoKICAgZmlsZSB3aW5zZXJ2aWNlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjo0NyAgZHRzMTIKCiAgICogc25tcGxpYi93aW5zZXJ2aWNlLnJjOgoKICAgZmlsZSB3aW5zZXJ2aWNlLnJjIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIHNubXBsaWIvd2luc2VydmljZS5jOgoKICAgZmlsZSB3aW5zZXJ2aWNlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMi0wMi0xNSAwNjowOCAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC90eXBlcy5oOgoKICAgSW5jbHVkZSB0aGUgPHN5cy90aW1lLmg+IGNhc2NhZGUsIHRvIHBpY2sgdXAgdGhlIGRlZmluaXRpb24gb2YgJ3RpbWV2YWwnCiAgIAoyMDAyLTAyLTE1IDA0OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gbWlub3IgY2hhbmdlIHRvIGJyaW5nIHVzYWdlIG1lc3NhZ2UgaW4gbGluZSB3aXRoIG1hbnBhZ2UKICAgCjIwMDItMDItMTUgMDM6MjkgIGR0czEyCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICBDYXRjaCB1c2Ugb2YgdGhlIHRyYW5zcG9ydCBhbmQgcG9ydCBvcHRpb25zLCBhbmQgaXNzdWUgYW4gYXBwcm9wcmlhdGUKICAgZXJyb3IgbWVzc2FnZSwgZGVzY3JpYmluZyB1c2Ugb2YgdGhlIDxob3N0bmFtZT4gcGFyYW1ldGVyIGluc3RlYWQuCiAgIAoyMDAyLTAyLTE1IDAzOjExICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMgLCBzbm1wX2FwaS5jOgoKICAgU2V0IHRoZSBkZWZhdWx0IG91dHB1dCBmb3JtYXQgKmJlZm9yZSogcHJvY2Vzc2luZyBjb21tYW5kIGxpbmUgb3B0aW9ucywKICAgcmF0aGVyIHRoYW4gYWZ0ZXIuICBUaGF0J3MgcHJvYmFibHkgYSBiaXQgbW9yZSBmbGV4aWJsZTotKQogICAKMjAwMi0wMi0xNSAwMjozNyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGNvbmZpZ19hcGkuaCAsIGRlZmluaXRpb25zLmggLAogICBtaWJfYXBpLmggLCBvdXRwdXRfYXBpLmggLCBwZHVfYXBpLmggLCBzZXNzaW9uX2FwaS5oCiAgICwgc25tcHYzX2FwaS5oICwgdHlwZXMuaCAsIHV0aWxpdGllcy5oICwKICAgdmFyYmluZF9hcGkuaDoKCiAgIFJlbW92ZSAnbmV0LXNubXAtY29uZmlnLmgnIGZyb20gdGhlIG1haW4gQVBJIGhlYWRlciBmaWxlcy4KICAgVGhpcyB3aWxsIGhhdmUgdG8gYmUgI2luY2x1ZGVkIHNlcGFyYXRlbHkgKGVpdGhlciBleHBsaWNpdGx5CiAgIG9yIHZpYSB0aGUgYWxsLWluLW9uZSAnbmV0LXNubXAtaW5jbHVkZXMuaCcgaGVhZGVyKQogICAKMjAwMi0wMi0xNSAwMjozMSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIEluc3RhbGwgdGhlIFJFQURNRSB0byBkZXNjcmliZSB0aGUgc3RhdHVzIG9mIDxuZXQtc25tcC9saWJyYXJ5PiBhbmQgPG5ldC1zbm1wPiBoZWFkZXIgZmlsZXMuCiAgIAoyMDAyLTAyLTE1IDAyOjEzICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW4gLCBtaWJzL01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUge3N5c3RlbSxtYWNoaW5lfS8qLmggaGVhZGVyIGZpbGVzIGFzIHdlbGwuCiAgIAogICBEb2luZyB0aGlzIHZpYSB0aGUgJ21hbicgJiAnbWlicycgTWFrZWZpbGVzIGlzIGEgZ3Jvc3MgaGFjaywKICAgYW5kIHJlYWxseSBuZWVkcyB0byBiZSBoYW5kbGVkIG1vcmUgY2xlYW5seS4gIEJ1dCBpdCdzIHRoZQogICBiZXN0IEkgY2FuIGNvbWUgdXAgd2l0aCBhdCB0aGUgbW9tZW50LiAgU29ycnkgLSBEYXZlLgogICAKMjAwMi0wMi0xNSAwMTo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbiAsIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCB0aGUgVUNELWNvbXBhdGFiaWxpdHkgaGVhZGVycyBhcyB3ZWxsLgogICAKMjAwMi0wMi0xNSAwMTo1NyAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXM6CgogICBPbmx5IGluc3RhbGwgc3ViZGlyZWN0b3J5IHN0dWZmICpvbmNlKi4gIChEb24ndCBiZSBzbyBlbnRodXNpYXN0aWMsIERhdmUhKQogICAKMjAwMi0wMi0xNSAwMTozMSAgZHRzMTIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIFJlbW92ZSByZWR1bmRlbnQgJy1DTicgYW5kICctQ08nIG9wdGlvbnMgZnJvbSB0aGUgZXhhbXBsZSBzbm1wdXNtIGNvbW1hbmQuCiAgICAgKGFzIG1lbnRpb25lZCBieSBXZXMgb24gdGhlIHVzZXJzIG1haWxpbmcgbGlzdCAyMDAyLTAyLTEzKQogICAgIFFuOiBEb2VzIHRoaXMgbmVlZCB0byBiZSBkb25lIG9uIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoIGFzIHdlbGw/CiAgIAoyMDAyLTAyLTE1IDAxOjE1ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3V0aWxpdGllcy5oICwgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdmVyc2lvbi5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC92ZXJzaW9uLmggLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIFJlc3RvcmUgJ3ZlcnNpb24uaCcgYXMgYmVpbmcgYSAidG9wLWxldmVsIiBoZWFkZXIgZmlsZS4KICAgCjIwMDItMDItMTUgMDE6MTMgIGR0czEyCgogICAqIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBJbnN0YWxsIHRoZSBmdWxsIHNldCBvZiBsaWJyYXJ5IGhlYWRlciBmaWxlcywKICAgcmV0YWluaW5nIHRoZSB0b3AtbGV2ZWwgdnMgbGlicmFyeSBzdWJkaXJlY3Rvcnkgc3BsaXQuCiAgIAoyMDAyLTAyLTE1IDAxOjEwICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBMb29rIGZvciB0cmFuc3BvcnQtcmVsYXRlZCBoZWFkZXIgZmlsZXMgaW4gdGhlIGNvcnJlY3QgbG9jYXRpb24uCiAgIAoyMDAyLTAyLTE1IDAxOjA5ICBkdHMxMgoKICAgKiBNYWtlZmlsZS5ydWxlczoKCiAgIEVuc3VyZSBwYXJ0aWFsIGluc3RhbGwgdGFyZ2V0cyByZWN1cnNlIHByb3Blcmx5LgogICAKMjAwMi0wMi0xNCAwODoxOCAgZHRzMTIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgTG9vayBmb3IgbWliX21vZHVsZV9jb25maWcuaCBpbiB0aGUgY29ycmVjdCBsb2NhdGlvbgogICAKMjAwMi0wMi0xNCAwODowNiAgaGFyZGFrZXIKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgZml4IG1hbjggaW5zdGFsbCBkZWZpbml0aW9ucwogICAKMjAwMi0wMi0xNCAwNzo0OCAgZHRzMTIKCiAgICogTWFrZWZpbGUucnVsZXMgLCBuZXQtc25tcC1jb25maWcuaW46CgogICBTdWJzdGl0dXRlIHZhbHVlcyBpbnRvICduZXQtc25tcC1jb25maWcnIHByb3Blcmx5LCBhbmQgZG9uJ3QgJ21ha2UgY2xlYW4nIGl0IGF3YXkuCiAgIAoyMDAyLTAyLTE0IDA3OjIyICBkdHMxMgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMKICAgCjIwMDItMDItMTQgMDc6MTQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIFRpZHkgdXAgYWZ0ZXIgbW92aW5nIHRoZSBsaWJyYXJ5IGhlYWRlciBmaWxlcyAoaW5jbHVkaW5nIE1ha2VmaWxlIGRlcGVuZGVuY2llcykKICAgCjIwMDItMDItMTQgMDc6MTAgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYWdlbnRfcmVnaXN0cnkuaCAsCiAgIHNubXBsaWIvTWFrZWZpbGUuZGVwZW5kICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYyAsCiAgIGFnZW50L01ha2VmaWxlLmRlcGVuZCAsIGFwcHMvTWFrZWZpbGUuZGVwZW5kICwKICAgYXBwcy9zbm1wYnVsa2dldC5jICwgYXBwcy9zbm1wZ2V0LmMgLCBhcHBzL3NubXBzdGF0dXMuYwogICAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5kZXBlbmQgLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwogICAsIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvc25tcF9hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX3ZhcnMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBJUFhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVURQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLCBhZ2VudC9hZ2VudF90cmFwLmMKICAgLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmRlcGVuZCAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmRlcGVuZCAsIGFnZW50L21pYmdyb3VwL2hvc3RfcmVzLmgKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuaCAsCiAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmg6CgogICBUaWR5IHVwIGFmdGVyIG1vdmluZyB0aGUgbGlicmFyeSBoZWFkZXIgZmlsZXMgKGluY2x1ZGluZyBNYWtlZmlsZSBkZXBlbmRlbmNpZXMpCiAgIAoyMDAyLTAyLTE0IDA3OjA4ICBkdHMxMgoKICAgKiBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluOgoKICAgUmVtb3ZlIGFuIGV4dHJhbmVvdXMgc3BhY2UgZnJvbSBDUFBGTEFHUwogICAKMjAwMi0wMi0xNCAwNjoyMyAgZHRzMTIKCiAgICogaW5jbHVkZS9uZXQtc25tcC86IGNvbmZpZ19hcGkuaCAsIGRlZmluaXRpb25zLmggLAogICBtaWJfYXBpLmggLCBuZXQtc25tcC1pbmNsdWRlcy5oICwgb3V0cHV0X2FwaS5oICwKICAgcGR1X2FwaS5oICwgc2Vzc2lvbl9hcGkuaCAsIHNubXB2M19hcGkuaCAsIHR5cGVzLmgKICAgLCB1dGlsaXRpZXMuaCAsIHZhcmJpbmRfYXBpLmg6CgogICBTZXBhcmF0ZSBvdXQgdG9wLWxldmVsICJwdWJsaWMgQVBJIiBsaWJyYXJ5IGhlYWRlciBmaWxlcyBmcm9tIHRoZSAiaW50ZXJuYWwiCiAgIGxpYnJhcnkgaGVhZGVyIGZpbGVzLiAgVGhlc2UgYXJlIHN0aWxsIGF2YWlsYWJsZSBmb3IgdXNlIGJ5IGFwcGxpY2F0aW9uCiAgIGRldmVsb3BlcnMsIGJ1dCB0aGlzIHNwbGl0IG1ha2VzIGl0IGNsZWFyZXIgd2hhdCBtYXkgY2hhbmdlIGluIHRoZSBmdXR1cmUKICAgYW5kIHdoYXQgY2FuIGJlIHJlbGllZCB1cG9uIHRvIGJlIHN0YWJsZS4KICAgCjIwMDItMDItMTQgMDY6MTkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvYXNuMS5oICwgaW5jbHVkZS9uZXQtc25tcC9jYWxsYmFjay5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9jbXVfY29tcGF0LmggLCBpbmNsdWRlL25ldC1zbm1wL2RhdGFfbGlzdC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9kZWZhdWx0X3N0b3JlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2dldG9wdC5oICwgaW5jbHVkZS9uZXQtc25tcC9pbnQ2NC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9rZXl0b29scy5oICwgaW5jbHVkZS9uZXQtc25tcC9sY2RfdGltZS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9saWJzbm1wLmggLCBpbmNsdWRlL25ldC1zbm1wL21kNS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9taWIuaCAsIGluY2x1ZGUvbmV0LXNubXAvbXRfc3VwcG9ydC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9vaWRfYXJyYXkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvb2lkX3N0YXNoLmggLCBpbmNsdWRlL25ldC1zbm1wL3BhcnNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3JlYWRfY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NjYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXAtdGMuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wQUFMNVBWQ0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcElQWERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVENQRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBVRFBEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9hbGFybS5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfZW51bS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2NraW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfbG9nZ2luZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9zZWNtb2QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF90cmFuc3BvcnQuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcGtzbS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdXNtLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCAsIGluY2x1ZGUvbmV0LXNubXAvdG9vbHMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdWNkX2NvbXBhdC5oICwgaW5jbHVkZS9uZXQtc25tcC92YWNtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3ZlcnNpb24uaCAsIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9SRUFETUUKICAgLCBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvYXNuMS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2NhbGxiYWNrLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvY211X2NvbXBhdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RhdGFfbGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2RlZmF1bHRfc3RvcmUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9nZXRvcHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9pbnQ2NC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L2tleXRvb2xzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbGNkX3RpbWUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9saWJzbm1wLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWQ1LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbWliLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvbXRfc3VwcG9ydC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9hcnJheS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L29pZF9zdGFzaC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3BhcnNlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvcmVhZF9jb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zY2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXAtdGMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcEFBTDVQVkNEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wQ2FsbGJhY2tEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFRDUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBUQ1BJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBVRFBJUHY2RG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcFVuaXhEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2FsYXJtLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2NsaWVudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfZGVidWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2VudW0uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2ltcGwuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvY2tpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX2xvZ2dpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3BhcnNlX2FyZ3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wX3NlY21vZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXBfdHJhbnNwb3J0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvc25tcGtzbS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3NubXB1c20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zbm1wdjMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS9zeXN0ZW0uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS90b29scy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3RyYW5zZm9ybV9vaWRzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2xpYnJhcnkvdWNkX2NvbXBhdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9saWJyYXJ5L3ZhY20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlicmFyeS92ZXJzaW9uLmggLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oICwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oICwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oICwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaCAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oICwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCAsIGluY2x1ZGUvdWNkLXNubXAvdmVyc2lvbi5oCiAgICwgc25tcGxpYi9hc24xLmMgLCBzbm1wbGliL2NhbGxiYWNrLmMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5jICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL2tleXRvb2xzLmMgLAogICBzbm1wbGliL2xjZF90aW1lLmMgLCBzbm1wbGliL21kNS5jICwgc25tcGxpYi9taWIuYwogICAsIHNubXBsaWIvbXRfc3VwcG9ydC5jICwgc25tcGxpYi9vaWRfYXJyYXkuYyAsCiAgIHNubXBsaWIvb2lkX3N0YXNoLmMgLCBzbm1wbGliL3BhcnNlLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3NjYXBpLmMgLAogICBzbm1wbGliL3NubXAtdGMuYyAsIHNubXBsaWIvc25tcC5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwogICAsIHNubXBsaWIvc25tcElQWERvbWFpbi5jICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wbGliL3NubXBVRFBEb21haW4uYwogICAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcFVuaXhEb21haW4uYyAsIHNubXBsaWIvc25tcF9hbGFybS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi9zbm1wX2F1dGguYyAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwKICAgc25tcGxpYi9zbm1wX2VudW0uYyAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wX3NlY21vZC5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwgc25tcGxpYi9zbm1wX3ZlcnNpb24uYyAsCiAgIHNubXBsaWIvc25tcGtzbS5jICwgc25tcGxpYi9zbm1wdXNtLmMgLCBzbm1wbGliL3NubXB2My5jCiAgICwgc25tcGxpYi9zeXN0ZW0uYyAsIHNubXBsaWIvdG9vbHMuYyAsCiAgIHNubXBsaWIvdmFjbS5jOgoKICAgU2VwYXJhdGUgb3V0IHRvcC1sZXZlbCAicHVibGljIEFQSSIgbGlicmFyeSBoZWFkZXIgZmlsZXMgZnJvbSB0aGUgImludGVybmFsIgogICBsaWJyYXJ5IGhlYWRlciBmaWxlcy4gIFRoZXNlIGFyZSBzdGlsbCBhdmFpbGFibGUgZm9yIHVzZSBieSBhcHBsaWNhdGlvbgogICBkZXZlbG9wZXJzLCBidXQgdGhpcyBzcGxpdCBtYWtlcyBpdCBjbGVhcmVyIHdoYXQgbWF5IGNoYW5nZSBpbiB0aGUgZnV0dXJlCiAgIGFuZCB3aGF0IGNhbiBiZSByZWxpZWQgdXBvbiB0byBiZSBzdGFibGUuCiAgIAoyMDAyLTAyLTE0IDA0OjQxICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmluaXRpb25zLmggLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluICwKICAgaW5jbHVkZS9uZXQtc25tcC9vdXRwdXRfYXBpLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wdjNfYXBpLmggLCBzbm1wbGliL2FzbjEuYyAsCiAgIHNubXBsaWIvY2FsbGJhY2suYyAsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5jICwKICAgc25tcGxpYi9pbnQ2NC5jICwgc25tcGxpYi9rZXl0b29scy5jICwKICAgc25tcGxpYi9sY2RfdGltZS5jICwgc25tcGxpYi9tZDUuYyAsIHNubXBsaWIvbWliLmMKICAgLCBzbm1wbGliL29pZF9zdGFzaC5jICwgc25tcGxpYi9wYXJzZS5jICwKICAgc25tcGxpYi9yZWFkX2NvbmZpZy5jICwgc25tcGxpYi9zY2FwaS5jICwKICAgc25tcGxpYi9zbm1wLXRjLmMgLCBzbm1wbGliL3NubXAuYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBJUFhEb21haW4uYyAsIHNubXBsaWIvc25tcFRDUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMgLAogICBzbm1wbGliL3NubXBVbml4RG9tYWluLmMgLCBzbm1wbGliL3NubXBfYWxhcm0uYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hdXRoLmMgLAogICBzbm1wbGliL3NubXBfY2xpZW50LmMgLCBzbm1wbGliL3NubXBfZGVidWcuYyAsCiAgIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3NlY21vZC5jICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwKICAgc25tcGxpYi9zbm1wa3NtLmMgLCBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHYzLmMKICAgLCBzbm1wbGliL3N5c3RlbS5jICwgc25tcGxpYi90b29scy5jICwKICAgc25tcGxpYi92YWNtLmM6CgogICBGaXJzdCBtb3ZlcyB0b3dhcmRzIHVzaW5nIHRoZSAicHVibGljIiBBUEkgaGVhZGVyIGZpbGVzIGluIHRoZSBsaWJyYXJ5CiAgIGNvZGUgYXMgd2VsbCAoY29uY2VudHJhdGluZyBvbiBvdXRwdXQvY29uZmlnL3V0aWxpdHkgaGVhZGVyIGZpbGVzKS4KICAgCjIwMDItMDItMTQgMDM6MTcgIGR0czEyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIENsb3NlIGEgZGFuZ2xpbmcgImlmIiBibG9jay4gICAob29wcyEpCiAgIAoyMDAyLTAyLTE0IDAxOjQ3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0LzogaWYuYyAoVjQtMi1wYXRjaGVzLjQpLCBpZi5jOgoKICAgQ2hlY2sgZm9yIHJ1bm5pbmcgb2ZmIHRoZSBlbmQgb2YgSS9GIHRhYmxlIChwYXRjaCBmcm9tIFJlZEhhdCkKICAgCjIwMDItMDItMTQgMDE6NDMgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICBMYXRlc3QgUmVkSGF0IHJwbS1yZWxhdGVkIHBhdGNoCiAgIAoyMDAyLTAyLTE0IDAxOjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBBZG9wdCBSZWRIYXQncyBjb25maWd1cmUgdGVzdGluZyBmb3IgUlBNIGxpYnJhcmllcwogICAKMjAwMi0wMi0xMyAwODozOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBNYWtlIEpvaG4gdHJ1c3QgaGlzIGNvZGUKICAgCjIwMDItMDItMTMgMDg6MzQgIGpicG4KCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICAgIC0gdHJhbnNwb3J0IGZpeGVzICh1bnRlc3RlZCwgc3RpbGwgI2lmIDApCiAgIAoyMDAyLTAyLTEzIDA4OjAzICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG1hcmsgc29tZSBKb2huLXRvLWRvLXNlY3Rpb25zCiAgIAoyMDAyLTAyLTEzIDA3OjU3ICBkdHMxMgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL2RlZmF1bHRfc3RvcmUuaCAsIG1hbi9zbm1wY21kLjEuZGVmICwKICAgc25tcGxpYi9taWIuYzoKCiAgIFN3aXRjaCB0byB1c2luZyAtT1Mgc3R5bGUgb3V0cHV0IGJ5IGRlZmF1bHQsIGFuZCBkcm9wIHRoZSByZXF1aXJlbWVudAogICBmb3IgZnVsbCBPSURzIHRvIHN0YXJ0IHdpdGggJy4nLCBwbHVzIGNvbW1hbmQtbGluZSBvcHRpb25zIHRvIHJlc3RvcmUKICAgdGhlIG9yaWdpbmFsIFVDRC1zdHlsZSBiZWhhdmlvdXIuCiAgIAoyMDAyLTAyLTEzIDA3OjM2ICBkdHMxMgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgQXBwbHkgSm9obidzIGZpeCBmb3IgYnVncyAjNDg5MzM2IGFuZCAjNTA4MTQ2IChkdXBsaWNhdGUgY29sdW1ucyBhbmQKICAgY29sdW1ucyBpbiB3cm9uZyBvcmRlcikgdG8gdGhlIG1haW4gYnJhbmNoIGFzIHdlbGwuCiAgIAoyMDAyLTAyLTEyIDE2OjQwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICBjb25zdCBjaGFuZ2VzLgogICAKMjAwMi0wMi0xMiAxNjozOSAgaGFyZGFrZXIKCiAgICogcGVybC86IC5jdnNpZ25vcmUgLCBBU04vLmN2c2lnbm9yZSAsIGFnZW50Ly5jdnNpZ25vcmUKICAgLCBkZWZhdWx0X3N0b3JlLy5jdnNpZ25vcmU6CgogICBhZGQgLmN2c2lnbm9yZSBmaWxlLgogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9uZXQtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgYWRkIGFnZW50L2FnZW50X2hhbmRsZXIuaAogICAKMjAwMi0wMi0xMiAxNjozOCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wX2NsaWVudC5oOgoKICAgY29uc3QgYWRkaXRpb25zLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgQWRkIHN0cmluZy5oCiAgIAoyMDAyLTAyLTEyIDE2OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBhZGQgaGVhZGVyLgogICAKMjAwMi0wMi0xMiAxNjozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jOgoKICAgZml4ZXMgdG8gcmVlbmFibGUgZGlzbWFuIGV2ZW50IHN0dWZmIGZvciA1LjAgY29kZS4gIE5vdCBkb25lIHRoZQogICAicmlnaHQiIHdheSwgYnV0IGl0IHdvcmtzLgogICAKMjAwMi0wMi0xMiAxNjozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAtIC1XYWxsIGZpeGVzCiAgIAoyMDAyLTAyLTEyIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmM6CgogICAtIGFkZCBzdGRsaWIuaAogICAtIHJlbW92ZSB1bnVzZWQgdmFyaWFibGUuCiAgIAoyMDAyLTAyLTEyIDE2OjM1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgbm8gbG9uZ2VyIHVzZWQgImR1bXBfdmFyIiByb3V0aW5lLgogICAKMjAwMi0wMi0xMiAxNjozNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmg6CgogICBjb25zdCBzcGVjaWZpYyBjaGFuZ2VzLgogICAKMjAwMi0wMi0xMiAxNjozNCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIGFkZGVkIG5ldyBwZXJsIHNwZWNpZmljIGZlYXR1cmVzLgogICAKMjAwMi0wMi0xMiAxNjozNCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW46CgogICAuUEhOT1kgbW9kcwogICAKMjAwMi0wMi0xMiAwNzoyMiAgZHRzMTIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kICwgYXBwcy9NYWtlZmlsZS5kZXBlbmQgLAogICBhcHBzL3NubXB0cmFuc2xhdGUuYyAsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbG9nZ2luZ19hcGkuaCAsIGluY2x1ZGUvbmV0LXNubXAvb3V0cHV0X2FwaS5oOgoKICAgUmVuYW1lIHRoZSBsb2dnaW5nICYgcmVsYXRlZCBvdXRwdXQgQVBJIGhlYWRlciBmaWxlLCB0byBiZXR0ZXIKICAgcmVmbGVjdCB0aGUgc2NvcGUgb2YgdGhpcyBBUEkuICAoQXMgc3VnZ2VzdGVkIGJ5IFdlcyAmIEpvaG4pCiAgIAoyMDAyLTAyLTEyIDA3OjIxICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBhbWVuZCBmaXggdG8gYnVnICM1MTYzODkgKHVjZC1zbm1wIDQuMi4zIGxpYndyYXAgc3VwcG9ydCBicm9rZW4pIHRvCiAgICAgICBhY3R1YWxseSBhZGQgLWxuc2wgdG8gbGluayBwYXJhbWV0ZXJzIQogICAKMjAwMi0wMi0xMiAwNTozOSAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICAgIC0gZml4IGJ1ZyAjNTE2Mzg5ICh1Y2Qtc25tcCA0LjIuMyBsaWJ3cmFwIHN1cHBvcnQgYnJva2VuKSAtLSBVU0VfTElCV1JBUAogICAgICAgd2FzIG5vdCBiZWluZyAjZGVmaW5lZCBpbiB0aGUgY2FzZSB3aGVyZSAtbG5zbCBpcyBuZWVkZWQgaW4gYWRkaXRpb24KICAgICAgIHRvIC1sd3JhcC4KICAgCjIwMDItMDItMTEgMTU6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgbGliIGRlcGVuZGVuY3kgZml4IGZvciBzbm1wZCB0YXJnZXQKICAgCjIwMDItMDItMTEgMDg6MjkgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvY211X2NvbXBhdC5oICwgaW5jbHVkZS9uZXQtc25tcC9taWIuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbWliX2FwaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9wYXJzZS5oICwgaW5jbHVkZS9uZXQtc25tcC9zZXNzaW9uX2FwaS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC91Y2RfY29tcGF0LmggLCBzbm1wbGliL2NtdV9jb21wYXQuYyAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL21pYi5jICwgc25tcGxpYi9wYXJzZS5jCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jICwgc25tcGxpYi91Y2RfY29tcGF0LmM6CgogICBFeHRyYWN0IENNVV9DT01QQVRBQklMSVRZIGNvZGUsIGFuZCBleHBsaWNpdGx5IGRlcHJlY2F0ZWQgVUNEIGNvZGUgaW50byBzZXBhcmF0ZSBmaWxlcy4KICAgCjIwMDItMDItMTEgMDg6MjMgIGR0czEyCgogICAqIHNubXBsaWIvOiBzbm1wX3BhcnNlX2FyZ3MuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wX3BhcnNlX2FyZ3MuYzoKCiAgIFVzZSB0aGUgJ2RzX3NldF94eHgnIGxpYnJhcnkgcm91dGluZXMsIHJhdGhlciB0aGFuIHRoZSBvbGQgJ3NubXBfc2V0X3h4eCcgY2FsbHMKICAgCjIwMDItMDItMTEgMDQ6NDUgIGpicG4KCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmICwgc25tcF9jb25maWcuNS5kZWYgLAogICBzbm1wdHJhcGQuY29uZi41LmRlZjoKCiAgIG1pbm9yIHNwZWxsaW5nIHR3ZWFrcwogICAKMjAwMi0wMi0xMSAwNDoyNyAgamJwbgoKICAgKiBtYW4vOiBNYWtlZmlsZS5pbiAsIGRlZmF1bHRfc3RvcmUuMy50b3AgLCBtaWJfYXBpLjMKICAgLCBtaWJfYXBpLjMuZGVmICwgc25tcF9hZ2VudF9hcGkuMyAsCiAgIHNubXBfYWdlbnRfYXBpLjMuZGVmICwgc25tcF9hbGFybS4zICwgc25tcF9hbGFybS4zLmRlZgogICAsIHNubXBfYXBpLjMgLCBzbm1wX2FwaS4zLmRlZiAsIHNubXBfc2Vzc19hcGkuMwogICAsIHNubXBfc2Vzc19hcGkuMy5kZWYgLCBzbm1wX3RyYXBfYXBpLjMgLAogICBzbm1wX3RyYXBfYXBpLjMuZGVmICwgdmFyaWFibGVzLjUgLCB2YXJpYWJsZXMuNS5kZWY6CgogICAgIC0gZ2VuZXJhdGUgdGhlIHJlc3Qgb2YgdGhlIG1hbnVhbCBwYWdlcyAodG8gZ2V0IHZlcnNpb24gaW4gZm9vdGVyKQogICAKMjAwMi0wMi0wOCAxNTo1NiAgaGFyZGFrZXIKCiAgICogd2luMzIvOiBjb25maWcuaCAsIG1pYl9tb2R1bGVfY29uZmlnLmggLAogICBtaWJfbW9kdWxlX2luaXRzLmggLCBsaWJzbm1wL2xpYnNubXAuZHNwICwKICAgbGlic25tcF9kbGwvbGlic25tcC5kZWYgLCBsaWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AgLAogICBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwICwgc25tcGQvc25tcGQuZHNwOgoKICAgd2luMzIgc3BlY2lmaWMgcG9ydGlvbnMgb2YgcGF0Y2ggNTAzMjU2CiAgIAoyMDAyLTAyLTA4IDE1OjUzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9saWJoZWxwZXJzL2xpYmhlbHBlcnMuZHNwOgoKICAgcGF0Y2gjNTAzMjU2OiBoZWxwZXJzIGxpYnJhcnkgZGVmaW5pdGlvbiBmb3Igd2luMzIKICAgCjIwMDItMDItMDggMDk6MDggIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gbWlub3IgZm9ybWF0IHR3ZWFrYWdlCiAgIAoyMDAyLTAyLTA4IDA4OjIyICBkdHMxMgoKICAgKiBtYW4vOiBtaWJfYXBpLjMgLCBzbm1wX2FnZW50X2FwaS4zICwgc25tcF9hbGFybS4zCiAgICwgc25tcF9hcGkuMyAsIHNubXBfc2Vzc19hcGkuMyAsIHNubXBfdHJhcF9hcGkuMzoKCiAgIFJlZmVyZW5jZSB0aGUgbmV3IGhlYWRlci1maWxlcyBpbiBzZWN0aW9uIDMgbWFuIHBhZ2Ugc3lub3BzZXMuCiAgIAoyMDAyLTAyLTA4IDA3OjUwICBqYnBuCgogICAqIG1hbi86IG1pYl9hcGkuMyAsIHJlYWRfY29uZmlnLjMuZGVmICwgc25tcF9hZ2VudF9hcGkuMwogICAsIHNubXBfY29uZmlnLjUuZGVmICwgc25tcF90cmFwX2FwaS4zICwKICAgc25tcGNtZC4xLmRlZiAsIHNubXBjb25mLjEuZGVmICwgc25tcGQuY29uZi41LmRlZiAsCiAgIHZhcmlhYmxlcy41OgoKICAgICAtIG1vcmUgbWlub3IgdHdlYWtzICh1Y2Qtc25tcCAtPiBOZXQtU05NUCBldGMuKQogICAKMjAwMi0wMi0wOCAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuZGVwZW5kOgoKICAgcmVtb3ZlIGxvY2FsIG1vZHVsZXMgZnJvbSBkZXBlbmRlbmN5IGxpc3QKICAgCjIwMDItMDItMDggMDc6NDUgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgYWdlbnRfaW5kZXguYyAsCiAgIGFnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudF9yZWdpc3RyeS5jICwgYWdlbnRfdHJhcC5jCiAgICwgYXV0b19ubGlzdC5jICwga2VybmVsLmMgLCBtaWJfbW9kdWxlcy5jICwKICAgc25tcF9hZ2VudC5jICwgc25tcF92YXJzLmMgLCBzbm1wZC5jICwKICAgaGVscGVycy9idWxrX3RvX25leHQuYyAsIGhlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgaGVscGVycy9pbnN0YW5jZS5jICwgaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgaGVscGVycy9udWxsLmMgLCBoZWxwZXJzL29sZF9hcGkuYyAsIGhlbHBlcnMvcmVhZF9vbmx5LmMKICAgLCBoZWxwZXJzL3NlcmlhbGl6ZS5jICwgaGVscGVycy90YWJsZS5jICwKICAgaGVscGVycy90YWJsZV9hcnJheS5jICwgaGVscGVycy90YWJsZV9kYXRhLmMgLAogICBoZWxwZXJzL3RhYmxlX2RhdGFzZXQuYyAsIGhlbHBlcnMvdGFibGVfaXRlcmF0b3IuYyAsCiAgIG1pYmdyb3VwL2hlYWRlcl9jb21wbGV4LmMgLCBtaWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLAogICBtaWJncm91cC90ZXN0ZGVsYXllZC5jICwgbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYyAsIG1pYmdyb3VwL1Jtb24vYWd1dGlsLmMgLAogICBtaWJncm91cC9SbW9uL2FsYXJtLmMgLCBtaWJncm91cC9SbW9uL2V2ZW50LmMgLAogICBtaWJncm91cC9SbW9uL2hpc3RvcnkuYyAsIG1pYmdyb3VwL1Jtb24vcm93cy5jICwKICAgbWliZ3JvdXAvUm1vbi9zdGF0aXN0aWNzLmMgLAogICBtaWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIG1pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLCBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMKICAgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLAogICBtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMgLAogICBtaWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsIG1pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsIG1pYmdyb3VwL2hvc3QvaHJfc3dydW4uYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBtaWJncm91cC9taWJJSS9hdC5jCiAgICwgbWliZ3JvdXAvbWliSUkvaWNtcC5jICwgbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICwgbWliZ3JvdXAvbWliSUkvaXAuYyAsIG1pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgbWliZ3JvdXAvbWliSUkvaXB2Ni5jICwgbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmMgLAogICBtaWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuYyAsIG1pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMKICAgLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jICwKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICwgbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvdWRwLmMgLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIG1pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICwgbWliZ3JvdXAvbWlzYy9kbG1vZC5jICwgbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgLCBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jICwKICAgbWliZ3JvdXAvc211eC9zbXV4LmMgLCBtaWJncm91cC9zbXV4L3NubXBfYmdwLmMgLAogICBtaWJncm91cC9zbXV4L3NubXBfb3NwZi5jICwgbWliZ3JvdXAvc211eC9zbm1wX3JpcDIuYyAsCiAgIG1pYmdyb3VwL3NubXB2My9zbm1wRW5naW5lLmMgLCBtaWJncm91cC9zbm1wdjMvc25tcE1QRFN0YXRzLmMKICAgLCBtaWJncm91cC9zbm1wdjMvdXNtU3RhdHMuYyAsCiAgIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMgLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jCiAgICwgbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jICwgbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMgLCBtaWJncm91cC91Y2Qtc25tcC9kbG1vZC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL2xtU2Vuc29ycy5jICwgbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwgbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYyAsIG1pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgICwgbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYwogICAsIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jICwgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMKICAgLCBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBVc2UgdGhlIG5ldyAnbmV0LXNubXAtaW5jbHVkZXMnIHNpbmdsZS1pbmNsdWRlIGhlYWRlciBmaWxlcywKICAgaW4gcGxhY2Ugb2YgdGhlICh1bmluc3RhbGxlZCkgJ21pYmluY2wuaCcuCiAgICAgV2hlZWVlZS4uLi4uLgogICAKMjAwMi0wMi0wOCAwNzoxNyAgamJwbgoKICAgKiBtYW4vOiBzbm1wLmNvbmYuNS5kZWYgLCBzbm1wX2FnZW50X2FwaS4zICwKICAgc25tcF9hbGFybS4zICwgc25tcF9hcGkuMyAsIHNubXBfY29uZmlnLjUuZGVmICwKICAgc25tcF9zZXNzX2FwaS4zICwgc25tcGQuMS5kZWYgLCBzbm1wZC5jb25mLjUuZGVmICwKICAgc25tcHRyYXBkLmNvbmYuNS5kZWY6CgogICAgIC0gc29tZSBlZGl0aW5nIHRvIG1ha2Ugc3R5bGUgY29uc2lzdGVudCwgYWRkIHNvbWUgbWlzc2luZyBvcHRpb25zLAogICAgICAgY2hhbmdlIHVjZC1zbm1wIHRvIE5ldC1TTk1QIGFuZCB0aGluZ3MgbGlrZSB0aGF0LgogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vTWFrZWZpbGUuaW46CgogICAgIC0gZ2VuZXJhdGUgbWFuIHBhZ2VzIGF0IGNvbXBpbGUgdGltZQogICAKMjAwMi0wMi0wOCAwNzoxNCAgamJwbgoKICAgKiBtYW4vOiBzbm1wYnVsa2dldC4xICwgc25tcGJ1bGt3YWxrLjEgLAogICBzbm1wYnVsa2dldC4xLmRlZiAsIHNubXBidWxrd2Fsay4xLmRlZiAsIHNubXBjbWQuMQogICAsIHNubXBjbWQuMS5kZWYgLCBzbm1wY29uZi4xICwgc25tcGNvbmYuMS5kZWYKICAgLCBzbm1wZ2V0LjEgLCBzbm1wZ2V0LjEuZGVmICwgc25tcGdldG5leHQuMSAsCiAgIHNubXBnZXRuZXh0LjEuZGVmICwgc25tcHNldC4xICwgc25tcHNldC4xLmRlZiAsCiAgIHNubXBzdGF0dXMuMSAsIHNubXBzdGF0dXMuMS5kZWYgLCBzbm1wdGFibGUuMSAsCiAgIHNubXB0YWJsZS4xLmRlZiAsIHNubXB0ZXN0LjEgLCBzbm1wdGVzdC4xLmRlZiAsCiAgIHNubXB0cmFuc2xhdGUuMSAsIHNubXB0cmFuc2xhdGUuMS5kZWYgLCBzbm1wdHJhcC4xCiAgICwgc25tcHRyYXAuMS5kZWYgLCBzbm1wdXNtLjEgLCBzbm1wdXNtLjEuZGVmICwKICAgc25tcHdhbGsuMSAsIHNubXB3YWxrLjEuZGVmICwgc25tcHRyYXBkLjggLAogICBzbm1wdHJhcGQuOC5kZWY6CgogICAgIC0gcmVuYW1lIG1hbiBwYWdlcyB3aGljaCBhcmUgbm93IGdlbmVyYXRlZCBhdCBjb21waWxlIHRpbWUgaW4gb3JkZXIKICAgICAgIHRvIHBpY2sgdXAgdGhlIHZlcnNpb24gKHdoaWNoIGdldHMgcHV0IGluIHRoZSBmb290ZXIpLgogICAKICAgICAtIGFsc28gc29tZSBlZGl0aW5nIHRvIG1ha2Ugc3R5bGUgY29uc2lzdGVudCwgYWRkIHNvbWUgbWlzc2luZyBvcHRpb25zLAogICAgICAgY2hhbmdlIHVjZC1zbm1wIHRvIE5ldC1TTk1QIGFuZCB0aGluZ3MgbGlrZSB0aGF0LgogICAKMjAwMi0wMi0wOCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBtaWJKSi5oICwgbWliSkovaWNtcC5jICwgbWliSkovaWNtcC5oCiAgICwgbWliSkovaWZfZmllbGRzLmggLCBtaWJKSi9pbnRlcmZhY2VzLmMgLAogICBtaWJKSi9pbnRlcmZhY2VzLmggLCBtaWJKSi9pcC5jICwgbWliSkovaXAuaCAsCiAgIG1pYkpKL2lwQWRkci5jICwgbWliSkovaXBBZGRyLmggLCBtaWJKSi9pcE1lZGlhLmMgLAogICBtaWJKSi9pcE1lZGlhLmggLCBtaWJKSi9pcFJvdXRlLmMgLCBtaWJKSi9pcFJvdXRlLmgKICAgLCBtaWJKSi9pcHY2LmMgLCBtaWJKSi9pcHY2LmggLCBtaWJKSi9rZXJuZWxfaHB1eC5jCiAgICwgbWliSkova2VybmVsX2hwdXguaCAsIG1pYkpKL2tlcm5lbF9saW51eC5jICwKICAgbWliSkova2VybmVsX2xpbnV4LmggLCBtaWJKSi9zbm1wX21pYi5jICwKICAgbWliSkovc25tcF9taWIuaCAsIG1pYkpKL3N5c09SVGFibGUuYyAsCiAgIG1pYkpKL3N5c09SVGFibGUuaCAsIG1pYkpKL3N5c3RlbV9taWIuYyAsCiAgIG1pYkpKL3N5c3RlbV9taWIuaCAsIG1pYkpKL3RjcC5jICwgbWliSkovdGNwLmggLAogICBtaWJKSi90Y3BUYWJsZS5jICwgbWliSkovdGNwVGFibGUuaCAsIG1pYkpKL3VkcC5jICwKICAgbWliSkovdWRwLmggLCBtaWJKSi91ZHBUYWJsZS5jICwgbWliSkovdWRwVGFibGUuaCAsCiAgIG1pYkpKL3ZhY21fdmFycy5jICwgbWliSkovdmFjbV92YXJzLmg6CgogICBSZW1vdmUgdGhlIGF0dGVtcHRlZCAnbWliSUknIHJlLXdyaXRlLgogICBJZiB3ZSB3YW50IHRvIHRpZHkgdXAgbWliSUksIGl0IG1ha2VzIG1vcmUgc2Vuc2UgdG8gdXNlIHRoZSBuZXcgYWdlbnQgQVBJcy4KICAgCjIwMDItMDItMDggMDY6NDUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBuZXQtc25tcC1pbmNsdWRlcy5oICwKICAgYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIEJyaW5nIHNpbmdsZS1pbmNsdWRlIGhlYWRlciBmaWxlcyBjbG9zZXIgaW4gbGluZSB3aXRoIHRoZSBleGlzdGluZyAibWliaW5jbC5oIiBmaWxlCiAgIAoyMDAyLTAyLTA4IDA2OjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c09SVGFibGUuaCAoVjQtMi1wYXRjaGVzLjEpLAogICBzeXNPUlRhYmxlLmg6CgogICBFbnN1cmUgdGhlIG51bGwgdmVyc2lvbnMgb2YgdGhlIHR3byBSRUdJU1RFUiBtYWNyb3Mgc3dhbGxvdyB0aGVpciBwYXJhbWV0ZXJzLgogICAKMjAwMi0wMi0wOCAwNDozNiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW1wbGVtZW50IHRoZSBtaXNzaW5nIG91dGdvaW5nIGVycm9yIHN0YXRpc3RpY3MgY291bnRlcnMKICAgKHBhdGNoICM1MTAxOTQgZnJvbSBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTA4IDAyOjQyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC86IGhvc3QvaHJfc3RvcmFnZS5jLCB1Y2Qtc25tcC9tZW1vcnkuYwogICAoVjQtMi1wYXRjaGVzLls2LDNdKSwgaG9zdC9ocl9zdG9yYWdlLmMgLCB1Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIEFkZGVkIHN1cHBvcnQgZm9yIG1lbW9yeSBhbmQgc3dhcCBlbnRyaWVzIGluIGhyU3RvcmFnZVRhYmxlIGZvciBTb2xhcmlzCiAgIChmcm9tIHBhdGNoICM1MDU0OTggLSB0aGFua3MgdG8gSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyKQogICAKMjAwMi0wMi0wOCAwMjowNyAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIENvbnNvbGlkYXRlIGlkZW50aWNhbCBNSUIgb2JqZWN0IGVudHJpZXMgKFdJTjMyL25vbi1XSU4zMikKICAgCjIwMDItMDItMDggMDA6NTAgIGpicG4KCiAgICogbWFuL1JFQURNRToKCiAgICAgLSByZW1vdmUgY2hyb25pY2FsbHkgZGF0ZWQgdW5oZWxwZnVsIFJFQURNRQogICAKMjAwMi0wMi0wNyAxMzozMyAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBNYWtlZmlsZS5ydWxlcyAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIG1ha2VmaWxlaW5kZXBlbmQucGwgLAogICBhZ2VudC9NYWtlZmlsZS5kZXBlbmQgLCBhZ2VudC9NYWtlZmlsZS5pbiAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L21pYl9tb2R1bGVzLmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5kZXBlbmQgLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluCiAgICwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuZGVwZW5kICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9taWJpbmNsLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLCBhcHBzL01ha2VmaWxlLmRlcGVuZAogICAsIGFwcHMvTWFrZWZpbGUuaW4gLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmRlcGVuZAogICAsIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4gLCBsb2NhbC9NYWtlZmlsZS5pbgogICAsIG1hbi9NYWtlZmlsZS5pbiAsIG1pYnMvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL01ha2VmaWxlLmRlcGVuZCAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICByZW1ha2UgbWFrZSdzIE1ha2VmaWxlJ3MgdG8gbWFrZSBiZXR0ZXIgbWFraW5nCiAgIAoyMDAyLTAyLTA3IDEzOjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvTWFrZWZpbGUuUEw6CgogICBjaGVjayBsb2NhbCBwYXRoZXMKICAgCjIwMDItMDItMDcgMTI6NTQgIGR0czEyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIEVuc3VyZSBhZ2VudCByZXR1cm5zIHRoZSBjb3JyZWN0IGVycm9yIGNvZGVzIGZvciBVTkRPIGFuZCBDT01NSVQgZmFpbHVyZXMuCiAgIAoyMDAyLTAyLTA3IDExOjE4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvOiBNYWtlZmlsZS5QTCAsIFNOTVAueHMgLCB0L3N0YXJ0YWdlbnQucGw6CgogICBhdHRlbXB0IGF0IHBvcnRpbmcgSm9lJ3MgU05NUCBtb2R1bGUgdG8gbmV0LXNubXAuCiAgIEl0IGNvbXBpbGVzLCBidXQgb25seSBzb21lIG9mIHRoZSB0ZXN0cyBzdWNjZWVkLgogICAKMjAwMi0wMi0wNyAxMDowOSAgamJwbgoKICAgKiBtYW4vOiBkZWZhdWx0X3N0b3JlLjMudG9wICwgbWliX2FwaS4zICwKICAgcmVhZF9jb25maWcuMy5kZWYgLCBzbm1wLmNvbmYuNS5kZWYgLCBzbm1wX2FnZW50X2FwaS4zCiAgICwgc25tcF9hbGFybS4zICwgc25tcF9hcGkuMyAsIHNubXBfY29uZmlnLjUuZGVmCiAgICwgc25tcF9zZXNzX2FwaS4zICwgc25tcF90cmFwX2FwaS4zICwgc25tcGJ1bGtnZXQuMQogICAsIHNubXBidWxrd2Fsay4xICwgc25tcGNvbmYuMSAsIHNubXBkLmNvbmYuNS5kZWYKICAgLCBzbm1wZGVsdGEuMSAsIHNubXBkZi4xICwgc25tcGdldC4xICwKICAgc25tcGdldG5leHQuMSAsIHNubXBuZXRzdGF0LjEgLCBzbm1wc2V0LjEgLAogICBzbm1wc3RhdHVzLjEgLCBzbm1wdGFibGUuMSAsIHNubXB0ZXN0LjEgLAogICBzbm1wdHJhbnNsYXRlLjEgLCBzbm1wdHJhcC4xICwgc25tcHRyYXBkLmNvbmYuNS5kZWYKICAgLCBzbm1wdXNtLjEgLCBzbm1wd2Fsay4xICwgdmFyaWFibGVzLjU6CgogICAgIC0gYWRkIE5ldC1TTk1QIGluIGhlYWRlciBvZiBhbGwgbWFuIHBhZ2VzCiAgIAoyMDAyLTAyLTA3IDA5OjUyICBqYnBuCgogICAqIG1hbi9zbm1wY21kLjE6CgogICAgIC0gdXBkYXRlIHN0eWxlIHRvIG1hdGNoIHNubXBkIGFuZCBzbm1wdHJhcGQgbWFuIHBhZ2VzCiAgIAoyMDAyLTAyLTA3IDA4OjE1ICBqYnBuCgogICAqIG1hbi9zbm1wdHJhcGQuODoKCiAgICAgLSBmaXggc3BlZWxpbmcgbWlzdGFrZQogICAKMjAwMi0wMi0wNyAwODowMCAgamJwbgoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICAgIC0gYnJpbmcgdXAgdG8gZGF0ZSB3aXRoIHNubXB0cmFwZAogICAKMjAwMi0wMi0wNyAwNzoyOCAgZHRzMTIKCiAgICogUkVBRE1FLmhwdXgxMSAsIGFjY29uZmlnLmggLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwQWRkci5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9ocHV4LmggLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBTdXBwb3J0IGZvciBIUC1VWCAxMSwgY291cnRlc3kgb2YgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLgogICAKMjAwMi0wMi0wNyAwNjozMCAgamJwbgoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICAgIC0gYWxwaGFiZXRpc2Ugb3B0aW9ucwogICAKICAgICAtIGJyaW5nIG1hbiBwYWdlIGluIGxpbmUgd2l0aCBuZXcgcG9zaXRpb25hbCBhcmd1bWVudHMgbGlzdGVuaW5nCiAgICAgICBhZGRyZXNzIHNwZWNpZmljYXRpb24gYW5kIGFkZCBzZWN0aW9uIGRlc2NyaWJpbmcgdGhhdAogICAKICAgICAtIHB1dCBOZXQtU05NUCBpbiBoZWFkZXIKICAgCjIwMDItMDItMDYgMTA6MDYgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zY2FwaS5oOgoKICAgICAtIGZpeCBidWcgbm90ZWQgYnkgTmllbHMKICAgCjIwMDItMDItMDYgMDk6MjUgIGpicG4KCiAgICogYXBwcy86IGVuY29kZV9rZXljaGFuZ2UuYyAsIHNubXB1c20uYzoKCiAgICAgLSBtaW5vciB0d2Vha3MgZHVlIHRvIGNoYW5nZSBpbiBkZWZpbml0aW9uIG9mIFVTTSBPSURzLgogICAKMjAwMi0wMi0wNiAwOToxNyAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcHYzLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3RyYW5zZm9ybV9vaWRzLmggLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwgc25tcGxpYi9zbm1wdXNtLmMgLAogICBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIG1vdmUgVVNNIE9JRCBkZWZpbml0aW9ucyBpbnRvIHNubXB1c20uYywgbWFrZSB0aGVtIGNvbnN0CiAgIAogICAgIC0gY29uc2VxdWVudCBpbmNyZWFzZSBpbiBjb25zdC1uZXNzIGluIHNvbWUgZnVuY3Rpb24gcHJvdG90eXBlcwogICAKMjAwMi0wMi0wNiAwOToxMiAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgcmVtb3ZlIGludGVybmFsIG5vdGUgYWJvdXQgdjMgYXBpLCB3aGljaCBzaG91bGQgYmUgcHVibGljCiAgIAoyMDAyLTAyLTA2IDA5OjEyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL3NubXB1c21faW5pdC5oOgoKICAgcmVtb3ZlZCB1bm5lZWRlZCBmaWxlCiAgIAoyMDAyLTAyLTA2IDA5OjA2ICBqYnBuCgogICAqIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaCAsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAogICAsIHNubXBsaWIva2V5dG9vbHMuYyAsIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSBhZGQgY29uc3QtbmVzcyBmb3IgdHJhbnNmb3JtIHR5cGUgYXJncwogICAKMjAwMi0wMi0wNiAwOTowMSAgamJwbgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL21pYi5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2RlYnVnLmgKICAgLCBzbm1wbGliL21pYi5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gYWRkIHNvbWUgY29uc3QtbmVzcyBmb3IgT0lEIGFyZ3MgKG1haW5seSBzbyB0aGF0IGRlYnVnbXNnX29pZCB0YWtlcwogICAgICAgY29uc3QpLgogICAKMjAwMi0wMi0wNiAwODo0NCAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgKICAgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2R5bml4LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZHluaXguaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9keW5peC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2R5bml4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9keW5peC5oICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFN1cHBvcnQgZm9yIER5bml4L1BUWCA0LjQsIGNvdXJ0ZXN5IG9mIFBhdHJpY2sgSGVzcy4KICAgCjIwMDItMDItMDYgMDc6NDEgIGpicG4KCiAgICogaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1ha2UgZmlyc3QgYXJndW1lbnQgb2Ygc25tcF9kdXBfb2JqaWQoKSBjb25zdC4KICAgCiAgICAgLSBiZXR0ZXIgaGFuZGxlIE5VTEwgdmFsdWVzIGluIHNubXBfZHVwX29iamlkKCkuCiAgIAoyMDAyLTAyLTA2IDA3OjA5ICBkdHMxMgoKICAgKiBGQVEgLCBtYW4vc25tcF90cmFwX2FwaS4zOgoKICAgQ2xhcmlmeSB0aGUgYXBwbGljYWJpbGl0eSBvZiAnc25tcF90cmFwX2FwaSgzKScgcm91dGluZXMgdG8gQWdlbnRYIHN1YmFnZW50cy4KICAgCjIwMDItMDItMDYgMDU6NTggIGR0czEyCgogICAqIGFwcHMvOiBlbmNvZGVfa2V5Y2hhbmdlLmMgLCBub3RpZmljYXRpb25fbG9nLmMgLAogICBzbm1wYnVsa2dldC5jICwgc25tcGJ1bGt3YWxrLmMgLCBzbm1wZGVsdGEuYyAsCiAgIHNubXBkZi5jICwgc25tcGdldC5jICwgc25tcGdldG5leHQuYyAsIHNubXBzZXQuYwogICAsIHNubXBzdGF0dXMuYyAsIHNubXB0YWJsZS5jICwgc25tcHRlc3QuYyAsCiAgIHNubXB0cmFuc2xhdGUuYyAsIHNubXB0cmFwLmMgLCBzbm1wdHJhcGQuYyAsCiAgIHNubXB0cmFwZF9oYW5kbGVycy5jICwgc25tcHRyYXBkX2xvZy5jICwgc25tcHVzbS5jCiAgICwgc25tcHZhY20uYyAsIHNubXB3YWxrLmMgLCBzbm1wbmV0c3RhdC9pZi5jCiAgICwgc25tcG5ldHN0YXQvaW5ldC5jICwgc25tcG5ldHN0YXQvaW5ldDYuYyAsCiAgIHNubXBuZXRzdGF0L21haW4uYyAsIHNubXBuZXRzdGF0L3JvdXRlLmM6CgogICBBcHBsaWNhdGlvbnMgYW1lbmRlZCB0byB1c2UgdGhlIG5ldy1zdHlsZSBsaWJyYXJ5IGhlYWRlciBzdHJ1Y3R1cmUuCiAgIChJbiBtb3N0IGNhc2VzLCBzaW1wbHkgaW5jbHVkaW5nIHRoZSBzaW5nbGUgImZ1bGwgQVBJIiBoZWFkZXIgZmlsZSkKICAgCjIwMDItMDItMDYgMDU6NTUgIGR0czEyCgogICAqIGluY2x1ZGUvbmV0LXNubXAvOiBhc24xLmggLCBjb25maWdfYXBpLmggLAogICBkZWZpbml0aW9ucy5oICwgbG9nZ2luZ19hcGkuaCAsIG1pYl9hcGkuaCAsCiAgIG5ldC1zbm1wLWluY2x1ZGVzLmggLCBwZHVfYXBpLmggLCBzZXNzaW9uX2FwaS5oICwKICAgc25tcHYzX2FwaS5oICwgdHlwZXMuaCAsIHV0aWxpdGllcy5oICwgdmFyYmluZF9hcGkuaDoKCiAgIEZyYW1ld29yayBmb3IgbmV3IGxpYnJhcnkgaGVhZGVyIGZpbGUgb3JnYW5pc2F0aW9uLCB3aXRoIGVpZ2h0IG1haW4gZ3JvdXBzCiAgIG9mIEFQSSByb3V0aW5lcy4gIEN1cnJlbnRseSB0aGVzZSBzdGlsbCByZWZlciB0byB0aGUgVUNELXN0eWxlIHN0eWxlIGhlYWRlcgogICBmaWxlcyBmb3IgdGhlIGFjdHVhbCBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCiAgIAoyMDAyLTAyLTA2IDA1OjMxICBqYnBuCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgICAgLSByZXBsYWNlIHVzZSBvZiAkPCB3aXRoIGV4cGxpY2l0IGZpbGVuYW1lLCBzaW5jZSBub24tR05VIG1ha2VzIHNlZW0KICAgICAgIHRvIGJhcmYgb24gaXQKICAgCjIwMDItMDItMDYgMDM6MzEgIGR0czEyCgogICAqIE1ha2VmaWxlLmluOgoKICAgRml4IGluY29ycmVjdCBkaXJlY3Rvcnkgc3BlY2lmaWNhdGlvbiBpbiAnbWFrZSBjbGVhbicKICAgCjIwMDItMDItMDYgMDM6MTggIGR0czEyCgogICAqIGFjY29uZmlnLmggLCBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgUHJvdGVjdCB0aGUgcHJvamVjdCBjb25maWcgZmlsZSBhZ2FpbnN0IG11bHRpcGxlIGluY2x1c2lvbi4KICAgCjIwMDItMDItMDYgMDM6MDcgIGpicG4KCiAgICogYWdlbnQvYXV0b19ubGlzdC5jOgoKICAgICAtIHJlbW92ZSAjaW5jbHVkZSAiLi4vc25tcGxpYi9zeXN0ZW0uaCIgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cyBhbmQKICAgICAgIGlzIGFwcGFyZW50bHkgdW5uZWNlc3NhcnkgYW55d2F5LgogICAKMjAwMi0wMi0wNiAwMjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICIuLi8uLi9zbm1wbGliL3N5c3RlbS5oIiB3aGljaCBubyBsb25nZXIgZXhpc3RzCiAgICAgICBhbmQgaXMgYXBwYXJlbnRseSB1bm5lY2Vzc2FyeSBhbnl3YXkuCiAgIAoyMDAyLTAyLTA1IDExOjQ0ICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HIChWNC0yLXBhdGNoZXMuNyksIENPUFlJTkc6CgogICBjb3B5cmlnaHQgeWVhciB1cGRhdGUgZm9yIE5BSSBhbmQgQ2FtYnJpZGdlCiAgIAoyMDAyLTAyLTA1IDA5OjU0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oLmluOgoKICAgcGVybCBmaXhlcwogICAKMjAwMi0wMi0wNSAwOTo1NCAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50L21pYmdyb3VwL1Jtb24vYWxhcm0uYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FwaS5oCiAgICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtb3ZlIHRoZSBvaWR0cmVlX2NvbXBhcmUgZnVuY3Rpb24gdG8KICAgdGhlIG1haW4gbGlicmFyeS4KICAgCjIwMDItMDItMDUgMDk6NTIgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsIGFnZW50L01ha2VmaWxlLmluOgoKICAgcGVybCBidWlsZCBmaXhlcy4KICAgCjIwMDItMDItMDUgMDc6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgb3Bwcy4gIFJlbW92ZWQgZm9yY2VkIHBlcmwgZW1iZWRkaW5nCiAgIAoyMDAyLTAyLTA0IDE2OjIyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oOgoKICAgdGhpcyBmaWxlIHNob3VsZG4ndCBiZSBjaGVja2VkIGluCiAgIAoyMDAyLTAyLTA0IDE2OjIyICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGFjY29uZmlnLmggLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L3NubXBfcGVybC5jCiAgICwgYWdlbnQvc25tcF9wZXJsLnBsICwgYWdlbnQvc25tcF92YXJzLmM6CgogICAtIFN1cHBvcnQgZm9yIGVtYmVkZGluZyBwZXJsIHN1YnJvdXRpbmVzIGludG8gdGhlIGFnZW50IHRvIGJlIGNhbGxlZAogICAgIGFzIGhhbmRsZXJzLgogICAtIE5ldyBjb25maWd1cmUgb3B0aW9uczoKICAgICAtLXdpdGgtcGVybC1tb2R1bGVzIGF0dGVtcHRzIHRvIGJ1aWxkIGNvbnRhaW5lZCBtb2R1bGVzIChwb29ybHkgY3VycmVudGx5KS4KICAgICAtLWVuYWJsZS1lbWJlZGRlZC1wZXJsIGFjdHVhbGx5IHNwZWNpZmllcyB0byBkbyBwZXJsIGVtYmVkZGluZwogICAgIHdpdGhpbiB0aGUgYWdlbnQuCiAgIAoyMDAyLTAyLTA0IDE2OjE2ICBoYXJkYWtlcgoKICAgKiBwZXJsLzogQVNOL0FTTi5wbSAsIEFTTi9BU04ueHMgLCBBU04vQ2hhbmdlcyAsCiAgIEFTTi9NQU5JRkVTVCAsIEFTTi9NYWtlZmlsZS5QTCAsIEFTTi90ZXN0LnBsICwKICAgYWdlbnQvQ2hhbmdlcyAsIGFnZW50L01BTklGRVNUICwgYWdlbnQvTWFrZWZpbGUuUEwgLAogICBhZ2VudC9hZ2VudC5wbSAsIGFnZW50L2FnZW50LnhzICwgYWdlbnQvdGVzdC5wbCAsCiAgIGFnZW50L3R5cGVtYXAgLCBkZWZhdWx0X3N0b3JlL0NoYW5nZXMgLAogICBkZWZhdWx0X3N0b3JlL01BTklGRVNUICwgZGVmYXVsdF9zdG9yZS9NYWtlZmlsZS5QTCAsCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS5wbSAsCiAgIGRlZmF1bHRfc3RvcmUvZGVmYXVsdF9zdG9yZS54cyAsIGRlZmF1bHRfc3RvcmUvdGVzdC5wbCAsCiAgIGRlZmF1bHRfc3RvcmUvdHlwZW1hcDoKCiAgIEJlZ2lubmluZ3Mgb2YgbmV3IHBlcmwgbW9kdWxlcyBuZWVkZWQgdG8gaW1wbGVtZW50IGFuIFNOTVAgYWdlbnQgKG9yCiAgIGFnZW50eCBzdWJhZ2VudCkgaW5zaWRlIHBlcmwuCiAgICAgLSBub3QgY29tcGxldGUgeWV0LgogICAgIC0gbWF5IGNoYW5nZS4KICAgICAtIGJ1dCB3b3Jrcy4KICAgCjIwMDItMDItMDQgMDQ6MzkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBjb3JyZWN0IHByb2Nlc3NpbmcgZm9yIHRpbWV0aWNrcyB3aGVuIERTX0xJQl9OVU1FUklDX1RJTUVUSUNLUyBpcwogICAgICAgc2V0IChjb3JyZWN0cyBidWcgIzUxMTc5MywgcmVwb3J0ZWQgYnkgQW5vbnltb3VzKS4KICAgCjIwMDItMDItMDEgMDE6NTAgIGR0czEyCgogICAqIEZBUToKCiAgIENsYXJpZnkgdGhlIHByb2NlZHVyZSBmb3IgY29tcGlsaW5nIHdpdGggJ2NjJyByYXRoZXIgdGhhbiAnZ2NjJwogICAKMjAwMi0wMS0zMSAxNDo1OCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1pbmNsdWRlcy5oOgoKICAgcy9zbm1wbGliXC8vLzsKICAgCjIwMDItMDEtMzEgMDY6NTUgIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluICwgYWdlbnQvaGVscGVycy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBtYWtlIGNsZWFuIGFzIHJlcG9ydGVkIGJ5IEJyYWRsZXkgQm96YXJ0aC4KICAgCjIwMDItMDEtMzAgMDg6MDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmM6CgogICBCcmluZyBNSUIgdmFyaWFibGUgdmVyc2lvblRhZyBpbnRvIGxpbmUgd2l0aCB0aGUgbmV3IDxuZXQtc25tcC92ZXJzaW9uLmg+IHVzYWdlCiAgIAoyMDAyLTAxLTI5IDE3OjUzICBoYXJkYWtlcgoKICAgKiB2ZXJzaW9uLmggLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwKICAgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jICwKICAgaW5jbHVkZS9uZXQtc25tcC92ZXJzaW9uLmggLCBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaCAsCiAgIHNubXBsaWIvTWFrZWZpbGUuaW4gLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jICwKICAgc25tcGxpYi9zbm1wX3ZlcnNpb24uYzoKCiAgIE1vdmVkIHZlcnNpb25pbmcgaW5mb3JtYXRpb24gZnJvbSB2ZXJzaW9uLmggdG86CiAgICAgLSBzbm1wbGliL3NubXBfdmVyc2lvbi5jOgogICAgICAgLSBkZWZpbmUgbmV0c25tcF9nZXRfdmVyc2lvbigpOwogICAgICAgLSBjcmVhdGUgYSBjb25zdCBjaGFyICpOZXRTbm1wVmVyc2lvbkluZm8KICAgICAtIGluY2x1ZGUvbmV0LXNubXAvdmVyc2lvbi5oOgogICAgICAgLSBleHRlcm4gdGhlIGFib3ZlIGNoYXIgKgogICAgICAgLSBwcm90b3R5cGUgdGhlIGZ1bmN0aW9uCiAgICAgLSBpbmNsdWRlL3VjZC1zbm1wL3ZlcnNpb24uaDoKICAgICAgIC0gY3JlYXRlIGEgc3RhdGljIHZhcmlhYmxlICh0aGUgb2xkIHdheSkgYW5kIHNldCBpdCB0byBOZXRTbm1wVmVyc2lvbkluZm8KICAgCjIwMDItMDEtMjkgMTY6MDkgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvOiBldmFsX3Rvb2xzLnNoICwgdGVzdHMvVDA0OXNubXB2M2luZm9ybSAsCiAgIHRlc3RzL1QwNTBzbm1wdjN0cmFwICwgdGVzdHMvVDA1MXNubXB2MmN0cmFwICwKICAgdGVzdHMvVDA1MnNubXB2MmNpbmZvcm0gLCB0ZXN0cy9UMDUzYWdlbnR2MXRyYXAgLAogICB0ZXN0cy9UMDU0YWdlbnR2MmN0cmFwICwgdGVzdHMvVDA1NWFnZW50djFtaW50cmFwICwKICAgdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCAsIHRlc3RzL1QwNThhZ2VudGF1dGh0cmFwICwKICAgdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICB0cmFwIHRlc3QgZml4ZXMgc28gdGhlIG1ham9yaXR5IG9mIHRoZSB0ZXN0cyBub3cgd29yay4KICAgCjIwMDItMDEtMjkgMTY6MDggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZG9uJ3QgZ2VuZXJhdGUgdWNkLXNubXAtY29uZmlnLmggYW55IGxvbmdlci4KICAgCjIwMDItMDEtMjkgMTU6MjMgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaC5pbiAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbWFjaGluZS9nZW5lcmljLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9haXguaCAsIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZC5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vYnNkaTMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2JzZGk0LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9jeWd3aW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2Rhcndpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZnJlZWJzZDIuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL2ZyZWVic2QzLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3N5c3RlbS9mcmVlYnNkNC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vZ2VuZXJpYy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaHB1eC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vaXJpeC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vbGludXguaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL21pcHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL25ldGJzZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vb3BlbmJzZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuNy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc29sYXJpczIuOC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0vc3Vub3MuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N2cjUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3N5c3YuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtL3VsdHJpeDQuaDoKCiAgIG1vdmVkIHMvKi5oIGZpbGVzIHRvIGluY2x1ZGUvbmV0LXNubXAvc3lzdGVtLyouaAogICBtb3ZlZCBtL2dlbmVyaWMuaCBmaWxlcyB0byBpbmNsdWRlL25ldC1zbm1wL21hY2hpbmUvZ2VuZXJpYy5oCiAgIAoyMDAyLTAxLTI5IDA5OjI0ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IC1jIGFyZ3VtZW50IHBhcnNpbmcuCiAgIAoyMDAyLTAxLTI5IDA5OjEwICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL2V2YWxfdG9vbHMuc2g6CgogICByZWZlcmVuY2UgaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaCBpbnN0ZWFkIG9mIGp1c3QgY29uZmlnLmgKICAgCjIwMDItMDEtMjkgMDk6MDUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgYXR0ZW1wdCB0byBmaXggdGhlIHVua25vd24gZW5naW5laWQvdW5rbm93biB1c2VyIHByb2JsZW1zIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAyLTAxLTI4IDIxOjExICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICB3aG9vcHMuICBNaXNzZWQgc29tZSAuaCBmaWxlIGNoZWNrcyBpbiBjb25maWd1cmUuICBUaGFua3MgUm9iZXJ0LgogICAKMjAwMi0wMS0yOCAyMTowMyAgaGFyZGFrZXIKCiAgICogbG9jYWwvY29udmVydGNvZGU6CgogICBtaW5vciBmaXguCiAgIAoyMDAyLTAxLTI4IDIxOjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9jb252ZXJ0Y29kZToKCiAgIGFkZGVkIGNvZGUgY29udmVydCBzY3JpcHQgZm9yIHVjZC1zbm1wIC0+IG5ldC1zbm1wIGhlYWRlciBjb252ZXJzaW9uCiAgIAoyMDAyLTAxLTI4IDIwOjU5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLAogICBhcHBzL3NubXBidWxrZ2V0LmMgLCBhcHBzL3NubXBidWxrd2Fsay5jICwKICAgYXBwcy9zbm1wZGVsdGEuYyAsIGFwcHMvc25tcGRmLmMgLCBhcHBzL3NubXBnZXQuYwogICAsIGFwcHMvc25tcGdldG5leHQuYyAsIGFwcHMvc25tcHNldC5jICwKICAgYXBwcy9zbm1wc3RhdHVzLmMgLCBhcHBzL3NubXB0YWJsZS5jICwgYXBwcy9zbm1wdGVzdC5jCiAgICwgYXBwcy9zbm1wdHJhbnNsYXRlLmMgLCBhcHBzL3NubXB0cmFwLmMgLAogICBhcHBzL3NubXB0cmFwZC5jICwgYXBwcy9zbm1wdHJhcGRfaGFuZGxlcnMuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jICwgYXBwcy9zbm1wdXNtLmMgLCBhcHBzL3NubXB2YWNtLmMKICAgLCBhcHBzL3NubXB3YWxrLmMgLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiAgICwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMgLCBhcHBzL3NubXBuZXRzdGF0L21haW4uYwogICAsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyAsIGluY2x1ZGUvbmV0LXNubXAvYXNuMS5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9jYWxsYmFjay5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9kYXRhX2xpc3QuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvZGVmYXVsdF9zdG9yZS5oICwgaW5jbHVkZS9uZXQtc25tcC9nZXRvcHQuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvaW50NjQuaCAsIGluY2x1ZGUvbmV0LXNubXAva2V5dG9vbHMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvbGNkX3RpbWUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbGlic25tcC5oICwgaW5jbHVkZS9uZXQtc25tcC9tZDUuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbWliLmggLCBpbmNsdWRlL25ldC1zbm1wL210X3N1cHBvcnQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL29pZF9hcnJheS5oICwgaW5jbHVkZS9uZXQtc25tcC9vaWRfc3Rhc2guaAogICAsIGluY2x1ZGUvbmV0LXNubXAvcGFyc2UuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvcmVhZF9jb25maWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvc2NhcGkuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvc25tcC10Yy5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBBQUw1UFZDRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBDYWxsYmFja0RvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wSVBYRG9tYWluLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBUQ1BEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFRDUElQdjZEb21haW4uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcFVEUERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVURQSVB2NkRvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wVW5peERvbWFpbi5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2FsYXJtLmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfYXBpLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfY2xpZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfZGVidWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvc25tcF9lbnVtLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXBfaW1wbC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX2xvY2tpbmcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcF9sb2dnaW5nLmggLAogICBpbmNsdWRlL25ldC1zbm1wL3NubXBfcGFyc2VfYXJncy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3NlY21vZC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9zbm1wX3RyYW5zcG9ydC5oICwgaW5jbHVkZS9uZXQtc25tcC9zbm1wa3NtLmgKICAgLCBpbmNsdWRlL25ldC1zbm1wL3NubXB1c20uaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvc25tcHVzbV9pbml0LmggLCBpbmNsdWRlL25ldC1zbm1wL3NubXB2My5oCiAgICwgaW5jbHVkZS9uZXQtc25tcC9zeXN0ZW0uaCAsIGluY2x1ZGUvbmV0LXNubXAvdG9vbHMuaAogICAsIGluY2x1ZGUvbmV0LXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvdmFjbS5oICwgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmgKICAgLCBtYW4vTWFrZWZpbGUuaW4gLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9hc24xLmMgLCBzbm1wbGliL2FzbjEuaCAsIHNubXBsaWIvY2FsbGJhY2suYwogICAsIHNubXBsaWIvY2FsbGJhY2suaCAsIHNubXBsaWIvZGF0YV9saXN0LmMgLAogICBzbm1wbGliL2RhdGFfbGlzdC5oICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCAsIHNubXBsaWIvZ2V0b3B0LmggLAogICBzbm1wbGliL2ludDY0LmMgLCBzbm1wbGliL2ludDY0LmggLCBzbm1wbGliL2tleXRvb2xzLmMKICAgLCBzbm1wbGliL2tleXRvb2xzLmggLCBzbm1wbGliL2xjZF90aW1lLmMgLAogICBzbm1wbGliL2xjZF90aW1lLmggLCBzbm1wbGliL2xpYnNubXAuaCAsIHNubXBsaWIvbWQ1LmMKICAgLCBzbm1wbGliL21kNS5oICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvbWliLmgKICAgLCBzbm1wbGliL210X3N1cHBvcnQuYyAsIHNubXBsaWIvbXRfc3VwcG9ydC5oICwKICAgc25tcGxpYi9vaWRfYXJyYXkuYyAsIHNubXBsaWIvb2lkX2FycmF5LmggLAogICBzbm1wbGliL29pZF9zdGFzaC5jICwgc25tcGxpYi9vaWRfc3Rhc2guaCAsCiAgIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvcGFyc2UuaCAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvcmVhZF9jb25maWcuaCAsCiAgIHNubXBsaWIvc2NhcGkuYyAsIHNubXBsaWIvc2NhcGkuaCAsIHNubXBsaWIvc25tcC10Yy5jCiAgICwgc25tcGxpYi9zbm1wLXRjLmggLCBzbm1wbGliL3NubXAuYyAsCiAgIHNubXBsaWIvc25tcC5oICwgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5jICwKICAgc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oICwgc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYwogICAsIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmggLCBzbm1wbGliL3NubXBJUFhEb21haW4uYwogICAsIHNubXBsaWIvc25tcElQWERvbWFpbi5oICwgc25tcGxpYi9zbm1wVENQRG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uaCAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uaCAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQRG9tYWluLmggLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmggLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmMKICAgLCBzbm1wbGliL3NubXBVbml4RG9tYWluLmggLCBzbm1wbGliL3NubXBfYWxhcm0uYwogICAsIHNubXBsaWIvc25tcF9hbGFybS5oICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2FwaS5oICwgc25tcGxpYi9zbm1wX2F1dGguYyAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9jbGllbnQuaCAsCiAgIHNubXBsaWIvc25tcF9kZWJ1Zy5jICwgc25tcGxpYi9zbm1wX2RlYnVnLmggLAogICBzbm1wbGliL3NubXBfZW51bS5jICwgc25tcGxpYi9zbm1wX2VudW0uaCAsCiAgIHNubXBsaWIvc25tcF9pbXBsLmggLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuaCAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oICwgc25tcGxpYi9zbm1wX3NlY21vZC5jICwKICAgc25tcGxpYi9zbm1wX3NlY21vZC5oICwgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5jICwKICAgc25tcGxpYi9zbm1wX3RyYW5zcG9ydC5oICwgc25tcGxpYi9zbm1wa3NtLmMgLAogICBzbm1wbGliL3NubXBrc20uaCAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgc25tcGxpYi9zbm1wdXNtLmggLCBzbm1wbGliL3NubXB2My5jICwgc25tcGxpYi9zbm1wdjMuaAogICAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3N5c3RlbS5oICwKICAgc25tcGxpYi90b29scy5jICwgc25tcGxpYi90b29scy5oICwKICAgc25tcGxpYi90cmFuc2Zvcm1fb2lkcy5oICwgc25tcGxpYi92YWNtLmMgLAogICBzbm1wbGliL3ZhY20uaCAsIHRlc3RpbmcvUlVOVEVTVFMgLAogICB0ZXN0aW5nL2V2YWxfdG9vbHMuc2ggLCBpbmNsdWRlL3VjZC1zbm1wL2FzbjEuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvY2FsbGJhY2suaCAsIGluY2x1ZGUvdWNkLXNubXAvZGVmYXVsdF9zdG9yZS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9pbnQ2NC5oICwgaW5jbHVkZS91Y2Qtc25tcC9rZXl0b29scy5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9taWIuaCAsIGluY2x1ZGUvdWNkLXNubXAvbWliaW5jbC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9wYXJzZS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9yZWFkX2NvbmZpZy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zY2FwaS5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wLXRjLmggLCBpbmNsdWRlL3VjZC1zbm1wL3NubXAuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9hbGFybS5oICwKICAgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2FwaS5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2NsaWVudC5oCiAgICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2RlYnVnLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfaW1wbC5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wX2xvZ2dpbmcuaAogICAsIGluY2x1ZGUvdWNkLXNubXAvc25tcF9wYXJzZV9hcmdzLmggLAogICBpbmNsdWRlL3VjZC1zbm1wL3NubXBfdmFycy5oICwgaW5jbHVkZS91Y2Qtc25tcC9zbm1wdXNtLmgKICAgLCBpbmNsdWRlL3VjZC1zbm1wL3NubXB2My5oICwgaW5jbHVkZS91Y2Qtc25tcC9zeXN0ZW0uaAogICAsIGluY2x1ZGUvdWNkLXNubXAvdG9vbHMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdHJhbnNmb3JtX29pZHMuaCAsCiAgIGluY2x1ZGUvdWNkLXNubXAvdXRpbF9mdW5jcy5oOgoKICAgTWFqb3IgZmlsZSBtb3ZpbmcgYW5kIGVkaXRpbmcgb2YgaW5jbHVkZSBkaXJlY3RpdmVzLgogICAgIC0gZXNzZW50aWFsbHkgYWRkcyB1cCB0bzoKICAgICAgIC0gbXYgc25tcGxpYi8qLmggaW5jbHVkZS9uZXQtc25tcC8KICAgICAgIC0gbG9jYWwvY29udmVydGNvZGUgYGZpbmQgLiAtbmFtZSBcKi5jIFwqLmhgCiAgIAoyMDAyLTAxLTI4IDIwOjU0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2hhbmRsZXIuYyAsIGFnZW50X2luZGV4LmMgLAogICBhZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3RyYXAuYwogICAsIGF1dG9fbmxpc3QuYyAsIGtlcm5lbC5jICwgbWliX21vZHVsZXMuYyAsCiAgIHNubXBfYWdlbnQuYyAsIHNubXBfdmFycy5jICwgc25tcGQuYyAsCiAgIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLCBoZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsCiAgIGhlbHBlcnMvaW5zdGFuY2UuYyAsIGhlbHBlcnMvbXVsdGlwbGV4ZXIuYyAsCiAgIGhlbHBlcnMvbnVsbC5jICwgaGVscGVycy9vbGRfYXBpLmMgLCBoZWxwZXJzL3JlYWRfb25seS5jCiAgICwgaGVscGVycy9zZXJpYWxpemUuYyAsIGhlbHBlcnMvdGFibGUuYyAsCiAgIGhlbHBlcnMvdGFibGVfYXJyYXkuYyAsIGhlbHBlcnMvdGFibGVfZGF0YXNldC5jICwKICAgaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgbWliZ3JvdXAvaG9zdF9yZXMuaCAsCiAgIG1pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsIG1pYmdyb3VwL21pYmluY2wuaCAsCiAgIG1pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBtaWJncm91cC90ZXN0aGFuZGxlci5jICwKICAgbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwgbWliZ3JvdXAvUm1vbi9hbGFybS5jICwKICAgbWliZ3JvdXAvUm1vbi9ldmVudC5jICwgbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMgLAogICBtaWJncm91cC9SbW9uL3Jvd3MuYyAsIG1pYmdyb3VwL2FnZW50eC9hZ2VudHhfY29uZmlnLmMgLAogICBtaWJncm91cC9hZ2VudHgvY2xpZW50LmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsIG1pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jCiAgICwgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlT2JqZWN0c1RhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJEZWx0YVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtaWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmMgLAogICBtaWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMgLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAsIG1pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLCBtaWJncm91cC9ob3N0L2hyX3N3aW5zdC5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwgbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYwogICAsIG1pYmdyb3VwL21pYklJL2F0LmMgLCBtaWJncm91cC9taWJJSS9pY21wLmMgLAogICBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBtaWJncm91cC9taWJJSS9pcC5jICwKICAgbWliZ3JvdXAvbWliSUkvaXBBZGRyLmMgLCBtaWJncm91cC9taWJJSS9pcHY2LmMgLAogICBtaWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYyAsIG1pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMKICAgLCBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jICwKICAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jICwgbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jCiAgICwgbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvdWRwLmMgLCBtaWJncm91cC9taWJJSS91ZHBUYWJsZS5jCiAgICwgbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmMgLAogICBtaWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIG1pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oCiAgICwgbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLCBtaWJncm91cC9taWJKSi9pY21wLmMKICAgLCBtaWJncm91cC9taWJKSi9pbnRlcmZhY2VzLmMgLCBtaWJncm91cC9taWJKSi9pcC5jCiAgICwgbWliZ3JvdXAvbWliSkovaXBBZGRyLmMgLCBtaWJncm91cC9taWJKSi9pcE1lZGlhLmMKICAgLCBtaWJncm91cC9taWJKSi9pcHY2LmMgLCBtaWJncm91cC9taWJKSi9rZXJuZWxfbGludXguYwogICAsIG1pYmdyb3VwL21pYkpKL3NubXBfbWliLmMgLCBtaWJncm91cC9taWJKSi9zeXNPUlRhYmxlLmMKICAgLCBtaWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLCBtaWJncm91cC9taWJKSi90Y3AuYwogICAsIG1pYmdyb3VwL21pYkpKL3RjcFRhYmxlLmMgLCBtaWJncm91cC9taWJKSi91ZHAuYyAsCiAgIG1pYmdyb3VwL21pYkpKL3VkcFRhYmxlLmMgLCBtaWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIG1pYmdyb3VwL21pc2MvZGxtb2QuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBtaWJncm91cC9zbXV4L3NtdXguYyAsIG1pYmdyb3VwL3NtdXgvc25tcF9iZ3AuYyAsCiAgIG1pYmdyb3VwL3NtdXgvc25tcF9vc3BmLmMgLCBtaWJncm91cC9zbXV4L3NubXBfcmlwMi5jICwKICAgbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYyAsIG1pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgLCBtaWJncm91cC9zbm1wdjMvdXNtVXNlci5oOgoKICAgTWFqb3IgZmlsZSBtb3ZpbmcgYW5kIGVkaXRpbmcgb2YgaW5jbHVkZSBkaXJlY3RpdmVzLgogICAgIC0gZXNzZW50aWFsbHkgYWRkcyB1cCB0bzoKICAgICAgIC0gbXYgc25tcGxpYi8qLmggaW5jbHVkZS9uZXQtc25tcC8KICAgICAgIC0gbG9jYWwvY29udmVydGNvZGUgYGZpbmQgLiAtbmFtZSBcKi5jIFwqLmhgCiAgIAoyMDAyLTAxLTI4IDE5OjQyICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlL3VjZC1zbm1wL3VjZC1zbm1wLWNvbmZpZy5oOgoKICAgcmVtb3ZlIFVDRF9DT01QQVQgZmxhZyBhbmQgREVGSU5FIElUIGluc3RlYWQKICAgCjIwMDItMDEtMjggMTk6NDEgIGhhcmRha2VyCgogICAqIGluY2x1ZGUvdWNkLXNubXAvdWNkLXNubXAtY29uZmlnLmg6CgogICByZW1vdmUgVUNEX0NPTVBBVCBmbGFnIGFuZCBkZWZpbmUgaXQgaW5zdGVhZAogICAKMjAwMi0wMS0yNSAxMToyOSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIC0gcGFyc2Vfb25lX29pZF9pbmRleDoKICAgICAtIHVzZSBhbiB1bnNpZ25lZCBpbnQgZm9yIGxlbmd0aCdzIHB1bGxlZCBmcm9tIHRoZSBvaWQuCiAgICAgLSBNYWtlIHN1cmUgdGhleSdyZSBhbHdheXMgPCAxMjgKICAgCjIwMDItMDEtMjUgMDk6MTIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjbG9zZXIgYWRoZXJlbmNlIHRvIHN0YXRlIG1hY2hpbmVzIGRlc2NyaWJlZCBpbiBSRkMgMjU3NAogICAKMjAwMi0wMS0yNSAwOToxMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSBjYXVzZSB1c21EZWNyeXB0aW9uRXJyb3IgcmVwb3J0cyB0byBiZSBzZW50IGluIGEgY291cGxlIG9mIGV4dHJhCiAgICAgICBjYXNlczogYmFkIHNhbHQgKGxlbmd0aCAhPSA4KSBhbmQgbGVuZ3RoIG9mIGVuY3J5cHRlZCBkYXRhIG5vdCBhCiAgICAgICBtdWx0aXBsZSBvZiA4IG9jdGV0cyAocGVyIFJGQyAyNTc0KS4KICAgCjIwMDItMDEtMjUgMDk6MDQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZvciB1bmtub3duIG1lc3NhZ2UgdHlwZXMsIGluY3JlbWVudCBzbm1wSW5BU05QYXJzZUVycnMgYW5kIGZhaWwKICAgICAgIGF0IHRoZSBwb3N0LXBhcnNlIHN0YWdlLgogICAKICAgICAtIGZvciBub3RpZmljYXRpb24gdHlwZXMsIGluY3JlbWVudCBzbm1wVW5rbm93blBEVUhhbmRsZXJzIGFuZCBiYWlsCiAgICAgICBvdXQgZWFybHkuCiAgIAoyMDAyLTAxLTI1IDA5OjAxICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBmb3IgdW5oYW5kbGVkIG1lc3NhZ2VzIChlLmcuIFJFU1BPTlNFIG1lc3NhZ2VzIHNlbnQgdG8gYWdlbnRzKSwKICAgICAgIGluY3JlbWVudCB0aGUgc25tcFVua25vd25QRFVIYW5kbGVycyBjb3VudGVyLgogICAKICAgICAtIHRyeSB0byBmcmVlIHNlY3VyaXR5U3RhdGVSZWZzIHdoZW4gcG9zdC1wYXJzZSBmYWlscy4KICAgCjIwMDItMDEtMjUgMDY6MjYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiB2YWNtX3ZhcnMuYyAoVjQtMi1wYXRjaGVzLjYpLCB2YWNtX3ZhcnMuYzoKCiAgICAgLSBmaXggbWlub3IgcHJvYmxlbSB3aXRoIHN0b3JhZ2VUeXBlIChhbHdheXMgb2theSB0byBzZXQgdG8gY3VycmVudAogICAgICAgdmFsdWUpLgogICAKICAgICAtIGRvbid0IHJlc2V0IHNvbWUgdmFyaWFibGVzIHRvIG9sZCB2YWx1ZSB1bmxlc3Mgd2UgYWN0dWFsbHkgc2V0CiAgICAgICB0aGVtIGluIHRoZSBmaXJzdCBwbGFjZSEKICAgCjIwMDItMDEtMjUgMDU6MDAgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5jOgoKICAgICAtIGRvbid0IHByaW50IG91dCBkZWJ1Z2dpbmcgaW5mbyBpbiBhIGZ1cnRoZXIgY2FzZSB3aGVyZSBpdCBoYXMgYmVlbgogICAgICAgZnJlZSgpZC4KICAgCiAgICAgLSBzZXQgdGhlIGV4Y2VwdGlvbiBub1N1Y2hJbnN0YW5jZSByYXRoZXIgdGhhbiBlcnJvciBub1N1Y2hOYW1lIHdoZW4KICAgICAgIHdlIGhhdmUgdGhlIGluY29ycmVjdCBudW1iZXIgb2YgaW5kaWNlcy4KICAgCjIwMDItMDEtMjUgMDQ6NTQgIGR0czEyCgogICAqIHNubXBsaWIvUkVBRE1FLm5ld2xpYjoKCiAgIGZpbGUgUkVBRE1FLm5ld2xpYiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctTElCUkFSWS1BUEkuCiAgIAoyMDAyLTAxLTI1IDA0OjQ5ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGUuYzoKCiAgICAgLSBtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgdG8gYmVmb3JlIHdoZXJlIChwb3RlbnRpYWxseSkgdGhlIGRhdGEgaXQgaXMKICAgICAgIHRyeWluZyB0byBwcmludCBnZXRzIGZyZWUoKWQuCiAgIAoyMDAyLTAxLTI1IDA0OjQwICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBrZWVwIGFzcC0+dmJjb3VudCBjb3JyZWN0IGluIGNyZWF0ZV9zdWJ0cmVlX2NhY2hlKCkgaWYgd2UgZHVtcAogICAgICAgdmFyYmluZHMgaW4gdGhlIEdFVE5FWFQgY2FzZSBiZWNhdXNlIG51bXZhcmJpbmRzID4gbm9uLXJlcGVhdGVycy4KICAgICAgIEZhaWxpbmcgdG8gZG8gdGhpcyB3aWxsIGNhdXNlIHByb2JsZW1zIGxhdGVyIHdoZW4geW91IGl0ZXJhdGUgb3ZlcgogICAgICAgMCAuLiBhc3AtPnZiY291bnQgLSAxIGluIHJlYXNzaWduX3JlcXVlc3RzKCkuCiAgIAoyMDAyLTAxLTI0IDE1OjExICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZS5oOgoKICAgdXBkYXRlIG1hY3JvcyB0byBwdXQgcGFyZW5zIGFyb3VuZCBwYXJhbWV0ZXJzIHdoZW4gdXNlZCwgaW4gY2FzZSBhIHBhcmFtZXRlciBpcyBhbiBleHByZXNzaW9uLCB3aGljaCBtaWdodCBtdWNrIGFib3V0IHdpdGggb3BlcmF0b3IgcHJlY2VkZW5jZSBydWxlcyBhbmQgY2F1c2UgdW5leHBlY3RlZCBhbmQgdW5kZXNpcmFibGUgYmVoYXZpb3IuCiAgIAoyMDAyLTAxLTI0IDExOjA3ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgdHJ5IHRvIGZpbmQgJiBoYW5kbGUgZXh0ZXJuYWwgaW5kZXhlczsgdXNlIG5ldyBzdHlsZSBuZXQtc25tcCBpbmNsdWRlczsgYWRkCiAgIHJvd19jb3B5OyB1c2UgY29udGV4dCB0eXBlcyAmIGNhc3RzIGluIHBhcmFtZXRlcnMgaW5zdGVhZCBvZiBnZW5lcmljIHR5cGVzCiAgIHJlY2FzdCBpbnNpZGUgbWV0aG9kCiAgIAoyMDAyLTAxLTI0IDA2OjAzICBqYnBuCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jIChWNC0yLXBhdGNoZXMuMyksIHJlYWRfY29uZmlnLmM6CgogICAgIC0gYXZvaWQgZm9ybWF0IHN0cmluZyBuYXN0aWVzIGluIHJlYWRfY29uZmlnX3N0b3JlKCkgd2hlbiB3cml0aW5nIHRvCiAgICAgICBmaWxlcyAoZXhwb3NlZCBlLmcuIGJ5IHRoZSBwZXJzaXN0ZW50IHN5c05hbWUuMCBzdHVmZiAtLSB0cnkKICAgICAgIHNubXBzZXQgaG9zdCBzeXNOYW1lLjAgcyAiJTA4eCIgLS0gb29wcykKICAgCjIwMDItMDEtMjQgMDQ6MzQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdXNtLmM6CgogICAgIC0gZG9uJ3QgYXV0b21hdGljYWxseSBhY2NlcHQgYSBtc2dVc2VyTmFtZSBvZiAiIiB3aGVuIHByb2Nlc3NpbmcKICAgICAgIGluY29taW5nIG1lc3NhZ2VzLgogICAKMjAwMi0wMS0yNCAwNDozMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gYmlnZ2VyIGJ1ZmZlciBmb3IgbXNnQXV0aG9yaXRhdGl2ZUVuZ2luZUlEIGZpZWxkIHNpbmNlIGl0IGlzIG5vdAogICAgICAgbGltaXRlZCB0byAzMiBieXRlcyBsaWtlIFNubXBFbmdpbmVUQy4gIFJlYWxseSB0aGlzIG5lZWRzIHRvIGJlCiAgICAgICBhbGxvY2F0ZWQgYnkgdGhlIHNlY3VyaXR5IG1vZHVsZSBidXQgZm9yIG5vdyB3ZSdsbCBqdXN0IG1ha2UgaXQKICAgICAgIHR3aWNlIGFzIGJpZy4KICAgCjIwMDItMDEtMjQgMDM6MTkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsIHNubXBsaWIvc25tcC10Yy5jOgoKICAgQUlYIHN1cHBvcnQgZm9yIHRoZSBIb3N0IFJlc291cmNlcyBtb2R1bGUuCiAgICAgIChUaGFua3MgdG8gQW5keSBIb29kKQogICAKMjAwMi0wMS0yMyAwODoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBzZXQgdmlld1R5cGUgdG8gdGhlIERFRlZBTCBpbmNsdWRlZCgxKSBmb3IgbmV3IHJvd3MKICAgCjIwMDItMDEtMjMgMDc6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHNlY01vZGVsIG9mIDAgaXMgYSBwYXJzZSBlcnJvciBpbiBIZWFkZXJEYXRhCiAgIAoyMDAyLTAxLTIzIDA3OjIzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBiZSBjYXJlZnVsIHRvIGZyZWUgc2VjdXJpdHlTdGF0ZVJlZiBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlcyBpbgogICAgICAgc25tcHYzX3BhcnNlIC0tIGZpeGVzIG1lbW9yeSBsZWFrcyB3aGVuIG1hbGZvcm1lZCBQRFVzIGFyZQogICAgICAgcmVjZWl2ZWQuCiAgIAoyMDAyLTAxLTIyIDE5OjQ5ICByc3RvcnkKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2FwaS5oOgoKICAgY2hnIGFwaSBmb3Igc25tcF9vaWRfbmNvbXBhcmUsIGRvbid0IGltcGxlbWVudCBpdCB2aSBzbm1wX29pZF9jb21wYXJlCiAgIAoyMDAyLTAxLTIyIDE5OjQ2ICByc3RvcnkKCiAgICogc25tcGxpYi86IG9pZF9hcnJheS5jICwgb2lkX2FycmF5Lmg6CgogICBhZGQgR2V0X29pZF9kYXRhX2NvdW50KCk7IGFkZCBzdWJzZXQgc3VwcG9ydAogICAKMjAwMi0wMS0yMiAxOTo0NCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBtaWIuYyAsIG1pYi5oOgoKICAgYWRkIG5ldHNubXBfc3RyMm9pZCgpCiAgIAoyMDAyLTAxLTIyIDE5OjQxICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIHN1YnNldCBmdW5jdGlvbgogICAKMjAwMi0wMS0yMiAxOTo0MCAgcnN0b3J5CgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfYXJyYXkuYzoKCiAgIGFkZCBzdWJzZXQgZnVuY3Rpb247IGFkZCBwcmVsaW1pbmFyeSBsb2NraW5nIGNvZGU7IGFkZCB0YV9jaGVja19yb3dfc3RhdHVzCiAgIAoyMDAyLTAxLTIyIDA2OjMzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogdmFjbV92YXJzLmMgKFY0LTItcGF0Y2hlcy40KSwgdmFjbV92YXJzLmM6CgogICAgIC0gZml4IGJ1ZyBqdXN0IGludHJvZHVjZWQgd2hlcmUgc2V0dGluZyBhbiBleGlzdGluZyByb3cncyBzdGF0dXMgdG8KICAgICAgIGNyZWF0ZUFuZEdvKDQpIG9yIGNyZWF0ZUFuZFdhaXQoNSkgd291bGQgZGVsZXRlIHRoZSByb3cuCiAgIAoyMDAyLTAxLTIyIDA0OjU4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGNhdXNlIGEgcGFyc2UgZXJyb3IgaWYgd2UgcmVjZWl2ZSBVc21TZWN1cml0eVBhcmFtZXRlcnMgd2l0aCBhCiAgICAgICBtc2dVc2VyTmFtZSB0aGF0IGlzIGlsbGVnYWxseSBsb25nLgogICAKMjAwMi0wMS0yMiAwMzoxMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmM6CgogICAgIC0gb29wcywgbGVmdCBvbGQgY29kZSBpbiAjaWYgMCBicmFuY2ggQUdBSU4uICBJIGFtIGdldHRpbmcgaW50byBiYWQKICAgICAgIGhhYml0cyEKICAgCjIwMDItMDEtMjIgMDM6MDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIGZpeCBtZW1vcnkgbGVha3MgaW4gcm93IGNyZWF0aW9uL2Rlc3RydWN0aW9uCiAgIAogICAgIC0gbW9yZSBhZ2dyZXNzaXZlIHZhbGlkaXR5IGNoZWNraW5nIG9mIHNubXBOb3RpZnlUYWcsIHNubXBOb3RpZnlUeXBlCiAgICAgICBhbmQgc25tcE5vdGlmeVN0b3JhZ2VUeXBlLgogICAKICAgICAtIHBhc3NlcyA2LjUuMS4wIC0tIDYuNS44LjMKICAgCjIwMDItMDEtMjIgMDE6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMgLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmVzIGZvciBzbm1wVGFyZ2V0UGFyYW1zVGFibGUKICAgCjIwMDItMDEtMjEgMjM6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSB0aWR5IHRoaW5ncyB1cCBhIGJpdCAoaGFkIGxlZnQgc29tZSBvbGQgY29kZSBzaXR0aW5nIGlmICNpZiAwCiAgICAgICBicmFuY2gpLgogICAKICAgICAtIHJlbWVtYmVyIHRvIGNsb3NlICh0YXJnZXQtPnNlc3MpIHdoZW4gd2UgbW92ZSBhIHRhcmdldCB0bwogICAgICAgbm90SW5TZXJ2aWNlKDIpLgogICAKMjAwMi0wMS0yMSAxMTowNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZXMgZm9yIHNubXBUYXJnZXRBZGRyVGFibGUKICAgCjIwMDItMDEtMjEgMDY6NDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgc25tcFRhcmdldEFkZHJFbnRyeS5oOgoKICAgICAtIGltcGxlbWVudCBzbm1wVGFyZ2V0U3BpbkxvY2sgb2JqZWN0CiAgIAoyMDAyLTAxLTE4IDA5OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbVZpZXdUcmVlRmFtaWx5VGFibGUuICBQYXNzZXMgYWxsIHRoZQogICAgICAgcmVsZXZhbnQgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdCAoNS40LjAuMSAtLSA1LjQuOS43IGluY2x1c2l2ZSkuCiAgIAoyMDAyLTAxLTE4IDA4OjQ5ICBqYnBuCgogICAqIHNubXBsaWIvOiB2YWNtLmMgLCB2YWNtLmg6CgogICAgIC0gYWRkIGEgc3dpdGNoIHRvIHZhY21fZ2V0Vmlld0VudHJ5KCkgdG8gYWxsb3cgdGhlIG1hc2sgZW50cmllcwogICAgICAgdG8gYmUgaWdub3JlICh3aGljaCBpcyB3aGF0IHlvdSB3YW50IHdoZW4geW91IGFyZSBqdXN0IHVzaW5nIHRoaXMKICAgICAgIGZ1bmN0aW9uIHRvIGxvb2sgdXAgYW4gZW50cnkgaW4gdGhlIHRhYmxlIGluIG9yZGVyIHRvIHdyaXRlIHNvbWUgbmV3CiAgICAgICB2YWx1ZSB0byBvbmUgb2YgdGhlIGNvbHVtbmFyIG9iamVjdHMpLgogICAKMjAwMi0wMS0xOCAwNjowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBjb3JyZWN0IHN0YXRlIG1hY2hpbmUgZm9yIHZhY21BY2Nlc3NUYWJsZS4gIFBhc3NlcyBhbGwgdGhlIHJlbGV2YW50CiAgICAgICBTaWx2ZXJjcmVlayBWQUNNIHRldHN0ICg1LjMuMCAtLSA1LjMuOS43IGluY2x1c2l2ZSkuCiAgIAoyMDAyLTAxLTE4IDA0OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGNvcnJlY3Qgc3RhdGUgbWFjaGluZSBmb3IgdmFjbVNlY3VyaXR5VG9Hcm91cFRhYmxlIChpLmUuIGRvbid0CiAgICAgICBqdXN0IGRvIGV2ZXJ5dGhpbmcgaW4gdGhlIENPTU1JVCBwaGFzZSkuICBQYXNzZXMgYWxsIHRoZSByZWxldmFudAogICAgICAgU2lsdmVyY3JlZWsgVkFDTSB0ZXRzdCAoNS4yLjAgLS0gNS4yLjkuNyBpbmNsdXNpdmUpLgogICAKMjAwMi0wMS0xOCAwNDowOCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3Qgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGVycm9yIHN0YXR1cyBhZnRlciBDT01NSVQgb3IgVU5ETwogICAgICAgcGhhc2VzIHdpdGggY29tbWl0RmFpbGVkIG9yIHVuZG9GYWlsZWQgKGJ1dCBkbyB0cmFuc2xhdGUgZXJyb3IKICAgICAgIHJldHVybnMgZnJvbSB0aG9zZSBwaGFzZXMgaW50byB0aG9zZSBlcnJvcnMgd2hlbiB3ZSBkb24ndCBoYXZlIGFuCiAgICAgICBleGlzdGluZyBlcnJvciBzdGF0dXMpLgogICAKMjAwMi0wMS0xNyAwNjo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gaGFuZGxlIGlsbGVnYWwgdmFsdWVzIG9mIG1zZ0lEIGNvcnJlY3RseSAoYnkgZHJvcHBpbmcgdGhlIHBhY2tldAogICAgICAgYW5kIGluY3JlbWVudGluZyBzbm1wSW5BU05QYXJzZUVycnMpCiAgIAoyMDAyLTAxLTE3IDA2OjM4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBoYW5kbGUgaWxsZWdhbCB2YWx1ZXMgb2YgbXNnTWF4U2l6ZSBjb3JyZWN0bHkgKGJ5IGRyb3BwaW5nIHRoZQogICAgICAgcGFja2V0IGFuZCBpbmNyZW1lbnRpbmcgc25tcEluQVNOUGFyc2VFcnJzKQogICAKMjAwMi0wMS0xNSAwODoxNyAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtaW5jbHVkZXMuaDoKCiAgIHRvcCBsZXZlbCBpbmNsdWRlIHdoaWNoIGluY2x1ZGVzIHVzZWZ1bCBzbm1wbGliIGhlYWRlcnMKICAgCjIwMDItMDEtMTUgMDg6MTUgIHJzdG9yeQoKICAgKiBpbmNsdWRlL3VjZC1zbm1wLzogYWdlbnRfaW5kZXguaCAsIGFnZW50X3JlYWRfY29uZmlnLmgKICAgLCBhZ2VudF9yZWdpc3RyeS5oICwgYWdlbnRfdHJhcC5oICwgYXNuMS5oICwKICAgYXV0b19ubGlzdC5oICwgY2FsbGJhY2suaCAsIGRlZmF1bHRfc3RvcmUuaCAsCiAgIGRzX2FnZW50LmggLCBoZWFkZXJfY29tcGxleC5oICwgaW50NjQuaCAsIGtleXRvb2xzLmgKICAgLCBtaWIuaCAsIG1pYl9tb2R1bGVfY29uZmlnLmggLCBtaWJpbmNsLmggLAogICBwYXJzZS5oICwgcmVhZF9jb25maWcuaCAsIHNjYXBpLmggLCBzbm1wLXRjLmggLAogICBzbm1wLmggLCBzbm1wX2FnZW50LmggLCBzbm1wX2FsYXJtLmggLCBzbm1wX2FwaS5oCiAgICwgc25tcF9jbGllbnQuaCAsIHNubXBfZGVidWcuaCAsIHNubXBfaW1wbC5oICwKICAgc25tcF9sb2dnaW5nLmggLCBzbm1wX3BhcnNlX2FyZ3MuaCAsIHNubXBfdmFycy5oICwKICAgc25tcHVzbS5oICwgc25tcHYzLmggLCBzdHJ1Y3QuaCAsIHN5c3RlbS5oICwKICAgdG9vbHMuaCAsIHRyYW5zZm9ybV9vaWRzLmggLCB1Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oCiAgICwgdWNkLXNubXAtY29uZmlnLmggLCB1Y2Qtc25tcC1pbmNsdWRlcy5oICwKICAgdXRpbF9mdW5jcy5oICwgdmFyX3N0cnVjdC5oICwgdmVyc2lvbi5oOgoKICAgY3JlYXRlIDQueCBoZWFkZXJzIHRoYXQgYXJlIHdyYXBwZXJzIHBvaW50aW5nIHRvIG5ldyBoZWFkZXJzCiAgIAoyMDAyLTAxLTE0IDE1OjA4ICByc3RvcnkKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9hcnJheS5oOgoKICAgYWRkIFVzZXJSb3dBY3Rpb24gYW5kIHZvaWQgcG9pbnRlcgogICAKMjAwMi0wMS0xNCAxMzo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYyAsIE1ha2VmaWxlLmluOgoKICAgLT4gbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaAogICAKMjAwMi0wMS0xNCAxMzo0MCAgaGFyZGFrZXIKCiAgICogaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oOgoKICAgcmVtb3ZlZAogICAKMjAwMi0wMS0xNCAxMzoyOSAgcnN0b3J5CgogICAqIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvbmV0LXNubXAtYWdlbnQtaW5jbHVkZXMuaDoKCiAgIGNvcHkgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCBhbmQgdXBkYXRlIHRvIG5ldC1zbm1wIHVzZSBuZXcgYWdlbnQgZGlyCiAgIAoyMDAyLTAxLTE0IDA4OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L2FnZW50X2NhbGxiYWNrcy5oICwKICAgYWdlbnQvYWdlbnRfaGFuZGxlci5jICwgYWdlbnQvYWdlbnRfaGFuZGxlci5oICwKICAgYWdlbnQvYWdlbnRfaW5kZXguYyAsIGFnZW50L2FnZW50X2luZGV4LmggLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuaCAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvYWdlbnRfdHJhcC5oICwKICAgYWdlbnQvYXV0b19ubGlzdC5jICwgYWdlbnQvYXV0b19ubGlzdC5oICwKICAgYWdlbnQvZHNfYWdlbnQuaCAsIGFnZW50L2tlcm5lbC5jICwgYWdlbnQvbWliX21vZHVsZXMuYwogICAsIGFnZW50L21pYl9tb2R1bGVzLmggLCBhZ2VudC9zbm1wX2FnZW50LmMgLAogICBhZ2VudC9zbm1wX2FnZW50LmggLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBfdmFycy5oICwgYWdlbnQvc25tcGQuYyAsCiAgIGFnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggLCBhZ2VudC92YXJfc3RydWN0LmggLAogICBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwogICAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgYWdlbnQvaGVscGVycy9udWxsLmMgLCBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYyAsCiAgIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmMgLCBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZS5jICwgYWdlbnQvaGVscGVycy90YWJsZV9hcnJheS5jICwKICAgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAogICAsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmMgLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2FnZW50eF9jb25maWcuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYyAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJvYy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pY21wLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovaXBBZGRyLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcE1lZGlhLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9pcFJvdXRlLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcHY2LmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi9zeXNPUlRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi9zeXN0ZW1fbWliLmMgLCBhZ2VudC9taWJncm91cC9taWJKSi90Y3AuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3RjcFRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJKSi91ZHAuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL3VkcFRhYmxlLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pc2MvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdHVubmVsL3R1bm5lbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZXJyb3JtaWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhcHBzL25vdGlmaWNhdGlvbl9sb2cuaCAsIGFwcHMvc25tcHRyYXBkLmMgLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2NhbGxiYWNrcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X2luZGV4LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlYWRfY29uZmlnLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3JlZ2lzdHJ5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L2FnZW50X3RyYXAuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvYXV0b19ubGlzdC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9kc19hZ2VudC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9taWJfbW9kdWxlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zbm1wX2FnZW50LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NubXBfdmFycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC91Y2Qtc25tcC1hZ2VudC1pbmNsdWRlcy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC92YXJfc3RydWN0Lmg6CgogICBtb3ZlZCB0aGUgL2FnZW50IGluc3RhbGxlZCBoZWFkZXJzIHRvIC4uL2luY2x1ZGUvbmV0LXNubXAvYWdlbnQKICAgCjIwMDItMDEtMTMgMDk6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgYWRkIGEgY291cGxlIG1vcmUgaW5zdGFsbCBoZWFkZXJzLgogICAKMjAwMi0wMS0xMSAxNDoxOCAgaGFyZGFrZXIKCiAgICogYXBwcy86IE1ha2VmaWxlLmluICwgbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgTW92ZSBhbGwgYWdlbnQvaGVscGVycy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8gYW5kIGNoYW5nZQogICByZWZlcmVuY2VzLgogICAKMjAwMi0wMS0xMSAxNDoxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLAogICBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9taWJfbW9kdWxlcy5jICwKICAgYWdlbnQvc25tcF92YXJzLmMgLCBhZ2VudC9zbm1wZC5jICwKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oICwgYWdlbnQvaGVscGVycy9idWxrX3RvX25leHQuYwogICAsIGFnZW50L2hlbHBlcnMvYnVsa190b19uZXh0LmggLAogICBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYyAsIGFnZW50L2hlbHBlcnMvZGVidWdfaGFuZGxlci5oCiAgICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oCiAgICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oICwgYWdlbnQvaGVscGVycy9udWxsLmMgLAogICBhZ2VudC9oZWxwZXJzL251bGwuaCAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmggLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oICwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmggLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmggLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmgKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYwogICAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9hbGxfaGVscGVycy5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9idWxrX3RvX25leHQuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvZGVidWdfaGFuZGxlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9pbnN0YW5jZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9tdWx0aXBsZXhlci5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9udWxsLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L29sZF9hcGkuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvcmVhZF9vbmx5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3NlcmlhbGl6ZS5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC9zZXRfaGVscGVyLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlLmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2FycmF5LmggLAogICBpbmNsdWRlL25ldC1zbm1wL2FnZW50L3RhYmxlX2RhdGEuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvYWdlbnQvdGFibGVfZGF0YXNldC5oICwKICAgaW5jbHVkZS9uZXQtc25tcC9hZ2VudC90YWJsZV9pdGVyYXRvci5oOgoKICAgTW92ZSBhbGwgYWdlbnQvaGVscGVycy8qLmggZmlsZXMgdG8gaW5jbHVkZS9uZXQtc25tcC9hZ2VudC8gYW5kIGNoYW5nZQogICByZWZlcmVuY2VzLgogICAKMjAwMi0wMS0xMSAwODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhcHBzL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgIC0gQWRkIC1JJCh0b3Bfc3JjZGlyKS9pbmNsdWRlIHRvIGluY2x1ZGUgcGF0aC4KICAgLSBSZW5hbWUgMyBhZ2VudCBsaWJyYXJpZXMgZnJvbSBsaWJ1Y2QqIC0+IGxpYm5ldHNubXAqCiAgIAoyMDAyLTAxLTExIDA3OjU4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGRvbid0IHVzZSB3aGlsZSh4LS0gPj0gMCkgbG9vcHMgZm9yIG5ldyB1bnNpZ25lZCBpbmRleCBjb21wb25lbnRzCiAgIAoyMDAyLTAxLTExIDA1OjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGJlIGNhcmVmdWwgYWJvdXQgc2lnbmVkZXNzIG9mIGluZGV4IGNvbXBvbmVudHMgaW4gdGFibGVzCiAgIAoyMDAyLTAxLTEwIDEzOjEyICBuYmEKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgQ3JlYXRlIHRoZSBpbmNsdWRlIGRpcmVjdG9yeSB3aGVuIGJ1aWxkaW5nIG91dHNpZGUgc291cmNlIGRpcmVjdG9yeQogICAKMjAwMi0wMS0xMCAwODoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmM6CgogICAgIC0gdXNlIGFuIHVuc2lnbmVkIGxvbmcgbG9vcCB2YXJpYWJsZSBpbiB2YXJfc3lzT1JUYWJsZSgpIHRvIGF2b2lkCiAgICAgICBpbmNvcnJlY3QgbGV4aS1vcmRlcmluZyB3aGVuIGRvaW5nIHJlcXVlc3RzIGxpa2UgR0VUTkVYVAogICAgICAgc3lzT1JEZXNjci40Mjk0OTY3Mjk1LgogICAKICAgICAtIG1pbm9yIGRlYnVnZ2luZyBvdXRwdXQgY2hhbmdlcwogICAKMjAwMi0wMS0xMCAwNzozMiAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZml4IG1pbm9yIG1lbW9yeSBsZWFrIGluIHJlYXNzaWduX3JlcXVlc3RzKCkKICAgCjIwMDItMDEtMTAgMDc6MjEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHNldCB0eXBlIGZvciB1bmhhbmRsZWQgR0VUIHJlcXVlc3RzIGluIGhhbmRsZV9wZHUoKSB0byBiZQogICAgICAgbm9TdWNoSW5zdGFuY2UgcmF0aGVyIHRoYW4gbm9TdWNoT2JqZWN0IChub1N1Y2hPYmplY3QgZXhjZXB0aW9ucwogICAgICAgYXJlIGRldGVjdGVkIGFuZCBleHBsaWNpdGx5IHNldCBlYXJsaWVyKS4KICAgCjIwMDItMDEtMTAgMDU6NTIgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gY29ycmVjdCB0eXBvIHRoYXQgbWVhbnQgZXJyb3IgcmV0dXJucyBmcm9tIG9sZC1hcGkgd3JpdGUgbWV0aG9kcwogICAgICAgd2VyZSBpZ25vcmVkLgogICAKMjAwMi0wMS0xMCAwNTowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gY2hhbmdlIHZhbHVlIG9mIFNUQVRfVEFSR0VUX1NUQVRTX0VORCBzbyB0aGF0IG1pYklJL3NubXBfbWliLmMgY2FuCiAgICAgICByZXR1cm4gdmFsdWVzIG9mIG1hbmRhdG9yeSBvYmplY3RzIHNubXBTaWxlbnREcm9wcyBhbmQKICAgICAgIHNubXBQcm94eURyb3BzLgogICAKMjAwMi0wMS0wOSAwODo1MCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbWFrZSB1bmtub3duL2lsbGVnYWwgdmFyYmluZCB0eXBlcyBpbiB2MS92MmMgUERVcyBjYXVzZQogICAgICAgc25tcEluQVNOUGFyc2VFcnJzIHRvIGJlIGluY3JlbWVudGVkLgogICAKMjAwMi0wMS0wOSAwNzo1NSAgamJwbgoKICAgKiBhZ2VudC9oZWxwZXJzL2RlYnVnX2hhbmRsZXIuYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsKICAgCjIwMDItMDEtMDkgMDc6MzIgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa2dldC5jOgoKICAgICAtIGJyaW5nIGFwcC1zcGVjaWZpYyBvcHRpb25zIGluIGxpbmUgd2l0aCBzbm1wYnVsa3dhbGsgKC1DIHJhdGhlcgogICAgICAgdGhhbiAtQikKICAgCjIwMDItMDEtMDkgMDc6MzEgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgICAgLSBmb3JtYXR0aW5nIGNoYW5nZSB0byB1c2FnZSBtZXNzYWdlCiAgIAoyMDAyLTAxLTA5IDA2OjM1ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgICAgLSBmaXggbWlub3IgbWVtb3J5IGxlYWsKICAgCjIwMDItMDEtMDggMDg6NTUgIGpicG4KCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgICAgLSBhZGQgb3B0aW9ucyBmcm9tIHNubXB3YWxrCiAgIAogICAgIC0gYWxsb3cgbm9uLXJlcGVhdGVycyBhbmQgbWF4LXJlcGVhdGVycyB0byBiZSBzZXQKICAgCiAgICAgLSBjaGFuZ2UgZGVmYXVsdCB2YWx1ZSBvZiBtYXgtcmVwZWF0ZXJzIHRvIGEgbG93ZXIgdmFsdWUgdG8gYXZvaWQKICAgICAgIHRpbWVvdXRzIHdpdGggc2xvd2VyIGFnZW50cwogICAKMjAwMi0wMS0wOCAwODoxNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gZG9uJ3QgdHJ5IHRvIG1hbGxvYygpIGEgemVyby1sZW5ndGggYnVmZmVyLCBpbiBjYXNlIHNvbWUgbWFsbG9jKClzCiAgICAgICBjb21wbGFpbi4KICAgCjIwMDItMDEtMDggMDg6MTUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGhvcGVmdWxseSBmaW5hbCBHRVRCVUxLIGZpeCAtLSBwYXNzZXMgYWxsIFNpbHZlckNyZWVrJ3MgR0VUQlVMSwogICAgICAgdGVzdHMgKGluY2wuIG5lZ2F0aXZlIG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBlYXRlcnMpCiAgIAoyMDAyLTAxLTA4IDA2OjU5ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oICwKICAgaGVscGVycy9idWxrX3RvX25leHQuYzoKCiAgICAgLSBHRVRCVUxLIGZpeCB0byBpZ25vcmUgdmFyYmluZHMgZm9yIHdoaWNoIHplcm8gcmVwZXRpdGlvbnMgYXJlCiAgICAgICBjYWxsZWQgZm9yCiAgIAogICAgIC0gZHJvcCBhc3AtPnN0YXJ0IGFuZCBhc3AtPmVuZCB3aGljaCBhcmUgaGFyZGx5IHVzZWQgYW5kIHdoaWNoIGdldAogICAgICAgaW4gdGhlIHdheSBvZiB0aGlzIHR5cGUgb2YgcHJvY2Vzc2luZwogICAKICAgICAtIGlnbm9yZSBuZWdhdGl2ZSByZXBldGl0aW9ucyBpbiBidWxrX3RvX25leHQgaGFuZGxlcgogICAKMjAwMi0wMS0wNyAwODozOSAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZQogICAKMjAwMi0wMS0wNyAwODozOCAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyL0lOU1RBTEw6CgogICBQTkdHcmFwaCAtPiBHRDo6R3JhcGgKICAgCjIwMDItMDEtMDQgMTM6NDggIGhhcmRha2VyCgogICAqIE1ha2VmaWxlLmluOgoKICAgZml4IGRlcGVuZGVuY2llcwogICAKMjAwMi0wMS0wNCAxMzoyNCAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGluY2x1ZGUvbmV0LXNubXAvYWNjb25maWcuaDoKCiAgIG1vdmUgYWNjb25maWcuaCBiYWNrIHRvIHRoZSB0b3AgZGlyIHdoZXJlIGl0cyBhcHBhcmVudGx5IHN1cHBvc2VkIHRvIGxpdmUuCiAgIAoyMDAyLTAxLTA0IDEzOjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBtb3JlIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHRyYW5zbGF0aW9ucy4gIHdhcm5pbmc6IGluY2x1ZGVzIHRoZSBkZWZhdWx0IHBlcnNpc3RlbnQgc3RvcmUuCiAgIAoyMDAyLTAxLTA0IDEzOjA0ICBoYXJkYWtlcgoKICAgKiBpbmNsdWRlLzogbmV0LXNubXAvLmN2c2lnbm9yZSAsIHVjZC1zbm1wLy5jdnNpZ25vcmU6CgogICBpZ25vcmUgZmlsZXMKICAgCjIwMDItMDEtMDQgMTM6MDIgIGhhcmRha2VyCgogICAqIC5jdnNpZ25vcmU6CgogICBpZ25vcmUgYnVpbHQgbmV0LXNubXAtY29uZmlnCiAgIAoyMDAyLTAxLTA0IDEzOjAwICBoYXJkYWtlcgoKICAgKiBhcHBzLzogTWFrZWZpbGUuaW4gLCBlbmNvZGVfa2V5Y2hhbmdlLmMgLAogICBub3RpZmljYXRpb25fbG9nLmMgLCBzbm1wYnVsa2dldC5jICwgc25tcGJ1bGt3YWxrLmMKICAgLCBzbm1wZGVsdGEuYyAsIHNubXBkZi5jICwgc25tcGdldC5jICwKICAgc25tcGdldG5leHQuYyAsIHNubXBzZXQuYyAsIHNubXBzdGF0dXMuYyAsCiAgIHNubXB0YWJsZS5jICwgc25tcHRlc3QuYyAsIHNubXB0cmFuc2xhdGUuYyAsCiAgIHNubXB0cmFwLmMgLCBzbm1wdHJhcGQuYyAsIHNubXB0cmFwZF9oYW5kbGVycy5jCiAgICwgc25tcHRyYXBkX2xvZy5jICwgc25tcHVzbS5jICwgc25tcHZhY20uYwogICAsIHNubXB3YWxrLmM6CgogICBiZWdpbm5pbmdzIG9mIHVjZC1zbm1wIC0+IG5ldC1zbm1wIHN0cnVjdHVyYWwgY2hhbmdlcy4KICAgICAtIGNvbmZpZy5oIC0+IGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmgKICAgICAgIC0gdGhpcywgb2YgY291cnNlLCBjaGFuZ2VzIGp1c3QgYWJvdXQgZXZlcnkgZmlsZSBpbiB0aGUgcmVwb3NpdG9yeS4KICAgCjIwMDItMDEtMDQgMTI6NTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYkpKL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJKSi9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2lwTWVkaWEuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL2lwUm91dGUuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL2lwdjYuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL2tlcm5lbF9saW51eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSkovc25tcF9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c3RlbV9taWIuYyAsIGFnZW50L21pYmdyb3VwL21pYkpKL3RjcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdGNwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3VkcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSkovdWRwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYkpKL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX2JncC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvc211eC9zbm1wX29zcGYuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc25tcF9yaXAyLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvc25tcEVuZ2luZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMgLAogICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9ocHV4LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvYWRhdmUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2xvZ21hdGNoLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMgLAogICBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluICwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwKICAgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMgLCBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMgLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jOgoKICAgYmVnaW5uaW5ncyBvZiB1Y2Qtc25tcCAtPiBuZXQtc25tcCBzdHJ1Y3R1cmFsIGNoYW5nZXMuCiAgICAgLSBjb25maWcuaCAtPiBpbmNsdWRlL25ldC1zbm1wL25ldC1zbm1wLWNvbmZpZy5oCiAgICAgICAtIHRoaXMsIG9mIGNvdXJzZSwgY2hhbmdlcyBqdXN0IGFib3V0IGV2ZXJ5IGZpbGUgaW4gdGhlIHJlcG9zaXRvcnkuCiAgIAoyMDAyLTAxLTA0IDEyOjUyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMgLCBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAsIGluY2x1ZGUvbmV0LXNubXAvYWNjb25maWcuaCAsCiAgIGluY2x1ZGUvbmV0LXNubXAvbmV0LXNubXAtY29uZmlnLmguaW4gLAogICBpbmNsdWRlL3VjZC1zbm1wL1JFQURNRSAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL2FzbjEuYyAsIHNubXBsaWIvY2FsbGJhY2suYyAsCiAgIHNubXBsaWIvZGF0YV9saXN0LmMgLCBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIva2V5dG9vbHMuYyAsCiAgIHNubXBsaWIvbGNkX3RpbWUuYyAsIHNubXBsaWIvbWQ1LmMgLCBzbm1wbGliL21pYi5jCiAgICwgc25tcGxpYi9tdF9zdXBwb3J0LmMgLCBzbm1wbGliL29pZF9hcnJheS5jICwKICAgc25tcGxpYi9vaWRfc3Rhc2guYyAsIHNubXBsaWIvcGFyc2UuYyAsCiAgIHNubXBsaWIvcmVhZF9jb25maWcuYyAsIHNubXBsaWIvc2NhcGkuYyAsCiAgIHNubXBsaWIvc25tcC10Yy5jICwgc25tcGxpYi9zbm1wLmMgLAogICBzbm1wbGliL3NubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wSVBYRG9tYWluLmMgLCBzbm1wbGliL3NubXBUQ1BEb21haW4uYwogICAsIHNubXBsaWIvc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBsaWIvc25tcFVEUERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jICwgc25tcGxpYi9zbm1wVW5peERvbWFpbi5jCiAgICwgc25tcGxpYi9zbm1wX2FsYXJtLmMgLCBzbm1wbGliL3NubXBfYXBpLmMgLAogICBzbm1wbGliL3NubXBfYXV0aC5jICwgc25tcGxpYi9zbm1wX2NsaWVudC5jICwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMgLCBzbm1wbGliL3NubXBfZW51bS5jICwKICAgc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyAsIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmMgLAogICBzbm1wbGliL3NubXBfc2VjbW9kLmMgLCBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmMgLAogICBzbm1wbGliL3NubXBrc20uYyAsIHNubXBsaWIvc25tcHVzbS5jICwgc25tcGxpYi9zbm1wdjMuYwogICAsIHNubXBsaWIvc25wcmludGYuYyAsIHNubXBsaWIvc3RydG9sLmMgLAogICBzbm1wbGliL3N0cnRvdWwuYyAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMKICAgLCBzbm1wbGliL3ZhY20uYyAsIHRlc3RpbmcvVC5jICwKICAgdGVzdGluZy9ldGltZXRlc3QuYyAsIHRlc3Rpbmcva2V5bWFuYWdldGVzdC5jICwKICAgdGVzdGluZy9taXNjdGVzdC5jICwgdGVzdGluZy9zY2FwaXRlc3QuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo0OSAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBNYWtlZmlsZS50b3AgLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBzZWRzY3JpcHQuaW4gLCBhZ2VudC9NYWtlZmlsZS5pbgogICAsIGFnZW50L2FnZW50X2hhbmRsZXIuYyAsIGFnZW50L2FnZW50X2luZGV4LmMgLAogICBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwgYWdlbnQvYWdlbnRfcmVnaXN0cnkuYyAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L2F1dG9fbmxpc3QuYyAsCiAgIGFnZW50L2tlcm5lbC5jICwgYWdlbnQvbWliX21vZHVsZXMuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBfdmFycy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW4gLAogICBhZ2VudC9oZWxwZXJzL2J1bGtfdG9fbmV4dC5jICwgYWdlbnQvaGVscGVycy9kZWJ1Z19oYW5kbGVyLmMKICAgLCBhZ2VudC9oZWxwZXJzL2luc3RhbmNlLmMgLCBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmMKICAgLCBhZ2VudC9oZWxwZXJzL251bGwuYyAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuYyAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YXNldC5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jICwKICAgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jCiAgICwgYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsIGFnZW50L21pYmdyb3VwL3Rlc3RoYW5kbGVyLmMKICAgLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgLAogICBhZ2VudC9taWJncm91cC9SbW9uL2FndXRpbC5jICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9hbGFybS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvUm1vbi9ldmVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvUm1vbi9oaXN0b3J5LmMgLCBhZ2VudC9taWJncm91cC9SbW9uL3Jvd3MuYwogICAsIGFnZW50L21pYmdyb3VwL1Jtb24vc3RhdGlzdGljcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVPYmplY3RzVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyQm9vbGVhblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGhyZXNob2xkVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGV2aWNlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9uZXR3b3JrLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX290aGVyLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2lwdjYuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc25tcF9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYzoKCiAgIGJlZ2lubmluZ3Mgb2YgdWNkLXNubXAgLT4gbmV0LXNubXAgc3RydWN0dXJhbCBjaGFuZ2VzLgogICAgIC0gY29uZmlnLmggLT4gaW5jbHVkZS9uZXQtc25tcC9uZXQtc25tcC1jb25maWcuaAogICAgICAgLSB0aGlzLCBvZiBjb3Vyc2UsIGNoYW5nZXMganVzdCBhYm91dCBldmVyeSBmaWxlIGluIHRoZSByZXBvc2l0b3J5LgogICAKMjAwMi0wMS0wNCAxMjo0NyAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZy5oLmluOgoKICAgcmVtb3ZlZCB1bmVlZGVkIG9sZGVyIGZpbGVzCiAgIAoyMDAyLTAxLTAzIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIHBhdGNoICM0OTIwNzIgdG8gbWFpbiBicmFuY2gKICAgCjIwMDItMDEtMDMgMTQ6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIGNoZWNrIHJlc3VsdHMgb2Ygc2V0bW50ZW50IGJlZm9yZSB1c2luZyB0aGVtLgogICAKMjAwMi0wMS0wMyAxMzo1NyAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9pZi5jOgoKICAgY2hlY2sgYWdhaW5zdCBncm93aW5nIHNlcnZlciByZXR1cm5zIGFzIHBvaW50ZWQgb3V0IGJ5IGJ1ZyAjNDk4OTU2CiAgIAoyMDAyLTAxLTAzIDExOjQwICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvZGlzcGxheXRhYmxlLnBtOgoKICAgUE5HR3JhcGggLT4gR0RHcmFwaAogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGNoYW5nZSBleHBvcnQgbmFtZSB0byAibmV0LXNubXAiIGZyb20gInVjZC1zbm1wIgogICAKMjAwMi0wMS0wMyAxMTozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuYyAsCiAgIGxvY2FsL21pYjJjLmNyZWF0ZS1kYXRhc2V0LmNvbmYgLCBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBtYWtlIHVzZSBvZiB0aGUgbmV3IG11bHRpLWFkZCBmdW5jdGlvbnMuCiAgIAoyMDAyLTAxLTAzIDExOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGVfZGF0YXNldC5jICwgdGFibGVfZGF0YXNldC5oOgoKICAgYWRkIG11bHRpcGxlIGRlZmF1bHQgcm93IGNvbHVtbiBkZWZpbml0aW9ucyB1c2luZyBvbmUgZnVuY3Rpb24gY2FsbCAodmFyYXJncykuCiAgIAoyMDAyLTAxLTAzIDExOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogdGFibGUuYyAsIHRhYmxlLmg6CgogICBhZGQgbXVsdGlwbGUgaW5kZXhlcyB1c2luZyBvbmUgZnVuY3Rpb24gY2FsbCAodmFyYXJncykuCiAgIAoyMDAyLTAxLTAzIDExOjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuaDoKCiAgIHJlbW92ZSBubyBsb25nZXIgZGVmaW5lZCB2NCBhcGkgZnVuY3Rpb25zIChnZXRTdGF0UHRyIG5vIGxlc3MpLgogICAKMjAwMi0wMS0wMyAxMTozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5oOgoKICAgcmVtb3ZlIG5vIGxvbmdlciBkZWZpbmVkIHY0IGFwaSBmdW5jdGlvbnMuCiAgIAoyMDAyLTAxLTAzIDEwOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogTWFrZWZpbGUuaW4gLCBvaWRfc3Rhc2guYyAsIG9pZF9zdGFzaC5oOgoKICAgZGF0YSBzdGFzaGluZyBiYXNlZCBvbiBhbiBvaWQgY2FjaGluZyB0cmVlLgogICAKMjAwMS0xMi0yNiAxNTozNiAgaGFyZGFrZXIKCiAgICogcGVybC9tYW5hZ2VyLzogSU5TVEFMTCAsIE1ha2VmaWxlLlBMICwgbWFuYWdlci5wbToKCiAgIHVwZGF0ZSB0byBtYWtlIGl0IGEgYml0IGVhc2llciB0byBpbnN0YWxsIChpbmNsdWRpbmcgYSBNYWtlZmlsZSBmb3IKICAgYXV0b21hdGVkIGluc3RhbGxhdGlvbikuCiAgIAoyMDAxLTEyLTI2IDEzOjIwICBoYXJkYWtlcgoKICAgKiBwZXJsL21hbmFnZXIvOiBJTlNUQUxMICwgZGlzcGxheXRhYmxlLnBtICwgZ2V0VmFsdWVzLnBtCiAgICwgZ3JlZW4uZ2lmICwgbWFuYWdlci5wbSAsIHJlZC5naWYgLCBzZXR1cGF1dGgKICAgLCBzZXR1cGRiICwgc2V0dXB1c2VyICwgc25tcHRvc3FsOgoKICAgbW92aW5nIG1hbmFnZXIgdG8gcGVybC9tYW5hZ2VyCiAgIAoyMDAxLTEyLTI0IDE2OjEwICBoYXJkYWtlcgoKICAgKiBGQVEgLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmggLAogICBwZXJsL1NOTVAvU05NUC5wbToKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDUuMC5wcmUxICkKICAgCjIwMDEtMTItMjQgMTY6MDQgIGhhcmRha2VyCgogICAqIGxvY2FsLzogTWFrZWZpbGUuaW4gLCBtaWIyYyAsIG1pYjJjLmNvbmY6CgogICBVcGRhdGUgdG8gbWFrZSBwZW9wbGUgdW5kZXJzdGFuZCB0aGF0IGl0J3Mgbm90IGZpbmlzaGVkIGFuZCB5b3UgbXVzdAogICByZWZlcmVuY2UgYSBwYXJ0aWN1bGFyIGNvbmZpZ3VyYXRpb24gZmlsZSBhdCB0aGlzIHBvaW50LgogICAKMjAwMS0xMi0yNCAxNTo1MSAgaGFyZGFrZXIKCiAgICogRkFRICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oICwKICAgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjAubm90LmV2ZW4uY2xvc2UgKQogICAKMjAwMS0xMi0yNCAxNTo1MCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgbW9yZSBjb21tZW50cy4KICAgCjIwMDEtMTItMjQgMTU6NDEgIGhhcmRha2VyCgogICAqIEZBUSAsIFJFQURNRToKCiAgIG1vcmUgdXBkYXRlcwogICAKMjAwMS0xMi0yNCAxNToyMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBkb3h5Z2VuIGNvbW1lbnRzCiAgIAoyMDAxLTEyLTI0IDE1OjIwICBoYXJkYWtlcgoKICAgKiBORVdTICwgUkVBRE1FOgoKICAgNS4wIGNvbW1lbnQgdXBkYXRlcy4KICAgCjIwMDEtMTItMjQgMTU6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGRveHlnZW4gY29tbWVudHMgb24gYSBmZXcgZnVuY3Rpb25zLgogICAKMjAwMS0xMi0yNCAxNTowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jOgoKICAgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0xMi0yNCAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW46CgogICByZW1vdmUgZGVwZW5kZW5jaWVzIGZvciBub24tZXhpc3RlbnQgbW9kdWxlcwogICAKMjAwMS0xMi0yMyAxNTo0NyAgaGFyZGFrZXIKCiAgICogbmV0LXNubXAtY29uZmlnOgoKICAgb3Bwcy4gIERvbid0IGNoZWNrIGluIGdlbmVyYXRlZCBmaWxlcy4KICAgCjIwMDEtMTItMjMgMTU6NDYgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIGZpeCBycG0gdXNhZ2UgKEkgaG9wZSkuCiAgIAoyMDAxLTEyLTIzIDE0OjUwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudC8uY3ZzaWdub3JlOgoKICAgYWRkZWQgLmN2c2lnbm9yZSBmaWxlCiAgIAoyMDAxLTEyLTIzIDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc3RhbGwgbmV0LXNubXAtY29uZmlnLgogICAKMjAwMS0xMi0yMyAxNDo0NyAgaGFyZGFrZXIKCiAgICogTkVXUyAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIG5ldC1zbm1wLWNvbmZpZyAsIG5ldC1zbm1wLWNvbmZpZy5pbiAsIGFnZW50L01ha2VmaWxlLmluCiAgICwgYXBwcy9NYWtlZmlsZS5pbjoKCiAgIC0gY3JlYXRlZCBhIG5ldC1zbm1wLWNvbmZpZyBzY3JpcHQgdG8gcmVwb3J0IGNvbXBpbGVkIGxpYnMuCiAgIC0gc2VwYXJhdGVkIGxpYnMgbmVlZGVkIGJ5IGFnZW50IGZyb20gdGhvc2UgbmVlZGVkIGJ5IHRoZSByZXN0IG9mIHRoZQogICAgIGFwcGxpY2F0aW9ucy4KICAgCjIwMDEtMTItMjEgMTY6NTMgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGhvdyB0byBpbnN0YWxsIERCSQogICAKMjAwMS0xMi0yMSAxNjo0NCAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvTWFrZWZpbGUuUEw6CgogICByZW1vdmUgdmVyc2lvbiByZXF1aXJlbWVudCBmb3IgQW55RGF0YQogICAKMjAwMS0xMi0yMSAxNjozNyAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG1ha2UgaW5zdGFsbCBhcyByb290LgogICAKMjAwMS0xMi0yMSAxNjozMiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvOiBJTlNUQUxMICwgSU5TVEFMTCAsIElOU1RBTEwgLAogICBJTlNUQUxMOgoKICAgYmV0dGVyIGRlc2NyCiAgIAoyMDAxLTEyLTIxIDE2OjA5ICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC9SRUFETUU6CgogICBtaW5vciB3b3JkaW5nIGNoYW5nZS4KICAgCjIwMDEtMTItMjEgMTY6MDcgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QL0lOU1RBTEw6CgogICBtZW50aW9uIGl0J3MgdmVyeSBhbHBoYSBjb2RlLgogICAKMjAwMS0xMi0yMSAxNjowNiAgaGFyZGFrZXIKCiAgICogcGVybC9BbnlEYXRhX1NOTVAvSU5TVEFMTDoKCiAgIG5ldyBpbnN0cnVjdGlvbnMKICAgCjIwMDEtMTItMjEgMTA6MTggIGhhcmRha2VyCgogICAqIE5FV1M6CgogICBtZW50aW9uIGRveHlnZW4uCiAgIAoyMDAxLTEyLTIxIDEwOjE3ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBhZ2VudC9taWJncm91cC9hZ2VudF9taWJzLmg6CgogICBjb21waWxlIGluIGFnZW50IHNwZWNpZmljIHN1cHBvcnQgbWlicy4KICAgCjIwMDEtMTItMjEgMDk6NDkgIGhhcmRha2VyCgogICAqIE5FV1M6CgogICAoc3RpbGwgaW5jb21wbGV0ZSkgMm5kIHVwZGF0ZSBmb3IgNS4wCiAgIAoyMDAxLTEyLTIxIDA5OjQ0ICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgKGluY29tcGxldGUpIHVwZGF0ZSBmb3IgNS4wCiAgIAoyMDAxLTEyLTE5IDE3OjEwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCByZWFsbG9jIGZsb2F0IGFuZCBkb3VibGUgYnVpbGRzLgogICAKMjAwMS0xMi0xOSAxNjozNCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgbWlzYyBmaXhlcy4KICAgCjIwMDEtMTItMTkgMTY6MzMgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgZGVmaW5lIGEgQyBkYXRhdHlwZSBhcyAkdmFyLmRlY2wgKHBlciBSb2JlcnQncyBzdWdnZXN0aW9uLiAgUm9iZXJ0OiB3ZQogICBwcm9iYWJseSB3YW50IHBvaW50ZXJzIGZvciB0aGluZ3MgbGlrZSBzdHJpbmdzLCBubz8gIG1heWJlIG9uZSB0eXBlCiAgIHRoYXQgaXMgYWx3YXlzIGEgcG9pbnRlciBhbmQgYW5vdGhlciB0aGF0IGlzIHNvbWV0aW1lcyBkZXBlbmRpbmcgb24KICAgdGhlIHR5cGU/KQogICAKMjAwMS0xMi0xOSAxNjozMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wYnVsa3dhbGsuYzoKCiAgIGNoYW5nZSBkZWZhdWx0IGJ1bGsgbnVtYmVyIHRvIDEwMCBmcm9tIHRoZSByaWRpY3Vsb3VzIDEwMDAuCiAgIAoyMDAxLTEyLTE5IDE2OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwKICAgYXBwcy9NYWtlZmlsZS5pbiAsIHNubXBsaWIvTWFrZWZpbGUuaW46CgogICBtYWtlIGRlcGVuZAogICAKMjAwMS0xMi0xOSAwODoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBoZWxwZXJzL2J1bGtfdG9fbmV4dC5jOgoKICAgZ2V0YnVsayB1cGRhdGVzIHRvIG1ha2UgaXQgdGhlIG1vZHVsZXMgcmVzcG9uc2liaWxpdHkgdG8gdXBkYXRlIHRoZQogICB2YXJiaW5kIGNoYWluIGFuIHRoZSByZXBlYXQgY291bnRlci4KICAgCjIwMDEtMTItMTkgMDc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oCiAgICwgaGVscGVycy9NYWtlZmlsZS5pbiAsIGhlbHBlcnMvYWxsX2hlbHBlcnMuYyAsCiAgIGhlbHBlcnMvYWxsX2hlbHBlcnMuaCAsIGhlbHBlcnMvYnVsa190b19uZXh0LmMgLAogICBoZWxwZXJzL2J1bGtfdG9fbmV4dC5oOgoKICAgR0VUQlVMSyBzdXBwb3J0IGZvciB0aGUgbmV3IEFQSS4KICAgICAtIG1heSBuZWVkIHRvIG1ha2Ugc29tZSBzbGlnaHQgbW9kaWZpY2F0aW9ucy4KICAgICAtIGRlZmF1bHRzIHRvIEdFVE5FWFQgZm9yIGFueSBoYW5kbGVyIHRoYXQgZG9lc24ndCBzZXQgSEFORExFUl9DQU5fR0VUQlVMSy4KICAgICAtIGRvZXNuJ3QgZGVhbCBwcm9wZXJseSB5ZXQgd2l0aCBlbmQtb2YtbWliIGNvbmRpdGlvbiByZW1vdmFsLgogICAKMjAwMS0xMi0xOSAwNjowNSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGRyb3AgLXAgb3B0aW9uLiAgQWRkcmVzc2VzIHRvIGxpc3RlbiBvbiBub3cgY29tZSBhcyBvcHRpb25hbAogICAgICAgYXJndW1lbnRzIGF0IHRoZSBlbmQgb2YgdGhlIGNvbW1hbmQgbGluZS4KICAgCiAgICAgLSBkcm9wIChsb25nLWRlcHJlY2F0ZWQpIC1xIG9wdGlvbi4KICAgCiAgICAgLSByZS1vcmRlcmVkIG9wdGlvbnMgaW4gdXNhZ2UgbWVzc2FnZSB0byBiZSBhbHBoYWJldGljYWwsIGFuZAogICAgICAgY2hhbmdlZCBkZXNjcmlwdGlvbiBvZiBzb21lIG9wdGlvbnMgdG8gYmUgbW9yZSBzaW1pbGFyIHRvIHNubXBkCiAgICAgICBvcHRpb25zICh3aGVyZSBhcHByb3ByaWF0ZSkuCiAgIAoyMDAxLTEyLTE5IDA0OjM4ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZHJvcCAtcCBhbmQgLVQgb3B0aW9ucy4gIEFkZHJlc3NlcyB0byBsaXN0ZW4gb24gbm93IGNvbWUgYXMKICAgICAgIG9wdGlvbmFsIGFyZ3VtZW50cyBhdCB0aGUgZW5kIG9mIHRoZSBjb21tYW5kIGxpbmUuCiAgIAogICAgIC0gcmUtb3JkZXJlZCBvcHRpb25zIGluIHVzYWdlIG1lc3NhZ2UgdG8gYmUgYWxwaGFiZXRpY2FsLCBwbHVzCiAgICAgICBtaW5vciBmb3JtYXR0aW5nIHR3ZWFrcy4KICAgCiAgICAgLSByZS13cml0dGVuIG9wdGlvbnMgcHJvY2Vzc2luZyBsb29wIHRvIHVzZSBvcHRhcmcoKS4KICAgCjIwMDEtMTItMTggMDg6NDQgIGpicG4KCiAgICogbWlicy86IFVDRC1TTk1QLU1JQi50eHQgKFY0LTItcGF0Y2hlcy41KSwgVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBhZGQgT0JKRUNUIElERU5USUZJRVIgZm9yIHdpbjMyIGFnZW50CiAgIAoyMDAxLTEyLTE4IDA4OjE2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL29sZF9hcGkuYzoKCiAgIHdhcm5pbmcgLT4gZGVidWcuCiAgIAoyMDAxLTEyLTE3IDEwOjE1ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBoYW5kbGUgZ2V0TmV4dCBxdWVyaWVzIHdoZXJlIHRoZSBpbml0aWFsIHZhcmJpbmQtPnR5cGUgaXMKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgKHRoZXNlIGN1cnJlbnRseSBhcmlzZSBvbmx5IGluIEFnZW50WAogICAgICAgc3ViYWdlbnRzIGJ1dCB0aGUgaGFuZGxpbmcgaXMgbm90IHNwZWNpZmljIHRvIEFnZW50WCkuCiAgIAogICAgICAgQmFzaWNhbGx5IHRoaXMgaXMgZG9uZSBieSBwZXJmb3JtaW5nIGEgR0VUIGZpcnN0IG9uIGFsbCB0aGUKICAgICAgIHZhcmlhYmxlcyBpbiBhIHJlcXVlc3QuICBGb3IgdmFyaWFibGVzIHRoYXQgaGFkIGFuIGluaXRpYWwgdHlwZSBvZgogICAgICAgQVNOX1BSSVZfSU5DTF9SQU5HRSBhbmQgd2VyZSBzYXRpc2ZpZWQgYnkgdGhpcyBpbml0aWFsIEdFVCwgd2UgdXNlCiAgICAgICB0aGlzIHZhbHVlIGFzIHRoZSByZXN1bHQuICBGb3IgdmFyaWFibGVzIHRoYXQgZGlkIG5vdCBoYXZlIGFuCiAgICAgICBpbml0aWFsIHR5cGUgb2YgQVNOX1BSSVZfSU5DTF9SQU5HRSwgb3IgdmFyaWFibGUgdGhhdCBoYWQgYW5kCiAgICAgICBpbml0aWFsIHR5cGUgb2YgQVNOX1BSSVZfSU5DTF9SQU5HRSBidXQgd2VyZSBub3Qgc2F0aXNmaWVkIGJ5IHRoaXMKICAgICAgIEdFVCByZXF1ZXN0LCB3ZSBwcm9jZWVkIHRvIHBlcmZvcm0gYSBHRVQtTkVYVCB0eXBlIHJlcXVlc3QgYXMKICAgICAgIG5vcm1hbC4KICAgCjIwMDEtMTItMTcgMTA6MDQgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gYWRkIGZ1bmN0aW9uIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGljaCBlbXVsYXRlcyBvbGQKICAgICAgIGZ1bmN0aW9uYWxpdHkuCiAgIAogICAgIC0gdXNlIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpIGluIHJlZ2lzdGVyX29sZF9hcGkoKS4KICAgCjIwMDEtMTItMTcgMDk6MzkgIGpicG4KCiAgICogc25tcGxpYi9taWIuYzoKCiAgICAgLSBmaXggYm9ndXMgaW5kZW50CiAgIAoyMDAxLTEyLTE3IDA5OjM4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSByaWdodCBudW1iZXIgb2YgYXJndW1lbnRzIGZvciByZWdpc3Rlcl9taWJfY29udGV4dDIoKSBpbgogICAgICAgcmVnaXN0ZXJfYWdlbnR4X2xpc3QoKS4KICAgCiAgICAgLSB1c2Ugc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9mcmVlKCkgaW4gZGl0dG8uCiAgIAoyMDAxLTEyLTEzIDE5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmM6CgogICByZW1vdmUgaGFuZGxlciBpbmplY3Rpb24gb3JkZXIgKHNlcmlhbGl6ZSBuZWVkcyB0byBiZSBjYWxsZWQgZmlyc3QpCiAgIAoyMDAxLTEyLTEzIDE5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICByZW1vdmUgdW5uZWVkZWQgY2hlY2sgZm9yIGFscmVhZHkgYW5zd2VyZWQgQVNOX05VTExzIGluIGZpcnN0IHBhc3MuCiAgIAoyMDAxLTEyLTEyIDA5OjMxICBoYXJkYWtlcgoKICAgKiBwZXJsL0FueURhdGFfU05NUC86IC5jdnNpZ25vcmUgLCBJTlNUQUxMICwgTUFOSUZFU1QKICAgLCBSRUFETUUgLCBzbm1wc2g6CgogICAtIGRvYyB1cGRhdGUuCiAgIC0gc25tcHNoIG5vdyBzdXBwb3J0cyBhbGlhc2VzIHNvIHlvdSBjYW4gZGVmaW5lIGNvbW1hbmQgc2V0cy4KICAgLSBzbm1wc2ggbm93IHJlYWRzIGEgfi8uc25tcHNocmMgZmlsZSBmb3Igc3RvcmluZyB0aGVzZSBkZWZpbmVkIGFsaWFzZXMuCiAgIAoyMDAxLTEyLTEyIDA2OjQyICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gbmV3IGZ1bmN0aW9uIGpvaW5fc3VidHJlZSgpIHdoaWNoIHJlcGFpcnMgInB1bmN0dXJlZCIgc3VidHJlZXMKICAgICAgICh0aGVzZSBhcmlzZSBpbiBwYXJ0aWN1bGFyIHdoZW4gQWdlbnRYIHJvdyByZWdpc3RyYXRpb25zIGFyZQogICAgICAgd2l0aGRyYXduKS4KICAgCiAgICAgLSBjb3B5IHJlZ2luZm8gd2hlbiBkb2luZyBhIHJhbmdlIHJlZ2lzdHJhdGlvbiAoYXMgd2UgdXNlZCB0byBkbwogICAgICAgd2l0aCB0aGUgdmFyaWFibGUgc3RydWN0dXJlKSwgc2luY2UgZWFjaCBub2RlIG11c3Qgc3RhbmQgYWxvbmUuCiAgIAogICAgIC0gYWRkIHBhcmFtZXRlciB0byByZWdpc3Rlcl9taWJfY29udGV4dDIgdG8gYWxsb3cgUkVHSVNURVJfT0lECiAgICAgICBjYWxsYmFja3MgdG8gYmUgd2l0aGhlbGQgKGZvciBpbnN0YW5jZSwgeW91IG5lZWQgdGhpcyB0byBhdm9pZAogICAgICAgZXhjZXNzIEFnZW50WCB0cmFmZmljIGZvciByb3cgcmVnaXN0cmF0aW9ucykuCiAgIAogICAgIC0gcmVtb3ZlIHJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSAtLSB0aGlzIGhhcyBtb3ZlZCB0byBvbGRfYXBpLmMKICAgCiAgICAgLSBjYWxsIGpvaW5fc3VidHJlZSgpIGluIHVucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uKCkuCiAgIAoyMDAxLTEyLTEyIDA2OjMzICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgYWdlbnRfaGFuZGxlci5oOgoKICAgICAtIGFkZCBmdW5jdGlvbnMgc25tcF9oYW5kbGVyX2ZyZWUoKSwgc25tcF9oYW5kbGVyX2R1cCgpLAogICAgICAgc25tcF9oYW5kbGVyX3JlZ2lzdHJhdGlvbl9kdXAoKSBhbmQKICAgICAgIHNubXBfaGFuZGxlcl9yZWdpc3RyYXRpb25fZnJlZSgpLgogICAKMjAwMS0xMi0xMSAxODo0MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICBGaXggYnVnIHdoZXJlIHBkdS0+Y29udGV4dE5hbWUgaXMgTlVMTC4KICAgCjIwMDEtMTItMTEgMDc6MzQgIGhhcmRha2VyCgogICAqIGxvY2FsL21pYjJjOgoKICAgQklUUzogaXBhZGRyIC0+IG9jdGV0X3N0cgogICAKMjAwMS0xMi0xMSAwNDoxMSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaCAsCiAgIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBzZW5kIElOQ0xVU0lWRSBzZWFyY2ggcmFuZ2VzIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTEwIDIwOjQzICByc3RvcnkKCiAgICogbG9jYWwvbWliMmM6CgogICBhZGQgbm9hY2Nlc3MgZmxhZyBmb3Igbm90LWFjY2Vzc2libGUgbm9kZXMKICAgCjIwMDEtMTItMTAgMTQ6NTEgIGhhcmRha2VyCgogICAqIHBlcmwvQW55RGF0YV9TTk1QLzogQ2hhbmdlcyAsIERCRF9BbnlEYXRhLnBhdGNoICwKICAgRm9ybWF0LnBtICwgSU5TVEFMTCAsIE1BTklGRVNUICwgTWFrZWZpbGUuUEwgLAogICBTdG9yYWdlLnBtICwgc25tcHNoOgoKICAgRmlyc3QgdmVyc2lvbgogICAKMjAwMS0xMi0xMCAwMzoyMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCBhcmcgdG8gZHNfc2V0X3N0cmluZwogICAKMjAwMS0xMi0xMCAwMzoxOSAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gZGl0dG8gaW4gc2V0X3BlcnNpc3RlbnRfZGlyZWN0b3J5KCkKICAgCjIwMDEtMTItMTAgMDM6MTggIGpicG4KCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCgpIGluIHNldF9jb25maWd1cmF0aW9uX2RpcmVjdG9yeSgpIGJlY2F1c2UKICAgICAgIGRzX3NldF9zdHJpbmcoKSBhbHJlYWR5IGRvZXMgdGhhdCBmb3IgeW91LgogICAKMjAwMS0xMi0wNyAwOTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMgLCBoZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmgKICAgLCBtaWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIG1pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jOgoKICAgLSBJbXBsZW1lbnQgbmV3IG1hbnRyYTogImFsd2F5cyBwYXNzIG1vcmUgaW5mb3JtYXRpb24sIHJhdGhlciB0aGFuIGxlc3MiLgogICAtIGZpeCB0YWJsZSBpdGVyYXRlciBHRVRORVhUcyBmb3IgbWlzc2luZyBkYXRhIHBvaW50cy4KICAgLSBhZGQgYSBuZXcgaG9vayB0byBmcmVlIGxvb3AgY29udGV4dHMgYXQgdGhlIGVuZCBvZiB0aGUgZW50aXJlIGl0ZXJhdGlvbi4KICAgCjIwMDEtMTItMDYgMDY6NTggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgKEpCUE4tQ0JMLTQuMSksIGNsaWVudC5jOgoKICAgICAtIGlmIHJlcXVlc3QgSURzIGRvbid0IG1hdGNoLCB0aGVuIGNhbGwgaGFuZGxlX2FnZW50eF9wYWNrZXQoKSAtLQogICAgICAgY29wZXMgYmV0dGVyIHdpdGggdW5leHBlY3RlZCBwYWNrZXRzLCBpbiBwYXJ0aWN1bGFyIGZpeGVzCiAgICAgICBpbnRlcm1pdHRlbnQgZHVwbGljYXRlIHRyYXAgaXNzdWUgKGR1ZSB0byByZXNlbnQKICAgYWdlbnR4LU5vdGlmeS1QRFUpLgogICAKMjAwMS0xMi0wNSAxMzo0NiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBBaGVtLiAgT3Bwcy4gIE1pc3NpbmcgaW5jbHVkZXMuCiAgICAgLSBub3RlIHRvIHNlbGY6IGNvbXBpbGUgZmlyc3QsICp0aGVuKiBjaGVjayBpbiBjaGFuZ2VzLgogICAKMjAwMS0xMi0wNSAxMzo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wLXRjLmM6CgogICBhZGQgaW4gdGhlIG1pc3NpbmcgZnVuY3Rpb25zIGZyb20gdGhlIE5FVy1BR0VOVC1BUEkgYnJhbmNoLgogICAgIChhbmQgdG8gYW5zd2VyIFJvYmVydCdzIHBlbmRpbmcgcXVlc3Rpb24gb2Ygd2hhdCBoYXBwZW5lZCwgaXQgd2FzCiAgICAgIGxpa2VseSBvbmUgb2YgdGhlIGZpbGVzIHRoYXQgZmFpbGVkIHRvIGNvbW1pdCBvbiBteSBzaWRlIHRoYXQgeW91CiAgICAgIHRyaWVkIHRvIGZpeCBhbmQgc29tZXdoZXJlIGJldHdlZW4gdGhlIHR3byBvZiB1cyB0aGUgY2hhbmdlcyB3ZXJlIGxvc3QpLgogICAKMjAwMS0xMi0wNSAxMDowMyAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIG1pbm9yIHR3ZWFrcwogICAKMjAwMS0xMi0wNSAwOToxNCAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIGFkZCBUQ1AvSVB2NiBkb21haW4gdG8gQUdFTlQgU1BFQyBzZWN0aW9uCiAgIAogICAgIC0gaW5jb3Jwb3JhdGUgc3VnZ2VzdGlvbnMgZnJvbSByc3RvcnkKICAgCjIwMDEtMTItMDUgMDg6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQSVB2NkRvbWFpbi5jOgoKICAgICAtIHVzZSBTT0NLX1NUUkVBTSBub3QgU09DS19ER1JBTSAoZHVoISkuICBZb3Ugd291bGRuJ3QgYmVsaWV2ZSBob3cKICAgICAgIGNvbmZ1c2luZyB0aGlzIHdhcyAtLSBlLmcuIGhvdyBvbiAqZWFydGgqIGNhbiB0aGF0IGNvbm5lY3QoKSBiZQogICAgICAgc3VjY2VlZGluZyEKICAgCjIwMDEtMTItMDUgMDg6MzYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gbWFrZSBzdXJlIHRvIGNsb3NlIHNvY2tldCBpZiB5b3UgY2FuJ3QgbWFsbG9jIHRoZSBlbmNvZGVkIGZhci1lbmQKICAgICAgIGFkZHJlc3MgaW4gc25tcF90Y3BfdHJhbnNwb3J0KCkKICAgCjIwMDEtMTItMDUgMDg6MjcgIGhhcmRha2VyCgogICAqIHdpbjMyLzogc25tcHRyYW5zbGF0ZS9zbm1wdHJhbnNsYXRlLmRzcCAsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCAsIHNubXB0cmFwZC9zbm1wdHJhcGQuZHNwICwKICAgc25tcHVzbS9zbm1wdXNtLmRzcCAsIHNubXB2YWNtL3NubXB2YWNtLmRzcDoKCiAgIG1lcmdlIGZyb20gNC4yIHBhdGNoZXMgdG8gbWFpbiBsaW5lCiAgIAoyMDAxLTEyLTA1IDA4OjIzICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2cgLCBGQVEgLCBORVdTICwgUkVBRE1FICwKICAgUkVBRE1FLndpbjMyICwgYWNjb25maWcuaCAsIGNvbmZpZy5oLmluICwKICAgY29uZmlndXJlICwgY29uZmlndXJlLmluICwgc2Vkc2NyaXB0LmluICwKICAgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmggLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jICwKICAgYWdlbnQvc25tcGQuYyAsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2tlcm5lbF9saW51eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS9yb3V0ZV93cml0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIGFwcHMvc25tcG5ldHN0YXQvaWYuYyAsIGxvY2FsL21pYjJjICwgbG9jYWwvdGttaWIKICAgLCBtYW4vc25tcGQuY29uZi41LmRlZiAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsCiAgIHBlcmwvU05NUC9TTk1QLnBtICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuaCAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3JlYWRfY29uZmlnLmggLAogICBzbm1wbGliL3NubXAuaCAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHdpbjMyL3NubXB3YWxrL3NubXB3YWxrLmRzcCAsIHdpbjMyL2NvbmZpZy5oICwKICAgd2luMzIvbWliX21vZHVsZV9jb25maWcuaCAsIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCAsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5pdHMuaCAsIHdpbjMyL3dpbjMyLmRzdyAsCiAgIHdpbjMyL3dpbjMyLm9wdCAsIHdpbjMyL2VuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AKICAgLCB3aW4zMi9saWJhZ2VudC9saWJhZ2VudC5kc3AgLCB3aW4zMi9saWJzbm1wL2xpYnNubXAuZHNwCiAgICwgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wX2RsbC5kc3AgLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwICwKICAgd2luMzIvc25tcGJ1bGtnZXQvc25tcGJ1bGtnZXQuZHNwICwKICAgd2luMzIvc25tcGJ1bGt3YWxrL3NubXBidWxrd2Fsay5kc3AgLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3AKICAgLCB3aW4zMi9zbm1wZGVsdGEvc25tcGRlbHRhLmRzcCAsIHdpbjMyL3NubXBkZi9zbm1wZGYuZHNwCiAgICwgd2luMzIvc25tcGdldC9zbm1wZ2V0LmRzcCAsCiAgIHdpbjMyL3NubXBnZXRuZXh0L3NubXBnZXRuZXh0LmRzcCAsCiAgIHdpbjMyL3NubXBuZXRzdGF0L3NubXBuZXRzdGF0LmRzcCAsIHdpbjMyL3NubXBzZXQvc25tcHNldC5kc3AKICAgLCB3aW4zMi9zbm1wc3RhdHVzL3NubXBzdGF0dXMuZHNwICwKICAgd2luMzIvc25tcHRhYmxlL3NubXB0YWJsZS5kc3AgLCB3aW4zMi9zbm1wdGVzdC9zbm1wdGVzdC5kc3A6CgogICBtZXJnZSBmcm9tIDQuMiBwYXRjaGVzIHRvIG1haW4gbGluZQogICAKMjAwMS0xMi0wNSAwNzo1MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gZml4IGJ1ZyBpbiBhZGRyZXNzIHBhcnNlcgogICAKMjAwMS0xMi0wNSAwNzo0OCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUElQdjZEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gbWlub3IgY2hhbmdlcyB0bywgYWhlbSwgbWFrZSBpdCBjb21waWxlCiAgIAoyMDAxLTEyLTA1IDA3OjQyICBqYnBuCgogICAqIHNubXBsaWIvc25tcFRDUERvbWFpbi5jOgoKICAgICAtIGNvbmRpdGlvbmFsaXNlICNpbmNsdWRlIDxmY250bC5oPgogICAKMjAwMS0xMi0wNSAwNzozOCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfdHJhbnNwb3J0LmM6CgogICAgIC0gZml4IHR5cG8KICAgCjIwMDEtMTItMDUgMDc6MjkgIGpicG4KCiAgICogYWNjb25maWcuaCAsIGNvbmZpZ3VyZS5pbjoKCiAgICAgLSBtZW50aW9uIHRoZSBUQ1AvSVB2NiB0cmFuc3BvcnQgaW4gY29uZmlnLCBhbmQgYWRkIGEgI2RlZmluZSBmb3IgaXQKICAgICAgIGlmIGFwcHJvcHJpYXRlCiAgIAoyMDAxLTEyLTA1IDA3OjI4ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgICAgLSBjYWxsIHNubXBfdGNwNl9jdG9yKCkgaWYgYXBwcm9wcmlhdGUKICAgCjIwMDEtMTItMDUgMDc6MjcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBUQ1BJUHY2RG9tYWluLmMgLCBzbm1wVENQSVB2NkRvbWFpbi5oOgoKICAgICAtIFRDUC9JUHY2IHRyYW5zcG9ydCBkb21haW4uICBVbnRlc3RlZC4KICAgCjIwMDEtMTItMDUgMDc6MTkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQSVB2NkRvbWFpbi5jOgoKICAgICAtIG1ha2UgZW5jb2RlZCBhZGRyZXNzZXMgYXQgdHJhbnNwb3J0IG9wZW4gdGltZQogICAKMjAwMS0xMi0wNSAwNzoxNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFRDUERvbWFpbi5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBtb3ZlICNkZWZpbml0aW9uIG9mIFNOTVBfU1RSRUFNX1FVRVVFX0xFTiBmcm9tIHNubXBUQ1BEb21haW4uYwogICAgICAgdG8gc25tcF90cmFuc3BvcnQuaAogICAKMjAwMS0xMi0wNSAwNzoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX3ZhcnMuYzoKCiAgIHJlbW92ZSBzb21lIHVubmVlZGVkIGZ1bmN0aW9ucyBsaWtlLCBvaCwgSSBkb24ndCBrbm93LCBnZXRTdGF0UHRyKCkuCiAgIAoyMDAxLTEyLTA1IDA1OjQzICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0xMi0wNSAwNTowNiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBJUHY2RG9tYWluLmM6CgogICAgIC0gY2hhbmdlZCB0ZXh0dWFsIGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMi0wNCAyMjo1MiAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYzoKCiAgIEZpeCBiaW5kIHBhcmFtZXRlcnMsIHNvIHRoYXQgdGhlIGFnZW50IHdvcmtzCiAgIAoyMDAxLTEyLTA0IDEzOjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmggLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmMKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2l0ZXJhdG9yLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudC9uc1RyYW5zYWN0aW9uVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwgbG9jYWwvbWliMmMuaXRlcmF0ZS5jb25mOgoKICAgLSBtb3ZlIGZvcmdvdHRlbiBmdW5jdGlvbiB0eXBlZGVmcyB0byBpdGVyYXRvciBzcGVjaWZpYyBoZWFkZXIgZmlsZS4KICAgLSBhZGQgYSB2b2lkICogcG9pbnRlciBmb3IgdGhlIGNhbGxiYWNrcyB0byBtYWtlIGZ1bmN0aW9ucyBtb3JlIHJldXNhYmxlLgogICAKMjAwMS0xMi0wNCAxMzoxMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZS5oICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5jCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuYyAsIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZjoKCiAgIG1vdmUgaXRlcmF0b3Igc3BlY2lmaWMgdGFibGUgaW5mb3JtYXRpb24gaW50byBpdHMgb3duIHN0cnVjdHVyZS4KICAgCjIwMDEtMTItMDQgMTI6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIEZpeCBwcm90b3R5cGUgYXMgcG9pbnRlZCBvdXQgYnkgSmVyb21lIFBlZHVjYXNzZQogICAKMjAwMS0xMi0wNCAxMDoxMCAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIG1lbnRpb24gdGhhdCBub3QgYWxsIHRyYW5zcG9ydCBkb21haW5zIGFyZSBhbHdheXMgYXZhaWxhYmxlLgogICAKMjAwMS0xMi0wNCAwOTo1NSAgamJwbgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgICAtIHJlbW92ZSAtcCBhbmQgLVQgb3B0aW9ucyBmcm9tIGRvY3VtZW50YXRpb24uCiAgIAogICAgIC0gYWRkIGxlbmd0aHkgbmV3IHNlY3Rpb24gZGVzY3JpYmluZyBuZXcgdHJhbnNwb3J0IGFkZHJlc3MKICAgICAgIHNwZWNpZmljYXRpb24gZm9ybWF0LCB3aXRoIGV4YW1wbGVzIGFuZCBldmVyeXRoaW5nIQogICAKMjAwMS0xMi0wNCAwNzoxNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRyb3AgLXAgYW5kIC1UIG9wdGlvbnMgZm9yIGFwcHMuCiAgIAoyMDAxLTEyLTA0IDAzOjEwICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wVURQSVB2NkRvbWFpbi5jICwgc25tcFVEUElQdjZEb21haW4uaDoKCiAgICAgLSBhZGQgY3JlYXRlX29zdHJpbmcgbWV0aG9kLCBleHBvcnQgdWNkU25tcFVEUElQdjZEb21haW5bXQogICAKMjAwMS0xMi0wNCAwMjoxOSAgamJwbgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gbWVudGlvbiBJUHY2IHRyYW5zcG9ydCBkb21haW4gT0lEcyBpbiByZWxldmFudCBjb21tZW50LgogICAKMjAwMS0xMi0wMyAxNTowNyAgbmJhCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgUXVlbGwgYSBjb25zdCBjYXN0IHdhcm5pbmcuCiAgIAoyMDAxLTEyLTAzIDE1OjA3ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGRlYnVnIG91dHB1dCBmcm9tIHJldHJpZXMuCiAgIAoyMDAxLTEyLTAzIDE1OjA2ICBuYmEKCiAgICogYXBwcy9ub3RpZmljYXRpb25fbG9nLmMgLCBzbm1wbGliL29pZF9hcnJheS5jOgoKICAgSEFWRV9TWVNfVFlQRVNfSCBpcyBub3QgY29uZGl0aW9uYWwuCiAgIAoyMDAxLTEyLTAzIDE1OjA0ICBuYmEKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIEZpeCB0byBhbGxvdyBjb21waWxhdGlvbnMgb3V0c2lkZSBzb3VyY2UgZGlyZWN0b3J5LgogICAKMjAwMS0xMi0wMyAxNTowMyAgbmJhCgogICAqIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsIGNvbmZpZ3VyZSAsCiAgIGNvbmZpZ3VyZS5pbiAsIHNubXBsaWIvc25tcFVEUElQdjZEb21haW4uYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYzoKCiAgIEZpeGVzIHRvIG1ha2UgVURQSVB2NiB0cmFuc3BvcnQgd29yayBmb3IgU29sYXJpcywgTGludXggYW5kIEZyZWVCU0QuCiAgIEl0IGNvbXBpbGVzLCBhbmQgdGhlIGFwcHMgc2VuZCB2NiBwYWNrZXRzLiBBZ2VudCBub3QgeWV0IHRlc3RlZC4KICAgCjIwMDEtMTItMDMgMDk6NDggIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuaXRlcmF0ZS5jb25mICwgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGNvcHkgcm9iZXJ0cyBzcGlmZnkgaGVhZGVyIHRleHQKICAgCjIwMDEtMTItMDMgMDg6MzYgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZGF0ZW50aW1lIGNvbHVtbi4KICAgCjIwMDEtMTItMDMgMDg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIGZpeCBwcm9ibGVtIHdpdGggZG91YmxlIGRlbGVnYXRlZCByZXF1ZXN0cyBhZnRlciBnZXRuZXh0IGxvb3AuCiAgIAoyMDAxLTEyLTAzIDA4OjAwICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW4gLAogICBtaWJzL05PVElGSUNBVElPTi1MT0ctTUlCLnR4dDoKCiAgIG5vdGlmaWNhdGlvbiBsb2cgbWliIGFkZGVkIHRvIGRlZmF1bHQgbGlzdC4KICAgCjIwMDEtMTItMDMgMDU6MzMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gcmVtb3ZlIHNwdXJpb3VzIGRlYnVnZ2luZyBvdXRwdXQgKCJibGFoIikKICAgCjIwMDEtMTEtMzAgMjM6MjYgIGhhcmRha2VyCgogICAqIGFnZW50LzogYWdlbnRfaGFuZGxlci5jICwgc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgQ2hhbmdlIGhvdyByZXF1ZXN0IHByb2Nlc3NpbmcgZ2V0cyBkb25lIHN1Y2ggdGhhdCByZXF1ZXN0IG9iamVjdHMgYXJlCiAgIGFsbCBjYWxsb2NlZCBhdCBvbmNlIGFuZCBnZXQgcmV1c2VkIGluc3RlYWQgb2YgcmVhbGxvY2F0ZWQuICBCaWcgc3BlZWQKICAgaW1wcm92ZW1lbnRzLgogICAKMjAwMS0xMS0zMCAxNToyMiAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUuaW4gLCBkb3h5Z2VuLmNvbmY6CgogICAibWFrZSBkb2MiIHRvIHJ1biBkb3h5Z2VuLgogICAKMjAwMS0xMS0zMCAxMDozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy86IGRlYnVnX2hhbmRsZXIuYyAsIG11bHRpcGxleGVyLmg6CgogICBkb3h5Z2VuIGZpeGVzCiAgIAoyMDAxLTExLTMwIDA5OjI2ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgICAgLSB1c2UgREVCVUdNU0dPSURSQU5HRSBpbiByZWdpc3Rlcl9oYW5kbGVyKCkgaWYgYXBwcm9wcmlhdGUuCiAgIAoyMDAxLTExLTMwIDA5OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgaW4gcmVnaXN0ZXJfYWdlbnR4X2xpc3QoKSB3aGVuIHN1YmFnZW50IHRyaWVzIHRvCiAgICAgICByZWdpc3RlciBhIE1JQiByZWdpb24gdGhhdCBmYWlscyBlaXRoZXIgYmVjYXVzZSBpdCBpcyBhIGR1cGxpY2F0ZQogICAgICAgb3IgYmVjYXVzZSBvZiBzb21lIG90aGVyIHJlYXNvbi4KICAgCjIwMDEtMTEtMzAgMDg6NDQgIGpicG4KCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICAgIC0gZml4IG1lbW9yeSBsZWFrIG9mIG9sZF9pbmZvICh0aGF0IG5ldmVyIHNlZW1zIHRvIGdldCB1c2VkIGZvcgogICAgICAgYW55dGhpbmcgYW55d2F5PykKICAgCiAgICAgLSBmaXggbWVtb3J5IGxlYWsgdGhhdCBhcmlzZXMgZHVyaW5nIHJvdyByZWdpc3RyYXRpb24gKGluIEFnZW50WAogICAgICAgc3ViYWdlbnRzKSBiZWNhdXNlIHN1Y2Nlc3NpdmUgdmFycyBjYXVzZSBhcHBhcmVudCBkdXBsaWNhdGUKICAgICAgIHJlZ2lzdHJhdGlvbnMgKHRoaXMgaXMgYSBkZWZpY2llbmN5KSAtLSBidXQgaXQgd291bGQgYXBwZWFyIHRoaXMKICAgICAgIGNvdWxkIGFyaXNlIGluIG90aGVyIHNpdHVhdGlvbnMgdG9vIChnZW51aW5lIGR1cGxpY2F0ZQogICAgICAgcmVnaXN0cmF0aW9ucykuCiAgIAoyMDAxLTExLTMwIDA2OjMzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgICAgLSBmaXggYnJva2VuIHBhcnNpbmcgaW4gc25tcGRfcGFyc2VfY29uZmlnX3RyYXBzZXNzKCkgLS0gbG9vcCB3YXMKICAgICAgIGNvcHlpbmcgdGhlIHNhbWUgKGZpcnN0KSB0b2tlbiBNQVhfQVJHUyB0aW1lcy4KICAgCiAgICAgLSBlbGltaW5hdGUgbWVtb3J5IGxlYWsgaW4gZGl0dG8uCiAgIAogICAgIC0gZml4IHR5cG8gKCJQYXVzaWJsZSBjYXVzZSIgLT4gIlBvc3NpYmxlIGNhdXNlKSBpbiBkaXR0by4KICAgCjIwMDEtMTEtMzAgMDY6MjkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHByaW50IGZkIGluIHNlc3NfcHJvY2Vzc19wYWNrZXQoKSAtLSB1c2VmdWwgZm9yIGRlYnVnZ2luZwogICAKMjAwMS0xMS0zMCAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcENhbGxiYWNrRG9tYWluLmMgLCBzbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgICAgLSByZW1vdmUgYSBjb3VwbGUgb2YgdW5uZWNlc3NhcnkgI2luY2x1ZGVzIGZyb20gc25tcENhbGxiYWNrRG9tYWluLmgKICAgCiAgICAgLSBzZXQgKm9wYXF1ZSB0byBOVUxMIGFmdGVyIHdlIGZyZWUgaXQgLS0gaXQgbWlnaHQgbWF0dGVyLgogICAKMjAwMS0xMS0zMCAwMzo0NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBjbG9uZSBQRFUgaW4gaGFuZGxlX2FnZW50eF9zdWJhZ2VudCgpIGJlZm9yZSBzZW5kaW5nIGl0IG9uIGNhbGxiYWNrCiAgICAgICBzZXNzaW9uIHRvIGF2b2lkIGRvdWJsZSBmcmVlKCkgYW5kIGZyZWUoKWQgbWVtb3J5IHJlYWRzLgogICAKICAgICAtIG1vcmUgY29uY2lzZSAoYWhlbSkgZGVjbGFyYXRpb24gb2YgbXljYWxsYmFjayBpbiBoYW5kbGVfYWdlbnR4X3BhY2tldCgpLgogICAKMjAwMS0xMS0yOSAwNTo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gcHV0IHNlc3Npb24gYW5kIHN1YnNlc3Npb24gaW4gc3ViYWdlbnQgZGVzY3JpcHRpb24gKGhlbHBmdWwgZm9yCiAgICAgICBkZWJ1Z2dpbmcpCiAgIAoyMDAxLTExLTI5IDA1OjQ5ICBqYnBuCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICAgIC0gZml4IElOU1RBTExIRUFERVJTCiAgIAoyMDAxLTExLTI5IDA1OjQ4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGFkZCBzb21lIGRlYnVnZ2luZyB0byBpbml0X3N1YmFnZW50KCkgKHdoaWNoIHNob3dlZCB0aGF0IGl0IHdhc24ndAogICAgICAgYmVpbmcgY2FsbGVkLCBzby4uLikuCiAgIAogICAgIC0gZml4IGNhc3QgaW4gaGFuZGxlX3N1YmFnZW50X3NldF9yZXNwb25zZSgpCiAgIAoyMDAxLTExLTI5IDA1OjQ2ICBqYnBuCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgICAtIG1ha2Ugc3VyZSBpbml0X3N1YmFnZW50KCkgZ2V0cyBjYWxsZWQKICAgCjIwMDEtMTEtMjggMDk6MjggIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICBjaGVjayBmb3Igc2Vzc2lvbiByZWdpc3RyYXRpb25zIGluIGFsbCBjb250ZXh0cy4KICAgCjIwMDEtMTEtMjggMDY6MzkgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgc25tcGxpYi9vaWRfYXJyYXkuYzoKCiAgIEFkZCBzeXMvdHlwZXMuaCBmb3IgYnVnICM0ODYyNzcuCiAgIAoyMDAxLTExLTI4IDA0OjAzICBqYnBuCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgICAtICNpbmNsdWRlIDxuZXRkYi5oPgogICAKMjAwMS0xMS0yOCAwNDowMyAgamJwbgoKICAgKiBjb25maWd1cmUuaW4gLCBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGluc3RhbGwgc25tcF90cmFuc3BvcnQuaCBhbmQgc25tcCpEb21haW4uaCAoZm9yIHRoZSBjb25maWd1cmVkCiAgICAgICB0cmFuc3BvcnQgZG9tYWlucykKICAgCjIwMDEtMTEtMjggMDM6MjkgIGpicG4KCiAgICogc25tcGxpYi91Y2Qtc25tcC1pbmNsdWRlcy5oOgoKICAgICAtIHJldmVyc2UgbXlzdGVyeSByZW1vdmFsIG9mICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IGFuZCAjaW5jbHVkZQogICA8c3lzL3RpbWUuaD4KICAgCjIwMDEtMTEtMjcgMTc6MjggIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgbW9yZSBpbnRlbGxpZ2VudGx5IGFsbG9jYXRlIHRyZWUgc3BhY2UgYmFzZWQgb24gbnVtYmVyIG9mIHZhcmJpbmRzIGluIHJlcXVlc3QuCiAgIAoyMDAxLTExLTI3IDE0OjI2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaDoKCiAgIG1hbGxvYyBvbmUgbGFyZ2UgdHJlZV9jYWNoZSBhcnJheSByYXRoZXIgdGhhbiBhbiBhcnJheSBvZiB0cmVlX2NhY2hlIHBvaW50ZXJzLgogICAKMjAwMS0xMS0yNyAxMjoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oOgoKICAgaW5jbHVkZSBmaWxlIG5hbWUgY2hhbmdlLgogICAKMjAwMS0xMS0yNyAxMTo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgY29tbWVudCBjaGFuZ2VzLgogICAKMjAwMS0xMS0yNyAwNzo1MiAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeGVkIE1ha2VmaWxlIGZvciBzbm1wdHJhcGQuCiAgIAoyMDAxLTExLTI3IDA3OjQ4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzLzogTWFrZWZpbGUuaW4gLCBhbGxfaGVscGVycy5jICwKICAgYWxsX2hlbHBlcnMuaCAsIGRlYnVnX2hhbmRsZXIuYyAsIGRlYnVnX2hhbmRsZXIuaDoKCiAgIGRlYnVnIGhhbmRsZXIgY3JlYXRlZCBmb3IgaW5zZXJ0aW5nIGRlYnVnZ2luZyBvdXRwdXQgaW50byB0aGUgY2FsbGluZyBjaGFpbi4KICAgCjIwMDEtMTEtMjcgMDc6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X2hhbmRsZXIuYzoKCiAgIGVudW0gZGVmaW5pdGlvbnMgZm9yIG1vZGVzIGFuZCBjYW5fbW9kZXMuCiAgIAoyMDAxLTExLTI2IDE1OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBzZXQgUERVIHZhcmlhYmxlIHRvIE5VTEwgdG8gYXZvaWQgZnJlZWluZyBpdCB0d2ljZS4KICAgCjIwMDEtMTEtMjYgMTE6MjAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcENhbGxiYWNrRG9tYWluLmM6CgogICBwbHVnIGFub3RoZXIgbWVtb3J5IGxlYWsuCiAgIAoyMDAxLTExLTI2IDA5OjA3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAyMHNubXB2M2dldCAsIFQwMjFzbm1wdjNnZXRuZXh0ICwKICAgVDAyMnNubXB2M2dldE1ENSAsIFQwMjNzbm1wdjNnZXRNRDVERVMgLAogICBUMDI0c25tcHYzZ2V0U0hBMSAsIFQwMjVzbm1wdjNnZXRTSEFERVMgLAogICBUMDI4c25tcHYzZ2V0ZmFpbCAsIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24gLAogICBUMDUzYWdlbnR2MXRyYXAgLCBUMDU0YWdlbnR2MmN0cmFwICwgVDA1NWFnZW50djFtaW50cmFwCiAgICwgVDA1NmFnZW50djJjbWludHJhcCAsIFQxMTBhZ2VudHhnZXQgLAogICBUMTExYWdlbnR4c2V0ICwgVDExMmFnZW50eHNldGZhaWwgLCBUMTEzYWdlbnR4dHJhcCAsCiAgIFQxMjBwcm94eWdldCAsIFQxMjFwcm94eXNldCAsIFQxMjJwcm94eXNldGZhaWw6CgogICBkb24ndCB1c2UgY29udGV4dHMgaW4gdGVzdHMuCiAgIAoyMDAxLTExLTI2IDA4OjU3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZml4IG1lbW9yeSBsZWFrLgogICAKMjAwMS0xMS0yNiAwODo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvOiB0ZXN0ZGVsYXllZC5jICwgYWdlbnR4L21hc3Rlci5jICwKICAgdWNkLXNubXAvcHJveHkuYzoKCiAgIHVzZSBmcmVlX2RlbGVnYXRlZF9jYWNoZSgpIHRvIHBsdWcgbWVtb3J5IGxlYWtzLgogICAKMjAwMS0xMS0yNiAwODo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF9oYW5kbGVyLmMgLCBhZ2VudF9oYW5kbGVyLmg6CgogICBmcmVlX2RlbGVnYXRlZF9jYWNoZSgpIHJvdXRpbmUKICAgCjIwMDEtMTEtMjYgMDg6MTkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgdGhlIGFiaWxpdHkgdG8gbGlzdGVuIGZvciB0cmFwcyBvbiBtdWx0aXBsZSB0cmFuc3BvcnRzIHZpYSB0aGUKICAgICAgIC1wIG9wdGlvbiAoY29uc2lzdGVudCB3aXRoIHNubXBkKS4KICAgCjIwMDEtMTEtMjYgMDU6NDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgICAtIHVzZSBzbm1wX3Rkb21haW5fdHJhbnNwb3J0X29pZCgpIHRvIGRvIHNlc3Npb24gY3JlYXRpb24gZnJvbQogICAgICAgPHREb21haW4tb2lkLCB0QWRkcmVzcy1vY3RldC1zdHJpbmc+IHBhaXIsIHRvIGFsbG93IGNyZWF0aW9uIG9mCiAgICAgICBub24tSVB2NCBzZXNzaW9ucyBpbiBzbm1wVGFyZ2V0QWRkclRhYmxlLgogICAKMjAwMS0xMS0yNiAwNDo0NSAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBJUFhEb21haW4uYyAsCiAgIHNubXBUQ1BEb21haW4uYyAsIHNubXBVRFBEb21haW4uYyAsIHNubXBVbml4RG9tYWluLmMKICAgLCBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBhZGQgc3VwcG9ydCBmb3IgY3JlYXRpbmcgYSB0cmFuc3BvcnQgZnJvbSBhCiAgICAgICA8dERvbWFpbi1vaWQsIHRBZGRyZXNzLW9jdGV0LXN0cmluZz4gcGFpci4KICAgCjIwMDEtMTEtMjYgMDM6MDYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jOgoKICAgICAtIHVzZSBzbm1wX3Rkb21haW5fc3VwcG9ydCgpIHRvIGRldGVybWluZSB3aGV0aGVyIGEgdHJhbnNwb3J0IGRvbWFpbgogICAgICAgaXMgc3VwcG9ydGVkLgogICAKMjAwMS0xMS0yMyAxMDoyNCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgICAtIGFkZCBtdWx0aXBsZSB0cmFuc3BvcnQgZG9tYWluIHN1cHBvcnQgZm9yIHRyYXBkIC0tIHRoaXMgd2FzIHJlYWxseQogICAgICAgUkVBTExZIGVhc3khCiAgIAoyMDAxLTExLTIzIDA5OjI1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYyAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSByZW1vdmUgbGVnYWN5IGZ1bmN0aW9uIHNubXBfdHJhbnNwb3J0X3N1cHBvcnQoKSAocmVwbGFjZWQgd2l0aAogICAgICAgc25tcF90ZG9tYWluX3N1cHBvcnQoKSkuCiAgIAoyMDAxLTExLTIzIDA4OjU3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYzoKCiAgICAgLSB1c2UgbmV0d29yayBvcmRlciBmb3IgQUFMNVBWQyB0cmFuc3BvcnQgYWRkcmVzcyBlbmNvZGluZwogICAKMjAwMS0xMS0yMyAwODo0NyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBJUFhEb21haW4uYyAsCiAgIHNubXBVbml4RG9tYWluLmM6CgogICAgIC0gc2V0IGxvY2FsX2xlbmd0aCwgcmVtb3RlX2xlbmd0aCBhcyBhcHByb3ByaWF0ZQogICAKMjAwMS0xMS0yMyAwODozOSAgamJwbgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgICAtIGZpeCB0eXBvCiAgIAoyMDAxLTExLTIzIDA4OjM0ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfdHJhcC5jICwKICAgbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jOgoKICAgICAtIG1ha2UgdHJhcHMgd29yayB3aXRoIG5ldy1zdHlsZSBhZGRyZXNzZXMsIHVzZSBkb21haW4tYmFzZWQgYWRkcmVzcwogICAgICAgZW5jb2RpbmdzIGluIHNubXBUYXJnZXRBZGRyVGFibGUuICBOb3RlIHlvdSBjYW4gbm93IHNlbmQgdHJhcHMvaW5mb3JtcwogICAgICAgb3ZlciBhbnkgc3VwcG9ydGVkIHRyYW5zcG9ydCB0eXBlIGJ5IHVzaW5nIHRoZSB0cmFwc2VzcyBkaXJlY3RpdmUgYW5kCiAgICAgICBhIHRyYW5zcG9ydDphZGRyZXNzIHR5cGUgc3BlY2lmaWNhdGlvbi4KICAgCjIwMDEtMTEtMjMgMDg6MzEgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5jOgoKICAgICAtIGNyZWF0ZSBhcHByb3ByaWF0ZWx5LWVuY29kZWQgbG9jYWwgb3IgcmVtb3RlIGVuZHBvaW50IGFkZHJlc3NlcyBhdAogICAgICAgdHJhbnNwb3J0IG9wZW4gdGltZS4KICAgCjIwMDEtMTEtMjMgMDY6NTAgIGpicG4KCiAgICogc25tcGxpYi9NYWtlZmlsZS5pbjoKCiAgICAgLSB1cGRhdGUgZGVwZW5kZW5jaWVzIGZvciB0cmFuc3BvcnRzCiAgIAoyMDAxLTExLTIyIDA5OjA4ICBqYnBuCgogICAqIHRlc3RpbmcvOiBURVNUQ09ORi5zaCAsIGV2YWxfdG9vbHMuc2ggLAogICB0ZXN0cy9UMDAxc25tcHYxZ2V0ICwgdGVzdHMvVDAwMnNubXB2MWdldG5leHQgLAogICB0ZXN0cy9UMDAzc25tcHYxZ2V0ZmFpbCAsIHRlc3RzL1QwMTRzbm1wdjJjZ2V0ICwKICAgdGVzdHMvVDAxNXNubXB2MmNnZXRuZXh0ICwgdGVzdHMvVDAxNnNubXB2MmNnZXRmYWlsICwKICAgdGVzdHMvVDAxN3NubXB2MmN0b3YxZ2V0ZmFpbCAsIHRlc3RzL1QwMThzbm1wdjF0b3YyY2dldGZhaWwKICAgLCB0ZXN0cy9UMDIwc25tcHYzZ2V0ICwgdGVzdHMvVDAyMXNubXB2M2dldG5leHQgLAogICB0ZXN0cy9UMDIyc25tcHYzZ2V0TUQ1ICwgdGVzdHMvVDAyM3NubXB2M2dldE1ENURFUyAsCiAgIHRlc3RzL1QwMjRzbm1wdjNnZXRTSEExICwgdGVzdHMvVDAyNXNubXB2M2dldFNIQURFUyAsCiAgIHRlc3RzL1QwMjhzbm1wdjNnZXRmYWlsICwgdGVzdHMvVDAzMHNubXB2M3VzZXJjcmVhdGlvbiAsCiAgIHRlc3RzL1QwNDlzbm1wdjNpbmZvcm0gLCB0ZXN0cy9UMDUwc25tcHYzdHJhcCAsCiAgIHRlc3RzL1QwNTFzbm1wdjJjdHJhcCAsIHRlc3RzL1QwNTJzbm1wdjJjaW5mb3JtICwKICAgdGVzdHMvVDA1M2FnZW50djF0cmFwICwgdGVzdHMvVDA1NGFnZW50djJjdHJhcCAsCiAgIHRlc3RzL1QwNTVhZ2VudHYxbWludHJhcCAsIHRlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXAgLAogICB0ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCAsIHRlc3RzL1QxMDBhZ2VudGh1cCAsCiAgIHRlc3RzL1QxMTBhZ2VudHhnZXQgLCB0ZXN0cy9UMTExYWdlbnR4c2V0ICwKICAgdGVzdHMvVDExMmFnZW50eHNldGZhaWwgLCB0ZXN0cy9UMTEzYWdlbnR4dHJhcCAsCiAgIHRlc3RzL1QxMjBwcm94eWdldCAsIHRlc3RzL1QxMjFwcm94eXNldCAsCiAgIHRlc3RzL1QxMjJwcm94eXNldGZhaWw6CgogICAgIC0gdXNlIHVkcDo8aG9zdG5hbWU+Ojxwb3J0PiBpbnN0ZWFkIG9mIC1wIHRvIG1ha2UgdGVzdHMgd29yayBhZ2FpbgogICAKMjAwMS0xMS0yMiAwMDoyMCAgaGFyZGFrZXIKCiAgICogYXBwcy86IG5vdGlmaWNhdGlvbl9sb2cuYyAsIG5vdGlmaWNhdGlvbl9sb2cuaDoKCiAgIG1vcmsgd29yZSBvbiB0aGUgbm90aWZpY2F0aW9uIGxvZyBtaWIuICBJdCBub3cgc3VwcG9ydHMgdmFyaWFibGUKICAgc3RvcmFnZSwgYnV0IHNlZ2ZhdWx0cyBvbiBhY2Nlc3MgZHVlIHRvIHBkdSBjbG9uaW5nIHByb2JsZW1zIEknbSBub3QKICAgZ29pbmcgdG8gd29yayBvdXQgcmlnaHQgbm93LgogICAKMjAwMS0xMS0yMSAyMzoxNSAgaGFyZGFrZXIKCiAgICogYXBwcy9NYWtlZmlsZS5pbjoKCiAgIGZpeCBzbm1wdHJhcGQgbGlua2luZy4KICAgCjIwMDEtMTEtMjEgMjI6NTggIHJzdG9yeQoKICAgKiBzbm1wbGliL2FzbjEuaDoKCiAgIHJlbW92ZSBkdXBsaWNhdGUgT0lEX0xFTkdUSDsgdXNlIGFjdHVhbCBvaWQgdHlwZSBpbiBjYWxjdWxhdGlvbgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uYzoKCiAgIGFkZCBOVUxMIHBvaW50ZXIgZm9yIHJidWlsZCBpbiBzZXNzaW9uIGNyZWF0aW9uLgogICAKMjAwMS0xMS0yMSAyMjo0OSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgbmV0aW5ldC9pbi5oIG5lZWRlZC4KICAgCjIwMDEtMTEtMjEgMjI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgdmFyaWFibGUgY2xlYW4gdXBzLgogICAKMjAwMS0xMS0yMSAyMjozMyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS90Y3BUYWJsZS5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsIGxvY2FsL21pYjJjICwKICAgbG9jYWwvbWliMmMuYXJyYXktYXV0by5jb25mICwgbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mCiAgICwgbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiAsCiAgIGxvY2FsL21pYjJjLml0ZXJhdGUuY29uZiAsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYgLAogICBtYW4vTWFrZWZpbGUuaW4gLCBtaWJzL01ha2VmaWxlLmluICwKICAgbWlicy9ORVQtU05NUC1BR0VOVC1NSUIudHh0ICwgcGVybC9TTk1QL1NOTVAueHMgLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9taWIuYyAsIHNubXBsaWIvbWliLmgKICAgLCBzbm1wbGliL3JlYWRfY29uZmlnLmMgLCBzbm1wbGliL3JlYWRfY29uZmlnLmggLAogICBzbm1wbGliL3NubXAtdGMuaCAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uaCAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcF9hcGkuaCAsCiAgIHNubXBsaWIvc25tcF9jbGllbnQuYyAsIHNubXBsaWIvc25tcF9jbGllbnQuaCAsCiAgIHNubXBsaWIvc25tcF90cmFuc3BvcnQuYyAsIHNubXBsaWIvc25tcF90cmFuc3BvcnQuaCAsCiAgIHNubXBsaWIvdG9vbHMuYyAsIHNubXBsaWIvdG9vbHMuaCAsIHNubXBsaWIvdmFjbS5jOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIyOjA4ICByc3RvcnkKCiAgICogc25tcGxpYi86IHZhY20uaCAsIGFzbjEuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBzbm1wQ2FsbGJhY2tEb21haW4uYyAsIHNubXBDYWxsYmFja0RvbWFpbi5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDIxOjQwICByc3RvcnkKCiAgICogc25tcGxpYi9zbm1wLmg6CgogICBEZWF0aDogVUNELVNOTVAKICAgQmlydGg6IE5FVC1TTk1QCiAgICAgKG5ldyBhZ2VudCBBUEkgbWVyZ2VkIHRvIHRoZSBtYWluIGJyYW5jaCkKICAgCjIwMDEtMTEtMjEgMjE6MzMgIHJzdG9yeQoKICAgKiBzbm1wbGliLzogb2lkX2FycmF5LmMgLCBvaWRfYXJyYXkuaDoKCiAgIERlYXRoOiBVQ0QtU05NUAogICBCaXJ0aDogTkVULVNOTVAKICAgICAobmV3IGFnZW50IEFQSSBtZXJnZWQgdG8gdGhlIG1haW4gYnJhbmNoKQogICAKMjAwMS0xMS0yMSAyMTozMCAgcnN0b3J5CgogICAqIHNubXBsaWIvOiBkYXRhX2xpc3QuYyAsIGRhdGFfbGlzdC5oOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDE4OjU2ICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGNvbmZpZy5oLmluICwgY29uZmlndXJlICwKICAgY29uZmlndXJlLmluICwgdmVyc2lvbi5oICwgYWdlbnQvTWFrZWZpbGUuaW4gLAogICBhZ2VudC9hZ2VudF9oYW5kbGVyLmMgLCBhZ2VudC9hZ2VudF9oYW5kbGVyLmggLAogICBhZ2VudC9hZ2VudF9pbmRleC5jICwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsCiAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudC9hZ2VudF9yZWdpc3RyeS5oICwKICAgYWdlbnQvbWliX21vZHVsZXMuYyAsIGFnZW50L3NubXBfYWdlbnQuYyAsCiAgIGFnZW50L3NubXBfYWdlbnQuaCAsIGFnZW50L3NubXBfdmFycy5jICwgYWdlbnQvc25tcGQuYwogICAsIGFnZW50L3VjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmggLCBhZ2VudC92YXJfc3RydWN0LmgKICAgLCBhZ2VudC9oZWxwZXJzLy5jdnNpZ25vcmUgLCBhZ2VudC9oZWxwZXJzL01ha2VmaWxlLmluCiAgICwgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5jICwKICAgYWdlbnQvaGVscGVycy9hbGxfaGVscGVycy5oICwgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jICwKICAgYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oICwgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5jICwKICAgYWdlbnQvaGVscGVycy9tdWx0aXBsZXhlci5oICwgYWdlbnQvaGVscGVycy9udWxsLmMgLAogICBhZ2VudC9oZWxwZXJzL251bGwuaCAsIGFnZW50L2hlbHBlcnMvb2xkX2FwaS5jICwKICAgYWdlbnQvaGVscGVycy9vbGRfYXBpLmggLCBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5jICwKICAgYWdlbnQvaGVscGVycy9yZWFkX29ubHkuaCAsIGFnZW50L2hlbHBlcnMvc2VyaWFsaXplLmMgLAogICBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oICwgYWdlbnQvaGVscGVycy9zZXRfaGVscGVyLmggLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlLmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlLmggLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmMgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmgKICAgLCBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYyAsIGFnZW50L2hlbHBlcnMvdGFibGVfZGF0YS5oCiAgICwgYWdlbnQvaGVscGVycy90YWJsZV9kYXRhc2V0LmMgLAogICBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaCAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYwogICAsIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuaCAsCiAgIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluICwgYWdlbnQvbWliZ3JvdXAvaG9zdF9yZXMuaAogICAsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCAsIGFnZW50L21pYmdyb3VwL3RhcmdldC5oCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGRlbGF5ZWQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3Rlc3RkZWxheWVkLmggLCBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jCiAgICwgYWdlbnQvbWliZ3JvdXAvdGVzdGhhbmRsZXIuaCAsCiAgIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYyAsIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuaAogICAsIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvLmN2c2lnbm9yZSAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaCAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvZGlzbWFuLy5jdnNpZ25vcmUgLAogICBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy8uY3ZzaWdub3JlICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9kaXNrLmMgLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suaAogICAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3BhcnRpdGlvbi5oICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJLy5jdnNpZ25vcmUgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fY29udGV4dC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3RhcmdldF9jb3VudGVycy5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9yZWdpc3RyeS5jICwgYXBwcy9NYWtlZmlsZS5pbiAsCiAgIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jICwgYXBwcy9ub3RpZmljYXRpb25fbG9nLmggLAogICBhcHBzL3NubXB0cmFwZC5jOgoKICAgRGVhdGg6IFVDRC1TTk1QCiAgIEJpcnRoOiBORVQtU05NUAogICAgIChuZXcgYWdlbnQgQVBJIG1lcmdlZCB0byB0aGUgbWFpbiBicmFuY2gpCiAgIAoyMDAxLTExLTIxIDA2OjQzICBqYnBuCgogICAqIGNvbmZpZy5oLmluOgoKICAgICAtIElQdjYgY29uZmlnIGRlZnMKICAgCjIwMDEtMTEtMjEgMDY6MzYgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jICwgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIHJlbW92ZSBub3ctZXh0cmFuZW91cyAjaW5jbHVkZSAic25tcEJsYWhEb21haW4uaCIgbGluZXMKICAgCjIwMDEtMTEtMjEgMDM6MzkgIGpicG4KCiAgICogYXBwcy8uY3ZzaWdub3JlOgoKICAgW25vIGxvZyBtZXNzYWdlXQogICAKMjAwMS0xMS0yMCAwOTozOCAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcElQWERvbWFpbi5jICwgc25tcElQWERvbWFpbi5oOgoKICAgICAtIGR1aC4gIEZvcmdvdCBhIGNvdXBsZSBvZiB0aGluZ3MgdG8gZG8gd2l0aCBkb21haW4tYmFzZWQgdHJhbnNwb3J0CiAgICAgICBhZGRyZXNzIHBhcnNpbmcuCiAgIAoyMDAxLTExLTIwIDA5OjI5ICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSB1c2UgbmV3IGRvbWFpbi1iYXNlZCB0cmFuc3BvcnQgYWRkcmVzcyBwYXJzaW5nIGZvciBhZ2VudCBOU0FQcwogICAKMjAwMS0xMS0yMCAwOToyNyAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBBQUw1UFZDRG9tYWluLmggLAogICBzbm1wSVBYRG9tYWluLmMgLCBzbm1wVENQRG9tYWluLmMgLCBzbm1wVENQRG9tYWluLmgKICAgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmggLAogICBzbm1wVW5peERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uaCAsIHNubXBfYXBpLmMgLAogICBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaDoKCiAgICAgLSBkb21haW4tYmFzZWQgdHJhbnNwb3J0IGFkZHJlc3MgcGFyc2luZwogICAKMjAwMS0xMS0yMCAwOToxNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcFVEUElQdjZEb21haW4uYyAsIHNubXBVRFBJUHY2RG9tYWluLmg6CgogICAgIC0gVURQL0lQdjYgdHJhbnNwb3J0IGRvbWFpbi4gIE5vdGU6IGluY29tcGxldGUhCiAgIAoyMDAxLTExLTIwIDA4OjI5ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfaW5kZXguYyAsIGFnZW50X2luZGV4Lmg6CgogICAgIC0gdW5yZWdpc3Rlcl97c3RyaW5nLGludCxvaWR9X2luZGV4KCkgdXRpbGl0eSBmdW5jdGlvbnMgY29udHJpYnV0ZWQKICAgICAgIGJ5IERhbWlhbiBHaWxtdXJyYXkuCiAgIAoyMDAxLTExLTIwIDAyOjI2ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5oIChWNC0yLXBhdGNoZXMuMSksIHNubXBfYXBpLmg6CgogICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBkZWZpbml0aW9uIG9mIFNOTVBfTUFYX1NFQ19OQU1FX1NJWkUsIG5vdGVkIGJ5CiAgICAgICBLYXJsIE0uIEhlZ2Jsb29tLgogICAKMjAwMS0xMS0xOSAxNjo1OSAgZHJpZWh1aXMKCiAgICogc25tcGxpYi9hc24xLmg6CgogICBGaXggdHlwbyBpbiBjb21tZW50IFtrYXJsaGVnQG1pY3Jvc2hhcnAuY29tXQogICAKMjAwMS0xMS0xNiAwODozNCAgamJwbgoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICAgIC0gYWRkIHN1cHBvcnQgZm9yIFVuc2lnbmVkMzIvR2F1Z2UzMiB0eXBlcwogICAKMjAwMS0xMS0xNSAxMDowMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBwcm90b2NvbC5jIChWNC0yLXBhdGNoZXMuNSksIHByb3RvY29sLmM6CgogICAgIC0gc3RyaWN0ZXIgdGVzdCBmb3IgbnVsbCBPSURzCiAgIAoyMDAxLTExLTE1IDA4OjQ0ICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHJlYWQtb25seSBuYXR1cmUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgaWYgdmFsdWUgaXMKICAgICAgIGNvbmZpZ3VyZWQgdmlhIHRoZSBhdXRodHJhcGVuYWJsZSB0b2tlbgogICAKMjAwMS0xMS0xNSAwODo0NCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMgLCBhZ2VudF90cmFwLmMgLAogICBtaWJncm91cC9taWJJSS9zbm1wX21pYi5jOgoKICAgICAtIG1ha2UgdmFsdWUgb2Ygc25tcEVuYWJsZUF1dGhlblRyYXBzLjAgcGVyc2lzdGVudC4gIFNldHRpbmcgdmlhCiAgICAgICBhIHJlYWQtb25seSBjb25maWd1cmF0aW9uIGZpbGUgYWxzbyBtYWtlcyBvYmplY3Qgbm90V3JpdGFibGUgKGFzCiAgICAgICBzeXNDb250YWN0LjAgZXQgYWwuKS4KICAgCjIwMDEtMTEtMTUgMDY6NTcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gbGV0IFZBQ00gY2hlY2tzIHN1Y2NlZWQgZm9yIG5vbi1JUHY0IHRyYW5zcG9ydHMKICAgCjIwMDEtMTEtMTUgMDU6MTkgIGpicG4KCiAgICogdGVzdGluZy90ZXN0cy86IFQxMTFhZ2VudHhzZXQgLCBUMTIxcHJveHlzZXQ6CgogICAgIC0gdXNlIHBzeXNjb250YWN0IG5vdCBzeXNjb250YWN0IHRvIHNldCBpbml0aWFsIHZhbHVlIG9mIHN5c0NvbnRhY3QuMAogICAgICAgb2JqZWN0IHNpbmNlIHRoZSBsYXR0ZXIgYWxzbyBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seS4KICAgCjIwMDEtMTEtMTUgMDU6MDcgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wZC5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBkLmM6CgogICAgIC0gbWlub3IgZml4IHRvIGZvcm1hdHRpbmcgb2YgdXNhZ2UgbWVzc2FnZQogICAKMjAwMS0xMS0xNSAwNDowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvYWdlbnR4X2NvbmZpZy5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlICJzbm1wZC5oIiAoZm9yICNkZWZpbml0aW9uIG9mIE1BU1RFUl9BR0VOVCkKICAgICAtIGRvbid0IHN0cmR1cCgpIGFnZW50eHNvY2tldCB2YWx1ZSAtLSBkc19zZXRfc3RyaW5nIGRvZXMgaXQgZm9yIHlvdQogICAgIC0gY2hhbmdlIGRlYnVnZ2luZyB0byBmaXQgaW4gYmV0dGVyIHdpdGggcmVzdCBvZiBtb2R1bGUKICAgCjIwMDEtMTEtMTQgMTY6MDUgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluIChWNC0yLXBhdGNoZXMuWzcsN10pLCBjb25maWcuaC5pbgogICAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBpbml0IGZ1bmN0aW9uIGNoZWNraW5nIGluIG1vZHVsZXMKICAgCjIwMDEtMTEtMTQgMTY6MDAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGFnZW50eF9jb25maWcuYyAsIGFnZW50eF9jb25maWcuaAogICAsIG1hc3Rlci5jICwgbWFzdGVyLmggLCBzdWJhZ2VudC5oOgoKICAgc2xpZ2h0bHkgbW9kaWZpZWQgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gbW92ZSBhZ2VudHggY29uZmlndXJhdGlvbiBpbnRvCiAgIGEgc2VwYXJhdGUgZmlsZS4KICAgCjIwMDEtMTEtMTMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5oOgoKICAgZmlsZSBub3RpZmljYXRpb25fbG9nLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTcgIGhhcmRha2VyCgogICAqIGFwcHMvbm90aWZpY2F0aW9uX2xvZy5jOgoKICAgZmlsZSBub3RpZmljYXRpb25fbG9nLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMTM6NTUgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50L25zVHJhbnNhY3Rpb25UYWJsZS5jOgoKICAgZmlsZSBuc1RyYW5zYWN0aW9uVGFibGUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0xMyAxMzo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnQvbnNUcmFuc2FjdGlvblRhYmxlLmg6CgogICBmaWxlIG5zVHJhbnNhY3Rpb25UYWJsZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTExLTEzIDEzOjU1ICBoYXJkYWtlcgoKICAgKiBtaWJzL05FVC1TTk1QLUFHRU5ULU1JQi50eHQ6CgogICBmaWxlIE5FVC1TTk1QLUFHRU5ULU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTMgMDU6MjkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBKb2NoZW4gS21pZXRzY2ggdG8gcXVpZXRlbiBzb21lIG5vaXN5IGxvZ2dpbmcKICAgCjIwMDEtMTEtMTMgMDQ6MTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIHVzZSB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSB3aGVuIGFwcHJvcHJpYXRlIGluCiAgICAgICB1bnJlZ2lzdGVyX2FnZW50eF9saXN0KCkuCiAgIAoyMDAxLTExLTEzIDAzOjIzICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gcmVzZXQgdnItPm5hbWVsZW4gd2hlbiB3ZSd2ZSBmaW5pc2hlZCB3aXRoIGl0CiAgIAoyMDAxLTExLTEyIDIzOjE5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL2FsbF9oZWxwZXJzLmM6CgogICBmaWxlIGFsbF9oZWxwZXJzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTEtMTIgMjM6MTkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvYWxsX2hlbHBlcnMuaDoKCiAgIGZpbGUgYWxsX2hlbHBlcnMuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMS0wOCAwODowOSAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGJldHRlciBpbXBsZW1lbnRhdGlvbiBvZiB1bnJlZ2lzdGVyX21pYl90YWJsZV9yb3coKSwgd2hpY2ggdXNlcwogICAgICAgcmFuZ2VzIHByb3Blcmx5IGluIHRoZSBjYWxsYmFjayAoaGVuY2UgbXVjaCBtb3JlIGVmZmljaWVudCBmb3IKICAgICAgIEFnZW50WCkuCiAgIAoyMDAxLTExLTA3IDA5OjU2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIHJlbW92ZSBub3ctcmVkdW5kYW50IGFnZW50eF9idWlsZCBmdW5jdGlvbnMKICAgCjIwMDEtMTEtMDcgMDY6MzEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogY2xpZW50LmMgLCBtYXN0ZXJfYWRtaW4uYyAsCiAgIHByb3RvY29sLmM6CgogICAgIC0gdXNlIERFQlVHTVNHT0lEUkFOR0UoKSBpbiBhIGNvdXBsZSBvZiBwbGFjZXMgZm9yIG1vcmUgY29tcHJlaGVuc2l2ZQogICAgICAgZGVidWdnaW5nIG91dHB1dC4KICAgCiAgICAgLSBwYXJzZSB1bnJlZ2lzdGVyIHJhbmdlcyBwcm9wZXJseSwgYW5kIHVzZSB0aGUgcmFuZ2UgcHJvcGVybHkgZm9yCiAgICAgICBwYXNzaW5nIHRvIHVucmVnaXN0ZXJfbWliX2NvbnRleHQoKS4KICAgCjIwMDEtMTEtMDcgMDM6MzMgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfZGVidWcuYyAsIHNubXBfZGVidWcuaDoKCiAgICAgLSBhZGQgREVCVUdTTVNHT0lEUkFOR0UoKSBtYWNybyBmb3IgZGVidWdnaW5nIE9JRCByYW5nZXMKICAgCjIwMDEtMTEtMDYgMDY6MDQgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gcmVzZXQgdGhlIGluY2x1c2l2ZSBmbGFnIGluIGEgY291cGxlIG9mIGNhc2VzLCB0byBwcmV2ZW50IHNwdXJpb3VzCiAgICAgICBJTkNMVVNJVkUgZ2V0TmV4dCBiZWhhdmlvdXIKICAgCjIwMDEtMTEtMDUgMDg6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gY29ycmVjdCBidWcgaW4gcmFuZ2Vfc3ViaWQgdHdlYWsgY29kZQogICAKMjAwMS0xMS0wNSAwNTowMCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgICAtIGNhbGN1bGF0ZSB1cHBlciBib3VuZCBmb3IgdGFibGUgcm93IHJlZ2lzdHJhdGlvbnMgc2xpZ2h0bHkgZGlmZmVyZW50bHkKICAgCjIwMDEtMTEtMDEgMDk6MzUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBwcm90b2NvbC5jICwKICAgcHJvdG9jb2wuaCAsIHN1YmFnZW50LmM6CgogICAgIC0gaW1wbGVtZW50IHJlbG9jYXRpbmcgYnVmZmVyIHZlcnNpb24gb2YgYWdlbnR4X2J1aWxkKCkgcm91dGluZXMsCiAgICAgICBhbmQgdXNlIHRoZW0uCiAgIAoyMDAxLTExLTAxIDA5OjMzICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9hcGkuaDoKCiAgICAgLSBzdXBwb3J0IGZvciByZWxvY2F0YWJsZSBidWZmZXIgYnVpbGQgY2FsbGJhY2tzIHZpYSBvcGVuX2V4IGNhbGxzCiAgIAoyMDAxLTEwLTMwIDA3OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBmaXggYnVnIHdoZXJlYnkgaW50ZXJmYWNlIGNvdW50ZXIgaXMgbm90IHJlc2V0LCBub3RlZCBieSAoYW1vbmdzdAogICAgICAgb3RoZXJzKSBWaWN0b3IgS2lyaGVuc2h0ZWluIGluIHBhdGNoICM0NzQwNjQuCiAgIAoyMDAxLTEwLTMwIDAzOjI0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBtYWtlIHRoZSBpbml0aWFsIGJ1ZmZlciBzaXplIDIwNDggaW4gc25tcF9yZXNlbmRfcmVxdWVzdCAoYXMgaW4KICAgICAgIF9zZXNzX2FzeW5jX3NlbmQpIHRvIG1ha2Ugc3VjY2Vzcy9mYWlsIGJlaGF2aW91ciBmb3IgQWdlbnRYIG1vcmUKICAgICAgIHByZWRpY3RhYmxlIChzaW5jZSBBZ2VudFggU1RJTEwgZG9lc24ndCB1c2UgcmVsb2NhdGluZyBidWZmZXJzLAogICAgICAgYm9vIGhpc3MpLgogICAKMjAwMS0xMC0yOSAyMzoxNiAgcnN0b3J5CgogICAqIGxvY2FsL21pYjJjLmFycmF5LWF1dG8uY29uZjoKCiAgIGZpbGUgbWliMmMuYXJyYXktYXV0by5jb25mIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI5IDIzOjE2ICByc3RvcnkKCiAgICogbG9jYWwvbWliMmMuYXJyYXktdXNlci5jb25mOgoKICAgZmlsZSBtaWIyYy5hcnJheS11c2VyLmNvbmYgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5LmM6CgogICBmaWxlIHRhYmxlX2FycmF5LmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTMgIHJzdG9yeQoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2FycmF5Lmg6CgogICBmaWxlIHRhYmxlX2FycmF5Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMTAtMjggMTQ6NTAgIHJzdG9yeQoKICAgKiBzbm1wbGliL29pZF9hcnJheS5oOgoKICAgZmlsZSBvaWRfYXJyYXkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0yOCAxNDo1MCAgcnN0b3J5CgogICAqIHNubXBsaWIvb2lkX2FycmF5LmM6CgogICBmaWxlIG9pZF9hcnJheS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTEwLTI2IDE5OjQxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmM6CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggZnVuY3Rpb24gbmFtZSBpbiBlcnJvciBtZXNzYWdlCiAgIAoyMDAxLTEwLTI2IDA2OjA1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogaW50ZXJmYWNlcy5jICwgaW50ZXJmYWNlcy5oOgoKICAgICAgLSBhZGQgc3VwcG9ydCBmb3IgcnggYW5kIHR4IGRyb3AgY291bnRzIChpZkluRGlzY2FyZHMgYW5kCiAgICAgICAgaWZPdXREaXNjYXJkcykgZm9yIExpbnV4ICgyLjIrKQogICAKMjAwMS0xMC0yNiAwNTo1NyAgamJwbgoKICAgKiBhY2xvY2FsLm00OgoKICAgICAtIGFkZCBpZl9pcWRyb3BzIG1lbWJlciB0byBzdHJ1Y3QgaWZuZXQKICAgCjIwMDEtMTAtMjYgMDQ6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgICAtIGFkZCB0cmFuc2xhdGlvbiBmb3IgYXRtKDM3KSB0eXBlIGludGVyZmFjZXMgZm9yIExpbnV4CiAgIAoyMDAxLTEwLTI2IDAzOjQzICBqYnBuCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgICAtIGRvY3VtZW50IHRoZSBmYWN0IHRoYXQgc2V0dGluZyBzeXNMb2NhdGlvbi4wIChldCBhbC4pIHZpYSBhCiAgICAgICBzeXNsb2NhdGlvbiAob3IgZXF1aXZhbGVudCkgdG9rZW4gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHksCiAgICAgICByZXR1cm5pbmcgYSBub3RXcml0YWJsZSBlcnJvciByZXNwb25zZSBpZiBhbiBhdHRlbXB0IGlzIG1hZGUgdG8KICAgICAgIFNFVCBpdC4KICAgCjIwMDEtMTAtMjQgMTA6MDcgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBzeXN0ZW1fbWliLmMgKFY0LTItcGF0Y2hlcy40KSwKICAgc3lzdGVtX21pYi5jOgoKICAgICAtIGZpeCB0eXBvIG5vdGVkIGJ5IFRpbSBEaWV0egogICAKMjAwMS0xMC0yNCAwODo0MyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IHN5c3RlbV9taWIuYyAsIHN5c3RlbV9taWIuaDoKCiAgICAgLSBpbXBsZW1lbnQgcGVyc2lzdGVuY2UgZm9yIHN5c0xvY2F0aW9uLjAsIHN5c0NvbnRhY3QuMCBhbmQgc3lzTmFtZS4wCiAgIAogICAgIC0gcHJlc2VuY2Ugb2YgYSBzeXNsb2NhdGlvbiB0b2tlbiBpbiBzbm1wZC5jb25mIG1ha2VzIHN5c0xvY2F0aW9uLjAKICAgICAgIG5vbi13cml0YWJsZSAocmV0dXJucyBub3RXcml0YWJsZSBvbiBTRVQgYXR0ZW1wdHMpCiAgIAoyMDAxLTEwLTI0IDA1OjA4ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvOiBocl9zd2luc3QuYyAoVjQtMi1wYXRjaGVzLjIpLCBocl9zd2luc3QuYzoKCiAgICAgLSBmaXggc21hbGwgbWVtb3J5IGxlYWsganVzdCBpbnRyb2R1Y2VkCiAgIAoyMDAxLTEwLTI0IDAzOjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmM6CgogICAgIC0gdXNlIHBrZ2luZm8gaW50ZXJmYWNlIHRvIGRldGVybWluZSB0eXBlIG9mIHNvZnR3YXJlIHBhY2thZ2UgbW9yZQogICAgICAgc3BlY2lmaWNhbGx5IGlmIHBvc3NpYmxlLiAgU2xpZ2h0IHZhcmlhdGlvbiBvbiBwYXRjaCAjNDczNjY5LCBzdWJtaXR0ZWQKICAgICAgIGJ5IFN0ZWZhbiBSYWRtYW4uCiAgIAoyMDAxLTEwLTI0IDAzOjM4ICBqYnBuCgogICAqIGFjY29uZmlnLmggLCBjb25maWd1cmUuaW46CgogICAgIC0gYXV0b2NvbmYgc3VwcG9ydCBmb3IgZGV0ZWN0aW5nIHBrZ2luZm8gaW50ZXJmYWNlIGluIGxpYmFkbS4gIFRoYW5rcwogICAgICAgdG8gU3RlZmFuIFJhZG1hbiAocGF0Y2ggIzQ3MzY2OSkuCiAgIAoyMDAxLTEwLTIxIDA3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYy5pdGVyYXRlLmNvbmY6CgogICBmaWxlIG1pYjJjLml0ZXJhdGUuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0xOSAwOTo1MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZjoKCiAgIGZpbGUgbWliMmMuY3JlYXRlLWRhdGFzZXQuY29uZiB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0xMC0xNyAwNzo1MiAgZHRzMTIKCiAgICogRkFRIChWNC0yLXBhdGNoZXMuMiksIEZBUToKCiAgIE1lbnRpb24gdGhlIE1SVEcgdHV0b3JpYWwgd2ViIHBhZ2VzCiAgICAgKGFzIHN1Z2dlc3RlZCBieSBDaHJpc3RpYW4gUm9ib3R0b20gUmVpcykKICAgCjIwMDEtMTAtMTUgMDY6NDkgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBJUFhEb21haW4uYyAsIHNubXBVRFBEb21haW4uYzoKCiAgICAgLSB6ZXJvIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZXMuICBIb3BlZnVsbHkgZml4ZXMgcHJvYmxlbXMgb24gTmV0QlNECiAgICAgICBub3RlZCBieSBKb2FraW0gQWx0aGluaSAocmVsYXRlZCB0byBzYV9sZW4gbWVtYmVyIHByb2JhYmx5Pz8pLgogICAKMjAwMS0xMC0xMSAxNjozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBPcHBzZXMuCiAgIAoyMDAxLTEwLTExIDE0OjE1ICBoYXJkYWtlcgoKICAgKiBtYW4vTWFrZWZpbGUuaW4gLCBtYW4vc25tcF9hcGlfZXJyc3RyaW5nLjMgLAogICBtYW4vc25tcF9jb25maWcuNS5kZWYgLCBtYW4vc25tcF9lcnJvci4zICwKICAgbWFuL3NubXBfcGVycm9yLjMgLCBtYW4vc25tcF9zZXNzX3BlcnJvci4zICwKICAgbWFuL3NubXBjbWQuMSAsIG1hbi9zbm1wZC4xLmRlZiAsIG1hbi9zbm1wZC5jb25mLjUuZGVmCiAgICwgbWFuL3NubXBzZXQuMSAsIG1hbi9zbm1wdHJhbnNsYXRlLjEgLAogICBtYW4vc25tcHRyYXBkLjggLCBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYgLAogICBtYW4vc25tcHdhbGsuMSAsIG1pYnMvRElTTUFOLVNDUklQVC1NSUIudHh0ICwKICAgbWlicy9JQU5BaWZUeXBlLU1JQi50eHQgLCBtaWJzL01ha2VmaWxlLm1pYiAsCiAgIG1pYnMvUkVBRE1FLm1pYnMgLCBtaWJzL1NNVVgtTUlCLnR4dCAsCiAgIG1pYnMvVUNELVNOTVAtTUlCLnR4dCAsIG1pYnMvbWliZmV0Y2ggLCBtaWJzL3JmY2xpc3QKICAgLCBtaWJzL3NtaXN0cmlwICwgcGVybC9TTk1QL1NOTVAueHMgLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9hc24xLmMgLAogICBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYyAsIHNubXBsaWIvaW50NjQuYyAsCiAgIHNubXBsaWIvbWliLmMgLCBzbm1wbGliL21pYi5oICwgc25tcGxpYi9tdF9zdXBwb3J0LmMKICAgLCBzbm1wbGliL210X3N1cHBvcnQuaCAsIHNubXBsaWIvcGFyc2UuYyAsCiAgIHNubXBsaWIvc2NhcGkuYyAsIHNubXBsaWIvc2NhcGkuaCAsIHNubXBsaWIvc25tcF9hcGkuYwogICAsIHNubXBsaWIvc25tcF9hdXRoLmMgLCBzbm1wbGliL3NubXBfY2xpZW50LmMgLAogICBzbm1wbGliL3NubXBfZGVidWcuYyAsIHNubXBsaWIvc25tcHVzbS5jICwKICAgc25tcGxpYi9zbm1wdjMuYyAsIHNubXBsaWIvc3lzdGVtLmMgLCBzbm1wbGliL3Rvb2xzLmMKICAgLCBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmggLCB0ZXN0aW5nL01ha2VmaWxlLmluCiAgICwgd2luMzIvY29uZmlnLmggLCB3aW4zMi9jb25maWcuaC5ib3JsYW5kOgoKICAgbWFzc2l2ZSBtZXJnZSBmcm9tIHRoZSBwYXRjaGVzIGJyYW5jaCB0byB0aGUgbWFpbiBsaW5lLgogICAKMjAwMS0xMC0xMSAxNDowMSAgaGFyZGFrZXIKCiAgICogQ09QWUlORyAsIENoYW5nZUxvZyAsIEZBUSAsIE1ha2VmaWxlLmluICwKICAgTkVXUyAsIFJFQURNRSAsIGFjY29uZmlnLmggLCBhY2xvY2FsLm00ICwKICAgY29uZmlnLmd1ZXNzICwgY29uZmlnLmguaW4gLCBjb25maWcuc3ViICwKICAgY29uZmlndXJlICwgY29uZmlndXJlLmluICwgbHRjb25maWcgLCBsdG1haW4uc2gKICAgLCBtYWtlZmlsZWluZGVwZW5kLnBsICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oCiAgICwgYWdlbnQvTWFrZWZpbGUuaW4gLCBhZ2VudC9hZ2VudF9pbmRleC5jICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmggLAogICBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jICwgYWdlbnQvYWdlbnRfdHJhcC5jICwKICAgYWdlbnQvc25tcF9hZ2VudC5oICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wX3ZhcnMuaCAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiAsIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYmluY2wuaCAsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgKICAgLCBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmMgLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyAsIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL210YV9zZW5kbWFpbC5oICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvcm91dGVfd3JpdGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwVGFibGUuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyVGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2ZpbGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9uZXRic2QxLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwgYXBwcy9NYWtlZmlsZS5pbgogICAsIGFwcHMvc25tcGRlbHRhLmMgLCBhcHBzL3NubXBkZi5jICwKICAgYXBwcy9zbm1wZ2V0LmMgLCBhcHBzL3NubXBnZXRuZXh0LmMgLCBhcHBzL3NubXBzZXQuYwogICAsIGFwcHMvc25tcHN0YXR1cy5jICwgYXBwcy9zbm1wdGFibGUuYyAsCiAgIGFwcHMvc25tcHRlc3QuYyAsIGFwcHMvc25tcHRyYW5zbGF0ZS5jICwKICAgYXBwcy9zbm1wdHJhcC5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jICwgYXBwcy9zbm1wdXNtLmMgLCBhcHBzL3NubXB2YWNtLmMKICAgLCBhcHBzL3NubXB3YWxrLmMgLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluCiAgICwgbG9jYWwvbWliMmMuY29uZiAsIGxvY2FsL21pYjJjLnZhcnR5cGVzLmNvbmYgLAogICBsb2NhbC9wYXNzX3BlcnNpc3R0ZXN0ICwgbG9jYWwvdGttaWI6CgogICBtYXNzaXZlIG1lcmdlIGZyb20gdGhlIHBhdGNoZXMgYnJhbmNoIHRvIHRoZSBtYWluIGxpbmUuCiAgIAoyMDAxLTEwLTA5IDA3OjE0ICBoYXJkYWtlcgoKICAgKiBDb2RpbmdTdHlsZToKCiAgIFNvbWV0aW1lcyB3ZSBmZWVsIGxpa2UgYSAtbnV0CiAgIAoyMDAxLTEwLTA5IDA2OjE1ICBqYnBuCgogICAqIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmM6CgogICAgIC0gcHJvcGVybHkgYWNjb3VudCBmb3IgdGhlIGxlbmd0aCBvZiB0aGUgc3VmZml4IGluIHRoZSB2YXJpYWJsZQogICAgICAgdGFibGUgaW4gcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpCiAgIAoyMDAxLTEwLTA4IDA4OjUzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYzoKCiAgICAgLSBkZWNsYXJlIHZlcnNpb25fc3lzb2lkX2xlbiBhcyBleHRlcm4gSU5UIG5vdCBleHRlcm4gb2lkLCBzbyBhcyB0bwogICAgICAgbWF0Y2ggaXRzIGFjdHVhbCBkZWZpbml0aW9uIGluIHN5dGVtX21pYi5jLiAgVGhpcyBjYXVzZWQgYWxsIGtpbmRzIG9mCiAgICAgICBmdW4gJiBnYW1lcyBvbiBMaW51eCBvbiBhIEFscGhhLgogICAKMjAwMS0xMC0wNCAwODozMSAgamJwbgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYyAsIGNhbGxiYWNrLmg6CgogICAgIC0gYWRkIGZ1bmN0aW9uIHNubXBfY2FsbGJhY2tfbGlzdCgpIHRvIHJldHVybiBsaXN0IG9mIGNhbGxiYWNrcyBmb3IgYQogICAgICAgZ2l2ZW4gPG1ham9yLCBtaW5vcj4gcGFpci4KICAgCjIwMDEtMTAtMDQgMDc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6CgogICBmaWxlIHBhc3NfcGVyc2lzdHRlc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0xMC0wMyAwNTo0MiAgamJwbgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAgIC0gY2hhbmdlIGV4cHJlc3Npb24gYXQgbC4gNDE1IGZyb206CiAgIAogICAgICAgICAgICprY3N0cmluZysrID0gKmtjc3RyaW5nIF4gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGhhcyB1bmRlZmluZWQgYmVoYXZpb3VyIHRvOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyBePSAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaXMgb2theSAoc2luY2UgKmtjc3RyaW5nIGlzIG9ubHkgZXZhbHVhdGVkIG9uY2UpLiAgU2ltaWxhcmx5CiAgICAgICBhdCBsLiA1MzAuICBUaGUgcHJldmlvdXMgY29uc3RydWN0cyBjYXVzZSB3YXJuaW5ncyB3aXRoIEdDQzMgYW5kCiAgICAgICBzb21lIG90aGVyIGNvbXBpbGVycy4gIFRoYW5rcyB0byBOaWVsIE1hcmt3aWNrIHdobyBub3RlZCB0aGlzIGluCiAgICAgICBidWcgIzQ2NTk2OS4KICAgCjIwMDEtMTAtMDMgMDM6MTEgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBkbyBTTk1QRF9DQUxMQkFDS19VTlJFR0lTVEVSX09JRCBjYWxsYmFja3MgaW4KICAgICAgIHVucmVnaXN0ZXJfbWlic19ieV9zZXNzaW9uKCkgLS0gY2FsbGVkIHdoZW4gQWdlbnRYIHN1YmFnZW50cwogICAgICAgZGlzYXBwZWFyLgogICAKMjAwMS0xMC0wMiAwNjowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYzoKCiAgICAgLSBkb24ndCBzZW5kIEFTTl9QUklWX0lOQ0xfUkFOR0UgYW5kIEFTTl9QUklWX0VYQ0xfUkFOR0Ugb24tdGhlLXdpcmUKICAgCjIwMDEtMDktMjYgMDg6MDMgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBhbGxvdyBzcGxpdF9zdWJ0cmVlKCkgdG8gZG8gYSBzcGxpdCBpbiB0aGUgbWlkZGxlIG9mIGEgY29sdW1uLAogICAgICAga2VlcGluZyB0aGUgcmVsZXZhbnQgdmFyaWFibGUgaW4gYm90aCB0aGUgb2xkIHRyZWUgYW5kIHRoZSBuZXcKICAgICAgIHRyZWUgKGFyaXNlcyBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbnMpLgogICAKICAgICAtIHBhdGNoIGZyb20gRGFtaWFuIEdpbG11cnJheSBmb3IgcmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpIHdoaWNoCiAgICAgICBhbGxvd3MgaXQgdG8gY29wZSB3aXRoIG5vbi16ZXJvIGxlbmd0aCB2YXJpYWJsZXMgYW5kIGFsc28KICAgICAgIG5vbi1jb250aWd1b3VzIE9JRHMgZm9yIGFkamFjZW50IGNvbHVtbnMuCiAgIAogICAgIC0gcmV3cml0dGVuIGR1bXBfcmVnaXN0cnkoKSB0aGF0IHVzZXMgcmVhbGxvY2F0aW5nIHByaW50IGZ1bmN0aW9ucwogICAgICAgYW5kIGFsc28gcHJpbnRzIG91dCB2YXJpYWJsZSBsaXN0cy4KICAgCjIwMDEtMDktMjYgMDc6NDUgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gYWxsb3cgZm9yIHRoZSBwb3NzaWJpbGl0eSBvZiBzdWJ0cmVlIG5hbWUgYmVpbmcgbG9uZ2VyIHRoYW4KICAgICAgIHJlcXVlc3RlZCBuYW1lIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHN1ZmZpeCBmb3IgdmFyaWFibGUgbWF0Y2hpbmcuCiAgIAogICAgIC0gYmUgc3RyaWN0IGFib3V0IHN1YnRyZWUgY2h1bmtzIGJlaW5nIGluY2x1c2l2ZSBvZiB0aGUgc3RhcnQgT0lECiAgICAgICBhbmQgZXhjbHVzaXZlIG9mIHRoZSBlbmQgT0lEIChzaG93cyB1cCBiaWcgdGltZSBpbiBBZ2VudFgpLgogICAKMjAwMS0wOS0yNiAwNzoyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBkb24ndCBkbyBnZXROZXh0IHJlcXVlc3RzIG9uIGV4Y2x1c2l2ZSBzZWFyY2hSYW5nZXMgdGhhdCBiZWdpbiBpbgogICAgICAgYSB0cmVlIG1hcmtlZCBhcyBhIGZ1bGx5LXF1YWxpZmllZCBpbnN0YW5jZSAodGhleSBhcmUgZG9vbWVkIHRvCiAgICAgICBmYWlsKS4gIFNraXAgdG8gdGhlIG5leHQgcGFydCBvZiB0aGUgdHJlZSBzdHJhaWdodCBhd2F5LgogICAKMjAwMS0wOS0yNiAwNzoxOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmM6CgogICAgIC0gYnJpbmcgZGVidWdnaW5nIHRva2VucyBpbnRvIGxpbmUgd2l0aCByZXN0IG9mIEFnZW50WCBjb2RlCiAgIAoyMDAxLTA5LTI1IDA4OjE1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlaW5zdGF0ZSBhIG1pc3Npbmcgc3BhY2UgY2hhcmFjdGVyCiAgIAoyMDAxLTA5LTI1IDAzOjU4ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlbW92ZSBzcHVyaW91cyBjYXN0CiAgIAoyMDAxLTA5LTI1IDAzOjQ1ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICAgIC0gZml4IHBvc3NpYmxlIGluZmVsaWNpdHkgd2hlbiBwcmludGluZyBhbmQgc3lzbG9nZ2luZyAobm90IHN1cmUgdGhpcyBpcwogICAgICAgYWN0dWFsbHkgcG9zc2libGUgYnV0KQogICAKMjAwMS0wOS0yNSAwMzowOSAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGludGVncmF0ZSBzb21lIGNoYW5nZXMgZnJvbSB0aGUgVjQtMi1wYXRjaGVzIGJyYW5jaDogSGFycmllJ3MKICAgICAgIHByb3RvdHlwZXMgYW5kIFdlcydzIGZpeCBmb3IgYnVnICAjNDYzMjI2LgogICAKMjAwMS0wOS0yNSAwMzowMSAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBmaXggc2lnbmVkbmVzcyBvZiB0aW1lIHN0dWZmCiAgIAoyMDAxLTA5LTI1IDAyOjQ3ICBqYnBuCgogICAqIHNubXBsaWIvOiBzbm1wX2xvZ2dpbmcuYyAsIHNubXBfbG9nZ2luZy5oOgoKICAgICAtIG1ha2UgYXJndW1lbnQgb2Ygc25tcF9lbmFibGVfc3lzbG9nX2lkZW50IGNvbnN0CiAgIAogICAgIC0gZG9uJ3Qgc3RyZHVwIERFRkFVTFRfTE9HX0lEIGlmIGEgTlVMTCBhcmcgaXMgZ2l2ZW4KICAgCjIwMDEtMDktMjQgMDk6MzkgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAgLSBtYWtlIHVzZSBvZiByZXdyaXR0ZW4gb3V0cHV0IGZ1bmN0aW9ucyBpbiBzbm1wdHJhcGRfbG9nLmMgd2hpY2gKICAgICAgIGF2b2lkIGZpeGVkIGxlbmd0aCBidWZmZXJzLgogICAKICAgICAtIGZpeCBidWcgbm90ZWQgaW4gc3VwcG9ydCByZXF1ZXN0ICM0NTY2NDYgKGN1c3RvbSB0cmFwIGZvcm1hdCB3YXMKICAgICAgIGJlaW5nIGlnbm9yZWQgZm9yIHYyIHRyYXBzIGFuZCBpbmZvcm1zKS4gIFRoYW5rcyB0bwogICAgICAgRy5QcmluY2lwYXRvQG1vdG9yb2xhLmNvbSBmb3Igc3BvdHRpbmcgdGhpcyBvbmUuCiAgIAogICAgIC0gY29ycmVjdCB1c2FnZSBmb3IgLVAgb3B0aW9uIHRvIHJlZmxlY3QgdGhhdCBpdCBjYXVzZXMgb3V0cHV0IG9uCiAgICAgICBzdGRlcnIgbm90IHN0ZG91dC4KICAgCjIwMDEtMDktMjQgMDk6MzYgIGpicG4KCiAgICogYXBwcy86IHNubXB0cmFwZF9sb2cuYyAsIHNubXB0cmFwZF9sb2cuaDoKCiAgICAgLSByZXdyaXRlIG9mIG91dHB1dCBmdW5jdGlvbnMgdG8gYXZvaWQgdXNlIG9mIGZpeGVkLWxlbmd0aCBidWZmZXJzCiAgIAoyMDAxLTA5LTIwIDEzOjA0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUgLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2dtYXRjaC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9nbWF0Y2guaCAsIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgIG5ldyBsb2dtYXRjaCBtaWIgZnJvbSBTdGVwaGFuIFdlbnplbC4KICAgCjIwMDEtMDktMTUgMDg6NDAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gb3ZlcnJpZGUgZXhjbHVzaXZlIHNlYXJjaFJhbmdlIGdldE5leHQgb3BlcmF0aW9ucyB3aGVuIHJldHJ5aW5nCiAgICAgICBvcGVyYXRpb25zCiAgIAoyMDAxLTA5LTE1IDA4OjM5ICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oOgoKICAgICAtIGltcHJvdmVkIHN1cHBvcnQgZm9yIEFnZW50WC1zdHlsZSBpbmNsdXNpdmUgc2VhcmNoUmFuZ2UgZ2V0TmV4dAogICAKMjAwMS0wOS0xNCAxNDo0MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlza2lvLmM6CgogICBwYXRjaCAjNDQzMTE1IGZyb20gWWltaW4gR2U6IGRpc2tpbyBzdXBwb3J0IGZvciBmcmVlYnNkNAogICAKMjAwMS0wOS0xNCAxNDozNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYyAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLAogICBzbm1wbGliL3NubXBfbG9nZ2luZy5oOgoKICAgUGF0Y2ggIzQ0MDMyMCBmcm9tIE1hcmsgRmVybGF0dGU6CiAgIAogICAxKSBBZGRzIGEgbmV3IGZ1bmN0aW9uIHRvIHRoZSBzbm1wX2xvZ2dpbmcgQVBJCiAgICAgIChzbm1wX2VuYWJsZV9zeXNsb2dfaWRlbnQoY2hhciAqaWRlbnQpKQogICAKICAgMikgUG9ydHMgc25tcHRyYXBkIHRvIHVzZSB0aGUgZXhpc3Rpbmcgc25tcF9sb2dnaW5nIEFQSSBpbnN0ZWFkIG9mCiAgICAgIHVzaW5nIHN5c2xvZyBkaXJlY3RseS4KICAgCiAgIDMpIFBvcnRzIHNubXBfbG9nZ2luZy5bY2hdIHRvIHVzZSB0aGUgV2luMzIgRXZlbnQgTG9nIHdoZW4gY29tcGlsZWQgb24KICAgICAgV2luMzIuIEkgZGlkbid0IHVwZGF0ZSB0aGUgVmlzdWFsIEMgcHJvamVjdCBmaWxlcywgYmVjYXVzZSBJIG9ubHkKICAgICAgaGF2ZSBhY2Nlc3MgdG8gYSBuZXdlciB2ZXJzaW9uIG9mIFZDLCBhbmQgSSBkaWRuJ3Qga25vdyBpZiB5b3UKICAgICAgd2FudGVkIHRoZW0gdXBkYXRlZC4gVGhlIGFkdmFwaTMyIGxpYnJhcnkgbmVlZHMgdG8gYmUgYWRkZWQgdG8gdGhlCiAgICAgIHByb2plY3QgaW4gb3JkZXIgZm9yIHRoaXMgdG8gd29yayBvbiBXaW4zMiAodGhhdCdzIHdoZXJlIHRoZSBldmVudAogICAgICBsb2cgQVBJIGlzKS4KICAgCjIwMDEtMDktMTQgMTQ6MjIgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluICwgY29uZmlndXJlOgoKICAgSSwgdWgsIGNvdWdoLCB1aCBmb3Jnb3QgdG8gcnVuIGF1dG9jb25mL2F1dG9oZWFkZXIuICBEYXZlOiBkb24ndCBraWxsIG1lLgogICAKMjAwMS0wOS0xNCAxNDoxOSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QLzogU05NUC5wbSAsIFNOTVAueHM6CgogICBQYXRjaCAjNDI4ODg0OiBBZGQgLVBSIGxpa2Ugb3B0aW9uIHRvIHBlcmwgbW9kdWxlIChmcm9tIEpvZSBDbGFya2UpLgogICAKMjAwMS0wOS0xNCAxNDowOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FICwgYWNjb25maWcuaCAsIGNvbmZpZ3VyZS5pbiAsCiAgIGFnZW50L2FnZW50X3RyYXAuYyAsIGFnZW50L21pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3N5c3RlbV9taWIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Vycm9ybWliLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdmVyc2lvbmluZm8uYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9uZXRic2QxLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsCiAgIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBsaWIvc25tcEFBTDVQVkNEb21haW4uaAogICAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uaAogICAsIHNubXBsaWIvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcHYzLmMgLAogICBzbm1wbGliL2FzbjEuaDoKCiAgIEFwcGxpZWQgYSBtb2RpZmllZCB2ZXJzaW9uIG9mIHBhdGNoICM0MjczNDMgZnJvbSBIYXJyaWU6CiAgICAgbWFrZSBlbnRlcnByaXNlIElEIHJlbG9jYXRhYmxlIHdoZXJlIGxlZ2FsIHRvIGRvIHNvCiAgIAoyMDAxLTA5LTE0IDEyOjA5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IE1ha2VmaWxlLmluICwgbWliZ3JvdXAvTWFrZWZpbGUuaW46CgogICBBbHRlcm5hdGl2ZSBzb2x1dGlvbiB0byBwYXRjaCAjMzEyNjk0OgogICAgIG1vdmUgZGF0ZV9uX3RpbWUgdXRpbGl0aWVzIHRvIHNubXBsaWIvc25tcC10Yy5jLgogICAKMjAwMS0wOS0xNCAxMjowOCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3V0aWxzLmMgLCBocl91dGlscy5oOgoKICAgcmVtb3ZlZC4gIEZ1bmN0aW9uYWxpdHkgbW92ZWQgdG8gc25tcGxpYi9zbm1wLXRjLltjaF0KICAgCjIwMDEtMDktMTQgMTI6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QuaCAsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5oICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jICwgc25tcGxpYi9NYWtlZmlsZS5pbiAsCiAgIHNubXBsaWIvc25tcC10Yy5jICwgc25tcGxpYi9zbm1wLXRjLmg6CgogICBBbHRlcm5hdGl2ZSBzb2x1dGlvbiB0byBwYXRjaCAjMzEyNjk0OgogICAgIG1vdmUgZGF0ZV9uX3RpbWUgdXRpbGl0aWVzIHRvIHNubXBsaWIvc25tcC10Yy5jLgogICAKMjAwMS0wOS0xNCAwOTo0OCAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIGZpbGUgY29uZmlnLmguYm9ybGFuZCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA5LTE0IDA2OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlci5jICwgbWFzdGVyX3JlcXVlc3QuYyAsCiAgIG1hc3Rlcl9yZXF1ZXN0Lmg6CgogICAgIC0gdXNlIGluY2x1c2l2ZSBzZWFyY2ggcmFuZ2Ugb25seSB3aGVuIGFwcHJvcHJpYXRlIGZvciBnZXROZXh0CiAgICAgICBxdWVyaWVzCiAgIAoyMDAxLTA5LTEyIDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBDYWxsYmFja0RvbWFpbi5jOgoKICAgZmlsZSBzbm1wQ2FsbGJhY2tEb21haW4uYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOS0xMiAwNjo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wQ2FsbGJhY2tEb21haW4uaDoKCiAgIGZpbGUgc25tcENhbGxiYWNrRG9tYWluLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDktMDYgMDc6NDAgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX3ZhcnMuYzoKCiAgICAgLSBpZiBpbmNsdWRlIGJpdCBpcyBzZXQgaW4gYW4gQWdlbnRYIFNlYXJjaFJhbmdlIChoZW5jZSB0eXBlIG9mIHZhcmJpbmQKICAgICAgIGlzIEFTTl9QUklWX0lOQ0xfUkFOR0UpLCB0cnkgYW4gZXhhY3QgcXVlcnkgZmlyc3QgYmVjYXVzZSBhbiBvYmplY3QKICAgICAgIHdob3NlIG5hbWUgaXMgbGV4aS1lcXVhbCBpcyBhIHZhbGlkIHJlc3BvbnNlOyBpZiBleGFjdCBxdWVyeSBmYWlscwogICAgICAgdGhlbiBmYWxsIGJhY2sgdG8gYW4gaW5leGFjdCBxdWVyeS4KICAgCjIwMDEtMDktMDYgMDc6MzggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4LzogbWFzdGVyLmMgLCBtYXN0ZXJfcmVxdWVzdC5jICwKICAgcHJvdG9jb2wuYyAsIHN1YmFnZW50LmM6CgogICAgIC0gb29wcywgdXNlZCBJTkNML0VYQ0wgd3Jvbmcgd2F5IHJvdW5kIGluIGEgY291cGxlIG9mIHBsYWNlcwogICAKICAgICAtIGJldHRlciB0ZXN0IGZvciBzY29waW5nIHJlcXVpcmVtZW50cyBpbiBzdWJhZ2VudAogICAKMjAwMS0wOS0wNCAwNzoxNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGFkZCBtaXNzaW5nIGJyZWFrOyBhZnRlciBwcm9jZXNzaW5nIC1QIG9wdGlvbiwgbm90ZWQgYnkgQm90b25kCiAgICAgICBUYXJuYXkgKHNlZSBwYXRjaCAjNDU4MzI3KQogICAKMjAwMS0wOC0yOCAwMzowNCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfYWdlbnQuYyAoVjQtMi1wYXRjaGVzLjcpLCBzbm1wX2FnZW50LmM6CgogICAgIC0gYWRkIG1pc3NpbmcgI2luY2x1ZGUgPHRjcGQuaD4gaWYgdXNpbmcgbGlid3JhcCwgbm90ZWQgYnkgTmF0aGFuCiAgICAgICBOZXVsaW5nZXIgKHBhdGNoICM0NTM4MzEpLgogICAKMjAwMS0wOC0yOCAwMjozOCAgamJwbgoKICAgKiBhZ2VudC86IHNubXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcGQuYzoKCiAgICAgLSBhdm9pZCB1c2Ugb2YgcHJlLXByb2Nlc3NvciBkaXJlY3RpdmVzIGluc2lkZSBwcmludGYoKSBjYWxsLCB3aGljaAogICAgICAgaXMgYSBtYWNybyBpbiBnbGliYywgbWFraW5nIHRoaXMgYW4gdW5kZWZpbmVkIGJlaGF2aW91cgogICAgICAgY29uc3RydWN0ICh3aGljaCBHQ0MgMy4wIHJlZnVzZXMgdG8gY29tcGlsZSkuICBTZWUgYnVnICM0NTU4MDQgZm9yCiAgICAgICBmdXJ0aGVyIGRldGFpbHMuCiAgIAoyMDAxLTA4LTI0IDEwOjAwICByc3RvcnkKCiAgICogc25tcGxpYi9kYXRhX2xpc3QuaDoKCiAgIGZpbGUgZGF0YV9saXN0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDgtMjQgMTA6MDAgIHJzdG9yeQoKICAgKiBzbm1wbGliL2RhdGFfbGlzdC5jOgoKICAgZmlsZSBkYXRhX2xpc3QuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wOC0yMiAwODo0NSAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jICwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGFkZCBjaGVja2luZyB0aGF0IHJlc3VsdHMgdG8gYmUgcmV0dXJuZWQgdG8gbWFzdGVyIGFnZW50IGFyZSBpbgogICAgICAgcmVxdWVzdGVkIHNjb3BlIChpZiBhbnkpIChnZXRCdWxrIG5vdCB5ZXQgZG9uZSkKICAgCjIwMDEtMDgtMTUgMDk6MzEgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2RlYnVnLmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX29iamlkIGluIGRlYnVnbXNnX29pZCB0byBwcmludCBsb25nIE9JRHMuCiAgIAoyMDAxLTA4LTE1IDA4OjM3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGluY3JlbWVudCB0aGUgdmFsdWUgb2Ygc25tcEluQmFkQ29tbXVuaXR5VXNlcyB3aGVuIGF0dGVtcHRpbmcgYW4KICAgICAgIG9wZXJhdGlvbiBub3QgcGVybWl0dGVkIGJ5IHRoZSBnaXZlbiBjb21tdW5pdHksIHBlciBSRkMgMTkwNy4KICAgCjIwMDEtMDgtMTUgMDg6MzQgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIHdoZW4gdHJhbnNsYXRpbmcgdGhlIHYyKyBlcnJvci1zdGF0dXMgdmFsdWUgYXV0aG9yaXphdGlvbkVycm9yCiAgICAgICBpbnRvIG5vU3VjaE5hbWUgZm9yIGEgdjEgc2Vzc2lvbiwgaW5jcmVtZW50IHRoZSB2YWx1ZSBvZgogICAgICAgc25tcEluQmFkQ29tbXVuaXR5VXNlcywgcGVyIFJGQyAyNTc2LgogICAKMjAwMS0wOC0xNCAwMzoyMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfY2xpZW50LmM6CgogICAgIC0gaW4gc25tcF9zZXRfdmFyX29iamlkKCksIHRyeSB0byBkZXRlY3QgYSBwcmV2aW91c2x5LW1hbGxvYygpZWQKICAgICAgIGJ1ZmZlciBmb3IgdGhlIHZhcmlhYmxlIG5hbWUsIGFuZCBmcmVlKCkgaXQsIHRvIGF2b2lkIG1lbW9yeQogICBsZWFrcy4KICAgCjIwMDEtMDgtMTMgMDM6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gdXNlIFdpbjMyIGNhbGxzIHRvIGNoYW5nZSBibG9ja2luZyBzdGF0ZSBvZiBzb2NrZXRzIGlmCiAgICAgICBhcHByb3ByaWF0ZS4gIFRoYW5rcyB0byBKb2VyZyBNYXR0ZXMgZm9yIGhlbHAgZGVidWdnaW5nIHRoaXMuCiAgIAoyMDAxLTA4LTEzIDAzOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBwZXJmb3JtIGFuIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCBhbmQgY2xvc2UgdGhlIGNvbm5lY3Rpb24gaWYKICAgICAgIHdlIGdldCBhbiBlcnJvciBvbiBhIHN0cmVhbSByZWNlaXZlLCBhcyB3ZWxsIGFzIGlmIGl0IGlzIGNsb3NlZCBpbgogICAgICAgYW4gb3JkZXJseSBmYXNoaW9uLiAgVGhpcyBtYWtlcyBsaWZlIGVhc2llciBvbiBXaW4zMiBpbnBhcnRpY3VsYXIuCiAgICAgICBUaGFua3MgdG8gSm9lcmcgTWF0dGVzIGZvciBoZWxwIHdpdGggZGVidWdnaW5nIHRoaXMuCiAgIAoyMDAxLTA4LTA5IDAzOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuYzoKCiAgIGZpbGUgdGFibGVfZGF0YXNldC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA5IDAzOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGFzZXQuaDoKCiAgIGZpbGUgdGFibGVfZGF0YXNldC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA4IDAxOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuaDoKCiAgIGZpbGUgdGFibGVfZGF0YS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA4IDAxOjQyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlX2RhdGEuYzoKCiAgIGZpbGUgdGFibGVfZGF0YS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfcGVycm9yLjM6CgogICBmaWxlIHNubXBfcGVycm9yLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX2FwaV9lcnJzdHJpbmcuMzoKCiAgIGZpbGUgc25tcF9hcGlfZXJyc3RyaW5nLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wOC0wNyAxMzo1OSAgbmJhCgogICAqIG1hbi9zbm1wX3Nlc3NfcGVycm9yLjM6CgogICBmaWxlIHNubXBfc2Vzc19wZXJyb3IuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAxLTA4LTA3IDEzOjU5ICBuYmEKCiAgICogbWFuL3NubXBfZXJyb3IuMzoKCiAgIGZpbGUgc25tcF9lcnJvci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDgtMDYgMDQ6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBmaXggZm9yIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgaW4gbG9nZmlsZSBhcmd1bWVudCBoYW5kbGluZywKICAgICAgIG5vdGVkIGJ5IEFub255bW91cyAoYnVnICM0NDgyNDMpLiAgQWxzbyB1c2UgYSBsYXJnZSBlbm91Z2ggYnVmZmVyCiAgICAgICB0byBoYW5kbGUgZmlsZW5hbWVzIG9mIGxlbmd0aCBQQVRIX01BWCAoaWYgcG9zc2libGUpLgogICAKMjAwMS0wNy0zMCAxMDowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsIHNubXBsaWIvc25tcF9hcGkuYwogICAsIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAgLSBtb3ZlIHNubXBfc29ja2V0X2xlbmd0aCBmdW5jdGlvbiB0byBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYwogICAgICAgZnJvbSBzbm1wX2FwaS5jIC0tIHRoaXMgaXMgdGhlIG9ubHkgcmVtYWluaW5nIHBsYWNlIHRoYXQgdXNlcyB0aGlzCiAgICAgICBmdW5jdGlvbiwgd2hpY2ggY2VydGFpbmx5IGRvZXNuJ3QgYmVsb25nIGluIHNubXBfYXBpLmMgYWZ0ZXIgdGhlCiAgICAgICB0cmFuc3BvcnQgYWJzdHJhY3Rpb24gbWFsYXJrZXkuCiAgIAoyMDAxLTA3LTMwIDA5OjIyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9oYW5kbGVyLmM6CgogICBmaWxlIGFnZW50X2hhbmRsZXIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0zMCAwOToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfaGFuZGxlci5oOgoKICAgZmlsZSBhZ2VudF9oYW5kbGVyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMzAgMDc6MDYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmM6CgogICAgIC0gdHJ5IHRvIHJldHVybiBpbnZhbGlkKDIpIGZvciB0aGUgaXBSb3V0ZVR5cGUgY29sdW1uIGlmIHRoZSByb3V0ZQogICAgICAgaXMgbm90IHVwLiAgU2VlIGJ1ZyAjNDI2NzEwLCByZXBvcnRlZCBieSBwandlYmVyLgogICAKMjAwMS0wNy0yNyAwNzozMiAgamJwbgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgICAtIHNldCBkZWZhdWx0QXV0aFR5cGUgdG8gdXNtSE1BQ1NIQTFBdXRoUHJvdG9jb2wgaWYgU0hBIHNwZWNpZmllZAogICAgICAgKHdhcyBzZXQgdG8gdXNtSE1BQ01ENUF1dGhQcm90b2NvbCBpbiB0aGlzIGNhc2UpLiAgU3BvdHRlZCBieQogICAgICAgV2lsbGlhbSBLZW5uZW1lciAoYnVnICM0NDQ4NjApCiAgIAoyMDAxLTA3LTI3IDA2OjU5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGNoYW5nZSB0byBoYW5kbGVfYWdlbnR4X3Jlc3BvbnNlIE9OTFkgdG8gc2VuZCBORVdMWSBkZWxlZ2F0ZWQKICAgICAgIHJlcXVlc3RzIGFmdGVyIHByb2Nlc3NpbmcgYSBzdWNjZXNzZnVsIHJlc3BvbnNlLiAgVGhpcyBpcyBhY2hpZXZlZAogICAgICAgYnkgc2F2aW5nIHRoZSB2YWx1ZSBvZiBhc3AtPm91dHN0YW5kaW5nX3JlcXVlc3RzIGFuZCB0ZW1wb3JhcmlseQogICAgICAgc2V0dGluZyBpdCB0byBOVUxMLiAgQWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdmFyYmluZHMgaW4gdGhlCiAgICAgICByZXNwb25zZSwgdGhlcmVmb3JlLCBhc3AtPm91dHN0YW5kaW5nX3JlcXVlc3RzIGNvbnRhaW5zIG9ubHkgbmV3bHkKICAgICAgIGRlbGVnYXRlZCByZXF1ZXN0cywgaWYgYW55LiAgQWZ0ZXIgc2VuZGluZyB0aGVzZSwgdGhlIG5ldyByZXF1ZXN0cwogICAgICAgYXJlIG1lcmdlZCB3aXRoIHRoZSBzYXZlZCBxdWV1ZS4KICAgCiAgICAgICBUaGlzIGZpeGVzIGEgYnVnIHRoYXQgYXJpc2VzIGlmIHlvdSByZXF1ZXN0IHZhcmlhYmxlcyBmcm9tIHR3byBvcgogICAgICAgbW9yZSBzZXBhcmF0ZSBzdWJhZ2VudHMgc2ltdWx0YW5lb3VzbHkuICBXaGF0IHVzZWQgdG8gaGFwcGVuIGlzCiAgICAgICB0aGF0LCB1cG9uIHJlY2VpdmluZyB0aGUgZmlyc3QgcmVzcG9uc2UsIHRoZSBtYXN0ZXIgYWdlbnQgd291bGQKICAgICAgIG5vdGljZSB0aGF0IGl0IGhhZCBhbiBvdXRzdGFuZGluZyByZXF1ZXN0LCBhbmQgcmV0cmFuc21pdCBpdC4KICAgICAgIFRoZW4gdGhlIHNlY29uZCByZXNwb25zZSBhcnJpdmVzLCBhbmQgdGhlIG1hc3RlciBhZ2VudCBzZW5kcyB0aGUKICAgICAgIHJlcGx5IHRvIHRoZSAoU05NUCkgcmVxdWVzdGVyIGFuZCBmcmVlcyB0aGUgcmVxdWVzdHMgKGluY2x1ZGluZwogICAgICAgY2FsbGJhY2sgZGF0YSkuICBGaW5hbGx5LCBhbm90aGVyIEFnZW50WCByZXNwb25zZSAodG8gdGhlCiAgICAgICBlcnJvbmVvdXNseSB0cmFuc21pdHRlZCByZXF1ZXN0KSBhcnJpdmVzIGFuZCB0aGUgY2FsbGJhY2sgaXMKICAgICAgIGNhbGxlZCByZWZlcmVuY2luZyBkZWFsbG9jYXRlZCBtZW1vcnksIHdoaWNoIGNhdXNlcyBhIHNlZ2ZhdWx0LgogICAKMjAwMS0wNy0yNiAwNzoyOCAgZHRzMTIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgKE5FVy1MSUJSQVJZLUFQSS40KSwgc25tcF9hcGkuYzoKCiAgIEFkZGluZyBhICdkb3VibGUnLXZhbHVlZCB2YXJiaW5kIGlzbid0IGluaGVyZW50bHkgYW4gaW50ZXJuYWwgZXJyb3IhCiAgIAoyMDAxLTA3LTI1IDA1OjQ3ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gZGlzYWJsZSBzdGRlcnIgbG9nZ2luZyAoaWYgcmVxdWVzdGVkKSBiZWZvcmUgY2FsbGluZyBpbml0X21pYl9tb2R1bGVzKCkuCiAgICAgICBUaGlzIHNob3VsZCBmaXggdGhlIHByb2JsZW0gbm90ZWQgYnkgTmlnZWwgTWV0aGVyaW5naGFtIGluIGJ1ZyAjNDE4ODU3CiAgICAgICB3aGVyZWJ5IHRoZSBBZ2VudFggbWFzdGVyIG1vZHVsZSBwcmludHMgYSBtZXNzYWdlIHRvIHN0ZGVyciB3aGljaCBjYXVzZXMKICAgICAgIGEgU0lHUElQRSB3aGVuIHRoZSBhZ2VudCBpcyBzdGFydGVkIGFzIGEgZGFlbW9uLgogICAKMjAwMS0wNy0yNSAwMjoxOCAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgICAgLSBpbml0aWFsaXNlIGJ1ZmZlcnMgdG8gemVybyBpbiBoYW5kbGVfd3JhcF9mbXQsIHRvIGF2b2lkIGdhcmJhZ2UgaW4KICAgICAgIGRpc3BsYXkgb2Ygc2VjdXJpdHkgcGFyYW1ldGVycywgYXMgbm90ZWQgYnkgV2lsbGlhbSBGcmF1ZW5ob2ZlcgogICAgICAgKGJ1ZyAjNDM3MjMxKS4KICAgCiAgICAgLSBhZGQgY2xvc2luZyBwYXJlbnRoZXNpcyBhZnRlciAodmlhIDxhZGRyZXNzPiBpbiBmb3JtYXRfcGxhaW5fdHJhcAogICAKMjAwMS0wNy0yMyAwNzo1MyAgamJwbgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICAgIC0gcmVtb3ZlIGV4Y2Vzc2l2ZSBkZWJ1Z2dpbmcgZnJvbSBzbm1wXyhyZSlhbGxvYyBmdW5jdGlvbnMKICAgCjIwMDEtMDctMjMgMDQ6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVW5peERvbWFpbi5jOgoKICAgICAtIG1pbm9yIGZpeCB0byBkZWJ1Z2dpbmcgb3V0cHV0IHRvIHByaW50IGxvc2luZyBwYXRoIGNvcnJlY3RseSB3aGVuCiAgICAgICBhIHJlbW90ZSBjb25uZWN0IGZhaWxzLgogICAKMjAwMS0wNy0xNyAwOTo1NiAgaGFyZGFrZXIKCiAgICogQ29kaW5nU3R5bGU6CgogICB1cGRhdGUgZm9yIG5hbWluZyBjb252ZW50aW9ucyBhbmQgZm9yIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KICAgCjIwMDEtMDctMTcgMDk6MDcgIGhhcmRha2VyCgogICAqIENvZGluZ1N0eWxlOgoKICAgaW5pdGlhbCBjb2Rpbmcgc3R5bGUgZ3VpZGVsaW5lIGRvY3VtZW50LgogICAKMjAwMS0wNy0xNyAwOTowMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSByZW1lbWJlciB0byByZW1vdmVfdHJhcF9zZXNzaW9uKG91ci1zZXNzaW9uLXdpdGgtbWFzdGVyLWFnZW50KQogICAgICAgaWYgdGhlIG1hc3RlciBhZ2VudCBzZXNzaW9uIGdvZXMgYXdheSwgYmVjYXVzZSBvdGhlcndpc2UgeW91CiAgICAgICBtYXkgc3Vic2VxdWVudGx5IHRyeSB0byB1c2UgaXQsIHdoaWNoIHdpbGwgcHJvYmFibHkgZHVtcCBjb3JlLAogICAgICAgYW5kIGlzIGNlcnRhaW5seSBhbiBlcnJvci4KICAgCiAgICAgLSBhbHNvIGNoYW5nZSB3aGVuIHRyYXAgc2Vzc2lvbiBpcyByZWdpc3RlcmVkIHRvIGJlaW5nIGltbWVkaWF0ZWx5CiAgICAgICB0aGUgc2Vzc2lvbiBpcyBvcGVuZWQgc28gdHJhcHMgY2FuIGJlIHNlbnQsIGUuZy4gZnJvbSB0aGUKICAgICAgIElOREVYX1NUQVJUIGNhbGxiYWNrIChmb3IgZXhhbXBsZSBsaW5rVXAgdHJhcHMgaW4gc3ViYWdlbnRzIHRoYXQKICAgICAgIHJlZ2lzdGVyIGEgcm93IG9mIGlmVGFibGUpLgogICAKMjAwMS0wNy0xNyAwODo0OCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAgIC0gY2hhbmdlIHRvIHJlbW92ZV90cmFwX3Nlc3Npb24oKSwgc28gYXMgbm90IHRvIGNsb3NlIGFuIFNOTVAKICAgICAgIHNlc3Npb24gc2ltcGx5IGJlY2F1c2Ugd2UgYXJlIHJlbW92aW5nIGl0IGZyb20gdGhlIHRyYXBfc2luawogICAgICAgbGlzdC4gIFRoZSByYXRpb25hbGUgaXMgdGhhdCB0aGUgc2Vzc2lvbiBtYXkgc3RpbGwgYmUgaW4gdXNlIGZvcgogICAgICAgb3RoZXIgcHVycG9zZXMsIG9yIChtb3JlIHRvIHRoZSBwb2ludCkgeW91IG1heSBiZSBjYWxsaW5nIHRoaXMKICAgICAgIGZ1bmN0aW9uIGZyb20gdGhlIHNlc3Npb24ncyBjYWxsYmFjayAoZnJvbSB3aGVyZSBjbG9zaW5nIHRoZQogICAgICAgc2Vzc2lvbiBpc24ndCBhIGdvb2QgaWRlYSkuCiAgIAoyMDAxLTA3LTEzIDA2OjAyICBkdHMxMgoKICAgKiBzbm1wbGliL25ldHNubXAuaDoKCiAgIGZpbGUgbmV0c25tcC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1MSUJSQVJZLUFQSS4KICAgCjIwMDEtMDctMTIgMTI6MDkgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvdGFibGVfaXRlcmF0b3IuYzoKCiAgIGZpbGUgdGFibGVfaXRlcmF0b3IuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNy0xMiAxMjowOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy90YWJsZV9pdGVyYXRvci5oOgoKICAgZmlsZSB0YWJsZV9pdGVyYXRvci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEyIDAyOjIxICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLCBtaWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYwogICAsIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIGZpeCBmb3IgYnVnICM0MzkwOTQsIHJlcG9ydGVkIGJ5IEV2ZXJ0LUphbiB2YW4gVHVpamwsIHdoZXJlYnkKICAgICAgIHRoZSBBZ2VudFggbWFzdGVyIGFnZW50IGV4cGVjdHMgYSByZXNwb25zZSB0byBhbiBhZ2VudHgtQ2xlYW51cFNldC1QRFUKICAgICAgIG1lc3NhZ2UgKGluY29ycmVjdGx5KS4gIFRoaXMgb25seSBzaG93cyB1cCB3aGVuIHRlc3RpbmcgYWdhaW5zdCBvdGhlcgogICAgICAgc3ViYWdlbnRzIChlLmcuIGpheCkgYmVjYXVzZSB0aGUgbmV0LXNubXAgc3ViYWdlbnQgc2VuZHMgYSByZXNwb25zZQogICAgICAgdG8gdGhlIGFnZW50eC1DbGVhbnVwU2V0LVBEVSAoaW5jb3JyZWN0bHkpLgogICAKMjAwMS0wNy0xMCAxNjoxMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV9jb250ZXh0LmM6CgogICBmaWxlIHZhY21fY29udGV4dC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTEwIDE2OjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX2NvbnRleHQuaDoKCiAgIGZpbGUgdmFjbV9jb250ZXh0Lmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuYzoKCiAgIGZpbGUgdGFyZ2V0X2NvdW50ZXJzLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMTAgMTY6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXRfY291bnRlcnMuaDoKCiAgIGZpbGUgdGFyZ2V0X2NvdW50ZXJzLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDctMDUgMDY6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvOiBpbnRlcmZhY2VzLmMgLCBpbnRlcmZhY2VzLmg6CgogICAgIC0gbWFrZSBJbnRlcmZhY2VfU2Nhbl9HZXRfQ291bnQgbm9uLXN0YXRpYyBhcyBpdCdzIHZlcnkgdXNlZnVsCiAgIAoyMDAxLTA3LTA1IDAzOjQwICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIGZyZWUgdGhlIGNhY2hlZCBzZWN1cml0eSBwYXJhbWV0ZXJzIHdoZW4gd2UgaGF2ZSBhIHBhcnNlIGVycm9yCiAgICAgICBvbiBpbnB1dCwgb3RoZXJ3aXNlIHdlIGxlYWsgbWVtb3J5ICh0cmlnZ2VyZWQgYnkgU0MgMy4wLjEzLnsyLDN9KS4KICAgCjIwMDEtMDctMDQgMDk6NTEgIHVpZDQ0ODEwCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSBjYXRjaCBzb21lIG1hbGZvcm1lZCBTTk1QdjMgcGFja2V0cwogICAKMjAwMS0wNy0wNCAwNzo0MiAgdWlkNDQ4MTAKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBiYWQgbWlzdGFrZSBpbiBzbm1wdjNfc2NvcGVkUERVX2hlYWRlcl9yZWFsbG9jX3JidWlsZCB3aGljaAogICAgICAgd2FzIGVuY29kaW5nIHRoZSB3cm9uZyBsZW5ndGggaW50byB0aGUgU2NvcGVkUERVIFNFUVVFTkNFIGhlYWRlcgogICAgICAgKHdhc24ndCBpbmNsdWRpbmcgbGVuZ3RoIG9mIGFjdHVhbCBkYXRhLCBpLmUuIFBEVSEpLiAgVG90YWxseSBteQogICAgICAgZmF1bHQgLS0gaW50cm9kdWNlZCB3aGVuIGNoYW5naW5nIG92ZXIgdG8gcmVhbGxvY2F0aW5nIGJ1ZmZlcgogICAgICAgdHlwZSBmdW5jdGlvbnMuICBBbWF6aW5nIHRoaXMgaGFzbid0IGNhdXNlZCBhbGwgc29ydHMgb2YgdHJvdWJsZQogICAgICAgZm9yIHBlb3BsZSEKICAgCjIwMDEtMDctMDIgMTg6MDQgIHJzdG9yeQoKICAgKiBzbm1wbGliL3NubXAtdGMuYzoKCiAgIGZpbGUgc25tcC10Yy5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA3LTAyIDA5OjMzICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzbGlnaHQgY2hhbmdlIHRvIGdlbmVyYXRpb24gb2YgZXJyb3ItaW5kZXg6CiAgIAogICAgICAgLSBleHBsaWNpdGx5IHRlc3QgZm9yIGVycm9yLXN0YXR1cyA9PSBub0Vycm9yLCBhbmQgc2V0IGVycm9yLWluZGV4CiAgICAgICAgIHRvIHplcm8gaW4gdGhpcyBjYXNlOwogICAKICAgICAgIC0gb3RoZXJ3aXNlIHVzZSB0aGUgY2FjaGVkIHZhbHVlOwogICAKICAgICAgIC0gZG9uJ3QgemVybyB0aGUgY2FjaGVkIHZhbHVlIGluIGhhbmRsZV92YXJfbGlzdCBpZiBoYW5kbGVfb25lX3ZhcgogICAgICAgICByZXR1cm5zIG5vRXJyb3IKICAgCiAgICAgLSB0aGlzIGNvcGVzIHByb3Blcmx5IHdpdGggU0VUIHJlcXVlc3RzLCB3aGVyZSBhIGZhaWxpbmcgU0VUIHdpbGwgaGF2ZQogICAgICAgYSBGUkVFIHBoYXNlIHdoaWNoIHdpbGwgdHlwaWNhbGx5IHJldHVybiBub0Vycm9yLiAgUHJldmlvdXNseSB0aGlzCiAgICAgICB3b3VsZCBlcnJvbmVvdXNseSBjYXVzZSB0aGUgZXJyb3ItaW5kZXggdG8gYmUgc2V0IHRvIHplcm8uCiAgIAoyMDAxLTA3LTAyIDA4OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgICAgLSBmaXggYmFkIGJlaGF2aW91ciBpbiBoZWFkZXJfc2ltcGxlX3RhYmxlIHdoZW4gdGhlIGluZGV4IGlzCiAgICAgICBlcXVhbCB0byBVTE9OR19NQVgKICAgCjIwMDEtMDYtMjggMTA6MDEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYzoKCiAgICAgLSBjaGFuZ2Ugc2Vuc2Ugb2Ygc25tcF9vaWRfY29tcGFyZSgpIHJlc3VsdCBjaGVjayBpbiB2YXJfdXNtVXNlcgogICAgICAgdG8gZG8gbGV4aS1vcmRlcmluZyBjb3JyZWN0bHkKICAgCjIwMDEtMDYtMjggMDc6MjAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGNvdW50IG1vcmUgdjEvdjJjIHBhcnNlIGVycm9ycyAoU0MgMS4xLjEyLjEwKQogICAKMjAwMS0wNi0yOCAwNTo1NiAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gY2hlY2sgdGhhdCB2ZXJzaW9uIGZpZWxkIG9mIFBEVSBpcyBvZiBpbnRlZ2VyIHR5cGUgcmF0aGVyIHRoYW4ganVzdAogICAgICAgYXNzdW1pbmcgaXQgaXMgKFNDIDEuMS4xMi4yLjEpCiAgIAoyMDAxLTA2LTI4IDA0OjQwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGluY3JlbWVudCBzbm1wSW5CYWRDb21tdW5pdHlOYW1lcyB3aGVuIHdlIHNlZSB1bmtub3duIGNvbW11bml0eQogICAgICAgbmFtZXMsIHBlciBSRkMxOTA3CiAgIAoyMDAxLTA2LTI3IDA4OjA5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgICAtIG1ha2UgdXNlIG9mIG5ldyBmdW5jdGlvbiByZWdpc3Rlcl9taWJfZGV0YWNoKCkgdG8gbWFyayBhbGwgb3VyCiAgICAgICBub2RlcyBhcyBkZXRhY2hlZCB3aGVuIHdlIGdldCBhIHRyYW5zcG9ydCBkaXNjb25uZWN0IGluZGljYXRpb24uCiAgIAoyMDAxLTA2LTI3IDA4OjA3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3JlZ2lzdHJ5LmggLAogICB2YXJfc3RydWN0Lmg6CgogICAgIC0gYWRkIGFkZGl0aW9uYWwgZmxhZyB0byBzdWJ0cmVlIHN0cnVjdHVyZSB0aGF0IHN1YmFnZW50cyBjYW4gdXNlCiAgICAgICB0byBkZXRlcm1pbmUgd2hldGhlciBhbiBhdHRlbXB0IGhhcyBiZWVuIG1hZGUgdG8gcmVnaXN0ZXIgYW5kIE9JRAogICAgICAgd2l0aCBhIG1hc3RlciBhZ2VudCBkdXJpbmcgYSBzZXNzaW9uJ3MgbGlmZXRpbWUuICBUaGlzIGFsbG93cwogICAgICAgbWFudWFsIHJlLXJlZ2lzdHJhdGlvbiBhbmQgYXV0b21hdGljIHJlLXJlZ2lzdHJhdGlvbiB0byBiZSBtaXhlZAogICAgICAgd2l0aGluIGEgc3ViYWdlbnQgKHBlcmhhcHMgYmVjYXVzZSB5b3UgYXJlIGRvaW5nIGluZGV4IHN0dWZmKS4KICAgCiAgICAgLSBhZGQgZnVuY3Rpb24gcmVnaXN0ZXJfbWliX2RldGFjaCgpIHdoaWNoIHVuc2V0cyB0aGlzIGZsYWcgZm9yCiAgICAgICBhbGwga25vd24gbm9kZXMgKHN1YmFnZW50IHdvdWxkIHR5cGljYWxseSBjYWxsIHRoaXMgb24gZGlzY29ubmVjdAogICAgICAgaW5kaWNhdGlvbikuCiAgIAogICAgIC0gYWRkIGZ1bmN0aW9uIHVucmVnaXN0ZXJfbWliX3RhYmxlX3JvdygpCiAgIAogICAgIC0gY29ycmVjdCBiYWQgcmVjdXJzaXZlIGJlaGF2aW91ciBpbiByZWdpc3Rlcl9taWJfcmVhdHRhY2goKSB3aGljaAogICAgICAgdXNlZCB0byB0cnkgdG8gcmUtcmVnaXN0ZXIgTiBub2RlcyBOISB0aW1lcy4gIE9uY2Ugd2lsbCBub3JtYWxseQogICAgICAgYmUgZW5vdWdoLgogICAKICAgICAtIGNoYW5nZSB0byBkdW1wX3JlZ2lzdHJ5KCkgZm9ybWF0IHRvIGluY2x1ZGUgaGV4IGRpc3BsYXkgb2YKICAgICAgIGZsYWdzIGZpZWxkLgogICAKMjAwMS0wNi0yNiAwOToyNiAgZHRzMTIKCiAgICogRkFROgoKICAgRml4IGVycm9yIGluIFNOTVB2MiB0cmFwIGV4YW1wbGVzICAoSWRlbnRpZmllZCBieSBEaXdha2FyIFNoZXR0eSkuCiAgIAoyMDAxLTA2LTI2IDAyOjM1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdGVkIHNlbnNlIG9mIGR1bXBfcmVhbGxvY19vaWRfdG9fc3RyaW5nKCkgcmV0dXJuIHZhbHVlCiAgICAgICBjaGVja3MsIGFzIHNwb3R0ZWQgYnkgUm9iZXJ0IFN0b3J5LgogICAKMjAwMS0wNi0yNSAwNjozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAgLSBzbWFsbCB0d2VhayBpbiBoYW5kbGVfYWdlbnR4X3Jlc3BvbnNlKCkgd2hlbiByZXRyeWluZyB1bmZ1bGZpbGxlZAogICAgICAgcmVxdWVzdHM6IGNvbnRpbnVlIGZyb20gdGhlICJzdGFydCIgT0lEIG9mIHRoZSBuZXh0IG5vZGUgb2YgdGhlCiAgICAgICB0cmVlLCBub3QgZnJvbSB0aGUgIm5hbWUiIE9JRCwgd2hpY2ggY2F1c2VzIGxvb3BpbmcuCiAgIAoyMDAxLTA2LTIxIDA5OjUxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIGhhbmRsZSAiaG9sZXMiIGluIHJvd3Mgb2YgdGFibGVzIHRoYXQgYXJlIGhhbmRsZWQgYnkgc3ViYWdlbnRzCiAgIAogICAgICAgU2luY2UgdGhlIGZ1bGx5LXF1YWxpZmllZCBpbnN0YW5jZSBpcyByZWdpc3RlcmVkLCB3ZSBpbnRlcnByZXQKICAgICAgIGEgcmV0dXJuIG9mIG5vU3VjaEluc3RhbmNlIHdoZW4gZG9pbmcgYW4gaW5leGFjdCBxdWVyeSBhcyBtZWFuaW5nCiAgICAgICB3ZSBzaG91bGQgcmV0cnkgdGhlIHF1ZXJ5LgogICAKMjAwMS0wNi0yMSAwMjo1MCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgICAtIGZvcmdvdCB0byBjb21taXQgYXQgdGhlIHNhbWUgdGltZSBhcyBsYXN0IG1pYi5jIGNvbW1pdDsgdXBkYXRlZAogICAgICAgcHJvdG90eXBlIGZvciBzcHJpbnRfcmVhbGxvY19oaW50ZWRfaW50ZWdlcgogICAKMjAwMS0wNi0yMCAwNjo0NCAgamJwbgoKICAgKiBhZ2VudC86IGFnZW50X2luZGV4LmMgLCBhZ2VudF9pbmRleC5oOgoKICAgICAtIGFkZCBmdW5jdGlvbiBjb3VudF9pbmRleGVzIHdoaWNoIHJldHVybnMgdGhlIG51bWJlciBvZiBpbmRleGVzCiAgICAgICBhbGxvY2F0ZWQgZm9yIGEgZ2l2ZW4gT0lELiAgVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBpbXBsZW1lbnRpbmcKICAgICAgICJyb3cgY291bnQiIG9iamVjdHMsIGUuZy4gaWZOdW1iZXIuCiAgIAoyMDAxLTA2LTIwIDA1OjM3ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfY2FsbGJhY2tzLmggLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAgLSBhZGQgU05NUERfQ0FMTEJBQ0tfSU5ERVhfU1RBUlQgYW5kIFNOTVBEX0NBTExCQUNLX0lOREVYX1NUT1AKICAgICAgIGNhbGxiYWNrcyB3aGljaCBtYXkgYmUgdXNlZCB0byBtYW5hZ2UgaW5kZXggYWxsb2NhdGlvbnMuCiAgIAogICAgICAgTWFzdGVyIGFnZW50IHNob3VsZCBwcm9iYWJseSBjYWxsIHRoZXNlIGNhbGxiYWNrcyB0b28sIGFsdGhvdWdoCiAgICAgICBpdCdzIGEgYml0IG9mIGEgZGVnZW5lcmF0ZSBjYXNlLgogICAKMjAwMS0wNi0xOSAwOTo0NCAgamJwbgoKICAgKiBhZ2VudC9hZ2VudF9pbmRleC5jOgoKICAgICAtIHVzZSBhbiBleHBsaWNpdCBmaWVsZWQgImFsbG9jYXRlZCIgaW4gc25tcF9pbmRleCBzdHJ1Y3R1cmUgdG8KICAgICAgIGluZGljYXRlIHdoZXRoZXIgb3Igbm90IGEgdmFsdWUgaXMgY3VycmVudGx5IGFsbG9jYXRlZCwgcmF0aGVyCiAgICAgICB0aGFuIG92ZXJsb2FkaW5nIGEgTlVMTCBzZXNzaW9uIHRvIG1lYW4gdGhhdCBpdCBpcyBub3QuCiAgIAogICAgICAgVGhpcyBhbGxvd3Mgc3RhcnR1cCBjb2RlIGluIGEgbWFzdGVyIGFnZW50IHRvIHByZS1yZWdpc3RlciBpbmRpY2VzCiAgICAgICB3aGVuIHRoZXJlIGFyZSBubyBzZXNzaW9ucyBvcGVuLgogICAKMjAwMS0wNi0xOSAwODozNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXJfYWRtaW4uYyAsIG1hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gIGtlZXAgdGhlIHZhbHVlIG9mIE5FVFdPUktfQllURV9PUkRFUiBmcm9tIGguZmxhZ3MgaW4gdGhlCiAgICAgICAgYWdlbnR4LU9wZW4tUERVIGFuZCB1c2UgaXQgZm9yIHN1YnNlcXVlbnQgbWFzdGVyLWluaXRpYXRlZAogICAgICAgIEFnZW50WCBwcm90b2NvbCBvcGVyYXRpb25zLCBwZXIgUkZDIDI3NDEgKHNlY3Rpb24gNy4xLjEsCiAgICAgICAgcGFyYWdyYXBoIDQpLgogICAKICAgICAgICBGb3Igbm93LCB3ZSBhcmUgc3RvcmluZyB0aGlzIGluIHRoZSBmbGFncyBmaWVsZCBvZiBhCiAgICAgICAgc3Vic2Vzc2lvbi4gIFRoaXMgaXMgbGlrZWx5IHRvIHN0b3Agd29ya2luZyBpZiB0aGUgZmxhZ3MKICAgICAgICBkZWZpbml0aW9ucyBjaGFuZ2UgKGkuZS4gaXQncyBub3QgYSBncmVhdCBzb2x1dGlvbikKICAgCiAgICAgLSAgVGhhbmtzIHRvIFBldGVyIEtvcnN0ZW4gKHNldmVyaXR5b25lIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldCkKICAgICAgICBmb3IgaWRlbnRpZnlpbmcgdGhpcyBidWcsIGFuZCBmb3IgaGVscCBkZWJ1Z2dpbmcgdGhpcyBmaXguCiAgIAoyMDAxLTA2LTE5IDAyOjM1ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gcmVpbnN0YXRlIHNwYWNlIGJldHdlZW4gbnVtYmVycyBhbmQgdW5pdHMuCiAgIAogICAgIC0gcmVzcGVjdCBESVNQTEFZLUhJTlRzIGZvciBVbnNpZ25lZDMyLCBHYXVnZSwgR2F1Z2UzMiB0eXBlcy4KICAgCjIwMDEtMDYtMTMgMDM6MjkgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gbWlub3IgY2hhbmdlIHRvIGRlYnVnZ2luZyB0byByZWR1Y2UgIm5vaXNlIGxldmVsIiBmcm9tIFB1cmlmeQogICAKMjAwMS0wNi0xMiAxMDozNSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gaGFuZGxlIG5vbi1yZXBlYXRlcnMgYW5kIG1heC1yZXBldGl0aW9ucyBmaWVsZCB2YWx1ZXMgb2YgPCAwIChieQogICAgICAgc2V0dGluZyB0aGVtIHRvIDAsIHBlciBSRkMgMTkwNSkKICAgCjIwMDEtMDYtMTIgMTA6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGZpeCBidWcgdGhhdCBjYXVzZWQgYSBudWxsIHBvaW50ZXIgdG8gYmUgZm9sbG93ZWQgd2hlbiBwcm9jZXNzaW5nIGEKICAgICAgIEdFVEJVTEsgcmVxdWVzdCB3aXRoIG5vbi1yZXBlYXRlcnMgPiAwLCBtYXgtcmVwZXRpdGlvbnMgPT0gMCBhbmQgbm8KICAgICAgIHZhcmJpbmRzIGluIHRoZSByZXF1ZXN0LgogICAKMjAwMS0wNi0xMiAwNzoyNCAgZHRzMTIKCiAgICogc25tcGxpYi86IHJlYWRfY29uZmlnLmMgKFY0LTItcGF0Y2hlcy4xKSwgcmVhZF9jb25maWcuYzoKCiAgIEZpeCAndW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcicgdG8gaGFuZGxlIHRhZ3Mgb3RoZXIKICAgdGhhbiB0aGUgZmlyc3QgaW4gdGhlIGxpc3QuICAoVGhhbmtzIHRvIFBhdWwgU2VyaWNlKS4KICAgCjIwMDEtMDYtMDYgMDc6MzkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIGZyZWUoKSByZXR1cm4gdmFsdWUgZnJvbSByZWdpc3Rlcl9pbmRleCgpIGNhbGxzCiAgIAoyMDAxLTA2LTA2IDA3OjM3ICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gbW9yZSB1bmlmb3JtIHJldHVybiB2YWx1ZSBmcm9tIHJlZ2lzdGVyX2luZGV4KCk6IG1ha2UgaXQgYWx3YXlzIGEKICAgICAgIHZhcmJpbmQgd2hpY2ggdGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZSgpaW5nLCBvciBlbHNlIE5VTEwuCiAgIAoyMDAxLTA2LTA1IDAzOjEwICBqYnBuCgogICAqIGFnZW50L2FnZW50X2luZGV4LmM6CgogICAgIC0gZml4IGZvciBpbmRleCBhbGxvY2F0aW9uLCBzdWNoIHRoYXQgcmVxdWVzdHMgZm9yIHNwZWNpZmljIGluZGljZXMgd2hpY2gKICAgICAgIGhhdmUgcHJldmlvdXNseSBiZWVuIGFsbG9jYXRlZCwgYnV0IGFyZSBub3QgY3VycmVudGx5IGluIHVzZSwgc3VjY2VlZC4KICAgCiAgICAgLSBtb3JlIGRlYnVnZ2luZyBvdXRwdXQuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5oOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5oOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0ZGVsYXllZC5jOgoKICAgZmlsZSB0ZXN0ZGVsYXllZC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90ZXN0aGFuZGxlci5jOgoKICAgZmlsZSB0ZXN0aGFuZGxlci5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmM6CgogICBmaWxlIHRhYmxlLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvbXVsdGlwbGV4ZXIuaDoKCiAgIGZpbGUgbXVsdGlwbGV4ZXIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmM6CgogICBmaWxlIG9sZF9hcGkuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmg6CgogICBmaWxlIG51bGwuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5jOgoKICAgZmlsZSBpbnN0YW5jZS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NldF9oZWxwZXIuaDoKCiAgIGZpbGUgc2V0X2hlbHBlci5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3RhYmxlLmg6CgogICBmaWxlIHRhYmxlLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvcmVhZF9vbmx5LmM6CgogICBmaWxlIHJlYWRfb25seS5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5jOgoKICAgZmlsZSBzZXJpYWxpemUuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9vbGRfYXBpLmg6CgogICBmaWxlIG9sZF9hcGkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9pbnN0YW5jZS5oOgoKICAgZmlsZSBpbnN0YW5jZS5oIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3JlYWRfb25seS5oOgoKICAgZmlsZSByZWFkX29ubHkuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy8uY3ZzaWdub3JlOgoKICAgZmlsZSAuY3ZzaWdub3JlIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL211bHRpcGxleGVyLmM6CgogICBmaWxlIG11bHRpcGxleGVyLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggTkVXLUFHRU5ULUFQSS4KICAgCjIwMDEtMDYtMDEgMDg6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L2hlbHBlcnMvTWFrZWZpbGUuaW46CgogICBmaWxlIE1ha2VmaWxlLmluIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIE5FVy1BR0VOVC1BUEkuCiAgIAoyMDAxLTA2LTAxIDA4OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9oZWxwZXJzL3NlcmlhbGl6ZS5oOgoKICAgZmlsZSBzZXJpYWxpemUuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwODozNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvaGVscGVycy9udWxsLmM6CgogICBmaWxlIG51bGwuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBORVctQUdFTlQtQVBJLgogICAKMjAwMS0wNi0wMSAwNzozOSAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBtaXNjIGZpeGVzIGZvciBvaWQgZm9ybWF0dGluZyBwcm9ibGVtcy4KICAgCjIwMDEtMDYtMDEgMDc6MzcgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBNYXJ0aW4gT2xkZmllbGQuCiAgIAoyMDAxLTA2LTAxIDAyOjUwICBqYnBuCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jICwgc25tcF9hZ2VudC5oICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmM6CgogICAgIC0gZml4IGZvciBhYnNvbHV0ZWx5IG1pbmQtYmVuZGluZyBtZW1vcnkgbGVhayB3aGVuIEFnZW50WCBzZXNzaW9ucwogICAgICAgdGltZW91dC4gIGFnZW50X3Nlc3Npb25fbGlzdCBob2xkcyBhIHF1ZXVlIG9mIHNlc3Npb25zIHdpdGggb3V0c3RhbmRpbmcKICAgICAgIHJlcXVlc3RzLiAgV2hlbiBhIHNlc3Npb24gdGltZXMgb3V0LCB0aGlzIG11c3QgYmUgc2NhdmVuZ2VkIHRvIG1ha2UKICAgICAgIHN1cmUgdGhlIHNlc3Npb25zIHRoYXQgaGF2ZSB0aW1lZCBvdXQsIGFuZCB0aGVpciBhc3NvY2lhdGVkIHJlcXVlc3RzCiAgICAgICBhcmUgZnJlZSgpZC4KICAgCjIwMDEtMDUtMzAgMDM6MjggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmM6CgogICAgIC0gcmV0cnkgaW5pdGlhbCBvcGVuIG9mIEFnZW50WCBtYXN0ZXIgc29ja2V0IGlmIEFnZW50WCBwaW5ncyBhcmUKICAgICAgIGVuYWJsZWQgKHNob3VsZCByZWFsbHkgYmUgYSBzZXBhcmF0ZSBkZWZhdWx0X3N0b3JlIG9wdGlvbiBidXQKICAgICAgIG5ldmVyIG1pbmQpCiAgIAoyMDAxLTA1LTMwIDAzOjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgICAtIG1vcmUgYWdncmVzc2l2ZSBoYW5kbGluZyBvZiB0aW1lb3V0IGNvbmRpdGlvbnMgKGFsc28gZml4IG1lbW9yeQogICAgICAgbGVhaykKICAgCjIwMDEtMDUtMzAgMDM6MTkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jOgoKICAgICAtIG1vcmUgaW5mb3JtYXRpdmUgZGVidWdnaW5nCiAgIAoyMDAxLTA1LTMwIDAyOjM3ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hbGFybS5jOgoKICAgICAtIHJlbW92ZSBub2lzeSBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMzAgMDI6MzcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIG1vcmUgY29tcGFjdCBkZWJ1Z2dpbmcgaW4gX3Nlc3Nfc2VsZWN0X2luZm8KICAgCjIwMDEtMDUtMzAgMDI6MzQgIGpicG4KCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgICAgLSBjb3B5IGZsYWdzIGluIHJlYXR0YWNoX3N1YnRyZWUgKG5lZWRlZCBmb3IgQWdlbnRYIHJvdyByZWdpc3RyYXRpb24pCiAgIAoyMDAxLTA1LTI4IDA4OjU0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jICwgY2xpZW50LmggLAogICBtYXN0ZXJfYWRtaW4uYyAsIG1hc3Rlcl9yZXF1ZXN0LmMgLCBzdWJhZ2VudC5jOgoKICAgICAtIHN0dWZmIGZyb20gcGF0Y2ggIzQxNjAyNiAoc3VibWl0dGVkIGJ5IGFub255bW91cykgZm9yIEFnZW50WCByb3cKICAgICAgIHJlZ2lzdHJhdGlvbgogICAKMjAwMS0wNS0yOCAwODo0OSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgICAgLSB0d2VhayB0byBnZXRTdGF0UHRyIHRvIGhhbmRsZSBnZXROZXh0IG9wZXJhdGlvbnMgaW4gY29tYmluYXRpb24gd2l0aAogICAgICAgRlVMTFlfUVVBTElGSUVEX0lOU1RBTkNFIG5vZGVzICh3aGljaCBhcmlzZSBpbiBBZ2VudFggcm93IHJlZ2lzdHJhdGlvbikuCiAgIAoyMDAxLTA1LTI4IDA4OjQ2ICBqYnBuCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3JlZ2lzdHJ5LmggLAogICB2YXJfc3RydWN0Lmg6CgogICAgIC0gc3R1ZmYgZnJvbSBwYXRjaCAjNDE2MDI2IChzdWJtaXR0ZWQgYnkgYW5vbnltb3VzKSBmb3IgQWdlbnRYIHJvdwogICAgICAgcmVnaXN0cmF0aW9uCiAgIAoyMDAxLTA1LTI4IDA4OjQyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBzbWFsbCB0d2VhayB0byBkZWJ1Z2dpbmcgb3V0cHV0CiAgIAoyMDAxLTA1LTI4IDA4OjM5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGRvIHBhcnNpbmcvYnVpbGRpbmcgb2YgQVNOX1BSSVZfRVhDTF9SQU5HRSBhbmQKICAgICAgIEFTTl9QUklWX0lOQ0xfUkFOR0UgdHlwZXMgKnByb3Blcmx5Ki4KICAgCjIwMDEtMDUtMjggMDQ6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBpbiBfc2Vzc19hc3luY19zZW5kIGVycm9yIGNhc2VzCiAgIAoyMDAxLTA1LTI4IDA0OjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgICAtIGFkZCBwYXJzaW5nL2J1aWxkaW5nIG9mIEFTTl9QUklWX0VYQ0xfUkFOR0UgYW5kCiAgICAgICBBU05fUFJJVl9JTkNMX1JBTkdFIHR5cGVzLgogICAKMjAwMS0wNS0yMyAwOToyMCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gcmVzcGVjdCBtc2dNYXhTaXplIGluIHJlY2VpdmVkIHYzIFBEVXMgKGluIHRoZSB3ZWFrIHNlbnNlIHRoYXQgaWYKICAgICAgIHRoZSBzZXJpYWxpemVkIHJlc3BvbnNlIFBEVSBpcyBtb3JlIHRoYW4gaXQsIHdlIGRvbid0IHNlbmQgaXQpCiAgIAogICAgIC0gcmVtb3ZlZCBmdW5jdGlvbnMgYXNjaWlfdG9fYmluYXJ5LCBoZXhfdG9fYmluYXJ5LiAgVXNpbmcgdGhlc2UKICAgICAgIGZ1bmN0aW9ucyBpcyByZWFsbHkgYmFkLCBzaW5jZSB0aGV5IHdpbGwgaGFwcGlseSBvdmVyZmxvdyBidWZmZXJzLgogICAgICAgVGhlIHN1cGVyaW9yIGFsdGVybmF0aXZlcywgZGVmaW5lZCBpbiB0b29scy5oLCBhcmUKICAgICAgIHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5LgogICAKMjAwMS0wNS0yMyAwOTowMCAgamJwbgoKICAgKiBhcHBzL3NubXBzdGF0dXMuYzoKCiAgICAgLSByZW1vdmUgdW51c2VkIHZhcmlhYmxlIHN0cnVjdCBzb2NrYWRkcl9pbiByZXNwSXAKICAgCjIwMDEtMDUtMjMgMDg6NTggIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGVhcmx5IGJhaWwgb3V0IG9mIGhhbmRsZV9zbm1wX3BhY2tldCgpIGlmIHRoZSBjYWxsYmFjayBvcGVyYXRpb24KICAgICAgIHR5cGUgaXMgbm90IFNOTVBfQ0FMTEJBQ0tfT1BfUkVDRUlWRURfTUVTU0FHRS4gIEluIHByYWN0aWNlLCB0aGUKICAgICAgIG9ubHkgd2F5IHRoaXMgYXJpc2VzIGN1cnJlbnRseSBpcyB3aGVuIGEgc3RyZWFtIHRyYW5zcG9ydCBiYXNlZAogICAgICAgY29ubmVjdGlvbiBnb2VzIGF3YXkgYW5kIGEgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIG9jY3Vycy4KICAgCjIwMDEtMDUtMjMgMDg6NDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIG5ldyBmaWVsZHMgcmN2TXNnTWF4U2l6ZSBhbmQgc25kTXNnTWF4U2l6ZSBpbiBzbm1wX3Nlc3Npb24KICAgICAgIHN0cnVjdHVyZSB0byBzdXBwb3J0IHYzIG1zZ01heFNpemUKICAgCiAgICAgLSByZW1vdmVkIGZ1bmN0aW9ucyBhc2NpaV90b19iaW5hcnksIGhleF90b19iaW5hcnkgZnJvbSBwdWJsaWMKICAgICAgIGludGVyZmFjZS4gIFVzaW5nIHRoZXNlIGZ1bmN0aW9ucyBpcyByZWFsbHkgYmFkLCBzaW5jZSB0aGV5CiAgICAgICB3aWxsIGhhcHBpbHkgb3ZlcmZsb3cgYnVmZmVycy4gIFRoZSBzdXBlcmlvciBhbHRlcm5hdGl2ZXMsCiAgICAgICBkZWZpbmVkIGluIHRvb2xzLmgsIGFyZSBzbm1wX3tkZWNpbWFsLCBoZXh9X3RvX2JpbmFyeS4KICAgCjIwMDEtMDUtMjMgMDg6MzcgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBBQUw1UFZDRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmMgLAogICBzbm1wVENQRG9tYWluLmMgLCBzbm1wVURQRG9tYWluLmMgLCBzbm1wVW5peERvbWFpbi5jCiAgICwgc25tcF90cmFuc3BvcnQuYyAsIHNubXBfdHJhbnNwb3J0Lmg6CgogICAgIC0gYWRkIG1zZ01heFNpemUgZmllbGQgdG8gc25tcF90cmFuc3BvcnQgc3RydWN0dXJlIHRvIHN1cHBvcnQKICAgICAgIG1zZ01heFNpemUgbmVnb3RpYXRpb24gZm9yIHYzCiAgIAoyMDAxLTA1LTIzIDA3OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSB1c2Ugc3ByaW50X3JlYWxsb2NfaGV4c3RyaW5nIGluc3RlYWQgb2Ygc3ByaW50X2hleHN0cmluZyBmb3IKICAgICAgIFNOTVBfVEVTVElOR19DT0RFIGRlYnVnZ2luZyBvdXRwdXQgb2YgSVYsIGtleSBhbmQgcGxhaW50ZXh0CiAgIAoyMDAxLTA1LTIzIDA1OjI1ICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSBmcmVlKCkgYnVmZmVycyBpbiBhIGNvdXBsZSBvZiBlcnJvciBjYXNlczsgbm8gYmlnIGRlYWwKICAgCjIwMDEtMDUtMjMgMDQ6MzkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfaGV4X3RvX2JpbmFyeSBmdW5jdGlvbiBmb3IgZW5naW5lIElEIHBhcnNpbmcgaW4gLWUKICAgICAgIG9wdGlvbiwgcmF0aGVyIHRoYW4gYXJjaGFpYyBoZXhfdG9fYmluYXJ5CiAgIAoyMDAxLTA1LTIzIDA0OjIyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gZnJlZSgpIGJ1ZmZlcnMgaW4gYSBjb3VwbGUgb2YgZXJyb3IgY2FzZXM7IG5vIGJpZyBkZWFsCiAgIAoyMDAxLTA1LTIzIDA0OjE0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9wYXJzZV9hcmdzLmM6CgogICAgIC0gdXNlIG5ldyBzbm1wX2hleF90b19iaW5hcnkgZnVuY3Rpb24gZm9yIGVuZ2luZSBJRCBwYXJzaW5nIGluIC1lCiAgICAgICBhbmQgLUUgb3B0aW9ucywgcmF0aGVyIHRoYW4gYXJjaGFpYyBoZXhfdG9fYmluYXJ5CiAgIAoyMDAxLTA1LTIzIDAzOjU2ICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSB1c2UgbmV3IHNubXBfe2RlY2ltYWwsIGhleH1fdG9fYmluYXJ5IGZ1bmN0aW9ucyBmb3IgaW5wdXQgc3RyaW5nCiAgICAgICB0byBPQ1RFVCBTVFJJTkcgY29udmVyc2lvbiwgcmF0aGVyIHRoYW4gYXJjaGFpYyBhc2NpaV90b19iaW5hcnkKICAgICAgIGFuZCBoZXhfdG9fYmluYXJ5CiAgIAogICAgIC0gb21pdCB0cmFpbGluZyBuZXdsaW5lIGZyb20gc3RyaW5nIChoZWxwZnVsIGZvciBvYmplY3RzIHRoYXQgZG9uJ3QKICAgICAgIGFsbG93IG5vbi1wcmludGluZyBjaGFyYWN0ZXJzLCBlLmcuIHN5c0xvY2F0aW9uLjApCiAgIAoyMDAxLTA1LTIwIDA4OjEyICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAgLSByZXdyaXR0ZW4gX3Nlc3NfcmVhZCgpIGZ1bmN0aW9uOgogICAKICAgICAgIC0gYmV0dGVyIGhhbmRsaW5nIG9mIGxvbmcgcGFja2V0cwogICAgICAgLSB6ZXJvLWNvcHkgcmVjZXB0aW9uIG9mIHBhY2tldHMgb24gc3RyZWFtIHRyYW5zcG9ydHMKICAgICAgIC0gbG93ZXIgbWVtb3J5IG92ZXJoZWFkcyBmb3IgcGFja2V0IGZyYWdtZW50IGhhbmRsaW5nIGZvciBzdHJlYW0KICAgICAgICAgdHJhbnNwb3J0cwogICAKICAgICAtIGFsbG93IHBhcnNpbmcgb2YgbGFyZ2Ugb2JqZWN0cyAoPjgxOTIgb2N0ZXRzKQogICAKMjAwMS0wNS0yMCAwNTo0OCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgICAtIGRvbid0IHN0cmR1cCgpIGNvbnRleHROYW1lLCBzZWN1cml0eU5hbWUgLS0gY2F1c2VzIG1pbm9yIG1lbW9yeQogICAgICAgbGVhay4KICAgCjIwMDEtMDUtMjAgMDU6MDQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICAgIC0gdGVzdCByZXR1cm4gb2YgZmNudGwoRl9HRVRGTCksIHNvIGFzIG5vdCB0byBzZXQgZmxhZ3MgdG8gZ2FyYmFnZQogICAKICAgICAtIGNvcnJlY3Rpb24gdG8gY29tbWVudCAtLSBzZXQgc29ja2V0IHRvICpibG9ja2luZyohCiAgIAogICAgIC0gY2hlY2sgb3BhcXVlIGJlZm9yZSB3cml0aW5nIHRvIGl0IGluIHJlY3YKICAgCjIwMDEtMDUtMjAgMDU6MDIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgICAtIHByb3BlciBoYW5kbGluZyBvZiBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1QgaW4gc25tcF9zeW5jaF9pbnB1dDoKICAgICAgIHNldCBhbiBlcnJvciBjb25kaXRpb24sIHdpdGggZXJybm8gU05NUEVSUl9BQk9SVCAoIlNlc3Npb24gYWJvcnQKICAgICAgIGZhaWx1cmUiKSwgd2hpY2ggc2VlbXMgbGlrZSBhIGdvb2QgZW5vdWdoIG1hdGNoLgogICAKMjAwMS0wNS0xOCAwOTo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uYzoKCiAgICAgLSBtYWtlIG5ld2x5LWFjY2VwdCgpZWQgc29ja2V0cyBibG9ja2luZzsgb3RoZXJ3aXNlIHByb2JsZW1zIGFyaXNlCiAgICAgICBsYXRlciB3aGVuIHNlbmQoKWluZyBsYXJnZSBQRFVzIChzaW5jZSBvbmx5IGEgc2luZ2xlIHNvY2tldCBidWZmZXIncwogICAgICAgd29ydGggb2YgZGF0YSBhdCBtb3N0IGNhbiBiZSBzZW50IHdpdGhvdXQgYmxvY2tpbmcpLgogICAKMjAwMS0wNS0xOCAwNzoxNyAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgIC0gdXNlIHNwcmludF9yZWFsbG9jX29iamlkIGFuZCBzcHJpbnRfcmVhbGxvY192YXJpYWJsZSBpbnN0ZWFkIG9mCiAgICAgICBzcHJpbnRfb2JqaWQgYW5kIHNwcmludF92YXJpYWJsZSByZXNwZWN0aXZlbHksIHRvIGFsbG93IGxhcmdlIFBEVXMKICAgICAgIHRvIGJlIHByaW50ZWQgd2hlbiBkZWJ1Z2dpbmcKICAgCjIwMDEtMDUtMTggMDc6MTYgIGpicG4KCiAgICogc25tcGxpYi90b29scy5jOgoKICAgICAtIGltcHJvdmVkIGRlYnVnZ2luZyBvdXRwdXQgZnJvbSBzbm1wX3JlYWxsb2MoKQogICAKMjAwMS0wNS0xOCAwNzoxNSAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMgLCBtaWIuaDoKCiAgICAgLSByZW1vdmUgZGVidWdnaW5nIGZyb20gb3V0cHV0IHJvdXRpbmVzCiAgIAogICAgIC0gbmV3IGZ1bmN0aW9uIHNwcmludF9yZWFsbG9jX29iamlkCiAgIAogICAgIC0gbWFrZSBzcHJpbnRfcmVhbGxvY19vYmppZCBhbmQgc3ByaW50X3JlYWxsb2NfdmFyaWFibGUgZXh0ZXJuYWxseQogICAgICAgdmlzaWJsZQogICAKMjAwMS0wNS0xOCAwNjoyOCAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBpbXByb3ZlZCBkZWJ1Z2dpbmcgb3V0cHV0IGZyb20gYXNuX3JlYWxsb2MoKQogICAKMjAwMS0wNS0xNSAwNDoxMCAgamJwbgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICAgIC0gYWRkIE9JRHMgZm9yIFVEUC9JUHY2IGFuZCBUQ1AvSVB2NgogICAKMjAwMS0wNS0xNCAwMjoyMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBhZGRlZCBcbiB0byB0ZXh0IG9mIHNubXBfbG9nKCkgbWVzc2FnZXMgKGJ1ZyAjNDIyOTc4KQogICAKMjAwMS0wNS0xMSAwNzozMCAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMgLCBtaWIuaDoKCiAgICAgLSBhZGRlZCBzcHJpbnRfcmVhbGxvY188dHlwZT4gZmFtaWx5IG9mIGZ1bmN0aW9ucyB3aGljaCB0YWtlIGV4dHJhCiAgICAgICBwYXJhbWV0ZXJzIGFuZCB1c2UgcmVsb2NhdGluZyBidWZmZXJzIHRvIHJlbW92ZSBsaW1pdGF0aW9ucyBkdWUgdG8KICAgICAgIGZpeGVkLXNpemUgYnVmZmVycyAoZS5nLiBzZWUgYnVnICM0MDkxODEpLgogICAKICAgICAtIGFsc28gZml4ZXMgcG90ZW50aWFsIHByb2JsZW0gbm90ZWQgYXMgYnVnICM0MTQ4MDMKICAgCiAgICAgLSBmcHJpbnRfdmFyaWFibGUsIGZwcmludF9vYmppZCBhbmQgZnByaW50X3ZhbHVlIHVzZSBuZXcgZnVuY3Rpb25zCiAgICAgICBzdWNoIHRoYXQgc25tcGdldCBldGMuIGFyZSBpbXByb3ZlZCBpbW1lZGlhdGVseQogICAKICAgICAtIG9sZCBmdW5jdGlvbnMgcmVtYWluICpGT1IgTk9XKiAtLSBidXQgcmVhbGx5IHRoZXkgc2hvdWxkIGJlCiAgICAgICBjb25zaWRlcmVkIHRvIGJlIGRlcHJlY2F0ZWQgKG5ldyBmdW5jdGlvbnMgcHJvdmlkZSBhIHN1cGVyc2V0IG9mCiAgICAgICB0aGVpciBmdW5jdGlvbmFsaXR5KS4KICAgCjIwMDEtMDUtMTEgMDc6MTQgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5oOgoKICAgICAtIGFkZGVkIGFkZGl0aW9uYWwgZnVuY3Rpb24gcG9pbnRlciB0byBzdHJ1Y3QgdHJlZSB0byBwb2ludCBhdAogICAgICAgcmVsb2NhdGluZyBidWZmZXIgY29tcGF0aWJsZSBvdXRwdXQgZnVuY3Rpb24KICAgCjIwMDEtMDUtMTEgMDY6NTcgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMgLCB0b29scy5oOgoKICAgICAtIGFkZGVkIHV0aWxpdHkgZnVuY3Rpb24gc25tcF9zdHJjYXQsIHdoaWNoIGFwcGVuZHMgYSBzdHJpbmcgdG8gYQogICAgICAgcmVsb2NhdGFibGUgYnVmZmVyCiAgIAoyMDAxLTA1LTEwIDExOjIwICByc3RvcnkKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIGZpeCBidWcgIzQyMzEwOSBpbmNvcnJlY3QgaW5kZXggcGFyc2luZwogICAKMjAwMS0wNS0wOSAxNjo0MyAgcnN0b3J5CgogICAqIHNubXBsaWIvc25tcF9jbGllbnQuYzoKCiAgIGZpeCBzbm1wX2NsaWVudC5jOjU2OTogd2FybmluZzogY29udHJvbCByZWFjaGVzIGVuZCBvZiBub24tdm9pZCBmdW5jdGlvbgogICAKMjAwMS0wNS0wOSAxMjozNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC86IFJtb24uaCAsIFJtb24vUkVBRE1FICwgUm1vbi9hZ3V0aWwuYwogICAsIFJtb24vYWd1dGlsLmggLCBSbW9uL2FndXRpbF9hcGkuaCAsIFJtb24vYWxhcm0uYwogICAsIFJtb24vYWxhcm0uaCAsIFJtb24vZXZlbnQuYyAsIFJtb24vZXZlbnQuaCAsCiAgIFJtb24vaGlzdG9yeS5jICwgUm1vbi9oaXN0b3J5LmggLCBSbW9uL3Jvd19hcGkuaCAsCiAgIFJtb24vcm93cy5jICwgUm1vbi9yb3dzLmggLCBSbW9uL3N0YXRpc3RpY3MuYyAsCiAgIFJtb24vc3RhdGlzdGljcy5oICwgUm1vbi90ZXN0X2FsYXJtLnNoICwKICAgUm1vbi90ZXN0X2hpc3Quc2g6CgogICBJbmNsdWRlIEFsZXggUm96aW4ncyBSbW9uLgogICAKMjAwMS0wNS0wNyAxMDo0MSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfY2xpZW50LmMgLCBzbm1wX2NsaWVudC5oOgoKICAgQWRkZWQgYSBjb3VwbGUgb2YgY29udmVuaWVuY2UgZnVuY3Rpb25zIGZvciBtYW5pcHVsYXRpbmcgdmFyYmluZGxpc3RzOgogICAgIGludCBzbm1wX3NldF92YXJfdHlwZWRfdmFsdWUoc3RydWN0IHZhcmlhYmxlX2xpc3QgKm5ld3ZhciwgdV9jaGFyIHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1X2NoYXIgKnZhbF9zdHIsIHNpemVfdCB2YWxfbGVuKTsKICAgICB2b2lkIHNubXBfcmVwbGFjZV92YXJfdHlwZXMoc3RydWN0IHZhcmlhYmxlX2xpc3QgKnZibCwgaW50IG9sZF90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgbmV3X3R5cGUpOwogICAgIHZvaWQgc25tcF9yZXNldF92YXJfdHlwZXMoc3RydWN0IHZhcmlhYmxlX2xpc3QgKnZibCwgaW50IG5ld190eXBlKTsKICAgCjIwMDEtMDUtMDcgMTA6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdG9vbHMuaDoKCiAgIGRlZmluZSBTTk1QX01BTExPQ19UWVBFREVGKCkKICAgCjIwMDEtMDUtMDUgMDc6MjggIHJzdG9yeQoKICAgKiBsb2NhbC9taWIyYy5zdG9yYWdlLmNvbmY6CgogICBmaXggc3RvcmVfIG5hbWU7IGRvbid0IGNhc3QgdG8gYXNueSB0eXBlIGlmIHBhcm0gZXhwZWN0aW5nIHVfY2hhcio7IGZpeCBfdmFyaWFibGVfb2lkCiAgIG5hbWluZzsgY2FzdCBwYXJtIDIgb2YgbWVtZHVwIHRvIHVfY2hhcioKICAgCjIwMDEtMDUtMDMgMTQ6MTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4ZWQgcmF1dGggb2Zmc2V0IGluY3JlbWVudGluZzogd2FzIGluY3JlbWVudGluZyB0aGUgcG9pbnRlciwgbm90IHRoZSB2YWx1ZS4KICAgICAtLSBtb3JlIGluc3RhbmNlcyBvZiB0aGUgc2FtZSBwcm9ibGVtIGZvdW5kLgogICAKMjAwMS0wNS0wMyAxNDoxNSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXhlZCByYXV0aCBvZmZzZXQgaW5jcmVtZW50aW5nOiB3YXMgaW5jcmVtZW50aW5nIHRoZSBwb2ludGVyLCBub3QgdGhlIHZhbHVlLgogICAKMjAwMS0wNS0wMyAxMDowOCAgaGFyZGFrZXIKCiAgICogYWNsb2NhbC5tNCAsIGNvbmZpZy5ndWVzcyAsIGNvbmZpZy5zdWIgLAogICBjb25maWd1cmUgLCBsdG1haW4uc2g6CgogICB1cGRhdGVkIHRvIGxpYnRvb2wgMS40CiAgIAoyMDAxLTA1LTAxIDEzOjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIHVzZSByZWFsbG9jIHJvdXRpbmVzLgogICAKMjAwMS0wNS0wMSAxMzozMSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgZml4IHZhcmlhYmxlIGRlY2xhcmF0aW9uLgogICAKMjAwMS0wNS0wMSAxMzozMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERvbid0IHByaW50IGhleCBmb3Igc3RyaW5nIGxlbmd0aHMgbGVzcyB0aGFuIDQuICBTaG91bGQgaGF2ZSBkaWVkIGFnZXMgYWdvLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0Lmg6CgogICBGaXggcHJvdG90eXBlIHNvIGl0cyBub3Qgc3RhdGljIChpdCBzaG91bGRuJ3QgYmUpLgogICAKMjAwMS0wNS0wMSAxMzoyOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYzoKCiAgIG1ha2UgUk9OTFkgdmFyaWFibGVzIHdyaXRhYmxlICh3aGljaCBtYXkgb3IgbWF5IG5vdCB3b3JrLiAgSSdtIGJldHRpbmcgbm90LikKICAgCjIwMDEtMDUtMDEgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgIHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzLgogICAKMjAwMS0wNS0wMSAxMzoyOCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW4gLCBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBjaGVjayBmb3IgYW4gcnBtIHN1YmRpcmVjdG9yeS4KICAgCjIwMDEtMDQtMjMgMjA6NDEgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgYmlnIGNsZWFudXAgYW5kIG90aGVyIGZpeGVzIEkndmUgYWxyZWFkeSBmb3Jnb3R0ZW4gaW4gdGhlIGxhc3QgZmV3IG1pbnV0ZXMuCiAgIAoyMDAxLTA0LTIzIDIwOjM0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIERvbid0IHdhbGsgb2ZmIGVuZCBvZiBtaWIgdHJlZSAoc2lnaCkuCiAgIAoyMDAxLTA0LTIzIDIwOjE5ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIGZpeCB0aGUgbWliIGluZm8gZGlzcGxheSBvcHRpb25zLgogICBzYXZlIHRoZW0gYXBwcm9wcmlhdGVseS4KICAgCjIwMDEtMDQtMjMgMTg6MjMgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbW9yZSBzYXZhYmxlIG9wdGlvbiBpdGVtcy4KICAgdXNlIERhdGE6OkR1bXBlciB0byBzYXZlIG1vc3Qgc3R1ZmYuCiAgIAoyMDAxLTA0LTIzIDE3OjI2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIERvbid0IHNhdmUgc2Vzc2lvbiBvcHRpb25zIHR3aWNlLgogICBNYWtlIGNvbG9yIG9mIHdyaXRhYmxlIG9iamVjdHMgYSB2YXJpYWJsZS4KICAgCjIwMDEtMDQtMjMgMTc6MDggIGhhcmRha2VyCgogICAqIGxvY2FsLzogdGttaWIgKFY0LTItcGF0Y2hlcy4yKSwgdGttaWI6CgogICBmaXggd2FsayBwcm9ibGVtIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAxLTA0LTIzIDE2OjM2ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIHJlZHVjZSBzY3JlZW4gcmVhbGVzdGF0ZSBhbGwgb3ZlciB0aGUgcGxhY2UKICAgCjIwMDEtMDQtMjMgMTY6MzUgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgdGVzdCBhZ2FpbnN0IHZlcnNpb24gNQogICAKMjAwMS0wNC0xOCAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG1TZW5zb3JzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sbVNlbnNvcnMuaCAsIG1pYnMvTE0tU0VOU09SUy1NSUIudHh0CiAgICwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQWRkZWQgTE0tU0VOU09SUy1NSUIgc3VwcG9ydCAoZGlza2lvIGV4dGVuc2lvbikgZnJvbSBNYXJ0aW4gT2xkZmllbGQKICAgCjIwMDEtMDQtMTggMDU6NDAgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgICAtIGhhY2tpbmcgb24gc25tcF9hZGRfdmFyIHRvIGhhbmRsZSBsb25nIHZhbHVlcwogICAKICAgICAgIC0gdXNlIHNubXBfe2hleCxkZWNpbWFsfV90b19iaW5hcnkgaW5zdGVhZCBvZiBoZXhfdG9fYmluYXJ5CiAgICAgICAgIGFuZCBhc2NpaV90b19iaW5hcnk7IHRoZXNlIHNob3VsZCBiZSByZW1vdmVkCiAgIAogICAgICAgLSBkb24ndCB1c2Ugc3RydG9rIGluIHByb2Nlc3NpbmcgYml0c3RyaW5ncwogICAKMjAwMS0wNC0xOCAwNDo1OCAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSB1c2UgdGhlIGdlbmVyaWMgc25tcF9yZWFsbG9jIGZ1bmN0aW9uIGluIGFzbl9yZWFsbG9jCiAgIAoyMDAxLTA0LTE4IDAyOjQwICBqYnBuCgogICAqIHNubXBsaWIvOiB0b29scy5jICwgdG9vbHMuaDoKCiAgICAgLSBuZXcsIHJlYWxsb2NhdGluZyB1dGlsaXR5IGZ1bmN0aW9ucyBzbm1wX2hleF90b19iaW5hcnkgYW5kCiAgICAgICBzbm1wX2RlY2ltYWxfdG9fYmluYXJ5IHRvIGNvbnZlcnQgaGV4IGFuZCBkZWNpbWFsIHN0cmluZ3MgdG8gb2N0ZXQKICAgICAgIHN0cmluZ3MgcmVzcGVjdGl2ZWx5LgogICAKICAgICAtIG5ldyB1dGlsaXR5IGZ1bmN0aW9uIHNubXBfcmVhbGxvYyB0byBwZXJmb3JtIGJ1ZmZlciAocmUtKWFsbG9jYXRpb24KICAgCjIwMDEtMDQtMTIgMDU6MTIgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jIChWNC0yLXBhdGNoZXMuNiksIHNubXBfYWdlbnQuYzoKCiAgIEJldHRlciBmaXggZm9yIGJ1ZyAjNDE0ODU1IGZyb20gYXJhamVzaAogICBIYW5kbGVzIG5vbi1yZXBlYXRlcnM9MCBhcyB3ZWxsLCBhbmQgYXZvaWRzIG1lbW9yeSBsZWFrcy4KICAgCjIwMDEtMDQtMTEgMTA6MDYgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmg6CgogICAgIC0gc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLCB3aGljaAogICAgICAgbm93IHRha2UgYW4gYWRkaXRpb25hbCBhcmd1bWVudCB0aGF0IG1heSBiZSB1c2VkIHRvIGluZGljYXRlIHRoYXQKICAgICAgIHJlYWxsb2NhdGlvbiBzaG91bGQgbm90IGJlIGRvbmUuCiAgIAogICAgIC0gb2xkIF9yYnVpbGQgQVBJIGlzIGdvbmUuCiAgIAogICAgIC0gZXh0ZW5kZWQgKGFuZCBjb3JyZWN0ZWQhKSBjb21tZW50YXJ5IG9uIGNvcnJlY3QgdXNhZ2Ugb2YgbmV3IEFQSS4KICAgCjIwMDEtMDQtMTEgMTA6MDUgIGpicG4KCiAgICogc25tcGxpYi86IHNubXAuYyAsIHNubXAuaDoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIF9yZWFsbG9jX3JidWlsZCBmdW5jdGlvbnMuCiAgIAogICAgIC0gb2xkIF9yYnVpbGRfdmFyX29wIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowNCAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgICAgLSB1c2Ugc2Vjb25kIGluY2FybmF0aW9uIG9mIGFzbl9yZWFsbG9jX3JidWlsZF88dHlwZT4gZnVuY3Rpb25zLgogICAKMjAwMS0wNC0xMSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gdXNlIHNlY29uZCBpbmNhcm5hdGlvbiBvZiBfcmVhbGxvY19yYnVpbGQgZnVuY3Rpb25zLgogICAKICAgICAtIG9sZCBfcmJ1aWxkIEFQSSBpcyBnb25lLgogICAKMjAwMS0wNC0xMSAxMDowMiAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBzZWNvbmQgaW5jYXJuYXRpb24gb2YgYXNuX3JlYWxsb2NfcmJ1aWxkXzx0eXBlPiBmdW5jdGlvbnMsIHdoaWNoCiAgICAgICBub3cgdGFrZSBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHRoYXQgbWF5IGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdAogICAgICAgcmVhbGxvY2F0aW9uIHNob3VsZCBub3QgYmUgZG9uZS4KICAgCiAgICAgLSBvbGQgX3JidWlsZCBBUEkgaXMgZ29uZS4KICAgCiAgICAgLSBhc25fcmVhbGxvYygpIGZ1bmN0aW9uIGNoZWNrcyB3aGV0aGVyIGl0IGhhcyBiZWVuIHBhc3NlZCBhIE5VTEwKICAgICAgIHBvaW50ZXIgYW5kIHVzZXMgbWFsbG9jKCkgaW4gdGhhdCBjYXNlICh0aGFua3MgdG8gTWljaGFlbCBTbGlmY2FrCiAgICAgICBmb3IgcG9pbnRpbmcgb3V0IHRoZSBkYW5nZXIgaGVyZSkuCiAgIAoyMDAxLTA0LTExIDA2OjEzICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBIYW5kbGUgR2V0QnVsayByZXF1ZXN0cyB3aXRoIG1heC1yZXBldGl0aW9ucz0wIHByb3Blcmx5IChidWcgIzQxNDg1NSkKICAgCjIwMDEtMDQtMTAgMDQ6NDcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVURQRG9tYWluLmM6CgogICAgIC0gc2V0IFNPX1NOREJVRiBhbmQgU09fUkNWQlVGIHRvIDEyOEtiIGZvciBuZXdseS1vcGVuZWQgVURQIHNvY2tldHMsCiAgICAgICB0byBlbmFibGUgbGFyZ2UgUERVcyB0byBiZSBzZW50IGFuZCByZWNlaXZlZC4gIFNvbWUKICAgICAgIGltcGxlbWVudGF0aW9ucyBkZWZhdWx0IHZlcnkgbG93IChTb2xhcmlzIDIuNyA4S2IsIExpbnV4IDIuNAogICAgICAgNjRLYikuCiAgIAoyMDAxLTA0LTA5IDEwOjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcHVzbS5jOgoKICAgICAtIG1vZGlmaWVkIHVzbV9yZ2VuZXJhdGVfb3V0X21zZygpIHRvIG1ha2UgdXNlIG9mIHJlYWxsb2NhdGluZwogICAgICAgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAxMDowMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXB1c20uaDoKCiAgICAgLSBhZGRpdGlvbmFsIHBhcmFtZXRlciB0byB1c21fcmdlbmVyYXRlX291dF9tc2coKSB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfc2VjbW9kLmg6CgogICAgIC0gYWxsb3cgYWRkaXRpb25hbCBwYXJhbWV0ZXIgZm9yIG91dGdvaW5nIHBhcmFtcyB0byBlbmFibGUgdXNlIG9mCiAgICAgICByZWFsbG9jYXRpbmcgcmV2ZXJzZSBlbmNvZGUgZnVuY3Rpb25zLgogICAKMjAwMS0wNC0wOSAwOTo1NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmg6CgogICAgIC0gcHJvdG90eXBlcyBmb3IgcmVhbGxvY2F0aW5nIHJldmVyc2UgZW5jb2RlIGZ1bmN0aW9ucwogICAKMjAwMS0wNC0wOSAwOTo1NCAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgIC0gbW9kaWZpZWQgdG8gdXNlIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIGlmCiAgICAgICB1c2luZyByZXZlcnNlIGVuY29kaW5nIGF0IGFsbC4KICAgCjIwMDEtMDQtMDkgMDk6NDkgIGpicG4KCiAgICogc25tcGxpYi9zbm1wLmM6CgogICAgIC0gYWRkIG5ldyBmdW5jdGlvbiBzbm1wX3JlYWxsb2NfcmJ1aWxkX3Zhcl9vcCgpIHdoaWNoIHVzZXMKICAgICAgIHJlYWxsb2NhdGluZyByZXZlcnNlIEFTTi4xIGVuY29kZXIgZnVuY3Rpb25zIHRvIGVuY29kZSB2YXJiaW5kcy4KICAgCjIwMDEtMDQtMDkgMDk6NDcgIGpicG4KCiAgICogc25tcGxpYi9hc24xLmg6CgogICAgIC0gcHJvdG90eXBlIGZvciBuZXcgc3VpdGUgb2YgZnVuY3Rpb25zIGFzbl9yZWFsbG9jX3JlYnVpbGRfPHR5cGU+LAogICAgICAgd2hpY2ggcGVyZm9ybSByZXZlcnNlIGVuY29kaW5nIGludG8gYSBidWZmZXIgYW5kIGdyb3cgaXQgaWYgdGhlcmUKICAgICAgIGlzIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSBlbmNvZGluZy4KICAgCiAgICAgLSBjb21tZW50YXJ5IG9uIGNvcnJlY3QgdXNhZ2Ugb2YgYWJvdmUuCiAgIAoyMDAxLTA0LTA5IDA5OjQzICBqYnBuCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgICAtIG5ldyBzdWl0ZSBvZiBmdW5jdGlvbnMgYXNuX3JlYWxsb2NfcmVidWlsZF88dHlwZT4sIHdoaWNoIHBlcmZvcm0KICAgICAgIHJldmVyc2UgZW5jb2RpbmcgaW50byBhIGJ1ZmZlciBhbmQgZ3JvdyBpdCBpZiB0aGVyZSBpcyBub3QgZW5vdWdoCiAgICAgICBzcGFjZSBmb3IgdGhlIGVuY29kaW5nLgogICAKMjAwMS0wNC0wNiAxMjoxMiAgaGFyZGFrZXIKCiAgICogQUdFTlQudHh0ICwgQ09QWUlORyAsIENoYW5nZUxvZyAsCiAgIEVYQU1QTEUuY29uZi5kZWYgLCBGQVEgLCBORVdTICwgUE9SVElORyAsCiAgIFJFQURNRSAsIFJFQURNRS5hZ2VudHggLCBSRUFETUUuc25tcHYzICwgY29uZmlndXJlCiAgICwgY29uZmlndXJlLmluICwgc2Vkc2NyaXB0LmluICwgdmVyc2lvbi5oCiAgICwgYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvZHNfYWdlbnQuaCAsCiAgIGFnZW50L3NubXBfYWdlbnQuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L1JFQURNRS5hZ2VudHggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmggLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYyAsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYwogICAsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmggLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9maWxlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3ZlcnNpb25pbmZvLmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyAsIGFwcHMvc25tcGRlbHRhLmMKICAgLCBhcHBzL3NubXB0ZXN0LmMgLCBhcHBzL3NubXB0cmFwZC5jICwKICAgbG9jYWwvTWFrZWZpbGUuaW4gLCBsb2NhbC9taWIyYyAsIGxvY2FsL3NubXBjb25mCiAgICwgbG9jYWwvdGttaWIgLCBsb2NhbC93ZXNyZXN0YXJ0ICwgbWFuL3NubXBjbWQuMQogICAsIG1hbi9zbm1wZC5jb25mLjUuZGVmICwgbWFuL3NubXBkZWx0YS4xICwKICAgbWlicy9yZmNsaXN0ICwgbWlicy9yZmNtaWJzLmRpZmYgLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9wYXJzZS5jICwgc25tcGxpYi9zbm1wX2FwaS5jICwKICAgc25tcGxpYi9zbm1wX2RlYnVnLmMgLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHRlc3RpbmcvZXZhbF90b29scy5zaCAsIHRlc3RpbmcvdGVzdHMvVDEyMHByb3h5Z2V0OgoKICAgbWVyZ2UzIC0+IG1lcmdlNC4gIEkgZG9uJ3QgKnRoaW5rKiBJIGJyb2tlIGFueXRoaW5nLgogICAgIC0gVGhlIG1haW4gbGluZSBzaG91bGQgbm93IGNvbnRhaW4gYWxsIHRoZSA0LjIuMSBwYXRjaGVzLgogICAgIC0gSSBtYXkgZG91YmxlIGNoZWNrIHRoaXMgYXQgYSBsYXRlciBkYXRlLgogICAKMjAwMS0wNC0wNSAwNjozNyAgZHRzMTIKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgQ2hhbmdlICdMaW5lJyB2YXJpYWJsZSBuYW1lLCB0byBhc3Npc3Qgd2l0aCBNYWMgcG9ydC4KICAgCjIwMDEtMDQtMDUgMDY6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogcGFzcy5jICwgcGFzc19wZXJzaXN0LmM6CgogICBIYW5kbGUgc2V0dGluZyBudWxsIHN0cmluZyB2YWx1ZXMgdmlhIHRoZSAncGFzcycgbWVjaGFuaXNtLiAoU3VwcG9ydCM0MDY3MjgpCiAgIEFsc28gaGFuZGxlIGVtYmVkZGVkIHdoaXRlc3BhY2UgaW4gc3VjaCB2YWx1ZXMuCiAgIEFsc28gYXBwbGllZCB0byAncGFzc19wZXJzaXN0Jy4KICAgCjIwMDEtMDQtMDUgMDY6MDcgIGR0czEyCgogICAqIGFnZW50LzogYWdlbnRfcmVnaXN0cnkuYyAsIGFnZW50X3RyYXAuYyAsIGtlcm5lbC5jCiAgICwgbWliX21vZHVsZXMuYyAsIHNubXBfYWdlbnQuYyAsIHNubXBfYWdlbnQuaAogICAsIHNubXBfdmFycy5jICwgbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwgbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX2Rpc2suYyAsIG1pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jCiAgICwgbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jICwgbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMKICAgLCBtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jICwgbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jCiAgICwgbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLAogICBtaWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIG1pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBtaWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jICwKICAgbWliZ3JvdXAvdGFyZ2V0L3RhcmdldC5jICwgbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jICwKICAgbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jICwgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIG1pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmMgLAogICBtaWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTA1IDA2OjA2ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBFbnN1cmUgdGhhdCBjaGVja2luZyBmb3IgJ3N0YXR2ZnMnIGlzIGRvbmUgY29uc2lzdGVudGx5CiAgIAoyMDAxLTA0LTA1IDA2OjA1ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBlbnN1cmUgdGhhdCAnZXhlY19jb21tYW5kJyBpcyB1c2VkIGNvbnNpc3RlbnRseSB3aXRoIHRoZSBhdmFpbGFiaWxpdHkgb2YgZXhlY3YKICAgKEEgY2xlYW5lciBhcHByb2FjaCB0aGFuIHRoZSBwcmV2aW91cyBwYXRjaCkKICAgCjIwMDEtMDQtMDUgMDY6MDEgIGR0czEyCgogICAqIGFnZW50LzogYXV0b19ubGlzdC5jICwgYXV0b19ubGlzdC5oOgoKICAgZml4IGZvciBhdXRvX25saXN0IGJvZ3VzIGRlZmluaXRpb25zIGZvciBtYWNoaW5lcyB3aXRob3V0IG5saXN0LgogICAKMjAwMS0wNC0wNSAwNDo1MSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAgLSBzYXZlIGEgc3RyY3B5KCkgYW5kIGFsbG93IGxvbmcgb2N0ZXQgc3RyaW5nIHZhbHVlcyB3aXRob3V0IGNyYXNoaW5nCiAgICAgICh0aG91Z2ggdGhlcmUgYXJlIHN0aWxsIHByb2JsZW1zIGR1ZSB0byB0aGUgbGliZXJhbCB1c2Ugb2YgZml4ZWQKICAgICAgc2l6ZSBidWZmZXJzIHdpdGggbm8gYm91bmRzIGNoZWNraW5nIGFsbCBvdmVyIHRoZSBwbGFjZS4gIFNpZ2gpLgogICAKMjAwMS0wNC0wNCAwNjo0NiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgIC0gY2FsbCBleHRlcm5hbCBzaWduYWwgaGFuZGxlcnMgYmVmb3JlIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpLAogICAgICByYXRoZXIgdGhhbiBhZnRlciBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSBidXQgYmVmb3JlIHNlbGVjdCgpLgogICAgICBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIHByb2JsZW0gdGhhdCBjb3VsZCBhcmlzZSBpZiBhIHNpZ25hbCBoYW5kbGVyCiAgICAgIGNsb3NlZCBhIHNlc3Npb24sIHdoaWNoIHdvdWxkIGNhdXNlIHNlbGVjdCgpIHRvIHJldHVybiAtMSB3aXRoCiAgICAgIEVCQURGLCBhbmQgdGh1cyB0ZXJtaW5hdGUgdGhlIGFnZW50LgogICAKMjAwMS0wNC0wMyAwOTozMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgRW5zdXJlIHRoYXQgdGhlICdleHRtcCcgY29tbWFuZCB2YXJpYWJsZSBpcyBhY2Nlc3NpYmxlIG9uIHN5c3RlbXMgd2l0aG91dCBFWEVDVi4KICAgCjIwMDEtMDQtMDMgMDk6MjkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIEtlZXAgb25lIG9mIHRoZSBwaWNraWVyIGNvbXBpbGVycyAoSFAncyBhQ0MpIGhhcHB5LgogICAKMjAwMS0wNC0wMyAwOToyMiAgZHRzMTIKCiAgICogYXBwcy86IHNubXB0cmFwZC5jICwgc25tcHRyYXBkX2xvZy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA5OjE1ICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMgLCByZWFkX2NvbmZpZy5jICwgc25tcFRDUERvbWFpbi5oCiAgICwgc25tcFVEUERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uYyAsCiAgIHNubXBVbml4RG9tYWluLmggLCBzbm1wX2FwaS5jICwgc25tcF9sb2dnaW5nLmMgLAogICBzbm1wX3RyYW5zcG9ydC5jICwgc25tcF90cmFuc3BvcnQuaCAsIHN5c3RlbS5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDA2OjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9rZXJuZWxfbGludXguYzoKCiAgIFBsdWcgZmlsZS1kZXNjcmlwdG9yIGxlYWsgd2hlbiB1c2luZyBjYWNoZWQgZGF0YS4gIChCdWcjNDEyMDAwKQogICAKMjAwMS0wNC0wMiAxMDoxMSAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBjaGVjayBmb3IgbGltaXRzLmggcHJvcGVybHkKICAgCjIwMDEtMDQtMDIgMTA6MTAgIGpicG4KCiAgICogbWFuL3NubXBfYWdlbnRfYXBpLjM6CgogICAgLSBtaW5vciB0eXBlZmFjZSBjaGFuZ2VzCiAgIAoyMDAxLTAzLTMxIDA2OjI3ICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gdXBkYXRlIGRvY3VtZW50YXRpb24gb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MgdG8gcmVmbGVjdAogICAgICBjdXJyZW50IGJlaGF2aW91cgogICAKICAgICAgICAqKiBOT1RFOiBjdXJyZW50bHkgcmV0dXJucyBjb250cm9sIHRvIHVzZXIgd2hlbiBhbiBhbGFybXMgcnVucyAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICoqCiAgICAgICAgKiogICAgICAgICAgICAgICAgICAgICAgICAgVGhpcyBtYXkgY2hhbmdlICAgICAgICAgICAgICAgICAgICAgKioKICAgCjIwMDEtMDMtMzEgMDY6MjUgIGpicG4KCiAgICogbWFuL3NubXBfYWxhcm0uMzoKCiAgICAtIGRvY3VtZW50IHRoZSBzbm1wX2FsYXJtX3JlZ2lzdGVyX2hyIGZ1bmN0aW9uCiAgIAogICAgLSBleHBhbmQgdGhlIE5PVEVTIHNlY3Rpb24gZGlzY3Vzc2luZyB1c2Ugb2YgU0lHQUxSTSAob3Igbm90KQogICAKMjAwMS0wMy0zMSAwNjoxNyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seSBhbmQgY2FuY2VsIGFsbAogICAgICBjYWxsYmFja3Mgd2hpY2ggbWFrZSByZWZlcm5jZSB0byB0aGUgQWdlbnRYIHNlc3Npb24uCiAgIAoyMDAxLTAzLTMxIDA2OjE1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYzoKCiAgICAtIEZpeCBtdWx0aXBsZSBmcmVlKCkgb2YgcGFydHMgb2YgdGhlIHN1YnNlc3Npb24gYnkgemVyb2luZyBvdXQKICAgICAgZmllbGRzIHRoYXQgd2UgZG9uJ3QgdXNlLgogICAKICAgIC0gTWFrZSB1c2Ugb2YgU05NUF9DQUxMQkFDS19PUF9ESVNDT05ORUNUIHRyYW5zcG9ydCBkaXNjb25uZWN0CiAgICAgIGluZGljYXRpb24gdG8gc2h1dCBkb3duIEFnZW50WCBzZXNzaW9ucyBjbGVhbmx5LgogICAKMjAwMS0wMy0zMSAwNjoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIE1ha2UgdXNlIG9mIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVCB0cmFuc3BvcnQgZGlzY29ubmVjdAogICAgICBpbmRpY2F0aW9uIHRvIHNodXQgZG93biBBZ2VudFggc2Vzc2lvbnMgY2xlYW5seS4KICAgCjIwMDEtMDMtMzEgMDY6MTEgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgIC0gRml4IG1lbW9yeSBsZWFrIGluIGhhbmRsZV9vbmVfdmFyIHdoZXJlIGxvbmcgdmFyYmluZHMgd2VyZW4ndAogICAgICBjb3JyZWN0bHkgZnJlZSgpZC4KICAgCiAgICAtIENoYW5nZSBiZWhhdmlvdXIgb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3Mgc28gdGhhdCBhbGFybXMgcnVuCiAgICAgIGNvcnJlY3RseS4KICAgCiAgICAgICAgKiogTk9URTogY3VycmVudGx5IHJldHVybnMgY29udHJvbCB0byB1c2VyIHdoZW4gYW4gYWxhcm1zIHJ1bnMgKioKICAgICAgICAqKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqKgogICAgICAgICoqICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgbWF5IGNoYW5nZSAgICAgICAgICAgICAgICAgICAgICoqCiAgIAoyMDAxLTAzLTMxIDA2OjA1ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgICAtIENoYW5nZWQgcGFja2V0IGhhbmRsaW5nIG9uIHN0cmVhbS1saWtlIHRyYW5zcG9ydHMgc28gdGhhdCBhbGwKICAgICAgY29tcGxldGUgcmVjZWl2ZWQgcGFja2V0cyBhcmUgcHJvY2Vzc2VkOgogICAKICAgICAgX3Nlc3NfcmVhZCBpcyByZWZhY3RvcmVkIGludG8gdHdvIGZ1bmN0aW9uczogX3Nlc3NfcmVhZCByZW1haW5zCiAgICAgIHJlc3BvbnNpYmxlIGZvciByZWFkaW5nIGRhdGEgZnJvbSB0aGUgdHJhbnNwb3J0IGxheWVyLCBidXQgdGhlbgogICAgICBjYWxscyAocGVyaGFwcyBtb3JlIHRoYW4gb25jZSkgX3Nlc3NfcHJvY2Vzc19wYWNrZXQgdG8gZGlzcGF0Y2gKICAgICAgZWFjaCBwYWNrZXQgcmVhZC4KICAgCiAgICAtIFRoZSBwcmVzZW5jZSBvZiBhIHNlc3Npb24gd2l0aCBhIGJ1ZmZlcmVkIHBhcnRpYWwgcGFja2V0IG5vIGxvbmdlcgogICAgICBjYXVzZXMgc25tcF9zZWxlY3RfaW5mbyB0byByZXR1cm4gd2l0aCBhIHRpbWVvdXQgb2YgemVyby4KICAgCiAgICAtIEZyZWUgdGhlIHN1YnNlc3Npb25zIG9mIGEgc2Vzc2lvbiB3aGVuIGRvaW5nIGFuIHNubXBfc2Vzc19jbG9zZTsKICAgICAgdGhpcyBmaXhlcyBhbiBBZ2VudFggbWVtb3J5IGxlYWsgd2hlbiBzdWJhZ2VudHMgY29tZSBhbmQgZ28uCiAgIAogICAgLSBQZXJmb3JtIGNhbGxiYWNrcyB3aXRoIGFuIG9wZXJhdGlvbiBhcmd1bWVudCBvZgogICAgICBTTk1QX0NBTExCQUNLX09QX0RJU0NPTk5FQ1Qgd2hlbiB5b3UgZ2V0IGEgdHJhbnNwb3J0IGRpc2Nvbm5lY3QKICAgICAgaW5kaWNhdGlvbi4KICAgCjIwMDEtMDMtMzEgMDU6NTYgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgTWFkZSB0cmFuc3BvcnQgZG9tYWluIGNvbnN0CiAgIAoyMDAxLTAzLTMxIDA1OjU1ICBqYnBuCgogICAqIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIEZpeCBtZW1vcnkgbGVhayB0aGF0IGNhbiBvY2N1ciB3aGVuIGRlcmVnaXN0ZXJpbmcgY2FsbGJhY2tzCiAgIAoyMDAxLTAzLTMwIDA4OjA1ICBoYXJkYWtlcgoKICAgKiBSRUFETUUuYWdlbnR4OgoKICAgZmlsZSBSRUFETUUuYWdlbnR4IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMjkgMjE6NDMgIGhhcmRha2VyCgogICAqIElTU1VFUyAoVjQtMi1wYXRjaGVzLjEpLCBJU1NVRVM6CgogICBybSBJU1NVRVMKICAgCjIwMDEtMDMtMjkgMDg6MjEgIHNsaWYKCiAgICogd2luMzIvbGlic25tcF9kbGwvOiBsaWJzbm1wLmRlZiAoVjQtMi1wYXRjaGVzLjMpLCBsaWJzbm1wLmRlZjoKCiAgIEFkZCB2YWNtX2lzX2NvbmZpZ3VyZWQuCiAgIAoyMDAxLTAzLTI4IDA2OjE5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IGNsaWVudC5jICwgbWFzdGVyX3JlcXVlc3QuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDY6MDAgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgICAtIHVzZSBTTk1QX0NBTExCQUNLX09QXzxuYW1lPiBjYWxsYmFjayBvcGVyYXRpb24gbmFtZXMKICAgCjIwMDEtMDMtMjggMDU6MzYgIGpicG4KCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wZC5jOgoKICAgIC0gdXNlIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+IGNhbGxiYWNrIG9wZXJhdGlvbiBuYW1lcwogICAKMjAwMS0wMy0yOCAwNTowNiAgamJwbgoKICAgKiBzbm1wbGliLzogc25tcF9jbGllbnQuYyAsIHNubXBfYXBpLmM6CgogICAgLSB1c2UgU05NUF9DQUxMQkFDS19PUF88bmFtZT4gY2FsbGJhY2sgb3BlcmF0aW9uIG5hbWVzCiAgIAoyMDAxLTAzLTI4IDA1OjA0ICBqYnBuCgogICAqIHNubXBsaWIvc25tcF9hcGkuaDoKCiAgICAtIHJlbmFtZSBjYWxsYmFjayBvcGVyYXRpb25zIHRvIFNOTVBfQ0FMTEJBQ0tfT1BfPG5hbWU+CiAgICAtIGFkZCBuZXcgb3BlcmF0aW9ucyBTTk1QX0NBTExCQUNLX09QX0NPTk5FQ1QsIFNOTVBfQ0FMTEJBQ0tfT1BfRElTQ09OTkVDVAogICAgLSBhZGQgbGVnYWN5IGRlZmluaXRpb25zIGZvciBSRUNFSVZFRF9NRVNTQUdFLCBUSU1FRF9PVVQsIFNFTkRfRkFJTEVECiAgIAoyMDAxLTAzLTI3IDE1OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vOiBtdGVPYmplY3RzVGFibGUuYyAsCiAgIG10ZVRyaWdnZXJUYWJsZS5jOgoKICAgY2hhbmdlIGZwcmludGYgLT4gc25tcF9sb2cuCiAgIERvbid0IGFsbG93IG1vZGlmaWNhdGlvbnMgb2YgcmVhZC1vbmx5IHJvd3MgaW4gbXRlT2JqZWN0c1RhYmxlLgogICAKMjAwMS0wMy0yNyAxMDo1NSAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBkc19hZ2VudC5oICwgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5jCiAgICwgbWliZ3JvdXAvZGlzbWFuL210ZU9iamVjdHNUYWJsZS5oICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJCb29sZWFuVGFibGUuYyAsCiAgIG1pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyRGVsdGFUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5jICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oICwKICAgbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jOgoKICAgU3VwcG9ydCBmb3IgbmV3IGZlYXR1cmVzIGluIHRoZSBESVNNQU4tRVZFTlQtTUlCIGNvZGU6CiAgICAgTmV3IHNubXBkLmNvbmYgdG9rZW5zOgogICAgICAtIG1vbml0b3IgWy1vIG9pZC4uLl0gWy11IHVzZXJdIG9pZCBbKD18IT18PD18Li4uKSBWQUxVRV0uCiAgICAgIC0gZGVmYXVsdE1vbml0b3JzIHllcwogICAKMjAwMS0wMy0yNyAxMDo1MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE1vdmVkICogZnJvbSBiZWdpbm5pbmcgb2Ygcm91dGluZSB0byB0aGUgc2FtZSBsaW5lIGFzIHRoZSByZXR1cm4KICAgdmFyaWFibGUgZGVjbGFyYXRpb24uICBXYXMgY2F1c2luZyBldGFncyBncmllZiB0aGUgb3RoZXIgd2F5LgogICAKMjAwMS0wMy0yNyAxMDo1MiAgaGFyZGFrZXIKCiAgICogbG9jYWwvTWFrZWZpbGUuaW46CgogICBwYXRjaCBmcm9tIEtlbiBIb3Juc3RlaW46IHVzZSAlcyBpbnN0ZWFkIG9mIEBzIGZvciBzZWFyY2gvcmVwbGFjZSBkZWxpbWl0ZXJzLgogICAKMjAwMS0wMy0yNyAxMDoyOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2xvZyB3aXRoICVzIHRvIHByZXZlbnQgJSBleHBhbnNpb24gaW4gb2N0ZXQgc3RyaW5ncyBjb250YWluaW5nIGEgJXMuCiAgIHRyYXBfZm10X2ZyZWUgbmVlZHMgKClzLgogICAKMjAwMS0wMy0yNyAwODoxMyAgZHRzMTIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIEhhbmRsZSBub24tcmVzcG9uc2l2ZSBBZ2VudFggc3ViLWFnZW50cyBtb3JlIHJvYnVzdGx5LgogICAgICAoQmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCAmIFBhdWwgUmFzbXVzc2VuKQogICAKMjAwMS0wMy0yNyAwODowMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgQXZvaWQgZG91YmxlLWZyZWVpbmcgb2YgY2FjaGVkIGFkZHJlc3Mgc3RyaW5ncy4KICAgICAgKEpvaG4ncyBpbXByb3ZlbWVudCB0byBteSBzdWdnZXN0ZWQgZml4KS4KICAgCjIwMDEtMDMtMjcgMDI6MzkgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgUmVzZXQgY291bnQgb2YgYXV0aG9yaXplZCBwZWVycyBvbiBjbG9zZWRvd24uICAoVGhhbmtzIHRvIFZsYWQgVHVuaWspCiAgIAoyMDAxLTAzLTI2IDE4OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgc25tcGxpYi92YWNtLmMsIHNubXBsaWIvdmFjbS5oCiAgIChWNC0yLXBhdGNoZXMuWzEsMiwxXSksIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jICwKICAgc25tcGxpYi92YWNtLmMgLCBzbm1wbGliL3ZhY20uaDoKCiAgIEZpeGVkIHZhY20gdG8gZHJvcCB2MS92MmMgcGFja2V0cyBwcm9wZXJseSB3aGVuIG5vIGNvbTJzZWMgZW50cmllcyBhcmUgZm91bmQuCiAgIAoyMDAxLTAzLTI2IDExOjA0ICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IGlwZi1tb2QucGwgKFY0LTItcGF0Y2hlcy4xKSwgaXBmLW1vZC5wbDoKCiAgIGFkZCB1c2FnZSBjb21tZW50IGF0IHRvcAogICAKMjAwMS0wMy0yMiAwNzo1NSAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVXNlIEFTTl9PQ1RFVF9TVFIgcmF0aGVyIHRoYW4gdGhlIGhpc3RvcmljIEFTTl9CSVRfU1RSIGZvciAnYicgb2JqZWN0IHZhbHVlcwogICBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAxLTAzLTIyIDA3OjQ2ICBkdHMxMgoKICAgKiBhZ2VudC86IGFnZW50X3RyYXAuYyAoVjQtMi1wYXRjaGVzLjMpLCBhZ2VudF90cmFwLmM6CgogICBGaXggZm9yIG1pbm9yIG1lbW9yeSBsZWFrIHdpdGggdHJhcC1yZWxhdGVkIHZhcmJpbmQgdmFsdWVzLgogICBUaGFua3MgdG8gSm9obiBWaWxsYWxvdm9zIChhbmQgdGhlIEludGVsIFNOTVAgdGVhbSkKICAgCjIwMDEtMDMtMjEgMTc6MzAgIGRyaWVodWlzCgogICAqIHNubXBsaWIvbWliLmM6CgogICBBdm9pZCBjcmFzaCBpbiBzbm1wX3NodXRkb3duIG9uIHBsYXRmb3JtcyB0aGF0IGNoZWNrIHBvaW50ZXIgdmFsaWRpdHkKICAgaW4gZnJlZSgzKSwgZS5nLiBGcmVlQlNELgogICAKMjAwMS0wMy0yMSAwODo0NiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jICwgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvbXRhX3NlbmRtYWlsLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFnZW50L21pYmdyb3VwL21pYkpKL3ZhY21fdmFycy5jICwKICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMgLCBhcHBzL3NubXB0cmFwZF9oYW5kbGVycy5jCiAgICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLCBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgLCBzbm1wbGliL3JlYWRfY29uZmlnLmggLCBzbm1wbGliL3NubXB1c20uYyAsCiAgIHNubXBsaWIvc25tcHYzLmM6CgogICBjb3B5X253b3JkIGNyZWF0ZWQgdGhhdCBjaGVja3MgYnVmZmVyIGxlbmd0aHMuCiAgIE1hZGUgZXZlcnl0aGluZyB1c2UgaXQuCiAgIAoyMDAxLTAzLTIxIDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBrc20uYzoKCiAgIEtTTSBwYXRjaCBmcm9tIEtlbiBIb3Juc3RlaW4KICAgCjIwMDEtMDMtMjAgMDk6MTMgIGpicG4KCiAgICogYWdlbnQvLmN2c2lnbm9yZToKCiAgIElnbm9yZSBQdXJpZnkgYW5kIE5GUyBzdHVmZgogICAKMjAwMS0wMy0xNiAxMDoxNCAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICBhZGRlZCBNSVRfTkVXX0NSWVBUTyAoZm9yIGtzbSkgZGVmaW5pdGlvbiB3aGljaCB3YXMgbWlzc2luZwogICAKMjAwMS0wMy0xNiAwMjo1MSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBmaXggcmlkaWN1bG91cyBtZW1vcnkgbGVhayBpbiBkaXNjb250aW51aXR5IHByb2Nlc3NpbmcKICAgCjIwMDEtMDMtMTUgMTE6MDQgIGhhcmRha2VyCgogICAqIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcDoKCiAgIHdob29wcy4gIE1pc3NlZCBhIG1lcmdlIGNvbmZsaWN0IGxpbmUKICAgCjIwMDEtMDMtMTUgMTA6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRSAsIFJFQURNRS53aW4zMiAsIGFnZW50L21pYl9tb2R1bGVzLmMgLAogICBhZ2VudC9taWJncm91cC9oZWFkZXJfY29tcGxleC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jICwKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jCiAgICwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeUZpbHRlclRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jICwgYXBwcy9zbm1wdHJhcGQuYyAsCiAgIGFwcHMvc25tcHRyYXBkX2xvZy5jICwgYXBwcy9zbm1wbmV0c3RhdC9pZi5jICwKICAgbWFuL3NubXAuY29uZi41LmRlZiAsIG1hbi9zbm1wY21kLjEgLCBtYW4vc25tcHRyYXBkLjgKICAgLCBtaWJzL0lBTkFpZlR5cGUtTUlCLnR4dCAsIG1pYnMvTVRBLU1JQi50eHQgLAogICBtaWJzL01ha2VmaWxlLm1pYiAsIG1pYnMvUkVBRE1FLm1pYnMgLAogICBtaWJzL1RVTk5FTC1NSUIudHh0ICwgbWlicy9pYW5hbGlzdCAsIG1pYnMvbWliZmV0Y2gKICAgLCBtaWJzL3JmY2xpc3QgLCBtaWJzL3JmY21pYnMuZGlmZiAsIG1pYnMvc21pc3RyaXAKICAgLCBwZXJsL1NOTVAvU05NUC54cyAsIHNubXBsaWIvYXNuMS5jICwKICAgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmMgLCBzbm1wbGliL21pYi5jICwKICAgc25tcGxpYi9taWIuaCAsIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYwogICAsIHNubXBsaWIvc25tcF9sb2dnaW5nLmMgLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jCiAgICwgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuaCAsIHNubXBsaWIvc25tcHYzLmMgLAogICBzbm1wbGliL3N5c3RlbS5oICwgdGVzdGluZy9ldmFsX3Rvb2xzLnNoICwKICAgdGVzdGluZy90ZXN0cy9UMDU0YWdlbnR2MmN0cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMDU2YWdlbnR2MmNtaW50cmFwICwKICAgdGVzdGluZy90ZXN0cy9UMDU4YWdlbnRhdXRodHJhcCAsIHRlc3RpbmcvdGVzdHMvVDEwMGFnZW50aHVwCiAgICwgd2luMzIvY29uZmlnLmggLCB3aW4zMi9taWJfbW9kdWxlX2NvbmZpZy5oICwKICAgd2luMzIvbWliX21vZHVsZV9pbmNsdWRlcy5oICwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oICwKICAgd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYgLAogICB3aW4zMi9saWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZGVmICwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIG1lcmdlIGZyb20gcGF0Y2hlcyBicmFuY2g6IG1lcmdlMi0+My4KICAgCjIwMDEtMDMtMTUgMTA6MjIgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuL210ZVRyaWdnZXJUYWJsZS5oOgoKICAgZXh0cmEgbWVtYmVycyBmb3IgZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgIAoyMDAxLTAzLTE1IDA3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzIHRvIHJ1biBzaWduYWwgaGFuZGxlcnMgZWFybGllcgogICAKMjAwMS0wMy0xNCAxNDozNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBhZ2VudF90cmFwLmggKFY0LTItcGF0Y2hlcy4yKSwgYWdlbnRfdHJhcC5oOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDogbWFrZSBzZW5kX2VudGVycHJpc2VfdHJhcF92YXJzIGEgcHVibGljIGZuLgogICAKMjAwMS0wMy0xNCAxMjoxNiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBVc2UgY29uZmlnLmgsIGRvbid0IHVzZSB1Y2Qtc25tcCBkaXJlY3RvcnkgdG8gYnVpbGQgaW4gdGhlIG1pYmdyb3VwIHRyZWUuCiAgIAoyMDAxLTAzLTE0IDExOjA1ICBzbGlmCgogICAqIHRlc3RpbmcvOiBNYWtlZmlsZS5pbiAsIFJVTlRFU1RTICwgVEVTVENPTkYuc2gKICAgLCBldmFsX29uZXNjcmlwdC5zaCAsIGV2YWxfdG9vbHMuc2g6CgogICBtZXJnZSB0aGUgdGVzdCBzY3JpcHQgY2hhbmdlcyBtYWRlIGluIHRoZSBWNC0yLXBhdGNoZXMgYnJhbmNoLgogICAKMjAwMS0wMy0xNCAxMDo1NyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlclRhYmxlLmM6CgogICBDaGFuZ2UgdG8gZGlzY29udGludWl0eSBwcm9jZXNzaW5nIHRvIHN0b3AgaXQgcmV0dXJuaW5nIFRSVUUgYWxsIHRoZQogICB0aW1lCiAgIAoyMDAxLTAzLTE0IDEwOjUyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgICAtIHJvdWdoIHN0YWIgYXQgZGlzY29udGludWl0eSBwcm9jZXNzaW5nCiAgICAtIGJhaWwgb3V0IG9mIGdldE5leHQtdHlwZSBsb29wcyBvbiBhIGJhZFR5cGUgY29uZGl0aW9uCiAgIAoyMDAxLTAzLTE0IDEwOjM0ICBoYXJkYWtlcgoKICAgKiBSRUFETUUua3JiNToKCiAgIGtlcmJlcm9zIFJFQURNRSBmaWxlIGZyb20gS2VuIEhvcm5zdGVpbgogICAKMjAwMS0wMy0xNCAxMDoyOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vbXRlVHJpZ2dlckRlbHRhVGFibGUuYzoKCiAgIEdldCByZXR1cm5lZCAqdmFyX2xlbiByaWdodCBmb3IgbXRlVHJpZ2dlckRlbHRhRGlzY29udGludWl0eUlECiAgIAoyMDAxLTAzLTE0IDEwOjE5ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgLCBhcHBzL3NubXB2YWNtLmMgLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyAsCiAgIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcFVuaXhEb21haW4uYzoKCiAgIHBhdGNoIHN1Ym1pdHRlZCBieSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBxdWlldCBzb21lIHdhcm5pbmdzLgogICAKMjAwMS0wMy0xNCAxMDoxOSAgaGFyZGFrZXIKCiAgICogYWNjb25maWcuaCAsIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbiAsCiAgIHNubXBsaWIvc25tcF9hcGkuYyAsIHNubXBsaWIvc25tcGtzbS5jICwKICAgc25tcGxpYi9zbm1wa3NtLmg6CgogICBLU00gcGF0Y2ggZnJvbSBLZW4gSG9ybnN0ZWluLgogICAKMjAwMS0wMy0xNCAwNTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX3N3cnVuLmMgKFY0LTItcGF0Y2hlcy41KSwgaHJfc3dydW4uYzoKCiAgIEZpeCBMaW51eCBmaWxlIGRlc2NyaXB0b3IgbGVhayAocmVwb3J0ZWQgYnkgT2xpdmVyIEbniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy156mrZ2VyKQogICAKMjAwMS0wMy0xNCAwNToyMiAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9kaXNtYW4vLmN2c2lnbm9yZToKCiAgIFtubyBsb2cgbWVzc2FnZV0KICAgCjIwMDEtMDMtMTQgMDI6MjAgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogbXRlVHJpZ2dlclRhYmxlLmMgLAogICBtdGVUcmlnZ2VyVGFibGUuaDoKCiAgICAtIHNhdmUgb3JpZ2luYWwgUERVJ3MgdHJhbnNwb3J0IGRvbWFpbiAtLSBuZWNlc3NhcnkgZm9yCiAgICAgIGNvbW11bml0eSBzdHJpbmcgcHJvY2Vzc2luZwogICAKICAgICAgQ0FVVElPTjogaW5jb21wYXRpYmxlIGNoYW5nZSBpbiBmb3JtYXQgb2YgbXRlVHJpZ2dlclRhYmxlCiAgICAgICAgICAgICAgIGNvbmZpZ3VyYXRpb24gZW50cnkKICAgCiAgICAtIGZpeCBtZW1vcnkgbGVhayBpbiBtdGVfcnVuX3RyaWdnZXIgYnkgcmVsZWFzaW5nIFBEVXMKICAgCiAgICAtIHNlbmQgImJhZCB0eXBlIiBub3RpZmljYXRpb25zIGluIHNvbWUgY2FzZXMKICAgCiAgICAtIG90aGVyIG1pbm9yIG1lbW9yeSBsZWFrcwogICAKICAgIC0gImRlbHRhIiBzYW1wbGVUeXBlIGhhbmRsZWQgZm9yIGJvb2xlYW4gdHJpZ2dlcnMKICAgCiAgICAtIG1vcmUgIlhYWDoiIGNvbW1lbnRzIQogICAKMjAwMS0wMy0xMyAxMzo1MiAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIGZpeCBzdXBwb3J0IGZvciBJbnRlZ2VyMzIKICAgCjIwMDEtMDMtMTEgMDg6NDMgIGpicG4KCiAgICogc25tcGxpYi86IHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgQWRkIGEgZnVuY3Rpb24gdG8gdGVzdCB3aGV0aGVyIGFuIE9JRCBjb3JyZXNwb25kcyB0byBhIHN1cHBvcnRlZCB0cmFuc3BvcnQKICAgZG9tYWluLgogICAKMjAwMS0wMy0xMSAwNzo1NSAgamJwbgoKICAgKiBzbm1wbGliL3NubXBUQ1BEb21haW4uaDoKCiAgIEFkZCAjaW5jbHVkZXMgdG8gbWFrZSBzdHJ1Y3Qgc29ja2FkZHJfaW4gY29tcGxldGUKICAgCjIwMDEtMDMtMTEgMDc6NTQgIGpicG4KCiAgICogc25tcGxpYi9zbm1wQUFMNVBWQ0RvbWFpbi5oOgoKICAgUmVtb3ZlIHNwdXJpb3VzICNpbmNsdWRlCiAgIAoyMDAxLTAzLTA5IDA3OjMyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEZpeCByd3VzZXIgLXMgbW9kZWwgdG8gYWN0dWFsbHkgd29yay4KICAgCjIwMDEtMDMtMDkgMDU6NTIgIGpicG4KCiAgICogc25tcGxpYi9zbm1wVENQRG9tYWluLmM6CgogICBTZXQgYSBQRFUncyBvcGFxdWUgZGF0YSBvbiBhIHRjcF9yZWN2OyB0aGlzIGlzbid0IG5lY2Vzc2FyeSB0byBzZW5kCiAgIHJlcGxpZXMgKGJlY2F1c2UgdGhlIHVuZGVybHlpbmcgc29ja2V0IGlzIHN0cm9uZ2x5IGNvbm5lY3RlZCkgYnV0IGlmCiAgIHlvdSBkb24ndCBkbyB0aGlzIHRoZW4geW91IGNhbid0IGRvICJjb20yc2VjIiB0eXBlIHByb2Nlc3NpbmcgZm9yIFBEVXMKICAgcmVjZWl2ZWQgb24gVENQIHNlc3Npb25zLi4uIGludGVyZXN0aW5nLgogICAKMjAwMS0wMy0wOSAwMzozMyAgamJwbgoKICAgKiBzbm1wbGliL3NubXBVRFBEb21haW4uYzoKCiAgIEZpeCBiYWQgYXNzdW1wdGlvbiB0aGF0IGNvbW11bml0eSBzdHJpbmcgaXMgemVyby10ZXJtaW5hdGVkCiAgIAoyMDAxLTAzLTA4IDE1OjM2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgLSBjb3JyZWN0IHZlcnNpb24gc3RhdGVtZW50cyB0byBpbmRpY2F0ZSBuZXQtc25tcC4KICAgLSByZW1vdmUgbXkgbmFtZSBhcyBhdXRob3IgKEknbSBjZXJ0YWlubHkgbm90IHRoZSBvbmx5IG9uZSkKICAgLSBhZGQgd2ViIGFkZHJlc3MuCiAgIAoyMDAxLTAzLTA4IDE1OjMxICBoYXJkYWtlcgoKICAgKiBSRUFETUU6CgogICAtIEFkZGVkIEtlbiBIb3Juc3RlaW4ncyBuYW1lIHRvIGNvbnRyaWJ1dGVycyBsaXN0LgogICAtIFJlbW92ZWQgbWluZSBmcm9tIGJlaW5nIGxpc3RlZCBzZXBhcmF0ZWx5LgogICAKMjAwMS0wMy0wOCAxNDo1MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMgLCBzbm1wbGliL3NubXBrc20uYyAsCiAgIHNubXBsaWIvc25tcGtzbS5oOgoKICAgQWRkZWQgYSBrZXJiZXJvcyBiYXNlZCBzZWN1cml0eSBtb2R1bGUgKGtzbSkuCiAgICAgSG93ZXZlciwgTmVlZHMgbGlicmFyaWVzICgtbGtyYjUgLWxjb21fZXJyKSBub3QgYmVpbmcgY2hlY2tlZCBmb3IgY3VycmVudGx5LgogICAKMjAwMS0wMy0wOCAxNDo0OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgV2hvb3BzLiAgU2hvdWxkbnQgaGF2ZSBhIG5lZ2F0aW9uIHNpZ24gb24gdGhlIG1vc3QgcmVjZW50IGNoZWNraW4uCiAgIAoyMDAxLTAzLTA4IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBJZiBOT19QUk9CRSBpcyBzZXQsIGRvbid0IGRvIGFueSBwb3N0IHByb2JpbmcgYWN0aXZpdGllcyBlaXRoZXIgbGlrZQogICB0aW1lIHVwZGF0aW5nIGFuZCB1c2VyIGNyZWF0aW9uLgogICAKMjAwMS0wMy0wOCAwODoxNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvdGFyZ2V0LmM6CgogICBSZW1vdmUgc3RyZHVwKClzIG9uIHNvbWUgc2Vzc2lvbiBwYXJhbWV0ZXJzIHdoaWNoIGNhdXNlIG1lbW9yeSBsZWFrcwogICAoc2luY2Ugc25tcF9vcGVuIGRlZXAgY29waWVzIHRoZSBpbnB1dCBzZXNzaW9uIGFueXdheSkKICAgCjIwMDEtMDMtMDggMDg6MTEgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgIE1ha2Ugc3VyZSBzZXNzIGZpZWxkIG9mIG5ldyBlbnRyaWVzIGlzIGluaXRpYWxpc2VkIHRvIE5VTEwuCiAgIAoyMDAxLTAzLTA4IDA3OjQ5ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIE1ha2UgY29uZmlnIHRva2VuIHBhcnNlciB1cGRhdGUgdGltZXN0YW1wIG9uIGVudHJ5IGl0IGNyZWF0ZXM7CiAgIG1vdmUgdXBkYXRlX3RpbWVzdGFtcCBmdW5jdGlvbi4KICAgCjIwMDEtMDMtMDcgMDc6NDUgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC86IFJFQURNRSAsIFNOTVAucG0gLCBTTk1QLnhzOgoKICAgUGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2UgdG8gcmVtb3ZlIHVubmVlZGVkIHRpbWVzdGFtcCBzdXBwb3J0CiAgIAoyMDAxLTAzLTA2IDIwOjU4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfY2xpZW50LmMgLCBzbm1wX3NlY21vZC5jCiAgICwgc25tcF9zZWNtb2QuaCAsIHNubXB1c20uYzoKCiAgIHNlY21vZCBzdHJ1Y3Qgc3ltYm9sIG5hbWUgY2hhbmdlcyB0byBzb21ldGhpbmcgbW9yZSBpbnRlbGxpZ2libGUuCiAgIAoyMDAxLTAzLTA2IDE2OjQ2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfY2xpZW50LmM6CgogICAtIHNldCB0aGUgZGVmYXVsdCBwZHUgc2VjdXJpdHkgbW9kZWwgdG8gU05NUF9ERUZBVUxUX1NFQ01PREVMIChub3QgMCkuCiAgIC0gZG9uJ3QgZm9yY2UgdGhlIHNlY3VyaXR5IG1vZGVsIG9mIHRoZSBzZXNzaW9uIG9uIHRoZSBwZHUgaWYgYWxyZWFkeSBzZXQuCiAgIAoyMDAxLTAzLTA2IDE2OjExICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIGhvcGVmdWxseSBmaXggdG8gYWxsb3cgb3RoZXIgKHJlZ2lzdGVyZWQpIHNlY3VyaXR5IG1vZGVscyB0byBiZSB1c2VkLgogICAKMjAwMS0wMy0wNiAwOToyMyAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgQWRkZWQgSm9obiBOYXlsb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAKMjAwMS0wMy0wNiAwOToyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgQ3JlYXRlIGEgbmV3IHNlY21vZCBjYWxsYmFjayB3aGVuIGEgdGltZW91dCBvbiBhIHBkdSBvY2N1cnMuCiAgIAoyMDAxLTAzLTA2IDA5OjE4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBwcm9wZXJseSBpbnN0YWxsIHNlY21vZCBoZWFkZXIgbGlzdC4KICAgCjIwMDEtMDMtMDYgMDg6NDMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9zZWNtb2QuaDoKCiAgIC0gYnVnIGZpeGVzIGZvciBzZWNtb2QgcmVsYXRlZCBzdHVmZiAoaXQgY29tcGlsZXMgbm93IChvcHBzKSkuCiAgIAoyMDAxLTAzLTA2IDA4OjM4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICAtIHR3byBuZXcgc2VjbW9kIGNhbGxiYWNrcyBmb3IgZnJlZWluZyBhIHBkdSBhbmQgYSBzZXNzaW9uLgogICAtIG1vdmUgdHJhbnNwb3J0IGNsb3NpbmcgaW4gc25tcF9zZXNzX2Nsb3NlKCkgdG8gYWZ0ZXIgcGVuZGluZwogICAgIHJlcXVlc3RzIGFyZSBmcmVlZC9jbG9zZWQgaW4gY2FzZSBzb21ldGhpbmcgbmVlZHMgdG8gbWFrZSB1c2Ugb2YgdGhlCiAgICAgdHJhbnNwb3J0IGJlZm9yZSBpdCBjbG9zZXMuCiAgIAoyMDAxLTAzLTA2IDA3OjU2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAsIHNubXBfc2VjbW9kLmg6CgogICBQYXNzIGluIHBkdSB0byBzZWNtb2QgZW5jb2RlL2RlY29kZSByb3V0aW5lcy4KICAgCjIwMDEtMDMtMDYgMDM6MzUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgTW9kaWZpZWQgZnVuY3Rpb24gSW50ZXJmYWNlX0luZGV4X0J5X05hbWUgKFNvbGFyaXMgc3BlY2lmaWMpIHRvIGNvcGUgbW9yZQogICBncmFjZWZ1bGx5IHdpdGggbGFyZ2UgbnVtYmVycyBvZiBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcwogICBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkIG1lbW9yeSByZWFkcy4KICAgCjIwMDEtMDMtMDUgMTY6MzMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHJldmVyc2UgY2FsbGJhY2sgb3JkZXJpbmcgb2Ygbm9ybWFsIGNhbGxiYWNrL3NlY21vZCBjYWxsYmFjawogICBwcm9jZXNzaW5nIGluIHNlc3NfY29weSgpLgogICAKMjAwMS0wMy0wNSAxNjoyNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX3NlY21vZC5jOgoKICAgcmVtb3ZlIHVudXNlZCBmcmVlIGZ1bmN0aW9uIGNhbGxzIGZvciBzZWN1cml0eSBtb2R1bGUgdW5yZWdpc3RyYXRpb25zLgogICAKMjAwMS0wMy0wNSAxNjoxNyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX3NlY21vZC5oOgoKICAgbWlub3IgQVBJIGNoYW5nZXMgdG8gdGhlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbCBoYW5kbGluZy4KICAgCjIwMDEtMDMtMDUgMTY6MTEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIHByb3Blcmx5IHJlc3BlY3QgdGhlIERPTlRfUFJPQkVfRkxBRy4KICAgCjIwMDEtMDMtMDUgMTU6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jICwgc25tcF9hcGkuaCAsIHNubXBfc2VjbW9kLmg6CgogICBhZGQgYSBzZXNzaW9uIHBvaW50ZXIgdG8gdGhlIHYzIGJ1aWxkIHJvdXRpbmVzLgogICAKMjAwMS0wMy0wNSAxNToyMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfYXBpLmMgLCBzbm1wX2FwaS5oOgoKICAgQWRkIGEga3JiNSBzcGVjaWZpYyBlcnJvciBjb2RlLgogICAKMjAwMS0wMy0wNSAxNDo1OCAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluOgoKICAgbWFrZSBjb25maWd1cmUgcHJvcGVybHkgaGFuZGxlIHBsdWdnYWJsZSBzZWN1cml0eSBtb2R1bGVzCiAgIAoyMDAxLTAzLTA1IDE0OjQ5ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUgLCBjb25maWd1cmUuaW46CgogICBtYWtlIGNvbmZpZ3VyZSBta2RpciBzbm1wbGliIGJlZm9yZSBjcmVhdGluZyBhIGZpbGUgaW4gaXQKICAgCjIwMDEtMDMtMDUgMTQ6NDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSAsIGNvbmZpZ3VyZS5pbjoKCiAgIG1ha2UgY29uZmlndXJlIHJlc3BlY3Qgbm9uLWxvY2FsIHNyY2RpcnMgZm9yIHRyYW5zcG9ydC9zZWNtb2RzCiAgIAoyMDAxLTAzLTA1IDEwOjQwICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBhZ2VudC9hZ2VudF9pbmRleC5jICwKICAgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYyAsIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgLAogICBhZ2VudC9taWJfbW9kdWxlcy5jICwgYWdlbnQvc25tcF92YXJzLmMgLAogICBhZ2VudC9zbm1wZC5jICwgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICwgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyAsIGFwcHMvc25tcHRyYXBkLmMKICAgLCBzbm1wbGliLy5jdnNpZ25vcmUgLCBzbm1wbGliL01ha2VmaWxlLmluICwKICAgc25tcGxpYi9jYWxsYmFjay5oICwgc25tcGxpYi9kZWZhdWx0X3N0b3JlLmggLAogICBzbm1wbGliL2xjZF90aW1lLmMgLCBzbm1wbGliL3NjYXBpLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfYXBpLmggLAogICBzbm1wbGliL3NubXB1c20uYyAsIHNubXBsaWIvc25tcHVzbS5oICwKICAgc25tcGxpYi9zbm1wdjMuYzoKCiAgIHN1cHBvcnQgZm9yIHBsdWdnYWJsZSBzZWN1cml0eSBtb2RlbHMuICBDdXJyZW50bHkgb25seSB0aGUgVVNNIGlzCiAgIGF2YWlsYWJsZSwgYnV0IGEgbmV3IGtlcmJlcm9zIGJhc2VkIHNlY3VyaXR5IG1vZGVsIHdpbGwgYmUgYXZhaWxhYmxlCiAgIHNob3J0bHkuICBUaGVzZSBjaGFuZ2VzIHNpbXBseSBtYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBtb3JlIHRoYW4gb25lCiAgIHNlY3VyaXR5IHNlcnZpY2UuCiAgIAoyMDAxLTAzLTA1IDEwOjM2ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9zZWNtb2QuYyAsIHNubXBfc2VjbW9kLmg6CgogICBBZGRlZCBKb2huIE5heWxvbiB0byB0aGUgYXV0aG9ycyBsaXN0LgogICAKMjAwMS0wMy0wNSAxMDozMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2VudW0uaDoKCiAgIENvbW1lbnQgcmUtYXJyYW5naW5nIHRvIGFjdHVhbGx5IGJlIG5lYXIgdGhlIGZ1bmN0aW9ucyB0aGV5J3JlIGRlc2NyaWJpbmcuCiAgIAoyMDAxLTAzLTA1IDA2OjEwICBqYnBuCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICBNb2RpZmllZCBnZXRfbXlhZGRyKCkgZnVuY3Rpb24gdG8gY29wZSBtb3JlIGdyYWNlZnVsbHkgd2l0aCBsYXJnZSBudW1iZXJzCiAgIG9mIGludGVyZmFjZXMsIGFuZCB3aXRoIHRoZSBwb3NzaWJpbGl0eSBvZiBub24tSVB2NCBhZGRyZXNzZXMgb24gc29tZQogICBpbnRlcmZhY2VzLiAgQWxzbyBzdG9wcyBQdXJpZnkgb24gU29sYXJpcyBjb21wbGFpbmluZyBhYm91dCB1bmluaXRpYWxpc2VkCiAgIG1lbW9yeSByZWFkcy4gIFVzZSAib2ZmaWNpYWwiIGRlZmluaXRpb24gb2YgSU5BRERSX0xPT1BCQUNLLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvaWFuYWxpc3Q6CgogICBmaWxlIGlhbmFsaXN0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY2xpc3Q6CgogICBmaWxlIHJmY2xpc3Qgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMS0wMy0wMyAxNDozNCAgbmJhCgogICAqIG1pYnMvUkVBRE1FLm1pYnM6CgogICBmaWxlIFJFQURNRS5taWJzIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzL3JmY21pYnMuZGlmZjoKCiAgIGZpbGUgcmZjbWlicy5kaWZmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTItcGF0Y2hlcy4KICAgCjIwMDEtMDMtMDEgMTk6MjMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgLCBzbm1wX2FwaS5jOgoKICAgRml4IHNubXBfb2lkX2NvbXBhcmUgYW5kIHJldmVyc2UgZW5jb2RpbmdzIHRvIGRlYWwgd2l0aCBudW1iZXJzID4gMl4zMS4KICAgCjIwMDEtMDItMjggMjM6MDIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiByZWFkX2NvbmZpZy5jICwgcmVhZF9jb25maWcuaCAsCiAgIHNubXBfcGFyc2VfYXJncy5jOgoKICAgLSBpbXBsZW1lbnRlZCBzbm1wX2NvbmZpZyhjaGFyICpsaW5lKSB0byBwYXJzZSBhIC5jb25mIGNvbmZpZ3VyYXRpb24KICAgICBsaW5lIGF0IGFueSB0aW1lIGluIHRoZSBjb2RlIChoYW5kbGVycyBtdXN0IGJlIHJlZ2lzdGVyZWQgYmVmb3JlIGhhbmQpLgogICAtIGltcGxlbWVudGVkIHNubXBfY29uZmlnX3JlbWVtYmVyKGNoYXIgKmxpbmUpIHRvIG1lbW9yaXplIGl0IGZvcgogICAgIGxhdGVyIHVzZS4KICAgLSByZWFkX2NvbmZpZ3MsIGV0IGFsLCB3aWxsIGF1dG9tYXRpY2FsbHkgY2FsbCB0aGVtIGFmdGVyIHJlYWRpbmcKICAgICBldmVyeXRoaW5nIGVsc2UuCiAgIC0gQWRkZWQgYSAtWSBmbGFnIHRvIHNubXBfcGFyc2VfYXJncyB0byBzdG9yZSByZWFkIGNvbmZpZyBkaXJlY3RpdmVzCiAgICAgZm9yIGxhdGVyIHVzZSwgdGh1cyBhbGxvd2luZyB5b3UgdG8gc3BlY2lmeSAuY29uZiBkaXJlY3RpdmVzIG9uIHRoZQogICAgIGNvbW1hbmQgbGluZS4KICAgCjIwMDEtMDItMjcgMDc6MjggIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgQXZvaWQgaW5maW5pdGUgbG9vcCB3aXRoIEFnZW50WCBzdWJhZ2VudHMgYW5kIFZBQ00gY2hlY2tpbmcgaW50ZXJhY3Rpb24uCiAgIChGaXggcHJvdmlkZWQgYnkgRnJhbmsgU3RyYXVzcykKICAgCjIwMDEtMDItMjEgMTU6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiB1Y2Qtc25tcC1pbmNsdWRlcy5oIChWNC0yLXBhdGNoZXMuMSksCiAgIHVjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBBcHBsaWVkIHBhdGNoICMxMDM4MDUgZnJvbSBiY29sbGFyOiBhZGQgc3lzL3RpbWUuaCB0byB1Y2Qtc25tcC1pbmNsdWRlcy5oCiAgIAoyMDAxLTAyLTIxIDE1OjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogaW50NjQuYyAoVjQtMi1wYXRjaGVzLjIpLCBpbnQ2NC5jOgoKICAgZml4IGJ1ZyAjMTMzNDE2ICh1NjRTdWJ0cmFjdGlvbiBtYXRoKSBhcyBzdWdnZXN0ZWQgYnkgdGhlIHN1Ym1pdHRvcgogICAKMjAwMS0wMi0xNiAxNToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiB2YXJfc3RydWN0LmggKFY0LTItcGF0Y2hlcy4xKSwgdmFyX3N0cnVjdC5oOgoKICAgLSBpbmNyZWFzZSBVQ0RfUkVHSVNUUllfT0lEX01BWF9MRU4gdG8gMTI4IGF0IEZyYW5rJ3MgcmVxdWVzdAogICAKMjAwMS0wMi0xNiAwNDoxNiAgamJwbgoKICAgKiBjb25maWd1cmUuaW46CgogICBDaGFuZ2UgYmVoYXZpb3VyIG9uIGN5Z3dpbiB0byBleGNsdWRlIFVuaXggZG9tYWluIHRyYW5zcG9ydHMgYnkgZGVmYXVsdAogICBvbiBjeWd3aW4sIGFuZCBhbHNvIGZpeCBhIG1pbm9yIGJ1ZywgdGhhbmtzIHRvIHN1Z2dlc3Rpb25zIGJ5IFBldGVyIEZvbGsuCiAgIAoyMDAxLTAyLTE0IDE4OjE0ICBoYXJkYWtlcgoKICAgKiBhcHBzLzogc25tcHRyYXBkLmMgKFY0LTItcGF0Y2hlcy4xKSwgc25tcHRyYXBkLmM6CgogICByZW1vdmVkIHVudXNlZCBzbm1wX2FsYXJtLmggaW5jbHVkZQogICAKMjAwMS0wMi0xMiAxNDoxMSAgbWFyegoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIGFkZGVkIEthcmwncyBwYXRjaCBmb3IgdXNlbnVtZXJpYwogICAKMjAwMS0wMi0xMiAxMzo1NCAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBNQU5JRkVTVCAsIFNOTVAucG0gLCBTTk1QLnhzICwKICAgZXhhbXBsZXMvdHJhcC1leGFtcGxlLnBsOgoKICAgYWRkZWQgdHJhcCByZWNlcHRpb24gQVBJIGZyb20gUGhpbGlwIFByaW5kZXZpbGxlIDxwaGlsaXBwQGNpc2NvLmNvbT4KICAgCjIwMDEtMDItMTEgMDg6MjMgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIFVzZSBzbm1wX2FkZCBub3Qgc25tcF9zZXNzX2FkZCAodGhlIGxhdHRlciBkb2Vzbid0IGFkZCBhIHNlc3Npb24gdG8KICAgdGhlIFNlc3Npb24gbGlzdCwgYW5kIGl0IHRoZXJlZm9yZSB3b24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIHNlbGVjdCgpCiAgIGZkc2V0LCBoZW5jZSBzbm1wdHJhcGQgd2lsbCBuZXZlciByZWNlaXZlIHZlcnkgbXVjaCkuCiAgIAoyMDAxLTAyLTExIDA4OjIwICBqYnBuCgogICAqIHNubXBsaWIvc25tcFVEUERvbWFpbi5jOgoKICAgRml4IGltcHJvcGVybHktdGVybWluYXRlZCBsaXN0IGluIGNvbTJzZWMgaGFuZGxpbmcuCiAgIAoyMDAxLTAyLTExIDA3OjQ1ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICBDbGVhbiB1cCBtZXJnZSAoPj4+Pj4+LCA9PT09PT0gZXRjLiBsZWZ0IGJlaGluZCkuCiAgIAoyMDAxLTAyLTEwIDA5OjI2ICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCB0eXBvLgogICAKMjAwMS0wMi0xMCAwOToxMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvOiBtYXN0ZXIuYyAsIG1hc3Rlcl9hZG1pbi5jICwKICAgc3ViYWdlbnQuYzoKCiAgIE1lbW9yeSBsZWFrIHBhdGNoZXMgKHNvdXJjZWZvcmdlIHBhdGNoICMxMDM2MDUpLgogICBSZW1vdmUgYSBmZXcgc3RyZHVwKClzLCBhbmQgY2FsbCBmcmVlX2FnZW50X3NubXBfc2Vzc2lvbigpIHJhdGhlciB0aGFuCiAgIGZyZWUoKSBpbiBzdWJhZ2VudC5jOmhhbmRsZV9hZ2VudHhfcGFja2V0KCkgZm9yIEFHRU5UWF9NU0dfUkVTUE9OU0UKICAgYW5kIGRlZmF1bHQgY2FzZXMsIHRvIGVuc3VyZSBmcmVlKClpbmcgb2YgY2xvbmVkIFBEVSBhbGxvY2F0ZWQgYnkKICAgaW5pdF9hZ2VudF9zbm1wX3Nlc3Npb24uCiAgIAoyMDAxLTAyLTEwIDA3OjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcEFBTDVQVkNEb21haW4uYyAsIHNubXBBQUw1UFZDRG9tYWluLmggLAogICBzbm1wSVBYRG9tYWluLmMgLCBzbm1wSVBYRG9tYWluLmggLCBzbm1wVENQRG9tYWluLmMKICAgLCBzbm1wVENQRG9tYWluLmggLCBzbm1wVURQRG9tYWluLmMgLAogICBzbm1wVURQRG9tYWluLmggLCBzbm1wVW5peERvbWFpbi5jICwgc25tcFVuaXhEb21haW4uaAogICAsIHNubXBfdHJhbnNwb3J0LmMgLCBzbm1wX3RyYW5zcG9ydC5oOgoKICAgV2hvb3BzLiAgRm9yZ290IHRoZSBuZXcgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwbHVnZ2FibGUgdHJhbnNwb3J0IHN0dWZmLgogICAKMjAwMS0wMi0wOSAxMToyMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZGlzbWFuLzogZXZlbnQtbWliLmggLCBtdGVPYmplY3RzVGFibGUuYwogICAsIG10ZU9iamVjdHNUYWJsZS5oICwgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwKICAgbXRlVHJpZ2dlckV4aXN0ZW5jZVRhYmxlLmMgLCBtdGVUcmlnZ2VyVGFibGUuYyAsCiAgIG10ZVRyaWdnZXJUYWJsZS5oICwgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmM6CgogICBJbXBsZW1lbnRlZCBhbmQgbWFkZSB1c2Ugb2YgbXRlT2JqZWN0c1RhYmxlIHRvIHNlbmQgYWRkaXRpb25hbCBvYmplY3RzIG91dCB3aXRoIHRyYXBzIGdlbmVyYXRlZC4gIEFsc28sIGRvbid0IHJldHVybiBkYXRhIGZvciBtaXNjIHRhYmxlcyB3aGVuIHRoYXQgdHJpZ2dlciBpc24ndCBkZWZpbmVkIHRvIHVzZSB0aGF0IHRlc3QgdHlwZS4KICAgCjIwMDEtMDItMDkgMTE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50Lzogc25tcGQuYyAoVjQtMi1wYXRjaGVzLjIpLCBzbm1wZC5jOgoKICAgQXBwbGllZCBwYXRjaCAjMTAzNjEzOiBmaXggbWVtb3J5IGxlYWsgaW4gc25tcGQgcG9ydCBzcGVjaWZpY2F0aW9uIC0+IGRlZmF1bHRfc3RvcmUuCiAgIAoyMDAxLTAyLTA5IDExOjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IG1pYl9tb2R1bGVzLmMgKFY0LTItcGF0Y2hlcy4yKSwgbWliX21vZHVsZXMuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMjogZml4IG1lbW9yeSBsZWFrIGluIG1pYl9tb2R1bGUgaW5pdCBjb2RlCiAgIAoyMDAxLTAyLTA5IDExOjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgKFY0LTItcGF0Y2hlcy4xKSwgYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMTogZml4IG1lbW9yeSBsZWFrIGZvciBkdXBsaWNhdGUgb2lkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAyLTA5IDExOjA1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IG1lbW9yeV9mcmVlYnNkMi5jLCBwcm94eS5jCiAgIChWNC0yLXBhdGNoZXMuWzEsNF0pLCBtZW1vcnlfZnJlZWJzZDIuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzcwMjogZml4IHN3YXAgcmVwb3J0aW5nIG9uIGZyZWVic2QgNC4yCiAgIAoyMDAxLTAyLTA5IDEwOjEyICBoYXJkYWtlcgoKICAgKiBhY2NvbmZpZy5oICwgY29uZmlnLmguaW4gLCBjb25maWd1cmUgLAogICBjb25maWd1cmUuaW4gLCBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9zbm1wX2FnZW50LmMKICAgLCBhZ2VudC9zbm1wX2FnZW50LmggLCBhZ2VudC9zbm1wX3ZhcnMuYyAsCiAgIGFnZW50L3NubXBkLmMgLCBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsCiAgIGFwcHMvc25tcHN0YXR1cy5jICwgYXBwcy9zbm1wdGVzdC5jICwgYXBwcy9zbm1wdHJhcC5jCiAgICwgYXBwcy9zbm1wdHJhcGQuYyAsIGFwcHMvc25tcHRyYXBkX2xvZy5jICwKICAgYXBwcy9zbm1wdHJhcGRfbG9nLmggLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLAogICBzbm1wbGliL01ha2VmaWxlLmluICwgc25tcGxpYi9zbm1wX2FsYXJtLmMgLAogICBzbm1wbGliL3NubXBfYWxhcm0uaCAsIHNubXBsaWIvc25tcF9hcGkuYyAsCiAgIHNubXBsaWIvc25tcF9hcGkuaCAsIHNubXBsaWIvc25tcF9jbGllbnQuYyAsCiAgIHNubXBsaWIvdmFjbS5oOgoKICAgQXBwbGllZCBwYXRjaCAxMDM1MTA6IGRvbWFpbiB0cmFuc3BvcnQgaW5kZXBlbmRlbmNlLiAgTm90ZTogVHJhcHMvVkFDTSBicm9rZW4uCiAgIAoyMDAxLTAyLTA5IDA4OjU0ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDAwMXNubXB2MWdldCAsIFQwMDJzbm1wdjFnZXRuZXh0ICwKICAgVDAwM3NubXB2MWdldGZhaWwgLCBUMDE0c25tcHYyY2dldCAsIFQwMTVzbm1wdjJjZ2V0bmV4dAogICAsIFQwMTZzbm1wdjJjZ2V0ZmFpbCAsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwgLAogICBUMDE4c25tcHYxdG92MmNnZXRmYWlsICwgVDAyMHNubXB2M2dldCAsCiAgIFQwMjFzbm1wdjNnZXRuZXh0ICwgVDAyMnNubXB2M2dldE1ENSAsCiAgIFQwMjNzbm1wdjNnZXRNRDVERVMgLCBUMDI0c25tcHYzZ2V0U0hBMSAsCiAgIFQwMjVzbm1wdjNnZXRTSEFERVMgLCBUMDI4c25tcHYzZ2V0ZmFpbCAsCiAgIFQwMzBzbm1wdjN1c2VyY3JlYXRpb24gLCBUMDUzYWdlbnR2MXRyYXAgLAogICBUMDU0YWdlbnR2MmN0cmFwICwgVDA1NWFnZW50djFtaW50cmFwICwKICAgVDA1NmFnZW50djJjbWludHJhcCAsIFQwNThhZ2VudGF1dGh0cmFwICwgVDEwMGFnZW50aHVwCiAgICwgVDExMGFnZW50eGdldCAsIFQxMTFhZ2VudHhzZXQgLCBUMTEyYWdlbnR4c2V0ZmFpbAogICAsIFQxMTNhZ2VudHh0cmFwICwgVDEyMHByb3h5Z2V0ICwgVDEyMXByb3h5c2V0CiAgICwgVDEyMnByb3h5c2V0ZmFpbDoKCiAgIHVwZGF0ZWQgbW9zdCB0ZXN0cyB0byB1c2UgbnVtZXJpYyBPSURzIHNvIGFzIHRvIG5vdCByZWx5IG9uIG1pYiBwYXJzaW5nCiAgIAoyMDAxLTAyLTA5IDA3OjE4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmg6CgogICByZW1vdmUgdW51c2VkIHByb3RvdHlwZTogZ2V0X2FnZW50eF90cmFuc0lECiAgIAoyMDAxLTAyLTA4IDE0OjE1ICBoYXJkYWtlcgoKICAgKiBsb2NhbC9NYWtlZmlsZS5pbiAsIGxvY2FsL3RyYXB0b2VtYWlsICwKICAgbWFuL3NubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgdHJhcHRvZW1haWwgcGVybCBzY3JpcHQgY3JlYXRlZCBhcyBhbiBleGFtcGxlIHRyYXBoYW5kbGUgc2NyaXB0CiAgIAoyMDAxLTAyLTA4IDE0OjAxICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbiAsIGFjY29uZmlnLmggLCBjb25maWcuaC5pbiAsCiAgIGFnZW50L01ha2VmaWxlLmluICwgYWdlbnQvYWdlbnRfdHJhcC5jICwKICAgYWdlbnQvbWliX21vZHVsZXMuYyAsIGFnZW50L3NubXBkLmMgLAogICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmggLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyAsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jICwKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYyAsCiAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYyAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmMgLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmggLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfbmV0YnNkMS5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCAsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9zb2xhcmlzMi5jICwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmggLCBhcHBzL3NubXBkZWx0YS5jCiAgICwgYXBwcy9zbm1wc2V0LmMgLCBhcHBzL3NubXB0cmFwLmMgLAogICBhcHBzL3NubXB2YWNtLmMgLCBhcHBzL3NubXBuZXRzdGF0L01ha2VmaWxlLmluICwKICAgbG9jYWwvbWliMmMgLCBtYW4vc25tcGNtZC4xICwgbWlicy9STU9OLU1JQi50eHQgLAogICBtaWJzL1VDRC1TTk1QLU1JQi50eHQgLCBwZXJsL1NOTVAvU05NUC5wbSAsCiAgIHNubXBsaWIvaW50NjQuYyAsIHNubXBsaWIvcGFyc2UuYyAsIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIE1lcmdlIGZyb20gVjQtMi1wYXRjaGVzOiBtZXJnZSAxLT4yCiAgIAoyMDAxLTAxLTMwIDE3OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC86IGRpc2suYyAoVjQtMi1wYXRjaGVzLjEpLCBkaXNrLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM0MTQ6IGZpeCBkaXNrIGluZm8gZm9yIGJsb2NrIHNpemVzIG90aGVyIHRoYW4gMTAyNC4KICAgCjIwMDEtMDEtMzAgMTM6MjggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi9tdGVUcmlnZ2VyVGFibGUuYzoKCiAgIHVzZSBzbm1wX2VudW0ncyBwcm9wZXJseSAoc3RyZHVwKCkgdGhlIHN0cmluZ3MgZmlyc3QpCiAgIAoyMDAxLTAxLTMwIDEzOjI4ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9lbnVtLmMgLCBzbm1wX2VudW0uaDoKCiAgIHByb3BlciBjb25zdG5lc3MgZm9yIHNvbWUgb2YgdGhlIGZ1bmN0aW9uIGFyZ3VtZW50cy4KICAgCjIwMDEtMDEtMzAgMTM6MjcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIGZpeCBidWcgSSBqdXN0IGludHJvZHVjZWQgKHJldHVybmluZyBwcm9wZXIgc2F2ZXRvIHBvaW50ZXIpCiAgIAoyMDAxLTAxLTMwIDEzOjE3ICBoYXJkYWtlcgoKICAgKiBsb2NhbC90a21pYjoKCiAgIC0gc25tcHNldHMgYXJlIHN1cHBvcnRlZAogICAgIC0gQSBuZXcgInNldCIgYnV0dG9uIGhhcyBiZWVuIGFkZGVkIHRvIHBlcmZvcm0gc2V0cyBvbiBhbiBvaWQuCiAgICAgLSBBbGwgd3JpdGFibGUgb2JqZWN0cyBpbiBhIHRhYmxlIGFyZSBub3cgYnV0dG9ucyB0aGF0IGJyaW5nIHVwIHRoZQogICAgICAgc2V0IHdpbmRvdyB3aXRoIHRoZSBjdXJyZW50IHZhbHVlIGluc3RhdGVkLgogICAgIC0gQWxsIHdyaXRhYmxlIG9iamVjdHMgaW4gdGhlIG91dHB1dCBvZiBzbm1we2dldCx3YWxrLGdldG5leHR9CiAgICAgICBidXR0b25zIGFyZSBkaXNwbGF5ZWQgYXMgYmx1ZSBhbmQgYXJlIGNsaWNrYWJsZSB0byBjaGFuZ2UgdGhlaXIKICAgICAgIHZhbHVlcy4KICAgLSBzZXR0aW5ncyBjb25maWd1cmVkIHZpYSB0aGUgb3B0aW9ucyBtZW51IGNhbiBub3cgYmUgc2F2ZWQuCiAgIC0gdXNlIEdldG9wdDo6U3RkIG5vdy4KICAgLSBzdXBwb3J0cyBtb3N0IG9mIHRoZSBpbXBvcnRhbnQgc25tcGNtZCgxKSBmbGFncyBmb3Igc2Vzc2lvbiBzZXR1cC4KICAgCjIwMDEtMDEtMzAgMTM6MTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2Rpc21hbi86IGV2ZW50LW1pYi5oICwKICAgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5jICwgbXRlVHJpZ2dlckJvb2xlYW5UYWJsZS5oICwKICAgbXRlVHJpZ2dlckRlbHRhVGFibGUuYyAsIG10ZVRyaWdnZXJEZWx0YVRhYmxlLmggLAogICBtdGVUcmlnZ2VyRXhpc3RlbmNlVGFibGUuYyAsIG10ZVRyaWdnZXJFeGlzdGVuY2VUYWJsZS5oICwKICAgbXRlVHJpZ2dlclRhYmxlLmMgLCBtdGVUcmlnZ2VyVGFibGUuaCAsCiAgIG10ZVRyaWdnZXJUaHJlc2hvbGRUYWJsZS5jICwgbXRlVHJpZ2dlclRocmVzaG9sZFRhYmxlLmg6CgogICBJbml0aWFsIChub3QtY29tcGxldGUpIGltcGxlbWVudGF0aW9uIG9mIHRoZSBESVNNQU4tRVZFTlQtTUlCOgogICAgIC0gSW1wbGVtZW50cyBhbGwgMyB0ZXN0cyAoYm9vbGVhbiwgdGhyZXNob2xkIGFuZCBleGlzdGVuY2UpLgogICAgIC0gbm90IHJpZ29yb3VzbHkgdGVzdGVkLgogICAgIC0gQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgcXVlcnlpbmcgdGhlIGxvY2FsIGFnZW50CiAgICAgICAobXRlVHJpZ2dlclRhcmdldFRhZyBtdXN0IGJlICcnKS4KICAgICAtIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHNlbmRpbmcgdHJhcHMgYW5kIHRoZSBtdGVPYmplY3RzVGFibGUgaXMKICAgICAgIG5vdCBpbXBsZW1lbnRlZCAobXkgbmV4dCB0b2RvIGl0ZW0pCiAgICAgLSBPbmx5IHRoZSBkZWZhdWx0IHRyYXBzIGFyZSBzZW50LiAgVGhlIG10ZUV2ZW50KiBvYmplY3RzIGhhdmVuJ3QKICAgICAgIGJlZW4gaW1wbGVtZW50ZWQgKG5vIHNlbGYtZGVmaW5lZCB0cmFwcy9zZXRzKS4KICAgICAtIG5vIGVhc3kgdG8gdXNlIGNvbmZpZ3VyYXRpb24geWV0IChzb29uKS4KICAgICAtIGNvbmZpZ3VyZSB3aXRoIC0td2l0aC1taWItbW9kdWxlcz1kaXNtYW4vZXZlbnQtbWliCiAgIAoyMDAxLTAxLTMwIDEzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICBVc2UgbWVtY3B5IGluc3RlYWQgb2Ygc3ByaW50ZiBmb3Igc3RyaW5ncyB0aGF0IG1heSBub3QgYmUgbnVsbCB0ZXJtaW5hdGVkLgogICAKMjAwMS0wMS0zMCAxMjo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBzbm1wX2FnZW50LmMgLCBzbm1wX2FnZW50Lmg6CgogICBJbXBsZW1lbnRlZCBnZXRfY3VycmVudF9hZ2VudF9zZXNzaW9uKCkgYW5kIHNldF9jdXJyZW50X2FnZW50X3Nlc3Npb24oKToKICAgICAtIFRoZXNlIGFsbG93IGEgbWliIG1vZHVsZSB0byByZXRyaWV2ZSB0aGUgY3VycmVudAogICAgICAgYWdlbnRfc25tcF9zZXNzaW9uIHBvaW50ZXIgZm9yIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uLgogICAgIC0gVGhpcyBzaG91bGQgcHJvYmFibHkgZG9uZSBkaWZmZXJlbnRseSBsYXRlciB3aGVuIHdlIGNoYW5nZSB0aGUgbWliCiAgICAgICBtb2R1bGUgYXBpLgogICAgIC0gVGhpcyB3aWxsIGNvbXBsZXRlbHkgZmFpbCB0byB3b3JrIHByb3Blcmx5IGluIGEgbXVsdGktdGhyZWFkZWQKICAgICAgIGFnZW50ICh3aGljaCB3ZSBjdXJyZW50bHkgZG9uJ3Qgc3VwcG9ydCBhbnl3YXkpLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9jYWxsYmFjay5jOgoKICAgZGVidWdnaW5nIHN0YXRlbWVudCBhdCBpbml0aWFsaXphdGlvbiB0aW1lLgogICAKMjAwMS0wMS0yOSAxMTo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgcHJvcGVybHkgbWFsbG9jIGEgMSBieXRlLCBOVUxMIGNoYXJhY3RlciBzdHJpbmcgZm9yICIiIHJlYWQgc3RyaW5ncy4KICAgCjIwMDEtMDEtMjkgMTE6NTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwLzogaGVhZGVyX2NvbXBsZXguYyAsIGhlYWRlcl9jb21wbGV4Lmg6CgogICBkYXRhIHNlcGVyYXRpb24gYW5kIG5ldyBmdW5jdGlvbnM6CiAgICAgaGVhZGVyX2NvbXBsZXhfZ2V0X2Zyb21fb2lkKCkKICAgICBoZWFkZXJfY29tcGxleF9hZGRfZGF0YV9ieV9vaWQoKQogICAKMjAwMS0wMS0xMiAwODoyMiAgaGFyZGFrZXIKCiAgICogbWlicy9ESVNNQU4tRVZFTlQtTUlCLnR4dDoKCiAgIC0gRElTTUFOLUVWRU5ULU1JQiBhZGRlZCB0byBtaWIgcmVwb3NpdG9yeS4gKE9yLCBndWVzcyB3aGF0IEkgZGlkIGR1cmluZyBhIDYgaG91ciBwbGFuZSBmbGlnaHQ/KQogICAKMjAwMS0wMS0xMiAwODoxNiAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBzdXBwb3J0IGJpdCBzdHJpbmdzCiAgIAoyMDAxLTAxLTEyIDA4OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc25tcF9hcGkuYyAoVjQtMi1wYXRjaGVzLjUpLCBzbm1wX2FwaS5jOgoKICAgLSBiaXRfc3RyaW5nIGZpeGVzCiAgIC0gbWFrZSBzbm1wX2FkZF92YXIgY2FsbCBzbm1wX3BhcnNlX29pZCgpIGluc3RlYWQgb2YgcmVhZF9vYmppZCgpLgogICAKMjAwMS0wMS0xMiAwNzo1OCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9yZWFkX2NvbmZpZy5jOgoKICAgLSBuZXcgZGF0YSB0eXBlcyBzdXBwb3J0ZWQgZm9yIHJlYWRfY29uZmlnIHJvdXRpbmVzOiB1bnNpZ25lZCwgYml0X3N0ci4KICAgCjIwMDEtMDEtMTIgMDc6NTYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBhc24xLmMgKFY0LTItcGF0Y2hlcy4zKSwgYXNuMS5jOgoKICAgY29tbWVudCBvdXQgcmVhbGx5IG9kZCAoYW5kIGJyb2tlbikgY2hlY2sgZnJvbSBhc25fYml0c3RyaW5nX2NoZWNrPz8/CiAgIAoyMDAxLTAxLTEyIDA3OjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYzoKCiAgIG1vdmUgY29uZmlnIHN0cmluZyBpbml0aWFsaXplciBhYm92ZSBzdWJhZ2VudCBjaGVjayBzbyBpdHMga25vd24gZXZlbgogICBpZiBub3QgdXNlZC4KICAgCjIwMDEtMDEtMTIgMDc6NTEgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuc3RvcmFnZS5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mCiAgIChWNC0yLXBhdGNoZXMuWzEsMV0pLCBtaWIyYy5zdG9yYWdlLmNvbmYgLAogICBtaWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBuZXcgZGF0YSB0eXBlcyAodWludDMyLCB1bnNpZ25lZCwgYml0cykuCiAgIAoyMDAxLTAxLTA5IDE3OjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X3JlZ2lzdHJ5LmMgLCBhZ2VudF9yZWdpc3RyeS5oICwKICAgZHNfYWdlbnQuaCAsIHZhcl9zdHJ1Y3QuaCAsIG1pYmdyb3VwL21pYmluY2wuaCAsCiAgIG1pYmdyb3VwL2FnZW50eC9jbGllbnQuYyAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYwogICAsIG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jICwKICAgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMgLCBtaWJncm91cC9hZ2VudHgvc3ViYWdlbnQuaDoKCiAgIFN1YkFnZW50IHBpbmcgc3VwcG9ydDoKICAgICAtIGFnZW50eFBpbmdJbnRlcnZhbCBzcGVjaWZpZXMgU0VDT05EUyBiZXR3ZWVuIHdoZW4gdGhlIHN1YmFnZW50CiAgICAgICB0cmllcyB0byBwaW5nIHRoZSBtYXN0ZXIgYWdlbnQuCiAgICAgLSBpZiBubyByZXNwb25zZSBpcyByZWNlaXZlZCwgaXQgdHJpZXMgdG8gcmVjb25uZWN0LgogICAgIC0gZmFpbGluZyB0aGF0IGl0IHRyaWVzIGV2ZXJ5IFNFQ09ORFMgYWdhaW4gdGlsbCBpdCBzdWNjZWVkcy4KICAgICAtIHJlLXJlZ2lzdGVycyBpdHMgb2lkJ3MgYmFzZWQgb24gdGhlIGN1cnJlbnQgc3VidHJlZSBsaXN0LgogICAgICAgLSBtYXkgbmVlZCBzb21lIHRob3VnaHQuICBBc3N1bWVzICphbGwqIG5lZWQgdG8gYmUgcmUtcmVnaXN0ZXJlZC4KICAgICAgIC0gbmVlZHMgdG8gcmUtcmVnaXN0ZXIgc3lzb3J0YWJsZSBlbnRyaWVzIHRvbywgYnV0IGRvZXNuJ3QuCiAgICAgLSBjdXJyZW50bHkgc2VnLWZhdWx0cyBvbiBhYm91dCB0aGUgMi00dGggdGltZSBvciBzby4gIE5vdCBzdXJlIHdoeS4KICAgICAtIFNob3VsZCBtYWtlIERhdmUgc21pbGUgb3IgY3JpbmdlIG9yIGdpZ2dsZSwgbm90IHN1cmUgd2hpY2guCiAgIAoyMDAxLTAxLTA5IDE3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogY2FsbGJhY2suYyAsIGNhbGxiYWNrLmg6CgogICBBbGxvdyBkZXJlZ2lzdGVyaW5nIG9mIGNhbGxiYWNrcwogICAKMjAwMS0wMS0wOSAwNjoyMCAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcG5ldHN0YXQvOiBzbm1wbmV0c3RhdC5kc3AgKFY0LTItcGF0Y2hlcy4xKSwKICAgc25tcG5ldHN0YXQuZHNwOgoKICAgYWRkZWQgZ2V0b3B0LmMgdG8gbGlzdAogICAKMjAwMS0wMS0wNCAxNjo0NCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IHNubXBfZW51bS5jICwgc25tcF9lbnVtLmg6CgogICAtIGdlbmVyaWMgc25tcCBlbnVtIGxpc3Qgc3VwcG9ydC4gIE5vdCB1c2VkIGFueXdoZXJlICh5ZXQpLgogICAKMjAwMS0wMS0wNCAxNjo0MyAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlICwgY29uZmlndXJlLmluICwgYWdlbnQvYWdlbnRfY2FsbGJhY2tzLmgKICAgLCBhZ2VudC9hZ2VudF90cmFwLmMgLCBhZ2VudC9hZ2VudF90cmFwLmggLAogICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMgLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMgLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMgLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmggLAogICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyAsIHNubXBsaWIvTWFrZWZpbGUuaW4gLAogICBzbm1wbGliL2FzbjEuYyAsIHNubXBsaWIvY2FsbGJhY2suYyAsCiAgIHNubXBsaWIvY2FsbGJhY2suaCAsIHNubXBsaWIvbWliLmMgLAogICBzbm1wbGliL3NubXBfYXBpLmMgLCBzbm1wbGliL3NubXBfbG9nZ2luZy5jICwKICAgdGVzdGluZy90ZXN0cy9UMDUzYWdlbnR2MXRyYXAgLCB0ZXN0aW5nL3Rlc3RzL1QwNTRhZ2VudHYyY3RyYXAKICAgLCB0ZXN0aW5nL3Rlc3RzL1QwNTVhZ2VudHYxbWludHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDA1NmFnZW50djJjbWludHJhcCAsCiAgIHRlc3RpbmcvdGVzdHMvVDExM2FnZW50eHRyYXA6CgogICAtIG1lcmdlZCBwYXRjaGVzIGZyb20gVjQtMi1wYXRjaGVzIGJyYW5jaCB0byBtYWluIGJyYW5jaC4KICAgCjIwMDEtMDEtMDQgMTA6MzcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wLmNvbmYuNS5kZWYgLCBtYW4vc25tcGNtZC4xICwgc25tcGxpYi9taWIuYzoKCiAgIC0gYWRkZWQgbmV3IHByaW50SGV4VGV4dCBzbm1wLmNvbmYgdG9rZW4uCiAgIC0gZG9jdW1lbnRlZCAtT1QsIGFuZCB0aGUgdG9rZW4uCiAgIAoyMDAxLTAxLTA0IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oICwgbWliLmM6CgogICBQYXRjaCAjMTAzMDkxIGFwcGxpZWQ6CiAgICAgLSBBZGRlZCAtT1Qgb3B0aW9uIHRvIHZpZXcgaGV4IHN0cmluZ3Mgd2l0aCB0ZXh0IGluIHRoZW0uCiAgIAoyMDAwLTEyLTI3IDE2OjQ3ICBoYXJkYWtlcgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QwNTZhZ2VudHYyY21pbnRyYXA6CgogICBmaWxlIFQwNTZhZ2VudHYyY21pbnRyYXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMi1wYXRjaGVzLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMDU1YWdlbnR2MW1pbnRyYXA6CgogICBmaWxlIFQwNTVhZ2VudHYxbWludHJhcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0yLXBhdGNoZXMuCiAgIAoyMDAwLTEyLTIyIDA3OjAyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3ZhY20uYzoKCiAgIGZpeCB2aWV3IHByb2Nlc3NpbmcgdG8gd2F0Y2ggZm9yIGxlbmd0aCBwcmVmaXguICBUaGUgbGVuZ3RoIHByZWZpeAogICByZWFsbHkgcmVhbGx5IHNob3VsZG4ndCBiZSBzdG9yZWQgZGlyZWN0bHkgaW4gdGhlIG9pZC4gIE5pZWxzPwogICAKMjAwMC0xMi0xOSAwNzoyMiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIG1ha2UgaW5pdF9zbm1wdjMoKSBkZWFsIHdpdGggYSBOVUxMIGFyZ3VtZW50IHByb3Blcmx5LgogICAKMjAwMC0xMi0xOCAxNDozNyAgaGFyZGFrZXIKCiAgICogbG9jYWwvLmN2c2lnbm9yZToKCiAgIC0gKC5jdnNpZ25vcmUpOiByZW1vdmUgcGFzc3Rlc3QgZnJvbSB0aGUgLmN2c2lnbm9yZSBmaWxlIChidWcgIzEyNjk0KQogICAKMjAwMC0xMi0xOCAxMDo0NSAgbWFyegoKICAgKiBwZXJsL1NOTVAvOiBSRUFETUUgLCBTTk1QLnBtOgoKICAgbWlub3IgZG9jIGZpeAogICAKMjAwMC0xMi0xNCAxMzo0NiAgbmJhCgogICAqIHNubXBsaWIvc3lzdGVtLmM6CgogICAtIHN5c3RlbS5jOiBmaXggdXB0aW1lIGZvciA2NC1iaXQgU29sYXJpcwogICAKMjAwMC0xMi0xNCAxMzo0NSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2RsbW9kLmM6CgogICAtIGRsbW9kLmM6IGZpeCBzdHVwaWQgc3BlbGxpbmcgZXJyb3IKICAgCjIwMDAtMTItMTMgMjE6NTIgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5jOgoKICAgLSBkbG1vZC5jOiBmaXggY29uZnVzaW9uIGJldHdlZW4gaW50LCBzaXplX3QsIGxvbmcgZm9yIDY0LWJpdCBjb21waWxlcy4KICAgCjIwMDAtMTItMTMgMDg6NDAgIGhhcmRha2VyCgogICAqIG1hbi9NYWtlZmlsZS5pbjoKCiAgIC0gKE1ha2VmaWxlLmluKTogYWRkIHNubXBjb25mLjEKICAgCjIwMDAtMTItMDggMTQ6NDkgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYyAsIHNubXBsaWIvdmFjbS5jOgoKICAgLSB2YWNtX3ZhcnMuYywgdmFjbS5jOiBpbmRleGluZyBvZiB2YWNtVmlld1RyZWVGYW1pbHlFbnRyeSB3YXMgaG9zZWQsIGFzc3VtaW5nCiAgIAl0aGF0IHRoZSBTdWJ0cmVlIGluZGV4IGhhZCBhbiBJTVBMSUVEIGF0dHJpYnV0ZS4KICAgCjIwMDAtMTItMDggMTQ6NDYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZmlsZXN5cy5jICwgaHJfcGFydGl0aW9uLmM6CgogICAtIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmM6IGZpeCBzb21lIHplcm8gaW5kZXggdmFsdWVzLgogICAKMjAwMC0xMi0wOCAxNDo0MyAgbmJhCgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgLSBzbm1wX3ZhcnMuYzogZml4IHJldHVybnMgb2YgemVyb0RvdFplcm8gKHN1Y2ggYXMgaWZTcGVjaWZpYykKICAgCjIwMDAtMTItMDggMTQ6MzggIG5iYQoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICAtIGFnZW50X3RyYXBkLmM6IHNlY3VyaXR5IG1vZGVsIHZhbHVlcyBhcmUgbm90IHRoZSBzYW1lIGlzIHNubXAgdmVyc2lvbiB2YWx1ZXMKICAgCjIwMDAtMTItMDYgMTQ6NDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAtIGludGVyZmFjZXMuYzogTGludXgga2VybmVsIDIuMC54IGhhcyBubyBBUlBIUkRfSElQUEkKICAgCjIwMDAtMTItMDUgMDc6MDAgIGhhcmRha2VyCgogICAqIGxvY2FsL01ha2VmaWxlLmluOgoKICAgLSAoTWFrZWZpbGUuaW4pOiBGaXggcnNubXAncyAvdXNyL2xvY2FsIGhhcmRjb2RlZCBwYXRoLgogICAKMjAwMC0xMi0wNCAxNzowMyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbDoKCiAgIC0gKFQxMTJhZ2VudHhzZXRmYWlsKTogZml4CiAgIAoyMDAwLTEyLTA0IDE2OjMzICBoYXJkYWtlcgoKICAgKiBSRUFETUUgLCBzZWRzY3JpcHQuaW4gLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA1LjIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMi4zIC0+IFY0LjIuNAoJCjIwMDItMDQtMDQgMTU6MjQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oOgoKICAgcGF0Y2ggZnJvbSBQZXR0ZXIgTGFyc2VuIHRvIGFkZCBhIGZ1bmN0aW9uIGZvciBleHRyYWN0aW5nIHRoZSBmZCBhc3NvY2lhdGVkIHdpdGggYSBzZXNzaW9uCiAgIAoyMDAyLTA0LTA0IDE1OjE0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9yZWdpc3RyeS5jOgoKICAgZGVhbCB3aXRoIGZkIHVucmVnaXN0cmF0aW9ucyBwcm9wZXJseS4KICAgCjIwMDItMDQtMDMgMDg6MzIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuNC5wcmUzICkKICAgCjIwMDItMDQtMDIgMTU6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3JlZ2lzdHJ5LmM6CgogICBBcHBseSBwYXRjaCAjNTE1NTc3IHRvIGZpeCBvbmUgY2FzZSBvZiBhIHJlZ2lzdHJ5IHByb2JsZW0uCiAgIAoyMDAyLTA0LTAyIDE0OjU3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsIHMvZGFyd2luLmg6CgogICBBcHBseSBwYXRjaCAjNTI0NDI0IGZvciBkYXJ3aW4gZml4ZXMgZm9yIHVjZC1zbm1wL2Rpc2suYwogICAKMjAwMi0wNC0wMiAxNDo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgYXBwbHkgcGF0Y2ggNTI3NTczIHRvIGZpeCA2NCBiaXQgdHlwZXMgb24gc29sYXJpcwogICAKMjAwMi0wNC0wMSAyMjoyOCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgTGV0IGluaXRfc25tcCBwcm90ZWN0IGl0c2VsZi4KICAgCjIwMDItMDMtMjggMjM6NDggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYzoKCiAgIGVuYWJsZSByb3cgY3JlYXRpb24gZm9yIHBhc3MgbW9kdWxlcy4gIFBhdGNoICM0ODIwMDUKICAgCjIwMDItMDMtMjggMjM6NDQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHBhdGNoICM1MTczNDA6IGZyZWVic2Q1IHN1cHBvcnQKICAgCjIwMDItMDMtMjggMjM6MzggIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jOgoKICAgYXBwbHkgZnJlZWJzZDUgcGF0Y2ggIzUxNzMzMwogICAKMjAwMi0wMy0yOCAyMzoxMCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBmaXggYnVnICM1MjU4NDQuICBwZXJsIFNOTVAgd2FzIHVzaW5nIGEgdHJhcCBhZGRyZXNzIG9mIDAuMC4wLjAuCiAgIAoyMDAyLTAzLTI4IDIzOjAzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICB1c2UgYSBzdGF0aWMgdmFyaWFibGUgZm9yIGluaXQgY2hlY2tpbmcuICBCdWcgIzUzNjM4Ni4KICAgCjIwMDItMDMtMjggMTU6MjMgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhIGZldyBuZXcgZW50cmllcyAobW9zdGx5IHJlbGF0aW5nIHRvIHRyYXBzKQogICAKMjAwMi0wMy0yNyAwMTo1NSAgZHRzMTIKCiAgICogY29uZmlndXJlLmluLCBjb25maWd1cmU6CgogICBVc2UgdGhlIGNvcnJlY3QgbmFtZSBvZiB0aGUgV2luZG93cyBJUCBIZWxwZXIgQVBJIGxpYnJhcnkuCiAgIChDb21wdXRlcnMgY2FuIGJlIHNvb29vIHBpY2t5ISkKICAgCjIwMDItMDMtMjYgMDg6MjkgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZW5hYmxlIGRpc2tpbyBvbiBmcmVlYnNkNS4gIEltcGxlbWVudHMgcGF0Y2ggNTE3MzI4IGluIGEgZGlmZmVyZW50IHdheS4KICAgCjIwMDItMDMtMjYgMDc6NDQgIGR0czEyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkIC9ldGMvZmlsZXN5c3RlbXMgdG8gbGlzdCBvZiBtb3VudCB0YWJsZSBmaWxlcyAoZm9yIEFJWCkKICAgU2hvdWxkIGZpeCBidWdzIDIzMjU4OCBhbmQgKD8pNTE3MTEzCiAgIAoyMDAyLTAzLTI2IDA3OjM5ICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIFJlbW92ZSB0cmFpbGluZyAnOicgZnJvbSBsaXN0IG9mIE1JQiBtb2R1bGUgbmFtZXMgaW4gY29uZmlndXJlIG91dHB1dCwKICAgdG8gYXZvaWQgY29uZnVzaW9uIChzZWUgQnVnICM0OTExMjkpCiAgIAoyMDAyLTAzLTI2IDA2OjUwICBkdHMxMgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCAnLWxobHBhcGknIHRvIHRoZSBhZ2VudCBsaWJyYXJpZXMgd2hlbiBjb21waWxpbmcgdW5kZXIgV2luZG93cwogICAodXNpbmcgQ3lnd2luKS4gIERMTElCUyBpcyBub3QgYXMgc3VpdGFibGUgYXMgQUdFTlRfTElCUyBmb3IgdGhpcwogICAoc2VlIHRoZSBlcXVpdmFsZW50IHBhdGNoIG9uIHRoZSBtYWluIGJyYW5jaCksIGJ1dCBpdCBzaG91bGQgZG8uCiAgIFNob3VsZCBmaXggQnVnICM1MzQ0MDkuCiAgIAoyMDAyLTAzLTI1IDIyOjMzICByc3RvcnkKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgZml4IGJ1ZyM1MjA0Nzggc2hvd01pYkVycm9ycyB0b2tlbiBpcyBpbnZlcnRlZAogICAKMjAwMi0wMy0yNSAxODo0NyAgcnN0b3J5CgogICAqIGFnZW50L3NubXBfdmFycy5jOgoKICAgZml4IGJ1ZyM1MDIxMjMgYWdlbnR4IGluZmluaXRlIGxvb3AuCiAgIAoyMDAyLTAzLTI0IDA1OjE5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUmVzdHJpY3QgaHJTV1J1blBhcmFtcyByZXR1cm5zIHZhbHVlcyB0byAxMjggb2N0ZXRzCiAgIAoyMDAyLTAzLTI0IDA1OjA0ICBuYmEKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIE9vcHMgLSBzbnByaW50XyogY2Fubm90IHJlYWxsb2MKICAgCjIwMDItMDMtMjEgMDc6MjEgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgZml4IGJ1ZyAjNTMyNjk2IGZpeGluZyBycG0gZm9yIG5ld2VyIHJwbSB2ZXJzaW9ucwogICAKMjAwMi0wMy0yMCAwNzo0OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgcmVtb3ZlIGlsbGVnYWwgU0VUIHN1cHBvcnQgZm9yIHN5c0Rlc2NyLgogICAKMjAwMi0wMy0xOSAwMjowMSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguaDoKCiAgICAgLSBwYXRjaCBmcm9tIEpvc2h1YSBHaWxlcyB0byBpbmNyZWFzZSB0aGUgbWF4aW11bSBzdHJpbmcgbGVuZ3RoCiAgICAgICAoIzUyNzY1MCkuCiAgIAoyMDAyLTAzLTE4IDE0OjM4ICBuYmEKCiAgICogd2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWY6CgogICBBZGQgbWlzc2luZyBleHBvcnRzIGZvciBWQysrIGJ1aWxkCiAgIAoyMDAyLTAzLTE4IDEzOjIzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgUHJvcGVyIHRlc3QgZm9yIHN1Y2Nlc3NmdWwgb3BlbiBvZiBFVENfTU5UVEFCCiAgIAoyMDAyLTAzLTE4IDEzOjA5ICBuYmEKCiAgICogYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYzoKCiAgIEZpeCBpbnRlcmNoYW5nZWQgcGFyYW1ldGVycyBmb3Igc3RybmNweQogICAKMjAwMi0wMy0xOCAwODo1MSAgZHRzMTIKCiAgICogd2luMzIvOiB3aW4zMi5kc3csIGVuY29kZV9rZXljaGFuZ2UvZW5jb2RlX2tleWNoYW5nZS5kc3AsCiAgIGxpYmFnZW50L2xpYmFnZW50LmRzcCwgbGlic25tcC9saWJzbm1wLmRzcCwKICAgbGlic25tcF9kbGwvbGlic25tcF9kbGwuZHNwLCBsaWJ1Y2RtaWJzL2xpYnVjZG1pYnMuZHNwLAogICBzbm1wYnVsa2dldC9zbm1wYnVsa2dldC5kc3AsIHNubXBidWxrd2Fsay9zbm1wYnVsa3dhbGsuZHNwLAogICBzbm1wZC9zbm1wZC5kc3AsIHNubXBkZWx0YS9zbm1wZGVsdGEuZHNwLCBzbm1wZGYvc25tcGRmLmRzcCwKICAgc25tcGdldG5leHQvc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0L3NubXBnZXQuZHNwLAogICBzbm1wbmV0c3RhdC9zbm1wbmV0c3RhdC5kc3AsIHNubXBzZXQvc25tcHNldC5kc3AsCiAgIHNubXBzdGF0dXMvc25tcHN0YXR1cy5kc3AsIHNubXB0YWJsZS9zbm1wdGFibGUuZHNwLAogICBzbm1wdGVzdC9zbm1wdGVzdC5kc3AsIHNubXB0cmFuc2xhdGUvc25tcHRyYW5zbGF0ZS5kc3AsCiAgIHNubXB0cmFwL3NubXB0cmFwLmRzcCwgc25tcHRyYXBkL3NubXB0cmFwZC5kc3AsCiAgIHNubXB1c20vc25tcHVzbS5kc3AsIHNubXB2YWNtL3NubXB2YWNtLmRzcCwgc25tcHdhbGsvc25tcHdhbGsuZHNwOgoKICAgQXBwbHkgRE9TLXR5cGUgbGluZSBlbmRpbmdzIHRvIHRoZSBEU1cvRFNQIGZpbGVzLgogICAKMjAwMi0wMy0xOCAwODo0MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBVc2UgdGhlIHNhbWUgdmFyaWFibGUgbmFtZSBmb3Igb3V0cHV0IGJ1ZmZlciBhbmQgc2l6ZSBjYWxjdWxhdGlvbi4KICAgCjIwMDItMDMtMTggMDU6MzkgIGpicG4KCiAgICogUkVBRE1FLmhwdXgxMSwgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuaCwKICAgcy9ocHV4Lmg6CgogICAgIC0gY29tbWl0IEpvaGFubmVzJ3MgdXBkYXRlIHRvIHRoZSBIUFVYLTExIHBhdGNoCiAgIAoyMDAyLTAzLTE4IDAyOjMxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYzoKCiAgICAgLSBleHRlbmQgdGNwX3dyYXBwZXJzIHN1cHBvcnQgdG8gQWdlbnRYLiAgVGhpcyBtYWtlcyBpdCBtb3JlCiAgICAgICByZWFzb25hYmxlIHRvIGltcGxlbWVudCBhIGRpc3RyaWJ1dGVkIHN1YmFnZW50IGFyY2hpdGVjdHVyZQogICAgICAgd2l0aG91dCBtYXNzaXZlIHNlY3VyaXR5IHdvcnJpZXMuCiAgIAoyMDAyLTAzLTE0IDA3OjIzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggZG9udF9wcm9iZSBidWcgcG9pbnRlZCBvdXQgYnkgU3RlZmFuIEFlc2NoYmFjaGVyLgogICAKMjAwMi0wMy0xMyAxODo1OCAgc2xpZgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIENsYXJpZnkgdW5zaWduZWQgY2hhciBhcmd1bWVudCBmb3IgdGhlIG5vaXN5IG9yIGNvbmZ1c2VkIGNvbXBpbGVyLgogICAKMjAwMi0wMy0xMyAxODo0NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBxdWVsbCBzZXZlcmFsIHdhcm5pbmdzIGFib3V0IHNpZ25lZCB2cyB1bnNpZ25lZCBjb21wYXJpc29ucy4KICAgCjIwMDItMDMtMTMgMTg6NDQgIHNsaWYKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgcmVtb3ZlIGRlcGVuZGVuY2llcyB0byByZXN0b3JlIGJ1aWxkaW5nIGVpdGhlciBEZWJ1ZyBvciBSZWxlYXNlIHRhcmdldHMuCiAgIAoyMDAyLTAzLTEzIDE4OjQzICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgdHJhY2sgY2hhbmdlIHNldGVudiAtLT4gc25tcF9zZXRlbnYKICAgCjIwMDItMDMtMTMgMTU6NTAgIGhhcmRha2VyCgogICAqIG1pYnMvOiBVQ0QtREVNTy1NSUIudHh0LCBVQ0QtRElTS0lPLU1JQi50eHQsIFVDRC1ETE1PRC1NSUIudHh0LAogICBVQ0QtSVBGSUxURVItTUlCLnR4dCwgVUNELUlQRldBQ0MtTUlCLnR4dCwgVUNELVNOTVAtTUlCLnR4dDoKCiAgIGFkZHJlc3MgY2hhbmdlcyBmb3IgdWNkLXNubXAgLT4gbmV0LXNubXAgbm90ZSBzYXlpbmcgdGhlc2UgbWlicyBhcmUgbm8KICAgbG9uZ2VyIHN1cHBvcnRlZCBieSBVQ0QuCiAgIAoyMDAyLTAzLTEzIDE1OjIxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3Rvb2xzLmM6CgogICBtYWxsb2MgYXQgbGVhc3Qgb25lIGJ5dGUgaW4gaGV4X3RvX2JpbmFyeTIKICAgCjIwMDItMDMtMTMgMDQ6MDMgIGR0czEyCgogICAqIEZBUToKCiAgIEFkZCBhIGRlc2NyaXB0aW9uIG9mICJ1bmxpbmtlZCBPSURzIi4KICAgCjIwMDItMDMtMTIgMjA6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9zb2xhcmlzMi5jOgoKICAgUGF0Y2ggZnJvbSBkYW5pZWwgU3VsbHkgdG8gaW1wcm92ZSBzb2xhcmlzIHN3YXAgaW5mbwogICAKMjAwMi0wMy0xMiAwODozNCAgZHRzMTIKCiAgICogRkFROgoKICAgVXBkYXRpbmcgb2YgdGhlIEZBUSByZWFkeSBmb3IgdGhlIG5leHQgcmVsZWFzZS4KICAgKE1vc3RseSByZXBocmFzaW5nIG9mIGV4aXN0aW5nIGVudHJpZXMsIGJ1dCBhIGZldyBuZXcgcXVlc3Rpb25zKQogICAKMjAwMi0wMy0xMSAxMDowNiAgaGFyZGFrZXIKCiAgICogYWdlbnQvOiBtaWJncm91cC9zbXV4L3NtdXguYywgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYywKICAgYWdlbnRfaW5kZXguYywgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywgc25tcF9hZ2VudC5jLAogICBzbm1wZC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIGJldHRlciBwcmludGluZyBhcGlzCiAgIAoyMDAyLTAzLTExIDEwOjA2ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB2YWNtLmM6CgogICBmaXggYXBpIGluIGEgY29tbWVudCAoaG93IHBpY2t5IGFtIEk/KQogICAKMjAwMi0wMy0xMSAwNzo0MSAgZHRzMTIKCiAgICogRkFROgoKICAgQnJpbmcgdGhlIDR4LSBhbmQgbWFpbi1icmFuY2ggRkFRcyBpbnRvIGFncmVlbWVudC4KICAgCjIwMDItMDMtMTEgMDU6MTYgIGpicG4KCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgICAtIGZpeCBiYWQgdHlwZSBhc3NpZ25tZW50IGluIGJ1aWxkX3RyYW5zbGF0aW9uX3RhYmxlKCksIG5vdGljZWQgYnkKICAgICAgIFBldGVyIFN0ZXZlbnMuCiAgIAoyMDAyLTAzLTEwIDE0OjA3ICBuYmEKCiAgICogc25tcGxpYi9taWIuaDoKCiAgIE9vcHMgLSBmb3Jnb3QgdG8gcmVtb3ZlIHRoZSAjaWZkZWYgZm9yIHVuc2FmZSBzcHJpbnRfKiBmdW5jdGlvbnMgZGVjbGFyYXRpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjU0ICBuYmEKCiAgICogYXBwcy9zbm1wd2Fsay5jOgoKICAgRml4IHVwIG91dC1vZi1vcmRlciBlcnJvciBtZXNzYWdlCiAgIAoyMDAyLTAzLTEwIDEzOjQ0ICBuYmEKCiAgICogYXBwcy9zbm1wZGVsdGEuYzoKCiAgIERvbid0IGRpZSBvbiB2MiBleGNlcHRpb25zCiAgIAoyMDAyLTAzLTEwIDEzOjQxICBuYmEKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9kZWJ1Zy5jOgoKICAgUmVtb3ZlIHNvbWUgY2FsbHMgdG8gb2xkIHNwcmludF8qIGZ1bmN0aW9ucwogICAKMjAwMi0wMy0xMCAxMzozOSAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICBBZGQgc25wcmludF8qIHJlcGxhY2VtZW50IGZ1bmN0aW9ucyBmb3IgYWxsIHNwcmludF8qIGZ1bmN0aW9ucwogICAKMjAwMi0wMy0xMCAxMzozOCAgbmJhCgogICAqIG1hbi9taWJfYXBpLjM6CgogICBEb2N1bWVudCBzbnByaW50X3tvYmppZCx2YXJpYWJsZSx2YWx1ZX0KICAgCjIwMDItMDMtMTAgMDg6MzQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBtaWIuYywgbWliLmg6CgogICBpbmNsdWRlIHRoZSBzbnByaW50ZiBjb3VudGVycGFydHMgZnJvbSB0aGUgNS4wIGNvZGUuCiAgIAoyMDAyLTAzLTA4IDE4OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYzoKCiAgIHJlZGVmaW5lIGEgdmFyaWFibGUgb24gZnJlZWJzZCBmb3IgMi4yLjUKICAgCjIwMDItMDMtMDggMTc6NTcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHJlbW92ZSBhIGJyb2tlbiBmaXggSSBhY2NpZGVudGljYWxseSBjb21taXR0ZWQKICAgCjIwMDItMDMtMDggMTc6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIHBhdGNoIGZyb20gTWloYWlsIEJhbGlrb3YgdG8gc3VwcG9ydCB1cCBidXQgbm8gaXAgaW50ZXJmYWNlcy4KICAgCjIwMDItMDMtMDggMTc6MjcgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlLCBhY2xvY2FsLm00OgoKICAgcGF0Y2ggZnJvbSBQYXVsIFJhc211c3NlbiB0byBmaXggLS1lbmFibGUtc2hhcmVkCiAgIAoyMDAyLTAzLTA4IDE2OjU4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIG9sZCBwYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXMgdG8gZml4IGM2NHMgaW4gcGVybAogICAKMjAwMi0wMy0wOCAxNDo1MyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICBSZW1vdmUgMTAwMCBsaW5lcyBvZiBkdXBsaWNhdGUgY29kZSBieSB1c2luZyB0aGUgc3ByaW50X3JlYWxsb2NfKiBmdW5jdGlvbnMKICAgaW4gdGhlIGltcGxlbWVudGFpb24gb2YgdGhlIG5vbi1yZWFsbG9jIGNvdW50ZXJwYXJ0cy4KICAgCjIwMDItMDMtMDggMTQ6NTEgIG5iYQoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXB0YWJsZS5jLCBzbm1wdXNtLmMsIHNubXB3YWxrLmM6CgogICBSZW1vdmUgbGFzdCBzcHJpbnRfbm9ucmVhbGxvYyBjYWxscwogICAKMjAwMi0wMy0wNyAwMzoyMCAgamJwbgoKICAgKiBtYW4vbWliX2FwaS4zOgoKICAgICAtIHBhdGNoIGZyb20gR3V5IEhhcnJpcyB0byBkZXNjcmliZSBuZXcgbWliX2FwaQogICAKMjAwMi0wMy0wNyAwMjo1OCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5oOgoKICAgICAtIGRlY2xhcmUgdGhlIHNwcmludF9yZWFsbG9jX2JsYWggZnVuY3Rpb25zLiAgVGhhbmtzIHRvIEd1eSBIYXJyaXMuCiAgIAoyMDAyLTAzLTA2IDA4OjQxICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXB2My5jOgoKICAgRml4IGEgY29uZnVzaW9uIGJldHdlZW4gZGVmQXV0aFR5cGUgYW5kIGRlZlByaXZUeXBlLgogICAKMjAwMi0wMy0wNiAwNTo1MiAgZHRzMTIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgQWN0dWFsbHkgdXNlIHRoZSBjb21tb24gJ2RlZlBhc3NwaHJhc2UnIHZhbHVlIGlmICdkZWZ7QXV0aCxQcml2fVBhc3NwaHJhc2UnIGlzbid0IHNldC4KICAgUW46IFNob3VsZCB0aGUgQXV0aFBhc3NwaHJhc2UgYWxzbyBiZSB1c2VkIGZvciBwcml2YWN5IGlmIG5vIG90aGVyIHZhbHVlIGlzIGF2YWlsYWJsZT8KICAgCjIwMDItMDMtMDYgMDM6MTkgIGpicG4KCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgICAgLSBpZ25vcmUgZXJyb3JzIGRvaW5nIHJtIC1yZiAvdG1wL3NubXAtdGVzdCogd2hlbiBtYWtpbmcgY2xlYW4gKHRoaXMKICAgICAgIGhhcHBlbnMgYWxsIHRoZSB0aW1lIG9uIHRoZSBjb21waWxlIGZhcm0gYmVjYXVzZSBlLmcuIEkgY2FuJ3QKICAgICAgIGRlbGV0ZSBXZXMncyB0ZXN0IGRpcmVjdG9yaWVzIGFuZCBpdCdzIGEgbnVpc2FuY2UgYmVjYXVzZSB0aGVuIHRoZQogICAgICAgcmVzdCBvZiB0aGUgZGlyZWN0b3JpZXMgZG9uJ3QgZ2V0IGNsZWFuZWQgdXAgcHJvcGVybHkpLgogICAKMjAwMi0wMy0wNiAwMjoyNCAgamJwbgoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgICAtIGZpeCBhbm90aGVyIHBvdGVudGlhbCBidWZmZXIgb3ZlcmZsb3cgcHJvYmxlbSBhcyByZXBvcnRlZCBpbiBidWcKICAgICAgICM1MjYyNjIuCiAgIAoyMDAyLTAzLTA1IDEwOjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92ZXJzaW9uaW5mby5jOgoKICAgaW1wb3NlIG1heCBsZW5ndGggcmVzdHJpY3Rpb24gc3VwcGxpZWQgYnkgbWliIGZvciBjb25maWd1cmF0aW9uIG9wdGlvbnMuCiAgIAoyMDAyLTAzLTA1IDA5OjUyICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBtaXNzZWQgYSBtb2RpZmljYXRpb24gdG8gdGhlIHBhdGNoLgogICAKMjAwMi0wMy0wNSAwOTo1MSAgaGFyZGFrZXIKCiAgICogbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgQSBtb2RpZmllZCBwYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlciBmb3IgbG9uZ2VyIGNvbmZpZ3VyZSBzdHJpbmdzLgogICAKMjAwMi0wMy0wNSAwODoyMyAgZHRzMTIKCiAgICogYWdlbnQvc25tcF92YXJzLmg6CgogICBSZXZlcnNlIG15IGVhcmxpZXIgKGJvZ3VzKSBmaXguCiAgIFRoaW5ncyB3ZXJlIGZpbmUgYXMgdGhleSB3ZXJlIC0gSSBtdXN0IGJlIGNyYWNraW5nIHVwLi4uLi4KICAgCjIwMDItMDMtMDUgMDg6MDUgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIEFkZCBtaXNzaW5nICJzdGFuZGFyZCIgaGVhZGVycywgYW5kIHR3ZWFrIGEgdHlwZSBzbGlnaHRseS4KICAgKEJhc2VkIG9uIHJlcXVlc3RzIGZyb20gR3JlZ29yeSBUb3RoKS4KICAgCjIwMDItMDMtMDUgMDY6NTYgIGR0czEyCgogICAqIGFnZW50L3NubXBfdmFycy5oOgoKICAgQnJpbmcgZGVjbGFyYXRpb24gb2YgJ2luaXRfYWdlbnQnIGludG8gbGluZSB3aXRoIGNvZGUgZGVmaW5pdGlvbi4KICAgCjIwMDItMDMtMDUgMDY6NDggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLCB1Y2Qtc25tcC9kbG1vZC5jOgoKICAgQ2FzdCBhIGNvdXBsZSBvZiBtYWxsb2NzIGFwcHJvcHJpYXRlbHkgKHJlcXVlc3RlZCBieSBHcmVnb3J5IFRvdGgpCiAgIAoyMDAyLTAzLTA0IDIxOjM4ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjQucHJlMiApCiAgIAoyMDAyLTAzLTA0IDAxOjUxICBkdHMxMgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIENhdGNoIGFuZCByZXBvcnQgaW52YWxpZCBub2RlIHNwZWNpZmljYXRpb25zLgogICAoVGhpcyBvdWdodCB0byBiZSBoYW5kbGVkIGJ5IHRoYXQgdGVzdCB0aGF0IGZvbGxvd3MgaW1tZWRpYXRlbHksIGJ1dAogICAgIiRTTk1QOjpNSUJ7JG9pZH0iIGFwcGVhcnMgdG8gcmV0dXJuIHRoZSBjb3JlIG1pYi0yIG9iamVjdCByZWdhcmRsZXNzKQogICAKMjAwMi0wMy0wNCAwMToxNiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBDb3JyZWN0IGRlYnVnIG91dHB1dCBtZXNzYWdlICh0aGFua3MgdG8gSmVyb2VuIFJ1aWdyb2spCiAgIAoyMDAyLTAzLTAxIDIyOjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIGZpeCBidWcgIzUyNDUyOQogICAKMjAwMi0wMy0wMSAwNzoxNyAgbmJhCgogICAqIGx0bWFpbi5zaCwgYWNsb2NhbC5tNCwgY29uZmlndXJlOgoKICAgUHVsbCBpbiB1cC10by1kYXRlIGxpYnRvb2wsIHdoaWNoIHNob3VsZCBoZWxwIERhcndpbgogICAKMjAwMi0wMy0wMSAwNzoxNSAgbmJhCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YjoKCiAgIFB1bGwgaW4gdXAtdG8tZGF0ZSBjb25maWcgc2NyaXB0cwogICAKMjAwMi0wMi0yNyAwOTo0NyAgZHRzMTIKCiAgICogc25tcGxpYi92YWNtLmM6CgogICBIYW5kbGUgdmlld3MgdGhhdCBzcGVjaWZ5IGEgZnVsbCBpbnN0YW5jZSBPSUQuCiAgIChTaW5jZSB0aGUgaW50ZXJuYWxseSBzdG9yZWQgT0lEIHByZXBlbmRzIHRoZSBsZW5ndGggYXMgd2VsbCwKICAgIHRoZSBhcHBhcmVudCBsZW5ndGggaXMgb25lIGdyZWF0ZXIgdGhhbiBpdCByZWFsbHkgaXMpCiAgIAoyMDAyLTAyLTI2IDE0OjE4ICBuYmEKCiAgICogc25tcGxpYi86IHBhcnNlLmMsIHBhcnNlLmg6CgogICBTYXZlIEZpbGUvbGluZSBmb3IgbWVzc2FnZXMgYWJvdXQgdW5saW5rZWQgT0lEcwogICAKMjAwMi0wMi0yNSAxNTo0NiAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoOgoKICAgTWFrZSBzdXJlIHRoYXQgd2UgZmV0Y2ggSUFOQWlmVHlwZS1NSUIgZnJvbSB0aGUgbWFpbnRhaW5lZCBsb2NhdGlvbi4KICAgCjIwMDItMDItMjUgMTU6NDUgIG5iYQoKICAgKiBtaWJzL0RJU01BTi1TQ0hFRFVMRS1NSUIudHh0OgoKICAgVXBkYXRlIGZvciBSRkMgMzIzMQogICAKMjAwMi0wMi0yNSAwODo1OSAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIE5ldyBSRkMncyBpc3N1ZWQgd2l0aCBtaWJzOgogICAzMjAxICAgQ0lSQ1VJVC1JRi1NSUIKICAgMzIwMiAgIEZSU0xELU1JQgogICAzMjMxICAgRElTTUFOLVNDSEVEVUxFLU1JQgogICAKMjAwMi0wMi0yNSAwODo1NyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jOgoKICAgRnJlZUJTRDQgaGFzIG5ldyBkaXNrIG5hbWVzCiAgIAoyMDAyLTAyLTI1IDA4OjU2ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgUHJvcGVybHkgYnJhY2tldCBydW5fbHBzdGF0IHByb3RvdHlwZQogICAKMjAwMi0wMi0yNSAwMjo0OCAgamJwbgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICAgIC0gb25seSBjb3B5IHRoZSBmaXJzdCBERVNDUklQVElPTiBjbGF1c2Ugb2YgTU9EVUxFLUNPTVBMSUFOQ0UKICAgICAgIHN0YXRlbWVudHMgdG8gYXZvaWQgYSBtZW1vcnkgbGVhayAoc2VlIGJ1ZyAjNTIyMzYzKS4KICAgCjIwMDItMDItMjUgMDE6MjEgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBTcGVjaWZ5IHRoZSBjb3JyZWN0IGRlYnVnIHRva2VuIGZvciBkaXNwbGF5aW5nIHRoZSBsaXN0IG9mIG1vZHVsZXMKICAgKHNwb3R0ZWQgYnkgQnJpYW4gU2hhdmVyKQogICAKMjAwMi0wMi0yMiAwOToyNyAgZHRzMTIKCiAgICogc25tcGxpYi86IE1TRzAwMDAxLmJpbiwgd2luc2VydmljZS5tYyAsCiAgIE1TRzAwMDAxLmJpbiAoMS4xKSwgd2luc2VydmljZS5tYyAoMS4xKToKCiAgIEFkZCBtaXNzaW5nIGZpbGVzIGZvciBXaW5kb3dzIHNlcnZpY2Ugb3BlcmF0aW9uLgogICAKMjAwMi0wMi0yMiAwODo0MiAgZHRzMTIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIEp1c3QgY2xvc2UgdGhlIG1haW4gc2Vzc2lvbiB3aGVuIHNodXR0aW5nIGRvd24gdW5kZXIgV2luZG93cywKICAgbm90IGV2ZXJ5dGhpbmcgKHNvIHRoYXQgaXQgY2FuIHN0aWxsIGdlbmVyYXRlIHRoZSBzaHV0ZG93biB0cmFwKS4KICAgCjIwMDItMDItMjIgMDE6NDkgIGpicG4KCiAgICogRkFRLCBSRUFETUUud2luMzI6CgogICAgIC0gdXBkYXRlIGNvbW1lbnRzIG9uIFdpbjMyIHBvcnQgaW4gRkFRCiAgIAogICAgIC0gZGlzY3VzcyB3aGF0IElQSExQQVBJLntMSUIsRExMfSBpcyBhbmQgd2hlcmUgaXQgY2FuIGJlIG9idGFpbmVkCiAgICAgICBmcm9tIGluIFJFQURNRS53aW4zMgogICAKMjAwMi0wMi0yMSAwNzowMiAgZHRzMTIKCiAgICogd2luMzIvc25tcGQvc25tcGQuZHNwOgoKICAgRml4IGJvZ3VzIHN0cnVjdHVyZSBjb21tZW50cyBpbiB0aGUgc25tcGQgcHJvamVjdCBmaWxlLgogICAKMjAwMi0wMi0yMSAwMzoxMyAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYzoKCiAgICAgLSBlbWl0IGVycm9yIG9uIG92ZXItbGVuZ3RoIHBhc3N3b3JkIGluc3RlYWQgb2Ygd3JpdGluZyBvZmYgZW5kIG9mCiAgICAgICBidWZmZXIgKGJ1ZyAjNTIwNjQ5LCBub3RlZCBieSBKb2huIFNlbGxlbnMpLgogICAKMjAwMi0wMi0yMCAwOToyNyAgamJwbgoKICAgKiBhcHBzL3NubXB0cmFuc2xhdGUuYywgYXBwcy9zbm1wdHJhcGQuYywKICAgc25tcGxpYi9zbm1wX3BhcnNlX2FyZ3MuYywgc25tcGxpYi9zeXN0ZW0uYywgc25tcGxpYi9zeXN0ZW0uaDoKCiAgICAgLSBjaGFuZ2VzIHRvIGF2b2lkIG5hbWVzcGFjZSBjbGFzaCBwcm9ibGVtcyB3aXRoIHNldGVudigpIHdoaWNoIGFyZQogICAgICAgY2F1c2VkIGJ5IGxpYndyYXAgc3VwcGx5aW5nIGEgZnVuY3Rpb24gb2YgdGhhdCBuYW1lIGFzIHdlbGwgYXMgdXMuCiAgIAogICAgIC0gYWxsIGNhbGxzIGluIHRoZSBjb2RlIHRvIHNldGVudigpIGFyZSByZXBsYWNlZCB3aXRoIGEgY2FsbCB0bwogICAgICAgc25tcF9zZXRlbnYoKS4KICAgCiAgICAgLSBzbm1wX3NldGVudigpIGNhbGxzIHNldGVudigpIGlmIHN1Y2ggYSBmdW5jdGlvbiBleGlzdHMsIG90aGVyd2lzZQogICAgICAgaXQgc2ltdWxhdGVzIHRoZSBlZmZlY3QgYnkgY2FsbGluZyBwdXRlbnYoKS4KICAgCjIwMDItMDItMjAgMDU6NDMgIGpicG4KCiAgICogTkVXUzoKCiAgICAgLSBtZW50aW9uIHRjcF93cmFwcGVycyBzdXBwb3J0IGZvciBzbm1wdHJhcGQKICAgCjIwMDItMDItMjAgMDU6NDEgIGpicG4KCiAgICogYXBwcy86IE1ha2VmaWxlLmluLCBzbm1wdHJhcGQuYzoKCiAgICAgLSBhZGQgbGlid3JhcCBzdXBwb3J0IGZvciBzbm1wdHJhcGQKICAgCjIwMDItMDItMjAgMDU6MjAgIGpicG4KCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICAgIC0gZXhpdCB3aXRoIGFuIGVycm9yIGlmIC0td2l0aC1saWJ3cmFwIGlzIGdpdmVuIGFuZCB3ZSBjYW4ndCBmaW5kIGl0CiAgIAoyMDAyLTAyLTIwIDAzOjAwICBqYnBuCgogICAqIGFwcHMvc25tcGRlbHRhLmM6CgogICAgIC0gaW5pdGlhbGlzZSBzb21lIGJ1ZmZlcnMsIHRvIGF2b2lkIGdhcmJhZ2UgcHJpbnRpbmcgcHJvYmxlbXMsIGFzCiAgICAgICBub3RlZCBieSBBbm9ueW1vdXMgaW4gYnVnICM1MjAyMjAuCiAgIAoyMDAyLTAyLTE5IDA2OjQ3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnkuYzoKCiAgIFBhdGNoIGZyb20gSmVyb2VuIFJ1aWdyb2sgdG8gbWVyZ2UgYSBmZXcgaWZkZWZzCiAgIAoyMDAyLTAyLTE5IDAxOjUxICBqYnBuCgogICAqIGFnZW50L2F1dG9fbmxpc3QuaDoKCiAgICAgLSBhZGQgZm9yd2FyZCBkZWNsYXJhdGlvbiBvZiBzdHJ1Y3Qgbmxpc3QgdG8gYXZvaWQgY29tcGlsZXIKICAgICAgIGNvbXBsYWludHMuICBUaGFua3MgdG8gQW5keSBIb29kLgogICAKMjAwMi0wMi0xOCAwODoxNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5LmM6CgogICBwYXRjaCBmcm9tIEplcm9lbiBSdWlncm9rIGZvciBtaW5vciBpZmRlZiBjbGVhbiB1cHMKICAgCjIwMDItMDItMTggMDI6MzYgIGpicG4KCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICAgIC0gdXNlIGNhbGxvYyBpbnN0ZWFkIG9mIG1hbGxvYyB0byBtYWtlIHN1cmUgYnVmZmVyIGlzIGluaXRpYWxseQogICAgICAgemVyby10ZXJtaW5hdGVkIChpbiBjYXNlIG9mIDAgdmFyYmluZHMpLiAgQnVnICM1MTg3MDAsIG5vdGVkIGJ5CiAgICAgICBBbmRyZWFzIEhhcnRtYW5uLgogICAKMjAwMi0wMi0xOCAwMjoyOSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CgogICBSZW1vdmUgYSBjb3VwbGUgb2YgdW5oZWxwZnVsIE9TRiBkZWZpbml0aW9ucyAodGhhbmtzIHRvIEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMi0xOCAwMjowOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC86IG5vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgdGFyZ2V0L3NubXBUYXJnZXRBZGRyRW50cnkuYzoKCiAgICAgLSByZW1vdmUgdHJvdWJsZXNvbWUgaW5saW5lIHF1YWxpZmllcnMuICBUaGFua3MgdG8gQW5keSBIb29kIGZvcgogICAgICAgbm90aW5nIHRoYXQgdGhlc2UgY2F1c2UgcHJvYmxlbXMgb24gQUlYLgogICAKMjAwMi0wMi0xOCAwMjowNSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgICAtIHJlbW92ZSAvLy1zdHlsZSBjb21tZW50cy4gIFRoYW5rcyB0byBBbmR5IEhvb2QgZm9yIHBvaW50aW5nIHRoaXMKICAgb3V0LgogICAKMjAwMi0wMi0xOCAwMDoxMyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBkb24ndCBidWlsZCBvaWQncyB3aXRoID4xMjggbGVuZ3RoIHN1Ymlkcy4gIChzZWUgYnVnICM1MTg4NTUpCiAgIAoyMDAyLTAyLTE1IDIyOjA3ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmgsIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjQucHJlMSApCiAgIAoyMDAyLTAyLTE1IDE3OjAyICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jOgoKICAgZml4IGJ1ZyM1MDgxMjYgd2hpY2ggYWN0dWFsbHkgbGVkIG1lIHRvIGFub3RoZXIuCiAgICAgLSBvaWQgcGFyc2luZyBhbmQgc2VhcmNoaW5nIGluIGdldG5leHRzIGNvdWxkIHNvbWV0aW1lcyBsb29wLgogICAKMjAwMi0wMi0xNSAxNzowMCAgaGFyZGFrZXIKCiAgICogTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHN1cHBvcnQgLS1kaXNhYmxlLXNoYXJlZC12ZXJzaW9uIGNvbmNlcHQgZnJvbSBQYXVsIFJhc211c3Nlbi4KICAgCjIwMDItMDItMTUgMTY6NDEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYzoKCiAgIGR5bml4IGJyb2tlIGxpbnV4LiAgQmFkIGR5bml4LiAgTm8gYm9uZS4gIEdvIHRvIHlvdXIgcm9vbS4KICAgCjIwMDItMDItMTUgMTY6MjggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIGFkZCBiYWNrIGluIG5ldGluZXQvaW4uaCBhbmQgc3lzL3RpbWUuaCAoaW4gcHJvcGVyIHByb3RlY3RlZCBmb3JtKQogICB3aGljaCB3YXMgZGVsZXRlZCBmcm9tIDQuMi4zIGZvciBzb21lIHJlYXNvbiB3ZSBuZXZlciBmaWd1cmVkIG91dC4KICAgCjIwMDItMDItMTUgMTY6MjEgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgRkFRLCBORVdTLCBSRUFETUU6CgogICB1cGRhdGVzIGZvciB3aGF0IHdpbGwgYmUgNC4yLjQKICAgCjIwMDItMDItMTUgMTU6NTIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBjaGVjayBlbmQgb2YgbWlidmlldyBjb25kaXRpb25zCiAgIAoyMDAyLTAyLTE1IDA4OjAxICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIFBvcHVsYXRlIGFuIGVtcHR5IGNhc2Ugc3RhdGVtZW50IChzcG90dGVkIGJ5IEplcm9lbiBSdWlncm9rKQogICAKMjAwMi0wMi0xNSAwNzoxMSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHJlbW92ZSB1bm5lZWRlZCAtQ04gYW5kIC1DTyBleGFtcGxlIG9wdGlvbnMKICAgCjIwMDItMDItMTUgMDY6NDcgIGR0czEyCgogICAqIGFnZW50L3NubXBkLmMsIHNubXBsaWIvd2luc2VydmljZS5jLCBzbm1wbGliL3dpbnNlcnZpY2UuaCwKICAgc25tcGxpYi93aW5zZXJ2aWNlLnJjLCB3aW4zMi9zbm1wZC9zbm1wZC5kc3A6CgogICBTdXBwb3J0IGZvciBydW5uaW5nIGFzIGEgV2luZG93cyBzZXJ2aWNlLgogICAoU3VwcGxpZWQgYnkgUmFqdSBLcmlzaG5hcHBhICYgTGF0aGEgUHJhYmh1KQogICAKMjAwMi0wMi0xNCAxMToxMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5jOgoKICAgTWFrZSBidWZmZXIgcG9pbnRlciBzdGF0aWMgc28gaXQgZG9lc24ndCBsZWFrCiAgIAoyMDAyLTAyLTE0IDExOjEwICBuYmEKCiAgICogc25tcGxpYi9zY2FwaS5oOgoKICAgRml4IGJhZCBwYXJhbnRoZXNpcwogICAKMjAwMi0wMi0xNCAwNzo0MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIGZpeCBlbWFpbCBhZGRyZXNzIGJ1ZyAjNTE3MTc4CiAgIAoyMDAyLTAyLTE0IDAxOjQ3ICBkdHMxMgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBDaGVjayBmb3IgcnVubmluZyBvZmYgdGhlIGVuZCBvZiBJL0YgdGFibGUgKHBhdGNoIGZyb20gUmVkSGF0KQogICAKMjAwMi0wMi0xNCAwMTo0NCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYzoKCiAgIEluY2x1ZGUgUmVkSGF0IHBhdGNoZXMgZm9yIGJldHRlciBSUE0gc3VwcG9ydAogICAKMjAwMi0wMi0xNCAwMTozOCAgZHRzMTIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRvcHQgUmVkSGF0J3MgY29uZmlndXJlIHRlc3RpbmcgZm9yIHJwbSBsaWJyYXJ5IHJlcXVpcmVtZW50cwogICAKMjAwMi0wMi0xMyAxNjo0MSAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBlbmFibGUgc2hhcmVkIGJ5IGRlZmF1bHQgZXhjZXB0IGZvciBkZXZlbG9wZXJzCiAgIAoyMDAyLTAyLTEzIDEzOjUxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jOgoKICAgcmVtb3ZlIGlubGluZSBmdW5jdGlvbiBmcm9tIGJlaW5nIGRlY2xhcmVkIGluIGFub3RoZXIgZnVuY3Rpb24uCiAgIAoyMDAyLTAyLTEzIDEzOjI3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICByZW1vdmUgaW5saW5lIGZ1bmN0aW9uIGZyb20gYmVpbmcgZGVjbGFyZWQgaW4gYW5vdGhlciBmdW5jdGlvbi4KICAgCjIwMDItMDItMTMgMDg6MTggIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgZml4IHNldHMgb2YgdW5zaWduZWQzMidzLgogICAKMjAwMi0wMi0xMyAwNzo1OSAgZHRzMTIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIERTX0xJQl9QUklOVF9TVUZGSVhfT05MWSBpcyBhbiBpbnRlZ2VyIG9wdGlvbiwgbm90IGEgYm9vbGVhbiBmbGFnLgogICAoQXR0ZW1wdGluZyB0byBzZXQgdGhpcyB2aWEgdGhlIFNVRkZJWCBlbnZpcm9ubWVudGFsIHZhcmlhYmxlIHdpbGwKICAgdHVybiBvbiBwYWNrZXQgZHVtcGluZyBpbnN0ZWFkISkKICAgCjIwMDItMDItMTMgMDQ6MTUgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgICAtIGZpeCBidWcgIzUxNjkwNCAoc25tcGQgZGllcyBpZiBubyBwcmludGNhcCB3aXRoIGNnZXRlbnQpLCBub3RlZCBieQogICAgICAgQW5vbnltb3VzIC0tIGNoZWNrIHJldHVybiB2YWx1ZSBvZiBjZ2V0bmV4dCgpIHByb3Blcmx5IGluCiAgICAgICBJbml0X0hSX1ByaW50KCkuCiAgIAoyMDAyLTAyLTEyIDA3OjExICBqYnBuCgogICAqIGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlOgoKICAgICAtIGFtZW5kIGZpeCB0byBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgdG8KICAgICAgIGFjdHVhbGx5IGFkZCAtbG5zbCB0byBsaW5rIHBhcmFtZXRlcnMhCiAgIAoyMDAyLTAyLTEyIDA1OjI5ICBqYnBuCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgICAtIGZpeCBidWcgIzUxNjM4OSAodWNkLXNubXAgNC4yLjMgbGlid3JhcCBzdXBwb3J0IGJyb2tlbikgLS0gVVNFX0xJQldSQVAKICAgICAgIHdhcyBub3QgYmVpbmcgI2RlZmluZWQgaW4gdGhlIGNhc2Ugd2hlcmUgLWxuc2wgaXMgbmVlZGVkIGluIGFkZGl0aW9uCiAgICAgICB0byAtbHdyYXAuCiAgIAoyMDAyLTAyLTEyIDAxOjMwICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgIEltcGxlbWVudCB0aGUgQmFkQ29tbXVuaXR5e05hbWVzLFVzZXN9IGNvdW50ZXJzLgogICAKMjAwMi0wMi0xMSAxMDowNyAgamJwbgoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgICAtIGZpeCBidWdzICM0ODkzMzYgYW5kICM1MDgxNDYgKGR1cGxpY2F0ZSBjb2x1bW5zIGFuZCBjb2x1bW5zIGluCiAgICAgICB3cm9uZyBvcmRlcikuCiAgIAoyMDAyLTAyLTExIDA4OjIzICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jOgoKICAgVXNlIHRoZSAnZHNfc2V0X3h4eCcgbGlicmFyeSByb3V0aW5lcywgcmF0aGVyIHRoYW4gdGhlIG9sZCAnc25tcF9zZXRfeHh4JyBjYWxscwogICAKMjAwMi0wMi0xMSAwNTozMCAgamJwbgoKICAgKiBGQVE6CgogICAgIC0gbWVudGlvbiBIUFVYLTExIGFuZCBEeW5peC9QVFggNC40IHN1cHBvcnQsIGFuZCBzb21lIHNwZWxsaW5nIGZpeGVzCiAgIAoyMDAyLTAyLTA4IDA2OjEyICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmg6CgogICBFbnN1cmUgdGhlIG51bGwgdmVyc2lvbnMgb2YgdGhlIHR3byBSRUdJU1RFUiBtYWNyb3Mgc3dhbGxvdyB0aGVpciBwYXJhbWV0ZXJzLgogICAKMjAwMi0wMi0wOCAwNDo0MiAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgSW1wbGVtZW50IHRoZSBtaXNzaW5nIG91dGdvaW5nIGVycm9yIHN0YXRpc3RpY3MgY291bnRlcnMKICAgKHBhdGNoICM1MTAxOTQgZnJvbSBMYXRoYSBQcmFiaHUpCiAgIAoyMDAyLTAyLTA4IDAyOjU0ICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBQcm9jZXNzIHRoZSBmdWxsIGxpc3Qgb2JqZWN0cyBpbiBlYWNoIHBhc3Mgb2YgYSBTRVQsIGV2ZW4gaWYgb25lIGVudHJ5IGZhaWxzCiAgIG1pZHdheSB0aHJvdWdoLiAgVGhpcyBpcyBsZXNzIGVmZmljaWVudCB0aGFuIGZhaWxpbmcgaW1tZWRpYXRlbHksIGJ1dCBicmluZ3MKICAgdGhlIGJlaGF2aW91ciBpbiBsaW5lIHdpdGggdGhlIGRvY3VtZW50YXRpb24sIGFuZCBlbnN1cmVzIHRoYXQgYWxsIHJlc291cmNlcwogICB3aWxsIGJlIHJlbGVhc2VkLgogICAKMjAwMi0wMi0wOCAwMjo1MCAgZHRzMTIKCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgUmV0dXJuIHRoZSBjb3JyZWN0IGVycm9yIGluZGV4IGZvciBwcm9ibGVtcyBpbiBTRVQgaGFuZGxpbmcuCiAgIChwYXRjaCAjNDY3MTU1LCBmcm9tIExhdGhhIFByYWJodSkKICAgCjIwMDItMDItMDggMDI6NDIgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwLzogaG9zdC9ocl9zdG9yYWdlLmMsIHVjZC1zbm1wL21lbW9yeS5jOgoKICAgQWRkZWQgc3VwcG9ydCBmb3IgbWVtb3J5IGFuZCBzd2FwIGVudHJpZXMgaW4gaHJTdG9yYWdlVGFibGUgZm9yIFNvbGFyaXMKICAgKGZyb20gcGF0Y2ggIzUwNTQ5OCAtIHRoYW5rcyB0byBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIpCiAgIAoyMDAyLTAyLTA4IDAyOjA5ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgUmVnaXN0ZXIgSVAgUm91dGluZyB0YWJsZSBvYmplY3RzIGFzIHdyaXRhYmxlLgogICAKMjAwMi0wMi0wNyAwNzozOSAgZHRzMTIKCiAgICogUkVBRE1FLmhwdXgxMSwgYWNjb25maWcuaCwgY29uZmlnLmguaW4sCiAgIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfbmV0d29yay5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLCBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5oLCBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pcEFkZHIuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmMsIGFnZW50L21pYmdyb3VwL21pYklJL3RjcFRhYmxlLmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jLCBhZ2VudC9taWJncm91cC9taWJJSS91ZHBUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS92YXJfcm91dGUuYywgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeS5jLCBtaWJzL1VDRC1TTk1QLU1JQi50eHQsIHMvaHB1eC5oOgoKICAgU3VwcG9ydCBmb3IgSFAtVVggMTEsIGNvdXJ0ZXN5IG9mIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlci4KICAgCjIwMDItMDItMDUgMTE6NDUgIGhhcmRha2VyCgogICAqIENPUFlJTkc6CgogICBjb3B5cmlnaHQgeWVhciB1cGRhdGUgZm9yIE5BSSBhbmQgQ2FtYnJpZGdlCiAgIAoyMDAyLTAyLTA0IDAzOjE3ICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gY29ycmVjdCBwcm9jZXNzaW5nIGZvciB0aW1ldGlja3Mgd2hlbiBEU19MSUJfTlVNRVJJQ19USU1FVElDS1MgaXMKICAgICAgIHNldCAoY29ycmVjdHMgYnVnICM1MTE3OTMsIHJlcG9ydGVkIGJ5IEFub255bW91cykuCiAgIAoyMDAyLTAxLTI4IDEyOjUwICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBtaXJyb3Igc2VjdGlvbiB1cGRhdGUKICAgCjIwMDItMDEtMjggMTI6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuaDoKCiAgIHdhcm5pbmcgYWRkZWQgYWJvdXQgc2VuZF90cmFwX3ZhcnMgYW5kIGVudGVycHJpc2Ugb2lkIHVzZWQuCiAgIAoyMDAyLTAxLTI1IDA2OjI3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jOgoKICAgICAtIGZpeCBtaW5vciBwcm9ibGVtIHdpdGggc3RvcmFnZVR5cGUgKGFsd2F5cyBva2F5IHRvIHNldCB0byBjdXJyZW50CiAgICAgICB2YWx1ZSkuCiAgIAogICAgIC0gZG9uJ3QgcmVzZXQgc29tZSB2YXJpYWJsZXMgdG8gb2xkIHZhbHVlIHVubGVzcyB3ZSBhY3R1YWxseSBzZXQKICAgICAgIHRoZW0gaW4gdGhlIGZpcnN0IHBsYWNlIQogICAKMjAwMi0wMS0yNCAwNjowNiAgamJwbgoKICAgKiBzbm1wbGliL3JlYWRfY29uZmlnLmM6CgogICAgIC0gYXZvaWQgZm9ybWF0IHN0cmluZyBuYXN0aWVzIGluIHJlYWRfY29uZmlnX3N0b3JlKCkgd2hlbiB3cml0aW5nIHRvCiAgICAgICBmaWxlcyAoZXhwb3NlZCBlLmcuIGJ5IHRoZSBwZXJzaXN0ZW50IHN5c05hbWUuMCBzdHVmZiAtLSB0cnkKICAgICAgIHNubXBzZXQgaG9zdCBzeXNOYW1lLjAgcyAiJTA4eCIgLS0gb29wcykKICAgCjIwMDItMDEtMjQgMDM6MTQgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl91dGlscy5jLAogICBzL2FpeC5oOgoKICAgQUlYIHN1cHBvcnQgZm9yIEhvc3QgUmVzb3VyY2VzIG1vZHVsZS4KICAgICAgIChUaGFua3MgdG8gQW5keSBIb29kKQogICAKMjAwMi0wMS0yMyAwODozOSAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYzoKCiAgICAgLSBzZXQgdmlld1R5cGUgdG8gdGhlIERFRlZBTCBpbmNsdWRlZCgxKSBmb3IgbmV3IHJvd3MKICAgCjIwMDItMDEtMjIgMDY6MzYgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmM6CgogICAgIC0gZml4IGJ1ZyBqdXN0IGludHJvZHVjZWQgd2hlcmUgc2V0dGluZyBhbiBleGlzdGluZyByb3cncyBzdGF0dXMgdG8KICAgICAgIGNyZWF0ZUFuZEdvKDQpIG9yIGNyZWF0ZUFuZFdhaXQoNSkgd291bGQgZGVsZXRlIHRoZSByb3cuCiAgIAoyMDAyLTAxLTIyIDA0OjIyICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwLzogbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5jLAogICB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLCB0YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5oLAogICB0YXJnZXQvc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHRhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuaDoKCiAgICAgLSBiYWNrcG9ydCBvZiByZWNlbnQgaW1wcm92ZW1lbnRzIHRvIHNubXBUYXJnZXRQYXJhbXNUYWJsZSwKICAgICAgIHNubXBUYXJnZXRBZGRyVGFibGUgYW5kIHNubXBOb3RpZnlUYWJsZS4KICAgCjIwMDItMDEtMjEgMDQ6MjIgIGpicG4KCiAgICogYWdlbnQvc25tcF92YXJzLmM6CgogICAgIC0gc2V0IG5vU3VjaE9iamVjdCB0byBGQUxTRSBpZiB3ZSBoYXZlIGEgdmFsaWQgd3JpdGVfbWV0aG9kICh0aGlzCiAgICAgICBjYXVzZXMgdGhlIGNvcnJlY3QgZXhjZXB0aW9uIG5vU3VjaEluc3RhbmNlIHRvIGJlIGdlbmVyYXRlZCBpZiB0aGUKICAgICAgIHJlcXVlc3RlZCBvYmplY3QgZG9lc24ndCBleGlzdCkuCiAgIAoyMDAyLTAxLTIxIDA0OjIwICBqYnBuCgogICAqIGFnZW50L3NubXBfYWdlbnQuYzoKCiAgICAgLSBzbGlnaHQgY2hhbmdlIHRvIGdlbmVyYXRpb24gb2YgZXJyb3ItaW5kZXg6CiAgIAogICAgICAgLSBleHBsaWNpdGx5IHRlc3QgZm9yIGVycm9yLXN0YXR1cyA9PSBub0Vycm9yLCBhbmQgc2V0IGVycm9yLWluZGV4CiAgICAgICAgIHRvIHplcm8gaW4gdGhpcyBjYXNlOwogICAKICAgICAgIC0gb3RoZXJ3aXNlIHVzZSB0aGUgY2FjaGVkIHZhbHVlOwogICAKICAgICAgIC0gZG9uJ3QgemVybyB0aGUgY2FjaGVkIHZhbHVlIGluIGhhbmRsZV92YXJfbGlzdCBpZiBoYW5kbGVfb25lX3ZhcgogICAgICAgICByZXR1cm5zIG5vRXJyb3IKICAgCiAgICAgLSB0aGlzIGNvcGVzIHByb3Blcmx5IHdpdGggU0VUIHJlcXVlc3RzLCB3aGVyZSBhIGZhaWxpbmcgU0VUIHdpbGwgaGF2ZQogICAgICAgYSBGUkVFIHBoYXNlIHdoaWNoIHdpbGwgdHlwaWNhbGx5IHJldHVybiBub0Vycm9yLiAgUHJldmlvdXNseSB0aGlzCiAgICAgICB3b3VsZCBlcnJvbmVvdXNseSBjYXVzZSB0aGUgZXJyb3ItaW5kZXggdG8gYmUgc2V0IHRvIHplcm8uCiAgIAoyMDAyLTAxLTIxIDA0OjExICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmg6CgogICAgIC0gYmFja3BvcnQgb2YgcmVjZW50IHZhY21TZWN1cml0eVRvR3JvdXBUYWJsZSwgdmFjbUFjY2Vzc1RhYmxlIGFuZAogICAgICAgdmFjbVZpZXdUcmVlRmFtaWx5VGFibGUgY2hhbmdlcyAoY29ycmVjdGVkIHN0YXRlIG1hY2hpbmVzKS4KICAgICAgIEJlZm9yZTogcGFzc2VkIDIwLCAgZmFpbGVkIDgwLCB1bnRlc3RlZCAxMQogICAgICAgQWZ0ZXI6ICBwYXNzZWQgMTA3LCBmYWlsZWQgMSwgIHVudGVzdGVkIDMKICAgCiAgICAgICBUaGUgc3RpbGwtZXh0YW50IGZhaWx1cmVzIGFyZSBkdWUgdG8gdGhlIG5vbi1pbXBsZW1lbnRlZAogICAgICAgdmFjbUNvbnRleHRUYWJsZS4KICAgCjIwMDItMDEtMTUgMTI6NDQgIG5iYQoKICAgKiBhZ2VudC9zbm1wX3ZhcnMuYzoKCiAgIEZpeCBzdHVwaWQgbWlzc2luZyBzaXplb2Yob2lkKSBmYWN0b3IgaW4gbWVtY3B5CiAgIAoyMDAyLTAxLTE1IDEyOjQyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmM6CgogICBEb250IHVzZSBzdGF0aWMgYnVmZmVyIHdoZW4gcmVhZGluZyAvcHJvYy9zdGF0CiAgIAoyMDAyLTAxLTE1IDEyOjQxICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywgcy9zb2xhcmlzMi42LmgsIHMvc29sYXJpczIuNy5oLAogICBzL3NvbGFyaXMyLjguaDoKCiAgIEZpeCBock1heFByb2Nlc3NlcyBmb3IgU29sYXJpcwogICAKMjAwMi0wMS0xNSAxMjozOSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFNvbWUgYWRkaXRpb25hbCBkZWJ1ZyBzdGF0ZW1lbnRzCiAgIAoyMDAyLTAxLTA5IDA4OjI3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvOiBrZXJuZWxfc3Vub3M1LmMsIGtlcm5lbF9zdW5vczUuaDoKCiAgIEFkZCBmdW5jdGlvbiB0byBhY2NlcyByYXcga3N0YXQgZGF0YQogICAKMjAwMi0wMS0wOSAwODoyNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jOgoKICAgVXNlIHRoYXQgc3lzY29uZiByZXR1cm5zIGEgbG9uZywgdG8gc2F2ZSBsYXJnZSBwaHlzIG1lbQogICAKMjAwMi0wMS0wOSAwODoyNCAgbmJhCgogICAqIG1pYnMvSUFOQWlmVHlwZS1NSUIudHh0OgoKICAgVXBkYXRlIHRvIGN1cnJlbnQgSUFOQSB2ZXJzaW9uCiAgIAoyMDAyLTAxLTA5IDA4OjIzICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQ2FyZSBmb3IgTGludXggZHJpdmVycyB0aGF0IG1haW50YWluIG9jdGV0IGNvdXRlcnMgYXMgbG9nIGxvbmcgdmFsdWVzCiAgIAoyMDAyLTAxLTA5IDAyOjIwICBqYnBuCgogICAqIEZBUToKCiAgICAgLSBhZGQgT1MgWCB0byBsaXN0IG9mIHN1cHBvcnRlZCBPU2VzLCB0byBmaXggYnVnICM1MDExNzkgKCEpCiAgIAoyMDAyLTAxLTAzIDE0OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmM6CgogICBmaXggYnVnICM0OTg4MDkgKEkgdGhpbmspIGJ5IGNoZWNraW5nIHNldG1udGVudCByZXR1cm4gdmFsdWUuCiAgIAoyMDAyLTAxLTAzIDEzOjUyICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBuZXRzdGF0L2lmLmM6CgogICBjaGVjayBhZ2FpbnN0IGdyb3dpbmcgc2VydmVyIHJldHVybnMgYXMgcG9pbnRlZCBvdXQgYnkgYnVnICM0OTg5NTYKICAgCjIwMDEtMTItMTggMDg6NDkgIGpicG4KCiAgICogYWNjb25maWcuaCwgd2luMzIvY29uZmlnLmgsIHdpbjMyL2NvbmZpZy5oLmJvcmxhbmQ6CgogICAgIC0gYWRkIE9TVFlQRSBkZWZpbmUgZm9yIHdpbjMyCiAgIAoyMDAxLTEyLTE4IDA4OjQ0ICBqYnBuCgogICAqIG1pYnMvVUNELVNOTVAtTUlCLnR4dDoKCiAgICAgLSBhZGQgT0JKRUNUIElERU5USUZJRVIgZm9yIHdpbjMyIGFnZW50CiAgIAoyMDAxLTEyLTE4IDA2OjUwICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIExhdGhhIFByYWJodSB0byBwcm9kdWNlIG1vcmUgbWVhbmluZ2Z1bCBzeXNEZXNjci4wCiAgICAgICBzdHJpbmdzIGZvciBNaWNyb3NvZnQgcGxhdGZvcm1zLgogICAKMjAwMS0xMi0wNSAwNzo0OCAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBwYXRjaCBmcm9tIEphc29uIEdsb3Vkb24gdG8gZml4IGxlYWtpbmcgc2Vzc2lvbiBzdHJ1Y3R1cmVzIGZyb20gc25tcF90aW1lb3V0KCkuCiAgIAoyMDAxLTEyLTAzIDE0OjUyICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQ29tcGxldGUgdGhlIEJTRCBJUFNUQVRTIGNvbmZpZ3VyZSB0ZXN0cywgYXMgcG9pbnRlZCBvdXQgYnkgTWFyayBNb3JhZXMKICAgKGJ1ZyMgNDg3NzA4KQogICAKMjAwMS0xMS0yOSAxNjo1NCAgaGFyZGFrZXIKCiAgICogQ2hhbmdlTG9nOgoKICAgNC4yLjMgY2hhbmdlcwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMi4yIC0+IFY0LjIuMwoJCjIwMDEtMTEtMjkgMTQ6MjIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaCwgcGVybC9TTk1QL1NOTVAucG06CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMyApCiAgIAoyMDAxLTExLTI5IDEzOjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAva2VybmVsX3N1bm9zNS5jOgoKICAgU29sYXJpcyA4IHJlbmFtZWQgdGhlIGtzdGF0IGlmc3BlZWQgYXR0cmlidXRlIHRvIGlmU3BlZWQgYW5kIHNvbWV3aGVyZQogICBhbG9uZyB0aGUgbGluZSBjaGFuZ2VkIGl0cyB2YWx1ZSBmcm9tIE1icHMgdHAgYnBzCiAgIAoyMDAxLTExLTI4IDE0OjQzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgbWVudGlvbiBpbXByb3ZlZCBpcml4IHN1cHBvcnQuCiAgIAoyMDAxLTExLTI4IDE0OjMxICBoYXJkYWtlcgoKICAgKiBzL2lyaXguaDoKCiAgIGxhc3QgZml4ZXMgZm9yIGlyaXggSSB0aGluawogICAKMjAwMS0xMS0yOCAxNDozMCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgY3JlYXRlIGlzbGFuZHMgaW4gdGhlIHN0cmVhbQogICAKMjAwMS0xMS0yOCAxNDowOSAgaGFyZGFrZXIKCiAgICogcy9pcml4Lmg6CgogICBpcml4IGZpeGVzIGZvciBicm9rZW4gaXJpeCBoZWFkZXJzCiAgIAoyMDAxLTExLTI3IDE3OjA1ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC5wbToKCiAgIHZlcnNpb24gc3RhbXAgKDQuMi4zLnByZTEgKG9wcHMpKQogICAKMjAwMS0xMS0yNyAxNzowNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIGZpeCBmb3IgdmVyc2lvbiBzdGFtcGluZyB0aGUgcGVybCBtb2R1bGUuCiAgIAoyMDAxLTExLTI3IDE3OjAzICBoYXJkYWtlcgoKICAgKiBORVdTOgoKICAgdXBkYXRlIGZvciA0LjIuMwogICAKMjAwMS0xMS0yNyAxMTowOSAgaGFyZGFrZXIKCiAgICogd2luMzIvd2luMzIuZHN3OgoKICAgdXNlIGF0IG93biByaXNrIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBkZXBlbmRhbmNpZXMKICAgCjIwMDEtMTEtMjcgMDY6NTMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYzoKCiAgICAgLSB0cnkgaGFyZGVyIHRvIGdldCBoclN5c3RlbU1heFByb2Nlc3Nlcy4wIHJpZ2h0LCBkcmF3aW5nIG9uIHBhdGNoCiAgICAgICAjNDg1NzY1LCBzdWJtaXR0ZWQgYnkgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyLCBmb3IgTGludXgsIGFuZAogICAgICAgYWxzbyB1c2luZyBzeXNjdGwoKSBtb3JlIHdpZGVseS4KICAgCjIwMDEtMTEtMjcgMDY6NTEgIGpicG4KCiAgICogY29uZmlndXJlLmluLCBzL2xpbnV4Lmg6CgogICAgIC0gTG9vayBmb3IgPGxpbnV4L3Rhc2tzLmg+LCBpbiBvcmRlciB0byBnaXZlIGEgYmV0dGVyIHZhbHVlIGZvcgogICAgICAgaHJTeXN0ZW1NYXhQcm9jZXNzZXMuMC4gIEZyb20gcGF0Y2ggIzQ4NTc2NSwgc3VibWl0dGVkIGJ5CiAgICAgICBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCiAgIAoyMDAxLTExLTI3IDAzOjU2ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzoga2VybmVsX2xpbnV4LmMsIGtlcm5lbF9saW51eC5oLCB0Y3AuYzoKCiAgICAgLSBnaXZlIGNvcnJlY3QgdmFsdWVzIGZvciB0Y3BJbkVycnMuMCBhbmQgdGNwT3V0UnN0cy4wIHVuZGVyIExpbnV4CiAgICAgICBpZiB0aGUga2VybmVsIG1ha2VzIHRoZSBkYXRhIGF2YWlsYWJsZS4gIEZyb20gcGF0Y2ggIzQ4NTc2NSwKICAgICAgIHN1Ym1pdHRlZCBieSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIuCiAgIAoyMDAxLTExLTI2IDA5OjUxICBqYnBuCgogICAqIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldDoKCiAgICAgLSBsb25nZXIgdGltZW91dCBmb3IgaW5pdGlhbCBHRVQgKGZpeCBzcHVyaW91cyB0ZXN0IGZhaWx1cmVzKQogICAKMjAwMS0xMS0yMSAxMDo0OSAgaGFyZGFrZXIKCiAgICogRkFROgoKICAgaGVscCB1cGRhdGUgdG8gcmVtb3ZlIHRoZSBzdXBwb3J0IGRhdGFiYXNlCiAgIAoyMDAxLTExLTIxIDA0OjUzICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgICAgLSBmaXggY29tcGlsYXRpb24gZm9yIFVsdHJpeCA0LjUgKGJ1ZyAjIDQxNTE5NykgLS0gbWFrZSBzdXJlCiAgICAgICB2ZnMuZl9ic2l6ZSBleGlzdHMgaW4gdmFyX2V4dGVuc2libGVfZGlzaygpLCBhbmQgZGVmYXVsdCBpdCB0bwogICAgICAgMTAyNC4KICAgCjIwMDEtMTEtMjAgMDI6MjcgIGpicG4KCiAgICogc25tcGxpYi9zbm1wX2FwaS5oOgoKICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgZGVmaW5pdGlvbiBvZiBTTk1QX01BWF9TRUNfTkFNRV9TSVpFLCBub3RlZCBieQogICAgICAgS2FybCBNLiBIZWdibG9vbS4KICAgCjIwMDEtMTEtMTkgMDU6NDggIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnRhdGlvbiBvZiBpZ25vcmVkaXNrIGRpcmVjdGl2ZS4KICAgCjIwMDEtMTEtMTkgMDU6NDggIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC86IGhyX2Rpc2suYywgaHJfZGlzay5oLCBocl9wYXJ0aXRpb24uYywKICAgaHJfcGFydGl0aW9uLmg6CgogICAgIC0gcGF0Y2ggZnJvbSBKb2hhbm5lcyBTY2htaWR0LUZpc2NoZXIgdG8gYWRkIGRpcmVjdGl2ZSAiaWdub3JlZGlzayIgdG8KICAgICAgIHNraXAgY2VydGFpbiBkZXZpY2VzIChhbmQgaGVuY2UgYXZvaWQgdGhlIGBzbm1wd2FsayB0aW1lcyBvdXQnIHR5cGUKICAgICAgIHByb2JsZW1zIGZyZXF1ZW50bHkgcmVwb3J0ZWQpLiAgQWxzbyBleHRlbmRzIHNlYXJjaCByYW5nZXMgdG8gY29wZSB3aXRoCiAgICAgICBsYXJnZXIgbnVtYmVycyBvZiBkaXNrcyBldGMuCiAgIAoyMDAxLTExLTE2IDA1OjMxICBqYnBuCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgICAgLSBhZGQgc3VwcG9ydCBmb3IgVW5zaWduZWQzMi9HYXVnZTMyIHR5cGVzCiAgIAoyMDAxLTExLTE2IDAzOjIxICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIG1vcmUgY29uc3QtbmVzcyBpbiBxc29ydF9jb21wYXJlID0+IGZld2VyIHdhcm5pbmdzCiAgIAoyMDAxLTExLTE2IDAyOjU0ICBqYnBuCgogICAqIGFwcHMvc25tcG5ldHN0YXQvaWYuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIGFkZCBwcm90b3R5cGVzIGZvciB0aW1lclNldCgpIGFuZAogICAgICAgdGltZXJQYXVzZSgpLgogICAKMjAwMS0xMS0xNiAwMjo1MiAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gI2luY2x1ZGUgPGdycC5oPiBpZiB3ZSBoYXZlIGl0CiAgIAoyMDAxLTExLTE2IDAyOjQ3ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsIHRvIHJldHVybiBhIHZhbHVlIGZyb20KICAgICAgIG5vdGlmeVRhYmxlX3VucmVnaXN0ZXJfbm90aWZpY2F0aW9ucygpIHRvIGF2b2lkIHdhcm5pbmdzCiAgIAoyMDAxLTExLTE2IDAyOjQ1ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgICAtIHBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gbWFrZSBzaWduYXR1cmUgb2YgcXNvcnRfY29tcGFyZQogICAgICAgZnVuY3Rpb24gbWF0Y2ggdGhhdCBleHBlY3RlZCBieSBxc29ydCgzKSAtLSBhZGRzIGNvbnN0IHRvIGFyZ3MuCiAgIAoyMDAxLTExLTE2IDAyOjQwICBqYnBuCgogICAqIHNubXBsaWIvbWliLmM6CgogICAgIC0gcGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCB0byBtYWtlIGRlZmluaXRpb24gb2YgcHJpbnRfdHJlZV9ub2RlCiAgICAgICBzdGF0aWMgdG8gbWF0Y2ggZm9yd2FyZCBkZWNsYXJhdGlvbi4KICAgCjIwMDEtMTEtMTUgMTA6MDMgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmM6CgogICAgIC0gc3RyaWN0ZXIgdGVzdCBmb3IgbnVsbCBPSURzCiAgIAoyMDAxLTExLTE1IDA5OjI0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgICAgLSBmaXggYmFkLWxvb2tpbmcgZXhwcmVzc2lvbiB3aGljaCB3YXMgY2F1c2luZyBwcm9ibGVtcyBkZXNjcmliZWQgaW4KICAgICAgIGVtYWlsIHRpdGxlZCAiRGVmZWN0IHJlcG9ydCBvbiBVQ0QgU05NUCB0b29sa2l0IChjcmFzaCBpbgogICAgICAga2VybmVsX3N1bm9zNS5jKSIgc2VudCB0byBuZXQtc25tcC11c2VycyBvbiAyMDAxLTA3LTE3LgogICAKMjAwMS0xMS0xNSAwODozMyAgamJwbgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgICAgLSBkb2N1bWVudCByZWFkLW9ubHkgbmF0dXJlIG9mIHNubXBFbmFibGVBdXRoZW5UcmFwcy4wIGlmIHZhbHVlIGlzCiAgICAgICBjb25maWd1cmVkIHZpYSB0aGUgYXV0aHRyYXBlbmFibGUgdG9rZW4KICAgCjIwMDEtMTEtMTUgMDg6MjggIGpicG4KCiAgICogYWdlbnQvOiBhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF90cmFwLmMsCiAgIG1pYmdyb3VwL21pYklJL3NubXBfbWliLmM6CgogICAgIC0gbWFrZSB2YWx1ZSBvZiBzbm1wRW5hYmxlQXV0aGVuVHJhcHMuMCBwZXJzaXN0ZW50LiAgU2V0dGluZyB2aWEKICAgICAgIGEgcmVhZC1vbmx5IGNvbmZpZ3VyYXRpb24gZmlsZSBhbHNvIG1ha2VzIG9iamVjdCBub3RXcml0YWJsZSAoYXMKICAgICAgIHN5c0NvbnRhY3QuMCBldCBhbC4pLgogICAKMjAwMS0xMS0xNSAwNToxNiAgamJwbgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDExMWFnZW50eHNldCwgVDEyMXByb3h5c2V0OgoKICAgICAtIHVzZSBwc3lzY29udGFjdCBub3Qgc3lzY29udGFjdCB0byBzZXQgaW5pdGlhbCB2YWx1ZSBvZiBzeXNDb250YWN0LjAKICAgICAgIG9iamVjdCBzaW5jZSB0aGUgbGF0dGVyIGFsc28gbWFrZXMgdGhlIG9iamVjdCByZWFkLW9ubHkuCiAgIAoyMDAxLTExLTE1IDA1OjA3ICBqYnBuCgogICAqIGFnZW50L3NubXBkLmM6CgogICAgIC0gbWlub3IgZml4IHRvIGZvcm1hdHRpbmcgb2YgdXNhZ2UgbWVzc2FnZQogICAKMjAwMS0xMS0xNCAxNzo1NCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjMucHJlMSApCiAgIAoyMDAxLTExLTE0IDE3OjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXAuaDoKCiAgIG51bWVyaWMgY29tbWVudHMgaW4gYm90aCBoZXggYW5kIGRlY2ltYWwKICAgCjIwMDEtMTEtMTQgMTc6NDEgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgaW5jbHVkZSBJTlRFR0VSMzIgaW4gSU5URUdFUiBjYXNlIGNoZWNraW5nLgogICAKMjAwMS0xMS0xNCAxNzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZzoKCiAgIHZlcnNpb24gdGFnIHBlcmwvU05NUC9TTk1QLnBtIHdpdGggdGhlIHVjZC1zbm1wIHZlcnNpb24gbnVtYmVyLgogICAKMjAwMS0xMS0xNCAxNjozMCAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBtZW50aW9uIHNubXBjb25mLgogICAKMjAwMS0xMS0xNCAxNjowNiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBwYXRjaCBmcm9tIEhhcnJpZSB0byBmaXggaW5pdCBmdW5jdGlvbiBjaGVja2luZyBpbiBtb2R1bGVzCiAgIAoyMDAxLTExLTE0IDExOjU4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWFkX2NvbmZpZy5jLAogICBtaWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICAtIG1ha2UgYSBuZXcgY2FsbGJhY2sgZm9yIHByZS11cGRhdGUtY29uZmlnIGNvbmRpdGlvbnMuCiAgIC0gbWFrZSB0aGUgc25tcE5vdGlmeVRhYmxlIG1ha2UgdXNlIG9mIGl0IHRvIHJlbW92ZSAicmVhZE9ubHkiIGVudHJpZXMKICAgICB3aGljaCBzaG91bGQgaGF2ZSBiZWVuIGdlbmVyYXRlZCB2aWEgY29uZmlndXJhdGlvbiBwYXJzaW5nLgogICAgIC0gbm90ZSB0aGF0IHRoaXMgZG9lc24ndCByZW1vdmUgdGhlIGdlbmVyYXRlZCB0YXJnZXQgZW50cmllcywgd2hpY2gKICAgICAgIGlzIG5vdCBpZGVhbCwgYnV0IGF0IGxlYXN0IGR1cGxpY2F0ZSB0cmFwcyBhcmVuJ3Qgc2VudC4KICAgCjIwMDEtMTEtMTMgMTE6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2tlcm5lbF9zdW5vczUuYzoKCiAgIFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoIHRvIGxvb2sgZm9yIGVyaSBpbnRlcmZhY2VzLgogICAKMjAwMS0xMS0xMyAwNToyNCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYzoKCiAgICAgLSBwYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaCB0byBxdWlldGVuIHNvbWUgbm9pc3kgbG9nZ2luZwogICAKMjAwMS0xMS0xMiAyMzoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgbWliLmM6CgogICBNUyBDKysgd2FybmluZyBmaXhlcyBmcm9tIEhhcnJpZSBIYXpld2lua2VsCiAgIAoyMDAxLTExLTExIDIxOjQ4ICBuYmEKCiAgICogc25tcGxpYi9zeXN0ZW0uYywgd2luMzIvY29uZmlnLmg6CgogICBSZXN0b3JlIHRoZSBvbGQgdmFsdWUgb2QgVElNRV9XSVRIX1NZU19USU1FCiAgIAoyMDAxLTExLTA5IDEyOjIxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBBZGRlZCBhIGdlcm1hbnkgYmFzZWQgbWlycm9yCiAgIAoyMDAxLTExLTA5IDExOjIxICBoYXJkYWtlcgoKICAgKiBGQVE6CgogICBtZW50aW9uIG5ldyBtaXJyb3IKICAgCjIwMDEtMTEtMDkgMTE6MjAgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbjoKCiAgIGFwcGxpZWQgZW5nbGlzaC90eXBvL2NoYW5nZXMgbm90ZWQgaW4gYnVnICM0NzExNzkKICAgCjIwMDEtMTEtMDkgMDk6MDggIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBidWcgNDc5MzY1OiB1c2Ugc3RybmNweSBpbiBzbm1wX2FkZF92YXIoKS4KICAgCjIwMDEtMTEtMDkgMDc6NTMgIGhhcmRha2VyCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgZml4IGJ1ZyAjNDc0NDg4OiBhZGQgZXh0ZXJuIEMgd3JhcHBlcnMKICAgCjIwMDEtMTEtMDkgMDc6NDcgIGhhcmRha2VyCgogICAqIG1hbi9zbm1wZC5jb25mLjUuZGVmOgoKICAgZml4IE9JRHMgdG8gaW5jbHVkZSBlbnRyeSBub2RlCiAgIAoyMDAxLTExLTA4IDA5OjQzICBoYXJkYWtlcgoKICAgKiBtaWJzL1VDRC1TTk1QLU1JQi50eHQ6CgogICBVTklUIHNwZWNzIGZvciB0aGUgZmlsZVRhYmxlIHRvIHNheSBrQiBleHBsaWNpdGx5CiAgIAoyMDAxLTExLTA4IDA5OjQyICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIG1lbnRpb24gdGhhdCB0aGUgZmlsZVRhYmxlIGlzIGluIGtCLgogICAKMjAwMS0xMS0wNiAwODoyNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvOiBtaWIyYywgdGttaWI6CgogICBhZGQgZml4ZXMgdG8gY2hlY2sgZm9yIHRoZSBTTk1QIGFuZCBUayBwZXJsIG1vZHVsZXMgYW5kIHByaW50IGEgYmV0dGVyCiAgIGVycm9yIG1lc3NhZ2UgaWYgdGhleSdyZSBub3QgYXZhaWxhYmxlIHRlbGxpbmcgdXNlcnMgaG93IHRvIGdldCB0aGVtLgogICAKMjAwMS0xMS0wNiAwODoxNiAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBmaXggYXNuX2J1aWxkX2JpdHN0cmluZyB0byBjaGVjayBmb3IgTlVMTCB2YWx1ZXMgKHBvaW50ZWQgb3V0IGJ5IFRhdGEgS2FseWFuKS4KICAgCjIwMDEtMTEtMDYgMDc6NTcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgbGVuZ3RoIGNoZWNrIGZpeGVkIGZvciB3cmFwcGVkIGFkZGl0aW9uLiAgQnVnIHBvaW50ZWQgb3V0IGJ5IFRhdGEgS2FseWFuCiAgIAoyMDAxLTEwLTMwIDIxOjQyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gbWFrZSBwYXRocyBtb3JlIGNvbmZpZ3VyYWJsZSBmcm9tIHdpdGhpbiBDIGNvZGUuCiAgIAoyMDAxLTEwLTMwIDA3OjE0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgICAgLSBmaXggYnVnIHdoZXJlYnkgaW50ZXJmYWNlIGNvdW50ZXIgaXMgbm90IHJlc2V0LCBub3RlZCBieSAoYW1vbmdzdAogICAgICAgb3RoZXJzKSBWaWN0b3IgS2lyaGVuc2h0ZWluIGluIHBhdGNoICM0NzQwNjQuCiAgIAoyMDAxLTEwLTI2IDA5OjA4ICBoYXJkYWtlcgoKICAgKiBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIHBhdGNoIGZyb20gSGFycmllIHRvIGZpeCBhZ2VudHgvY2xpZW50IC0+IGFnZW50eC9zdWJhZ2VudCBoZWxwIG1lc3NhZ2UKICAgCjIwMDEtMTAtMjYgMDM6MzQgIGpicG4KCiAgICogbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICAgIC0gZG9jdW1lbnQgdGhlIGZhY3QgdGhhdCBzZXR0aW5nIHN5c0xvY2F0aW9uLjAgKGV0IGFsLikgdmlhIGEKICAgICAgIHN5c2xvY2F0aW9uIChvciBlcXVpdmFsZW50KSB0b2tlbiBtYWtlcyB0aGUgb2JqZWN0IHJlYWQtb25seSwKICAgICAgIHJldHVybmluZyBhIG5vdFdyaXRhYmxlIGVycm9yIHJlc3BvbnNlIGlmIGFuIGF0dGVtcHQgaXMgbWFkZSB0bwogICAgICAgU0VUIGl0LgogICAKMjAwMS0xMC0yNCAxMDowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICAgIC0gZml4IHR5cG8gbm90ZWQgYnkgVGltIERpZXR6CiAgIAoyMDAxLTEwLTI0IDA5OjU0ICBqYnBuCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogc3lzdGVtX21pYi5jLCBzeXN0ZW1fbWliLmg6CgogICAgIC0gaW1wbGVtZW50IHBlcnNpc3RlbmNlIGZvciBzeXNMb2NhdGlvbi4wLCBzeXNDb250YWN0LjAgYW5kIHN5c05hbWUuMAogICAKICAgICAtIHByZXNlbmNlIG9mIGEgc3lzbG9jYXRpb24gdG9rZW4gaW4gc25tcGQuY29uZiBtYWtlcyBzeXNMb2NhdGlvbi4wCiAgICAgICBub24td3JpdGFibGUgKHJldHVybnMgbm90V3JpdGFibGUgb24gU0VUIGF0dGVtcHRzKQogICAKMjAwMS0xMC0yNCAwNTowOCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgICAtIGZpeCBzbWFsbCBtZW1vcnkgbGVhayBqdXN0IGludHJvZHVjZWQKICAgCjIwMDEtMTAtMjQgMDM6MzMgIGpicG4KCiAgICogYWNjb25maWcuaCwgY29uZmlndXJlLmluOgoKICAgICAtIGF1dG9jb25mIHN1cHBvcnQgZm9yIGRldGVjdGluZyBwa2dpbmZvIGludGVyZmFjZSBpbiBsaWJhZG0uICBUaGFua3MKICAgICAgIHRvIFN0ZWZhbiBSYWRtYW4gKHBhdGNoICM0NzM2NjkpLgogICAKMjAwMS0xMC0yNCAwMzozMCAgamJwbgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3aW5zdC5jOgoKICAgICAtIHVzZSBwa2dpbmZvIGludGVyZmFjZSB0byBkZXRlcm1pbmUgdHlwZSBvZiBzb2Z0d2FyZSBwYWNrYWdlIG1vcmUKICAgICAgIHNwZWNpZmljYWxseSBpZiBwb3NzaWJsZS4gIFNsaWdodCB2YXJpYXRpb24gb24gcGF0Y2ggIzQ3MzY2OSwgc3VibWl0dGVkCiAgICAgICBieSBTdGVmYW4gUmFkbWFuLgogICAKMjAwMS0xMC0xNyAwNzo1MiAgZHRzMTIKCiAgICogRkFROgoKICAgTWVudGlvbiB0aGUgTVJURyB0dXRvcmlhbCB3ZWIgcGFnZXMKICAgICAoYXMgc3VnZ2VzdGVkIGJ5IENocmlzdGlhbiBSb2JvdHRvbSBSZWlzKQogICAKMjAwMS0xMC0wOCAxMDo1NiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIgKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMi4xIC0+IFY0LjIuMgoJCjIwMDEtMTAtMDggMTA6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5jOgoKICAgQXBwbHkgcGF0Y2hlcyBzdWdnZXN0ZWQgaW4gYnVnICM0NjkwODIgdG8gZml4IGlsbGVnYWwgcm93IGNyZWF0aW9ucwogICB3aGVuIHJvd3N0YXR1cyBpcyBzZXQgdG8gZGVzdHJveS4KICAgCjIwMDEtMTAtMDYgMDc6NDkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIG1pbm9yIHR3ZWFrcyB0byB0aGUgZG93bmxvYWQgbGlzdC4KICAgCjIwMDEtMTAtMDYgMDc6NDIgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIEFkZCBEYXZpZCBMYXdyZW5jZSdzIHRleHQgYWJvdXQgY29udHJpYnV0aW5nIHBhdGNoZXMuCiAgIAoyMDAxLTEwLTA1IDE4OjA5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmU2ICkKICAgCjIwMDEtMTAtMDUgMTg6MDEgIGhhcmRha2VyCgogICAqIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgc25tcGxpYi9tdF9zdXBwb3J0LmMsIHNubXBsaWIvbXRfc3VwcG9ydC5oOgoKICAgQ2hhbmdlIF9SRUVOVFJBTlQgZGVmaW5lIHRvIE5TX1JFRU5UUkFOVCB0byBub3QgY29uZmxpY3Qgd2l0aCBCU0QvT1MgNC4zLgogICAKMjAwMS0xMC0wNSAxNzozOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuaCwgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jLAogICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsIHMvaXJpeC5oOgoKICAgaXJpeCBzcGVjaWZpYyBmaXhlcyBtZW50aW9uZWQgaW4gYnVnICM0MDU0NTQKICAgCjIwMDEtMTAtMDUgMTc6MjIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgZml4ICM0NDA4MDggcG9zc2libHkgb3ZlcndyaXRpbmcgYSBvaWQgYnVmZmVyLgogICAKMjAwMS0xMC0wNSAxNjo1OSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMudmFydHlwZXMuY29uZjoKCiAgIGZpeCB1bnNpZ25lZDMyIHJldHVybiB2YXJpYWJsZSB1c2FnZQogICAKMjAwMS0xMC0wNSAxNjo1MSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYzoKCiAgIG1vdmUgYXJwdGFiX2N1cnJlbnQgYW5kIGFycHRhYl9zaXplIGRlZmluaXRpb25zIHVwIG91dCBvZiBpZmRlZiBtZXNzLgogICAKMjAwMS0xMC0wNSAxNjo0NyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBkb24ndCBjcmVhdGUgcm93c3RhdHVzIGVudHJpZXMgd2l0aCAnZGVzdHJveScgYXMgaW5pdGlhbCB2YWx1ZS4KICAgCjIwMDEtMTAtMDUgMTY6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi86IHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5jOgoKICAgZml4ZWQgVU5ETyBjbGF1c2VzLgogICAKMjAwMS0xMC0wNSAwODo1MCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBIYXJyaWUgZm9yIHBpY2t5IGNvbXBpbGVycy4KICAgCjIwMDEtMTAtMDUgMDg6NDkgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIGJldHRlciBlcnJvciBkZXNjcmlwdGlvbiBmb3IgdHJhcHNlc3MKICAgCjIwMDEtMTAtMDUgMDg6NDkgIGhhcmRha2VyCgogICAqIEZBUToKCiAgIEFkZGVkIG1pcnJvciBzaXRlcy4KICAgCjIwMDEtMTAtMDUgMDc6MTAgIGhhcmRha2VyCgogICAqIG1pYnMvOiBTTVVYLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQ6CgogICBNSUIgcHJvYmxlbXMgcG9pbnRlZCBvdXQgYnkgTWFyZWsgTWFsb3dpZHppa2kKICAgCjIwMDEtMTAtMDQgMTc6MDkgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hdXRoLmM6CgogICBEb24ndCB3cml0ZSBhIG51bGwgcGFzdCB0aGUgZW5kIG9mIHRoZSBjb21tdW5pdHkgc3RyaW5nIGJ1ZmZlci4KICAgCjIwMDEtMTAtMDQgMDc6MTQgIGhhcmRha2VyCgogICAqIFJFQURNRSwgbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvZXh0ZW5kaW5nLAogICBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFBhdGNoIGZyb20gVC4gSi4gTWF0aGVyOiBEb2N1bWVudGF0aW9uIG9mIHRoZSBwYXNzX3BlcnNpc3Qgc25tcGQuY29uZiB0b2tlbi4KICAgCjIwMDEtMTAtMDQgMDc6MTQgIGhhcmRha2VyCgogICAqIGxvY2FsL3Bhc3NfcGVyc2lzdHRlc3Q6CgogICBQYXRjaCBmcm9tIFQuIEouIE1hdGhlcjogQW4gZXhhbXBsZSAocGVybCkgcGFzc19wZXJzaXN0IHNjcmlwdC4KICAgCjIwMDEtMTAtMDQgMDI6MjEgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBkaXNhYmxlIHN0ZGVyciBsb2dnaW5nIChpZiByZXF1ZXN0ZWQpIGJlZm9yZSBjYWxsaW5nIGluaXRfbWliX21vZHVsZXMoKS4KICAgICAgIFRoaXMgc2hvdWxkIGZpeCB0aGUgcHJvYmxlbSBub3RlZCBieSBOaWdlbCBNZXRoZXJpbmdoYW0gaW4gYnVnICM0MTg4NTcKICAgICAgIHdoZXJlYnkgdGhlIEFnZW50WCBtYXN0ZXIgbW9kdWxlIHByaW50cyBhIG1lc3NhZ2UgdG8gc3RkZXJyIHdoaWNoIGNhdXNlcwogICAgICAgYSBTSUdQSVBFIHdoZW4gdGhlIGFnZW50IGlzIHN0YXJ0ZWQgYXMgYSBkYWVtb24uCiAgIAogICAgICAgQWxzbyBub3RlZCB3aXRoIGV4dGVuc2l2ZSBhbmFseXNpcyBieSBUZWQgUnVsZSBpbiBidWcgIzQ2NzU1MS4KICAgCjIwMDEtMTAtMDMgMTE6MjIgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTUgKQogICAKMjAwMS0xMC0wMyAxMToxNiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYywgYXBwcy9zbm1wdHJhcGRfbG9nLmMsIHNubXBsaWIvbWliLmMsCiAgIHNubXBsaWIvdG9vbHMuYzoKCiAgIHByb3BlciBjb25zdCBjYXN0aW5nIGluIGZyb250IG9mIE1hcmtrdSdzIGNhc3RpbmcgcGF0Y2guCiAgIAoyMDAxLTEwLTAzIDExOjEwICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jLCBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9hc24xLmMsCiAgIHNubXBsaWIvbWliLmMsIHNubXBsaWIvdG9vbHMuYzoKCiAgIFBhdGNoOiBwcm9wZXIgY2FzdHMgZm9yIHBpY2t5IGNvbXBpbGVycyBmcm9tIE1hcmtrdSBMYXVra2FuZW4uCiAgIAoyMDAxLTEwLTAzIDA5OjIyICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBkb24ndCByYnVpbGQgYmV5b25kIHRoZSBlbmQgb2YgYSBidWZmZXIgKG5lZWRlZCBidWZmZXIgKyBsZW5ndGggIi0gMSIpLgogICAKMjAwMS0xMC0wMyAwNTozOCAgamJwbgoKICAgKiBzbm1wbGliL2tleXRvb2xzLmM6CgogICAgIC0gY2hhbmdlIGV4cHJlc3Npb24gYXQgbC4gNDE1IGZyb206CiAgIAogICAgICAgICAgICprY3N0cmluZysrID0gKmtjc3RyaW5nIF4gKm5ld2tleSsrOwogICAKICAgICAgIHdoaWNoIGhhcyB1bmRlZmluZWQgYmVoYXZpb3VyIHRvOgogICAKICAgICAgICAgICAqa2NzdHJpbmcrKyBePSAqbmV3a2V5Kys7CiAgIAogICAgICAgd2hpY2ggaXMgb2theSAoc2luY2UgKmtjc3RyaW5nIGlzIG9ubHkgZXZhbHVhdGVkIG9uY2UpLiAgU2ltaWxhcmx5CiAgICAgICBhdCBsLiA1MzAuICBUaGUgcHJldmlvdXMgY29uc3RydWN0cyBjYXVzZSB3YXJuaW5ncyB3aXRoIEdDQzMgYW5kCiAgICAgICBzb21lIG90aGVyIGNvbXBpbGVycy4gIFRoYW5rcyB0byBOaWVsIE1hcmt3aWNrIHdobyBub3RlZCB0aGlzIGluCiAgICAgICBidWcgIzQ2NTk2OS4KICAgCjIwMDEtMTAtMDIgMTg6MDEgIGhhcmRha2VyCgogICAqIGFnZW50L2FnZW50X3RyYXAuYzoKCiAgIENoYW5nZSBvaWQgbGVuZ3RocyB0byBzaXplX3QgZnJvbSBpbnQgKHNlZ2ZhdWx0cyBvbiBhbiBhbHBoYS9saW51eCkuCiAgIAoyMDAxLTEwLTAyIDE3OjQ2ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuYzoKCiAgIEFkZCBwcm90b3R5cGUgZm9yIGdldFRvdGFsU3dhcCgpLgogICAKMjAwMS0xMC0wMiAxNzoxNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdGFyZ2V0Lzogc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYzoKCiAgIHJldHVybiBOT1RfV1JJVEFCTEUgaW5zdGVhZCBvZiBSRUFET05MWSBhcyBwb2ludGVkIG91dCBieQogICBhcmFqZXNoQGluZGlhLmFkdmVudG5ldC5jb20uCiAgIAoyMDAxLTEwLTAyIDE3OjAzICBoYXJkYWtlcgoKICAgKiB3aW4zMi9jb25maWcuaDoKCiAgIFBhdGNoIGZyb20gTWFyYyBNb2VsbGVyIHRvIGRlZmluZSBzbnByaW50ZiBhcyBfc25wcmludGYKICAgCjIwMDEtMTAtMDIgMTc6MDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcHJpbnQuYzoKCiAgIFBhdGNoIGZyb20gTWFyYyBNb2VsbGVyIHRvIGNoZWNrIGZvciBIQVZFX0xQU1RBVCBiZWZvcmUgY2FsbGluZyBpdC4KICAgCjIwMDEtMTAtMDIgMTc6MDAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIGFkZCBSb24uCiAgIAoyMDAxLTEwLTAyIDE3OjAwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3N5c3RlbS5jOgoKICAgZ2V0X3VwdGltZSgpIGltcGxlbWVudGF0aW9uIGZvciB3aW5kb3dzIGZyb20gUm9uIE1ldmlzc2VuLgogICAKMjAwMS0xMC0wMSAxNzozOCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlNCApCiAgIAoyMDAxLTEwLTAxIDE3OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9NYWtlZmlsZS5pbiwgYWdlbnQvbWliZ3JvdXAvTWFrZWZpbGUuaW4sIGFwcHMvTWFrZWZpbGUuaW4sCiAgIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4sIHNubXBsaWIvTWFrZWZpbGUuaW4sCiAgIHRlc3RpbmcvTWFrZWZpbGUuaW46CgogICBtYWtlIG1ha2VmaWxlaW5kZXBlbmQKICAgCjIwMDEtMTAtMDEgMTc6MzcgIGhhcmRha2VyCgogICAqIG1ha2VmaWxlaW5kZXBlbmQucGw6CgogICB0cmFuc2xhdGUgLm8gLT4gLmxvIGJ5IGhhbmQuCiAgIAoyMDAxLTEwLTAxIDE3OjA3ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0LzogaHJfZGlzay5jLCBocl9wcmludC5jOgoKICAgQXBwbGllZCBwYXRjaCAjNDY1NTQ1IHRvIGZpeCBkZWxheXMgaW4gaG9zdCByZXNvdXJjZXMgbWliIHdoZW4gbG9va2luZwogICBhdCBkZXZpY2VzIGFuZCBwcmludGVycy4KICAgCjIwMDEtMTAtMDEgMTY6NDUgIGhhcmRha2VyCgogICAqIENoYW5nZUxvZywgTkVXUzoKCiAgIE5ldyBzdHVmZiBpbiA0LjIuMgogICAKMjAwMS0xMC0wMSAxNjozOSAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wd2Fsay5jLCBtYW4vc25tcHdhbGsuMToKCiAgIG1ha2Ugc25tcHdhbGsgZGVmYXVsdCB0byBkZXRlY3RpbmcgaWxsZWdhbCBPSUQgaW5jcmVhc2VzLiAgLUNjIHR1cm5zCiAgIGl0IG9mZiBpbnN0ZWFkIG9mIG9uLgogICAKMjAwMS0xMC0wMSAxMDozNiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGVkaXRpbmcgdHdlYWtzIGJ5IEpvaG4gdG8gY291bnQgdGhpbmdzIHByb3Blcmx5LiAgV2VzIGxvb3NlcyB0aGUKICAgYWJpbGl0eSB0byBjb3VudCBiZXlvbmQgdGhlIG51bWJlciAyLgogICAKMjAwMS0xMC0wMSAxMDoyNiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIGRpdHRvLgogICAKMjAwMS0xMC0wMSAxMDoyMiAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIFZhcmlvdXMgY29weXJpZ2h0IHVwZGF0ZXMuCiAgIAoyMDAxLTEwLTAxIDAyOjUyICBqYnBuCgogICAqIHNubXBsaWIvc2NhcGkuYzoKCiAgICAgLSBhZGQgI2luY2x1ZGUgInNubXBfbG9nZ2luZy5oIiB0byBhdm9pZCBjb21waWxhdGlvbiBwcm9ibGVtcyBvbgogICAgICAgc29tZSBwbGF0Zm9ybXMgaW50cm9kdWNlZCBieSBuZXcgZXJyb3IgbWVzc2FnZXMuIFNlZToKICAgICAgIDxVUkw6aHR0cDovL3NvdXJjZWZvcmdlLm5ldC90cmFja2VyL2luZGV4LnBocD9mdW5jPWRldGFpbCZhaWQ9NDY1ODA3Jmdyb3VwX2lkPTEyNjk0JmF0aWQ9MTEyNjk0PgogICAKMjAwMS0wOS0yOSAwNjowNiAgbmJhCgogICAqIHNubXBsaWIvbWliLmg6CgogICBBZGQgYSBtaXNzaW5nIHByb3RvdHlwZSBmb3Igc25tcF9yZWFsbG9jX2J5X3R5cGUKICAgCjIwMDEtMDktMjkgMDY6MDUgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9tZW1vcnlfc29sYXJpczIuaDoKCiAgIEZpeCBhIGJhZCAjaWZkZWYgcGFyYW50aGVzZXMKICAgCjIwMDEtMDktMjYgMTA6MjEgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgc211eCBpcyAqbm90KiBhIHByb3BlciBkZWxlZ2F0aW9uIHN1YmFnZW50LgogICAKMjAwMS0wOS0yNSAxMjo0NiAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIucHJlMyApCiAgIAoyMDAxLTA5LTI1IDExOjUxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliLzogc2NhcGkuYywgc2NhcGkuaDoKCiAgIEJldHRlciBlcnJvciBtZXNzYWdlcyB3aGVuIGVuY3J5cHRpb24gc3VwcG9ydCBpc24ndCBhdmFpbGFibGUuCiAgIAoyMDAxLTA5LTI1IDA3OjU5ICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlaW5zdGF0ZSBhbm90aGVyIHNwYWNlIHRoYXQgd291bGQgbWFrZSB0aGUgdGVzdCBzdWl0ZSBmYWlsCiAgIAoyMDAxLTA5LTI1IDA3OjUzICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIHJlaW5zdGF0ZSBhIG1pc3Npbmcgc3BhY2UKICAgCjIwMDEtMDktMjUgMDU6NDMgIGpicG4KCiAgICogYXBwcy86IHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfbG9nLmMsIHNubXB0cmFwZF9sb2cuaDoKCiAgICAgLSBpbmNvcnBvcmF0ZSByZXdyaXR0ZW4gb3V0cHV0IGZ1bmN0aW9ucyBmcm9tIG1haW4gYnJhbmNoIHRvIGF2b2lkCiAgICAgICBmaXhlZCBsZW5ndGggYnVmZmVycwogICAKMjAwMS0wOS0yNSAwNTo0MSAgamJwbgoKICAgKiBzbm1wbGliL3NjYXBpLmM6CgogICAgIC0gdXNlIHJlbG9jYXRpbmcgYnVmZmVyIHZlcnNpb24gb2Ygc3ByaW50IGZ1bmN0aW9ucwogICAKMjAwMS0wOS0yNSAwNTo0MCAgamJwbgoKICAgKiBzbm1wbGliLzogbWliLmMsIG1pYi5oLCBwYXJzZS5oOgoKICAgICAtIGFkZCByZWxvY2F0aW5nIGJ1ZmZlciBjb2RlIGZyb20gbWFpbiBicmFuY2gKICAgCjIwMDEtMDktMjUgMDU6MzkgIGpicG4KCiAgICogc25tcGxpYi86IHRvb2xzLmMsIHRvb2xzLmg6CgogICAgIC0gYWRkIHNubXBfcmVhbGxvYygpIGFuZCBzbm1wX3N0cmNhdCBmdW5jdGlvbnMgd2hpY2ggdGhlIHJlbG9jYXRpbmcKICAgICAgIGJ1ZmZlciBjb2RlIHVzZXMKICAgCjIwMDEtMDktMjEgMTc6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIFBhdGNoIGZyb20gR2xlbm4gTWFuc2ZpZWxkIHRvIGZpeCBpbnRlcmZhY2UgY291bnRpbmcgb24gaW50ZXJmYWNlcwogICB3aXRob3V0IGlwIGFkZHJlc3Nlcy4KICAgCjIwMDEtMDktMjAgMTI6NDcgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIGNoZWNrIHNraXBfd2hpdGUoKSByZXR1cm4gKGFzIG1lbnRpb25lZCBpbiBwYXRjaCAjNDYyMjAxKS4KICAgCjIwMDEtMDktMjAgMTE6MzAgIGhhcmRha2VyCgogICAqIHNubXBsaWIvbWliLmM6CgogICBmaXhlZCBhIHBvc3NpYmxlIGJ1ZmZlciBvdmVyZmxvdyBidWcgaW4gc3ByaW50X2FzY2lpc3RyaW5nIGFzIHBvaW50ZWQKICAgb3V0IGJ5IGJ1ZyAjNDYzMjI2LgogICAKMjAwMS0wOS0yMCAwOTo0NiAgaGFyZGFrZXIKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBEb24ndCB3YXJuIGFib3V0IG1pc3Npbmcgb3BlbnNzbCB1bmxlc3MgZXhwbGljaXRseSBhc2tlZCAoYW5kIHRoZW4gZXJyb3IpLgogICAKMjAwMS0wOS0yMCAwOToxMiAgamJwbgoKICAgKiBhZ2VudC86IHNubXBfdmFycy5jLCBtaWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICAgIC0gbW92ZSBoZWFkZXJzIGFyb3VuZCB0byBmaXggY29tcGlsYXRpb24gb24gU29sYXJpcyAyLjc7IHN5cy9zdHJlYW0uaAogICAgICAgbmVlZHMgdG8gYmUgaW5jbHVkZWQgYmVmb3JlIHN5cy9zb2NrZXR2YXIuaCBmb3IgdGhpcyBwbGF0Zm9ybS4KICAgCjIwMDEtMDktMjAgMDk6MDkgIGpicG4KCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmM6CgogICAgIC0gcmVtb3ZlICNpbmNsdWRlICJzeXN0ZW0uaCIgd2hpY2ggdXNlcyB0aGUgdHlwZSBpbl9hZGRyX3QgdGhlcmVieQogICAgICAgY2F1c2luZyBwcm9ibGVtcywgYW5kIHNlZW1zIHRvIGJlIHVubmVjZXNzYXJ5IGFueXdheS4KICAgCjIwMDEtMDktMjAgMDY6NTkgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIE1ha2Ugc3VyZSBIYXJyaWUncyBuYW1lIGlzIGluIHRoZSBwYXRjaGVzIFJFQURNRSBhcyB3ZWxsIGFzIHRoZSBtYWlubGluZS4KICAgCjIwMDEtMDktMjAgMDY6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvOiBkZWZhdWx0X3N0b3JlLmMsIG1pYi5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jLAogICBzbm1wX2NsaWVudC5jLCBzbm1wX2RlYnVnLmMsIHNubXB1c20uYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CiAgICAgLSBwcm9wZXIgcHJvdG90eXBlcyBmb3Igc29tZSBmdW5jdGlvbnMuCiAgIAoyMDAxLTA5LTE5IDE3OjE5ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMi5wcmUyICkKICAgCjIwMDEtMDktMTkgMTc6MDEgIGhhcmRha2VyCgogICAqIEZBUSwgUkVBRE1FLCBzZWRzY3JpcHQuaW4sIHZlcnNpb24uaDoKCiAgIC0gKHZlcnNpb24uaCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi4yLnByZTEgKQogICAKMjAwMS0wOS0xOSAxNjo1OSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjIgKQogICAKMjAwMS0wOS0xOCAxNzoyMiAgaGFyZGFrZXIKCiAgICogbWFuL3NubXBjbWQuMSwgc25tcGxpYi9taWIuYywgc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgVW5kbyBOaWVscycgY2hhbmdlIHRvIGFsbG93IGNvbW1hbmQgbGluZSBvcHRpb25zIHRvIG92ZXJyaWRlIC5jb25mCiAgIGZpbGVzLiAgUmlnaHQgZ29hbCwgd3JvbmcgYnJhbmNoIHRvIGRvIGl0IGluIGFzIGl0IGJyb2tlIFNOTVB2MyBhbW9uZwogICBvdGhlciB0aGluZ3MuICBUaGUgaW5pdGlhbGl6YXRpb24gcHJvY2VzcyBpcyByYXRoZXIgc2Vuc2l0aXZlIHRvCiAgIG9yZGVyaW5nLgogICAKMjAwMS0wOS0xOCAxNTowOCAgbmJhCgogICAqIHMvZGFyd2luLmg6CgogICBGaXggYW4gb3ZlcnNpZ2h0IGluIHRoZSBEYXJ3aW4gcGF0Y2gKICAgCjIwMDEtMDktMTggMTU6MDggIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbjoKCiAgIEZpeCBhbiBvdmVyc2lnaHQgaW4gdGhlIERhcndpbiBwYXRjaGVzCiAgIAoyMDAxLTA5LTE3IDA5OjAwICBuYmEKCiAgICogcy9kYXJ3aW4uaDoKCiAgIFRoZSBkYXJ3aW4gc3lzdGVtIGZpbGUsIHdoaWNoIEkgZm9yZ290IHdoZW4gY29tbWl0dGluZyB0aGUgcmVzdCBvZgogICB0aGUgZGFyd2luIHBhdGNoLgogICAKMjAwMS0wOS0xNyAwNzowNyAgaGFyZGFrZXIKCiAgICogY29uZmlnLmguaW46CgogICBhdXRvaGVhZGVyIHJ1bgogICAKMjAwMS0wOS0xNyAwNDoxMyAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggbmV3bGluZXMgaW5zaWRlIHVzYWdlIHN0cmluZy4KICAgCjIwMDEtMDktMTYgMTQ6NTYgIG5iYQoKICAgKiBhZ2VudC86IHNubXBkLmMsIG1pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgTW92ZSB0aGUgc211eF9saXN0ZW5fc2QgdmFyaWFibGUgdG8gc211eC5jLiBUaGlzIHdheSBpdCB3aWxsIGJlIGluIHRoZQogICBsaWJyYXJ5IHNvIHRoZSBsaW5rZXIgd29udCBiZSB1cHNldCB3aGVuIHlvdSBsaW5rIHdpdGggdGhlIGFnZW50IGxpYnJhcnkuCiAgIAoyMDAxLTA5LTE2IDE0OjUyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywgcy9vcGVuYnNkLmg6CgogICBQYXRjaGVzIGZvciBPcGVuQlNEIDIuOQogICAKMjAwMS0wOS0xNiAxNDo0OSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2tpby5jOgoKICAgZGlza2lvIHN1cHBvcnQgZm9yIEZyZWVCU0Q0LiBUaGFua3MgdG8gWWltaW4gR2UKICAgCjIwMDEtMDktMTYgMTQ6MTYgIG5iYQoKICAgKiBhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywKICAgYWdlbnQvc25tcF92YXJzLmMsIGFnZW50L21pYmdyb3VwL3VjZF9zbm1wLmgsCiAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3RvcmFnZS5jLCBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmMsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X2ZyZWVic2QyLmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL21lbW9yeV9mcmVlYnNkMi5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuYzoKCiAgIFBhdGNoZXMgdG8gc3VwcG9ydCBEYXJ3aW4gKE1hYyBPUy9YKQogICBUaGFua3MgdG8gVGV4IENsYXl0b24gPHRleEBkYXJ0d2FyZS5jb20+CiAgIAoyMDAxLTA5LTE2IDE0OjAzICBuYmEKCiAgICogYWdlbnQvOiBhZ2VudF9pbmRleC5jLCBhZ2VudF9yZWdpc3RyeS5jLCBtaWJncm91cC9taWJpbmNsLmgsCiAgIG1pYmdyb3VwL3V0aWxfZnVuY3MuYywgbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICBtaWJncm91cC9taWJJSS9pY21wLmMsIG1pYmdyb3VwL21pYklJL2lwLmMsCiAgIG1pYmdyb3VwL21pYklJL2lwQWRkci5jLCBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMsCiAgIG1pYmdyb3VwL21pYklJL3RjcC5jLCBtaWJncm91cC9taWJJSS90Y3BUYWJsZS5jLAogICBtaWJncm91cC9taWJJSS91ZHAuYywgbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEhlYWRlciByZWFycmFuZ2VtZW50cyB0byBtYWtlIEJTRCdzIGhhcHB5IGFmdGVyIHRoZSBXSU4zMiBwYXRjaAogICAKMjAwMS0wOS0xNSAwNjowOCAgamJwbgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgICAgLSBhZGQgbWlzc2luZyBhcmd1bWVudCB0byBzbnByaW50ZiAoZXJycHJlIGNvcnJlc3BvbmRpbmcgdG8gJXMpIC0tCiAgICAgICBpdCB3YXMgbWlzc2luZyBmcm9tIHRoZSBwYXRjaCAoIzQ1MjAyNykKICAgCjIwMDEtMDktMTQgMTc6MjkgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnhzOgoKICAgLSBkZWJ1Z2dpbmcgY29tcGlsYXRpb24gZml4ZXMKICAgCjIwMDEtMDktMTQgMTc6MjYgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgbWFueSBuZWVkZWQgY2hhbmdlcyBmcm9tIG1haW5saW5lIG1lcmdlZCBpbnRvIHBhdGNoZXMgYnJhbmNoCiAgIAoyMDAxLTA5LTE0IDE1OjI0ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2FzbjEuYzoKCiAgIFBhdGNoICM0NTIwMjcgZnJvbSBNYXJjdXMgTWVpc3NuZXI6CiAgICAgc2VjdXJpdHkgZml4IHRvIG1ha2Ugc3VyZSB0aGF0IGxvbmcgYXNuIGxlbmd0aHMgY2FuJ3QgYmUgdXNlZCBhbmQKICAgICBhcmVuJ3QgaW1wcm9wZXJseSBjYXNlZCB0byBhIHNpZ25lZCB2YWx1ZS4KICAgCjIwMDEtMDktMTQgMTQ6MjMgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgcGF0Y2ggIzQzMjk4MiBmcm9tIEhvbGxpczogZml4IC0td2l0aC1saWJ3cmFwIHdpdGhvdXQgYSBwYXRoIG9wdGlvbgogICAKMjAwMS0wOS0xNCAxMzo1OCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwLzoga2VybmVsX3N1bm9zNS5jLCBtaWJJSS91ZHBUYWJsZS5jOgoKICAgU29sYXJpcyBzdXBwb3J0IGZvciB1ZHBUYWJsZS4KICAgVGhhbmtzIHRvIEpvaGFubmVzIFNjaG1pZHQtRmlzY2hlciA8anNmQEludGVyRmFjZS1BRy5jb20+CiAgIAoyMDAxLTA5LTE0IDA5OjUzICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3VjZC1zbm1wLWluY2x1ZGVzLmg6CgogICBmcm9tIHBhdGNoICM0MjM0NjY6IGFkZCBhYmlsaXR5IHRvIHVzZSB0aGlzIGZpbGUgd2l0aGluIHRoZSBzb3VyY2UgdHJlZQogICAKMjAwMS0wOS0xNCAwOTo0OCAgaGFyZGFrZXIKCiAgICogd2luMzIvY29uZmlnLmguYm9ybGFuZDoKCiAgIEFkZGVkIGNvbmZpZy5oIGZpbGUgZm9yIGJvcmxhbmQgY29tcGlsZXJzICh3aGljaCBkaWZmZXJzIHNsaWdodGx5KS4KICAgICBGcm9tIHBhdGNoICM0MjM0NjYKICAgCjIwMDEtMDktMTQgMDk6MjggIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJLzogYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsCiAgIGlwQWRkci5jLCB0Y3AuYywgdGNwVGFibGUuYywgdWRwLmMsIHVkcFRhYmxlLmMsIHZhcl9yb3V0ZS5jOgoKICAgTWliLTIgc3VwcG9ydCBmb3IgV2luZG93cyBzeXN0ZW1zLgogICAqTWFueSogdGhhbmtzIHRvIExhdGhhIFMsIGZvciBmaWxsaW5nIHRoaXMgbG9uZy1hd2FpdGVkIG5lZWQuCiAgIAoyMDAxLTA5LTE0IDA5OjA3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGljbXAuYywgaXAuYywgaXBBZGRyLmMsIHRjcC5jLCB0Y3BUYWJsZS5jLAogICB1ZHAuYywgdWRwVGFibGUuYzoKCiAgIE1vdmUgcGFja2FnZS1wcm92aWRlZCBoZWFkZXIgaW5jbHVkZXMgKCdtaWJpbmNsJyBhbmQgJ3V0aWxfZnVuY3MnKQogICB0byBhZnRlciB0aGUgc3lzdGVtIGluY2x1ZGVzLiAgVGhpcyBzaG91bGRuJ3QgYWZmZWN0IG1vc3Qgc3lzdGVtcywKICAgYnV0IGlzIG5lY2Vzc2FyeSBmb3IgdGhlIFdpbmRvd3MgcG9ydC4KICAgCjIwMDEtMDktMTQgMDg6MjggIGR0czEyCgogICAqIGNvbmZpZ3VyZToKCiAgIFByb3BvZ2F0ZSB0ZXN0IGZvciA8bmV0aW5ldC9pcF9pY21wLmg+IHRocm91Z2ggdG8gdGhlIGJpdCB0aGF0IGRvZXMgdGhlIHdvcmsuCiAgIAogICAgIChPdXIgaWxsdXN0cmlvdXMgbGVhZGVyIGNsZWFybHkgaGFzIG5vIGNvbmZpZGVuY2UgaW4gdGhlIGNvbXBldGFuY2UKICAgICAgb2YgaGlzIG1pbmlvbnMuICBJJ2QgdGFrZSB1bWJyYWdlLCBpZiBoZSB3YXNuJ3QgcmlnaHQhKQogICAKMjAwMS0wOS0xNCAwODowMSAgZHRzMTIKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbjoKCiAgIEFkZCB0ZXN0IGZvciA8bmV0aW5ldC9pcF9pY21wLmg+CiAgIAoyMDAxLTA5LTE0IDA3OjU3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS86IGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICBpcEFkZHIuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHRjcFRhYmxlLmMsIHVkcC5jLCB1ZHBUYWJsZS5jLAogICB2YXJfcm91dGUuYzoKCiAgIFdyYXAgdmFyaW91cyAjaW5jbHVkZXMgd2l0aCBhcHByb3ByaWF0ZSAjaWYgSEFWRV9YWFhfSCBkZWNsYXJhdGlvbnMKICAgKHdoZXJlIHRoaXMgaGFzIG5vdCBhbHJlYWR5IGJlZW4gZG9uZSkuCiAgIAoyMDAxLTA5LTExIDE0OjQ3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvOiBtZW1vcnkuYywgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5jLAogICBtZW1vcnlfZnJlZWJzZDIuaCwgbWVtb3J5X25ldGJzZDEuYywgbWVtb3J5X25ldGJzZDEuaCwKICAgbWVtb3J5X3NvbGFyaXMyLmMsIG1lbW9yeV9zb2xhcmlzMi5oLCB2bXN0YXQuYywgdm1zdGF0LmgsCiAgIHZtc3RhdF9ic2RpNC5jLCB2bXN0YXRfYnNkaTQuaCwgdm1zdGF0X2ZyZWVic2QyLmMsCiAgIHZtc3RhdF9uZXRic2QxLmMsIHZtc3RhdF9zb2xhcmlzMi5jOgoKICAgTWFrZSBzdXJlIHRoYXQgdGhlIE9JRCBkZWZpbmVzIGFyZSBvbmx5IGluIG9uZSBwbGFjZS4gTm8gZnVuY3Rpb25hbCBjaGFuZ2UuCiAgIAoyMDAxLTA5LTExIDE0OjQ1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jOgoKICAgSGVhZGVyIHJlb3JkZXJpbmcgdG8gYWxsb3cgZG1hbGxvYyB0byB3b3JrLgogICAKMjAwMS0wOS0xMSAxNDozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmM6CgogICBGaXggYSBtaXNwbGFjZXMgOyBpbiBhIGxvb3AuCiAgIFRoYW5rcyB0byBNYWxhIFJhbWFrcmlzaG5hbiA8bWFsYUByb3V0ZXNjaWVuY2UuY29tPgogICBhbmQgSm9oYW5uZXMgU2NobWlkdC1GaXNjaGVyIDxqc2ZASW50ZXJGYWNlLUFHLmNvbT4KICAgCjIwMDEtMDktMTAgMTE6MjAgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGNoYW5nZSBpbnRlcmZhY2UgY291bnRpbmcgdG8gaGFwcGVuIG1vcmUgZnJlcXVlbnRseSB0byBkZXRlY3QgbmV3IGNhcmRzLgogICAgIC0gc2VlIGJ1ZyAjNDU3MjkwCiAgIAoyMDAxLTA5LTEwIDExOjExICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcHRyYXBkLjgsIGFwcHMvc25tcHRyYXBkLmM6CgogICBmaXggLVAgdG8gdXNhZ2UgaXQgcHJpbnRzIHRvIHN0ZGVyciAoYnVnICM0NTkzNzIpCiAgIAoyMDAxLTA5LTEwIDEwOjU1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91dGlsX2Z1bmNzLmM6CgogICBmaXggd2hpdGVzcGFjZSBwYXJzaW5nIGJ1ZyByZXBvcnRlZCBpdCBidWcgIzQ1NzI2Ny4KICAgCjIwMDEtMDktMTAgMTA6NDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jOgoKICAgYXBwbHkgZnJlZWJzZCBzcGVjaWZpYyBwYXRjaCBmcm9tIGJ1ZyM0NTU5MjQgdG8gZml4IHZtc3RhdCdzIHN3YXAgcmVwb3J0LgogICAKMjAwMS0wOS0xMCAxMDoxMSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBVc2UgYSBtb3JlIHBvcnRhYmxlIERCUFJUIG1hY3JvLgogICAKMjAwMS0wOS0xMCAwOTo1OCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uLzogc25tcE5vdGlmeUZpbHRlclByb2ZpbGVUYWJsZS5jLAogICBzbm1wTm90aWZ5RmlsdGVyVGFibGUuYywgc25tcE5vdGlmeVRhYmxlLmM6CgogICBSZW1vdmUgcmVkdW5kYW50IFJvd1N0YXR1cyB2YWx1ZSBjaGVja3MgbWVudGlvbmVkIGluIGJ1ZyM0NDk1MDIKICAgCjIwMDEtMDktMDQgMDc6MjEgIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhZGQgbWlzc2luZyBicmVhazsgYWZ0ZXIgcHJvY2Vzc2luZyAtUCBvcHRpb24sIG5vdGVkIGJ5IEJvdG9uZAogICAgICAgVGFybmF5IChzZWUgcGF0Y2ggIzQ1ODMyNykKICAgCjIwMDEtMDgtMzEgMTM6MTkgIG5iYQoKICAgKiBtaWJzLzogRElTTUFOLVNDUklQVC1NSUIudHh0LCBNYWtlZmlsZS5taWIsIFJFQURNRS5taWJzLCByZmNsaXN0LAogICBzbWlzdHJpcDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IHZlcnNpb24gb2YgRElTTUFOLVNDUklQVC1NSUIsIGFuZCBhIGZldyBjb3NldGljIGNoYW5nZXMKICAgdG8gc21pc3RyaXAgZXQgYWwuCiAgIAoyMDAxLTA4LTMxIDEzOjE4ICBuYmEKCiAgICogbHRjb25maWc6CgogICBVcGRhdGUgdG8gbGlidG9vbCAxLjQuIFRoaXMgZW5zdXJlcyB0aGF0IG1ha2UgaW5zdGFsbCB3aWxsIHdvcmsgZm9yIE5ldEJTRAogICAKMjAwMS0wOC0zMSAxMzoxNyAgbmJhCgogICAqIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwgbHRtYWluLnNoOgoKICAgVXBkYXRlIHRvIGxpYnRvb2wgMS40LiBUaGlzIHdpbCBlbnN1cmUgdGhhdCBtYWtlIGluc3RhbGwgd29yayBvbiBOZXRCU0QKICAgCjIwMDEtMDgtMjggMTU6MDQgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRml4IGEgYmFkIGZpeAogICAKMjAwMS0wOC0yOCAxNTowMyAgbmJhCgogICAqIGFnZW50LzogYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuaDoKCiAgIEMrKyBicmFja2V0IHRoZSBpbnN0YWxsZWQgc2dlbnQgaGVhZGVycwogICAKMjAwMS0wOC0yOCAwNzozNSAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBGaXggYSBtYWxmb3JtZWQgbXVsdGktbGluZSBzdHJpbmcKICAgCjIwMDEtMDgtMjggMDM6MDUgIGpicG4KCiAgICogYWdlbnQvc25tcF9hZ2VudC5jOgoKICAgICAtIGFkZCBtaXNzaW5nICNpbmNsdWRlIDx0Y3BkLmg+IGlmIHVzaW5nIGxpYndyYXAsIG5vdGVkIGJ5IE5hdGhhbgogICAgICAgTmV1bGluZ2VyIChwYXRjaCAjNDUzODMxKS4KICAgCjIwMDEtMDgtMjggMDI6MzggIGpicG4KCiAgICogYWdlbnQvc25tcGQuYzoKCiAgICAgLSBhdm9pZCB1c2Ugb2YgcHJlLXByb2Nlc3NvciBkaXJlY3RpdmVzIGluc2lkZSBwcmludGYoKSBjYWxsLCB3aGljaAogICAgICAgaXMgYSBtYWNybyBpbiBnbGliYywgbWFraW5nIHRoaXMgYW4gdW5kZWZpbmVkIGJlaGF2aW91cgogICAgICAgY29uc3RydWN0ICh3aGljaCBHQ0MgMy4wIHJlZnVzZXMgdG8gY29tcGlsZSkuICBTZWUgYnVnICM0NTU4MDQgZm9yCiAgICAgICBmdXJ0aGVyIGRldGFpbHMuCiAgIAoyMDAxLTA4LTI3IDIyOjE1ICBuYmEKCiAgICogbWFuLzogc25tcF9jb25maWcuNS5kZWYsIHNubXBkLmNvbmYuNS5kZWYsIHNubXB0cmFwZC5jb25mLjUuZGVmOgoKICAgRml4IHNvbWUgcGxhY2VzIHdoZXJlIGFjdHVhbCBsaW5lcyBzdGFydGVkIHdpdGggYSBwZXJpb2QuCiAgIAoyMDAxLTA4LTE3IDE1OjEyICBuYmEKCiAgICogbWFuL01ha2VmaWxlLmluOgoKICAgRml4IG1pc3NwZWxsZWQgbWFuIHBhZ2UgbmFtZSAoc25tcGVycm9yID0+IHNubXBfcGVycm9yKQogICAKMjAwMS0wOC0xNyAxNTowOSAgbmJhCgogICAqIG1pYnMvOiBNYWtlZmlsZS5taWIsIG1pYmZldGNoOgoKICAgSUFOQSBoYXMgbW92ZWQgdGhlaXIgbWlicyBpbnRvIGFuIGlhbmEubWliIGRpcmVjdG9yeS4KICAgRml4IFJGQyBudW1iZXIgZm9yIFJNT04tTUlCLgogICBNYWtlICJtYWtlIGFsbG1haWJzIiBleHRyYWN0IG1pYnMgdG8gYW5vdGhlciBkaXJlY3RvcnkuCiAgIAoyMDAxLTA4LTE3IDE1OjAzICBuYmEKCiAgICogY29uZmlnLmd1ZXNzLCBjb25maWcuc3ViOgoKICAgWWV0IGFub3RoZXIgdXBkYXRlIGZyb20gZnRwLmdudS5vcmcKICAgCjIwMDEtMDgtMTcgMTQ6MDkgIG5iYQoKICAgKiBhZ2VudC86IGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmM6CgogICBBZGQgc29tZSBuZWVkZWQgZXJyb3IgY2hlY2tpbmcgdG8gdGhlIHVpZC9naWQgcGFyc2luZyBjb2RlLgogICBBbGxvdyBzeW1ib2xpYyB1aWQvZ2lkIGZyb20gdGhlIGNvbW1hbmQgbGluZS4KICAgCjIwMDEtMDgtMTcgMTQ6MDcgIG5iYQoKICAgKiBGQVE6CgogICBBZGQgYSBtaXNzaW5nIGFyZ3VtZW50IHRvIHRoZSBzbm1wdHJhcCBleGFtcGxlcy4KICAgCjIwMDEtMDgtMDcgMTQ6NTUgIG5iYQoKICAgKiBhcHBzL3NubXB0cmFwZF9sb2cuYywgc25tcGxpYi9taWIuYzoKCiAgIFRpbWV0aWNrcyBhcmUgdW5zaWdlZCEgVGhhbmtzIHRvIEpvc2ggV2lsbWVzIDxqb3NoLXVjZEBoaXRjaGhpa2VyLm9yZz4KICAgCjIwMDEtMDgtMDcgMTQ6NDIgIG5iYQoKICAgKiBtYW4vc25tcGNtZC4xLCBzbm1wbGliL21pYi5jLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBDaGFuZ2VzIHRvIGFsbG93IGNvbW1hbmQgbGluZSBhcmd1bWVudHMgdG8gb3ZlcnJpZGUgc25tcC5jb25mIHNldHRpbmdzLgogICAKMjAwMS0wOC0wNyAxNDowMiAgbmJhCgogICAqIG1pYnMvOiBJQU5BaWZUeXBlLU1JQi50eHQsIHJmY2xpc3Q6CgogICBVcGRhdGUgdG8gY3VycmVudCB2ZXJzaW9uIG9mIElBTkFpZlR5cGUtTUlCLgogICBBZGQgcmZjIDMxNDQgSU5URVJGQUNFVE9QTi1NSUIgdG8gcmZjbGlzdC4KICAgCjIwMDEtMDgtMDcgMTQ6MDAgIG5iYQoKICAgKiBjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWI6CgogICBVcGRhdGUgdG8gY3VycmVudCB2ZXJzaW9uIGZyb20gZnRwLmdudS5vcmcKICAgCjIwMDEtMDgtMDcgMTM6NTkgIG5iYQoKICAgKiBhcHBzL3NubXBzZXQuYywgYXBwcy9zbm1wdHJhbnNsYXRlLmMsIGFwcHMvc25tcHRyYXBkLmMsCiAgIG1hbi9NYWtlZmlsZS5pbiwgbWFuL3NubXBfYXBpX2VycnN0cmluZy4zLCBtYW4vc25tcF9lcnJvci4zLAogICBtYW4vc25tcF9wZXJyb3IuMywgbWFuL3NubXBfc2Vzc19wZXJyb3IuMywgbWFuL3NubXBjbWQuMSwKICAgbWFuL3NubXB0cmFwZC44OgoKICAgQSBidW5jaCBvZiBtaW5vciBmaXhlcyB0byB1c2FnZSBtZXNzYWdlcyBhbmQgbWFudWFsIHBhZ2VzLgogICAKMjAwMS0wOC0wNyAxMzo1NiAgbmJhCgogICAqIGFwcHMvc25tcHRlc3QuYzoKCiAgIEZpeCBwYXJzaW5nIG9mIG9pZCB2YWx1ZXMgZm9yIHNldAogICAKMjAwMS0wOC0wNyAwNzowOSAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgICAtIGZpeCBmb3IgcG90ZW50aWFsIGJ1ZmZlciBvdmVyZmxvdyBpbiBsb2dmaWxlIGFyZ3VtZW50IGhhbmRsaW5nLAogICAgICAgbm90ZWQgYnkgQW5vbnltb3VzIChidWcgIzQ0ODI0MykuICBBbHNvIHVzZSBhIGxhcmdlIGVub3VnaCBidWZmZXIKICAgICAgIHRvIGhhbmRsZSBmaWxlbmFtZXMgb2YgbGVuZ3RoIFBBVEhfTUFYIChpZiBwb3NzaWJsZSkuCiAgIAoyMDAxLTA3LTI2IDAxOjQwICBqYnBuCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgICAtIGluaXRpYWxpc2UgYnVmZmVycyB0byB6ZXJvIGluIGhhbmRsZV93cmFwX2ZtdCwgdG8gYXZvaWQgZ2FyYmFnZSBpbgogICAgICAgZGlzcGxheSBvZiBzZWN1cml0eSBwYXJhbWV0ZXJzLCBhcyBub3RlZCBieSBXaWxsaWFtIEZyYXVlbmhvZmVyCiAgICAgICAoYnVnICM0MzcyMzEpLgogICAKMjAwMS0wNy0yMyAxMDo1MyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgY2FyZWZ1bGx5IGNvbnN0cnVjdCB0bXAgZmlsZSBuYW1lcy4KICAgCjIwMDEtMDctMjMgMTA6NTMgIGhhcmRha2VyCgogICAqIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvc25tcGQuYzoKCiAgIHVzZSBzZXRncm91cHMgd2hlbiBhdmFpbGFibGUuCiAgIAoyMDAxLTA3LTExIDA3OjM0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9tdGFfc2VuZG1haWwuaDoKCiAgIGFkZCBORVRXT1JLLVNFUlZJQ0VTLU1JQiB0byBtaWIgcmVxdWlyZSBsaXN0CiAgIAoyMDAxLTA3LTA5IDExOjE1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICBmaXggdHJhcHNlc3MgcGFyc2luZyBzbyBhcyB0bzoKICAgICAtIHNldCB0aGUgZGVmYXVsdCBwb3J0IHRvIDE2MgogICAgIC0gZG9uJ3QgZnJlZSBtZW1vcnkgcGFzc2VkIHRvIHNubXBfcGFyc2VfYXJncygpIHNpbmNlCiAgICAgICBzbm1wX3BhcnNlX2FyZ3MgaXMgYnJva2VuIGFuZCBuZWVkcyB0byBjb3B5IG1lbW9yeSByYXRoZXIgdGhhbgogICAgICAganVzdCBtYWtlIHVzZSBvZiBpdC4KICAgCjIwMDEtMDYtMjcgMTU6NDggIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIFNpbXBsZSBmaXggdG8gdHJhcHNlc3MgYXJndW1lbnQgbGlzdAogICAKMjAwMS0wNi0yNSAwODo0NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9taWIuYzoKCiAgIHN1cHBvcnQgJ21pYnMgIiInLgogICAKMjAwMS0wNi0yMiAxMzowNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jOgoKICAgQWxsb3cgaW50ZXJmYWNlIHNubXBkLmNvbmYgdG9rZW5zIHRvIGNvbXBsZXRlbHkgb3ZlcnJpZGUgc3lzdGVtCiAgIHZhbHVlcy4gIFtidWcjNDI2OTc1XQogICAKMjAwMS0wNi0yMiAxMTozOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmMuY29uZjoKCiAgIGRlZmluZSB1bG9uZ19yZXQKICAgCjIwMDEtMDYtMjIgMDE6NDQgIGR0czEyCgogICAqIEZBUSwgbWFuL3NubXBkLmNvbmYuNS5kZWY6CgogICBJbmNsdWRlIGEgd2FybmluZyBvZiB0aGUgZXhwZXJpbWVudGFsIG5hdHVyZSBvZiBBZ2VudFggaW4gdGhlIG1hbiBwYWdlLAogICBhbmQgdXBkYXRlIHRoZSBGQVEgdG8gcmVmbGVjdCB0aGUgZnVsbGVyIGludGVncmF0aW9uIG9mIHRoaXMgc3VwcG9ydC4KICAgCjIwMDEtMDYtMjEgMTU6MjIgIG5iYQoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgRWxpbWluYXRlIGxvbmcgbG9uZyB2YXJpYWJsZXMKICAgCjIwMDEtMDYtMjEgMTU6MjIgIG5iYQoKICAgKiBhcHBzL3NubXB0YWJsZS5jOgoKICAgV2FybiBhYm91dCBkZXByZWNhdGVkIC1iIC13IGFuZCAtaSBvcHRpb25zLgogICAKMjAwMS0wNi0yMSAxNToxNSAgbmJhCgogICAqIG1hbi86IHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wc2V0LjEsIHNubXB3YWxrLjE6CgogICBVcGRhdGUgdGltZSBzdGFtcHMKICAgCjIwMDEtMDYtMjEgMTU6MDkgIG5iYQoKICAgKiBtYW4vc25tcHRyYW5zbGF0ZS4xOgoKICAgQWRkIC1tIGFuZCAtTSBvcHRpb25zIHRvIGhlYWRlci4gVXBkYXRlIFNFRSBBTFNPIHRvIHJlZmVyZW5jZSBzbm1wY21kCiAgIGFuZCBSRkMgMjU3OC04MCBpbiBwbGFjZSBvZiAxMTU1CiAgIAoyMDAxLTA2LTIxIDE1OjAxICBuYmEKCiAgICogc25tcGxpYi9wYXJzZS5jOgoKICAgRml4IHBhcnNpbmcgb2YgeHggLi4uOjo9IHsgeXkgfQogICAKMjAwMS0wNi0yMSAxMDoyNSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgdHlwb3MgKElPRCAtPiBPSUQpCiAgIAoyMDAxLTA2LTIxIDEwOjE4ICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIC0gbWVudGlvbiAibWFzdGVyIGFnZW50eCIKICAgLSBmaXggY29uZmlnIGZpbGUgcmUtcmVhZGluZyBvaWQuCiAgIAoyMDAxLTA2LTIxIDEwOjEwICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9zeXN0ZW1fbWliLmM6CgogICBtYWtlIHN5c2NvbnRhY3QgYW5kIHN5c2xvY2F0aW9uIGFjY2VwdCAiIiBzdHJpbmdzLgogICAKMjAwMS0wNi0yMSAwOTozNCAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhbnNsYXRlLmMsIG1hbi9zbm1wdHJhbnNsYXRlLjE6CgogICAtIEFwcGxpZWQgYXJnIGRvY3VtZW50YXRpb24gcGF0Y2ggZnJvbSBEYXZpZCBFaXNuZXIKICAgCjIwMDEtMDYtMTQgMjM6MTkgIG5iYQoKICAgKiBtYW4vc25tcHRyYXBkLjg6CgogICBEb2N1bWVudCAtbiBvcHRpb24KICAgCjIwMDEtMDYtMTIgMTU6MTQgIG5iYQoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIFByb3Blcmx5IGRldGVjdCBhbmQgZGlhZ25vc2UgYmFkIGJvb2xlYW4gYW5kIGludGVnZXIgY29uZmlndXJhdGlvbiB2YWx1ZXMKICAgCjIwMDEtMDYtMTIgMTU6MTIgIG5iYQoKICAgKiBhcHBzLzogc25tcGRlbHRhLmMsIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgIHNubXBzdGF0dXMuYywgc25tcHRyYXAuYywgc25tcHVzbS5jLCBzbm1wdmFjbS5jLCBzbm1wd2Fsay5jOgoKICAgUHJvcGVybHkgZGlhZ25vc2UgYmFkIC1DIG9wdGlvbnMKICAgCjIwMDEtMDYtMTIgMDc6MjQgIGR0czEyCgogICAqIHNubXBsaWIvcmVhZF9jb25maWcuYzoKCiAgIEZpeCAndW5yZWdpc3Rlcl9jb25maWdfaGFuZGxlcicgdG8gaGFuZGxlIHRhZ3Mgb3RoZXIKICAgdGhhbiB0aGUgZmlyc3QgaW4gdGhlIGxpc3QuICAoVGhhbmtzIHRvIFBhdWwgU2VyaWNlKS4KICAgCjIwMDEtMDYtMTEgMTU6NDQgIG5iYQoKICAgKiBhcHBzL3NubXB3YWxrLmMsIG1hbi9zbm1wd2Fsay4xOgoKICAgQWRkIGFuIG9wdGlvbnMgKC1DYykgdG8gc25tcHdhbGsgdGhhdCB3aWxsIHZhbGlkYXRlIHRoYXQgdGhlIHJldHVybmVkIG9iamVjdHMKICAgYXJlIGluZGVlZCBsZXhpY29ncmFwaGljYWxseSBpbmNyZWFzaW5nLgogICAKMjAwMS0wNi0xMSAxNTo0MyAgbmJhCgogICAqIGFwcHMvc25tcHNldC5jLCBtYW4vc25tcHNldC4xLCBzbm1wbGliL3NubXBfYXBpLmM6CgogICBBbGxvdyBhIHNpbXBsZXIgc25tcHNldCBub3RhdGlvbiB3aGVuIE1JQiBkYXRhIGFyZSBsb2FkZWQ6IFVzaW5nICc9JyBmb3IKICAgdHlwZSB0eXBlIHdpbGwgaW5mZXIgaXQgZnJvbSB0aGUgTUlCLgogICAKMjAwMS0wNi0xMSAxNTozOSAgbmJhCgogICAqIHNubXBsaWIvOiBtaWIuYywgcGFyc2UuYzoKCiAgIEZpeCBzb21lIGxvbmcgc3RhbmRpbmcgYnVncyB3aGVuIHNldmVyYWwgTUlCIGZpbGVzIGRlZmluZSB0aGUgc2FtZSBvYmplY3RzCiAgIHdpdGggZGlmZmVyZW50IG5hbWVzLiBIb3BlZnVsbHkgdGhlIHJlc3VsdHMgd2lsbCBiZSBjb25zaXN0ZW50IG5vdy4KICAgCjIwMDEtMDYtMTEgMTI6MTIgIG5iYQoKICAgKiBhcHBzL3NubXBkZWx0YS5jLCBzbm1wbGliL2ludDY0LmM6CgogICBBbm90aGVyIHRyeSBhdCBDb3VudGVyNjQgcHJvYmxlbXMsIHRoYW5rcyB0byBKYXNvbiBHbG91ZG9uIDxzbm1wQGdsb3Vkb24uY29tPgogICAKMjAwMS0wNi0xMSAxMTo1MiAgbmJhCgogICAqIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgRml4IGZvciBhIG1pc3NpbmcgMC1ieXRlIHRvIHRlcm1pbmF0ZSBjb21tdW5pdHkgc3RyaW5nLgogICBUaGFua3MgdG8gIktVQk9UQSxUYWtheWEiIDx0YWtheWFAcG8ubnR0cy5jby5qcD4uCiAgIAoyMDAxLTA2LTA2IDIxOjM4ICBuYmEKCiAgICogY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jOgoKICAgVXNlIDx1dG1weC5oPiBpZiBhdmFpbGFibGUgKHRvIGZpeCBjb3VudGluZyB1c2VycyBmb3IgU29sYXJpcykKICAgCjIwMDEtMDYtMDYgMjE6MzMgIG5iYQoKICAgKiBtYW4vc25tcGQuMS5kZWY6CgogICBNZW50aW9uIC1zIGFuZCAtUCBwaWRmaWxlIGFyZ3VtZW50cwogICAKMjAwMS0wNi0wNiAyMTozMiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jOgoKICAgRml4IHNlbmRpbmcgb2YgdHJhcHMgd2l0aG91dCB2YXJiaW5kcwogICAKMjAwMS0wNi0wNiAyMTozMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYzoKCiAgIE1vcmUgbWVhbmluZ2Z1bCBhcmd1bWVudHMgdG8gc2V0UGVycm9yc3RhdHVzICh0cnVlIGZpbGUgbmFtZXMpCiAgIAoyMDAxLTA1LTE3IDEyOjM2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wdjMuYzoKCiAgIEZpeCBhIFRydWx5IFN0dXBpZCBCdWcgdGhhbmtzIHRvIEthdHN1aGlzYSBBQkUgPGFiZWthdHN1QGN5c29scy5jb20+CiAgIAoyMDAxLTA1LTA0IDA5OjQ1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXBkZi5jOgoKICAgUmVtb3ZlIGR1cGxpY2F0ZSBsIGZyb20gJWxsZCBwcmludGYgc3ludGF4CiAgIAoyMDAxLTA1LTA0IDA3OjAwICBoYXJkYWtlcgoKICAgKiBNYWtlZmlsZS5pbjoKCiAgIGluc2FsbCBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgIAoyMDAxLTA1LTAzIDEwOjE1ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL01ha2VmaWxlLmluOgoKICAgYWRkIHNubXAtdGMuaCB0byBpbnN0YWxsIGxpc3QKICAgCjIwMDEtMDUtMDIgMDc6MDggIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBBZGQgLVQgZmxhZyB0byB1c2FnZSBvdXRwdXQuCiAgIAoyMDAxLTA1LTAxIDEyOjUzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgRml4IHVzZSBvZiBhIC0xIGFzc2lnbmVkIHRvIGEgdV9sb25nIGFzIGEgZmFpbHVyZSBjaGVja2luZyBjYXNlLgogICAKMjAwMS0wNC0yMyAxNzowOCAgaGFyZGFrZXIKCiAgICogbG9jYWwvdGttaWI6CgogICBmaXggd2FsayBwcm9ibGVtIG9uY2UgYW5kIGZvciBhbGwuCiAgIAoyMDAxLTA0LTE3IDEyOjI5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgR2V0IGRhdGEgZm9yIGhyU1dSdW5QZXJmVGFibGUgZm9yIGN5Z3dpbiB1bmRlciBOVCAob3IgYmV0dGVyKQogICAKMjAwMS0wNC0xNyAxMTozMyAgbmJhCgogICAqIGNvbmZpZy5ndWVzcywgY29uZmlnLnN1YiwgY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBVcGRhdGUgdG8gYSByZWNlbnQgdmVyc2lvbiBvZiBjb25maWcuZ3Vlc3MvY29uZmlnLnN1Yi4gVXBkYXRlIGNvbmZpZ3VyZQogICB0byBoYW5kbGUgdGhlIG5ldyBOZXRCU0QgdmFyaWFudCB0aGF0IGluY2x1ZGUgdGhlIG9iamVjdCBmb3JtYXQuCiAgIAoyMDAxLTA0LTEyIDA1OjEyICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBCZXR0ZXIgZml4IGZvciBidWcgIzQxNDg1NSBmcm9tIGFyYWplc2gKICAgSGFuZGxlcyBub24tcmVwZWF0ZXJzPTAgYXMgd2VsbCwgYW5kIGF2b2lkcyBtZW1vcnkgbGVha3MuCiAgIAoyMDAxLTA0LTExIDA2OjAxICBkdHMxMgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICBIYW5kbGUgR2V0QnVsayByZXF1ZXN0cyB3aXRoIG1heC1yZXBldGl0aW9ucz0wIHByb3Blcmx5IChidWcgIzQxNDg1NSkKICAgCjIwMDEtMDQtMTAgMDk6MzMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcGRmLmM6CgogICBmaXhlZCBzZWdmYXVsdCB3aGVuIHJvdyBoYXMgaG9sZXMuCiAgIAoyMDAxLTA0LTA2IDE2OjIwICBoYXJkYWtlcgoKICAgKiBtYW4vc25tcGNtZC4xOgoKICAgLSBBZGRlZCBkb2N1bWVudG90aW9uIGZvciAtT3QKICAgCjIwMDEtMDQtMDYgMDc6MzIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYzoKCiAgIHRyYXBzL2luZm9ybXMgcmV2ZXJzZWQKICAgCjIwMDEtMDQtMDUgMDk6MzQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzcy5jOgoKICAgcmVtb3ZlIHVudXNlZCB2YXJpYWJsZSBmcm9tIHNubXBfb2lkX21pbl9jb21wYXJlLgogICAKMjAwMS0wNC0wNSAwOToxMyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBGaXggc25tcF9vaWRfY29tcGFyZSBhbmQgcmV2ZXJzZSBlbmNvZGluZ3MgdG8gZGVhbCB3aXRoIG51bWJlcnMgPiAyXjMxLgogICAKMjAwMS0wNC0wNSAwODoyMSAgc2xpZgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmM6CgogICB1c2UgbWFsbG9jIHRvIGRlY3JlYXNlIHN0YWNrIHNpemUgaW4gc25tcGRfcGFyc2VfY29uZmlnX3RyYXBzZXNzLgogICAKMjAwMS0wNC0wNSAwNjoxNCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmM6CgogICBFeHRlbmQgcmVjZW50ICdwYXNzJyBjaGFuZ2VzIHRvICdwYXNzX3BlcnNpc3QnLiAgKFRoYW5rcywgTWlrZSEpCiAgIAoyMDAxLTA0LTA1IDAyOjI3ICBkdHMxMgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmM6CgogICBIYW5kbGUgc2V0dGluZyBudWxsIHN0cmluZyB2YWx1ZXMgdmlhIHRoZSAncGFzcycgbWVjaGFuaXNtLiAoU3VwcG9ydCM0MDY3MjgpCiAgIEFsc28gaGFuZGxlIGVtYmVkZGVkIHdoaXRlc3BhY2UgaW4gc3VjaCB2YWx1ZXMuCiAgIAoyMDAxLTA0LTA0IDE0OjU2ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMSApCiAgIAoyMDAxLTA0LTA0IDE0OjU1ICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRToKCiAgIENoYW5nZSB3b3JkaW5nIHRvIHNheSA0LjIgbGluZSBpcyB0aGUgbGFzdCB0byB1c2UgdGhlIHVjZC1zbm1wIG5hbWUuCiAgIAoyMDAxLTA0LTA0IDE0OjUxICBoYXJkYWtlcgoKICAgKiBDaGFuZ2VMb2c6CgogICBDaGFuZ2VMb2cKICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjIgLT4gVjQuMi4xCgoyMDAxLTA0LTA0IDE0OjA0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmM6CgogICBmaXggbWlzc2luZyB2YXJpYWJsZSBvbiBzb2xhcmlzIDIuNgogICAKMjAwMS0wNC0wNCAxNDowMiAgaGFyZGFrZXIKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgdXNlIGtpbGwgLVRFUk0gaW5zdGVhZCBvZiBraWxsIC1TSUdURVJNIGZvciBwb3J0YWJpbGl0eSAoYnJlYWtzIG9uIHNvbGFyaXMpLgogICAKMjAwMS0wNC0wNCAxMjozOSAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBDbGVhbnVwIGRlYnVnIG1lc3NhZ2VzLCBidWlsZC4KICAgCjIwMDEtMDQtMDQgMDk6MTggIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jOgoKICAgRml4IG5ldHdvcmsgYnl0ZSBvcmRlciBmb3IgSXBBZGRyZXNzIGRpc3BsYXllZC4KICAgCjIwMDEtMDQtMDQgMDg6NTAgIHNsaWYKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIHF1aWV0IGV4aXQgb24gU0lHVEVSTS9TSUdJTlQsIHNhbWUgYXMgc25tcGQuCiAgIAoyMDAxLTA0LTA0IDA4OjQ5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC86IGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oOgoKICAgZml4IGZvciBhdXRvX25saXN0IGJvZ3VzIGRlZmluaXRpb25zIGZvciBtYWNoaW5lcyB3aXRob3V0IG5saXN0LgogICAKMjAwMS0wNC0wNCAwODo0OSAgaGFyZGFrZXIKCiAgICogUkVBRE1FLnNubXB2MzoKCiAgIHVwZGF0ZSB0byB3aGVuIGFnZW50IHJlbW92ZXMgImNyZWF0ZVVzZXIiIGRpcmVjdGl2ZXMuCiAgIAoyMDAxLTA0LTA0IDA4OjMxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Rfc25tcC5oOgoKICAgQXBwbGllZCBwYXRjaCAjNDEyMDgwOiBhZGQgZnJlZWJzZDUgdG8gbW9kdWxlIGluY2x1ZGUgbGlzdC4KICAgCjIwMDEtMDQtMDQgMDg6MTIgIGR0czEyCgogICAqIEVYQU1QTEUuY29uZi5kZWY6CgogICBEb2N1bWVudCBob3cgdG8gZW5hYmxlIHRoZSBBZ2VudFggZmFjaWxpdHkgaW4gdGhlIG1hc3RlciBhZ2VudC4KICAgCjIwMDEtMDQtMDQgMDc6NTkgIGhhcmRha2VyCgogICAqIGxvY2FsL3RrbWliOgoKICAgZml4IGJ1ZyAjNDExOTE3OiBjaGFuZ2Ugd2FsayBlbmQgY29uZGl0aW9uIGFzIHN1Z2dlc3RlZCBieSBzdWJtaXR0ZXIuCiAgIAoyMDAxLTA0LTA0IDA3OjQzICBkdHMxMgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBDaGFuZ2UgJ0xpbmUnIHZhcmlhYmxlIG5hbWUsIHRvIGFzc2lzdCB3aXRoIE1hYyBwb3J0LgogICAKMjAwMS0wNC0wNCAwNzo0MiAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJveHkuYzoKCiAgIEZpeCB0eXBvIGluIGNhc3QgKG1pc3NpbmcgJ3N0cnVjdCcpCiAgIAoyMDAxLTA0LTA0IDA3OjM3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBVc2UgYSBsYXJnZXIgbWFsbG9jZWQgYnVmZmVyIHdoZW4gZGVjb2RpbmcgYSBsYXJnZSBpbmNvbWluZyBlbmNyeXB0ZWQgbWVzc2FnZS4KICAgCjIwMDEtMDQtMDQgMDc6MzYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9kZWJ1Zy5jOgoKICAgTGltaXQgc2l6ZSBvZiBoZXggbWVzc2FnZXMgdG8gMS81dGggYnVmZmVyIHNpemUgKHRvIGJlIHNhZmUpLgogICAKMjAwMS0wNC0wNCAwNzoyNCAgamJwbgoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgIC0gY2FsbCBleHRlcm5hbCBzaWduYWwgaGFuZGxlcnMgYmVmb3JlIGNhbGxpbmcgc25tcF9zZWxlY3RfaW5mbygpLAogICAgICByYXRoZXIgdGhhbiBhZnRlciBjYWxsaW5nIHNubXBfc2VsZWN0X2luZm8oKSBidXQgYmVmb3JlIHNlbGVjdCgpLgogICAgICBUaGlzIGZpeGVzIGEgcG90ZW50aWFsIHByb2JsZW0gdGhhdCBjb3VsZCBhcmlzZSBpZiBhIHNpZ25hbCBoYW5kbGVyCiAgICAgIGNsb3NlZCBhIHNlc3Npb24sIHdoaWNoIHdvdWxkIGNhdXNlIHNlbGVjdCgpIHRvIHJldHVybiAtMSB3aXRoCiAgICAgIEVCQURGLCBhbmQgdGh1cyB0ZXJtaW5hdGUgdGhlIGFnZW50LgogICAKMjAwMS0wNC0wNCAwNjo1MCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGlzay5jOgoKICAgRW5zdXJlIHRoYXQgY2hlY2tpbmcgZm9yICdzdGF0dmZzJyBpcyBkb25lIGNvbnNpc3RlbnRseQogICAKMjAwMS0wNC0wNCAwNjo0OCAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jOgoKICAgZW5zdXJlIHRoYXQgJ2V4ZWNfY29tbWFuZCcgaXMgdXNlZCBjb25zaXN0ZW50bHkgd2l0aCB0aGUgYXZhaWxhYmlsaXR5IG9mIGV4ZWN2CiAgIAoyMDAxLTA0LTA0IDA2OjQ1ICBkdHMxMgoKICAgKiBzbm1wbGliLzogbWliLmMsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jOgoKICAgS2VlcCBvbmUgb2YgdGhlIHBpY2tpZXIgY29tcGlsZXJzIChIUCdzIGFDQykgaGFwcHkuCiAgIAoyMDAxLTA0LTAzIDIyOjA3ICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXB1c20uYzoKCiAgIEZpeCBtYXhpbXVtIGVuY3J5cHRlZCBwYWNrZXQgbGVuZ3RoIHN1cHBvcnQgZm9yIHJldmVyc2UgZW5jb2RlZCBwYWNrZXRzLgogICAKMjAwMS0wNC0wMyAxODowNyAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMjBwcm94eWdldDoKCiAgIGZpeCByd2NvbW11bml0eQogICAKMjAwMS0wNC0wMyAxNjo0NCAgaGFyZGFrZXIKCiAgICogbG9jYWwvd2VzcmVzdGFydDoKCiAgIHJlbW92ZSBvbGQgdW51c2VkIHNjcmlwdAogICAKMjAwMS0wNC0wMyAxNjo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmYuZGlyL3NubXBkLmNvbmYvb3BlcmF0aW9uOgoKICAgQWRkIHNubXBjb25mIGRpcmVjdGl2ZSBzdXBwb3J0IGZvciB0aGUgbmV3ICJtYXN0ZXIiIHRva2VuLgogICAKMjAwMS0wNC0wMyAxNjo0MSAgaGFyZGFrZXIKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBGaXggYnVnIGluIG1lbnVzIGZvciBjb25maWd1cmF0aW9uIGZpbGVzIGNvbnRhaW5pbmcgb25seSAiZ3JvdXBzIi4KICAgCjIwMDEtMDQtMDMgMTY6NDAgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIENoYW5nZSBteSBuYW1lIC0+IG5ldC1zbm1wIGRldmVsb3BlcnMuCiAgIAoyMDAxLTA0LTAzIDE1OjM2ICBoYXJkYWtlcgoKICAgKiBFWEFNUExFLmNvbmYuZGVmOgoKICAgbWVudGlvbiBzbm1wY29uZgogICAKMjAwMS0wNC0wMyAxNToyOCAgaGFyZGFrZXIKCiAgICogUkVBRE1FOgoKICAgdXJsIGNoYW5nZXMgbW9zdGx5LgogICAKMjAwMS0wNC0wMyAxNToyOCAgaGFyZGFrZXIKCiAgICogTkVXUzoKCiAgIDQuMi4xIHVwZGF0ZSAocGxlYXNlIGNoZWNrKS4KICAgCjIwMDEtMDQtMDMgMTU6MjggIGhhcmRha2VyCgogICAqIEZBUToKCiAgIGZ0cCBzaXRlIHVwZGF0ZS4KICAgCjIwMDEtMDQtMDMgMTQ6MDQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgQWRkZWQgYWdlbnR4IHRvIGRlZmF1bHQgbW9kdWxlcyB0byBjb21waWxlIGluCiAgIAoyMDAxLTA0LTAzIDEwOjEyICBoYXJkYWtlcgoKICAgKiBsb2NhbC9taWIyYzoKCiAgIGFkZCBhIGNvbW1lbnQgYXQgdGhlIGVuZCBvZiB0aGUgbWliMmMgb3V0cHV0IGV4cGxhaW5pbmcgdGhhdCBpdHMKICAgbWVyZWx5IGEgdGVtcGxhdGUuCiAgIAoyMDAxLTA0LTAzIDA4OjI3ICBoYXJkYWtlcgoKICAgKiBBR0VOVC50eHQsIEZBUSwgUE9SVElORywgUkVBRE1FLCBSRUFETUUuYWdlbnR4OgoKICAgV2ViIHBhZ2UvZnRwIHNpdGUgdXBkYXRlcy4gIFVzZXMgd3d3Lm5ldC1zbm1wLm9yZyBldmVyeXdoZXJlIG5vdy4KICAgCjIwMDEtMDQtMDMgMDY6MjQgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgRml4IHNpZ25lZC91bnNpZ25lZCBjb21wYXJlLgogICAKMjAwMS0wNC0wMyAwNjoyMSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvbWliSUkva2VybmVsX2xpbnV4LmM6CgogICBQbHVnIGZpbGUtZGVzY3JpcHRvciBsZWFrIHdoZW4gdXNpbmcgY2FjaGVkIGRhdGEuICAoQnVnIzQxMjAwMCkKICAgCjIwMDEtMDQtMDIgMjM6MjIgIG5iYQoKICAgKiBhcHBzL3NubXB0ZXN0LmM6CgogICBGaXggYW4gaW5jb21wbGV0ZWx5IGluaXRpYWxpemVkIHZhcmlhYmxlCiAgIAoyMDAxLTA0LTAyIDIzOjIxICBuYmEKCiAgICogbG9jYWwvc25tcGNvbmY6CgogICBUaGUgYW5zd2VycyBmb3IgdGhlICJsb2FkIHdoaWNoIGZpbGVzIiBtZW51IGFyZSBrZXB0IHNlY3JldCBmcm9tIHRoZSBjb2RlCiAgIHRoYXQgbG9hZHMgdGhlIGZpbGVzIC4uLi4gZml4ZWQuCiAgIAoyMDAxLTA0LTAyIDIwOjAyICBoYXJkYWtlcgoKICAgKiBsb2NhbC86IE1ha2VmaWxlLmluLCBzbm1wY29uZi5kaXIvc25tcHRyYXBkLmNvbmYvZm9ybWF0dGluZywKICAgc25tcGNvbmYuZGlyL3NubXB0cmFwZC5jb25mL3RyYXBoYW5kbGU6CgogICBBZGRlZCBzbm1wdHJhcGQgY29uZmlndXJhdGlvbiBmaWxlIGRpcmVjdGl2ZXMgdG8gc25tcGNvbmYuCiAgIAoyMDAxLTA0LTAyIDEwOjA4ICBqYnBuCgogICAqIG1hbi9zbm1wX2FnZW50X2FwaS4zOgoKICAgIC0gdXBkYXRlIGRvY3VtZW50YXRpb24gb2YgYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MgdG8gcmVmbGVjdAogICAgICBjdXJyZW50IGJlaGF2aW91cgogICAKMjAwMS0wNC0wMiAwOTo1OCAgamJwbgoKICAgKiBhZ2VudC9zbm1wX2FnZW50LmM6CgogICAgLSBGaXggbWVtb3J5IGxlYWsgaW4gaGFuZGxlX29uZV92YXIgd2hlcmUgbG9uZyB2YXJiaW5kcyB3ZXJlbid0CiAgICAgIGNvcnJlY3RseSBmcmVlKClkLgogICAKICAgIC0gQ2hhbmdlIGJlaGF2aW91ciBvZiBhZ2VudF9jaGVja19hbmRfcHJvY2VzcyBzbyB0aGF0IGFsYXJtcyBydW4KICAgICAgY29ycmVjdGx5LgogICAKMjAwMS0wNC0wMiAwODo1MSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jOgoKICAgVXNlIHRoZSAnc3RhbmRhcmQnIGNvbmZpZyBoYW5kbGVyIHJlZ2lzdHJhdGlvbiByb3V0aW5lLAogICBhbmQgcmVjb2duaXNlIHRoZSBjb25maWcgc2V0dGluZyAnbWFzdGVyIGFsbCcKICAgCjIwMDEtMDQtMDIgMDY6NTMgIG5iYQoKICAgKiBtYW4vc25tcGQuY29uZi41LmRlZjoKCiAgIEZpeCBzb21lIG1pc3NpbmcgcXVvdGluZyBvbiAuSVAgcGFyYW1ldGVycwogICAKMjAwMS0wMy0zMCAwODowNSAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUuYWdlbnR4LCBhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eDoKCiAgIG1vdmVkIGFnZW50eCBSRUFETUUgdG8gdG9wCiAgIAoyMDAxLTAzLTMwIDA3OjIyICBkdHMxMgoKICAgKiBGQVE6CgogICBUeXBvIGluIEFnZW50WCBSRUFETUUgZmlsZW5hbWUKICAgCjIwMDEtMDMtMzAgMDc6MjAgIGR0czEyCgogICAqIGFnZW50LzogZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICBtaWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCwgbWliZ3JvdXAvYWdlbnR4L21hc3Rlci5jLAogICBtaWJncm91cC9hZ2VudHgvbWFzdGVyLmg6CgogICBQcm92aWRlICdtYXN0ZXInIGNvbmZpZyBkaXJlY3RpdmUgdG8gY29udHJvbCB3aGV0aGVyIG9yIG5vdCB0bwogICBhY3RpdmF0ZSBleHRlbnNpYmxlIHN1YmFnZW50IHN1cHBvcnQuCiAgICAgSW5pdGlhbGx5IHJlc3RyaWN0ZWQgdG8gQWdlbnRYIHN1cHBvcnQgb25seS4KICAgCjIwMDEtMDMtMzAgMDM6NDYgIGR0czEyCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9SRUFETUUuYWdlbnR4OgoKICAgVXBkYXRlIHRvIHJlZmxlY3QgdGhlIGluY3JlYXNlZCBtYXR1cml0eSBvZiB0aGUgQWdlbnRYIGltcGxlbWVudGF0aW9uLgogICAKMjAwMS0wMy0zMCAwMzozNCAgZHRzMTIKCiAgICogRkFROgoKICAgVHdlYWtlZCB2YXJpb3VzIGVudHJpZXMsIGFuZCBhZGRlZCBhIGZldyBuZXcgb25lcy4gIEdlbmVyYWwgU2hpZWxkIG1lZGRsaW5nLgogICAKMjAwMS0wMy0zMCAwMTowMCAgZHRzMTIKCiAgICogUkVBRE1FOgoKICAgQWRkIHByb21pbmVudCB3YXJuaW5nIHJlZ2FyZGluZyB1Y2Qtc25tcCA9PiBuZXQtc25tcCBzd2l0Y2guCiAgIAoyMDAxLTAzLTMwIDAwOjQ2ICBkdHMxMgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggaW50ZXJwcmV0YXRpb24gb2YgInB1cmUgbnVtZXJpYyIgcGVlcm5hbWUgc3RyaW5ncyAoaS5lLiBsaXN0ZW4gb24gdGhlCiAgICAgc3BlY2lmaWVkIHBvcnQgb24gYWxsIGludGVyZmFjZXMpIC0gcHJvYmxlbSBpZGVudGlmaWVkIGJ5IE1hbGEgUmFtYWtyaXNobmFuLgogICAKMjAwMS0wMy0zMCAwMDowNCAgbmJhCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIFJlcGxhY2UgYXRvaS9hdG9sIHdpdGggc3RydG8odSlsIHdoaWNoIGhhcyBiZXR0ZXIgb3V0LW9mLXJhbmdlIHJldHVybnMuCiAgIFRoaXMgaXMgbm90IGEgcGVyZmVjdCBzb2x1dGlvbiwgYnV0IGl0IGlzIGJldHRlciAuLi4KICAgCjIwMDEtMDMtMjkgMjE6NDMgIGhhcmRha2VyCgogICAqIElTU1VFUzoKCiAgIHJtIElTU1VFUwogICAKMjAwMS0wMy0yOSAxNDozNCAgaGFyZGFrZXIKCiAgICogQ09QWUlORzoKCiAgIG1pbm9yIGZvcm1hdHRpbmcuCiAgIAoyMDAxLTAzLTI5IDE0OjMzICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgVW0sIGdvdCB0aGUgeWVhciByaWdodCB0aGlzIHRpbWUuCiAgIAoyMDAxLTAzLTI5IDE0OjMyICBoYXJkYWtlcgoKICAgKiBDT1BZSU5HOgoKICAgdXBkYXRlIGZvciAyMDAxOiBhZGRlZCBteSByZXF1aXJlZCBOQUkgQlNEIGNvcHlyaWdodC4KICAgCjIwMDEtMDMtMjkgMDg6MjMgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgbWVyZ2UgY2hhbmdlIGZyb20gbWFpbiBicmFuY2ggKHJldHVybl92YWx1ZT0xIHN0YXRlbWVudCkuCiAgIAoyMDAxLTAzLTI5IDA4OjIxICBzbGlmCgogICAqIHdpbjMyL2xpYnNubXBfZGxsL2xpYnNubXAuZGVmOgoKICAgQWRkIHZhY21faXNfY29uZmlndXJlZC4KICAgCjIwMDEtMDMtMjggMjI6MTIgIG5iYQoKICAgKiBtaWJzLzogcmZjbGlzdCwgcmZjbWlicy5kaWZmOgoKICAgQWRkIFByaW50ZXItTUlCIHRvIHRoZSByZmNsaXN0IHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgcGF0Y2guCiAgIAoyMDAxLTAzLTI4IDEzOjA2ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2NsaWVudC5jOgoKICAgUHJvcGVybHkgaWdub3JlIG5vbi1yZXNwb25zZSBQRFUncyB3aGVuIGRvaW5nIGFzeW5jIHRyYW5zYWN0aW9uLgogICAKMjAwMS0wMy0yOCAxMzowNCAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvbWliLmM6CgogICBGaXggaW5kZXggaGFuZGxpbmcgdG8gcHJvcGVybHkgYWNjZXB0IGluZGV4aW5nIHdpdGggVGltZVRpY2tzLgogICBJbXBsZW1lbnQgLUlyIHRvIGRpc2FibGUgaW5kZXggY2hlY2tzLgogICAKMjAwMS0wMy0yOCAwNjoyMCAgaGFyZGFrZXIKCiAgICogRkFRLCBSRUFETUUsIHNlZHNjcmlwdC5pbiwgdmVyc2lvbi5oOgoKICAgLSAodmVyc2lvbi5oIHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLjEucHJlMiApCiAgIAoyMDAxLTAzLTI3IDEwOjI3ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgVXNlIHNubXBfbG9nIHdpdGggJXMgdG8gcHJldmVudCAlIGV4cGFuc2lvbiBpbiBvY3RldCBzdHJpbmdzIGNvbnRhaW5pbmcgYSAlcy4KICAgCjIwMDEtMDMtMjcgMDU6MzcgIGR0czEyCgogICAqIGFnZW50Lzogc25tcF9hZ2VudC5jLCBtaWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYzoKCiAgIEhhbmRsZSBub24tcmVzcG9uc2l2ZSBBZ2VudFggc3ViLWFnZW50cyBtb3JlIHJvYnVzdGx5LgogICAgICAoQmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbCAmIFBhdWwgUmFzbXVzc2VuKQogICAKMjAwMS0wMy0yNyAwMjozNSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBSZXNldCBjb3VudCBvZiBhdXRob3JpemVkIHBlZXJzIG9uIGNsb3NlZG93bi4gIChUaGFua3MgdG8gVmxhZCBUdW5paykKICAgCjIwMDEtMDMtMjYgMTg6MDMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jLCBzbm1wbGliL3ZhY20uYywgc25tcGxpYi92YWNtLmg6CgogICBGaXhlZCB2YWNtIHRvIGRyb3AgdjEvdjJjIHBhY2tldHMgcHJvcGVybHkgd2hlbiBubyBjb20yc2VjIGVudHJpZXMgYXJlIGZvdW5kLgogICAKMjAwMS0wMy0yNiAxMTowNiAgaGFyZGFrZXIKCiAgICogbG9jYWwvaXBmLW1vZC5wbDoKCiAgIGFkZCB1c2FnZSBjb21tZW50IGF0IHRvcAogICAKMjAwMS0wMy0yMiAxNDozNCAgbmJhCgogICAqIG1pYnMvcmZjbGlzdDoKCiAgIE5ldyBNSUIgaW4gUkZDIDMwODM6IERPQ1MtQlBJLU1JQgogICAKMjAwMS0wMy0yMiAxNDoyNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jLCBzL2N5Z3dpbi5oLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3V0aWxzLmM6CgogICBNYWtlIG1vc3Qgb2YgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYiBjb21waWxlIHVuZGVyIEN5Z3dpbi4gV2UgY2FuIG5vdyBkbwogICAtLXdpdGgtbWliLW1vZHVsZXM9aG9zdCAtLXdpdGgtb3V0LW1pYi1tb2R1bGVzPWhvc3QvaHJfbmV0d29yawogICAKMjAwMS0wMy0yMiAxMjoyNyAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jOgoKICAgZml4IGhlYWRlcl9zaW1wbGVfdGFibGUoKSBmb3IgdG9vIGxvbmcgcmVxdWVzdHMKICAgCjIwMDEtMDMtMjIgMDg6MTMgIGhhcmRha2VyCgogICAqIGFwcHMvc25tcHRyYXBkLmM6CgogICBCYWQgV2VzOiBmaW5kIGFsbCBpbnN0YW5jZXMgb2YgY3V0LW4tcGFzdGUgZXJyb3JzIGJlZm9yZSBjb21taXR0aW5nLgogICAKMjAwMS0wMy0yMiAwODoxMiAgaGFyZGFrZXIKCiAgICogYXBwcy9zbm1wdHJhcGQuYzoKCiAgIEJhZCBXZXM6IGRvbid0IGNhbGwgZnVuY3Rpb24gd2l0aG91dCB0aGUgKClzLiAgKGF0IGxlYXN0IGluIEMpLgogICAKMjAwMS0wMy0yMiAwNzo0NiAgZHRzMTIKCiAgICogYWdlbnQvYWdlbnRfdHJhcC5jOgoKICAgRml4IGZvciBtaW5vciBtZW1vcnkgbGVhayB3aXRoIHRyYXAtcmVsYXRlZCB2YXJiaW5kIHZhbHVlcy4KICAgVGhhbmtzIHRvIEpvaG4gVmlsbGFsb3ZvcyAoYW5kIHRoZSBJbnRlbCBTTk1QIHRlYW0pCiAgIAoyMDAxLTAzLTIxIDE3OjIyICBkcmllaHVpcwoKICAgKiBzbm1wbGliL21pYi5jOgoKICAgQnVnZml4IGZvciBjcmFzaCBhdCBzbm1wX3NodXRkb3duIHRpbWUgd2l0aCBPUydzIHRoYXQgY2hlY2sgcG9pbnRlcgogICB2YWxpZGl0eSAoZS5nLiwgRnJlZUJTRCkKICAgCjIwMDEtMDMtMjEgMDg6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYzoKCiAgIGpvaW4gYnJva2VuIHNubXBfbG9nIGxpbmVzCiAgIAoyMDAxLTAzLTIxIDA4OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgZml4IC1GIChJIHRoaW5rKQogICAKMjAwMS0wMy0yMSAwNzo0MyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgcGF0Y2ggZnJvbSBIYXJyaWUgdG8gZml4IHZhcmlhYmxlIHR5cGVzIChpbnQgLT4gc2l6ZV90KQogICAKMjAwMS0wMy0yMCAwODoyNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmgsCiAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYywgcy9saW51eC5oOgoKICAgRml4IHRoZSBhdFRhYmxlIGFuZCBpcE5ldFRvcE1lZGlhVGFibGUgZm9yIExpbnV4IHRvIHJldHVybiB0aGUgaWZJbmRleAogICAKMjAwMS0wMy0xOSAxMzoxNCAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIG1hbi9zbm1wZGVsdGEuMToKCiAgIE1ham9yIG9wdGlvbiBwYXJzaW5nIHN1cmdlcnkgdG8gY2F0aGVyIGZvciB0aGUgZ2V0b3B0IHVzaW5nIHZlcnNpb24gb2YKICAgc25tcF9wYXJzZV9hcmdzLiBTZWVtcyB0byBoYXZlIGJlZW4gZm9yZ290dGVuIHdoZW4gdGhlIHJlc3Qgb2YgdGhlIGFwcHMKICAgd2VyZSB1cGRhdGVkLgogICAKMjAwMS0wMy0xOSAxMzoxMyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIFJlLW9yZGVyIHN5cy9jb25mLmggYW5kIHN5cy9wYXJhbS5oIHRvIG1ha2UgRnJlZUJTRC01IGhhcHB5CiAgIAoyMDAxLTAzLTE1IDEzOjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgZml4ZWQgYnVnICM0MDUwMDA6IGRyb3BwZWQgc3VwcG9ydCBmb3IgSVBPVVROT1JPVVRFUywgc2luY2Ugbm8KICAgY2FsY3VsYXRpb24gb2YgaXQgc2VlbXMgY2xvc2UgdG8gY29ycmVjdC4KICAgCjIwMDEtMDMtMTUgMTM6MzYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3VkcC5jOgoKICAgZml4IHBhcnQgMiBvZiBidWcgNDA1NTE5IGFkZGluZyBmdWxsc29jayB0byB1ZHBpbmVycm9ycwogICAKMjAwMS0wMy0xNSAxMzozMSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBmaXggYnVnICM0MDgzODggd2hlcmUgbWVtbW92ZSBpcyBjYWxsZWQgd2l0aCB0b28gc2hvcnQgYSBsZW5ndGguCiAgIAoyMDAxLTAzLTE1IDExOjIxICBoYXJkYWtlcgoKICAgKiBGQVEsIFJFQURNRSwgc2Vkc2NyaXB0LmluLCB2ZXJzaW9uLmg6CgogICAtICh2ZXJzaW9uLmggc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIuMS5wcmUxICkKICAgCjIwMDEtMDMtMTUgMDM6MzQgIGpicG4KCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAga2lsbCAtU0lHS0lMTCBpc24ndCBsZWdhbCBzeW50YXggb24gU29sYXJpcyBvciBMaW51eDsgY2hhbmdlZCB0byBraWxsIC05CiAgIHdoaWNoIGlzIGxpa2VseSBzYWZlcgogICAKICAgZG9uJ3Qgc2V0IHJldHVybl92YWx1ZSB0byAxIGFmdGVyIGtpbGxpbmcgc25tcGQsIHdoaWNoIGNhdXNlcyBzcHVyaW91cwogICB0ZXN0IGZhaWx1cmVzCiAgIAoyMDAxLTAzLTE0IDE0OjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF90cmFwLmg6CgogICBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOiBtYWtlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMgYSBwdWJsaWMgZm4uCiAgIAoyMDAxLTAzLTE0IDExOjA4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jOgoKICAgZml4IGlwbmV0dG9tZWRpYSBpbmRleGluZyBvbiBzb2xhcmlzLgogICAKMjAwMS0wMy0xNCAxMDoyNyAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmM6CgogICBVc2UgY29uZmlnLmgsIGRvbid0IHVzZSB1Y2Qtc25tcCBkaXJlY3RvcnkgdG8gYnVpbGQgaW4gdGhlIG1pYmdyb3VwIHRyZWUuCiAgIAoyMDAxLTAzLTE0IDEwOjE4ICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBxdWlldCAid2hpY2giIG91dHB1dC4gIG5ldmVyIGVuZGluZyBzYWdhLi4uCiAgIAoyMDAxLTAzLTE0IDEwOjA4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jOgoKICAgcXVpZXQgdW5zaWduZWQgbG9uZyBjb21wYXJlLgogICAKMjAwMS0wMy0xNCAxMDowMCAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC9hZ2VudHgvY2xpZW50LmM6CgogICBHZXQgYSBkZWNsIG9mIGluX2FkZHJfdCBmcm9tIG5ldGluZXQvaW4uaCwgd2hlcmUgbmVjZXNzYXJ5LgogICAKMjAwMS0wMy0xNCAxMDowMCAgc2xpZgoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBBdm9pZCB3YXJuaW5ncyBvZiBzdHJ1Y3QgdGltZXZhbCBkZWNsIGluIHN5c3RlbS5oIGJ5IGluY2x1ZGluZyAqdGltZS5oKi4KICAgCjIwMDEtMDMtMTQgMDk6NDcgIHNsaWYKCiAgICogYWdlbnQvc25tcGQuYywgYXBwcy9zbm1wdmFjbS5jLCBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYywKICAgc25tcGxpYi9wYXJzZS5jOgoKICAgcGF0Y2ggc3VibWl0dGVkIGJ5IEhhcnJpZSBIYXpld2lua2VsCiAgIAoyMDAxLTAzLTE0IDA5OjQwICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICBkb24ndCBydW4gdGVzdHMgd2l0aG91dCBuZWVkZWQgcHJvZ3JhbXM6IHNubXBkLCBzbm1wZ2V0LCBzbm1wZ2V0bmV4dC4KICAgCjIwMDEtMDMtMTQgMDg6MjQgIHNsaWYKCiAgICogY29uZmlndXJlLCBjb25maWd1cmUuaW46CgogICBQcm92aWRlIGFuIGVtcHR5IERMTElCUyB2YWx1ZSBmb3Igbm9uLWRsbW9kIHVzZXMuCiAgIAoyMDAxLTAzLTE0IDA3OjM2ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jOgoKICAgY2FzdCB1X2xvbmcgdG8gdV9jaGFyIHdoZW4gc3RvcmluZyA4LWJpdCB2YWx1ZXMuCiAgIAoyMDAxLTAzLTE0IDA3OjMzICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBmaXggdW5zaWduZWQgbGVuZ3RoIGNvbXBhcmVzLgogICAKMjAwMS0wMy0xNCAwNTo0NSAgZHRzMTIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgRml4IExpbnV4IGZpbGUgZGVzY3JpcHRvciBsZWFrIChyZXBvcnRlZCBieSBPbGl2ZXIgRueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXnqatnZXIpCiAgIAoyMDAxLTAzLTEzIDEzOjIwICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL2RlZmF1bHRfc3RvcmUuYzoKCiAgIFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWwgdG8gY2hlY2sgZm9yIE5VTExzIGluIERFQlVHIG1zZwogICAKMjAwMS0wMy0xMiAxNDowNiAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC86IG1hc3Rlcl9hZG1pbi5jLCBzdWJhZ2VudC5jOgoKICAgRml4IHNvbWUgbWlub3IgbGVha3MuCiAgIAoyMDAxLTAzLTEyIDE0OjA1ICBuYmEKCiAgICogYWdlbnQvc25tcGQuYzoKCiAgIFNvbWUgbWlub3IgZml4ZXMgdG8gYXJndW1lbnQgcHJvY2Vzc2luZywgaW5jbHVkaW5nIHRlcm1pbmF0aW5nIHNubXBkIG9uCiAgIGV4dHJhbmVvdXMgbm9uLW9wdGlvbiBhcmd1bWVudHMuCiAgIAoyMDAxLTAzLTEwIDA4OjEzICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jOgoKICAgQnVnICM0MDQ5ODg6IGRvbid0IHVzZSBpcHN0YXQuaXBzX2ZyYWd0aW1vdXQgYXMgYSBudW1iZXIgb2Ygc2Vjb25kcy4KICAgCjIwMDEtMDMtMDcgMTA6MjYgIHNsaWYKCiAgICogdGVzdGluZy9ldmFsX3Rvb2xzLnNoOgoKICAgCiAgIG5ldyBERUxBWSBmdW5jdGlvbjsgc3RhcnQvc3RvcCBkYWVtb25zIHVzaW5nIG5ldyBTVEFSVFBST0cvU1RPUFBST0cgd2l0aCBERUxBWTsKICAgbG9nIGNvbW1hbmRzIGlzc3VlZCBhbmQgZmluYWwgcmVzdWx0IHRvIFNOTVBfVE1QRElSL2ludm9rZWQ7CiAgIHN1cHByZXNzICJraWxsIiBvdXRwdXQgdG8gaGVscCBDeWd3aW4gdXNlcnMgaGFwcHkuCiAgIAoyMDAxLTAzLTA3IDEwOjIzICBzbGlmCgogICAqIHRlc3RpbmcvUlVOVEVTVFM6CgogICAKICAgYWRkIC1TIHBhcmFtZXRlciBmb3IgREVMQVkgc2Vjb25kczsgYWRkIHRyYXAgZm9yIGludGVycnVwdCBjb250cm9sOwogICBwYXNzIHRlc3QgbnVtYmVyIGFuZCBkaXNwbGF5LWhlYWRlci1vbmx5IHRvIGV2YWxfb25lc2NyaXB0LnNoOwogICBhZGQgd2hpY2ggdGVzdCB0byB2ZXJib3NlIGxvY2F0aW5nIG1lc3NhZ2VzIChDeWd3aW4gdXNlcyB0eXBlLCBub3Qgd2hpY2gpLgogICAKMjAwMS0wMy0wNyAxMDoyMCAgc2xpZgoKICAgKiB0ZXN0aW5nLzogVEVTVENPTkYuc2gsIGV2YWxfb25lc2NyaXB0LnNoOgoKICAgCiAgIAogICBJbmNvcnBvcmF0ZSB0ZXN0IG51bWJlciBpbnRvIHRlc3QgcmVzdWx0cyBkaXIgbmFtZS4KICAgUHJvdmlkZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGVzdCBudW1iZXIgYW5kIGRpc3BsYXktaGVhZGVyLW9ubHkgZmxhZy4KICAgCjIwMDEtMDMtMDcgMTA6MTkgIHNsaWYKCiAgICogdGVzdGluZy9NYWtlZmlsZS5pbjoKCiAgIAogICAKICAgIm1ha2UgY2xlYW4iIHJlbW92ZXMgYW55IHRlc3QgcmVzdWx0IGRpcnMgIi90bXAvc25tcC10ZXN0LSoiLgogICAKMjAwMS0wMy0wNyAxMDoxNSAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzLzogVDA1NGFnZW50djJjdHJhcCwgVDA1NmFnZW50djJjbWludHJhcCwKICAgVDA1OGFnZW50YXV0aHRyYXA6CgogICAKICAgUmVwbGFjZSBzbGVlcCB3aXRoIGNvbW1lbnRlZCBvdXQgREVMQVkgOyBlYWNoIHN0YXJ0L3N0b3AgYWN0aW9uIG5vdwogICBpbnZva2VzIERFTEFZLgogICAKMjAwMS0wMy0wNyAxMDoxNCAgc2xpZgoKICAgKiB0ZXN0aW5nL3Rlc3RzL1QxMDBhZ2VudGh1cDoKCiAgIAogICBSZXBsYWNlIHNsZWVwIHdpdGggREVMQVkuCiAgIAoyMDAxLTAzLTA3IDEwOjEzICBzbGlmCgogICAqIHdpbjMyL2NvbmZpZy5oOgoKICAgCiAgIAogICBDaGFuZ2UgZWxlbWVudCBzZXBhcmF0b3IgdG8gV2luMzIgJzsnIGluIERFRkFVTFRfTUlCUwogICBEZWNsYXJlIFdpbjMyIGhhcyBnZXRwaWQhLgogICAKMjAwMS0wMy0wNyAxMDoxMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAKICAgCiAgIFdpbjMyIGluY2x1ZGUgaW8uaCB0byBkZWNsYXJlIG1rdGVtcC4KICAgRXhwYW5kIHRoZSBjb21tZW50IG5lYXIgbWt0ZW1wIHVzYWdlIHRvIGV4cGxhaW4gd2h5IGl0IGlzIG5lZWRlZC4KICAgCjIwMDEtMDMtMDcgMTA6MDkgIHNsaWYKCiAgICogc25tcGxpYi9zbm1wX2FsYXJtLmM6CgogICAKICAgCiAgIHJlbW92ZSB1bm5lY2Vzc2FyeSBpZm5kZWYgV0lOMzIuICBpZmRlZiBTSUdBTFJNIGlzIHN1ZmZpY2llbnQuCiAgIAoyMDAxLTAzLTA3IDEwOjA3ICBzbGlmCgogICAqIGFnZW50L3NubXBkLmMsIGFwcHMvc25tcHRyYXBkLmM6CgogICAKICAgCiAgIFdpbjMyIGluY2x1ZGUgcHJvY2Vzcy5oIHRvIGRlY2xhcmUgZ2V0cGlkLgogICAKMjAwMS0wMy0wNyAxMDowNiAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfbG9nZ2luZy5jOgoKICAgCiAgIAogICBVc2UgcHJvcGVyIGRlZmluZSB0byBxdWFsaWZ5IGluY2x1ZGUtaW5nIGEgaGVhZGVyLgogICAKMjAwMS0wMy0wNyAxMDowNCAgc2xpZgoKICAgKiBhZ2VudC9taWJfbW9kdWxlcy5jLCBhcHBzL3NubXBuZXRzdGF0L2lmLmMsIHNubXBsaWIvc3lzdGVtLmg6CgogICAKICAgCiAgIEFwcGx5IHRoZSB0aW1lIGdvbyBjb25zaXN0ZW50bHk6IG1vdmUgaGVhZGVyIGluY2x1ZGVzIG91dCBvZiBzeXN0ZW0uaC4KICAgCjIwMDEtMDMtMDYgMTA6MDggIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZG9uJ3QgZm9yY2UgaW5jbHVzaW9uIG9mIC1sZGwuCiAgIAoyMDAxLTAzLTA1IDA2OjMwICBzbGlmCgogICAqIHNubXBsaWIvc25tcHYzLmM6CgogICAKICAgCiAgIEZvbGxvdyBtZXRob2QgdXNhZ2UsIGRvbid0IGRlY2xhcmUgZ2V0SHdBZGRyZXNzIHVubGVzcyB1c2VkLgogICAKMjAwMS0wMy0wNSAwNjozMCAgc2xpZgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICAKICAgCiAgIFJlbW92ZSBuZXN0ZWQgdmFyaWFibGUgZXAgLSBvbmUgYWxyZWFkeSBleGlzdHMuCiAgIAoyMDAxLTAzLTA1IDA2OjI4ICBzbGlmCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3VjZERlbW9QdWJsaWMuYzoKCiAgIAogICAKICAgQ29tbWVudCBvdXQgZXhhbXBsZSB2YXJpYWJsZXMgdGhhdCBhcmUgbm90IHVzZWQuCiAgIAoyMDAxLTAzLTA0IDE3OjQxICBzbGlmCgogICAqIFJFQURNRS53aW4zMiwgd2luMzIvY29uZmlnLmgsIHdpbjMyL21pYl9tb2R1bGVfY29uZmlnLmgsCiAgIHdpbjMyL21pYl9tb2R1bGVfaW5jbHVkZXMuaCwgd2luMzIvbWliX21vZHVsZV9pbml0cy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiwgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRlZiwKICAgd2luMzIvbGlidWNkbWlicy9saWJ1Y2RtaWJzLmRzcDoKCiAgIAogICAKICAgcGF0Y2ggdG8gYnVpbGQgbW9yZSBtb2R1bGVzLCBpbmNsdWRpbmcgYWdlbnRYLCBvbiBXaW4zMiB1c2luZyBNUy1WQy4KICAgCjIwMDEtMDMtMDQgMTc6MjcgIHNsaWYKCiAgICogYWdlbnQvbWliZ3JvdXAvaGVhZGVyX2NvbXBsZXguYywgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvc3ViYWdlbnQuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlGaWx0ZXJUYWJsZS5jLAogICBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmMsCiAgIGFnZW50L21pYmdyb3VwL3RhcmdldC90YXJnZXQuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZGxtb2QuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsIGFwcHMvc25tcHRyYXBkX2xvZy5jOgoKICAgCiAgIAogICBwYXRjaCB0byBidWlsZCBtb3JlIG9mIHRoZSBhZ2VudCB1c2luZyBNUy1WQyBvbiBXaW4zMiBwbGF0Zm9ybS4KICAgCjIwMDEtMDMtMDMgMTQ6MzQgIG5iYQoKICAgKiBtaWJzLzogSUFOQWlmVHlwZS1NSUIudHh0LCBNVEEtTUlCLnR4dCwgTWFrZWZpbGUubWliLAogICBSRUFETUUubWlicywgVFVOTkVMLU1JQi50eHQsIGlhbmFsaXN0LCBtaWJmZXRjaCwgcmZjbGlzdCwKICAgcmZjbWlicy5kaWZmLCBzbWlzdHJpcDoKCiAgIFVwZGF0ZSB0byBjdXJyZW50IElBTkFpZlR5cGUtTUlCLCBwbHVzIGFkZGl0aW9uIG9mIFJFQURNRSBhbmQgdG9vbHMgdG8gZ2V0CiAgIGEgY29tcGxldGUgc2V0IG9mIElFVEYgTUlCIGZpbGVzLgogICAKMjAwMS0wMy0wMyAwNzoxMSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuaDoKCiAgIFJlbW92ZSBhbiB1bnVzZWQgcHJvdG90eXBlCiAgIAoyMDAxLTAzLTAzIDA2OjM2ICBuYmEKCiAgICogbWFuL3NubXB0cmFwZC44LCBhcHBzL3NubXB0cmFwZF9sb2cuYzoKCiAgIEFkZCBhIG5ldyAlUCBmb3JtYXR0aW5nIHNlcXVlbmNlIHRvIHVzZXIgc3BlY2lmaWVkIGxvZyBmb3JtYXRzLiBJdCBwcmludAogICB0aGUgc2VjdXJpdHkgaW5mb3JtYXRpb24gZnJvbSB0aGUgUERVIChjb21tdW5pdHksIHVzZXIsIGNvbnRleHQgYXMgYXZhaWxhYmxlKQogICBBbHNvIG1vZGlmeSB0aGUgZGVmYXVsdCB0cmFwIG91dHB1dCB0byB1c2UgaXQuCiAgIAoyMDAxLTAzLTAzIDA2OjIxICBuYmEKCiAgICogYXBwcy9zbm1wdHJhcGRfbG9nLmM6CgogICBGaXggc3BlY2lmaWVycyBsaWtlICUuM3MKICAgCjIwMDEtMDMtMDMgMDY6MTAgIG5iYQoKICAgKiBzbm1wbGliL3BhcnNlLmM6CgogICBGaXggdGhlIHBhcnNlciB0byBkaWFnbm9zZSBvaWQgc3BlY3MgbGlrZTo6PSB7IHNpbmdsZSB9CiAgIEJlIHNpbGVudCBmb3IgaW50ZXJuYWwgbGlua3Mgd2hlbiBtb3Zpbmcgbm9kZXMgdG8gdGhlIGFkb3B0aW9uIGxpc3QuIFRoaXMKICAgc2hvdWxkIGhlbHAgZ2l2aW5nIG9ubHkgYSBzaW5nbGUgbWVzc2FnZSBmb3IgbWlzc2luZyBpbXBvcnRzIG9mIGVudGVycHJpc2VzLgogICAKMjAwMS0wMy0wMiAxMzoyNCAgc2xpZgoKICAgKiBzbm1wbGliL2FzbjEuYywgc25tcGxpYi9taWIuYywgc25tcGxpYi9taWIuaCwgc25tcGxpYi9zbm1wX2FwaS5jLAogICBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5jLCBzbm1wbGliL3NubXBfcGFyc2VfYXJncy5oLAogICB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZjoKCiAgIAogICAKICAgY2xlYW51cCBmb3IgTVMtVkMgV2luMzIgYnVpbGQKICAgCjIwMDEtMDMtMDIgMDc6MzYgIGhhcmRha2VyCgogICAqIFJFQURNRToKCiAgIHNvdXJjZXJmb3JnZSAtPiBzb3VyY2Vmb3JnZQogICAKMjAwMS0wMy0wMiAwNzoyNSAgaGFyZGFrZXIKCiAgICogcGVybC9TTk1QL1NOTVAueHM6CgogICBQYXRjaCBmcm9tIEthcmwgU2NoaWxrZSB0byBmaXggdGltZXN0YW1wcyBpbiBzeW5jaG9ub3VzIGNhc2VzCiAgIAoyMDAxLTAzLTAyIDA2OjMxICBoYXJkYWtlcgoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBSZW1vdmUgdW51c2VkIHZhcmlhYmxlIGZyb20gc25tcF9vaWRfY29tcGFyZSgpLgogICAKMjAwMS0wMy0wMSAxOTo0OSAgaGFyZGFrZXIKCiAgICogc25tcGxpYi86IGFzbjEuYywgc25tcF9hcGkuYzoKCiAgIEZpeCBzbm1wX29pZF9jb21wYXJlIGFuZCByZXZlcnNlIGVuY29kaW5ncyB0byBkZWFsIHdpdGggbnVtYmVycyA+IDJeMzEuCiAgIAoyMDAxLTAyLTIxIDE1OjMxICBuYmEKCiAgICogbWFuLzogc25tcC5jb25mLjUuZGVmLCBzbm1wY21kLjE6CgogICBGaXggYSBjb3VwbGUgb2YgdHlwb3MKICAgCjIwMDEtMDItMjEgMTU6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvdWNkLXNubXAtaW5jbHVkZXMuaDoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzgwNSBmcm9tIGJjb2xsYXI6IGFkZCBzeXMvdGltZS5oIHRvIHVjZC1zbm1wLWluY2x1ZGVzLmgKICAgCjIwMDEtMDItMjEgMTU6MTUgIGhhcmRha2VyCgogICAqIHNubXBsaWIvaW50NjQuYzoKCiAgIGZpeCBidWcgIzEzMzQxNiAodTY0U3VidHJhY3Rpb24gbWF0aCkgYXMgc3VnZ2VzdGVkIGJ5IHRoZSBzdWJtaXR0b3IKICAgCjIwMDEtMDItMjEgMTQ6MzggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYzoKCiAgIFRyeSBmaXhpbmcgaW5jb25zaXN0ZW50IGluZGV4aW5nIG9uIEJTRAogICAKMjAwMS0wMi0xOSAwODo0NiAgc2xpZgoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgCiAgIAogICAtIHByb3h5LmM6IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCiAgIAoyMDAxLTAyLTE2IDE1OjEyICBoYXJkYWtlcgoKICAgKiBhZ2VudC92YXJfc3RydWN0Lmg6CgogICAtIGluY3JlYXNlIFVDRF9SRUdJU1RSWV9PSURfTUFYX0xFTiB0byAxMjggYXQgRnJhbmsncyByZXF1ZXN0CiAgIAoyMDAxLTAyLTE0IDE4OjE1ICBoYXJkYWtlcgoKICAgKiBhcHBzL3NubXB0cmFwZC5jOgoKICAgcmVtb3ZlZCB1bnVzZWQgc25tcF9hbGFybS5oIGluY2x1ZGUKICAgCjIwMDEtMDItMTMgMTY6MjEgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIGZpeCBidWcgIzEzMDc0MCB1c2luZyBzdWdnZXN0ZWQgY2xvc2UoKSB3cmFwcGVyIGFyb3VuZCBta3N0ZW1wKCkKICAgCjIwMDEtMDItMDkgMTE6MTYgIGhhcmRha2VyCgogICAqIGFnZW50L3NubXBkLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTM6IGZpeCBtZW1vcnkgbGVhayBpbiBzbm1wZCBwb3J0IHNwZWNpZmljYXRpb24gLT4gZGVmYXVsdF9zdG9yZS4KICAgCjIwMDEtMDItMDkgMTE6MTQgIGhhcmRha2VyCgogICAqIGFnZW50L21pYl9tb2R1bGVzLmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM2MTI6IGZpeCBtZW1vcnkgbGVhayBpbiBtaWJfbW9kdWxlIGluaXQgY29kZQogICAKMjAwMS0wMi0wOSAxMToxMiAgaGFyZGFrZXIKCiAgICogYWdlbnQvYWdlbnRfcmVnaXN0cnkuYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYxMTogZml4IG1lbW9yeSBsZWFrIGZvciBkdXBsaWNhdGUgb2lkIHJlZ2lzdHJhdGlvbnMuCiAgIAoyMDAxLTAyLTA5IDExOjA4ICBoYXJkYWtlcgoKICAgKiBwZXJsL1NOTVAvU05NUC54czoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzYwNDogQWRkIHN1cHBvcnQgZm9yIFYxIHRyYXBzIGFuZCBpbnQvaW50MzIgZGlmZmVyZW5jZXMKICAgCjIwMDEtMDItMDkgMTE6MDYgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wLzogbWVtb3J5X2ZyZWVic2QyLmMsIHByb3h5LmM6CgogICBBcHBsaWVkIHBhdGNoICMxMDM3MDI6IGZpeCBzd2FwIHJlcG9ydGluZyBvbiBmcmVlYnNkIDQuMgogICAKMjAwMS0wMi0wNiAxNDoyNiAgbmJhCgogICAqIGFwcHMvc25tcG5ldHN0YXQvTWFrZWZpbGUuaW46CgogICBBZGQgYSBkZXBlbmRlbmN5IGZvciBsaWJzbm1wCiAgIAoyMDAxLTAyLTA2IDE0OjI1ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2ZyZWVic2QyLmM6CgogICBJbXBsZW1lbnQgcmF3IGludGVycnVwdCBhbmQgY29udGV4dCBzd2l0Y2ggY291bnRlcnMKICAgCjIwMDEtMDItMDYgMTQ6MjQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ub3RpZmljYXRpb24vc25tcE5vdGlmeVRhYmxlLmM6CgogICBNYWtlIGRtYWxsb2MgaGFwcHkgYnkgZml4aW5nIGEgbWFsbG9jIHJlYWQgb3ZlcnJ1bgogICAKMjAwMS0wMi0wNiAxNDoxNiAgbmJhCgogICAqIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvZGVmYXVsdF9zdG9yZS5oLCBzbm1wbGliL21pYi5jOgoKICAgQmFja3BvcnQgLU9UIG91dHB1dCB0byA0LTItcGF0Y2hlcyBicmFuY2gKICAgCjIwMDEtMDItMDYgMDY6MDIgIGhhcmRha2VyCgogICAqIHBlcmwvU05NUC9TTk1QLnBtOgoKICAgZG9jdW1lbnRhdGlvbiBmaXgKICAgCjIwMDEtMDEtMzEgMjM6MDIgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggdmFsdWUgdmFsaWRhdGlvbiBmb3Igc25tcHNldC9zbm1wdHJhcAogICAKMjAwMS0wMS0zMSAyMzowMCAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmM6CgogICBGaXggYmFkIHJldHVybiBvZiBhIHBvaW50ZXIgdG8gbm9uLXN0YXRpYyBzdG9yYWdlCiAgIAoyMDAxLTAxLTMxIDE1OjQ0ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmM6CgogICBQYXRjaCBmcm9tIEZyYW5rIEJhcnRlbHMgZm9yIGZyZWVic2QgZml4ZXMKICAgCjIwMDEtMDEtMzAgMTc6MTMgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2Rpc2suYzoKCiAgIEFwcGxpZWQgcGF0Y2ggIzEwMzQxNDogZml4IGRpc2sgaW5mbyBmb3IgYmxvY2sgc2l6ZXMgb3RoZXIgdGhhbiAxMDI0LgogICAKMjAwMS0wMS0yOSAxMzoyNCAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvc211eC9zbXV4LmM6CgogICBmaXggYnVnICMxMzA0MTA6ICBzZXQgdGhlIHdyaXRlX21ldGhvZCBpbiB2YXJfc211eCBiZWZvcmUgcmV0dXJuaW5nCiAgIE5VTEwgdG8gbWFrZSBzdXJlIHRoYXQgc2V0cyBoYXBwZW4gb24gT0lEcyB0aGF0IGRvbid0IGV4aXN0IGZpcnN0LgogICAKMjAwMS0wMS0yOSAxMzoxNSAgaGFyZGFrZXIKCiAgICogbG9jYWwvbWliMmM6CgogICBmaXggc3VnZ2VzdGVkIGluIGJ1ZyAjMTI5OTQ4OiBjaGVjayBmb3IgLSBhcmd1bWVudHMgYXQgdGhlIGJlZ2dpbm5pbmcKICAgb2YgdGhlIGNvbW1hbmQgbGluZSB0b2tlbiAoZG9uJ3QgbWF0Y2ggbWliLTIsIGVnKS4KICAgCjIwMDEtMDEtMjkgMTM6MTMgIGhhcmRha2VyCgogICAqIHNubXBsaWIvcGFyc2UuYzoKCiAgIGZpeCBzdWdnZXN0ZWQgaW4gYnVnICMxMjk4NzY6IGNoZWNrIGZvciBoaW50ICE9IE5VTEwgYmVmb3JlIGZyZWVpbmcuCiAgIAoyMDAxLTAxLTI2IDA1OjQ5ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcmludC5jOgoKICAgRml4IGJ1ZyBvbiBGcmVlQlNEIHdoZW4gL2V0Yy9wcmludGNhcCBpcyBlbXB0eQogICAKMjAwMS0wMS0yNSAxNDozOCAgbmJhCgogICAqIG1pYnMvUk1PTi1NSUIudHh0OgoKICAgVXBkYXRlZCB0byBSRkMgMjgxOQogICAKMjAwMS0wMS0yNCAyMTozNyAgbmJhCgogICAqIGFnZW50L01ha2VmaWxlLmluOgoKICAgSW5zdGFsbCBsaWJyYXJpZXMgYmVmb3JlIGFnZW50IHNvIHRoYXQgbGlidG9vbCBjYW4gcmVsaW5rLgogICAKMjAwMS0wMS0yMCAwNTo1NCAgbmJhCgogICAqIGFwcHMvc25tcGRlbHRhLmMsIHNubXBsaWIvaW50NjQuYzoKCiAgIFR3byBDb3VudGVyNjQgZ2xpdGNoZXMgZGV0ZWN0ZWQgYnkgSmFzb24gR2xvdWRvbiA8c25tcEBnbG91ZG9uLmNvbT4KICAgCjIwMDEtMDEtMjAgMDU6NDQgIG5iYQoKICAgKiBhZ2VudC9zbm1wZC5jOgoKICAgRG9udCBzZXQgdXAgdGhlIHNlbGVjdCBwYXJhbWV0ZXJzIGJlZm9yZSBjYWxsaW5nIGludGVycnVwdCBoYW5kbGVycyEKICAgVGhhbmtzIHRvIEZyYW5rIFN0cmF1c3MuCiAgIAoyMDAxLTAxLTIwIDA1OjQyICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGVuY29kaW5nIG9mIEJJVFMgdmFyaWFibGUsIHRoYW5rcyB0byBGcmFuayBTdHJhdXNzCiAgIAoyMDAxLTAxLTIwIDA1OjM3ICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmM6CgogICBSYXcgSU8gY291bnRlcnMgZnJvbSBKb2NoZW4gS21pZXRzY2gKICAgCjIwMDEtMDEtMjAgMDU6MzYgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXQuaCwgbWlicy9VQ0QtU05NUC1NSUIudHh0OgoKICAgUHJlcGFyZSBmb3IgbW9yZSByYXcgY291bnRlcnMKICAgCjIwMDEtMDEtMTUgMTU6MTQgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jOgoKICAgdW5kbyBhIGNoYW5nZSB0aGF0IHNuZWFrZWQgaW4gYnkgbWlzdGFrZQogICAKMjAwMS0wMS0xNSAxNDowNyAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb3h5LmMsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdC5oLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfYnNkaTQuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X2JzZGk0LmgsCiAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9mcmVlYnNkMi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC92bXN0YXRfZnJlZWJzZDIuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuYywKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X25ldGJzZDEuaCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmMsIG1pYnMvVUNELVNOTVAtTUlCLnR4dCwKICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0X3NvbGFyaXMyLmg6CgogICBFeHRlbmQgdGhlIHN5c3RlbVN0YXRzLmNwdVJhdyBzZWN0aW9uIHRvIGluY2x1ZGUgbW9yZSByYXcgY291bnRlcnMgZm9yIHZhcmlvdXMKICAgb3BlcmF0aW5nIHN5c3RlbXMuICBCYXNpYyB0ZXN0aW5nIHBlcmZvcm1lZCBmb3IgU29sYXJpcyBhbmQgRnJlZUJTRC4gQ29kZQogICBndWVzc3RpbWF0ZSBmb3IgTmV0QlNEIGFuZCBCU0RpLgogICAKMjAwMS0wMS0xMiAwODowMCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgLSBiaXRfc3RyaW5nIGZpeGVzCiAgIC0gbWFrZSBzbm1wX2FkZF92YXIgY2FsbCBzbm1wX3BhcnNlX29pZCgpIGluc3RlYWQgb2YgcmVhZF9vYmppZCgpLgogICAKMjAwMS0wMS0xMiAwNzo1NyAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9hc24xLmM6CgogICBjb21tZW50IG91dCByZWFsbHkgb2RkIChhbmQgYnJva2VuKSBjaGVjayBmcm9tIGFzbl9iaXRzdHJpbmdfY2hlY2s/Pz8KICAgCjIwMDEtMDEtMTIgMDc6NTIgIGhhcmRha2VyCgogICAqIGxvY2FsLzogbWliMmMuc3RvcmFnZS5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mOgoKICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgLSBuZXcgZGF0YSB0eXBlcyAodWludDMyLCB1bnNpZ25lZCwgYml0cykuCiAgIAoyMDAxLTAxLTEwIDIxOjU1ICBuYmEKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgRml4IGNhbGxpbmcgb2YgaW5pdF9jYWxsYmFja3MgZXZlbiBpZiBpbml0X3NubXAgY2FsbGVkIHdpdGggTlVMTCBwYXJhbWV0ZXIKICAgCjIwMDEtMDEtMTAgMjE6NTMgIG5iYQoKICAgKiBzbm1wbGliL3NubXBfYXBpLmM6CgogICBGaXggYmFkbHkgYXBwbGllZCBwcmV2aW91cyBwYXRjaAogICAKMjAwMS0wMS0xMCAyMTo1MiAgbmJhCgogICAqIGFwcHMvc25tcHZhY20uYzoKCiAgIEZpeCB1c2FnZSBtZXNzYWdlICgtZSBpcyBub3cgLUNlKQogICAKMjAwMS0wMS0xMCAyMTo1MSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jOgoKICAgRml4IGEgYmFkIGlwUm91dGVQcm90b2NvbCByZXR1cm4KICAgCjIwMDEtMDEtMTAgMjE6NTAgIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICBGaXggcHJvYmxlbSB3aGVuIHJ1bm5pbmcgLS13aXRob3V0LXJvb3QtYWNjZXNzIGZvciBGcmVlQlNELiBUaGFua3MgdG8KICAgQmVydCBEcmllaHVpcy4KICAgCjIwMDEtMDEtMTAgMjE6NDggIG5iYQoKICAgKiBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmM6CgogICBVc2UgdGhlIGlmc3BlZWQgYXR0cmlidXRlIGZyb20gZHJpdmVyIHdoZW4gYXZhaWxhYmxlCiAgIAoyMDAxLTAxLTA5IDA2OjI5ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBBcHBseWluZyBwYXRjaCBmb3VuZCBpbiBidWcgIzEyNzI5OToKICAgICAtIHN3aXRjaCBpZkFkbWluIGFuZCBpZk9wZXJTdGF0dXMgbWVhbmluZ3MgdG8gbWF0Y2gga2VybmVsIHBhcmFtZXRlcnMgYmV0dGVyLgogICAKMjAwMS0wMS0wOSAwNjoyMSAgaGFyZGFrZXIKCiAgICogd2luMzIvc25tcG5ldHN0YXQvc25tcG5ldHN0YXQuZHNwOgoKICAgYWRkZWQgZ2V0b3B0LmMgdG8gbGlzdAogICAKMjAwMS0wMS0wOCAwODoxOSAgaGFyZGFrZXIKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jOgoKICAgUGF0Y2ggZnJvbSBBbmRlcnMgRWxsZWZzcnVkCiAgICAgLSBmaXggaHJfc3dydW4gd2hlbiBwcm9ncmFtcyBoYXZlIGV4aXRlZCBzbyB3ZSBkb24ndCB0cnVuY2F0ZQogICAgICAgZ2V0bmV4dCBxdWVyaWVzLgogICAKMjAwMS0wMS0wOCAwODoxNCAgaGFyZGFrZXIKCiAgICogc25tcGxpYi9zbm1wX2FwaS5jOgoKICAgUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgIC0gZml4IEJJVFMgZW5jb2RpbmcgbGVuZ3RoIHdoZW4gbWliIGtub3dsZWRnZSBpcyBhdmFpbGFibGUuCiAgIAoyMDAxLTAxLTA0IDIzOjE4ICBuYmEKCiAgICogYXBwcy86IHNubXBzZXQuYywgc25tcHRyYXAuYzoKCiAgIFRyeSBmaXhpbmcgcHJvYmxlbXMgd2l0aCBzbm1wc2V0IG9mIG5lZ2F0aXZlIHZhbHVlcwogICAKMjAwMS0wMS0wNCAyMzoxNSAgbmJhCgogICAqIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Ztc3RhdF9ic2RpNC5jOgoKICAgQWRkIHRoZSByYXcgY3B1IGNvdXRlcnMgZm9yIEJTRGkuIENvdXJ0ZXN5IEJlcnQgRHJpZWh1aXMuCiAgIAoyMDAxLTAxLTA0IDIzOjEyICBuYmEKCiAgICogYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9sb2FkYXZlLmMsIHNubXBsaWIvY2FsbGJhY2suYzoKCiAgIFNhdmUgc29tZSB1bnVzZWQgdmFyaWFibGVzCiAgIAoyMDAxLTAxLTA0IDIzOjA5ICBuYmEKCiAgICogYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGFnZW50L2FnZW50X3RyYXAuYywgYWdlbnQvbWliX21vZHVsZXMuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L2NsaWVudC5jLCBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyLmMsCiAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXJfYWRtaW4uYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5oLAogICBhZ2VudC9taWJncm91cC9hZ2VudHgvbWFzdGVyX3JlcXVlc3QuYywKICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L3Byb3RvY29sLmMsIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jOgoKICAgQWRkIG1pc3NpbmcgZG1hbGxvYyBzdXBwb3J0IGZvciBzb21lIGZpbGVzCiAgIAoyMDAxLTAxLTA0IDIzOjA0ICBuYmEKCiAgICogTWFrZWZpbGUuaW46CgogICBFbnN1cmUgc29ydCBvcmRlciBmb3IgY29uZmlnLmguaW4KICAgCjIwMDEtMDEtMDQgMTA6MjQgIGhhcmRha2VyCgogICAqIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluOgoKICAgZml4IHNlbWktY29sb24gcHJvYmxlbS4gIFBhdGNoICMxMDMxMDEuCiAgIAoyMDAxLTAxLTAzIDA3OjAxICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N3cnVuLmM6CgogICAvcHJvYy8lZC9jbWRsaW5lIG1heSBiZSBhbiBlbXB0eSBmaWxlIGZvciBzb21lIHByb2Nlc3Nlcy4gIFJldHVybiAiIiBpZiBzby4KICAgCjIwMDEtMDEtMDIgMDk6NDcgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9sb2dnaW5nLmM6CgogICBhZGQgYSAiJXMiIGZvcm1hdHRpbmcgc3RyaW5nIHRvIHRoZSBzeXNsb2coKSBjYWxsIChyZWRoYXQgYnVnICMxODE1MykuCiAgIAoyMDAwLTEyLTI5IDEzOjM4ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmM6CgogICBQYXRjaCBmcm9tIFRlZCBSdWxlOgogICAgIC0gYmV0dGVyIGNoZWNraW5nIGZvciBmb3JtYXR0aW5nIG9mIHRoZSAvcHJvYy9uZXQvZGV2IGZpbGUgdG8gYXZvaWQKICAgICAgIGxpbnV4IGNvcmUgZHVtcHMgd2hlbiB0aGUga2VybmVsIG1pcy1iZWhhdmVzLgogICAKMjAwMC0xMi0yNyAxNjo0NyAgaGFyZGFrZXIKCiAgICogdGVzdGluZy90ZXN0cy86IFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwKICAgVDA1NWFnZW50djFtaW50cmFwLCBUMDU2YWdlbnR2MmNtaW50cmFwLCBUMTEzYWdlbnR4dHJhcDoKCiAgIC0gdHJhcCBBUEkgdGVzdGluZyBzdWl0ZSBlbmhhbmNlZCB0byB0ZXN0IG1vcmUgY2FzZXMuCiAgIAoyMDAwLTEyLTI3IDE2OjQ1ICBoYXJkYWtlcgoKICAgKiBhZ2VudC9hZ2VudF9jYWxsYmFja3MuaCwgYWdlbnQvYWdlbnRfdHJhcC5jLCBhZ2VudC9hZ2VudF90cmFwLmgsCiAgIGFnZW50L21pYmdyb3VwL25vdGlmaWNhdGlvbi9zbm1wTm90aWZ5VGFibGUuYywKICAgYWdlbnQvbWliZ3JvdXAvbm90aWZpY2F0aW9uL3NubXBOb3RpZnlUYWJsZS5oLCBzbm1wbGliL2NhbGxiYWNrLmMsCiAgIHNubXBsaWIvY2FsbGJhY2suaDoKCiAgIC0gTWFrZSB0aGUgbm90aWZpY2F0aW9uIG1pYiB3b3JrIG1vcmUgdmlhIGNhbGxiYWNrcyBhbmQgcmVtb3ZlIGlmZGVmcyBpbgogICAgIGFnZW50X3RyYXAuYwogICAtIE1ha2UgdGhlIGFnZW50X3RyYXAuYyBmaWxlIGNoZWNrIGZvciBjYWxsYmFjayByZWdpc3RyYXRpb25zIGFuZAogICAgIGhhbmRsZSBpdCBpbnRlcm5hbGx5IHVzaW5nIHRoZSBvbGQgdHJhcHNpbmsgc3VwcG9ydCBpZiBubyBjYWxsYmFjawogICAgIGlzIGZvdW5kLgogICAtIFRoaXMgZml4ZXMgdGhlIHByb2JsZW0gd2hlbiBpbml0X21pYl9tb2R1bGVzKCkgaXNuJ3QgY2FsbGVkIGluIHN1YmFnZW50cy4KICAgCjIwMDAtMTItMjcgMTY6NDIgIGhhcmRha2VyCgogICAqIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL2V4YW1wbGUuYzoKCiAgIG1ha2UgdGhlIGV4YW1wbGUgdHJhcHMgYmUgc2VudCB1c2luZyBhIGVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcCBvZiA5OQogICByYXRoZXIgdGhhbiAzLiAgV2UgbmVlZCB0byBkZWZpbmUgaXQgaW4gdGhlIG1pYiBzdGlsbC4KICAgCjIwMDAtMTItMjcgMTU6MjYgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGJyb2tlbiBjb21waWxlciBwcmVjZWRlbmNlIGFzIHJlcG9ydGVkIGluIHN1cHBvcnQgIzExMDQ3My4KICAgCjIwMDAtMTItMjIgMDg6NTQgIGhhcmRha2VyCgogICAqIHNubXBsaWIvYXNuMS5jOgoKICAgZml4IGNvdW50ZXI2NCByZXZlcnNlIGVuY29kaW5ncy4KICAgCjIwMDAtMTItMjIgMDY6NTggIGhhcmRha2VyCgogICAqIHNubXBsaWIvdmFjbS5jOgoKICAgZml4IHZpZXcgcHJvY2Vzc2luZyB0byB3YXRjaCBmb3IgbGVuZ3RoIHByZWZpeC4gIFRoZSBsZW5ndGggcHJlZml4CiAgIHJlYWxseSByZWFsbHkgc2hvdWxkbid0IGJlIHN0b3JlZCBkaXJlY3RseSBpbiB0aGUgb2lkLiAgTmllbHM/CiAgIAoyMDAwLTEyLTIxIDE0OjQzICBuYmEKCiAgICogYXBwcy9zbm1wbmV0c3RhdC9tYWluLmM6CgogICAtIG1haW4uYzogZml4IHByb2JsZW0gd2l0aCBwb3NpdGlvbmFsIGNvbW11bml0eSBhcmd1bWVudCB0byBzbm1wbmV0c3RhdAogICAKMjAwMC0xMi0yMSAxNDozNyAgbmJhCgogICAqIHNubXBsaWIvbWliLmM6CgogICAtIG1pYi5jOiBtYWtlIHN1cmUgaW5pdF9taWJfaW50ZXJuYWxzIGlzIGNhbGxlZCBiZWZvcmUgZG9pbmcgYW55dGhpbmcKICAgCXNlcmlvdXMgaW4gaW5pdF9taWIKICAgCjIwMDAtMTItMjEgMDg6MjIgIGhhcmRha2VyCgogICAqIHNubXBsaWIvc25tcF9hcGkuYzoKCiAgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcyB0byBmaXggc3VwcG9ydCBmb3IgQklUUwogICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMS4yIC0+IFY0LjIKCjIwMDAtMTItMDQgMTU6MzAgIGhhcmRha2VyCgoJLSAoTkVXUywgUkVBRE1FKTogdXBkYXRlcy4KCQoyMDAwLTEyLTA0IDE0OjQ4ICBtYXJ6CgoJZW5zdXJlIG1pYmxvYWQudCB1c2VzIGNvcnJlY3QgTUlCRElSIGZvciB0ZXN0aW5nCgkKMjAwMC0xMi0wNCAxMTowNSAgaGFyZGFrZXIKCgktIChBR0VOVC50eHQsIEZBUSwgUkVBRE1FKTogY29udmVydCB1cmwncyB0byB3d3cubmV0c25tcC5vcmcuCgkKMjAwMC0xMi0wNCAwODo0NSAgaGFyZGFrZXIKCgktIChORVdTKTogYWdlbnR4IG5vdGUgY2hhbmdlcy4KCQoyMDAwLTEyLTAzIDA3OjI5ICBuYmEKCgktIHNubXB0cmFwZF9sb2cuYzogZm94IG1pc3NpbmcgbGVhZGluZyB6ZXJvZXMgZm9yICUuMmQgbGlrZSBmb3JtYXRzLgoJCUFkZCBhbiBhbHRlcm5hdGUgZm9ybWF0IGZvciB1cC10aW1lIGRpc3BsYXlzLgoJCjIwMDAtMTItMDIgMTg6MjIgIG1hcnoKCglmb3VuZCB0aGUgdW5pbml0aWFsaXplZCBkYXRhIGJ1Zy4uLm11c3QgaGF2ZSBiZWVuIGluIHRoZXJlIGRvcm1hbnQgZm9yIGEgd2hpbGUsIG90aGVyIHRlc3QgZml4ZXMgLSBnb29kIHRvIGdvIQoJCjIwMDAtMTItMDEgMTY6MzYgIGhhcmRha2VyCgoJLSAoYWdlbnQvc25tcGQuYyk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KCQoyMDAwLTEyLTAxIDE2OjM1ICBoYXJkYWtlcgoKCS0gKEFHRU5ULnR4dCk6IHJlZmVyZW5jZSBzb3VyY2Vmb3JnZS4KCQoyMDAwLTEyLTAxIDE2OjM0ICBoYXJkYWtlcgoKCS0gKFRPRE8pOiByZWZlcmVuY2UgbmV0LXNubXAtY29kZXJzLgoJCjIwMDAtMTItMDEgMTY6MzQgIGhhcmRha2VyCgoJLSAoUkVBRE1FKTogdXBkYXRlLgoJCjIwMDAtMTItMDEgMTY6MzMgIGhhcmRha2VyCgoJLSAoYnVnLXJlcG9ydCwgYWdlbnQvbWliZ3JvdXAvdmVyc2lvbnRhZyk6IHJlbW92ZSB0aGUgYnVnIHJlcG9ydCBzY3JpcHQuCgkKMjAwMC0xMi0wMSAxNjozMSAgaGFyZGFrZXIKCgktIChQT1JUSU5HKTogcmVmZXJlbmNlIHNvdXJjZWZvcmdlLgoJCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgoJLSAobWFuL3NubXB0cmFwZC5jb25mLjUuZGVmKTogbWVudGlvbiB0aGUgZmFjdCB0aGF0IHNubXB2MyB0cmFwcyBhcmUKCSAgdGhlIHNhbWUgYXMgc25tcHYyIHRyYXBzLgoJCjIwMDAtMTItMDEgMTY6MjMgIGhhcmRha2VyCgoJLSAoTkVXUyk6IHVwZGF0ZS4KCQoyMDAwLTEyLTAxIDE1OjMxICBoYXJkYWtlcgoKCS0gKFJFQURNRSk6IHVwZGF0ZS4KCQoyMDAwLTEyLTAxIDE1OjE2ICBoYXJkYWtlcgoKCS0gKHNubXBkLmNvbmYuNS5kZWYpOiB1cGRhdGUgZm9yIHByb3h5IHN1cHBvcnQuCgkKMjAwMC0xMi0wMSAxNDozNiAgaGFyZGFrZXIKCgktIChGQVEpOiB1cGRhdGUgYSBmZXcgdGhpbmdzLgoJCjIwMDAtMTItMDEgMTQ6MjggIG5iYQoKCS0gbWliLmM6IGRpYWdub3NlIHdyb25nIHF1b3RpbmcgaW4gaW5kaWNlcwoJCjIwMDAtMTItMDEgMTQ6MjMgIG5iYQoKCS0gcGFyc2UuYzogYWRkIFJGQy0xMjEzIGFzIGFuIGFsaWFzZSBmb3IgUkZDMTIxMy1NSUIgKHVzZWQgaW4gbWFueSBtaWJzKQoJCjIwMDAtMTItMDEgMTQ6MTkgIG5iYQoKCS0gc211eC5jOiByZWZvcm1hdCBzb21lIGRlYnVnIG1lc3NhZ2VzIGZvciByZWFkYWJpbGl0eQoJCjIwMDAtMTItMDEgMTQ6MTcgIG5iYQoKCS0gaW50ZXJmYWNlcy5jOiBmaXggaWZUeXBlIHZhbHVlcyBmb3IgTGludXgKCQoyMDAwLTEyLTAxIDE0OjE0ICBuYmEKCgktIHN1YmFnZW50LmM6IHN1cHBseSBhIG1pc3NpbmcgcmV0dXJuIHZhbHVlCgkKMjAwMC0xMi0wMSAxMDowNCAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHF1b3RlIHRoaW5ncyB3aXRoIHNwYWNlcyBpbiB0aGVtLgoJCjIwMDAtMTItMDEgMDk6NDkgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYuMSk6IHF1aWNrIG1hbiBwYWdlIGZvciBzbm1wY29uZi4KCQoyMDAwLTEyLTAxIDA5OjE1ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mLmRpci9zbm1wZC5jb25mL21vbml0b3IpOiBjbGVhbnVwcy4KCQoyMDAwLTEyLTAxIDA5OjE0ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvcGFyc2UuYyk6IGNoYW5nZSBuby1wYXJlbnQgbG9nIG1lc3NhZ2UgaW50byBhIHdhcm5pbmcuCgkKMjAwMC0xMi0wMSAwOToxMSAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC9hZ2VudHgvUkVBRE1FLmFnZW50eCk6IHVwZGF0ZSBmcm9tIERhdmUuCgkKMjAwMC0xMi0wMSAwOToxMCAgaGFyZGFrZXIKCgktIChGQVEpOiB1cGRhdGUgZnJvbSBEYXZlLgoJCjIwMDAtMTItMDEgMDc6NTkgIGhhcmRha2VyCgoJLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKCSAgLSBzdXBwb3J0IHYyLT52MSB0cmFwIGNvbnZlcnNpb24uCgkKMjAwMC0xMi0wMSAwNzo1NiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHR5cG8uCgkKMjAwMC0xMi0wMSAwNzo0MiAgbWFyegoKCWFkZGl0aW9uYWwgZml4ZXMgdG8gc3VwcG9ydCB0YXJnZXR0ZWQgYnVpbGRzIG9mIHBlcmwvU05NUCB1c2luZyAtTkVULVNOTVAtUEFUSCAoYW5kIHdoaXRlIHNwYWNlIHJlbW92YWwgYXMgbXkgZW1hY3Mga2luZGx5IGRvZXMgdGhhdCBmb3IgbWU/KQoJCjIwMDAtMTEtMzAgMTQ6MDYgIG5iYQoKCS0gZ2V0b3B0LmgsIHNubXBfcGFyc2VfYXJncy5oOiBleHRlcm4gIkMiIGJyYWNrZXRpbmcKCQoyMDAwLTExLTMwIDE0OjA0ICBuYmEKCgktIHNubXBkLmNvbmYuNS5kZWY6IGZpeCBmb3JtYXR0aW5nIG9mIHNtdXhwZWVyIHRva2VuCgkKMjAwMC0xMS0zMCAxMDozMSAgaGFyZGFrZXIKCgktIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlLgoJCjIwMDAtMTEtMzAgMTA6MTggIGhhcmRha2VyCgoJLSAobWFzdGVyX3JlcXVlc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgdG8gZml4IGJhZCBzZXRzIGZvciBhZ2VudHguCgkKMjAwMC0xMS0zMCAwOToxOSAgaGFyZGFrZXIKCgktIChvdi9SRUFETUUpOiBtaW5vciBjb3JyZWN0aW9ucywgcHJvYmFibHkgc3RpbGwgaW5jb3JyZWN0LgoJCjIwMDAtMTEtMzAgMDk6MTggIGhhcmRha2VyCgoJLSAobG9jYWwvTWFrZWZpbGUuaW4sIHNubXBjb25mLCBhY2wsIGJhc2ljX3NldHVwLCBtb25pdG9yLCBvcGVyYXRpb24sCgkgIHN5c3RlbSwgdHJhcHNpbmtzKToKCSAgLSBncm91cGluZyBzdXBwb3J0LgoJICAtIHNvcnQtb2YtcXVpZXQgb3V0cHV0IHN1cHBvcnQuCgkgIC0gb3BlcmF0aW9uIG1vZGUgc3VwcG9ydCAoc2V0dGluZyB1c2VyLCBncm91cCwgcG9ydHMuLi4pCgkKMjAwMC0xMS0zMCAwOToxMyAgaGFyZGFrZXIKCgktIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzYXZlIGEgd2FybmluZyBoZWFkZXIgYXQgdGhlIHRvcCBvZiB0aGUKCSAgcGVyc2lzdGVudCBkYXRhIGZpbGUuCgkKMjAwMC0xMS0zMCAwOToxMSAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC90dW5uZWwvdHVubmVsLmMpOiBDbGVhbnVwIHBhdGNoIGZyb20gRnJhbmsgU3RyYXVzcy4KCQoyMDAwLTExLTMwIDA5OjEwICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBkLmMpOiBzZXQgRFNfQUdFTlRfTk9fUk9PVF9BQ0NFU1MgaW4gLUggaGVscCBvdXRwdXQuCgkKMjAwMC0xMS0zMCAwOTowOCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1lbnRpb24gdGhlIFRVTk5FTC1NSUIgc3VwcG9ydC4KCQoyMDAwLTExLTI5IDE4OjIxICBzbGlmCgoJVXBkYXRlIGUtbWFpbCBhZGRyZXNzIGZvciBTbGlmY2FrCgkKMjAwMC0xMS0yOSAxMTozNCAgbWFyegoKCWZpeGVkIG9yZGVyIG9mIGZ1bmN0aW9uIGNoZWNraW5nIHNvIHRoYXQgdnNucHJpbnRmIGlzIG5vdCBmb3VuZCBpbiBsaWJkYiAoQlNEIGRiKSBieSBtaXN0YWtlCgkKMjAwMC0xMS0yOSAwNToxOCAgbWFyegoKCXBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCgkKMjAwMC0xMS0yOCAxODowMCAgbWFyegoKCXBhcnRpYWwgc3VibWl0IHRvIGdldCBwZXJsL1NOTVAgdGVzdHMgdG8gcGFzcyBhbmQgdXBkYXRlIHRoZSBkb2NzIHNvbWV3aGF0IC0gc3RpbGwgZ2V0dGluZyBjb3JlcyBpbiBub3RpZnkudC4gaGFkIHRvIGNoYW5nZSBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24gdG8gdXBkYXRlIGFuIGV4aXN0aW5nIHVzZXIgaW5jYXNlIDIgc2Vzc2lvbnMgYXJlIHN0YXJ0ZWQgd2l0aCB0aGUgc2FtZSB1c2VyCgkKMjAwMC0xMS0yNyAxNDozNyAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9iYXNpY19zZXR1cCk6IGJhc2ljIHNldHVwIHNlcmllcyBvZiBxdWVzdGlvbnMuCgkKMjAwMC0xMS0yNyAxNDozNiAgaGFyZGFrZXIKCgktIChsb2NhbC9zbm1wY29uZi5kaXIvc25tcGQuY29uZi9hY2wpOiB0eXBvcy4KCQoyMDAwLTExLTI3IDE0OjM2ICBoYXJkYWtlcgoKCS0gKGxvY2FsL3NubXBjb25mKToKCSAgLSBhZGQgc3VwcG9ydCBmb3IgImdyb3VwcyIgb2YgaXRlbXMuCgkgIC0gZG9uJ3QgdXNlIElPOjpEaXIsIGFzIGl0cyBub3QgaW4gdGhlIHN0YW5kYXJkIHBlcmwgbW9kdWxlIGRpc3RyaWJ1dGlvbnMuCgkKMjAwMC0xMS0yNyAxNDozNCAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kbG1vZC5oKTogcmVtb3ZlIHVubmVlZGVkIHZhcmlhYmxlIHJlZmVyZW5jZS4KCQoyMDAwLTExLTI3IDE0OjMzICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gZml4IGF1dG8tc2V0IHN1cHBvcnQgZm9yIHRoZSBhZ2VudCAoYW5kIHBsdWcgYSBtZW1vcnkgbGVhaykuCgkKMjAwMC0xMS0yNyAxMzo0MiAgbmJhCgoJLSBzbm1wLmNvbmYuNS5kZWY6IGRvY3VtZW50IHRva2VucyBleHRlbmRlZEluZGV4IGFuZCBub1JhbmdlQ2hlY2sKCQoyMDAwLTExLTI3IDEzOjQxICBuYmEKCgktoHBhcnNlLmM6IGZpeCBhIEMrKyBzdHlsZSBjb21tZW50CgkKMjAwMC0xMS0yNCAxNToxNCAgbmJhCgoJLSBtZW1vcnlfZnJlZWJzZDIuYywgdm1zdGF0X25ldGJzZDEuYzogbWlub3IgZml4ZXMgZm9yIE5ldEJTRCAxLjUsIE9QZW5CU0QgMi42CgkKMjAwMC0xMS0yMiAxMzo0OCAgaGFyZGFrZXIKCgktIChtaWJncm91cC91Y2Qtc25tcC9kbG1vZC5jKTogUGF0Y2ggZnJvbSBTZWFuIEhhcmRpbmc6CgkgIC0gZG9uJ3QgZXhwb3J0IGFuIGludGVybmFsIHZhcmlhYmxlLgoJCjIwMDAtMTEtMjEgMTU6MTcgIG5iYQoKCS0gbWliLmM6IGZpeCBwYXJzaW5nIG9mIG9pZCBsaWtlIDk5LjEzLlwiZ3VmXCI4CgkKMjAwMC0xMS0xOSAxMzowMyAgbmJhCgoJLSBTTk1QLnhzLCBtaWIyYy52YXJ0eXBlcy5jb25mOiBUaGUgcmVjZW50IHNwZWNpYWxpc2F0aW9uIG9mIHRoZSBJbnRlZ2VyCgkJdHlwZXMgaW4gdGhlIHBhcnNlciBjcmVhdGVkIHByb2JsZW1zIGZvciB0aGUgcGVybCBtb2R1bGUgYW5kIGluIHR1cm4KCQlmb3IgbWliMmMuIFNvcnJ5IGZvciBub3QgY2F0Y2hpbmcgdGhpcyBiZWZvcmUgcHJlMiA6LSgKCQoyMDAwLTExLTE5IDEyOjU4ICBuYmEKCgktIGZpeGVzIHRvIC4vY29uZmlndXJlIC0td2l0aC1kZWZhdWx0cyAtLWVuYWJsZS1taW5pLWFnZW50OyBtYWtlIGluc3RhbGwKCQlhbmQgcnVuIHRoZSB0b29scyB1bmRlciBjeWd3aW4uIEhhdmVuJ3QgdHJpZWQgdGhlIGFnZW50IHlldCA6LSkKCQoyMDAwLTExLTE4IDA3OjE0ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4yLnByZTIgKQoJCjIwMDAtMTEtMTggMDc6MTIgIGhhcmRha2VyCgoJLSAoVDA0OXNubXB2M2luZm9ybSk6IHYzIGluZm9ybSB0ZXN0IGFkZGVkLgoJCjIwMDAtMTEtMTcgMTE6MDEgIG5iYQoKCS0gbWliLmMsIHNubXBfYXBpLmM6IGJldHRlciBlcnJvciBtZXNzYWdlcyBmb3IgYmFkIHNubXBzZXQgY2FsbHMgYW5kIGJhZAoJCWluZGljZXMuIEFsc28gZml4IGEgYnVnIHdpdGggcXVvdGVkIGluZGljZXMuCgkKMjAwMC0xMS0xNyAxMDozMiAgaGFyZGFrZXIKCgktICh0ZXN0cy9UMDUwc25tcHYzdHJhcCk6IHRlc3QgZm9yIHNubXB2MyB0cmFwcy4KCQoyMDAwLTExLTE3IDEwOjMwICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogZml4IGNhc2VzIHdoZXJlIHRoZSBmb3JtYXQgc3RyaW5ncyBhcmUgc3BlY2lmaWVkLgoJCjIwMDAtMTEtMTcgMTA6MjYgIG5iYQoKCS0gSUFOQWlmVHlwZS1NSUIudHh0OiB1cGRhdGUgZnJvbSBJQU5BCgkKMjAwMC0xMS0xNyAwODozMiAgaGFyZGFrZXIKCgktIChtYXN0ZXJfcmVxdWVzdC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKCSAgLSBmaXggbWVtb3J5IGxlYWtzLgoJICAtIGZpeCBhZ2VudHggcHJvYmxlbXMgd2l0aCBiYWQgc2V0cy4KCQoyMDAwLTExLTE2IDE3OjU1ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvc25tcHYzLmMpOiBhZGRlZCBhIHNwYWNlIGluIGEgZGVidWdnaW5nIG91dHB1dCBzdGF0ZW1lbnQuCgkKMjAwMC0xMS0xNiAxNzo1NCAgaGFyZGFrZXIKCgktIChzbm1wbGliL3JlYWRfY29uZmlnLmMpOiBzaW1wbGUgZGVidWdnaW5nIHN0YXRlbWVudCBhZGRlZC4KCQoyMDAwLTExLTE2IDE3OjU0ICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNldCBEU19MSUJfQVBQVFlQRSBpZiBpdCBoYXNuJ3QgYmVlbiBzZXQgeWV0LgoJCjIwMDAtMTEtMTYgMTc6NTIgIGhhcmRha2VyCgoJLSAodGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogYWRkIENPTkZJR1RSQVBELgoJCjIwMDAtMTEtMTYgMTc6NTAgIGhhcmRha2VyCgoJLSAoc25tcGxpYi9taWIuYywgdGVzdGluZy90ZXN0cy9UMTEyYWdlbnR4c2V0ZmFpbCwKCSAgdGVzdGluZy90ZXN0cy9UMTIycHJveHlzZXRmYWlsKToKCSAgLSBzdXBwb3J0IC1JciBmb3IgImRvbnQgY2hlY2sgcmFuZ2UvdHlwZSB2YWx1ZXMiIChsZXR0ZXIgciBzdWJqZWN0IHRvIGRlYmF0ZSkuCgkKMjAwMC0xMS0xNiAxNzoyNSAgaGFyZGFrZXIKCgktIChjYWxsYmFjay5jKTogYmV0dGVyIGRlYnVnZ2luZyBvdXRwdXQgdG8gZGlzcGxheSBhIGNhbGxiYWNrIGNvdW50IHdoZW4gZG9uZS4KCQoyMDAwLTExLTE2IDE2OjUyICBoYXJkYWtlcgoKCS0gKFQxMTNhZ2VudHh0cmFwKTogQSBuZXcgdGVzdCB0byB0ZXN0IHRyYXAgc3VwcG9ydCBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCgkKMjAwMC0xMS0xNiAxNjo1MCAgaGFyZGFrZXIKCgktIChUMDU4YWdlbnRhdXRodHJhcCk6IHNsZWVwIHNvbWUgYW5kIG9ubHkgcGVyZm9ybSBvbmUgZ2V0IHJlcXVlc3QuCgkKMjAwMC0xMS0xNiAxNjo0OSAgaGFyZGFrZXIKCgktIChUMDU0YWdlbnR2MmN0cmFwKTogc2xlZXAgYSBiaXQgYW5kIG9ubHkgc2VuZCBvbmUgc25tcCBzZXQgcmVxdWVzdC4KCQoyMDAwLTExLTE2IDE1OjQ3ICBuYmEKCgktIGdldG9wdC5jOiBxdWVsbCBjb21waWxlciB3YXJuaW5ncwoJCjIwMDAtMTEtMTYgMTU6MzEgIG5iYQoKCS0gcGFyc2UuW2NoXSwgbWliLmMsIHNubXBfYXBpLmM6IHJlbmFtZSBUWVBFX1VJTlRFR0VSMzIgYmFjayB0byBUWVBFX1VJTlRFR0VSCgkKMjAwMC0xMS0xNiAxNToxNiAgbmJhCgoJLSBzbm1wdHJhcGQuYywgc25tcHRyYXBkLmNvbmY6IG5ldyBjb25maWcgZGlyZWN0aXZlcyBmb3JtYXQxIGFuZCBmb3JtYXQyIHRvCgkJc2V0IGxvZyBmb3JtYXRzIGZvciBUUkFQMSBhbmQgVFJBUDIgcGR1cy4KCQoyMDAwLTExLTE2IDEzOjUwICBuYmEKCgktIHNubXBfYXBpLmM6IGFkZCBmdW5jdGlvbmFsaXR5IHRvIGNoZWNrIHZhbHVlIHR5cGVzIGluIGFkZGl0aW9uIHRvIHJhbmdlcwoJCWZvciBzbm1wc2V0IGFuZCBzbm1wdHJhcC4KCQoyMDAwLTExLTE2IDEzOjQ3ICBuYmEKCgktIHBhcnNlLmM6IEZpeCBERUZWQUwgcGFyc2luZyBmb3IgIE9CSkVDVCBJREVOVElGSUVSIG9yIEJJVFMgdmFsdWVzCgkJKGkuZS4gREVGVkFMIHsgeyAwIDAgfSB9IGV0YykKCQoyMDAwLTExLTE2IDExOjM5ICBoYXJkYWtlcgoKCS0gKFQwNThhZ2VudGF1dGh0cmFwKTogYWRkIGEgZ3JlYXRlciB0aW1lb3V0IHRvIHRoZSBnZXQgcmVxdWVzdC4KCQoyMDAwLTExLTE2IDExOjM1ICBoYXJkYWtlcgoKCS0gKGV4YW1wbGUuYyk6CgkgIC0gc2VuZCBhIHYyYyB0cmFwIHVzaW5nIGl0cyBvd24gZGF0YSwgbm90IHRoZSBzeXN0ZW1fbWliJ3MuCgkgIC0gbW9yZSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KCQoyMDAwLTExLTE2IDExOjM0ICBoYXJkYWtlcgoKCS0gKFQwNTNhZ2VudHYxdHJhcCwgVDA1NGFnZW50djJjdHJhcCwgVDA1OGFnZW50YXV0aHRyYXApOgoJICAtIG5ldyB0ZXN0cyBmb3IgdHJhcHMgc2VudCBieSB0aGUgYWdlbnQuCgkKMjAwMC0xMS0xNiAwOTo1NiAgaGFyZGFrZXIKCgktICh0YXJnZXQuYyk6IERvbid0IGRlbGV0ZSBSRUFET05MWSB0cmFwIHNlc3Npb25zLgoJCjIwMDAtMTEtMTUgMTY6MzcgIGhhcmRha2VyCgoJLSAodGVzdGluZy90ZXN0cy9UMDUyc25tcHYyY2luZm9ybSk6IHRlc3QgaW5mb3JtIHNlbmRpbmcvcmVjZWl2aW5nLgoJCjIwMDAtMTEtMTUgMTY6MzcgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcC5jLCBtYW4vc25tcHRyYXAuMSk6IHN1cHBvcnQgLUNpIGZvciBzZW5kaW5nIGluZm9ybXMuCgkKMjAwMC0xMS0xNSAxNTo0OCAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGRfbG9nLmMpOiB1c2UgU05NUF9NQVhCVUYgaW5zdGVhZCBvZiBhIGxvY2FsIGxlbmd0aCBkZWZpbml0aW9uLgoJCjIwMDAtMTEtMTUgMTQ6MTggIG5iYQoKCS0gTWFrZWZpbGUuaW46IGZpeCBtYWtlJ2luZyBpbiByZW1vdGUgZGlyZWN0b3J5CgkKMjAwMC0xMS0xNSAxNDoxMSAgbmJhCgoJLSBtYWluLmM6IHVwZGF0ZSB0byB1c2UgZ2V0b3B0IGZvciBhcmd1bWVudCBwYXJzaW5nLgoJCjIwMDAtMTEtMTUgMTQ6MTAgIG5iYQoKCS0gc25tcF9hZ2VudC5jOiBmaXggYSBjb25mdXNpbmcgaW5kZW50YXRpb24uCgkKMjAwMC0xMS0xNSAxNDowOSAgbmJhCgoJLSBhZ2VudF90cmFwLmM6IG1ha2Ugc3VyZSBjb21tdW5pdHkgaXMgXDAtdGVybWluYXRlZCBpbiB0YXJnZXRQYXJhbXNUYWJsZQoJCjIwMDAtMTEtMTUgMTQ6MDMgIG5iYQoKCS0gc25tcHRyYXBkX2xvZzogZml4IGEgYnVmZmVyIHRoYXQgaXMgd2F5IHRvbyBzaG9ydCBmb3IgYSB0cmFwIHdpdGgganVzdCBhCgkJc2luZ2xlIHBhcmFtZXRlci4gRml4IGEgYmFkIGxpbWl0IHRlc3QgaW4gc3RyX2FwcGVuZC4KCQoyMDAwLTExLTE1IDE0OjAwICBuYmEKCgktIHNubXB0cmFuc2xhdGUuYzogZml4IGEgc3R1cGlkIHBlcnJvciBmb3Igc25tcF9wZXJyb3IKCQoyMDAwLTExLTE1IDEzOjU4ICBuYmEKCgktIHBhcnNlLltjaF0sIG1pYi5jOiBlbmhhbmNlIHRoZSBwYXJzZXIgdG8gZGlzdGluZ3Vpc2ggSU5URUdFUiwgSW50ZWdlcjMyLAoJCVVuc2lnbmVkMzIsIFVJbnRlZ2VyMzIuCgkKMjAwMC0xMS0xNSAxMzo1NSAgbmJhCgoJc25tcF9hcGkuYzogcmVtb3ZlIGFuIHVudXNlZCB2YXJpYWJsZQoJCjIwMDAtMTEtMTUgMDc6NDkgIGhhcmRha2VyCgoJLSAoc25tcF92YXJzLmMsIHN1YmFnZW50LmMpOiBQYXRjaCBmcm9tIExhd3JlbmNlIEdyZWVuZmllbGQ6CgkgIC0gRG9uJ3QgbWFrZSBpbml0X2FnZW50KCkvc3ViYWdlbnRfcHJlX2luaXQoKSBleGl0IGJ1dCByZXR1cm4gYW4KCSAgICBlcnJvciBjb25kaXRpb24gaW5zdGVhZC4KCQoyMDAwLTExLTEyIDA4OjA4ICBoYXJkYWtlcgoKCS0gKHVjZERlbW9QdWJsaWMuYyk6IGFkZCBOVUxMIHRvIGVuZCBvZiBkZW1vIHN0cmluZyBhbmQgY2hlY2sgZm9yIGxlbj0wLgoJCjIwMDAtMTEtMTIgMDQ6NDUgIG5iYQoKCXNubXBfYXBpLmM6IE1ha2Ugc3VyZSB0aGUgbm9SYW5nZUNoZWNrIHRva2VuIGlzIGEgYm9vbGVhbgoJCjIwMDAtMTEtMTIgMDQ6NDEgIG5iYQoKCS0gbWliLmM6IGdpdmUgdGhlIHRyZWUtdG9wIGEgbmFtZSB0byBwcm90ZWN0IGVycm9yIG1lc3NhZ2Ugd2hlbiBsb29raW5nIHVwIC5mb28KCQoyMDAwLTExLTEyIDA0OjM2ICBuYmEKCgktIHNubXB0cmFuc2xhdGUuYzogdXNlIGNvbmZpZ19wZXJyb3IgZm9yIGEgYmV0dGVyIGVycm9yIG1lc3NhZ2UKCQoyMDAwLTExLTEyIDA0OjM0ICBuYmEKCgktIHByb3h5LmM6IHJlbW92ZSBzb21lIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMS0xMiAwNDozMyAgbmJhCgoJLWFnZW50X3RyYXBzLmM6IE1vdmUgYSBjb25kaXRpb25hbGx5IHVzZWQgdmFyaWFibGUKCQoyMDAwLTExLTEyIDA0OjMyICBuYmEKCglGaXggYSBib2d1cyAjaWZkZWYKCQoyMDAwLTExLTEwIDA5OjE4ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogYXBwbHkgcGF0Y2ggIzEwMjIyNCBmcm9tIGpicG4gZm9yIGNyb3NzLWNvbXBpbGluZy4KCQoyMDAwLTExLTEwIDA4OjU2ICBoYXJkYWtlcgoKCS0gKHRlc3RpbmcvVEVTVENPTkYuc2gsIHRlc3RpbmcvZXZhbF90b29scy5zaCwgdGVzdGluZy90ZXN0cy9UMDUxc25tcHYyY3RyYXApOgoJIC0gZmlyc3QgcGFzcyBhdCBhIHRlc3Rpbmcgc2NyaXB0IHRvIHRlc3QgdHJhcCBmdW5jdGlvbmFsaXR5LgoJICAgLSB3aGljaCBldmVuIHVuY292ZXJlZCBhIGJ1Zy4KCQoyMDAwLTExLTEwIDA4OjU1ICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXBkLmMpOgoJICAtIGZvcmsgaWYgZmlsZSBsb2dnaW5nIG9yIHN5c2xvZ2dpbmcsIGJ1dCBub3QgcHJpbnRpbmcuCgkgIC0gZG9uJ3QgY2xvc2Ugb3BlbiBmaWxlIGRlc2NyaXB0b3JzLiAgVGhlcmUgc2hvdWxkbid0IGJlIGFueS4KCQoyMDAwLTExLTEwIDA4OjUzICBoYXJkYWtlcgoKCS0gKGFwcHMvc25tcHRyYXBkX2xvZy5jKTogcHJvcGVybHkgbnVsbCB0ZXJtaW5hdGUgbG9nIHN0cmluZ3MuCgkKMjAwMC0xMS0wOSAxNjo0MCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUuaW4pOiBhdHRlbXB0IHRvIGltcGxlbWVudCBhIC0td2l0aC1yc2FyZWYgZmxhZy4KCQoyMDAwLTExLTA5IDE1OjMyICBoYXJkYWtlcgoKCS0gKFJFQURNRSwgcGVybC9TTk1QL1JFQURNRSk6IG1lbnRpb24gS2FybC4KCQoyMDAwLTExLTA5IDE1OjMxICBoYXJkYWtlcgoKCS0gKE5FV1MsIHBlcmwvU05NUC9SRUFETUUpOiBtZW50aW9uIEthcmwuCgkKMjAwMC0xMS0wOSAxNDo1NiAgaGFyZGFrZXIKCgktIChleGFtcGxlcy9idWxrd2Fsay5wbCwgdC9idWxrd2Fsay50KTogcGF0Y2ggZnJvbSBLYXJsIFNjaGlsa2U6CgkgIC0gc3VwcG9ydCBidWxrIHJlcXVlc3RzLgoJCjIwMDAtMTEtMDkgMTQ6NTMgIGhhcmRha2VyCgoJLSAoTUFOSUZFU1QsIFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIHN1cHBvcnQgYnVsayByZXF1ZXN0cy4KCQoyMDAwLTExLTA4IDIzOjMzICBoYXJkYWtlcgoKCS0gKHJlYWRfY29uZmlnLmMpOiBmaXggLUggb3V0cHV0LgoJCjIwMDAtMTEtMDggMjM6MDIgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogbWFrZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpIGNhbGwgcnVuX2FsYXJtcygpLgoJCjIwMDAtMTEtMDggMjI6NDUgIGhhcmRha2VyCgoJLSAoZGlza2lvLmMpOiBmaXggT0lELgoJCjIwMDAtMTEtMDggMTc6MDYgIGhhcmRha2VyCgoJLSAoU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gTWFyayBDYXZhZ2UgZm9yIGRlZmF1bHQgdmFsdWUgc3VwcG9ydC4KCQoyMDAwLTExLTA4IDE3OjAzICBoYXJkYWtlcgoKCS0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogbWluaW1hbCBERUZWQUwgcGFyc2luZyBzdXBwb3J0LgoJCjIwMDAtMTEtMDggMTY6MjAgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSk6IGNoZWNrIGZvciBsaWJyc2FyZWYsIGV0YywgaWYgbmVlZGVkLgoJCjIwMDAtMTEtMDcgMTU6MTUgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jLAoJICBhZ2VudC9zbm1wZC5jKToKCSAgLSB1aWQvZ2lkIGNoYW5nZXMuCgkKMjAwMC0xMS0wNyAxNToxMCAgaGFyZGFrZXIKCgktIChTTk1QLnhzKTogZml4IFRZUEVfTk9USUYgLT4gVFlQRV9OT1RJRlRZUEUuCgkKMjAwMC0xMS0wNyAxMTozMCAgaGFyZGFrZXIKCgktIChTTk1QL1NOTVAucG0sIFNOTVAvU05NUC54cyk6IFBhdGNoIGZyb20gSm9lIENsYXJrZToKCSAgLSBpbXBsZW1lbnQgYmVzdC1ndWVzcyAoLUliKSBwYXJzaW5nLgoJICAtIGFjY2VzcyB0byB0cmFwIHZhcmJpbmRzLgoJICAtIHJhbmdlIGFjY2Vzcy4KCQoyMDAwLTExLTA3IDExOjAwICBoYXJkYWtlcgoKCS0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgYnVpbGQgY3JlYXRlZCBmaWxlcy4KCQoyMDAwLTExLTA3IDEwOjU4ICBoYXJkYWtlcgoKCS0gKFJFQURNRSwgU05NUC5wbSwgU05NUC54cyk6IHBhdGNoIGZyb20gS2FybCBTY2hpbGtlOgoJICAtIGltcGxlbWVudCBhIGZpbmlzaCgpIGNhbGwuCgkKMjAwMC0xMS0wNyAxMDo1NCAgaGFyZGFrZXIKCgktIChTTk1QL1NOTVAueHMpOiBwYXRjaCBmcm9tIEthcmwgU2NoaWxrZToKCSAgLSBtdWx0aXBsZSBjYWxsYmFjayBwYXRjaCBmb3IgcGVybC9TTk1QL1NOTVAueHMuCgkKMjAwMC0xMS0wNyAxMDo0OCAgaGFyZGFrZXIKCgktIChyZWFkX2NvbmZpZy5jKTogbG9nIGFuIGVycm9yIG1lc3NhZ2UgaWYgdGhlIG9wdGlvbmFsIGNvbmZpZyBmaWxlIERORS4KCQoyMDAwLTExLTA3IDEwOjQxICBoYXJkYWtlcgoKCS0gKFNOTVAucG0pOiBmaXggaWlkIHBhcnNpbmcgd2l0aCByZXNwZWN0IHRvIG1pYiBub2RlcyB3aXRoIGEgLSBpbiBpdC4KCQoyMDAwLTExLTA3IDEwOjI5ICBoYXJkYWtlcgoKCS0gKGlmX2ZpZWxkcy5oLCBpbnRlcmZhY2VzLmMsIGlwTWVkaWEuYywgaXBSb3V0ZS5jLCB0Y3AuYywgdGNwVGFibGUuYywKCSAgdWRwLmMsIHVkcFRhYmxlLmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gbWliSkogZml4ZXMgW0ZyZWVCU0Qvb3RoZXIgQlNEJ3NdLgoJCjIwMDAtMTEtMDcgMTA6MTMgIGhhcmRha2VyCgoJLSAoYWdlbnQvYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnQvZHNfYWdlbnQuaCwgYWdlbnQvc25tcGQuYywKCSAgbWFuL3NubXBkLjEuZGVmLCBtYW4vc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gaW1wbGVtZW50IHVpZC9naWQgY2hhbmdlcyBhZnRlciBzdGFydHVwIGZvciB0aGUgYWdlbnQuCgkKMjAwMC0xMS0wNyAwODozMyAgaGFyZGFrZXIKCgktICh0YXJnZXQuYyk6IGEgYmV0dGVyIHNhbml0eSBjaGVjayBmb3Igc2Vzc2lvbiBkZWxldGlvbi4KCQoyMDAwLTExLTA3IDA3OjI0ICBoYXJkYWtlcgoKCS0gKHRhcmdldC5jKTogUGF0Y2ggZnJvbSBEYXZlIHRvIHNhbml0eSBjaGVjayBwYXJhbS0+dXBkYXRlVGltZS4KCQoyMDAwLTExLTA2IDExOjAwICBoYXJkYWtlcgoKCS0gKG1kNS5jKTogY2hlY2sgdG8gc2VlIHRoYXQgTURzaWduKCkgZGF0YSBsaWVzIG9uIGEgMzIgYnl0ZSBib3VuZHJ5LgoJICAtIGl0cyBwb3NzaWJsZSBzb21lIGNvbXBpbGVycyB3aWxsIGNob2tlIG9uIHRoaXMgaGFjay4KCSAgLSBmaXhlcyBidWcgIzEyMTc1LgoJCjIwMDAtMTEtMDMgMTc6NTQgIGhhcmRha2VyCgoJLSAobWliMmMpOiBzb3J0IE9JRHMgcHJvcGVybHkuCgkKMjAwMC0xMS0wMyAxNjo0NCAgaGFyZGFrZXIKCgktIChleGFtcGxlLmMpOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGZpeCBtaWIgcmVnaXN0cmF0aW9ucyBmb3IgZHVwbGljYXRlIE9JRHMgYmVpbmcgdXNlZCBmb3IgdGhlIHRyYXAgZXhhbXBsZXMuCgkKMjAwMC0xMS0wMyAxNTozMSAgaGFyZGFrZXIKCgktIChzbm1wZC5jKTogc2Vjb25kIHBhdGNoIGZyb20gZG91Z3dhcnogaW4gYnVnICMxMTcyNzMgdG8gZml4IHNtdXggcHJvYmxlbXMuCgkgIC0gVW0sIGFwcGxpZWQgY29ycmVjdGx5IHRoaXMgdGltZSAoSSBob3BlKS4KCQoyMDAwLTExLTAzIDE1OjI5ICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBzZWNvbmQgcGF0Y2ggZnJvbSBkb3Vnd2FyeiBpbiBidWcgIzExNzI3MyB0byBmaXggc211eCBwcm9ibGVtcy4KCQoyMDAwLTExLTAyIDIyOjE5ICBuYmEKCglDbGVhbiB1cCBzb21lIHVudXNlZCB2YXJpYWJsZXMgZXRjLgoJCjIwMDAtMTEtMDIgMjI6MTYgIG5iYQoKCS0gTWFrZWZpbGUuaW46IGZpeCBzb21lICQoc3JjZGlyKSByZWZlcmVuY2VzIHdoZW4gcnVubmluZyBvdXRzaWRlIHNvdXJjZQoJCjIwMDAtMTEtMDIgMjI6MTUgIG5iYQoKCS0gc25tcHRyYXBkLmM6IGZpeCB0aGUgZm9ybWF0IHN0cmluZyBmb3IgZm9ybWF0X3RyYXAKCQoyMDAwLTExLTAyIDIyOjE0ICBuYmEKCgktIE1ha2VmaWxlLmluOiByZW1vdmUgc29tZSBkdXBsaWNhdGVzIGZyb20gZmlsZSBsaXN0cwoJCjIwMDAtMTEtMDIgMjI6MTIgIG5iYQoKCURvY3VtZW50IHRoZSAtT1ggb3V0cHV0IG9wdGlvbgoJCjIwMDAtMTEtMDIgMjI6MTEgIG5iYQoKCURvY3VtZW50IHRoZSBzeXNzZXJ2aWNlcyB0b2tlbgoJCjIwMDAtMTEtMDIgMTY6MTcgIGhhcmRha2VyCgoJLSAoYWdlbnQvbWliZ3JvdXAvdWNkX3NubXAuaCk6IGFkZCB1Y2Qtc25tcC9wcm94eS4KCQoyMDAwLTExLTAyIDE2OjE2ICBoYXJkYWtlcgoKCS0gKGFnZW50L21pYmdyb3VwL3ZlcnNpb250YWcpOiBjaGFuZ2UgY3ZzIGFyY2hpdmUgc2l0ZSBhbmQgcGFja2FnZSBuYW1lLgoJCjIwMDAtMTEtMDIgMTM6MjMgIGhhcmRha2VyCgoJLSAoc211eC5jKTogUGF0Y2ggMTAyMjM5IGZyb20gZG91Z3dhcnogdG8gZml4IGEgcHJldmlvdXNseSBiYWQgc211eC5jIHBhdGNoLgoJCjIwMDAtMTEtMDEgMTY6MzYgIGhhcmRha2VyCgoJLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjIucHJlMSApCgkKMjAwMC0xMS0wMSAxNjoxNCAgaGFyZGFrZXIKCgktIChUMTIwcHJveHlnZXQsIFQxMjFwcm94eXNldCwgVDEyMnByb3h5c2V0ZmFpbCk6IHByb3h5IHRlc3Qgc3VpdGUuCgkKMjAwMC0xMS0wMSAxNjowOCAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5jLCBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm94eS5oKToKCSAgLSBtaW5pbWFsIFNFVCBzdXBwb3J0IGZvciB0aGUgcHJveHkgY29kZS4KCQoyMDAwLTExLTAxIDEwOjIyICBoYXJkYWtlcgoKCS0gKFQxMTJhZ2VudHhzZXRmYWlsKTogdGVzdCBmb3IgYWdlbnR4IHNldHMgdGhhdCBzaG91bGQgZmFpbCBwcm9wZXJseS4KCQoyMDAwLTEwLTMxIDE0OjMwICBuYmEKCgktIHRjcFRhYmxlLmM6IHJlbW92ZSBhbiB1bm5lc2Nlc3NhcnkgI2luY2x1ZGUKCQoyMDAwLTEwLTMxIDE0OjI4ICBuYmEKCgktIHNtdXguYzogZml4IHdyb25nIHZhcmlhYmxlIGxlbmd0aAoJCjIwMDAtMTAtMzEgMTQ6MjUgIG5iYQoKCS0gcHJvdG9jb2wuYzogZml4IHNvbWUgc3VzcGljaW91cyBsb29raW5nIGNvZGUKCQoyMDAwLTEwLTMxIDE0OjIxICBuYmEKCgktIG1hbi9zbm1wZC5jb25mOiBmaXggYSB0eXBvCgkKMjAwMC0xMC0zMSAxMjo0MSAgbmJhCgoJLSBtaWIuYzogYWRkIC1PWCBvdXRwdXQgZm9ybWF0LCBmb3IganVzdCBhbm90aGVyIHdheSBvZiBwcmludGluZyBpbmRpY2VzCgkKMjAwMC0xMC0zMSAxMjoyNyAgbmJhCgoJLSBpbnRlcmZhY2UuYzogYWRkICJpbnRlcmZhY2UiIGNvbmZpZyBmb3IgdW5ndWVzc2FibGUgaW50ZXJmYWNlIHR5cGUvc3BlZWQKCQoyMDAwLTEwLTMxIDEyOjI1ICBuYmEKCgktIGFwcHMvKjogbWFrZSBzdXJlIHdlIHJlcG9ydCBhbnkgZXJyaW5kZXgvZXJyY29kZSBpbiB0aGUgcmVzcG9uc2UKCQoyMDAwLTEwLTMxIDEyOjA0ICBuYmEKCgktIHByb3RvY29sLmM6IGNsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMC0zMSAxMDoxMyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBwYXRjaCAjMSBmcm9tIGJ1ZyAjMTE3MjczIGFwcGxpZWQgdG8gZml4IHNtdXggc29ja2V0IHByb2JsZW1zLgoJCjIwMDAtMTAtMzEgMDk6MjQgIGhhcmRha2VyCgoJLSAoU05NUC54cyk6IHByaW50IGNvdW50ZXI2NCdzIGFzIHVuc2lnbmVkLgoJCjIwMDAtMTAtMzEgMDc6NTQgIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgsIHN1YmFnZW50LmMsIHNubXBOb3RpZnlUYWJsZS5jLAoJICBzbm1wTm90aWZ5VGFibGUuaCk6IFBhdGNoIGZyb20gRGF2ZToKCSAgLSBmaXggbm90aWZpY2F0aW9ucyBmcm9tIGFnZW50eCBzdWJhZ2VudHMuCgkKMjAwMC0xMC0zMCAyMjowMyAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBmaXggYnVnICMxMTk3ODY6IG1ha2Ugc211eCByZXVzZSBzb2NrZXQgYWRkcmVzcy4KCQoyMDAwLTEwLTMwIDIxOjQyICBoYXJkYWtlcgoKCS0gKGV2YWxfdG9vbHMuc2gsIHRlc3RzL1QxMTBhZ2VudHhnZXQsIHRlc3RzL1QxMTFhZ2VudHhzZXQpOgoJICAtIGZpeCBidWcgIzM4MgoJICAtIGZpeCBhZ2VudHggbm9uLXJvb3QgdGVzdHMgdG8gdXNlIC14IC90bXAvYmxhaC9hZ2VudHhfc29ja2V0LgoJCjIwMDAtMTAtMzAgMTM6NDUgIGhhcmRha2VyCgoJLSAoc25tcGQuMS5kZWYpOiBmaXggYSB0eXBvIHBvaW50ZWQgb3V0IGJ5IENocmlzIFBlcHBlci4KCQoyMDAwLTEwLTMwIDExOjQ2ICBoYXJkYWtlcgoKCS0gKHRlc3RzL1QxMTFhZ2VudHhzZXQpOiB0ZXN0IHNjcmlwdCBmb3IgQWdlbnRYIHNldCBzdXBwb3J0LgoJCjIwMDAtMTAtMzAgMTE6NDMgIGhhcmRha2VyCgoJLSAodGVzdHMvVDExMGFnZW50eGdldCk6IGhlYWRlciBjaGFuZ2VkIHRvIGluY2x1ZGUgdGhlIHdvcmQgR0VULgoJCjIwMDAtMTAtMzAgMTE6MTMgIG5iYQoKCS0gdWNkLXNubXAvdm1zdGF0XyosIG1lbW9yeV9mcmVlYnNkMi5jLCBkbG1vZC5jOiBNYWtlIHNzUmF3Q3B1IG9iamVjdHMgQ291bnRlcnMsCgkJYW5kIGFkZCBzdXBwb3J0IGZvciAqQlNEIChpbmNsdWRpbmcgT3BlbkJTRCkKCQoyMDAwLTEwLTMwIDExOjA3ICBuYmEKCgktIENsZWFuIHVwIHVudXNlZCB2YXJpYWJsZXMuCgkKMjAwMC0xMC0zMCAxMTowNCAgaGFyZGFrZXIKCgktICh0ZXN0aW5nL3Rlc3RzL1QxMDFhZ2VudHgsIHRlc3RpbmcvdGVzdHMvVDExMGFnZW50eGdldCk6CgkgIC0gcmVuYW1lZCB0aGUgYWdlbnR4IHRlc3Qgc2NyaXB0LgoJCjIwMDAtMTAtMzAgMTE6MDMgIGhhcmRha2VyCgoJLSAodGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogZG9uJ3QgYWRkIC1jIENPTkZJR0ZJTEUgaWYgaXQgZG9lc24ndCBleGlzdC4KCQoyMDAwLTEwLTMwIDEwOjM5ICBoYXJkYWtlcgoKCS0gKGFnZW50L3NubXBkLmMpOiBlcnJvciB3aGVuIHBhcnNpbmcgLVggZm9yIG5vbi1hZ2VudHggYnVpbGRzLgoJCjIwMDAtMTAtMjcgMTE6MjkgIGhhcmRha2VyCgoJLSAoYXBwcy9zbm1wdHJhcGQuYyk6IGFkZCAtbyBmbGFnIHRvIGxvZyB0byBhIHBhcnRpY3VsYXIgZmlsZS4KCQoyMDAwLTEwLTI3IDEwOjQxICBoYXJkYWtlcgoKCS0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHVzZSBta3N0ZW1wIGlmIGF2YWlsYWJsZS4KCQoyMDAwLTEwLTI3IDEwOjQwICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNlYXJjaCBmb3IgbWtzdGVtcCgpLgoJCjIwMDAtMTAtMjcgMTA6MDggIGhhcmRha2VyCgoJLSAoRkFRKTogdXBkYXRlIGxpbnV4IGtlcm5lbCBsaXN0IHRvIGluY2x1ZGUgMi4yLgoJCjIwMDAtMTAtMjYgMTc6NTEgIGhhcmRha2VyCgoJLSAoZXZhbF90b29scy5zaCk6IG1ha2UgU0tJUElGTk9UIGNoZWNrIHRoZSBtaWIgbW9kdWxlIGxpc3QgdG9vLgoJCjIwMDAtMTAtMjYgMTc6NDggIGhhcmRha2VyCgoJLSAodGVzdHMvVDEwMWFnZW50eCk6IEFnZW50WCBzdWJhZ2VudCB0ZXN0IGZvciBzaW1wbGUgZ2V0IHJldHJpZXZhbC4KCQoyMDAwLTEwLTI1IDE3OjQ0ICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBBZGQgLVggb3B0aW9uIHRvIHNubXBkIHRvIHJ1biBhcyBhIHN1YmFnZW50LgoJCjIwMDAtMTAtMjUgMTc6MDYgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGZpeCBmb3IgY2FzZXMgd2hlbmUgZGVidWdnaW5nIGlzIGFsd2F5cyBvZmYuCgkKMjAwMC0xMC0xNyAxNTozMCAgaGFyZGFrZXIKCgktIChjb25maWcuaC5pbik6IGF1dG9oZWFkZXIgcnVuCgkKMjAwMC0xMC0xNiAwMzoxMyAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyLmMpOiBTcGVjaWZ5IHRoZSBsZW5ndGggb2YgdGhlIChwc2V1ZG8tKWFuc3dlciB0byBhIHJlcXVlc3QuCgkJVGhpcyBhbGxvd3MgaXQgdG8gYmUgY2FjaGVkIGNvcnJlY3RseSBmb3IgbXVsdGktcGFzcyBTRVQgaGFuZGxpbmcuCgkKMjAwMC0xMC0xNiAwMzoxMSAgZGF2ZXMKCgktIChhZ2VudHgvc3ViYWdlbnQuYyk6IERvbid0IG92ZXJ3cml0ZSBzYXZlZCBtb2RlIGluZm9ybWF0aW9uCgkJVGhpcyBzaG91bGQgaGVscCB3aXRoIChzb21lIG9mKSB0aGUgU0VUIGhhbmRsaW5nIHByb2JsZW1zLgoJCjIwMDAtMTAtMTYgMDE6NTYgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBEb24ndCBmcmVlIGNhbGxiYWNrIGRhdGEgc3RydWN0dXJlLgoJCVRoaXMgaG9sZHMgaW5mb3JtYXRpb24gdGhhdCBuZWVkcyB0byBwZXJzaXN0IGFjcm9zcyBtdWx0aS1wYXNzIHJlcXVlc3RzLgoJCUkgcmVhbGlzZSB0aGF0IHRoaXMgaW50cm9kdWNlcyBhIG1lbW9yeSBsZWFrLCBidXQgdGhpcyBpc24ndCB0aGUKCQljb3JyZWN0IHBsYWNlIHRvIGhhbmRsZSB0aGlzLgoJCjIwMDAtMTAtMTIgMTQ6NTIgIGhhcmRha2VyCgoJLSAoc25tcGQuYyk6IGFkZCAtSSB0byB0aGUgaGVscCBvdXRwdXQuCgkKMjAwMC0xMC0xMiAxNDoyNCAgaGFyZGFrZXIKCgktIChhZ2VudC9kbG1vZHMvKik6IHJlbW92ZSBvYnNvbGV0ZSB2ZXJzaW9ucwoJCjIwMDAtMTAtMTIgMTQ6MDggIGhhcmRha2VyCgoJLSAoY29uZmlndXJlKTogdXBkYXRlLgoJCjIwMDAtMTAtMTIgMTQ6MDEgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gTWF0dCBCcmFpdGh3YWl0ZToKCSAgLSB1ZHAgY29uZmlndXJhdGlvbiBjaGFuZ2VzIHRvIGNoZWNrIGZvciBtaXNjIHN0cnVjdHVyZSBkZWZpbml0aW9ucy4KCQoyMDAwLTEwLTEyIDEzOjQ4ICBoYXJkYWtlcgoKCS0gKFRVTk5FTC1NSUIudHh0KTogVFVOTkVMLU1JQiBkZWZpbml0aW9uLgoJCjIwMDAtMTAtMTIgMTM6NDggIGhhcmRha2VyCgoJLSAodHVubmVsLmgpOiBjb25maWdfYWRkX21pYihUVU5ORUwtTUlCKS4KCQoyMDAwLTEwLTEyIDEzOjQ3ICBoYXJkYWtlcgoKCS0gKHR1bm5lbC5oLCB0dW5uZWwuYywgdHVubmVsLmgpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gaW1wbGVtZW50IHRoZSBUVU5ORUwtTUlCLgoJCjIwMDAtMTAtMTAgMTQ6MzMgIG1zbGlmY2FrCgoJRml4IHVubGlua190cmVlIGZvciAidG9wIGxldmVsIiB0cmVlIG5vZGVzLgoJCjIwMDAtMTAtMTAgMTE6MDIgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiByZXZlcnNlIGxpYnJhcnkgbGluayBvcmRlcmluZyBhZ2Fpbi4uLgoJCjIwMDAtMTAtMTAgMDk6MDMgIG1zbGlmY2FrCgoJUmVtb3ZlIHJlbGF0aXZlIHBhdGggdG8gaW5jbHVkZSBzeXN0ZW0uaC4KCQoyMDAwLTEwLTEwIDA2OjUzICBtc2xpZmNhawoKCVJlbW92ZSB1bm5lZWRlZCBkZWNsIG9mIHZzbnByaW50ZiB3aXRob3V0IHN0ZGFyZy92YXJhcmdzIGRlY2wgb2YgdmFfbGlzdC4KCQoyMDAwLTEwLTEwIDA1OjE1ICBtc2xpZmNhawoKCUFwcGx5IHBhdGNoIGZvciBERUMgQWxwaGEgRVY2LCBzdXBwbGllZCBieSBTaHVtb24gSHVxdWU8c2h1cXVlQGlzYy51cGVubi5lZHU+CgkKMjAwMC0xMC0wOSAxNzowNiAgbXNsaWZjYWsKCglwYXRjaCB0byBmaXggbGVhZGluZyB6ZXJvIGVycm9yIGludHJvZHVjZWQgYnkgY2hhbmdlcyBmb3Igc2h1dGRvd25fbWliLgoJCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgoJLSAoZGxtb2QuYyk6IG1pbm9yIGRlYnVnZ2luZyBvdXRwdXQgYWRkaXRpb25zLgoJCjIwMDAtMTAtMDkgMTU6NTEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBtb3ZlIGF1dG9fbmxpc3QgdG8gbGlidWNkbWlicy4KCQoyMDAwLTEwLTA5IDExOjQzICBoYXJkYWtlcgoKCS0gKEZBUSwgUkVBRE1FKTogYWRkIG5ldyBtaXJyb3IuCgkKMjAwMC0xMC0wOSAxMDoyNiAgbXNsaWZjYWsKCglNb3ZlIGNvbmZpZy0gYW5kIHN0b3JlLXJlbGF0ZWQgY2xlYW51cCBmcm9tIHNodXRkb3duX21pYiB0byBzbm1wX3NodXRkb3duLgoJCjIwMDAtMTAtMDkgMDI6MzYgIGRhdmVzCgoJLSAobWliSUkvaW50ZXJmYWNlcy5jKTogUXVhbGlmeSBhbiBpbmRpdmlkdWFsIGludGVyZmFjZSB0eXBlIHRlc3Qgc3ltYm9sCgkJKFFuOiBzaG91bGQgYW55L2FsbCBvZiB0aGUgb3RoZXJzIGJlIHF1YWxpZmllZCBhcyB3ZWxsPykKCQoyMDAwLTEwLTA2IDA4OjU2ICBtc2xpZmNhawoKCVN1cHBvcnQgZm9yIHNodXRkb3duX21pYiAtIGNsZWFyaW5nIHRoZSBNSUIgdHJlZXMgYW5kIGNvbmZpZ3VyZWQgcmVnaXN0cmF0aW9ucy4KCQoyMDAwLTEwLTA2IDA1OjMzICBtc2xpZmNhawoKCVBsdWcgbWVtb3J5IGxlYWsgZm9yIHVjZC1zdXBwbGllZCBzZXRlbnYgb24gV2luMzIgcGxhdGZvcm0uCgkKMjAwMC0xMC0wNiAwNDo1OCAgbXNsaWZjYWsKCglSZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KCQoyMDAwLTEwLTA1IDIzOjQ1ICBuYmEKCgktIG1pYi5jOiBmaXggc2lsbHkgYnVnIGluIG5ldyBvaWQgcGFyc2VyLCB3aGVuIGxlYXZpbmcgdGhlIHRyZWUgYW5kIGdvaW5nCgkJaW50byBzdWItaWRzIHdlIGtub3cgbm90aGluZyBhYm91dAoJCjIwMDAtMTAtMDUgMTY6MDMgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIEhhcnJpZSBIYXpld2lua2VsOgoJICAtIGZpeCBsaWJyYXJ5IGRlcGVuZGVuY3kgb3JkZXIuCgkKMjAwMC0xMC0wNCAxNzo1OSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGluc3RhbGwgImV4dGVuZGluZyIgc25tcGNvbmYgZmlsZS4KCQoyMDAwLTEwLTA0IDE3OjU4ICBoYXJkYWtlcgoKCS0gKGV4dGVuZGluZyk6IGFkZCBzbm1wY29uZiBzdXBwb3J0IGZvciBleHRlbmRpbmcgdGhlIGFnZW50IChwYXNzLCBleGVjLCAuLi4pCgkKMjAwMC0xMC0wNCAxNzo1OCAgaGFyZGFrZXIKCgktIChtb25pdG9yKTogbWlzYyB1cGRhdGVzIGFuZCBhZGQgImZpbGUiIHdhdGNoaW5nLgoJCjIwMDAtMTAtMDQgMTc6NTcgIGhhcmRha2VyCgoJLSAoYWNsKTogZG9uJ3Qgc3BlY2lmeSBsaW5lIHNwZWNpZmljYXRpb25zIGZvciBkZWZhdWx0IHNubXBjb25mIHVzYWdlLgoJCjIwMDAtMTAtMDQgMTQ6NTAgIG5iYQoKCS0gRkFROiBmaXggYSBjb25mdXNpb24gYmV0d2VlbiAib21pdCIgYW5kICJpbmNsdWRlIgoJCjIwMDAtMTAtMDQgMTM6MjUgIGhhcmRha2VyCgoJLSAocGFzc19wZXJzaXN0LmMpOiBvcGFxdWVzIGluIHBhc3NfcGVyc2lzdC4KCQoyMDAwLTEwLTA0IDEwOjM1ICBoYXJkYWtlcgoKCS0gKHBhc3MuYyk6IHN1cHBvcnQgb3BhcXVlIHJldHVybiB0eXBlcy4KCQoyMDAwLTEwLTA0IDA3OjE1ICBtc2xpZmNhawoKCUZpeCBwYXJzaW5nIHByb2JsZW0gZm9yIC1QYyBvcHRpb247IHJlcG9ydGVkIGJ5IENocmlzdGlhbiBNYXV0bmVyLgoJCjIwMDAtMTAtMDQgMDc6MDIgIG1zbGlmY2FrCgoJcXVhbGlmeSBuZXcgaS9mIHR5cGVzLgoJCjIwMDAtMTAtMDQgMDY6NTIgIG1zbGlmY2FrCgoJcXVhbGlmeSBzeW1ib2xzIGZvciBuZXcgaS9mIHR5cGVzLgoJCjIwMDAtMTAtMDQgMDY6NTEgIG1zbGlmY2FrCgoJVGVybWluYXRlIGxpc3QgdG8gY29tcGlsZSAoYWRkIGEgY29tbWEpLgoJCjIwMDAtMTAtMDQgMDA6MTggIG5iYQoKCS0gc25tcHRhYmxlLmM6IGluZGV4IGNvbHVtbnQgKC1DaSkgd2lkdGggbm90IHByb3Blcmx5IGNvbXB1dGVkIHdoZW4gdXNpbmcKCQlHRVRCVUxLCgkKMjAwMC0xMC0wMyAxODoxOSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBKb2huIE5heWxvbjoKCSAgLSBhZGQgYSBwYXNzYmFjayBhcmd1bWVudCB0byByZWdpc3Rlcl9yZWFkZmQoKSBjYWxsYmFja3MuCgkKMjAwMC0xMC0wMyAxODoxNyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gbW92ZSBhdXRvX25saXN0Lm8vbG8gdG8gbGlidWNkYWdlbnQgc2luY2Ugc29tZSBtaWItbW9kdWxlcyBuZWVkIGl0LgoJCjIwMDAtMTAtMDMgMTg6MDcgIGhhcmRha2VyCgoJLSAoc211eC5jKTogUGF0Y2ggZnJvbSBKb2NoZW4gRnJpZWRyaWNoOgoJICAtIGZpeCBnZXRuZXh0IHJlcXVlc3RzIHRvIHN1YmFnZW50cy4KCQoyMDAwLTEwLTAzIDE3OjI2ICBoYXJkYWtlcgoKCS0gKG1pYkpKL2ludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBiZXR0ZXIgaWZ0eXBlIGd1ZXNzaW5nLgoJCjIwMDAtMTAtMDMgMTc6MjQgIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGJldHRlciBpZnR5cGUgZ3Vlc3NpbmcuCgkKMjAwMC0xMC0wMyAxNjo1MiAgaGFyZGFrZXIKCgktIChzbXV4LmMpOiBQYXRjaCBmcm9tIERvdWcgV2FyemVjaGE6CgkgIC0gZml4IG9pZCBwYXJzaW5nIGluIHRyYXBzLgoJCjIwMDAtMTAtMDMgMTY6MjMgIGhhcmRha2VyCgoJLSAoZXhhbXBsZS5jLCBleGFtcGxlLmgpOiBleGFtcGxlIG9mIGNvZGluZyBhIHYyIHRyYXAgZnJvbSBzb21lb25lIHdobwoJICBJIGhhdmUgdmVyeSBzYWRseSBmb3Jnb3R0ZW4uICBJJ3ZlIGJlZW4gbG9va2luZyBmb3IgdGhhdCBtZXNzYWdlIGZvcgoJICBhIHdoaWxlIHRvIHByb3Blcmx5IGF0dHJpYnV0ZSB0aGlzIHBhdGNoLiAgU2lnaC4KCQoyMDAwLTEwLTAzIDE2OjIxICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IFBhdGNoIGZyb20gRG91Z2xhcyBXYXJ6ZWNoYToKCSAgLSBzbm1wZCByZXR1cm5zIHdyb25nIGVycm9yIGluZGV4IG9uIFNOTVB2MSByZXF1ZXN0IChCVUcjMzc1KS4KCQoyMDAwLTEwLTAzIDA5OjEyICBtc2xpZmNhawoKCUZpeCBudWxsIGRlcmVmIG9mIHNzLT5jb21tdW5pdHksIHJlcG9ydGVkIGJ5IEppbSBQaWNrZXJpbmcuCgkKMjAwMC0xMC0wMyAwODowMyAgbXNsaWZjYWsKCglDYXN0aW5nIHRvIGZpeCBwcm9ibGVtcyBidWlsZGluZyB3aXRoIGFDQwoJVGhhbmtzIHRvIE1hcmtrdSBMYXVra2FuZW4gPHBreUBtb3JlbWFnaWMuY29tPgoJCjIwMDAtMTAtMDMgMDU6NTkgIG1zbGlmY2FrCgoJUmVtb3ZlIGNoZGlyIHRvIHVuZG8gZml4IGZvciAoQlVHIzI5OCkKCQoyMDAwLTEwLTAyIDIxOjQxICBuYmEKCgktIG1pYi5jOiBFc2NhcGUgIiBhbmQgXCBpbiB0ZXh0IHN0cmluZ3MuCgkKMjAwMC0xMC0wMiAyMTozOSAgbmJhCgoJLSBzbm1wX2xvZ2dpbmcuYzogI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4KCQoyMDAwLTEwLTAyIDIxOjM4ICBuYmEKCgktIE1ha2VmaWxlLmluOiBmaXggYSBtaXNzaW5nICQoc3JjZGlyKSBkdXJpbmcgbWFrZSBpbnN0YWxsIG9mIG1pYjJjCgkJY29uZmlndXJhdGlvbiBmaWxlcwoJCjIwMDAtMTAtMDIgMjE6MzcgIG5iYQoKCS0gc25tcHNldC5jOiBEbyBhIGV4aXQoMikgZm9yIGZhaWx1cmUgaW4gc2V0dGluZyB0aGUgdmFyaWFibGUuCgkKMjAwMC0xMC0wMiAyMTozNiAgbmJhCgoJLSBocl9zd3J1bi5jOiBhZGQgYSBzYWZlZ3VhcmQgZm9yIHZlcnkgbG9uZyBhcmd1bWVudCBsaXN0cy4KCQoyMDAwLTEwLTAyIDIxOjM0ICBuYmEKCgktIGhyX2Rpc2suYzogQWRkIGEgbmFtZSBwYXR0ZXJuIHRoYXQgbWF0Y2hlcyB4ODYgSURFIGRpc2tzIGZvciBTb2xhcmlzLgoJCjIwMDAtMTAtMDIgMjE6MzMgIG5iYQoKCS0ga2VybmVsX3N1bm9zNS5jOiBtYWtlIHRoZSBidWZmZXIgZm9yIFNJT0NHSUZDT05GIGR5bmFtaWMuCgkKMjAwMC0xMC0wMiAxMTo0MSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcHVzbS5oLgoJCjIwMDAtMTAtMDIgMTA6NDggIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOgoJICAtIG5ldyBvcHRpb25zIGZvciBpbnN0YWxsaW5nIGNyZWF0ZWQgZmlsZXMuCgkgIC0gbW9yZSBjb21tZW50cyBpbiB0aGUgY29kZS4KCSAgLSBhbGxvdyByZWFkaW5nIGEgLmNvbmYgZGlyZWN0bHkgdG8gd3JpdGluZyBmb3IgYXV0by1jb21tZW50aW5nIC5jb25mIGZpbGVzLgoJICAtIG1pc2MuCgkKMjAwMC0xMC0wMiAxMDo0NyAgaGFyZGFrZXIKCgktIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC1sZXNzLgoJCjIwMDAtMTAtMDIgMDk6MzUgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogcHJvdGVjdCBhZ2FpbnN0IDAgYnl0ZSBzdGF0UCBtYWxsb2NzLgoJCjIwMDAtMTAtMDIgMDk6MTQgIGhhcmRha2VyCgoJLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBUZWQgUnVsZToKCSAgLSBmaXggaW50ZXJmYWNlcy5jIGZvciB2YXJpYWJsZSBsZW5ndGggbnVtYmVyIGZvcm1hdHRpbmcgaW4gL3Byb2MvbmV0L2Rldi4KCQoyMDAwLTEwLTAxIDE2OjQwICBtc2xpZmNhawoKCVBlciBOaWVscyByZWNvbW1lbmRhdGlvbiwgY2hkaXIgdG8gUEVSU0lTVEVOVF9ESVJFQ1RPUlkgKHJlOiBidWcgIzI5OCkKCQoyMDAwLTA5LTMwIDA4OjU3ICBtc2xpZmNhawoKCUZpeCBERUJVR01TR1RMIG5vdCBmb3VuZCBlcnJvciBmb3IgYnVpbGRzIHdpdGhvdXQgZGxtb2Qgc3VwcG9ydC4KCVRoYW5rcyB0byBzaW1vbkB6aWQudHV3ZWluLmFjLmF0CgkKMjAwMC0wOS0zMCAwODo1MCAgbXNsaWZjYWsKCglGaXggc29tZSBrZXJuZWwgc3ltYm9scyAtIHRoYW5rcyB0byBzaW1vbkB6aWQudHV3aWVuLmFjLmF0CgkKMjAwMC0wOS0yOSAxNDozNSAgaGFyZGFrZXIKCgktICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgKyAubyAtPiAubG8gZml4ZXMuCgkKMjAwMC0wOS0yOSAxNDoyNyAgaGFyZGFrZXIKCgktIChtYWtlZmlsZWluZGVwZW5kLnBsKTogc2tpcCBlbXB0eSBkZXBlbmQgbGluZXMuCgkKMjAwMC0wOS0yOSAxNDowOSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IGRyb3AgZHVwbGljYXRlIGxpbmVzIGZyb20gcmVhZCBpbiBzbm1wZC5jb25mIGZpbGVzLgoJCjIwMDAtMDktMjkgMTM6NDYgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBzb3J0IHVua25vd24gZGlyZWN0aXZlcyBieSBmaWxldHlwZSAod2hvb3BzKS4KCQoyMDAwLTA5LTI5IDEzOjQyICBoYXJkYWtlcgoKCS0gKG1vbml0b3IpOiBtaW5vciB3b3JkaW5nIGFkanVzdG1lbnRzLgoJCjIwMDAtMDktMjkgMTM6NDIgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOiBwcmludCBtb3JlIGluZm9ybWF0aW9uL2NvbW1lbnRzIHRvIHRoZSBzY3JlZW4uCgkKMjAwMC0wOS0yOSAxMTozMSAgaGFyZGFrZXIKCgktICh2YXJfc3RydWN0LmgpOiBpbmNyZWFzZSByZWdpc3RyYXRpb24gbmFtZSBsZW5ndGggdG8gMzIgZnJvbSAxNiAoQnVnICMxNzIpCgkKMjAwMC0wOS0yOSAxMToxMiAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogaW5jb3JyZWN0IHZhbCBsZW5ndGggcGFzc2VkIHRvIHBhcnNlX3Vuc2lnbmVkX2ludCAoQnVnICMzMzkpLgoJCjIwMDAtMDktMjkgMTE6MDEgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IGZpeCBCdWcjMzUzIGZvciBob3N0bmFtZXMgdGhhdCBsb29rIGxpa2UgIjV3Ii4KCSAgLSBkb24ndCBpbnRlcnByZXRlIHRoZW0gYXMgYW4gaXAtcG9ydC4KCQoyMDAwLTA5LTI5IDEwOjM5ICBoYXJkYWtlcgoKCS0gKHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gamJwbkBjYW1icmlkZ2Vicm9hZGJhbmQuY29tOgoJICAtIFRoZXJlIGlzIGEgcGVjdWxpYXJpdHkgaW4gdGhlIHNubXBfYWxhcm1fdW5yZWdpc3RlciBmdW5jdGlvbiBpbgoJICAgIHNubXBsaWIvc25tcF9hbGFybS5jIHdoaWNoIGNhbiBjYXVzZSBhIHNlZ21lbnRhdGlvbiBmYXVsdC4gKEJ1ZyAjMzY3KQoJCjIwMDAtMDktMjkgMTA6MzQgIGhhcmRha2VyCgoJLSAoc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBQYXRjaCBmcm9tIEpvaG4gTmF5bG9uOgoJICAtIGZpeCB1c2Ugb2YgTlVMTCB0aW1lc3RhbXAgcG9pbnRlciBpbiBuZXcgcm93IGNyZWF0aW9uIChCdWcgIzM0NikKCQoyMDAwLTA5LTI4IDE0OjM4ICBuYmEKCgktIG1pYl9hcGkuMzogYWRkIGEgZmV3IGZ1bmN0aW9ucyB0byB0aGUgaGVhZGVyCgkKMjAwMC0wOS0yOCAxNDoxNCAgbmJhCgoJLSBzbm1wdHJhcC5jOiByZW1vdmUgYW4gZXh0cmFuZW91cyBzbm1wX2ZyZWVfcGR1CgkKMjAwMC0wOS0yOCAxNDoxMyAgbmJhCgoJLSBtYW4vOiBhZGQgbWFuIGVudHJpZXMgZm9yIG1hbnkgbGlicmFyeSBmdW5jdGlvbnMgKHBvaW50aW5nIHRvIHNubXBfYXBpLjMpCgkKMjAwMC0wOS0yOCAxMTowOSAgbXNsaWZjYWsKCglyZW1vdmUgc2Vjb25kIGNvcHkgb2Ygc3lzL3NvY2tldC5oCgkKMjAwMC0wOS0yOCAxMTowOCAgbXNsaWZjYWsKCglGb3IgYnVpbGRpbmcgb24gVWx0cml4IFY0LngKCQoyMDAwLTA5LTI3IDEyOjU5ICBoYXJkYWtlcgoKCS0gKGRsbW9kLmgpOiBhZGQgdGhlIFVDRC1ETE1PRC1NSUIgdG8gdGhlIGRlZmF1bHQgbG9hZCBsaXN0LgoJCjIwMDAtMDktMjcgMTI6NTUgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1Y2Rfc25tcC5oLCBkbG1vZC5jKToKCSAgLSBpbmNsdWRlIHVjZC1zbm1wL2RsbW9kIGJ5IGRlZmF1bHQuCgkgIC0gYnVpbGQgY29kZSBvbmx5IGlmIGRsb3BlbiBpcyBmb3VuZC4KCQoyMDAwLTA5LTI3IDA4OjMxICBoYXJkYWtlcgoKCS0gKGF1dG9fbmxpc3QuYyk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gZG9uJ3QgcHJpbnQga2VybmVsIGJhc2VkIHdhcm5pbmcgbWVzc2FnZXMgd2hlbiAtciwgZXRjLCBpcyBzcGVjaWZpZWQuCgkKMjAwMC0wOS0yNiAxNjowNyAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBtaW5vciBidWcgZml4ZXMuCgkKMjAwMC0wOS0yNiAxNDoyMSAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0sIG1hbmFnZXIucG0pOgoJICAtIGRpc3BsYXRhYmxlIHN1cHBvcnRzIC1tYXJrLy1vbm1hcmtlZC4KCSAgLSB1c2VyJ3Mgb25jYWxsIHNjaGVkdWxlIGlzIG1vZGlmaWFibGUgdmlhIHRoZSB3ZWIuCgkKMjAwMC0wOS0yNiAxMzoxNyAgbXNsaWZjYWsKCglGb3IgV2luMzIgQVBJOiBEZWNsYXJlIHN0cnRvdWwsIHZzbnByaW50ZjsgRW5hYmxlIHJldmVyc2UgQkVSIGVuY29kaW5nLgoJCjIwMDAtMDktMjYgMTM6MTUgIG1zbGlmY2FrCgoJSW5jbHVkZSBzeXN0ZW0uaCAodnNucHJpbnRmIGRlY2wpCgkKMjAwMC0wOS0yNiAxMzoxNCAgbXNsaWZjYWsKCglGaXggdW5zaWduZWQgY29tcGFyaXNvbi4KCQoyMDAwLTA5LTI2IDEzOjE0ICBtc2xpZmNhawoKCUZpeCB1bnNpZ25lZCBjb21wYXJpc29ucy4KCQoyMDAwLTA5LTI2IDEzOjEzICBtc2xpZmNhawoKCUZpeCBzaWduZWQgY29tcGFyaXNvbjsgUmVtb3ZlIHVudXNlZCB2YXIuCgkKMjAwMC0wOS0yNiAxMzoxMiAgbXNsaWZjYWsKCglJbmNsdWRlIGdldG9wdC5oIChvcHRhcmcgZGVjbCk7IFJlbW92ZSB1bnVzZWQgdmFyLgoJCjIwMDAtMDktMjYgMTM6MTEgIG1zbGlmY2FrCgoJTWF0Y2ggSW5pdGlhbGlzZV9UYWJsZSBhcmdzIDMsNCBkZWNsYXJhdGlvbnMgd2l0aCBkZWZpbml0aW9ucy4KCQoyMDAwLTA5LTI2IDEyOjU4ICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IG1ha2UgdGhlIGFkbWluc3RhdHVzIFJPTkxZLgoJCjIwMDAtMDktMjYgMTA6MjEgIGhhcmRha2VyCgoJLSAobWliMmMpOiBjaG9tcCgkMSkgaXMgaWxsZWdhbC4KCQoyMDAwLTA5LTI2IDAzOjA0ICBtc2xpZmNhawoKCUV4cGxpY2l0bHkgYnVpbGQgcGF0aCB0byBDQUNIRUZJTEUsIGFzIG5vdCBhbGwgQyBjb21waWxlcnMgc3VwcG9ydCAiIyMiLgoJCjIwMDAtMDktMjUgMTc6NDkgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtKTogV2VzIGFjdHVhbGx5IGRvY3VtZW50ZWQgc29tZXRoaW5nPyAgeW91IG11c3QgYmUga2lkZGluZyEKCQoyMDAwLTA5LTI1IDE2OjU2ICBtc2xpZmNhawoKCWNoZGlyIGp1c3QgYmVmb3JlIHNlbmRpbmcgY29sZHN0YXJ0IHRyYXAsIHRvIGFsbG93IGZvciBwYXRocyB0byBiZQoJcmVzb2x2ZWQuCgkKMjAwMC0wOS0yNSAxNTowOCAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBtaW5vciBncmFwaGluZyBjaGFuZ2VzCgkKMjAwMC0wOS0yNSAwOTozNSAgbXNsaWZjYWsKCgljYXNlIGluc2Vuc2l0aXZlIHRva2VuIHNlYXJjaCAodXNlIHN0cmNhc2VjbXApLgoJCjIwMDAtMDktMjIgMDY6MDMgIG5iYQoKCSAtbWlicy86IE1JQiB1cGRhdGVzCgkKMjAwMC0wOS0yMiAwNTo1NSAgbmJhCgoJLSBtaWJzLzogTUlCIHVwZGF0ZXMKCQoyMDAwLTA5LTIyIDA1OjUyICBuYmEKCgktIHNubXBfYXBpLmM6IHN1cHBvcnQgc2V0dGluZyBvZiBCSVRTIHZhcmlhYmxlcwoJCjIwMDAtMDktMjIgMDU6NTAgIG5iYQoKCS0gc25tcHN0YXR1cy5jOiBzaG93IGVycm9yIG9iamVjdAoJCjIwMDAtMDktMjIgMDQ6MjkgIG5iYQoKCS0gc25tcHVzbS5jOiBpc3N1ZSBlcnJvciBtZXNzYWdlIHdpdGggb2JqZWN0CgkKMjAwMC0wOS0yMiAwNDoyOCAgbmJhCgoJLSBzeXN0ZW0uaDogcHJvdmlkZSBwcm90b3R5cGVzIGZvciBzdHJ0b2wsIHN0cnRvdWwsIHNucHJpbnRmLCB2c25wcmludGYKCQoyMDAwLTA5LTIyIDA0OjI3ICBuYmEKCgktIHZhY21fdmFycy5jOiBwcm90ZWN0IGFnYWluc3Qgb3ZlcnJ1biBvZiBzdHJpbmdzCgkKMjAwMC0wOS0yMSAxNjoxNyAgbmJhCgoJLSBhcHBzLzogZGlzcGxheSBmYWlsZWQgb2JqZWN0IHdoZW4gb25lIGlzIGlkZW50aWZpZWQgYnkgcGR1LT5lcnJpbmRleAoJCjIwMDAtMDktMjEgMTU6NTkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIHNubXBkZi4xKTogZG9jdW1lbnQgdGhlIHNubXBkZiBjb21tYW5kLgoJCjIwMDAtMDktMjEgMTU6NTAgIG5iYQoKCS0gc25tcHRhYmxlOiB1c2UgR0VUQlVMSyB0byBjb2xsZWN0IGRhdGEgd2hlbiBwcm90b2NvbCBhbGxvd3MgaXQuIEFkZAoJCS1DQiBvcHRpb25zIHRvIGZhbGwgYmFjayB0byBHRVRORVhULgoJCjIwMDAtMDktMjEgMTU6MzggIG5iYQoKCS0gbWliLmM6IHJld3JpdGUgaW5kZXggaGFuZGxpbmcgaW4gb2JqZWN0IGlkcywgdG8gYWxsb3cgc3ltYm9saWMgZW51bXMuCgkJQWRkIERhdmVzIHN1Z2dlc3RlZCAtT3Ygb3V0cHV0LiBBbHNvIGVuaGFjZSAtVGQgb3V0cHV0IHRvCgkJZGVzdGluZ3Vpc2ggT0JKRUNULVRZUEUgZnJvbSBUUkFQLVRZUEUsIE1PRFVMRS1JREVOVElUWSBldGMuCgkKMjAwMC0wOS0yMSAxNTozMSAgaGFyZGFrZXIKCgktIChzbm1wZGYuYyk6IHVzZSB0aGUgVUNELVNOTVAtTUlCJ3MgZHNrVGFibGUgaWYgdGhlCgkgIEhPU1QtUkVTT1VSQ0VTLU1JQiBpcyBlbXB0eSBvciBpZiAtQ3UgaXMgc3BlY2lmaWVkIG9uIHRoZSBjb21tYW5kIGxpbmUuCgkKMjAwMC0wOS0yMSAxNToyOCAgbmJhCgoJLSBwYXJzZS5jOiBhZGQgYWJpbGl0eSB0byBjb2xsZWN0IFZBUklBQkxFUy9PQkpFQ1RTIGZvciBUUkFQLVRZUEUKCQlhbmQgTk9USUZJQ0FUSU9OLVRZUEUuIElnbm9yZSBmaWxlcyB0aGF0IGRvZXMgbm90IGhhdmUgREVGSU5JVElPTlMKCQlhcyB0aGVpciBzZWNvbmQgdG9rZW4uIEVuaGFuY2UgLVRkIG91dHB1dCBhY2NvcmRpbmdseS4KCQoyMDAwLTA5LTIxIDE1OjIyICBuYmEKCgktIHNubXBsaWI6IGFkZCBzbnByaW50Ziwgc3RydG9sLCBzdHJ0b3VsIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSB0aGVtCgkKMjAwMC0wOS0yMSAxNToxMCAgaGFyZGFrZXIKCgktIChtaWIuaCk6IGFkZCBmYWtlIHN0cnVjdCBkZWZpbml0aW9uIGZvciBlbnVtcwoJCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKCWZpbGUgc3RydG91bC5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDktMjEgMTQ6MTYgIG5iYQoKCWZpbGUgc3RydG9sLmMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOS0yMSAxNDoxNiAgbmJhCgoJZmlsZSBzbnByaW50Zi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDktMjEgMDY6MTYgIGhhcmRha2VyCgoJLSAobWliLmMsIG1pYi5oKTogbWFrZSBzcHJpbnQqIG5vbi1zdGF0aWMgKGJ1ZyAjMTMyKS4KCQoyMDAwLTA5LTIxIDAwOjI1ICBoYXJkYWtlcgoKCS0gKHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gSm9obiBOYXlsb246CgkgIC0gZml4IGJ1ZyAjMzYwIHdoZXJlIGEgY2xpZW50IG1pZ2h0IHJlbW92ZSBhIGFsYXJtIHJlZ2lzdHJhdGlvbgoJICAgIGR1cmluZyBhIGNhbGwgdG8gdGhlIGFsYXJtIGZ1bmN0aW9uIGFuZCBpbnZhbGlkYXRlIHRoZSBwb2ludGVyCgkgICAgYmVpbmcgdXNlZCBieSB0aGUgY2FsbGluZyBmdW5jdGlvbi4KCQoyMDAwLTA5LTIxIDAwOjIyICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS1kaXNhYmxlLXNoYXJlZCBieSBkZWZhdWx0IGluIGN2cyBjaGVja291dHMuCgkKMjAwMC0wOS0yMCAxNzozMSAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IHNwYWNlIGluZGVudCB0b2tlbnMgaWYgIyBwcmVwZW5kZWQuCgkKMjAwMC0wOS0yMCAxNzozMCAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogbnVsbCBpbnRlcm5hbCBoZWxwIGxpbmVzLgoJCjIwMDAtMDktMjAgMTc6MjkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4sIG1vbml0b3IpOiBkaXNrLCBwcm9jLCBhbmQgbG9hZCBjaGVja3MuCgkKMjAwMC0wOS0yMCAxNzoyOCAgaGFyZGFrZXIKCgktIChhdXRob3B0cyk6IGZpeCB2YWxpZCBhbnN3ZXJzIGZvciBhdXRoIGFuZCBwcml2IHR5cGVzLgoJCjIwMDAtMDktMjAgMTc6MjcgIGhhcmRha2VyCgoJLSAodmFjbV92YXJzLmMsIHVzbVVzZXIuYywgc25tcHYzLmMpOiBOVUxMIG91dCBoZWxwIG1lc3NhZ2VzIGZvciAuY29uZgoJICB0b2tlbnMgdGhhdCBhcmUgZWl0aGVyIGludGVybmFsIG9yIG5vIGxvbmdlciB0aGUgc3RhbmRhcmQgd2F5IG9mCgkgIGRvaW5nIHRoaW5ncy4KCQoyMDAwLTA5LTIwIDE3OjI2ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogZXhwb3J0IFNOTVBDT05GUEFUSCB0byBNYWtlZmlsZXMKCQoyMDAwLTA5LTIwIDE3OjI1ICBoYXJkYWtlcgoKCS0gKEVYQU1QTEUuY29uZi5kZWYpOiBtaW5vciBjb3JyZWN0aW9uIG9mIHRhYmxlIG5hbWUuICBNb3JlIGVycm9ycyBleGlzdC4KCQoyMDAwLTA5LTIwIDE2OjQ2ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBkZWJ1Z2dpbmcsIG1pYnMsIG91dHB1dCk6IG1vcmUgc25tcC5jb25mIHNubXBjb25mIGNvbmZpZyBmaWxlcy4KCQoyMDAwLTA5LTIwIDE1OjE3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBhdXRob3B0cyk6IHNubXAuY29uZiBzdXBwb3J0IGZvciBiYXNpYyBhdXRoZW50aWNhdGlvbiBvcHRpb25zLgoJCjIwMDAtMDktMjAgMTQ6NTUgIGhhcmRha2VyCgoJLSAoc25tcGNvbmYpOgoJIC0gZG9uJ3QgZm9yY2UgcmVhZGluZyBvZiAvdXNyL2xvY2FsL3NoYXJlL3NubXBkLmNvbmYuCgkgLSBkb24ndCBwcmludCB1bmtub3duIGRpcmVjdGl2ZSBjb21tZW50IGhlYWRlcnMgaWYgdGhlcmUgYXJlbid0IGFueS4KCQoyMDAwLTA5LTIwIDE0OjQ1ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogc3BhY2UgdGhpbmdzIG91dCBvbiB0aGUgc2NyZWVuIGEgYml0IGJldHRlci4KCQoyMDAwLTA5LTIwIDE0OjQ0ICBoYXJkYWtlcgoKCS0gKHRyYXBzaW5rcyk6IGFkZCBwb3J0IG51bWJlciBvcHRpb24gdG8gdHJhcHNpbmsgZGlyZWN0aXZlcy4KCQoyMDAwLTA5LTIwIDE0OjM1ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBzbm1wY29uZik6IGluc3RhbGwgc25tcGNvbmYgYW5kIGl0cyB2YXJpb3VzIHN1cHBvcnQgZmlsZXMuCgkKMjAwMC0wOS0yMCAxNDoyMCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogZG8gcmV2ZXJzZSB2MyBoZWFkZXIgZW5jb2Rpbmcgd2l0aCBhIHN0YXRpYyBidWZmZXIuCgkKMjAwMC0wOS0yMCAxMTozNyAgaGFyZGFrZXIKCgktIChzbm1wY29uZik6IG1pc2MgdXBkYXRlcyBhbmQgaW1wcm92ZW1lbnRzLgoJCjIwMDAtMDktMjAgMDg6NTQgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IEZpeCBkeW5hbWljIGFycmF5ICBwcm9ibGVtIHBvaW50ZWQgb3V0IGJ5IEpvY2hlbiBLbWlldHNjaC4KCQoyMDAwLTA5LTIwIDAyOjA1ICBkYXZlcwoKCS0gKGFnZW50eC9wcm90b2NvbC5jKTogRG9uJ3QgaW5jbHVkZSBjb250ZXh0IHN0cmluZ3Mgb24gUERVcyB0aGF0IHNob3VsZG4ndCBoYXZlIHRoZW0KCQkoVGhhbmtzIHRvIFBlZHJvIFBlcmVpcmEgZm9yIGlkZW50aWZ5aW5nIHRoaXMpCgkKMjAwMC0wOS0xOSAxNzowNyAgaGFyZGFrZXIKCgktIChhY2wsIHN5c3RlbSwgdHJhcHNpbmtzKTogaW5pdGlhbCBzbm1wY29uZiBkZXNjcmlwdGlvbiBmaWxlcy4KCQoyMDAwLTA5LTE5IDE3OjA2ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogcmVhZCBvbGRlciBjb25maWd1cmF0aW9uIGZpbGVzIGluIGFuZCBtZXJnZSB3aXRoIG5ldyByZXN1bHRzLgoJCjIwMDAtMDktMTkgMTQ6NDAgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYyk6IHByaW50IHBkdSB0eXBlIG9uIGRlYnVnZ2luZyBkdW1wIG91dHB1dC4KCQoyMDAwLTA5LTE5IDE0OjE1ICBoYXJkYWtlcgoKCS0gKGFzbjEuYywgc25tcC5jKTogcmV2ZXJzZSBlbmNvZGluZyBzdXBwb3J0IGZvciBzcGVjaWFsaXplZCBvcGFxdWUKCSAgZGF0YXR5cGVzIChmbG9hdCwgZG91YmxlLCBldGMpLgoJCjIwMDAtMDktMTkgMTQ6MTUgIGhhcmRha2VyCgoJLSAoYWNsb2NhbC5tNCk6IGRvY3VtZW50IG1hY3JvcyBhIGJpdCBtb3JlIGZvciBzdWJtaXNzaW9uIHRvIHRoZQoJICBhdXRvY29uZiBtYWNybyBsaWJyYXJ5LgoJCjIwMDAtMDktMTkgMDg6MzAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMjk1IHJlcG9ydGVkIGJ5IEpvaG4gV2hpdG5leSBqb2hud0BhaWluZXQuY29tCgkKMjAwMC0wOS0xOCAxNDo1OSAgaGFyZGFrZXIKCgktIChzbm1wX3ZhcnMuaCwgc25tcGQuaCk6IFBhdGNoIGZyb20gSGFycmllIEhhemV3aW5rZWw6CgkgIC0gbW92ZSBnZXRTdGF0UHRyIGRlZmluaXRpb24gdG8gcHJvcGVyIC5oIGZpbGUuCgkKMjAwMC0wOS0xOCAxNDo1NSAgbXNsaWZjYWsKCglGaXggYnVnICMzNDcgcmVwb3J0ZWQgYnkgZGFzX2Rlbml6QHlhaG9vLmNvbTogbWFrZSBzYmluIGluc3RhbGwgZGlyCgkKMjAwMC0wOS0xNCAwOTowNSAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jb25mLjUuZGVmKTogUGF0Y2ggZnJvbSBIYXJyaWUgSGF6ZXdpbmtlbDoKCSAgLSBhZGQgYSBwb3J0IHNwZWNpZmljYXRpb24gc25tcGQuY29uZiB0b2tlbi4KCQoyMDAwLTA5LTE0IDA4OjUyICBoYXJkYWtlcgoKCS0gKGFnZW50X3RyYXAuYyk6IGlnbm9yZSBvdXRwdXQgb2YgZ2V0aG9zdGJ5bmFtZSBmb3IgdHJhcCBzZXNzaW9uIGFkZGluZy4KCQoyMDAwLTA5LTEzIDE1OjA2ICBoYXJkYWtlcgoKCS0gKHNubXBjb25mKTogbmV3IHV0aWxpdHkgdG8gZ2VuZXJhdGUgLmNvbmYgZmlsZXMgYnkgcHJvbXB0aW5nIHRoZQoJICB1c2VyIHdpdGggcXVlc3Rpb25zLgoJCjIwMDAtMDktMDggMTM6MDcgIGhhcmRha2VyCgoJLSAocHJveHkuYyk6IFBhdGNoIGZyb20gU2NvdHQgTGlwY29uOgoJICAtIGZpeCBwcm94eSBzdXBwb3J0IGZvciBudWxsIGxlbmd0aCBzdHJpbmdzLgoJCjIwMDAtMDktMDcgMTA6MTIgIGhhcmRha2VyCgoJLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKCSAtIGZpeCBvcGVuc3NsIGNoZWNrcy4KCSAtIHJ1biBhdXRvaGVhZGVyLgoJCjIwMDAtMDktMDUgMTM6MzUgIG1zbGlmY2FrCgoJTWlub3IgdG91Y2h1cHMgdG8gYnVpbGQgb24gV2luMzIgcGxhdGZvcm0uCgkKMjAwMC0wOS0wNSAxMzozNCAgbXNsaWZjYWsKCglXZWxjb21lIHRoZSBuZXdlc3QgdWNkLXNubXAgYXBwbGljYXRpb25zIHRvIHRoZSBXaW4zMiBidWlsZHMuCgkKMjAwMC0wOS0wNCAxNToxOSAgbmJhCgoJLSByZWFkX2NvbmZpZy5jOiByZXN0YXJ0IGVycm9yY291bnQgd2hlbiByZWxvYWRpbmcgY29uZmlnCgkKMjAwMC0wOS0wNCAxNToxMiAgbmJhCgoJLSBzbm1wbmV0c3RhdC4xOiBhbGlnbiBtYW4gcGFnZSB3aXRoIHByb2dyYW0KCQoyMDAwLTA5LTA0IDE1OjEwICBuYmEKCgktIGlwQWRkci5jOiByZW1vdmUgYSBiYWQgbnRvaGwgZm9yIE9wZW5CU0QKCQoyMDAwLTA5LTA0IDE1OjA5ICBuYmEKCgktIG1pYmluY2wuaCwge3RjLHVkfXB7LFRhYmxlfS5jOiBlbnN1cmUganVzdCBvbmUgaW5jbHVkZSBvZiBzb2NrZXQuaAoJCXRvIG1ha2UgdW5wcm90ZWN0ZWQgaW5jbHVkZSBmaWxlIGluIFVsdHJpeCBoYXBweQoJCjIwMDAtMDktMDQgMTU6MDUgIG5iYQoKCS0gY29uZmlndXJlLmluOiBtYWtlIC0td2l0aG91dC1saWJ3cmFwIHdvcmsKCQoyMDAwLTA5LTAxIDE1OjE0ICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgoJICAtIHVwZGF0ZWQgY29kZS4KCQoyMDAwLTA5LTAxIDExOjU0ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogU2NvdHQgTGlwY29uIG5vdGVkIHRoYXQgc25tcHRyYXBkIGRvZXNuJ3Qgc3VwcG9ydCAtVC4KCQoyMDAwLTA4LTMwIDEzOjI4ICBuYmEKCgktIHBhcnNlLmM6IGZpeCBsb29wIGluIHN5bnRheCBlcnJvciBpbiBERUZWQUwgY2xhdXNlLiBBbHNvIGZpeCByZWFkaW5nCgkJb2YgLmluZGV4IGZpbGUgd2l0aCBmaWxlbmFtZXMgY29udGFpbmluZyBibGFua3MuCgkKMjAwMC0wOC0yOCAxMzo0MyAgbWFyegoKCW1pbm9yIHN5bnRheCBnbGl0Y2ggaW4gUE9EIGRvY3MKCQoyMDAwLTA4LTI0IDAxOjU1ICBkYXZlcwoKCS0gKGFwcHMvc25tcHRhYmxlLmMpOiBGaXggYnVnIHdpdGggZGlzcGxheWluZyBoZWFkZXItbGVzcyBpbmRleGVkIHRhYmxlcwoJCShUaGFua3MgdG8gRXJuaWUgTWlsbGVyKQoJCjIwMDAtMDgtMTkgMTE6MjkgIG1zbGlmY2FrCgoJQXBwbHkgcGF0Y2ggZnJvbSA8Q2hyaXN0b3BoLk1hbW1pdHpzY2hAdHUtY2xhdXN0aGFsLmRlPgoJdG8gZml4IHNpZ24gaW4gYXNuX3JidWlsZF91bnNpZ25lZF9pbnQgLgoJCjIwMDAtMDgtMTggMDQ6MTggIG1zbGlmY2FrCgoJcmVzdG9yZSBwcmV2aW91cyB2ZXJzaW9uOyBvcGVuYnNkLCBzb2xhcmlzLCBsaW51eCBidWlsZCBvay4KCQoyMDAwLTA4LTE4IDAzOjQ0ICBtc2xpZmNhawoKCXJlbW92ZSB1bnVzZWQgcHJpbnRmIGFyZ3VtZW50IHBhc3NlZCB0byBzbm1wX2xvZy4KCQoyMDAwLTA4LTE4IDAzOjIwICBtc2xpZmNhawoKCWZpeCBidWcgMjUzIHdpdGggcGF0Y2ggc3VwcGxpZWQgYnkgSmVmZnJleSBIb25pZyA8amNoQGJzZGkuY29tPgoJCjIwMDAtMDgtMTggMDI6NTIgIG1zbGlmY2FrCgoJZml4IGJ1ZyAzMTggLSB0ZXN0IDkgYW5kIDEwIGV4cGxpY2l0bHkgY3JlYXRlIHRoZSB0ZXN0IHVzZXIuCgkKMjAwMC0wOC0xNyAxMzo0MiAgbXNsaWZjYWsKCglUaGUgYmF0dGxlIHRvIHRyaW0gbmV3bGluZXMgY29ycmVjdGx5IGNvbnRpbnVlcy4uLnJlZHVjZSBsZW5ndGggYnkgb25lLgoJCjIwMDAtMDgtMTYgMTU6MDQgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYywgc25tcHVzbS5jKTogZml4IHZhcmlvdXMgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIHByb2JsZW1zLgoJCjIwMDAtMDgtMTYgMTU6MDMgIGhhcmRha2VyCgoJLSAoc2NhcGkuYyk6IGZpeCBwYWRkaW5nIHNpemUgaW4gZW5jcnlwdGlvbi4KCQoyMDAwLTA4LTE2IDE0OjQ4ICBoYXJkYWtlcgoKCS0gKHNjYXBpLmMpOiBzZXQgcGxhaW50ZXh0IGxlbmd0aCBhdCB0aGUgZW5kIG9mIHNjX2RlY3J5cHQuCgkKMjAwMC0wOC0xNSAwNTowOCAgbXNsaWZjYWsKCglGaXggYnVnIDI4NCB3aXRoIGEgc2hvcnQgZXhwbGFuYXRpb24gYWJvdXQgc25tcC5jb25mLgoJCjIwMDAtMDgtMTUgMDM6MDAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAyODMgLSB1bWFzayAwMjIsIG1ha2UgaW5zdGFsbC4gVGhhbmtzIHRvIGNzYWJhLnRvdGhAc3prLmJrZS5odQoJCjIwMDAtMDgtMTUgMDA6MDkgIG5iYQoKCS0gc25tcHRlc3QuYzogb3ZlcmhhdWwgaW5wdXRfdmFyaWFibGUsIGtpbGwgbmV3bGluZQoJCjIwMDAtMDgtMTQgMjI6MDUgIG5iYQoKCS0gYWNsb2NhbC5tNCwgY29uZmlndXJlLmluOiBmaXhlcyBmb3IgY29uZmlndXJlIC0tc2lsZW50CgkKMjAwMC0wOC0xNCAxNzoyNyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKCSAgLSAtLWVuYWJsZS1zaWxlbnQtbGlidG9vbCB0byBtYWtlIE5pZWxzIHNtaWxlLgoJCjIwMDAtMDgtMTQgMTc6MTcgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogaW1wbGVtZW50IGEgbmV3IChkZWZhdWx0KSBlbmdpbmVJRCB0eXBlIGJhc2VkCgkgIG9uIGEgcmFuZG9tIG51bWJlciwgYW5kIGEgdGltZXN0YW1wLgoJICAtIEkgdGhpbmsgaXQgd29uJ3QgaW52YWxpZGF0ZSBleGlzdGluZyBpbnN0YWxsYXRpb25zIChoZWgpLgoJCjIwMDAtMDgtMTQgMTY6NDcgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6CgkgIC0gaWYgLURyZWFkX2NvbmZpZywgdGhlbiBwcmludCBldmVuIG5vLWhlbHAgdG9rZW5zIGFuZCBhICogZm9yIFBSRU1JQiBvbmVzLgoJCjIwMDAtMDgtMTQgMTQ6NTEgIG5iYQoKCS0gKG1hbnkpOiBwb3J0YWJpbGl0eSBmaXhlcyBmb3IgT3BlbkJTRCAyLjYsIEZyZWVCU0QgNC4xLCBVbHRyaXggNC41CgkKMjAwMC0wOC0xNCAxMTozMyAgaGFyZGFrZXIKCgktIChrZXl0b29scy5jKTogUGF0Y2ggZnJvbSBZaWdhbCBIb2NoYmVyZzoKCSAgLSByZW1vdmUgdW51c2VkIGNvbnRleHQgdmFyaWFibGVzLgoJCjIwMDAtMDgtMTQgMTE6MjkgIGhhcmRha2VyCgoJLSAoc2NhcGkuYyk6IFBhdGNoIGZyb20gWWlnYWwgSG9jaGJlcmc6CgkgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBrZXlsZW5ndGggY2hlY2suCgkKMjAwMC0wOC0xMSAxMzowOSAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogb3B0aW1pemUgcmV2ZXJzZSBlbmNvZGluZyBvZiB2YXJiaW5kbGlzdHMuCgkKMjAwMC0wOC0xMSAwODo1NSAgaGFyZGFrZXIKCgktIChSRUFETUUubWliMmMpOiBQYXRjaCBmcm9tIEphbiBBbGZyZWQgU2FuZHZlbjoKCSAgLSB0eXBvcy4KCQoyMDAwLTA4LTExIDA2OjA1ICBuYmEKCgktIGFwcHMvKjogc25tcGFwcCAtViBzaG91bGQgbm90IGdpdmUgdGhlIHVzYWdlIG1lc3NhZ2UgdG9vLgoJCjIwMDAtMDgtMTEgMDA6NDQgIG5iYQoKCS0gc25tcHRyYXBkLjg6IGZpeCB0eXBvLiBUaGFua3MgdG8gRy4gQWxsZW4gTW9ycmlzIElJSSA8Z2FtM0BhY20ub3JnPgoJCjIwMDAtMDgtMTAgMjM6MjMgIG5iYQoKCS0gcGFyc2UuYzogcHJlZGVmaW5lIE9iamVjdFN5bnRheCwgQXBwbGljYXRpb25TeW50YXgsIFNpbXBsZVN5bnRheCBhbmQKCQlPYmplY3ROYW1lCgkKMjAwMC0wOC0xMCAxNjoyMCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgbWliMmMpOgoJICAtIG1ha2UgbWliMmMgbG9vayBpbiAkKHNubXBsaWJkaXIpIGZvciAuY29uZiBmaWxlcy4KCSAgLSBpbnN0YWxsIG1pYjJjIGFuZCAuY29uZiBmaWxlcy4KCQoyMDAwLTA4LTEwIDE0OjMzICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYyk6IGR5bmFtaWNhbGx5IGRlY2lkZSB0byByZXZlcnNlL2ZvcndhcmQgZW5jb2RlLgoJCjIwMDAtMDgtMTAgMTQ6MzEgIGhhcmRha2VyCgoJLSAoZXh0ZW5zaWJsZS5jKTogZml4IENSIHRlcm1pbmF0aW9uLgoJCjIwMDAtMDgtMTAgMTQ6MjUgIGhhcmRha2VyCgoJLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBkZWZpbmUgcmV2ZXJzZSBlbmNvZGluZyBvbiBieSBkZWZhdWx0LgoJCjIwMDAtMDgtMTAgMTM6MDIgIG1zbGlmY2FrCgoJZml4IGJ1ZyAyNTIgZm9yIGNvbmZpZ3VyZSBhbmQgc3lzL3NvY2tldC5oIG9uIEJTRC9PUyA0LjIKCQoyMDAwLTA4LTEwIDA5OjA3ICBoYXJkYWtlcgoKCS0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXAuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLAoJICBzbm1wdXNtLmgsIHNubXB2My5jKToKCSAgLSBpbXBsZW1lbnQgcmV2ZXJzZSBlbmNvZGVkIG1lc3NhZ2VzLgoJICAgIC0gVE9ETzogY2xlYW4gdXAsIHJ1bi10aW1lIGRldGVybWluYXRpb24gb2Ygd2VhdGhlciB0byB1c2UgaXQgb3Igbm90LgoJCjIwMDAtMDgtMDkgMTU6NDAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAzMzEgd2l0aCBwYXRjaCBpbiBwYXJ0IHByb3ZpZGVkIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CgkKMjAwMC0wOC0wOSAxNToyNyAgbXNsaWZjYWsKCglubyAvLyBjb21tZW50LCBpbiBkZWZlcmVuY2UgdG8gbm9uLUFOU0ktQyBjb21waWxlcnMuCgkKMjAwMC0wOC0wOSAwNzoyMSAgbmJhCgoJLSBocl9zd3J1bi5jOiBmaXggdGhlIFJ1blBhdGggZm9yIHN3YXBwZWQgb3V0IExpbnV4IHByb2Nlc3MKCQoyMDAwLTA4LTA5IDA3OjIxICBuYmEKCgktIGhyX3ByaW50LmM6IGZpeCBhIGRlYnVnIHRva2VuCgkKMjAwMC0wOC0wOSAwNDo0NCAgbmJhCgoJLSBtYWluLmM6IGZpeCBwYXJzaW5nIG9mIC12CgkKMjAwMC0wOC0wOSAwMToxMyAgZGF2ZXMKCgktIChtaWJKSi9pcFJvdXRlLmgpOiBPbWl0IHJvdXRlX3dyaXRlIGZvciBub3cKCQoyMDAwLTA4LTA5IDAwOjU4ICBkYXZlcwoKCS0gKG1pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKCQkoUGlsb3QgZXJyb3Igd2hlbiB0cnlpbmcgdG8gY29tbWl0IHRoZSBjaGFuZ2VzIGVhcmxpZXIgLSBzb3JyeSEpCgkKMjAwMC0wOC0wOCAxMDowNiAgaGFyZGFrZXIKCgktIChleHRlbnNpYmxlLmMpOiBzdHJpcCBuZXdsaW5lcy4KCQoyMDAwLTA4LTA4IDA4OjUxICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogUGF0Y2ggZnJvbSBTY290dCBMaXBjb246IHN0YXJ0IG9wdGluZCBhdCAxIG5vdCAwLgoJICAtCgkKMjAwMC0wOC0wOCAwNjozNiAgbXNsaWZjYWsKCglGaXggYnVnICMyOTUgKGZyZWUgKnNlY1N0YXRlUmVmIGJlZm9yZSBhbGxvY2F0aW5nIGFub3RoZXIgb25lKS4KCQoyMDAwLTA4LTA4IDA2OjA1ICBtc2xpZmNhawoKCWZpeCBidWcgIzI5OCByZXBvcnRlZCBhbmQgcGF0Y2ggc3VwcGxpZWQgYnkgQ29ucmFkIExpbmsgPGNsaW5rQG1sLmNvbT4KCQoyMDAwLTA4LTA4IDA0OjU5ICBuYmEKCgktIHNubXBfYXBpLmM6IGZpeCBhIGJ1c3kgbG9vcCB3aGVuIGFsYXJtIHF1ZXVlIGlzIGFjdGl2ZSB3aXRob3V0IGFueQoJCW91dHN0YW5kaW5nIHJlcXVlc3RzCgkKMjAwMC0wOC0wOCAwNDo0NyAgbmJhCgoJLSBzbm1wc2V0LjE6IGNhbm5vdCBzZXQgY291bnRlcnMKCQoyMDAwLTA4LTA4IDA0OjQyICBtc2xpZmNhawoKCUZpeGVkIChCVUcjMzMyKSB1c2luZyBwYXRjaCBzdWJtaXR0ZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCUFsc28gY29uc29saWRhdGVkIGNvbW1lbnRzIGFib3V0IHRoZSBmb3VyIHNlbmQgUERVIGZ1bmN0aW9ucy4KCQoyMDAwLTA4LTA3IDA2OjU5ICBtc2xpZmNhawoKCUZpeCBsZWFrIGluIHJlcG9ydGFibGUgZXJyb3JzIGZvdW5kIGJ5IEpvaG4gTmF5bG9uIDxqYnBuQGNhbWJyaWRnZWJyb2FkYmFuZC5jb20+CgkKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgoJZmlsZSBhZGRfbW9kdWxlX3JlcGxhY2VtZW50LjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwNTo0OCAgbmJhCgoJZmlsZSByZWFkX29iamlkLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBzbm1wX3NldF9zYXZlX2Rlc2NyaXB0aW9ucy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgc25tcF9zZXRfbWliX3dhcm5pbmdzLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX21vZHVsZV9ub2RlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSByZWFkX21vZHVsZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9hbGxfbWlicy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcmVhZF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X3ZhcmlhYmxlLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF92YWx1ZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgcHJpbnRfb2JqaWQuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIHByaW50X2Rlc2NyaXB0aW9uLjMgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wOC0wNyAwMjo0OSAgbmJhCgoJZmlsZSBwcmludF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGluaXRfbWliX2ludGVybmFscy4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgaW5pdF9taWIuMyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTA3IDAyOjQ5ICBuYmEKCglmaWxlIGdldF9tb2R1bGVfbm9kZS4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDcgMDI6NDkgIG5iYQoKCWZpbGUgYWRkX21pYmRpci4zIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDQgMTc6MTMgIGhhcmRha2VyCgoJLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBhZGQgaW4gdGhlIG5vdGlmaWNhdGlvbiBncm91cCBieSBkZWZhdWx0LgoJCjIwMDAtMDgtMDQgMTc6MDggIGhhcmRha2VyCgoJLSAobm90aWZpY2F0aW9uLmgpOiBub3RpZmljYXRpb24gbWliIHdyYXBwZXIuCgkKMjAwMC0wOC0wNCAxNzowNiAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6CgkgLSBpbml0aWFsaXplIG9wdGluZCBiZWZvcmUgY2FsbGluZyBnZXRvcHQuCgkgLSBkZWJ1Z2dpbmcgb3V0cHV0LgoJCjIwMDAtMDgtMDQgMTY6NTYgIGhhcmRha2VyCgoJLSAocHJveHkuYyk6IHByb3Blcmx5IHNldCB0aGUgZmlyc3QgKHVudXNlZCkgYXJndW1lbnQgdG8gc25tcF9wYXJzZV9hcmdzKCkuCgkKMjAwMC0wOC0wNCAxNjo1MyAgaGFyZGFrZXIKCgktIChhZ2VudF90cmFwLmMsIHNubXBOb3RpZnlUYWJsZS5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCgkgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCgkgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCB0YXJnZXQuYyk6CgkgIC0gaWYgdXNpbmcgdGhlIHNubXBOb3RpZmljYXRpb25UYWJsZSwgaW5zZXJ0IG5vbi12MSB0cmFwIHNpbmtzIGludG8gaXQuCgkKMjAwMC0wOC0wNCAwNToyNiAgZGF2ZXMKCgktIChtaWJncm91cC9taWJKSi5oIG1pYmdyb3VwL21pYkpKLyopOiBFeHBlcmltZW50YWwgcmUtd3JpdGUgb2YgbWliSUkKCQoyMDAwLTA4LTA0IDA1OjIxICBkYXZlcwoKCS0gKG1pYmdyb3VwL3V0aWxfZnVuY3MuW2NoXSk6IE5ldyAnY2FjaGVkIHRhYmxlJyByb3V0aW5lcwoJCjIwMDAtMDgtMDMgMDg6MzcgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMzI1IGlkZW50aWZpZWQgYnkgSm9obiBOYXlsb24gPGpicG5AY2FtYnJpZGdlYnJvYWRiYW5kLmNvbT4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIElQLUZPUldBUkQtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIElORVQtQUREUkVTUy1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDgtMDMgMDE6MjQgIG5iYQoKCWZpbGUgSUYtSU5WRVJURUQtU1RBQ0stTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAzIDAxOjI0ICBuYmEKCglmaWxlIEhDTlVNLVRDLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA4LTAyIDA3OjA2ICBtc2xpZmNhawoKCVNpbGVudCBydW5uaW5nIGdyZXAgcmVzdWx0cy4KCQoyMDAwLTA4LTAyIDA2OjEwICBtc2xpZmNhawoKCUZpeCBCVUcgIzI5MSA6IGFsbG93ICIyNTUuMjU1LjI1NS4yNTUiIGZvciB0ZXh0IGlucHV0IHRvIEFTTl9JUEFERFJFU1MKCQoyMDAwLTA4LTAyIDA1OjIwICBtc2xpZmNhawoKCUZpeCAoQlVHIzMyMykgOiBmcmVlIFBEVSB3aGVuIHNubXBfc2VuZCBmYWlscy4KCQoyMDAwLTA4LTAyIDA1OjA2ICBtc2xpZmNhawoKCUFkZCAtcCBvcHRpb24gb25jZSB0byBzbm1wZCBhcmdzLgoJRmluZCBNSUJESVJTIGluIHNvdXJjZSB0cmVlLgoJRml4IGNvbmRpdGlvbiB0byBzZXQgUEFUSC4KCQoyMDAwLTA4LTAxIDIzOjMwICBuYmEKCgktIGlwLmM6IE9uZSBtb3JlICNpZiBzb2xhcmlzCgkKMjAwMC0wOC0wMSAyMzoxOSAgbmJhCgoJLSBpcC5jOiBBIGJhZCAjaWYgLi4uIHRoZSBwcm9wZXIgZGVmaW5lIHRvIHRlc3QgZm9yIFNvbGFyaXMgaXMgc29sYXJpczIKCQoyMDAwLTA4LTAxIDE2OjQwICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlIHVudXNlZCB1c2FnZSgpIHR5cGVkZWYuCgkKMjAwMC0wOC0wMSAxNjo0MCAgaGFyZGFrZXIKCgktIChwcm94eS5jLCBwcm94eS5oKTogLVdhbGwgd2FybmluZyBmaXhlcy4KCQoyMDAwLTA4LTAxIDE2OjM5ICBoYXJkYWtlcgoKCS0gKEZBUSk6IG1lbnRpb24gbmV3ZXIgdmVyc2lvbnMgb2YgU29sYXJpcy4KCQoyMDAwLTA4LTAxIDE2OjM3ICBoYXJkYWtlcgoKCS0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IHJldmVydCB0byBub24tY29uZmlnZWQgVEVTVENPTkYuCgkKMjAwMC0wOC0wMSAxNjozMSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3ApOiBtYWtlIHVuLXF1aWV0LgoJCjIwMDAtMDgtMDEgMTA6MjMgIGhhcmRha2VyCgoJLSAoc25tcC11Y2Quc2gpOiBmaXggYnVnICMyOTcgKGRvbid0IGtpbGwgZ3JlcCBhbmQgaW5pdCBzY3JpcHQgaW52b2NhdGlvbnMpLgoJCjIwMDAtMDgtMDEgMDQ6NDUgIG1zbGlmY2FrCgoJRml4IGJ1ZyBmb3VuZCBieSBZaWdhbCBIb2NoYmVyZyA8aG9jaGJlcmdAZG1oc29mdHdhcmUuY29tPgoJCjIwMDAtMDgtMDEgMDM6MzAgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF92YXJzLmMpOiBGaXggYnVpbGRpbmcgb2YgY29tcGxldGUgT0lECgkJKHdvcmsgd2l0aCB0aGUgbmFtZSBvcmlnaW5hbGx5IHJlZ2lzdGVyZWQsCgkJIG5vdCBhbnkgc3Vic2VxdWVudCBkaXZpc2lvbiBib3VuZGFyaWVzKQoJCjIwMDAtMDctMzEgMjA6MDkgIG1zbGlmY2FrCgoJUmVtb3ZlIGR1cGxpY2F0ZSBmb3BlbiBmcm9tIHNoZWxsX2NvbW1hbmQuCgkKMjAwMC0wNy0zMSAxODo1OCAgbXNsaWZjYWsKCgkoVEVTVENPTkYuc2guaW4pIC0gc2V0IE1JQkRJUlMgdG8gc2libGluZyBvZiB0aGUgdGVzdGluZyBkaXJlY3RvcnkuCgkoUlVOVEVTVFMpIC0gYWxsb3cgYmluYXJpZXMgdG8gYmUgaW4gdGhlICItRCBiaW5kaXIiIGRpcmVjdG9yeS4KCQoyMDAwLTA3LTMxIDE1OjI1ICBtc2xpZmNhawoKCURvbnQgYWRqdXN0IFBBVEggaWYgU05NUF9QQVRIIGlzIHNldC4KCURvbnQgYWRkIHBvcnQgc3BlYyB0byBTTk1QX0ZMQUdTIGlmIG9uZSBpcyBhbHJlYWR5IHNwZWNpZmllZC4KCQoyMDAwLTA3LTMxIDEzOjQ5ICBtc2xpZmNhawoKCVJlbW92ZSB0ZXN0IGRpcmVjdG9yaWVzIGZvciBza2lwcGVkIHRlc3RzLgoJS2VlcCB0ZXN0IGRpcmVjdG9yaWVzIGZvciBmYWlsZWQgdGVzdHMuCglLZWVwIHRlc3QgZGlyZWN0b3JpZXMgZm9yIHBhc3NlZCB0ZXN0cyB3aGVuICJSVU5URVNUUyAtcyIgaXMgc3BlY2lmaWVkLgoJU2VhcmNoIGNvbmZpZy5oIGF0IHRoZSByb290IG9mIHRoZSBidWlsZCB0cmVlLgoJCjIwMDAtMDctMzEgMTE6MzIgIG1zbGlmY2FrCgoJTWVyZ2UgZnJvbSBhdXRvbWFrZS0xLjQ6IEFkZCBmb3IgUmhhcHNvZHksIE9wZW5TdGVwLCBDcmF5LVQzLCBTWC00LCBTWC01CgkKMjAwMC0wNy0zMSAxMTozMSAgbXNsaWZjYWsKCglNZXJnZSBmcm9tIGF1dG9tYWtlLTEuNDogQWRkIGZvciBSaGFwc29keSwgT3BlblN0ZXAKCQoyMDAwLTA3LTMwIDE3OjM4ICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlUYWJsZS5jLCBzbm1wTm90aWZ5VGFibGUuaCwgdGFyZ2V0LmMsIHRhcmdldC5oKToKCSAgLSBpbXBsZW1lbnQgdW50ZXN0ZWQgZmlsdGVyaW5nIGZ1bmN0aW9uIGNhbGxiYWNrIGZvciB0YXJnZXQgc2VhcmNoZXMuCgkgIC0gZGVsZXRlIHVudXNlZCBmdW5jdGlvbi4KCSAgLSBtaXNjIHdhcm5pbmcgZml4ZXMuCgkKMjAwMC0wNy0zMCAxNzowNyAgaGFyZGFrZXIKCgktIChzbm1wTm90aWZ5RmlsdGVyUHJvZmlsZVRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJQcm9maWxlVGFibGUuaCwKCSAgc25tcE5vdGlmeUZpbHRlclRhYmxlLmMsIHNubXBOb3RpZnlGaWx0ZXJUYWJsZS5oKToKCSAgLSBtb3JlIG5vdGlmaWNhdGlvbiB0YWJsZSBpbXBsZW1lbnRhdGlvbnMgZm9yIGZpbHRlcmluZy4KCSAgICAtIEZyYW1ld29yayBjb21wbGV0ZSwgZnVuY3Rpb25hbGl0eSBpcyBub3QuCgkKMjAwMC0wNy0zMCAxNzowNSAgaGFyZGFrZXIKCgktIChoZWFkZXJfY29tcGxleC5jLCBoZWFkZXJfY29tcGxleC5oKToKCSAgLSBoYW5kbGUgaW1wbGllZCBvYmplY3RzLgoJICAtIGltcGxlbWVudCBoZWFkZXJfY29tcGxleF9nZXQoKSBmb3Igc2ltcGxlIGRhdGEgcmV0cmlldmFscy4KCQoyMDAwLTA3LTI4IDA2OjE1ICBtc2xpZmNhawoKCUNsZWFudXAgaW5jbHVkZSBoZWFkZXJzIHRvIGZpeCBidWcgIzMwNy4gVGhhbmtzIHRvIHNhbmR2ZW5AcmVzZWFyY2guYXR0LmNvbS4KCQoyMDAwLTA3LTI3IDE1OjE5ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBWaW5heSBNb2h0YToKCSAgLSBhY2Nlc3NfaG9zdHMoKSByZXF1aXJlcyBhbiBhcmd1bWVudCBzbyBmYWtlIG9uZS4KCQoyMDAwLTA3LTI3IDE1OjAwICBoYXJkYWtlcgoKCS0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWF0dGlhcyBCYXJ0aGVsOgoJICAtIGZpeCBmb3IgaW50ZXJmYWNlcyB3aXRob3V0IGFuIGF0dGFjaGVkIElQIGFkZHJlc3MuCgkKMjAwMC0wNy0yNyAxNDo1NSAgaGFyZGFrZXIKCgktICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKCSAgLSBzdXBwb3J0IHJhdyB2YWx1ZXMuCgkKMjAwMC0wNy0yNyAwODoyNSAgaGFyZGFrZXIKCgktIChzbm1wdXNtLmMpOiBwcmludCBlcnJvcnMgdG8gc3RkZXJyLgoJCjIwMDAtMDctMjcgMDY6MjAgIG5iYQoKCS0gcGFyc2UuYzogRml4IGEgbWlzc2luZyBpbml0aXphdGlvbiB3aGVuIG9uZSBNSUIgaG9sZHMgTU9EVUxFLUNPTVBMSUFOQ0UKCQlmb3IgYW5vdGhlcgoJCjIwMDAtMDctMjcgMDE6MzUgIG5iYQoKCS0gc25tcF9hcGkuYzogRml4IHBkdS0+Y29tbXVuaXR5IGJlaW5nIG92ZXJ3cml0dGVuIHdpdGggc2Vzc2lvbi0+Y29tbXVuaXR5CgkJVGhhbmtzIHRvIERhbmEgUC4gQ29vayA8ZGNvb2tAY2FibGV0cm9uLmNvbT4KCQoyMDAwLTA3LTI2IDIyOjI4ICBtc2xpZmNhawoKCVVwZGF0ZSBmb3Igd2luMzIgYnVpbGQ6IHJlbW92ZSB1bnVzZWQgdmFyaWFibGVzIGFuZCB1bnB1Ymxpc2hlZCBtZXRob2QuCgkKMjAwMC0wNy0yNiAwODo1MyAgaGFyZGFrZXIKCgktIChtaWIyYy5zdG9yYWdlLmNvbmYpOiBtaXNjIGNoYW5nZXMgYW5kIGltcHJvdmVtZW50cy4KCQoyMDAwLTA3LTI2IDA4OjUzICBoYXJkYWtlcgoKCS0gKHRrbWliKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIHRyYW5zbGF0ZU9iaiBoYWNrLgoJCjIwMDAtMDctMjYgMDg6NDkgIGhhcmRha2VyCgoJLSAodGttaWIpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gcmVtb3ZlIGJlZ2lubmluZyBuZXdsaW5lIGluIGRlc2NyaXB0aW9uIGNsYXVzZXMuCgkKMjAwMC0wNy0yMSAxNDowMCAgaGFyZGFrZXIKCgktIChzZXR1cGRiLCBzbm1wdG9zcWwpOiBvbmx5IGRlbGV0ZSBoaXN0b3J5IHJvd3Mgb25jZSBldmVyeSBob3VyIG9yIHNvLgoJICAtIHRvbyBDUFUgaW50ZW5zaXZlIGZvciBsYXJnZSB0YWJsZXMuCgkKMjAwMC0wNy0yMSAxMjo1OSAgaGFyZGFrZXIKCgktIChzZXR1cGRiLCBzbm1wdG9zcWwpOiByZWNvcmQgYW5kIGRpc3BsYXkgc3lzVXBUaW1lIGFuZCBvdGhlcnMuCgkKMjAwMC0wNy0yMSAxMjo1NyAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogZ3JhcGhpbmcgd29ya3MgYWdhaW4uCgkKMjAwMC0wNy0yMSAxMjo1NyAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBjb21tZW50cywgbGVnZW5kcywgYW5kIG1heC9taW4gd29yayBhZ2Fpbi4KCQoyMDAwLTA3LTE3IDExOjAwICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5oKTogY29uZmlnX3JlcXVpcmUga2VybmVsX3N1bm9zNS4KCQoyMDAwLTA3LTEyIDA5OjI5ICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogY29weSBrZXkgbGVuZ3RoIGFzIHdlbGwgYXMgdGhlIGtleSB3aGVuIHVzaW5nIHRoZSBzYW1lCgkgIHByaXZhY3kga2V5IGFzIHRoZSBhdXRoIGtleS4KCQoyMDAwLTA3LTExIDEzOjM0ICBtYXJ6CgoJYWRkZWQgcmFuZ2VzIGZpZWxkIHRvIFNOTVA6Ok1JQiBoYXNoCgkKMjAwMC0wNy0xMSAxMDowNSAgaGFyZGFrZXIKCgktIChtaWIuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIG1ha2UgbnVsbCBQUkVGSVggdmFyaWFibGUgcG9zc2libGUgc28gbm9uLWRvdC1sZWFkaW5nIG9pZHMgYXJlIGFjY2VwdGVkLgoJCjIwMDAtMDctMTEgMDk6MjIgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgoJICAtIG1ha2UgdGhlIHNlc3Npb24gcG9pbnRlcnMgaW5kaWNhdGUgd2VhdGhlciBvciBub3QgdGhleSBhcmUKCSAgICAiYXV0aG9yaXRhdGl2ZSIsIG1lYW5pbmcgd2VhdGhlciB0aGV5IHNob3VsZCBiZSBsZWFybmluZyBlbmdpbmVJRHMKCSAgICBvciByZXBvcnRpbmcgb24gdGhlbS4KCSAgLSBwYXNzIHRoZSByZWNlaXZlZC1wYWNrZXQgc2Vzc2lvbiBwb2ludGVyIGludG8gc25tcHYzX3BhcnNlIGFuZAoJICAgIHVzbV9wcm9jY2Vzc19pbl9tc2coKSB0byB1c2UgdGhpcyBmbGFnLgoJICAtIHNldCBpc0F1dGhvcmF0YXRpdmUgPSB0cnVlIGluIHRoZSBhZ2VudCwgYW5kIHVua25vd24gaW4gdGhlIHNubXB0cmFwZC4KCQoyMDAwLTA3LTExIDA4OjMyICBoYXJkYWtlcgoKCS0gKHNubXB2My5jKTogbWFrZSB0aGUgY3JlYXRlVXNlciB0b2tlbiBhY2NlcHQgYW4gZW5naW5laWQgKC1lIEFSRykgdG8gdXNlLgoJCjIwMDAtMDctMDcgMDE6MzcgIGRhdmVzCgoJLSAobWliSUkvaW50ZXJmYWNlcy5jKTogUmVjb2duaXNlIFRva2VuIFJpbmcgaW50ZXJmYWNlcyB1bmRlciBMaW51eAoJCjIwMDAtMDctMDYgMTc6MTkgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IHByaW50IGdlbmVyaWMgc3RyaW5ncyB3aGVuIHNhdmluZyBwZXJzaXN0ZW50IGRhdGEKCSAgd2hlcmUgcG9zc2libGUuICAoSUUsIGNoZWNrIGZvciBwcmludGFibGUgY2hhcmFjdGVycyBiZWZvcmUgcHJpbnRpbmcgaGV4KS4KCQoyMDAwLTA3LTA2IDE3OjA1ICBoYXJkYWtlcgoKCS0gKFRFU1RDT05GLnNoLCBURVNUQ09ORi5zaC5pbik6IG1vdmVkIFRFU1RDT05GLnNoIHRvIFRFU1RDT05GLnNoLmluCgkgIGFuZCBoYXZlIHRoZSBNSUJTIHBhdGggdmFyaWFibGUgYnVpbHQgYnkgY29uZmlndXJlIHNpbmNlIGl0IGtub3dzCgkgIHdoZXJlIHRoZSByb290IGxldmVsIHNvdXJjZSBkaXJlY3RvcnkgaXMuCgkKMjAwMC0wNy0wNiAxNzowNCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaGVhZGVyX2NvbXBsZXguYywgc25tcE5vdGlmeVRhYmxlLmMsCgkgIGFzbjEuaCwgc25tcF9hcGkuYyk6CgkgIC0gaW1wbGVtZW50IElNUExJRUQgaW5kZXggaGFuZGxpbmcuCgkgIC0gbWFrZSB0aGUgY3JlYXRlZCBVU00gZW50cmllcyBzZXQgdGhlIHN0b3JhZ2VUeXBlIGFuZCBSb3dTdGF0dXMKCSAgICBhcHByb3ByaWF0ZWx5LgoJCjIwMDAtMDctMDYgMTc6MDIgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuaCk6IGJldHRlciBjb21tZW50cyBvbiBhIGNvdXBsZSBvZiBmdW5jdGlvbiBkZWZpbml0aW9ucy4KCQoyMDAwLTA3LTA1IDA3OjUwICBtc2xpZmNhawoKCWZpeCAoQlVHIzI5MCkgZ3JhY2VmdWxseSBoYW5kbGUgc29tZSBQRFVzIHRoYXQgaGF2ZSBubyB2YXJpYWJsZXMuCgkKMjAwMC0wNy0wNSAwNjo0NiAgbXNsaWZjYWsKCglbbm8gbG9nIG1lc3NhZ2VdCgkKMjAwMC0wNy0wNCAxMDoyMSAgaGFyZGFrZXIKCgktIChzbm1wX3ZhcnMuYywgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB1c20uYywgc25tcHVzbS5oKToKCSAgLSByZW1vdmUgbGFzdCByZW1uYW50cyBvZiB0aGUgImluaXRpYWwiIHVzZXIuCgkgIC0gbWFrZSBlbmdpbmVpZCByZXBvcnRzIGZyb20gdGhlIHVzbSBoYXBwZW4gYmFzZWQgb24gdGhlIHJlcG9ydCBmbGFnCgkgICAgaW4gdGhlIG1lc3NhZ2UgZmxhZy4KCSAgICAtIE5vdGU6IHRoaXMgaXMgYSBiaWcgaXNzdWUgd2l0aCB0aGUgU05NUHYzIHByb3RvY29sIHNwZWNzLiAgVGhlCgkgICAgICBzcGVjaWZpY2F0aW9ucyBub3RlIHRoYXQgeW91IHNlbmQgYSByZXBvcnQgaWYgeW91IGFyZQoJICAgICAgImF1dGhvcml0YXRpdmUiLCBidXQgZG9uJ3QgZGVzY3JpYmUgaG93IHRvIGtub3cgaWYgeW91IGFyZQoJICAgICAgYXV0aG9yaXRhdGl2ZSBvciBub3QuICBGb3Igc2l0dWF0aW9ucyBsaWtlIHByb3hpZXMgYW5kCgkgICAgICBub3RpZmljYXRpb24gcmVjZWl2ZXJzLCB3aGVyZSB5b3UgYXJlIHNvbWV0aW1lcyBhdXRob3JpdGF0aXZlCgkgICAgICBhbmQgb3RoZXIgdGltZXMgeW91J3JlIG5vdCwgdGhpcyBpcyBwcm9ibGVtYXRpYy4gIFRoZSBTTk1QdjMKCSAgICAgIEFTSXMgZG8gbm90IHBhc3MgaW4gZW5vdWdoIGluZm9ybWF0aW9uIHRvIGRldGVybWluZSB0aGlzIGFuZCB0aGUKCSAgICAgIFdHIGhhcyBwcm9jbGFpbWVkIHRoYXQgdGhlIEFTSXMgYXJlIG5vdCBtZWFudCB0byBiZSB1c2VkIGFzIGFuCgkgICAgICBBUEksIGJ1dCB0aGUgaW5pdGlhbCB3b3JrIGRvbmUgYnkgTkFJIGFuZCBUSVNMYWJzIGF0dGVtcHRlZCB0bwoJICAgICAgaW1wbGVtZW50IHRoZSBVU00gc3VjaCB0aGF0IGl0IHdvdWxkIGJlIGEgInJlZmVyZW5jZSIgcmVsZWFzZQoJICAgICAgYW5kIGhlbmNlIHdlIGZvbGxvd2VkIHRoZSBzcGVjaWZpY2F0aW9ucyB0byB0aGUgbGV0dGVyIGFuZCB1c2VkCgkgICAgICB0aGUgQVNJcyBhcyBBUElzIGp1c3QgdG8gc2VlIGlmIHdlIGNvdWxkLiAgV2UgY291bGQgcHJldmlvdXNseQoJICAgICAgb25seSBiZWNhdXNlIHdlIHdlcmUgYWx3YXlzIGVpdGhlciBhdXRob3JpdGF0aXZlIG9yCgkgICAgICBub24tYXV0aG9yaXRhdGl2ZS4gIFNpbmNlIGJlZ2lubmluZyB0byB3b3JrIG9uIHByb3h5IGFuZCB0aGUKCSAgICAgIG5vdGlmaWNhdGlvbiBtaWIsIHRoaXMgaXMgbm8gbG9uZ2VyIHBvc3NpYmxlLiAgRm9yIHRoZSByZWNvcmQsIEkKCSAgICAgIGFtIGhlcmVieSBjaGFuZ2luZyB0aGUgaW5pdGlhbCByZWZlcmVuY2UgcmVsZWFzZSBpbiBzdWNoIGEKCSAgICAgIG1hbm5lciBhcyBpdCBubyBsb25nZXIgY29uZm9ybXMgZXhhY3RseSB0byB0aGUgU05NUHYzIEFTSXMuICBTbwoJICAgICAgYXMgbm90IHRvIGNvbmZ1c2UgYW55b25lLCB0aGlzIGlzIGFuIGVudGlyZWx5IHRoZW9yZXRpY2FsIGlzc3VlCgkgICAgICB3aXRoIHJlc3BlY3QgdG8gdGhlIFNOTVB2MyBzcGVjaWZpY2F0aW9uIGFuZCBpcyBwZXJmZWN0bHkgbGVnYWwKCSAgICAgIHRvIGRvLiAgVGhvdWdoIEkgY291bGQgZWFzaWx5IGdvIG9uLCBJJ2xsIHN0ZXAgb2ZmIG15IHNvYXAgYm94IG5vdy4KCQoyMDAwLTA3LTAzIDEwOjEwICBoYXJkYWtlcgoKCS0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcE5vdGlmeVRhYmxlLmMsCgkgIHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldEFkZHJFbnRyeS5oLAoJICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmgsIHRhcmdldC5jKToKCSAgLSBBZGQgYSBuZXcgY2FsbGJhY2sgZm9yIHNlbmRpbmcgdHJhcHMuCgkgICAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIHVzZSBpdC4KCSAgLSBtYWtlIHRoZSB0YXJnZXQgbWliIGdlbmVyYXRlIG1vcmUgcGVyc2lzdGVudCBzZXNzaW9ucy4KCSAgLSBNYWtlIHRoZSBub3RpZmljYXRpb24gbWliIGFsd2F5cyBhc2sgdGhlIHRhcmdldCBtaWIgZm9yIGEgc2Vzc2lvbgoJICAgIGxpc3QsIHdoaWNoIGlzIG5vdyBjYWNoZWQgZGlyZWN0bHkgYnkgdGhlIHRhcmdldCBtaWIuCgkKMjAwMC0wNy0wMyAwODozOCAgbXNsaWZjYWsKCglmaXggKEJVRyMyNjIpIC0gKHNvbWUpIHN0YXRlbWVudHMgdGhhdCBjYW5ub3QgYmUgcmVhY2hlZC4KCQoyMDAwLTA3LTAzIDA3OjU1ICBtc2xpZmNhawoKCWZpeCAoQlVHIzI4NykKCQoyMDAwLTA3LTAzIDA2OjExICBtc2xpZmNhawoKCWZpeCBidWcgIyAyODkKCQoyMDAwLTA2LTMwIDA0OjQ1ICBtc2xpZmNhawoKCXNpbXBsaWZ5IG1lbW9yeSBhbGxvY2F0aW9uIGluIHJlYWRfY29uZmlnX3JlYWRfe29jdGV0X3N0cmluZywgb2JqaWR9CgkKMjAwMC0wNi0zMCAwMDo0NyAgbmJhCgoJLSByZWFkX2NvbmZpZy5jOiBGaXggYSBtaXNzaW5nIGluaXRpYWxpemF0aW9uIGZvciBrZXl3b3JkcyB3aXRob3V0IGhlbHAKCQoyMDAwLTA2LTI4IDIzOjM3ICBuYmEKCgktIElGLU1JQi50eHQ6IHVwZ3JhZGUgdG8gUkZDIDI4NjMKCQoyMDAwLTA2LTI4IDAwOjU4ICBuYmEKCgktIGludGVyZmFjZXMuYywgY29uZmlndXJlOiBJcml4IDYuNSBoYXMgaWZpX2JhdWRyYXRlLmlmc192YWx1ZQoJCjIwMDAtMDYtMjcgMDE6MzQgIG5iYQoKCS0gbWFpbi5jOiBiZXR0ZXIgb3B0aW9uIHBhcnNpbmcuCgkKMjAwMC0wNi0yNyAwMTozNCAgbmJhCgoJLSBzbm1wdjMuYzogZG8gY2FzZSBpbnNlbnNpdGl2ZSBtYXRjaGluZyBvZiBvcHRpb24gdmFsdWVzLgoJCjIwMDAtMDYtMjcgMDA6MzMgIG5iYQoKCS0gc25tcHRyYW5zbGF0ZS4xOiBkb2N1bWVudCB0aGF0IC13IGlzIGFsc28gZm9yIC1UZAoJCjIwMDAtMDYtMjcgMDA6MzAgIG5iYQoKCS0gdmFyaW91cyBtYW4gcGFnZSBuaXQtcGlja2luZwoJCjIwMDAtMDYtMjcgMDA6MjggIG5iYQoKCS0gc25tcHRhYmxlLmM6IGZpeGVzIGFuZCB1c2FnZSBtZXNzYWdlIGZvciAtQ2ggYW5kIC1DSAoJCjIwMDAtMDYtMjYgMjM6NDMgIG5iYQoKCS0gTWFrZWZpbGUuaW4sICpNSUIudHh0OiB1cGRhdGUgdG8gY3VycmVudCBSRkMgdmVyc2lvbgoJCjIwMDAtMDYtMjYgMjM6NDIgIG5iYQoKCS0gTWFrZWZpbGUubWliLCBtaWJmZXRjaCwgc21pc3RyaXA6IHRvb2xzIHRvIGV4dHJhY3QgTUlCcyBmcm9tIFJGQwoJCWRvY3VtZW50cy4KCQoyMDAwLTA2LTI2IDIzOjQwICBuYmEKCgktIHBhcnNlLmMsIG1pYi5bY2hdLCBzbm1wdHJhbnNsYXRlLmM6IGFkZCBwYXJzaW5nIG9mIENIT0lDRSBhbmQgY2hlY2tzIGZvcgoJCU9CSkVDVC1HUk9VUCBhbmQgQUdFTlQtQ0FQQUJJTElUSUVTLiBUaGlzIGFsbG93cyB1cyB0byBwYXJzZQoJCWNvbXBsZXRlIE1JQiBleHRyYWN0cyBmcm9tIFJGQyBkb2N1bWVudHMuCgkKMjAwMC0wNi0yNiAyMzozOCAgbmJhCgoJLSBNYWtlZmlsZS50b3A6IG1ha2UgbGlidG9vbCBzaWxlbnQsIHNvIHdlIGNhbiBzZWUgdGhvc2Ugd2FybmluZ3MKCQoyMDAwLTA2LTI2IDIzOjM3ICBuYmEKCgktIHNubXBUYXJnZXRBZGRyRW50cnkuYzogZG8gYSBjYXN0IHRvIGtpbGwgYSB3YXJuaW5nCgkKMjAwMC0wNi0yNiAyMzozMiAgbmJhCgoJLSBhZ2VudF90cmFwLmM6IEZpeCBhIGxlYWsgd2hlbiByZXF1ZXN0IGlzIGJsb2NrZWQgYnkgVkFDTSBhbmQgbm8gdHJhcAoJCWlzIHNlbnQuCgkKMjAwMC0wNi0yNiAxMTo1NiAgbXNsaWZjYWsKCglmaXggKEJVRyMyMzMpCgkKMjAwMC0wNi0yMyAwNjo0MiAgbXNsaWZjYWsKCglyZXBsYWNlIG1hbGxvYy9tZW1zZXQgMCB3aXRoIGNhbGxvYy4KCQoyMDAwLTA2LTIzIDAxOjA4ICBkYXZlcwoKCS0gKG1pYklJL2tlcm5lbF9saW51eC5bY2hdLCBtaWJJSS9pcC5jKTogQWRkZWQgc3VwcG9ydCBmb3IgaXBSb3V0aW5nRGlzY2FyZHMKCQkoVGhhbmtzIHRvIEJyeWFuIEJsYWNrbWFuKQoJCjIwMDAtMDYtMjIgMTc6MDkgIG1zbGlmY2FrCgoJcmVtb3ZlIGV4dHJhIGluY2x1ZGUgZXJyb3JtaWIuaAoJCjIwMDAtMDYtMjIgMTY6NTAgIG1zbGlmY2FrCgoJRml4IGJ1ZyAjMjc2IC0gY2xvc2UgbW9zdCBmaWxlIGRlc2NyaXB0b3JzIGJlZm9yZSBleGVjJ2luZyBjb21tYW5kLgoJCjIwMDAtMDYtMjIgMTU6NTkgIG1zbGlmY2FrCgoJZmdldHM6IHVzZSBzaXplb2YoYnVmKSBpbiBsaWV1IG9mIGNvbXBpbGVyIGNvbnN0YW50IFNUUk1BWC4KCQoyMDAwLTA2LTIyIDE1OjUzICBtc2xpZmNhawoKCVVzZSBmZXdlciBsYXJnZSBzdGF0aWMgYnVmZmVycy4gIHBhc3NfcGVyc2lzdCB1c2VzIGJpZ2dlciBidWZmZXJzIG5vdy4KCQoyMDAwLTA2LTIxIDE0OjU5ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0sIHNubXB0b3NxbCk6IHJlY29yZCBhbmQgcmVwb3J0IHN5c1VwVGltZS4KCQoyMDAwLTA2LTIxIDE0OjMxICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IG1pbm9yIHNxbCBjYWNoaW5nIHNwZWVkIG9wdGltaXphdGlvbnMuCgkKMjAwMC0wNi0yMSAxMzozMyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBBY2suICBEb24ndCBkZWxldGUgc3R1ZmYgZnJvbSB0aGUgaGlzdG9yeSB0YWJsZSB0aGF0IGZyZXF1ZW50bHkuCgkKMjAwMC0wNi0yMSAxMjo1MSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBiZXR0ZXIgZXJyb3IgZGVzY3JpcHRpb24gc3VwcG9ydC4KCQoyMDAwLTA2LTIxIDEyOjQ2ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0sIHNubXB0b3NxbCk6IGNvbGxlY3Qgc3lzRGVzY3IsIHN5c09iamVjdElkLCAmIHZlcnNpb25UYWcuCgkKMjAwMC0wNi0yMSAxMjo0NiAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBhZGQgLXNlbGVjdG9yZGVyLgoJCjIwMDAtMDYtMjEgMTI6MjUgIGhhcmRha2VyCgoJLSAoc25tcE5vdGlmeVRhYmxlLmMpOiBVaCwgb25seSBpZiBub3QgZGVsZXRlZC4KCQoyMDAwLTA2LTIxIDEyOjIzICBoYXJkYWtlcgoKCS0gKHNubXBOb3RpZnlUYWJsZS5jKTogY2hhbmdlIGNyZWF0ZUFuZEdvL2NyZWF0ZUFuZFdhaXQgc3RhdGVzIHRvIGFjdGl2ZS9OSVMuCgkKMjAwMC0wNi0yMCAyMDowMSAgbXNsaWZjYWsKCglEZWNsYXJlIHRvcF9idWlsZGRpciB0byBhdm9pZCBhbm5veWluZyAvbGlidG9vbCBub3QgZm91bmQgbWVzc2FnZS4KCQoyMDAwLTA2LTIwIDE3OjMwICBtc2xpZmNhawoKCURvbnQgYXNzdW1lIEFOU0kgQy1wcmVwcm9jZXNzb3IgKHJlcGxhY2UgIiMjIiBjb25jYXRlbmF0aW9uIHdpdGggc3ByaW50ZikuCgkKMjAwMC0wNi0yMCAxNTozNyAgbXNsaWZjYWsKCglXaW4zMiBNUy1WQysrIGJ1aWxkIGZpeHVwcy4KCQoyMDAwLTA2LTIwIDE1OjM3ICBtc2xpZmNhawoKCUVuY2Fwc3VsYXRlIGxvY2FsIHZhcmlhYmxlICJ4IiB0byB0aGUgc2NvcGUgd2hlcmUgbmVlZGVkLgoJCjIwMDAtMDYtMjAgMTU6MzYgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXIgIm5ld3ZhciIuCgkKMjAwMC0wNi0yMCAxNTozNiAgbXNsaWZjYWsKCglVc2UgaW50IHZzIHVsb25nIGZvciBhcnJheSBpbmRleGluZyB2YXJpYWJsZXMgdG8gYXZvaWQgc2lnbmVkL3Vuc2lnbmVkIG1pc21hdGNoLgoJCjIwMDAtMDYtMjAgMTU6MzQgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXJzIHN0cnVjdCB0bSwgdGltZV90LgoJCjIwMDAtMDYtMjAgMTU6MzQgIG1zbGlmY2FrCgoJUmVtb3ZlIHVudXNlZCB2YXIgImluaXRsaXN0Ii4KCQoyMDAwLTA2LTIwIDE1OjMzICBtc2xpZmNhawoKCURlY2xhcmUgc3RybmNhc2VjbXAgaW4gc3lzdGVtLmggOyBSZW1vdmUgdW51c2VkIHZhciAic3RhdHVzIi4KCQoyMDAwLTA2LTIwIDE1OjMxICBtc2xpZmNhawoKCVJlbW92ZSB1bnVzZWQgdmFycy4KCQoyMDAwLTA2LTIwIDE1OjMwICBtc2xpZmNhawoKCURlY2xhcmUgb3B0YXJnIGluIGdldG9wdC5oLgoJCjIwMDAtMDYtMjAgMTQ6MDAgIGhhcmRha2VyCgoJLSAobWliMmMuc3RvcmFnZS5jb25mKTogbWlzYyBtaW5vciBjaGFuZ2VzLgoJCjIwMDAtMDYtMjAgMTM6NTkgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSwgc25tcE5vdGlmeVRhYmxlLmMsIHNubXBOb3RpZnlUYWJsZS5oKToKCSAgLSBTTk1QLU5PVElGSUNBVElPTi1NSUIncyBzbm1wTm90aWZ5VGFibGUgaW1wbGVtZW50ZWQ6CgkgICAgLSB1c2VzIHRoZSBTTk1QLVRBUkdFVC1NSUIgdG8gZ2V0IGl0cyBhZGRyZXNzZXMgZnJvbS4KCSAgICAtIHVzZXMgaGVhZGVyX2NvbXBsZXggdG8gaGFuZGxlIHRoZSBkYXRhLgoJICAgIC0gbXVjaCB0b2RvOgoJICAgICAgLSBkeW5hbWljIHRhcmdldC9ub3RpZmljYXRpb24gbWliIHVwZGF0aW5nIHdpdGhvdXQga2lsbCAtSFVQIG5lZWRlZC4KCSAgICAgICAgLSB0aGlzIHdpbGwgYmUgYSByZWFsIHBhaW4uCgkgICAgICAtIGZpeCB2MyByZWxhdGVkIHRyYXBzIHN0aWxsIChzYW1lIHVzbSBidWcgSSd2ZSBiZWVuIG1lYW5pbmcgdG8gZml4KS4KCSAgICAgIC0gdGhlIHJlc3Qgb2YgdGhlIFNOTVAtTk9USUZJQ0FUSU9OLU1JQiB0YWJsZXMuCgkKMjAwMC0wNi0yMCAxMzo1MyAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRBZGRyRW50cnkuaCwKCSAgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oKToKCS0gZ2VuZXJpYyB0YXJnZXQgc2Vzc2lvbiBjcmVhdGlvbgoJLSBtaXNjIG90aGVyIG1pbm9yIGZpeGVzLgoJCjIwMDAtMDYtMjAgMTM6NTEgIGhhcmRha2VyCgoJLSAodGFyZ2V0LmgsIHRhcmdldC5jLCB0YXJnZXQuaCk6IGdlbmVyaWMgdGFyZ2V0IHNlc3Npb24gY3JlYXRpb24KCSAgYmFzZWQgb24gZW50cmllcyBpbiB0aGUgU05NUC1UQVJHRVQtTUlCIHRhYmxlLgoJCjIwMDAtMDYtMjAgMTM6NTAgIGhhcmRha2VyCgoJLSAoaGVhZGVyX2NvbXBsZXguYyk6IHJlbW92ZSBNaWNoYWVsJ3MgaG9ycmlibGVseSB3cm9uZyAiZml4ZXMiLgoJCjIwMDAtMDYtMjAgMTM6NDggIGhhcmRha2VyCgoJLSAoYWdlbnRfdHJhcC5jLCBhZ2VudF90cmFwLmgpOiBhZGQgcmVtb3ZlX3RyYXBfc2Vzc2lvbigpLgoJCjIwMDAtMDYtMjAgMTM6NDYgIGhhcmRha2VyCgoJLSAocmVhZF9jb25maWcuYyk6IGRlYWwgd2l0aCAwLWxlbmd0aCBwZXJzaXN0ZW50IHN0cmluZ3MgYmV0dGVyLgoJCjIwMDAtMDYtMTkgMTI6MzIgIG1zbGlmY2FrCgoJQ2hlY2sgbW9yZSBhbGxvYyBmYWlsdXJlcy4KCQoyMDAwLTA2LTE5IDEyOjE1ICBtc2xpZmNhawoKCShwcm90b2NvbC5jKSBVc2Ugc2l6ZW9mKG9pZCksIG5vdCA0IQoJKGNsaWVudC5jKSBBZGQgX2FsbF8gb2YgT0lEIHZhbHVlIGZvciBhZ2VudHhfcmVnaXN0ZXIgYW5kIGFnZW50eF91bnJlZ2lzdGVyLgoJCjIwMDAtMDYtMTkgMTE6NDEgIG1zbGlmY2FrCgoJIFJlbW92ZWQgc2l6ZW9mKHVfY2hhcikgYW5kIHVubmVjZXNzYXJ5ICh1bnNpZ25lZCkgY2FzdHMgdG8gbWFsbG9jIHBhcmFtcy4KCQoyMDAwLTA2LTE5IDAzOjA0ICBuYmEKCglQcm90b3R5cGUgZml4dXAuCgkKMjAwMC0wNi0xOSAwMzowMSAgbmJhCgoJcy9jb25pZmcvY29uZmlnLyAuLi4uIEhycnJtbW1wZgoJCjIwMDAtMDYtMTkgMDI6NTggIG5iYQoKCS0gbWFrZW5vc3lzZGVwZW5kLnBsIE1ha2VmaWxlLmluOiBvYmplY3QgZmlsZXMgYXJlIG5vdyBuYW1lZCAubG8gLi4uCgkKMjAwMC0wNi0xNiAxNjowMSAgaGFyZGFrZXIKCgktIChzbm1wVGFyZ2V0QWRkckVudHJ5LmgpOiBhZGQgdGhlIFNOTVB2Mi1UTSBtaWIgdG8gdGhlIGRlZmF1bHQgbGlzdC4KCQoyMDAwLTA2LTE2IDE2OjAxICBoYXJkYWtlcgoKCS0gKHNubXBUYXJnZXRBZGRyRW50cnkuYywgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMpOiBmaXggaW5jb3JyZWN0IE9JRHMuCgkKMjAwMC0wNi0xNSAwNjo0NSAgbWFyegoKCWZhdCBmaW5nZXJzCgkKMjAwMC0wNi0xNSAwNjo0MiAgbWFyegoKCWFkZCBkZWZhdWx0cyB0byBkYWVtb24gc2VhcmNoIHBhdGguLi5yZWNhbGMgdC9zbm1wdGVzdC5jbWQgZXZlcnl0aW1lIHBlciBtYWtlZmlsZS5QTCBpcyBydW4KCQoyMDAwLTA2LTE0IDE2OjE1ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBmaXggdXNlciBwcmVmZXJlbmNlcy4gIENvbHVtbnMgYXJlIG9wdGlvbmFsbHkKCSAgZGlzcGxheWFibGUgYWdhaW4uCgkKMjAwMC0wNi0xNCAxNjoxNSAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBmaXggaGlzdG9yeSBkZWxldGlvbi4KCQoyMDAwLTA2LTEyIDE2OjQzICBoYXJkYWtlcgoKCS0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0cmFwc2Vzcy4KCQoyMDAwLTA2LTEyIDE2OjM5ICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3RyYXAuYywgYWdlbnRfdHJhcC5oKToKCSAgLSBuZXcgc25tcGQuY29uZiB0b2tlbiBmb3IgdHJhcCBzZXNzaW9uczogInRyYXBzZXNzIi4KCSAgICAtIHVzZXMgc25tcF9wYXJzZV9hcmdzIHNvIGFueSB0eXBlIG9mIHRyYXAgY2FuIGJlIHNlbnQgd2l0aCBpdAoJICAgICAgbW9kaWZpZWQgYnkgYW55IG9mIHRoZSBwYXJhbWV0ZXJzIHRoYXQgYXJlIGRvY3VtZW50ZWQgaW4gc25tcGNtZCgxKS4KCSAgICAtIHYzIHRyYXBzIGRvbid0IHdvcmsgZHVlIHRvIHRoZSBzYW1lIFVTTSBwcm9ibGVtcyBmb3VuZCBpbiB0aGUKCSAgICAgIHJlY2VudCBwcm94eSBzdWJtaXNzaW9ucyAobXkgbmV4dCB0YXJnZXQpLgoJICAgIC0gLUNpIGluIHRoZSBhcmd1bWVudCBzcGVjaWZpZXMgaW5mb3JtcyBzaG91bGQgYmUgdXNlZC4KCQoyMDAwLTA2LTEyIDE2OjE4ICBoYXJkYWtlcgoKCS0gKG1hc3Rlcl9yZXF1ZXN0LmMpOiByZS1lbmFibGUgZnJlZWluZyBvZiBtYXN0ZXIgcmVxdWVzdC4KCQoyMDAwLTA2LTEyIDE2OjE3ICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogc2F2ZSBleGVjIGRhdGEgdG8gL3Zhci91Y2Qtc25tcC4KCSAgLSBjb3VsZCBjYXVzZSBwcm9ibGVtcyBmb3Igbm9uLXJvb3QgcnVucy4gIFVudGVzdGVkLgoJCjIwMDAtMDYtMTIgMTQ6MTIgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkX2xvZy5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgoJICAtIHJlbW92ZSBlbmRpbmcgY29tbWFzIGluIGVudW0gbGlzdC4KCQoyMDAwLTA2LTEyIDEwOjM2ICBoYXJkYWtlcgoKCS0gKHNldHVwZGIsIHNldHVwdXNlciwgc25tcHRvc3FsKTogdXNlICJUYWJsZSJzIGluc3RlYWQgb2YgIkVudHJ5InMuCgkKMjAwMC0wNi0xMiAxMDozMyAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogc2F2ZSBtaWIgZGVzY3JpcHRpb25zIGZvciBkaXNwbGF5IHB1cnBvc2VzIChhZ2FpbikuCgkKMjAwMC0wNi0xMiAxMDoyOSAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLnBtKTogcmVtb3ZlIGRlYnVnZ2luZyBzdGF0ZW1lbnRzLgoJCjIwMDAtMDYtMTIgMTA6MjcgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IHByb3Blcmx5IHNvcnQgZGlzcGxheWVkIHRhYmxlIGNvbHVtbnMgYWdhaW4uCgkKMjAwMC0wNi0wNyAxMzoyMyAgaGFyZGFrZXIKCgktIChzbm1wX2NvbmZpZy41LmRlZiwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CgkgIC0gdGhlIFRZUEUuY29uZiBwYXJzZXIgbm93IGFjY2VwdHMgdG9rZW5zIGZyb20gYSBkaWZmZXJlbnQgLmNvbmYKCSAgICBmaWxlIFRZUEUgaWYgYSBzcGVjaWFsICJbVFlQRV0iIGtleXdvcmQgaXMgaW5zZXJ0ZWQgaW50byB0aGUKCSAgICAuY29uZiBmaWxlLiAgU2VlIHNubXBfY29uZmlnKDUpIGZvciBhIGJldHRlciBkZXNjcmlwdGlvbi4KCQoyMDAwLTA2LTA3IDEzOjIyICBoYXJkYWtlcgoKCS0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CgkgIC0gbWFwIHN0cnRvdWwgdG8gYXRvaSBpZiB0aGUgZnVuY3Rpb24gaXNuJ3QgZm91bmQuCgkKMjAwMC0wNi0wNiAxNDoyNiAgaGFyZGFrZXIKCgktIChJTlNUQUxMLCBncmVlbi5naWYsIG1hbmFnZXIucG0sIHJlZC5naWYsIHNldHVwYXV0aCwgc2V0dXBkYiwKCSAgc2V0dXBuZXdob3N0LCBzZXR1cHVzZXIsIHNubXB0b3NxbCwgc25tcHRvc3FsdGFibGUsIHNxbHRvaHRtbCk6CgkgIC0gbWFuYWdlbWVudCBjbGVhbnVwIGFuZCBpbnN0YWxsYXRpb24gaW5zdHJ1Y3Rpb25zIHdyaXR0ZW4uCgkgIC0gc2hvdWxkIGJlIG1vc3RseSBjb21wbGV0ZSAoaWUsIGJhcmVseSBmdW5jdGlvbmFsKSBmb3IgdGhlIGFscGhhIHRlc3RlcnMuCgkKMjAwMC0wNi0wNiAwODowMyAgaGFyZGFrZXIKCgktIChzbm1wdG9zcWwpOiBob3N0IG5hbWUgY2hhbmdlcyAtPiB2YXJjaGFyKDY0KQoJCjIwMDAtMDYtMDYgMDg6MDIgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IG1hbnkgbWlub3IgZml4ZXMgYW5kIGNoYW5nZXMuCgkKMjAwMC0wNi0wNiAwODowMiAgaGFyZGFrZXIKCgktIChkaXNwbGF5dGFibGUucG0pOiBhbGxvdyB0YWJsZSB0aXRsZSBzZXR0aW5nLgoJCjIwMDAtMDYtMDIgMTE6NDEgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSk6IGFkZCAqLm1hZGUuCgkKMjAwMC0wNi0wMiAxMTo0MCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgZml4cHJvYywgaXBmLW1vZC5wbCwgbWliMmMsIHRrbWliKToKCSAgLSBtYWtlIChhbmQgaW5zdGFsbCkgcGVybCBzY3JpcHRzIGRpZmZlcmVudGx5LCB3aXRob3V0IG1vZGlmeWluZyB0aGUgb3JpZy4KCQoyMDAwLTA2LTAxIDE2OjQ3ICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IHR5cG9zLgoJCjIwMDAtMDYtMDEgMTY6NDQgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKToKCSAgLSBkZWJ1Z2dpbmcgdG8gU1RERVJSLgoJICAtIGF1dG8gZGVsZXRpb24gb2Ygb2xkIGhpc3RvcmljYWwgZGF0YS4KCQoyMDAwLTA2LTAxIDE2OjQ0ICBoYXJkYWtlcgoKCS0gKG1hbmFnZXIucG0pOiBiZWdpbm5pbmdzIG9mIGEgbmljZXIgcmVhbCBpbnRlcmZhY2UuCgkKMjAwMC0wNi0wMSAxNjo0MyAgaGFyZGFrZXIKCgktIChnZXRWYWx1ZXMucG0pOiBzb21lIHZhcmlhYmxlcyB3ZXJlIGdsb2JhbCBhbmQgaGVuY2UgcGVyc2lzdGVudCBhbmQKCSAgd2VyZSBtZXNzaW5nIHRoaW5ncyB1cC4KCQoyMDAwLTA2LTAxIDE0OjQ4ICBoYXJkYWtlcgoKCS0gKHNubXBkLmMpOiBzdG9yZSBwZXJzaXN0ZW50IGRhdGEgaW1tZWRpYXRlbHkgYWZ0ZXIgaW5pdCdpbmcgdG8KCSAgZW5zdXJlIHdlIHVwZGF0ZSBjb3VudGVycyBhbmQgc3R1ZmYgdGhhdCBtdXN0IGNoYW5nZSAoZWcsIGVuZ2luZUJvb3RzKS4KCQoyMDAwLTA1LTMxIDE2OjIyICBoYXJkYWtlcgoKCS0gKHNubXBkLjEuZGVmKTogZGVzY3JpYmUgLUkuCgkKMjAwMC0wNS0zMSAxNTo1MiAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliX21vZHVsZXMuYywgbWliX21vZHVsZXMuaCwgc25tcGQuYyk6CgkgIC0gbmV3IC1JIHN3aXRjaCB0byBzbm1wZCB0byBkbyBkeW5hbWljIGRldGVybWluYXRvbiBvZiB3aGljaCBtaWIKCSAgICBtb2R1bGVzIHRvIGluaXRpYWxpemUgKGFuZCBoZW5jZSB3aGljaCBtaWIgdHJlZSBzZWN0aW9ucyB0byBzdXBwb3J0KS4KCQoyMDAwLTA1LTMxIDE1OjUwICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKTogZGVmYXVsdCBzdG9yZSByb3V0aW5lcyBmb3Igdm9pZCBwb2ludGVycy4KCSAtIHdoaWNoIEkgaW1tZWRpYXRlbHkgZGVjaWRlZCB0byBkbyBzb21ldGhpbmcgZGlmZmVyZW50IGZvciB3aGF0IEkKCSAgIG9yaWdpbmFsbHkgaW1wbGVtZW50ZWQgaXQgZm9yLCBzbyBpdHMgbm90IGJlaW5nIHVzZWQgeWV0LgoJCjIwMDAtMDUtMzEgMDU6NTkgIGRhdmVzCgoJLSAobWliSUkvaXAuW2NoXSk6IEFsbG93IElQIHN1cHBvcnQgd2l0aG91dCB0aGUgQXQvaXBOZXRUb01lZGlhIG1vZHVsZQoJCjIwMDAtMDUtMzAgMTc6MTEgIGhhcmRha2VyCgoJLSAocHJveHkuYywgcHJveHkuaCk6IHNpbXBsZSBwcm94eSBzdXBwb3J0LgoJICAtIG1hcHMgb25lIG9pZCBpbnNpZGUgdGhlIGFnZW50IHRvIGEgcG9zc2libHktZGlmZmVyZW50IG9pZCBvbiBhIHRhcmdldC4KCSAgLSB1c2VzIHNubXBfcGFyc2VfYXJncygpIHNvIGl0IHRha2VzIHN0YW5kYXJkIGNvbW1hbmQgbGluZSBjb25maWcgb3B0aW9ucy4KCSAgLSBubyBzZXQgc3VwcG9ydC4KCSAgLSBubyBraWxsIC1IVVAgc3VwcG9ydC4KCSAgLSBubyBTTk1QdjMgc3VwcG9ydCAoc2lnaCkuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBJQU5BLUxBTkdVQUdFLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAxNTowNiAgbmJhCgoJZmlsZSBJQU5BLUFERFJFU1MtRkFNSUxZLU5VTUJFUlMtTUlCLnR4dCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWNC0xLTEtcGF0Y2hlcy4KCQoyMDAwLTA1LTMwIDE1OjA2ICBuYmEKCglmaWxlIERJU01BTi1TQ0hFRFVMRS1NSUIudHh0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMTU6MDYgIG5iYQoKCWZpbGUgQUdFTlRYLU1JQi50eHQgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAwNzo0NyAgbXNsaWZjYWsKCglGaXggcHJvYmxlbSBpZGVudGlmaWVkIGJ5IFYuIEdyZW5ldCA6IG5ldyBtZXRob2Qgc25tcF9vaWRfbWluX2NvbXBhcmUKCQoyMDAwLTA1LTMwIDAxOjMxICBuYmEKCglmaWxlIG1pYmZldGNoIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFY0LTEtMS1wYXRjaGVzLgoJCjIwMDAtMDUtMzAgMDE6MzEgIG5iYQoKCWZpbGUgc21pc3RyaXAgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0zMCAwMTozMSAgbmJhCgoJZmlsZSBNYWtlZmlsZS5taWIgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wNS0yNiAwOToyNCAgZGF2ZXMKCgktIChtaWJJSS9zeXNPUlRhYmxlLmMgbWliSUkvc3lzdGVtX21pYi5jKToKCSAgLSBVc2UgbmV3IHRpbWUgdXRpbGl0eSByb3V0aW5lcyB0byBzaW1wbGlmeSBwcm9jZXNzaW5nCgkgIC0gVXBkYXRlIHN5c09STGFzdENoYW5nZSB3aGVuIGFkZGluZy9yZW1vdmluZyBlbnRyaWVzCgkKMjAwMC0wNS0yNiAwOToyMyAgZGF2ZXMKCgktICh1dGlsX2Z1bmNzLltjaF0pOiBOZXcgdGltZS1kaWZmIHV0aWxpdHkgcm91dGluZXMKCQoyMDAwLTA1LTI2IDA4OjQ2ICBkYXZlcwoKCS0gKHNubXBkLmMgc25tcF9hZ2VudC5jIG1pYklJL3Zhcl9yb3V0ZS5jKTogVXNlICdtaWJpbmNsLmgnIGhlYWRlcgoJCjIwMDAtMDUtMjYgMDc6NDggIGRhdmVzCgoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudHgvY2xpZW50LltjaF0KCSAgIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jIGFnZW50eC9zdWJhZ2VudC5jKToKCSAgIC0gU3VwcG9ydCBmb3IgTUlCIHJlZ2lvbiB0aW1lb3V0cwoJCjIwMDAtMDUtMjYgMDc6NDYgIGRhdmVzCgoJLSAoc25tcC5oIHNubXBfYXBpLmMgc25tcF9jbGllbnQuYyk6IFN1cHBvcnQgZm9yIHBlci1yZXF1ZXN0IHRpbWVvdXQgaGFuZGxpbmcKCQoyMDAwLTA1LTI2IDA3OjQ1ICBkYXZlcwoKCS0gKGFnZW50eC9wcm90b2NvbC5jKTogTWlub3IgZXJyb3IgaW4gQWdlbnRYIHBhY2tldCBkdW1wCgkKMjAwMC0wNS0yNSAxMDowNyAgaGFyZGFrZXIKCgktIChtZW1vcnkuYyk6IFBhdGNoIGZyb20gUmFnbmFyIEtq54it9YCRi++9pPWAj7HniK31gJGL772k9YCMteeIrfWAkYvvvaT1gIy/cnN0YWQ6CgkgIC0gZml4ZWQgbGludXggcHJvYmxlbTogd3JvbmcgcGFyYW1zIGdldHRpbmcgcmV0dXJuZWQuCgkKMjAwMC0wNS0yNSAwNTozOCAgbXNsaWZjYWsKCglGaXggdXNlIG9mIGJpbjJhc2MgdG8gbm90IGFsd2F5cyBzaG93ICJzdHJpbmciOyB1c2Ugc25tcF9vaWRfY29tcGFyZSwgdG9vLgoJU2VlIGJ1ZyAjMjM0IGZvciBkZXRhaWxzLgoJCjIwMDAtMDUtMjUgMDM6MzkgIGRhdmVzCgoJLSAobWliSUkvaW50ZXJmYWNlcy5jKTogQ29uc29saWRhdGUgaGVhZGVyIGhhbmRsaW5nLgoJCjIwMDAtMDUtMjUgMDM6MzEgIGRhdmVzCgoJLSAobWliSUkvaW50ZXJmYWNlcy5jKTogQ29ycmVjdCBjb25mdXNpbmcgY29tbWVudAoJCjIwMDAtMDUtMjUgMDE6NTMgIGRhdmVzCgoJLSAoY29uZmlndXJlLmluIGNvbmZpZ3VyZSk6IFJlcGxhY2UgdXNlIG9mICdjdXQnIHdpdGggZXF1aXZhbGVudCAnc2VkJyBjYWxscwoJCjIwMDAtMDUtMjUgMDE6MzAgIGRhdmVzCgoJLSAoY29uZmlndXJlLmluIGFjbG9jYWwubTQgY29uZmlndXJlKToKCSAgLSBEaXJlY3QgY2VydGFpbiBjaGVja3MgdG8gdGhlIGFwcHJvcHJpYXRlIGZpbGUgZGVzY3JpcHRvciAoc2VlIEJVRyMyNDcpCgkKMjAwMC0wNS0yMiAxNjoyMiAgaGFyZGFrZXIKCgktIChhcHBzLy5jdnNpZ25vcmUpOiBhZGQgbW9yZSBzdHVmZiB0byBpZ25vcmUuCgkKMjAwMC0wNS0yMiAxNjoyMSAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXBfcGFyc2VfYXJncy5oLCBzbm1wYnVsa2dldC5jLAoJICBzbm1wYnVsa3dhbGsuYywgc25tcGRlbHRhLmMsIHNubXBkZi5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCgkgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKCSAgc25tcHVzbS5jLCBzbm1wdmFjbS5jLCBzbm1wd2Fsay5jLCBNYWtlZmlsZS5pbiwgc25tcF9wYXJzZV9hcmdzLmMsCgkgIHNubXBfcGFyc2VfYXJncy5oKToKCSAgLSBtb3ZlZCBzbm1wX3BhcnNlX2FyZ3MgdG8gdGhlIGxpYnJhcnksIGFzIEkgcHJvbWlzZWQgdG8gZG8gYWdlcyBhZ28uCgkgICAgLSBubyBsb25nZXIgY2FsbHMgdXNhZ2UoKSBkaXJlY3RseSwgYnV0IHJldHVybnMgLTEgaWYgeW91IHNob3VsZC4KCQoyMDAwLTA1LTIyIDA1OjQ3ICBkYXZlcwoKCS0gKHNubXBsaWIvdG9vbHMuW2NoXSk6IFJvdXRpbmUgZm9yIGNvbXBhcmluZyB0d28gbWFya2Vycy4KCQoyMDAwLTA1LTIyIDA1OjQyICBkYXZlcwoKCS0gKGxvY2FsL21pYjJjKTogR2VuZXJhdGUgbXVsdGlwbGUgdGFibGVzIGluIG9uZSBjb2RlIGZpbGUKCQoyMDAwLTA1LTE3IDEwOjI4ICBoYXJkYWtlcgoKCS0gKHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwgdmFjbS5jLCB2YWNtLmgpOiBQYXRjaCBmcm9tIEFybmUgT2VzbGVib2U6CgkgIC0gd3JpdGFibGUgdmFjbSBtaWIgc3VwcG9ydC4KCSAgLSBvdGhlciBtaXNjIHZhY20gZml4ZXMuCgkKMjAwMC0wNS0xNyAxMDoyNiAgaGFyZGFrZXIKCgktIChzbm1wdXNtLmMpOiBQYXRjaCBmcm9tIEFybmUgT2VzbGVib2U6CgkgIC0gRG9uJ3Qgc2VnZmF1bHQgb24gYW4gdW5rbm93biBjb21tYW5kLCBpbnN0ZWFkIHByaW50IGEgd2FybmluZy4uCgkKMjAwMC0wNS0xNyAxMDoyNSAgaGFyZGFrZXIKCgktIChzbm1wdmFjbS5jKTogUGF0Y2ggZnJvbSBBcm5lIE9lc2xlYm9lOgoJICAtIGFkZGVkIGEgbmV3IGNvbW1hbmQ6IHNubXB2YWNtLgoJCjIwMDAtMDUtMTcgMDk6MjUgIGhhcmRha2VyCgoJLSAoYWdlbnRfcmVhZF9jb25maWcuYyk6IG1lbnRpb24gdGhlIHBvcnQgbnVtYmVyIG9uIHRoZSB0cmFwc2luayBoZWxwIGxpbmUuCgkKMjAwMC0wNS0xNyAwOToyMCAgaGFyZGFrZXIKCgktIChzbm1wdHJhcGQuYyk6IHVzZSBzdGFuZGFyZGl6ZWQgYnVmZmVyIHNpemVzCgkKMjAwMC0wNS0xNyAwOToxMyAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgc25tcHRyYXBkLmMsIHNubXB0cmFwZF9sb2cuYywgc25tcHRyYXBkLjgpOiBQYXRjaCBmcm9tCgkgIEplZmYgQ291cnM6CgkgIC0gY3VzdG9taXplZCBmb3JtYXR0aW5nIG9mIHRyYXAgb3V0cHV0LgoJCjIwMDAtMDUtMTcgMDk6MTEgIGhhcmRha2VyCgoJLSAoUkVBRE1FKTogYWRkIEplZmYgYW5kIEFybmUuCgkKMjAwMC0wNS0xNyAwODoxNSAgaGFyZGFrZXIKCgktIChtaWIuYyk6ICpjb3JyZWN0bHkqIGFzc29jaWF0ZSBlc2NhcGVRdW90ZXMgd2l0aCB0aGUgcmlnaHQgZGVmYXVsdF9zdG9yZSBib29sLgoJCjIwMDAtMDUtMTcgMDg6MTEgIGhhcmRha2VyCgoJLSAoc25tcC5jb25mLjUuZGVmKTogZG9jdW1lbnQgZXNjYXBlUXVvdGVzLgoJCjIwMDAtMDUtMTcgMDg6MDkgIGhhcmRha2VyCgoJLSAoc25tcGNtZC4xLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jKTogbmV3IG9wdGlvbiAtT0U6CgkgIC0gc2hlbGwgYmFja3NsYXNoIGVzY2FwZSBxdW90YXRpb25zIG1hcmtzIGZvciBjdXR0aW5nIGFuZCBwYXN0aW5nCgkgICAgb250byBhbm90aGVyIHNubXAgY29tbWFuZCBsaW5lLgoJCjIwMDAtMDUtMTUgMDk6MjQgIGRhdmVzCgoJLSAobWliSUkve2lwLGljbXAsdGNwLHVkcCxrZXJuZWxfbGludXh9LltjaF0pOgoJICAtICBQdWxsIExpbnV4IE1JQi1JSSBzdGF0aXN0aWNzIGdhdGhlcmluZyBpbnRvIGEgc2luZ2xlIHJvdXRpbmUuCgkgIC0gIENhY2hlIE1JQi1JSSBzdGF0aXN0aWNzIG9uIGFsbCBhcmNoaXRlY3R1cmVzLgoJCjIwMDAtMDUtMTUgMDg6NTMgIGhhcmRha2VyCgoJLSAodWNkX3NubXAuaCwgdm1zdGF0X2JzZGk0LmMsIHZtc3RhdF9ic2RpNC5oKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIHZtc3RhdCBzdXBwb3J0IGZvciBic2RpNC4KCQoyMDAwLTA1LTE1IDAzOjA2ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IFJlLXJlbW92ZSByZWR1bmRhbnQgUERVIGNsb25lCgkJKEl0IHJlYXBwZWFyZWQgZHVyaW5nIGEgcmVjZW50IGNoYW5nZSkKCQoyMDAwLTA1LTE1IDAzOjAwICBkYXZlcwoKCS0gKGFnZW50X3JlZ2lzdHJ5LltjaF0gYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogSW1wbGVtZW50IG1pc3Npbmcgcm91dGluZSAndW5yZWdpc3Rlcl9taWJfY29udGV4dCcKCQoJLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBhZ2VudF9pbmRleC5bY2hdKTogTW92ZSAnZmQnIHJlZ2lzdHJ5IGhhbmRsaW5nIGJhY2sgdG8gYWdlbnRfcmVnaXN0cnkKCQoJLSAoYWdlbnR4L2NsaWVudC5jKTogUmVjb2duaXNlIG5ldyBjb2RlIGZpbGUgZm9yIGluZGV4IGhhbmRsaW5nCgkKMjAwMC0wNS0xMiAxMDoxNSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBVbSwgZGVmYXVsdCB0byBwb3J0IDE2MS4gIE9wcHMuCgkKMjAwMC0wNS0xMiAwOTowMCAgZGF2ZXMKCgktIChhZ2VudF9yZWdpc3RyeS5bY2hdIHZhcl9zdHJ1Y3QuaCBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgoJICAtIFByZXBhcmF0aW9uIGZvciBwZXItTUlCIHJlZ2lvbiB0aW1lb3V0LCBhbmQgY29udGV4dCBzdXBwb3J0CgkKMjAwMC0wNS0xMiAwODo0NSAgZGF2ZXMKCgktIChrZXJuZWxfc3Vub3M1LmMpOiBSZWNvZ25pc2UgU29sYXJpcyBBVE0gTEFOIEVtdWxhdGlvbiBpbnRlcmZhY2VzCgkJVGhhbmtzIHRvIEpheSBZb3VuZwoJCjIwMDAtMDUtMTIgMDg6MTMgIGRhdmVzCgoJLSAoYWdlbnRfaW5kZXguW2NoXSBhZ2VudF9yZWdpc3RyeS5bY2hdIE1ha2VmaWxlLmluIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CgkgIC0gU3BsaXQgaW5kZXggaGFuZGxpbmcgb3V0IGZyb20gdGhlIE1JQiByZWdpc3RyeS4KCQoyMDAwLTA1LTEyIDA3OjAyICBkYXZlcwoKCS0gKGtlcm5lbF9zdW5vczUuYyk6IEFkZCBzdXBwb3J0IGZvciByZWNvZ25pc2luZyBRdWFkRmFzdEV0aGVyIGludGVyZmFjZQoJCjIwMDAtMDUtMTIgMDY6NTcgIGRhdmVzCgoJLSAoYXBwcy9zbm1wdGFibGUuYyk6IEZpeCBwcm9ibGVtIHdpdGggbWlzc2luZyBzZXBhcmF0b3IgKHdpdGggLUNpIC1DZikKCQlUaGFua3MgdG8gWGF2aWVyIEZPVVJORVQKCQoyMDAwLTA1LTEyIDA0OjAyICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZSByZWR1bmRhbnQgUERVIGNsb25lCgkJSSdtIHN1cmUgdGhpcyB3YXMgcHV0IGluIGZvciBhIHJlYXNvbiwgYnV0IEkgY2FuJ3QgcmVtZW1iZXIgd2hhdC4KCQlJdCBkb2Vzbid0IHNlZW0gdG8gYmUgbmVlZGVkIG5vdywgYW5kIGp1c3QgbGVha3MgbWVtb3J5LgoJCUhlcmUncyBob3BpbmcuLi4uLgoJCjIwMDAtMDUtMTIgMDM6MTEgIGRhdmVzCgoJLSAoYWdlbnQvc25tcGQuYyk6IENhdGNoIChhbmQgaWdub3JlKSBTSUdQSVBFIHNpZ25hbHMuCgkJRGlzYXBwZWFyaW5nIHN1YmFnZW50cyB0aGVyZWZvciBhcHBlYXIgYXMgbm9ybWFsIEkvTyBmYWlsdXJlcwoJCjIwMDAtMDUtMTIgMDI6MjQgIGRhdmVzCgoJLSAoYWdlbnR4L3Byb3RvY29sLmMpOgoJICAtIEltcGxlbWVudCBvcGFxdWUtZW5jb2RlZCBmbG9hdCAmIGRvdWJsZSB0eXBlcwoJICAtIEJyaW5nIHBhY2tldCBkdW1wIGluIGxpbmUgd2l0aCB0aGUgbWFpbiBsaWJyYXJ5IHN0eWxlCgkgIC0gQWRkIHBhY2tldCBkdW1wIGNhcGFiaWxpdHkgZm9yIG91dGdvaW5nIFBEVXMKCQoyMDAwLTA1LTEwIDE2OjUyICBoYXJkYWtlcgoKCS0gKHNubXBkLjEuZGVmKTogZG9jdW1lbnQgLXAuCgkKMjAwMC0wNS0xMCAxNjo0MyAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBhbHdheXMgdXNlIHRoZSBkZWZhdWx0IHRyYW5zcG9ydCBtYXBwaW5nLCBub3QgdGhlIGxhc3Qgb25lLgoJCjIwMDAtMDUtMTAgMTY6MjUgIGhhcmRha2VyCgoJLSAoZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wZC5jKTogaW1wbGVtZW50IG11bHRpcGxlIHRyYW5zcG9ydAoJICBtYXBwaW5ncyB2aWEgLXAgW3RyYW5zcG9ydDpdcG9ydFtAYWRkcmVzc10uCgkKMjAwMC0wNS0xMCAxMTowOCAgbXNsaWZjYWsKCglmaXggdWRwc3RhdCAtLT4gdGNwc3RhdAoJCjIwMDAtMDUtMTAgMDc6NTkgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LCBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgoJICAtIEhhbmRsZSBzdWJhZ2VudCBkaXNhcHBlYXJpbmcgd2l0aG91dCB3YXJuaW5nCgkKMjAwMC0wNS0xMCAwNzo1NyAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMgc25tcGxpYi9zbm1wX2FwaS5oKToKCSAgLSBQcm92aWRlIGEgbWVjaGFuaXNtIHRvIGhhbmRsZSBhc3luY2hyb25vdXMgc2VuZCBmYWlsdXJlcy4KCQoyMDAwLTA1LTEwIDA2OjEzICBkYXZlcwoKCS0gKHNubXBfYXBpLmgpOiBMb2dpY2FsIE5PVD8gQml0d2lzZSBOT1Q/IFdobydsbCBub3RpY2UgdGhlIGRpZmZlcmVuY2UgYW55d2F5IQoJCjIwMDAtMDUtMTAgMDU6MzQgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBIYW5kbGUgbm9uLXJlc3BvbnNpdmUgc3ViYWdlbnRzCgkKMjAwMC0wNS0xMCAwNTozMyAgZGF2ZXMKCgktIChhZ2VudF9yZWdpc3RyeS5jIG1pYklJL3N5c09SVGFibGUuYyk6IERvbid0IGFzc3VtZSBzdWJzZXNzaW9uIGxpbmsgaXMgdmFsaWQKCQoyMDAwLTA1LTEwIDA1OjI5ICBkYXZlcwoKCS0gKHNubXBfYXBpLmgpOiBEZWZpbml0aW9ucyBmb3Igc2Vzc2lvbiBjbG9zZWRvd24gaGFuZGxpbmcKCQoyMDAwLTA1LTA5IDE0OjQyICBtc2xpZmNhawoKCWFsc28gY2xlYW4gV2luMzIgYmluYXJ5IG9iamVjdHMsIGFuZCBjb3JlIGZpbGVzLgoJCjIwMDAtMDUtMDkgMTQ6MzQgIG1zbGlmY2FrCgoJdG91Y2ggdXAgdGhlICJjbGVhbiIgcnVsZS4KCQoyMDAwLTA1LTA5IDExOjMyICBtc2xpZmNhawoKCXVudGlsIERhdmUncyB2ZXJzaW9uIHdpbnMsIG5lZWQgc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBidWlsZCBXaW4zMiBhZ2VudC4KCQoyMDAwLTA1LTA5IDExOjMxICBtc2xpZmNhawoKCWZpeCBzb21lIFdpbjMyIGJ1aWxkcyAoc2lnbmFscz8gd2UgZG9uJ3QgbmVlZCBubyBzdGVlbmtpbmcgc2lnbmFscyEpCgkKMjAwMC0wNS0wOSAxMTozMCAgbXNsaWZjYWsKCglSZW1vdmUgdHJhaWxpbmcgQ1IgWzB4MGRdIGZyb20gb25lIGxpbmUuCgkKMjAwMC0wNS0wOSAwODo1MCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS50b3AsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IGZpeCBsaW5rIHRpbWUgcHJvYmxlbXMKCSAgd2l0aCBhQ0MgKG9yIGFueSBvdGhlciB1bmtub3duIGNvbXBpbGVyKS4KCQoyMDAwLTA1LTA5IDA4OjQ3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogZml4IGxpbmsgdGltZSBwcm9ibGVtcwoJICB3aXRoIGFDQyAob3IgYW55IG90aGVyIHVua25vd24gY29tcGlsZXIpLgoJCjIwMDAtMDUtMDkgMDc6NDMgIGRhdmVzCgoJLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBTZW5kIG91dCByZS1kZWxlZ2F0ZWQgcmVxdWVzdHMKCQkoYW5kIGZpeCBhIHByb2JsZW0gd2l0aCBzcGVjaWZ5aW5nIHRoZSBlbmQtb2YtcmFuZ2UgdmFsdWUpCgkKMjAwMC0wNS0wOSAwNzo0MCAgZGF2ZXMKCgktIChhZ2VudHgvc3ViYWdlbnQuYyk6IEZpeCBoYW5kbGluZyBvZiBlcnJvciByZXNwb25zZSBnZW5lcmF0aW9uCgkJKGJ5IGFuYWxvZ3kgd2l0aCByZWNlbnQgY2hhbmdlcyB0byBzbm1wX2FnZW50LmMpCgkKMjAwMC0wNS0wOSAwNzozNCAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBIYW5kbGUgQWdlbnRYICJlbmQtb2YtcmFuZ2UiIGluZGljYXRpb24uCgkJKFRoaXMgaXMgbm90IHRoZSBjbGVhbmVzdCB3YXkgb2YgZG9pbmcgdGhpbmdzLAoJCSBidXQgd29ya3MgZm9yIG5vdy4gIFdlIGNhbiB0aWR5IHVwIGxhdGVyKS4KCQoyMDAwLTA1LTA5IDA3OjE2ICBkYXZlcwoKCS0gKHNubXBfdmFycy5jKTogVXNlIE1JQiByZWdpc3RyeSAnc3RhcnQnIHZhbHVlcwoJCShyYXRoZXIgdGhhbiB0aGUgb3JpZ2luYWwgbmFtZSByZWdpc3RlcmVkKQoJCVRoaXMgaGFuZGxlcyBzdWJzZXF1ZW50IHBhcnQgb2YgJ3NwbGl0JyByYW5nZXMgcHJvcGVybHkuCgkKMjAwMC0wNS0wOCAxMTowOCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbik6IEkgY2FuJ3QgYmVsaWV2ZSB0aGUgbGFzdCBjaGVja2luIGV2ZW4gY29tcGlsZWQgKGx1Y2spLgoJCjIwMDAtMDUtMDggMTE6MDMgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBmaXggbGlicmFyeSBsaXN0LgoJCjIwMDAtMDUtMDUgMDk6NTYgIGhhcmRha2VyCgoJLSAoZGlza2lvLmMpOiBQYXRjaCBmcm9tIEJlcnQgRHJpZWh1aXM6CgkgIC0gZGlzayBpbyBzdXBwb3J0IGZvciBCU0QvT1MuCgkKMjAwMC0wNS0wNSAwOTo1NCAgaGFyZGFrZXIKCgktIChhdC5jKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgoJICAtIGZpeCBhIHplcm8gYnl0ZSBtYWxsb2MgYnVnIChtb3N0bHkgbm90aWNlZCB3aXRoIC1sZWZlbmNlKS4KCQoyMDAwLTA1LTA1IDA5OjQzICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBBbGJlcnQgQ2hpbi1BLVlvdW5nOgoJICAtIC0td2l0aC1saWJ3cmFwIGltcHJvdmVtZW50cy4KCQoyMDAwLTA1LTA1IDA5OjAwICBkYXZlcwoKCS0gKGFnZW50eC9zdWJhZ2VudC5jIGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKToKCSAgLSBTaWduaWZpY2FudCBpbXByb3ZlbWVudHMgdG8gQWdlbnRYIHByb2Nlc3NpbmcKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDUgMDg6NTggIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdIHNubXBsaWIvc25tcF9jbGllbnQuYyBhZ2VudC9zbm1wX2FnZW50LltjaF0pOgoJICAtIE1pbm9yIGNoYW5nZXMgdG8gYXNzaXN0IHdpdGggQWdlbnRYIGRldmVsb3BtZW50CgkJKFRoZXNlIG1heSBub3QgYmUgYWJzb2x1dGVseSBuZWNlc3NhcnksIGJ1dCB0aGV5IGdldCB0aGluZ3Mgd29ya2luZyBhZ2FpbiEpCgkKMjAwMC0wNS0wNCAxNjoyMSAgaGFyZGFrZXIKCgktIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IG1pbm9yIHVuaW1wb3J0YW50IC0td2l0aG91dC1vcGVuc3NsIGZpeC4KCQoyMDAwLTA1LTA0IDE2OjE5ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CgkgIC0gYWxsb3cgLS13aXRob3V0LW9wZW5zc2wgdG8gd29yay4KCQoyMDAwLTA1LTA0IDE2OjE1ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogYWRkIHRoZSBESVNNQU4tU0NSSVBULU1JQi50eHQKCQoyMDAwLTA1LTA0IDE2OjAxICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBBbGJlcnQgQ2hpbi1BLVlvdW5nOgoJICAtIGluc3RhbGwgVUNELURJU0tJTy1NSUIudHh0LgoJCjIwMDAtMDUtMDQgMTU6MjEgIGhhcmRha2VyCgoJLSAoZGlzcGxheXRhYmxlLnBtLCBtYW5hZ2VyLnBtKTogbWFrZSBwdXJkeSBncmFwaHMgd2l0aCBoaXN0b3J5IHRhYmxlcy4KCQoyMDAwLTA1LTA0IDA4OjI2ICBkYXZlcwoKCS0gKHNubXBsaWIvc25tcF9jbGllbnQuW2NoXSk6IE5ldyByb3V0aW5lICdzbm1wX2Nsb25lX3ZhcmJpbmQoKScKCQkJKEZyb20gYSBzdWdnZXN0aW9uIGJ5IFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDQgMDg6MjQgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVmFyaW91cyBtaW5vciBmaXhlcwoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wNCAwMToyOSAgZGF2ZXMKCgktIChzbm1wX2FnZW50LltjaF0pOiBIYW5kbGUgaW5kZXgvc3RhdHVzIGluZm9ybWF0aW9uIHNlcGFyYXRlbHkgZnJvbSBQRFUuCgkJQWxzbyBtZWFucyB0aGF0IGRlbGVnYXRlZCByZXF1ZXN0cyBoYXZlIGFjY2VzcyB0byB2YXJpYWJsZSBpbmRleGVzCgkJCShCYXNlZCBvbiBhIHN1Z2dlc3Rpb24gZnJvbSBSZWluZXIgQmVuaW5nYSkKCQoyMDAwLTA1LTA0IDAxOjAwICBkYXZlcwoKCS0gKHVjZC1zbm1wL3Byb2MuYyk6IEluaXRpYWxpemUgbmV3bHkgbWFsbG9jZWQgc3RydWN0dXJlCgkJKFRoYW5rcyB0byBKZWZmIFdpbHNvbiAtIHNlZSBCVUcgIzIzMSkKCQoyMDAwLTA1LTAzIDA5OjA2ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgoJICAtIENsb25lIFBEVSB3aXRoaW4gaW5pdF9hZ2VudF9zbm1wX3Nlc3Npb24uCgkgICAgTmV3IHJvdXRpbmUgJ2ZyZWVfYWdlbnRfc25tcF9zZXNzaW9uJwoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNS0wMyAwODoxNyAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMpOiBXaGVuIHJldHVybmluZyBhbiBlcnJvciByZXNwb25zZSwKCQl1c2UgYSBjbGVhbiBjb3B5IG9mIHRoZSBvcmlnaW5hbCByZXF1ZXN0IFBEVS4KCQoyMDAwLTA1LTAzIDA4OjE0ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuW2NoXSk6IFJvdXRpbmUgdG8gaGFuZGxlIHZhcmlhYmxlcyBpbmRpdmlkdWFsbHkKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDUtMDMgMDQ6MzcgIGRhdmVzCgoJLSAoc25tcF9hZ2VudC5jKTogQ2hlY2sgYWNjZXNzaWJpbGl0eSBvZiBleGFjdCByZXF1ZXN0cyBiZWZvcmUgcHJvY2Vzc2luZwoJCShhbmQgcmVtb3ZlIHJlZHVuZGFudCAnZ2VuZXJpYycgU0VUIGhhbmRsaW5nKQoJCjIwMDAtMDUtMDIgMDk6NTYgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSk6IGxvdHMgb2Ygc21hbGwgY2hhbmdlcy4KCQoyMDAwLTA1LTAxIDExOjM0ICBuYmEKCgktIG1pYi5jOiBmaXggcHJpbnRpbmcgb2YgQklUUyB2YXJpYWJsZXMKCQoyMDAwLTA1LTAxIDA2OjU1ICBtYXJ6CgoJIGFwcGxpZWQgcGF0Y2ggZnJvbSBTdGV2ZSBQaGVyYW4gU25vZGdyYXNzIHRvIGZpeCBpbmNvbXBhdGliaWxpdHkgd2l0aCBwZXJsNS42IHJlZiBzdHJpbmdpZmljYXRpb24KCQoyMDAwLTA0LTI5IDA3OjQ2ICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sIGFnZW50X3JlZ2lzdHJ5LmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gdXNlIHNpZ2FjdGlvbiB3aGVuIGF2YWlsYWJsZS4KCQoyMDAwLTA0LTI4IDE2OjIyICBoYXJkYWtlcgoKCS0gKHNubXB0b3NxbCk6IGZpeCAtbS8tTSB0aGUgd3Jvbmcgd2F5LgoJCjIwMDAtMDQtMjggMTY6MTUgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKToKCSAtIGRvIGhpc3Rvcnkgc2F2aW5nIGJldHRlciAoZGlmZmVyZW50IHRhYmxlKS4KCSAtIC1tLy1NIG1pYiBsb2FkaW5nIG9wdGlvbnMgKHdoaWNoIGRvbid0IGFwcGVhciB0byBiZSB3b3JraW5nIHJpZ2h0IHlldCkuCgkKMjAwMC0wNC0yOCAwNzozNiAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWdpc3RyeS5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGZpeCBzaWduYWwgaGFuZGxpbmcuCgkKMjAwMC0wNC0yNyAxNDo1OCAgaGFyZGFrZXIKCgktIChNYWtlZmlsZS5pbiwgc25tcGRmLmMpOiBpbXBsZW1lbnQgYSByZW1vdGUgZGYgY29tbWFuZCB2aWEgc25tcAoJICAtIChuZWVkcyB0aGUgaG9zdCByZXNvdXJjZXMgbWliIHdvcmtpbmcgb24gdGhlIHJlbW90ZSBzeXN0ZW0pLgoJCjIwMDAtMDQtMjcgMTA6NTcgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBycG0gaXMgbm93CgkgIHJlcXVpcmluZyB5ZXQgYW5vdGhlciBsaWJyYXJ5OiBsaWJwb3B0LgoJCjIwMDAtMDQtMjYgMTU6MjAgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wKTogcnVuIGxpYnRvb2wgLS1maW5pc2ggd2l0aG91dCAtbiAoZ28gYWhlYWQgYW5kIGRvIHRoZSBjbWRzKQoJCjIwMDAtMDQtMjYgMTU6MTkgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvTWFrZWZpbGUuaW4pOgoJICAtIG1vcmUgbGlidG9vbCBmaXhlcyAoLnNvIHZlcnNpb25pbmcsIHByb3Blcmx5IGluc3RhbGwuLi4pCgkKMjAwMC0wNC0yNiAxNDoxOCAgaGFyZGFrZXIKCgktICgqLy5jdnNpZ25vcmUsICovTWFrZWZpbGUuaW4sIE1ha2VmaWxlLnRvcCwgYWNsb2NhbC5tNCwgY29uZmlndXJlLAoJICBjb25maWd1cmUuaW4sIGx0Y29uZmlnLCBsdG1haW4uc2gpOgoJICAtIHVzZSBsaWJ0b29sIGZvciBidWlsZGluZy4KCSAgICAtIENlcnRhaW5seSwgSSBtdXN0IGhhdmUgYnJva2Ugc29tZXRoaW5nIGluIHRoZSBwcm9jZXNzLiAobWFrZSBkZXBlbmQsIGVnKQoJCjIwMDAtMDQtMjYgMTQ6MTUgIGhhcmRha2VyCgoJLSAoKi8uY3ZzaWdub3JlLCAqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjbG9jYWwubTQsIGNvbmZpZ3VyZSwKCSAgY29uZmlndXJlLmluLCBsdGNvbmZpZywgbHRtYWluLnNoKToKCSAgLSB1c2UgbGlidG9vbCBmb3IgYnVpbGRpbmcuCgkgICAgLSBDZXJ0YWlubHksIEkgbXVzdCBoYXZlIGJyb2tlIHNvbWV0aGluZyBpbiB0aGUgcHJvY2Vzcy4gKG1ha2UgZGVwZW5kLCBlZykKCQoyMDAwLTA0LTI2IDA4OjExICBoYXJkYWtlcgoKCS0gKEZBUSk6IG5ldyBzZWNvbmRhcnkgc2xvZ2FuLgoJCjIwMDAtMDQtMjYgMDc6MjIgIGhhcmRha2VyCgoJLSAoc25tcF9hcGkuYywgc25tcHVzbS5jKTogQXR0ZW1wdCB0byBwYXJzZSB0aGUgUERVIHdoZW4gYSByZXBvcnQgaXMKCSAgYmVpbmcgc2VudCBzbyB0aGF0IHRoZSByZXF1ZXN0aWQgY2FuIGJlIHVzZWQgaW4gdGhlIG91dGdvaW5nIHJlcG9ydC4KCSAgVGhpcyBzaG91bGQgZml4IGEgcHJvYmxlbSB3aGVyZSBTTk1QIFJlc2VhcmNoJ3MgRW1hbnRlIGFnZW50IGlzCgkgIGRvaW5nIGVuZ2luZUlEIGRpc2NvdmVyeSBwcm9iZXMgYmFzZWQgb24gdGhlIHJlcXVlc3RfaWQgKHdoaWNoIGlzIGEKCSAgZmFpcmx5IHBvb3IgY2hvaWNlIGFzIHRoZSBtZXNzYWdlX2lkIHdvdWxkIGJlIGEgYmV0dGVyIG9uZSB0byBtYXRjaAoJICBvbiBpbiBnZW5lcmFsIGFuZCBpcyB0aGUgb25seSBwb3NzaWJsZSB0aGluZyB0byB1c2UgaW4gY2FzZXMgd2hlcmUKCSAgdGhlIHJlcG9ydCBpcyBlbmNyeXB0ZWQpLgoJCjIwMDAtMDQtMjUgMTM6MDggIGhhcmRha2VyCgoJLSAoRkFRKTogbWVudGlvbiB0aGF0IHRoZSBwZXJsIG1vZHVsZSBpcyBpbmNsdWRlZCB3aXRoIHRoZSBzb3VyY2UuCgkKMjAwMC0wNC0yNSAwODoyNCAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogbWlzYyAtRGR1bXAgZml4ZXMuCgkKMjAwMC0wNC0yNSAwODowMiAgaGFyZGFrZXIKCgktIChzbm1wdGFibGUuYyk6IGNoZWNrIGZvciBlbmQgb2YgbWliIHZpZXcgZXhjZXB0aW9ucyAodjJjLCB2MykuCgkKMjAwMC0wNC0yNCAxMToyNyAgaGFyZGFrZXIKCgktIChzbm1wX2FwaS5jKTogLUQgc3VwcG9ydCBmb3IgdGhvc2UgIm9sZGVyIiBwcm90b2NvbHMgdGhhdCBzaG91bGRuJ3QKCSAgYmUgdXNlZCBhbnltb3JlICh2MSwgdjJjKS4KCQoyMDAwLTA0LTI0IDEwOjM2ICBoYXJkYWtlcgoKCS0gKGFzbjEuYywgZGVmYXVsdF9zdG9yZS5oLCBtaWIuYywgc25tcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2F1dGguYywKCSAgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgsIHNubXB1c20uYyk6CgkgIC0gdGltZXN0YW1wcyBjYW4gYmUgcHJpbnRlZCBhcyBhIG51bWVyaWMgbnVtYmVyIG9ubHkgKC1PdCkuCgkgIC0gbW9yZSBjb25maWd1cmFibGUgcGFja2V0IGR1bXBpbmcgY29kZSBmb3IgYm90aCBzZW5kIGFuZCByZWNlaXZlLgoJICAgIC0gdXNlcyBuZXcgLUQgdG9rZW5zOiBkdW1waCAoaGVhZGVycyksIGR1bXB4IChoZXgpLCBkdW1wdgoJICAgICAgKHZhbHVlcykuICBkdW1weF8gYW5kIGR1bXB2XyAobm90ZSB0aGUgX3MpIG1ha2UgaXQgZWF0IHNwYWNlCgkgICAgICAoYW5kIG5ld2xpbmUpIGJlZm9yZSB0aGUgc2VnbWVudCBpbiBxdWVzdGlvbi4gIFRyeSAtRGR1bXAgdGhlbgoJICAgICAgLURkdW1waCxkdW1wdl8gdG8gc2VlIGV4YW1wbGVzLgoJICAgIC0gdG9kbzoKCSAgICAgIC0gYmV0dGVyIGhvcml6b250YWxseSBmb3JtYXRlZCBpbmZvcm1hdGlvbiAocHJvYmFibHkgdXNpbmcgIiVOVU1zIikuCgkgICAgICAtIFVTTSBpcyBjYWxsZWQgYWZ0ZXIgcGR1IGJ1aWxkaW5nIChtYWtlcyBzZW5zZSBidXQgaXMgYmFja3dhcmRzCgkgICAgICAgIHZpc3VhbGx5IGluIHRoZSBkdW1wZWQgcGFja2V0KS4KCSAgICAgIC0gb3B0aW9uIHRvIHN0cmlwIGRhdGF0eXBlIHRva2VuIChpZSBJbnRlZ2VyOikuCgkKMjAwMC0wNC0yNCAwOTozNyAgaGFyZGFrZXIKCgktICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMi5wcmUwICkKCQoyMDAwLTA0LTI0IDA5OjEzICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggRVhULjQuMi5wcmUwICkKCQoyMDAwLTA0LTIxIDE0OjEzICBoYXJkYWtlcgoKCS0gKHNubXB3YWxrLmMpOiBmaXggR0VUIGNhbGwgZm9yIGFuIHNubXB3YWxrLiAod2FzIHVzaW5nIGEgR0VUTkVYVCBQRFUsIGFjaykuCgkKMjAwMC0wNC0yMSAxMDo0MSAgaGFyZGFrZXIKCgktIChzbm1wdjMuYyk6IG1vcmUgdV9sb25nIC0+IHNpemVfdCBmb3IgZW5naW5lSUQgbGVuLgoJCjIwMDAtMDQtMjEgMDg6MTggIGhhcmRha2VyCgoJLSAobWliLmMpOiBmaXggZnByaW50X2Rlc2NyaXB0aW9uIHRvIGNoZWNrIGZvciBudWxsIHN1YnRyZWVzLgoJCjIwMDAtMDQtMjEgMDg6MTcgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMsIHNubXB2My5oKTogdXNlIHNpemVfdCBmb3IgZW5naW5laWQgbGVuZ3Rocy4KCQoyMDAwLTA0LTE5IDExOjAyICBtYXJ6CgoJY2hhbmdlZCBtb2RlX3QgdHlwZWRlZiB0byBhZ3JlZSB3aXRoIHdoYXQgQWN0aXZlU3RhdGUgcGVybCB1c2VzIChhbnlvbmUgaGF2ZSBhIHByb2JsZW0gd2l0aCB0aGlzPykKCQoyMDAwLTA0LTE5IDEwOjU5ICBtYXJ6CgoJYWRkZWQgTWFyYyBMZWhtYW4gcGF0Y2ggdG8gZW5zdXJlIGFsbG9jL2RlYWxsb2MgdXNlIHNhbWUgbWVjaGFuaXNtIChwZXJsIHZzLiBzeXN0ZW0gZGVmYXVsdCkKCQoyMDAwLTA0LTE5IDA4OjI2ICBoYXJkYWtlcgoKCS0gKHNubXBfYWdlbnQuYyk6IGFnZW50X2NoZWNrX2FuZF9wcm9jZXNzKCkgYWx3YXlzIGJsb2NrIGlmIGNhbGxlciByZXF1ZXN0ZWQgaXQuCgkKMjAwMC0wNC0xOSAwNDozNCAgbXNsaWZjYWsKCgltb3ZlIHN0YXRpYyBkZWNsIHRvIC5jO21pbm9yIGNhc3RpbmcgYWJvdXQgdG8gc3VwcG9ydCBhQ0MKCQoyMDAwLTA0LTE4IDExOjExICBtc2xpZmNhawoKCVN5bmNoIGRldmVsIGJyYW5jaCB3aXRoIHBhdGNoZXMgYnJhbmNoLgoJCjIwMDAtMDQtMTggMTE6MDcgIG1zbGlmY2FrCgoJRGVmaW5lIG9wdGFyZyBmb3IgYXBwcyB1c2U7IERlZmluZSB2YWNtX2lzX2NvbmZpZ3VyZWQgZm9yIGFnZW50IHVzZS4KCQoyMDAwLTA0LTE4IDA3OjU3ICBoYXJkYWtlcgoKCS0gKHZtc3RhdC5jLCB2bXN0YXQuaCwgVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWl6dWtpIEhvbmRhOgoJICAtIGltcGxlbWVudCByYXcgY3B1IHVzYWdlIG51bWJlcnMuCgkKMjAwMC0wNC0xOCAwMzoxOCAgZGF2ZXMKCgktIChtYW4vc25tcHRhYmxlLjEgYXBwcy9zbm1wdGFibGUuYyk6CgkgIC0gQ29tbWFuZC1zcGVjaWZpYyAnLUMnIG9wdGlvbnMgZm9yIHNubXB0YWJsZQoJCjIwMDAtMDQtMTggMDI6MDEgIGRhdmVzCgoJLSAoYXBwcy9zbm1wX3BhcnNlX2FyZ3MuYyk6IEhhbmRsZSBwcmV2aW91cyBmb3JtIG9mIC1aIG9wdGlvbiBhcyB3ZWxsCgkKMjAwMC0wNC0xNyAxNTozNiAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGZpeCAtWiBpZiBhcmdzIGFyZSB3cm9uZy4KCQoyMDAwLTA0LTE3IDE1OjMyICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wY21kLjEpOiBmaXggLVogdG8gdXNlIGEgJywnLgoJCjIwMDAtMDQtMTcgMTU6MDYgIGhhcmRha2VyCgoJLSAobXRhX3NlbmRtYWlsLmMsIG10YV9zZW5kbWFpbC5oKTogUGF0Y2ggZnJvbSBDaHJpc3RvcGggTWFtbWl0enNjaDoKCSAgLSB1cGRhdGUgb24gdGhlIHNlbmRtYWlsIG1vZHVsZS4KCQoyMDAwLTA0LTE3IDE1OjAwICBoYXJkYWtlcgoKCS0gKHZtc3RhdC5jKTogUGF0Y2ggZnJvbSBKb2huIEwuIFZpbGxhbG92b3M6CgkgIC0gZml4IHNzQ3B1U3lzdGVtLCBzc0NwdVVzZXIsIHNzQ3B1SWRsZS4KCQoyMDAwLTA0LTE3IDE0OjE4ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLnRvcCwgTWFrZWZpbGUuaW4pOiBwcm9wZXJseSB1c2UgTE5fUyBmb3IgbGlua2luZyBzbm1waW5mb3JtLgoJCjIwMDAtMDQtMTcgMTM6NDUgIGhhcmRha2VyCgoJLSAoc25tcHVzbS5jLCBzbm1wdjMuYywgc25tcHYzLmgpOiBlbmdpbmVJRCBjaGFuZ2VzIGZvciBiZXR0ZXIgYUNDIHN1cHBvcnQuCgkKMjAwMC0wNC0xNyAxMzo0NCAgaGFyZGFrZXIKCgktICguY3ZzaWdub3JlKTogaWdub3JlIHNubXBpbmZvcm0uCgkKMjAwMC0wNC0xNyAwOTo1OCAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMpOiBmaXggcm93IGNyZWF0aW9uLgoJCjIwMDAtMDQtMTcgMDc6MjUgIGRhdmVzCgoJLSAoYXV0b19ubGlzdC5jIHNubXBkLmMgYWdlbnR4L21hc3Rlci5jKTogRG9uJ3QgZXhpdCBvbiBmYWlsdXJlIHdpdGggJy1yJwoJCjIwMDAtMDQtMTQgMTU6MDcgIGhhcmRha2VyCgoJLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCgkgIHNubXBzdGF0dXMuYywgc25tcGNtZC4xLCBzbm1wZ2V0LjEsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOgoJICAtIG1vdmUgLUlmIHRvIC1DZiBhbmQgaW52ZXJ0IGJlaGF2aW91ci4KCQoyMDAwLTA0LTE0IDE1OjA2ICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGRlYnVnZ2luZyBvdXRwdXQgKG9wcHMpLgoJCjIwMDAtMDQtMTQgMDk6MDMgIGhhcmRha2VyCgoJLSAodmVyc2lvaW5mby5jKTogYWxyaWdodC4gIFdobyBtYWRlIHZlcnNpb25DbGVhckNhY2hlIFJPTkxZPwoJCjIwMDAtMDQtMTMgMDU6NDkgIG5iYQoKCS0gc25tcHRyYW5zbGF0ZS4xOiBkZWN1bWVudCB0aGUgLXcgd2lkdGggb3B0aW9uCgkKMjAwMC0wNC0xMiAxMjowNSAgbXNsaWZjYWsKCgloaWRlIHVzZXIncyBob3N0bmFtZTsgcHJvbXB0IGJlZm9yZSBzZW5kaW5nIGUtbWFpbDsgcHJvbXB0IHRvIHNhdmUgYXMgZmlsZS4KCQoyMDAwLTA0LTEyIDExOjIyICBtc2xpZmNhawoKCWZpeCAlZiglcykKCQoyMDAwLTA0LTEyIDA5OjI5ICBoYXJkYWtlcgoKCS0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1JZi4KCQoyMDAwLTA0LTEyIDA5OjE3ICBoYXJkYWtlcgoKCS0gKHNubXBfcGFyc2VfYXJncy5jKTogcHV0ICsrIGJhY2sgaW4gdGhhdCBhY2NpZGVudGljYWxseSBnb3QgY2hlY2tlZCBpbi4KCQoyMDAwLTA0LTEyIDA5OjE2ICBoYXJkYWtlcgoKCS0gKHNubXBzZXQuYyk6IHB1dCBzcGFjZSBiYWNrIGluIHVzYWdlIGxpbmUuCgkKMjAwMC0wNC0xMiAwOToxMiAgaGFyZGFrZXIKCgktIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcGRlbHRhLmMsIHNubXBnZXQuYywgc25tcGdldG5leHQuYywKCSAgc25tcHNldC5jLCBzbm1wc3RhdHVzLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMpOgoJICAtIEFkZCBhIG5ldyBvcHRpb24gLUlmIHRvIHNwZWNpZnkgZml4aW5nIG9mIFBEVXMuCgkgICAgLSBBbnlvbmUga25vdyBhIGJldHRlciBwbGFjZSB0byBwdXQgdGhpcyBvcHRpb24/CgkgIC0gQXBwbGljYXRpb25zIGRvbid0IGRvIHRoaXMgYnkgZGVmYXVsdCBhbnltb3JlLCBhbmQgeW91IGNhbid0IGluIHNubXBzZXQuCgkKMjAwMC0wNC0xMiAwNzozOCAgaGFyZGFrZXIKCgktICh2YWNtX3ZhcnMuYywgdmFjbS5jLCB2YWNtLmgpOiBmaXggdG8gYWxsb3cgbm8gdjEvdjJjIHJlcXVlc3RzIHdoZW4KCSAgY29uZmlndXJlZCBmb3IganVzdCB2My4KCQoyMDAwLTA0LTEyIDA2OjUwICBtc2xpZmNhawoKCWZpeCBNU1ZDIGJ1aWxkIGZvciBlbmNvZGVfa2V5Y2hhbmdlLCBhbmQgYWRkIG1vcmUgc3ltYm9scyBmb3IgcmVsZWFzZSBidWlsZHMKCQoyMDAwLTA0LTEyIDA1OjMyICBuYmEKCgktIHBhcnNlLmM6IGNvcnJlY3QgcGFyc2luZyBvZiBzdWItdHlwZXMgdGV4dHVhbCBjb252ZW50aW9ucy4gQWxsb3cgcGFyc2luZwoJCW9mIE1BQ1JPIGludm9jYXRpb25zIGZvciBzdGFuZGFyZCBzeW1ib2xzCgkKMjAwMC0wNC0xMiAwNTozMSAgbmJhCgoJLSBwYXJzZS5bY2hdLCBzbm1wdHJhbnNsYXRlLmM6IGFsbG93IHNwZWNpZmljYXRpb24gb2Ygd2l0aCBmb3IgLVRwCgkKMjAwMC0wNC0xMiAwNTozMCAgbmJhCgoJLSBIT1NULVJFU09VUkNFUy1NSUIudHh0LCBIT1NULVJFU09VUkNFUy1UWVBFUy50eHQ6IGFsaWduIHdpdGggcHVibGlzaGVkCgkJUkZDIDI3OTAKCQoyMDAwLTA0LTExIDE1OjMzICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbWFrZSBjb25maWdfYWRkX21pYigpIGFjdHVhbGx5IGxvb2sgZm9yCgkgIHRoZSBtaWIgaW4gJHNyY2Rpci9taWJzL2JsYWggYW5kIGluc3RhbGwgaXQgaWYgZm91bmQuCgkKMjAwMC0wNC0xMSAxNToyMSAgaGFyZGFrZXIKCgktIChzbm1wdjMuYywgc25tcHYzLmgpOiBtYWtlIG1hY2FkZHIgZW5naW5laWQgc2V0dXAgbm90IGxpbnV4CgkgIHNwZWNpZmljLCBidXQgI2RlZmluZXMgYXJlIGNoZWNrZWQgaW5zdGVhZC4KCQoyMDAwLTA0LTExIDE1OjIwICBoYXJkYWtlcgoKCS0gKHNubXBfbG9nZ2luZy5oKTogcmVtb3ZlIG9sZCBjYWxsYmFjayB0eXBlZGVmIG5vIGxvbmdlciBuZWVkZWQuCgkKMjAwMC0wNC0xMSAxNDozOCAgaGFyZGFrZXIKCgktIChzbm1wdjMuYywgc25tcHYzLmgpOiBQYXRjaCBmcm9tIEpvaG4gTC4gVmlsbGFsb3ZvczoKCSAgLSBlbmFibGUgZW5naW5lSUQgdG8gYmUgc2V0IGZyb20gTUFDQWRkci4KCQoyMDAwLTA0LTExIDA5OjUxICBoYXJkYWtlcgoKCS0gKG10YV9zZW5kbWFpbC5jLCBtdGFfc2VuZG1haWwuaCk6IE5ldyBtb2R1bGUgZnJvbSBDaHJpc3RvcGggTWFtbWl0enNjaDoKCSAgLSBpbXBsZW1lbnRzIHRoZSBNVEEtTUlCIGZvciBtb25pdG9yaW5nIHNlbmRtYWlsLgoJCjIwMDAtMDQtMTEgMDk6NTAgIGhhcmRha2VyCgoJLSAoTVRBLU1JQi50eHQsIE5FVFdPUkstU0VSVklDRVMtTUlCLnR4dCk6IG5ldyBtaWJzIGZvciBuZXcgbW9kdWxlcy4KCQoyMDAwLTA0LTExIDAzOjI1ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IFNhdmUvcmVzdG9yZSBvcmlnaW5hbCBzdGF0UCB2YWx1ZSBmb3IgU0VUIGhhbmRsaW5nLgoJCjIwMDAtMDQtMTEgMDI6MzUgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUmVwb3J0IGZhaWx1cmVzIGZyb20gQUNUSU9OIHBoYXNlIG9mIFNFVCBjb3JyZWN0bHkuCgkKMjAwMC0wNC0xMSAwMTo1NyAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IER5bmFtaWNhbGx5IHJlc2l6ZSBzdWJhZ2VudCByZXF1ZXN0cwoJCShUaGFua3MgdG8gUmVpbmVyIEJlbmluZ2EpCgkKMjAwMC0wNC0xMCAwNTowOCAgZGF2ZXMKCgktIChzbm1wX2FnZW50LmMgYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggbXVsdGktc3ViYWdlbnQgcmVxdWVzdHMKCQkoVGhhbmtzIHRvIFJlaW5lciBCZW5pbmdhKQoJCjIwMDAtMDQtMDcgMTI6MjUgIGhhcmRha2VyCgoJLSAoc25tcHRyYXAuYywgc25tcHVzbS5jKToKCSAgLSBmaXggc25tcHYzIHRyYXBzIHRvIGJlIGF1dGhvcml0YXRpdmUgZnJvbSB0aGUgY2xpZW50IHNpZGUsIG5vdCB0aGUKCSAgICByZWNlaXZlciBzaWRlLiAgc25tcHYzIGluZm9ybXMgc3RheSBhcyBpcy4gIFVuZm9ydHVuYXRlbHksIGZvcgoJICAgIGNvbW1hbmQgbGluZSBhcHBzIHRoaXMgZG9lc24ndCBtYWtlIGEgd2hvbGUgbG90IG9mIHNlbnNlIGJ1dCBpcwoJICAgIHJpZ2h0IGluIHRlcm1zIG9mIGhvdyB0aGUgcHJvdG9jb2wgd29ya3MgYW5kIHRoaXMgaXMgaGVuY2UKCSAgICBzb21ld2hhdCBvZiBhIGhhY2suCgkKMjAwMC0wNC0wNyAwNzo1MCAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBIYW5kbGUgdjIgZXhjZXB0aW9uIHR5cGVzIGluIHYxIHF1ZXJpZXMKCQoyMDAwLTA0LTA3IDA3OjE2ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jLCByZWFkX2NvbmZpZy5jLCBzbm1wdjMuYyk6CgkgIC0gYWxsb3cgTlVMTCBoZWxwIGxpbmVzIGZvciBjb25maWcgZGlyZWN0aXZlcyBhbmQgdXNlIGl0IHRvIGhpZGUKCSAgICBpbnRlcm5hbCBkaXJlY3RpdmVzIHVzZWQgZm9yIHBlcnNpc3RlbnQgc3RvcmFnZS4KCQoyMDAwLTA0LTA2IDE1OjMxICBoYXJkYWtlcgoKCS0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOgoJICAtIHR1cm4gYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgbWFjcm9zIGJhY2sgaW50byBmdW5jdGlvbnMgc28KCSAgICBkZWZhdWx0X3N0b3JlLmggZGVwZW5kZW5jaWVzIGdvIGF3YXkgYWdhaW4uCgkgIC0gY3JlYXRlIGEgZmxhZyB0byBub3QgcHJvYmUgZm9yIGVuZ2luZUlEcyBkdXJuaW5nIHNlc3Nfb3BlbigpLgoJCjIwMDAtMDQtMDYgMDc6MjAgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogRml4IG1pc2hhbmRsZWQgQ291bnRlcjY0IHBhcnNpbmcKCQoyMDAwLTA0LTA2IDAzOjM2ICBkYXZlcwoKCS0gKGFnZW50L3NubXBkLmMpOiBGaXggdXNhZ2UgbWVzc2FnZSBhbGlnbm1lbnQuCgkKMjAwMC0wNC0wNiAwMzozMSAgZGF2ZXMKCgktIChtYW4vc25tcGQuMS5kZWYpOiBEb2N1bWVudCB0aGUgQWdlbnRYIHNvY2tldCBjb21tYW5kLWxpbmUgb3B0aW9uCgkKMjAwMC0wNC0wNSAwODo0MSAgaGFyZGFrZXIKCgktIChGQVEySFRNTCk6IGl0J3MgYmVlbiBzaXR0aW5nIGluIG15IHBlcnNvbmFsIHNyYyB0cmVlIGZvciA+IDIgeWVhcnMuCgkKMjAwMC0wNC0wNSAwODozOCAgaGFyZGFrZXIKCgktIChtaWJpbmNsLmgsIHVzbVVzZXIuYywgc25tcHRyYXBkLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsCgkgIHNubXB1c20uYywgc25tcHVzbS5oLCBzbm1wdjMuYyk6CgkgIC0gbWFrZSBzbm1wdHJhcGQgaGFuZGxlIHYzIHVzZXJzIHByb3Blcmx5LCAoYW5kIHNodXRkb3duIHByb3Blcmx5IGFzIHdlbGwpLgoJICAtIGEgbW9yZSBnZW5lcmljIHVzZXIgc3RvcmFnZSByb3V0aW5lIGFkZGVkIHRvIHNubXB1c20uYyBhbmQgdXNlZCBpbgoJICAgIHVzbVVzZXIuYyB3aXRoIGEgc2lkZSBlZmZlY3Qgb2YgbmVlZGluZyBjYWxsYmFjay5oIGFib3ZlIHNubXB1c20uaC4KCQoyMDAwLTA0LTA1IDA4OjI3ICBoYXJkYWtlcgoKCS0gKHJzbm1wKTogLT4gL3Vzci9iaW4vcGVybAoJCjIwMDAtMDQtMDUgMDg6MjQgIGhhcmRha2VyCgoJLSAoLmN2c2lnbm9yZSk6IG1pc2MgbWlub3IgYWRkaXRpb25zIHRvIC8KCQoyMDAwLTA0LTA0IDExOjAzICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEVuc3VyZSB1bmltcGxlbWVudGVkIG9iamVjdHMgcmV0dXJuICdub1N1Y2hPYmplY3QnCgkKMjAwMC0wNC0wMyAxNDo1NyAgbXNsaWZjYWsKCglJbml0aWFsaXplIHN0YXRQLgoJCjIwMDAtMDQtMDMgMDk6MTIgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogRW5zdXJlIGEgdjEgU0VUIHJldHVybnMgYSB2MSBlcnJvciBzdGF0dXMuCgkKMjAwMC0wNC0wMyAwODozMiAgaGFyZGFrZXIKCgktIChDaGFuZ2VMb2cpOiBZZWFyIHdhcyAiMTAwIiBmb3IgMjAwMCAobm90aWNlZCBieSBKYXkgUmlkZGVsbCk6CgkKMjAwMC0wNC0wMyAwNzo1MyAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBFbnN1cmUgU0VUcyBmYWlsIGlmIG9uZSB2YXJiaW5kIGRvZXMuCgkKMjAwMC0wMy0zMSAwNzoyNSAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX3ZhcnMuYyk6IEZpeCB0byByZXBvcnQgJ25vU3VjaE9iamVjdCcgaW4gY2VydGFpbiBjaXJjdW1zdGFuY2VzCgkKMjAwMC0wMy0zMSAwNzoxMyAgZGF2ZXMKCgktIChzbm1wbGliL3NubXBfYXBpLmMpOiBEb24ndCByZXBlYXQgdGhlIGZpcnN0IGZvdXIgYnl0ZXMgaW4gYSBQRFUgZHVtcAoJCjIwMDAtMDMtMzEgMDc6MDQgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyk6IEhhbmRsZSBsb2dnaW5nIGVtcHR5IHN0cmluZ3MgKGUuZy4gYSBudWxsIGluZGVudCkKCQoyMDAwLTAzLTMwIDAwOjE1ICBkYXZlcwoKCS0gKGFnZW50L3NubXBfYWdlbnQuYyk6IEluaXRpYWxpc2UgdGltZW91dCBzdHJ1Y3R1cmUgcHJvcGVybHkKCQkoVGhhbmtzIHRvIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKCQoyMDAwLTAzLTI3IDEwOjMyICBtc2xpZmNhawoKCXJlbW92ZSB0cmFpbGluZyBuZXdsaW5lIGZyb20gaHJTV1J1bk5hbWUgdmFsdWVzLgoJCjIwMDAtMDMtMjQgMDk6MDkgIG1zbGlmY2FrCgoJdG8gc3luYyB3aXRoIHBhdGNoZXMgYnJhbmNoLgoJCjIwMDAtMDMtMjQgMDU6MDcgIG5iYQoKCS0gc25tcHRyYXBkLmM6IGNvcnJlY3RseSBmcmVlIHRoZSByZXBvbnNlIGlmIHNlbmRpbmcgaXQgZmFpbHMKCQoyMDAwLTAzLTI0IDA0OjIyICBtc2xpZmNhawoKCXh4X3N5bmNoX3Jlc3BvbnNlOiBhdm9pZCBmcmVlaW5nIFBEVSB0d2ljZS4KCQoyMDAwLTAzLTIzIDIzOjI5ICBuYmEKCgktIHNubXBjbWQuMSwgc25tcHRyYXAuMSwgc25tcHRyYXAuYywgTWFrZWZpbGUuaW46IEluc3RhbGwgYW5kIGRvY3VtZW50CgkJc25tcGluZm9ybS4KCQoyMDAwLTAzLTIzIDA5OjU4ICBtc2xpZmNhawoKCUVucXVldWUgb25seSBjb21wbGV0ZSByZXF1ZXN0X2xpc3QgZW50cnk7IFJlZHVjZSBzY29waW5nIG9mIGNhbGxiYWNrIHZhcnMuCgkKMjAwMC0wMy0yMyAwMzowMiAgbmJhCgoJZmlsZSBzbm1waW5mb3JtLjEgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjQtMS0xLXBhdGNoZXMuCgkKMjAwMC0wMy0yMiAwODoxMyAgbXNsaWZjYWsKCglwcmludGYgPwoJCjIwMDAtMDMtMjEgMTE6MTIgIG1zbGlmY2FrCgoJbW9kaWZ5IEYuIFN0cmF1c3MnIHBhdGNoIHBlciBOLiBCYWdnZXNlbidzIHN1Z2dlc3Rpb246IHJlbW92ZSBleHBvcnQtZHluYW1pYy4KCQoyMDAwLTAzLTIxIDA5OjE0ICBtc2xpZmNhawoKCW1vcmUgc21vb3RoIHNhaWxpbmcgd2l0aCBXaW4zMiAuRExMIC4gRExMRVhQT1JULCBhbnlvbmUgPwoJCjIwMDAtMDMtMjEgMDk6MDcgIG1zbGlmY2FrCgoJd2luMzIgYnVpbGQgY2hlY2s6IG5vIHNpZ2FjdGlvbiwgU0lHQ0xEIGRlZmluZWQuCgkKMjAwMC0wMy0yMSAwODo0NyAgZGF2ZXMKCgktIChkc19hZ2VudC5oIHNubXBkLmMgbWliZ3JvdXAvYWdlbnR4L3ttYXN0ZXIsc3ViYWdlbnR9LmMpOgoJICAtICBDb21tYW5kLWxpbmUgb3B0aW9uIGZvciBzcGVjaWZ5aW5nIEFnZW50WCBwb3J0CgkgICAgIChiYXNlZCBvbiBwYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3MpCgkKMjAwMC0wMy0yMSAwODozOCAgZGF2ZXMKCgktIChzbm1wX2FwaS5jKTogU3VwcG9ydCAnaG9zdDpwb3J0JyByZXByZXNlbnRhdGlvbiBvZiBwZWVybmFtZXMKCQoyMDAwLTAzLTIxIDA0OjA1ICBkYXZlcwoKCS0gKHNubXBfYWdlbnQuYyk6IE1pc3NpbmcgbmV3LWxpbmUgb24gZGVidWcgb3V0cHV0CgkKMjAwMC0wMy0yMSAwMjo1MiAgZGF2ZXMKCgktIChtaWJJSS97dGNwLHVkcCxpcCxpY21wfSopIENvbnRpbnVpbmcgbWliSUkgY29kZSBjbGVhbnVwCgkKMjAwMC0wMy0yMCAxMToxNCAgbXNsaWZjYWsKCglDb21tZW50IC1DIC0tIGRvIG5vdCB1c2UgdGhpcyBmbGFnLgoJCjIwMDAtMDMtMTcgMTU6MzIgIGhhcmRha2VyCgoJLSAoaGVhZGVyX2NvbXBsZXguYyk6IHNpemVvZih4KSoobGVuKzEpIG5vdCBzaXplb2YoeCkqbGVuKzEKCQoyMDAwLTAzLTE2IDAwOjEwICBuYmEKCgktIGNvbmZpZ3VyZSwgaHJfcHJpbnQuYzogZGV0ZWN0IHN5c3RlbSBwcmludGVycyAoU3lzVi9scHN0YXQsICpCU0QvY2dldG5leHQsCgkJTGludXgvcHJpbnRjYXApCgkKMjAwMC0wMy0xNSAxODozMCAgbXNsaWZjYWsKCglTZWNvbmQgcGFydCA6IGFsbCBtZW1iZXJzIG9mIHN0cnVjdCBzbm1wX2luZGV4IGFyZSBwb2ludGVycy4KCQoyMDAwLTAzLTE1IDE1OjA3ICBtc2xpZmNhawoKCUZpeCBtZW1vcnkgbGVhayB3aXRoIHVucmVnaXN0ZXJfaW5kZXguCgkKMjAwMC0wMy0xNSAxNTowNyAgbXNsaWZjYWsKCglGaXggbWVtb3J5IGxlYWsgd2hlbiBjbGVhbmluZyB1cCB0cmFwIHZhcmlhYmxlcy4KCQoyMDAwLTAzLTE1IDA4OjQ4ICBkYXZlcwoKCS0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYyk6IEluaXRpYWxpc2UgdmFyYmluZCBkYXRhIGhvb2sgZWxzZXdoZXJlIGFzIHdlbGwuCgkKMjAwMC0wMy0xNSAwNzo1NyAgZGF2ZXMKCgktIChhZ2VudHgvbWFzdGVyX3JlcXVlc3QuYyk6IEZpeCBpbmZpbml0ZSBsb29wIHByb2JsZW0gd2hlbiB3YWxraW5nIHN1YmFnZW50LgoJCjIwMDAtMDMtMTUgMDY6MDkgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogQXZvaWQgY2FsbGluZyByZWFkIHJvdXRpbmUgZm9yIGVhY2ggU0VUIGhhbmRsaW5nIHBhc3MuCgkJTi5COiAgVGhpcyBoYXNuJ3QgYmVlbiB0ZXN0ZWQgd2l0aCBBZ2VudFggc3ViYWdlbnRzIHlldAoJCjIwMDAtMDMtMTUgMDY6MDcgIGRhdmVzCgoJLSAoc25tcGxpYi9zbm1wX2FwaS5bY2hdKTogUHJvdmlkZSBob29rIGZvciBpbnRlcm5hbCB2YXJiaW5kLXJlbGF0ZWQgZGF0YQoJCjIwMDAtMDMtMTUgMDU6MjIgIGRhdmVzCgoJLSAoYWdlbnQvdmFyX3N0cnVjdC5oKTogVXNlIGEgc2luZ2xlIG1hZ2ljIG51bWJlciBmb3IgTUlCIHJlZ2lzdHJ5IG5hbWUgbGVuZ3Rocy4KCQoyMDAwLTAzLTE1IDAxOjUxICBkYXZlcwoKCS0gKHNubXBsaWIvc3lzdGVtLmgpOiBEb24ndCBkZWNsYXJlIGdldHRpbWVvZmRheSgpIGlmIHRoZSBzeXN0ZW0gcHJvdmlkZXMgaXQuCgkJKEZpeCBwcm92aWRlZCBieSBSb24gTWV2aXNzZW4pCgkKMjAwMC0wMy0xNCAwNzo1NyAgZGF2ZXMKCgktIChhZ2VudC9zbm1wX2FnZW50LmMpOiBEb24ndCBvdmVyd3JpdGUgc2F2ZWQgc3RhdHVzIHdoZW4gY2hlY2tpbmcgYWNjZXNzLgoJCjIwMDAtMDMtMTQgMDc6NTIgIGRhdmVzCgoJLSAoYWdlbnQvc25tcF9hZ2VudC5jKTogUmV0dXJuIGEgcmVzcG9uc2UsIGV2ZW4gaWYgdGhlIHJlcXVlc3QgZmFpbGVkLgoJCjIwMDAtMDMtMTMgMTU6MzIgIG5iYQoKCS0gaXBmd2FjYy5oOiBmaXggdGhlIE1JQiBuYW1lCgkKMjAwMC0wMy0xMCAxMjo0OCAgaGFyZGFrZXIKCgktIChjb25maWd1cmUpOiBhdXRvY29uZiBydW4KCQoyMDAwLTAzLTEwIDExOjA5ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmRsbW9kKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgoJICAtIGRsbW9kIGJ1aWxkIE1ha2VmaWxlIGV4YW1wbGUuICBOZWVkcyBpbmNvcnBlcmF0aW9uIHdpdGggbWFpbiBjb25maWd1cmUuCgkKMjAwMC0wMy0xMCAxMTowMiAgaGFyZGFrZXIKCgktIChhZ2VudF9yZWdpc3RyeS5jKTogYmV0dGVyIHNpZ25hbCBjaGVjayBmcm9tIE1pY2hhZWwgU2xpZmNhawoJCjIwMDAtMDMtMTAgMTA6NTkgIGhhcmRha2VyCgoJLSAoVUNELURMTU9ELU1JQi50eHQpOiB0eXBvIGZvdW5kIGJ5IE1pY2hhZWwgU2xpZmNhay4KCQoyMDAwLTAzLTEwIDEwOjU0ICBoYXJkYWtlcgoKCS0gKGRsbW9kLmMsIGRsbW9kLmgsIHNubXBkLmNvbmYuNS5kZWYsIFVDRC1ETE1PRC1NSUIudHh0KTogUGF0Y2ggZnJvbQoJICBGcmFuayBTdHJhdXNzOgoJICAtIFJlaW1wbGVtZW50YXRpb24gb2YgdGhlIGRsbW9kIG1pYiBtb2R1bGU6CgkgICAgbyBtaWJncm91cC9taXNjL2RsbW9kICsgZGxtb2RzL2RsbW9kX21pYiAtPiBtaWJncm91cC91Y2Qtc25tcC9kbG1vZAoJICAgIG8gZml4ZWQgcmVnaXN0cmF0aW9uICh1Y2RhdmlzLnVjZEV4cGVyaW1lbnRhbC4xNCBpbnN0ZWFkIG9mIHVjZGF2aXMuMTQpCgkgICAgbyBhZGRlZCBjb25maWd1cmUgc3R1ZmYgZm9yIEhBVkVfU05QUklOVEYsIHdoaWNoIHdhcyB1c2VkIGJ5IGRsbW9kLmMKCSAgICBvIHJlbW92ZWQgYF9keW5hbWljXycgcHJlZml4ZXMgZnJvbSBpbml0L2RlaW5pdCBmdW5jdGlvbnMKCSAgICBvIG1hZGUgZGxtb2RJbmRleCBub3QtYWNjZXNzaWJsZSAob25seSBpbXBsZW1lbnRhdGlvbiwgbm90IGRlZmluaXRpb24pCgkgICAgbyByZW1vdmVkIHRoZSBhc25fcGFyc2VfWFhYIHN0dWZmCgkgICAgbyBtYWRlIGVudHJpZXMgd2l0aCBzdGF0ZSBgZXJyb3InIGFibGUgdG8gYWNjZXB0IHN0YXRlIGBsb2FkJwoJICAgIG8gbWFkZSB0aGUgd29tYmF0IGV4YW1wbGUgdXNhYmxlIGFzIHN0YXRpYyBhbmQgZHluYW1pYyBtb2R1bGUKCSAgICBvIGFkZGVkIHNpbXBsZSBjb25maWdfcGFyc2UgZnVuY3Rpb25hbGl0eSB0byB0aGUgd29tYmF0IGV4YW1wbGUKCQoyMDAwLTAzLTEwIDEwOjUyICBoYXJkYWtlcgoKCS0gKGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsIHNubXBkLmMpOiBQYXRjaCBmcm9tIEZyYW5rIFN0cmF1c3M6CgkgIC0gc2lnbmFsIHJlZ2lzdHJ5IHN5c3RlbSBpbXBsZW1lbnRlZCAobmVlZHMgdG8gYmUgcmVkb25lIGFsbG93aW5nCgkgICAgbXVsdGlwbGUgY2FsbGJhY2tzIGFuZCBoYW5kbGVycyBmb3IgYWxsIHNpZ25hbHMpLgoJICAtIGFyYml0cmFyeSBmaWxlIGRlc2NyaXB0b3Ivc29ja2V0IHJlZ2lzdHJhdGlvbi4KCSAgICAtIHRoaXMgaXMgbm90IHRoZSB3YXkgaXQgc2hvdWxkIGJlIGRvbmUgKHVzZSBzZXNzaW9ucyBpbnN0ZWFkKS4KCQoyMDAwLTAzLTEwIDEwOjQ0ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUuaW4sCgkgIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CgkgIFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKCSAgLSBjbGVhbiB1cCBzaGFyZWQgbGlicmFyeSB1c2FnZS4KCQoyMDAwLTAzLTEwIDEwOjE2ICBoYXJkYWtlcgoKCS0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciByZS1hcnJhbmdlZCBzb21lIHN0dWZmLgoJCjIwMDAtMDMtMDcgMTE6NTggIG1zbGlmY2FrCgoJbW9yZSB0b3VjaHVwcyB0byBhbGxvdyBVbml4V2FyZSBidWlsZCB0byBjb21wbGV0ZS4KCQoyMDAwLTAzLTA3IDExOjIxICBoYXJkYWtlcgoKCS0gKGRlZmF1bHRfc3RvcmUuaCk6IG1ha2UgTUFYX1NVQklEUyBsYXJnZXIgYW5kIGEgbXVsdGlwbGUgb2YgOC4KCQoyMDAwLTAzLTA3IDEwOjEzICBtc2xpZmNhawoKCUludHJvZHVjZSAtLWVuYWJsZS1taW5pLWFnZW50IHRvIGNvbmZpZ3VyZSBhZ2VudCAoc25tcHYzLCBubyBtaWJJSSBpbnRlcmZhY2VzKS4KCQoyMDAwLTAzLTA3IDA5OjAzICBtc2xpZmNhawoKCWFzc3VtZSAic25tcGFwcCIgaWYgbm8gYXJnIHBhc3NlZCB0byBpbml0X3NubXB2My4KCQoyMDAwLTAzLTA3IDA4OjU4ICBtc2xpZmNhawoKCXJlbW92ZSBpbml0X21pYigpIGNhbGwgLSBub3QgYXBwcm9wcmlhdGUgaGVyZS4KCQoyMDAwLTAzLTA3IDA4OjM1ICBtc2xpZmNhawoKCUxldCB0aGUgYWl4NCBwYXRjaCB3b3JrLgoJCjIwMDAtMDMtMDcgMDc6MDggIG1zbGlmY2FrCgoJdHJpbSBmYXQgZnJvbSByZWNlbnQgY2hlY2staW5zLgoJCjIwMDAtMDMtMDYgMjA6MDEgIG1zbGlmY2FrCgoJY2xlYW5lZCB1cCBTQ08gVW5peFdhcmUgYnVpbGQuCgkKMjAwMC0wMy0wNiAxNjo0MCAgbXNsaWZjYWsKCglzdGFydCBzdXBwb3J0IGZvciBTQ08gVW5peFdhcmUgNSBhcyBzdnI1LgoJCjIwMDAtMDMtMDYgMTA6NTYgIGhhcmRha2VyCgoJLSAoZGVmYXVsdF9zdG9yZS5oLCBzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CgkgIC0gZG9uJ3QgY2hlY2sgcmFuZ2VzIGlmIG5vdCByZXF1ZXN0ZWQuCgkKMjAwMC0wMy0wNiAxMDo1NSAgaGFyZGFrZXIKCgktIChzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcGQuYyk6IFBhdGNoIGZyb20gUm9iZXJ0IFN0b3J5OgoJICAtIGZpeCBleGl0KClpbmcgYmVoYXZpb3VyIGluIHRoZSBsaWJ1Y2RhZ2VudCBsaWJyYXJ5LgoJCjIwMDAtMDMtMDYgMTA6MzYgIGhhcmRha2VyCgoJLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKCSAgLSAtbiBwcmludHMgbnVtZXJpYyBJUCBhZGRycy4KCQoyMDAwLTAzLTA2IDEwOjI1ICBoYXJkYWtlcgoKCS0gKGNhbGxiYWNrLmgsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6IElkZWEgZnJvbSBhc2hpcG1hbkBlcmdncm91cC5jb206CgkgIC0gY2FsbGJhY2sgZnVuY3Rpb24gKHVzaW5nIGNhbGxiYWNrLmgpIGFkZGVkIGZvciBleHRlcm5hbCBsb2dnaW5nLgoJCjIwMDAtMDMtMDUgMDU6MjUgIG1hcnoKCglmaXggdG8gcHJlc2VydmUgdHJhaWxpbmcgbXVsdGkgY29tcG9uZW50IGluc3RhbmNlIGlkJ3MgYXQgdGhlIGVuZCBvZgoJc3ltYm9saWMgbWliIG5hbWVzKGUuZy4sIGZvby42LjcpIHdoZW4gZG9pbmcgdHJhbnNsYXRlT2JqLgoJCjIwMDAtMDMtMDQgMTE6MzQgIG5iYQoKCS0gY29uZmlndXJlLmluLCBjb25maWd1cmU6IHN1cHBvcnQgLS13aXRob3V0LW9wZW5zc2wsIGV2ZW4gaWYgT3BlblNTTAoJCWlzIGF2YWlsYWJsZQoJCjIwMDAtMDMtMDQgMTE6MzAgIG5iYQoKCS0gYWdlbnQvKHZhcmlvdXMpOiBnbG9iYWxpemUgdGhlIGt2bV90ICprZCB2YXJpYWJsZQoJCjIwMDAtMDMtMDQgMTE6MjYgIG5iYQoKCS0gbWliX21vZHVsZXMuYywgaHJfc3RvcmFnZS5jOiBwcmUtcHJvY2Vzc29yICMgc2hvdWxkIGJlIGluIGNvbHVtbiAxCgkKMjAwMC0wMy0wNCAxMToxNyAgbmJhCgoJLSBpbmV0LmMsIGluZXQ2LmM6IHN1cnZpdmUgLXYgMmMgZXhjZXB0aW9uIHJlcGxpZXMKCQoyMDAwLTAzLTA0IDExOjE3ICBuYmEKCgktIHNubXBfYXBpLmM6IHJlbW92ZSBhIHN1cGVyZmx1b3VzICYgaW4gZnJvbnQgb2YgYW4gYXJyYXkKCQoyMDAwLTAzLTA0IDExOjE1ICBuYmEKCgktIHVjZF9zbm1wLmgsIHttZW1vcnksdm1zdGF0fV9uZXRic2QxLltjaF06IHN1cHBvcnQgZm9yIE5ldEJTRAoJCjIwMDAtMDMtMDQgMTE6MTQgIG5iYQoKCS0gaHJfZGlzay5jOiBmaXhlcyBmb3IgTmV0QlNECgkKMjAwMC0wMy0wNCAxMToxMCAgbmJhCgoJLSB2ZXJzaW9uaW5mby5jOiBkb24ndCByZXR1cm4gdGhlIHRyYWlsaW5nIG5ld2xpbmUKCQoyMDAwLTAzLTA0IDExOjA4ICBuYmEKCgktIGhyX3N3cnVuLmM6IGZpeCBwcm9jZXNzIHNpemUgZm9yIEZyZWVCU0QgMyBhbmQgTmV0QlNECgkKMjAwMC0wMy0wNCAxMTowNSAgbmJhCgoJLSBhZ2VudF90cmFwLmg6IGZpeCBhIHdyb25nIHByb3RvdHlwZQoJCjIwMDAtMDMtMDQgMTE6MDQgIG5iYQoKCS0gc25tcHRhYmxlLmM6IGZpeCBwcm9ibGVtcyBwcmludGluZyB0YWJsZSBuYW1lIGFuZCBoZWFkZXJzIHdoZW4gdXNpbmcKCQktT1MgZm9ybWF0CgkKMjAwMC0wMy0wMiAxMTo1MCAgbmJhCgoJLSBzbm1wX2FwaS5jOiBmaXggYWRkcmVzcyBsZW5ndGggaW5mbyBmb3IgdGNwIGNvbm5lY3QKCQoyMDAwLTAzLTAyIDExOjQ4ICBuYmEKCgktIGxvYWRhdmUuYzogZml4IGZvciBBSVggNAoJCjIwMDAtMDMtMDIgMDg6MzAgIGRhdmVzCgoJLSAobWliMi9pcC5bY2hdIG1pYjIvaXBBZGRyLltjaF0pOiBGaXJzdCBzdGFiIGF0IHRpZHlpbmcgdXAgbWliMiBzdXBwb3J0LgoJCjIwMDAtMDMtMDEgMTM6MjMgIGhhcmRha2VyCgoJLSAoc25tcHRvc3FsKTogZml4IGR5bmFtaWMgdGFibGUgdGVzdGluZyBmb3IgY3JlYXRpb24gbmVlZGVkLgoJCjIwMDAtMDMtMDEgMTM6MjIgIGhhcmRha2VyCgoJLSAobWFuYWdlci5wbSwgdWNkLXNubXAucG0pOiBPcHBzLiAgV3JvbmcgbmFtZS4gIHVjZC1zbm1wLnBtIC0+IG1hbmFnZXIucG0uCgkKMjAwMC0wMy0wMSAxMzoyMSAgaGFyZGFrZXIKCgktICh1Y2Qtc25tcC5wbSk6IHR1cm5lZCBzcWx0b2h0bWwgaW50byBhbiBhcGFjaGUgbW9kdWxlLiAyeCBzcGVlZCBpbXByb3ZlbWVudC4KCQoyMDAwLTAzLTAxIDA4OjMyICBtc2xpZmNhawoKCWZpeCBidWcgMTgwIGZvciBjeWd3aW4gYnVpbGQgd2l0aCBfUkVFTlRSQU5UOyBwZXIgYXNoaXBtYW5AZXJnZ3JvdXAuY29tCgkKMjAwMC0wMi0yOSAxNDozMCAgbXNsaWZjYWsKCglJbnZva2Ugc25tcF9zZXNzX3NlbmQgZnJvbSB3aXRoaW4gc25tcF9yZWFkIHRvIGF2b2lkIG11dGV4IGRlYWRsb2Nrcy4KCQoyMDAwLTAyLTI4IDE0OjI1ICBuYmEKCgktIHNubXBkLmgsIHNtdXguYzogZG9uJ3QgaW5pdGlhbGl6ZSBzbXV4IG1hc3RlciBpbiBzdWIgYWdlbnQKCQoyMDAwLTAyLTI4IDE0OjE2ICBuYmEKCgktIHNubXBfdmFycy5jOiB1c2UgU1VCX0FHRU5UIHN5bWJvbAoJCjIwMDAtMDItMjggMTQ6MTIgIG5iYQoKCS0gbWliLmM6IHNwcmludF9ieV90eXBlIHNob3VsZCBoYW5kbGUgQVNOX0JJVF9TVFIKCQoyMDAwLTAyLTI4IDE0OjEwICBuYmEKCgktIHNubXBfcGFyc2VfYXJncy5jOiBjb3JyZWN0bHkgY2FsbCB0aGUgLUkgb3B0aW9ucyBpbnB1dCBvcHRpb25zCgkKMjAwMC0wMi0yOCAxMDo0NyAgbXNsaWZjYWsKCglmaXggYnVnICMxNzYgKEFJWCA0IC0gdXNlIGtubGlzdCBpbiBsaWV1IG9mIG5saXN0KQoJCjIwMDAtMDItMjQgMTc6MTcgIG1zbGlmY2FrCgoJYXBwbHkgcGF0Y2ggdG8gZml4IGJ1ZyBuby4gMTc3LgoJCjIwMDAtMDItMjQgMTM6MzEgIGhhcmRha2VyCgoJLSAoZGVmYXVsdF9zdG9yZS5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKTogbmV3IHNubXAuY29uZiBrZXl3b3JkCgkgIHRvIGZvcmNlIHRoZSBwYXJzZXIgdG8gaWdub3JlIHVua25vd24gdG9rZW5zLgoJCjIwMDAtMDItMjQgMDM6NTkgIG1zbGlmY2FrCgoJZG9jdW1lbnQgVU5TSUdORUQzMiBhbmQgQ09VTlRFUjMyICgndScgYW5kICdjJykgaW4gc25tcHNldCAoZ3JhdGlzIGFzaGlwbWFuQGVyZ2dyb3VwLmNvbSkKCQoyMDAwLTAyLTI0IDAzOjU2ICBtc2xpZmNhawoKCWFkZCBzdXBwb3J0IGZvciBDT1VOVEVSMzIgdG8gc25tcF9hZGRfdmFyOyBkb2N1bWVudCBVTlNJR05FRDMyIGFuZCBDT1VOVEVSMzIKCSgndScgYW5kICdjJykgaW4gc25tcHRyYXAgKGdyYXRpcyBhc2hpcG1hbkBlcmdncm91cC5jb20pCgkKMjAwMC0wMi0yMyAyMzowNiAgbmJhCgoJLSBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOiBmaXggc2V0dGluZyBvZiBvY3RldCBzdHJpbmdzLgoJCjIwMDAtMDItMjMgMDI6MDkgIG5iYQoKCS0gbXRfc3VwcG9ydC5oOiBhIGJhZCA7IGluIHRoZSBDKysgYnJhY2tldGluZwoJCjIwMDAtMDItMjMgMDI6MDkgIG5iYQoKCS0gc3lzdGVtLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIGluZGlyZWN0aW9ucyBpbiBzdHJjYXNlY21wCgkKMjAwMC0wMi0yMyAwMjowNyAgbmJhCgoJLSB2bXN0YXRfc29sYXJpcy5jOiBtYWtlIHN1cmUgd2UgYWdyZWUgd2l0aCB0aGUgcHJvdG90eXBlIG9mIGdldHBhZ2VzaXplIQoJCjIwMDAtMDItMjIgMTU6MzEgIG5iYQoKCS0gcGFzc19wZXJzaXN0Lmg6IGRlY2xhcmUgaW5pdF9wYXNzX3BlcnNpc3QKCQoyMDAwLTAyLTIyIDA5OjU3ICBtc2xpZmNhawoKCXBydW5lIHR3byBtb3JlIHN5bWJvbHMgbm90IHVzZWQgYnkgYXV0b19ubGlzdCBmb3IgU29sYXJpcy1idWlsdCBNSUIgbW9kdWxlcy4KCQoyMDAwLTAyLTIxIDE2OjE3ICBtc2xpZmNhawoKCUFwcGx5IFIuIFN0b3J5J3MgcGF0Y2ggZm9yIG1rZGlyaGllciBhbmQgc3RybmNhc2VjbXAgb24gd2luMzIKCQoyMDAwLTAyLTIxIDA3OjM5ICBtc2xpZmNhawoKCWZpeCBidWcgMTcxICh0aGFua3MgdG8gTGFycnkgUGFybWVsZWUpLgoJCjIwMDAtMDItMjEgMDU6NTYgIG1zbGlmY2FrCgoJcmVtb3ZlIGZyZWUgYWZ0ZXIgc25tcF9jbG9zZSAoZG9uJ3QgZnJlZSB0d2ljZSEpCgkKMjAwMC0wMi0yMSAwNDo1OCAgbXNsaWZjYWsKCglBZGRlZCBkZXNjcmlwdGlvbiBpbiBTSF9OQU1FIGZvciBzZXZlcmFsIG1hbi1wYWdlcyAoYy9vIHJhZ25hcmspCgkKMjAwMC0wMi0xOCAxMjoxNCAgbXNsaWZjYWsKCglyZWZlciB0aGUgLnNvIG1hY3JvIHRvIG1hbjM7IGFkanVzdCBNYWtlZmlsZS5pbiB0byB1c2UgdGhlIHJlbmFtZWQgZmlsZS4KCQoyMDAwLTAyLTE3IDA1OjE3ICBtc2xpZmNhawoKCWluY2x1ZGUgcGFzc19wZXJzaXN0IGluIHRoZSByZXF1aXJlZCBsaXN0LgoJCjIwMDAtMDItMTcgMDI6MDAgIGRhdmVzCgoJLSAoY29uZmlndXJlKiB1Y2Qtc25tcC92bXN0YXRfc29sYXJpczIuYyk6CgkgIC0gUHJvdmlkZSBtaXNzaW5nICdnZXRwYWdlc2l6ZScgcm91dGluZSBmb3IgU29sYXJpcyAyLjQKCSAgICAoVGhhbmtzIHRvIFJhZ25hciBLaueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXniK31gJGL772k9YCMv3JzdGFkKQoJCjIwMDAtMDItMTYgMjA6MTcgIG1zbGlmY2FrCgoJaW5jbHVkZSBtaWJpbmNsLmggaW4gaHJfc3lzdGVtLmMgdG8gZml4IGJ1ZyAjMTU5LgoJCjIwMDAtMDItMTYgMTY6MzUgIG1zbGlmY2FrCgoJcmVtb3ZlIGF1dG9fbmxpc3Qgb2YgdW51c2VkICJzd2FwbGlzdCIgc3ltYm9sLgoJCjIwMDAtMDItMTYgMTU6MTcgIG1zbGlmY2FrCgoJcGF0Y2ggc3VnZ2VzdGVkIGJ5IFJpY2sgQmVhbWFuIDxiZWFtYW5AbWVkaWFvbmUubmV0PgoJCjIwMDAtMDItMTYgMTQ6NTggIG1zbGlmY2FrCgoJcmVtb3ZlIHVudXNlZCB2YXJzCgkKMjAwMC0wMi0xNiAxNDo1NyAgbXNsaWZjYWsKCgl0ZXN0IGxlbmd0aHMgYmVmb3JlIGFsbG9jYXRpbmcgbWVtb3J5OyB1c2UgbmV3IFZBQ01TVFJJTkdMRU4gY29uc3RhbnQuCgkKMjAwMC0wMi0xNiAwODoxOCAgbXNsaWZjYWsKCglpbmNsdWRlIHRpbWUuaCBvbmNlCgkKMjAwMC0wMi0xNiAwODowMiAgbXNsaWZjYWsKCglyZXN0b3JlICNpZiBIQVZFLi4uSU5fUENCX0gKCQoyMDAwLTAyLTE1IDIzOjQ3ICBuYmEKCgktIGNvbmZpZ3VyZS5pbiwgaXBjaC5bY2hdOiBpbml0aWFsIHN0YWJzIGF0IExpbnV4IGlwdjYgc3VwcG9ydC4gQSBsb3QgaXMKCQlsYWNraW5nIGluIHRoZSBrZXJuZWwgc3RhdGlzdGljcyB0aG91Z2guCgkKMjAwMC0wMi0xNSAyMzo0MCAgbmJhCgoJLSAobWFueSk6IGNvbmZpZ3VyZSBjaGVjayBmb3IgbmV0aW5ldC9pcDYuaAoJCjIwMDAtMDItMTUgMjM6MzQgIG5iYQoKCS0gaHJfZmlsZXN5cy5jOiBNTlRUWVBFIGRlZmluZXMgZm9yIEZyZWVCU0QtMyBhbmQgQlNESS00LCBhbmQgbW92aW5nIHRoZQoJCXJldHVybiB2YWx1ZSBmb3IgRXh0MkZTIHRvIHRoZSBuZXdseSBkZWZpbmVkIE9JRC4KCQoyMDAwLTAyLTE1IDIzOjI0ICBuYmEKCgktIGZyZWVic2QzLmg6IHNvbWUga2VybmVsIHN5bWJvbHMgbm90IHRvIGJlIHVzZWQgZm9yIEZyZWVCU0QgMwoJCjIwMDAtMDItMTUgMjM6MjMgIG5iYQoKCS0gc25tcHRhYmxlLmM6IGdpdmUgYSBzZW5zaWJsZSBvdXRwdXQgZm9yIGFuIGVtcHR5IHRhYmxlLgoJCjIwMDAtMDItMTUgMjM6MjIgIG5iYQoKCS0gdmFjbSo6IGJ1ZmZlciBsZW5ndGggY2hlY2tpbmchCgkKMjAwMC0wMi0xNSAyMzoyMCAgbmJhCgoJLSBocl9zdG9yYWdlLmM6IHJldHVybiBtZW1vcnkgc2l6ZSBpbiBwYWdlcy4KCQoyMDAwLTAyLTE1IDIzOjE3ICBuYmEKCgktIHVjZF9zbm1wLmgsIG1lbW9yeV9mcmVlYnNkMi5oOiBtYWtlIGl0IHdvcmsgZm9yIEZyZWVCU0QtMyB0b28KCQoyMDAwLTAyLTE1IDIzOjE2ICBuYmEKCgktIHNubXBfYWdlbnQuYzogb25lIG1vcmUgcGxhY2UgdG8gc2VuZCBhIEFVVEhGQUlMIHRyYXAKCQoyMDAwLTAyLTE1IDIzOjE1ICBuYmEKCgktIGFnZW50X3JlZ2lzdHJ5LmM6IGZpeCBhIHJldHVybiBmb3IgU05NUHYxL0NvdW50ZXI2NCBjYXNlCgkKMjAwMC0wMi0xNSAwMjoxMiAgZGF2ZXMKCgktIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKTogT21pdCBkZXByZWNhdGVkIG9wdGlvbnMgZnJvbSBvcHRhcmcgaGFuZGxpbmcuCgkKMjAwMC0wMi0xMSAxNTo0OCAgaGFyZGFrZXIKCgktIChtYW5hZ2VyLyopOiAvdXNyL2xvY2FsL2Jpbi9wZXJsIC0+IC91c3IvYmluL3BlcmwKCQoyMDAwLTAyLTExIDE1OjQ3ICBoYXJkYWtlcgoKCS0gKG1ha2VkZXBlbmQuaW4pOiAvdXNyL2xvY2FsL2Jpbi9wZXJsIC0+IC91c3IvYmluL3BlcmwKCQoyMDAwLTAyLTExIDE1OjM4ICBoYXJkYWtlcgoKCS0gKHJzbm1wKTogcGVybDUgLT4gcGVybAoJCjIwMDAtMDItMTEgMTU6MTcgIGhhcmRha2VyCgoJLSAobWFuL01ha2VmaWxlLmluKTogaW5zdGFsbCBzbm1wX3RyYXBfYXBpLjMKCQoyMDAwLTAyLTExIDE0OjIwICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluKTogbGFzdCBtaW51dGUgbWFrZWZpbGUgdG91Y2h1cAoJCjIwMDAtMDItMTEgMTQ6MDMgIGhhcmRha2VyCgoJLSAoTkVXUyk6IHVwZGF0ZSBmb3IgNC4xLjEKCQoyMDAwLTAyLTExIDEzOjQ3ICBoYXJkYWtlcgoKCS0gKENoYW5nZUxvZyk6IFVwZGF0ZSBmb3IgNC4xLjEKCQoyMDAwLTAyLTExIDEzOjI5ICBoYXJkYWtlcgoKCS0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLjEgKQoJCjIwMDAtMDItMTEgMTI6NTMgIGhhcmRha2VyCgoJLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIGZvciBUaW1lb3V0IGZvciB2MmMuCgkKMjAwMC0wMi0xMSAxMjo0OSAgaGFyZGFrZXIKCgktIChsb2NhbC9NYWtlZmlsZS5pbik6IGRvbid0IGNwIGZvciBzbm1wY2hlY2sKCQoyMDAwLTAyLTExIDEyOjQ0ICBoYXJkYWtlcgoKCS0gKGxvY2FsL01ha2VmaWxlLmluKTogZml4IGZvciBzZXBlcmF0ZSBidWlsZCBwYXRoCgkKMjAwMC0wMi0xMSAxMjozMCAgaGFyZGFrZXIKCgktIChzeXNPUlRhYmxlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgoJICAtIGNvbXBpbGVyIHdhcm5pbmcgZml4LgoJCjIwMDAtMDItMTEgMTI6MjkgIGhhcmRha2VyCgoJLSAoc25tcF9hZ2VudC5jKTogcGF0Y2ggZnJvbSBOaWVsczoKCSAgLSBkb24ndCBzZW5kIGF1dGhlcnJvciByZXNwb25zZXMgZm9yIHYyYy4KCSAgLSBzZW5kIGF1dGhGYWlsdXJlIHRyYXAuCgkKMjAwMC0wMi0xMSAxMjoyMiAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGNoYW5nZSBwZXJsIHBhdGggdG8gL3Vzci9iaW4uCgkKMjAwMC0wMi0xMSAwNjo1OCAgaGFyZGFrZXIKCgktIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IERvbnQgZGVmaW5lIFBST0NGSVhDTUQgYW5kIEVYRUNGSVhDTUQgYnkgZGVmYXVsdC4KCQoyMDAwLTAyLTEwIDExOjE0ICBtc2xpZmNhawoKCWZpeCBmb3Igb2xkZXIgcGxhdGZvcm1zIHRvIHVzZSBwYXNzX3BlcnNpc3Q7IG5vdCBpbmNsdWRlZCBieSBkZWZhdWx0LgoJCjIwMDAtMDItMTAgMTA6MzMgIG1zbGlmY2FrCgoJW25vIGxvZyBtZXNzYWdlXQoJCjIwMDAtMDItMTAgMTA6MzIgIGhhcmRha2VyCgoJLSAoaHJfc3dpbnN0LmMpOiBtaW5vciBmaXhlcyBwb2ludGVkIG91dCBieSBNaWNoYWVsLgoJCjIwMDAtMDItMTAgMTA6MjggIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBmaXggc2V0dXAgZW5naW5lSUQgYnVmZmVyIG92ZXJmbG93IGZvdW5kIGJ5IE1pa2UgQmFlci4KCQoyMDAwLTAyLTEwIDA4OjM5ICBuYmEKCgktIG1hbi8qOiBzZXQgdGhlIGRhdGVzIG9uIHRoZSBwYWdlcyB0byByZWZsZWN0IHRoZSByZXZpc2lvbiBkYXRlCgkKMjAwMC0wMi0xMCAwODoxMyAgbXNsaWZjYWsKCglmaXggdmFyYXJncyBkZWNsL2RlZm4gb2Ygc25tcF9sb2cKCQoyMDAwLTAyLTEwIDA4OjAwICBtc2xpZmNhawoKCXR5cGVkZWYgaW50IHNzaXplX3QgKG9uZSBsaW5lIGFkZGVkKSBmb3IgYnVpbGQgb24gU3VuT1MgNC4KCQoyMDAwLTAyLTEwIDA3OjU0ICBoYXJkYWtlcgoKCS0gKEZBUSk6IG1lbnRpb24gdGhlIHR1dG9yaWFsLgoJCjIwMDAtMDItMTAgMDc6MTQgIGRhdmVzCgoJLSAoRkFRKTogRXhwbGljaXQgZXhhbXBsZXMgb2Ygc2VuZGluZyB0cmFwcyBieSBoYW5kCgkKMjAwMC0wMi0xMCAwNDo0MSAgZGF2ZXMKCgktIChzbm1wbGliL3tzbm1wX2FwaSxzbm1wX2NsaWVudH0uYyBhcHBzL3NubXBuZXRzdGF0L2luZXQ2LmMpOgoJICAtICBDb21tZW50IHVudXNlZCBjb2RlIG1vcmUgaW5mb3JtYXRpdmVseSBhcyB0byB3aHkgaXQgaXMgb21pdHRlZC4KCQoyMDAwLTAyLTA5IDEzOjUzICBoYXJkYWtlcgoKCS0gKGV2YWxfdG9vbHMuc2gsIFQwMjNzbm1wdjNnZXRNRDVERVMsIFQwMjRzbm1wdjNnZXRTSEExLCBUMDI1c25tcHYzZ2V0U0hBREVTKToKCSAgLSBza2lwIHNzbCB0ZXN0cyB3ZSBjYW4ndCBwZXJmb3JtLgoJCjIwMDAtMDItMDkgMTM6NTEgIG1zbGlmY2FrCgoJaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBnZXQgUEFUSF9NQVggb24gRnJlZUJTRC4KCQoyMDAwLTAyLTA5IDEzOjM4ICBoYXJkYWtlcgoKCS0gKFN2M1NIQURFU2NvbmZpZywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgoJICAtIG1ha2UgU0hBIHRlc3RzIGFjdHVhbGx5IHdvcmsuCgkKMjAwMC0wMi0wOSAxMzozMiAgaGFyZGFrZXIKCgktIChTdjNjb25maWdzaGEpOiBzaGEgY29uZmlnIHN1cHBvcnQKCQoyMDAwLTAyLTA5IDEzOjMxICBoYXJkYWtlcgoKCS0gKFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCgkgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOiBmaXggZm9yIHByb3BlciBBQ00gZXJyb3Igb3V0cHV0cy4KCQoyMDAwLTAyLTA5IDEzOjMwICBtc2xpZmNhawoKCURlZmluZSBTTk1QX01BWFBBVEgsIGFuZCB1c2UgaXQuCgkKMjAwMC0wMi0wOSAxMzozMCAgaGFyZGFrZXIKCgktIChUMDI0c25tcHYzZ2V0U0hBMSBUMDI1c25tcHYzZ2V0U0hBREVTKTogbmV3IHRlc3RzCgkKMjAwMC0wMi0wOSAxMzoxNiAgaGFyZGFrZXIKCgktIChVQ0QtU05NUC1NSUIudHh0KTogbWVudGlvbiBhIG5ldyB1Y2RFeHBlcmltZW50YWwgcmVnaXN0cmF0aW9uICh3YXZsYW4pLgoJCjIwMDAtMDItMDkgMTM6MTYgIGhhcmRha2VyCgoJLSAoYWdlbnRfY2FsbGJhY2tzLmgsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3JlZ2lzdHJ5LmgsCgkgIHNubXBfYWdlbnQuYywgdmFjbV92YXJzLmMpOgoJICAtIGZpeCBwb3NpYmxlIGFjbSBEb1MgcHJvYmxlbXMgYnkgY2hlY2tpbmcgYWNjZXNzIHRhYmxlcyBlYXJseSBvbi4KCQoyMDAwLTAyLTA5IDExOjM4ICBoYXJkYWtlcgoKCS0gKGhyX3N3aW5zdC5jKTogcGF0Y2ggZnJvbSByZWRoYXQgZm9yIGJldHRlciBSUE0gc3VwcG9ydC4KCQoyMDAwLTAyLTA5IDEwOjQzICBoYXJkYWtlcgoKCS0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZSBtb2RlIHRvIGF1dG9jb25mLgoJCjIwMDAtMDItMDkgMTA6NDEgIGhhcmRha2VyCgoJLSAoTWFrZWZpbGUuaW4pOiBmaXggcnNubXAgYnVpbGQuICBSZWFsbHkuICBJIG1lYW4gaXQuCgkKMjAwMC0wMi0wOSAxMDo0MSAgaGFyZGFrZXIKCgktIChocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYyk6IFBhdGNoIGZyb20gQW5keSBIT09EOgoJICAtIFNvbGFyaXMgcGF0Y2hlcy4KCQoyMDAwLTAyLTA5IDEwOjM3ICBoYXJkYWtlcgoKCS0gKE1ha2VmaWxlLmluKToKCSAgLSBmaXggcnNubXAubWFkZS4KCSAgLSB1c2UgJChNQUtFKS4KCQoyMDAwLTAyLTA5IDA4OjQxICBoYXJkYWtlcgoKCS0gKHZtc3RhdF9zb2xhcmlzMi5jLCB2bXN0YXRfc29sYXJpczIuaCk6IFVwZGF0ZSBmcm9tIEpvY2hlbiBLbWlldHNjaAoJCjIwMDAtMDItMDcgMTE6NDkgIG1hcnoKCglvb3BzIG1pc3NpbmcgaW1wb3J0YW50IGZpeCBmb3Igd2luMzIgYnVpbGQgLSBmZF9zZXQgbXVzdCBiZSBzYW1lIHNpemUgYXMgaW4gd2luc29jawoJCjIwMDAtMDItMDcgMTE6MTggIG1zbGlmY2FrCgoJVW5kbyBsYXN0IGNoYW5nZTsgb24gU3VuLCBhZGRpdGlvbmFsIHBsYXRmb3JtIGluZm8gd2FzIG5vdCBvYnRhaW5lZDsKCXRoZSBwcm9wZXIgc29sdXRpb24gd291bGQgYmUgdG8gcmVtb3ZlIHRoZSBzZWNvbmQgdG9rZW4gKGhvc3RuYW1lKS4KCQoyMDAwLTAyLTA3IDEwOjQzICBtc2xpZmNhawoKCUtlZXAgY3VzdG9tZXIncyBub2RlbmFtZSBvdXQgb2YgdGhlIHB1Ymxpc2hlZCAndW5hbWUnIGluZm9ybWF0aW9uLgoJCjIwMDAtMDItMDcgMDc6MjAgIGhhcmRha2VyCgoJLSAoUE9SVElORyk6IE1pY2hhZWwgbGlrZXMgZGlmZiAtdS4KCQoyMDAwLTAyLTA2IDA2OjExICBuYmEKCgktIHJlYWRfY29uZmlnLmM6IEZpeCBvbmUgZmluYWwgJzonIHRvIEVOVl9TRVBBUkFUT1JfQ0hBUgoJCjIwMDAtMDItMDUgMTc6MzkgIGhhcmRha2VyCgoJLSAoc25tcHYzLmMpOiBjb3JyZWN0IHNvbWUgYXdmdWwgdGV4dCAtPiBlbmdpbmVJRCBjcmVhdGlvbiBtaXN0YWtlcy4KCQoyMDAwLTAyLTA1IDA4OjM3ICBoYXJkYWtlcgoKCS0gKHNubXB0cmFwZC5jKTogZml4IHdyYXBwZWQgbGluZSBjb250aW51YXRpb24gaW4gdXNhZ2UgbWVzc2FnZS4KCQoyMDAwLTAyLTA1IDA2OjU2ICBtYXJ6CgoJZml4IHZlcnNpb24gIG51bWJlcgoJCjIwMDAtMDItMDQgMTg6NTUgIG1hcnoKCgl3ZWlyZCBkZWxheSBpbiBjcmVhdGlvbiBvZiBwaWQgZmlsZXMKCQoyMDAwLTAyLTA0IDE4OjIxICBtYXJ6CgoJYnJhaW4tbwoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjEgLT4gVjQuMS4xCgptYXJ6ICA1IEZlYiAwMCAwNjo1Njo0MwogICAgZml4IHZlcnNpb24gIG51bWJlcgoKaGFyZGFrZXIgIDUgRmViIDAwIDA4OjM3OjI3CiAgICAtIChzbm1wdHJhcGQuYyk6IGZpeCB3cmFwcGVkIGxpbmUgY29udGludWF0aW9uIGluIHVzYWdlIG1lc3NhZ2UuCgpoYXJkYWtlciAgNSBGZWIgMDAgMTc6Mzk6NTQKICAgIC0gKHNubXB2My5jKTogY29ycmVjdCBzb21lIGF3ZnVsIHRleHQgLT4gZW5naW5lSUQgY3JlYXRpb24gbWlzdGFrZXMuCgpuYmEgIDYgRmViIDAwIDA2OjExOjU5CiAgICAtIHJlYWRfY29uZmlnLmM6IEZpeCBvbmUgZmluYWwgJzonIHRvIEVOVl9TRVBBUkFUT1JfQ0hBUgoKaGFyZGFrZXIgIDcgRmViIDAwIDA3OjIwOjI0CiAgICAtIChQT1JUSU5HKTogTWljaGFlbCBsaWtlcyBkaWZmIC11LgoKbXNsaWZjYWsgIDcgRmViIDAwIDEwOjQzOjI5CiAgICBLZWVwIGN1c3RvbWVyJ3Mgbm9kZW5hbWUgb3V0IG9mIHRoZSBwdWJsaXNoZWQgJ3VuYW1lJyBpbmZvcm1hdGlvbi4KCm1zbGlmY2FrICA3IEZlYiAwMCAxMToxODoyNgogICAgVW5kbyBsYXN0IGNoYW5nZTsgb24gU3VuLCBhZGRpdGlvbmFsIHBsYXRmb3JtIGluZm8gd2FzIG5vdCBvYnRhaW5lZDsKICAgIHRoZSBwcm9wZXIgc29sdXRpb24gd291bGQgYmUgdG8gcmVtb3ZlIHRoZSBzZWNvbmQgdG9rZW4gKGhvc3RuYW1lKS4KCm1hcnogIDcgRmViIDAwIDExOjQ5OjAxCiAgICBvb3BzIG1pc3NpbmcgaW1wb3J0YW50IGZpeCBmb3Igd2luMzIgYnVpbGQgLSBmZF9zZXQgbXVzdCBiZSBzYW1lIHNpemUgYXMgaW4gd2luc29jawoKaGFyZGFrZXIgIDkgRmViIDAwIDA4OjQxOjExCiAgICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBVcGRhdGUgZnJvbSBKb2NoZW4gS21pZXRzY2gKCmhhcmRha2VyICA5IEZlYiAwMCAxMDozNzowMAogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIGZpeCByc25tcC5tYWRlLgogICAgICAtIHVzZSAkKE1BS0UpLgoKaGFyZGFrZXIgIDkgRmViIDAwIDEwOjQxOjE0CiAgICAtIChocl9maWxlc3lzLmMsIGhyX3N0b3JhZ2UuYyk6IFBhdGNoIGZyb20gQW5keSBIT09EOgogICAgICAtIFNvbGFyaXMgcGF0Y2hlcy4KCmhhcmRha2VyICA5IEZlYiAwMCAxMDo0MTo0NAogICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggcnNubXAgYnVpbGQuICBSZWFsbHkuICBJIG1lYW4gaXQuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTA6NDM6MDUKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZSBtb2RlIHRvIGF1dG9jb25mLgoKaGFyZGFrZXIgIDkgRmViIDAwIDExOjM4OjQyCiAgICAtIChocl9zd2luc3QuYyk6IHBhdGNoIGZyb20gcmVkaGF0IGZvciBiZXR0ZXIgUlBNIHN1cHBvcnQuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTM6MTY6MTcKICAgIC0gKGFnZW50X2NhbGxiYWNrcy5oLCBhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oLAogICAgICBzbm1wX2FnZW50LmMsIHZhY21fdmFycy5jKToKICAgICAgLSBmaXggcG9zaWJsZSBhY20gRG9TIHByb2JsZW1zIGJ5IGNoZWNraW5nIGFjY2VzcyB0YWJsZXMgZWFybHkgb24uCgpoYXJkYWtlciAgOSBGZWIgMDAgMTM6MTY6NTgKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uIGEgbmV3IHVjZEV4cGVyaW1lbnRhbCByZWdpc3RyYXRpb24gKHdhdmxhbikuCgptc2xpZmNhayAgOSBGZWIgMDAgMTM6MzE6MDEKICAgIERlZmluZSBTTk1QX01BWFBBVEgsIGFuZCB1c2UgaXQuCgpoYXJkYWtlciAgOSBGZWIgMDAgMTM6MzE6MjQKICAgIC0gKFQwMDNzbm1wdjFnZXRmYWlsLCBUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwsCiAgICAgIFQwMThzbm1wdjF0b3YyY2dldGZhaWwpOiBmaXggZm9yIHByb3BlciBBQ00gZXJyb3Igb3V0cHV0cy4KCm1zbGlmY2FrICA5IEZlYiAwMCAxMzo1MToxMgogICAgaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBnZXQgUEFUSF9NQVggb24gRnJlZUJTRC4KCmhhcmRha2VyICA5IEZlYiAwMCAxMzo1MzozNwogICAgLSAoZXZhbF90b29scy5zaCwgVDAyM3NubXB2M2dldE1ENURFUywgVDAyNHNubXB2M2dldFNIQTEsIFQwMjVzbm1wdjNnZXRTSEFERVMpOgogICAgICAtIHNraXAgc3NsIHRlc3RzIHdlIGNhbid0IHBlcmZvcm0uCgpkYXZlcyAxMCBGZWIgMDAgMDQ6NDE6MTAKICAgIC0gKHNubXBsaWIve3NubXBfYXBpLHNubXBfY2xpZW50fS5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldDYuYyk6CiAgICAgIC0gIENvbW1lbnQgdW51c2VkIGNvZGUgbW9yZSBpbmZvcm1hdGl2ZWx5IGFzIHRvIHdoeSBpdCBpcyBvbWl0dGVkLgoKZGF2ZXMgMTAgRmViIDAwIDA3OjE0OjUxCiAgICAtIChGQVEpOiBFeHBsaWNpdCBleGFtcGxlcyBvZiBzZW5kaW5nIHRyYXBzIGJ5IGhhbmQKCmhhcmRha2VyIDEwIEZlYiAwMCAwNzo1NDo0NgogICAgLSAoRkFRKTogbWVudGlvbiB0aGUgdHV0b3JpYWwuCgptc2xpZmNhayAxMCBGZWIgMDAgMDg6MDA6MjYKICAgIHR5cGVkZWYgaW50IHNzaXplX3QgKG9uZSBsaW5lIGFkZGVkKSBmb3IgYnVpbGQgb24gU3VuT1MgNC4KCm1zbGlmY2FrIDEwIEZlYiAwMCAwODoxMzoxNAogICAgZml4IHZhcmFyZ3MgZGVjbC9kZWZuIG9mIHNubXBfbG9nCgpuYmEgMTAgRmViIDAwIDA4OjQwOjA0CiAgICAtIG1hbi8qOiBzZXQgdGhlIGRhdGVzIG9uIHRoZSBwYWdlcyB0byByZWZsZWN0IHRoZSByZXZpc2lvbiBkYXRlCgpoYXJkYWtlciAxMCBGZWIgMDAgMTA6Mjg6MjEKICAgIC0gKHNubXB2My5jKTogZml4IHNldHVwIGVuZ2luZUlEIGJ1ZmZlciBvdmVyZmxvdyBmb3VuZCBieSBNaWtlIEJhZXIuCgpoYXJkYWtlciAxMCBGZWIgMDAgMTA6MzI6MDgKICAgIC0gKGhyX3N3aW5zdC5jKTogbWlub3IgZml4ZXMgcG9pbnRlZCBvdXQgYnkgTWljaGFlbC4KCm1zbGlmY2FrIDEwIEZlYiAwMCAxMDozMzo0NwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbXNsaWZjYWsgMTAgRmViIDAwIDExOjE0OjU4CiAgICBmaXggZm9yIG9sZGVyIHBsYXRmb3JtcyB0byB1c2UgcGFzc19wZXJzaXN0OyBub3QgaW5jbHVkZWQgYnkgZGVmYXVsdC4KCmhhcmRha2VyIDExIEZlYiAwMCAwNjo1ODowMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBEb250IGRlZmluZSBQUk9DRklYQ01EIGFuZCBFWEVDRklYQ01EIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6MjI6MTAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY2hhbmdlIHBlcmwgcGF0aCB0byAvdXNyL2Jpbi4KCmhhcmRha2VyIDExIEZlYiAwMCAxMjoyOTozNwogICAgLSAoc25tcF9hZ2VudC5jKTogcGF0Y2ggZnJvbSBOaWVsczoKICAgICAgLSBkb24ndCBzZW5kIGF1dGhlcnJvciByZXNwb25zZXMgZm9yIHYyYy4KICAgICAgLSBzZW5kIGF1dGhGYWlsdXJlIHRyYXAuCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6MzA6MDIKICAgIC0gKHN5c09SVGFibGUuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gY29tcGlsZXIgd2FybmluZyBmaXguCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6NDQ6MjMKICAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogZml4IGZvciBzZXBlcmF0ZSBidWlsZCBwYXRoCgpoYXJkYWtlciAxMSBGZWIgMDAgMTI6NDk6MDMKICAgIC0gKGxvY2FsL01ha2VmaWxlLmluKTogZG9uJ3QgY3AgZm9yIHNubXBjaGVjawoKaGFyZGFrZXIgMTEgRmViIDAwIDEyOjUzOjE1CiAgICAtIChUMDE2c25tcHYyY2dldGZhaWwsIFQwMTdzbm1wdjJjdG92MWdldGZhaWwpOiB1cGRhdGUgZm9yIFRpbWVvdXQgZm9yIHYyYy4KCmhhcmRha2VyIDExIEZlYiAwMCAxMzoyOToyOQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEuMSApCgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFY0LjAuMSAtPiBWNC4xCgptc2xpZmNhayAyNCBBdWcgOTkgMDQ6NDQ6NDcKICAgIENsZWFuIENScyBmcm9tIHJlYWRfY29uZmlnLHNubXBfbG9nZ2luZzsgY29tbWVudCBkZWZpbmUgVVNFX0FTTl9TSE9SVF9MRU4uCgptc2xpZmNhayAyNCBBdWcgOTkgMDU6MTE6MTMKICAgIFJlbW92ZSBBU05fU0hPUlRfTEVOIGhhY2sgLSBrbm93biB0byBkdW1wIGNvcmUgaW4gYWdlbnQuCgptc2xpZmNhayAyNCBBdWcgOTkgMDY6MTk6NDkKICAgIEFkZCAiLiIgdG8gUEFUSCBmb3IgUlVOVEVTVFM7IERyb3Agb3B0cmVzZXQgdG8gYnVpbGQgbW9zdCBwbGF0Zm9ybXMKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxMDoyNTo1MwogICAgLSh0ZXN0aW5nL2V2YWxfdG9vbHMpIC0gbGV0IHNvbWUgKEFJWCkgYWdlbnRzIHNldHRsZSBiZWZvcmUgZmlyaW5nIHJlcXVlc3RzLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEyOjQ4OjIxCiAgICAtICh2YWNtX3ZhcnMuYyk6IGNvcnJlY3Qgc3lzT1JUYWJsZSBlbnRyeS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzozNjozNQogICAgLSAoc25tcHVzbS5jKTogY2hlY2sgZm9yIG51bGwgcmVzcG9uc2UgcG9pbnRlci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzozNzozMQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcHYzLmMpOgogICAgICAtIHByb3ZpZGUgZGVmVmVyc2lvbiB0b2tlbiBzdXBwb3J0IGluIHNubXAuY29uZiAoc29ydCBvZiBoYWNraXNoKS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzo0MToxOAogICAgLSAoVE9ETyk6IHJlbW92ZSBzbm1wdjMgc3VwcG9ydCA6LSkKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNDowNTozOQogICAgLSh0b3AvTWFrZWZpbGUuaW4pIC0gcmVtb3ZlIG1vcmUgZ2VuZXJhdGVkIGZpbGVzIHdpdGggZGlzdGNsZWFuIHJ1bGUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTQ6MTU6NDAKICAgIC0gKGFsbF9zeXN0ZW0uaCk6IHJlbW92ZS4gIGFnYWluLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjE3OjMzCiAgICAtKGhvc3QvaHJfc3dydW47bWliSUkvaWNtcCxpcDt1Y2Qtc25tcC9kaXNrLHByb2MpIGxvZ19wZXJyb3IgLS0+IHNubXBfbG9nX3BlcnJvcgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE1OjE0OjE4CiAgICAtKHNtdXguYykgYXBwbHkgTmljayBBbWF0bydzIHBhdGNoOiBwcmV2ZW50IFNNVVggY2xvc2Ugb24gcGFyc2Ugb3IgZXJyb3IuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTU6NTk6NDIKICAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdmVyc2lvbiBzZXR0aW5nIGluIHNubXBfYXBpLmMuICBOb3QgbmVlZGVkIHRoZXJlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE2OjAxOjU1CiAgICAtIChORVdTKTogNC4wLjEgdXBkYXRlCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6MDU6MTUKICAgIC0oY29uZmlndXJlLiopIG1vdmUgc3RhdGVtZW50IGFib3V0IHVjZERlbW9QdWJsaWMgaW50byBjb21tZW50IGZpZWxkLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE2OjQ5OjIyCiAgICAtKHRlc3RpbmcvKikgcnVuIHRlc3RzIHdoZW4gcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkLCBhbmQgd2hlbgogICAgdGhlIGJ1aWxkIHRyZWUgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBzb3VyY2UgdHJlZS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxNzoxMzoyNQogICAgLSAoQ2hhbmdlTG9nKTogdXBkYXRlIGZvciA0LjAuMQoKaGFyZGFrZXIgMjQgQXVnIDk5IDE3OjE0OjUwCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC4xICkKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNzozOTo1NAogICAgLShSVU5URVNUUykgZXhwb3J0IFBBVEggYmVmb3JlIHVzZQoKbXNsaWZjYWsgMjQgQXVnIDk5IDE3OjQzOjA0CiAgICAtKHRlc3RpbmcvTWFrZWZpbGUuaW4pIG5vIG5lZWQgdG8gYnVpbGQgdGFyZ2V0cyBpbiB0ZXN0IHJ1bGUuCgptc2xpZmNhayAyNiBBdWcgOTkgMTM6MTg6MzEKICAgIC0odGVzdGluZy9SVU5URVNUUykgaW1wcm92ZWQgUEFUSCBzZXQKCm1zbGlmY2FrIDI2IEF1ZyA5OSAxMzo0MDoxMwogICAgLSh0ZXN0aW5nL01ha2VmaWxlLmluKSBkb24ndCBidWlsdCB0YXJnZXRzIHRoYXQgYXJlIG5vIGxvbmdlciB1c2VkCgptc2xpZmNhayAyNyBBdWcgOTkgMDc6MzU6MTAKICAgIC0oY29uZmlndXJlKiwgc2Vkc2NyaXB0KikgY2hhbmdlIC4uLkVYVEVOSVMuLi4gIHRvIC4uLkVYVEVOU0kuLi4KCm1zbGlmY2FrIDI3IEF1ZyA5OSAwODowMzo0NgogICAgSG93YXJkIFNwaW5kZWwgc3VnZ2VzdHMgYW4gQVBJIGZvciB0cmFwcyB3aXRoIHBhc3NfcGVyc2lzdC4KCmhhcmRha2VyIDI3IEF1ZyA5OSAwOToxNzowOAogICAgLSAoaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJvdXRlX3dyaXRlLmMsIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOgogICAgICAtIFN1c2FubmUgT3N0ZWQgcG9pbnRlZCBvdXQgYSBsYWNrIG9mICNpZiBIQVZFX1NZU19QQVJBTV9ILgoKaGFyZGFrZXIgMjggQXVnIDk5IDA3OjE5OjE2CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgc25tcF9hbGFybS4zLgoKaGFyZGFrZXIgMjggQXVnIDk5IDA3OjI5OjQ4CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMpOgogICAgICAtIGFkZCAvZXRjL3NubXAgdG8gZGVmYXVsdCBjb25mIGZpbGUgcGF0aCB0byBtYWtlIFJlZEhhdCBoYXBweS4KCmhhcmRha2VyIDMwIEF1ZyA5OSAwOTozMzo0MQogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIGFnZW50X3RyYXAuYywKICAgICAgYWdlbnRfdHJhcC5oLCBkc19hZ2VudC5oLCBzbm1wX2FnZW50LmMsIHNubXBfYWdlbnQuaCwgc25tcF92YXJzLmMsCiAgICAgIHNubXBkLmMsIHV0aWxfZnVuY3MuYywgc3lzT1JUYWJsZS5jLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oLAogICAgICBkZWZhdWx0X3N0b3JlLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMpOgogICAgICAtIHJlc3RydWN0dXJlIHRoZSBhZ2VudCBpbnRvIHR3byBwaWVjZXM6IGEgbGlicmFyeSBhbmQgYSBhcHBsaWNhdGlvbi4KICAgICAgICAtIG5lZWRzIG11Y2ggbW9yZSB3b3JrLgogICAgICAgIC0gbWFueSBwYXJhbWV0ZXJzIGFyZSBub3cgY29udHJvbGxlZCBieSBuZXcgZGVmYXVsdF9zdG9yZSBzZXR0aW5ncwogICAgICAgICAgdG8gaGVscCByZWxpZXZlIGNvbXBpbGUgdGltZSBiaW5kaW5ncy4KICAgICAgLSBtZXJnZSBpbml0X3NubXAgYW5kIHRoZSBjdXN0b20gdmVyc2lvbiBjYWxsZWQgaW5zaWRlIHRoZSBhZ2VudC4KICAgICAgLSBhZGQgYSBuZXcgcGxhY2UgZm9yIHRyYXAgc3BlY2lmaWMgYWdlbnQgY29kZSAoYWdlbnRfdHJhcC5bY2hdKS4KICAgICAgLSBwcm9iYWJseSBvdGhlciB0aGluZ3MgSSd2ZSBmb3Jnb3R0ZW4gdGhhdCBJIGRpZC4KCmhhcmRha2VyIDMwIEF1ZyA5OSAwOTozODoxOAogICAgLSAoY2xpZW50LmMsIG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jLCBwcm90b2NvbC5jLCBzdWJhZ2VudC5jKToKICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50cy4KICAgICAgLSB1c2UgbmV3IGRlZmF1bHRfc3RvcmUgc2V0dGluZ3MgaW5zdGVhZCBvZiBleHRlcm5hbCB2YXJpYWJsZXMuCgpoYXJkYWtlciAzMCBBdWcgOTkgMTA6MzA6NTYKICAgIC0gKG1hc3Rlci5jLCBtYXN0ZXJfcmVxdWVzdC5jKTogeWV0IG1vcmUgZGVidWdnaW5nLgoKbmJhIDMwIEF1ZyA5OSAxMzowMjoxOAogICAgLSBtYW4vc25tcGQuY29uZi41LmRlZjogZG9jdW1lbnQgc211eHBlZXIgZGlyZWN0aXZlCgpuYmEgMzAgQXVnIDk5IDEzOjAzOjQwCiAgICAtIGFwcHMvc25tcF9wYXJzZV9hcmdzLmM6IHByb3Blcmx5IGhhbmRsZSBNSUI6b2lkIGNvbnN0cnVjdAoKbmJhIDMwIEF1ZyA5OSAxMzowNTowMgogICAgLSBhcHBzL3NubXB0cmFwZC5jOiBmaXggYXJndW1lbnQgcGFyc2VyCgpuYmEgMzEgQXVnIDk5IDAwOjA4OjQ1CiAgICAtIGFnZW50L3NubXBkLmM6IGRvbid0IHRyeSB0byBwYXJzZSBhIHBhY2tldCB3aGVuIHRoZXJlIGlzIGFuIGVycm9yIGluCiAgICAJcmVjdmZyb20KCm1zbGlmY2FrIDMxIEF1ZyA5OSAwODoxNzoyNAogICAgLShhZ2VudF90cmFwLmMpIGZpeCByZWNlbnQgbWVtb3J5IGxlYWssIGFuZCBzaXplb2Yob2JqaWRfc25tcHRyYXApIGJ1Zy4KCm1zbGlmY2FrIDMxIEF1ZyA5OSAwOToyNjoxNAogICAgLShhZ2VudF90cmFwLmMpIGFsd2F5cyBmcmVlIFBEVSBhZnRlciBzbm1wX3NlbmQuCgpkYXZlcyAgMiBTZXAgOTkgMDY6Mzg6MTYKICAgIC0gKGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oKTogRml4IE1JQiBsb2NhdGlvbiBvZiBpcGZ3YWNjIG1vZHVsZQoKZGF2ZXMgIDIgU2VwIDk5IDA2OjM4OjUzCiAgICAtIChhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYyk6IEZpeCBNSUIgbG9jYXRpb24gb2YgaXBmd2FjYyBtb2R1bGUKCmhhcmRha2VyICAyIFNlcCA5OSAwNzowNzowNAogICAgLSAoc3ViYWdlbnQuYyk6IHNodXRkb3duX3N1YmFnZW50IC0+IHN1YmFnZW50X3NodXRkb3duIHNvIGNvbmZpZ3VyZQogICAgICBkb2Vzbid0IGZpbmQgaXQuCgpoYXJkYWtlciAgMiBTZXAgOTkgMDg6NTI6NDgKICAgIC0gKHN1YmFnZW50LmMpOiBvcHBzLiAgRm9yZ290IGEgc2h1dGRvd24gbmFtZSBjaGFuZ2UgaW5zdGFuY2UuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6MTU6MTUKICAgIC0gKGhpc3RvcnkuYywgaGlzdG9yeS5oLCBzbm1wX3ZhcnMubGludXguaCk6IHJlbW92ZWQuIE5vIGxvbmdlciBuZWVkZWQuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6MTU6MzMKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBhZ2VudCBoZWFkZXIgZmlsZXMuCgpoYXJkYWtlciAgMyBTZXAgOTkgMTM6Mjc6MTMKICAgIC0gKE1ha2VmaWxlLmluKToKICAgICAgLSBpbnN0YWxsIGxpYmFnZW50LmEuCiAgICAgIC0gbWtkaXJoZWlyIG9uIG5lZWRlZCBuZXcgaW5zdGFsbGF0aW9uIGRpcmVjdG9yaWVzLgoKaGFyZGFrZXIgIDMgU2VwIDk5IDEzOjMwOjM2CiAgICAtIChzbm1wbGliL01ha2VmaWxlLmluKTogaW5zdGFsbCBtb3JlIGxpYnJhcnkgaGVhZGVycy4KCmhhcmRha2VyICAzIFNlcCA5OSAxNDoyODo0NgogICAgLSAoc25tcF92YXJzLmMpOiBkb24ndCBmYWxsIG9mZiB0aGUgZW5kIG9mIHRoZSBzZWFyY2ggdHJlZS4KCmhhcmRha2VyICAzIFNlcCA5OSAxNTowMTozOQogICAgLSAoRkFRKTogbW9yZSBCU0RJIHN5c3RlbSB2ZXJzaW9ucyBsaXN0ZWQuCgpuYmEgIDYgU2VwIDk5IDIzOjUzOjA3CiAgICAtIChtYW4vc25tcF9hcGkuMyBzbm1wbGliL3NubXBfYXBpLmMgYWdlbnQvc25tcGQuYyBhcHBzL3NubXB0cmFwLmMpOgogICAgCWZpeCBtZW1vcnkgbGVhayB3aGVuIGFnZW50IHNlbmRzIHRyYXBzIGJ5IGltcGxlbWVudGluZyB0aGUgbWlzc2luZwogICAgCWZyZWUgb2YgVFJBUCBwZHUgaW4gc25tcF9zZW5kLgoKbmJhICA2IFNlcCA5OSAyMzo1NTozOAogICAgLSBpZi5jOiBjb3JyZWN0IGNhbGxzIG9mIHNubXBfZml4X3BkdSB0byB1c2UgR0VUTkVYVAoKbXNsaWZjYWsgIDcgU2VwIDk5IDE0OjQ3OjE4CiAgICAtKHBhcnNlLiopIGZpeCBzbWFsbCBtZW1vcnkgbGVha3M7IGFsbG93IElOREVYe0lOVEVHRVIuLi59IGNsYXVzZXM7CiAgICAgICAgICAgICAgIGFsbG93IGxhcmdlciBERVNDUklQVElPTiBjbGF1c2VzIFttYXggODE5Ml0uCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6MjI6MTQKICAgIHNubXB2My5jIC0gc2lsZW5jZSB0eXBlIHdhcm5pbmcgZnJvbSBNU1ZDKysuCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6MjM6MDIKICAgIChkZWZhdWx0X3N0b3JlLiopIC0gbWFrZSAzcmQgcGFyYW0gdG8gZHNfc2V0X3N0cmluZyB0eXBlIG9mIGNvbnN0IGNoYXIgKi4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNToyMzo1MQogICAgKHdpbjMyL2NvbmZpZy5oKSAtIHNldCBTTk1QQ09ORlBBVEggdG8gc3VjY2VlZCBjb21waWxlOwogICAgKHdpbjMyKmxpYnNubXAuZGVmKSAtIGFkZCBuZXcgc25tcF9nZXRfdG9rZW4gdG8gbGlzdC4KCm1zbGlmY2FrICA3IFNlcCA5OSAxNTozMjowMAogICAgLShzbm1wX2FwaS5oKSBzdHJ1Y3QgcGR1IGFuZCBzbm1wX3Nlc3Npb24gYWdyZWU6IGxvbmcgdHlwZSBmb3IgdmVyc2lvbiBtZW1iZXIuCgptc2xpZmNhayAgNyBTZXAgOTkgMTU6MzI6NTkKICAgIC0ocGFyc2UuYykgcmVtb3ZlIHVubmVlZGVkIHN0cmR1cCB0byBGaWxlIHZhcmlhYmxlIGZyb20gaW5pdF9taWJfaW50ZXJuYWxzLgoKbXNsaWZjYWsgIDcgU2VwIDk5IDE1OjU3OjEzCiAgICAtKHBhcnNlLmMpIGZpeCBVbmxpbmtlZCBPSUQgcHJpbnQgd2hlbiBvYmplY3QgaWRlbnRpZmllciBoYXMgbm8gcGFyZW50LgoKbXNsaWZjYWsgIDcgU2VwIDk5IDIwOjEyOjU3CiAgICAtKGFnZW50X3RyYXAuYyxzbm1wdHJhcC5jLHNubXBfYXBpLlszY10pIC0gc25tcF9mcmVlX3BkdSBmaXggQnVnICM1NCBwZXIgTmllbHMgQi4KICAgIC0oc25tcG5ldHN0YXQvaWYuYykgLSBmaXggZm9yIEdFVE5FWFQgcGVyIE5pZWxzIEIuCgptc2xpZmNhayAgNyBTZXAgOTkgMjA6MTk6NTIKICAgIHNubXB0cmFwLmMgLSByZXdvcmsgZml4IGJ1ZyAjNTQgKG1pc3NlZCBlbHNlKS4KCm1zbGlmY2FrICA4IFNlcCA5OSAwNToxNjozNAogICAgaW5jbHVkZSByZWFkX2NvbmZpZy5oCgpuYmEgIDggU2VwIDk5IDA3OjQ1OjU0CiAgICAtIChjb25maWd1cmUuaW4sIGxvYWRhdmUuYyk6IFNvbGFyaXMgMi43IGhhcyBnZXRsb2FkYXZnIHByb3RvdHlwZQoKbmJhICA4IFNlcCA5OSAwNzo0Njo1MQogICAgLSBzbm1wX2FwaS5oOiBtb3ZlIGluY2x1c2lvbiBwcm90ZWN0aW9uIHRvIHRoZSByZWFsIGJlZ2lubmluZy9lbmQgb2YgdGhlIGZpbGUKCm5iYSAgOCBTZXAgOTkgMDc6NDg6MDMKICAgIC0gdmFyX3N0cnVjdC5oOiB0aGUgQWdlbnR4IGNvZGUgdXNlcyB1bnNpZ25lZCB2YWx1ZXMgZm9yIHRoZSB2YXJpYWJsZSB0eXBlLgoKbmJhICA4IFNlcCA5OSAwNzo1MDozNwogICAgLSAodmFyaW91cyk6IGZpeCBjb21waWxlciB3YXJuaW5ncwoKbmJhICA4IFNlcCA5OSAwNzo1MToyNgogICAgLSBzbm1wZC4xLmRlZjogZml4IGEgZm9ybWF0dGluZyBwcm9ibGVtCgpuYmEgIDggU2VwIDk5IDA3OjUyOjIzCiAgICAtIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhcmd1bWVudCBwcm9jZXNzaW5nICgtbGQgYW5kIHNpbWlsYXIpCgptc2xpZmNhayAgOCBTZXAgOTkgMTM6MDA6NDAKICAgIC0odGVzdGluZy9SVU5URVNUUykgcHJlZml4IFBBVEggd2l0aCAuIGFuZCAuLiAsIGFzIHRoZSBzY3JpcHQgY2hhbmdlcyBkaXIuCgptc2xpZmNhayAgOCBTZXAgOTkgMTM6MDQ6NTUKICAgIC0oc25tcGxpYi9zbm1wX2NsaWVudC4qKSBhZGQgc25tcF9zcGxpdF9wZHUsIHNubXBfdmFyYmluZF9sZW4gbWV0aG9kcy4KCm1zbGlmY2FrICA4IFNlcCA5OSAxNzowMjozNwogICAgbWliaW5jbC5oLCBtaWJncm91cC9taWJJSS8qIC0gZml4dXAgZm9yIEN5Z1dpbjMyIGJ1aWxkCgptc2xpZmNhayAgOCBTZXAgOTkgMTc6NDk6MTMKICAgIC0oY29uZmlnKix3aW4zMi8qLHNubXBsaWIvKikgcmVzb3VyY2UgbG9ja2luZyBvcmlnaW5hbGx5IGZyb20gTWFya2t1IExhdWtrYW5lbgoKbXNsaWZjYWsgIDggU2VwIDk5IDE3OjUyOjQ3CiAgICAtKG10X3N1cHBvcnQuKikgT3JpZ2luYWwgYnkgTWFya2t1IExhdWtrYW5lbiwgY2hhbmdlcyBieSBNLiBTbGlmY2FrCgptc2xpZmNhayAgOCBTZXAgOTkgMjI6MzA6MjkKICAgIC0oc211eC5jKSB2YXJfc211eF93cml0ZSBmaXhlZCBwZXIgTWlrZSBNaWNoYXVkIGFuZCBOaWNrIEFtYXRvCgptc2xpZmNhayAgOCBTZXAgOTkgMjI6MzQ6MzcKICAgIC0obWliaW5jbC5oKSBjb21tZW50IG91dCBkdXBsaWNhdGUgI2luY2x1ZGUgaGVhZGVyIGxpbmVzLgoKZGF2ZXMgIDkgU2VwIDk5IDAxOjMyOjE1CiAgICAtIChtaWJzL1NOTVB2Mi1DT05GLnR4dCk6IE9taXQgdW5uZWNlc3NhcnkgaW1wb3J0IGNsYXVzZQoKbXNsaWZjYWsgIDkgU2VwIDk5IDAyOjIxOjUwCiAgICAtKHdpbnN0dWIuYykgSGFjayB0byBhbGxvdyBzbm1wbmV0c3RhdCAtYSB0byB3b3JrIG9uIEFJWDQgKHNpYykuCgptc2xpZmNhayAgOSBTZXAgOTkgMDI6MzE6MjYKICAgIC0oKmNvbmZpZyopIHR1cm4gb24gcmVzb3VyY2UgbG9ja2luZyB3aXRoIC0tZW5hYmxlLXJlZW50cmFudC4KCm1zbGlmY2FrICA5IFNlcCA5OSAxMzo1OToyNgogICAgLShtaWIuYywgcGFyc2UuYykgbWliLmMgcHJpbnRfdHJlZV9ub2RlIHRlc3QgZGlzcGxheSBudWxsIHR5cGUgd2l0aCByYW5nZQogICAgICAgICAgICAgICAgICAgICAgcGFyc2UuYyB3b3JrIGFyb3VuZCBjb3JlIGR1bXAgZnJlZWluZyBUQ3MgdGhhdCBzcGVjaWZ5IHJhbmdlcy4KCm5iYSAxMiBTZXAgOTkgMjE6NTA6MjMKICAgIC0gdmFyX3JvdXRlLmM6IExpbnV4IGNsZWFudXAuIFJlcXVpcmVkIGZvciBMaW51eC9TUEFSQwoKbmJhIDEyIFNlcCA5OSAyMTo1NzoxOAogICAgLSBhZ2VudC8qLCBzbm1wbGliLyo6IG1hbGxvYyBmaXhlcywgc29tZSBwcm92b2tlZCBieSB0aGUgY29ycmVjdGVkCiAgICAJc25tcF9zZW5kIHNlbWFudGljcy4KCm5iYSAxMiBTZXAgOTkgMjE6NTg6MTcKICAgIC0gVEVTVENPTkYuc2g6IGZpeCBzb21lIGV4cG9ydHMgdG8gZXhwb3J0IHRoZSByaWdodCB2YXJpYWJsZS4KCm5iYSAxMiBTZXAgOTkgMjE6NTk6MzQKICAgIC0gcHJvdG9jb2wuYzogYWRkIGEgbWlzc2luZyBpbmNsdWRlIGZpbGUuCgpuYmEgMTIgU2VwIDk5IDIyOjAwOjMzCiAgICAtIHNubXBfaW1wbC5oOiByZW1vdmVkIHNvbWUgdW51c2VkL3VubmVlZGVkIGRlZmluZXMvc3RydWN0cwoKbmJhIDEzIFNlcCA5OSAwNDozNToxOAogICAgLSB2YXJfcm91dGUuYzogTGludXggY2xlYW51cC4gUmVxdWlyZWQgZm9yIExpbnV4L1NQQVJDCgpuYmEgMTMgU2VwIDk5IDEzOjMyOjA3CiAgICAtIHNubXBkLmM6IGZpeCBhIGJ1ZmZlciBvdmVyZmxvdwoKaGFyZGFrZXIgMTMgU2VwIDk5IDE1OjAxOjU0CiAgICAtIChhZ2VudF9jYWxsYmFja3MuaCwgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVnaXN0cnkuYywKICAgICAgYWdlbnRfcmVnaXN0cnkuaCwgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYywgc3ViYWdlbnQuYywKICAgICAgc3ViYWdlbnQuaCwgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgICAtIGZ1cnRoZXIgc2VwYXJhdGlvbiBvZiBhZ2VudCBjaHVyY2ggYW5kIHN0YXRlOgogICAgICAgIC0gdXNlIGNhbGxiYWNrcyBldmVyeXdoZXJlIG5lZWRlZCB0byBub3QgY2FsbCBtaWIgbW9kdWxlIGNvZGUgZGlyZWN0bHkuCiAgICAgICAgLSBnZXQgcmlkIG9mIGFsbCBpbnN0YW5jZXMgb2YgVVNJTkdfIGluIGxpYmFnZW50IGNvZGUuCgptc2xpZmNhayAxMyBTZXAgOTkgMjA6MjA6NTQKICAgIC0oc25tcF9hcGkuYykgcmUtYXNzZXJ0IE5pZWxzJyBwYXRjaCB0byBzbm1wX3NlbmQgdG8gZnJlZSB2Mi92MSBUcmFwLVBEVXMKCm1zbGlmY2FrIDE0IFNlcCA5OSAwOTo1NDowNQogICAgLShGQVEsIG1hbi9zbm1wY21kLjEsIHNubXBsaWIvcGFyc2UuKikgYWRkIHJlcGxhY2UgTUlCIGNhcGFiaWxpdHkoZXhwZXJpbWVudGFsKQoKbWFyeiAxNCBTZXAgOTkgMTM6MDA6MTIKICAgICAgKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IGZpeCBzcHVyaW91cyBlcnJvciBtZXNzYWdlIHdoZW4gc25tcF9wYXJzZV9vaWQgZmFpbHMKCm1zbGlmY2FrIDE0IFNlcCA5OSAxMzoyMjozOQogICAgcGFyc2UuYyAtIGFub3RoZXIgZml4IGZvciBub2RlOiBjb25zaWRlciBOVUxMIG5hbWUgb3IgTlVMTCBwYXJlbnQKCm1zbGlmY2FrIDE1IFNlcCA5OSAwNjowODozMgogICAgaW5jbHVkZSBtaWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmggZm9yIGJlbmVmaXQgb2YgbWliX21vZHVsZV9kb3RfY29uZi5oCgpoYXJkYWtlciAxNSBTZXAgOTkgMDk6NDU6MzUKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wX2Nsb3NlLjMsIHNubXBfZnJlZV9wZHUuMywgc25tcF9vcGVuLjMsCiAgICAgIHNubXBfcmVhZC4zLCBzbm1wX3NlbGVjdF9pbmZvLjMsIHNubXBfc2VuZC4zLAogICAgICBzbm1wX3Nlc3NfYXN5bmNfc2VuZC4zLCBzbm1wX3Nlc3NfY2xvc2UuMywgc25tcF9zZXNzX2Vycm9yLjMsCiAgICAgIHNubXBfc2Vzc19pbml0LjMsIHNubXBfc2Vzc19vcGVuLjMsIHNubXBfc2Vzc19yZWFkLjMsCiAgICAgIHNubXBfc2Vzc19zZWxlY3RfaW5mby4zLCBzbm1wX3Nlc3Nfc2VuZC4zLCBzbm1wX3Nlc3Nfc2Vzc190aW1lb3V0LjMsCiAgICAgIHNubXBfc2Vzc19zZXNzaW9uLjMsIHNubXBfdGltZW91dC4zKTogUGF0Y2ggZnJvbSBNYXJrIEguIFdvb2Q6CiAgICAgIC0gY3JlYXRlIHNvbWUgZmFrZSBzb3VyY2luZyBtYW4gcGFnZXMgZm9yIGZ1bmN0aW9ucy4KCm1zbGlmY2FrIDE1IFNlcCA5OSAxMTozMDo1OAogICAgZmluZSB0dW5pbmcgbXQgc3VwcG9ydAoKbXNsaWZjYWsgMTYgU2VwIDk5IDE0OjE2OjM4CiAgICAtcGVyIGFncmVlbWVudCB3aXRoIE1hcmtrdSwgbm8gc3VwcG9ydCBuZWVkZWQgZm9yIFNvbGFyaXMtc3BlY2lmaWMgdGhyZWFkcy4KCmhhcmRha2VyIDE3IFNlcCA5OSAwNzoxNzoyMQogICAgLSAoc25tcF9hcGkuMyk6IFBhdGNoIGZyb20gTWFyayBILiBXb29kOgogICAgICAtIGZpeCBjb21tZW50cy4KCm1zbGlmY2FrIDE3IFNlcCA5OSAxMToxOTo0MgogICAgLShwYXJzZS5jKSAtIHJlbW92ZSB1bm5lZWRlZCB1c2Ugb2Ygc3RhdGljIHZhciAibGFzdCIKCm1zbGlmY2FrIDE3IFNlcCA5OSAxMToyNDo0OAogICAgLXJlbW92ZSBvbGQtc3R5bGUgaW5pdCBmb3IgcmVwbGFjZSBtaWIgZmVhdHVyZS4KCm1zbGlmY2FrIDE3IFNlcCA5OSAxMTo0MjoxNwogICAgbWFrZSBtb2R1bGVfbWFwKiBhbmQgdG9rZW5zIHN0cnVjdHVyZXMgc3RhdGljIChvbmx5IHVzZWQgaW4gcGFyc2UuYyA/KQoKaGFyZGFrZXIgMTcgU2VwIDk5IDE1OjM3OjQxCiAgICAtIChjb25maWd1cmUpOiB1cGRhdGUgdG8gMi4xMy4KCmRhdmVzIDIxIFNlcCA5OSAwOToyMTo1OQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogaGFuZGxlIGFkZGluZyAnZXJyb3InIHR5cGUgdmFyaWFibGVzIHRvIGEgUERVCgpkYXZlcyAyMSBTZXAgOTkgMDk6MjU6MjUKICAgIC0gKGFnZW50L21pYmdyb3VwL2FnZW50eC9wcm90b2NvbC5jKTogSGFuZGxlIHBhcnNpbmcgbnVsbC1sZW5ndGggdmFyaWFibGVzCgpkYXZlcyAyMSBTZXAgOTkgMDk6MzI6MjcKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcGQuYyk6IFNpbXBsZSBydW4tdGltZSBkdW1wIG9mIHJlZ2lzdGVyZWQgTUlCcwoKbXNsaWZjYWsgMjEgU2VwIDk5IDEwOjQwOjQzCiAgICAtKG1pYi5jKSB1bmRvIGVycm9uZW91cyBjaGFuZ2UgdG8gaW5pdF9taWIgKHRoYW5rcyBOQiEpCgpkYXZlcyAyMiBTZXAgOTkgMDk6Mjc6MzcKICAgIC0gKGFnZW50L3NubXBkLmMpOiBzdHVwaWQgdHlwbwoKZGF2ZXMgMjIgU2VwIDk5IDA5OjMxOjA4CiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5jKTogc3R1cGlkIHR5cG8KCmRhdmVzIDIyIFNlcCA5OSAwOTozMzo1MQogICAgLSAoYWdlbnQvYWdlbnRfcmVnaXN0cnkuW2NoXSk6IFByb3ZpZGUgbWV0aG9kIGZvciBwcmlvcml0aXNlZCByZWdpc3RyYXRpb24KCmRhdmVzIDIyIFNlcCA5OSAwOTozNTowOQogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jKToKICAgICAgLSBFbnN1cmUgbG9jYWwgc3lzT1JUYWJsZSB0YWtlcyBwcmVjZWRlbmNlIG92ZXIgc3ViYWdlbnQgdmVyc2lvbnMKCmRhdmVzIDIyIFNlcCA5OSAwOTo1NDowMgogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyBzbm1wX3ZhcnMuYyB2YXJfc3RydWN0LmgpOgogICAgICBDaGFuZ2UgdGhlIHdheSB0aGUgTUlCIHJlZ2lzdHJ5IGhhbmRsZXMgcmVnaXN0ZXJlZCByYW5nZXMuCiAgICAgIFRoaXMgc2hvdWxkIHdvcmsgbW9yZSByZWxpYWJseSAoYXMgd2VsbCBhcyBiZWluZyByYXRoZXIgc2ltcGxlciwgSU1ITykKCmRhdmVzIDIyIFNlcCA5OSAwOTo1ODoxMgogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IHJlbW92ZSByZWR1bmRhbnQgcm91dGluZXMKCmRhdmVzIDIyIFNlcCA5OSAxMDowMDo1NgogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IEVuc3VyZSByZWdpc3RyeSBpcyBpbml0aWFsaXNlZCBjb3JyZWN0bHkgb24gc3ViYWdlbnRzCgpkYXZlcyAyMiBTZXAgOTkgMTA6MDE6NDUKICAgIC0gKG1pYmdyb3VwL2FnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogSW1wcm92ZWQgQWdlbnRYIHJlc3BvbnNlIGhhbmRsaW5nCgptc2xpZmNhayAyMiBTZXAgOTkgMTI6NTE6MDAKICAgIC0oc25tcF9hcGkuYykgLSBJbXByb3ZlZCBlcnJvciBzdGF0dXMgYWdncmVnYXRpb24uCgpoYXJkYWtlciAyNyBTZXAgOTkgMTY6MjI6MjAKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBPcHBzOiBEU19MSUJfRE9OVF9SRUFEX0NPTkZJR1MgbmVlZGVkIGFuICEuCgpoYXJkYWtlciAyOCBTZXAgOTkgMTY6NTI6MDQKICAgIC0gKE1ha2VmaWxlLmluLCBtaWJfbW9kdWxlcy5jLCBtaWJfbW9kdWxlcy5oLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6CiAgICAgIC0gbWFrZSBsaWJ1Y2RhZ2VudCBhbmQgbGlidWNkbWlicyBhcyBzZXBlcmF0ZSBsaWJyYXJpZXMuICBJbiB0aGVvcnksCiAgICAgICAgeW91IHNob3VsZG4ndCBuZWVkIGxpYnVjZG1pYnMgdG8gdXNlIGxpYnVjZGFnZW50LgoKZGF2ZXMgMjkgU2VwIDk5IDExOjE0OjQyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBwcm90ZWN0IHNubXBfY2xvc2UoKSBhZ2FpbnN0IGEgbnVsbCBTZXNzaW9ucyBsaXN0CgpkYXZlcyAyOSBTZXAgOTkgMTE6MTc6MDEKICAgIC0gKG10X3N1cHBvcnQuaCBzbm1wX2FwaS5bY2hdKTogU3VwcG9ydCBmb3Igc2Vzc2lvbiBhbmQgaW5jb21pbmcgdHJhbnNhY3Rpb24gSURzCgpkYXZlcyAyOSBTZXAgOTkgMTE6MjM6NDAKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMpOiBDb3JyZWN0IHZhbHVlIG9mIGRlZmF1bHQgcmVnaXN0cmF0aW9uIHByaW9yaXR5CgpkYXZlcyAyOSBTZXAgOTkgMTE6MzY6NDMKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOgogICAgICAtIEltcHJvdmUgcmVnaXN0cnkgZXJyb3IgaGFuZGxpbmcKICAgICAgLSBDb3JyZWN0bHkgaGFuZGxlIHVucmVnaXN0ZXJpbmcgTUlCIHJlZ2lvbnMKCmRhdmVzIDI5IFNlcCA5OSAxMTozODoyMgogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6CiAgICAgIC0gJ0NoaWxkcmVuJyBub2RlcyBub3cgaGF2ZSBhIGRpZmZlcmVudCBzdGF0dXMsIGFuZCBzaG91bGRuJ3QgYmUgZnJlZWQuIE9vcHMhCgpkYXZlcyAyOSBTZXAgOTkgMTE6NDM6MDAKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOiBQcm92aXNpb24gdG8gdW5yZWdpc3RlciBNSUJzIGJ5IHNlc3Npb24KCmRhdmVzIDI5IFNlcCA5OSAxMTo0NjowMgogICAgLSAoYWdlbnQvc25tcF92YXJzLmMpOgogICAgICAtIE1vdmUgc2V0dGluZyBhZ2VudCBzdGFydCB0aW1lIHRvIGVhcmxpZXIgaW4gdGhlIGluaXRpYWxpc2F0aW9uIHNlcXVlbmNlCiAgICAgICAgKHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRkZW4gaW4gc3ViYWdlbnRzIHdpdGggdGhlIG1hc3RlcidzIHZhbHVlKQoKZGF2ZXMgMjkgU2VwIDk5IDExOjQ4OjU1CiAgICAtIChhZ2VudC9taWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOiBDaGFuZ2UgaW4gTUlCIHJlZ2lzdHJhdGlvbiBpbnRlcmZhY2UKCmRhdmVzIDI5IFNlcCA5OSAxMjoxOTo1NgogICAgLSAoYWdlbnQvbWliZ3JvdXAvYWdlbnR4LyopOiAgQXNzb3J0ZWQgaW1wcm92ZW1lbnRzIQoKbXNsaWZjYWsgMjkgU2VwIDk5IDE0OjMxOjQ4CiAgICBSb2J1c3QgY29weSBvZiBpbmZvcm1hdGlvbiB0byB0cmVlLCBpbXBvcnRfbGlzdCwgZGlzcGxheSBoaW50cy4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozNTo0MwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBmaXggUkFOTElCIHRlc3RpbmcgZm9yIC0tZW5hYmxlLXNoYXJlZC4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozNjowNwogICAgLSAoUkVBRE1FKTogYWRkZWQgTWlrZSBNaWNoYXVkIHRvIHRoZSB0aGFuayB5b3UgbGlzdC4KCmhhcmRha2VyIDI5IFNlcCA5OSAxNjozODozNAogICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6CiAgICAgIC0gbmV3IGV4dHJhY3Rpb24gYW5kIGZyZWVpbmcgZnVuY3Rpb25zLgogICAgICAtIGJ1ZyBmaXgsIG1pc3NpbmcgYSBtYWxsb2Mgc2l6ZSBieSBvbmUgKGVsZWN0cmljIGZlbmNlIGlzIHZlcnkgY29vbCkuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6Mzg6NTkKICAgIC0gKGNsaWVudC5jKTogdGhhdHMgInRpbWV2YWwiIG5vdCAidGltZXZhbGUiIERhdmUgKGhlaGUpLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjM5OjIxCiAgICAtIChjbGllbnQuaCk6IGRlZmluZSBERUZBVUxUX01JQl9QUklPUklUWSB0byAyNTUuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6Mzk6NDIKICAgIC0gKG1hc3Rlcl9hZG1pbi5jKTogLVdhbGwgZml4ZXMgYW5kIGZvdW5kIGEgbWlzc2luZyB9LgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE2OjQwOjA4CiAgICAtIChwYXNzLmMpOiBydW4gbnRvaGwgb24gaXAgYWRkcmVzc2VzIHN0b3JlZCBpbiBhIGxvbmcuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTY6NDA6MzAKICAgIC0gKG1pYjJjLnZhcnR5cGVzLmNvbmYpOiByZW1vdmVkIGV4dHJhIFxuLgoKaGFyZGFrZXIgMjkgU2VwIDk5IDE3OjAxOjI4CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jLCBhZ2VudF9yZWdpc3RyeS5oKTogZml4IGJ1Z3MuCgpoYXJkYWtlciAyOSBTZXAgOTkgMTc6MDE6NTAKICAgIC0gKG1pYl9tb2R1bGVzLmMpOiBpbmNsdWRlIG5ldGluZXQvaW4uaAoKbXNsaWZjYWsgMjkgU2VwIDk5IDIzOjQyOjQ5CiAgICBSZW1vdmUgdW51c2VkIGZpbGUuLiBzbm1wbGliL2hwdXguYwoKZGF2ZXMgMzAgU2VwIDk5IDAxOjA5OjI1CiAgICAtIChtaWJncm91cC9ob3N0L2hyX3N5c3RlbS5jKToKICAgICAgLSBwcm90ZWN0IGFnYWluc3QgTlVMTCB1dG1wIGZpbGUgKGZyb20gRmFicmljZSBEdXByZSkKCmRhdmVzICAxIE9jdCA5OSAwOTo0ODoyMAogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBGaXggaW5jb21wYXRhYmlsaXR5IGluIGFnZW50IGxpYnJhcnkgbmFtZXMKCmRhdmVzICAyIE9jdCA5OSAxNDoyODoyMAogICAgLSAobWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9hZG1pbi5jIG1pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jKToKICAgICAgLSBGaXggYSBwcm9ibGVtIHdpdGggcmUtdXNlZCBQRFUgc3RydWN0dXJlcyBiZWluZyBmcmVlZCB0d2ljZS4KCmRhdmVzICA0IE9jdCA5OSAwMzo1ODoyMgogICAgLSAoYWdlbnRfcmVnaXN0cnkuW2NoXSBtaWJncm91cC9hZ2VudHgvY2xpZW50LmgpOgogICAgICAtIGNvbnNvbGlkYXRlIGRlZmluaXRpb25zIG9mIGRlZmF1bHQgTUlCIHJlZ2lzdHJhdGlvbiBwcmlvcml0eQoKZGF2ZXMgIDQgT2N0IDk5IDA5OjUzOjQ4CiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIHNubXBfdmFycy5oIG1pYklJL3N5c09SVGFibGUuYwogICAgICAgYWdlbnR4L2NsaWVudC5bY2hdIGFnZW50eC9tYXN0ZXJfYWRtaW4uYyk6CiAgICAgICAtIEhhbmRsZSBNSUIgcmFuZ2UgcmVnaXN0cmF0aW9uLCBhbmQgY2xlYW4gdXAgd3JhcHBlciBpbnRlcmZhY2VzCgpkYXZlcyAgNCBPY3QgOTkgMDk6NTg6MjYKICAgIC0gKG1pYl9tb2R1bGVzLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LltjaF0pOgogICAgICAtIEVuc3VyZSBzdWJhZ2VudCBpcyBpbml0aWFsaXNlZCBlYXJseSAocHJpb3IgdG8gTUlCIHJlZ2lzdHJhdGlvbiwgZXRjKQoKZGF2ZXMgIDQgT2N0IDk5IDEwOjE1OjM4CiAgICAtIChzbm1wbGliL2NhbGxiYWNrLmgpOiBJbmNyZWFzZSBudW1iZXIgb2YgYXBwbGljYXRpb24gY2FsbGJhY2tzIHN1cHBvcnRlZAoKZGF2ZXMgIDQgT2N0IDk5IDEwOjE3OjUzCiAgICAtIChhZ2VudF9jYWxsYmFja3MuaCAgbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5bY2hdCiAgICAgICBtaWJncm91cC9hZ2VudHgvbWFzdGVyX2FkbWluLmMgbWliZ3JvdXAvYWdlbnR4L3N1YmFnZW50LmMpOgogICAgICAgLSBDb21wbGV0ZSBzdWJhZ2VudCBoYW5kbGluZyBvZiBBZ2VudCBDYXBhYmlsaXRpZXMgLyBzeXNPUlRhYmxlCgpkYXZlcyAgNCBPY3QgOTkgMTA6MjI6MjUKICAgIC0gKGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBUcml2aWFsICdwaW5nJyBpbXBsZW1lbnRhdGlvbgoKbmJhICA0IE9jdCA5OSAxMTo0ODo1MQogICAgLSAoc25tcF9hcGk/LCBpbnQ2NC4/IHNubXB0cmFwLmMpOiBhZGQgc29tZSBlcnJvciBjaGVja2luZyBmb3IgdmFyaWFibGVzCgpuYmEgIDQgT2N0IDk5IDExOjUwOjUwCiAgICAtIE1ha2VmaWxlLmluOglhbHdheXMgdXNlICQoTUFLRSkgZm9yIG1ha2UgaW4gTWFrZWZpbGVzCgpuYmEgIDQgT2N0IDk5IDExOjUyOjI1CiAgICAtIGNvbmZpZ3VyZS5pbjoJcmVtb3ZlIC1wZWRhbnRpYyBmcm9tIC0td2l0aC1kZXZlbG9wZXIsIGFuZCB0aGUgc3lzdGVtIGhlYWRlcnMKICAgIAlhcmUgbm90IHByZXBhcmVkIGZvciBpdCAoYXQgbGVhc3Qgb24gTGludXggYW5kIE5ldEJTRCkKCm5iYSAgNCBPY3QgOTkgMTM6Mzg6MTkKICAgIC0gdmFyaW91czogaW5jbHVkZSBhZGRpdGlvbnMgYW5kIGZpeGVzIHRvIGtpbGwgd2FybmluZ3MKCmhhcmRha2VyICA0IE9jdCA5OSAxMzo1MTo1MQogICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNTZXJ2aWNlcyBjb25maWd1cmFibGUuCgpuYmEgIDQgT2N0IDk5IDEzOjUyOjIwCiAgICAtIHN1YmFnZW50LmgsIHN1YmFnZW50LmMsIG1pYl9tb2R1bGVzLmM6IHByZV9pbml0X3N1YmFnZW50IGNvbmZ1c2VzCiAgICAJY29uZmlndXJlIGludG8gYmVsaWV2aW5nIHRoZXJlIGlzIGEgaW5pdF9zdWJhZ2VudCBmdW5jdGlvbi4KICAgIAlSZW5hbWUgdG8gc3ViYWdlbnRfcHJlX2luaXQKCmhhcmRha2VyICA0IE9jdCA5OSAxNjozMjoxOQogICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGFkZGVkIGhlYWRlcl9jb21wbGV4X2ZpbmRfZW50cnkoKS4KCmRhdmVzICA1IE9jdCA5OSAwNzoyMzo0NQogICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMgYWdlbnR4L3N1YmFnZW50LmMpOiBXb3JraW5nIFNFVCBzdXBwb3J0CgpuYmEgIDUgT2N0IDk5IDIxOjQ5OjIyCiAgICAtIHNubXBfZGVidWcuaDogbWFrZSB0aGUgREVCVUcqIG1hY3JvcyBzYWZlIGZvciB1c2UgaW4gY29tcG91bmQgc3RhdGVtZW50cwoKbmJhICA1IE9jdCA5OSAyMjoxODo0NgogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYzogZml4ZXMgdG8gcmVwb3J0IGludmFsaWQgZW5naW5lSWQKCm5iYSAgNSBPY3QgOTkgMjI6MjI6NTQKICAgIC0gc3ViYWdlbnQuYzogaW5jbHVkZSBzeXN0ZW0uaCBmb3IgcHJvdG90eXBlIGZvciBjYWxjdWxhdGVfdGltZV9kaWZmCgpoYXJkYWtlciAgNiBPY3QgOTkgMDg6NTc6NDIKICAgIC0gKGZpeHByb2MpOiBuZXcgY29tbWVudGVkIHZlcnNpb24uCgpoYXJkYWtlciAgNiBPY3QgOTkgMTY6MzE6NTMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2NsaWVudC5jKToKICAgICAgLSBTYXZlIGFuZCBwYXJzZSBvbGRlciBwZXJzaXN0ZW50IHN0b3JhZ2UgZmlsZXMgdG8gbWFrZSBzdXJlIGRhdGEgaXMKICAgICAgICBub3QgbG9zdCBkdXJpbmcgc3RvcmFnZSBjcmFzaGVzLgogICAgICAtIEZpeCBTTk1QdjMgZW5naW5lSUQgcHJvYmVzOiBQRFUncyBhcmUgYWxsb3dlZCB0byBoYXZlIGEgTlVMTCB2YXJiaW5kbGlzdC4KCmRhdmVzICA3IE9jdCA5OSAwNzoyNjoyMAogICAgLSAoYWdlbnRfdHJhcC5jIGFnZW50X3RyYXAuaCBhZ2VudF9yZWFkX2NvbmZpZy5jIHNubXBkLmgpOgogICAgICAtICBSZS13cml0ZSBvZiBhZ2VudCB0cmFwIGhhbmRsaW5nOgogICAgCVByb3Zpc2lvbiBmb3IgdjEgdHJhcHMgd2l0aCB2YXJiaW5kcwogICAgCUNvbnNvbGlkYXRlIHYxIGFuZCB2MiB0cmFwIHNpbmsgbGlzdHMKICAgIAlQcmVsaW1pbmFyeSBJTkZPUk0gc3VwcG9ydAoKZGF2ZXMgIDcgT2N0IDk5IDA4OjQyOjE1CiAgICAtIChhZ2VudF90cmFwLltjaF0pOiBJbXByb3ZlIGFjY2Vzc2liaWxpdHkgZm9yIHN1YmFnZW50cwoKZGF2ZXMgIDcgT2N0IDk5IDA5OjAxOjI1CiAgICAtIChhZ2VudHgvc3ViYWdlbnQuYyBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOiBOb3RpZmljYXRpb24gc3VwcG9ydAoKbXNsaWZjYWsgMTIgT2N0IDk5IDA1OjU4OjI4CiAgICBtaWIuYyA6IHF1aWNrX3ByaW50IGlzIGV4cG9zZWQgZm9yIENNVV9DT01QQVRJQkxFIGJ1aWxkcy4KICAgIGxjZF90aW1lLmMgOiBjb21tZW50ZWQgdW51c2VkIGR1bXBfZXRpbWVsaXN0X2VudHJ5IHVuZGVyIFNOTVBfVEVTVElOR19DT0RFLgoKbXNsaWZjYWsgMTIgT2N0IDk5IDA2OjA3OjQ0CiAgICBEZWZpbmUgYWRkcmVzcyBsZW5ndGggZm9yIEZyZWVCU0QgcGxhdGZvcm0uCgptc2xpZmNhayAxMyBPY3QgOTkgMDM6NTQ6MDIKICAgIGFkZCBtaXNzaW5nIHByb3RvIGZvciBzYXZlX3BlcnNpc3RlbnQuCgpuYmEgMTMgT2N0IDk5IDA3OjA5OjM2CiAgICAtIG1hc3Rlcl9hZG1pbi5jLCBzeXN0ZW1fbWliLmg6IGluY2x1ZGVzIGZvciBwcm90b3R5cGVzCgptc2xpZmNhayAxNSBPY3QgOTkgMDc6MDk6MTQKICAgIC0oZGVmYXVsdF9zdG9yZS5jLCBjYWxsYmFjay5jKSBmaXgKICAgIGJ1ZyBpbiBhcnJheS1ib3VuZGFyeSBjaGVjayBpbiBzbm1wbGliL2NhbGxiYWNrLmMKICAgIHJlcG9ydGVkIGJ5IEJlcnQgSG9sc3RlaW4gMTUgT2N0IDE5OTkuCgpoYXJkYWtlciAyMCBPY3QgOTkgMTc6MjY6NTkKICAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBwYXJzZWQgc3RyaW5ncyBmcm9tIG9pZCdzIGluY2x1ZGUgbnVsbCB0ZXJtaW5hdG9ycy4KCmhhcmRha2VyIDIwIE9jdCA5OSAxODowODozOQogICAgLSAobWliLmMpOiBlbmFibGUgb2lkIHBhcnNlciB0byBoYW5kbGUgc2ltcGxlIGVtYmVkZGVkIHN0cmluZ3MgaW4gb2lkcwogICAgICBhbmQgdG8gdHJhbnNsYXRlIHRoZW0gaW50byBvaWQgc2VnbWVudHMuCiAgICAgIEVHOiAuMS4zLlwiaGVsbG9cIi5cJ2hpXCcgLT4gLjEuMy41LjEwNC4xMDEuMTA4LjEwOC4xMTEuMTA0LjEwNQoKaGFyZGFrZXIgMjEgT2N0IDk5IDEwOjA3OjAwCiAgICAtIChtaWIuYyk6IGVuYWJsZSBvaWRuYW1lLiJoaSIuJ3RoZXJlJyBpbiBnZXRfbW9kdWxlX25vZGUoKSBhcyB3ZWxsLgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjIwOjE1CiAgICBOb3RlICBTTk1QRVJSX1VOS05PV05fT0JKSUQgZXJyb3Igd2l0aG91dCBzcGVjaWZ5aW5nIHNubXBfZXJybm8gX291dHNpZGVfIHRoZSBsaWJyYXJ5LgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjI2OjI5CiAgICBOb3RlICBTTk1QRVJSX1VOS05PV05fT0JKSUQgZXJyb3IgZnJvbSB3aXRoaW4gdGhlIGxpYnJhcnkuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6Mzc6NDkKICAgIG1pYi5jIC0gcmVzdG9yZSBsaW5lIHN0b21wZWQgaW4gbXkgbGFzdCB1cGRhdGUuCiAgICByZWFkX2NvbmZpZy5jIC0gZHJvcCB1bnVzZWQgdmFyaWFibGUuCiAgICBzbm1wX2FwaS5jIC0gbmV3IG1ldGhvZCBzbm1wX29wZW5fZXggcmVwbGFjZXMgc2V0IGludGVybmFsIGhvb2sgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjM5OjA5CiAgICBGaXh1cHMgZm9yIGJ1aWxkaW5nIHdpdGggTVNWQysrLiAobm8gaHB1eC5jLCBzdXBwbHkgTUFYX1BFUlNJU1RFTlRfQkFDS1VQUykuCgptc2xpZmNhayAyMSBPY3QgOTkgMTA6NDE6MzgKICAgIHJlbWluZGVycyBmb3Igc25tcF9zZXNzX3BlcnJvciB1c2FnZSBhZnRlciBvcGVuLgogICAgc25tcHRhYmxlLmMgLSBvcGVuL2Nsb3NlIHNlc3Npb24gZnJvbSBtYWluKCkuCiAgICBuZXRzdGF0L21haW4uYyAtIHVzZSBzbm1wX3Nlc3NfcGVycm9yLgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEwOjQyOjI4CiAgICB1c2Ugc25tcF9vcGVuX2V4LgoKbXNsaWZjYWsgMjEgT2N0IDk5IDEyOjA5OjUxCiAgICBGaXggQlVHIzc4Cgptc2xpZmNhayAyMSBPY3QgOTkgMTI6MzE6MjgKICAgIHNtYWxsIHBhdGNoIGZyb20gTS4gTGF1a2thbmVuIHRvIGZpeCBIUCBhQ0MgYnVpbGQuCgpuYmEgMjEgT2N0IDk5IDEyOjUyOjI2CiAgICAtIG1lbW9yeV9zb2xhcmlzLmM6IHJlb3JkZXIgY29tcHV0YXRpb25zIHRvIGF2b2lkIG92ZXJmbG93LgoKbmJhIDIxIE9jdCA5OSAxMjo1NDo0MQogICAgLSBtZW1vcnlfc29sYXJpczIuYzogcmVvcmRlciBjb21wdXRhdGlvbnMgdG8gYXZvaWQgb3ZlcmZsb3cuCgptc2xpZmNhayAyMiBPY3QgOTkgMDY6Mjk6MTYKICAgIEluIGZpeGluZyBidWcgIzgzIG9uIDQuMCBicmFuY2gsIGRpc2NvdmVyZWQgdGhhdCAzLjYgYnJhbmNoCiAgICBkaWQgbm90IGhhdmUgIm9jdGV0IiB0b2tlbiBzdXBwb3J0LiAgQWRkZWQuCgptc2xpZmNhayAyMiBPY3QgOTkgMDY6Mjk6NTIKICAgIEZpeCBCVUcgIzgzLgoKbXNsaWZjYWsgMjIgT2N0IDk5IDA3OjM5OjAxCiAgICBSZW1vdmVkIGR1cGxpY2F0ZWQgdmFyaWFibGUgaW4gYSBuZXN0ZWQgYmxvY2suIEFSZyEKCmhhcmRha2VyIDIyIE9jdCA5OSAwOTo1OTozOQogICAgLSAobWliLmMpOiBlbmFibGUgaGV4IHN0cmluZ3MgaW5zaWRlIG9pZHMuCgptc2xpZmNhayAyMiBPY3QgOTkgMTA6MTI6MjYKICAgIERpc3BsYXkgX3NvbWVfIG9jdGV0IHN0cmluZyBpbmRpY2VzIG9mIG9iamVjdCBpZGVudGlmaWVycyBhcyBxdW90ZWQgcHJpbnRhYmxlLgogICAgU2hvdWxkIGJlIGV4cGFuZGVkIHRvIGhhbmRsZSBvdGhlciBJTkRFWCB0eXBlcy4KCmhhcmRha2VyIDIyIE9jdCA5OSAxNToyODo1OQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBrZXl0b29scy5jLAogICAgICBrZXl0b29scy5oLCBzY2FwaS5jKToKICAgICAgLSB1c2Ugb3BlbnNzbCBmb3IgbWQ1L3NoYSBzdXBwb3J0IChmcm9tIE9sYWZ1ciBHdWRtdW5kc3NvbikuCgpoYXJkYWtlciAyMiBPY3QgOTkgMTU6Mjk6MzgKICAgIC0gKG1pYi5jKTogcHJpbnQgc3RyaW5nIGJhc2VkIE9JRHMgYmV0dGVyLgoKaGFyZGFrZXIgMjQgT2N0IDk5IDA4OjI0OjAyCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFNOTVBDT05GUEFUSCB1c2VzIHN5c2NvbmZkaXIgbm90IGRhdGFkaXIuCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6MjQ6MjEKICAgIC0gKFJFQURNRS5zbm1wdjMpOiB0eXBvLgoKaGFyZGFrZXIgMjQgT2N0IDk5IDA4OjI1OjM1CiAgICAtIChtaWIuYyk6IGZpeCAibWlicyIgYW5kICJtaWJkaXJzIiAuY29uZiBkaXJlY3RpdmVzIHRvIHByb3Blcmx5CiAgICAgIGhhbmRsZSBtdWx0aXBsZSBjYWxscyAoYWRkaXRpdmUpIGFuZCAnKydzIGFuZCB0aGluZ3MuCgpoYXJkYWtlciAyNCBPY3QgOTkgMDg6Mjc6MjgKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIHByZW1pYiBkaXJlY3RpdmVzIHdlcmVuJ3QgZ2V0dGluZyByZWFkIGR1ZSB0byBhIG1pc3NpbmcgbmVnYXRpb24gKCEpLgogICAgICAtIG1vcmUgcGFyc2luZyBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBhZGRlZC4KCm1zbGlmY2FrIDI1IE9jdCA5OSAwODowNjozMgogICAgbWlub3IgcmV3b3JrIHRvIGNsYXJpZnkgc2lnbmVkIGNvbXBhcmVzIGFuZCByZW1vdmUgdW51c2VkIHZhcmlhYmxlcy4KCm5iYSAyNSBPY3QgOTkgMTM6Mzk6MjcKICAgIC0gaW50ZXJmYWNlcy5jOiBmaXggYSBtZW1vcnkgbGVhayBpbiB0aGUgTGludXggcGFydAoKbmJhIDI1IE9jdCA5OSAxMzo0MTowMQogICAgLSBjb25maWd1cmUuaW4sIHByb2MuYzogc3VwcG9ydCBmb3IgRnJlZUJTRCAyLjEgd2hlcmUgcHMgZG9lc24ndCBoYXZlIGMgZmxhZwoKbmJhIDI1IE9jdCA5OSAxMzo1MToyMgogICAgLSBocl9zeXN0ZW0uYzogcGxheSBpdCBzYWZlIHdoZW4gbm8gdXRtcCBmaWxlIGV4aXN0cwoKbmJhIDI1IE9jdCA5OSAxMzo1MzoyNgogICAgLSBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmM6IHN1cHBvcnQgZm9yIHRyYXBoYW5kbGUgREVGQVVMVAoKbmJhIDI1IE9jdCA5OSAxMzo1NjoyNgogICAgLSBSVU5URVNUUywgVEVTVENPTkYuc2ggZXZhbF9vbmVzY3JpcHQuc2ggZXZhbF90b29scy5zaDogc3VwcG9ydCBub24tYmFzaAogICAgCXNoZWxscyAoZWNobyAtbiB2cyBlY2hvIFxcYykuIERvbid0IHJlcXVpcmUgLiBpbiBQQVRICgpuYmEgMjUgT2N0IDk5IDEzOjU4OjAzCiAgICAtIHNubXB0cmFuc2xhdGUuYzogbGV0ICc6JyBpbiBPSUQgZG8gInRoZSByaWdodCB0aGluZyIKCm5iYSAyNSBPY3QgOTkgMTM6NTk6MDUKICAgIC0gcGFzcy5jOiBkbyBhbiBodG9ubCB3aGVuIHBhc3NpbmcgaXAgYWRkcmVzcwoKbmJhIDI1IE9jdCA5OSAxNDowNzoxMQogICAgLSBzbm1wZGVsdGEuYzogQ09VTlRFUjY0IHdpbGwgZGVyZWZlcmVuY2UgZnJlZWQgcG9pbnRlcgoKbmJhIDI1IE9jdCA5OSAxNDowODoyNQogICAgLSBzbm1wZC5jb25mLjUuZGVmOiBtaW5vciBxdWlyawoKbmJhIDI1IE9jdCA5OSAxNDoxMzo1NwogICAgLSAqOiBjb25maWd1cmUgc3VwcG9ydCBmb3IgZG1hbGxvYyBtYWxsb2MgZGVidWdnZXIgKHd3dy5kbWFsbG9jLmNvbSkKCmhhcmRha2VyIDI1IE9jdCA5OSAxNDozNTo1MQogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogZW5hYmxlIC1wIHByaW50aW5nIG9mIG9ubHkgYSBzZWN0aW9uIG9mIHRoZSBtaWIgdHJlZS4KCmhhcmRha2VyIDI1IE9jdCA5OSAxNjowNTowMwogICAgLSAoc25tcHRyYW5zbGF0ZS5jLCBwYXJzZS5jKTogaGFjayB0byBkbyB3aWxkIGNhcmQgc2VhcmNoZXMgZm9yIGEgbWliIG5vZGUuCgptc2xpZmNhayAyNiBPY3QgOTkgMTA6MzQ6NDAKICAgIEFsbG93IHVuc2lnbmVkIHJhbmdlIGZvciBjb3VudGVyL2dhdWdlL3RpbWV0aWNrcyAoZml4IEJVRyM4NCBwZXIgU2FuZGVyIFN0ZWZmYW5uKS4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozMzozMwogICAgLSAoTWFrZWZpbGUuaW4pOiBmaXggdXAgdWNkLXNubXAtY29uZmlnLmggYnVpbGRpbmcuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzQ6MTAKICAgIC0gKHNubXBfYWdlbnQuaCk6IHByb3RvdHlwZSBhZ2VudF9jaGVja19hbmRfcHJvY2VzcygpLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM0OjU1CiAgICAtIChNYWtlZmlsZS5pbiwgdWNkLXNubXAtYWdlbnQtaW5jbHVkZXMuaCk6IGFkZGVkIGEgaGVhZGVyIGZpbGUgdG8KICAgICAgd3JhcCBhcm91bmQgdGhlIHZhcmlvdXMgYWdlbnQgaW5jbHVkZSBmaWxlcy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNDozNToyNwogICAgLSAobWFzdGVyX2FkbWluLmMpOiBzaW1wbGUgZGVidWdnaW5nIHNvIHlvdSBjYW4gd2F0Y2ggc3R1ZmYgcmVnaXN0ZXIuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzY6MjEKICAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLjMsIGRlZmF1bHRfc3RvcmUuMy5ib3QsCiAgICAgIGRlZmF1bHRfc3RvcmUuMy5oLCBkZWZhdWx0X3N0b3JlLjMudG9wLCBzbm1wX2FnZW50X2FwaS4zKToKICAgICAgLSBuZXcgbWFudWFsIHBhZ2VzOiBkZWZhdWx0X3N0b3JlLjMsIHNubXBfYWdlbnRfYXBpLjMuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6MzY6NTUKICAgIC0gKGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgIC0gbWFyayByZWdpb25zIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBkZWZhdWx0X3N0b3JlLjMgbWFudWFsIHBhZ2UuCgpoYXJkYWtlciAyNyBPY3QgOTkgMTQ6Mzc6NDkKICAgIC0gKGxjZF90aW1lLmgpOiBkZWZpbmUgYW5kIGNvbW1lbnQgTENEX1RJTUVfU1lOQ19PUFQgYmV0dGVyLgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE0OjM4OjA2CiAgICAtICh1Y2Qtc25tcC1pbmNsdWRlcy5oKTogYWRkIGRlZmF1bHRfc3RvcmUuaCBhbmQgc25tcF9sb2dnaW5nLmgKCmhhcmRha2VyIDI3IE9jdCA5OSAxNzoxMjowMQogICAgLSAodWNkLXNubXAtaW5jbHVkZXMuaCk6IGFkZGVkIG1vcmUgaW5jbHVkZSBmaWxlcy4KCmhhcmRha2VyIDI3IE9jdCA5OSAxNzoxMjo1OQogICAgLSAobWliLmMpOiBiYWlsIGlmIHdlIGNhbid0IGZpbmQgYW4gaW5kZXggaW4gdGhlIG1pYiB0cmVlIHRvIHVzZSBmb3IKICAgICAgYnJlYWtpbmcgYW4gb2lkIGFwYXJ0LgoKaGFyZGFrZXIgMjcgT2N0IDk5IDE3OjMwOjI1CiAgICAtICh2YWNtX3ZhcnMuYyk6IHdhdGNoIGZvciBudWxsIGNvbW11bml0aWVzIHdoZW4gcHJpbnRpbmcgZGVidWcgc3RhdGVtZW50cy4KCm1zbGlmY2FrIDI4IE9jdCA5OSAwNDo1NTo1MgogICAgRGF2ZSdzIGNvbW1lbnQgYWJvdXQgcHJlX3BhcnNlIGV0Yy4gd2FzIHRvbyBnb29kIHRvIGxvc2UgaW4gZS1tYWlsLgoKbXNsaWZjYWsgMjggT2N0IDk5IDA1OjIzOjA1CiAgICB1X2ludDgvMTYvMzJfdCB0eXBlcyBubyBsb25nZXIgbmVlZGVkIGZvciBXSU4zMiBidWlsZHMuCgptc2xpZmNhayAyOCBPY3QgOTkgMDU6MjU6MDIKICAgIE9vcHMhIHJlc3RvcmUgdmVyc2lvbiByMS4xMzEuCgptc2xpZmNhayAyOCBPY3QgOTkgMDY6NDk6MDMKICAgIHJlcGhyYXNlIHN1YnRyZWUgbm90IGZvdW5kIGNvZGUgaW4gX2dldF9zeW1ib2wuCgpoYXJkYWtlciAyOCBPY3QgOTkgMTM6NDc6NTcKICAgIC0gKHNubXB0b3NxbCk6IGRlYnVnZ2luZyBhbmQgZXJyb3IgY2hlY2tpbmcuCgpoYXJkYWtlciAyOSBPY3QgOTkgMDg6NTg6MTcKICAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBQYXRjaCBmcm9tIEtlaXRoIFR1c29uOgogICAgICAtIG1pc2MgZml4ZXMuCgpoYXJkYWtlciAyOSBPY3QgOTkgMDk6Mjg6MTEKICAgIC0gKEZBUSk6IGFkZGVkIHJlZmVyZW5jZSB0byBhbiBhYm92ZSBxdWVzdGlvbiBmb3IgcGVybCBpbnN0YWxsYXRpb24uCgpoYXJkYWtlciAyOSBPY3QgOTkgMDk6Mjg6NDMKICAgIC0gKHVjZC1zbm1wLWFnZW50LWluY2x1ZGVzLmgpOiBhZGRlZCB2YXJfc3RydWN0LmggYW5kIGFnZW50X3JlYWRfY29uZmlnLmgKCmhhcmRha2VyIDI5IE9jdCA5OSAwOTo1MjoxOAogICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IHR3byBuZXcgcHJpbnRpbmcgb3B0aW9uczoKICAgICAgLSBwcmludE51bWVyaWNPaWRzCiAgICAgIC0gcHJpbnROdW1lcmljRW51bXMKCmhhcmRha2VyIDI5IE9jdCA5OSAxMDowNjowMwogICAgLSAoZHNfYWdlbnQuaCwgc25tcF9hZ2VudC5jLCBzbm1wZC5jLCBzbm1wX3BhcnNlX2FyZ3MuYyk6CiAgICAgIC0gc25tcCBvdmVyIFRDUCBvcHRpb25zOiAtVCBUQ1AuCiAgICAgIC0gbmV3IHF1aWNrIHByaW50IG9wdGlvbnM6IC1xbyAtcWUgZm9yIG51bWVyaWMgb2lkcyBhbmQgZW51bXMuCgpoYXJkYWtlciAyOSBPY3QgOTkgMTA6MTM6NDQKICAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1UIGFuZCAtcVtvZV0KCmhhcmRha2VyIDI5IE9jdCA5OSAxMDoxNTowMQogICAgLShkZWZhdWx0X3N0b3JlLjN7LC5ofSk6IHJlbW92ZWQgZnJvbSBDVlMgc2luY2UgdGhleSBhcmUgYnVpbHQKCmhhcmRha2VyIDI5IE9jdCA5OSAxMDoxNTo0MwogICAgLSAoLmN2c2lnbm9yZSk6IGlnbm9yZSBkZWZhdWx0X3N0b3JlLjN7LC5ofQoKaGFyZGFrZXIgMjkgT2N0IDk5IDE2OjU4OjA3CiAgICAtICh0a21pYik6IG1ha2UgaXQgZG8gc25tcHYzLiAgQWRkZWQgbWFueSB0aGluZ3MgdG8gdGhlIG9wdGlvbnMgbWVudS4KCm1hcnogMjkgT2N0IDk5IDE5OjU0OjEwCiAgICAgKGFwcHMvc25tcF9wYXJzZV9hcmdzLmMsIHNubXBsaWIvc25tcHYzLmMpOiBtYWtlIGVuZ2luZUlEIHNldHVwIGNvbmRpdGlvbmFsIG9uIGFwcCB0eXBlIHRvIHByZXZlbnQgYXBwcyBmcm9tIGVhc2lseSBlbmRpbmcgdXAgd2l0aCB0aGUgc2FtZSBlbmdpbmVJRCBhcyBhZ2VudCBvbiBzYW1lIGhvc3QKCmhhcmRha2VyICAxIE5vdiA5OSAxMzoxODowMAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgbWliLmMsIHNubXBfYWxhcm0uYyk6CiAgICAgIC0gZG9uJ3QgYnJlYWsgb2lkcyBpbnRvIHBpZWNlcyBpZiBxdWlja19wcmludCBpcyB0dXJuZWQgb24uCiAgICAgIC0gZGl0dG8gaWYgdGhlIG5ldyBkZWZhdWx0X3N0b3JlIG9wdGlvbiBpcyB0dXJuZWQgb24uCiAgICAgIC0gbWFkZSBhIGRlZmF1bHRfc3RvcmUgb3B0aW9uIHRvIG5vdCB1c2Ugc2lnYWxybSBmb3Igc25tcF9hbGFybXMuCgpoYXJkYWtlciAgMiBOb3YgOTkgMDk6NTc6MzEKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBvdGhlciBoZWFkZXIgZmlsZXMgbmVlZGVkIGJ5IFNOTVAucG0uCgptc2xpZmNhayAgMiBOb3YgOTkgMTU6Mzc6MDUKICAgIFVzZSBIQVZFX1NUREFSR19IIHdoZW4gZGVjaWRpbmcgdG8gdXNlIHZhcmFyZ3MgdnMgQU5TSS1DIHByb3RvdHlwZXMuCgptc2xpZmNhayAgMiBOb3YgOTkgMTU6NDY6MDgKICAgIEluc3RhbGwgc25tcF9hZ2VudF9hcGkuMwoKbXNsaWZjYWsgIDMgTm92IDk5IDA2OjExOjAzCiAgICBkZWNsYXJlIGZpbmRfYmVzdF90cmVlX25vZGUgZm9yIE1TVkMgYnVpbGQuCgptc2xpZmNhayAgMyBOb3YgOTkgMDY6NDk6MzAKICAgIE5lYXIgbGluZSA2NjMgOiBjbG9zZShmZCkgYmVmb3JlIGludm9raW5nIHdhaXRfb25fZXhlYwoKbXNsaWZjYWsgIDMgTm92IDk5IDEzOjE4OjU5CiAgICBGb2xsb3dpbmcgY2FsbCB0byBmZG9wZW4gKG5lYXIgZ2V0X2V4ZWNfb3V0cHV0KSwgZG8gbm90IGNsb3NlKGZkKS4KCm1zbGlmY2FrICAzIE5vdiA5OSAxMzoyMDoxNgogICAgRml4IGJ1aWxkIHByb2JsZW0gb24gTGludXggUmVkSGF0IDYuMCA6IGtleSBvZmYgR05VX0xJQlJBUlkgdmFsdWUuCgptc2xpZmNhayAgNCBOb3YgOTkgMDI6NDI6MTUKICAgIFBhdGNoIHRvIGJ1aWxkIEJTRC9PUyA0LjAuMTsgZnJvbSBCZXJ0IERyaWVodWlzIC0tIGRyaWVodWlzQHBsYXliZWluZy5vcmcKCm1zbGlmY2FrICA0IE5vdiA5OSAwNDoxNDoyOAogICAgTW9yZSBTVERDX0hFQURFUlMgY2xlYW51cDogdXNlIEhBVkVfU1RSSU5HX0gsIEhBVkVfU1RETElCX0ggaW5zdGVhZC4KCm1zbGlmY2FrICA0IE5vdiA5OSAwNDozMzozMgogICAgQ2hhbmdlIGV4YW1wbGUgYXdheSBmcm9tIFNURENfSEVBREVSUy4KCm1zbGlmY2FrICA0IE5vdiA5OSAwNTowODozMQogICAgRXZlcnkgI2RlZmluZSBpcyBnaXZlbiBhIHZhbHVlOyBzZXQgdG8gMSBpZiBubyB2YWx1ZSB3YXMgc3BlY2lmaWVkLgoKbXNsaWZjYWsgIDQgTm92IDk5IDA1OjEzOjA1CiAgICBGaXJzdCBwYXNzIHN1cHBvcnQgZm9yIEZyZWVCU0QgNC4wIFtwcm9ibGVtcyB3aXRoIHByb2MgdGFibGUgbG9va3Vwc10uCgptc2xpZmNhayAgNCBOb3YgOTkgMDY6MTE6NDgKICAgIFVzZSBzeXNjdGwoQ1RMX1ZNLi4pIHRvIGdldCB2aXJ0dWFsIG1lbW9yeSBzdGF0cy4KCmhhcmRha2VyICA0IE5vdiA5OSAxMDowMzo0NwogICAgLSAoTWFrZWZpbGUuaW4sIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbWliLmMpOgogICAgICAtIGRlZmluZSBJTl9VQ0RfU05NUF9TT1VSQ0UgaW4gY29uZmlnLmggYnV0IG5vdCBpbiB1Y2Qtc25tcC1jb25maWcuaC4KICAgICAgLSBtb3ZlIHVjZC1zbm1wLWNvbmZpZy5oIHVwIGluIHRoZSBidWlsZCBvcmRlciBiZWZvcmUgc3ViZGlycy4KICAgICAgLSBNYWtlIGRlZmF1bHQgTUlCRElSUyBzZWFyY2ggcGF0aCBpbmNsdWRlICRIT01FLy5zbm1wL21pYnMuCiAgICAgIC0gTWFrZSBNSUJESVJTIHBhcnNpbmcgaGFuZGxlICRIT01FIHZhcmlhYmxlcyBpbiBpdC4KCmhhcmRha2VyICA0IE5vdiA5OSAxMDowNDo0MgogICAgLSAobWliMmMuY29uZik6IGluY2x1ZGUgaGVhZGVycyBmb3IgY29tcGlsYXRpb24gZm9yIGJvdGggaW50ZXJuYWwgYW5kCiAgICAgIGV4dGVybmFsIHRvIHRoZSB1Y2Qtc25tcCBzb3VyY2UuCgptc2xpZmNhayAgNCBOb3YgOTkgMTA6MTk6MzUKICAgIFJlZG8gRnJlZUJTRCA0LjA6IGRlZmluZSBmcmVlYnNkMyBpbiBzL2ZyZWVic2Q0Lmg7IHJlZHVjZSAiZGVmaW5lIiB0aHJhc2hpbmcuCgpoYXJkYWtlciAgNCBOb3YgOTkgMTA6Mjg6NDQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wY21kLjEpOiBtb3ZlIC1xIGZsYWdzIHRvIC1PLgoKbXNsaWZjYWsgIDQgTm92IDk5IDEzOjQzOjQwCiAgICBTcGVlZCB1cCBzcHJpbnRfdmFyaWFibGU6IGhhbHZlIHRoZSBudW1iZXIgb2YgY2FsbHMgdG8gZ2V0X3N5bWJvbC4KCm1zbGlmY2FrICA1IE5vdiA5OSAwNjoyMjo1MgogICAgU2F5IGdvb2RieWUgdG8gU05NUF9NQUxMT0MsIG1hbGxvY196ZXJvLCB4Y2FsbG9jLCB4bWFsbG9jLCBhbmQgeHN0cmR1cC4KICAgIFJlc3BlY3RpdmVseSByZXBsYWNlZCB3aXRoIGNhbGxvYywgY2FsbG9jLCBjYWxsb2MsIG1hbGxvYywgYW5kIHN0cmR1cC4KCm5iYSAgOSBOb3YgOTkgMDE6NTA6MDkKICAgIC0gbWliLmMscGFyc2UuYzogbWFrZSBlcnJvciByZXBvcnRpbmcgaW4gcGFyc2VyIHdvcmsgYWNjb3JkaW5nIHRvIHNwZWMgKC1QZSkKICAgIAlzaG93IGRlZmluaW5nIG1vZHVsZXMgaW4gc25tcHRyYW5zbGF0ZSAtZAogICAgCXVzZSBkc190b2dnbGVfYm9vbGVhbgoKbmJhICA5IE5vdiA5OSAxMjo1OTo1MgogICAgLSBzbm1wdHJhcGQuYyxzbm1wdHJhcGRfaGFuZGxlcnMuYzogbWFrZSBpdCBjb21waWxlIHdpdGggVkMrKyA1LjAKICAgIAkoYnV0IG5vIGhhbmRsZXJzICh5ZXQpKQoKaGFyZGFrZXIgIDkgTm92IDk5IDEzOjAyOjE3CiAgICAtIChzbm1wZC5jKTogZml4IC1ILgoKaGFyZGFrZXIgIDkgTm92IDk5IDEzOjAyOjQxCiAgICAtICh1Y2Rfc25tcC5oKTogcmVxdWlyZSB0aGUgREVNTy1NSUIgKGp1c3QgZm9yIHR1dG9yaWFsIHB1cnBvc2VzKS4KCmhhcmRha2VyICA5IE5vdiA5OSAxMzowOToyMQogICAgLSAodmFjbV92YXJzLmMsIHZhY21fdmFycy5oKTogc2ltcGxlIG5ldyAuY29uZiB0b2tlbnM6IHJvY29tbXVuaXR5LCByd2NvbW1pdHkuCgpoYXJkYWtlciAgOSBOb3YgOTkgMTM6MDk6NDAKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCB0aGUgREVNTy1NSUIuCgpuYmEgIDkgTm92IDk5IDE1OjE2OjAzCiAgICAtIHZhcmlvdXM6IGFkYXB0IHRvb2xzIHRvIHVzZSBnZXRvcHQgKGFuZCBwdXQgb25lIGluIGZvciBXaW4zMikKCm5iYSAgOSBOb3YgOTkgMjI6MjA6NTIKICAgIC4gc25tcF9wYXJzZV9hcmdzLmM6IGEgZ2xpdGNoIGluIHRoZSBjb252ZXJzaW9uIHRvIGdldG9wdCAodGhhbmtzIHRvCiAgICAJZHJpZWh1aXNAcGxheWJlaW5nLm9yZykKCm5iYSAgOSBOb3YgOTkgMjM6MzA6MDMKICAgIC0gZ2V0b3B0Lmg6IGFyZ3VtZW50cyB0byBnZXRvcHQgZGlkIG5vdCBtYXRjaCB0aG9zZSBpbiBnZXRvcHQuYwoKbmJhIDEwIE5vdiA5OSAwODozMDoxMwogICAgLSB3aW4zMi8qOiBmaXhlcyB0byB0aGUgVkMrKyBidWlsZCBwcm9qZWN0cwoKbmJhIDEwIE5vdiA5OSAwODozMjowMAogICAgLSB3aW4zMi8qOiBWQysrIHByb2plY3QgdXBkYXRlcwoKZGF2ZXMgMTAgTm92IDk5IDA4OjU3OjAwCiAgICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jKTogT25seSBzZXQgdXAgdHJhcCBzaW5rcyBvbiB0aGUgbWFzdGVyIGFnZW50CgpkYXZlcyAxMCBOb3YgOTkgMDg6NTg6MzgKICAgIC0gKGFnZW50L2FnZW50X3RyYXAuW2NoXSk6IG1pbm9yIHJlLXN0cnVjdHVyZSB0byBhbGxvdyBzdWJhZ2VudCB0cmFwICJzaW5rcyIKCmRhdmVzIDEwIE5vdiA5OSAwODo1OTo0NQogICAgLSAoYWdlbnR4L3N1YmFnZW50LmMpOiBGaXggQWdlbnRYIG5vdGlmeSBzdXBwb3J0CgpuYmEgMTAgTm92IDk5IDEyOjIwOjQ3CiAgICAtIHdpbjMyLyouZHNwOiB5ZXQgYW5vdGhlciByb3VuZCBvZiBtYWtpbmcgdGhpcyBjcmFwIHdvcmsKCm5iYSAxMCBOb3YgOTkgMTU6Mjk6MTgKICAgIC0gYXBwcy8qOiBjaGFuZ2VzIGZvciBnZXRvcHQgdXNhZ2UsIGFuZCByZXdvcmtpbmcgb2Ygc25tcF9wYXJzZV9hcmdzCgpuYmEgMTAgTm92IDk5IDIyOjEyOjA4CiAgICAtIHdpbjMyLyo6IGNsZWFuIHVwIHJlcG9zaXRvcnkgZmlsZXMsIGFuZCBhZGQgcHJvcGVyIC5jdnNpZ25vcmUgZmlsZXMKCmRhdmVzIDExIE5vdiA5OSAwMzozNzo1OQogICAgLSAoYWdlbnR4L2NsaWVudC5jKTogU2lsbHkgdHlwbyBpbiBzdGFydCB0aW1lIHN5bmNocm9uaXNhdGlvbgoKbmJhIDExIE5vdiA5OSAyMjoxNDoyNwogICAgLSBzbm1wY21kLjE6IHVwZGF0ZSBtYW4gcGFnZSB0byBjb3JyZXNwb25kIHRvIHRoZSBuZXcgZ2V0b3B0IHNpdHVhdGlvbgogICAgCU5vdGU6IGV2ZW4gdGhvdWdoIHNvbWUgb3B0aW9ucyBoYXZlIGJlZW4gcmVtb3ZlZCBmcm9tIHRoaXMKICAgIAlwYWdlLCB0aGV5IHN0aWxsIHdvcmshCgpuYmEgMTEgTm92IDk5IDIyOjUwOjAwCiAgICAtIHNubXBfcGFyc2VfYXJncy5jLCBtaWIuYzogYWxpZ25tZW50IG9mIG9wdGlvbiBjb2RlLgogICAgCVNvbWUgZW5oYW5jZW1lbnRzIHRvIHRoZSBzbm1wdHJhbnNsYXRlIC1kIG91dHB1dC4KCmRhdmVzIDEyIE5vdiA5OSAwODo0NjozMwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogUHJvdmlkZSBhIHVuaXF1ZSBJRCBmb3IgYWxsIGluY29taW5nIFBEVXMKCm1hcnogMTIgTm92IDk5IDEzOjAxOjA4CiAgICAgKGxjZF90aW1lLltjaF0sIHNubXB1c20uYyk6IGZpeCBlbmdpbmV0aW1lIHVwZGF0ZSBhbGdvcml0aG0gdG8gY29uZm9ybSB0byBzcGVjIHJmYzI1NzQgMy4yLjcuYi4xCgpuYmEgMTQgTm92IDk5IDAxOjQ4OjUxCiAgICAtIHNubXB0YWJsZSwgc25tcF9wYXJzZV9hcmdzOiBhbGxvdyB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgb3B0aW9ucyB0bwoKbmJhIDE0IE5vdiA5OSAwMTo1MTo1NwogICAgLSBzbm1wdGFibGU6IGFkZCBpbiB0aGUgYXBwbGljYXRpb24gc3BlY2lmaWMgc25tcHRhYmxlIG9wdGlvbnMgYmV0d2VlbgogICAgCXRoZSBub3JtYWwgb3B0aW9ucy4KCm5iYSAxNCBOb3YgOTkgMDE6NTM6MTYKICAgIC0gc25tcGJ1bGtnZXQ6IG5ldyB0b29sIHRvIGlzc3VlIGEgc2luZ2xlIEdFVEJVTEsgcmVxdWVzdAoKbmJhIDE0IE5vdiA5OSAwMTo1NDoxNwogICAgLSBzbm1wX3BhcnNlX2FyZ3M6IGNoYW5nZXMgdG8gc3VwcG9ydCBtdWx0aS12YWx1ZWQgb3B0aW9ucwoKbmJhIDE0IE5vdiA5OSAwMTo1OToyMAogICAgLSBtaWJzLyosIHZhY21fdmFycy5oOiB1cGRhdGUgdGhlIG1pYiBmaWxlcyB0byByZmMgMjU3MS0yNTc1LiBBbHNvIGFkZAogICAgCVNOTVBfQ09NTVVOSVRZX01JQiBmcm9tIHRoZSBjb2V4IGRyYWZ0LgoKbmJhIDE0IE5vdiA5OSAwMjowMDowMAogICAgLSB2YWNtX3ZhcnMuYzoga2lsbCBhIHdhcm5pbmcKCm5iYSAxNCBOb3YgOTkgMDI6MDE6MzcKICAgIC0gcGFzcy5jLCBzbm1wZC5jb25mLjUuZGVmOiBhZGQgYW4gVU5TSUdORUQgcmV0dXJuIHR5cGUKCm5iYSAxNCBOb3YgOTkgMDI6MDQ6NDYKICAgIC0gbWliLmMsIHNubXB0cmFuc2xhdGUuYzogbW92ZSB0aGUgTUlCOmlkIGhhbmRsaW5nIGluc2lkZSByZWFkX29iamlkIGZvcgogICAgCWNvbnNpc3RlbmN5LiBBbHNvIGZpeGVzIGEgYnVmZmVyIG92ZXJydW4gaW4gbWliLmMKCm5iYSAxNCBOb3YgOTkgMDI6NDI6MzgKICAgIC0gU05NUHYyLUNPTkYudHh0OiBjb21tZW50IG91dCB0aGUgSU1QT1JUIGNsYXVzZQoKbmJhIDE0IE5vdiA5OSAwNjoxMjowMwogICAgLSBzbm1wdHJhcGQuYzogYWRkIHRoZSBuZXcgY29tbW9uIC1PIG9wdGlvbiBzZXQKCm5iYSAxNCBOb3YgOTkgMDY6MTU6MDEKICAgIC0gc25tcHRyYXBkLjg6IGFkZCB0aGUgbmV3IGNvbW1vbiAtTyBvcHRpb24gc2V0CgpuYmEgMTQgTm92IDk5IDA2OjMyOjI1CiAgICAtIGlwYzY6IEFkZCB0aGUgSVB2NiBjb2RlIGZyb20gdGhlIEthbWUgcHJvamVjdC4gSSBoYXZlIG9ubHkgbWFzc2FnZWQKICAgIAlpdCBzbyBtdWNoIGFzIHRvIHN0aWxsIGNvbXBpbGUgb24gbm9uLUlQdjYgc3lzdGVtcywgYW5kIGRldGVjdAogICAgCUxpbnV4LCBJTlJJQSwgU29sYXJpcyBJUHY2LiBObyBjb2RlIGZvciB0aGVtIHlldC4gT3JpZ2luYWwKICAgIAlhdXRob3I6IGl0b2p1bkBpaWpsYWIubmV0CgpkYXZlcyAxNSBOb3YgOTkgMDc6NTY6MDYKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRml4IGhhbmRsaW5nIG9mIGZhaWxlZCBHRVQvU0VUIHJlcXVlc3RzCgptc2xpZmNhayAxNSBOb3YgOTkgMDg6Mjk6MDYKICAgIEZpeCBkZXNjcmlwdGlvbiBvZiByZWFkX29iamlkIHJldHVybiB2YWx1ZS4KCm5iYSAxNSBOb3YgOTkgMTQ6MDA6MjAKICAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IGZ1cnRoZXIgZXJyb3IgY2hlY2tpbmcsIGNvdXJ0ZXN5IG1zbGlmY2FrCiAgICAgIHNubXBidWxrZ2V0LmM6IG5lZWRzICNpbmNsdWRlIDxnZXRvcHQuaD4gKFRoYW5rcyB0byBSb2JlcnQgU3RvcnkpCgpuYmEgMTUgTm92IDk5IDE0OjAzOjM2CiAgICAtIG1pYnMvOiByZXBsYWNlIFJGQzEyNzEtTUlOLnR4dCB3aXRoIFJNT04tTUlCLnR4dCAoUkZDIDE3NTcgdmVyc2lvbikKCm5iYSAxNSBOb3YgOTkgMTQ6MDU6NTcKICAgIC0gcGFyc2UuYzogZml4IGEgc3BlbGxpbmcgZXJyb3IgaW4gdGhlIE1JQiByZXBsYWNlbWVudCB0YWJsZS4KCm5iYSAxNSBOb3YgOTkgMTQ6MDk6MjkKICAgIC0gLmN2c2lnbm9yZTogdXBkYXRlcyB0byBrZWVwIGN2cyBzaWxlbnQgYWJvdXQgZ2VuZXJhdGVkIGZpbGVzLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjE4OjQ2CiAgICAtIChGQVEsIFJFQURNRSk6IG5ldyBtaXJyb3IgaW4gQXVzdHJhbGlhLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjE5OjIyCiAgICAtIChtaWJfbW9kdWxlcy5jLCBzbm1wX3ZhcnMuYyk6IG1vdmUgc3ViYWdlbnRfcHJlX2luaXQoKSB0byBpbml0X2FnZW50KCkuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MTk6NDcKICAgIC0gKFRPRE8pOiBtZW1vcnkgaW50IC0+IHVpbnQuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjA6MTAKICAgIC0gKGhlYWRlcl9jb21wbGV4LmMpOiBzZXQgdG8gJ1wwJyBpbnN0ZWFkIG9mIE5VTEwgZm9yIC1XYWxsLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjIxOjA3CiAgICAtIChtaWIyYywgdGttaWIpOiByZW1vdmUgLXcuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjE6MjgKICAgIC0gKHNubXBfYWdlbnRfYXBpLjMpOiBkb24ndCBjYWxsIHN1YmFnZW50X3ByZV9pbml0KCkuCgpoYXJkYWtlciAxNSBOb3YgOTkgMTU6MjE6NTcKICAgIC0gKG1pYjJjLnN0b3JhZ2UuY29uZik6IGRlYnVnZ2luZyBzdGF0ZW1lbnRzIGluc2VydGVkLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjIyOjI0CiAgICAtIChhc24xLmMsIGFzbjEuaCk6IG5ldyBmdW5jdGlvbjogYXNuX2NoZWNrX3BhY2tldCgpLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjM2OjI2CiAgICAtIChzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMpOgogICAgICAtIGFkZCBkZWZhdWx0X3N0b3JlLmgKCmhhcmRha2VyIDE1IE5vdiA5OSAxNTozODoyNQogICAgLSAoZGVmYXVsdF9zdG9yZS5oLCBtaWIuYyk6IG1vdmUgbW9yZSBvcHRpb25zIHRvIHRoZSBkc18qIHJvdXRpbmVzLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE1OjQxOjM4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtb3ZlIG1vcmUgb3B0aW9ucyB0byB0aGUgZHNfKiByb3V0aW5lcy4KICAgICAgLSBpbXBsZW1lbnQgc3VwcG9ydCBmb3IgVENQIGJyb2tlbiBTTk1QIHBhY2tldHMgYnkgc3RvcmluZyBidWZmZXJzCiAgICAgICAgYW5kIGRlYWxpbmcgd2l0aCBwaWVjZXMgb2YgaW5jb21pbmcgZGF0YSB0aWxsIHdlIGhhdmUgYSBmdWxsIHBhY2tldC4KCm1zbGlmY2FrIDE1IE5vdiA5OSAxNjo0MzoyNQogICAgRG9uJ3QgYWRkIE5VTEwgdmFyYmluZCB3aGVuIEVORE9GTUlCVklFVyBpcyByZWFjaGVkLgoKaGFyZGFrZXIgMTUgTm92IDk5IDE3OjQxOjEwCiAgICAtIChzbm1wX2FnZW50LmMsIG1hc3Rlci5jLCBwcm90b2NvbC5jLCBwcm90b2NvbC5oLCBzdWJhZ2VudC5jLAogICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtYWtlIFRDUCBzdXBwb3J0IGJldHRlciBmb3IgYWdlbnR4LiAgU3RpbGwgaGFzIGEgcHJvYmxlbSAoSSBicm9rZSBhZ2VudHgpLgoKbXNsaWZjYWsgMTUgTm92IDk5IDIxOjU3OjM2CiAgICBGaXggYnVnIzc1OiBidWlsZCAtLXdpdGhvdXQtb3BhcXVlLXR5cGVzCgptc2xpZmNhayAxNiBOb3YgOTkgMDM6MzY6MDkKICAgIEZpeCBzcGVsbGluZyBtaXN0ZWFrLgoKbmJhIDE2IE5vdiA5OSAwNjoyMToyNQogICAgLSBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYW5zbGF0ZS5jLCBtaWIuYzogcmVkbyB0aGUgc25tcHRyYW5zbGF0ZSBvcHRpb25zCiAgICAJdG8gZm9sbG93IHRoZSBjb21tb24gb3B0aW9uIHNldC4gSXNzdWUgd2FybmluZ3Mgd2hlbiBzb21lb25lCiAgICAJdXNlcyB0aGUgb2xkIGZvcm0sIGFkdmlzaW5nIGFib3V0IHRoZSBuZXcuCgptc2xpZmNhayAxNiBOb3YgOTkgMDg6NDg6MzEKICAgIEVtYnJhY2UgYWxsIEhQLTkwMDAvNnh4LDd4eCwgOHh4IHNlcmllcyBwbGF0Zm9ybXMsIHdpdGhvdXQgcmVncmV0cy4KCmRhdmVzIDE2IE5vdiA5OSAwOToxMzo1OQogICAgLSAoc25tcGxpYi9hc24xLmMpOiBGaXggZW5jb2Rpbmcgb2Ygcm9vdCBPSURzLgoKaGFyZGFrZXIgMTYgTm92IDk5IDEwOjI0OjU5CiAgICAtIChwcm90b2NvbC5jKTogYWRkIHRoZSBoZWFkZXIgbGVuZ3RoIHRvIHRoZSBwYWNrZXQgbGVuZ3RoIGVzdGltYXRlLgoKaGFyZGFrZXIgMTYgTm92IDk5IDEwOjI2OjAyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCB0aGUgVDogZmxhZyBmb3IgLVQgdG8gZ2V0b3B0Cgptc2xpZmNhayAxNiBOb3YgOTkgMTQ6NDE6NTAKICAgIE1TVkMgdG91Y2h1cHM6CiAgICBBZGRlZCBzbm1wdHJhcGQgcHJvamVjdCAuRFNQIGZpbGU7IEFsbCAuRFNbUFddIGZpbGVzIENSLUxGIGxpbmUgdGVybWluYXRlZDsKICAgIEZpeCB3YXJuaW5ncyBpbiBhc24xLmMgYW5kIHNubXBfYXBpLmM7IFJlbW92ZSB1bnVzZWQgdmFyIGluIHNubXB0cmFuc2xhdGUuYy4KCm1zbGlmY2FrIDE2IE5vdiA5OSAxNDo1Njo1OQogICAgQnVpbGQgd2l0aCBnZXRvcHQuCgptc2xpZmNhayAxNyBOb3YgOTkgMDU6NTk6MTUKICAgIFJlcGxhY2UgdV9pbnQxNl90IHdpdGggbW9yZSB1bml2ZXJzYWxseSBzdXBwb3J0ZWQgdV9zaG9ydC4KCm1zbGlmY2FrIDE3IE5vdiA5OSAwNzozNTowMwogICAgUHJvamVjdCBmaWxlIGZvciBidWlsZGluZyBzbm1wYnVsa2dldCB1c2luZyBNU1ZDKysgZ3JhdGlzIFJvYmVydCBTdG9yeS4KCm1zbGlmY2FrIDE3IE5vdiA5OSAwNzozNjo1OAogICAgQWRkIHNubXBidWxrZ2V0IHRvIGxpc3Qgb2YgYXBwcyB0byBidWlsZC4KCmhhcmRha2VyIDE3IE5vdiA5OSAxMTo1NTo0MQogICAgLSAoZHNfYWdlbnQuaCwga2VybmVsLmMsIHNubXBkLmMsIHNubXBkLjEuZGVmKToKICAgICAgLSBydW4gdGltZSByb290bGVzcyBydW5uaW5nIHN1cHBvcnQgZm9yIHNubXBkLCBieSByZXFlc3Qgb2YgSm9lLiAoLXIpCgpoYXJkYWtlciAxNyBOb3YgOTkgMTI6MjE6MjYKICAgIC0gKHNubXB0b3NxbCk6CiAgICAgIC0gbW92ZSB0byBOZXQ6OlNNVFAuCiAgICAgIC0gTWFrZSBuZXcgYXV0aGdyb3VwIGFuZCBhdXRoaG9zdCB0YWJsZXMgdG8gY29udGFpbiBTTk1QOjpTZXNzaW9uIGRlZmF1bHRzLgoKaGFyZGFrZXIgMTcgTm92IDk5IDEzOjA1OjAwCiAgICAtIChjb25maWd1cmUuaW4pOiB1cGRhdGUgdGhlIHNvIExEIGZvciBsaW51eCB0byAkKENDKS4KCmhhcmRha2VyIDE3IE5vdiA5OSAxMzowODoxNwogICAgLSAoY29uZmlndXJlKTogdXBkYXRlLgoKaGFyZGFrZXIgMTcgTm92IDk5IDEzOjA5OjE0CiAgICAtIChtaWIyYy5zdG9yYWdlLmNvbmYpOiB1cGRhdGUuICBEZWFscyB3aXRoIFJvd1N0YXR1cyBvYmplY3RzIGJldHRlci4KCm5iYSAxNyBOb3YgOTkgMjE6NTE6MTkKICAgIC0gZGVmYXVsdF9zdG9yZS5jOiBkc190b2dnbGVfYm9vbGVhbiBtaXNzZWQgYSBtYXNrCgptc2xpZmNhayAxOCBOb3YgOTkgMTc6NTg6NDcKICAgIENoZWNrLWluIGFnZW50IGNoYW5nZXMgdG8gc3VwcG9ydCBXaW4zMiBhZ2VudCBidWlsdCB3aXRoIE1TVkMrKy4KICAgIFRoYW5rcyB0byBSb2JlcnQgU3RvcnkuCgptc2xpZmNhayAxOCBOb3YgOTkgMTg6MTQ6NTgKICAgIE1vcmUgdG91Y2h1cCBwZXIgTVNWQysrIFdpbjMyIGFnZW50IHdvcmsuCgptc2xpZmNhayAxOCBOb3YgOTkgMTg6MjA6NDUKICAgIE1vcmUgTVNWQysrIFdpbjMyIGFnZW50IGZpbGVzLCBncmF0aXMgUm9iZXJ0IFN0b3J5LgoKZGF2ZXMgMTkgTm92IDk5IDExOjA2OjI2CiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5oKTogUHJvdmlkZSBtaXNzaW5nIGluZGV4IGFsbG9jYXRpb24gZGVmaW5lcy4KCmhhcmRha2VyIDE5IE5vdiA5OSAxMzo0NzowMQogICAgLSAobWliMmMuc3RvcmFnZS5jb25mKTogZml4IG1pYjJjLnN0b3JhZ2UuY29uZi4KCmhhcmRha2VyIDE5IE5vdiA5OSAxNDoyMDoyNQogICAgLSAoc25tcF92YXJzLmMsIHNubXBkLmMsIHNubXBfYWxhcm0uaCwgc25tcF9hcGkuYyk6CiAgICAgIC0gbWFrZSBzbm1wX3NlbGVjdF9pbmZvIHBvc3NpYmx5IGhhbmRsZSBhbGFybSB0aW1lcnMuCiAgICAgIC0gbWFrZSBzbm1wZCB1c2UgdGhlbSBhbmQgY2FsbCBzbm1wX3J1bl9hbGFybXMoKS4KCmhhcmRha2VyIDE5IE5vdiA5OSAxNToyNDoxNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzZWRzY3JpcHQuaW4sCiAgICAgIGRpc2suYywgZGlzay5oLCBVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBBbmR5IEhPT0Q6CiAgICAgIC0gbW9uaXRvciBkaXNrIGlub2RlIHBlcmNlbnRhZ2VzLgoKbmJhIDIyIE5vdiA5OSAwNToyNzoxNQogICAgLSBjb25maWd1cmUuaW46IGNvbmZpZ3VyZSB0ZXN0IGZvciBuZXRpbmV0L2lwLmgKCm5iYSAyMiBOb3YgOTkgMDU6Mjg6MDkKICAgICBzbm1wX2xvZ2dpbmcuYzogb25seSB0aW1lc3RhbXAgZWZ0ZXIgYSBuZXdsaW5lCgpuYmEgMjIgTm92IDk5IDA1OjI4OjQ1CiAgICAtIHNubXBkLmM6IHJlaW5zdGF0ZSBzbm1wZCAtYSBmdW5jdGlvbmFsaXR5CgpuYmEgMjIgTm92IDk5IDA1OjI5OjM3CiAgICAtIHBhc3MuYzogcmVtb3ZlIGEgY29uc3QgY2FzdGluZyB3YXJuaW5nCgpuYmEgMjIgTm92IDk5IDA1OjMyOjA1CiAgICAtIElQVjYtVENQLU1JQiwgSVBWNi1VRFAtTUlCLCBpcHY2LmMsIHRjcC5jOiBtb3ZlIHRoZSBJUHY2IHRjcCBhbmQgdWRwCiAgICAJdGFibGVzIHRvIHRoZWlyIHByb3BlciBwb3NpdGlvbiBpbiB0aGUgdHJlZSwgYWNjb3JkaW5nIHRvIHRoZSBSRkMuCgpuYmEgMjIgTm92IDk5IDA2OjU5OjQ2CiAgICAtIGlwdjYuYzogdXBncmFkZSB0byB0aGUgY3VycmVudCBLYW1lIHBhdGNoCgpuYmEgMjIgTm92IDk5IDA3OjE2OjU5CiAgICAtIGlwdjYuYzogc29tZSBtb3JlIEFOU0kgcHJvdG90eXBlcwoKZGF2ZXMgMjIgTm92IDk5IDA3OjMwOjA2CiAgICAtIChhZ2VudF9yZWdpc3RyeS5bY2hdIGFnZW50eC9jbGllbnQuW2NoXSBhZ2VudHgvbWFzdGVyX2FkbWluLmMpOgogICAgICBJbmRleCBkZS1hbGxvY2F0aW9uLCBhbmQgQWdlbnRYIGluZGV4IHN1cHBvcnQuCgptc2xpZmNhayAyMiBOb3YgOTkgMDg6MjA6MjkKICAgIFJldHJ5IGFkZCBNU1ZDKysgcHJvamVjdCBmaWxlLgoKbXNsaWZjYWsgMjIgTm92IDk5IDA4OjIxOjU4CiAgICBBZGQgQ1ZTIGlnbm9yZSBsaXN0IGZvciB3aW4zMi9saWJhZ2VudC4KCmhhcmRha2VyIDIyIE5vdiA5OSAwODoyOTozMwogICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIFJvYmVydCBTdG9yeToKICAgICAgLSBBZGRlZCBhYmlsaXR5IHRvIHVzZSBNSUIgdG8gcXVlcnkgdGFibGVzIHdpdGggbm9uLXNlcXVlbnRpYWwgY29sdW1uIE9JRHMuCiAgICAgIC0gQWRkZWQgY29kZSB0byBoYW5kbGUgc3BhcnNlIHRhYmxlcy4KCmhhcmRha2VyIDIyIE5vdiA5OSAwOTowMDo0NQogICAgLSAodXNtVXNlci5jKTogZml4IG9pZCAtPiBjaGFyIGNvbnZlcnNpb25zIHBvaW50ZWQgb3V0IGJ5IE1pY2hhZWwgU2xpZmNhay4KCmhhcmRha2VyIDIyIE5vdiA5OSAwOTowNzozNAogICAgLSAoUkVBRE1FKTogYWRkZWQgbW9yZSBwZW9wbGUgdG8gdGhlIHRoYW5rcyBsaXN0LgoKaGFyZGFrZXIgMjIgTm92IDk5IDA5OjE4OjE1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaG9zdF9yZXMuaCwgaHJfZmlsZXN5cy5jLCBocl9zdG9yYWdlLmMsCiAgICAgIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBic2RpNC5oKTogUGF0Y2ggZnJvbSBCZXJ0IERyaWVodWlzOgogICAgICAtIGJzZGkgc3VwcG9ydCBmb3IgdGhlIGhvc3QgcmVzb3VyY2VzIG1pYi4KCmhhcmRha2VyIDIyIE5vdiA5OSAwOToyNDo1MQogICAgLSAoVDAxNnNubXB2MmNnZXRmYWlsLCBUMDE3c25tcHYyY3RvdjFnZXRmYWlsKTogdXBkYXRlIHRlc3RzIGZvciBuZXcKICAgICAgZXJyb3IgbWVzc2FnZXMuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTI6MzA6MDUKICAgIC0gKHZtc3RhdC5jLCB2bXN0YXRfZnJlZWJzZDIuYyk6IHVzZSBoZWFkZXJfZ2VuZXJpYyBub3QgaGVhZGVyX3NpbXBsZV90YWJsZQoKaGFyZGFrZXIgMjIgTm92IDk5IDEyOjQ5OjIxCiAgICAtICh2YWNtX3ZhcnMuYywgcGFzcy5jKTogZml4IG9pZCAtPiBjaGFyIGNvbnZlcnNpb25zLgoKbmJhIDIyIE5vdiA5OSAxMjo1NDowOAogICAgLSAqOiBjaGFuZ2UgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHRoZSBjb25maWcgcGFyc2VyIGZ1bmN0aW9ucyB0byBhCiAgICAJY29uc3Qgc3RyaW5nCgpoYXJkYWtlciAyMiBOb3YgOTkgMTM6MDU6MDUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgdGNwLmMpOiBQYXRjaAogICAgICBmcm9tIEdhcnJldHQgV29sbG1hbjoKICAgICAgLSBGcmVlQlNEIDQueCBmaXhlcy4KCmhhcmRha2VyIDIyIE5vdiA5OSAxNjo0ODo1NAogICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmUgY3JlYXRpb24gb2YgaW5pdGlhbCBhbmQgdGVtcGxhdGUqIHVzZXJzLgoKaGFyZGFrZXIgMjIgTm92IDk5IDE2OjUwOjI1CiAgICAtICh2YWNtX3ZhcnMuYywgdXNtVXNlci5jKTogbmV3IGNvbmZpZyB0b2tlbnMgYWxsb3dpbmcgZWFzeSB1c2VyIGFuZAogICAgICB2YWNtL3VzZXIgY29uZmlndXJhdGlvbiBhbmQgc2V0dXAuCgpoYXJkYWtlciAyMiBOb3YgOTkgMTc6MDI6MTEKICAgIC0gKHNjYXBpLmMpOiBmaXggbGVuZ3RoIGNoZWNrIG9mIGtleSBzcGFjZS4KCmhhcmRha2VyIDIyIE5vdiA5OSAxNzo1MjozNgogICAgLSAoUkVBRE1FLnNubXB2Myk6IHVwZGF0ZSB0byByZWZsZWN0IG5ldyBhbmQgZWFzaWVyIC5jb25mIG1lY2hhbmlzbXMuCgpuYmEgMjMgTm92IDk5IDAxOjIzOjE2CiAgICAtIGlwdjYuaDogcmVtb3ZlIGFuIF9fUCB0aGF0IGhhZCBzbmVha2VkIGluCgpuYmEgMjMgTm92IDk5IDAxOjI0OjM3CiAgICAtIElQU0VDLU1JQi50eHQ6IGNoYW5nZSBzb21lIHVuZGVybGluZXMgaW50byBkYXNoZXMsIGFuZCByZXBhaXIgdGhlCiAgICAJOjo9IChtYXliZSBJIHNob3VsZCBoYXZlIGxvb2tlZCBhdCB0aGlzIGZpbGUgYmVmb3JlIGFkZGluZyBpdCA6LSkpCgpuYmEgMjMgTm92IDk5IDAxOjI2OjI2CiAgICAtIHBhc3NfcGVyc2lzdC5jOiBmaXggc29tZSBhcmd1bWVudHMgKGludCA9PiBzaXplX3QpLiBUaGFua3MgdG8KICAgIAlBbnRob255IFNoaXBtYW4gPGFzaGlwbWFuQGVyZ2dyb3VwLmNvbT4KCmRhdmVzIDIzIE5vdiA5OSAwMTozNzoyOQogICAgLSAoaG9zdC9ocl9zd3J1bi5jKTogRml4IGxpbnV4IHByb2Nlc3MgbWVtb3J5IHVzYWdlIGZpZ3VyZXMuCiAgICAJKFJlcG9ydGVkIGJ5IE1pdGNoIFNoaWVsZHMpCgpkYXZlcyAyMyBOb3YgOTkgMDI6MTE6NDMKICAgIC0gKGhvc3QvaHJfc3RvcmFnZS5jIGhvc3QvaHJfc3dydW4uYyk6IEd1YXJkIGFnYWluc3QgY2FsY3VsYXRpb24gb3ZlcmZsb3cKCm5iYSAyMyBOb3YgOTkgMDI6MjA6MTMKICAgIC0gc25tcF9hZ2VudC5jOiAjaW5jbHVkZSA8dW5pc3RkLmg+IGZvciBzZWxlY3QgcHJvdG90eXBlCgpkYXZlcyAyMyBOb3YgOTkgMDU6MjE6NTgKICAgIC0gKHNubXBfYWdlbnQuYyBhZ2VudHgvc3ViYWdlbnQuYyk6CiAgICAgICBNYWtlIG1haW4gc2Vzc2lvbiBzdHJ1Y3R1cmUgdmlzaWJsZSB0aHJvdWdob3V0IHRoZSBhZ2VudCwKICAgICAgIGFuZCB1c2UgdGhpcyBmb3IgQWdlbnRYIHN1YmFnZW50IGFzIHdlbGwuCgpkYXZlcyAyMyBOb3YgOTkgMDU6NDA6MDkKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LltjaF0pOgogICAgICAtIE1ha2UgaW5kZXggcmVnaXN0cmF0aW9uIEFQSSBtb3JlIGltbWVkaWF0ZWx5IGNvbnZlbmllbnQKICAgICAgLSBBc3NvY2lhdGUgc3VjaCByZWdpc3RyYXRpb25zIHdpdGggdGhlIG1haW4gc2Vzc2lvbgogICAgICAtIG5ldyByb3V0aW5lIHRvIHVucmVnaXN0ZXIgYWxsIGluZGV4ZXMgZm9yIGEgZ2l2ZW4gc2Vzc2lvbgogICAgICAtIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBBTlkgaW5kZXggYW5kIE5FVyBpbmRleAogICAgICAtIGNsZWFuIHVwIGFzc29ydGVkIGNvbXBpbGVyIHdhcm5pbmdzCgpoYXJkYWtlciAyMyBOb3YgOTkgMTc6NTE6NDQKICAgIC0gKHNubXB0b3NxbCk6IGZpeCBmcm9tIGFkZHJlc3MgbGluZSwgb3RoZXIgbWlzYyBmaXhlcy4KCmRhdmVzIDI0IE5vdiA5OSAwOTowMzowMAogICAgLSAoYWdlbnR4L21hc3Rlcl9hZG1pbi5jKTogUmVsZWFzZSBhbGxvY2F0ZWQgaW5kZXhlcyBvbiBzdWJhZ2VudCBzaHV0ZG93bi4KCmhhcmRha2VyIDI0IE5vdiA5OSAwOTowOTowOAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1c21Vc2VyLmMsCiAgICAgIGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIGxjZF90aW1lLmMsIHNjYXBpLmgsIHRvb2xzLmMsCiAgICAgIGtleW1hbmFnZXRlc3QuYywgc2NhcGl0ZXN0LmMsIGNvbmZpZy5oKToKICAgICAgLSBmb3JjZSAtLWVuYWJsZS1kZXZlbG9wZXIgZm9yIENWUyBjaGVja291dHMuCiAgICAgIC0gcmVtb3ZlIGFsbCByZWZlcmVuY2VzIHRvIEtNVC4KCmhhcmRha2VyIDI0IE5vdiA5OSAwOToxNjowMgogICAgLSAoSU5TVEFMTCk6IGNoYW5nZSBlZGl0aW5nIG9mIGNvbmZpZy5oIG5vdGUuCgpoYXJkYWtlciAyNCBOb3YgOTkgMTA6NDM6MDgKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBGcmFuayBTdHJhdXNzOgogICAgICAtIGFsbG93IHNlcGVyYXRpb24gb2YgbWFzayB3aXRoIGJvdGggLiBhbmQgOi4KCm1zbGlmY2FrIDI0IE5vdiA5OSAxMTowNzowNQogICAgRml4IEJVRyM1NyB1c2luZyBtb2RpZmllZCBwYXRjaCBzdXBwbGllZCBieSB6YW55QHRyaXEubmV0LgoKbXNsaWZjYWsgMjQgTm92IDk5IDExOjA3OjQ5CiAgICBGaXggQlVHIzU3IHVzaW5nIDIvMyBvZiBwYXRjaCBzdXBwbGllZCBieSB6YW55QHRyaXEubmV0LgoKbmJhIDI1IE5vdiA5OSAxNDozMjo0NwogICAgLSBzbm1wX2FwaS5jLCBhZ2VudF90cmFwLmMsIHNubXBfYWdlbnQuYywgc25tcF9taWIuaCwgc25tcF9taWIuYzoKICAgIAlmaXggbWlzYWxpZ25tZW50IG9mIHN0YXRpc3RpY3MgY291bnRlcnMKCm5iYSAyNSBOb3YgOTkgMTQ6MzM6MTUKICAgIC0gc25tcF9taWIuaDogZml4IG1pc2FsaWdubWVudCBvZiBzdGF0aXN0aWNzIGNvdW50ZXJzCgpuYmEgMjUgTm92IDk5IDE0OjUyOjU3CiAgICAtIHVzbVVzZXIuYzogbmV3IHVzZXIgaXMgbm90IGFkZGVkIHVubGVzcyBib3RoIGF1dGggYW5kIHByaXYgaXMgc3BlY2lmaWVkCiAgICAJb24gY3JlYXRlVXNlciBkaXJlY3RpdmUKCm5iYSAyNSBOb3YgOTkgMTQ6NTY6MTIKICAgIC0gZGVmYXVsdHNfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcF9wYXJzZV9hcmdzLmM6IGFkZCBkZWZDb21tdW5pdHkKICAgIAlkaXJlY3RpdmUKICAgIC0gc25tcF9hcGkuaCwgc25tcF9hcGkuYzogYWRkIGVycm9yY29kZSBmb3IgbWFsbG9jIGZhaWx1cmUKCm5iYSAyNSBOb3YgOTkgMTQ6NTc6NTcKICAgIC0gbWliLmM6IGtpbGwgeWV0IGFub3RoZXIgc2lsbHkgd2FybmluZyBmcm9tIGdjYwoKbmJhIDI2IE5vdiA5OSAxMToxODoyMwogICAgLSBkZWZhdWx0X3N0b3JlLmM6IGFsdGhvdWdoIHJlYWRfY29uZmlnIGlzIGNhc2UgaW5zZW5zaXRpdmUsIGRzX2hhbmRsZV9jb25maWcKICAgIAl3YXMgbm90LiBBdCB0aGUgc2FtZSB0aW1lIGl0IGZhaWxlZCB0byByZXBvcnQgdGhlIHByb2JsZW0gdGhhdAogICAgCWl0IHdhcyBjYWxsZWQgYnV0IGRpZG4ndCBrbm93IHdoYXQgdG8gZG8uCgptYXJ6IDI3IE5vdiA5OSAwNjozMToxMQogICAgIChhZ2VudC9rZXJuZWwuYywgdGVzdGluZy9ldmFsX3Rvb2xzLnNoKTogZml4IC1yIHN3aXRjaCB0byBzdXByZXNzIGVycm9yIG1lc3NhZ2VzIGFib3V0IGZhaWxlZCBrZXJuZWwgYW5kIGFkZCAtciB0byBkZWZhdWx0IHRlc3RpbmcgY29kZSBzbyAnbWFrZSB0ZXN0IGNhbiBiZSBydW4gYnkgdXNlcgoKaGFyZGFrZXIgMjcgTm92IDk5IDA5OjE4OjE1CiAgICAtICh2YWNtX3ZhcnMuYyk6IHJlZG8gcnd1c2VyL3JvdXNlciB0byBhbGxvdyBzcGVjaWZpY2F0aW9uIG9mIGF1dGggdHlwZS4KCm1zbGlmY2FrIDI5IE5vdiA5OSAwNTo1MDoyNwogICAgTW9yZSBIUC1VWCBhQ0MgZml4ZXMgc3VwcGxpZWQgYnkgTWFya2t1IExhdWtrYW5lbi4KCm1zbGlmY2FrIDI5IE5vdiA5OSAxMDozMDo1MQogICAgVXNlIG50b2hzIG1hY3JvIHRvIGNhcmVmdWxseSBvYnRhaW4gdGhlIGRlZmF1bHQgc2VydmljZSBwb3J0LgoKbXNsaWZjYWsgMjkgTm92IDk5IDEwOjMzOjQ1CiAgICBGaXggcmVmZXJlbmNlIHRvIHNubXBsaWIuCgptc2xpZmNhayAyOSBOb3YgOTkgMTA6MzY6NDMKICAgIFJlbW92ZSBsYXN0IHZlc3RpZ2VzIG9mIERFQlVHX01BTExPQ19JTkMgZnJhZ21lbnRzLgoKbXNsaWZjYWsgMjkgTm92IDk5IDExOjU4OjM3CiAgICBGcmVlIFNUUkVBTSBwYWNrZXQgYnVmZmVyIHdoZW4gc2Vzc2lvbiBpcyBjbG9zZWQ7CiAgICBUZXN0IGZvciBjbG9zZSBpbiBwcm9ncmVzcyBmb3IgcmVhZCwgd3JpdGUsIHNlbGVjdCwgYW5kIHRpbWVvdXQgZnVuY3Rpb25zLgoKbXNsaWZjYWsgMjkgTm92IDk5IDEyOjQzOjM0CiAgICBVc2Ugc2l6ZV90IGZvciBuYW1lX2xlbiBtZW1iZXIuCgpoYXJkYWtlciAyOSBOb3YgOTkgMTQ6MDI6MDgKICAgIC0gKHN5c3RlbS5jLCBzeXN0ZW0uaCk6IGltcGxlbWVudCBzdHJjYXNlc3RyIChmcm9tIE1pY2hhZWwgU2xpZmNhaykuCgpoYXJkYWtlciAyOSBOb3YgOTkgMTQ6MDI6NTAKICAgIC0gKHBhcnNlLmMpOiBtYWtlIGJlc3QgbWF0Y2hpbmcgKC1iKSB1c2UgcmVnZXggd2hlbiBhdmFpbGFibGUuCgpoYXJkYWtlciAyOSBOb3YgOTkgMTQ6MDM6NDkKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY2hlY2sgZm9yIHJlZ2V4LmgsIHJlZ2NvbXAsIHN0cmNhc2VzdHIuCgpoYXJkYWtlciAyOSBOb3YgOTkgMTQ6MDQ6MDkKICAgIC0gKFJFQURNRSk6IGFub3RoZXIgbmFtZS4KCm5iYSAzMCBOb3YgOTkgMDM6MDE6MzQKICAgIC0gc25tcF9hcGkuaCwgc25tcF9taWIuW2NoXTogQSBjb3VwbGUgYWRkaXRpb25hbCBTTk1QIHN0YXRpc3RpY3MgcG9pbnRzCgpkYXZlcyAzMCBOb3YgOTkgMDc6MDc6MDEKICAgIC0gKGFnZW50eC9tYXN0ZXIuYyk6IFJlbW92ZSByZWR1bmRlbnQgcm91dGluZS4KCmRhdmVzIDMwIE5vdiA5OSAwNzowODo0MwogICAgLSAoYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMpOiBGaXggaGFuZGxpbmcgb2YgbXVsdGktdmFyaWFibGUgcmVxdWVzdHMgdG8gc3ViYWdlbnRzLgoKbXNsaWZjYWsgMzAgTm92IDk5IDEzOjEwOjQwCiAgICBGaXggLVRkIHVzYWdlIGRlc2NyaXB0aW9uOyB1c2Ugc3dpdGNoIHdoZW4gY3VycmVudF9uYW1lIGlzIE5VTEwuCgptc2xpZmNhayAzMCBOb3YgOTkgMTM6MTE6MTQKICAgIEluY2x1ZGUgY3R5cGUuaAoKaGFyZGFrZXIgMzAgTm92IDk5IDE0OjMwOjMyCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgbWliLmMsIG1pYi5oLCBwYXJzZS5jKTogaW1wbGVtZW50IHJlZ2V4IG1hdGNoaW5nCiAgICAgIGV2ZXJ5d2hlcmUuCgptc2xpZmNhayAzMCBOb3YgOTkgMTQ6NDc6MzYKICAgIFVzZSBXZXMnIGNvb2wgbmV3IGdldF93aWxkX25vZGUgbWF0Y2ggbWV0aG9kLgoKbXNsaWZjYWsgMzAgTm92IDk5IDE2OjUwOjQxCiAgICBBZGQgbXVsdGlwbGUgbWF0Y2ggY2FwYWJpbGl0eSB0byBmaW5kX2Jlc3RfdHJlZV9ub2RlLCBhbmQgdXNlIGl0IGluCiAgICBzbm1wdHJhbnNsYXRlIChuZXcgLUIgb3B0aW9uKS4KCm1zbGlmY2FrICAxIERlYyA5OSAwNjo0MDowNwogICAgRXJyb3IgY2hlY2sgYW5kIGZyZWUgcmVzb3VyY2VzIGR1cmluZyByZWdleCBwcm9jZXNzaW5nLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDEwOjM4OjE4CiAgICBQcmV2ZW50IG92ZXJmbG93IG9mIG9iamVjdCBJRCBpbiBnZXRfbW9kdWxlX25vZGUuCiAgICBJbiBmaW5kX2Jlc3RfdHJlZV9ub2RlLCB0cmVhdCByZXN1bHQgZnJvbSByZWN1cnNlZCBjYWxsIHNhbWUgZm9yIG1hdGNoID0gMC4KCm1zbGlmY2FrICAxIERlYyA5OSAxNTo1NTo1NgogICAgRml4IGJ1ZyAjMTEyIGFuZCBmaW5pc2ggcGF0Y2ggc3VwcGxpZWQgYnkgQW50aG9ueSBTaGlwbWFuLgoKbXNsaWZjYWsgIDEgRGVjIDk5IDE2OjMyOjE0CiAgICBVc2UgU05NUF9NQVhCVUYgd2hlbiBkZWZpbmluZyBsYXJnZSBzdGF0aWMgYnVmZmVyIHN0b3JhZ2UuCgpuYmEgIDIgRGVjIDk5IDA0OjQxOjU1CiAgICAtIG1pYi5jOiBhY2Nlc3NpbmcgYW5kIGZyZWVlaW5nIGVudl92YXIgbWlzcGxhY2VzIGFyb3VuZCBOVUxMIHRlc3QKCm5iYSAgMiBEZWMgOTkgMDQ6NDI6NTcKICAgIC0gc25tcHRyYXBkLmM6IGZpeCBzbm1wX2Nsb25lX3BkdTIgYnkgdXNpbmcgdGhlIHNubXBsaWIgdmVyc2lvbgoKbmJhICAyIERlYyA5OSAwNTowNjo1NQogICAgLSB1c21Vc2VyLmMgc25tcHYzLltjaF06IG1vdmUgdXNtX3BhcnNlX2NyZWF0ZV91c21Vc2VyIGZyb20gdGhlIGFnZW50CiAgICAgCXRvIHRoZSBsaWJyYXJ5LCBzbyB0aGF0IHNubXB0cmFwZCBjYW4gdXNlIGl0LgoKbXNsaWZjYWsgIDIgRGVjIDk5IDA5OjIxOjQ1CiAgICBGaXggYnVnICM4MSAtIGNvbnRpbnVlIGluc3RhbGwgYWZ0ZXIgZXJyb3IgY3JlYXRpbmcgcGVyc2lzdGVudCBkaXJlY3RvcnkuCgpoYXJkYWtlciAgMiBEZWMgOTkgMTY6NTk6NTUKICAgIC0gKHBhcnNlLmMpOiB0dXJuIG9uIFJFR0VYX0VYVEVOREVELgoKbmJhICAzIERlYyA5OSAxNTowMzo0OAogICAgLSBzbm1wdHJhcGQuYzogY29ycmVjdCBoYW5kbGluZyBvZiBTSUdIVVAgdHAgcmVjb25maWd1cmUuCgpuYmEgIDMgRGVjIDk5IDE1OjA0OjE2CiAgICAtIHNubXB0cmFwZF9oYW5kbGVycy5jOiBhIGxpdHRsZSBuaWNlciBlcnJvciBtZXNzYWdlCgpuYmEgIDMgRGVjIDk5IDE1OjA1OjEzCiAgICAtIHBhcnNlLmM6IHJlbWVtYmVyIHRvIE5VTEwgYSBmcmVlZCBwb2ludGVyCgpoYXJkYWtlciAgMyBEZWMgOTkgMTY6NTE6NDMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc3dpdGNoIHRvIFBJQyBmcm9tIHBpYy4KCmhhcmRha2VyICAzIERlYyA5OSAxNjo1MjoxNgogICAgLSAoTWFrZWZpbGUuaW4pOiB1c2UgJChNQUtFKSBpbnN0ZWFkIG9mIG1ha2UuCgpoYXJkYWtlciAgMyBEZWMgOTkgMTY6NTI6NTEKICAgIC0gKHZtc3RhdC5jKTogcmVtb3ZlIGR1cGxpY2F0ZSBsaW1pdHMuaCBpbmNsdWRlLgoKbmJhICA1IERlYyA5OSAyMTo0OTo1MAogICAgLSBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jOiBlbnN1cmUgcHJvcGVyIGJ5dGUgb3JkZXJpbmcgd2hlbiBwYXNzJ2luZwogICAgCWlwYWRkcmVzcy4KCm1zbGlmY2FrICA2IERlYyA5OSAwOToxOTowOAogICAgU2hvdyBhbGwgbm9uLXByaW50YWJsZSBzdWJpZHMgaW4gZHVtcF9vaWRfdG9fc3RyaW5nLgogICAgUmVjdXJzZSBjbGVhcl90cmVlX2ZsYWdzIG9ubHkgaWYgbmVjZXNzYXJ5LgoKaGFyZGFrZXIgIDYgRGVjIDk5IDEzOjQ3OjQxCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGRlZmF1bHQgc3BlY2lmaWNhdGlvbnMgZm9yIGF1dGgvcHJpdiB0eXBlcy4KCmhhcmRha2VyICA2IERlYyA5OSAxMzo1MTozNAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBwcmludCBlcnJvciBzdHJpbmdzIHJldHVybmVkIGJ5IGdlbmVyYXRlX0t1KCkuCgpuYmEgIDYgRGVjIDk5IDE0OjMyOjIyCiAgICAtIC5jdnNpZ25vcmU6IE1ha2UgQ1ZTIHNpbGVudCBhYm91dCBpbnN0YWxsYXRpb24gZmlsZXMKCmhhcmRha2VyICA2IERlYyA5OSAxNDo0ODowOAogICAgLSAoc25tcHVzbS5jKToKICAgICAgLSBtYWtlIHNubXB1c20gdXNhYmxlIGFnYWluLCBjaGFuZ2luZyBhcmd1bWVudHMgc2xpZ2h0bHkuCiAgICAgIC0gbWFrZSBpdCBhbHNvIHVzZSBkZWZhdWx0cyBmb3IgcGFzc3BocmFzZXMsIHVzZXIsIGV0Yy4KCmhhcmRha2VyICA2IERlYyA5OSAxNDo1NjoyMQogICAgLSAoU3YzY29uZmlnLCBUMDMwc25tcHYzdXNlcmNyZWF0aW9uKTogbWFrZSB2MyB0ZXN0aW5nIHdvcmsgYWdhaW4uCgpoYXJkYWtlciAgNiBEZWMgOTkgMTQ6NTg6MjgKICAgIC0gKHNubXB1c20uYyk6IGZpeCB1c2FnZSBmb3IgbmV3IGFyZ3MuCgptc2xpZmNhayAgNiBEZWMgOTkgMTU6MDk6NTMKICAgIENvbnZlcnQgVVNNX0VSUiogdG8gU05NUEVSUl9VU00qLgoKbmJhICA2IERlYyA5OSAxNToxMzoyMQogICAgLSBzeXN0ZW0uYywgY29uZmlnLmgsIHdpbjMyLmRzdywgKi5kc3AsIGxpYnNubXAuZGVmOiBjbGVhbmluZyB1cCBmb3IgVkMgYnVpbGRzCgptc2xpZmNhayAgNiBEZWMgOTkgMTY6MzE6MjYKICAgIE1vcmUgZnVuIHVwZGF0aW5nIE1TIFZDIGJ1aWxkIG9mIGFwcHMgYW5kIGxpYnJhcnkuCgptc2xpZmNhayAgNyBEZWMgOTkgMDg6MDM6MDYKICAgIFVzZSBhcmd2WzBdIHNpbmNlIHRoZSBhcHAgd29udCBiZSBzbm1wZ2V0bmV4dCwgcHJvYmFibHkuCgpkYXZlcyAgNyBEZWMgOTkgMDg6Mjk6NTUKICAgIC0gKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLltjaF0gYWdlbnQvc25tcF92YXJzLltjaF0gYWdlbnQvc25tcGQuW2NoXQogICAgICAgc25tcGxpYi9yZWFkX2NvbmZpZy5bY2hdIHNubXBsaWIvc25tcF9hcGkuYyk6CiAgICAgICAtICBVc2UgdGhlIHNhdmVkIGFwcGxpY2F0aW9uIG5hbWUgZm9yIHJlZ2lzdGVyaW5nIGNvbmZpZyBoYW5kbGVycwogICAgCShOLkI6IFRoaXMgY2hhbmdlIHdpbGwgbmVlZCB0byBiZSBhcHBsaWVkIHRvIE1JQiBtb2R1bGVzIGFzIHdlbGwpCgpoYXJkYWtlciAgNyBEZWMgOTkgMDk6MTQ6MzAKICAgIC0gKGhyX290aGVyLmMpOiBzaG9ydGVuIGNwdSBkZXNjcmlwdGlvbiBsZW5ndGguCgpoYXJkYWtlciAgNyBEZWMgOTkgMDk6MTc6NDEKICAgIC0gKHN5c09SVGFibGUuYyk6IG1ha2Ugc3lzT3JJbmRleCBub3QtYWNjZXNzaWJsZSwgYXMgaXQgc2hvdWxkIGJlLgoKaGFyZGFrZXIgIDcgRGVjIDk5IDA5OjMyOjAyCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gY29udmVydCB0byBTTUl2MiBhbmQgY2xlYW51cC4KCmhhcmRha2VyICA3IERlYyA5OSAxMzo0NTo1OQogICAgLSAoc25tcHdhbGsuYyk6CiAgICAgIC0gTmV3IGFiaWxpdHkgdG8gcGVmb3JtIGEgZ2V0IG9uIHRoZSByZXF1ZXN0ZWQgT0lEIHdoZW4gZWl0aGVyIG5vCiAgICAgICAgcmVzdWx0cyBhcmUgcmV0dXJuZWQgb3Igd2hlbiB0aGUgdXNlciByZXF1ZXN0cyBhbiBpbmNsdXNpdmUgb3B0aW9uLgogICAgICAtIE5ldyBhYmlsaXR5IHRvIHByaW50IG51bWJlciBvZiB2YXJpYWJsZXMgZm91bmQgYXQgdGhlIGVuZC4KCmhhcmRha2VyICA3IERlYyA5OSAxMzo1NDoxMQogICAgLSAoc25tcHdhbGsuMSk6IGRvY3VtZW50IC1DaSBhbmQgLUNwIChiYWRseSkuCgptc2xpZmNhayAgNyBEZWMgOTkgMTU6MjM6NDQKICAgIEVsaW1pbmF0ZSBtdWx0aXBseWluZyBieSBzaXplb2YoY2hhcikgb3Igc2l6ZW9mKHVuc2lnbmVkIGNoYXIpOwogICAgYWdlbnR4L2NsaWVudC5jIC0gc25tcF9mcmVlX3ZhcmJpbmQgcmVwbGFjZXMgZnJlZSBpbiBmb3VyIHBsYWNlczsKICAgIHNubXB2My91c21Vc2VyLmMgLSB1c21fZnJlZV91c2VyIHJlcGxhY2VzIGZyZWUgaW4gb25lIHBsYWNlLgoKaGFyZGFrZXIgIDggRGVjIDk5IDA5OjE5OjA4CiAgICAtIChtaWIuYyk6IHJlZ2lzdGVyIGEgY29uZmlnIHRva2VuIGZvciBzdWZmaXggcHJpbnRpbmcuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTQ6MDg6MjAKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtYWtlIG1ySW5kZXggSU1QTElFRCBzaW5jZSBpdCBpcyBpbiB0aGUgY29kZS4KCmhhcmRha2VyICA4IERlYyA5OSAxNDo0MTo1MwogICAgLSAobWliLmMpOiBmaXggLU9zIGFuZCBpbmRleCBiYXNlZCBvaWQgcHJpbnRpbmcgdG8gd29yayBhZ2Fpbi4KCm1zbGlmY2FrICA4IERlYyA5OSAxNTowMToyMAogICAgSW5jbHVkZSBnZXRvcHQuaCB0byBkZWZpbmUgb3B0YXJnLgoKbXNsaWZjYWsgIDggRGVjIDk5IDE1OjA0OjU0CiAgICBBZGQgbWlzc2luZyBkc2tQZXJjZW50Tm9kZSB0byBEc2tFbnRyeSAodGhhbmtzIHRvCiAgICAgICAgICAgICBNaWNoYWVsIEtpcmtoYW0gPHN1cHBvcnRAaXdsLmNvbT4pLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjIzOjA3CiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgIC0gcmVtZW1iZXJlZCBJTVBMSUVEIGluZGV4ZXMuCiAgICAgIC0gcHJvcGVybHkgcHJpbnQgT0lEcyB3aXRoIGxlbmd0aCBwcmVmaXhlcyBvbiBwYXJzZWQgT0lEcyBzbwogICAgICAgIGN1dHRpbmcvcGFzdGluZyBvZiB0aGVtIHdvcmtzLgogICAgICAtIHByb3Blcmx5IHByaW50IHN0cmluZ3MgYW5kIG9pZHMgdGhhdCBhcmUgSU1QTElFRC4KICAgICAgLSBwcmludCBzdHJpbmdzIGluIGVpdGhlciAnIG9yICIgcXVvdGVzIGRlcGVuZGluZyBvbiBpZiB0aGVpciBJTVBMSUVELgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjI2OjUxCiAgICAtIChSRUFETUUpOiBhZGQgSnVlcmdlbi4KCmhhcmRha2VyICA4IERlYyA5OSAxNToyODo1NAogICAgLSAoKi4uTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICA4IERlYyA5OSAxNToyOTo1MgogICAgLSAoc25tcGQuYyk6IG1vdmUgc3lzL3BhcmFtIG91dCBvZiBpZmRlZiBGRF9TRVQuCgpoYXJkYWtlciAgOCBEZWMgOTkgMTU6NDc6MDIKICAgIC0gKCouLk1ha2VmaWxlLmluKTogQSByZWFsIG1ha2UgZGVwZW5kIHdpdGggbm8gc3NsIGRlcGVuZGFuY2llcywgZXRjLgoKaGFyZGFrZXIgIDggRGVjIDk5IDE1OjQ5OjMyCiAgICAtIChtYWtlZmlsZWluZGVwZW5kLnBsLCBtYWtlbm9zeXNkZXBlbmQucGwsIHJlbW92ZS1maWxlcyk6CiAgICAgIC0gbW92ZSB0aGUgbWFrZSBkZXBlbmQgcGVybCBzY3JpcHRzIHRvIHRoZSB0b3AgbGV2ZWwgd2hlcmUgdGhleSBvbmx5CiAgICAgICAgbmVlZCB0byBiZSBlZGl0ZWQgb25jZS4KCmhhcmRha2VyICA4IERlYyA5OSAxNzoxMzoxNwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIG1hc3Rlci5jLCByZWFkX2NvbmZpZy5jLCBzeXN0ZW0uYywgc3lzdGVtLmgpOgogICAgICAtIGltcGxlbWVudCBta2RpcmhpZXIoKSBhbmQgdXNlIGl0IGZvciBwZXJzaXN0ZW50IHN0b3JhZ2UgYW5kIGFnZW50eAogICAgICAgIHNvY2tldCBmaWxlIGNyZWF0aW9uLgoKZGF2ZXMgIDkgRGVjIDk5IDA3OjM0OjAzCiAgICAtIChtYW4vc25tcF90cmFwX2FwaS4zKTogSW5pdGlhbCBkb2N1bWVudGF0aW9uIGZvciBhZ2VudCB0cmFwIGdlbmVyYXRpb24uCgpuYmEgIDkgRGVjIDk5IDA3OjM0OjA4CiAgICAtIG1pYi5jOiBpbXBsZW1lbnQgTUlCOjpsYWJlbAoKbmJhICA5IERlYyA5OSAwNzo0OTozNAogICAgLSBzbm1wY21kLjE6IHN1cHBvcnQgTUlCOjpsYWJlbAoKbXNsaWZjYWsgIDkgRGVjIDk5IDA4OjE0OjU5CiAgICBQYXRjaGVzIHN1cHBsaWVkIGJ5IEp1ZXJnZW4gU2Nob2Vud2FlbGRlci4KCmhhcmRha2VyICA5IERlYyA5OSAxMDowODoyNgogICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgIGFnZW50L01ha2VmaWxlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKToKICAgICAgLSBmaXhlZCAtLWVuYWJsZS1zaGFyZWQgKGF0IGxlYXN0IG9uIGxpbnV4KS4KCmhhcmRha2VyICA5IERlYyA5OSAxNToyNjoyMwogICAgLSAoa2V5dG9vbHMuYyk6IFBhdGNoIGZyb20gTGVvbmFyZCBHb21lbHNreToKICAgICAgLSBnZW5lcmF0ZV9LdSgpIHNwZWVkIGltcHJvdmVtZW50cy4KCmhhcmRha2VyICA5IERlYyA5OSAxNjoxNjo0MAogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IGNoYW5nZWQgYWxsIGluc3RhbmNlcyBvZiBrYiB0byBrQi4KCmhhcmRha2VyICA5IERlYyA5OSAxNjo1MzoxNAogICAgLSAoc25tcG5ldHN0YXQvTWFrZWZpbGUuaW4pOiBmaXggZm9yIC0tZW5hYmxlLXNoYXJlZAoKaGFyZGFrZXIgIDkgRGVjIDk5IDE3OjA5OjIzCiAgICAtIChhZ2VudC8qTWFrZWZpbGUuaW4pOiBmaXggZm9yIC0tZW5hYmxlLXNoYXJlZCBvbiBocHV4CgpuYmEgMTAgRGVjIDk5IDAzOjA2OjE4CiAgICAtIG1hc3Rlci5jOiBhZGQgYSBtaXNzaW5nICNpbmNsdWRlIDxuZXRpbmV0L2luLmg+IChhdCBsZWFzdCBmb3IgU29sYXJpcykuCgpuYmEgMTAgRGVjIDk5IDAzOjA3OjA2CiAgICAtIHBhc3MuYzogZml4IHNvbWUgYnVmL2J1ZjIgY29uZnVzaW9uCgpuYmEgMTAgRGVjIDk5IDAzOjA5OjMzCiAgICAtIHBhc3NfcGVyc2lzdC5jOiBmaXggc29tZSBidWYvYnVmMiBjb25mdXNpb24KCm5iYSAxMCBEZWMgOTkgMDM6MTA6MzAKICAgIC0gcmVhZF9jb25maWcuYzogYWRkIHNvbWUgbWlzc2luZyBjb25zdCBzcGVjaWZpZXJzCgpuYmEgMTAgRGVjIDk5IDAzOjIwOjEwCiAgICAtICh2YXJpb3VzKTogY2hhbmdlcyB0byBjb21waWxlIHNubXBkIHdpdGggVkMrKyA1LjAgKFJlbGVhc2UgbW9kZSkKCm1zbGlmY2FrIDEwIERlYyA5OSAwNzoyODozMwogICAgRml4IHRvIGJ1aWxkIGV4ZWN1dGFibGUgYWdlbnQgb24gSFAtVVguCgptc2xpZmNhayAxMCBEZWMgOTkgMTA6MjM6MzYKICAgIEFwcGx5IERhdmUncyBwYXRjaCB0byBmaXggbWF4IHZhcmJpbmRzIHRlc3Rpbmcgb24gR0VUQlVMSy4KCm1hcnogMTAgRGVjIDk5IDEwOjQ0OjI5CiAgICAgKHNubWxpYi9zbm1wX2FwaS5jKTogZml4IGJ1ZyBpbiBfc2Vzc19jb3B5IHdoZXJlIHBvaW50ZXJzIHRoYXQgd2VyZSBub3Qgb3duZWQgYnkgbmV3bHkgY3JlYXRlZCBzZXNzaW9uIGNvdWxkIGdldCBtaXN0YWtlbmx5IGZyZWVkIGlmIGVycm9ycyB3ZXJlIGVuY291bnRlcmVkIGR1cmluZyBzZXNzaW9uIGNvcHkgLSBhbHNvIGVsaW1pbmF0ZSBzb21lIHJlZHVuZGFudCBjb3B5aW5nIG9mIHNlY3VyaXR5e0F1dGh8UHJpdn1LZXkgZGF0YQoKbXNsaWZjYWsgMTAgRGVjIDk5IDEzOjAzOjU4CiAgICBGaXggSFAtVVggcHJvYmxlbSB3aXRoIGlwRGVmYXVsdFRUTC4KCmRhdmVzIDEzIERlYyA5OSAwMzoxNzo0MQogICAgLSAoYWdlbnRfcmVnaXN0cnkuYyk6IEhhbmRsZSBkZWxlZ2F0ZWQgTUlCIHJlZ2lvbnMgcHJvcGVybHkgd2hlbiBzcGxpdC4KCmRhdmVzIDEzIERlYyA5OSAwMzoxODozOAogICAgLSAoYWdlbnRfdHJhcC5jKTogYWxsb3cgc3BlY2lmaWNhdGlvbiBvZiBlbnRlcnByaXNlIE9JRCB3aGVuIHNlbmRpbmcgdHJhcHMKCmRhdmVzIDEzIERlYyA5OSAwNDo0MzoxNAogICAgLSAoYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguW2NoXSk6CiAgICAgIC0gUGF0Y2ggdG8gZ2V0IFNNVVggc3VwcG9ydCB3b3JraW5nIHdpdGggdGhlIG5ldyBhZ2VudCBhcmNoaXRlY3R1cmUuCiAgICAgICAgVGhpcyBpcyBwcm9iYWJseSBub3QgVGhlIFJpZ2h0IFdheSBUbyBEbyBUaGluZ3MgTm93LCBidXQgaXQgd29ya3MuCiAgICAgICAgVGhhbmtzIHRvIE5pY2sgQW1hdG8gYW5kIE1pa2UgTWljaGF1ZC4KCm1zbGlmY2FrIDEzIERlYyA5OSAwOTo0OToyOAogICAgQWRkZWQgcGF0Y2ggZnJvbSBNLk1pY2hhdWQgdG8gdXNlIHNlbmRfZW50ZXJwcmlzZV90cmFwX3ZhcnMuCgpoYXJkYWtlciAxMyBEZWMgOTkgMDk6NTc6MzcKICAgIC0gKERMTU9ELU1JQi50eHQsIFVDRC1ETE1PRC1NSUIuaW5jLCBVQ0QtRExNT0QtTUlCLnR4dCk6CiAgICAgIC0gSnVlcmdlbnMgcGF0Y2ggdG8gbW92ZSBETE1PRC1NSUIgLT4gVUNELURMTU9ELU1JQiBhbmQgLT4gU01JdjIuCiAgICAgIC0gbW92ZWQgdG8gdGhlIGV4cGVyaW1lbnRhbCB0cmVlLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDEyOjA0OjE1CiAgICBDbGVhbiBhbHNvIHJlbW92ZXMgZ2VuZXJhdGVkIGRlZmF1bHRfc3RvcmUuMy5oIC4KCm1zbGlmY2FrIDEzIERlYyA5OSAxMzo1NDoyNwogICAgU2FuaXR5IGNoZWNrcyBhZGRlZCB0byBfZ2V0X3N5bWJvbC4KCmhhcmRha2VyIDEzIERlYyA5OSAxNDoyMDoxMAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogLS13aXRoLWVmZW5jZSBpbXBsZW1lbnRlZC4KICAgICAgLSAoZm9yY2VkIGNoZWNraW5nIGZvciAtLWVuYWJsZS1kZXZlbG9wZXIgYW5kIENWUyBjaGVja291dHMpCgptc2xpZmNhayAxMyBEZWMgOTkgMTQ6NTQ6MzEKICAgIEZpeCBwcm9ibGVtIHByaW50aW5nIElNUExJRUQgaW5kaWNlcyBvZiBPQkpFQ1RJRCB0eXBlLgoKbXNsaWZjYWsgMTMgRGVjIDk5IDE1OjEyOjAxCiAgICBGaW5pc2ggc3ltYm9sIGNvbnZlcnNpb24gd2l0aCBudW1lcmljIHdoZW4gc3VidHJlZSBpcyBsZWFmIG5vZGUuCgptc2xpZmNhayAxMyBEZWMgOTkgMTY6MDM6MDAKICAgIEFsbG93IHNwcmludF92YXJpYWJsZSB0byB3b3JrIGV2ZW4gaWYgbm8gTUlCIGZpbGVzIHdlcmUgcmVhZC4KCmhhcmRha2VyIDE0IERlYyA5OSAwODowODowMAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIGRlZmF1bHRfc3RvcmUuaCwKICAgICAgbWliLmMsIG1pYi5oKToKICAgICAgLSBhcmd1bWVudCBzaHVmZmxpbmcuLi4KICAgICAgICAtSSBmb3IgaW5wdXQgYXJncyBjcmVhdGVkLCBhbmQgLU9SIG1vdmVkIHRoZXJlLgogICAgICAgIC1JYiBjcmVhdGVkLgogICAgICAgIC1UQiBjcmVhdGVkIGZvciBzbm1wdHJhbnNsYXRlICh3YXMgLUIpLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDA4OjQxOjQxCiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSB1cGRhdGVzLgoKaGFyZGFrZXIgMTQgRGVjIDk5IDE0OjU0OjA5CiAgICAtIChrZXl0b29scy5jKTogcmV2ZXJzZSBnZW5lcmF0ZV9LdSBvcHRpbWl6YXRpb25zLCBhcyB0aGV5IGRvbid0IHdvcmsuCgpoYXJkYWtlciAxNCBEZWMgOTkgMTU6MTk6MzUKICAgIC0gKE1ha2VmaWxlLmluKTogRExNT0QgLT4gVUNELURMTU9ECgpoYXJkYWtlciAxNCBEZWMgOTkgMTY6MDU6MDgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogbW92ZSAtbGVmZW5jZSBjaGVjayB1cCB0byBmcm9udCAobGFzdCBpbiBsaW5rKS4KCmhhcmRha2VyIDE0IERlYyA5OSAxNjowNTozNwogICAgLSAoaGVhZGVyX2NvbXBsZXguYyk6IGdldCBuZXh0IGluIGxpbmsgbGlzdCBiZWZvcmUgZGVsZXRpbmcgcm9vdC4KCm1zbGlmY2FrIDE1IERlYyA5OSAwNDoyMToyNwogICAgSXNvbGF0ZSBhbmQgcmV0b3VjaCBkZXByZWNhdGVkIGNvbW1hbmQgbGluZSBvcHRpb25zLgoKbXNsaWZjYWsgMTUgRGVjIDk5IDA1OjUxOjAwCiAgICBTaGFyZSBrc3RhdCBmZCBpZmYgdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyIGlzIGFsc28gY29uZmlndXJlZC4KCmhhcmRha2VyIDE1IERlYyA5OSAwOToxNzowMwogICAgLSAoRXRoZXJMaWtlLU1JQi50eHQsIElQRklMVEVSLnR4dCwgVUNELUlQRklMVEVSLU1JQi5pbmMsCiAgICAgIFVDRC1JUEZJTFRFUi1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gRXZlbiBtb3JlIHVwZGF0ZXMuCgpoYXJkYWtlciAxNSBEZWMgOTkgMDk6MTk6MTQKICAgIC0gKFNOTVB2Mi1QQVJUWS1NSUIudHh0IFNOTVB2Mi1NMk0tTUlCLnR4dCApOiByZW1vdmVkLgoKbXNsaWZjYWsgMTUgRGVjIDk5IDA5OjQyOjQ0CiAgICBSZW1vdmUgc25tcF9sb2dfc3lzbG9nLCBzbm1wX2xvZ19maWxlbG9nLCBzbm1wX2xvZ19zdGRlcnJsb2c7CiAgICBTaW1wbGlmeSBzbm1wX2xvZ19zdHJpbmcuCgptc2xpZmNhayAxNSBEZWMgOTkgMDk6NTY6MjQKICAgIEFkZCB0aW1lIG1hcmtlciBjcmVhdGUsIHNldCwgYW5kIGRlbHRhIHRpbWUgY2hlY2sgbWV0aG9kcy4KCm1zbGlmY2FrIDE1IERlYyA5OSAxMTowODoxOQogICAgUmVwbGFjZSBrYyBmcm9tIG1lbW9yeV9zb2xhcmlzMi5jIHdpdGgga3N0YXRfZmQsIGRlZmluZWQgaW4ga2VybmVsX3N1bm9zNS5jLgoKbmJhIDE2IERlYyA5OSAyMzowNTo0NwogICAgLSBrZXJuZWwuYzogb3V0cHV0IGVycm9yIHN0cmluZywgbm90IG51bWJlcgoKbmJhIDE2IERlYyA5OSAyMzowNjo1OAogICAgLSBzbm1wZC5jOiBcbiB0ZXJtaW5hdGUgc29tZSBsb2cgbWVzc2FnZXMKCm5iYSAxNiBEZWMgOTkgMjM6MDg6MDIKICAgIC0gc211eC5bY2hdOiBmaXggc29tZSBwcm90b3R5cGVzIGFuZCBpbmNsdWRlcy4KCm5iYSAxNiBEZWMgOTkgMjM6MDg6NTQKICAgIC0gc25tcHRyYW5zbGF0ZS5jOiBiZSBleHBsaWNpdCBpbiB0aGUgLXQgd2FybmluZwoKbmJhIDE2IERlYyA5OSAyMzowOTo0MgogICAgLSBtaWIuYzogZml4IGEgdGFpbCByZWN1cnNpb24gZWxpbWluYXRpb24gcHJvYmxlbSBwcmludGluZyBvaWRzCgpuYmEgMTYgRGVjIDk5IDIzOjEwOjMxCiAgICAtIHNubXB2My5jOiBhIG1vcmUgc3BldmlmaWMgaGVscCBtZXNzYWdlIGZvciBkZWZWZXJzaW9uCgpuYmEgMTcgRGVjIDk5IDAyOjA4OjE3CiAgICAtIG1pYi5jOiBraWxsIHRoYXQgdGFpbCByZWN1cnNpb24gZWxpbWluYXRpb24sIGl0IGp1c3QgYWRkcyB0b28gbWFueQogICAgCWNvbmRpdGlvbmFscy4gUHJvcGVybHkgb3V0cHV0IGFuIGVtcHR5IHN0cmluZyBpbmRleC4KCm5iYSAxNyBEZWMgOTkgMDI6MDk6MTgKICAgIC0gc25tcF9wYXJzZV9hcmdzLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIHVzYWdlKCkgY2FsbHMuCgpuYmEgMTcgRGVjIDk5IDAyOjE0OjE4CiAgICAtIHNubXB0YWJsZS5jOiBjbGVhbnVwIG9mIHRoZSAibmV3IiBtaWIgd2FsayB0byBkZXRlcm1pbmUgZmllbGRzLiBNYWtlIGl0CiAgICAJZGVmYXVsdCAoZG9uJ3QgZXZlbiBkb2N1bWVudCB0aGUgLUMgY29tcGF0aWJpbGl0eSBvcHRpb24pLiBJZ25vcmUKICAgIAlub3QtYWNjZXNzaWJsZSBmaWVsZHMgaW4gdGhlIHdhbGsuCgpuYmEgMTcgRGVjIDk5IDAyOjE4OjMwCiAgICAtIHNubXB0cmFwZC5jOiBtYWtlIHRoZSBvaWRzIGdpdmVuIHRvIHRyYXBkIGhhbmRsZXJzIHByb3Blcmx5IC4wIHRlcm1pbmF0ZWQuCiAgICAJQWRkIGEgU05NUC1DT01NVU5JVFktTUlCOjpzbm1wVHJhcEFkZHJlc3MuMAogICAgCUFkZCBzeXNsb2cgb2YgdjIgdHJhcHMgYW5kIGluZm9ybXMKCm5iYSAxNyBEZWMgOTkgMDM6MjI6MzkKICAgIC0gbGlic25tcC5kZWY6IGFkZCBzb21lIGZ1bmN0aW9uIG5hbWVzCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6MDM6MDkKICAgIC0gKHNubXBjbWQuMSk6IGRvY3VtZW50IC1JIGFuZCAtTyBmbGFncy4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzowNTowOAogICAgLSAoc25tcGNtZC4xKTogbWVudGlvbiB0aGF0IC1JUiBhbmQgLUliIGFyZSBhY3R1YWxseSB1c2VkIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6MTM6MDMKICAgIC0gKHNubXAuY29uZi41LmRlZik6IGRvY3VtZW50IGEgYnVuY2ggb2YgbmV3IGNvbmZpZ3VyYXRpb24gb3B0aW9ucy4KCmhhcmRha2VyIDE3IERlYyA5OSAwNzoyNjowNQogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGRvY3VtZW50IHJvY29tbXVuaXR5LCByd2NvbW11bml0eSwgcm91c2VyLCByd3VzZXIuCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6Mjg6MzQKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0aGUgZmlsZSBkaXJlY3RpdmUuCgpoYXJkYWtlciAxNyBEZWMgOTkgMDc6NDA6NDMKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBjcmVhdGVVc2VyLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjEwOjQyCiAgICAtIChORVdTKTogZmlyc3QgcGFzcyBhdCBjaGFuZ2VzLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjExOjAyCiAgICAtIChzZWRzY3JpcHQuaW4pOiBQRVJTSVNURU5UX0RJUkVDVE9SWSB0b2tlbiBhZGRlZC4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxMTozNAogICAgLSAoc25tcGQuYyk6IHJlb3JkZXIgaW5pdCgpIHJvdXRpbmVzIGZvciAtSCB0byBwcmV2ZW50IHNlZ2ZhdWx0aW5nLgoKaGFyZGFrZXIgMTcgRGVjIDk5IDEwOjE2OjMyCiAgICAtIChNYWtlZmlsZS5pbik6IHB1dCBzbm1wZC5vIGludG8gdGhlIG9iamVjdCBsaXN0LCBhbmQgcmVtb3ZlIGl0IGZyb20KICAgICAgZGlyZWN0IGNvbXBpbGF0aW9uIGluIHRoZSBDQyBsaW5rIGxpbmUuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTc6MDUKICAgIC0gKHVzbVVzZXIuYyk6IGNoYW5nZWQgaGVscCBsaW5lIG9mIGNyZWF0ZVVzZXIgdG8gc2VwZXJhdGUgREVTIHRva2VuCiAgICAgIGZyb20gdGhlIHBhc3NwaHJhc2UuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTc6MjgKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogcmVtb3ZlZCAtUiBmcm9tIHRoZSAtaCBvdXRwdXQuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTA6MTg6MjQKICAgIC0gKE5FV1MpOiBzZWNvbmQgcGFzcy4KCmhhcmRha2VyIDE3IERlYyA5OSAxMDoxODo0MgogICAgLSAoc25tcF9hZ2VudF9hcGkuMyk6IHJlLXN0cnVjdHVyZSBiYXNlZCBvbiByZWNlbnQgY2hhbmdlcy4KCm1zbGlmY2FrIDE3IERlYyA5OSAxNDoyMzoyNQogICAgRml4ZWQgYSBmZXcgc3BlbGlsbmcgZXJyb3JzLgoKbXNsaWZjYWsgMTcgRGVjIDk5IDE1OjIxOjM5CiAgICBBZGQgQmlsbCBGdW1lcm9sYSdzIHBhdGNoIGZvciBGcmVlQlNEIDQueCB0byB1c2Ugc3dhcGluZm8uCiAgICBJbmNsdWRlIEZyZWVCU0QgNC54IHNwZWNpZmljIG1lbW9yeSBhbmQgdm1zdGF0IHdoZW4gYnVpbGRpbmcgdGhhdCBhZ2VudC4KCm1zbGlmY2FrIDE3IERlYyA5OSAxNTo0MToxNAogICAgTm8gZHVtbXkgdmFsdWVzIGZvciBGcmVlQlNELCBwbGVhc2UuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTU6NDY6MDgKICAgIC0gKHNubXBfYWxhcm0uYyk6IG1pc3NpbmcgISBvcGVyYXRlciBvbiBzaWduYWwgdGVzdC4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo1NTo0OAogICAgLSAoTkVXUyk6IG1lbnRpb24gLUkuCgpoYXJkYWtlciAxNyBEZWMgOTkgMTU6NTY6MjcKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIGFnZW50X3JlZ2lzdHJ5LmMsIHNubXBfdmFycy5jKToKICAgICAgLSBpbmNsdWRlICJzbm1wX2FsYXJtLmgiIGZvciBtaWIgbW9kdWxlcyB0aGF0IG5lZWQgdGhlIGNhbGxiYWNrIGRlZi4KCmhhcmRha2VyIDE3IERlYyA5OSAxNTo1NzoxMAogICAgLSAoaGVhZGVyX2NvbXBsZXguYywgaGVhZGVyX2NvbXBsZXguaCk6IGNvbXBsZXRlbHkgcmVzdHJ1Y3R1cmVkLgogICAgICAtIGRyYXN0aWNseSByZWR1Y2VzIG1lbW9yeSB1c2FnZSBmb3IgbGFyZ2UgZGF0YSBzZXRzICgxLzMpLgoKZGF2ZXMgMjAgRGVjIDk5IDAzOjAxOjQ5CiAgICAtIChhZ2VudHgvUkVBRE1FLmFnZW50eCk6IFVwZGF0ZWQgdG8gZGVzY3JpYmUgY3VycmVudCBzdGF0dXMuCgpkYXZlcyAyMCBEZWMgOTkgMDQ6MTU6NTUKICAgIC0gKGFnZW50X3RyYXAuYyBzbm1wX3ZhcnMuYyBtaWJJSS5bY2hdIG1pYklJLyouYyBtaWJJSS9zeXNPUlRhYmxlLmgpOgogICAgICAtIFVzZSBTTk1QX09JRCBwcmVmaXggZGVmaW5pdGlvbnMgaW4gT0lEIHNwZWNpZmljYXRpb25zLgogICAgICAtIFJlZ2lzdGVyIHRoZSB2YXJpb3VzIE1JQi0yIG1vZHVsZXMgc2VwYXJhdGVseSBpbiBzeXNPUlRhYmxlLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDA2OjQzOjQwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEZvcmNlIHNldCB0byAxIGZvciAtRCBzbyBtdWx0aXBsZSBzd2l0Y2hlcyBjYW4KICAgICAgYmUgZ2l2ZW4gKGllLCBkb24ndCB0b2dnbGUgdGhlIHZhbHVlKS4KCmhhcmRha2VyIDIwIERlYyA5OSAwNjo0ODoyNAogICAgLSAoTWFrZWZpbGUuaW4pOiBtb3ZlZCBrZXJuZWwubyBpbnRvIHRoZSBsaWJ1Y2RhZ2VudCBsaWJyYXJ5LgoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjIzOjI1CiAgICAtIChJUFNFQy1NSUIudHh0KTogcmVtb3ZlZAoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjI1OjE1CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCB0byBVQ0QtSVBGV0FDQy1NSUIudHh0CgpoYXJkYWtlciAyMCBEZWMgOTkgMTM6MjY6MDkKICAgIC0gKFVDRC1JUEZXQUNDLU1JQi50eHQpOiBtb3ZlZCBhbmQgdXBkYXRlZCBmcm9tIElQRldBQ0MtTUlCLnR4dAoKaGFyZGFrZXIgMjAgRGVjIDk5IDEzOjMwOjA2CiAgICAtIChVQ0QtSVBGV0FDQy1NSUIudHh0KTogbW92ZWQgdGFibGUgdG8gb25lIGxldmVsIGRlZXBlciB1bmRlciBtaWIgbm9kZS4KCmhhcmRha2VyIDIwIERlYyA5OSAxMzozMDozNgogICAgLSAoaXBmd2FjYy5jKTogbW92ZWQgdGFibGUgdG8gb25lIGxldmVsIGRlZXBlciB1bmRlciBtaWIgbm9kZS4KCmhhcmRha2VyIDIwIERlYyA5OSAxNTozODozNAogICAgLSAoTWFrZWZpbGUuaW4pOiBJUEZXQUNDLU1JQi50eHQgLT4gVUNELUlQRldBQ0MtTUlCLnR4dAoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjE5OjE4CiAgICAtIChhZ2VudF90cmFwLmMpOiBtYWtlIHVwdGltZSBhIGxvbmcgZm9yIDY0Yml0IGFyY2hpdGVjdHVyZXMuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MjA6MTUKICAgIC0gKGFnZW50eC9wcm90b2NvbC5jKTogbWFrZSBhIHRoaW5ncyBzaXplX3QgaW5zdGVhZCBvZiB1X2ludCAoZm9yIDY0Yml0IGNvZGUpLgoKaGFyZGFrZXIgMjAgRGVjIDk5IDE3OjIwOjU1CiAgICAtIChzbm1wX2FwaS5jKTogRGlnaXRhbCBVbml4IGhhY2sgZm9yIGJhZCByZWN2ZnJvbSBpbXBsZW1lbnRhdGlvbi4KCmhhcmRha2VyIDIwIERlYyA5OSAxNzozMTo0NQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IG1pbm9yIG5vdGUuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MzI6MjMKICAgIC0gKE5FV1MpOiBtZW50aW9uIFNNSXYyIHVwZGF0ZXMuCgpoYXJkYWtlciAyMCBEZWMgOTkgMTc6MzI6MzcKICAgIC0gKG1pYmluY2wuaCk6IGFkZCBhZ2VudF90cmFwLmgKCmhhcmRha2VyIDIwIERlYyA5OSAxNzozNDozMQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjEucHJlMSApCgpuYmEgMjEgRGVjIDk5IDAyOjM3OjE5CiAgICAtIHNubXBkLmMsIHNtdXguYywgc25tcF9hcGkuYzogdGFrZSBhd2F5IHNvbWUgdW51c2VkIHZhcmlhYmxlcy4KCm5iYSAyMiBEZWMgOTkgMDI6NDE6NDIKICAgIC0gbWVtb3J5X2ZyZWVic2QyLmM6IG1ha2UgaXQgd29yayAoYWdhaW4pIGZvciBGcmVlQlNELTIgOi0pCgpuYmEgMjIgRGVjIDk5IDAyOjQzOjE1CiAgICAtIGhyX3N0b3JhZ2UuYzoga2lsbCBhIGR1bW15IHZhbHVlCgpuYmEgMjIgRGVjIDk5IDA1OjQ2OjIxCiAgICAtIHN5c3RlbS5jOiBuYXVnaHR5LCBuYXVnaHR5IE5pZWxzLCBqdXN0IHJlaW5kZW50aW5nIC4uLgoKbmJhIDIyIERlYyA5OSAwNTo0NzoxMQogICAgLSBzeXN0ZW1fbWliLmM6IHVzZSBzb21lICNkZWZpbmVzIGkgcGxhY2Ugb2YgbnVtYmVycwoKbmJhIDIyIERlYyA5OSAwNTo1ODoxOAogICAgLSB2YWNtIHJvdXRpbmVzOiBhbGlnbm1lbnQgd2l0aCBSRkMgbWlicywgcHJlcGFyaW5nIGZvciB0cmFwIGdlbmVyYXRpb24KICAgIAlhbmQgYSBiZXR0ZXIgaW50ZWdyYXRpb24gd2l0aCB2YXJpYWJsZSB0cmVlIHdhbGtpbmcKCmhhcmRha2VyIDIyIERlYyA5OSAxNToxMjoyNgogICAgLSAobWFzdGVyLmMpOiB1c2Ugc25tcF9zZXNzX29wZW4gZm9yIHRoZSBzZWNvbmQgdHJ5IGF0IG9wZW5pbmcgdGhlCiAgICAgIG1hc3RlciBwb3J0LgoKaGFyZGFrZXIgMjIgRGVjIDk5IDE1OjEzOjA1CiAgICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogaW5jcmVhc2UgbWF4IHZhcnMgdG8gNjQgKHdhcyAxNikuICBJIGhhdmUgYQogICAgICB0YWJsZSB3aXRoIG1vcmUgdGhhbiB0aGF0IG51bWJlciBpbiBjb2x1bW5zLCB3aGljaCBicmVha3Mgc25tcHRhYmxlLgoKaGFyZGFrZXIgMjIgRGVjIDk5IDE2OjMwOjAxCiAgICAtICh2bXN0YXRfc29sYXJpczIuYywgdm1zdGF0X3NvbGFyaXMyLmgpOiBQYXRjaCBmcm9tIEpvY2hlbiBLbWlldHNjaDoKICAgICAgLSBmaXJzdCBwYXNzIGF0IHZtc3RhdCBzdXBwb3J0IGZvciBzb2xhcmlzLgoKaGFyZGFrZXIgMjMgRGVjIDk5IDA4OjIxOjM3CiAgICAtICh2bXN0YXRfc29sYXJpczIuYyk6IFBhdGNoIGZyb20gSm9jaGVuIEttaWV0c2NoOgogICAgICAtIG5vbiA4MC1jb2x1bW4gd3JhcHBlZCB2ZXJzaW9uLgoKaGFyZGFrZXIgMjggRGVjIDk5IDE1OjQyOjA4CiAgICAtIChtYXN0ZXJfcmVxdWVzdC5jKTogcmVtb3ZlIHRoZSAhIGluIGZyb250IG9mIGluX2Ffdmlldywgd2hpY2ggY2hhbmdlZC4KCmhhcmRha2VyIDMwIERlYyA5OSAwNzo1MTozNgogICAgLSAoc25tcGQuYyk6IHVzYWdlIGxpbmUgb3JkZXIgbWVzc2VkIHVwLCBhcyBwb2ludGVkIG91dCBieSBSb2JlcnQgU3RvcnkuCgptc2xpZmNhayAzMCBEZWMgOTkgMTI6MDA6NTgKICAgIEZpeCBjb21waWxlIGVycm9ycy4KCm1zbGlmY2FrIDMxIERlYyA5OSAwOTozMToxMgogICAgRml4IGJ1ZyAjIDEyMgoKbXNsaWZjYWsgMzEgRGVjIDk5IDA5OjMyOjU4CiAgICBBcHBseSBwYXRjaCBwcm92aWRlZCBieSBTZXJnIFRydXNobmlrb3YgPHNhdEB6bWFpbC5ydT4gZm9yIEFJWCA0LjIuMSBrbmxpc3QKCm1zbGlmY2FrIDMxIERlYyA5OSAxMDoxMToxMgogICAgRml4IGJ1ZyAjMTI1IC0gaW5zZXJ0IHVuZGVyc2NvcmUgaW50byBzdHJ1Y3Qgc25tcF9pcGFkZHIgbWVtYmVyIG5hbWVzLgoKbXNsaWZjYWsgMzEgRGVjIDk5IDEwOjMzOjE2CiAgICBBdXRvY29uZiBwYXRjaCBjL28gQWxiZXJ0IENoaW4tQS1Zb3VuZyA8Y2hpbmFAdGhld3JpdHRlbndvcmQuY29tPgoKbXNsaWZjYWsgMzEgRGVjIDk5IDEwOjM2OjQ2CiAgICBGaXggd2FybmluZ3Mgb2YgdW5pbml0aWFsaXplZCB2YXJpYWJsZXMuCgptc2xpZmNhayAzMSBEZWMgOTkgMTI6NDM6NTAKICAgIEZpeCBidWcgIzQ4IDogbm8gc3RyY2FzZWNtcC9zdHJuY2FzZWNtcCBmb3IgU2luaXgKCm1zbGlmY2FrIDMxIERlYyA5OSAxMzoyNzo0NAogICAgQXBwbHkgc29tZSBOZXRCU0QgMS4zLngsIDEuNCBwYXRjaGVzIGMvbyBHcmVhIEEuIFdvb2RzIDx3b29kc0BwbGFuaXguY29tPgoKbmJhICAzIEphbiAwMCAxNToyMzoyMQogICAgLSBFWEFNUExFLmNvbmYuZGVmOiBhZGFwdCB0byBjaGFuZ2VzIGluIHZhbGlkIHZhY20gc3ludGF4CgpuYmEgIDMgSmFuIDAwIDE1OjI2OjA3CiAgICAtIHNubXBfdmFycy5jOiBpbmNsdWRlIGFnZW50X3JlZ2lzdHJ5Lmggb25seSBvbmNlCgpuYmEgIDMgSmFuIDAwIDE1OjI2OjUxCiAgICAtIHNubXBkLmM6IGFkZCBhIG1pc3NpbmcgY29uc3Qgc3BlY2lmaWVyCgpuYmEgIDMgSmFuIDAwIDE1OjI3OjI5CiAgICAtIG1pYklJLmg6IGFkZCBwcm90b3R5cGUgZm9yIGluaXRfbWliSUkKCm5iYSAgMyBKYW4gMDAgMTU6Mjg6MjQKICAgIC0gd29tYmF0LltjaF06IGNvcnJlY3QgcHJvdG90eXBlIGZvciB3b21iYXRfcGFyc2VfY29uZmlnCgpuYmEgIDMgSmFuIDAwIDE1OjMwOjI2CiAgICAtIHN5c3RlbS5oOiBhZGQgcHJvdG90eXBlIGZvciBzdHJjYXNlY21wCgpuYmEgIDMgSmFuIDAwIDE1OjMyOjU5CiAgICAtIHBhcnNlLmM6IGZpeCBGaWxlIHZhcmlhYmxlIGJlaW5nIGxlZnQgcG9pbnRpbmcgaW50byB0aGUgc3RhY2suCiAgICAJSWdub3JlIC5pbmRleCBmaWxlIG9uIFdJTjMyIHBsYXRmb3JtCgpuYmEgIDMgSmFuIDAwIDE1OjM0OjIyCiAgICAtIG1pYi5jOiBhbHNvIG5vdGUgVEVYVFVBTCBDT05WRU5USU9OIGluIC1UZCBvdXRwdXQKCm5iYSAgMyBKYW4gMDAgMTU6Mzk6NDAKICAgIC0gc25tcGNtZC4xOiBhZGQgc25tcGJ1bGtnZXQgdG8gbGlzdCBvZiBhcHBsaWNhdGlvbnMKICAgIC0gc25tcHRyYW5zbGF0ZS4xOiBleHBsYWluIC1UIG91dHB1dHMKICAgIC0gc25tcHRyYXBkLmNvbmYuNS5kZWY6IGRlZmFsdCB0cmFwaGFuZGxlciBpcyBpbXBsZW1lbnRlZAoKaGFyZGFrZXIgIDQgSmFuIDAwIDA4OjU4OjI0CiAgICAtIChSRUFETUUsIEZBUSk6IEphcGFuIG1pcnJvciBsb2NhdGlvbiBjaGFuZ2UuCgpoYXJkYWtlciAgNCBKYW4gMDAgMTA6MzM6NTQKICAgIC0gKE1ha2VmaWxlLmluKTogaW5zdGFsbCBzdHJ1Y3QuaAoKaGFyZGFrZXIgIDQgSmFuIDAwIDEwOjM1OjA2CiAgICAtIChzbm1wX2FnZW50LmMpOiBkZWFsIHdpdGggYmxvY2tpbmcgYmV0dGVyIGluIHNubXBfYWdlbnRfY2hlY2tfYW5kX3Byb2Nlc3MoKS4KCmhhcmRha2VyICA0IEphbiAwMCAxNjoyNzo0NQogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBTYW5kZXIgU3RlZmZhbm46CiAgICAgIC0gQWRkIC1JL3Vzci9pbmNsdWRlL3JwbSBiZWNhdXNlIG9mIGJhZGx5IHdyaXR0ZW4gcnBtIGhlYWRlciBmaWxlcy4KCm5iYSAgNCBKYW4gMDAgMjI6MTI6MTAKICAgIC0gRVhBTVBMRS5jb25mLmRlZiwgRkFRLCBzbm1wZC5jb25mLjUuZGVmOiByZW1vdmUgYWxsIHRyYWNlcyBvZiBzZWN1cml0eQogICAgCW1vZGVsICJhbnkiIGluICJncm91cCIgY29uZmlndXJhdGlvbiBkaXJlY3RpdmVzCgpuYmEgIDQgSmFuIDAwIDIzOjUwOjI3CiAgICAtIHBhcnNlLmM6ICNpZmRlZiBzb21lIHZhcmlhYmxlcyBub3QgdXNlZCB1bmRlciB3aW4zMgoKbmJhICA0IEphbiAwMCAyMzo1MToxMQogICAgLSBzbm1wdHJhcGQuYzogaW1wbGVtZW50IHRyYW5kIGhhbmRsZXJzIGZvciB3aW4zMgoKZGF2ZXMgIDYgSmFuIDAwIDAxOjU4OjU2CiAgICAtIChtaWJncm91cC9taWJJSS5jKTogUmVtb3ZlIHJlZHVuZGFudCBmaWxlCgpoYXJkYWtlciAgNiBKYW4gMDAgMDg6NTc6MzEKICAgIC0gKHV0aWxfZnVuY3MuaCk6IHByb3Blcmx5IHdyYXAgc3RydWN0LmggaW5jbHVkZSBkaXJlY3RpdmUgZm9yCiAgICAgIG5vbi1zb3VyY2UtZGlyZWN0b3J5IGluY2x1ZGUuCgptYXJ6ICA2IEphbiAwMCAxMjo1Njo1MAogICAgdXBkYXRlIHN5bnRheCAoZXhhY3QpCgptYXJ6ICA2IEphbiAwMCAxMzowNzowMwogICAgd2Ugc2hvdWxkIG5vdCBwcmludCB0byBzdGRlcnIgaWYgc3RkZXJyIGxvZ2dpbmcgaXMgZGlhYmxlZCAtIHRoaXMgdGhvd3Mgb2ZmIHRoZSBhbGlnbm1lbnQgb2YgdGVzdCBvdXRwdXQgZm9yICdtYWtlIHRlc3QnIGluIGJvdGggdWNkLXNubXAgYW5kIFBlcmwvU05NUAoKbWFyeiAgNiBKYW4gMDAgMTM6MTQ6MTAKICAgIHVwZGF0ZSBjb25maWcgYWNjZXNzIHN5bnRheCAoZXhhY3QpCgpoYXJkYWtlciAgNiBKYW4gMDAgMTU6MDg6MjgKICAgIC0gKENPUFlJTkcpOiB5MmsgYnVnLgoKaGFyZGFrZXIgIDYgSmFuIDAwIDE1OjA4OjQ4CiAgICAtIChtaWIyYyk6IHJlbW92ZWQgYSBkZWJ1Z2dpbmcgc3RhdGVtZW50LgoKaGFyZGFrZXIgIDYgSmFuIDAwIDE1OjA5OjIwCiAgICAtIChtaWIyYy5jb25mKTogdW5xdW90ZWQgcXVvdGVzIHF1b3RlZC4KCmhhcmRha2VyICA3IEphbiAwMCAwOToyOTowNgogICAgLSAoc25tcF9hZ2VudC5jKTogYmV0dGVyIGhhbmRsaW5nIG9mIHdyaXRlIGZhaWx1cmVzLgoKaGFyZGFrZXIgIDcgSmFuIDAwIDEwOjM4OjQ4CiAgICAtIChzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKTogdXBkYXRlIHRvIHY0IEFQSSBzZXQgY29kZS4KCmhhcmRha2VyICA3IEphbiAwMCAxMToyMjo0MAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgU3Rvcnk6CiAgICAgIC0gaGFuZGxlIG11bHRpcGxlIHRyYW5zbGF0ZWQgT0lEcy4KCmhhcmRha2VyICA3IEphbiAwMCAxNjoyMTo1MAogICAgLSAodmFjbV92YXJzLmMpOiBwcm9wZXJseSBncm91cCBydy9yb3VzZXJzIGludG8gdXNtIG5vdCB2MS92MmMuCgpuYmEgIDcgSmFuIDAwIDIzOjQzOjEwCiAgICAtIGNvbmZpZ3VyZS5pbjogc29tZSBtaXNzaW5nICJ4IiBpbiB0ZXN0cyBmb3IgLS13aXRoLW9wZW5zc2wgYW5kCiAgICAJLS1kaXNhYmxlLWRldmVsb3BlcgoKbmJhICA4IEphbiAwMCAwMDo1NjozMAogICAgLSBjb25maWd1cmUuaW46IGJ1Z2ZpeCBmb3IgYSBidWdmaXggYnVnCgptc2xpZmNhayAgOCBKYW4gMDAgMTE6NDQ6NTgKICAgIEZpeCBidWlsZCBmb3IgTGludXggUmVkSGF0IDYuMSAoY2FudCBsaW5rIGxpYndyYXAgd2l0aG91dCBsaWJuc2wpLgoKbXNsaWZjYWsgIDggSmFuIDAwIDEyOjA3OjQ0CiAgICBVc2Uga25saXN0IGlmZiBhaXg0IGFuZCBIQVZFX0tOTElTVCBbbm90IGNvbXBsZXRlIHcvbyBjb25maWd1cmUgbW9kc10KCmRhdmVzIDEwIEphbiAwMCAwMTozNzozMgogICAgLSAoYWdlbnQvbWliZ3JvdXAvbWliSUkuaCk6IFJlLXJlbW92ZSByZWR1bmRhbnQgcHJvdG90eXBlLgoKZGF2ZXMgMTAgSmFuIDAwIDAyOjMxOjM5CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBEaWZmZXJlbnRpYXRlIG1heC1yZXBldGl0aW9uIGFuZCBub24tcmVwZWF0ZXIgZXJyb3JzLgoKZGF2ZXMgMTAgSmFuIDAwIDAzOjA2OjQyCiAgICAtIChhZ2VudC9zbm1wX2FnZW50LmMpOiBDb3VudCBudW1iZXJzIG9mIHZhcmlhYmxlcyByZXF1ZXN0ZWQvc2V0CgpkYXZlcyAxMCBKYW4gMDAgMDY6MTI6NDAKICAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiBSZS1zdHJ1Y3R1cmUgZ2V0X3VwdGltZSgpIHRvIGNhY2hlIGJvb3QgdGltZS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxMzoxNDowMwogICAgQWxsb3cgTVNWQysrIDUueCB1c2VycyB0byBidWlsZCB1c2luZyB0aGlzIHdvcmtzcGFjZS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxMzoyMTozMAogICAgUXVhbGlmeSB1c2Ugb2Ygd2l0aHZhbCB0byBkZWZpbmUgbGlicmFyeSBhbmQgaW5jbHVkZSBzZWFyY2ggcGF0aHMuCgptYXJ6IDEwIEphbiAwMCAxNDoyMToxNAogICAgQ2hlY2tpbmcgaW4gU05NUC0zLjEuMGIxCgptYXJ6IDEwIEphbiAwMCAxNDozNDo1MAogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAxMCBKYW4gMDAgMTQ6NDA6MDQKICAgIGFkZCBtaWJsb2FkCgpoYXJkYWtlciAxMCBKYW4gMDAgMTU6MzY6MTgKICAgIC0gKG1pYmluY2wuaCk6IGluY2x1ZGUgc3RkbGliLmggYW5kIG1hbGxvYy5oLgoKaGFyZGFrZXIgMTAgSmFuIDAwIDE1OjM2OjQwCiAgICAtIChTdjNjb25maWcpOiByZW1vdmUgdGhlIHRyYWlsaW5nIHNwYWNlLgoKaGFyZGFrZXIgMTAgSmFuIDAwIDE1OjM4OjQ0CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIG1ha2UgLS13aXRob3V0LWVmZW5jZSB3b3JrLgogICAgICAtIGNoZWNrIGZvciAtbG5zbCBtb3JlIGV4cGxpY2l0bHkuCgptc2xpZmNhayAxMCBKYW4gMDAgMTY6MzA6NTEKICAgIHVjZERlbW9QdWJsaWMuYyAtIHJlbW92ZSB1bmluaXRpYWxpemVkIHZhcmlhYmxlcyBmcm9tIHdyaXRlIG1ldGhvZC4KICAgIHNubXBfdmFycy5jICAgICAtIHByb3BlciBvaWQgY29tcGFyZTsgbm8gY29weSBmcm9tIHNhdmUgaWYgb2lkcyBleGFjdCBtYXRjaAogICAgc25tcGQuYyAgICAgICAgIC0gdGVybWluYXRlIHN0YXRlbWVudC4KCm1zbGlmY2FrIDEwIEphbiAwMCAxNjozMToxNgogICAgc25tcHRyYW5zbGF0ZS4xICAgLSByZW1vdmUganVuayBsaW5lLgoKbXNsaWZjYWsgMTAgSmFuIDAwIDE2OjMxOjM4CiAgICBzbm1wdHJhbnNsYXRlLmMgIC0gc2ltcGxlIGRlZmF1bHQgY2FzZS4KCm1zbGlmY2FrIDEwIEphbiAwMCAxNjozMjowOAogICAgc25tcF9hcGkuYyAgICAtIGJldHRlciBjb21tZW50IGZvciBzbm1wX29pZF9jb21wYXJlLgogICAgcmVhZF9jb25maWcuYyAtIHJlbW92ZSBzaXplb2YodV9jaGFyKSBmcm9tIG1hbGxvYyBzaXplIGNhbGMuCiAgICBzY2FwaS5oICAgICAgIC0gc3BlbGwgY2hlY2suCgptc2xpZmNhayAxMSBKYW4gMDAgMDE6MzM6NDUKICAgIFRyb2xsaW5nIGZvciBtYWxsb2MgZXJyb3JzOyBtb3JlIGdyYWNlZnVsIGRlZ3JhZGF0aW9uLgoKbXNsaWZjYWsgMTEgSmFuIDAwIDAxOjUzOjA4CiAgICBHbGVhbiByZWZzIHRvIG1pYklJLm8gZnJvbSB0aGlzIG1ha2VmaWxlLgoKbXNsaWZjYWsgMTEgSmFuIDAwIDA3OjQ0OjUwCiAgICBBZGQgSU5fVUNEX1NOTVBfU09VUkNFIHRvIG5vdCBicmVhayBXaW4zMiBidWlsZHMuCgptc2xpZmNhayAxMSBKYW4gMDAgMDc6NTk6MjMKICAgIEtlZXAgd2luMzIgcmVsZWFzZSBidWlsZCBmcm9tIGJyZWFraW5nLgoKbXNsaWZjYWsgMTEgSmFuIDAwIDA4OjEwOjEwCiAgICBJbml0IGZpbGUgY291bnQgYXQgemVybywgbm90IGJ5IGluY3JlbWVudGluZyByYW5kb20gdmFsdWUuCgptc2xpZmNhayAxMSBKYW4gMDAgMDk6MTM6MzgKICAgIFJlc3RvcmUgbWVtZHVwIHVzYWdlIHRvIGl0cyBmb3JtZXIgbHVzdGVyLgoKbWFyeiAxMSBKYW4gMDAgMTA6Mzc6MjEKICAgIHJlbW92ZSBiYWQgc2Vzc2lvbiB0ZXN0IC0gc2Vzc2lvbi50IGhhcyBpdCBhbHJlYWR5IC0gbm90ZSB0aGUgY2FsbCB0byBnZXRob3N0YnluYW1lIGNhbiBoYW5nIGZvciBzb21lIHRpbWUgaWYgRE5TIGlzIG5vdCBzZXR1cCBjb3JyZWN0bHkgLSBhbnlvbmUga25vdyBhIHdheSBhcnJvdW5kIHRoaXM/Cgptc2xpZmNhayAxMSBKYW4gMDAgMTU6MDU6MDkKICAgIFVzZSBDRkxBR1Mgd2hlbiBsaW5raW5nIChjb3VsZCBoYXZlIHByb2ZpbGUgc3dpdGNoLCBldGMpLgoKaGFyZGFrZXIgMTIgSmFuIDAwIDExOjE2OjI3CiAgICAtIChzbm1wdjMuYyk6IGNhc3QgbWFsbG9jIHJldHVybnMuCgptc2xpZmNhayAxMiBKYW4gMDAgMjE6MDk6NDcKICAgIFVzZSBERUJVR01TR09JRCBsaWJlcmFsbHksIHJlcGxhY2luZyBzcHJpbnRfb2JqaWQ7IHNtYWxsIHNwZWVkdXAuCgpkYXZlcyAxMyBKYW4gMDAgMDI6NDY6NDcKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogUmVtb3ZlIGV4dHJhbmVvdXMgYnJhY2tldC4KCm1zbGlmY2FrIDEzIEphbiAwMCAwNTozNjoyMQogICAgTm8gZ2V0X2Jvb3R0aW1lIHN1cHBvcnQgZm9yIGN5Z3dpbiAoeWV0KS4gSG9wZWZ1bGx5IGEgdGVtcG9yYXJ5IGNvbmRpdGlvbi4KCmRhdmVzIDEzIEphbiAwMCAwNjozMTo0NAogICAgLSAoc25tcGxpYi9wYXJzZS5bY2hdKTogVW5sb2FkIE1JQiBtb2R1bGUKICAgIAkoTi5COiBTb21ld2hhdCBzaW1wbGlzdGljIHdpdGggcmVnYXJkIHRvIG11bHRpcGx5LWxvYWRlZCBub2RlcykKCmRhdmVzIDEzIEphbiAwMCAwNjozMzo0MAogICAgLSAoc25tcGxpYi9wYXJzZS5jKTogTW9yZSBjb21wbGV0ZSBoYW5kbGluZyBvZiB1bmxvYWRpbmcgTUlCIG1vZHVsZXMuCgptc2xpZmNhayAxNCBKYW4gMDAgMDk6MzM6MzkKICAgIFNtYWxsIGNvbXBpbGUgZml4IGFuZCBkZWJ1ZyBtZXNzYWdlIHJlc3RvcmF0aW9uLgoKaGFyZGFrZXIgMTQgSmFuIDAwIDExOjM0OjI1CiAgICAtIChidWctcmVwb3J0KTogZ3JlcCBmb3IgY29uZmlndXJlIGZsYWdzCgpoYXJkYWtlciAxNCBKYW4gMDAgMTY6MDk6MDkKICAgIC0gKHNjYXBpLmMpOiBpbXBsZW1lbnQgREVTIGVuY3J5cHRpb24uCgpoYXJkYWtlciAxNCBKYW4gMDAgMTY6MTA6MjkKICAgIC0gKE5FV1MpOiByZW1vdmUgZXhwb3J0IGNvbnRyb2wgbm90ZSBhYm91dCBERVMuCgpkYXZlcyAxNyBKYW4gMDAgMDY6MTM6MzkKICAgIC0gKG1hbi9zbm1wdHJhcGQuOCk6IERlc2NyaWJlIGRlZmF1bHQgbG9nZ2luZyBiZWhhdmlvdXIuCgpkYXZlcyAxNyBKYW4gMDAgMDk6MDI6MzIKICAgIC0gKGFnZW50L3NubXBfdmFycy5jKTogRGlzY2FyZCAidG9vLWxhdGUiIHJlc3BvbnNlcyBmcm9tIG92ZXJsYXBwZWQgcmVnaW9ucy4KCm1hcnogMTcgSmFuIDAwIDEyOjQ3OjU4CiAgICBhZGRlZCB2MiB0cmFwCgptYXJ6IDE4IEphbiAwMCAwNzowMDoyNgogICAgbW9kaWZpZWQgZm9yIHYyLXRyYXAuCgptYXJ6IDE4IEphbiAwMCAwNzo1NDoxMgogICAgZml4IGVycm9yIG1lc3NhZ2VzIGFuZCByZXR1cm4gdmFscyBmb3IgdHJhcCBmdW5jcywgY2xlYW4gdXAgcGR1Cgptc2xpZmNhayAxOCBKYW4gMDAgMDg6MTQ6NDIKICAgIFByZXZlbnQgYXJyYXkgYm91bmRzIGVycm9yIHdoZW4gY3JlYXRpbmcgc3BlY2lmaWMgdHJhcCBvaWQuCgptc2xpZmNhayAxOCBKYW4gMDAgMTQ6MjM6NDQKICAgIExhdGVzdCB2bXN0YXRfc29sYXJpczIgZnJvbSB0aGUgYXV0aG9yIEpvY2hlbiBLbWlldHNjaC4KCm1zbGlmY2FrIDE4IEphbiAwMCAyMToyMjowNgogICAgQ2xlYW51cCBhcm91bmQgaXA2X3ZhcnMuaCBpbmNsdWRlIChubyAjaWYgMCkKCm1zbGlmY2FrIDE4IEphbiAwMCAyMToyNTo1MwogICAgUmVtb3ZlIGNvbW1lbnRlZCBvdXQgb2JqZWN0cyB0aGF0IGFyZSBNQVgtQUNDRVNTIG5vdC1hY2Nlc3NpYmxlLgoKbXNsaWZjYWsgMTggSmFuIDAwIDIxOjI5OjAxCiAgICAxLk1ha2Ugc25tcF9nZXRfZG9fbG9nZ2luZyB2aXNpYmxlIGZyb20gRExMCiAgICAyLkFwcGx5IFdpbjMyIHBhdGNoIGZyb20gUi5TdG9yeSB0byBhY3RpdmF0ZSBtaWIgc3RhdHMgbW9kdWxlIChzbm1wX21pYikuCgptc2xpZmNhayAxOCBKYW4gMDAgMjE6Mzc6MDIKICAgIENvbnNpc3RlbnQgZ2V0cGFnZXNpemUgKGZpcnN0IGRpdmlkZSBieSAxMDI0KS4KCmRhdmVzIDIwIEphbiAwMCAwNDoyNTowNQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU3VwcG9ydCBzZWxlY3RpdmUgYmluZGluZyBvZiBzZXJ2ZXIgYWRkcmVzc2VzLgoKbXNsaWZjYWsgMjEgSmFuIDAwIDAxOjQ2OjA0CiAgICBSZW1vdmUgcGFydHkgY3J1ZDsgc3BlbGwgY2hlY2suCgptc2xpZmNhayAyMSBKYW4gMDAgMDE6NDY6NDEKICAgIEFkZCBjb25zdCB0byBjbGVhbnVwIGEgZmV3IHNpZ25hdHVyZXMuCgptc2xpZmNhayAyMSBKYW4gMDAgMDE6NDk6MzUKICAgIE1pbmltaXplIGRhdGEgaGFuZGxpbmcgYW5kIHVzZSByZWdpc3RlciB2YXJpYWJpZXMgaW4KICAgIHNubXBfb2lkX2NvbXBhcmUgYW5kIGNvbXBhcmVfdHJlZS4KCm1hcnogMjEgSmFuIDAwIDA3OjI3OjEzCiAgICBhZGRlZCB2MyBpbmZvcm0KCm1hcnogMjEgSmFuIDAwIDA4OjAwOjI3CiAgICBpbmZvcm0uCgptYXJ6IDIxIEphbiAwMCAwODoxMzoyNQogICAgaW5mb3JtCgptYXJ6IDIxIEphbiAwMCAxMDo0NzoyNAogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbXNsaWZjYWsgMjEgSmFuIDAwIDExOjE5OjA5CiAgICBjb25maWdfYXJjaF9yZXF1aXJlIHNvbGFyaXMyIHZlcnNpb24gb2Ygdm1zdGF0LgoKbmJhIDIzIEphbiAwMCAwODo1MTozOQogICAgLSBwYXJzZS5jOiBhZGQgc29tZSBtb3JlIGVycm9yIGNoZWNraW5nIHRvIGdldG9pZAoKbmJhIDIzIEphbiAwMCAxMjo0MjoxMQogICAgLSBwYXJzZS5jOiBmaXggbWVyZ2luZyBvZiBhbm9ueW1vdXMgbm9kZXMgd2hlbiB0aGV5IGFyZSBuYW1lZAoKbmJhIDIzIEphbiAwMCAxMjo0Mzo1NAogICAgLSBwYXJzZS5jOiBlcnJlbm91cyA9PiBlcnJvbmVvdXMKCm1hcnogMjMgSmFuIDAwIDE2OjQxOjA2CiAgICBoYW5kbGUgYWRkaW5nIE9QQVFVRSB2YXJzIGZvciBzZXR0aW5nIGFuZCB0cmFwcyBldGMuCgpkYXZlcyAyNCBKYW4gMDAgMDc6MjE6MzQKICAgIC0gKGV4YW1wbGVzL3tleGFtcGxlLHdvbWJhdH0uW2NoXSk6CiAgICAgIC0gQ29uc29saWRhdGVkIGV4YW1wbGUgbW9kdWxlcyBpbnRvIG9uZSwgaW5jbHVkaW5nIGNvbmZpZyBhbmQgU0VUIHN1cHBvcnQuCgptYXJ6IDI0IEphbiAwMCAwODo1OTozMgogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbXNsaWZjYWsgMjQgSmFuIDAwIDA5OjQ0OjQ1CiAgICBNYWtlIHN1cmUga3N0YXRfZmQgaXMgaW5pdGlhbGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQuCgptc2xpZmNhayAyNCBKYW4gMDAgMDk6NTU6MzIKICAgIEZpeCBCdWcgIzE0NCBpdGVtcyAxLDMsNCA6IGNhc2UgaW5zZW5zaXRpdmUgY2hlY2sgZm9yICJhbGwiIGtleXdvcmQuCgptc2xpZmNhayAyNCBKYW4gMDAgMTA6MDU6MTIKICAgIEl0b2p1bidzIG5ldGJzZCBFTEYgcGF0Y2ggKyByZW1vdmUgd29tYmF0IFtEYXZlJ3MgZXhhbXBsZSBmaXhdCgptc2xpZmNhayAyNCBKYW4gMDAgMTA6MTQ6NTYKICAgIEZpeCBwcmludGluZyBJTVBMSUVEIGluZGV4IChmcm9tIGFzc29jaWF0ZSBvZiBKLiBLbWlldHNjaCkgbW9kaWZpZWQgYW5kIGFwcGxpZWQuCgptYXJ6IDI0IEphbiAwMCAxMDozNjo0MwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAyNSBKYW4gMDAgMDY6NDk6NDMKICAgIHN5bnRheCBmb3Igd2luMzIgYnVpbGQKCm1hcnogMjUgSmFuIDAwIDExOjQ3OjEyCiAgICBhZGQgbWlzc2luZyBzeW5ib2xzIGZvciBwZXJsL1NOTVAgbW9kdWxlCgptYXJ6IDI1IEphbiAwMCAxMjowNTo1OQogICAgYWRkaXRpb25hbCB3aW4zMiBpbnN0YWxsIG5vdGVzCgpuYmEgMjUgSmFuIDAwIDEzOjUyOjQyCiAgICAtIHBhcnNlLmM6IGZpeCBhIG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gb2YgdGNfaW5kZXgKCmhhcmRha2VyIDI1IEphbiAwMCAxMzo1NTozMwogICAgLSAodmVzdGludGVybmV0dC9kaXNraW8uW2NoXSk6IFJhZ25hciBLanJzdGFkJ3MgZGlza2lvIG1pYi4KCmhhcmRha2VyIDI1IEphbiAwMCAxMzo1NjowMgogICAgLSAoVkVTVC1JTlRFUk5FVFQtTUlCLnR4dCk6IFJhZ25hciBLanJzdGFkJ3MgZGlza2lvIG1pYi4KCm5iYSAyNSBKYW4gMDAgMTQ6MTI6NTgKICAgIC0gSE9TVC1SRVNPVVJDRVMtTUlCLnR4dCwgSE9TVC1SRVNPVVJDRVMtVFlQRVMudHh0LCBNYWtlZmlsZS5pbjoKICAgIAlVcGRhdGUgdG8gdGhlIGN1cnJlbnQgZHJhZnQgSE9TVC1SRVNPVVJDRVMgKGRyYWZ0LW9wcy1ob3N0bWliLTAxKQoKaGFyZGFrZXIgMjUgSmFuIDAwIDE0OjQ3OjU5CiAgICAtIChjb25maWd1cmUpOiBoZWxwIHVwZGF0ZQoKaGFyZGFrZXIgMjUgSmFuIDAwIDE0OjUwOjU2CiAgICAtIChzbm1wX2FsYXJtLjMsIHNubXBfYWxhcm0uYyk6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAgLSBmaXggcmVnaXN0cmF0aW9uIGZ1bmN0aW9uIHRvIGRvIHdoYXQgaXQgc2F5cyBpdCBzaG91bGQgZG8uCgptc2xpZmNhayAyNSBKYW4gMDAgMTk6MzA6NTEKICAgIExhcmdlciBidWZmZXIgZm9yIHByaW50X21vZHVsZV9uYW1lOyBGaXggcG9zc2libGUgbnVsbCBkZXJlZiBpbiBnZXRfdGMuCgptc2xpZmNhayAyNSBKYW4gMDAgMjE6NDY6MTQKICAgIG1pYi5jOnByaW50X3RyZWVfbm9kZSAtIHNob3cgbW9kdWxlIG5hbWUgb25jZSBpbiAtLSBGUk9NOwogICAgcGFyc2UuYzogc2hvdyAiQ2Fubm90IGZpbmQgbW9kdWxlIiBvbmNlIHBlciBtaXNzaW5nIG1vZHVsZS4KCm1zbGlmY2FrIDI2IEphbiAwMCAwNzoxNDo1MAogICAgZml4IGNvbXBpbGUgZXJyb3Igd2hlbiAtLXdpdGhvdXQtcm9vdC1hY2Nlc3MgaXMgdXNlZCAoc3RyYXVzc0BpYnIuY3MudHUtYnMuZGUpCgptc2xpZmNhayAyNiBKYW4gMDAgMDc6MjY6MjIKICAgIEFja25vd2xlZGdlIG1vcmUgY29udHJpYnV0b3JzLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDEwOjI0OjIxCiAgICAtIChnZXRWYWx1ZXMucG0pIGdldFZhbHVlcy5wbSB3YXMgbm90ZWQgbWlzc2luZwoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjI5OjU0CiAgICAtIChVQ0QtRElTS0lPLU1JQi5pbmMsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVkVTVC1JTlRFUk5FVFQtTUlCLnR4dCk6CiAgICAgIFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIGZpeCB0aGUgZGlza2lvIG1pYiwgY29udmVydCB0byBTTUl2MiwgYW5kIG1vdmUgdG8gdWNkRXhwZXJpbWVudGFsLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjMwOjQyCiAgICAtIChVQ0QtRExNT0QtTUlCLnR4dCk6IFBhdGNoIGZyb20gSnVlcmdlbiBTY2hvZW53YWVsZGVyOgogICAgICAtIHByZWZpeCBvaWQgd2l0aCAidWNkIi4KCmhhcmRha2VyIDI2IEphbiAwMCAxNTozMTowMAogICAgLSAoVUNELUlQRklMVEVSLU1JQi50eHQpOiBQYXRjaCBmcm9tIEp1ZXJnZW4gU2Nob2Vud2FlbGRlcjoKICAgICAgLSBwcmVmaXggb2lkcyB3aXRoICJ1Y2QiLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE1OjMyOjI1CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBKdWVyZ2VuIFNjaG9lbndhZWxkZXI6CiAgICAgIC0gY2xlYW4gdXAgYW5kIHJlZm9ybWF0IHN1Yi1yZWdpc3RyYXRpb24gY29tbWVudHMuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTU6MzQ6MjAKICAgIC0gKFVDRC1ERU1PLU1JQi50eHQsIFVDRC1ESVNLSU8tTUlCLnR4dCwgVUNELURMTU9ELU1JQi50eHQsCiAgICAgIFVDRC1JUEZJTFRFUi1NSUIudHh0LCBVQ0QtSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjb3JyZWN0IHVjZC1zbm1wLWNvZGVycyBlbWFpbCBhZGRyZXNzIHRvIHJlcGxhY2UgImVjZSIgd2l0aCAidWNkLXNubXAiLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE2OjA2OjMxCiAgICAtIChhZ2VudF90cmFwLmMsIGFnZW50X3RyYXAuaCwgc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gRnJhbmsgU3RyYXVzczoKICAgICAgLSBhZGQgYWJpbGl0eSB0byBhbGxvdyBzZW5kaW5nIHRyYXBzIHRvIHBvcnRzIG90aGVyIHRoYW4gMTYyLgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE2OjI4OjIyCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTY6NTM6NDEKICAgIC0gKHNubXB2My5jKTogZml4IHByaXYga2V5IGxlbmd0aCBleHRyYXBvbGF0aW9uLiAgU2hvdWxkIGJlIGRvbmUgZGlmZmVyZW50bHk/LgoKaGFyZGFrZXIgMjYgSmFuIDAwIDE2OjU0OjQzCiAgICAtIChTdjNERVNjb25maWcsIFQwMjNzbm1wdjNnZXRNRDVERVMpOiBmaXggREVTIHRlc3Qgc28gaXQgd29ya3MuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTc6MTU6MDcKICAgIC0gKHNubXBjbWQuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYsIHNubXB1c20uMSk6CiAgICAgLSBiYWRseSBkb25lIHVwZGF0ZXMuCgpoYXJkYWtlciAyNiBKYW4gMDAgMTc6MTg6MTcKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4xLnByZTIgKQoKaGFyZGFrZXIgMjYgSmFuIDAwIDE3OjMyOjQxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGFsbG93ICcsJyBzZXBlcmF0ZWQgLS13aXRoLSotbW9kdWxlcyBmbGFnIHZhbHVlcy4KCmhhcmRha2VyIDI2IEphbiAwMCAxOToyMjo1MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjb21tYSwgY29tbWEsIGNvbW1hLCBjb21tYSwgY29tbWEtY2hhbWVsZW9uLgoKaGFyZGFrZXIgMjcgSmFuIDAwIDA4OjMzOjQzCiAgICAtIChkZWZhdWx0X3N0b3JlLmMpOiBtYWtlIGNvbmZpZyBwYXJzZXIgaGFuZGxlICIiIChudWxsKSBwYXJzZWQgc3RyaW5ncy4KCm1hcnogMjcgSmFuIDAwIDExOjE0OjA5CiAgICByZW1vdmUgbm8tb3Agc25tcF9zeW5jaF9zZXR1cAoKbXNsaWZjYWsgMjcgSmFuIDAwIDE0OjUxOjM5CiAgICAgMS4gRml4IG1lbW9yeSBsZWFrIHdoZW4gYW5vbnltb3VzbHkgbmFtZWQgbm9kZXMgYXJlIHVzZWQuCiAgICAgMi4gSGFjayBhcm91bmQgc21pY25nJ3MgIlNNSSAiIHN0YXRlbWVudHMgdG8gcHJldmVudCBvdGhlciBtZW1vcnkgbGVha3MuCgptc2xpZmNhayAyNyBKYW4gMDAgMTY6MTM6NTgKICAgIFJlbW92ZSBoYWNrIGFyb3VuZCAiU01JIiB0b2tlbjsga2VlcCB0aGUgZ29vZCBwYXJ0IG9mIHRoZSBwcmV2aW91cyBwYXRjaC4KCm1zbGlmY2FrIDI4IEphbiAwMCAwNzoxODowOQogICAgU29tZSB2YXJpYWJsZSByZW5hbWluZyBmb3IgY29uc2lzdGVuY3ksIGVycm9yIGNoZWNraW5nCiAgICBpbXByb3ZlZCwgbWlzc2luZyBzdHJpbmcuaCBpbmNsdWRlZC4gIFBhdGNoIHN1cHBsaWVkIGJ5IGF1dGhvci4KCm1zbGlmY2FrIDI4IEphbiAwMCAxMjozMDoyMAogICAgRml4IHNwZWxsIExJVFRMRV9FTkRJQU4uIFRoYW5rcyB0byB0YWxtYW5AaGl0dC5ubC4KCm1zbGlmY2FrIDI4IEphbiAwMCAxMjozODoyMgogICAgQ2hhbmdlIGFnZW50eF97YnVpbGQscGFyc2V9X3Nob3J0IC4gVGhhbmtzIHRvIEdlcmFyZCBUYWxtYW5AaGl0dC5ubC4KCm1zbGlmY2FrIDI4IEphbiAwMCAxMjo1MjoyNQogICAgVGhpcyB3aXRoIHByZXZpb3VzIHR3byBjaGFuZ2VzIGNvbXBsZXRlcyBhIHBhdGNoIGZvciBpdGVtcyAyLDMsNAogICAgZm9yIGJ1ZyAjMTQ5LgoKbmJhIDMwIEphbiAwMCAwMzowMTo1MgogICAgLSBob3N0Lmg6IGNvbmZpZ19yZXF1aXJlX21pYihIT1NULVJFU09VUkNFUy1UWVBFUykKCm5iYSAzMCBKYW4gMDAgMDM6MDQ6MjIKICAgIC0gaHJfZGlzay5jOiBjb252ZXJ0IHRvIDFrIGJsb2NrcwoKbmJhIDMwIEphbiAwMCAwMzowOTozOAogICAgLSBocl9zdG9yYWdlLmM6IGNvbnZlcnQgZnJvbSBwYWdlcyB0byAxayBibG9ja3MKCm5iYSAzMCBKYW4gMDAgMDM6MTE6MjgKICAgIC0gaWYuYzogZGVmZW5zaXZlIHRlc3QgZm9yIG1pc3Npbmcgb2JqZWN0cyAoaXQgbWlnaHQgZmFpbCB0byBzaG93CiAgICAJZG93biBzdGF0dXMgcHJvcGVybHkpCgptYXJ6IDMwIEphbiAwMCAwODoxOTozNAogICAgY3JlYXRlIFYzIHVzZXIgZW50cnksIGNsZWFudXAKCm1hcnogMzAgSmFuIDAwIDEwOjQyOjM2CiAgICBjbGVhbiB1cCBiZWZvcmUgcmVsZWFzZSAtIHVwZGF0ZSB2ZXJzaW9uLCByZWxlYXNlIG5vdGVzCiAgICAKICAgIE5vdGU6IEtOT1dOIEJVR1MKICAgIHRoZSBuZXcgcXVvdGVkIE9DVEVUU1RSIGluc3RhbmNlIGlkZW50aWZpZXJzIHJldHVybmVkIGJ5IGdldF9zeW1ib2wKICAgIGFyZSBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBwZXJsL1NOTVAgbW9kdWxlIChfX2dldF9sYWJlbF9paWQpCgptYXJ6IDMwIEphbiAwMCAxMDo0NDozNwogICAgY2xlYW4gdXAgYmVmb3JlIHJlbGVhc2UgLSB1cGRhdGUgdmVyc2lvbiwgcmVsZWFzZSBub3RlcwogICAgCiAgICBOb3RlOiBLTk9XTiBCVUdTCiAgICB0aGUgbmV3IHF1b3RlZCBPQ1RFVFNUUiBpbnN0YW5jZSBpZGVudGlmaWVycyByZXR1cm5lZCBieSBnZXRfc3ltYm9sCiAgICBhcmUgbm90IGNvbXBhdGlibGUgd2l0aCB0aGUgcGVybC9TTk1QIG1vZHVsZSAoX19nZXRfbGFiZWxfaWlkKQogICAgCiAgICBub3Qgc3VyZSB0aGF0IHRoaXMgZXZlciB3b3JrZWQgLSB3aWxsIGhhdmUgdG8gbG9vayBhdCBvbGQgT0NURVRTVFIKICAgIGJlaGF2aW91ciBhbmQgc2VlIGhvdyB0byByZWNyZWF0ZSBpdAoKbWFyeiAzMCBKYW4gMDAgMTA6NTg6MDIKICAgIGNsZWFuIHVwIGJlZm9yZSByZWxlYXNlIC0gdXBkYXRlIHZlcnNpb24sIHJlbGVhc2Ugbm90ZXMgZXRjLgoKZGF2ZXMgMzEgSmFuIDAwIDAxOjA1OjE2CiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5oKTogTG9nIGZhaWxlZCBNSUIgcmVnaXN0cmF0aW9ucy4KCmRhdmVzIDMxIEphbiAwMCAwMTo0NToxNQogICAgLSAoYWdlbnQvYWdlbnRfdHJhcC5jKTogSW5jbHVkZSBpbnN0YW5jZSBzdWJpZGVudGlmaWVyIGluIHNubXBUcmFwT0lEIGFuZAogICAgCXNubXBUcmFwRW50ZXJwcmlzZSBPSUQgZGVmaW5pdGlvbnMuICAoVGhhbmtzIHRvIEdlcmFyZCBUYWxtYW4pCgpkYXZlcyAzMSBKYW4gMDAgMDI6NDA6MDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuW2NoXSk6IFJlc3RvcmUgdHJhZGl0aW9uYWwgc29ja2V0IGZpZWxkIG5hbWVzLgoKZGF2ZXMgMzEgSmFuIDAwIDAzOjAwOjE2CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmgpOiBBbHRlcm5hdGl2ZSBhcHByb2FjaCB0byBJcml4IHNvY2tldCBoYW5kbGluZy4KCmRhdmVzIDMxIEphbiAwMCAwMzowMzoxNQogICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKToKICAgICAgLSBBdHRlbXB0IHRvIGRldGVjdCBub24tdHJhZGl0aW9uYWwgc29ja2V0IGFkZHJlc3Mgc3RydWN0dXJlIChvbiBJcml4IDYueCkuCgpkYXZlcyAzMSBKYW4gMDAgMDM6MTQ6NTAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEluaXRpYWxpemUgYWRkcmxlbiBpbiBfc2Vzc19yZWFkKCkuICAoRnJhbmsgU3RyYXVzcykKCmRhdmVzIDMxIEphbiAwMCAwMzo0MTowOAogICAgLSAoQUdFTlQudHh0KTogUmV2aXNlZCBhbmQgdXBkYXRlZCB2ZXJzaW9uLgoKZGF2ZXMgMzEgSmFuIDAwIDA3OjQ5OjUwCiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgICAtIEltcHJvdmVkIGNoZWNraW5nIGZvciBJcml4LXN0eWxlIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZS4KCmRhdmVzIDMxIEphbiAwMCAwNzo1MTo1NAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5oKTogQXR0ZW1wdCB0byBtaW1pYyBJcml4LXN0eWxlIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZS4KCmRhdmVzIDMxIEphbiAwMCAwNzo1Mzo1MgogICAgLSAoc25tcGxpYi9hc24xLmMgc25tcGxpYi9zbm1wLmMgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcHVzbS5jKToKICAgICAgLSBEb24ndCBhc3N1bWUgc2l6ZV90IGlzIHNpZ25lZCAoUGVra2EgS3l0b2xhYWtzbykKCmRhdmVzIDMxIEphbiAwMCAwNzo1NTowNgogICAgLSAoc25tcGxpYi9zbm1wdjMuW2NoXSk6IERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQogICAgICAtIE4uQjogVGhpcyBjaGFuZ2VzIHRoZSBpbnRlcmZhY2Ugb2Ygc25tcHYzX2dlbmVyYXRlX2VuZ2luZUlEKCkgc2xpZ2h0bHkuCgpkYXZlcyAzMSBKYW4gMDAgMDc6NTY6MzgKICAgIC0gKGFwcHMvc25tcHRlc3QuYyk6IERvbid0IGFzc3VtZSBzaXplX3QgaXMgc2lnbmVkIChQZWtrYSBLeXRvbGFha3NvKQoKZGF2ZXMgMzEgSmFuIDAwIDA3OjU3OjU2CiAgICAtIChtaWJncm91cC9leGFtcGxlcy9leGFtcGxlLltjaF0pOgogICAgICAtIFByb3ZpZGUgYW4gZXhhbXBsZSBmb3IgaG93IHRvIHRyaWdnZXIgYSB0cmFwLgoKbWFyeiAzMSBKYW4gMDAgMTA6NDE6MTYKICAgIHNldCBEU19MSUJfRE9OVF9CUkVBS0RPV05fT0lEUyB0byBnZXQgcHJldmlvdWxzeSByZWxlYXNlZCBiZWhhdmlvdXIgb2YgZ2V0X3N5bWJvbCB3cnQgb2N0ZXQgYmFzZWQgaW5zdGFuY2UgaWRzIChpLmUuLCBubyBkb3VibGUtcXVvdGluZykKCmRhdmVzICAxIEZlYiAwMCAwMTo0OTo1NQogICAgLSAoYWNjb25maWcuaCBjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlIHNubXBsaWIvc25tcF9hcGkuaCk6CiAgICAgIC0gRml4IGJyb2tlbiBzZXR0aW5nIG9mIHNvY2tldCBhZGRyZXNzIHN0cnVjdHVyZSBjaG9pY2UuCgpkYXZlcyAgMSBGZWIgMDAgMDM6Mzc6MjUKICAgIC0gKGFnZW50eC9tYXN0ZXJfcmVxdWVzdC5jKTogRml4IHNlc3Npb24gSUQgaGFuZGxpbmcgd2hlbiBkZWxlZ2F0aW5nIHJlcXVlc3RzLgoKZGF2ZXMgIDEgRmViIDAwIDA0OjE5OjE2CiAgICAtIChjb25maWd1cmUuaW4gY29uZmlndXJlKTogQ2F0Y2ggY29tbW9uIGludmFsaWQgY29uZmlndXJlIG9wdGlvbnMuCgpkYXZlcyAgMSBGZWIgMDAgMDU6Mjc6MDMKICAgIC0gKEZBUSk6IEV4cGFuZCB0aGUgZGVzY3JpcHRpb24gb2YgZ2VuZXJhdGluZyB0cmFwcyBmcm9tIHRoZSBhZ2VudCBzbGlnaHRseS4KCmhhcmRha2VyICAxIEZlYiAwMCAwODozMjowMwogICAgLSAoZGlza2lvLiopOiBtb3ZlZCB0byB0aGUgdWNkLXNubXAgZGlyZWN0b3J5CgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6MzQ6MDkKICAgIC0gKGRpc2tpby5oKTogbG9hZCB0aGUgbWliLgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjM0OjI0CiAgICAtIChkaXNraW8uYyk6IG1vdmUgdG8gdWNkRXhwZXJpbWVudGFsLjE1LgoKaGFyZGFrZXIgIDEgRmViIDAwIDA4OjQzOjAzCiAgICAtIChORVdTKTogdXBkYXRlIChhZ2FpbikuCgpoYXJkYWtlciAgMSBGZWIgMDAgMDg6NDU6NDEKICAgIC0gKHNubXBjbWQuMSk6IC5QUCAtPiAuSVAgZm9yIC1PYi4KCmhhcmRha2VyICAxIEZlYiAwMCAwODo0NjowNwogICAgLSAoc25tcHVzbS4xKTogY2hhbmdlZCBjb250ZXh0IHN0cmluZyBpbiBleGFtcGxlcyB0byAiIi4KCm1zbGlmY2FrICAxIEZlYiAwMCAxMToyNjozNgogICAgRml4dXAgbW9yZSBzaWduZWQvdW5zaWduZWQgY29tcGFyaXNvbnMuCgpkYXZlcyAgMiBGZWIgMDAgMDE6MTI6MzcKICAgIC0gKGhvc3QvaHJfZGlzay5jKTogRml4IHNvbGFyaXMgaW5pdGlhbGlzYXRpb24sIHBsdXMgZXh0cmEgZGVidWdnaW5nIGluZm8uCgptc2xpZmNhayAgMiBGZWIgMDAgMDQ6NDQ6MjMKICAgIFJlbW92ZSBkZXBlbmRlbmNpZXMgb24gKG1vdmVkKSB2ZXN0aW50ZXJuZXR0L2Rpc2tpbwoKbmJhICAyIEZlYiAwMCAwNjo0NDozMQogICAgLSBzb2xhcmlzMi44Lmg6IFNvbGFyaXMgOCBzZWVtcyBjbG9zZSB0byBTb2xhcmlzIDcKCm5iYSAgMiBGZWIgMDAgMDY6NDU6MjUKICAgIC0gaHJfZGlzay5jOiBhZGQgTmV0QlNEIHN1cHBvcnQKCmhhcmRha2VyICAyIEZlYiAwMCAwNzoxNzoyOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1cGRhdGVkIC0taGVscAoKZGF2ZXMgIDIgRmViIDAwIDA4OjAyOjQ2CiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYyk6IENvcnJlY3RseSBoYW5kbGUgaW5kaXZpZHVhbGx5IGV4Y2x1ZGVkIGluc3RhbmNlcwoKbXNsaWZjYWsgIDIgRmViIDAwIDA4OjQyOjE3CiAgICBBbGxvdyAtQ28gdG8gYWZmZWN0IHRoZSBvdXRjb21lLgoKbXNsaWZjYWsgIDIgRmViIDAwIDA4OjUyOjQzCiAgICBmaXggdGhlIGZhdC1maW5nZXJpbmcgcGF0Y2ggSSBqdXN0IG1hZGUuIGZlaC4KCmhhcmRha2VyICAyIEZlYiAwMCAxMDo1MjozMwogICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBSb2JlcnQgTWlsZXM6CiAgICAgIC0gdmFyaW91cyBmaXhlczoKICAgICAgICAxKSBUaGUgZmlyc3QgcmVnaXN0cmF0aW9uIHJlcXVlc3QgY291bGQgYmUgbG9zdC4KICAgICAgICAyKSBSZWdpc3RyYXRpb24gZGVsZXRlIHJlcXVlc3RzIG5ldmVyIHJlY2VpdmVkIGEgcmVzcG9uc2UuCiAgICAgICAgMykgUmVnaXN0cmF0aW9uIGRlbGV0ZSByZXF1ZXN0cyB3ZXJlIG5vdCBmaW5kaW5nIHRoZSByZWdpc3RyYXRpb24gd2hlbiB0aGUKICAgICAgICAgICBkZWxldGUncyBwcmlvcml0eSB3YXMgc2V0IHRvIC0xLgogICAgICAgIDQpIE5vbi16ZXJvIHZhbHVlcyB3ZXJlIG5vdCBiZWluZyBlbmNvZGVkIHByb3Blcmx5IGluIHJlZ2lzdHJhdGlvbgogICAgICAgICAgIHJlc3BvbnNlcy4KCm1hcnogIDIgRmViIDAwIDE0OjE4OjA5CiAgICBhZGQgaW5zdHJ1Y3Rpb25zIGZvciBidWlsZGluZyB3LyBPcGVuU1NMIG9uIFZDKysKCm1zbGlmY2FrICAyIEZlYiAwMCAxNDoxODoyMgogICAgTGV0IGhyUHJvY2Vzc29yTG9hZCBvdXQgb2YgdGhlIGdlbmllJ3MgYm90dGxlLgoKbXNsaWZjYWsgIDIgRmViIDAwIDE2OjI0OjE1CiAgICBUb3VjaHVwIGZvciBidWlsZGluZyBtb3JlIE1JQiBtb2R1bGVzIGluIFdpbjMyIChNU1ZDKS4KCm1zbGlmY2FrICAyIEZlYiAwMCAxNjozNjoyMQogICAgVG91Y2h1cCB0byBidWlsZCBtb3JlIE1JQiBtb2R1bGVzIG9uIFdpbjMyLgoKZGF2ZXMgIDMgRmViIDAwIDAxOjM1OjEyCiAgICAtIChGQVEpOiBEb2N1bWVudCBjaGFuZ2VzIHRvIGFjY2VzcyBjb250cm9sIHN0dWZmLgoKbXNsaWZjYWsgIDMgRmViIDAwIDA0OjEyOjU3CiAgICBVbmRvIHVuaW5mb3JtZWQgY2hhbmdlIDogbG9hZCBhdmVyYWdlICE9IGF2ZXJhZ2UgdGltZSB0aGF0IENQVSBpcyBpZGxlLgoKbXNsaWZjYWsgIDMgRmViIDAwIDA2OjQzOjEwCiAgICBpbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmggdG8gbWFrZSB0aGUgVVNJTkdfIGNvbnN0YW50cyB2aXNpYmxlLgoKbWFyeiAgMyBGZWIgMDAgMDk6NDQ6MzcKICAgIHVwZGF0ZSBteSBlbWFpbAoKbXNsaWZjYWsgIDMgRmViIDAwIDA5OjU2OjQ4CiAgICBJbmNsdWRlIG1pYl9tb2R1bGVfY29uZmlnLmggZnJvbSBtaWJpbmNsLmgsIG5vdCB0b3AgbGV2ZWwgY29uZmlnLmguCgptYXJ6ICAzIEZlYiAwMCAxMDo0ODozNwogICAgYWRkIC11IFBJREZJTEUgdG8gc25tcHRyYXBkLCBub3cgd2UgbmVlZCAtYyAtQyA6KSwgYnR3IGlzIHRoZSB2YWx1ZSBvZiBvcHRhcmcgcmVsaWFibGUgYWZ0ZXIgZ2V0b3B0IGhhcyBiZWVuIGNhbGxlZCBhZ2Fpbi4uLml0IHNlZW1zIHRvIHdvcmsKCm1zbGlmY2FrICAzIEZlYiAwMCAxMjo1NzoyMAogICAgUmVtb3ZlIERPUy1zdHlsZSBsaW5lIHRlcm1pbmF0aW9uIChDUi1MRiAtLT4gTEYpLgogICAgbGlic25tcC5kZWYgLSByZW1vdmUgdW5uZWVkZWQgY29tbWVudCBhYm91dCBvYnNvbGV0ZSB2MnBhcnR5LgoKbXNsaWZjYWsgIDMgRmViIDAwIDEyOjU4OjI3CiAgICBOb3RlIHRoZSB3b21iYXQgaXMgcmVwbGFjZWQgYnkgZXhhbXBsZSBpbiBtb3JlIHBsYWNlcy4KCm1zbGlmY2FrICAzIEZlYiAwMCAxMzoyODozMQogICAgRm9sbG93IGNvbmRpdGlvbiBIQVZFX0dFVFBJRCBmb3IgcGlkX2ZpbGUgb2JqZWN0LgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjI5OjE5CiAgICAtIChkdW1teS8qKTogcmVtb3ZlZCwgdXNlIGV4YW1wbGUgaW5zdGVhZC4KCmhhcmRha2VyICAzIEZlYiAwMCAxNDo0NDozMwogICAgLSAoc3ViYWdlbnQuYyk6IGluY2x1ZGUgbWliX21vZHVsZV9jb25maWcuaC4KCmhhcmRha2VyICAzIEZlYiAwMCAxNDo0NjoxMAogICAgLSAoc3ViYWdlbnQuYyk6IHByb3RlY3Qgc3lzT1JUYWJsZSBjYWxsYmFja3Mgd2l0aCAjaWZkZWZzLgoKaGFyZGFrZXIgIDMgRmViIDAwIDE0OjUxOjQwCiAgICAtIChSRUFETUUpOiByZW1vdmUgZHVtbXkgcmVmZXJlbmNlLgoKbmJhICAzIEZlYiAwMCAyMzo1Nzo0OQogICAgLSBhZ2VudC9yZWdpc3RyeS5jLCBhZ2VudF90cmFwLmMsIGNsaWVudC5jOiBjaGFuZ2Ugc29tZSB0eXBlIGNhc3RzIGZyb20KICAgIAkoY2hhciAqKSB0byAodV9jaGFyICopIHRvcCBzaWxlbmNlIHNvbWUgd2FybmluZ3MuCgpuYmEgIDMgRmViIDAwIDIzOjU5OjU3CiAgICAtIG10X3N1cHBvcnQuaDogYW5vdGhlciB3YXkgb2YgZG9pbmcgbm90aGluZywgbm90IGdpdmluZyBhICJudWxsIGVmZmVjdCIKICAgIAl3YXJuaW5nIGZyb20gZ2NjLgoKbmJhICA0IEZlYiAwMCAwMDoxNjowMQogICAgLSByZWFkX2NvbmZpZy5jLCBtaWIuYzogZml4IHNvbWUgUEFUSCBzZXBhcmF0b3JzIGZyb20gY29uc3RhbnQgOiB0bwogICAgCUVOVl9TRVBBUkFUT1J7X0NIQVJ9CgpuYmEgIDQgRmViIDAwIDAwOjE3OjQ4CiAgICAtIGhyX2Rpc2suYzogQSBsaXR0bGUgY2xlYW51cCBvZiB0aGUgZGlzayBkZXZpY2UgZGVmaW5pdGlvbnMsIGFsc28gYWRkaW5nCiAgICAJU0NTSSB0byBGcmVlQlNEIDMKCm5iYSAgNCBGZWIgMDAgMDE6MjA6NTUKICAgIC0gdmFjbV92YXJzLmM6IHNsaWdodCByZXdvcmRpbmcgb2Ygd2FybmluZyBtZXNzYWdlCgpuYmEgIDQgRmViIDAwIDA0OjAwOjI3CiAgICAtIGhyX2Rpc2suYzogcmVhbGx5IGRvIHRoYXQgRnJlQlNEIHNjc2kgdGhpbmcKCm1hcnogIDQgRmViIDAwIDA2OjQ0OjI0CiAgICAgaGF2ZSBtaWIgbG9hZGluZyBhcGkgcmV0dXJuIHJlc3VsdCBjb2RlcwoKbWFyeiAgNCBGZWIgMDAgMDg6NTU6NDIKICAgIGFkZCBkZWZhdWx0cyBmb3IgdjIgdHJhcCBwYXJhbXMKCmhhcmRha2VyICA0IEZlYiAwMCAxMjowMTozMgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIE1ha2VmaWxlLmluKTogZmluZCwgbG9jYXRlLCBhbmQgdXNlIHBlcmwgaWYgZm91bmQuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTI6NDc6MjYKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB2My5jKTogcHJvdmlkZSB2MyBkZWZhdWx0cy4KCmhhcmRha2VyICA0IEZlYiAwMCAxMzoxMjoxOAogICAgLSAocmVhZF9jb25maWcuYyk6IGRvbid0IHByaW50IGZhaWxlZCBhY2Nlc3MgZXJyb3JzIChFQUNDRVMpLgoKaGFyZGFrZXIgIDQgRmViIDAwIDEzOjE1OjUxCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTM6NTA6MTUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMpOiBkb24ndCByZWFkIHRoZSBvcHQgY29uZmlnIGZpbGUgb3IgY2FsbAogICAgICBwb3N0X2NvbmZpZyBjYWxsYmFja3MsIHNpbmNlIHRoZSBsaWJyYXJ5IHRha2VzIGNhcmUgb2YgdGhhdCBub3cuCgptYXJ6ICA0IEZlYiAwMCAxMzo1MjowOAogICAgdXBkYXRlcyBmb3IgcGVybC9TTk1QIGJ1aWxkCgpoYXJkYWtlciAgNCBGZWIgMDAgMTM6NTY6MTkKICAgIC0gKHNubXB0cmFwZC5jKToKICAgICAgLSBpbXBsZW1lbnQgLWMgYW5kIC1DIGZsYWdzIGZvciBKb2UuCiAgICAgIC0gcmVkaWQgdGhlIGluaXQgc3RydWN0dXJlIHRvIG1ha2UgaXQgbG9vayBtb3JlIGxpa2UgdGhlIGN1cnJlbnQgYWdlbnQuCgpoYXJkYWtlciAgNCBGZWIgMDAgMTQ6MDE6MzAKICAgIC0gKHNubXB0cmFwZC44KTogZG9jdW1lbnQgLWMgYW5kIC1DLgoKbWFyeiAgNCBGZWIgMDAgMTU6MjE6NDEKICAgIGJ1aWxkIGZpeGVzIGFuZCB0ZXN0IGVuaGFuY2VtZW50cwoKbWFyeiAgNCBGZWIgMDAgMTU6NDQ6NDQKICAgIHVwZGF0ZXMgZm9yIHBlcmwvU05NUCBidWlsZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjQuMCAtPiBWNC4wLjEKCmhhcmRha2VyIDIzIEF1ZyA5OSAxNjo0NDoyNwogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIHRoZSBzbm1wdXNtLjEgbWFudWFsIHBhZ2UuCgptc2xpZmNhayAyNCBBdWcgOTkgMDQ6NDQ6NDcKICAgIENsZWFuIENScyBmcm9tIHJlYWRfY29uZmlnLHNubXBfbG9nZ2luZzsgY29tbWVudCBkZWZpbmUgVVNFX0FTTl9TSE9SVF9MRU4uCgptc2xpZmNhayAyNCBBdWcgOTkgMDU6MTE6MTMKICAgIFJlbW92ZSBBU05fU0hPUlRfTEVOIGhhY2sgLSBrbm93biB0byBkdW1wIGNvcmUgaW4gYWdlbnQuCgptc2xpZmNhayAyNCBBdWcgOTkgMDY6MTk6NDkKICAgIEFkZCAiLiIgdG8gUEFUSCBmb3IgUlVOVEVTVFM7IERyb3Agb3B0cmVzZXQgdG8gYnVpbGQgbW9zdCBwbGF0Zm9ybXMKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxMDoyNTo1MwogICAgLSh0ZXN0aW5nL2V2YWxfdG9vbHMpIC0gbGV0IHNvbWUgKEFJWCkgYWdlbnRzIHNldHRsZSBiZWZvcmUgZmlyaW5nIHJlcXVlc3RzLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDEyOjQ4OjIxCiAgICAtICh2YWNtX3ZhcnMuYyk6IGNvcnJlY3Qgc3lzT1JUYWJsZSBlbnRyeS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzozNjozNQogICAgLSAoc25tcHVzbS5jKTogY2hlY2sgZm9yIG51bGwgcmVzcG9uc2UgcG9pbnRlci4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzozNzozMQogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9hcGkuYywgc25tcHYzLmMpOgogICAgICAtIHByb3ZpZGUgZGVmVmVyc2lvbiB0b2tlbiBzdXBwb3J0IGluIHNubXAuY29uZiAoc29ydCBvZiBoYWNraXNoKS4KCmhhcmRha2VyIDI0IEF1ZyA5OSAxMzo0MToxOAogICAgLSAoVE9ETyk6IHJlbW92ZSBzbm1wdjMgc3VwcG9ydCA6LSkKCm1zbGlmY2FrIDI0IEF1ZyA5OSAxNDowNTozOQogICAgLSh0b3AvTWFrZWZpbGUuaW4pIC0gcmVtb3ZlIG1vcmUgZ2VuZXJhdGVkIGZpbGVzIHdpdGggZGlzdGNsZWFuIHJ1bGUuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTQ6MTU6NDAKICAgIC0gKGFsbF9zeXN0ZW0uaCk6IHJlbW92ZS4gIGFnYWluLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE0OjE3OjMzCiAgICAtKGhvc3QvaHJfc3dydW47bWliSUkvaWNtcCxpcDt1Y2Qtc25tcC9kaXNrLHByb2MpIGxvZ19wZXJyb3IgLS0+IHNubXBfbG9nX3BlcnJvcgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE1OjE0OjE4CiAgICAtKHNtdXguYykgYXBwbHkgTmljayBBbWF0bydzIHBhdGNoOiBwcmV2ZW50IFNNVVggY2xvc2Ugb24gcGFyc2Ugb3IgZXJyb3IuCgpoYXJkYWtlciAyNCBBdWcgOTkgMTU6NTk6NDIKICAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdmVyc2lvbiBzZXR0aW5nIGluIHNubXBfYXBpLmMuICBOb3QgbmVlZGVkIHRoZXJlLgoKaGFyZGFrZXIgMjQgQXVnIDk5IDE2OjAxOjU1CiAgICAtIChORVdTKTogNC4wLjEgdXBkYXRlCgptc2xpZmNhayAyNCBBdWcgOTkgMTY6MDU6MTUKICAgIC0oY29uZmlndXJlLiopIG1vdmUgc3RhdGVtZW50IGFib3V0IHVjZERlbW9QdWJsaWMgaW50byBjb21tZW50IGZpZWxkLgoKbXNsaWZjYWsgMjQgQXVnIDk5IDE2OjQ5OjIyCiAgICAtKHRlc3RpbmcvKikgcnVuIHRlc3RzIHdoZW4gcGFja2FnZSBpcyBub3QgaW5zdGFsbGVkLCBhbmQgd2hlbgogICAgdGhlIGJ1aWxkIHRyZWUgaXMgbm90IHRoZSBzYW1lIGFzIHRoZSBzb3VyY2UgdHJlZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjYuMiAtPiBWNC4wCgpoYXJkYWtlciAxNCBTZXAgOTggMDk6MTE6NTcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY2hhbmdlIHRoZSBQRVJTSVNURU5URklMRSBkZWZpbmUgdG8gUEVSU0lTVEVOVERJUi4KCmhhcmRha2VyIDE0IFNlcCA5OCAwOToxNzo0NQogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcGQuYywgc25tcGQuaCwgc3lzdGVtLmMpOgogICAgICAtIG1vdmUgcGVyc2lzdGVudCBjYWNoZSBjYXBhYmlsaXR5IGludG8gdGhlIGxpYnJhcnkgZnJvbSB0aGUKICAgICAgICBhZ2VudC4gKHNubXB0cmFwZCwgYW5kIG90aGVycyB3aWxsIG5lZWQgdGhpcyBhcyB3ZWxsKS4KICAgICAgLSBpbXBsZW1lbnQgc29tZSBuZXcgZnVuY3Rpb25zOiBpbml0X3NubXB2MygpLCBzbm1wdjNfc2h1dGRvd24oKSwKICAgICAgICBzbm1wdjNfZ2V0X2VuZ2luZV9ib290cygpLCBldGMuCiAgICAgIC0gYWdlbnRCb290cyAtPiBlbmdpbmVCb290cy4KCmhhcmRha2VyIDE0IFNlcCA5OCAwOToyMTowNQogICAgLSAoTWFrZWZpbGUuaW4sIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gbW92ZSBwZXJzaXN0ZW50IGNhY2hlIGNhcGFiaWxpdHkgaW50byB0aGUgbGlicmFyeSBmcm9tIHRoZQogICAgICAgIGFnZW50LiAoc25tcHRyYXBkLCBhbmQgb3RoZXJzIHdpbGwgbmVlZCB0aGlzIGFzIHdlbGwpLgogICAgICAtIGltcGxlbWVudCBzb21lIG5ldyBmdW5jdGlvbnM6IGluaXRfc25tcHYzKCksIHNubXB2M19zaHV0ZG93bigpLAogICAgICAgIHNubXB2M19nZXRfZW5naW5lX2Jvb3RzKCksIGV0Yy4KICAgICAgLSBhZ2VudEJvb3RzIC0+IGVuZ2luZUJvb3RzLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDA5OjIzOjA5CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYywgc25tcF9wYXJzZV9hcmdzLmgsIHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywKICAgICAgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsCiAgICAgIHNubXB0ZXN0LmMsIHNubXB0cmFwLmMsIHNubXB3YWxrLmMpOgogICAgICAtIHBhc3MgYXBwIG5hbWUgdG8gc25tcF9wYXJzZV9hcmdzLCBzbyBpdCBjYW4gcGFzcyBpdCB0bwogICAgICAgIGluaXRfc25tcCgpLCB3aGljaCBub3cgbmVlZHMgaXQgZm9yIHBlcnNpc3RlbnQgY2FjaGUgcmVhZGluZy4KCmhhcmRha2VyIDE0IFNlcCA5OCAwOToyNToxMwogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgpOgogICAgICAtIEJlZ2luIGltcGxlbWVudGF0aW9uIG9mIHRoZSBTTk1QLUZSQU1FV09SSy1NSUIuCgpoYXJkYWtlciAxNCBTZXAgOTggMTc6NDM6MTIKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogZGVmaW5lIEVOVEVSUFJJU0VfTlVNQkVSIHRvIDIwMjEuCgpoYXJkYWtlciAxNCBTZXAgOTggMTc6NDM6NTAKICAgIC0gKHNubXB2My5jLCBzbm1wdjMuaCk6IGltcGxlbWVudCBzbm1wRW5naW5lSUQgY3JlYXRpb24gYW5kIGNvbmZpZ3VyYXRpb24uCgpoYXJkYWtlciAxNCBTZXAgOTggMTc6NDQ6MDYKICAgIC0gKHNubXBFbmdpbmUuYyk6IHJlcG9ydCBzbm1wRW5naW5lSUQgcHJvcGVybHkuCgpoYXJkYWtlciAxNCBTZXAgOTggMTc6NDk6MTUKICAgIC0gKHNubXB2M21pYnMuaCk6IGhpZ2gtbGV2ZWwgbW9kdWxlIGNyZWF0ZWQgdG8gaW1wb3J0IHYzIHJlbGVhdGVkIG1pYnMuCgpoYXJkYWtlciAxNCBTZXAgOTggMjE6MDk6NDEKICAgIC0gKHV0aWxfZnVuY3MuW2NoXSwgc25tcEVuZ2luZS5jLCBzbm1wdjMuW2NoXSwgc3lzdGVtLltjaF0pOgogICAgICAtIG1vdmUgc25tcEVuZ2luZVRpbWUgY2FsY3VsYXRpb24gdG8gc25tcGxpYi9zbm1wdjMuYy4KICAgICAgLSBtb3ZlIGNhbGN1bGF0ZV90aW1lX2RpZmYoKSB0byBzeXN0ZW0uYyBmcm9tIHV0aWxfZnVuY3MuYy4KCmhhcmRha2VyIDE0IFNlcCA5OCAyMjoyOTo1NQogICAgLSAoc25tcE1QRFN0YXRzLmMsIHNubXBNUERTdGF0cy5oKToKICAgICAtIGltcGxlbWVudCBTTk1QLU1QRC1NSUIuCgpoYXJkYWtlciAxNCBTZXAgOTggMjI6MzA6MTAKICAgIC0gKHNubXB2M21pYnMuaCk6IGFkZCBzbm1wTVBEU3RhdHMgbW9kdWxlLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDIyOjQwOjI0CiAgICAtIChzbm1wRW5naW5lLmMsIHNubXBNUERTdGF0cy5jKTogcmVnaXN0ZXIgdGhlIG1vZHVsZXMgaW4gc3lzT1JUYWJsZS4KCmhhcmRha2VyIDE2IFNlcCA5OCAwNzowNDoxMQogICAgLSAoc25tcE1QRFN0YXRzLmMpOiBkb3VibGUgYmxhbmsgLT4gc2luZ2xlLgoKaGFyZGFrZXIgMTYgU2VwIDk4IDA3OjA0OjU4CiAgICAtICh1c21TdGF0cy5jLCB1c21TdGF0cy5oKTogaW1wbGVtZW50IHRoZSB1c21TdGF0cyBwb3J0aW9uIG9mIHRoZQogICAgICBTTk1QLVVTRVItQkFTRUQtU00tTUlCLgoKaGFyZGFrZXIgMTYgU2VwIDk4IDA3OjA1OjQzCiAgICAtIChzbm1wdjNtaWJzLmgpOiBhZGQgdXNtU3RhdHMgdG8gcmVxdWlyZSBsaXN0LgoKaGFyZGFrZXIgMTggU2VwIDk4IDA5OjU0OjA4CiAgICAtIChzbm1wX2FwaS5jKTogY2hhbmdlIHNwcmludGZfb2lkIGJ1ZiBsZW5ndGggaW4gREVCVUdQT0lEIHRvIDQwOTYuCgpoYXJkYWtlciAxOCBTZXAgOTggMDk6NTU6MDcKICAgIC0gKHNubXBkLmMpOiBpbml0X3NubXB2MyBuZWVkcyB0byBnbyBhYm92ZSBpbml0X2FnZW50IGZvciBlbmdpbmVJRCBjcmVhdGlvbi4KCmhhcmRha2VyIDE4IFNlcCA5OCAwOTo1OToyMAogICAgLSAoc25tcHYzbWlicy5oLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgTWFrZWZpbGUuaW4sIHNubXB1c20uYywKICAgICAgc25tcHVzbS5oLCBzbm1wdjMuYywgc25tcHYzLmgpOgogICAgICAtIGJhc2ljIHVzbVVzZXIgc3RydWN0dXJlIGNyZWF0ZWQgZm9yIHRoZSBsaWJyYXkgd2l0aCBzdXBwb3J0CiAgICAgICAgZnVuY3Rpb25zOgogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9nZXRfdXNlcigqZW5naW5lSUQsICBlbmdpbmVJRExlbiwgICpuYW1lLCAqdXNlckxpc3QpOwogICAgICAgIC0gc3RydWN0IHVzbVVzZXIgKnVzbV9hZGRfdXNlcigqdXNlciwgKnVzZXJMaXN0KTsKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fZnJlZV91c2VyKCp1c2VyKTsKICAgICAgICAtIHN0cnVjdCB1c21Vc2VyICp1c21fY2xvbmVfdXNlcigqZnJvbSk7CiAgICAgICAgLSBzdHJ1Y3QgdXNtVXNlciAqdXNtX2NyZWF0ZV9pbml0aWFsX3VzZXIoKTsKICAgICAgLSBmaXJzdCBwYXNzIGF0IGJhc2ljIFVTTSBtb2R1bGUgc3VwcG9ydCBhZGRlZCB0byB0aGUgYWdlbnQuCgpoYXJkYWtlciAxOCBTZXAgOTggMTI6NDI6NDYKICAgIC0gKHNubXAtdGMuaCk6IGNyZWF0ZSBhIG5ldyAuaCBmaWxlIHRvIHN0b3JlIGNvbW1vbiB0ZXh0dWFsIGNvbnZlbnRpb24gZGVmaW5lcy4KCmhhcmRha2VyIDE4IFNlcCA5OCAxMjo0NjozOAogICAgLSAodXNtVXNlci5jLCBzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gY3JlYXRlIGFuZCB1c2Ugc3RvcmFnZVR5cGUvdXNlclN0YXR1cyBpbiB0aGUgdXNtVXNlciBzdHJ1Y3R1cmUuCiAgICAgIC0gZml4IHRoZSBhdXRoL3ByaXYgcHJvdG9jb2wgcG9pbnRlciBpbml0aWFsaXphdGlvbnMgZm9yIHRoZSAiaW5pdGlhbCIgdXNlci4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo0NjoxMwogICAgLSAoc25tcF92YXJzLmMpOiBpbmNsdWRlIHNubXB1c20uaCBhbmQgc25tcHYzLmguCgpoYXJkYWtlciAyMCBTZXAgOTggMTE6NDc6MTcKICAgIC0gKHNubXBfYWdlbnQuYyk6IGlmIGEgbWliIG1vZHVsZSByZXR1cm5zIGFuIGVycm9yID4gU05NUF9HRU5fRVJSLAogICAgICB0cmFuc2xhdGUgdGhlIGVycm9yIHRvIFNOTVBfR0VOX0VSUiBmb3IgdjEgcmVxdWVzdHMuCgpoYXJkYWtlciAyMCBTZXAgOTggMTE6NDk6MDQKICAgIC0gKG1pYjJjKToKICAgICAgLSBmcHJpbnRmIC0+IERFQlVHUC4KICAgICAgLSBfX1AgLT4gQU5TSS4KCmhhcmRha2VyIDIwIFNlcCA5OCAxMTo1MjowOAogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIGdldE5leHQgYnVnIGZpeGVzLgogICAgICAtIG1ha2UgdXNtUHVibGljIHRydWVseSB3cml0YWJsZS4KICAgICAgLSBpbXBsZW1lbnQgdXNtX3BhcnNlX29pZCgpIHRvIHBhcnNlIGFuIG9pZCBpbnRvIGVuZ2luZUlEL25hbWUuCiAgICAgIC0gaW1wbGVtZW50IHRoZSB1c21Vc2VyU3BpbkxvY2suCiAgICAgIC0gbWlzYyBvdGhlciBidWcgZml4ZXMuCgpoYXJkYWtlciAyMSBTZXAgOTggMTE6MTI6NDkKICAgIC0gKHNubXBfdmFycy5jKTogZmluYWxseSBmaXhlZCB0aGUgd3JpdGVfbWV0aG9kJ3MgZm9yIGNyZWF0aW9uIHByb2JsZW0uCgpoYXJkYWtlciAyMyBTZXAgOTggMTA6NDA6MDQKICAgIC0gKFNOTVB2Mi1UQy50eHQpOiByZWp1c3RpZnkgYSB0YWJsZS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMDo0NToxMwogICAgLSAodXNtVXNlci5jKToKICAgICAgLSBNYWtlIHVzbVVzZXJTdGF0dXMgYWN0dWFsbHkgd3JpdGFibGUgYW5kIGNhcGFibGUgb2YgY3JlYXRpbmcgbmV3IHJvd3MuCiAgICAgIC0gQmVnaW4gKGJyb2tlbikgY2xvbmVGcm9tIHNldHRpbmcuCiAgICAgIC0gRml4ZXM6CiAgICAgICAgLSBwcm9wZXJseSBtYWxsb2Mgc3BhY2UuCiAgICAgICAgLSBwcm9wZXJseSB1c2UgZG91YmxlIGNoYXIgbmFtZSBhbmQgZW5naW5lSUQgcG9pbnRlcnMuCiAgICAgICAgLSBkbyBwcm9wZXIgb2lkIGNvbXBhcmlzb25zIGZvciBnZXROZXh0cy4KICAgICAgICAtIGNoZWNrIHRvIHNlZSB0aGF0IHVwdHIgaXMgZGVmaW5lZCBiZWZvcmUgdXNpbmcgaXQgdG8gcmV0cmlldmUgZGF0YS4KICAgICAgICAtIGNsb25lRnJvbSBzaG91bGQgYWx3YXlzIHJldHVybiB0aGUgWmVyb0RvdFplcm8gT0lELgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEwOjQ2OjM1CiAgICAtIChzbm1wdXNtLmMpOgogICAgICAtIGZpeCB1c21fYWRkX3VzZXIoKSBmcm9tIGFsd2F5cyBhZGRpbmcgdGhlIHVzZXIgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdC4KICAgICAgLSBzZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGF1dGgvcHJpdiBwcm90b2NvbHMgb24gbmV3IHVzZXJzLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDEwOjQ3OjI4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogY3JlYXRlIHNubXBfZHVwbGljYXRlX29iamlkKCkgdG8gbWFsbG9jIGEgbmV3IG9pZC4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMjoxNToxMQogICAgLSAoSVNTVUVTKTogdXBkYXRlCgpoYXJkYWtlciAyMyBTZXAgOTggMTI6MjQ6MDQKICAgIC0gKElTU1VFUyk6IHRvb2sgb25lLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDE3OjU4OjQ5CiAgICAtIChJU1NVRVMpOiBjbG9uaW5nL21hbGxvYyBpc3N1ZS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxNzo1OTo0MAogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBjcmVhdGVkIHVzbV9jbG9uZUZyb21fdXNlcigpIHRvIGNsb25lIHNlYyBpbmZvLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDE4OjAwOjIxCiAgICAtICh1c21Vc2VyLmMpOiBtYWtlIHVzbUNsb25lRnJvbSBhY3R1YWxseSB3b3JrIChpcyBzZXRhYmxlKS4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDoxNTo1NwogICAgLSAoSVNTVUVTKTogc3RvcmFnZSB0eXBlIGlzc3Vlcy4KCmhhcmRha2VyIDIzIFNlcCA5OCAyMDoxNjoyNAogICAgLSAodXNtVXNlci5jKTogbWFrZSB1c21Vc2VyQXV0aFByb3RvY29sIGFuZCB1c21Vc2VyUHJpdlByb3RvY29sIHdyaXRhYmxlLgoKaGFyZGFrZXIgMjMgU2VwIDk4IDIwOjUwOjA1CiAgICAtIChJU1NVRVMpOiBSb3dTdGF0dXMgcXVlc3Rpb24gYWRkZWQuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6NTA6NDUKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKTogY3JlYXRlIHVzbV9yZW1vdmVfdXNlcigpIHRvIHJlbW92ZSBhIHVzZXIKICAgICAgZnJvbSBhIGxpc3QuCgpoYXJkYWtlciAyMyBTZXAgOTggMjA6NTE6NDYKICAgIC0gKHVzbVVzZXIuYyk6IG1ha2UgdXNtVXNlclN0YXR1cyBkZXN0cm95J3MgYWN0dWFsbHkgcmVtb3ZlIGEgdXNlci4KCmhhcmRha2VyIDI3IFNlcCA5OCAyMjo1Mzo1MwogICAgLSAoSVNTVUVTKTogbW9yZSBzdHVmZi4KCmhhcmRha2VyIDI3IFNlcCA5OCAyMjo1NTowOQogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIGJ1ZyBmaXhlcy4KICAgICAgLSBuZXcgc3VwcG9ydCBmdW5jdGlvbnMgZm9yIHNhdmluZyB1c2VycyB0byB0aGUgcGVyc2lzdGVudCBjYWNoZS4KCmhhcmRha2VyIDI3IFNlcCA5OCAyMjo1NzowMAogICAgLSAodXNtVXNlci5jLCB1c21Vc2VyLmgpOgogICAgICAtIGJ1ZyBmaXhlcy4KICAgICAgLSB1c21Vc2VyU3RhdHVzIGlzIHNldGFibGUgKHRvIGVpdGhlciB2b2xhdGlsZSBvciBub25Wb2xhdGlsZSkuCiAgICAgIC0gdXNlcnMgY3JlYXRlZCBieSBzZXQncyBhcmUgc2F2ZWQgKGlmIHNldCB0byBub25Wb2xhdGlsZSkgb24gYWdlbnQgc2h1dGRvd24uCgpoYXJkYWtlciAyOSBTZXAgOTggMjA6MTE6MjAKICAgIC0gKElTU1VFUyk6IGVycm9yIG1hcHBpbmcgKGNvZXggd29yaykuCgptYXJ6ICAxIE9jdCA5OCAxMjo1ODo0MgogICAgLSAoc25tcC5oLCBzbm1wdXNtLltjaF0sIHNubXBfYXBpLltjaF0pOiBhZGRlZCBVU00gYXBpIGFuZCBzbm1wdjNfYnVpbGQsIHNvbWUgdHdlYWtzIHRvIHBhcnNlIGluIHByZXAgZm9yIHNubXB2M19wYXJzZQoKbWFyeiAgMSBPY3QgOTggMTQ6MDU6NDUKICAgIC0gKHNubXBfYXBpLmMpOiBmaXhlcyB0byBzbm1wdjNfcGFyc2UKCm1hcnogIDQgT2N0IDk4IDE3OjIwOjMwCiAgICAgLSAoc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuYywgc25tcHVzbS5jKTogYWRkZWQgc25tcHYzIHBhcnNpbmcgcm91dGluZXMKCmhhcmRha2VyICA1IE9jdCA5OCAyMDowNTowMwogICAgLSAoSVNTVUVTKTogbW9yZSBzdHVmZi4KCmhhcmRha2VyICA1IE9jdCA5OCAyMDowNjo1NwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGJyZWFrZG93biBvZiBzbm1wdjNfYnVpbGQoKSBpbnRvIHN1Yi1mdW5jdGlvbnMuCgpoYXJkYWtlciAgNSBPY3QgOTggMjE6NTk6MjYKICAgIC0gKHNubXB1c20uYyk6IG1ha2UgZ2VuZXJhdGVSZXF1ZXN0TXNnIGRvIHNvbWV0aGluZyBnZW5lcmljLgoKaGFyZGFrZXIgIDUgT2N0IDk4IDIyOjAwOjIyCiAgICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiByZXR1cm4gYSB1X2NoYXIgKiBpbnN0ZWFkIG9mIGEgY2hhciAqIGZvciBlbmdpbmVJRHMuCgpoYXJkYWtlciAgNSBPY3QgOTggMjI6MDE6MDQKICAgIC0gKHNubXBfYXBpLmMpOiBtaXNjIGJ1ZyBmaXhlcy4KCmhhcmRha2VyICA1IE9jdCA5OCAyMjo1MDoxMAogICAgLSAoc25tcF9hcGkuYyk6IGxhc3Qgb2Yga25vd24gYnVncyBpbiBzbm1wdjNfYnVpbGQgZml4ZWQgKGEgcG9pbnRlcgogICAgICB3YXMgYmVpbmcgdXNlZCB0d2ljZSBpbiBvdmVybGFwcGluZyBuZWVkZWQgdGltZSBwZXJpb2RzKS4KCm1hcnogIDcgT2N0IDk4IDEzOjAyOjQwCiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCB2MyBzdXBwb3J0CgptYXJ6ICA3IE9jdCA5OCAxMzowNjo0MQogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcHVzbS5bY2hdLCBzbm1wdjMuYyk6IGFkZGVkIHBkdSBmaWVsZCB0byBob2xkIHNlYyBzdGF0ZSByZWYsIGZpeGVkIHVzbSBwcm90b3R5cGVzLCBhZGRlZCBjaGVjayBmb3IgbnVsbCBoZW50IHJldHVybgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM2OjA1CiAgICAtIChzbm1wdXNtLmMpOiBmbHVzaCBvdXQgYSBnZW5lcmljIHByb2Nlc3NJbmNvbWluZ01zZygpLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM2OjM2CiAgICAtIChzbm1wX2ltcGwuaCk6IGFkZCBzZWN1cml0eU5hbWUgdG8gdGhlIGFnZW50J3MgcGFja2V0X2luZm8gc3RydWN0dXJlLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE1OjM4OjAwCiAgICAtIChzbm1wX2FwaS5jKTogbWFueSBtYW55IGJ1ZyBmaXhlcyB0byB2MyBwYXJzZS9idWlsZCByb3V0aW5lcy4KCmhhcmRha2VyICA3IE9jdCA5OCAxNTozOToxNwogICAgLSAodmFjbV92YXJzLmMpOiByZWNvZ25pemUgdGhlIHNlY3VyaXR5TmFtZSB3aGVuIFVTTSBtb2RlbCBpcyBpbiB1c2UuCgpoYXJkYWtlciAgNyBPY3QgOTggMTc6MTc6MTAKICAgIC0gKHNubXBfYWdlbnQuYyk6IGluaXRpYWwgcGFzcyBhdCB2My4gIFdpbGwgZmFpbCBvbiBzZW5kaW5nIGVycm9yIG1lc3NhZ2VzLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE3OjQ1OjIyCiAgICAtIChzbm1wX2FwaS5jKTogcGFzcyBpbiB0aGUgc2VjX3Bhcm1zIGxlbmd0aCB0byBwcm9jZXNzSW5jb21pbmdNc2cKCmhhcmRha2VyICA3IE9jdCA5OCAxNzo0NjowNAogICAgLSAoc25tcF9hZ2VudC5jKTogYnVnIGZpeDogdXNpbmcgYW4gYXJyYXkgYXMgYSBwb2ludGVyICh1c2VkIHRvIGJlIG9uZSkuCgpoYXJkYWtlciAgNyBPY3QgOTggMjI6NDA6NDMKICAgIC0gKHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gZGVmYXVsdCBzbm1wdjMgcGFyYW1ldGVycyBjYW4gYmUgc3BlY2lmaWVkIGluIGEgc25tcC5jb25mIGZpbGUuCgpoYXJkYWtlciAgOCBPY3QgOTggMTA6MTM6MjMKICAgIC0gKElTU1VFUyk6IGV2ZXJ5b25lIGxvdmVzIGlzc3VlcyEKCmhhcmRha2VyICA5IE9jdCA5OCAwODowMzo1NwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXNlIHpsaWIgd2hlbiB1c2luZyBycG0gbGlicmFyaWVzLgoKZHJlZWRlciAgOSBPY3QgOTggMTM6NTk6MTIKICAgIC0gKElTU1VFUyk6IE5lZWQgYSBwYXNzIGZvciB0cmFkaXRpb25hbCBVTipYIHN5c3RlbSBwcm9ncmFtbWluZyBob2xlcy4KCmhhcmRha2VyICA5IE9jdCA5OCAxODoyMzoyNwogICAgLSAoc25tcHVzbS5jKTogZ2VuZXJhdGVSZXF1ZXN0TXNnKCkgZG9lc24ndCBBU04gZW5jb2RlIHRoZSBzZWNfcGFyYW1zLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDE4OjI0OjAyCiAgICAtIChzbm1wX2FwaS5jKTogcmVzdHJ1Y3R1cmUgdGhlIHBhY2tldCBidWlsZGluZyB0byB1c2UgbGVzcyBtZW1jcHkncy4KCmhhcmRha2VyICA5IE9jdCA5OCAxODoyNDoyNgogICAgLSAoc25tcF9hZ2VudC5jKTogdXNlIHNubXBfYnVpbGRfcGFja2V0KCkgdG8gY29uc3RydWN0IGFsbCB2MyBkYXRhLgoKZHJlZWRlciAxMiBPY3QgOTggMDc6MTg6NTYKICAgIC0gKElTU1VFUyk6IHByb29mIG1lbW9yeSBpbnZvY2F0aW9uL2Rpc3Bvc2FsOyBwdXQgdGltZSBzdGFtcHMgaW4gbG9nIGZpbGVzLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDA3OjE5OjI4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBuZXcgc3RhdHMgY291bnRlciBBUEkuCiAgICAgIC0gYnVnIGZpeGVzLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDA3OjQyOjI4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogYnVnIGZpeGVzIHdpdGggY291bnRlcnMgKHJldHVybnMgdV9pbnQsIEVHKS4KCmhhcmRha2VyIDEyIE9jdCA5OCAwNzo0NDo1NQogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBtYWtlIHYzIGNvZGUgcmV0dXJuIGVycm9ycyBwcm9wZXJseS4KICAgICAgLSBidWcgZml4ZXMuCgpoYXJkYWtlciAxMiBPY3QgOTggMDc6NDU6MTEKICAgIC0gKHNubXBNUERTdGF0cy5jLCBzbm1wTVBEU3RhdHMuaCwgdXNtU3RhdHMuYywgdXNtU3RhdHMuaCk6CiAgICAgIC0gdXNlIHRoZSBuZXcgc3RhdHMgY291bnRlciBBUEkuCgptYXJ6IDEyIE9jdCA5OCAwNzo1NjozMAogICAgIC0oc25tcF9wYXJzZV9hcmdzLmMpOiBtZXJnZWQgaGV4IHRvIGJpbiBmdW5jcyAtIFRoZXJlIGNhbiBiZSBvbmx5IE9uZQoKbWFyeiAxMiBPY3QgOTggMDg6MTE6NDYKICAgICAtKHNubXBfYXBpLltjaF0sIHNubXB1c20uW2NoXSk6IG1lcmdlZCBoZXggdG8gYmluIGZ1bmNzLCBmaXhlZCBNUC9VU00gYXBpLCBpbXBsZW1lbnRlZCBub0F1dGhOb1ByaXYgVVNNLCBpbXBsZW1lbnRlZCBlbmdpbmUgcHJvYmUgYWxnb3JpdGhtCgpoYXJkYWtlciAxMiBPY3QgOTggMDk6MjM6NDkKICAgIC0gKElTU1VFUyk6IG5vdGUgb24gRGF2aWQncyBpc3N1ZS4KCmhhcmRha2VyIDEyIE9jdCA5OCAxMjoyNjowNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBsb29rIGZvciAvZGV2L3JhbmRvbSBhbmQgZGVmaW5lIEhBVkVfREVWX1JBTkRPTS4KICAgICAgLSBsb29rIGZvciBsaWJrbXQgYW5kIGxpYmNyeXB0byBhbmQgZGVmaW5lIEhBVkVfTElCWFhYLgoKbWFyeiAxMiBPY3QgOTggMTU6NDY6MzYKICAgIC0gKHNubXB1c20uYyk6IGZpeGVkIGhlYWRlciBzaXplIGlzc3VlcyAoZGlmZmVyZW5jZSBiZXR3ZWVuIGFzbl9idWlsZF9oZWFkZXIgYW5kIGFzbl9idWlsZF9zZXF1ZW5jZSkKCmhhcmRha2VyIDEyIE9jdCA5OCAyMTo1Njo0MgogICAgLSAoc3lzdGVtLmMsIHN5c3RlbS5oKTogbWFrZSBjYWxjdWxhdGVfdGltZV9kaWZmIHRha2UgYSBwb2ludGVyLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIxOjU5OjUzCiAgICAtIChzbm1wdjMuYyk6IHVzZSBuZXcgY2FsY3VsYXRlX3RpbWVfZGlmZigpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjA0OjA2CiAgICAtIChzbm1wX2NsaWVudC5jKTogYnVnIGZpeGVzOgogICAgICAtIHNubXBfc3luY2hfaW5wdXQoKSBuZWVkcyB0byBjbG9uZSBhIHJlcG9ydCBwZHUgdG9vLgogICAgICAtIHNubXBfY2xvbmVfcGR1KCkgbmVlZHMgdG8gY29weSBjb250ZXh0RW5naW5lSUQsIGNvbnRleHROYW1lLCBhbmQKICAgICAgICBzZWN1cml0eU5hbWUKCmhhcmRha2VyIDEyIE9jdCA5OCAyMjoxMjo1MAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gbWFrZSBzbm1wX2luY3JlbWVudF9zdGF0aXN0aWMoKSByZXR1cm4gdGhlIGNoYW5nZWQgdmFsdWUuCiAgICAgIC0gY3JlYXRlIG5ldyBmdW5jdGlvbjogc25tcF9mcmVlX3ZhcmJpbmQoKSB0byBmcmVlIGEgbGlzdC4KICAgICAgLSBcbidzIHRvIHRoZSBlbmQgb2YgdGhlIG5ldyBkZWJ1Z2dpbmcgbWVzc2FnZXMgZm9yIGVuZ2luZUlEIGRpc2NvdmVyeS4KICAgICAgLSBNZXJnZSByZXNwb25zZS9yZXBvcnQgaGFuZGxpbmcgdG8gbWFrZSByZXBvcnQncyBjYWxsIHRoZWlyCiAgICAgICAgY2FsbGJhY2sgYXMgd2VsbCAoZW5naW5lSUQgZGlzY292ZXJ5IHdhcyBuZXZlciByZXR1cm5pbmcpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjE5OjU0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBpbmNvcnJlY3QgY29tbWVudC4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMjoyMjozNgogICAgLSAoSVNTVUVTKTogd2llcmQgbWVtb3J5IHF1ZXN0aW9uLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjIzOjE2CiAgICAtIChzeXN0ZW0uYyk6IHVzZSBuZXcgY2FsY3VsYXRlX3RpbWVfZGlmZigpLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjI1OjA2CiAgICAtIChzbm1wX2FnZW50LmMpOiBoYW5kbGUgZW5naW5lSUQgZGlzY292ZXJ5IHJlcXVlc3RzLgoKaGFyZGFrZXIgMTIgT2N0IDk4IDIyOjU4OjI2CiAgICAtICh1c21Vc2VyLmMpOiBuZXcgZnVuY3Rpb24gdG8gcmV0dXJuIHRoZSB1c2VyTGlzdC4KCmhhcmRha2VyIDEyIE9jdCA5OCAyMjo1ODo1NQogICAgLSAoc25tcHVzbS5jLCBzbm1wdXNtLmgpOiBuZXcgZnVuY3Rpb24gdXNtX2NoZWNrX3NlY0xldmVsKGludCwgc3RydWN0ICp1c21Vc2VyKTsKCmhhcmRha2VyIDEyIE9jdCA5OCAyMjo1OTozNgogICAgLSAoc25tcF9hZ2VudC5jKTogaGFuZGxlIHVua25vd25TZWN1cml0eU5hbWUgYW5kIHVuc3VwcG9ydGVkU2VjdXJpdHlMZXZlbC4KCmhhcmRha2VyIDEzIE9jdCA5OCAxMzoyNzoxNAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBuZXcgb3B0aW9uczogLS1kaXNhYmxlLXByaXZhY3ksIC0tZW5hYmxlLXYycC1tZDUuCgpoYXJkYWtlciAxMyBPY3QgOTggMTM6MzE6MjIKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogY29tbWVudCBmb3JtYXR0aW5nLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDEzOjI5OjA1CiAgICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX2FkZF92YXIgc2V0IHRoZSBzaXplIG9mIHRoZSBvaWQgYnVmZmVyLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDEzOjI5OjQwCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IG1vdmVkIHRoZSBkZWZhdWx0IHVzZXJMaXN0IGludG8gdGhlIGxpYnJhcnkuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6MzE6MjkKICAgIC0gKHVzbVVzZXIuYyk6IHVzZSB0aGUgbmV3IGxpYnJhcnkgZGVmYXVsdCB1c2VyIGxpc3QuCgpoYXJkYWtlciAxNCBPY3QgOTggMTM6MzI6NTgKICAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgIC0gdXNlIHRoZSBuZXcgbGlicmFyeSBkZWZhdWx0IHVzZXIgbGlzdC4KICAgICAgLSBkb24ndCBmcmVlIGEgbm9uZXhpc3RlbnQgcGR1IChpdCBvbmx5IGV4aXN0cyBmb3IgdjMgcmVxdWVzdHMpLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDEzOjQ3OjU2CiAgICAtIChzbm1wX2FnZW50LmMpOiBtYWtlIHN1cmUgcGR1LT5zZWN1cml0eU5hbWUgaXMgbnVsbCB0ZXJtaW5hdGVkLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDE3OjUyOjIzCiAgICAtIChhY2xvY2FsLm00LCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgICAtIG5ldyBhcmd1bWVudHMgdG8gY29uZmlndXJlIHRvIHNldCBDRkxBR1MgYW5kIExJQlM6CiAgICAgICAgLSAtLXdpdGgtS01UPXBhdGgKICAgICAgICAtIC0td2l0aC1TU0xlYXk9cGF0aAogICAgICAtIGZpeCB0byBhZ2VudC9taWJncm91cC9NYWtlZmlsZSB0byBrZWVwIHRoZSBhYm92ZSBmcm9tIGdldHRpbmcgdGhlCiAgICAgICAgd3JvbmcgYXNuMS5oIGZyb20gdGhlIFNTTGVheSBwYWNrYWdlLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDIwOjQxOjA3CiAgICAtIChhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sICovTWFrZWZpbGUuaW4pOgogICAgICAtIGNoZWNrIGZvciBrbXQuaAogICAgICAtIHJlLW9yZGVyIENQUEZMQUdTIHRvIHB1dCAtSSBmbGFncyBsYXN0LgoKaGFyZGFrZXIgMTQgT2N0IDk4IDIwOjQ1OjUxCiAgICAtICh1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcHVzbS5jLCBzbm1wdXNtLmgpOgogICAgICAtIG1vdmUgdXNtX3BhcnNlX2NvbmZpZ191c21Vc2VyIHRvIHRoZSBsaWJyYXJ5LgoKaGFyZGFrZXIgMTQgT2N0IDk4IDIwOjQ3OjQ4CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jKTogaW5jbHVkZSBzbm1wdXNtLmgKCmRyZWVkZXIgMTUgT2N0IDk4IDEyOjAyOjQwCiAgICAtIEJhc2UgZm9yIFNDQVBJICsgc29tZSBmb3JtYXR0aW5nIG9uIHRoZSBwYXRoIHRvIHNubXB2MyBzdGFydHVwIGFuZCBzaHV0ZG93bi4KICAgIC0gU2h1ZmZsaW5nIGluIGhlYWRlciBmaWxlcyB0byBkZWZlYXQgd2FybmluZ3Mgb2YgI2RlZmluZSByZWR1bmRhbmNpZXM6CiAgICAJbm90YWJseSwgcy9mcmVlYnNkKi5oIGFuZCBzbm1wbGliL3N5c3RlbS5oCiAgICAtIERlYnVnICYgdGluaSB0b29sYmFnIGluIHNubXBsaWIve2RlYnVnLHRvb2xzfS4qCiAgICAtIENoYW5nZWQgY29uZmlndXJlIG9wdGlvbiAtLWVuYWJsZS12MnAtbWQ1IHRvIC0tZW5hYmxlLWludGVybmFsLW1kNS4KICAgIC0gQ29uc29saWRhdGVkIGxpYnJhcnkgc3lzdGVtIGFuZCBsb2NhbCBoZWFkZXIgaW5jbHVkZSBzZXF1ZW5jZXMgaW50bwogICAgCXNubXBsaWIvYWxsXyouaCBmaWxlcy4gIFBvc3NpYmx5IGJldHRlciBzb2x1dGlvbnMgZm9yIHRoaXMuLi4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNDo1MgogICAgLSAodXNtVXNlci5jKTogcmVtb3ZlZCB1c21fcGFyc2VfY29uZmlnX3VzbVVzZXIgdGhhdCBEYXZpZCBwdXQgYmFjayBieQogICAgICBhY2NpZGVudCB3aGVuIGRvaW5nIGZvcm1hdGluZy4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNToxNwogICAgLSAoa2V5dG9vbHMuYywga2V5dG9vbHMuaCk6IGFkZGVkIGxlbmd0aCB0byBlbmdpbmVJRC4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNTo1OAogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IG1ha2UgY29weV93b3JkIHJldHVybiBhIHBvaW50ZXIuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6MjY6MjEKICAgIC0gKHNjYXBpLmMsIHNjYXBpLmgpOiBtb3ZlICNpbmNsdWRlcyBmcm9tIC5oIHRvIC5jLgoKaGFyZGFrZXIgMTUgT2N0IDk4IDIyOjI3OjAzCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6IG5ldyBjb25maWcgb3B0aW9ucyB0byBjaGFuZ2Uga2V5cy4KCmhhcmRha2VyIDE1IE9jdCA5OCAyMjoyNzo1OAogICAgLSAoc25tcHYzLmMpOiBkb24ndCBjYWxsIGluaXRfa210KCkgdW5sZXNzIEhBVkVfTElCS01UIGlzIGRlZmluZWQuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6NDI6MDAKICAgIC0gKGtleXRvb2xzLmMsIGtleXRvb2xzLmgpOiBtb3ZlICNpbmNsdWRlIGZyb20gLmggdG8gLmMuCgpoYXJkYWtlciAxNSBPY3QgOTggMjI6NDc6NTYKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oKToKICAgICAgLSB1c2UgZG9fa2V5Y2hhbmdlKCkgdG8gaW1wbGVtZW50IHRoZSBrZXkgY2hhbmdlIHdyaXRlIG1ldGhvZHMuCiAgICAgIC0gYSBiaXQgb2YgLVdhbGwgY2xlYW51cC4KCmRyZWVkZXIgMTYgT2N0IDk4IDExOjI4OjEyCiAgICAtIFVwZGF0ZWQgU0NBUEkgY3J5cHRpbmcgZnVuY3Rpb25zIHRvIGlkZW50aWZ5IHRyYW5zZm9ybXMgT0lEcyBub3QgI2RlZmluZSdzLgogICAgLSBNb3ZlZCAiZ2xvYmFsIiBkZWZpbml0aW9ucyBvZiBPSUQgdHJhbnNmb3JtcyB0byBzbm1wdXNtLmgsIGFuZCBvdXQgb2YKICAgIAl1c21Vc2VyLmMgYW5kIHNubXB1c20uYy4KICAgIC0gc2NfZ2VuZXJhdGVfa2V5ZWRfaGFzaCgpIHN0YW5kcyBhcyBhIGdvb2QgZXhhbXBsZSBvZiB3aGF0IG90aGVyIGZ1bmN0aW9ucwogICAgCXdpbGwgbG9vayBsaWtlLgoKZHJlZWRlciAxNiBPY3QgOTggMTE6NTA6MDkKICAgIC0gKHNjYXBpLmMsIHNjYXBpLmgpIE91dHB1dCBidWZmZXIgYXJndW1lbnRzIGZvciAoZW58ZGUpY3J5cHRpbmcgYXJlCiAgICAJc2luZ2xlLXBvaW50ZXJzLgoKbGV3aXMgMTYgT2N0IDk4IDEzOjE1OjE2CiAgICAtIC0gKHNubXB1c20uaCk6CiAgICAgIC0gQWRkZWQgVVNNX0VSUiBzeW1ib2xzIHVzZWQgYnkgdXNtX2dlbmVyYXRlX291dF9tc2cKCmxld2lzIDE2IE9jdCA5OCAxMzoyMDowNwogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gUmV3cm90ZSB1c21fZ2VuZXJhdGVfb3V0X21zZywgcmVuYW1pbmcgb2xkIGltcGxlbWVudGF0aW9uIHRvCiAgICAgICAgdXNtX2dlbmVyYXRlX291dF9tc2dfTlVMTAogICAgICAtIFRoaXMgY29kZSBjb21waWxlZCBvbiBGcmVlQlNELCBub3QgdGVzdGVkIGZvciBsaW5raW5nIG9yIHJ1bm5pbmcKICAgICAgLSBBZGRlZCBmdW5jdGlvbnMgdG8gY2FsY3VsYXRlIGluZGljaWVzIChhc25fcHJlZGljdF9pbnRfbGVuZ3RoLAogICAgICAgIGFzbl9wcmVkaWN0X2xlbmd0aCwgdXNtX2NhbGNfb2Zmc2V0cykgYW5kIHRvIG1ha2UgdGhlIENCQy1ERVMKICAgICAgICBpbml0aWFsaXphdGlvbiB2ZWN0b3IgKHVzbV9zZXRfc2FsdCkuCgpkcmVlZGVyIDE4IE9jdCA5OCAyMToxNDowOQogICAgLSBTQ0FQSSBjb2RlIGNvbXBsZXRlLCBidXQgbm90IGNvbXBsZXRlbHkgdGVzdGVkLgogICAgCUFkZGVkIHRlc3RpbmcvIGRpcmVjdG9yeS4KICAgIAlWZXJpZmllZCB0aGF0IEVkJ3MgcmVjZW50IGNoYW5nZXMgY29tcGlsZSBjbGVhbmx5LgogICAgCVRyaWVkIHRvIHBhdGNoIHVwICJjcml0aWNhbCIgLVdhbGwgd2FybmluZ3MuCgpoYXJkYWtlciAxOSBPY3QgOTggMDc6MTA6MjcKICAgIC0gKE1ha2VmaWxlLnRvcCk6IHJlbW92ZSAtV2FsbCByZXF1aXJlbWVudC4KCmRyZWVkZXIgMTkgT2N0IDk4IDE1OjEyOjU3CiAgICAtIENvcmUgU0NBUEkgcm91dGluZXMgYXBwZWFyIHNvdW5kLiAgdGVzdGluZy8gZGlyZWN0b3J5IGlzIG5vIGxvbmdlcgogICAgCWNvbW1lbnRlZCBvdXQuICBTTk1QdjMgc3R5bGUga2V5IG1hbmlwdWxhdGlvbnMgdW50ZXN0ZWQgeWV0LgogICAgCUNyZWF0ZWQgKD8pIGEgc2xldyBvZiBuZXcgd2FybmluZ3MgZnJvbSBmaWxlcyBlYXJseSBpbiBjb21waWxlIHNlcXVlbmNlLgoKZHJlZWRlciAyMCBPY3QgOTggMTE6Mzg6NDIKICAgIC0gVGVzdHMgZm9yIGdlbmVyYXRlX0t1IGFuZCBnZW5lcmF0ZV9rdWwuICAodGVzdGluZy9rdGVzdCAtaCBmb3IgaGVscC4pCiAgICAJQ2xlYW5lZCB1cCBuZXcgc2V0IG9mICJjcml0aWNhbCIgd2FybmluZ3MgLS0gbW9zdGx5IGFkZGluZyAjaW5jbHVkZSdzLgogICAgCUZpeGVkIEtNVC9hcHBzL3JhbmR0ZXN0LmMgc28gaXQgY29tcGlsZXMgdW5kZXIgTGludXguCgptYXJ6IDIxIE9jdCA5OCAwODoxODowMwogICAgIC0oc25tcF9hcGkuW2NoXSk6IGFkZCBmaWVsZHMgZm9yIGF1dGhLZXkgYW5kIHByaXZLZXkKCmxld2lzIDIxIE9jdCA5OCAxMjowNzoxNgogICAgLSAtIChzbm1wLmgpCiAgICAgIC0gQWRkZWQgU05NUF9FUlJfIGVycm9yIHN5bWJvbGljIGNvbnN0YW50cyBmb3IgdGhlIGF1dGgvcHJpdiAoVVNNKSBtb2R1bGUKICAgICAgICByZXBvcnRlZCBlcnJvcnMuCiAgICAgIC0gVXNlZCB2YWx1ZXMgMTktMjcsIHVwZGF0ZWQgTUFYX1NOTVBfRVJSIHRvIDI3LgoKbGV3aXMgMjEgT2N0IDk4IDEyOjA4OjI0CiAgICAtIC0gKHNubXB1c20uaCkKICAgICAgLSBBZGRlZCBzeW1ib2xpYyBjb25zdGFudHMgZm9yIGVycm9ycyBmb3VuZCBwcm9jZXNzaW5nIGluY29taW5nIG1lc3NhZ2VzLgogICAgICAtIEVxdWF0ZWQgdGhlIHN5bWJvbHMgd2l0aCB0aG9zZSBhZGRlZCB0byBzbm1wLmgKCmhhcmRha2VyIDIxIE9jdCA5OCAxMjoxMDowMwogICAgLSAoc25tcF9hcGkuaCk6IGFkZGVkIEFTTi9TTk1QIGNvdW50ZXJzIHRvIHRoZSBjb3VudGVyIGxpc3QuCgptYXJ6IDIxIE9jdCA5OCAxMjo1MDoyNAogICAgIC0oc25tcF9hcGkuW2NoXSk6IGNvcnJlY3RseSBhZGQgI2RlZmluZSBzaXplcyBmb3IgYXV0aEtleSBhbmQgcHJpdktleQoKbWFyeiAyMSBPY3QgOTggMTM6Mzg6NTcKICAgICAtKHNubXBfYXBpLltjaF0pOiBhZGRlZCBhdXRoL3ByaXYgcHJvdG9jb2wgdHlwZSBmaWVsZHMgdG8gc2Vzc2lvbgoKbWFyeiAyMSBPY3QgOTggMTM6NDk6MTEKICAgICAtKHNubXBfYXBpLmMpOiBhZGRlZCBjYXN0IGZvciBpbnRlcm5hbCBwZHUgKGludGVybmFsIHBkdSBzaG91bGQgYmUgZWxpbWlhbnRlZCBzb21lZGF5KQoKaGFyZGFrZXIgMjEgT2N0IDk4IDEzOjUzOjM4CiAgICAtIChzbm1wX2FwaS5oKTogU1RBVF9NQVhfU1RBVFMgLT4gTUFYX1NUQVRTLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE3OjU0OjA4CiAgICAtIChzbm1wdjMuYyk6IHJlbW92ZSBzbm1wX3BlcnJvcigpIGRlZmluZWQgYXMgcGVycm9yKCkuICBJdCdzIGEgcmVhbCBmdW5jdGlvbi4KCmhhcmRha2VyIDIxIE9jdCA5OCAxNzo1ODowOAogICAgLSAoYXNuMS5jKTogYXNuX2J1aWxkX3N0cmluZzogYWxsb3cgYSBudWxsIHN0cmluZyB0byBidWlsZCBhIDAwIHBhZGRlZCBzdHJpbmcuCgpoYXJkYWtlciAyMSBPY3QgOTggMTg6MDA6MDcKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIGVuZ2luZUlEIGRpc2NvdmVyeSBkZWJ1Z2dpbmcgbWVzc2FnZXMuCiAgICAgIC0gemVybyBsZW5ndGggY29udGV4dE5hbWVzIG9rLgogICAgICAtIHNldCBtYXggbGVuZ3RoIGJlZm9yZSB1c21fZ2VuZXJhdGVfb3V0X21zZygpLgoKaGFyZGFrZXIgMjEgT2N0IDk4IDE5OjA0OjM1CiAgICAtIChzbm1wX2FwaS5jKTogbW92ZSB0aGUgZW5naW5lSUQgZGlzY292ZXJ5IHRvIHNubXBfc2Vzc19vcGVuKCkuCgpoYXJkYWtlciAyMSBPY3QgOTggMTk6MDU6MTIKICAgIC0gKHNubXBfYXBpLmgpOiBzeW5jaCBzbm1wX3BkdSBhbmQgaW50ZXJuYWxfc25tcF9wZHUuCgpkcmVlZGVyIDIxIE9jdCA5OCAxOTo1NToxNQogICAgLSBTaG9vayB0aGUgYnVncyBvdXQgb2Yga2V5IG1hbmlwdWxhdGlvbiByb3V0aW5lcyAoZ2VuZXJhdGVfa3VsLCBnZW5lcmF0ZV9LdSkuCiAgICAJQ29tcGxldGVkIGFuZCB0ZXN0ZWQgS2V5Q2hhbmdlIFRDIGNvZGUgKHtlbmNvZGUsZGVjb2RlfV9rZXljaGFuZ2UpLgogICAgCUNyZWF0ZWQgaW5pdGlhbCBlbGVtZW50cyBvZiBhbiBhdXRvbWF0ZWQgdGVzdCBoYXJuZXNzIGluIHRlc3RpbmcvLgogICAgCUNyZWF0ZWQgZGF0YSBmaWxlcyBhbmQgdGVzdCBzY3JpcHRzIHRvIGRlbW9uc3RyYXRlIGNvbXBsaWFuY2UuCiAgICAJTWlzY2VsbGFuZW91cyBhZGRpdGlvbnMgdG8gc25tcGxpYi90b29scy4/LCBzb21lIHRlbXBvcmFyeS90cmFuc2l0aW9uYWwuCgptYXJ6IDIxIE9jdCA5OCAxOTo1ODoxMQogICAgIC0oc25tcF9wYXJzZV9hcmdzLmMpOiBhZGQgYXV0aC9wcml2IHByb3RvIGZsYWdzLCBhZGQgYXV0aCBwcml2IGtleSBmbGFncwoKbWFyeiAyMSBPY3QgOTggMjA6MTk6MDgKICAgIC0gKHNubXBfYXBpLltjaF0pOiB1cGRhdGVkIGF1dGgvcHJpdiBwcm90IGFuZCBrZXkgZmlsZWRzIGluIHNlc3Npb24sIGFkZGVkIHN1cG9ydCBpbiBzbm1wX3Nlc3Nfb3BlbiBhbmQgY2xvc2UgKHlhbmtlZCBmaWVsZHMgZnJvbSBQRFUgLSBkaWQgSSBkbyB0aGF0PykKCmhhcmRha2VyIDIxIE9jdCA5OCAyMToyMTo0MQogICAgLSAobGNkX3RpbWUuYyk6IG1pbm9yIHdhcm5pbmcgZml4ZXMuCgpoYXJkYWtlciAyMSBPY3QgOTggMjE6MjI6MDcKICAgIC0gKHRvb2xzLmMsIHRvb2xzLmgpOiBuZXcgdG9vbDogbWVtZHVwKCkuCgpoYXJkYWtlciAyMSBPY3QgOTggMjI6MDg6MDcKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIGdlbmVyYXRlIGEgdXNtIHVzZXIgZnJvbSBzZXNzaW9uIGRhdGEgaWYgbmVlZGVkLgogICAgICAtIGNoZWNrIHRoZSByZXN1bHQgZnJvbSB0aGUgdXNtIGFuZCBmYWlsIGlmIGl0IGRvZXMuCgptYXJ6IDIyIE9jdCA5OCAwODowMjoxMQogICAgIC0oc25tcF9hcGkuYyk6IGFkZGVkIERFQlVHUCBjb2RlIHRvIHRyYWNlIG1lc3NhZ2UgdmVyc2lvbiBhbmQgc2VjTGV2ZWwgZm9yIGRlbW8KCmxld2lzIDIyIE9jdCA5OCAxMzozNzozNAogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gTm90IGEgd29ya2luZy90ZXN0ZWQgdmVyc2lvbiwgYnV0IGl0IGNvbXBpbGVzLgogICAgICAtIEZpeGVkIG9uZSBidWcgLSAiJiIgdG8gIj09IiBpbiBhbiBpZigpCiAgICAgIC0gRGlkIG5vdCBhbHRlciBjb2RlIHRvIGRlbnkgbnVsbCBlbmdpbmUgaWQgdXNlcnMKICAgICAgLSBBZGRlZCBtdWNoIGNvZGUgaW4gcHJvY2VzcyBpbmNvbWluZyBtZXNzYWdlCiAgICAgIC0gTmV3IHVzZSBvZiBlcnJvcnMgYW5kIERFQlVHUAogICAgICAtIFN0aWxsIHdhaXRpbmcgb24gdXBkYXRlcyB0byBsY2RfdGltZS5oIHRvIGltcGxlbWVudAogICAgICAgIHN0ZXAgIzMgb2YgUkZDIDIyNzQsIHMzLjIuCgpkcmVlZGVyIDIzIE9jdCA5OCAwOTo0NTo0NwogICAgLSBMQ0QgVGltZSBBUEkgcHJvdG90eXBlcyBhcmUgY29tcGxldGUuICA5MCUgc3RhYmxlLgogICAgCURyYWZ0IG9mIGF1dG9tYXRlZCB0ZXN0aW5nIGhhcm5lc3MgaW4gdGVzdGluZy8uCiAgICAJCVVzZSB0ZXN0aW5nL2V2YWxfc3VpdGUuc2ggdG8gcnVuIGFsbCBjdXJyZW50IHRlc3RzLgoKbGV3aXMgMjMgT2N0IDk4IDExOjM4OjI1CiAgICAtIC0gKGxjZF90aW1lLmgpCiAgICAgIC0gYWRkZWQgZGVmaW5pdGlvbnMgZm9yIFRSVUUgYW5kIEZBTFNFIChpZiBub3QgcHJldmlvdXNseSBkZWZpbmVkKQogICAgICAtIGZpeGVkIGEgY29tcGlsYXRpb24gYnVnIGluIHRoZSBlbnN1cmUgZW50cnkgbWFjcm8KCmxld2lzIDIzIE9jdCA5OCAxMTo0NzozNwogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gQWRkZWQgdGhlIHN0ZXAgMyBjb2RlIHRvIHByb2Nlc3Mgb3V0Z29pbmcgbWVzc2FnZXMgZnVuY3Rpb24KICAgICAgLSBTdGlsbCB1bi1ydW4KCmRyZWVkZXIgMjMgT2N0IDk4IDE1OjM5OjAyCiAgICAtIENvbXBsZXRlIGNvZGUgZm9yIExDRCB0aW1lIEFQSS4gIEF3YWl0aW5nIHNlcmlvdXMgdGVzdHMuCiAgICAJQ2hhbmdlZCBzbm1wdjNfZ2V0X2VuZ2luZXtUaW1lLEJvb3RzfSB0byBzbm1wdjNfbG9jYWxfc25tcEVuZ2luZSoKCmRyZWVkZXIgMjQgT2N0IDk4IDIzOjA3OjU0CiAgICAtIFNob29rIGJ1Z3Mgb3V0IG9mIExDRCB0byBtYW5hZ2UgZW5naW5lIElEcy90aW1lICgidGVzdGluZy9ldGVzdCAtYSIpLgogICAgCUFkZGVkIGEgZnVuY3Rpb24gZHVtcF9zbm1wRW5naW5lSUQgKCJ0ZXN0aW5nL21pc2N0ZXN0IC0xIikuCiAgICAJCU1hZGUgc3ByaW50X2hleHN0cmluZyBub3Qtc3RhdGljLi4uICh0ZW1wb3JhcnkgY2hhbmdlIEkgdGhpbmspLgogICAgCUFkZGVkIGNvbW1lbnRzL3F1ZXN0aW9ucyBhYm91dCBidWlsZGluZyBzbm1wRW5naW5lSUQuICAoc25tcHYzLmMpCiAgICAJQWRkZWQgVFJVRS9GQUxTRSBkZWZpbmVzIHRvIHNubXB1c20uYy4gIChUaGVzZSBzaG91bGQgYmUgc3RhbmRhcmRpemVkLikKICAgIAlBZGRlZCBTTk1QX01BWEJVRl9TTUFMTC4gICh0b29scy5oKQogICAgCUNsZWFuZWQgdXAgKGNsYXJpZmllZD8pIHRlc3QgaGFybmVzcyBkZXNjcmlwdGlvbi4KCm1hcnogMjUgT2N0IDk4IDE0OjQ4OjA2CiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IG1vdmUga2V5IGdlbmVyYXRpb24gKGdlbmVyYXRlX0t1KSBhZnRlciBpbml0X3NubXAKCmhhcmRha2VyIDI1IE9jdCA5OCAyMDo1OTozMwogICAgLSAoc25tcF9hZ2VudC5jKTogZGVidWdnaW5nIHBhcnNlL2J1aWxkIHN0YXRlbWVudHMgYW5kIGVycm5vIGZpeGVzLgoKaGFyZGFrZXIgMjUgT2N0IDk4IDIxOjAwOjE1CiAgICAtIChzeXN0ZW0uaCk6IGNyZWF0ZWQgREVCVUdQTCB0byBkbyBERUJVR1Agd2l0aCBmaWxlL2xpbmUgc3RhdGVtZW50cy4KCmhhcmRha2VyIDI1IE9jdCA5OCAyMTowMTowMAogICAgLSAodG9vbHMuYyk6IGNoZWNrIG1lbWR1cCgpIGZvciBOVUxMIHBhc3NlZCBpbi4KCmhhcmRha2VyIDI1IE9jdCA5OCAyMTowMTo1OAogICAgLSAocmVhZF9jb25maWcuYyk6IGJ1ZyBmaXhlczogbWlzYyBOVUxMIGNoZWNrcy4KCmhhcmRha2VyIDI1IE9jdCA5OCAyMTowMjo0MAogICAgLSAoc25tcF9jbGllbnQuYyk6IGRlZmF1bHQgdG8gc2V0dGluZyBzZWNOYW1lTGVuIGFuZCBjb250ZXh0TmFtZUxlbiB0byAtMS4KCmRyZWVkZXIgMjUgT2N0IDk4IDIyOjI4OjE4CiAgICAtIE1vc3RseSBzaHVmZmxpbmcgcHJlLWV4aXN0aW5nIHRoaW5ncyBhYm91dCAtLQogICAgICAgICAgICBVc2VkIFVTRV9JTlRFUk5BTF9NRDUgcHV0IGttdF9oYXNoIHBhcmFsbGVsIHdpdGggdjJwIE1ENSBoYXNoLgogICAgICAgICAgICBzY19lbmNyeXB0L3NjX2RlY3J5cHQgbm93IGFsc28gcmV0dXJuOiBTTk1QRVJSX1NDX05PVF9DT05GSUdVUkVELgogICAgICAgICAgICBUZXN0ZWQgYW5kICJmaXhlZCIgYnVpbGQgd2l0aCBvbiZvZmYgc2V0dGluZ3Mgb2Y6CiAgICAgICAgICAgICAgICAgICAgVVNFX1YyUEFSVFlfUFJPVE9DT0wsIFNDQVBJX0FVVEhQUklWLCBVU0VfSU5URVJOQUxfTUQ1LgogICAgICAgICAgICBHcmVhdGVzdCBkYW1hZ2UgZG9uZSBpbiBhZ2VudC9zbm1wX2FnZW50LmMsIHNubXBsaWIvc25tcF9jbGllbnQuYy4KICAgICAgICAgICAgUmVwYWlyZWQgdXNlIG9mIGtleSBtYW5pcHVsYXRpb24gZnVuY3Rpb25zIGluIHNubXB1c20uYy4KICAgICAgICAgICAgICAgICAgICAoQ291bGQgdXNlIHBlZXIgcmV2aWV3IGFzIG15IGV4cGVjdGF0aW9ucyBvZiB1c2UgbWF5IGRpZmZlci4pCiAgICAgICAgICAgIEFkZGVkIChhbmQgcmVtb3ZlZCAxKSBzb21lIFhYWCdzIGluIHBhcnR5IGNvZGUuLi4KCmhhcmRha2VyIDI2IE9jdCA5OCAxMzozNDowMwogICAgLSAoc25tcHVzbS5jKTogZW5hYmxlIE5VTEwgZW5naW5lSURzIGluIHVzZXIgc3RvcmFnZS4KCmhhcmRha2VyIDI2IE9jdCA5OCAxMzozNzowMwogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6CiAgICAgIC0gY3JlYXRpbmcgdXNlcnMgZnJvbSBhIHNlc3Npb246ICBjcmVhdGVfdXNlcl9mcm9tX3Nlc3Npb24oKS4KICAgICAgLSBtYWtlIHByb2JpbmcgdXNlIHRoZSBhYm92ZSB0d2ljZSAob25jZSBmb3IgTlVMTCBlbmdpbmVJRCBhbmQgb25jZQogICAgICAgIGZvciBwcm9iZWQgZW5naW5lSUQpLgogICAgICAtIGJ1ZyBmaXg6ICBzbm1wIHZlcnNpb24gcHJpbnRlZCBpbiBkZWJ1Z2dpbmcgd2FzIG9mZiBieSAtMS4KCmhhcmRha2VyIDI2IE9jdCA5OCAyMDo0MToxOQogICAgLSAoc25tcF9hZ2VudC5jKTogc2V0IGNvbnRleHQgbmFtZSBvbiBlbmdpbmVJRCByZXBvcnQuCgpoYXJkYWtlciAyNiBPY3QgOTggMjA6NDI6MDYKICAgIC0gKHNubXBkLmMpOiBjcmVhdGUgdGhlICJpbml0aWFsIiB1c2VyIGZvciBlbmdpbmVJRDpudWxsLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDIyOjEyOjE3CiAgICAtIChrZXl0b29scy5jKTogY2hlY2sgZm9yIE5VTEwgcG9pbnRlciwgbm90ICpwb2ludGVyLgoKaGFyZGFrZXIgMjYgT2N0IDk4IDIyOjE1OjAxCiAgICAtIChzbm1wdXNtLmMpOiBtYWxsb2Mga3VsIHNwYWNlIGluIHVzbV9zZXRfcGFzc3dvcmQoKS4KCmRyZWVkZXIgMjggT2N0IDk4IDA5OjM5OjU3CiAgICAtIGdldF9lbmdpbmV0aW1lKCkgbm93IHJldHVybnMgPDAsMD4gdHVwbGUgZm9yIE5VTEwvIiIvbGVuPTAgZW5naW5lSURzLgogICAgCXNjX3tjaGVjayxnZW5lcmF0ZX1fa2V5ZWRfaGFzaCgpIHByb2Nlc3MgaGFzaGVzIDw9IGhhc2ggb3V0cHV0IGxlbi4KICAgIAkJKFN0YWJsZSwgYnV0IGV4cGVjdCBhbiBleHBhbmRlZCB0ZXN0IGluIHNjYXBpdGVzdC5jIHNvb24uKQogICAgCU1pc2M6IFB1dCBNRDVfSEFTSFNJWkVfQllURVMgaW4gcGFydHkuaDsgU05NUF9aRVJPIGluIHRvb2xzLmgKCmxld2lzIDI4IE9jdCA5OCAxMzoxNjo1NAogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gRGVidWdnZWQgcnVubmluZyBvZiB1c21fZ2VuZXJhdGUuLi4gZnVuY3Rpb24gc28gdGhhdCBpdCBydW5zIHdpdGggbm8KICAgICAgICBhdXRoZW50aWNhdGlvbiAvIG5vIHByaXZhY3kgb3B0aW9ucy4gIChEb24ndCBoYXZlIGEgd2F5IHlldCB0byB0ZXN0CiAgICAgICAgd2l0aCB0aGUgZmFuY3kgc2VjdXJpdHkuKQogICAgICAtIEFkZGVkIGEgbGluZSBmb3IgZGVidWdnaW5nIHdoaWNoIHNldHMgYWxsIGJ5dGVzIG9mIHRoZSBzZWN1cml0eSBoZWFkZXIKICAgICAgICBhbmQgdGhlIFBEVSdzIHJlc3RpbmcgcGxhY2UgdG8gRkYgLSBmb3IgZGVidWdnaW5nIHB1cnBvc2VzIG9ubHkuICBUaGlzCiAgICAgICAgbGV0cyBtZSBzZWUgd2hhdCBieXRlcyByZW1haW4gdG8gYmUgcHVuY2hlZCBpbi4gIFRoaXMgbGluZSBpcyBmbHVzaCBsZWZ0CiAgICAgICAgaW4gdGhlIGZpbGUsIGluZGljYXRpbmcgdGhhdCBpdCBpcyB0byBiZSBjdXQgb3V0IGlmIHdlIHJlYWNoIHJlbGVhc2UuCiAgICAgIC0gQWRkZWQgImVtZXJnZW5jeV9wcmludCwiIGFuIHVuY2FsbGVkIHJvdXRpbmUgSSBsaWtlIHRvIGhhdmUgd2hlbiBydW5uaW5nCiAgICAgICAgaW4gZ2RiLiAgSXQgZHVtcHMgYSBmaWVsZCBvZiB4IGJ5dGVzIGluIGhleCwgMjUgdmFsdWVzIHRvIGEgbGluZS4KCmRyZWVkZXIgMjggT2N0IDk4IDE0OjE5OjUyCiAgICAtIEJvdW5kZWQgS01UIGNvZGUgd2l0aCAjZGVmaW5lJ3MgZm9yIEhBVkVfTElCS01UCiAgICAJLSBXaWxsIG5vdCBjb21waWxlIHdpdGhvdXQgZWl0aGVyIEhBVkVfTElCS01UIC1vci0gVVNFX0lOVEVSTkFMX01ENS4KICAgIAktIEFkZGVkIG5ldyBlcnJvciBjb2RlOiBTTk1QRVJSX0tUX05PVF9BVkFJTEFCTEUuCiAgICAJLSBBZGRlZCBhIHRlc3QgZm9yIHByZXZpb3VzIGNoYW5nZXMgdG8gc2NfKl9rZXllZF9oYXNoKCkgZnVuY3Rpb25zLgogICAgCQkoQXVnbWVudGVkIHRlc3RfZG9rZXllZGhhc2goKSBpbiBrZXltYW5hZ2VtZW50LmMuKQoKbGV3aXMgMjkgT2N0IDk4IDA5OjU2OjA4CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBNYWRlIGZpeGVzIHRvIHByb2Nlc3MgaW5jb21pbmcKICAgICAgLSBCZWdhbiB0byBhZGQgY29kZSBmb3IgdGhlIHNlY3VyaXR5IHN0YXRlIHJlZmVyZW5jZQoKbGV3aXMgMjkgT2N0IDk4IDEwOjI3OjM3CiAgICAtIC0gKHNubXB1c20uaCkKICAgICAgLSBBZGRlZCBwcm90b3R5cGUgZm9yIHNldF9yZXBvcnRFcnJvck9uVW5rbm93bklECgpsZXdpcyAyOSBPY3QgOTggMTA6Mjk6MTYKICAgIC0gLSAoc25tcHVzbS5jKQogICAgICAtIEZpeGVkIHNvbWUgb2YgV2VzJyByZXBvcnRlZCBwcm9ibGVtcy4KICAgICAgLSBBZGRlZCBjb2RlIHRvIHN0b3JlIHNlY1N0YXRlUmVmCiAgICAgIC0gU3RpbGwgbmVlZCB0byB1c2UgaXQgaW4gZ2VuZXJhdGVfb3V0Z29pbmcKCmxld2lzIDI5IE9jdCA5OCAxNDozMDoxOAogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gTm93IG1ha2VzIHVzZSBvZiB0aGUgc3RvcmVkIHNlY1N0YXRlUmVmIGluIGdlbmVyYXRlIG91dGdvaW5nCiAgICAgIC0gSSBob3BlIC0gSSBzdGlsbCBoYXZlbid0IGJlZW4gYWJsZSB0byBnZXQgbWVzc2FnZSBiYWNrIGFuZCBmb3J0aCwKICAgICAgICBpdCdzIHRpbWUgdG8gZmlndXJlIG91dCBob3cgdG8gcnVuIHRoZSBzbm1wZCBzdHVmZiBJIGd1ZXNzLgoKbWFyeiAyOSBPY3QgOTggMTU6MDY6NDkKICAgIGFkZCAjaWRlZiBnYXVyZHMgZm9yIGttdC5oIGFuZCBrbXRfYWxncy5oIGRlcGVuZGVudCBvbiBleGlzdGVuY2Ugb2YgaGVhZGVycyByYXRoZXIgdGhhbiBsaWJrbXQKCmxld2lzIDMwIE9jdCA5OCAwNjo0NToyNAogICAgLSAtIChzbm1wdXNtLmgpCiAgICAgIC0gQWRkZWQgYSBzdGF0ZSByZWZlcmVuY2UgZnJlZSByb3V0aW5lCiAgICAgIC0gQ2hhbmdlZCBuYW1lIG9mIHRoZSByb3V0aW5lIHRvIHNldCB0aGUgcmVwb3J0LW9uLWVycm9yIGZsYWcgc28gdGhhdCBpdAogICAgICAgIGJlZ2lucyB3aXRoICJ1c21fIi4KCmxld2lzIDMwIE9jdCA5OCAwNjo0Njo1MgogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gTW9kaWZpZWQgdGhlIGZyZWUgc3RhdGUgcmVmIHJvdXRpbmUgdG8gdGFrZSBhIHZvaWQgKiBpbnN0ZWFkIG9mIGEKICAgICAgICBzdHJ1Y3Qgd2hhdGV2ZXIgKiwgdGhpcyBwbHVzIGFkZGluZyBpdCB0byB0aGUgLmggZmlsZSBtYWtlcyBpcyB1c2VhYmxlCiAgICAgICAgYnkgdGhlIE1lc3NhZ2UgUHJvY2Vzc29yLgoKbGV3aXMgMzAgT2N0IDk4IDA3OjM0OjI2CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBSZW1vdmVkIGEgcG90ZW50aWFsIG1lbW9yeSBob2xlIChyZXR1cm5pbmcgb24gZXJyb3IgZnJvbSB0aGUgcHJvY2VzcwogICAgICAgIGluY29taW5nIHJvdXRpbmUgd2l0aG91dCBmcmVlaW5nIHRoZSBzZWN1cml0eSBzdGF0ZSByZWZlcmVuY2UpLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDA4OjM4OjUzCiAgICAtIChzbm1wdjMuYyk6IHNubXBfcGVycm9yKCkgLT4gcGVycm9yKCkgWyJtYWxsb2MiXS4KCmhhcmRha2VyIDMwIE9jdCA5OCAwODo0Mzo1MgogICAgLSAoc25tcGQuYyk6CiAgICAgIC0gTWFrZSAtRCBhIHRvZ2dsZS4KICAgICAgLSB1c2UgdXNtX3NldF9yZXBvcnRFcnJvck9uVW5rbm93bklEKCkuCgpoYXJkYWtlciAzMCBPY3QgOTggMDg6NDU6MDkKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBNYWtlIC1EIGEgdG9nZ2xlLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDE2OjQ0OjQzCiAgICAtIChzbm1wX2FnZW50LmMpOiBtYWtlIHRoZSBhZ2VudCB3YXRjaCB0aGUgZXJyb3Igc3RhdHVzIGZyb20gcGFja2V0CiAgICAgIHBhcnNpbmcgaW5zdGVhZCBvZiBkb2luZyBjaGVja3MgaXRzZWxmLgoKaGFyZGFrZXIgMzAgT2N0IDk4IDE2OjUyOjAzCiAgICAtIChzbm1wdXNtLmMpOiB1c21fZ2V0X3VzZXIoKTogYWxsb3cgYSBudWxsIGxlbmd0aCAoYnV0IG5vbiBudWxsCiAgICAgIHBvaW50ZXIpIGVuZ2luZUlELgoKbWFyeiAgMSBOb3YgOTggMTU6NTU6MTEKICAgICAtKGFzbjEuYywgbGNkX3RpbWUuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYywgc25tcHVzbS5jLCBzbm1wdjMuYyk6IHJlbW92ZSBpbnRlcm5hbCBwZHUvdmFybGlzdCwgcGR1X2ZyZWUgdXBkYXRlLCBoYW5kbGUgaW5pdGlhbCB1c2VyIGFzIGRpc2N1c3NlZCwgcmVtb3ZlIGluaXRpYWwgdXNlciBoYWNrLCByZW1vdmUgZW5naW5lSUQgcHJvYmUvUmVwb3J0IGhhY2ssIGhhbmRsZSBzZWN1cml0eVN0YXRlUmVmIGFzIGRpc2N1c3NlZCwgaGFuZGxlIHplcm8tbGVuZ3RoIGNvbnRleHQsIG5vcm1hbGl6ZSBfZW5naW5ldGltZSBhcmcgb3JkZXIsIGluY2x1ZGUgd2VzJ3MgcGF0Y2hlcyBmb3IgbnVsbCBlbmdpbmVpZCBhbmQgc2VjTmFtZUxlbisrCgpoYXJkYWtlciAgMSBOb3YgOTggMTk6MzI6NDMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wX3BhcnNlX2FyZ3MuaCwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLAogICAgICBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywKICAgICAgc25tcHRlc3QuYywgc25tcHRyYXAuYywgc25tcHdhbGsuYyk6CiAgICAgIC0gdXNlICJzbm1wYXBwIiBhcyBjb25maWd1cmF0aW9uIGZpbGUgbmFtZS4KCmhhcmRha2VyICAxIE5vdiA5OCAxOTozNjo1OQogICAgLSAoc25tcF9hcGkuYyk6IGdlbmVyYXRlIHVzZXItPkt1bCBmcm9tIHNlc3Npb24tPkt1LgoKaGFyZGFrZXIgIDEgTm92IDk4IDE5OjM4OjI5CiAgICAtIChzbm1wX2FnZW50LmMpOiBnZW5lcmF0ZSBhbGwgc29ydHMgb2YgbmV3IFNOTVAgcmVwb3J0cyB3aGVuIG5lZWRlZC4KCmhhcmRha2VyICAxIE5vdiA5OCAxOTozOToyOQogICAgLSAoc25tcGQuYyk6IHVzZSBzbm1wX3BlcnJvcigpIGlmIHNubXBfYWdlbnRfcGFyc2UoKSByZXR1cm5zIDAuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MDA6MjUKICAgIC0gKHZhY20uYyk6IGFsbG93IGEgc2VjdXJpdHkgbGV2ZWwgPj0sIG5vdCA9PS4KCmhhcmRha2VyICAyIE5vdiA5OCAwOTowMTowNwogICAgLSAoc25tcHYzLmMpOiByZW1vdmUgdXNtX2NyZWF0ZV9pbml0aWFsKCkgYW5kIHNldF9lbmdpbmV0aW1lKCkuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MDY6MDQKICAgIC0gKHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSBuZXcgZnVuY3Rpb246IGluaXRfdXNtX3Bvc3RfY29uZmlnKHZvaWQpOwogICAgICAtIG1ha2UgdXNtX2dldF91c2VyX2Zyb21fbGlzdCgpIGhhbmRsZSBhIGJvZ3VzIGluaXRpYWwgdXNlciBmbGFnLgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjA5OjM1CiAgICAtIChzbm1wX2FwaS5jKToKICAgICAgLSB1c2UgaW5pdF91c21fcG9zdF9jb25maWcoKTsKICAgICAgLSB1c2UgdXNtX2dldF91c2VyX2Zyb21fbGlzdCB0byBhc2sgbm90IHRvIHJldHVybiB0aGUgZGVmYXVsdCBpbml0aWFsIHVzZXIuCiAgICAgIC0gZml4IHNubXBfdmFyX2FkZF92YXJpYWJsZSgpIHRvIGFsbG93IGNvdW50ZXJzLgoKaGFyZGFrZXIgIDIgTm92IDk4IDA5OjEwOjE1CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHR5cG8gb24gZGVzIGtleSBpbml0aWFsaXphdGlvbiwgZm9yZ290IHRoZSAnWCcuCgpoYXJkYWtlciAgMiBOb3YgOTggMDk6MTM6MzYKICAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgIC0gZml4IHJlcG9ydCBPSURzIHRvIGJlIGNvcnJlY3QuCiAgICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCB3aGVuIHNlbmRpbmcgYSByZXBvcnQuCiAgICAgIC0gYWRkZWQgdW5zdXBwb3J0ZWQgc2VjdXJpdHkgbGV2ZWwgcmVwb3J0LgogICAgICAtIHNlbmQgYSBjb3VudGVyIGluc3RlYWQgb2YgYW4gaW50ZWdlci4KCmhhcmRha2VyICAyIE5vdiA5OCAxNjowMToyNAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBnZW5lcmF0ZSBLdSBmb3IgcHJpdiBwcm90b2NvbCB1c2luZyBhdXRoIHByb3RvY29sIGhhc2guCgpoYXJkYWtlciAgMyBOb3YgOTggMDk6Mzc6MDMKICAgIC0gKGxjZF90aW1lLmMpOiBmaXJzdCBieXRlPT0wIGVuZ2luZSBJRCdzIGFyZSB2YWxpZC4KCmxld2lzICA0IE5vdiA5OCAxMTozNToyOQogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gQmV0dGVyIGhhbmRsaW5nIG9mIG51bGwgYW5kIHVua25vd24gZW5naW5lIElEcy4KCmRyZWVkZXIgIDQgTm92IDk4IDExOjQ1OjA4CiAgICAtIChsY2RfdGltZS5jKSBTcGVjaWFsIGNhc2VzIGZvciBOVUxMIG9yIDAgbGVuZ3RoIGVuZ2luZUlEcy4KCmhhcmRha2VyICA0IE5vdiA5OCAyMTo1MzozMgogICAgLSAoc25tcF9hZ2VudC5jKTogY2hlY2sgZW5naW5lSUQgdG8gbWFrZSBzdXJlIGl0cyB1cy4KCmxld2lzICA1IE5vdiA5OCAwOTo1MjozNQogICAgLSAtIChzbm1wdXNtLmMpCiAgICAgIC0gRml4ZWQgY2FsbCB0byBwcmVkaWN0IGludGVnZXIgbGVuZ3RoIHJvdXRpbmUgdG8gZ2l2ZSBpdCB0aGUgKndob2xlKgogICAgICAgIG51bWJlciwgbm90IGp1c3Qgb25lIChmaXJzdC9sYXN0IGRlcGVuZHMgb24gZW5kaWFuKSBvZiB0aGUgbnVtYmVyLgogICAgICAgIERvaCEgc2NhbGUgcmF0aW5nIDkuCiAgICAgIC0gQWx0ZXJlZCB0aGF0IHJvdXRpbmUgdG8gYmUgbW9yZSBsaWtlIHRoZSBhc25fYnVpbGRfaW50IC4uLiBpLmUuLCBubwogICAgICAgIGxvbmdlciBhc3N1bWVzIHRoZSBsZW5ndGggb2YgdGhlIGxlbmd0aCBpcyAxLiAgRG9oISByYXRpbmcgYSAxLgoKbGV3aXMgIDUgTm92IDk4IDExOjAzOjI0CiAgICAtIC0gKHNubXB1c20uYykKICAgICAgLSBGaXhlZCBzb21lIERFQlVHUCBjYWxscyB0byBzaG93IHRoZSByaWdodCBmdW5jdGlvbiwgcGVyaGFwcyB0aGVzZSB3aWxsCiAgICAgICAgYmVjb21lIERFQlVHUEwgaW4gdGhlIGZ1dHVyZS4KCmRyZWVkZXIgIDUgTm92IDk4IDE1OjM3OjI5CiAgICAtIE1vc3RseSBmdW5jdGlvbiBoZWFkZXIgY29tbWVudHMgaW4gcmVhZF9jb25maWcuYywgdXRpbF9mdW5jcy5jLCBzbm1wdjMuYy4KICAgICAgCShQbGVhc2UgZmVlbCBmcmVlIHRvIGNoZWNrIGZvciBhY2N1cmFjeS4uLikKICAgICAgQ2hlY2sgZm9yIE5VTEwgaW4gcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKS4KICAgICAgQWRkZWQgbGVuZ3RoIGFyZ3VtZW50IHRvIHNubXB2M19nZXRfZW5naW5lSUQoKS4KICAgICAgQ2hlY2sgZm9yIGxlbmd0aChQKTxVU01fTEVOR1RIX1BfTUlOIGluIGdlbmVyYXRlX0t1KCkuCiAgICAgIE5vdGU6ICJldGVzdCAtYSIgaGFzIGEgbmV3IGZhaWx1cmU7IHRvIGJlIGZpeGVkIHdoZW4gVGltZSBMQ0QgcmUtc3RhYmlsaXplcy4KCm1hcnogIDYgTm92IDk4IDE2OjEzOjM3CiAgICAgLShzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5jKTogaGFuZGxlIFJlcG9ydHMgdG8gdHJpZ2dlciByZXNlbmQsIGV4Y2VwdCBmb3IgdW5rbm93bkVuZ2luZUlELCBwYXNzIHNlY1N0YXRlUmVmIHRvIHJlY2VpdmUgc2VjdXJpdHlTdGF0ZSBmcm9tIFVTTSAqV0FSTklORyogZ2V0dGluZyBhdXRob3JpemF0aW9uIGZhaWx1cmUgaW4gVVNNKiBwbGVhc2UgaGVscCAtIHRoaXMgd2FzIG5vdCBoYXBwZW5pbmcgYmVmb3JlIHNvIGRvdWJ0bGVzcyBpdCBpcyBteSBmYXVsdD8KCm1hcnogIDcgTm92IDk4IDEyOjMzOjQ5CiAgICAgLShzbm1wX2FwaS5jLCBsY2RfdGltZS5bY2hdLCBzbm1wdXNtLmMpOiBjbGVhbiB1cCBwcm9ibGVtcyBjYXVzZWQgd2hlbiB3ZSBiZWdhbiB1c2luZyBzZWNTdGF0ZVJlZiwgb3RoZXIgVVNNIGVycm9ycywgaW1wbGVtZW50IExDRF9USU1FX1NZTkNfT1BUIG9wdGltaXphdGlvbgoKbWFyeiAgNyBOb3YgOTggMTI6Mzc6MjEKICAgICAtKHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGNsZWFuIHVwIHByb2JsZW1zIGNhdXNlZCB3aGVuIHdlIGJlZ2FuIHVzaW5nIHNlY1N0YXRlUmVmLCBzZXRfZW5naW5ldGltZSBpbiBMQ0QgcG9zdCBjb25maWcgcmVhZCwgTENEX1RJTUVfU1lOQ19PUFQgdGltZSBsZXJuaW5nIG9wdGltaXphdGlvbiwgaW5jbHVkZSBmaWxlIGZvciBsY2RfdGltZSBhZGRlZCwgbW92ZWQgbWFrZV9yZXBvcnQgdG8gc25tcGxpYiAtIHJlcG9ydCBnZW5lcmF0aW9uIGlzIHN0aWxsIGluIGFnZW50CgpoYXJkYWtlciAgOSBOb3YgOTggMTM6Mjk6MTkKICAgIC0gKHNubXBfYXBpLmMpOiBnZW5lcmF0ZV9rdWwgc2hvdWxkIHVzZSBhdXRocHJvdG9jb2wuCgptYXJ6IDExIE5vdiA5OCAwNzo1MTo0MwogICAgIC0obGNkX3RpbWUuYywgc25tcHVzbS5jKTogZml4ZXMgdG8gaGFuZGxlIG51bGwgZW5naW5lIElEIC0gdG9sZXJhdGVkIHdoZW4gc2VuZGluZywgdW5rbm93biB3aGVuIHJlY2VpdmluZwoKbWFyeiAxMSBOb3YgOTggMDg6MDM6MjQKICAgICAtKHNubXBfYWdlbnQuYyk6IHJlbW92ZSB3b3JrYXJvdW5kIHRvIGRldGVjdCB1bmtub3duRW5naW5lSUQgZXJyb3IgLSBub3cgZG9lbiBpbiBVU00gYXMgc3BlYydkCgpoYXJkYWtlciAxMSBOb3YgOTggMTI6Mzc6NDcKICAgIC0gKHNubXBkLmMsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gbW92ZSBpbml0aWFsIHNldF9lbmdpbmV0aW1lKCkgZnJvbSBhZ2VudCB0byBzbm1wdjMuYy4KICAgICAgLSBuZXcgc25tcC5jb25mIGNvbmZpZ3VyZSBmaWxlIHRva2VuczogZGVmQXV0aFR5cGUsIGRlZlByaXZUeXBlLAogICAgICAgIGRlZlBhc3NwaHJhc2UsIGRlZkF1dGhQYXNzcGhyYXNlLCBkZWZQcml2UGFzc3BocmFzZS4KICAgICAgLSBtaW5pbXVtIGJvb3RzIHVzZWQgaXMgMSwgbm90IDAuCgpoYXJkYWtlciAxMSBOb3YgOTggMTM6MDk6MjYKICAgIC0gKHNubXBkLmMpOiBhZGRlZCBuZWVkZWQgaW5pdF8oKSByb3V0aW5lcy4KCmhhcmRha2VyIDExIE5vdiA5OCAxMzoxMTowMgogICAgLSAoc25tcHYzLmMpOiBkb24ndCBwcmludCBvaWRzIHRvICVzJ3MuCgpoYXJkYWtlciAxMyBOb3YgOTggMDc6NTk6MDQKICAgIC0gKHNubXBkLmMpOiBjcmVhdGUgdGhlIGNvcnJlY3QgaW5pdGlhbCB1c2VyIGFmdGVyIGVuZ2luZUlEIGNvbmZpZ3VyYXRpb24uCgpoYXJkYWtlciAxMyBOb3YgOTggMDg6MDM6NDUKICAgIC0gKHVzbVVzZXIuYyk6IGRvbid0IGluaXRpYWxpemUgdXNlciBoZXJlLgoKaGFyZGFrZXIgMTMgTm92IDk4IDA4OjA0OjQyCiAgICAtIChzbm1wdjMuYyk6IG1ha2UgZW5naW5lSUQgY29uZmlndXJhdGlvbiBsaW5lcyBnZXQgcGFyc2VkIGVhcmx5LgoKaGFyZGFrZXIgMTMgTm92IDk4IDA4OjE0OjA0CiAgICAtIChzbm1wdXNtLmMpOgogICAgICAtIG1vcmUgYXBwcm9wcmlhdGUgZW5naW5lSUQgY2hlY2tpbmcgZm9yIHVzZXJzICh3YXMgYSBidWcpLgogICAgICAtIHVzbV9hZGRfdXNlcigpOiBkb24ndCBkdXBsaWNhdGUgdXNlcnMgd2l0aCB0aGUgc2FtZSBuYW1lL2VuZ2luZUlELgoKaGFyZGFrZXIgMTUgTm92IDk4IDEwOjE5OjU1CiAgICAtIChzbm1wZC5jKTogbW92ZSBwb3N0X2NvbmZpZyBpbml0IHJvdXRpbmVzIHRvIGJleW9uZCBwZXJzaXN0ZW50IHJlYWRpbmcuCgpoYXJkYWtlciAxNSBOb3YgOTggMTI6NTU6MzgKICAgIC0gKE1ha2VmaWxlLmluKToKICAgICAgLSBuZXcgbWFrZSB0YXJnZXQ6IHRlc3QKICAgICAgLSBtYWtlIGFsbCBkb2Vzbid0IGNvbXBpbGUgdGhlIHRlc3RpbmcgZGlyZWN0b3J5LgoKaGFyZGFrZXIgMTUgTm92IDk4IDEzOjAwOjQxCiAgICAtICh1c21Vc2VyLmMsIHNubXB1c20uYywgc25tcHVzbS5oKToKICAgICAgLSB1c21fcmVtb3ZlX3VzZXIoKToKICAgICAgICAtIHByb3Blcmx5IHVwZGF0ZXMgdGhlIGxpc3QgcG9pbnRlci4KICAgICAgICAgIC0gcmVxdWlyZXMgYSAqKiBwb2ludGVyIHRvIHRoZSBsaXN0IHRvIGRvIHRoaXMuCiAgICAgICAgLSBjaGVjayBhZ2FpbnN0IGEgTlVMTCBsaXN0IHBvaW50ZXIuCiAgICAgIC0gdXNtX2Nsb25lRnJvbV91c2VyKCk6CiAgICAgICAgLSB0aGUga2V5cyB3ZXJlIG5vdCBiZWluZyBwcm9wZXJseSBkdXBsaWNhdGVkLgogICAgICAtIHVzbV9jbG9uZV91c2VyKCk6IGRlbGV0ZWQuCiAgICAgIC0gdXNtX2NyZWF0ZV91c2VyKCk6IGNyZWF0ZWQsIGFuZCB1c2VkIGluIHBsYWNlIG9mIHVzbV9jbG9uZV91c2VyKE5VTEwpLgoKaGFyZGFrZXIgMTUgTm92IDk4IDEzOjAxOjI3CiAgICAtIChldGltZXRlc3QuYyk6IGZpeCBjYWxscyB0byBzZXQvZ2V0X2VuZ2luZXRpbWUoKS4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNDoxNDowNwogICAgLSAoSVNTVUVTKTogZmluaXNoZWQgYSBjb3VwbGUgb2YgdGhpbmdzLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE0OjE5OjIxCiAgICAtIChJU1NVRVMsIHNubXBfYWdlbnQuYyk6IGZpeCBwZHUgZnJlZWluZyBwcm9ibGVtLCB0aGFua3MgdG8gSm9lJ3MKICAgICAgbWVyZ2Ugb2YgdGhlIHBkdSBzdHJ1Y3R1cmVzLgoKaGFyZGFrZXIgMTUgTm92IDk4IDE1OjUwOjMzCiAgICAtIChJU1NVRVMpOiBtaXNjIGRhdGUgY2hhbmdlcyBhbmQgbWFyayB0aGF0IEknbSB3b3JraW5nIG9uIHNvbWV0aGluZy4KCmhhcmRha2VyIDE1IE5vdiA5OCAxNTo1MzoyNAogICAgLSAoc25tcGQuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gY3JlYXRlL2NhbGwgc25tcF9zaHV0ZG93bigpLgogICAgICAtIHJlbW92ZSB0aGUgInBlcnNpc3RlbnQuIiBwYXJ0IG9mIHRoZSBwZXJzaXN0ZW50IC5jb25mIG5hbWUuCiAgICAgIC0gcmVuYW1lIGluc3RlYWQgb2YgdW5saW5rIG9sZCBwZXJzaXN0ZW50IC5jb25mIGZpbGUuCgpoYXJkYWtlciAxNSBOb3YgOTggMTc6Mzc6MDAKICAgIC0gKElTU1VFUywgc25tcHYzLmMpOiB3aGVuIGVuZ2luZUlEIGNoYW5nZXMgZnJvbSB0aGUgcHJldmlvdXMgcnVuLAogICAgICByZXNldCBlbmdpbmVCb290cyB0byAxLiAgKHJlcXVpcmVzIHN0b3JpbmcgdGhlIGxhc3QgZW5naW5lSUQgdXNlZCkuCgpoYXJkYWtlciAxNiBOb3YgOTggMjA6MTA6MTkKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcGQuYywgc25tcF9taWIuYywgc25tcF9taWIuaCwgc25tcF9hcGkuYywKICAgICAgc25tcF9hcGkuaCk6CiAgICAgIC0gdXNlIG5ldyBsaWJyYXJ5IGJhc2VkIHN0YXRpc3RpY3MgY291bnRlciBldmVyeXdoZXJlLgoKaGFyZGFrZXIgMTYgTm92IDk4IDIwOjE3OjAxCiAgICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCwgaW50ZXJmYWNlcy5jLCBzeXN0ZW0uYywgcmVnaXN0cnkuYyk6CiAgICAgIC0gdXNlIGhlYWRlcl9nZW5lcmljIGluIGEgZmV3IG1vcmUgcGxhY2VzLgogICAgICAtIHN0YW5kYXJkaXplIHRoZSBNQVRDSF9GQUlMRUQgYW5kIE1BVENIX1NVQ0NFRURFRCBkZWZpbml0aW9ucy4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyNDo1NgogICAgLSAoc25tcHVzbS5jKTogdXNtX2NyZWF0ZV9pbml0aWFsX3VzZXIoKSBhY2NlcHRzIG5hbWUgJiBhdXRoL3ByaXYgdHlwZXMuCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6MjU6NTIKICAgIC0gKHNubXBkLmMpOgogICAgICAtIGxvZyBQSUQgdG8gZmlsZSB1c2luZyAtUC4KICAgICAgLSBjcmVhdGUgdGVtcGxhdGUgdXNlcnM6ICB0ZW1wbGF0ZU1ENSAmIHRlbXBsYXRlU0hBLgoKaGFyZGFrZXIgMjIgTm92IDk4IDA3OjI2OjMwCiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBuZXcgZmxhZzogLXEgPSBxdWlldC4KCmhhcmRha2VyIDIyIE5vdiA5OCAwNzoyNzoxMgogICAgLSAoZGVtbyk6IHNjcmlwdCB0byBydW4gbGlzdCBvZiBjb21tYW5kcyByZXF1aXJlZCBmb3IgdGhlIGRlbW8uCgpoYXJkYWtlciAyMiBOb3YgOTggMDc6Mjg6NTgKICAgIC0gKC5jdnNpZ25vcmUpOiBpZ25vcmUgdGVzdGluZyB0YXJnZXRzLgoKaGFyZGFrZXIgMjIgTm92IDk4IDE0OjM2OjUzCiAgICAtIChkZW1vKTogcXVvdGUgdGhlIHBhc3MgcGhyYXNlLgoKaGFyZGFrZXIgMjIgTm92IDk4IDIyOjE2OjQ0CiAgICAtIChkZW1vKToKICAgICAgLSBwYXNzL2ZhaWwgdHlwZSBvdXRwdXQuCiAgICAgIC0gaG9zdHMgb3RoZXIgdGhhbiBsb2NhbGhvc3QuCiAgICAgIC0gY2FwYWJpbGl0eSB0byBsb29rIGZvciBzdHVmZiBpbiBvdXRwdXQgb2YgY29tbWFuZHMuCgpoYXJkYWtlciAyMiBOb3YgOTggMjI6MjY6MjgKICAgIC0gKGRlbW8pOiB0dXJuIGVuY3J5cHRpb24gb24gZm9yIHRlc3RzIHRoYXQgbmVlZCBpdC4KCmhhcmRha2VyIDIzIE5vdiA5OCAwNzoxNDowNQogICAgLSAoa2V5bWFuYWdldGVzdC5jKTogcHJpbnQgTUQ1L1NIQSBiZWZvcmUgdGhlIGtleWNoYW5nZSBzdHJpbmcuCgpoYXJkYWtlciAyMyBOb3YgOTggMDc6MTY6MDEKICAgIC0gKGRlbW8pOiBmaXggdGhlIGtleSBjaGFuZ2Ugc3RyaW5nIGV4dHJhY3Rpb24gdG8gbG9vayBmb3IgdGhlIE1ENSB2ZXJzaW9uLgoKaGFyZGFrZXIgMjMgTm92IDk4IDA3OjM4OjQ0CiAgICAtIChrZXltYW5hZ2V0ZXN0LmMpOiBiZXF1aWV0IHNob3VsZCBiZSAwIGJ5IGRlZmF1bHQuCgpoYXJkYWtlciAyMyBOb3YgOTggMDg6MDY6MzQKICAgIC0gKGRlbW8pOiBidWcgZml4ZXMuCgpkcmVlZGVyIDI0IE5vdiA5OCAxNjo0Mzo1MAogICAgRml4ZWQgYnVnIGluIFVTTSBwcmV2ZW50aW5nIGV4Y2hhbmdlIG9mIGNyeXB0ZWQgcGFja2V0cy4gIENvZGUgYWRkZWQKICAgIAl0byBwcm9wZXJseSBlc3RpbWF0ZSBzaXplIG9mIGNyeXB0ZWQgdGV4dCBnaXZlbiB1bi1wYWRkZWQgcGxhaW50ZXh0LgogICAgCUZvdW5kL2ZpeGVkIEtNVCBwcm90b3R5cGUgY29uZmxpY3QgdGhhdCBjYXVzZWQgdGhlIGdpdmVuIElWIHRvIGJlCiAgICAJaWdub3JlZCBhdCBjcnlwdC9kZWNyeXB0IHRpbWUuCiAgICBzZXR1cF9lbmdpbmVJRCgpIGhhcyBhIG5ldyBhcmd1bWVudCB0byBhbGxvdyBJRCBzdHJpbmdzIHRvIGJlIHJldHVybmVkCiAgICAJdG8gY2FsbGVyLgogICAgTmV3IGZpbGUgc25tcGxpYi90cmFuc2Zvcm1fb2lkcy5oIHRvIHB1dCBzdGF0aWMgZGVjbGFyYXRpb25zIGluIGEgc2luZ2xlCiAgICAJcGxhY2UuLi4KICAgIEZhaWx1cmUgb2Ygc3RhdCBpbmNyZW1lbnRzIGluIFVTTSBubyBsb25nZXIgY2F1c2UgZmFpbHVyZSBpbiB0aGUgY2FsbGluZwogICAgCWZ1bmN0aW9uLgogICAgQWRkZWQgdXRpbGl0eSBhcHBzL2VuY29kZV9rZXljaGFuZ2UuICAoLWggZm9yIHVzYWdlLikKICAgIERJRkZUSU1FIG1hY3JvIHRvIHJlcGxhY2Ugb2Z0IHJlcGVhdGVkIGNvZGUuCiAgICBTaG9ydGVuZWQgc29tZSBWQUNNIGRlYnVnZ2luZyBvdXRwdXQgdG8gYSBzaW5nbGUgbGluZSBmcm9tIG1hbnkuCiAgICBNb3JlIGNvbW1lbnRzLiAgTW9yZSB0cm91YmxlIHNwb3RzIG1hcmtlZCBYWFguCiAgICBDb252ZXJ0ZWQgb2Z0IHVzZWQgbWFnaWMgbnVtYmVycyB0byBzeW1ib2xpYyBjb25zdGFudHMgKHNvbWUgcHJlLWV4aXN0aW5nKS4KICAgIENsZWFuZWQgdXAgc29tZSBzaW1wbHkgZml4ZWQgYnVpbGQgd2FybmluZ3MuCiAgICBVcGRhdGVkIG5vbmV4cG9ydC9jcnlwdG8vUkVBRE1FLiAgU3RpbGwgbmVlZHMgd29yay4KCm1hcnogMjUgTm92IDk4IDA3OjQ0OjI4CiAgICAgLShzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZGVkIC1UIDxib290cz4gPHRpbWU+IHRvIHNldCBhbiBpbml0aWFsIChhdXRoZW50aWNhdGVkKSB0aW1lIHZhbHVlIGZvciB0aGUgZGVzdGluYXRpb24gZW5naW5lSURzIGJvb3RzL3RpbWUpCgptYXJ6IDI1IE5vdiA5OCAwNzo0ODo0OQogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcC5oLCBzbm1wX2NsaWVudC5jKTogaGFuZGxlIGluY29taW5nIFJlcG9ydHMgLSBwcm9wYWdhdGUgU1RBVF9FUlJPUiB0byBhcHBzIHdpdGggYXBwcm9wLiBlcnJvciBtZXNzYWdlLCBoYW5kbGUgcmVjb3ZlcmFibGUgZXJyb3Igbm90SW5UaW1lV2luZG93IGFuZCBlbmdpbmVJZCBkaXNjb3ZlcnksIHNlbmQgcmVwb3J0cyB3aXRoIHNlY0xldmVsPT1ub0F1dGhOb1ByaXYgZXhjZXB0IG5vdEluVGltZVdpbmRvdwoKbWFyeiAyNSBOb3YgOTggMDc6NTE6NTAKICAgICAtKHRvb2xzLmMpOiBvb3BzIGJhY2sgb3V0IGxpdHRsZSBjb21waWxlIHdvcmthcm91bmQgSSBkaWQgbm90IG1lYW4gdG8gY29tbWl0CgptYXJ6IDI1IE5vdiA5OCAwNzo1NDowMQogICAgIC0oc25tcGQuYywgc25tcF9hZ2VudC5jKTogaW5pdGlhbGl6ZSBwaWRfZGlsZSwgb25seSBhbGxvY2F0ZSBlbmdpbmVJRCBtZW0gZm9yIFJlcG9ydHMgd2hlbiBzZW5kaW5nIFJlcG9ydCwgZml4IHZlcnNpb24gaW5mbyBpbiBkZWJ1ZyBtZXNzYWdlCgpoYXJkYWtlciAyNSBOb3YgOTggMDc6NTY6MzAKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcE1QRFN0YXRzLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oKToKICAgICAgLSBBZGRlZCBhIGNvdXBsZSBvZiBERVVCR1Agc3RhdGVtZW50cyBhbmQgYSBjb3VwbGUgb2YgY29tbWVudCBjbGFpcmlmaWNhdGlvbnMuCgpoYXJkYWtlciAyNSBOb3YgOTggMTI6Mzk6MDEKICAgIC0gKHNubXB1c20uYyk6IGNoYW5nZXMgaW4gY29tbWVudHMgZm9yIGNsYXJpZmljYXRpb24uCgpoYXJkYWtlciAyNSBOb3YgOTggMTI6NDA6MzUKICAgIC0gKHNubXB2My5jKTogY2hhbmdlcyBpbiBjb21tZW50cyBmb3IgY2xhcmlmaWNhdGlvbi4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMjo1NDowOAogICAgLSAoc25tcF9hZ2VudC5jKTogdmVyc2lvbiBjaGVja3MgYWdhaW5zdCB2MmMvdjJwIC0+ICF2MS4KCmhhcmRha2VyIDI1IE5vdiA5OCAxMzowNDowMgogICAgLSAoc25tcGQuYyk6IGNvbW1lbnQgY2xhcmlmaWNhdGlvbi4KCmhhcmRha2VyIDI1IE5vdiA5OCAxNzoxMjowMgogICAgLSAoZGVtbyk6CiAgICAgIC0gZW5jb2RlX2tleWNoYW5nZSB1c2FnZS4KICAgICAgLSBtb3ZlIGNsb3NlciB0byA0MiwgYnV0IGxlYXZlIHJvb20gZm9yIGEgZmV3IG1vcmUgdGhpbmdzLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIyOjU4OjQzCiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBjaGVjayBmb3IgdGNnZXRhdHRyLgoKaGFyZGFrZXIgMjUgTm92IDk4IDIyOjU5OjU2CiAgICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBjcmVhdGUgc25tcHYzX3NldF9lbmdpbmVCb290c0FuZFRpbWUoKS4KCmhhcmRha2VyIDI1IE5vdiA5OCAyMzowMDo0NwogICAgLSAodG9vbHMuYyk6IGR1bXBfZW5naW5lSUQgc2hvdWxkICpuZXZlciBldmVyKiBtb2RpZnkgdGhlIHBhc3NlZCBsZW5ndGggcGFyYW0uCgpoYXJkYWtlciAyNSBOb3YgOTggMjM6MDI6NDkKICAgIC0gKGRlbW8pOgogICAgICAtIC1zOiAxIHNlYyBzbGVlcCBpbnN0ZWFkIG9mIGtleXByZXNzLgogICAgICAtIGRvIHRpbWUgdGVzdHMuCiAgICAgIC0gdXNlIGVuY29kZV9rZXljaGFuZ2UuCgpoYXJkYWtlciAyNSBOb3YgOTggMjM6MDQ6MTAKICAgIC0gKHNubXBFbmdpbmUuYywgc25tcEVuZ2luZS5oKToKICAgICAgLSBTaGhoaGguLi4uLiAgYm9vdHMgYW5kIHRpbWUgYXJlIHdyaXRhYmxlLi4uICBEb24ndCB0ZWxsIGFueW9uZS4uLiBTaGhoLi4uCgpoYXJkYWtlciAyNSBOb3YgOTggMjM6MTU6MDUKICAgIC0gKGVuY29kZV9rZXljaGFuZ2UuYyk6CiAgICAgIC0gdXNlIHVfY2hhcidzIHdoZXJlIGFwcHJvcHJpYXRlLgogICAgICAtIHNvbWUgZGVidWdnaW5nIHN0YXRlbWVudHMgYWRkZWQuCgpoYXJkYWtlciAyNSBOb3YgOTggMjM6MzI6NTEKICAgIC0gKHVzbVVzZXIuYyk6CiAgICAgIC0ga2V5Y2hhbmdlIG5lZWRzIGEgdGVtcCBidWZmZXIuCiAgICAgIC0gYSBmZXcgZGVidWdnaW5nIHN0YXRlbWVudHMuCgpoYXJkYWtlciAyNyBOb3YgOTggMTA6MjA6NDUKICAgIC0gKHNubXB1c20uYyk6IHVzbV9zZXRfc2FsdCgpIGFjY2VwdHMgYSBrZXkgd2hpY2ggaXMgdG9vIGxvbmcgKFNIQSBmb3IgREVTKS4KCmhhcmRha2VyIDI3IE5vdiA5OCAxMDoyMzowMwogICAgLSAoc25tcF9hcGkuYyk6IHNubXB2M19zZW5kX3JlcG9ydCgpIHJlbW92ZXMgdGhlIHNlY1N0YXRlUmVmZXJlbmNlCiAgICAgIGZyb20gdGhlIHBkdSBpcyB0aGVyZSBpcyBvbmUuICBJdCBzaG91bGRuJ3QgYmUgdXNlZCBmb3IgcmVwb3J0cy4KCmhhcmRha2VyIDI3IE5vdiA5OCAxMDozMToxMgogICAgLSAoZGVtbyk6IGZpbmFsIGZpeGVzIGZvciBhbGwgY3VycmVudCB0ZXN0cyB0byB3b3JrLgoKaGFyZGFrZXIgMjcgTm92IDk4IDE1OjE1OjI1CiAgICAtIChkZW1vKToKICAgICAgLSAtVDogcGF1c2UgYWZ0ZXIgdGVzdCBjb21wbGV0aW9ucy4KICAgICAgLSAqKioqIDQyLzQyIHRlc3RzIHBhc3NlZAoKaGFyZGFrZXIgMjcgTm92IDk4IDE2OjU1OjE1CiAgICAtIChzbm1wcGFzcy5jKTogYmVnaW5uaW5ncyBvZiBhIHNubXAgcGFzc3dvcmQgY2hhbmdlcjoKICAgICAgLSBzdG9sZSBtb3N0IGNvZGUgZnJvbSBzbm1wc2V0LmMgYW5kIGVuY29kZV9rZXljaGFuZ2UuYy4KICAgICAgLSBuZWVkIHRvIGZpeDogbXVzdCBzcGVjaWZ5IG1vc3QgZXZlcnl0aGluZyBvbiB0aGUgY29tbWFuZCBsaW5lIChpZSwKICAgICAgICAuY29uZiBmaWxlIHRva2VucyBkb24ndCB3b3JrIGhlcmUpLgogICAgICAtIHZlcnkgdW5jbGVhbiBhbmQgYSBxdWljayBoYWNrLgogICAgICAtIGRpZmZlcnMgZnJvbSBlbmNvZGVfa2V5Y2hhbmdlLCBpbiB0aGF0IGl0IGFjdHVhbGx5IHByZWZvcm1zIHRoZSBzZXQuCgpoYXJkYWtlciAyNyBOb3YgOTggMTY6NTU6MjMKICAgIC0gKE1ha2VmaWxlLmluKTogYWRkIHNubXBwYXNzLmMKCmhhcmRha2VyIDI3IE5vdiA5OCAxNjo1Njo0NwogICAgLSAoLmN2c2lnbm9yZSk6IHNubXBwYXNzIGFuZCBlbmNvZGVfa2V5Y2hhbmdlCgpoYXJkYWtlciAyOCBOb3YgOTggMTE6NDE6MDIKICAgIC0gKHVzbVVzZXIuYywgdXNtVXNlci5oKToKICAgICAgLSBtZXJnZSB3cml0ZV8ga2V5Q2hhbmdlIGFuZCBvd25LZXlDaGFuZ2UgZnVuY3Rpb25zIGludG8gb25lLiAgU2luY2UKICAgICAgICB0aGUgdXNlciBuYW1lIGlzIG5vdCBwYXNzZWQgaW4sIHRoZSBjYWxsaW5nIG1vZHVsZSB3aWxsIGhhdmUgdG8KICAgICAgICBjaGVjayBmb3IgaXQgdW50aWwgd2UncmUgd2lsbGluZyB0byBjaGFuZ2UgdGhlIEFQSSBvciB0aGUgVkFDTSBpcwogICAgICAgIGZpeGVkIGFuZCB0aGUgb3duS2V5Q2huYWdlIG9iamVjdHMgY2FuIGJlIG9ic29sZXRlZC4KCmhhcmRha2VyIDI4IE5vdiA5OCAxMTo0MTozNgogICAgLSAoc25tcHBhc3MuYyk6IC1vOiB1c2UgdGhlIG93bktleUNoYW5nZSBvYmplY3QuCgptYXJ6IDI5IE5vdiA5OCAxOTozMjoyMQogICAgIChkZW1vKTogZml4IHRpbWUgc3luYyB0ZXN0IHRvIHRlc3QgZm9yIHRpbWVvdXQgYXMgZXhwZWN0ZWQgd2hlbiBhcHAgY2xvY2sgaXMgc2V0IGFoZWFkCgptYXJ6IDI5IE5vdiA5OCAxOTozNDo0MQogICAgIC0oc25tcF9hcGkuYyk6IG1vdmUgY29tbWFuZGxpbmUgYmFzZWQgYm9vdHMvdGltZSBzZXR0aW5nIGNvZGUgYWZ0ZXIgZW5naW5lSUQgZGlzY292ZXJ5IGluIGNhc2UgZW5naW5lSUQgd2FzIG5vdCBzdXBwbGllZCBvbiBjb21tYW5kIGxpbmUgYXMgd2VsbAoKaGFyZGFrZXIgMzAgTm92IDk4IDIyOjAwOjIzCiAgICAtIChkZW1vKTogYmV0dGVyIGRvY3VtZW50IHRoZSByZXF1aXJlZCAuY29uZiBmaWxlIHBpZWNlcy4KCmhhcmRha2VyIDMwIE5vdiA5OCAyMjoxMjoxMAogICAgLSAoZGVtbyk6IGVuYWJsZSAtQzogYXV0by1jb25maWd1cmUgdGhlIGFnZW50LgoKd2JhYnNvbiAgMSBEZWMgOTggMDc6NTY6NTUKICAgIEZpeGVkIGEgbGlicmFyeSBzZWFyY2ggb3JkZXIgYnVnIHdoaWNoIGhhZCAvdXNyL2xvY2FsL3NzbC9saWIgYW5kIC91c3IvbG9jYWwvbGliCiAgICBzZWFyY2hlZCBiZWZvcmUgLi4vc25tcGxpYi4gVGhpcyBjYXVzZWQgdW5yZXNvbHZlZCByZWZlcmVuY2VzIHdoZW4gdHJ5aW5nIHRvCiAgICBsaW5rIHNubXBkIGFuZCB0aGUgYXBwbGljYXRpb25zLiBUbyBkbyB0aGlzIExPQ0FMX0xJQlMgd2FzIGNyZWF0ZWQgYW5kIC4uL3NubXBsaWIKICAgIHdhcyByZW1vdmVkIGZyb20gTElCUyBhbmQgcGxhY2VkIHRoZXJlLiBUaGVuIExPQ0FMX0xJQlMgd2FzIGFkZGVkIGJlZm9yZQogICAgTERGTEFHUyBpbiB0aGUgbGluayBjb21tYW5kcy4gYWdlbnQvTWFrZWZpbGUuaW4gYW5kIGFwcHMvTWFrZWZpbGUuaW4gd2VyZSBtb2RpZmllZC4KCmhhcmRha2VyICAxIERlYyA5OCAxNDo1NDoyOAogICAgLSAoc25tcF9hcGkuYyk6IGluY2x1ZGUga210LmggYW5kIHJlbGF0ZWQuCgpoYXJkYWtlciAgMSBEZWMgOTggMTQ6NTU6MjgKICAgIC0gKHRvb2xzLmMpOiBpbmNsdWRlIGttdC5oIGFuZCByZWxhdGVkLgoKaGFyZGFrZXIgIDEgRGVjIDk4IDE0OjU1OjQ5CiAgICAtICh1c21Vc2VyLmMpOiBpbmNsdWRlIGttdC5oIGFuZCByZWxhdGVkLgoKaGFyZGFrZXIgIDEgRGVjIDk4IDE0OjU1OjU1CiAgICAtIChzbm1wcGFzcy5jKTogaW5jbHVkZSBrbXQuaCBhbmQgcmVsYXRlZC4KCm1hcnogIDIgRGVjIDk4IDA4OjMyOjI5CiAgICAgLShkZW1vLmMpOiB0ZXN0ICMzOCB3aWxsIHNob3cgdGhlIDYgbWVzc2FnZSBleGNoYW5nZSBzaW5jZSBpdCBpcyBpbml0aWFsaXplZCB3aXRoIGEgc2ltdWxhdGVkIGF1dGhlbnRpYyBvb3RzL3RpbWUgd2hpY2ggZGVmZWF0cyB0aGUgTENEX1RJTkVfU1lOQ19PUFQKCmhhcmRha2VyICAyIERlYyA5OCAxNDoyNjowOAogICAgLSAoc25tcF9hZ2VudC5jKTogYWZ0ZXIgZGV0ZWN0aW9uIG9mIHNubXAgdmVyc2lvbiwgZXJyb3IgY29kZXMgd2VyZSByZXZlcnNlZC4KCmhhcmRha2VyICAyIERlYyA5OCAxNToxODo1MwogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGFkZGVkIHYzIHNwZWNpZmljIHRva2VuIG5vdGVzLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE1OjE5OjQ3CiAgICAtIChNYWtlZmlsZS5pbiwgc25tcC5jb25mLjUuZGVmKTogY3JlYXRlZCBhIHNubXAuY29uZiBtYW51YWwgcGFnZS4KCmhhcmRha2VyICAyIERlYyA5OCAxNzowMzoyNwogICAgLSAoLmN2c2lnbm9yZSk6IHNubXAuY29uZi41IGlnbm9yZWQuCgpoYXJkYWtlciAgMiBEZWMgOTggMTc6MDM6NDgKICAgIC0gKHNubXAuY29uZi41LmRlZik6IG1pYmRpcnMsIG1pYnMsIGFuZCBtaWJmaWxlcyBkb2N1bWVudGVkLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDE5OjM4OjEyCiAgICAtIChsY2RfdGltZS5jKTogY29tbWVudCBjbGFpcmlmaWNhdGlvbi4KCmhhcmRha2VyICAyIERlYyA5OCAxOTozOToyMgogICAgLSAobWliLmMpOiB1bm5lZWRlZCBYWFggcmVtb3ZlZC4KCmhhcmRha2VyICAyIERlYyA5OCAxOTozOTo0NwogICAgLSAocmVhZF9jb25maWcuYyk6IG1ha2UgY29weV93b3JkKCkgc2tpcCBhaGVhZCBvZiBzcGFjZSBvbiByZXR1cm5lZCBwb2ludGVyLgoKZHJlZWRlciAgMyBEZWMgOTggMTg6NDQ6NDkKICAgIENvLWNoZWNraW4gd2l0aCBuZXcgdmVyc2lvbiBvZiBLTVQgKGxvY2F0ZWQgaW4gbm9uZXhwb3J0L0tNVC1zbm1wKS4KICAgIGttdF9yYW5kb20oKSBzaWduYXR1cmUgY2hhbmdlZCBpbiBzY19yYW5kb20oKS4KICAgIFNlY29uZCB2ZXJzb24gdGVzdGluZy9kZW1vIGF0IHRlc3RpbmcvZGVtbzIqIC4KCmhhcmRha2VyICAzIERlYyA5OCAyMjoyMDowNgogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBuZXcgZmxhZyBhbmQgZGVmaW5lIC0tZW5hYmxlLXRlc3RpbmctY29kZSAtPiBTTk1QX1RFU1RJTkdfQ09ERS4KCmhhcmRha2VyICAzIERlYyA5OCAyMjoyMjo1OQogICAgLSAoa2V5dG9vbHMuYyk6IHVzZSBTTk1QX1RFU1RJTkdfQ09ERSBkZWYgdG8gcHJvdGVjdCBzb21lIHNlY3Rpb25zLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjIzOjQ4CiAgICAtIChzY2FwaS5jKTogdGVzdGluZyBERUJVR1AgZm9yIHByaW50aW5nIG91dCBrZXlzLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIyOjI2OjQwCiAgICAtIChzbm1wdXNtLmMsIHNubXB1c20uaCk6CiAgICAgIC0gcHJvdGVjdCBzZWN0aW9ucyB3aXRoIFNOTVBfVEVTVElOR19DT0RFLgogICAgICAtIGFsbG93IConcyBpbiBmaWVsZHMgZm9yIGVuZ2luZUlEcyBmb3Iga2V5IHNldHRpbmcgLmNvbmYgZW50cmllcy4KCmhhcmRha2VyICAzIERlYyA5OCAyMjozMjoyMAogICAgLSAoc25tcEVuZ2luZS5jLCBzbm1wRW5naW5lLmgpOgogICAgICAtIG9ubHkgbWFrZSB0aW1lL2Jvb3RzIHNldGFibGUgd2hlbiBTTk1QX1RFU1RJTkdfQ09ERSBpcyBkZWZpbmVkLgoKaGFyZGFrZXIgIDMgRGVjIDk4IDIzOjE3OjE3CiAgICAtIChkZW1vKTogcmVtb3ZlZC4KCm1hcnogIDQgRGVjIDk4IDA4OjA1OjU5CiAgICAgLShzbm1wY21kLjEpOiB1cGRhdGUgbWFuIHBhZ2UgZm9yIG5ldyBWMyBwYXJzZSBhcmdzCgpoYXJkYWtlciAgNCBEZWMgOTggMTE6MDM6MTQKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wcGFzcy5jLCBzbm1wdXNtLmMpOgogICAgICAtIGRlbGV0ZSBzbm1wcGFzcy4KICAgICAgLSBjcmVhdGUgZmlyc3QgcGFzcyBzbm1wdXNtLmMuCgpoYXJkYWtlciAgNCBEZWMgOTggMTE6MDQ6MDkKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCB0aGUgKiBmb3IgZW5naW5lSUQgZmVhdHVyZS4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo0NTo0MwogICAgLSAoVUNELURFTU8tTUlCLnR4dCk6IGRlbW8gbWliIG9iamVjdHMuCgpoYXJkYWtlciAgNCBEZWMgOTggMTY6NDY6MDkKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBtZW50aW9uL3Jlc2VydmUgdGhlIGRlbW8gb2JqZWN0IGdyb3VwIGluIGEgY29tbWVudC4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo0OToyMQogICAgLSAoLmN2c2lnbm9yZSk6IC5nZGIgc3R1ZmYKCmhhcmRha2VyICA0IERlYyA5OCAxNjo1MDowNAogICAgLSAodWNkRGVtb1B1YmxpYy5jLCB1Y2REZW1vUHVibGljLmgpOgogICAgICAtIGV4YW1wbGVzL3VjZERlbW9QdWJsaWMgbW9kdWxlOiAgc2ltcGxlIG9iamVjdHMgZm9yIGRvaW5nIGRlbW9zLAogICAgICAgIGluY2x1ZGluZyByZW1vdGUgcmVzZXR0aW5nIG9mIGtleXMgdG8gYSBrbm93biBwYXNzd29yZHMgZm9yIGEgbGlzdAogICAgICAgIG9mIHVzZXJzLgoKaGFyZGFrZXIgIDQgRGVjIDk4IDE2OjUwOjI4CiAgICAtICh1Y2REZW1vUHVibGljLmNtZHMpOiBjb21tYW5kcyB0byBydW4gdG8gc2V0IHVwIGZvciB0aGUgZGVtby4KCmhhcmRha2VyICA0IERlYyA5OCAxNjo1MDozOAogICAgLSAodWNkRGVtb1B1YmxpYy5jb25mKTogY29uZmlndXJhdGlvbiBmaWxlIGxpbmVzIG5lZWRlZCBmb3IgdGhlIGRlbW8uCgpoYXJkYWtlciAgNCBEZWMgOTggMTg6Mzg6MDUKICAgIC0gKHZlcnNpb24uaCwgc2Vkc2NyaXB0LmluLCBidWctcmVwb3J0KTogNC4wLnByZTEgdGFnCgpkcmVlZGVyICA1IERlYyA5OCAxNjo1Mjo0OQogICAgRXh0ZW5kZWQgZGVtbzIgaW50byBkZW1vLnJlbW90ZSB0byBhbGxvdyB0ZXN0aW5nIGJldHdlZW4gPGhlcmU+IGFuZAogICAgdWNkLXNubXAudWNkYXZpcy5lZHUuCgptYXJ6IDEzIERlYyA5OCAxNDo1NzowMgogICAgIC0oc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuYyk6IGFkZCBzdXBwb3J0IGZvciBtc2dJRCB3aGljaCBpcyBkaWZmZXJlbnQgZnJvbSByZXFpZCBhbmQgd2hpY2ggaW5jcmVtZW50cyB3aXRoIGVhY2ggcmV0cnkuIE5vdGU6IGxhdGUgUmVzcG9uc2VzIHdpbGwgYmUgZHJvcHBlZCBpZiB0aGV5IGFycml2ZSBhZnRlciB0aW1lb3V0IC0gdGhpcyBpcyBkaWZmZXJlbnQgZnJvbSB2MSBiZWhhdmlvdXIgd2hlcmUgYSBsYXRlIFJlc3BvbnNlIHRvIHRoZSBpbml0aWFsIHRyeSB3aWxsIGJlIGFjY2VwdGVkIHVwIHRvIHRoZSB0aW1lIHdoZXJlIHRoZSBsYXN0IHJldHJ5IHRpbWVzIG91dAoKaGFyZGFrZXIgMTMgRGVjIDk4IDE4OjM5OjAyCiAgICAtIChtaWIyYyk6IG1pbm9yIHVwZGF0ZSAobmVlZHMgbW9yZSkgZm9yIG5ld2VyIHNubXAgcGVybCBtb2QuCgpoYXJkYWtlciAxMyBEZWMgOTggMTg6Mzk6NDQKICAgIC0gKC5jdnNpZ25vcmUpOiAuZ2RiLmF1dG8uaW5pdAoKaGFyZGFrZXIgMTMgRGVjIDk4IDE4OjQxOjExCiAgICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMpOiByZW1vdmVkIHVubmVlZGVkIGxpbnV4IGlmZGVmLgoKaGFyZGFrZXIgMTcgRGVjIDk4IDE1OjU5OjEwCiAgICAtIChyZWFkX2NvbmZpZy5jKTogd3JhcCBjb25maWcgbGluZSBwcmludCdzIGluIFNOTVBfVEVTVElOR19DT0RFIGNoZWNrcy4KCmhhcmRha2VyICAyIERlYyA5OCAyMTo1NTowNAogICAgLSAoanVzdCBhYm91dCBhbGwgZmlsZXMpOiBtZXJnZSBvZiBWMy1iMSBjaGFuZ2VzIGludG8gVjMtYjIgYnJhbmNoLgoKaGFyZGFrZXIgIDIgRGVjIDk4IDIyOjI3OjU0CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCB1c21Vc2VyLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgICByZWFkX2NvbmZpZy5oLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsIHNubXB2My5jLCB0b29scy5oKToKICAgICAgLSBmaW5hbCBjaGFuZ2VzPyB0byBWMy1iMiBtZXJnZS4KCmhhcmRha2VyICAyIERlYyA5OCAyMjoyOTo1MgogICAgLSAocmVhZF9jb25maWcuYyk6IG1ha2UgdGhhdCAyOCBlcnJvcnMgZnJvbSB3aGl0ZXNwYWNlIGNoYW5nZXMuCgpoYXJkYWtlciAgMiBEZWMgOTggMjI6Mzc6MDgKICAgIC0gKHNubXBkLmMpOiBjYWxsIGluaXRfc25tcHYzIGJlZm9yZSAtSCB1c2FnZSBpbmZvLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDEwOjMzOjQ1CiAgICAtICgqKTogbWVyZ2UxIHRvIFYzLWIzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDE4OjU2OjE4CiAgICAtICgqKTogbWVyZ2UyIHRvIFYzLWIzLgoKZHJlZWRlciAxNyBEZWMgOTggMDg6MDU6MDQKICAgIENyZWF0dXJlIGNvbWZvcnQ6IC9ldGMgc2NyaXB0IHRvIChyZSlzdGFydCBhbmQgc3RvcCBzbm1wZCBhbmQgc25tcHRyYXBkCiAgICBhbmQga2VlcCAoY29tcHJlc3NlZCkgY29waWVzIG9mIHByZXZpb3VzIGxvZ2ZpbGVzLiAgSW50ZW5kZWQgdG8gYmUgdW5pdmVyc2FsCiAgICB0byBMaW51eCwgU29sYXJpcywgRnJlZUJTRCwgLi4uIC4KCmhhcmRha2VyIDIxIERlYyA5OCAxNzozNjozNwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkZWZpbmUgVVNFX0lOVEVSTkFMX01ENSBpZiBLTVQgaXNuJ3QgYXZhaWxhYmxlLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE3OjQ5OjM4CiAgICAtIChhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIG1kNS5jLCBtZDUuaCwgc2NhcGkuYywKICAgICAgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHRvb2xzLmMpOgogICAgICAtIGludGVybmFsIE1ENSBzdXBwb3J0IGRvbmUuCiAgICAgICAgLSB0ZXN0ZWQgd2l0aCBhbmQgd2l0aG91dCBrbXQgdG8gb3Bwb3NpdGUgYW5kIHNhbWUgc2lkZSBhcHBzL2FnZW50cy4KICAgICAgICAtIHRlc3RlZCBhZ2FpbnN0IG9sZGVyIDQuMC5wcmUxIGFnZW50IG9uIGJhbmRpdCBhcyB3ZWxsLgogICAgICAgIC0gYWxsIGJ1dCBvbmUgdGVzdGluZy8qIHRlc3QgcGFzc2VzICh3aGljaCB3YXMgZmFpbGluZyBiZWZvcmUgYW55d2F5KS4KICAgICAgICAtIHRoZSBvbGRlciBkZW1vIHNjcmlwdCBwYXNzZXMgYXMgd2VsbC4KICAgICAgLSBNb2RpZmllZCBtYW55IG90aGVyIHJvdXRpbmVzLiAgRXZlcnl0aGluZyBzaG91bGQgdXNlIFNDQVBJIG5vdyBhbmQKICAgICAgICBLTVQgc2hvdWxkIG5ldmVyIGJlIGNhbGxlZCBkaXJlY3RseSBvdXRzaWRlIHRoZSBzY2FwaS5jIGFuZAogICAgICAgIGtleXRvb2xzLmMgZmlsZXMuCiAgICAgICAgLSBuZXcgc2NhcGkgcm91dGluZTogIHNjX2hhc2goKS4KICAgICAgLSBDb3VsZCwgYXMgYWx3YXlzLCB1c2UgYSBiaXQgbW9yZSBjbGVhbiB1cCwgYnV0IEkgbmVlZGVkIHRvIGNoZWNrCiAgICAgICAgc29tZXRoaW5nIGluIHRoYXQgd29ya2VkIGJlZm9yZSBJIGJyZWFrIGl0IGFnYWluIChhaGVtKS4KCmhhcmRha2VyIDIxIERlYyA5OCAxNzo1MzoxMAogICAgLSAoc25tcGdldC5jLCBzbm1wdXNtLmMpOiB1bm5lZWRlZCBLTVQgaW5jbHVkZXMgcmVtb3ZlZC4KCmhhcmRha2VyIDIxIERlYyA5OCAxNzo1NDozOAogICAgLSAoa2V5bWFuYWdldGVzdC5jKTogc3Vycm91bmQgYSBmZXcgS01UIHNwZWNpZmljIGl0ZW1zIHdpdGggI2lmZGVmcy4KCmhhcmRha2VyIDIxIERlYyA5OCAxNzo1Njo1NgogICAgLSAoc25tcF9hZ2VudC5jKTogcmVtb3ZlIHVubmVlZGVkIEtNVCBpbmNsdWRlcy4KCmhhcmRha2VyIDIyIERlYyA5OCAxOTo0MDoxMgogICAgLSAoa2V5dG9vbHMuYyk6IGRlY29kZV9rZXljaGFuZ2UoKSB3YXNuJ3Qgc2V0dGluZyB0aGUgcmV0dXJuZWQgYnVmZmVyIGxlbmd0aC4KCmhhcmRha2VyIDIyIERlYyA5OCAxOTo0Mzo1MAogICAgLSAoc25tcF9hcGkuYyk6IERFQlVHUCBvZiBwcm9iZWQgZW5naW5lSUQgcHJpbnRlZCAwMCdzIGFzIDAncy4KCmhhcmRha2VyIDIyIERlYyA5OCAyMTowOTozOAogICAgLSAoc25tcF9hZ2VudC5jLCB1c21TdGF0cy5jLCB1c21TdGF0cy5oLCB1c21Vc2VyLmgsCiAgICAgIFNOTVAtVVNFUi1CQVNFRC1TTS1NSUIudHh0KToKICAgICAgLSB1cGRhdGVkIFVTTSBtaWIsIGluY2x1ZGluZyB0aGUgbW92ZSBmcm9tIHNubXBNb2R1bGVzLjEyIHRvIC4xNS4KICAgICAgLSBtYWtlIHJlcG9ydHMgZ2VuZXJhdGVkIGluY2x1ZGUgdGhlIC4wIHN1ZmZpeCBmb3IgdGhlIGluc3RhbmNlIHNwZWNpZmllci4KCmhhcmRha2VyIDIyIERlYyA5OCAyMToxMDoyOAogICAgLSAodG9vbHMuYyk6IHdyYXAgZHVtcF9lbmdpbmVJRCBpbiAjaWZkZWYgU05NUF9URVNUSU5HX0NPREUuCgpoYXJkYWtlciAyMiBEZWMgOTggMjE6MTc6MjUKICAgIC0gKGxjZF90aW1lLmMpOiB3cmFwIGR1bXBfZXRpbWVsaXN0KCkgaW4gI2lmZGVmIFNOTVBfVEVTVElOR19DT0RFLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIxOjIwOjMxCiAgICAtIChlbmNvZGVfa2V5Y2hhbmdlLmMpOgogICAgICAtIGRvbid0IHVzZSBkdW1wX3NubXBFbmdpbmVJRCgpIHVubGVzcyB0ZXN0aW5nLgogICAgICAtIE5vdGU6IHRoaXMgdXRpbGl0eSBpcyBub3QgcmVhbGx5IG5lZWRlZCBhbnltb3JlLgoKaGFyZGFrZXIgMjIgRGVjIDk4IDIyOjEyOjMyCiAgICAtIChTTk1QLVVTRVItQkFTRUQtU00tTUlCLnR4dCk6IHR5cG8gKGN1dCBhbmQgcGFzdGUgbWlzc2VkIGEgbGluZSkuCgpoYXJkYWtlciAyMyBEZWMgOTggMjE6MDc6MzMKICAgIC0gKHNubXB1c20uYyk6IG1zZ1NlY3VyaXR5UGFyYW1zIHNob3VsZCBjb250YWluIHRoZSAqc2FsdCosIG5vdCB0aGUgSVYsCiAgICAgIGFzIGRlZmluZWQgYnkgdGhlIFVTTSBkb2N1bWVudCwgc2VjdGlvbiA4LjEuMS4xIChhbmQgY29tbW9uIHNlbnNlKS4KCmhhcmRha2VyIDIzIERlYyA5OCAyMTo0Nzo0NAogICAgLSAoc25tcF9hcGkuYyk6CiAgICAgIC0gU2VuZCBvbmx5IGF1dGhOb1ByaXYgcmVwb3J0cyBmb3Igbm90SW5UaW1lV2luZG93IHJlcG9ydHMuCiAgICAgIC0gcmVwb3J0IGxlbmd0aCBjaGVjayBpbmNyZWFzZWQgYnkgb25lIHRvIGFjY29tb2RhdGUgZm9yIHRoZSAuMCBzdWZmaXguCgpoYXJkYWtlciAyMyBEZWMgOTggMjI6MDY6MjUKICAgIC0gKHNubXB1c20uYyk6IGFsbG93IGdlbmVyYXRlX291dF9tc2coKSB0byB1c2UgdW5rbm93biBzZWN1cml0eSBuYW1lcwogICAgICBmb3Igc2VjTGV2ZWwgPSBub0F1dGhOb1ByaXYuCiAgICAgIC0gdGhpcyBpcyByZXF1aXJlZCBzaW5jZSB1bmtub3duVXNlciByZXBvcnRzIG5lZWQgdG8gZ28gb3V0IHdpdGggdGhlCiAgICAgICAgc2FtZSB1c2VyIG5hbWUgYXMgdGhlIGJhZCByZXF1ZXN0IHRoYXQgY2FtZSBpbi4KCmhhcmRha2VyIDI5IERlYyA5OCAxNzowMToyNAogICAgLSAodmFjbS5jKTogRW5hYmxlIG11bHRpcGxlIHNpZGUgYnkgc2lkZSB2aWV3cyBpbiB0aGUgdmlldyBmYW1pbHkKICAgICAgdHJlZS4gIFRoZSB2aWV3cyBhbHJlYWR5IGV4aXN0ZWQsIGJ1dCB3ZXJlbid0IGNoZWNrZWQgYW5kIG9ubHkgdGhlCiAgICAgIGZpcnN0IHZpZXcgd2FzIGZvdW5kLgogICAgICAtIE5vdCBkb25lIGluIGEgY2xlYW4gZmFzaGlvbi4gIE11Y2ggb2YgdGhlIHN0cnVjdHVyZSBkZWZpbml0aW9ucwogICAgICAgIHNob3VsZCBiZSByZXdyaXR0ZW4gd2l0aCBzdWItcGllY2VzIHRvIGRvIGl0IHByb3Blcmx5IHdpdGggZ3JlYXRlcgogICAgICAgIHNwZWVkLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE3OjI4OjMxCiAgICAtIChjb25maWcqKTogZGVmaW5lIHVfaW50ezgsMTYsMzJ9X3QgZm9yIEtNVCBoZWFkZXJzLgoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjU1OjM5CiAgICAtIChzbm1wdXNtLmMpOiBVU00gb2lkJ3Mgd2VyZSB3cm9uZwoKaGFyZGFrZXIgMzEgRGVjIDk4IDE3OjU4OjE5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUyICkKCmhhcmRha2VyICA2IEphbiA5OSAwNzo0NjowMgogICAgLSAoc25tcHVzbS5jKTogdXNtX3NldF9zYWx0KCkgd2FzIHVzaW5nIGEgaG9zdCBzcGVjaWZpYyBieXRlIG9yZGVyaW5nCiAgICAgIGZvciBnZW5lcmF0aW5nIHRoZSBzYWx0IGZyb20gdGhlIGVuaWdpbmVCb290cyB2YWx1ZSBhbmQgZnJvbSB0aGUKICAgICAgYXJiaXRyYXJ5IGludGVnZXIuICBUaGlzIHRlY2huaWNhbGx5IHNob3VsZG4ndCBtYXR0ZXIsIGJ1dCBzaW5jZQogICAgICB3ZSdyZSBzaG9vdGluZyB0byBiZSBhIHJlZmVyZW5jZSBwbGF0Zm9ybS4uLgoKaGFyZGFrZXIgMTkgSmFuIDk5IDE5OjIwOjA3CiAgICAtIChJU1NVRVMpOiBuZWVkIHJhbmRvbSBpbnQgZm9yIElWLgoKd2JhYnNvbiAyNiBKYW4gOTkgMDU6NTI6MTkKICAgICBDaGFuZ2VkIE1JTigpIG1hY3JvIHRvIFNOTVBfTUlOKCkgYmVjYXVzZSB3ZSBleHBsaWNpdGx5CiAgICAgZGVmaW5lIHRoYXQgaW4gdG9vbHMuaC4uLiBUaGlzIHdhcyBuZWVkZWQgdG8gYWxsb3cgc3VjY2Vzc2Z1bAogICAgIGxpbmthZ2UgaW4gU29sYXJpcyAyLjYKCmhhcmRha2VyIDI3IEphbiA5OSAyMDozNzo1NgogICAgLSAoU05NUC1UQVJHRVQtTUlCLnR4dCk6IHRhcmdldCBtaWIgd2FzIGltcHJvcGVybHkgbG9jYXRlZCBhdCAuMTUgbm90IC4xMi4KCmhhcmRha2VyIDI3IEphbiA5OSAyMDo1MToxMgogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBhY2NlcHQgc2VjdXJpdHkgbGV2ZWwgYWJicmV2aWF0aW9ucy4KCmhhcmRha2VyIDI3IEphbiA5OSAyMTowNzo1OQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jKToKICAgICAgLSBjcmVhdGUgLS13aXRoLXBlcnNpc3RlbnQtZGlyZWN0b3J5IGNvbmZpZ3VyZSBzY3JpcHQgZmxhZy4KCmRyZWVkZXIgMjkgSmFuIDk5IDE1OjIwOjUxCiAgICBSZXBhaXJlZCB0ZXN0cyB0byByZWZsZWN0IGNoYW5nZXMgaW4gdGhlIGNvZGViYXNlLgoKbWFyeiAzMSBKYW4gOTkgMTM6NTc6MTMKICAgICAtKHNubXBfYXBpLmMpOiB6ZXJvIGxlbmdodCB1c2VyIG5hbWUgZm9yIGVuaW5lSUQgZGlzY292ZXJ5CgpkcmVlZGVyICAyIEZlYiA5OSAxNDowNDo0OAogICAgUmVzb2x2ZSBPSUQgY29sbGlzaW9uczogMSkgYmV0d2VlbiBkZW1vIE1JQiBhbmQgVUNEIGVudGVycHJpc2UgTUlCOyAyKQogICAgaW5zaWRlIGRlbW8gTUlCLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjA0OjM4CiAgICAtIChzbm1wdHJhcGQuYyk6IHN1cHBvcnQgLUguCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MTM6NDEKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIGFsbG93IGVudiB2YXJpYWJsZSBTTk1QX1BFUlNJU1RFTlRfRklMRSB0byBvdmVycmlkZSBwZXJzaXN0ZW50CiAgICAgICAgc3RvcmFnZSBsb2NhY3Rpb24uCiAgICAgIC0gbWVyZ2UgaW4gTWlrZSdzIGNoYW5nZXMgdG8gY29weV93b3JkKCkuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MTQ6NDYKICAgIC0gKHRhcmdldC5oKTogbWVyZ2UgbWlrZSdzIHRhcmdldCBtaWJncm91cCBpbnRvIHRoZSA0LjAgbGluZS4KCm1hcnogIDYgRmViIDk5IDE1OjA0OjEzCiAgICAgLShzbm1wX2FwaS5bY2hdLHNubXBfcGFyc2VfYXJncy5jLHNubXB2My5bY2hdLHNubXB1c20uYyxzbm1wY21kLjEpOiBhbGxvdyBjb250ZXh0RW5naW5lSUQgYW5kIHNlY3VyaXR5RW5naW5lSUQgdG8gYmUgZGlmZmVyZW50LCBhZGRlZCAtRS8tZSB0byBwYXJzZV9hcmdzLCBmaXhlZCBlbmdpbmVJRCBkaXNjb3Zlcnkgd2hpY2ggYnJva2UgYWZ0ZXIgbmFtZSB1c2VkIGluIHByb2JlIHN3aXRjaGVkIHRvIHplcm8gbGVuZ3RoIHN0cmluZwoKaGFyZGFrZXIgIDcgRmViIDk5IDIwOjQzOjE1CiAgICAtIChyZWFkX2NvbmZpZy5jKTogLVdhbGwgZml4LgoKaGFyZGFrZXIgIDcgRmViIDk5IDIwOjQ1OjE3CiAgICAtIChzbm1wdjMuYywgc25tcHYzLmgpOiBhIGZldyAtV2FsbCBmaXhlczoKICAgICAgLSBwcm90b3lwZSBpbml0X3NubXB2M19wb3N0X2NvbmZpZyh2b2lkKS4KICAgICAgLSByZW1vdmUgdW5uZWVkZWQgdmFyaWFibGVzLgogICAgICAtIGRvbid0IGNvbXBpbGUgaW4gc2V0X2VuZ2luZUJvb3RzQW5kVGltZSBpbnRlcmZhY2UgZnVuY3Rpb24gaWYgbm90IG5lZWRlZC4KCmhhcmRha2VyICA3IEZlYiA5OSAyMDo0Nzo1OQogICAgLSAoc25tcDJwLmMsIHNubXBfYWdlbnQuYywgc25tcF9hZ2VudC5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgICAgIHNubXBkLmMsIHNubXBkLmgsIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwKICAgICAgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBpbXBsZW1lbnQgYWdlbnQgdXNpbmcgbGlicmFyaWVzIHBhcnNpbmcgYW5kIGhhbmRsaW5nIHJvdXRpbmVzCiAgICAgICAgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyBpdC4KCmhhcmRha2VyICA4IEZlYiA5OSAwMDoxMTo1OQogICAgLSAoc25tcF9hZ2VudC5jLCB1dGlsX2Z1bmNzLmMsIHVjZERlbW9QdWJsaWMuYywgcm91dGVfd3JpdGUuYywKICAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHNubXBFbmdpbmUuYywgdXNtVXNlci5jLCBleHRlbnNpYmxlLmMsIHBhc3MuYywKICAgICAgcGFzc19wZXJzaXN0LmMsIHByb2MuYywgdmVyc2lvbmluZm8uYyk6CiAgICAgIC0gbW9kaWZpZWQgdG8gd29yayB3aXRoIG5ldyB3cml0ZSB2YXJpYWJsZSBhcGkuCiAgICAgIC0gZml4ZWQgYSBtaXNzaW5nIGZlYXR1cmUgaW4gRGF2ZSdzIGNvZGU6IGNyZWF0aW9uLgoKaGFyZGFrZXIgIDggRmViIDk5IDEyOjIyOjEzCiAgICAtIChDT1BZSU5HKTogSXQncyAxOTk5LgoKd2JhYnNvbiAgOCBGZWIgOTkgMTM6MzQ6MzkKICAgIENoYW5nZWQgdGhlIGZ1bmN0aW9uIHByb3RvdHlwZSBmb3Igc25tcHYzX3NldF9lbmdpbmVCb290c2FuZCBUaW1lCiAgICBmcm9tIGludCBmKCk7IHRvIHZvaWQgZigpOyB0byBtYXRjaCB0aGUgZnVuY3Rpb24gZGVmaW5pdGlvbiBpCiAgICBzbm1wdjMuYyAuCgp3YmFic29uICA4IEZlYiA5OSAxMzo0MDoyNwogICAgZml4ZWQgY2FzdGluZyBlcnJvci4uLiAqKGxvbmcpIGNoYW5nZWQgdG8gKihsb25nICopCgpkcmVlZGVyIDE3IEZlYiA5OSAxNjoyMzo0MwogICAgUmFuZG9tIElWOyBmaXhlZCBzYWx0IGNvbnN0cnVjdGlvbi4KICAgIEZpeGVkIE5VTEwgZGVyZWZlcmVuY2Ugc2hvdy1zdG9wcGVyIGludHJvZHVjZWQgYnkgbWVyZ2Ugb2YgRC4gU2hlbGQncyBjaGFuZ2VzLgogICAgY29uZmlndXJlLmluK01ha2VmaWxlLmluIGF1dG9tYXRpY2FsbHkgY3JlYXRlIFBFUlNJU1RFTlRfRElSRUNUT1JZLgogICAgTWlub3IgY29tcGlsZSB3YXJuaW5ncywgb3V0LW9mLWRhdGUgY29tbWVudHMgZml4ZWQsIGNsYXJpZmllZCBkZWJ1ZyBvdXRvdXQsCiAgICAJY2xhcmlmaWVkIHByZS1jb21waWxlIGNvZGUgaW4gc2NhcGkuYy4KICAgIERpc2NvdmVyZWQgd2hlcmUgcGR1LT5zZWN1cml0eUVuZ2luZUlEIHdhcyBiZWluZyBtdWx0aXBseSBmcmVlJ2QsIGJ1dCBub3QKICAgIAl0aGUgKmZpcnN0KiB0aW1lLi4uIChvcGVuIHByb2JsZW0pCgpoYXJkYWtlciAxNyBGZWIgOTkgMjA6NTk6MjkKICAgIC0gKHNubXBkLmMpOiAtV2FsbCBmaXhlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDowNwogICAgLSAoc25tcF9hZ2VudC5jKToKICAgICAgLSBmaXggZ2V0YnVsa3MuCiAgICAgIC0gZml4IHNubXBzZXQncyB0byBhbGxvdyBjcmVhdGlvbi4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDoyMgogICAgLSAoZGxtb2RfbWliLmMpOiBkb24ndCBkZWZpbmUgTUFUQ0hfU1VDQ0VFREVEIGF0IGFsbC4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMDozNgogICAgLSAodXRpbF9mdW5jcy5jKTogLVdhbGwgdmFyaWFibGUgcmVtb3ZpbmcuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6MDA6NTgKICAgIC0gKHJvdXRlX3dyaXRlLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jKToKICAgICAgLSAtV2FsbCB2YXJpYWJsZSByZW1vdmluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowMTozNgogICAgLSAodXNtVXNlci5jLCBleHRlbnNpYmxlLmMsIHBhc3MuYywgcHJvYy5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAgLSAtV2FsbCB2YXJpYWJsZSByZW1vdmluZy4KCmhhcmRha2VyIDE3IEZlYiA5OSAyMTowNToyOAogICAgLSAoa2V5dG9vbHMuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLAogICAgICBzbm1wX2NsaWVudC5jLCBzbm1wdXNtLmMsIHRyYW5zZm9ybV9vaWRzLmgpOgogICAgICAtIC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjI4OjU3CiAgICAtIChrZXl0b29scy5jKTogb3Bwcy4gIERlbGV0ZWQgYSB2YXJpYWJsZSBJIHNob3VsZG4ndCBoYXZlLgoKaGFyZGFrZXIgMTcgRmViIDk5IDIxOjMwOjExCiAgICAtIChzbm1wX2FnZW50LmMpOiBZb3UgY2FuJ3QgYXNzaWduIGEgTlVMTCB0byBhIHVuaW9uLCBvbmx5IHRvIGEgc3ViLXR5cGUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMjE6NDU6MjMKICAgIC0gKHRlc3RpbmcvTWFrZWZpbGUuaW4pOiByZW1vdmUgcmVmZXJlbmNlcyB0byBzdWJkaXJzIHNpbmNlIHRoZXJlIGFyZQogICAgICBub25lIGFuZCBpdCBicmVha3Mgc2ltcGxpZXIgdmVyc2lvbnMgb2Ygc2ggd2hlbiBubyBhcmd1bWVudHMgdG8KICAgICAgZm9yZWFjaCBleGlzdC4KCm1hcnogMjQgRmViIDk5IDA5OjMxOjI5CiAgICAgLShzbm1wbGliL3NubXBfYXBpLltjaF0sc25tcGxpYi9zbm1wLmgsYWdlbnQvc25tcGQuaCxhZ2VudC9zbm1wX2FnZW50LmgpOiBtb3ZlZCBSZXBvcnRzIGludG8gc25tcGxpYiwgY29uZm9ybSB0byBzcGVjIG9uIGNyaXRlcnJpYSBmb3Igc2VuZGluZyBSZXBvcnRzLCBsYXkgZ3JvdW5kIHdvcmsgZm9yIG1heE1zZ1NpemUsIGRlZmF1bHQgY29udGV4dEVuZ2luZUlEIHRvIHNlY3VyaXR5RW5naW5lSUQgd2hlbiBub3QgZXhwbGljaXRseSBzZXQgaXRzZWxmCgptYXJ6IDI1IEZlYiA5OSAxNDowNDowNQogICAgIC0oc25tcF9hcGkuYyxzbm1wX2NsaWVudC5jKTogZml4ZWQgYnVnIGluIHNubXBfY2xvbmVfcGR1IChub3QgY2xvbmluZyBzZWN1cml0eUVuaWdpbmVJRCksIHVuY29tbWVudGVkIF9zbm1wX2ZyZWUKCndiYWJzb24gIDkgTWFyIDk5IDA4OjU0OjEyCiAgICBGaXJzdCBjdXQgYXQgc25tcHRyYXBkIG1vZGlmaWNhdGlvbi4gUmVjZWl2ZXMgYXV0aFByaXYgYW5kIGxvd2VyIHNlY3VyaXR5CiAgICBsZXZlbCB0cmFwcy4KCndiYWJzb24gIDkgTWFyIDk5IDA5OjAyOjA3CiAgICBDaGFuZ2VkIERFQlVHUCgpIHN0YXRlbWVudCB0byBnZXQgc2VjdXJpdHlOYW1lIGZyb20gUERVIHJhdGhlciB0aGFuIHNlc3Npb24KICAgIGFzIHNlc3Npb24gd2FzIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgZHVyaW5nIGVuZ2luZSBJRCBkaXNjb3ZlcnkgYW5kIHRoZSBOVUxMCiAgICB2YWx1ZSBjYXVzZWQgYSBzZWdtZW50YWlvbiBmYXVsdC4KCm1hcnogMTAgTWFyIDk5IDA4OjA0OjQ3CiAgICAgLShzbm1wX2FwaS5jKTogZml4IGVuZ2luZUlkIGRpc2NvdmVyeSB3aGVuIGNvbnRleHQgZW5naW5lSUQgaXMgc3BlY2lmaWVkIChuZWVkZWQgdG8gZGlzY292ZXIgcHJveHkgZW5naW5lSUQgaWYgYWxsIHlvdSBrbm93IGlzIHByb3hpZWQgYWdlbnQncyBlbmdpbmVJRCkKCndiYWJzb24gMTcgTWFyIDk5IDEzOjI3OjU5CiAgICBDaGFuZ2VkIERFQlVHUCgpIHN0YXRlbWVudCBhYm91dCBCdWlsZGluZyB0aGUgU05NUCBtZXNzYWdlIHNvIHRoYXQKICAgIGV2ZW4gaWYgc2VjdXJpdHlOYW1lIGlzIHVuaW5pdGlhbGl6ZWQgKE5VTEwpLCBwcm9ncmFtIHdpbGwgY29udGludWUKICAgIHdpdGhvdXQgY29yZSBkdW1waW5nLiBMYXRlciwgc29tZW9uZSBzaG91bGQgc2VlIGFib3V0IGZpeGluZyB0aGUgbG9naWMKICAgIHNvIHRoYXQgc2VjdXJpdHlOYW1lIHdpbGwgbm90IGJlIGEgTlVMTCBwb2ludGVyIGhlcmUsIG9yCiAgICByZXBhaXIgdGhlIGRlYnVnZ2luZyBzY2hlbWUsIGlmIHRoYXQncyB2YWxpZC4KCmhhcmRha2VyIDI0IE1hciA5OSAyMDozMDoxMgogICAgLSAobWliaW5jbC5oKTogYWRkIGFnZW50X3JlYWRfY29uZmlnLmgKCmhhcmRha2VyIDI0IE1hciA5OSAyMDozMjo0NAogICAgLSAodGVzdGluZy9NYWtlZmlsZS5pbik6IHJlbW92ZSBzdWJkaXJzLgoKaGFyZGFrZXIgMjggTWFyIDk5IDE2OjAzOjA0CiAgICAtICh2YWNtX3ZhcnMuaCk6IHJlbG9jYXRlIFZBQ00gbm9kZSB3aGVyZSBpdCBzaG91bGQgYmUgKDEzLT4xNikuCgpoYXJkYWtlciAyOCBNYXIgOTkgMTY6MTY6MzgKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBza2lwIHNwYWNlIGFmdGVyIGNvcHlpbmcgYSB3b3JkIGluIGNvcHlfd29yZCgpCgpoYXJkYWtlciAzMCBNYXIgOTkgMDk6NTE6MjEKICAgIC0gKHVjZERlbW9QdWJsaWMuYyk6IGFkZGVkIGhlbHAgc3RyaW5ncyB0byBjb25mIHBhcnNlcnMuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6Mjc6MjkKICAgIC0gKE1ha2VmaWxlLmluKTogcmVtb3ZlIGFjY2lkZW50aWFsbHkgY29taXR0ZWQgY29uZmxpY3QuCgpoYXJkYWtlciAxNSBBcHIgOTkgMDc6MjU6NDgKICAgIC0gKGtleXRvb2xzLmMpOiBBbGxvdyBzaG9ydCBwYXNzcGhyYXNlcyB3aGVuIFNOTVBfVEVTVElOR19DT0RFIGlzIHNldC4KCm1hcnogMTkgQXByIDk5IDE0OjE0OjIzCiAgICAgLShzbm1wX2FwaS5bY2hdLHNubXBfY2xpZW50LmMpOiBmaXhlZCBidWcgd2hlcmUgbXNnSWQgYW5kIHJlcUlkIHdlcmUgbm90IHRyZWF0ZWQgY29ycmVjdGx5IGluIHJlc3BvbnNlcyBpZiBvcmdpbmFsIHJlcXVlc3QgaGFwcGVuZWQgdG8gaGF2ZSBtc2dJZCBvciByZXFJZCBlcXVhbCB0byBhcmJpdHJhcnkgZGVmYXVsdCgwKQoKbWFyeiAxOSBNYXkgOTkgMDc6MTQ6NDQKICAgIAogICAgYWRkaW5nIHYzIHBhY2tldCBnZW5lcmF0b3IgcGVybDUgc2NyaXB0IChyZXF1aXJlcyBDb252ZXJ0OjpCRVIpCiAgICAuCgptYXJ6IDE5IE1heSA5OSAwNzoxNjo0MQogICAgCiAgICBleGFtcGxlIGRhdGEgZmlsZSB0byBnZW5lcmF0ZSBhIFYzIHBhY2tldCB3aXRoIHBrdGdlbi5wbAoKbWFyeiAxOSBNYXkgOTkgMDg6MDI6MjQKICAgIFJFQURNRSBmb3IgcGt0Z2VuLnBsCgptYXJ6IDE5IE1heSA5OSAwODo0NDowMwogICAgKioqIGVtcHR5IGxvZyBtZXNzYWdlICoqKgoKbWFyeiAxOSBNYXkgOTkgMDg6NDU6MTUKICAgIHBrdGdlbi5wbAoKbWFyeiAxOSBNYXkgOTkgMTA6MzE6MTQKICAgIHJlbW92ZSBsYXN0IHN1Ym1pdAoKbWFyeiAyMCBNYXkgOTkgMTI6MzU6MDMKICAgICoqKiBlbXB0eSBsb2cgbWVzc2FnZSAqKioKCm1hcnogMjMgTWF5IDk5IDA4OjA0OjAzCiAgICBoYW5kbGUgc2VxX29mIHRvIGFsbG93IGFyYml0cmFyeSBudW1iZXIgb2YgdmFyYmluZHMsIGJ1ZyBmaXhlcywgc2VuZC9yZWNlaXZlLCBwcmV0dHkgcHJpbnQgZGVidWdnaW5nIHBhY2tldCBkdW1wCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MTg6NDIKICAgIC0gKGlwZndhY2MuaCk6IHByb3Blcmx5IGxvY2F0ZSB0aGUgbWliLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDExOjIwOjA0CiAgICAtICh2bXN0YXQuYyk6IGluY2x1ZGUgbGltaXRzLmguCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTQ6MzIKICAgIC0gKGhyX3N3aW5zdC5jKTogbWFrZSBzb2Z0d2FyZSBhcHBsaWNhdGlvbiB0eXBlIHVua25vd24gaW5zdGVhZCBvZiBhcHAuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MTg6NDYKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGNoYW5nZSB0byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToyMDoxMQogICAgLSAoaXBmd2FjYy5oKTogbWFrZSBpbnRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjMzOjA1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBocl9maWxlc3lzLmMsIGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jKToKICAgICAgUGF0Y2ggZnJvbSBEZXJlayBKLiBCYWxsaW5nOgogICAgICAtIGZyZWVic2QyIGZpeGVzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjUyOjU3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGluY3JlYXNlIE1BWFJFQURDT1VOVAoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjU0OjIyCiAgICAtIChzbm1wX3ZhcnMuYyk6IGluY2x1ZGUgc3lzL3F1ZXVlLmguCgptYXJ6ICAxIEp1biA5OSAwNzoyNTo1NQogICAgKHBrdGdlbi5wbCwgcGFja2V0LnR4dCk6IGFkZGVkIGF1dGhlbnRpY2F0aW9uIHN1cHBvcnQgKG1kNSBhbmQgc2hhMSkKCmRhdmVzICAxIEp1biA5OSAwODozNzo0NwogICAgLSAoYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd2luc3QuYyk6IERldGVybWluZSB0eXBlIG9mIFJQTSBwYWNrYWdlcwoKbWFyeiAxNiBKdW4gOTkgMDk6MzA6NTUKICAgIChwa3RnZW4ucGwsIHBhY2tldC50eHQpOiBhZGRlZCBlbmNyeXB0aW9uL3ByaXZhY3Qgc3VwcG9ydCAoZGVzLWNiYykKCm1hcnogMTYgSnVuIDk5IDEyOjUwOjI5CiAgICAocGt0Z2VuLnBsLCBwYWNrZXQudHh0KTogbGF0ZXN0IGF0dGVtcHQgdG8gZml4IHByaXZhY3kvZW5jcnlwdGlvbgoKbWFyeiAyMyBKdW4gOTkgMDg6MTg6NTkKICAgIChwa3RnZW4ucGwsIHBhY2tldC50eHQpOiBsYXRlc3QgYXR0ZW1wdCB0byBmaXggcHJpdmFjeS9lbmNyeXB0aW9uKHdvcmtpbmcgd2l0aCBDcnlwdDo6REVTL0NyeXB0OjpDQkMrcGF0Y2gpCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6MTM6NDAKICAgIC0gKCopOiBNZXJnZWQgdGhlIDQuMCBsaW5lIGludG8gdGhlIDMuNi4xIGxpbmUuCgpoYXJkYWtlciAgNiBBcHIgOTkgMTU6Mzg6NDUKICAgIC0gKG1pYmluY2wuaCwgdWNkRGVtb1B1YmxpYy5jLCB2YWNtX3ZhcnMuaCwgc25tcHRyYXBkLmMsIHNubXBfYXBpLmMsCiAgICAgIE1ha2VmaWxlLmluKTogZmluYWwgbWVyZ2UgcGllY2VzIG9mIHJlY2VudCB2MyBsaW5lIGNoYW5nZXMuCgptc2xpZmNhayAgNiBBcHIgOTkgMjE6MjQ6MjIKICAgIC0gY2hhbmdlcyBmb3IgQU5TSSBoZWFkZXJzOyBQT1NJWChpbmRleCB2cyBzdHJjaHIpOyBtaW5vciBmaXhlcwoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjEzOjU5CiAgICAtICh2YWNtX3ZhcnMuYykgLSBzZXQgZ2xvYmFsIHB0cnMgPSAwLgoKbXNsaWZjYWsgIDYgQXByIDk5IDIyOjE0OjQzCiAgICAtIChzbm1wX3ZhcnMuYykgbW9yZSB2MnBhcnR5IHJld29yayBuZWVkZWQKCm1zbGlmY2FrICA3IEFwciA5OSAwNjoxNzoyOAogICAgLSAoKSBtb3JlIEFOU0kgaGVhZGVyIGZpeHVwczsgdG91Y2h1cCBmb3IgTSQgV2luMzIgYnVpbGQKCmhhcmRha2VyICA3IEFwciA5OSAxMDo0MjoxMAogICAgLSAoY29uZmlnLmguaW4sIHNubXBfdmFycy5jLCBlbmNvZGVfa2V5Y2hhbmdlLmMsIHNubXB0cmFwZC5jLAogICAgICBNYWtlZmlsZS5pbiwgYWxsX2dlbmVyYWxfbG9jYWwuaCwga2V5dG9vbHMuYywga2V5dG9vbHMuaCwKICAgICAgbGNkX3RpbWUuYywgbWQ1LmMsIHJlYWRfY29uZmlnLmMsIHNjYXBpLmMsIHNubXBfYXBpLmMsIHNubXB1c20uYywKICAgICAgc25tcHYzLmMsIHRvb2xzLmMsIHRvb2xzLmgpOgogICAgICAtIG1pc2MgbWVyZ2luZywgaW5jbHVkaW5nIGZpeGVzIGFuZCBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNoYW5nZXMgdG8KICAgICAgICBuZXdlciBtb2RlbC4KICAgICAgLSBhIGZldyAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICA3IEFwciA5OSAxMDo0ODowNwogICAgLSAoc25tcF9taWIuYyk6IHJlbW92ZWQgdW5ubmVlZGVkIGhlYWRlcl9zbm1wKCkuCgpoYXJkYWtlciAgNyBBcHIgOTkgMTE6Mjg6MDIKICAgIC0gKHVjZERlbW9QdWJsaWMuYywgc3lzT1JUYWJsZS5jLCB2YWNtX3ZhcnMuYywgc211eC5jLCBzbm1wRW5naW5lLmMsCiAgICAgIHVzbVVzZXIuYywgc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgIC0gZGVidWdnaW5nIHN0YXRlbWVudCBjb252ZXJzaW9uCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MDA6MjAKICAgIC0gKGFnZW50L3NubXAycC5jIGFnZW50L3NubXBfYWdlbnQuYyBhZ2VudC9zbm1wX3ZhcnMuaAogICAgYWdlbnQvdmlld19wYXJzZS5jIGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYwogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9hdC5jIGFnZW50L21pYmdyb3VwL21pYklJL2ljbXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jIGFnZW50L21pYmdyb3VwL21pYklJL2lwLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3N5c3RlbV9taWIuYyBhZ2VudC9taWJncm91cC9taWJJSS90Y3AuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5jCiAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYyBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jIGFwcHMvc25tcGRlbHRhLmMKICAgIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMgc25tcGxpYi9hY2xfcGFyc2UuYwogICAgc25tcGxpYi9jb250ZXh0Lmggc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9wYXJ0eS5oCiAgICBzbm1wbGliL3BhcnR5X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jIHNubXBsaWIvc25tcF9hcGkuYwogICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oIHNubXBsaWIvdmFjbS5oCiAgICBzbm1wbGliL3ZpZXcuaCkgIGZnZXRzIHVzZSBzaXplb2YgbW9zdGx5LCBvaWQgYmFzZSBzaXplIGlzIE1BWF9PSURfTEVOCgptc2xpZmNhayAgNyBBcHIgOTkgMTI6MTc6MjMKICAgIC0oaXBmd2NoYWlucy5jKSByZW1vdmUgbXVsdGlwbGUgZGVmaW5pdGlvbnMgb2YgTUFUQ0hfRkFJTEVECgptc2xpZmNhayAgNyBBcHIgOTkgMTU6MDA6MzkKICAgIC0odXNtVXNlci5jLHN5c3RlbS5jKSBwbHVnIG1lbSBsZWFrOyAoc25tcF9hcGkuYykgZW5mb3JjZSBhcnJheSBsaW1pdC4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoxNDozMQogICAgLSAobWliaW5jbC5oKTogaW5jbHVkZSBzeXMvdGltZS5oLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE1OjM5CiAgICAtIChocl91dGlscy5oKTogcmVtb3ZlIHZhcmlhYmxlIG5hbWVzIGZyb20gcHJvdG90eXBlcyAod2FzIGNhdXNpbmcgcHJvYmxlbXMpLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE2OjQ1CiAgICAtICh0a21pYik6IG1ha2UgZGlzcGxheWVkIG1pYiBub2RlIGluZm8gaW50byB0d28gY29sdW1ucyBpbnN0ZWFkIG9mIG9uZS4KCmhhcmRha2VyIDEyIEFwciA5OSAyMjoyNTowOQogICAgLSAoc25tcF9hcGkuYyk6IG1ha2Ugc25tcF92YXJsaXN0X2FkZF92YXJpYWJsZSB0byBwb3NzaWJsZSBjcmVhdGUgYQogICAgICB2YXJsaXN0IGJlZm9yZSBhZGRpbmcgc29tZXRoaW5nIHRvIGl0LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjE5OjIwCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIERhbmllbCBIYWdlcnR5OgogICAgICAtIGZpeCBsaWJ3cmFwIHRvIG9ubHkgYWRkIHRoZSBsaWJyYXJ5IHRvIHRoZSBhZ2VudC4KCmhhcmRha2VyIDEzIEFwciA5OSAxNToyMDowMAogICAgLSAoc3lzdGVtX21pYi5jKTogbWFrZSBzeXNEZXNjciByZWFkLW9ubHkuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzI6MjMKICAgIC0gKHBhc3MuYyk6IFBhdGNoIGZyb20gSmltIE1hcjoKICAgICAgLSBhZGQgY2FwYWJpbGl0eSBmb3IgYmluYXJ5IG9jdGV0IHN0cmluZ3MgaW4gcGFzcyBzY3JpcHRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjM2OjMxCiAgICAtIChTTk1QLU5PVElGSUNBVElPTi1NSUIudHh0LCBTTk1QLVBST1hZLU1JQi50eHQsCiAgICAgIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IG1vZHVsZSBsb2NhdGlvbnMgZm9yIGJyb2tlbiBtaWJzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU0OjQ4CiAgICAtIChmcmVlYnNkLmgsIGZyZWVic2QyLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZyZWVic2QgdXRtcCBjbGVhbnVwcy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1Njo1MwogICAgLSAoc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbG9nIHdpdGggdGltZXN0YW1wIGF0IHNodXRkb3duLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU3OjI0CiAgICAtICh2YWNtX3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYmV0dGVyIGNoZWNraW5nIG9mIC5jb25mIGZpbGUgcGFyc2luZyBsaW5lIHJlcXVpcmVtZW50cy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTo1ODowMgogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzdXBwb3J0IC1QLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjI3CiAgICAtIChzbm1wX2NvbmZpZy41LmRlZiwgc25tcHRyYXAuMSwgc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGNsZWFuIHVwIHNtYWxsIGJ1Z3MuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDA6NDkKICAgIC0gKHBhcnNlLmMsIHBhcnNlLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG5pY2VyIHBhcnNlciBtZXNzYWdlcyAoaW5jbHVkZSBmaWxlIG5hbWVzKS4gQ29ycmVjdCBoZWxwIGZvciAtUGMuCiAgICAgIC0gQWRkIEZSQU1FLVJFTEFZLURURS1NSUIgYXMgcmVwbGFjZW1lbnQgZm9yIFJGQy0xMzE1CgpoYXJkYWtlciAxMyBBcHIgOTkgMTY6MDM6MjkKICAgIC0gKHNubXB0cmFwZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wdHJhcGQgb3B0aW9uIHRvIGlnbm9yZSBhdXRoIHRyYXBzLCBhZGQgLVMgb3B0aW9uLCBsb2cgdGVybWluYXRpb24uCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6Mjk6NTgKICAgIC0gKHNubXB0cmFuc2xhdGUuYykgaW5pdF9zbm1wIHRha2VzIGFyZ3VtZW50OyAiIiB1c2VkLgoKbXNsaWZjYWsgMTQgQXByIDk5IDE1OjMwOjM0CiAgICAtIChwYXJzZS5jKSBGaWxlIHBvaW50ZXIgaW5pdGlhbGl6ZWQgdG8gIiIgYmVmb3JlIGZpcnN0IHVzZS4KCmhhcmRha2VyIDE0IEFwciA5OSAxNTo1MjozNQogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogaW5pdF9zbm1wKCJzbm1wYXBwIikuCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6MzE6NTUKICAgIC0gKHNubXBfYWdlbnQsYywgc25tcF9hcGkuW2NoXSwgc25tcF9jbGllbnQuW2NoXSkgZml4IHZhcmlhYmxlX2xpc3Qgd2l0aCBidWlsdC1pbiBzdG9yYWdlCgptc2xpZmNhayAxNCBBcHIgOTkgMTY6NTY6MzcKICAgIC0gYXBwcyB0aGF0IHVzZSBzbm1wX2ZpeF9wZHUgbXVzdCBjbGVhbiB1cCB0aGUgcmVzcG9uc2UgUERVICEKCm1zbGlmY2FrIDE2IEFwciA5OSAwNzozMDoyOQogICAgLSAoSVBGV0FDQy1NSUIudHh0KSBjaGFuZ2UgbW9kdWxlIG5hbWUgZnJvbSBJUEZXQURNLU1JQiB0byBJUEZXQUNDLU1JQi4KCm1zbGlmY2FrIDE2IEFwciA5OSAwNzo1NDoyMgogICAgLSAoSVBGV0NIQUlOUy1NSUIudHh0KSBpcGZ3Q2hhaW5UYWJsZSB7aXBmdyAxfSBmaXgKCm1zbGlmY2FrIDE2IEFwciA5OSAwODozMzoxNgogICAgLSAobWliLmMpICItbSIgb3IgTUlCUyA6IGNhbiBzcGVjaWZ5IE1JQiBtb2R1bGUgYnkgZmlsZSBuYW1lLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjEwOjA2CiAgICAtIChSRUFETUUpOiBBZGRlZCB2MyB0ZWFtIG1lbWJlcnMuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTE6NDgKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoYW5nZWQgZGVmYXVsdCBzdG9yZSBsb2NhdGlvbiB0byAvdmFyL3VjZC1zbm1wCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTU6MTQKICAgIC0gKHNubXAuaCk6IFNOTVBBRE1JTkxFTkdUSCBkZWZpbml0aW9uLgoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjE2OjE2CiAgICAtIChzbm1wX2F1dGguYyk6IHJlbW92ZWQgZml4IG5vdGUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6MDYKICAgIC0gKE5FV1MpOiB1cGRhdGVkCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6Mjc6NDEKICAgIC0gKHNubXB0cmFwZC44KTogbWFuIHBhdGNoIGZyb20gTmllbHMKCmhhcmRha2VyIDE2IEFwciA5OSAyMTozNDo0OQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlMyApCgptc2xpZmNhayAxOCBBcHIgOTkgMDY6NTQ6MjYKICAgIC0gKGlwZndhY2MuaCkgc3ViZGlyIGNoYW5nZSBwZXIgSm9lIFBydWV0dHQgOiA5IC0+IDEwCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MDE6MTUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSByZXdyb3RlIG1pYjJjIHRvIGJlIG1vcmUgZGVwZW5kZW50IG9uIC5jb25mIGZpbGVzLiAgVGhlIG1haW4gLmNvbmYKICAgICAgICBmaWxlIG5vdyBjb250YWlucyB0aGUgY29kZSBpdHNlbGYuCiAgICAgIC0gbmVlZCB0byB3cml0ZSBhIGZvcmVhY2gobWlibm9kZSkgdHlwZSBwYXJzZXIgbmV4dC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMTowOToyNwogICAgLSAobWliaW5jbC5oKTogYWRkIHJlYWRfY29uZmlnLmguCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTI6MTcKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIGNyZWF0ZWQgYSBtb3JlIGNvbnZlbmllbnQgcmVhZF9jb25maWdfcmVhZF9kYXRhKCkgZnVuY3Rpb24gdG8KICAgICAgICBnZW5lcmljYWxseSByZWFkIGEgdG9rZW4gaW50byBhIGdpdmVuIHZhcmlhYmxlLgogICAgICAtIGNsZWFuZWQgdXAgcGVyc2lzdGVudCBzdG9yYWdlIHBhcnNpbmcgcm91dGluZXMuCiAgICAgIC0gdXNlIHByZXZpb3VzbHkgbWFsbG9jZWQgc3BhY2UgaW4gc29tZSByb3V0aW5lcywgb3IgbWFsbG9jIGl0IGZvcgogICAgICAgIHRoZW0gaWYgdGhlIHN0b3JhZ2UgYXJlYSBpcyBOVUxMLgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjE0OjI4CiAgICAtIChzbm1wX2FwaS5jKTogRG9uJ3Qgc25tcF9zZXRfdmFyX29iamlkIGlmIG5hbWUgaXMgTlVMTCBpbgogICAgICBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlKCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTE6Mjg6MTQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKTogbW9yZSB1cGRhdGVzLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE1OjMxOjM1CiAgICAtIChtaWIyYywgbWliMmMuY29uZiwgbWliMmMudmFydHlwZXMuY29uZik6CiAgICAgIC0gY29tcGxldGVseSByZS1oYWNrZWQ6CiAgICAgICAgLSBlbnRpcmUgY29kZSBiYXNlIGlzIG5vdyBwdXQgaW50byB0aGUgLmNvbmYgZmlsZXMgcmF0aGVyIHRoYW4gaW4KICAgICAgICAgIHRoZSBtaWIyYyBwcm9ncmFtLiAgVGhpcyBzaG91bGQgZW50aXRsZSBtaWIyYyB0byBiZSB1c2VkIG1vcmUKICAgICAgICAgIGdlbmVyaWNhbGx5LCBhbmQgY291bGQgcHJvZHVjZSBkaWZmZXJlbnQgdHlwZXMgb2YgY29kZSB0ZW1wbGF0ZXMKICAgICAgICAgIGJhc2VkIG9uIHRoZSAuY29uZiBmaWxlIGl0IGlzIGdpdmVuLiAgSW4gdGhlb3J5LCBpdCBzaG91bGQgYmUKICAgICAgICAgIGFibGUgdG8gcHJvZHVjZSBDIGNvZGUgZm9yIGEgbm9uLXVjZC1zbm1wIGFnZW50LCBvciBldmVuIGJldHRlciwKICAgICAgICAgIGFueSB0eXBlIG9mIGNvZGUgKG5vdCBqdXN0IEMpIGZvciBzb21ldGhpbmcgZWxzZSBiYXNlZCBvbiBtaWIKICAgICAgICAgIGluZm9ybWF0aW9uLgogICAgICAgIC0gVGhlIGRvd24gc2lkZSwgaXMgdGhhdCB0aGUgY3VycmVudCAuY29uZiBmaWxlcyBhcmUgbm93IGFtYmlndW91cwogICAgICAgICAgYWdhaW4gYW5kIGRpZmZpY3VsdCB0byB1bmRlcnN0YW5kIHdpdGhvdXQgYmVpbmcsIHdlbGwsIG1lLiAgVGhlCiAgICAgICAgICB1cCBzaWRlIGlzIHRoYXQgSSdtIHN1cmUgRGF2ZSBTaGllbGQgd2lsbCBnbyB0aHJvdWdoIGFuZCBjbGVhbgogICAgICAgICAgaXQgdXAgZm9yIG1lIGxpa2UgaGUgZGlkIGxhc3QgdGltZS4gIEhhIGhhLiAgSSB3b25kZXIgaWYgaGUnbGwKICAgICAgICAgIHJlYWQgdGhpcz8gKElmIHNvLCBzZWUgbWUgZmlyc3QpLgoKaGFyZGFrZXIgMjAgQXByIDk5IDE2OjA0OjE3CiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IHZhcmlhYmxlIG5hbWUgY29udmVyc2lvbnM6CiAgICAgIC0gdmFyaWFibGVUeXBlcyAtPiB2YXJpYWJsZXMKICAgICAgLSBjbmFtZSAtPiBOQU1FCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MTA6NDQKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYSBsaXR0bGUgbW9yZSBjbGVhbiB1cC4KCmhhcmRha2VyIDIwIEFwciA5OSAyMTozODo0MgogICAgLSAobWliMmMuY29uZik6IGNsZWFuIHVwIHNraXBpZiByZWdleHBzIGEgYml0LgoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU0OjQ0CiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oKTogY3JlYXRlZCAqcmVhZF9jb25maWdfc3RvcmVfZGF0YSgpOwoKaGFyZGFrZXIgMjIgQXByIDk5IDA3OjU2OjAzCiAgICAtIChtaWIyYywgbWliMmMuY29uZik6IGFsbG93IE5vQWNjZXNzIHRvIGJlIHByb2Nlc3NlZCwgYW5kIHVzZSBza2lwaWY6CiAgICAgIGRpcmVjdGl2ZXMgd2hlcmUgbmVlZGVkIGJlY2F1c2Ugb2YgaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMTA6NTE6MzAKICAgIC0gKHNubXBfY2xpZW50LmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIGtleXRvb2xzLmMpOiBBbm90aGVyIHYzIGJyYW5jaCB1cGRhdGUuCgptc2xpZmNhayAyNiBBcHIgOTkgMDk6MjE6MDYKICAgIC0gKHNubXBsaWIuYykgLSB1c2UgcmVxdWVzdCBjYWxsYmFjaydzIGRhdGEgaWYgcmVxdWVzdCBzcGVjaWZpZXMgYSBjYWxsYmFjay4KCm5iYSAyNiBBcHIgOTkgMTE6MjE6MTAKICAgIAogICAgKHBhcnNlLmgpIFNpbGx5IHNwZWxpbmcgbWlzdGVhayAoQUNDRVNTX0NSQUVURSkKCm5iYSAyNiBBcHIgOTkgMTE6NDg6NTcKICAgIAogICAgCiAgICAtIHNubXBsaWIvcGFyc2UuaCwgc25tcGxpYi9wYXJzZS5jOiBuZXcgbWliIHByaW50ZXI6IG1pYl9wcmludF90cmVlCiAgICAgIGluc3BpcmVkIGJ5IGEgcmVmZXJlbmNlIHRvIHNubXggaW4gY29tcC5wcm90b2NvbHMuc25tcAogICAgLSBhcHBzL3NubXB0cmFuc2xhdGU6IGxldCB0aGUgLXAgb3B0aW9uIGNhbGwgdGhpcyBuZXcgcHJpbnRlcgogICAgLSBzbm1wbGliL3NubXBfYXBpLmM6IHNvbWUgbGVmdCBvdmVyIF9fUCBtYWNyb3MKCm5iYSAyNiBBcHIgOTkgMTI6MDM6NDcKICAgIAogICAgKGlmLmMpIG1ha2UgdGhlIHdpZHRoIG9mIHNubXBuZXQgLWkgKGFuZCAtbykgYWRhcHQgdG8gdGhlIGxlbmd0aCBvZiByZXR1cm5lZAogICAgCXN0cmluZ3MKCm5iYSAyNiBBcHIgOTkgMTI6MDk6MzUKICAgIAogICAgCiAgICBhcHBzLyouYzogdXNlIHNubXBfcGVycm9yIHRvIHJlcG9ydCBlcnJvcnMgZnJvbSByZWFkX29iamlkIGFuZCBmcmllbmRzCiAgICBhcHBzL3NubXB0cmFwZC5jOiBmaXggYSBidXMgZXJyb3Igd2hlbiB1c2luZyAtUyBhbmQgcmVjZWl2aW5nIGFuCiAgICAJZW50ZXJwcmlzZSBzcGVjaWZpYyB0cmFwLgoKbmJhIDI2IEFwciA5OSAxMjoxMzo1MAogICAgCiAgICAqLyo6IHJlcGxhY2UgaG9ycmlibGUgKGNoYXIgKikic3RyaW5nIiB3aXRoIGNvbnN0IHNwZWNpZmllcnMgaW4gcmVsZXZhbnQKICAgIAlmdW5jdGlvbnMuCgptc2xpZmNhayAyNiBBcHIgOTkgMTI6Mzc6MDkKICAgIC0gKHNubXBfYXBpLmMpIC0gZml4IG90aGVyIHVzZSBvZiByZXF1ZXN0J3MgY2FsbGJhY2sgZGF0YQoKbXNsaWZjYWsgMjcgQXByIDk5IDA5OjUxOjM1CiAgICAtIChpbnRlcmZhY2VzLmMpIGFkZCBpZl90eXBlX2Zyb21fbmFtZSB0byBjb252ZXJ0IGludGVyZmFjZSBuYW1lIHRvIHR5cGUuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6MzI6MzkKICAgIC0gKE1ha2VmaWxlLmluLCBjYWxsYmFjay5jLCBjYWxsYmFjay5oKTogY2FsbGJhY2sgQVBJLgoKaGFyZGFrZXIgMjkgQXByIDk5IDA3OjM5OjQ1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdXNtLmgsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gdXNlIHRoZSBjYWxsYmFjayBtZWNoYW5pc20gZm9yIHBvc3QtY29uZmlnIHN0dWZmLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjA3OjE1CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCB1c21Vc2VyLmMsIHVzbVVzZXIuaCwgc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0QWRkckVudHJ5LmgsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCwgc25tcHRyYXBkLmMsIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgsCiAgICAgIHNjYXBpLmMsIHNjYXBpLmgsIHNubXBfYXBpLmMsIHNubXB2My5jLCBzbm1wdjMuaCk6CiAgICAgIC0gc2h1dGRvd24gYW5kIHN0b3JlIGNhbGxiYWNrIHVzYWdlLgoKaGFyZGFrZXIgIDMgTWF5IDk5IDA3OjEzOjMxCiAgICAtIChzbm1wZC5jKTogZml4IC1BIGZsYWcsIHdoaWNoIGdvdCBicm9rZW4gZHVyaW5nIHNvbWVvbmVzIGNoYW5nZXMuCgpoYXJkYWtlciAgMyBNYXkgOTkgMTI6NTg6MTkKICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudF9yZWFkX2NvbmZpZy5jLCBNYWtlZmlsZS5pbiwgaGVhZGVyX2NvbXBsZXguYywKICAgICAgTWFrZWZpbGUuaW4sIGVuY29kZV9rZXljaGFuZ2UuYywgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLAogICAgICBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBhbGxfc3lzdGVtLmgsIGtleXRvb2xzLmMsIGxjZF90aW1lLmMsIHNjYXBpLmMsCiAgICAgIHNubXBfYXV0aC5jLCBzbm1wdXNtLmMsIHRvb2xzLmMsIHRvb2xzLmgsIE1ha2VmaWxlLmluLCBULmMsCiAgICAgIGV0aW1ldGVzdC5jLCBrZXltYW5hZ2V0ZXN0LmMsIG1pc2N0ZXN0LmMsIHNjYXBpdGVzdC5jKToKICAgICAgLSBudWtlZCBhbGxfZ2VuZXJhbF9sb2NhbC5oIGFuZCBhbGxfc3lzdGVtLmguCiAgICAgIC0gbWFrZWZpbGVpbmRlcGVuZCBhcyB3ZWxsLgoKbmJhICAzIE1heSA5OSAxNTo0MDoxMQogICAgKCouW2NoXSk6CXBhdGNoZXMgdG8gdHlwZXMgdG8gd2lwZSB3YXJuaW5ncyBmcm9tIGNvbXBpbGVycwogICAgCXdpdGggbW9yZSBzdHJpY3Qgbm9pc2UgbGV2ZWxzLiAoYWxzbyBnb29kIHdoZW4gY29tcGlsaW5nCiAgICAJd2l0aCBnY2MgLVdhbGwgLXBlZGFudGljIC1Xd3JpdGUtc3RyaW5ncyAtV2Nhc3QtcXVhbCkKCm5iYSAgNCBNYXkgOTkgMDA6NDc6NDQKICAgIChtaWIuYyk6CUZpeCBwcm9ibGVtIChjb3JlIGR1bXApIHdpdGggTUlCRklMRVMgZW52aXJvbm1lbnQgdmFyaWFibGUuCgpuYmEgIDQgTWF5IDk5IDAwOjUxOjE2CiAgICAobWFueSk6CXJlbW92ZSBjb25zdCBzcGVjIGZyb20gRmluZFZhck1ldGhvZC4gVGhhdCB3YXMgd3JvbmcKCmhhcmRha2VyICA0IE1heSA5OSAxMTowODo1NQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBBZGRlZCAtLWVuYWJsZS1kZXZlbG9wZXIgZmxhZy4KCm1zbGlmY2FrICA2IE1heSA5OSAwOToyMDozMAogICAgLSAodWNkLXNubXAvdm1zdGF0LmMpIC0gY29uZGl0aW9uYWxseSBpbmNsdWRlIGxpbWl0cy5oIHBlciBFZHVhcmQgS291Y2t5LgoKbmJhIDEwIE1heSA5OSAxNDo0NzoyMgogICAgRml4aW5nIHNvbWUgbW9yZSBwcm90b3R5cGVzLiBQb2ludGVkIG91dCBieSBNYXJra3UgTGF1a2thbmVuLgoKbmJhIDEwIE1heSA5OSAxNDo0OTo0OQogICAgc25tcGxpYi9zbm1wX2FwaS5jOiBNaXgtdXAgb2YgVjFfSU5fVjIvVjJfSU5fVjEgZXJyb3IgY29kZSB3aGVuIEdFVEJVTEsKICAgIAlpbnNpZGUgVjEgc2Vzc2lvbi4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMjo0OAogICAgLSAodXRpbF9mdW5jcy5jKTogcmVhZCByZXR1cm5zIHNzaXplX3Qgbm90IHNpemVfdC4KCmhhcmRha2VyIDExIE1heSA5OSAxNDowMzoyNQogICAgLSAobWVtb3J5LmgpOiByZW1vdmUgZXh0ZXJuLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjExOjQwCiAgICAtIChocHV4LmMsIGhwdXguaCk6IGludCAtPiBzaXplX3QgY29udmVyc2lvbnMuCgptc2xpZmNhayAxMiBNYXkgOTkgMTA6NTM6MjMKICAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYykgY2FsbCBzbm1wX3N5bmNoX3Jlc2V0IGZyb20gc25tcF9zZXNzX2Nsb3NlCgptc2xpZmNhayAxMiBNYXkgOTkgMTE6MjI6MTYKICAgIC0ocGFyc2UuYyBwYXJ0eV9wYXJzZS5jIHJlYWRfY29uZmlnLmMpIG5vIGV4aXQoKSBmcm9tIGxpYnJhcnk7IHJldHVybiBlcnJvcgoKZGF2ZXMgMTMgTWF5IDk5IDAzOjUyOjE5CiAgICAtIChpcC5jKTogUHJvcGVybHkgcmVnaXN0ZXIgSVAgbW9kdWxlIGdyb3VwIG9uIEZyZWUtQlNEIHN5c3RlbXMKICAgICAgICAgICAgICAodGhhbmtzIHRvIE1pdGNoZWxsIFRhc21hbikKCmhhcmRha2VyIDEzIE1heSA5OSAwOTowOToxOAogICAgLSAodmFjbV92YXJzLmMpOiBTZXQgcG9pbnRlcnMgdG8gTlVMTCBhZnRlciBmcmVlaW5nIHRoZW0uCgptc2xpZmNhayAxNCBNYXkgOTkgMDY6NTQ6NTEKICAgIC0gKGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmMgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5oCiAgICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgICBhZ2VudC9taWJncm91cC9zbXV4L3NtdXguYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My9zbm1wTVBEU3RhdHMuYwogICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21TdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBzbm1wbGliL3NubXBfYXV0aC5jKSBtb3JlIHNpemVfdCBmaXhlcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDA5OjQ3OjEwCiAgICAtIChhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuaCBhZ2VudC9taWJncm91cC9ob3N0L2hyX2Rpc2suYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgIGFnZW50L21pYmdyb3VwL21pYklJL3Zhcl9yb3V0ZS5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVVzZXIuYyBhcHBzL2VuY29kZV9rZXljaGFuZ2UuYwogICAgIHNubXBsaWIvcGFyc2UuYykgbW9yZSBBTlNJLUMgdG91Y2h1cHMKCm1zbGlmY2FrIDE0IE1heSA5OSAxMzo1OTozNwogICAgLShhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgc25tcGxpYi9zbm1wdXNtLmMpIGZpeGVzIHRvIGJ1aWxkIEhQICYgQUlYCgpkYXZlcyAxNyBNYXkgOTkgMDM6MjA6NTMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogSW5pdGlhbGlzZSBzZXNzaW9uIHVzaW5nIGxpYnJhcnkgcm91dGluZQoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM0OjU1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzc2VzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA0OjM4OjAwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmggc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9jbGllbnQuYwogICAgICAgYWdlbnQvc25tcGQuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9hbGFybS5jIGFnZW50L21pYmdyb3VwL3YycGFydHkvZXZlbnQuYwogICAgICAgYXBwcy9zbm1wc3RhdHVzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSB0aGUgZ2VuZXJpYyBzb2NrZXQgYWRkcmVzcyAnc3RydWN0IHNvY2thZGRyJywKICAgICAgICByYXRoZXIgdGhhbiB0aGUgSVAtc3BlY2lmaWMgJ3N0cnVjdCBzb2NrYWRkcl9pbicKCmRhdmVzIDE3IE1heSA5OSAwNzoxODowMgogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaCBhZ2VudC9zbm1wZC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdHJhcGQuYyk6CiAgICAKICAgICAgLSBVc2UgYSBzaW5nbGUgYWRkcmVzcyBmaWVsZCB3aXRoaW4gdGhlIFBEVSBzdHJ1Y3R1cmUKICAgICAgICAgICAgICAgICAgIChvYnNvbGV0aW5nICdhZ2VudF9hZGRyJykKCmRhdmVzIDE4IE1heSA5OSAwNjoyNjoxNgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKTogTW9yZSBnZW5lcmFsIGhhbmRsaW5nIG9mIFBEVSBmbGFncwoKbXNsaWZjYWsgMTggTWF5IDk5IDA5OjAxOjQ2CiAgICAtICh4eC9NYWtlZmlsZS5pbikgcmVtb3ZlIHJlZmVyZW5jZXMgdG8gYXMgeWV0IG1pc3NpbmcgZGlzbWFuIGZpbGVzLgoKZGF2ZXMgMTggTWF5IDk5IDA5OjIzOjUwCiAgICAtIChjb25maWd1cmUuaW4gc25tcGxpYi9jb250ZXh0X3BhcnNlLmMgc25tcGxpYi9yZWFkX2NvbmZpZy5jCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wdjMuYyBzbm1wbGliL3N5c3RlbS5jCiAgICAgICBhcHBzL3NubXBfcGFyc2VfYXJncy5jIGFwcHMvc25tcGJ1bGt3YWxrLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgICAgYXBwcy9zbm1wZ2V0LmMgYXBwcy9zbm1wZ2V0bmV4dC5jIGFwcHMvc25tcHNldC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0YWJsZS5jIGFwcHMvc25tcHRlc3QuYwogICAgICAgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHVzbS5jIGFwcHMvc25tcHdhbGsuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9pZi5jIGFwcHMvc25tcG5ldHN0YXQvaW5ldC5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBhcHBzL3NubXBuZXRzdGF0L3JvdXRlLmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jKToKICAgICAgIC0gIENsZWFuIHVwIGNvbmRpdGlvbmFscyBwcm90ZWN0aW5nIGluY2x1ZGUgZmlsZXMKICAgICAgICAgICAgKCAjaWYgSEFWRV9XSU5TT0NLX0ggLyAjZWxzZSAvICNlbmRpZiApCgpkYXZlcyAxOSBNYXkgOTkgMDI6MzM6MDcKICAgIC0gKGNvbmZpZy5oLmluKTogQWRkaXRpb25hbCBpbmNsdWRlIHByb3RlY3Rpb24gZW50cmllcwoKZGF2ZXMgMTkgTWF5IDk5IDA1OjExOjM3CiAgICAtIChzbm1wX2FwaS5jKTogTW9yZSBnZW5lcmFsaXNlZCBoYW5kbGluZyBvZiBzb2NrZXQgYWRkcmVzc2VzCgptc2xpZmNhayAxOSBNYXkgOTkgMTg6MDI6NTUKICAgIC0obWliSUkvdmFyX3JvdXRlLmMpIC0gZml4IExpbnV4IFJvdXRlTWFzayBjL28gIk5hbmN5IiBuYW1AY3MuY211LmVkdQoKbXNsaWZjYWsgMTkgTWF5IDk5IDE4OjUwOjEyCiAgICAtIChob3N0X3Jlcy5oKSBmaXggSEFWRV9ORVRfSUZfVkFSX0ggZGVmaW5lICh3YXMgSEFWRV9ORVRfSU5fVkFSX0gpCgpkYXZlcyAyMCBNYXkgOTkgMDM6NDY6MjQKICAgIC0gKHNubXBfYXBpLmgpOiBUZW1wb3JhcnkgZml4IHRvIHNvY2tldCBhZGRyZXNzIHByb2JsZW1zCgptc2xpZmNhayAyMSBNYXkgOTkgMDU6MjQ6MjMKICAgIC0ocmVhZF9jb25maWcuYykgY2FzdCBmaXggcGVyIE1hcmtrdSBMYXVra2FuZW4KCmRhdmVzIDIxIE1heSA5OSAwNTo1NDoyMgogICAgLSAoc25tcF9hcGkuYyBzbm1wX2FwaS5oKToKICAgICAgLSAgTmV3IEFQSSBjYWxsIHRvIGNsb3NlIGRvd24gYWxsIG9wZW4gc2Vzc2lvbnMKICAgICAgICAgKGFsc28gY2FsbGVkIG9uIGFwcGxpY2F0aW9uIHNodXRkb3duKQoKaGFyZGFrZXIgMjEgTWF5IDk5IDExOjEwOjQ0CiAgICAtIChtaWIyYy5jb25mLCBtaWIyYy5zdG9yYWdlLmNvbmYpOgogICAgICAtIGNvbnZlcnQgdG8gc2l6ZV90IHN0b3JhZ2VzLgogICAgICAtIG1pc2MgZXZhbCBmaXhlcy4KICAgICAgLSBtb3JlIGNsZWFudXAgb2YgdGhlIHN0b3JhZ2UgZGVmLgoKbXNsaWZjYWsgMjEgTWF5IDk5IDE1OjI5OjQ2CiAgICAtIGxpYnJhcnkgY2hhbmdlcyB0byBidWlsZCBvbiBXaW4zMi4KCm1zbGlmY2FrIDI0IE1heSA5OSAwNTozNjoxMwogICAgLWNvbmZpZ3VyZSAtIHNhdmUgb25lIHdoaWNoIGxvb2tzIGZvciBuZXRkYi9zb2NrZXQgaGVhZGVycwoKaGFyZGFrZXIgMjYgTWF5IDk5IDExOjE5OjAzCiAgICAtIChpcGZ3YWNjLmgpOiBwcm9wZXJseSBsb2NhdGUgdGhlIG1pYi4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxNDo1NQogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHNvZnR3YXJlIGFwcGxpY2F0aW9uIHR5cGUgdW5rbm93biBpbnN0ZWFkIG9mIGFwcC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNToxODowNAogICAgLSAoSVBGV0FDQy1NSUIudHh0KTogY2hhbmdlIHRvIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjIwOjMyCiAgICAtIChpcGZ3YWNjLmgpOiBtYWtlIGludG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6NTY6MDMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogaW5jcmVhc2UgTUFYUkVBRENPVU5ULgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE3OjQwOjI4CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBhZGRlZCBTRVFVRU5DRSBPRi4KCm1zbGlmY2FrIDI3IE1heSA5OSAwNToxNjoyNQogICAgLShlbmNvZGVfa2V5Y2hhbmdlLCByZWFkX2NvbmZpZywgc25tcHVzbSkgYUNDIGZpeGVzIGJ5IFBLWSAoTWFya2t1IExhdWtrYW5lbikKCmhhcmRha2VyIDI3IE1heSA5OSAxNDozMDowMwogICAgLSAoc25tcHRyYXBkX2hhbmRsZXJzLmMpOiBpbXBsZW1lbnQgdGhlIGRlZmF1bHQgdHJhcCBoYW5kbGVyLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjE1CiAgICAtIChzbm1wdHJhcGQuYyk6IG5lZWQgYW4gaW5pdF9taWIoKS4KCmhhcmRha2VyIDI3IE1heSA5OSAxNDozNzowNgogICAgLSAoc25tcHRyYXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudCBkZWZhdWx0IG9pZCBrZXl3b3JkLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjMyCiAgICAtIChzbm1wdHJhcGQuYyk6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQgaW4gaGVscCBsaW5lLgoKZGF2ZXMgMjggTWF5IDk5IDA3OjAyOjAxCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbiBhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IGZpeCBwcm9ibGVtIHdpdGggbnVsbCBtYWNybwoKZGF2ZXMgMjggTWF5IDk5IDA4OjE0OjA1CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBzYXZlIGxvY2FsIHNvY2tldCBhZGRyZXNzIGluIGludGVybmFsIHNlc3Npb24gc3RydWN0dXJlCgpkYXZlcyAyOCBNYXkgOTkgMDg6NTc6MTkKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IFVuaXggZG9tYWluIChkYXRhZ3JhbSkgc29ja2V0IHN1cHBvcnQKCmRhdmVzIDI4IE1heSA5OSAwOToxMjoyMAogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogU2VwYXJhdGUgb3V0IGNvcHlpbmcgYSBzZXNzaW9uIGFuZCBvcGVuaW5nIGEgbmV3IG9uZQoKbXNsaWZjYWsgMjggTWF5IDk5IDA5OjI0OjU2CiAgICAtKHNubXBfYXBpLmMpIC1jYXRjaCBvbmUgbW9yZSBlcnJvciBjbG9zZSBmcm9tIHNubXBfc2Vzc19jb3B5CgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6MTc6MTMKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogc2F2ZSBhbmQgdXNlIGluZGV4IGNsYXVzZXMuCgpoYXJkYWtlciAyOCBNYXkgOTkgMTY6NDQ6NDIKICAgIC0gKE1ha2VmaWxlLmluLCBkZWZhdWx0X3N0b3JlLmMsIGRlZmF1bHRfc3RvcmUuaCk6CiAgICAgIC0gY3JlYXRlZCBnZW5lcmljIGRlZmF1bHQgdmFsdWUgc3RvcmFnZSBzcGFjZSBhbmQgcGFyc2VycyB0byByZWR1Y2UKICAgICAgICB0aGUgbnVtYmVyIG9mIGZ1bmN0aW9ucy9ldGMgY3JlYXRlZCBmb3IgdmFsdWVzIHdoaWNoIGNvbmZpZ3VyZSB0aGUKICAgICAgICBsaWJyYXJ5LgoKZGF2ZXMgIDEgSnVuIDk5IDAyOjE3OjI3CiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHYXJiYWdlIGNvbGxlY3Rpb24gZm9yIFRyYWRpdGlvbmFsIFNBUEkgc2Vzc2lvbnMKCmRhdmVzICAxIEp1biA5OSAwMjozMjoxMwogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogR2VuZXJhbGlzZSBoYW5kbGluZyBvZiBhZGRyZXNzZXMgKHcuci50IHNlbnRvL3JlY3Zmcm9tKQoKZGF2ZXMgIDEgSnVuIDk5IDA3OjMwOjQyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oKTogU3VwcG9ydCBmb3Igc3RyZWFtLWJhc2VkIHNvY2tldHMKCmhhcmRha2VyICAxIEp1biA5OSAxNzoyMTo1MwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXBfYWxhcm0uYywgc25tcF9hbGFybS5oLCBzbm1wX2FwaS5jKToKICAgICAgLSBpbXBsZW1lbnRlZCBhIGdlbmVyaWMgYWxhcm0gaGFuZGxlciB0byByZWdpc3RlciBhbGFybSBmdW5jdGlvbnMgdG8KICAgICAgICBiZSBjYWxsZWQgYmFjayBhZnRlciBYIHBlcmlvZCBvZiB0aW1lIGFuZCBpdCBoYW5kbGVzIGZpZ3VyaW5nIG91dAogICAgICAgIHdoaWNoIGlzIG5leHQgYW5kIGNhbGxpbmcgYWxhcm0oKSBhbmQgc2lnbmFsKCkgYXBwcm9wcmlhdGVseS4KCm1zbGlmY2FrICA0IEp1biA5OSAwOTo1MToxMwogICAgLShocl9maWxlc3lzLmMsaW50ZXJmYWNlcy5jLHRjcC5jLHVkcC5jLGZyZWVic2QzLmgpIGZpeCBGcmVlQlNEMy4xIGluY2wgS2VuIEtleSdzIHRjcC91ZHAgcGF0Y2hlcwoKbXNsaWZjYWsgIDcgSnVuIDk5IDA3OjQ0OjA2CiAgICAtKGludGVyZmFjZXMuYywgdGNwLmMsIHVkcC5jLCBpcC5jKSBjbG9uZSBmaXhlcyBmcm9tIDMuNiBsaW5lIChGcmVlQlNEMy4xKQoKbXNsaWZjYWsgIDcgSnVuIDk5IDEzOjA0OjIxCiAgICAtKGlmLmMpIGNoZWNrIGZvciB2YWxpZCBwb2ludGVyIGJlZm9yZSBkZS1yZWZlcmVuY2luZy4KCm1zbGlmY2FrICA4IEp1biA5OSAwNzo0MzoxMAogICAgLShocl9maWxlc3lzLmMpIGZpeCBtZW1vcnkgbGVhayB3aGVuIEhBVkVfR0VURlNTVEFUIGlzIGRlZmluZWQuCgpkYXZlcyAgOCBKdW4gOTkgMDg6NDM6NTkKICAgIC0gKGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYwogICAgICAgc25tcGxpYi9zbm1wX2FwaS5jIHNubXBsaWIvc25tcF9hcGkuaAogICAgICAgc25tcGxpYi9zbm1wX2F1dGguYyBzbm1wbGliL3NubXBfaW1wbC5oKToKICAgICAgIC0gIHJlbW92ZWQgYWxsIHVzZXMgb2YgJ3N0cnVjdCBwYWNrZXRfaW5mbycgKHN1YnN1bWVkIGludG8gJ3N0cnVjdCBzbm1wX3BkdScpCgptc2xpZmNhayAgOCBKdW4gOTkgMDk6MzI6NDgKICAgIC0oeHhfX2ZyZWVic2QyLmMpIC0gZml4IHNpemVfdCB0byBidWlsZCBvbiBGcmVlQlNEIDIuMi54CgpkYXZlcyAgOSBKdW4gOTkgMDY6MzI6MDIKICAgIC0gKHNubXBfYXBpLmgpOiByZW9yZGVyIFBEVSBhbmQgc2Vzc2lvbiBmaWVsZHMgbW9yZSBjbGVhcmx5CgpoYXJkYWtlciAgOSBKdW4gOTkgMTg6MzE6NDIKICAgIC0gKCopOiBtZXJnZWQgMy42LjIgY2hhbmdlcyBpbnRvIG1haW4gYnJhbmNoLgoKZGF2ZXMgMTUgSnVuIDk5IDAzOjU5OjIzCiAgICAtIChzbm1wX2FnZW50LmMpOiBSZW1vdmVkIGR1cGxpY2F0ZSBjb2RlCgpkYXZlcyAxNSBKdW4gOTkgMDg6Mjg6MDAKICAgIC0gKHNubXBfYWdlbnQuYyBzbm1wX2FnZW50LmgpOgogICAgICAtIE1vdmUgcHJvY2Vzc2luZyBmcm9tICdoYW5kbGVfbmV4dF9wYXNzKCknIHRvICdoYW5kbGVfc25tcF9wYWNrZXQoKScKCmhhcmRha2VyIDE1IEp1biA5OSAxNjoyNTo1NwogICAgLSAoc25tcF9hcGkuYyk6IGZpeCBhbGxvd2VkIHplcm9sZW5ndGggcGR1LT5zZWN1cml0eU5hbWUgcHJvYmxlbSBmb3IKICAgICAgdjMgZW5naW5lSUQgZGlzY292ZXJ5IHByb2Jlcy4KCmRhdmVzIDE2IEp1biA5OSAwNToxMTo0OAogICAgLSAoc25tcC5oIHNubXBfYXBpLmMpOiBtb3ZlIFBEVSB2YWxpZGF0aW9uLCBldGMgZnJvbSAnc2VuZCcgdG8gJ2J1aWxkJyByb3V0aW5lcwoKZGF2ZXMgMTYgSnVuIDk5IDA1OjQ5OjM4CiAgICAtIChzbm1wX2FwaS5jKTogaGFuZGxlIHJlc3BvbnNlcyBpbiBhIG1vcmUgcHJvdG9jb2wtaW5kZXBlbmRlbnQgbWFubmVyCgpkYXZlcyAxNiBKdW4gOTkgMDY6NTY6MTQKICAgIC0gKHNubXBfYXBpLmMgc25tcF9hcGkuaCk6IEhvb2tzIGZvciBidWlsZGluZy9wYXJzaW5nIG5vbi1TTk1QIHBhY2tldHMKCmhhcmRha2VyIDE2IEp1biA5OSAxNjoyNDo1OAogICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBwYXJzZS5jKToKICAgICAgLSBmaXJzdCB1c2FnZSBvZiB0aGUgZGVmYXVsdF9zdG9yZSgpIHJvdXRpbmVzOiBtb3ZlIGFsbCB0aGUgbWliCiAgICAgICAgcGFyc2VyIHZhcmlhYmxlcyB0byBpdCwgYW5kIGFkZCBzbm1wLmNvbmYgdG9rZW5zIGZvciB0aGVtLgogICAgICAgIC0gcHJlbWliIGF1dG8tcmVnaXN0cmF0aW9uIG9mIGRlZmF1bHRfc3RvcmUgbmVlZHMgY2xlYW5pbmcgdXAuLi4gIHNpZ2guLi4KCmhhcmRha2VyIDE2IEp1biA5OSAxNjo1MToxMQogICAgLSAoc25tcF9hcGkuYywgc25tcF9kZWJ1Zy5jLCBzbm1wX2RlYnVnLmgpOgogICAgICAtIDIgbmV3IHNubXAuY29uZiB0b2tlbnM6IGRvRGVidWdnaW5nLCBkZWJ1Z1Rva2Vucy4KCmhhcmRha2VyIDE3IEp1biA5OSAwNzozOTowMQogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBmaXggLS1oZWxwLgoKbXNsaWZjYWsgMTcgSnVuIDk5IDEzOjE4OjM1CiAgICBmaXh1cHMgdG8gYnVpbGQgbW9zdCBhcHBzIHVuZGVyIFdpbjMyIChNU1ZDKysgNS4wIG9yIGxhdGVyKQoKbXNsaWZjYWsgMTggSnVuIDk5IDA1OjAxOjU0CiAgICBhcHBsaWVkIGZpeGVzIGZyb20gTS4gTGF1a2thbmVuCgpkYXZlcyAxOCBKdW4gOTkgMDY6NTg6NTMKICAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBuZXcgcm91dGluZSBmb3IgcmVtb3Zpbmcgc3lzT1JUYWJsZSBlbnRyaWVzCgpkYXZlcyAxOCBKdW4gOTkgMDc6NTY6NDYKICAgIC0gKHNubXAuaCBzbm1wX2FwaS5jKTogZGlzdGluZ3Vpc2ggYmV0d2VlbiBTTk1QIHByb3RvY29sICYgUERVIGhhbmRsaW5nIGZsYWdzCgpkYXZlcyAxOCBKdW4gOTkgMDg6MDA6MzQKICAgIC0gKHNubXBfY2xpZW50LmMpOiBFbmFibGUgYWNjZXNzIHRvICJlbXB0eSIgcmVzcG9uc2UgUERVcyAoaS5lLiBoZWFkZXIgb25seSkuCiAgICAJKGFsc28gbWFrZSAnc25tcF9jbG9uZV9tZW0nIGFjY2Vzc2libGUgdG8gb3RoZXIgZmlsZXMpCgpkYXZlcyAxOCBKdW4gOTkgMDg6MDQ6MjIKICAgIC0gKGFzbjEuaCBzbm1wX2FwaS5jKTogTmV3IHByaXZhdGUgdHlwZXMgZm9yIE9JRCByYW5nZXMKCmRhdmVzIDE4IEp1biA5OSAwODo0NDoxMQogICAgLSAoc25tcF9hcGkuaCk6IE5ldyBzb2NrZXQgYWRkcmVzcyBzdHJ1Y3R1cmUKCmRhdmVzIDE4IEp1biA5OSAwODo0NzozOAogICAgLSAoc25tcF9hcGkuYyk6IHByb3RvY29sLWluZGVwZW5kZW50IG5vbi1yZXNwb25zZSBoYW5kbGluZyBpbiAnc25tcF9zZXNzX3JlYWQnCgpkYXZlcyAxOCBKdW4gOTkgMDg6NDk6NTIKICAgIC0gKHNubXBfYXBpLmMpOgogICAgICAtIGFjY29tb2RhdGUgc2VydmVycyB0aGF0IHJlcXVpcmUgYW4gYWNjZXNzaWJsZSBjbGllbnQtZW5kIHVuaXggc3RyZWFtIHNvY2tldAogICAgICAgICAgICAgICAgICAoaW4gcGFydGljdWxhciwgdGhlIENNVSBBZ2VudFggbWFzdGVyIGFnZW50KQoKZGF2ZXMgMTggSnVuIDk5IDA4OjU1OjMyCiAgICAtIChzbm1wX2FwaS5oIE1ha2VmaWxlLmluIGFnZW50eC5jIGFnZW50eC5oIGFnZW50eF9jbGllbnQuYyk6CiAgICAgIC0gYmFzaWMgQWdlbnRYIHByb3RvY29sIGhhbmRsaW5nCgpkYXZlcyAxOCBKdW4gOTkgMDk6MDA6MTYKICAgIC0gKHNubXBfdmFycy5jKTogcHJvdG9jb2wtaW5kZXBlbmRlbnQgbWVhbnMgb2YgYnlwYXNzaW5nIFZBQ00gY2hlY2tzCgpkYXZlcyAxOCBKdW4gOTkgMDk6MTQ6NTgKICAgIC0gKHNubXBkLmMgc25tcGQuaCBzbm1wX3ZhcnMuYyBzbm1wX2FnZW50LmMgc25tcF9hZ2VudC5oCiAgICAgICBtaWJncm91cC9taWJJSS9zeXNPUlRhYmxlLmMpOgogICAgICAgLSBpbml0aWFsIEFnZW50WCBzdWItYWdlbnQgaW1wbGVtZW50YXRpb24KCm1zbGlmY2FrIDE4IEp1biA5OSAxMDowMjowMwogICAgLShzeXNPUlRhYmxlLmMpIGZpeCBwdHIgdGVzdAoKbXNsaWZjYWsgMjIgSnVuIDk5IDA1OjIxOjAzCiAgICAgaW52b2tlIHNubXBfc2Vzc19pbml0IGJlZm9yZSBhbnkgTUlCIHByb2Nlc3NpbmcgKGZpeGVzIG1hc3RlciBhZ2VudCkuCgpuYmEgMjIgSnVuIDk5IDA1OjI1OjEzCiAgICBUT0RPOgluZWVkIGZvciBDb3VudGVyNjQgc3VwcG9ydCBpbiBzbm1wZGVsdGEKCmRhdmVzIDI4IEp1biA5OSAwMzowODo0MgogICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6IG1ha2UgU05NUCBwYWNrZXQgaGFuZGxpbmcgcm91dGluZSByZS1lbnRyYW50LgoKZGF2ZXMgMjggSnVuIDk5IDA0OjA3OjM2CiAgICAtIHtNYWtlZmlsZS5pbiBhZ2VudF9yZWFkX2NvbmZpZy5jIHNubXBfdmFycy5jIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgICAtIENvbnNvbGlkYXRlIGFsbCByZWdpc3RyeSBoYW5kbGluZyBpbnRvIG9uZSBmaWxlCgpkYXZlcyAyOCBKdW4gOTkgMDk6NTI6MDgKICAgIC0gKGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgc25tcF92YXJzLmggdmFyX3N0cnVjdC5oKToKICAgICAgLSBOb24tcmVjdXJzaXZlIE1JQiByZWdpc3RyeSBpbXBsZW1lbnRhdGlvbgoKaGFyZGFrZXIgMjggSnVuIDk5IDE0OjU5OjQxCiAgICAtIChzbm1wZC5jKTogaW5pdF9zbm1wX2FsYXJtKCkuCgpoYXJkYWtlciAyOCBKdW4gOTkgMTU6MDE6MTQKICAgIC0gKHNubXB0cmFwZC5jKTogaW5pdF9zbm1wX2FsYXJtKCk7CgpkYXZlcyAzMCBKdW4gOTkgMDE6Mzc6MTEKICAgIC0gKHN5c09SVGFibGUuYyBzeXNPUlRhYmxlLmgpOiBJbmRpY2F0ZSBzdWNjZXNzL2ZhaWx1cmUgb2Yge3VufXJlZ2lzdHJhdGlvbgoKZGF2ZXMgMzAgSnVuIDk5IDAxOjQ1OjI2CiAgICAtIChhZ2VudF9yZWdpc3RyeS5jIHNubXBfdmFycy5oKTogSW5kaWNhdGUgc3VjY2Vzcy9mYWlsdXJlIG9mIHt1bn1yZWdpc3RyYXRpb24KCmRhdmVzIDMwIEp1biA5OSAwMTo0ODozNAogICAgLSAoc25tcF9hZ2VudC5jIHNubXBfYWdlbnQuaCk6ICdhZ2VudF9zbm1wX3Nlc3Npb24nIGluaXRpYWxpc2F0aW9uIHJvdXRpbmUKCmRhdmVzIDMwIEp1biA5OSAwMjozMjowMwogICAgLSAoc25tcF9hcGkuYyk6IENvcnJlY3QgdGhlIHNldHVwIG9mIHN0cmVhbS1iYXNlZCBhY2NlcHRlZCBpbnRlcm5hbCBzZXNzaW9ucwoKZGF2ZXMgMzAgSnVuIDk5IDAzOjIwOjQ2CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5oKTogb21pdCByZWR1bmRhbnQgZGVjbGFyYXRpb25zCgpkYXZlcyAzMCBKdW4gOTkgMDU6MDU6NDQKICAgIC0gKHNubXBfYXBpLmMpOiBQcm92aWRlIHRoZSBjb3JyZWN0IHNpemUgb2Ygc29ja2V0IGFkZHJlc3NlcwoKZGF2ZXMgMzAgSnVuIDk5IDA1OjA2OjUyCiAgICAtIChjb25maWcuaC5pbiBjb25maWd1cmUuaW4gY29uZmlndXJlKTogY2hlY2sgZm9yIHN5cy91bi5oCgpkYXZlcyAzMCBKdW4gOTkgMDU6NDg6NDAKICAgIC0gKHNubXBfYXBpLmMpOiBNaXNzZWQgb25lICdzZW5kdG8nIGNhbGwKCmhhcmRha2VyIDMwIEp1biA5OSAxOTozNzozNgogICAgLSAoZGVmYXVsdF9zdG9yZS5jLCBkZWZhdWx0X3N0b3JlLmgsIG1pYi5jLCBtaWIuaCwgc25tcF9hcGkuYywKICAgICAgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBjb252ZXJ0IG1vcmUgc3R1ZmYgdG8gdGhlIGRlZmF1bHRfc3RvcmUgc3BhY2UuCgpkYXZlcyAgMiBKdWwgOTkgMDI6Mzk6NDEKICAgIC0gKHNubXBfYXBpLmMpOiBGaXggdGhhdCBsYXN0ICdzZW5kdG8nIGNhc2UgKmNvcnJlY3RseSogdGhpcyB0aW1lCgpkYXZlcyAgMiBKdWwgOTkgMDU6MTM6NDIKICAgIC0gKHNubXBsaWIvYXNuMS5oIGFnZW50L3NubXBfdmFycy5oIGFnZW50L3NubXBfYWdlbnQuYyk6CiAgICAgIC0gaW1wbGVtZW50IGFuIGludGVyZmFjZSBmb3IgZGVsZWdhdGluZyByZXF1ZXN0cyB0byBzdWJhZ2VudHMKCmRhdmVzICAyIEp1bCA5OSAwNToxNTo1NgogICAgLSAodmFyX3N0cnVjdC5oIGFnZW50X3JlZ2lzdHJ5LmMpOgogICAgICAtIG1hcCBiZXR3ZWVuIE1JQiByZWdpc3RyYXRpb25zIGFuZCB0aGUgc3VwcG9ydGluZyAoc3ViYWdlbnQpIHNlc3Npb24KCmRhdmVzICAyIEp1bCA5OSAwNToxNjo0MQogICAgLSAoc25tcF9hcGkuaCk6IHN1cHBvcnQgbGlzdHMgb2Ygc2Vzc2lvbnMgKGFuZCBzdWJzZXNzaW9ucykKCmhhcmRha2VyICAyIEp1bCA5OSAwODoyNzozMAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogcmVnaXN0ZXIgZGVidWdnaW5nIHRva2VucyB3aXRoIC1ECgpkYXZlcyAgNiBKdWwgOTkgMDI6MjA6NTcKICAgIC0gKHNubXBfYWdlbnQuYyk6IEZpeCBoYW5kbGluZyBvZiBTTk1QdjEgbm9TdWNoTmFtZQoKZGF2ZXMgIDcgSnVsIDk5IDA2OjU0OjUzCiAgICAtIChhc24xLmMgYXNuMS5oIHNubXAuYyBzbm1wLmggc25tcF9hcGkuYyBzbm1wX2FwaS5oCiAgICAgICBzbm1wX2F1dGguYyBzbm1wX2ltcGwuaCBhZ2VudHguYyk6CiAgICAgICAtIEZpcnN0IGF0dGVtcHQgYXQgZm9ybWF0dGVkIGRpc3BsYXkgb2YgcGFja2V0IGRhdGEKCmRhdmVzICA4IEp1bCA5OSAwMjoxNjoxNQogICAgLSAoc25tcF9hcGkuYyk6IFJldGFpbiBjb21tdW5pdHkgc3RyaW5nIGluIHJlc3BvbnNlcwoKZGF2ZXMgIDggSnVsIDk5IDA2OjI1OjA3CiAgICAtIChtaWJJSS9zeXN0ZW1fbWliLmMgbWliSUkvc25tcF9taWIuYyk6CiAgICAgIC0gVXBkYXRlICd3cml0ZScgcm91dGluZXMgZm9yIFY0IGFyY2hpdGVjdHVyZSwKICAgICAgICBhbmQgdXNpbmcgdGhlIGZ1bGwgU0VUIG11bHRpLXBhc3MgYWxnb3JpdGhtCgpoYXJkYWtlciAgOCBKdWwgOTkgMTQ6Mjk6MzUKICAgIC0gKGNvbmZpZy5oKTogY29tbWVudCBjaGFuZ2UgZm9yIGludGVybmFsIG1kNS4KCmhhcmRha2VyICA4IEp1bCA5OSAxNDozMDo0NwogICAgLSAoYXNuMS5jKTogLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTkgMTQ6MzY6NTIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgc25tcDJwLmMsIHNubXBfYWdlbnQuYywKICAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIHZpZXdfcGFyc2UuYywgdmFjbV92YXJzLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgICBzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMsIG1haW4uYywgTWFrZWZpbGUuaW4sIGFjbC5jLAogICAgICBhY2wuaCwgYWNsX3BhcnNlLmMsIGNvbnRleHQuYywgY29udGV4dC5oLCBjb250ZXh0X3BhcnNlLmMsCiAgICAgIGxpYnNubXAuaCwgcGFydHkuYywgcGFydHkuaCwgcGFydHlfcGFyc2UuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywgdmlldy5jLCB2aWV3LmgpOgogICAgICAtIHYycGFydHkgc3VwcG9ydCBpcyBmaW5hbGx5IGdvbmUhCgpoYXJkYWtlciAgOCBKdWwgOTkgMTQ6NDk6MDgKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZAoKaGFyZGFrZXIgIDggSnVsIDk5IDE1OjE2OjM1CiAgICAtIChzbm1wZGVsdGEuYywgaW50NjQuYywgaW50NjQuaCk6IG1pbmltYWwgYzY0IHN1cHBvcnQgZm9yIHNubXBkZWx0YS4gVW50ZXN0ZWQuCgpoYXJkYWtlciAgOCBKdWwgOTkgMTY6MDI6NTgKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIFJhZ25hciBLaueIrfWAkYvvvaT1gI+x54it9YCRi++9pPWAjLXniK31gJGL772k9YCMv3JzdGFkOgogICAgICAtIEFkZCBvcHRpb25zIGZvciBzd2l0Y2hpbmcgdG8gYSBnaXZlbiB1aWQgYW5kIGdpZC4KCmRhdmVzICA5IEp1bCA5OSAwMTo0OTo0OQogICAgLSAoc25tcGQuYyk6IENsZWFuIHVwIGdpZC91aWQgY2hhbmdlIGxvZ2dpbmcKCmRhdmVzICA5IEp1bCA5OSAwODoyNzozOQogICAgLSAoKi9NYWtlZmlsZS5pbiBzbm1wbGliL3NubXBfYXBpLmMKICAgICAgIGFnZW50L2FnZW50X3JlZ2lzdHJ5LmMgYWdlbnQvc25tcF9hZ2VudC5bY2hdIGFnZW50L3NubXBfdmFycy5bY2hdCiAgICAgICBhZ2VudC9zbm1wZC5bY2hdIGFnZW50L21pYmdyb3VwL21pYklJL3N5c09SVGFibGUuYyk6CiAgICAgICAtIE1vdmUgQWdlbnRYIGhhbmRsaW5nIG91dCBvZiB0aGUgbWFpbiBTTk1QIGxpYnJhcnkKCm1zbGlmY2FrICA5IEp1bCA5OSAxMjoxMjo1MAogICAgLShzbm1wX2NsaWVudC4qKSByZW1vdmUgc25tcF9zeW5jaF9zZXR1cCwgc25tcF9zeW5jaF9yZXNldAoKbXNsaWZjYWsgIDkgSnVsIDk5IDE0OjIwOjIzCiAgICAtKHdpbjMyLHNubXBsaWIsYXBwcyxhZ2VudCkgYWRkIHNubXBfc29ja2V0X2xlbmd0aCB0byBoaWRlIHNvY2thZGRyX3VuOyBXaW4zMiB0b3VjaHVwcwoKbXNsaWZjYWsgMTEgSnVsIDk5IDE4OjM2OjI0CiAgICBSZWR1Y2UgdXNlIG9mIHNubXBfZXJybm8gLSBmaXggbWVtb3J5IGxlYWssIHVudXNlZCB2YXJzLCBhbmQgdW5zZXQgdmFyLgoKZGF2ZXMgMTIgSnVsIDk5IDA3OjE0OjM2CiAgICAtIChhZ2VudC9taWJncm91cC9NYWtlZmlsZS5pbik6IHJlbW92ZSBkZXBlbmRlbmN5IG9uIHNubXBsaWIvYWdlbnR4LmgKCmRhdmVzIDEyIEp1bCA5OSAwODozMjoyNwogICAgLSAobWliZ3JvdXAvaG9zdC8qKTogRHluYW1pY2FsbHkgcmVnaXN0ZXIgYWxsIEhvc3QgUmVzb3VyY2UgbW9kdWxlcwoKbXNsaWZjYWsgMTQgSnVsIDk5IDEzOjE0OjMwCiAgICAtKHNubXBfYXBpLmMpIC0gc25tcF9hZGRfdmFyIHJldHVybnMgU05NUEVSUjsgTUFZIHNldCBzbm1wX2Vycm5vCgptc2xpZmNhayAxNCBKdWwgOTkgMTM6NDY6NTMKICAgIC0oc25tcGxpYi9taWIuYykgLSBjb25kaXRpb25hbGx5IGFsbG93IGZvciBub3Qgc2V0dGluZyBzbm1wX2Vycm5vCgpoYXJkYWtlciAxNSBKdWwgOTkgMDg6NDY6MDAKICAgIC0gKGFzbjEuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oKToKICAgICAgLSBiZWdpbm5pbmcgb2YgYSAtRGR1bXAgdmVyc2lvbiBvZiBwYWNrZXQgZHVtcGluZy4KICAgICAgLSBuZWVkcyBhIGxvdCBtb3JlIHdvcmsgYW5kIGNsZWFuIHVwLgogICAgICAtIEkgbmVlZCBjb21tZW50cy4uLiAgVGVsbCBtZSB3aGF0IHlvdSB0aGluay4uLgoKaGFyZGFrZXIgMjAgSnVsIDk5IDE0OjAyOjI2CiAgICAtIChhdXRvX25saXN0LmMsIGhpc3RvcnkuYywga2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICAgZGxtb2RfbWliLmMsIGtlcm5lbF9zdW5vczUuYywgbWliaW5jbC5oLCB1dGlsX2Z1bmNzLmMsIGlwZndjaGFpbnMuYywKICAgICAgYXQuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCByb3V0ZV93cml0ZS5jLCBzeXN0ZW1fbWliLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFjbV92YXJzLmMsIHZhcl9yb3V0ZS5jLCBkbG1vZC5jLCBzbXV4LmMsIGRpc2suYywgZXh0ZW5zaWJsZS5jLAogICAgICBsb2FkYXZlLmMsIG1lbW9yeV9zb2xhcmlzMi5jLCBwYXNzLmMsIHBhc3NfcGVyc2lzdC5jLCBwcm9jLmMsCiAgICAgIHZlcnNpb25pbmZvLmMsIGFsYXJtLmMsIGV2ZW50LmMsIE1ha2VmaWxlLmluLCBwYXJzZS5jLCBzbm1wLmMsCiAgICAgIHNubXBfZGVidWcuYywgc25tcF9sb2dnaW5nLmMsIHNubXBfbG9nZ2luZy5oKTogUGF0Y2ggZnJvbSBSYWduYXIKICAgICAgS2rniK31gJGL772k9YCPseeIrfWAkYvvvaT1gIy154it9YCRi++9pPWAjL9yc3RhZDoKICAgICAgLSBkbyBmaWxlLCBzdGRlcnIsIGFuZCBzeXNsb2cgc3VwcG9ydC4KCmhhcmRha2VyIDIwIEp1bCA5OSAxNzowNjo1MwogICAgLSAoYXV0b19ubGlzdC5jLCBzbm1wX2FnZW50LmMsIHNubXBkLmMsIGRsbW9kX21pYi5jLCBrZXJuZWxfc3Vub3M1LmMsCiAgICAgIGlwZndjaGFpbnMuYywgaW50ZXJmYWNlcy5jLCBkbG1vZC5jLCBzbXV4LmMsIHZlcnNpb25pbmZvLmMsCiAgICAgIGFsYXJtLmMpOgogICAgICAtIGNvbnZlcnQgc25tcF9sb2coTE9HX0RFQlVHKSB0byBERUJVR01TR1RMKCkuCgptc2xpZmNhayAyMCBKdWwgOTkgMTg6MTE6NTAKICAgIC1taW5vciBjaGFuZ2VzIHRvIGJ1aWxkIFdpbjMyIHBsYXRmb3JtcyB1c2luZyBDeWdXaW4tZWdjcyBhbmQgTVNWQyBjb21waWxlcnMuCgptc2xpZmNhayAyMCBKdWwgOTkgMTk6MzM6MjYKICAgIC0gbm8gcHJpbnRmIGluIGFzY2lpX3RvX2JpbmFyeQoKaGFyZGFrZXIgMjEgSnVsIDk5IDE2OjA2OjUyCiAgICAtICh0a21pYiwgbWliMmMpOiB1ZHBhdGUgdG8gdXNlIGluZGV4ZXMgKHJlcXVpcmVzIGEgcGVybCBwYXRjaC4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMDozNjo1NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBsb2cgdG8gc3RkZXJyLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEwOjQ0OjE3CiAgICAtIChhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfYWdlbnQuYywKICAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIGtlcm5lbF9zdW5vczUuYywgdXRpbF9mdW5jcy5jLCBpbnRlcmZhY2VzLmMsCiAgICAgIGludGVyZmFjZXMuaCwgc3lzdGVtX21pYi5jLCB2YXJfcm91dGUuYywgc25tcEVuZ2luZS5jLAogICAgICBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgc25tcHRyYXBkLmMsIEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQsCiAgICAgIElBTkFpZlR5cGUtTUlCLnR4dCwgSUYtTUlCLnR4dCwgSVAtTUlCLnR4dCwgVENQLU1JQi50eHQsCiAgICAgIFVEUC1NSUIudHh0LCBwYXJzZS5jLCBzbm1wX2FsYXJtLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6CiAgICAgIC0gbWVyZ2UgZnJvbSBWMy1saW5lIHBvc3QgMy42LjIgdG8gY3VycmVudC4KICAgICAgLSBtaXNjIGJ1ZyBmaXhlcy4KICAgICAgLSBtYWtlIGFwcHMgdHVybiBvbiBzdGRlcnIgbG9nZ2luZyBieSBkZWZhdWx0LgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjE4OjIzCiAgICAtIChzbm1wZC5jKTogbW9yZSBzbm1wX2xvZyBjb252ZXJzaW9ucy4KCmhhcmRha2VyIDIzIEp1bCA5OSAxMzoxODo0NAogICAgLSAodXRpbF9mdW5jcy5jKTogY2hhbmdlIG1hbGxvYyBzaXplKCkuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MTk6MjAKICAgIC0gKGFzbjEuYyk6IG51bGwgdGVybWluYXRlIHBhcnNlZCBzdHJpbmdzLCBqdXN0IGluIGNhc2UuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTM6MjA6MDIKICAgIC0gKHNubXAuYyk6IHhkdW1wIGZpeGVzLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDEzOjIwOjMzCiAgICAtIChrZXl0b29scy5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKTogc25tcF9sb2cgY29udmVyc2lvbnMuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTQ6MTk6MzkKICAgIC0gKGFzbjEuYywgYXNuMS5oLCBzbm1wLmMsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCk6CiAgICAgIC0gcmV2ZXJ0IHRvIG5vbi1kcGFyc2UgdmVyc2lvbnMgb2YgYXNuIGRlY29kaW5nLgoKaGFyZGFrZXIgMjMgSnVsIDk5IDE0OjI2OjU3CiAgICAtIChzbm1wZC5jKTogaW5pdCBkZWJ1Z2dpbmcuCgpoYXJkYWtlciAyMyBKdWwgOTkgMTU6MjI6MDIKICAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsCiAgICAgIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywKICAgICAgc25tcHRyYXBkLmMsIHNubXB1c20uYywgc25tcHdhbGsuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwKICAgICAgc25tcF9jbGllbnQuYyk6CiAgICAgIC0gbWFrZSBhbmQgdXNlIHNubXBfc2Vzc19wZXJyb3Ioc3RyLCBzZXNzKSBmb3IgZXJyb3IgcHJpbnRpbmcuCgptc2xpZmNhayAyNCBKdWwgOTkgMDc6MTE6MzAKICAgIC0oYXNuMS5jKSAtIGZpeCBjb21wYXJlIGVycm9yIGF0IGxpbmUgMzg2OyByZW1vdmUgdW51c2VkIHZhcnMgZWxzZXdoZXJlCgptc2xpZmNhayAyNCBKdWwgOTkgMDc6MTg6MTMKICAgIC0obGlic25tcC5kZWYpIC0gYWRkIGRlY2xzIGZvciBuZXcgZXJyb3IgbG9nZ2luZyBmdW5jdGlvbnMuCgptc2xpZmNhayAyNCBKdWwgOTkgMDc6NDU6NTkKICAgIC0oc25tcF9jbGllbnQuYykgLSB1c2UgU0VUX1NOTVBfRVJST1IgZm9yIHJlc3RvcmVkIHNubXBfZXJybm8gc2V0cy4KCm1zbGlmY2FrIDI0IEp1bCA5OSAwODoxMTowNQogICAgLShtZDUuYykgLSB3cmFwIHVudXNlZCBNRDVwcmludCB3aXRoIFNOTVBfVEVTVElOR19DT0RFIGlmZGVmCgpoYXJkYWtlciAyNiBKdWwgOTkgMDc6Mzc6MDkKICAgIC0gKFNOTVB2Mi1DT05GLnR4dCk6IHJlbW92ZWQgYm9ndXMgSU1QT1JUUyBjbGF1c2UKCmhhcmRha2VyIDI2IEp1bCA5OSAwOTowNDowOQogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCgpoYXJkYWtlciAyNiBKdWwgOTkgMDk6MTQ6MjQKICAgIC0gKE5FV1MpOiB1cGRhdGVkIGEgYml0CgpoYXJkYWtlciAyNiBKdWwgOTkgMTE6NTE6MjIKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTQgKQoKaGFyZGFrZXIgMjYgSnVsIDk5IDE0OjMyOjE3CiAgICAtIChtaWIuYyk6IEJJVF9zdHJpbmc6IC0+IEJJVFM6Cgptc2xpZmNhayAyNiBKdWwgOTkgMTU6MTI6NDUKICAgIC0oYXNuMS5jLGFzbjEuaCxzbm1wLmMsc25tcF9hcGkuYyxzbm1wX2F1dGguYyxzbm1wdXNtLmMpIG1vcmUgZGV0YWlsZWQgcGFyc2UgZXJyb3IgbWVzc2FnZXMuCgpoYXJkYWtlciAyNiBKdWwgOTkgMTU6NTk6MTAKICAgIC0gKGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMjYgSnVsIDk5IDE3OjA2OjAzCiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gdmFyaWFibGUgbmFtaW5nIGNoYW5nZS4KCmhhcmRha2VyIDI2IEp1bCA5OSAxNzowNjo0NwogICAgLSAoaHB1eC5oKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIGRlZmluZSBocHV4CgpoYXJkYWtlciAyNiBKdWwgOTkgMTc6MDc6MzEKICAgIC0gKGtleXRvb2xzLmMsIGtleXRvb2xzLmgsIHBhcnNlLmMsIHNjYXBpLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gc2l6ZV90IGNoYW5nZXMuCgptc2xpZmNhayAyNyBKdWwgOTkgMDQ6MjQ6MDgKICAgIGFkZCBpbmNsdWRlIG5ldC9pZl9kbC5oIHN1Z2dlc3RlZCBieSBUb20gSXZhciBIZWxiZWtrbW8KCmRhdmVzIDI3IEp1bCA5OSAwNjozODowOQogICAgLSAoYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvKi5jKTogdHdlYWsgcmVnaXN0cnkgbGFiZWxzCgptc2xpZmNhayAyNyBKdWwgOTkgMDc6NTI6MzcKICAgIC0oYWdlbnQva2VybmVsLmMsYWdlbnQvZGxtb2RzL2RsbW9kX21pYi5jLGFnZW50L2RsbW9kcy9leGFtcGxlLmMsCiAgICBhZ2VudC9taWJncm91cC9rZXJuZWxfc3Vub3M1LmMsYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jLAogICAgYWdlbnQvbWliZ3JvdXAvYWdlbnR4L21hc3Rlcl9yZXF1ZXN0LmMsCiAgICBhZ2VudC9taWJncm91cC9hZ2VudHgvcHJvdG9jb2wuYyxhZ2VudC9taWJncm91cC9kdW1teS9kdW1teS5jLAogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvZXhhbXBsZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvdWNkRGVtb1B1YmxpYy5jLAogICAgYWdlbnQvbWliZ3JvdXAvZXhhbXBsZXMvd29tYmF0LmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2RldmljZS5jLGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9maWxlc3lzLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX25ldHdvcmsuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfcGFydGl0aW9uLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3ByaW50LmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9wcm9jLmMsCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYywKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMsYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zeXN0ZW0uYywKICAgIGFnZW50L21pYmdyb3VwL2lwZndjaGFpbnMvaXBmd2NoYWlucy5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyxhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9zbm1wX21pYi5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzT1JUYWJsZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jLGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jLAogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdWRwLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMsCiAgICBhZ2VudC9taWJncm91cC9taXNjL2RsbW9kLmMsYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBFbmdpbmUuYywKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMsCiAgICBhZ2VudC9taWJncm91cC90YXJnZXQvc25tcFRhcmdldEFkZHJFbnRyeS5jLAogICAgYWdlbnQvbWliZ3JvdXAvdGFyZ2V0L3NubXBUYXJnZXRQYXJhbXNFbnRyeS5jLAogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvZmlsZS5jLAogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcmVnaXN0cnkuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWNsX3ZhcnMuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvYWxhcm0uYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2V2ZW50LmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3BhcnR5X3ZhcnMuYywKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMsYXBwcy9lbmNvZGVfa2V5Y2hhbmdlLmMsCiAgICBzbm1wbGliL2FzbjEuYyxzbm1wbGliL3NjYXBpLmMsc25tcGxpYi9zbm1wX2NsaWVudC5jLAogICAgc25tcGxpYi9zbm1wX2NsaWVudC5oKSAgRVJST1JfTVNHLCBwcmludGYgLS0+IERFQlVHTVNHVEwKCm1zbGlmY2FrIDI3IEp1bCA5OSAwOTozMzo0MwogICAgLShhZ2VudC9rZXJuZWwuYyxhZ2VudC9zbm1wZC5jLGFnZW50L21pYmdyb3VwL3V0aWxfZnVuY3MuYywKICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9tYXN0ZXIuYywKICAgIGFnZW50L21pYmdyb3VwL2FnZW50eC9zdWJhZ2VudC5jLAogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jLGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYywKICAgIGFnZW50L21pYmdyb3VwL21pYklJL3JvdXRlX3dyaXRlLmMsYWdlbnQvbWliZ3JvdXAvbWliSUkvdGNwLmMsCiAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyxhZ2VudC9taWJncm91cC91Y2Qtc25tcC9kaXNrLmMsCiAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9lcnJvcm1pYi5jLAogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcHJvYy5jLAogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvdm1zdGF0LmMsCiAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMsYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jLAogICAgYXBwcy9zbm1wYnVsa3dhbGsuYyxhcHBzL3NubXBkZWx0YS5jLGFwcHMvc25tcGdldC5jLAogICAgYXBwcy9zbm1wZ2V0bmV4dC5jLGFwcHMvc25tcHNldC5jLGFwcHMvc25tcHN0YXR1cy5jLAogICAgYXBwcy9zbm1wdGFibGUuYyxhcHBzL3NubXB0ZXN0LmMsYXBwcy9zbm1wdHJhcC5jLAogICAgYXBwcy9zbm1wdHJhcGQuYyxhcHBzL3NubXB1c20uYyxhcHBzL3NubXB3YWxrLmMsCiAgICBhcHBzL3NubXBuZXRzdGF0L2luZXQuYyxhcHBzL3NubXBuZXRzdGF0L21haW4uYywKICAgIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYyxzbm1wbGliL3BhcnNlLmMsc25tcGxpYi9yZWFkX2NvbmZpZy5jLAogICAgc25tcGxpYi9zbm1wdjMuYykgZml4IHNubXBfc2Vzc19wZXJyb3IgdXNlOyB1c2UgbG9nX3BlcnJvciBmb3IgcGVycm9yCgptc2xpZmNhayAyNyBKdWwgOTkgMTI6MDA6MzcKICAgIC0oZW5jb2RlX2tleWNoYW5nZS5kc3Asc25tcHVzbS5kc3ApIC1idWlsZCB1c2luZyBjb21tb24gV2luMzIgY29tcGlsZXIKCm1zbGlmY2FrIDI3IEp1bCA5OSAxMjoyNDowMwogICAgLShhcHBzOmVuY29kZV9rZXljaGFuZ2UuYyxzbm1wZGVsdGEuYyxzbm1wdGFibGUuYywgc25tcHVzbS5jOwogICAgc25tcGxpYjpyZWFkX2NvbmZpZy5jLHNubXB2My5jOyB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZikgLQogICAgIGFkanVzdCBoZWFkZXJzLCBidWlsZCBXaW4zMiBzbm1wdXNtK2VuY29kZV9rZXljaGFuZ2UKCm1zbGlmY2FrIDI3IEp1bCA5OSAxNjowNjozNQogICAgLShpbnRlcmZhY2VzLmMpIC0gZml4IGVycm9yIHNldHRpbmcgaWZfaWJ5dGVzIGZvciBMaW51eCAyLjAKCmhhcmRha2VyIDI3IEp1bCA5OSAxNjoxNDoyOAogICAgLSAoYXNuMS5jLCBtaWIuYywgbWliLmgsIHNubXBfYXBpLmMsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLCBzbm1wdXNtLmMpOgogICAgICAtIGNsZWFuZWQgdXAgZGVidWdnaW5nIGR1bXAgb3V0cHV0LgogICAgICAtIGFkZGVkIG1vcmUgZHVtcCBwYXJzZSBoZWFkZXJzIGZvciB2MyBkdW1wcy4KCmhhcmRha2VyIDI3IEp1bCA5OSAxNjoyMDo0NgogICAgLSAoYXNuMS5jKTogZml4IGhlYWRlciBkdW1wLgoKbXNsaWZjYWsgMjcgSnVsIDk5IDE3OjE1OjAxCiAgICBpbmNsdWRpbmcgbWliLmggcmVxdWlyZXMgc3RkaW8uaCB0byBkZWZpbmUgRklMRSAqLgoKbXNsaWZjYWsgMjcgSnVsIDk5IDE5OjAyOjMxCiAgICAtKHNubXBfcGFyc2VfYXJncykgaW4gc25tcF9wYXJzZV9vaWQsIHRyeSBnZXRfbm9kZSBpZiByZWFkX29iamlkIGZhaWxzLgoKbXNsaWZjYWsgMjcgSnVsIDk5IDE5OjA2OjA4CiAgICAtKG1pYi5jKSBmaXggd2Fsa2luZyBPSUQgbGVuZ3RoIHBvaW50ZXIsIG51bWVyaWMgc3ViLWlkIG5vdCBmb3VuZAogICAgaW4gcmVhZF9vYmppZCBhbmQgcGFyc2Vfc3VidHJlZS4KCm1zbGlmY2FrIDI3IEp1bCA5OSAyMzozNDo1OQogICAgLShzbm1wZC5jKSBpbnZva2UgbG9nIGZ1bmN0aW9ucyBmcm9tIGNoaWxkIChjb3JyZWN0IHByb2Nlc3MgSUQgaW4gc3lzbG9nKQoKbXNsaWZjYWsgMjcgSnVsIDk5IDIzOjU4OjUxCiAgICAtKGtleXRvb2xzLmMsbWQ1LmMsbWQ1Lmgsc2NhcGkuYyxzbm1wLmMsc25tcF9hcGkuYyxzbm1wX2F1dGguYykgY2F0Y2ggTUQ1IGVycm9ycwoKbXNsaWZjYWsgMjggSnVsIDk5IDAyOjQyOjMyCiAgICBocl9zd3J1biAtIHJlc2V0IHBvaW50ZXIgaW4gbW9kdWxlIGluaXQgKGhlbHAgSFAvVVggOSkKICAgIHNubXBfbG9nZ2luZyAtIHVzZSB2c3ByaW50ZiBmb3IgSFAvVVgtOQoKaGFyZGFrZXIgMjggSnVsIDk5IDA2OjQ1OjE5CiAgICAtIChidWctcmVwb3J0KTogY2hhbmdlIG1haWwgYWRkciB0byB1Y2Qtc25tcC1idWdzCgpkYXZlcyAyOSBKdWwgOTkgMDM6Mjk6NDAKICAgIC0gKG1pYklJL3ZhY21fdmFycy5jKTogQ2F0Y2ggdXNlIG9mIHVuY29uZmlndXJlZCBFWEFNUExFLmNvbmYgZmlsZXMKCm1zbGlmY2FrIDI5IEp1bCA5OSAwODozNDo1OQogICAgbWVtb3J5X3NvbGFyaXMyIDogaGFuZGxlIG1hbGxvYyBlcnJvcnMKICAgIGtlcm5lbF9zdW5vczUgOiBzaGFyZSBrc3RhdCBmaWxkZXMgW1NIQVJFX0tTVEFUX0ZEXQoKbXNsaWZjYWsgMjkgSnVsIDk5IDEzOjI4OjM2CiAgICAtKGFwcHMvTWFrZWZpbGUuaW4pIC0gY29tbWVudCB1bm5lZWRlZCBUUkFQU1BFQ0lBTCBsaW5lCgptc2xpZmNhayAyOSBKdWwgOTkgMTM6NTk6MDIKICAgIC0oYWdlbnQvc25tcGQuYykgLSBsb2cgc3RhbmRhcmQgZXJyb3IgdW50aWwgaW5pdCBpcyBjb21wbGV0ZWQuCgptc2xpZmNhayAyOSBKdWwgOTkgMTU6MDQ6NDkKICAgIGF1dG9fbmxpc3QsIGtlcm5lbCA6IHBsYWNlIGxvZ19wZXJyb3IgdG8gY2F0Y2ggZXJybm8gdmFsdWUgaW4gcmVwb3J0LgoKaGFyZGFrZXIgMjkgSnVsIDk5IDE3OjAzOjI1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgTWFrZWZpbGUuaW4pOiByZW1vdmUgdHJhcF9zcGVjaWFsIHN0dWZmLgoKaGFyZGFrZXIgMjkgSnVsIDk5IDE3OjA2OjU2CiAgICAtIChtaWJncm91cC92MnBhcnR5KTogcmVtb3ZlZCBmaWxlcy4KCm1zbGlmY2FrIDMwIEp1bCA5OSAwMzo1MTozMQogICAgUmVtb3ZlZCBkdXBsaWNhdGUgSEFWRV9HRVQ/Pz9CWU5BTUU7IFJlbW92ZWQgdW51c2VkIF9DUlRJTVAKCm1zbGlmY2FrIDMwIEp1bCA5OSAwMzo1NzoyMwogICAgUmVtb3ZlZCBoaW50IG9mIHYycGFydHkgZnJvbSBjb21tZW50LgoKbXNsaWZjYWsgMzAgSnVsIDk5IDA0OjAwOjI4CiAgICAtKGFnZW50L2FnZW50X3JlYWRfY29uZmlnLmMsYWdlbnQvaGlzdG9yeS5jLGFnZW50L3NubXBfdmFycy5jLAogICAgYWdlbnQvc25tcGQuYyxzbm1wbGliL3JlYWRfY29uZmlnLmMsc25tcGxpYi9zbm1wX2FsYXJtLmMsCiAgICBzbm1wbGliL3NubXBfYXBpLmMsc25tcGxpYi9zbm1wX2xvZ2dpbmcuYyxzbm1wbGliL3NubXB2My5jLAogICAgc25tcGxpYi9zeXN0ZW0uYykgLSBwc29zIGRpZmZzIG9mZmVyZWQgYnkgQW50aG9ueSBTeW1vbnMKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNDozNzoyMAogICAgcmVuYW1lIGxvY2FsIHZhciAnbGFzdCcgdG8gJ2xhc3RfaXBjaCcgLSBhdm9pZCBzaGFkb3cgZ2xvYmFsIGRlY2wKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNDozOTozOAogICAgZGVjbCBsb2dfcGVycm9yCgptc2xpZmNhayAzMCBKdWwgOTkgMDQ6NDI6NDgKICAgIHJlbmFtZSBzZCB0byBpZnNkIC0gYXZvaWQgZ2xvYmFsIHNoYWRvdyBkZWNsCgptc2xpZmNhayAzMCBKdWwgOTkgMDU6NDI6MzQKICAgIGhyX3N0b3JhZ2UuYyAtIGF1dG9fbmxpc3QgZm9yIEhSX1NUT1JFX1NJWkUKICAgIGhyX3N3cnVuLmMgLSBmaXggZ2xvYmFsIHNoYWRvdyBkZWNsCiAgICBzbm1wX2xvZ2dpbmcuYyAtIGNoYW5nZSBmaWx0ZXIgZm9yIG9wZW5sb2cgcGVyIEEuIFN5bW9ucyBwYXRjaAoKZGF2ZXMgMzAgSnVsIDk5IDA2OjAxOjA4CiAgICAtIChhZ2VudC9hZ2VudF9yZWdpc3RyeS5jIGFnZW50L3NubXBfdmFycy5jIGFnZW50L3NubXBkLmMKICAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXAuYwogICAgICAgYXBwcy9zbm1wdHJhcGQuYyBhcHBzL3NubXBuZXRzdGF0L21haW4uYyBzbm1wbGliL3NubXBfYXBpLmMKICAgICAgIHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfY2xpZW50LmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkuYyBhZ2VudC9taWJncm91cC92MnBhcnR5LmgpOgogICAgICAgLSAgUmVtb3ZlZCBsYXN0IHRyYWNlcyBvZiB2MnAgc3VwcG9ydAoKZGF2ZXMgMzAgSnVsIDk5IDA2OjIzOjA2CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jIGFnZW50X3JlZ2lzdHJ5LmMgc25tcF92YXJzLmMgc25tcF92YXJzX20ybS5oKToKICAgICAgLSBSZW1vdmVkIGxhc3QgdHJhY2VzIG9mIG9ic29sZXRlIHYycGFydHkgTWFuYWdlci10by1NYW5hZ2VyIHN1cHBvcnQKCm1zbGlmY2FrIDMwIEp1bCA5OSAwNjozMDozMAogICAgc3lzdGVtIC0gdXNlIHNpemVvZgoKbXNsaWZjYWsgMzAgSnVsIDk5IDA2OjMwOjU5CiAgICB3aW4zMi9jb25maWcuaCAtIGRlZmluZSBIQVZFX0dFVEhPU1ROQU1FCgptc2xpZmNhayAzMCBKdWwgOTkgMDY6NDY6MjIKICAgIHVzZSB0cmFkaXRpb25hbCBLJlIgY29tbWVudGluZzsgbm90IGFsbCAiQyIgY29tcGlsZXJzIGFjY2VwdCAiLy8iIGNvbW1lbnRzLgoKbXNsaWZjYWsgMzAgSnVsIDk5IDA2OjU4OjA4CiAgICByZW1vdmUgcmVmZXJlbmNlcyB0byBub24tZXhpc3RlbnQgc25tcF92YXJzX20ybS5oCgpkYXZlcyAzMCBKdWwgOTkgMDc6MDE6NDYKICAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBDaGVjayBmb3IgbGliZGIvbGliZGIxICYgbGlicnBtIHNlcGFyYXRlbHkKCmRhdmVzIDMwIEp1bCA5OSAwNzozMTo1NgogICAgLSAoYWNjb25maWcuaCk6IENoZWNrIGZvciBsaWJkYi9saWJkYjEgJiBsaWJycG0gc2VwYXJhdGVseQoKbXNsaWZjYWsgMzAgSnVsIDk5IDA4OjAxOjE4CiAgICBhZGQgdnNucHJpbnRmIGNoZWNrIGFuZCBIQVZFX1ZTTlBSSU5URiBjb25zdGFudAoKbXNsaWZjYWsgMzAgSnVsIDk5IDA4OjMyOjI4CiAgICBubyBzdHJ1Y3Qgc29ja2FkZHJfZGwgaW4gQUlYIDMuCgpoYXJkYWtlciAzMCBKdWwgOTkgMTQ6MTA6MDUKICAgIC0gKGNvbmZpZy5oLmluKTogYXV0b2hlYWRlciBydW4uCgpoYXJkYWtlciAzMCBKdWwgOTkgMTQ6MTA6MzAKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSAvdmFyL3VjZC1zbm1wIGV4aXN0LiAgV2Ugc2hvdWxkIGRvIGEgcGVybWlzc2lvbgogICAgICBzZXQgYXMgd2VsbC4KCmhhcmRha2VyIDMwIEp1bCA5OSAxNDoxODo1NQogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kCgpoYXJkYWtlciAzMCBKdWwgOTkgMTQ6MTk6MjEKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggNC4wLnByZTUgKQoKbXNsaWZjYWsgIDIgQXVnIDk5IDA0OjI5OjM1CiAgICBhc24xLCBwYXJzZSkgZml4ZXMgc3VwcGxpZWQgYnkgTWFya2t1IExhdWtrYW5lbiAoTUpTLXVzZSB4Y2FsbG9jIGluIHBhcnNlKQoKbXNsaWZjYWsgIDIgQXVnIDk5IDA0OjM3OjQ2CiAgICBwYXJzZSAtIHNoYW1lIG9uIG1lIGZvciBub3QgY29tcGlsZSB0ZXN0aW5nIGZpcnN0IQoKbXNsaWZjYWsgIDIgQXVnIDk5IDIyOjI5OjM3CiAgICBzbm1wX2RlYnVnIC0gREVCVUdNU0cgbWFjcm9zIGNhbGwgc25tcF9nZXRfZG9fZGVidWdnaW5nIGJlZm9yZSBpbnZva2luZyBkZWJ1Z21zZyogZnVuY3Rpb25zLgoKbXNsaWZjYWsgIDMgQXVnIDk5IDA0OjQ2OjQxCiAgICBzbm1wX2FwaS5jIC0gcmVtb3ZlICJCWSIgZnJvbSBIQVZFX0dFVEhPU1RCWU5BTUUgKFNvbGFyaXMgMi41LjEgd3JvbmchKQoKbXNsaWZjYWsgIDMgQXVnIDk5IDA2OjU5OjUwCiAgICBhc24xLmMgLSBmaXggb3V0LW9mLWJvdW5kIGFycmF5IHdyaXRlIGFuZCBtZW1vcnkgbGVhayBpbiBwYXJzaW5nIHN0cmluZ3MuCgptc2xpZmNhayAgMyBBdWcgOTkgMDc6MDA6MTYKICAgIHNubXBfZGVidWcuYyAtIHJlbW92ZSB0cmFjZSBtZXNzYWdlcyBmcm9tIGRlYnVnbXNnX2hleHRsaS4KCm1zbGlmY2FrICAzIEF1ZyA5OSAwNzowMzoxNAogICAgc25tcF9kZWJ1Zy5oIC0gbW92ZSBERUJVR1RSQUNFIGZyb20gZGVidWdtc2dfaGV4dGxpIHRvIERFQlVHRFVNUFNFVFVQCgptc2xpZmNhayAgMyBBdWcgOTkgMDc6NTg6NDkKICAgIHZhY21fdmFycy5jIC0gY29weSBjb21tdW5pdHkgc3RyaW5nLCBudWxsIHRlcm1pbmF0ZSwgdGhlbiBkZWJ1ZyBwcmludAoKbXNsaWZjYWsgIDMgQXVnIDk5IDEyOjUzOjMyCiAgICBzbm1wX2RlYnVnLmggLSBmaXggIndhcm5pbmc6IEFOU0kgQyBmb3JiaWRzIGNvbmRpdGlvbmFsIGV4cHIgd2l0aCBvbmx5IG9uZSB2b2lkIHNpZGUiLgoKbXNsaWZjYWsgIDMgQXVnIDk5IDE0OjA2OjMzCiAgICBzbm1wX2RlYnVnLmMgLSBzaWduZWQgY29tcGFyaXNvbiBmb3IgbGVuIGluIGRlYnVnbXNnX2hleHRsaS4KCm1zbGlmY2FrICA0IEF1ZyA5OSAwMzo0ODowMgogICAgLShzbXV4LmMpIC0gcGF0Y2ggc3VwcGxpZWQgYnkgTmljayBBbWF0byB0byBmaXggQVNOX0lQQUREUkVTUyBwYXJzZS4KCm1zbGlmY2FrICA0IEF1ZyA5OSAwNTowMzoxMQogICAgdW5kbyBwYXRjaCBhcm91bmQgU29sYXJpcycgY29uZmlndXJlIGZhaWx1cmUgdG8gcmVnaXN0ZXIgSEFWRV9HRVRIT1NUQllOQU1FLgoKbXNsaWZjYWsgIDQgQXVnIDk5IDA5OjE3OjE4CiAgICAtKGNvbmZpZ3VyZSopIC0gS2VuIEhvcm5zdGVpbjogZml4IHRlc3QgeHhnZXRob3N0YnluYW1lLCB4eGdldHNlcnZieW5hbWUuCgptc2xpZmNhayAgNCBBdWcgOTkgMTI6MzM6NTYKICAgIHNubXBfYXBpLmMgLSBkdW1teSBmdW5jdGlvbnMgc25tcF9zeW5jaF97c2V0dXAscmVzZXR9IGFuZCBzbm1wX2dldF9lcnJuby4KCm1zbGlmY2FrICA1IEF1ZyA5OSAwMzoyNTo1NQogICAgY29uZmlnLnN1YiAtIHBhdGNoIGZyb20gTWFya2t1IExhdWtrYW5lbiB0byBzdXBwb3J0IEhQVVggMTEKCm1zbGlmY2FrICA1IEF1ZyA5OSAxMToxMTo1MwogICAgc25tcF9hcGkuMyAtIGRlc2NyaWJlIHNubXBfZXJyb3IoKSwgcmVwbGFjZXMgc25tcF9lcnJubyBhbmQgc25tcF9nZXRfZXJybm8oKQoKZGF2ZXMgIDYgQXVnIDk5IDA1OjU5OjQ2CiAgICAtIChhY2NvbmZpZy5oIGNvbmZpZy5oLmluIGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOgogICAgICAtIGNvbmZpZ3VyZS10aW1lIGZsYWcgdG8gY29udHJvbCBwcm92aXNpb24gb2YgImR1bW15IiB2YWx1ZXMKCmRhdmVzICA2IEF1ZyA5OSAwNjowMjoxNQogICAgLSAobWliSUkvKi5jIGhvc3QvKi5jKTogRG9uJ3QgcHJvdmlkZSAiZHVtbXkiIHZhbHVlcyAodW5sZXNzIGV4cGxpY2l0bHkgY29uZmlndXJlZCkKCm5iYSAgOSBBdWcgOTkgMDA6MjQ6MzcKICAgIHBhcnNlLmM6CXBhcnNlIGFnZW50IGNhcGFiaWxpdGllcwoKZGF2ZXMgIDkgQXVnIDk5IDAxOjAyOjE1CiAgICAtIChGQVEpOiBOaW5lIG5ldyBxdWVzdGlvbnMsIHBsdXMgYXNzb3J0ZWQgdHdlYWtzIGZvciB0aGUgbmV3IHJlbGVhc2UuCgptc2xpZmNhayAgOSBBdWcgOTkgMDY6NDg6NDcKICAgIG1pYi4qLCBwYXJzZS4qIC0gbW92ZSBwcmludF9vaWRfcmVwb3J0IGFuZCBtaW5pb25zIHdob2xseSBpbnRvIG1pYi5jCgptc2xpZmNhayAgOSBBdWcgOTkgMDY6NTA6MzYKICAgICBzbm1wZGVsdGEsIHRyYW5zbGF0ZSwgdHJhcGQpIC0gbGlzdCBhbGwgb3B0aW9ucyBpbiB1c2FnZTsgcmVtb3ZlIGRpc2FibGVzIGZvciBwcmludF9vaWRfcmVwb3J0IGluIHRyYW5zbGF0ZS4KCm1zbGlmY2FrICA5IEF1ZyA5OSAwNjo1Mjo0NwogICAgc25tcGQuYyAtIGxpc3QgYWxsIG9wdGlvbnMgaW4gdXNhZ2UKCm1zbGlmY2FrICA5IEF1ZyA5OSAwNjo1NDowMQogICAgbGlic25tcC5kZWYgLSByZW1vdmUgcHJpbnRfb2lkX3JlcG9ydCBkaXNhYmxlIG9wdGlvbnMKCm1zbGlmY2FrICA5IEF1ZyA5OSAwOTo0NToxNQogICAgLShzbm1wLmMpIGZpeCBidWZmZXIgb3ZlcmZsb3cgaW4geGR1bXAsIG9mIGFsbCBwbGFjZXMgKDc3IHMvYiA3ODsgdXNpbmcgODApCgpuYmEgIDkgQXVnIDk5IDEwOjQzOjI4CiAgICAobWFueSk6CW51a2UgdmFyaW91cyBwcm90b3R5cGUgd2FybmluZ3MKCm1zbGlmY2FrICA5IEF1ZyA5OSAxMTo0MDoyNQogICAgLShtZDUuYykgZml4IHJlYWQgcGFzdCBlbmQgcHJvYmxlbQogICAgLShzbm1wX2FwaS5jKSBmaXggbG9zaW5nIGNvbW11bml0eSBzdHJpbmcgcHJvYmxlbQoKaGFyZGFrZXIgIDkgQXVnIDk5IDEzOjEyOjM1CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmUgL2Rldi9yYW5kb20gdGVzdC4KCm1zbGlmY2FrICA5IEF1ZyA5OSAxNTowNzoyNAogICAgc25tcHVzbS5jIC0gYWx3YXlzIGNsZWFyIGZpZWxkX2xlbiBpZiByZWYgaXMgdmFsaWQgcHRyOwogICAgc25tcF9hcGkuYyAtIGRvbid0IG92ZXJ3cml0ZSBjb21tdW5pdHkgcG9pbnRlciB3aXRoIHNlY3VyaXR5QXV0aFByb3RvIHBvaW50ZXIKCm5iYSAxMCBBdWcgOTkgMDQ6NDU6MTcKICAgIGNvbmZpZ3VyZS5pbiBjb25maWcuaC5pbiBjb25maWd1cmUgcy9uZXRic2QgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmM6CiAgICAJc3VwcG9ydCBmb3IgTmV0QlNEL3NwYXJjIGFuZCBOZXRCU0QgMS40CgpuYmEgMTAgQXVnIDk5IDA0OjQ2OjM1CiAgICBzbm1wbGliL21pYi5jOglmaXggaGFuZGxpbmcgb2YgbnVtZXJpYyBvaWRzIGFuZCByZXBvcnRpbmcgZXJyb3JzCgpuYmEgMTAgQXVnIDk5IDA0OjQ3OjIyCiAgICBhZ2VudC9rZXJuZWwuYzoJYWJvcnQgb24ga3ZtX29wZW4gZmFpbHVyZXMKCm5iYSAxMCBBdWcgOTkgMDQ6NDg6NDEKICAgIHNubXBuZXRzdGF0L2lmLmM6CWZpeGVzIGZvciBzbm1wbmV0c3RhdCAtaSBvbiB2aXJ0dWFsIGludGVyZmFjZXMKCm5iYSAxMCBBdWcgOTkgMDQ6NTA6NTIKICAgIGludGVyZmFjZXMuYyB2YXJfcm91dGUuYyBzbm1wX2xvZ2dpbmcuYzogZml4IGNvbXBpbGVyIHdhcm5pbmdzCgptc2xpZmNhayAxMCBBdWcgOTkgMDk6MTk6MTAKICAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMgLSBjb252ZXJ0IGZwcmludGYoc3RkZXJyIHRvIHNubXBfbG9nKExPR19FUlIsV0FSTklORykKCm1zbGlmY2FrIDEwIEF1ZyA5OSAxMDowNDo0MAogICAgRml4IGZvciBidWlsZCAobm8gcGFnZXNpemUgdmFyIGRlZmluZWQgZm9yIGxpbnV4KS4KCmhhcmRha2VyIDEwIEF1ZyA5OSAxMTowNTozOAogICAgLSAoc25tcGQuYyk6IGxvZyB2ZXJzaW9uIG51bWJlciBhZnRlciBzdGRlcnIgaXMgb3B0aW9uYWxseSBjbG9zZWQuCgpoYXJkYWtlciAxMCBBdWcgOTkgMTQ6MjY6MzMKICAgIC0gKHNubXBfdmFycy5jKTogcHJvdGVjdCBhZ2FpbnN0IGV2aWwgbWliIG1vZHVsZXMgZnJvbSBtb2RpZnlpbmcKICAgICAgbWVtb3J5IHRoZXkgc2hvdWxkbid0IGJlIG1vZGlmeWluZyB5ZXQuCiAgICAgIC0gKGlmZGVmJ2VkIGZvciBzcGVlZCBwcm9maWxpbmcgbGF0ZXIpLgoKaGFyZGFrZXIgMTAgQXVnIDk5IDE1OjU0OjMzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGZvcmNlIHYzIGVuZ2luZUlEIHNldHRpbmcgdG8gc29tZXRoaW5nIGJvZ3VzIHRvCiAgICAgIGdldCBhcm91bmQgbG9jYWwgY29uZmlndXJhdGlvbiBkYXRhIHN0b3JlIHRpbWUgc3luY2hyb25pemF0aW9uIGNvbmZsaWN0cy4KCmhhcmRha2VyIDEwIEF1ZyA5OSAxNzoyMzo1OQogICAgLSAoc25tcGQuYyk6IHByaW50IC1IIHVzYWdlIHRvIHN0ZGVyci4KCmhhcmRha2VyIDExIEF1ZyA5OSAxMzowNDo1MAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIHJlYWRfY29uZmlnLmMpOgogICAgICAtIE1ha2UgcGVyc2lzdGVudCBjYWNoZSBjb25mb3JtIHRvIGEgbW9yZSBzZWN1cmUgdW1hc2suCgpuYmEgMTEgQXVnIDk5IDIxOjUyOjI2CiAgICBocl9zdG9yYWdlLmM6CXJlbW92ZSB0byBmb3Jnb3R0ZW4gZGVidWcgbGluZXMuCgpuYmEgMTEgQXVnIDk5IDIxOjUzOjMxCiAgICBzbm1wbmV0c3RhdC9pZi5jOgloYW5kbGUgbm9uLWNvbnRpZ3VvdXMgaWZUYWJsZS4gQWxzbyBtYWtlIHRoZQogICAgCWNvdW50ZXJzIHVuc2lnbmVkLgoKaGFyZGFrZXIgMTIgQXVnIDk5IDE2OjE2OjAxCiAgICAtIChzbm1wLmNvbmYuNS5kZWYpOiB1cGRhdGVkIHdpdGggdGhlIG5ld2VyIHRva2VuIGxpc3QuCgpoYXJkYWtlciAxMiBBdWcgOTkgMTY6NDE6MjIKICAgIC0gKEZBUSwgc25tcGNtZC4xLCBzbm1wdHJhcC4xKTogbWlub3IgZG9jIHVwZGF0ZXMuCgpoYXJkYWtlciAxMiBBdWcgOTkgMTY6NDY6MzQKICAgIC0gKE5FV1MsIFJFQURNRSk6IG1pbm9yIHVwZGF0ZXMuCgpkYXZlcyAxMyBBdWcgOTkgMDI6NDc6MDAKICAgIC0gKGV4YW1wbGVzL3VjZERlbW9QdWJsaWMuW2NoXQogICAgICAgaXBmd2NoYWlucy9pcGZ3Y2hhaW5zLltjaF0gbWlzYy9pcGZ3YWNjLltjaF0KICAgICAgIHRhcmdldC9zbm1wVGFyZ2V0e0FkZHIsUGFyYW1zfUVudHJ5LltjaF0KICAgICAgIHNtdXgvc25tcF8qLltjaF0pOgogICAgICAgLSBSZWdpc3RlciBtb2R1bGVzIGR5bmFtaWNhbGx5IGF0IHJ1bi10aW1lCgpoYXJkYWtlciAxMyBBdWcgOTkgMDc6MTE6MzUKICAgIC0gKE1ha2VmaWxlLmluKTogIm1ha2UgdGVzdCIgaW4gdG9wIGxldmVsIE1ha2VmaWxlLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDA3OjEyOjE4CiAgICAtIChORVdTLCBSRUFETUUuc25tcHYzLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGRvY3VtZW50YXRpb24gdXBkYXRlcy4KCmhhcmRha2VyIDEzIEF1ZyA5OSAwNzoxNjo1MQogICAgLSAoTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDEzIEF1ZyA5OSAwOTozMzo0MAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkb24ndCB1c2UgTk9fRFVNTVlfVkFMVUVTIGJ5IGRlZmF1bHQuCgptc2xpZmNhayAxMyBBdWcgOTkgMTE6MTQ6MzkKICAgIChob3N0L2hyX2RldmljZS5jLGhvc3QvaHJfcHJpbnQuYywgaG9zdC9ocl9wcm9jLmMsaG9zdC9ocl9zdG9yYWdlLmMsCiAgICBob3N0L2hyX3N3aW5zdC5jLGhvc3QvaHJfc3dydW4uYywgaG9zdC9ocl9zeXN0ZW0uYyxtaWJJSS9hdC5jLAogICAgbWliSUkvaW50ZXJmYWNlcy5jLG1pYklJL2lwLmMsIG1pYklJL3N5c3RlbV9taWIuYyxtaWJJSS90Y3AuYywKICAgIG1pYklJL3VkcC5jLG1pYklJL3Zhcl9yb3V0ZS5jKSAtICNpZiBOT19EVU1NWV9WQUxVRVMgKGhlbHAgb3V0IGNvbmZpZ3VyZSkKCmhhcmRha2VyIDEzIEF1ZyA5OSAxMTo1NTozMQogICAgLSAodmFyX3JvdXRlLmMpOiBkb24ndCBkbyBjYWNoaW5nIGZvciBOT19EVU1NWV9WQUxVRVMuCgptc2xpZmNhayAxMyBBdWcgOTkgMTI6MTg6MTcKICAgIHZhcl9yb3V0ZS5jIC0gI2lmZGVmIE5PX0RVTU1ZIC0tPiAjaWYgTk9fRFVNTVkgKGxpa2UgdGhlIG90aGVyIHVzZXMpLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDEyOjQ5OjM1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHByb3Blcmx5IGRvIHdoYXQgLS13aXRob3V0LWR1bW15LXZhbHVlcwogICAgICBzaG91bGQgZG8uCgpoYXJkYWtlciAxMyBBdWcgOTkgMTU6MjI6NTMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogcmVtb3ZlIGNvbmZpZ19sb2FkX21pYiBwYXJzaW5nLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDE1OjM1OjU0CiAgICAtIChNYWtlZmlsZS5pbik6IGRvbid0IHJlbW92ZSBtaWJfbW9kdWxlX2xvYWRzLmguCgpoYXJkYWtlciAxMyBBdWcgOTkgMTY6MDU6NDIKICAgIC0gKHJlbW92ZS1maWxlcyk6IHJlbW92ZSB0aGUgSVNTVUVTIGZpbGUgZm9yIHJlbGVhc2VzLgoKaGFyZGFrZXIgMTMgQXVnIDk5IDE2OjA2OjUxCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmU2ICkKCm5iYSAxNiBBdWcgOTkgMTQ6NTg6NDAKICAgIHNubXBuZXRzdGF0L2lmLmM6IGFsbG93IC1pIGFuZCAtbyBvdXRwdXRzIGV2ZW4gd2l0aCBpbmNvbXBsZXRlIHJlc3BvbnNlcwogICAgCWZyb20gc25tcGQgKHN1Y2ggYXMgTGludXggdGhhdCBkb2VzIG5vdCByZXR1cm4gaWZJbk5VQ2FzdFBrdHMKICAgIAl3aXRoIHRoZSBuZXcgRFVNTVkgc2V0dXApCgpuYmEgMTYgQXVnIDk5IDE0OjU5OjI5CiAgICBzbm1wbmV0c3RhdC9tYWluLmM6IGVuYWJsZV9zdGRlcnJsb2coKSBzbyB0aGF0IHdlIGdldCBhbiBlcnJvciBtZXNzYWdlCiAgICAJZm9yIGJhZCBob3N0IG5hbWVzLgoKbmJhIDE4IEF1ZyA5OSAwMjo0MDo0OAogICAgYWdlbnQvc25tcGQuYzoJbW92ZSB0aGUgdGVybWluYXRpb24gcHJvY2Vzc2luZyBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcgogICAgCXRvIGFmdGVyIHRoZSBtYWluIGxvb3AgaGFzIHRlcm1pbmF0ZWQuCgpuYmEgMTggQXVnIDk5IDAyOjUxOjU3CiAgICAtIHNubXBkLmMsIGFnZW50X3JlYWRfY29uZmlnLj8sIHZlcnNpb25pbmZvLmM6IG1vdmUgdGhlIHJlY29uZmlndXJhdGlvbgogICAgCW91dHNpZGUgdGhlIHNpZ25hbCBoYW5kbGVyLgoKbmJhIDE4IEF1ZyA5OSAwOToyNjozNQogICAgLSBpbnRlcmZhY2VzLj86IHVwZGF0ZXMgZm9yIExpbnV4IHRvIGhhbmRsZSBsYXJnZSBjb3VudGVycyBhbmQgdmlydHVhbAogICAgCWludGVyZmFjZXMuCgpuYmEgMTggQXVnIDk5IDA5OjMxOjA2CiAgICAtIChtYW55KToJY2hhbmdlIHRoZSBuYW1lcyBvZiB0aGUgbG9nZ2luZyBmdW5jdGlvbnMgdG8gYmUgc25tcF8qCiAgICAJZGVmYXVsdCBkb19zdGRlcnJfbG9nZ2luZyB0byAxLgoKbmJhIDE5IEF1ZyA5OSAwMjozMzo1NgogICAgLSBpbnRlcmZhY2VzLmM6IHJlbW92ZSBzb21lIGxlZnQgb3ZlciBkZWJ1ZyBvdXRwdXQKCm5iYSAxOSBBdWcgOTkgMDI6MzU6MTAKICAgIC0gc25tcF9sb2dnaW5nLmMsIGFnZW50L3ZhcmlvdXM6IHJlaW5zdGF0ZSAtYSBhbmQgLVYgbG9nZ2luZyAoYWxtb3N0KS4KICAgIAl0aW1lc3RhbXAgZmlsZSBhbmQgc3RkZXJyIGxvZ2dpbmcuCgpuYmEgMTkgQXVnIDk5IDEwOjM4OjAyCiAgICAtIHNubXBfYXBpLmM6CWNvcnJlY2x5IGNhbGwgcHJlLXBhcnNlIGhvb2ssIGFsc28gd2hlbiBub3QgZGVidWdnaW5nCiAgICAJKHRoaXMga2lsbGVkIHRoZSBsaWJ3cmFwIGNoZWNrIGluIHNubXBkKQoKbmJhIDE5IEF1ZyA5OSAxMDozODo0OAogICAgLSBzbXV4LmM6IHJlbW92ZSBzb21lIGV4dHJhbmVvdXMgXG4gZnJvbSBzbm1wX2xvZ19wZXJyb3IgY2FsbHMuCgpuYmEgMTkgQXVnIDk5IDEwOjQwOjIyCiAgICAtIHNubXBkLmM6IHJlbW92ZSBzb21lIHN1cGVyZmx1b3VzIDogZnJvbSBzbm1wX2xvZ19wZXJyb3IuCiAgICAJTG9nIHdoZW4gc25tcGQgcmVjb25maWd1cmVzIGZvbGxvd2luZyBhIFNJR0hVUAoKbmJhIDE5IEF1ZyA5OSAxNDowOToyNQogICAgLSBzbm1wX2FwaS4/LCBzbm1wZC5jLCBzbm1wdHJhcC5jLCBzbm1wdHJhcGQuYzogcmVpbnN0YXRlIGFnZW50X2FkZHIgaW4KICAgIAl0aGUgcGR1IHN0cnVjdHVyZSAodXNlZCBmb3IgdjEgdHJhcHMpLgoKaGFyZGFrZXIgMTkgQXVnIDk5IDE2OjA5OjU0CiAgICAtIChzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsIHNubXBzZXQuYyk6IFBhdGNoIGZyb20gZGxlbmdlbEBob21lLmNvbToKICAgICAgLSBjaGVjayBhcmd1bWVudCBjb3VudCBmb3IgbWluaW11bSBudW1iZXIuCgpuYmEgMjAgQXVnIDk5IDAzOjQzOjM3CiAgICAtIGFnZW50eC8qOiB2YXJpb3VzIHByb3RvdHlwZSBmaXhlcywgdG8ga2VlcCBudW1iZXIgb2Ygd2FybmluZ3MgZG93bgoKaGFyZGFrZXIgMjAgQXVnIDk5IDEzOjQzOjU2CiAgICAtIChkZWZhdWx0X3N0b3JlLmgsIHNubXBfYXBpLmMsIHNubXBfbG9nZ2luZy5jLCBzbm1wX2xvZ2dpbmcuaCk6CiAgICAgIC0gbWFrZSBsb2dnaW5nIG9mIHRpbWVzdGFtcHMgb3B0aW9uYWwgYnkgYSBzbm1wLmNvbmYgZGlyZWN0aXZlLgoKaGFyZGFrZXIgMjAgQXVnIDk5IDEzOjU2OjU3CiAgICAtIChzbm1wLmNvbmYuNS5kZWYsIGRlZmF1bHRfc3RvcmUuaCwgc25tcF9sb2dnaW5nLmMpOgogICAgICAtIHR1cm4gb2ZmIHRpbWUgc3RhbXAgbG9nZ2luZyBieSBkZWZhdWx0LiAgSXQgbXVzdCBiZSBleHBsaWNpdGx5CiAgICAgICAgcmVxdWVzdGVkIGluIHRoZSBzbm1wLmNvbmYgZmlsZSB0byB0dXJuIGl0IG9uLgogICAgICAgICh0aGUgcmVhc29uIGlzIHRoYXQgYSBsb3Qgb2YgbG9nZ2luZyBpcyBpbmNyZW1lbnRhbCBpbiBuYXR1cmUgYW5kCiAgICAgICAgaXMgbm90IGxpbmUgYnVmZmVyZWQgYmVmb3JlIGJlaW5nIHNlbnQgdG8gdGhlIGxvZ2dpbmcgcm91dGluZXMuCiAgICAgICAgVGhlIG90aGVyIHNvbHV0aW9uIGlzIHRvIGhhdmUgdGhlIGxvZ2dpbmcgcm91dGluZXMgZGV0ZWN0IHdoZW4gdG8KICAgICAgICBwcmludCB0aW1lc3RhbXBzIGJ5IHdhdGNoaW5nIG91dCBmb3IgXG4ncy4gIEJ1dCwgbm90IHRoaXMgcm91bmQuCgpoYXJkYWtlciAyMCBBdWcgOTkgMTY6Mzk6MjEKICAgIC0gKHNubXBfYXBpLmgsIHNubXBfYXBpLmMsIHNubXBfYXV0aC5jLCBzbm1wX2ltcGwuaCwgYXNuMS5jKTogNjRiaXQgY2xlYW51cC4KCmhhcmRha2VyIDIwIEF1ZyA5OSAxNzowODoxNwogICAgLSAoTkVXUyk6IGxhc3QgbWludXRlIGNoYW5nZXMKCmhhcmRha2VyIDIwIEF1ZyA5OSAxNzoxMDoyNgogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCA0LjAucHJlNyApCgpoYXJkYWtlciAyMiBBdWcgOTkgMTc6MzM6MDAKICAgIC0gKGlwZmNoYWlucyk6IHJlbW92ZWQgZnJvbSBkaXN0cmlidXRpb24uICBOZXdlciBvbmUgaW4gZnRwJ3MgY29udHJpYiBkaXIuCgpoYXJkYWtlciAyMiBBdWcgOTkgMTc6NTQ6NTcKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSAtLXdpdGhvdXQtZHVtbXktdmFsdWVzIGlzIGRlZmF1bHQgYWdhaW4uCiAgICAgIC0gY2xlYW51cCBvZiAtLWhlbHAgc3R1ZmYuCiAgICAgIC0gZml4IG9mIHBlcmlzdGVudCBkaXJlY3RvcnkgY3JlYXRpb24uCgpoYXJkYWtlciAyMiBBdWcgOTkgMTc6NTY6MjcKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMjIgQXVnIDk5IDE3OjU3OjI3CiAgICAtIChzbm1wX2FwaS5oKTogdmVyc2lvbiAtPiB1X2xvbmcuCgptc2xpZmNhayAyMyBBdWcgOTkgMDY6MTQ6MzkKICAgIFJlbW92ZSBsYXN0IHZlc3RpZ2VzIG9mIGNvbmZpZ19sb2FkX21pYgoKaGFyZGFrZXIgMjMgQXVnIDk5IDA3OjAyOjQzCiAgICAtIChORVdTKTogYW5zaSBtZW50aW9uZWQuCgptc2xpZmNhayAyMyBBdWcgOTkgMDk6MDA6NTkKICAgIFdpbjMyIGJ1aWxkIGZpeGVzCgpuYmEgMjMgQXVnIDk5IDEzOjU0OjMyCiAgICAtIGFnZW50L3NubXBkLmMsIGFnZW50L3NubXBfdmFycy5jOiBtb3ZlIHNvbWUgLXYgbG9nZ2luZyB0byBhIG1vcmUgcmF0aW9uYWwKICAgIAlwbGFjZS4KCm1zbGlmY2FrIDIzIEF1ZyA5OSAxNDowMjo1MQogICAgRGVzY3JpYmUgVVNFX0FTTl9TSE9SVF9MRU4gaW4gRkFRLCBhbmQgaW1wbGVtZW50IGluIF9zbm1wX2J1aWxkLgoKbXNsaWZjYWsgMjMgQXVnIDk5IDE1OjMyOjIxCiAgICBIQUNLISBmaXh1cCBzaG9ydCBsZW5ndGggKGZpcnN0IHB1dCBjb3JyZWN0IGNvbW11bml0eSBzdHJpbmcgaW4gcGR1LT4gKS4KCmhhcmRha2VyIDIzIEF1ZyA5OSAxNjoxNDowMAogICAgLSAoVDAyOHNubXB2M2dldGZhaWwpOiBzbm1wdjMgZ2V0IGZhaWx1cmUgdGVzdC4KCmhhcmRha2VyIDIzIEF1ZyA5OSAxNjoxNDowMAogICAgLSAoSU5TVEFMTCk6IHJlbW92ZSB2ZXJzaW9uIHNwZWNpZmljIGluZm9ybWF0aW9uCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy42LjEgLT4gVjMuNi4yCgpoYXJkYWtlciAxNiBNYXIgOTkgMDg6MTU6MTgKICAgIC0gKGRsbW9kLmMpOiByZW1vdmVkIGEgYm9ndXMgbmV3LWxpbmUuCgpoYXJkYWtlciAxNiBNYXIgOTkgMTA6MzQ6MDMKICAgIC0gKGhyX3N3cnVuLmMpOiBmaXggZmlsZSBkZXNjcmlwdG9yIGxlYWsgb24gZnJlZWJzZC4KCm1zbGlmY2FrIDE2IE1hciA5OSAxMToyMzozMAogICAgLShzbm1wX2FwaS5jKSBjb25zaXN0ZW50IGVycm9yIHJldHVybi4KCm1zbGlmY2FrIDE2IE1hciA5OSAxMTozMzo1MgogICAgLSBtb3ZlIE1BVENIX0ZBSUxFRC9NQVRDSF9TVUNDRUVERUQgZnJvbSB1dGlsX2Z1bmNzLmggdG8gbWliaW5jbC5oCgptc2xpZmNhayAxNyBNYXIgOTkgMTM6NTM6NDgKICAgIC0oaHJfc3dydW4uYykgLSBwcmV2ZW50IFN1bk9TIDQuMSBjb3JlIChzdW5vczQgc3RpbGwgcHJpbWl0aXZlKQoKbXNsaWZjYWsgMTggTWFyIDk5IDA4OjM3OjQ1CiAgICAtIChtaWJJSS9pcC5jKSBmaXggTUlCX0lQQ09VTlRFUl9TWU1CT0wgdXNhZ2UKCmhhcmRha2VyIDE5IE1hciA5OSAwOToyMzozOAogICAgLSAoc25tcGdldC5jLCBzbm1wd2Fsay5jKTogZml4ZWQgaW5pdGlhbGl6YXRpb24gYW5kIHVzYWdlIG9mICJmYWlsdXJlcyIuCgpoYXJkYWtlciAyMyBNYXIgOTkgMTA6MDk6NDcKICAgIC0gKE1ha2VmaWxlLmluKTogYWRkIG1vcmUgdGFyZ2V0cy4KCmhhcmRha2VyIDIzIE1hciA5OSAxMDoxMDoxMQogICAgLSAocmVhZF9jb25maWcuYyk6IG1ha2UgY29weV93b3JkKCkgcmV0dXJuIHRoZSBuZXh0IHRva2VuLCBub3QgdGhlCiAgICAgIG5leHQgc3BhY2UuCgpoYXJkYWtlciAyMyBNYXIgOTkgMTA6MTE6MDMKICAgIC0gKG1pYmRlZnMuaCwgc3RydWN0LmgsIGV4dGVuc2libGUuYywgZXh0ZW5zaWJsZS5oLCBwcm9jLmMsIHByb2MuaCwKICAgICAgc25tcGQuY29uZi41LmRlZiwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gcGVyLXByb2Nlc3MvZXhlYyBmaXggc2NyaXB0cyBjcmVhdGVkLgoKaGFyZGFrZXIgMjMgTWFyIDk5IDEwOjIzOjIxCiAgICAtICh2ZXJzaW9udGFnKTogcmVnZXhwIGZpeC4KCmhhcmRha2VyIDI4IE1hciA5OSAxNjoxMTozMgogICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5oLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuaCk6IHJlbG9jYXRlIHRvCiAgICAgIHNubXBNb2R1bGVzLjEyLCB3aGVyZSB0aGV5IHNob3VsZCBiZS4KCmhhcmRha2VyIDI4IE1hciA5OSAxNjoxNzoyNAogICAgLSAoc25tcFRhcmdldEFkZHJFbnRyeS5jLCBzbm1wVGFyZ2V0UGFyYW1zRW50cnkuYyk6CiAgICAgIC0gd2hlbiB1c2luZyBjb3B5X3dvcmQoKSBkb24ndCBza2lwIHNwYWNlcywgc2luY2UgaXQgZG9lcyB0aGF0LgoKbXNsaWZjYWsgIDEgQXByIDk5IDEzOjEwOjQ3CiAgICAtIChsaWJzbm1wLmgpIEFzeW1wdG90aWNhbGx5IGNsb3NlciB0byBzdXBwb3J0aW5nIENNVSBjb25zdGFudHMuCgptc2xpZmNhayAgNSBBcHIgOTkgMTE6MDY6MjcKICAgIC0gKHNubXBfYXBpLmMsIG1haW4uYywgc25tcF9wYXJzZV9hcmdzLmMpIEpvZSBNYXJ6b3QncyBmaXggdG8gY29weSBldmVuIGFuIGVtcHR5IGNvbW11bml0eSBuYW1lLgoKbXNsaWZjYWsgIDUgQXByIDk5IDE0OjEwOjE0CiAgICAtIGJ1aWxkIHNubXBuZXRzdGF0IHdpdGggQ3lnV2luMzIKCm1zbGlmY2FrICA1IEFwciA5OSAxNDoyMjo0MwogICAgLSBCdWlsZCB3aXRoIEN5Z1dpbjMyCgptc2xpZmNhayAgNSBBcHIgOTkgMTU6NTk6MjAKICAgIC0gQnVpbGQgdXNpbmcgQ3lnV2luMzIgKGluY2x1ZGVzIE5pZWxzIEIuJ3Mgc25tcF92YXJzLmMgcGF0Y2gpLgoKaGFyZGFrZXIgIDYgQXByIDk5IDA5OjIzOjE2CiAgICAtIChjb25maWcuZ3Vlc3MsIGNvbmZpZy5zdWIpOiBuZXcgdmVyc2lvbnMgZnJvbSBhdXRvY29uZiAyLjEzLgoKbXNsaWZjYWsgIDYgQXByIDk5IDEwOjU5OjA1CiAgICAtIChleHRlbnNpYmxlLmMpIHF1ZWxsIHdhcm5pbmcgYWJvdXQgY29tcGFyaW5nIHBvaW50ZXIgd2l0aCBub24tcG9pbnRlci4KCm1zbGlmY2FrICA2IEFwciA5OSAxMTozMzo1NAogICAgLSBhbm90aGVyIHJvdW5kIG9mIEFOU0ktZnlpbmcgdGhlIGFnZW50IGNvbXBsZXRlZC4KCmhhcmRha2VyICA2IEFwciA5OSAxNToxMzo0MAogICAgLSAoKik6IE1lcmdlZCB0aGUgNC4wIGxpbmUgaW50byB0aGUgMy42LjEgbGluZS4KCmhhcmRha2VyICA2IEFwciA5OSAxNTozODo0NQogICAgLSAobWliaW5jbC5oLCB1Y2REZW1vUHVibGljLmMsIHZhY21fdmFycy5oLCBzbm1wdHJhcGQuYywgc25tcF9hcGkuYywKICAgICAgTWFrZWZpbGUuaW4pOiBmaW5hbCBtZXJnZSBwaWVjZXMgb2YgcmVjZW50IHYzIGxpbmUgY2hhbmdlcy4KCm1zbGlmY2FrICA2IEFwciA5OSAyMToyNDoyMgogICAgLSBjaGFuZ2VzIGZvciBBTlNJIGhlYWRlcnM7IFBPU0lYKGluZGV4IHZzIHN0cmNocik7IG1pbm9yIGZpeGVzCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTM6NTkKICAgIC0gKHZhY21fdmFycy5jKSAtIHNldCBnbG9iYWwgcHRycyA9IDAuCgptc2xpZmNhayAgNiBBcHIgOTkgMjI6MTQ6NDMKICAgIC0gKHNubXBfdmFycy5jKSBtb3JlIHYycGFydHkgcmV3b3JrIG5lZWRlZAoKbXNsaWZjYWsgIDcgQXByIDk5IDA2OjE3OjI4CiAgICAtICgpIG1vcmUgQU5TSSBoZWFkZXIgZml4dXBzOyB0b3VjaHVwIGZvciBNJCBXaW4zMiBidWlsZAoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQyOjEwCiAgICAtIChjb25maWcuaC5pbiwgc25tcF92YXJzLmMsIGVuY29kZV9rZXljaGFuZ2UuYywgc25tcHRyYXBkLmMsCiAgICAgIE1ha2VmaWxlLmluLCBhbGxfZ2VuZXJhbF9sb2NhbC5oLCBrZXl0b29scy5jLCBrZXl0b29scy5oLAogICAgICBsY2RfdGltZS5jLCBtZDUuYywgcmVhZF9jb25maWcuYywgc2NhcGkuYywgc25tcF9hcGkuYywgc25tcHVzbS5jLAogICAgICBzbm1wdjMuYywgdG9vbHMuYywgdG9vbHMuaCk6CiAgICAgIC0gbWlzYyBtZXJnaW5nLCBpbmNsdWRpbmcgZml4ZXMgYW5kIGRlYnVnZ2luZyBzdGF0ZW1lbnQgY2hhbmdlcyB0bwogICAgICAgIG5ld2VyIG1vZGVsLgogICAgICAtIGEgZmV3IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDcgQXByIDk5IDEwOjQ4OjA3CiAgICAtIChzbm1wX21pYi5jKTogcmVtb3ZlZCB1bm5uZWVkZWQgaGVhZGVyX3NubXAoKS4KCmhhcmRha2VyICA3IEFwciA5OSAxMToyODowMgogICAgLSAodWNkRGVtb1B1YmxpYy5jLCBzeXNPUlRhYmxlLmMsIHZhY21fdmFycy5jLCBzbXV4LmMsIHNubXBFbmdpbmUuYywKICAgICAgdXNtVXNlci5jLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5jKToKICAgICAgLSBkZWJ1Z2dpbmcgc3RhdGVtZW50IGNvbnZlcnNpb24KCm1zbGlmY2FrICA3IEFwciA5OSAxMjowMDoyMAogICAgLSAoYWdlbnQvc25tcDJwLmMgYWdlbnQvc25tcF9hZ2VudC5jIGFnZW50L3NubXBfdmFycy5oCiAgICBhZ2VudC92aWV3X3BhcnNlLmMgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jCiAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy91Y2REZW1vUHVibGljLmMKICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZmlsZXN5cy5jCiAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N0b3JhZ2UuYwogICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zd3J1bi5jIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3lzdGVtLmMKICAgIGFnZW50L21pYmdyb3VwL21pYklJL2F0LmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaWNtcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS9pbnRlcmZhY2VzLmMgYWdlbnQvbWliZ3JvdXAvbWliSUkvaXAuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgIGFnZW50L21pYmdyb3VwL3NubXB2My91c21Vc2VyLmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2V4dGVuc2libGUuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvaHB1eC5jIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3MuYwogICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvcGFzc19wZXJzaXN0LmMKICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Byb2MuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9jb250ZXh0X3ZhcnMuYwogICAgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9wYXJ0eV92YXJzLmMKICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvdmlld192YXJzLmMgYXBwcy9zbm1wZGVsdGEuYwogICAgYXBwcy9zbm1wdGVzdC5jIGFwcHMvc25tcHRyYXBkLmMgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jCiAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuYyBzbm1wbGliL2FjbF9wYXJzZS5jCiAgICBzbm1wbGliL2NvbnRleHQuaCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3BhcnR5LmgKICAgIHNubXBsaWIvcGFydHlfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMgc25tcGxpYi9zbm1wX2FwaS5jCiAgICBzbm1wbGliL3NubXBfYXV0aC5jIHNubXBsaWIvc25tcF9pbXBsLmggc25tcGxpYi92YWNtLmgKICAgIHNubXBsaWIvdmlldy5oKSAgZmdldHMgdXNlIHNpemVvZiBtb3N0bHksIG9pZCBiYXNlIHNpemUgaXMgTUFYX09JRF9MRU4KCm1zbGlmY2FrICA3IEFwciA5OSAxMjoxNzoyMwogICAgLShpcGZ3Y2hhaW5zLmMpIHJlbW92ZSBtdWx0aXBsZSBkZWZpbml0aW9ucyBvZiBNQVRDSF9GQUlMRUQKCm1zbGlmY2FrICA3IEFwciA5OSAxNTowMDozOQogICAgLSh1c21Vc2VyLmMsc3lzdGVtLmMpIHBsdWcgbWVtIGxlYWs7IChzbm1wX2FwaS5jKSBlbmZvcmNlIGFycmF5IGxpbWl0LgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjE0OjMxCiAgICAtIChtaWJpbmNsLmgpOiBpbmNsdWRlIHN5cy90aW1lLmguCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTU6MzkKICAgIC0gKGhyX3V0aWxzLmgpOiByZW1vdmUgdmFyaWFibGUgbmFtZXMgZnJvbSBwcm90b3R5cGVzICh3YXMgY2F1c2luZyBwcm9ibGVtcykuCgpoYXJkYWtlciAxMiBBcHIgOTkgMjI6MTY6NDUKICAgIC0gKHRrbWliKTogbWFrZSBkaXNwbGF5ZWQgbWliIG5vZGUgaW5mbyBpbnRvIHR3byBjb2x1bW5zIGluc3RlYWQgb2Ygb25lLgoKaGFyZGFrZXIgMTIgQXByIDk5IDIyOjI1OjA5CiAgICAtIChzbm1wX2FwaS5jKTogbWFrZSBzbm1wX3Zhcmxpc3RfYWRkX3ZhcmlhYmxlIHRvIHBvc3NpYmxlIGNyZWF0ZSBhCiAgICAgIHZhcmxpc3QgYmVmb3JlIGFkZGluZyBzb21ldGhpbmcgdG8gaXQuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MTk6MjAKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gRGFuaWVsIEhhZ2VydHk6CiAgICAgIC0gZml4IGxpYndyYXAgdG8gb25seSBhZGQgdGhlIGxpYnJhcnkgdG8gdGhlIGFnZW50LgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjIwOjAwCiAgICAtIChzeXN0ZW1fbWliLmMpOiBtYWtlIHN5c0Rlc2NyIHJlYWQtb25seS4KCmhhcmRha2VyIDEzIEFwciA5OSAxNTozMjoyMwogICAgLSAocGFzcy5jKTogUGF0Y2ggZnJvbSBKaW0gTWFyOgogICAgICAtIGFkZCBjYXBhYmlsaXR5IGZvciBiaW5hcnkgb2N0ZXQgc3RyaW5ncyBpbiBwYXNzIHNjcmlwdHMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6MzY6MzEKICAgIC0gKFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwKICAgICAgU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggbW9kdWxlIGxvY2F0aW9ucyBmb3IgYnJva2VuIG1pYnMuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTQ6NDgKICAgIC0gKGZyZWVic2QuaCwgZnJlZWJzZDIuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZnJlZWJzZCB1dG1wIGNsZWFudXBzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU2OjUzCiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBsb2cgd2l0aCB0aW1lc3RhbXAgYXQgc2h1dGRvd24uCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTc6MjQKICAgIC0gKHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBiZXR0ZXIgY2hlY2tpbmcgb2YgLmNvbmYgZmlsZSBwYXJzaW5nIGxpbmUgcmVxdWlyZW1lbnRzLgoKaGFyZGFrZXIgMTMgQXByIDk5IDE1OjU4OjAyCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHN1cHBvcnQgLVAuCgpoYXJkYWtlciAxMyBBcHIgOTkgMTU6NTg6MjcKICAgIC0gKHNubXBfY29uZmlnLjUuZGVmLCBzbm1wdHJhcC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gY2xlYW4gdXAgc21hbGwgYnVncy4KCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMDo0OQogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gbmljZXIgcGFyc2VyIG1lc3NhZ2VzIChpbmNsdWRlIGZpbGUgbmFtZXMpLiBDb3JyZWN0IGhlbHAgZm9yIC1QYy4KICAgICAgLSBBZGQgRlJBTUUtUkVMQVktRFRFLU1JQiBhcyByZXBsYWNlbWVudCBmb3IgUkZDLTEzMTUKCmhhcmRha2VyIDEzIEFwciA5OSAxNjowMzoyOQogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHNubXB0cmFwZCBvcHRpb24gdG8gaWdub3JlIGF1dGggdHJhcHMsIGFkZCAtUyBvcHRpb24sIGxvZyB0ZXJtaW5hdGlvbi4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNToyOTo1OAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKSBpbml0X3NubXAgdGFrZXMgYXJndW1lbnQ7ICIiIHVzZWQuCgptc2xpZmNhayAxNCBBcHIgOTkgMTU6MzA6MzQKICAgIC0gKHBhcnNlLmMpIEZpbGUgcG9pbnRlciBpbml0aWFsaXplZCB0byAiIiBiZWZvcmUgZmlyc3QgdXNlLgoKaGFyZGFrZXIgMTQgQXByIDk5IDE1OjUyOjM1CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBpbml0X3NubXAoInNubXBhcHAiKS4KCm1zbGlmY2FrIDE0IEFwciA5OSAxNjozMTo1NQogICAgLSAoc25tcF9hZ2VudCxjLCBzbm1wX2FwaS5bY2hdLCBzbm1wX2NsaWVudC5bY2hdKSBmaXggdmFyaWFibGVfbGlzdCB3aXRoIGJ1aWx0LWluIHN0b3JhZ2UKCm1zbGlmY2FrIDE0IEFwciA5OSAxNjo1NjozNwogICAgLSBhcHBzIHRoYXQgdXNlIHNubXBfZml4X3BkdSBtdXN0IGNsZWFuIHVwIHRoZSByZXNwb25zZSBQRFUgIQoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjMwOjI5CiAgICAtIChJUEZXQUNDLU1JQi50eHQpIGNoYW5nZSBtb2R1bGUgbmFtZSBmcm9tIElQRldBRE0tTUlCIHRvIElQRldBQ0MtTUlCLgoKbXNsaWZjYWsgMTYgQXByIDk5IDA3OjU0OjIyCiAgICAtIChJUEZXQ0hBSU5TLU1JQi50eHQpIGlwZndDaGFpblRhYmxlIHtpcGZ3IDF9IGZpeAoKbXNsaWZjYWsgMTYgQXByIDk5IDA4OjMzOjE2CiAgICAtIChtaWIuYykgIi1tIiBvciBNSUJTIDogY2FuIHNwZWNpZnkgTUlCIG1vZHVsZSBieSBmaWxlIG5hbWUuCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTA6MDYKICAgIC0gKFJFQURNRSk6IEFkZGVkIHYzIHRlYW0gbWVtYmVycy4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToxMTo0OAogICAgLSAoY29uZmlndXJlLmluKTogY2hhbmdlZCBkZWZhdWx0IHN0b3JlIGxvY2F0aW9uIHRvIC92YXIvdWNkLXNubXAKCmhhcmRha2VyIDE2IEFwciA5OSAyMToxNToxNAogICAgLSAoc25tcC5oKTogU05NUEFETUlOTEVOR1RIIGRlZmluaXRpb24uCgpoYXJkYWtlciAxNiBBcHIgOTkgMjE6MTY6MTYKICAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlZCBmaXggbm90ZS4KCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzowNgogICAgLSAoTkVXUyk6IHVwZGF0ZWQKCmhhcmRha2VyIDE2IEFwciA5OSAyMToyNzo0MQogICAgLSAoc25tcHRyYXBkLjgpOiBtYW4gcGF0Y2ggZnJvbSBOaWVscwoKaGFyZGFrZXIgMTYgQXByIDk5IDIxOjM0OjQ5CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDQuMC5wcmUzICkKCm1zbGlmY2FrIDE4IEFwciA5OSAwNjo1NDoyNgogICAgLSAoaXBmd2FjYy5oKSBzdWJkaXIgY2hhbmdlIHBlciBKb2UgUHJ1ZXR0dCA6IDkgLT4gMTAKCmhhcmRha2VyIDE5IEFwciA5OSAyMTowMToxNQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOgogICAgICAtIHJld3JvdGUgbWliMmMgdG8gYmUgbW9yZSBkZXBlbmRlbnQgb24gLmNvbmYgZmlsZXMuICBUaGUgbWFpbiAuY29uZgogICAgICAgIGZpbGUgbm93IGNvbnRhaW5zIHRoZSBjb2RlIGl0c2VsZi4KICAgICAgLSBuZWVkIHRvIHdyaXRlIGEgZm9yZWFjaChtaWJub2RlKSB0eXBlIHBhcnNlciBuZXh0LgoKaGFyZGFrZXIgMTkgQXByIDk5IDIxOjA5OjI3CiAgICAtIChtaWJpbmNsLmgpOiBhZGQgcmVhZF9jb25maWcuaC4KCmhhcmRha2VyIDE5IEFwciA5OSAyMToxMjoxNwogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gY3JlYXRlZCBhIG1vcmUgY29udmVuaWVudCByZWFkX2NvbmZpZ19yZWFkX2RhdGEoKSBmdW5jdGlvbiB0bwogICAgICAgIGdlbmVyaWNhbGx5IHJlYWQgYSB0b2tlbiBpbnRvIGEgZ2l2ZW4gdmFyaWFibGUuCiAgICAgIC0gY2xlYW5lZCB1cCBwZXJzaXN0ZW50IHN0b3JhZ2UgcGFyc2luZyByb3V0aW5lcy4KICAgICAgLSB1c2UgcHJldmlvdXNseSBtYWxsb2NlZCBzcGFjZSBpbiBzb21lIHJvdXRpbmVzLCBvciBtYWxsb2MgaXQgZm9yCiAgICAgICAgdGhlbSBpZiB0aGUgc3RvcmFnZSBhcmVhIGlzIE5VTEwuCgpoYXJkYWtlciAxOSBBcHIgOTkgMjE6MTQ6MjgKICAgIC0gKHNubXBfYXBpLmMpOiBEb24ndCBzbm1wX3NldF92YXJfb2JqaWQgaWYgbmFtZSBpcyBOVUxMIGluCiAgICAgIHNubXBfdmFybGlzdF9hZGRfdmFyaWFibGUoKS4KCmhhcmRha2VyIDIwIEFwciA5OSAxMToyODoxNAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYsIG1pYjJjLnZhcnR5cGVzLmNvbmYpOiBtb3JlIHVwZGF0ZXMuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTU6MzE6MzUKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mLCBtaWIyYy52YXJ0eXBlcy5jb25mKToKICAgICAgLSBjb21wbGV0ZWx5IHJlLWhhY2tlZDoKICAgICAgICAtIGVudGlyZSBjb2RlIGJhc2UgaXMgbm93IHB1dCBpbnRvIHRoZSAuY29uZiBmaWxlcyByYXRoZXIgdGhhbiBpbgogICAgICAgICAgdGhlIG1pYjJjIHByb2dyYW0uICBUaGlzIHNob3VsZCBlbnRpdGxlIG1pYjJjIHRvIGJlIHVzZWQgbW9yZQogICAgICAgICAgZ2VuZXJpY2FsbHksIGFuZCBjb3VsZCBwcm9kdWNlIGRpZmZlcmVudCB0eXBlcyBvZiBjb2RlIHRlbXBsYXRlcwogICAgICAgICAgYmFzZWQgb24gdGhlIC5jb25mIGZpbGUgaXQgaXMgZ2l2ZW4uICBJbiB0aGVvcnksIGl0IHNob3VsZCBiZQogICAgICAgICAgYWJsZSB0byBwcm9kdWNlIEMgY29kZSBmb3IgYSBub24tdWNkLXNubXAgYWdlbnQsIG9yIGV2ZW4gYmV0dGVyLAogICAgICAgICAgYW55IHR5cGUgb2YgY29kZSAobm90IGp1c3QgQykgZm9yIHNvbWV0aGluZyBlbHNlIGJhc2VkIG9uIG1pYgogICAgICAgICAgaW5mb3JtYXRpb24uCiAgICAgICAgLSBUaGUgZG93biBzaWRlLCBpcyB0aGF0IHRoZSBjdXJyZW50IC5jb25mIGZpbGVzIGFyZSBub3cgYW1iaWd1b3VzCiAgICAgICAgICBhZ2FpbiBhbmQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQgd2l0aG91dCBiZWluZywgd2VsbCwgbWUuICBUaGUKICAgICAgICAgIHVwIHNpZGUgaXMgdGhhdCBJJ20gc3VyZSBEYXZlIFNoaWVsZCB3aWxsIGdvIHRocm91Z2ggYW5kIGNsZWFuCiAgICAgICAgICBpdCB1cCBmb3IgbWUgbGlrZSBoZSBkaWQgbGFzdCB0aW1lLiAgSGEgaGEuICBJIHdvbmRlciBpZiBoZSdsbAogICAgICAgICAgcmVhZCB0aGlzPyAoSWYgc28sIHNlZSBtZSBmaXJzdCkuCgpoYXJkYWtlciAyMCBBcHIgOTkgMTY6MDQ6MTcKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogdmFyaWFibGUgbmFtZSBjb252ZXJzaW9uczoKICAgICAgLSB2YXJpYWJsZVR5cGVzIC0+IHZhcmlhYmxlcwogICAgICAtIGNuYW1lIC0+IE5BTUUKCmhhcmRha2VyIDIwIEFwciA5OSAxNjoxMDo0NAogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiBhIGxpdHRsZSBtb3JlIGNsZWFuIHVwLgoKaGFyZGFrZXIgMjAgQXByIDk5IDIxOjM4OjQyCiAgICAtIChtaWIyYy5jb25mKTogY2xlYW4gdXAgc2tpcGlmIHJlZ2V4cHMgYSBiaXQuCgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTQ6NDQKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOiBjcmVhdGVkICpyZWFkX2NvbmZpZ19zdG9yZV9kYXRhKCk7CgpoYXJkYWtlciAyMiBBcHIgOTkgMDc6NTY6MDMKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogYWxsb3cgTm9BY2Nlc3MgdG8gYmUgcHJvY2Vzc2VkLCBhbmQgdXNlIHNraXBpZjoKICAgICAgZGlyZWN0aXZlcyB3aGVyZSBuZWVkZWQgYmVjYXVzZSBvZiBpdC4KCmhhcmRha2VyIDIyIEFwciA5OSAxMDo1MTozMAogICAgLSAoc25tcF9jbGllbnQuYywgc25tcF9hcGkuYywgc25tcF9hcGkuaCwga2V5dG9vbHMuYyk6IEFub3RoZXIgdjMgYnJhbmNoIHVwZGF0ZS4KCm1zbGlmY2FrIDI2IEFwciA5OSAwOToyMTowNgogICAgLSAoc25tcGxpYi5jKSAtIHVzZSByZXF1ZXN0IGNhbGxiYWNrJ3MgZGF0YSBpZiByZXF1ZXN0IHNwZWNpZmllcyBhIGNhbGxiYWNrLgoKbmJhIDI2IEFwciA5OSAxMToyMToxMAogICAgCiAgICAocGFyc2UuaCkgU2lsbHkgc3BlbGluZyBtaXN0ZWFrIChBQ0NFU1NfQ1JBRVRFKQoKbmJhIDI2IEFwciA5OSAxMTo0ODo1NwogICAgCiAgICAKICAgIC0gc25tcGxpYi9wYXJzZS5oLCBzbm1wbGliL3BhcnNlLmM6IG5ldyBtaWIgcHJpbnRlcjogbWliX3ByaW50X3RyZWUKICAgICAgaW5zcGlyZWQgYnkgYSByZWZlcmVuY2UgdG8gc25teCBpbiBjb21wLnByb3RvY29scy5zbm1wCiAgICAtIGFwcHMvc25tcHRyYW5zbGF0ZTogbGV0IHRoZSAtcCBvcHRpb24gY2FsbCB0aGlzIG5ldyBwcmludGVyCiAgICAtIHNubXBsaWIvc25tcF9hcGkuYzogc29tZSBsZWZ0IG92ZXIgX19QIG1hY3JvcwoKbmJhIDI2IEFwciA5OSAxMjowMzo0NwogICAgCiAgICAoaWYuYykgbWFrZSB0aGUgd2lkdGggb2Ygc25tcG5ldCAtaSAoYW5kIC1vKSBhZGFwdCB0byB0aGUgbGVuZ3RoIG9mIHJldHVybmVkCiAgICAJc3RyaW5ncwoKbmJhIDI2IEFwciA5OSAxMjowOTozNQogICAgCiAgICAKICAgIGFwcHMvKi5jOiB1c2Ugc25tcF9wZXJyb3IgdG8gcmVwb3J0IGVycm9ycyBmcm9tIHJlYWRfb2JqaWQgYW5kIGZyaWVuZHMKICAgIGFwcHMvc25tcHRyYXBkLmM6IGZpeCBhIGJ1cyBlcnJvciB3aGVuIHVzaW5nIC1TIGFuZCByZWNlaXZpbmcgYW4KICAgIAllbnRlcnByaXNlIHNwZWNpZmljIHRyYXAuCgpuYmEgMjYgQXByIDk5IDEyOjEzOjUwCiAgICAKICAgICovKjogcmVwbGFjZSBob3JyaWJsZSAoY2hhciAqKSJzdHJpbmciIHdpdGggY29uc3Qgc3BlY2lmaWVycyBpbiByZWxldmFudAogICAgCWZ1bmN0aW9ucy4KCm1zbGlmY2FrIDI2IEFwciA5OSAxMjozNzowOQogICAgLSAoc25tcF9hcGkuYykgLSBmaXggb3RoZXIgdXNlIG9mIHJlcXVlc3QncyBjYWxsYmFjayBkYXRhCgptc2xpZmNhayAyNyBBcHIgOTkgMDk6NTE6MzUKICAgIC0gKGludGVyZmFjZXMuYykgYWRkIGlmX3R5cGVfZnJvbV9uYW1lIHRvIGNvbnZlcnQgaW50ZXJmYWNlIG5hbWUgdG8gdHlwZS4KCmhhcmRha2VyIDI5IEFwciA5OSAwNzozMjozOQogICAgLSAoTWFrZWZpbGUuaW4sIGNhbGxiYWNrLmMsIGNhbGxiYWNrLmgpOiBjYWxsYmFjayBBUEkuCgpoYXJkYWtlciAyOSBBcHIgOTkgMDc6Mzk6NDUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHNubXBkLmMsIHNubXB0cmFwZC5jLCBzbm1wX2FwaS5jLCBzbm1wdXNtLmMsCiAgICAgIHNubXB1c20uaCwgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSB1c2UgdGhlIGNhbGxiYWNrIG1lY2hhbmlzbSBmb3IgcG9zdC1jb25maWcgc3R1ZmYuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MDc6MTUKICAgIC0gKGFnZW50X3JlYWRfY29uZmlnLmMsIHVzbVVzZXIuYywgdXNtVXNlci5oLCBzbm1wVGFyZ2V0QWRkckVudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRBZGRyRW50cnkuaCwgc25tcFRhcmdldFBhcmFtc0VudHJ5LmMsCiAgICAgIHNubXBUYXJnZXRQYXJhbXNFbnRyeS5oLCBzbm1wdHJhcGQuYywgY2FsbGJhY2suYywgY2FsbGJhY2suaCwKICAgICAgc2NhcGkuYywgc2NhcGkuaCwgc25tcF9hcGkuYywgc25tcHYzLmMsIHNubXB2My5oKToKICAgICAgLSBzaHV0ZG93biBhbmQgc3RvcmUgY2FsbGJhY2sgdXNhZ2UuCgpoYXJkYWtlciAgMyBNYXkgOTkgMDc6MTM6MzEKICAgIC0gKHNubXBkLmMpOiBmaXggLUEgZmxhZywgd2hpY2ggZ290IGJyb2tlbiBkdXJpbmcgc29tZW9uZXMgY2hhbmdlcy4KCmhhcmRha2VyICAzIE1heSA5OSAxMjo1ODoxOQogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50X3JlYWRfY29uZmlnLmMsIE1ha2VmaWxlLmluLCBoZWFkZXJfY29tcGxleC5jLAogICAgICBNYWtlZmlsZS5pbiwgZW5jb2RlX2tleWNoYW5nZS5jLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4sCiAgICAgIGFsbF9nZW5lcmFsX2xvY2FsLmgsIGFsbF9zeXN0ZW0uaCwga2V5dG9vbHMuYywgbGNkX3RpbWUuYywgc2NhcGkuYywKICAgICAgc25tcF9hdXRoLmMsIHNubXB1c20uYywgdG9vbHMuYywgdG9vbHMuaCwgTWFrZWZpbGUuaW4sIFQuYywKICAgICAgZXRpbWV0ZXN0LmMsIGtleW1hbmFnZXRlc3QuYywgbWlzY3Rlc3QuYywgc2NhcGl0ZXN0LmMpOgogICAgICAtIG51a2VkIGFsbF9nZW5lcmFsX2xvY2FsLmggYW5kIGFsbF9zeXN0ZW0uaC4KICAgICAgLSBtYWtlZmlsZWluZGVwZW5kIGFzIHdlbGwuCgpuYmEgIDMgTWF5IDk5IDE1OjQwOjExCiAgICAoKi5bY2hdKToJcGF0Y2hlcyB0byB0eXBlcyB0byB3aXBlIHdhcm5pbmdzIGZyb20gY29tcGlsZXJzCiAgICAJd2l0aCBtb3JlIHN0cmljdCBub2lzZSBsZXZlbHMuIChhbHNvIGdvb2Qgd2hlbiBjb21waWxpbmcKICAgIAl3aXRoIGdjYyAtV2FsbCAtcGVkYW50aWMgLVd3cml0ZS1zdHJpbmdzIC1XY2FzdC1xdWFsKQoKbmJhICA0IE1heSA5OSAwMDo0Nzo0NAogICAgKG1pYi5jKToJRml4IHByb2JsZW0gKGNvcmUgZHVtcCkgd2l0aCBNSUJGSUxFUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KCm5iYSAgNCBNYXkgOTkgMDA6NTE6MTYKICAgIChtYW55KToJcmVtb3ZlIGNvbnN0IHNwZWMgZnJvbSBGaW5kVmFyTWV0aG9kLiBUaGF0IHdhcyB3cm9uZwoKaGFyZGFrZXIgIDQgTWF5IDk5IDExOjA4OjU1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IEFkZGVkIC0tZW5hYmxlLWRldmVsb3BlciBmbGFnLgoKbXNsaWZjYWsgIDYgTWF5IDk5IDA5OjIwOjMwCiAgICAtICh1Y2Qtc25tcC92bXN0YXQuYykgLSBjb25kaXRpb25hbGx5IGluY2x1ZGUgbGltaXRzLmggcGVyIEVkdWFyZCBLb3Vja3kuCgpuYmEgMTAgTWF5IDk5IDE0OjQ3OjIyCiAgICBGaXhpbmcgc29tZSBtb3JlIHByb3RvdHlwZXMuIFBvaW50ZWQgb3V0IGJ5IE1hcmtrdSBMYXVra2FuZW4uCgpuYmEgMTAgTWF5IDk5IDE0OjQ5OjQ5CiAgICBzbm1wbGliL3NubXBfYXBpLmM6IE1peC11cCBvZiBWMV9JTl9WMi9WMl9JTl9WMSBlcnJvciBjb2RlIHdoZW4gR0VUQlVMSwogICAgCWluc2lkZSBWMSBzZXNzaW9uLgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAyOjQ4CiAgICAtICh1dGlsX2Z1bmNzLmMpOiByZWFkIHJldHVybnMgc3NpemVfdCBub3Qgc2l6ZV90LgoKaGFyZGFrZXIgMTEgTWF5IDk5IDE0OjAzOjI1CiAgICAtIChtZW1vcnkuaCk6IHJlbW92ZSBleHRlcm4uCgpoYXJkYWtlciAxMSBNYXkgOTkgMTQ6MTE6NDAKICAgIC0gKGhwdXguYywgaHB1eC5oKTogaW50IC0+IHNpemVfdCBjb252ZXJzaW9ucy4KCm1zbGlmY2FrIDEyIE1heSA5OSAxMDo1MzoyMwogICAgLSAoc25tcF9hcGkuYyBzbm1wX2NsaWVudC5jKSBjYWxsIHNubXBfc3luY2hfcmVzZXQgZnJvbSBzbm1wX3Nlc3NfY2xvc2UKCm1zbGlmY2FrIDEyIE1heSA5OSAxMToyMjoxNgogICAgLShwYXJzZS5jIHBhcnR5X3BhcnNlLmMgcmVhZF9jb25maWcuYykgbm8gZXhpdCgpIGZyb20gbGlicmFyeTsgcmV0dXJuIGVycm9yCgpkYXZlcyAxMyBNYXkgOTkgMDM6NTI6MTkKICAgIC0gKGlwLmMpOiBQcm9wZXJseSByZWdpc3RlciBJUCBtb2R1bGUgZ3JvdXAgb24gRnJlZS1CU0Qgc3lzdGVtcwogICAgICAgICAgICAgICh0aGFua3MgdG8gTWl0Y2hlbGwgVGFzbWFuKQoKaGFyZGFrZXIgMTMgTWF5IDk5IDA5OjA5OjE4CiAgICAtICh2YWNtX3ZhcnMuYyk6IFNldCBwb2ludGVycyB0byBOVUxMIGFmdGVyIGZyZWVpbmcgdGhlbS4KCm1zbGlmY2FrIDE0IE1heSA5OSAwNjo1NDo1MQogICAgLSAoYWdlbnQvbWliZ3JvdXAvZHVtbXkvZHVtbXkuYyBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmMKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy9leGFtcGxlLmgKICAgICBhZ2VudC9taWJncm91cC9leGFtcGxlcy93b21iYXQuYyBhZ2VudC9taWJncm91cC9taXNjL2lwZndhY2MuYwogICAgIGFnZW50L21pYmdyb3VwL3NtdXgvc211eC5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3NubXBNUERTdGF0cy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvc25tcHYzL3VzbVN0YXRzLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIHNubXBsaWIvc25tcF9hdXRoLmMpIG1vcmUgc2l6ZV90IGZpeGVzCgptc2xpZmNhayAxNCBNYXkgOTkgMDk6NDc6MTAKICAgIC0gKGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfZGlzay5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvaW50ZXJmYWNlcy5jCiAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMKICAgICBhZ2VudC9taWJncm91cC9zbm1wdjMvdXNtVXNlci5jIGFwcHMvZW5jb2RlX2tleWNoYW5nZS5jCiAgICAgc25tcGxpYi9wYXJzZS5jKSBtb3JlIEFOU0ktQyB0b3VjaHVwcwoKbXNsaWZjYWsgMTQgTWF5IDk5IDEzOjU5OjM3CiAgICAtKGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBzbm1wbGliL3NubXB1c20uYykgZml4ZXMgdG8gYnVpbGQgSFAgJiBBSVgKCmRhdmVzIDE3IE1heSA5OSAwMzoyMDo1MwogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBJbml0aWFsaXNlIHNlc3Npb24gdXNpbmcgbGlicmFyeSByb3V0aW5lCgpkYXZlcyAxNyBNYXkgOTkgMDQ6MzQ6NTUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzZXMgJ3N0cnVjdCBzb2NrYWRkcicsCiAgICAgICAgcmF0aGVyIHRoYW4gdGhlIElQLXNwZWNpZmljICdzdHJ1Y3Qgc29ja2FkZHJfaW4nCgpkYXZlcyAxNyBNYXkgOTkgMDQ6Mzg6MDAKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuaCBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2NsaWVudC5jCiAgICAgICBhZ2VudC9zbm1wZC5jIGFnZW50L21pYmdyb3VwL21pYklJL3ZhY21fdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L2FsYXJtLmMgYWdlbnQvbWliZ3JvdXAvdjJwYXJ0eS9ldmVudC5jCiAgICAgICBhcHBzL3NubXBzdGF0dXMuYyBhcHBzL3NubXB0ZXN0LmMgYXBwcy9zbm1wdHJhcC5jIGFwcHMvc25tcHRyYXBkLmMpOgogICAgCiAgICAgIC0gVXNlIHRoZSBnZW5lcmljIHNvY2tldCBhZGRyZXNzICdzdHJ1Y3Qgc29ja2FkZHInLAogICAgICAgIHJhdGhlciB0aGFuIHRoZSBJUC1zcGVjaWZpYyAnc3RydWN0IHNvY2thZGRyX2luJwoKZGF2ZXMgMTcgTWF5IDk5IDA3OjE4OjAyCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi9zbm1wX2FwaS5oIGFnZW50L3NubXBkLmMKICAgICAgIGFwcHMvc25tcHRyYXAuYyBhcHBzL3NubXB0cmFwZC5jKToKICAgIAogICAgICAtIFVzZSBhIHNpbmdsZSBhZGRyZXNzIGZpZWxkIHdpdGhpbiB0aGUgUERVIHN0cnVjdHVyZQogICAgICAgICAgICAgICAgICAgKG9ic29sZXRpbmcgJ2FnZW50X2FkZHInKQoKZGF2ZXMgMTggTWF5IDk5IDA2OjI2OjE2CiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOiBNb3JlIGdlbmVyYWwgaGFuZGxpbmcgb2YgUERVIGZsYWdzCgptc2xpZmNhayAxOCBNYXkgOTkgMDk6MDE6NDYKICAgIC0gKHh4L01ha2VmaWxlLmluKSByZW1vdmUgcmVmZXJlbmNlcyB0byBhcyB5ZXQgbWlzc2luZyBkaXNtYW4gZmlsZXMuCgpkYXZlcyAxOCBNYXkgOTkgMDk6MjM6NTAKICAgIC0gKGNvbmZpZ3VyZS5pbiBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMKICAgICAgIHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXB2My5jIHNubXBsaWIvc3lzdGVtLmMKICAgICAgIGFwcHMvc25tcF9wYXJzZV9hcmdzLmMgYXBwcy9zbm1wYnVsa3dhbGsuYyBhcHBzL3NubXBkZWx0YS5jCiAgICAgICBhcHBzL3NubXBnZXQuYyBhcHBzL3NubXBnZXRuZXh0LmMgYXBwcy9zbm1wc2V0LmMKICAgICAgIGFwcHMvc25tcHN0YXR1cy5jIGFwcHMvc25tcHRhYmxlLmMgYXBwcy9zbm1wdGVzdC5jCiAgICAgICBhcHBzL3NubXB0cmFwLmMgYXBwcy9zbm1wdXNtLmMgYXBwcy9zbm1wd2Fsay5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L2lmLmMgYXBwcy9zbm1wbmV0c3RhdC9pbmV0LmMKICAgICAgIGFwcHMvc25tcG5ldHN0YXQvbWFpbi5jIGFwcHMvc25tcG5ldHN0YXQvcm91dGUuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC93aW5zdHViLmMpOgogICAgICAgLSAgQ2xlYW4gdXAgY29uZGl0aW9uYWxzIHByb3RlY3RpbmcgaW5jbHVkZSBmaWxlcwogICAgICAgICAgICAoICNpZiBIQVZFX1dJTlNPQ0tfSCAvICNlbHNlIC8gI2VuZGlmICkKCmRhdmVzIDE5IE1heSA5OSAwMjozMzowNwogICAgLSAoY29uZmlnLmguaW4pOiBBZGRpdGlvbmFsIGluY2x1ZGUgcHJvdGVjdGlvbiBlbnRyaWVzCgpkYXZlcyAxOSBNYXkgOTkgMDU6MTE6MzcKICAgIC0gKHNubXBfYXBpLmMpOiBNb3JlIGdlbmVyYWxpc2VkIGhhbmRsaW5nIG9mIHNvY2tldCBhZGRyZXNzZXMKCm1zbGlmY2FrIDE5IE1heSA5OSAxODowMjo1NQogICAgLShtaWJJSS92YXJfcm91dGUuYykgLSBmaXggTGludXggUm91dGVNYXNrIGMvbyAiTmFuY3kiIG5hbUBjcy5jbXUuZWR1Cgptc2xpZmNhayAxOSBNYXkgOTkgMTg6NTA6MTIKICAgIC0gKGhvc3RfcmVzLmgpIGZpeCBIQVZFX05FVF9JRl9WQVJfSCBkZWZpbmUgKHdhcyBIQVZFX05FVF9JTl9WQVJfSCkKCmRhdmVzIDIwIE1heSA5OSAwMzo0NjoyNAogICAgLSAoc25tcF9hcGkuaCk6IFRlbXBvcmFyeSBmaXggdG8gc29ja2V0IGFkZHJlc3MgcHJvYmxlbXMKCm1zbGlmY2FrIDIxIE1heSA5OSAwNToyNDoyMwogICAgLShyZWFkX2NvbmZpZy5jKSBjYXN0IGZpeCBwZXIgTWFya2t1IExhdWtrYW5lbgoKZGF2ZXMgMjEgTWF5IDk5IDA1OjU0OjIyCiAgICAtIChzbm1wX2FwaS5jIHNubXBfYXBpLmgpOgogICAgICAtICBOZXcgQVBJIGNhbGwgdG8gY2xvc2UgZG93biBhbGwgb3BlbiBzZXNzaW9ucwogICAgICAgICAoYWxzbyBjYWxsZWQgb24gYXBwbGljYXRpb24gc2h1dGRvd24pCgpoYXJkYWtlciAyMSBNYXkgOTkgMTE6MTA6NDQKICAgIC0gKG1pYjJjLmNvbmYsIG1pYjJjLnN0b3JhZ2UuY29uZik6CiAgICAgIC0gY29udmVydCB0byBzaXplX3Qgc3RvcmFnZXMuCiAgICAgIC0gbWlzYyBldmFsIGZpeGVzLgogICAgICAtIG1vcmUgY2xlYW51cCBvZiB0aGUgc3RvcmFnZSBkZWYuCgptc2xpZmNhayAyMSBNYXkgOTkgMTU6Mjk6NDYKICAgIC0gbGlicmFyeSBjaGFuZ2VzIHRvIGJ1aWxkIG9uIFdpbjMyLgoKbXNsaWZjYWsgMjQgTWF5IDk5IDA1OjM2OjEzCiAgICAtY29uZmlndXJlIC0gc2F2ZSBvbmUgd2hpY2ggbG9va3MgZm9yIG5ldGRiL3NvY2tldCBoZWFkZXJzCgpoYXJkYWtlciAyNiBNYXkgOTkgMTE6MTk6MDMKICAgIC0gKGlwZndhY2MuaCk6IHByb3Blcmx5IGxvY2F0ZSB0aGUgbWliLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE0OjU1CiAgICAtIChocl9zd2luc3QuYyk6IG1ha2Ugc29mdHdhcmUgYXBwbGljYXRpb24gdHlwZSB1bmtub3duIGluc3RlYWQgb2YgYXBwLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE1OjE4OjA0CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBjaGFuZ2UgdG8gY291bnRlcnMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTU6MjA6MzIKICAgIC0gKGlwZndhY2MuaCk6IG1ha2UgaW50byBjb3VudGVycy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNTo1NjowMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBpbmNyZWFzZSBNQVhSRUFEQ09VTlQuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTc6NDA6MjgKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGFkZGVkIFNFUVVFTkNFIE9GLgoKbXNsaWZjYWsgMjcgTWF5IDk5IDA1OjE2OjI1CiAgICAtKGVuY29kZV9rZXljaGFuZ2UsIHJlYWRfY29uZmlnLCBzbm1wdXNtKSBhQ0MgZml4ZXMgYnkgUEtZIChNYXJra3UgTGF1a2thbmVuKQoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjMwOjAzCiAgICAtIChzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IGltcGxlbWVudCB0aGUgZGVmYXVsdCB0cmFwIGhhbmRsZXIuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6MzA6MTUKICAgIC0gKHNubXB0cmFwZC5jKTogbmVlZCBhbiBpbml0X21pYigpLgoKaGFyZGFrZXIgMjcgTWF5IDk5IDE0OjM3OjA2CiAgICAtIChzbm1wdHJhcGQuY29uZi41LmRlZik6IGRvY3VtZW50IGRlZmF1bHQgb2lkIGtleXdvcmQuCgpoYXJkYWtlciAyNyBNYXkgOTkgMTQ6Mzc6MzIKICAgIC0gKHNubXB0cmFwZC5jKTogZG9jdW1lbnQgZGVmYXVsdCBvaWQga2V5d29yZCBpbiBoZWxwIGxpbmUuCgpkYXZlcyAyOCBNYXkgOTkgMDc6MDI6MDEKICAgIC0gKGFnZW50L01ha2VmaWxlLmluIGFnZW50L21pYmdyb3VwL01ha2VmaWxlLmluKTogZml4IHByb2JsZW0gd2l0aCBudWxsIG1hY3JvCgpkYXZlcyAyOCBNYXkgOTkgMDg6MTQ6MDUKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IHNhdmUgbG9jYWwgc29ja2V0IGFkZHJlc3MgaW4gaW50ZXJuYWwgc2Vzc2lvbiBzdHJ1Y3R1cmUKCmRhdmVzIDI4IE1heSA5OSAwODo1NzoxOQogICAgLSAoc25tcGxpYi9zbm1wX2FwaS5jKTogVW5peCBkb21haW4gKGRhdGFncmFtKSBzb2NrZXQgc3VwcG9ydAoKZGF2ZXMgMjggTWF5IDk5IDA5OjEyOjIwCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBTZXBhcmF0ZSBvdXQgY29weWluZyBhIHNlc3Npb24gYW5kIG9wZW5pbmcgYSBuZXcgb25lCgptc2xpZmNhayAyOCBNYXkgOTkgMDk6MjQ6NTYKICAgIC0oc25tcF9hcGkuYykgLWNhdGNoIG9uZSBtb3JlIGVycm9yIGNsb3NlIGZyb20gc25tcF9zZXNzX2NvcHkKCmhhcmRha2VyIDI4IE1heSA5OSAxNjoxNzoxMwogICAgLSAobWliLmMsIHBhcnNlLmMsIHBhcnNlLmgpOiBzYXZlIGFuZCB1c2UgaW5kZXggY2xhdXNlcy4KCmhhcmRha2VyIDI4IE1heSA5OSAxNjo0NDo0MgogICAgLSAoTWFrZWZpbGUuaW4sIGRlZmF1bHRfc3RvcmUuYywgZGVmYXVsdF9zdG9yZS5oKToKICAgICAgLSBjcmVhdGVkIGdlbmVyaWMgZGVmYXVsdCB2YWx1ZSBzdG9yYWdlIHNwYWNlIGFuZCBwYXJzZXJzIHRvIHJlZHVjZQogICAgICAgIHRoZSBudW1iZXIgb2YgZnVuY3Rpb25zL2V0YyBjcmVhdGVkIGZvciB2YWx1ZXMgd2hpY2ggY29uZmlndXJlIHRoZQogICAgICAgIGxpYnJhcnkuCgpkYXZlcyAgMSBKdW4gOTkgMDI6MTc6MjcKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyk6IEdhcmJhZ2UgY29sbGVjdGlvbiBmb3IgVHJhZGl0aW9uYWwgU0FQSSBzZXNzaW9ucwoKZGF2ZXMgIDEgSnVuIDk5IDAyOjMyOjEzCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBHZW5lcmFsaXNlIGhhbmRsaW5nIG9mIGFkZHJlc3NlcyAody5yLnQgc2VudG8vcmVjdmZyb20pCgpkYXZlcyAgMSBKdW4gOTkgMDc6MzA6NDIKICAgIC0gKHNubXBsaWIvc25tcF9hcGkuYyBzbm1wbGliL3NubXBfYXBpLmgpOiBTdXBwb3J0IGZvciBzdHJlYW0tYmFzZWQgc29ja2V0cwoKaGFyZGFrZXIgIDEgSnVuIDk5IDE3OjIxOjUzCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcF9hbGFybS5jLCBzbm1wX2FsYXJtLmgsIHNubXBfYXBpLmMpOgogICAgICAtIGltcGxlbWVudGVkIGEgZ2VuZXJpYyBhbGFybSBoYW5kbGVyIHRvIHJlZ2lzdGVyIGFsYXJtIGZ1bmN0aW9ucyB0bwogICAgICAgIGJlIGNhbGxlZCBiYWNrIGFmdGVyIFggcGVyaW9kIG9mIHRpbWUgYW5kIGl0IGhhbmRsZXMgZmlndXJpbmcgb3V0CiAgICAgICAgd2hpY2ggaXMgbmV4dCBhbmQgY2FsbGluZyBhbGFybSgpIGFuZCBzaWduYWwoKSBhcHByb3ByaWF0ZWx5LgoKbXNsaWZjYWsgIDQgSnVuIDk5IDA5OjUxOjEzCiAgICAtKGhyX2ZpbGVzeXMuYyxpbnRlcmZhY2VzLmMsdGNwLmMsdWRwLmMsZnJlZWJzZDMuaCkgZml4IEZyZWVCU0QzLjEgaW5jbCBLZW4gS2V5J3MgdGNwL3VkcCBwYXRjaGVzCgptc2xpZmNhayAgNyBKdW4gOTkgMDc6NDQ6MDYKICAgIC0oaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIGlwLmMpIGNsb25lIGZpeGVzIGZyb20gMy42IGxpbmUgKEZyZWVCU0QzLjEpCgptc2xpZmNhayAgNyBKdW4gOTkgMTM6MDQ6MjEKICAgIC0oaWYuYykgY2hlY2sgZm9yIHZhbGlkIHBvaW50ZXIgYmVmb3JlIGRlLXJlZmVyZW5jaW5nLgoKbXNsaWZjYWsgMTEgTWF5IDk5IDE0OjM5OjU4CiAgICAtIChhZ2VudC9hZ2VudF9yZWFkX2NvbmZpZy5jIGFnZW50L3NubXBfdmFycy5jIGFnZW50L3NubXBkLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYyBhZ2VudC9taWJncm91cC9taWJJSS9pcC5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFjbV92YXJzLmggYXBwcy9zbm1wdHJhbnNsYXRlLmMKICAgICAgIGFwcHMvc25tcHRyYXBkLmMgbG9jYWwvbWliMmMgbG9jYWwvdGttaWIgbWFuL3NubXBfY29uZmlnLjUuZGVmCiAgICAgICBtYW4vc25tcGQuMS5kZWYgbWFuL3NubXB0cmFwLjEgbWFuL3NubXB0cmFwZC44CiAgICAgICBtYW4vc25tcHRyYXBkLmNvbmYuNS5kZWYgbWlicy9TTk1QLU5PVElGSUNBVElPTi1NSUIudHh0CiAgICAgICBtaWJzL1NOTVAtUFJPWFktTUlCLnR4dCBtaWJzL1NOTVAtVEFSR0VULU1JQi50eHQKICAgICAgIG1pYnMvU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQKICAgICAgIG1pYnMvU05NUC1WSUVXLUJBU0VELUFDTS1NSUIudHh0IHMvZnJlZWJzZC5oIHMvZnJlZWJzZDIuaAogICAgICAgc25tcGxpYi9taWIuYyBzbm1wbGliL3BhcnNlLmMgc25tcGxpYi9wYXJzZS5oCiAgICAgICBzbm1wbGliL3NubXBfYXBpLmMgc25tcGxpYi92YWNtLmMpIC0gY2hhbmdlcyBjL28gTmllbHMgQmFnZ2VzZW4KCm1zbGlmY2FrIDExIE1heSA5OSAxODo1ODozNwogICAgLShjeWd3aW4uaCkgLSB1c2UgdG8gYnVpbGQgb24gQ3lnV2luIHBsYXRmb3JtLgoKbXNsaWZjYWsgMTEgTWF5IDk5IDE5OjU0OjA0CiAgICAtKGFnZW50L3NubXAycC5jIGFnZW50L3NubXBfdmFycy5oIGFnZW50L3ZpZXdfcGFyc2UuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdXRpbF9mdW5jcy5jIGFnZW50L21pYmdyb3VwL2R1bW15L2R1bW15LmgKICAgICAgIGFnZW50L21pYmdyb3VwL2V4YW1wbGVzL3dvbWJhdC5oCiAgICAgICBhZ2VudC9taWJncm91cC9ob3N0L2hyX2ZpbGVzeXMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvaG9zdC9ocl9zdG9yYWdlLmMKICAgICAgIGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dydW4uYyBhZ2VudC9taWJncm91cC9ob3N0L2hyX3N5c3RlbS5jCiAgICAgICBhZ2VudC9taWJncm91cC9pcGZ3Y2hhaW5zL2lwZndjaGFpbnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvYXQuYyBhZ2VudC9taWJncm91cC9taWJJSS9pY21wLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pYklJL2ludGVyZmFjZXMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvc3lzdGVtX21pYi5jIGFnZW50L21pYmdyb3VwL21pYklJL3RjcC5jCiAgICAgICBhZ2VudC9taWJncm91cC9taWJJSS91ZHAuYyBhZ2VudC9taWJncm91cC9taWJJSS92YWNtX3ZhcnMuYwogICAgICAgYWdlbnQvbWliZ3JvdXAvbWliSUkvdmFyX3JvdXRlLmMgYWdlbnQvbWliZ3JvdXAvbWlzYy9pcGZ3YWNjLmMKICAgICAgIGFnZW50L21pYmdyb3VwL21pc2MvaXBmd2FjYy5oCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9leHRlbnNpYmxlLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL2hwdXguYwogICAgICAgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbG9hZGF2ZS5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wYXNzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3VjZC1zbm1wL3Bhc3NfcGVyc2lzdC5jCiAgICAgICBhZ2VudC9taWJncm91cC91Y2Qtc25tcC9wcm9jLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvY29udGV4dF92YXJzLmMKICAgICAgIGFnZW50L21pYmdyb3VwL3YycGFydHkvcGFydHlfdmFycy5jCiAgICAgICBhZ2VudC9taWJncm91cC92MnBhcnR5L3ZpZXdfdmFycy5jIGFwcHMvc25tcGRlbHRhLmMKICAgICAgIGFwcHMvc25tcHRlc3QuYyBhcHBzL3NubXB0cmFwZC5jIGFwcHMvc25tcG5ldHN0YXQvaWYuYwogICAgICAgYXBwcy9zbm1wbmV0c3RhdC9yb3V0ZS5jIGFwcHMvc25tcG5ldHN0YXQvd2luc3R1Yi5jCiAgICAgICBhcHBzL3NubXBuZXRzdGF0L3dpbnN0dWIuaCBzbm1wbGliL2FjbF9wYXJzZS5jCiAgICAgICBzbm1wbGliL2NvbnRleHQuaCBzbm1wbGliL2NvbnRleHRfcGFyc2UuYyBzbm1wbGliL3BhcnR5LmgKICAgICAgIHNubXBsaWIvcGFydHlfcGFyc2UuYyBzbm1wbGliL3JlYWRfY29uZmlnLmMgc25tcGxpYi9zbm1wX2FwaS5jKQogICAgICBQb3J0IHNvbWUgb2YgdGhlIGZpeGVzIGZyb20gdGhlIGN1cnJlbnQgZGV2ZWxvcG1lbnQgYnJhbmNoCgptc2xpZmNhayAxMiBNYXkgOTkgMTA6NDU6MDUKICAgIC0gKHNubXBfYXBpLmMgc25tcF9jbGllbnQuYykgY2FsbCBzbm1wX3N5bmNoX3Jlc2V0IGZyb20gc25tcF9zZXNzX2Nsb3NlCgptc2xpZmNhayAxMiBNYXkgOTkgMTE6Mjg6MDcKICAgIC0obWliLmMgcGFyc2UuYyBwYXJ0eV9wYXJzZS5jIHJlYWRfY29uZmlnLmMpIG5vIGV4aXQoKSBmcm9tIGxpYnJhcnk7IHJldHVybiBlcnJvcgoKZGF2ZXMgMTMgTWF5IDk5IDAzOjM4OjAzCiAgICAKICAgIChtaWIuYyk6IEZpeGVkIG1pbm9yIHR5cG8KCmRhdmVzIDEzIE1heSA5OSAwMzo1NTowNgogICAgLSAoaXAuYyk6IFByb3Blcmx5IHJlZ2lzdGVyIElQIG1vZHVsZSBncm91cCBvbiBGcmVlLUJTRCBzeXN0ZW1zCiAgICAgICAgICAgICAgKHRoYW5rcyB0byBNaXRjaGVsbCBUYXNtYW4pCgpoYXJkYWtlciAxMyBNYXkgOTkgMDk6MDc6MTMKICAgIC0gKHZtc3RhdC5jKTogaW5jbHVkZSBsaW1pdHMuaC4KCmhhcmRha2VyIDEzIE1heSA5OSAwOTowNzozOQogICAgLSAodmFjbV92YXJzLmMpOiBTZXQgcG9pbnRlcnMgdG8gTlVMTCBhZnRlciBmcmVlaW5nIHRoZW0uCgpoYXJkYWtlciAxMyBNYXkgOTkgMTU6NDI6NDgKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LjIgKQoKZGF2ZXMgMTcgTWF5IDk5IDAzOjIwOjEwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IEluaXRpYWxpc2Ugc2Vzc2lvbiB1c2luZyBsaWJyYXJ5IHJvdXRpbmUKCm1zbGlmY2FrIDE5IE1heSA5OSAxODowMTo0OAogICAgLShtaWJJSS92YXJfcm91dGUuYykgLSBmaXggTGludXggUm91dGVNYXNrIGMvbyAiTmFuY3kiIG5hbUBjcy5jbXUuZWR1Cgptc2xpZmNhayAxOSBNYXkgOTkgMTg6NDk6MjUKICAgIC0gKGhvc3RfcmVzLmgpIGZpeCBIQVZFX05FVF9JRl9WQVJfSCBkZWZpbmUgKHdhcyBIQVZFX05FVF9JTl9WQVJfSCkKCmhhcmRha2VyIDI1IE1heSA5OSAyMDoyMDozMQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYuMi5wcmUxICkKCm5iYSAyNiBNYXkgOTkgMDc6NTc6NDIKICAgIAogICAgICBUYWc6IFYzLWxpbmUKICAgIAogICAgaWYuYzogZHluYW1pYyB3aWR0aCBmb3IgLWkgYW5kIC1vIG9wdGlvbgoKbXNsaWZjYWsgMjYgTWF5IDk5IDA4OjAwOjA3CiAgICAtIGZpeC11cHMgdG8gYnVpbGQgV2luMzIgTVNWaXN1YWxDKysKCm5iYSAyNiBNYXkgOTkgMDg6MjQ6MzUKICAgIAogICAgCiAgICBTb21lIGZpeGVzIGZvciBTb2xhcmlzIDIuNyAocHJvYyBhY2Nlc3Mgc3RpbGwgZG9lcyBub3Qgd29yayB3aGVuIGNvbXBpbGVkCiAgICB3aXRoIGdjYyAoMzItYml0IGNvbXBpbGVyKQoKbmJhIDI2IE1heSA5OSAwODoyOToyNgogICAgCiAgICBGaXhlcyBmb3IgRnJlZUJTRCAyLjEgZnJvbSBEZXJlayBKLiBCYWxsaW5nIDxkYmFsbGluZ0B5YWhvby1pbmMuY29tPgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE2OjA3OjE2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IGluY3JlYXNlIE1BWFJFQURDT1VOVC4KCmhhcmRha2VyIDI2IE1heSA5OSAxNjowNzo0MgogICAgLSAoaHJfc3dpbnN0LmMpOiBtYWtlIHN3aW5zdGFsbCBiZSAidW5rbm93biIgc2luY2Ugd2UgY2FuJ3QgdHJ1bHkga25vdy4KCmhhcmRha2VyIDI2IE1heSA5OSAxNjowODowOQogICAgLSAoaXBmd2FjYy5oKTogbW92ZSB0byBjb3JyZWN0IGxvY2F0aW9uLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE2OjA4OjI4CiAgICAtIChJUEZXQUNDLU1JQi50eHQpOiBtYWtlIGNvdW50ZXJzLgoKaGFyZGFrZXIgMjYgTWF5IDk5IDE3OjMxOjI1CiAgICAtIChwcm9jLmMpOiB1bHRyaXggZml4ZXMuCgpoYXJkYWtlciAyNiBNYXkgOTkgMTc6Mzg6NTYKICAgIC0gKElQRldBQ0MtTUlCLnR4dCk6IGFkZGVkIFNFUVVFTkNFIE9GLgoKbmJhIDI3IE1heSA5OSAwMjo1NjoyNQogICAgCiAgICAKICAgIGhvc3QvaHJfc3dydW4uYywgdWNkLXNubXAvcHJvYy5jOiBGaXhlcyBmb3IgU29sYXJpcyAyLjcKCm5iYSAyNyBNYXkgOTkgMDI6NTk6MTYKICAgIAogICAgc25tcGQuYzoJUHJvcGVybHkgaGFuZGxlIHRoZSBjYXNlIG9mIG5vIGNvbW11bml0eSBzcGVjaWZpZWQKICAgIAlmb3IgYWdlbnQgdHJhcHMuCgpuYmEgMjcgTWF5IDk5IDIzOjU1OjA5CiAgICAKICAgIHNvbGFyaXMyLj8uaDoJZGVmaW5lIF9TTEFTSF9QUk9DX01FVEhPRF8gYXMgMQoKbmJhIDI3IE1heSA5OSAyMzo1NTo0OQogICAgCiAgICByZWFkX2NvbmZpZy5jOgljb21wbGFpbiBhYm91dCBleGlzdGluZyBidXQgdW5yZWFkYWJsZSBjb25maWcgZmlsZXMuCgpuYmEgMjcgTWF5IDk5IDIzOjU5OjM3CiAgICAKICAgIGluZXQuYzoJMCBJUyBhIHZhbGlkIHNob3J0IChhbmQgcG9ydCBhZGRyZXNzIGZvciByZW1vdGUgZW5kcyBvZiBwb3J0cwogICAgCWluIExJU1RFTiBzdGF0ZSkKCm5iYSAyOCBNYXkgOTkgMDM6MjU6MjkKICAgIAogICAgY2hhbmdlIHRoZSB0cmFwc2luay90cmFwMnNpbmsgZGlyZWN0aXZlcyB0byBzdXBwb3J0IGEgY29tbXVuaXR5IHBhcmFtZXRlci4KCm5iYSAyOSBNYXkgOTkgMDI6NDk6NDcKICAgIAogICAgLSBzbXV4LmM6IGZpeCBhIG1pc3NpbmcgbnRvaHMgaW4gYSBkZWJ1ZyBtZXNzYWdlCgpuYmEgIDEgSnVuIDk5IDAwOjI3OjM2CiAgICAKICAgIC0gcHJvYy5jOiBZQVBCTyAoWWV0IGFub3RoZXIgcG9zc2libGUgYnVmZmVyIG92ZXJmbG93KQoKbmJhICAxIEp1biA5OSAwMDoyOTozNQogICAgCiAgICAtIHNubXBfYWdlbnQuYzogY2hhbmdlIG5vQ3JlYXRpb24gcmV0dXJuIHRvIG5vQWNjZXNzLiBUaGVyZSBhcmUgcHJvYmFibHkKICAgIAlzaXR1YXRpb25zIHdoZXJlIHRoZSBmb3JtZXIgaXMgY29ycmVjdCwgYnV0IHRoaXMgaXMgbGVzcyBjb25mdXNpbmcKCm5iYSAgMSBKdW4gOTkgMDA6MzM6NTIKICAgIAogICAgLSBrZXJuZWxfc3Vub3M1Lj8sIGhyX3N3cnVuLmMsIGF0LmMsIGludGVyZmFjZXMuYzogZml4IGF0LmF0VGFibGUgYW5kCiAgICAJaXAuaXBOZXRUb01lZGlhVGFibGUgZm9yIFNvbGFyaXMuIEFsc28gYSB0d2VhayBmb3IgZ2V0S3N0YXRJbnQuCgpoYXJkYWtlciAgMiBKdW4gOTkgMDc6Mjc6NDYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LjIucHJlMiApCgptc2xpZmNhayAgMiBKdW4gOTkgMTM6NDY6MzQKICAgIC0oaHJfZmlsZXN5cy5jLGludGVyZmFjZXMuYyxmcmVlYnNkMy5oKSBmaXggYnVpbGQgb24gRnJlZUJTRCAzLjEKCm5iYSAgMyBKdW4gOTkgMTQ6MzE6MTgKICAgIAogICAgLSBrZXJuZWwuYzoJYWRkIHNvbWUgc2FuaXR5IGNoZWNrcyB3aGVuIHJ1bm5pbmcgd2l0aG91dCByb290IGFjY2Vzcy4KCm5iYSAgMyBKdW4gOTkgMTQ6MzQ6NTAKICAgIAogICAgLSBocl9zd3J1bi5jOglhZGQgYSBibGFuayBiZXR3ZWVuIHByb2Nlc3MgcGFyYW1ldGVycwoKbmJhICAzIEp1biA5OSAxNDozODoxOAogICAgCiAgICAtIG5ldGJzZC5oLCB0Y3AuYywgdWRwLmM6CWZpeCBzb2NrZXQgdGFibGVzIGZvciBOZXRCU0QgMS4zLzEuNAoKbmJhICAzIEp1biA5OSAxNToxMjowMQogICAgCiAgICAtIHNubXB0cmFwLmM6IGZpeCBhIGJhZCBmcmVlIHdoZW4gY2FsbGluZyBzbm1waW5mb3JtLgoKbmJhICAzIEp1biA5OSAxNToyMTowOQogICAgLSB0Y3AuYzogbG9zdCBhICc7JyBmb3IgdGhlIEZyZWVCU0QgY2FzZSAuLi4uCgpkYXZlcyAgNCBKdW4gOTkgMDQ6NTE6MDQKICAgIC0gKGFnZW50L21pYmdyb3VwL2hvc3QvaHJfc3dpbnN0LmMpOiBGaXggUlBNIGhhbmRsaW5nCgpkYXZlcyAgNCBKdW4gOTkgMDU6MDY6NDQKICAgIC0gKGNvbmZpZ3VyZS5pbiBjb25maWd1cmUpOiBBZGRpdGlvbmFsIGxpYnJhcnkgZm9yIFJQTSBoYW5kbGluZwoKbXNsaWZjYWsgIDQgSnVuIDk5IDA5OjMwOjEyCiAgICAtKHRjcC5jLCB1ZHAuYykgYXBwbHkgS2VuIEtleSdzIGZpeCBmb3IgRnJlZUJTRDMuMQoKbmJhICA0IEp1biA5OSAxMTo1MjozOAogICAgLSBpcC5jOiBGaXggZm9yIEZyZWVCU0QgMyBmcm9tIEtlbiBLZXkKCm5iYSAgNCBKdW4gOTkgMTE6NTM6MzIKICAgIC0ga2VybmVsX3N1bm9zNS5jLCBhc24xLmM6IEZpeGVzIGZvciA2NC1iaXQgU29sYXJpcyA3CgpuYmEgIDUgSnVuIDk5IDA1OjQ3OjIwCiAgICAtIGludGVyZmFjZXMuYyx0Y3AuYyx1ZHAuYzogY2xlYW51cCBvZiBjb25kaXRpb25hbHMgZm9yIEZyZWVCU0QKCm5iYSAgNSBKdW4gOTkgMDY6MDI6NTIKICAgIC0gY29uZmlndXJlLmluOiBwcm9wZXIgY29uZmlndXJlIGNoZWNrIGZvciBzeXMvc29ja2V0dmFyLmgKCm1zbGlmY2FrICA3IEp1biA5OSAwNzo0NToxMAogICAgLShpcC5jLCB2YXJfcm91dGUuYykgZml4IHNpemVvZiwgQ1BQICNlbmRpZgoKaGFyZGFrZXIgIDcgSnVuIDk5IDEwOjUyOjMyCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQ2hyaXMgU21pdGg6CiAgICAgIC0gZG9uJ3QgcHV0IENGTEFHUyBpbiB0aGUgbGluayBsaW5lLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDEwOjU0OjIxCiAgICAtIChSRUFETUUud2luMzIpOiBhZGRlZCB0byB0aGUgMy42LjIgbGluZS4KCmhhcmRha2VyICA3IEp1biA5OSAxMToyNToyNwogICAgLSAoRkFRLCBSRUFETUUpOiB1cGRhdGUgZm9yIDMuNi4yLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDExOjI3OjE1CiAgICAtIChORVdTKTogMy42LjIgdXBkYXRlLgoKaGFyZGFrZXIgIDcgSnVuIDk5IDExOjMwOjQwCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogdXBkYXRlIGZvciAzLjYuMi4KCmhhcmRha2VyICA3IEp1biA5OSAxMTozMjo1NAogICAgLSAoSU5TVEFMTCk6IHVwZGF0ZSBmb3IgMy42LjIuCgptc2xpZmNhayAgNyBKdW4gOTkgMTM6MDI6MTAKICAgIC0oaWYuYykgLSBjaGVjayBmb3IgdmFsaWQgcG9pbnRlciBiZWZvcmUgZGUtcmVmZXJlbmNpbmcuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTU6NDY6MjYKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGxpYmRiMSBiZWZvcmUgbGliZGIgZm9yIHJwbSB1c2FnZS4KCmhhcmRha2VyICA3IEp1biA5OSAxNTo1MDowMQogICAgLSAoRkFRKTogbWVyZ2UKCmhhcmRha2VyICA3IEp1biA5OSAxNjowMzoyNQogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBjaGVjayBmb3IgLWxkYjEgdGhlbiAtbGRiIGZvciBycG0gdXNhZ2UuCgpoYXJkYWtlciAgNyBKdW4gOTkgMTY6NDM6NTAKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBycG1HZXRQYXRoIHRvIGhlbHAKICAgICAgZGV0ZXJtaW5lIHdoaWNoIHZlcnNpb24gb2YgUlBNIHdlJ3JlIHVzaW5nICgzIG9yIDIpLgoKcGpsICA3IEp1biA5OSAxNzozMDozMwogICAgQWRkZWQgUlBNIHYzIHN1cHBvcnQKCm1zbGlmY2FrICA4IEp1biA5OSAwMzo0MDozNgogICAgLShtaWJJSS8qLHNubXBsaWIvKikgTWFya2t1IEwuJ3MgZml4ZXMgdG8gY29tcGlsZSBvbiBIUC1VWCB3aXRoIGFDQwoKbXNsaWZjYWsgIDggSnVuIDk5IDAzOjU0OjUwCiAgICBzcGVsbCBjaGVjayBDT01NVU5JVFkKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjYgLT4gVjMuNi4xCgkKbXNsaWZjYWsgIDggTWFyIDk5IDA0OjAyOjAxCiAgICAocGFyc2UuYykgLSBmaXggc3ViaWQgaW5pdDsgcmVtb3ZlIHVzZWxlc3MgJy1QbCcgb3B0aW9uLgoKbXNsaWZjYWsgIDggTWFyIDk5IDA0OjE0OjQxCiAgICAtIChzbm1wX2FwaS5jKSB1c2UgcmVxdWVzdCBkYXRhIHdpdGggcmVxdWVzdCBjYWxsYmFjawoKbXNsaWZjYWsgIDggTWFyIDk5IDA1OjAxOjQ5CiAgICAtKHdpbjMyL2NvbmZpZy5oKSByZW1vdmUgdW51c2VkIFNZU19USU1FX05BTUUsR0xPQkFMU0VDVVJJVFkuIGFkZCBuZXcgY29uc3RhbnRzLgoKbXNsaWZjYWsgIDggTWFyIDk5IDA1OjA3OjEzCiAgICAtIChBR0VOVCkgTUFYX05BTUVfTEVOIC0tPiBNQVhfT0lEX0xFTiBpbiBleGFtcGxlCgptc2xpZmNhayAgOCBNYXIgOTkgMDk6NTg6MTcKICAgIC0gKHNubXBsaWIvcGFyc2UuYykgQ29tcGxldGUgRGF2ZSBTaGllbGRzJyBwYXRjaCBmb3IgY29udGludWUgYWZ0ZXIgZXJyb3IuCgptc2xpZmNhayAgOCBNYXIgOTkgMTQ6Mjg6MjAKICAgIC0gKHNubXBuZXRzdGF0OmlmLmMsIHJvdXRlLmMpIGxpbWl0IGludGVyZmFjZSBuYW1lIHNpemVzIHRvIGZpdCBmaXhlZCBsZW5ndGggYnVmZmVycy4KCmhhcmRha2VyIDEwIE1hciA5OSAxNTowNzozMQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGdyb3VwIGxpbmVzIHdlcmUgYmFja3dhcmRzLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE1OjQ4OjIyCiAgICAtIChSRUFETUUpOiBBZGRlZCBNaWtlIEJhZXIuCgpoYXJkYWtlciAxMSBNYXIgOTkgMTU6NDg6NTIKICAgIC0gKG1lbW9yeV9zb2xhcmlzMi5jKTogY2hhbmdlZCBzb21lIGNvbW1lbnRzIHRvIC8qICovIGluc3RlYWQgb2YgLy8uCgpoYXJkYWtlciAxMSBNYXIgOTkgMTY6MTA6MzEKICAgIC0gKEFHRU5UKTogcmVtb3ZlZCBBR0VOVAoKaGFyZGFrZXIgMTEgTWFyIDk5IDE2OjEwOjQ3CiAgICAtIChtaWIyYyk6IGZpeGVkIGEgY291cGxlIG9mIGJ1Z3MgYW5kIGFuc2knaWZpZWQgdGhpbmdzLgoKaGFyZGFrZXIgMTEgTWFyIDk5IDE2OjIyOjQzCiAgICAtICh1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6IG1vdmUgTUFUQ0hfU1VDQ0VFREVEIGRlZnMgdG8gLmguCgpoYXJkYWtlciAxMSBNYXIgOTkgMTY6MjM6NDQKICAgIC0gKHNubXBfYXBpLmgsIHNubXBfZGVidWcuaCk6IFBhdGNoIGZyb20gRXJpayBKYWNvYnNlbjoKICAgICAgLSBmaXhlZCBwcm90b3R5cGVzIGZvciBERUJVR1AoKSBhbmQgREVCVUdQT0lEKCkuCgptc2xpZmNhayAxMiBNYXIgOTkgMDc6MDg6NDAKICAgIC0gKGRsbW9kX21pYi5jKSA6IFVzZSBNQVRDSF9GQUlML1NVQ0NFRURFRCBpbiB1dGlsX2Z1bmNzLmgKCmhhcmRha2VyIDEyIE1hciA5OSAwOToxNToxNAogICAgLSAobWliaW5jbC5oLCBkdW1teS5jLCB3b21iYXQuYywgaHJfZGV2aWNlLmMsIGhyX2Rpc2suYywgaHJfZmlsZXN5cy5jLAogICAgICBocl9uZXR3b3JrLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9wcmludC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywKICAgICAgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLCBpY21wLmMsIGludGVyZmFjZXMuYywgaXAuYywKICAgICAgc25tcF9taWIuYywgc3lzT1JUYWJsZS5jLCBzeXN0ZW1fbWliLmMsIHRjcC5jLCB1ZHAuYywgZGxtb2QuYywKICAgICAgcmVnaXN0cnkuYyk6IGZpeGVkIE1BVENIX0ZBSUxFRC9TVUNDRUVERUQgZGVmaW5lcyAtPiB1dGlsX2Z1bmNzLmguCgptc2xpZmNhayAxMiBNYXIgOTkgMTE6MzE6MTYKICAgIC0gKGRsbW9kX21pYi5jKSA6IGV4cGxpY2l0IHRlc3QgZm9yIE1BVENIX0ZBSUxFRAoKaGFyZGFrZXIgMTIgTWFyIDk5IDEyOjIwOjEyCiAgICAtIChtaWIyYyk6IGZpeCBhc25fcGFyc2UgZnVuY3Rpb25zIHRvIHBhc3MgYSBwb2ludGVyIHRvIHRoZSBzaXplIHZhcmlhYmxlLgoKaGFyZGFrZXIgMTIgTWFyIDk5IDE0OjE3OjA4CiAgICAtIChORVdTKTogdXBkYXRlLgoKaGFyZGFrZXIgMTIgTWFyIDk5IDE0OjE3OjQ0CiAgICAtIChzbXV4LmMpOiBwcm90ZWN0IHN0cmNweSgpIGFnYWluc3QgYSBudWxsIHBhc3N3b3JkIHNwZWNpZmllZCBvbiB0aGUKICAgICAgY29uZmlnIGxpbmUuCgptc2xpZmNhayAxMiBNYXIgOTkgMTQ6MzQ6MTIKICAgIC0gKGhyX3N5c3RlbS5oKSAtIGRvbid0IHJlcXVpcmUgaHJfdXRpbDsgZG9uZSBpbiBtaWJncm91cC9ob3N0LmgKICAgIC0gKGhyX3N3cnVuLmMpIC0gc29sYXJpczIgOiBtYWtlIHN1cmUga3ZtX29wZW4gaXMgY2FsbGVkIGJlZm9yZSBrZCBpcyB1c2VkLgogICAgLSAoaHJfc3dydW4uYykgLSBhZGQgbGFtZSBzdW5vczQgZXF1aXZhbGVudCBpbiBIUlNXUlVOUEVSRl9DUFUuCgptc2xpZmNhayAxMiBNYXIgOTkgMTQ6MzU6MzgKICAgIC0gKHRhcmdldC5oLCB0YXJnZXQvKi5oKSByZXF1aXJlIHV0aWxfZnVuY3Mgb25jZS4KCmhhcmRha2VyIDEyIE1hciA5OSAxNDozNjozOQogICAgLSAodXRpbF9mdW5jcy5oKTogTUFUQ0hfRkFJTEVEIC0+IC0xLCBzaW5jZSBzb21lIHVzZSBpdC4KCm1zbGlmY2FrIDEyIE1hciA5OSAxNDo1NDo1MQogICAgLSByZXN0b3JlIGNvbmZpZ19yZXF1aXJlIGxvZ2ljOyBmaXggc3ByaW50ZiBjYWxscyB0byBjb21waWxlIHVuZGVyIFN1bk9TIDQuMS54LgoKaGFyZGFrZXIgMTIgTWFyIDk5IDE1OjIzOjE4CiAgICAtIChJTlNUQUxMKTogZG9uJ3QgcHJpbnQgbW9kdWxlIGxpc3QgaGVyZS4uLiAgdGVsbCB0aGVtIHRvIGxvb2sgYXQKICAgICAgY29uZmlndXJlIC0taGVscC4KCmhhcmRha2VyIDEyIE1hciA5OSAxNToyNDozNwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIElQRldDSEFJTlMtTUlCLnR4dCwgUkVBRE1FLAogICAgICBpcGZ3Y19rZXJuZWxfaGVhZGVycy5oLCBpcGZ3Y2hhaW5zLmMsIGlwZndjaGFpbnMuaCwgbGliaXBmd2MuYywKICAgICAgbGliaXBmd2MuaCk6IFBhdGNoIGZyb20gRGlkaWVyIERoYWVuZW5zOgogICAgICAtIG5ldyBtb2R1bGVzOiBpcGZ3Y2hhaW5zLgoKbXNsaWZjYWsgMTUgTWFyIDk5IDA1OjU0OjA3CiAgICAtIChNYWtlZmlsZS5pbiBsaWJzbm1wLmggbWliLmMgc25tcC5oIHNubXBfYXBpLmMpIHVwZGF0ZSBDTVVfQ09NUEFUSUJMRQoKaGFyZGFrZXIgMTUgTWFyIDk5IDA4OjQ5OjEwCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcF9hcGkuYyk6CiAgICAgIC0gcmV2ZXJ0IHRvIHNubXBfcGFyc2UuCiAgICAgIC0gZG9uJ3QgaW5zdGFsbCBsaWJzbm1wLmguCgptc2xpZmNhayAxNSBNYXIgOTkgMDk6NDI6MzQKICAgIC0gc2Vjb25kIHBhc3MgYXQgQ01VX0NPTVBBVCA6IERpc2FibGUgYnkgZGVmYXVsdCwgbGVhdmUgc25tcF9wYXJzZSBhbG9uZS4KCmhhcmRha2VyIDE1IE1hciA5OSAxNDozMDo0NQogICAgLSAoc25tcC5oKTogcmVtb3ZlIHVubmVlZGVkIGNvbW1lbnRlZCBvdXQgZGVmaW5lLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE0OjMxOjIzCiAgICAtIChhY2NvbmZpZy5oKTogYWRkZWQgQ01VX0NPTVBBVElCTEUKCmhhcmRha2VyIDE1IE1hciA5OSAxNToyMTowMgogICAgLSAoaHJfcHJvYy5jLCBocl9wcm9jLmgsIGxvYWRhdmUuYywgbG9hZGF2ZS5oKTogZml4IHRyeV9sb2FkYXZlIGZvciBzb2xhcmlzLgoKaGFyZGFrZXIgMTUgTWFyIDk5IDE1OjMxOjUxCiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgaW50ZXJmYWNlcy5jLCBsaW51eC5oKTogZGV0ZWN0CiAgICAgIC9wcm9jL25ldC9kZXYgdmVyc2lvbiBhdCBydW4gdGltZSwgbm90IGNvbXBpbGUgdGltZS4KCmhhcmRha2VyIDE1IE1hciA5OSAxNTo0NjoxMgogICAgLSAoaW50ZXJmYWNlcy5jKTogZml4ZXMgZm9yIGxpbnV4IDIuMiBpbnRlcmZhY2Ugc2Nhbm5pbmcuCgpoYXJkYWtlciAxNSBNYXIgOTkgMTU6NTU6MzUKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZWZpbGVpbmRlcGVuZC4KCmhhcmRha2VyIDE1IE1hciA5OSAxNTo1ODowNwogICAgLSAoRkFRLCBORVdTKTogdXBkYXRlcyB0byB0YWxrIGFib3V0IHRoZSBBR0VOVC50eHQgZmlsZS4KCQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy41LjMgLT4gVjMuNgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEzOjE0OjQzCiAgICAtIChDaGFuZ2VMb2cpOiB1cGRhdGUgZm9yIDMuNS4KCmhhcmRha2VyIDIyIEp1biA5OCAwOToxNjozMgogICAgLSAobWFpbi5jKTogUGF0Y2ggZnJvbSBKZXJyeSBHLiBEZUxhcHA6CiAgICAgIC0gY29tbWVudGVkIG91dCB0cmFpbGluZyAjZW5kaWYgY29tbWVudC4KCmhhcmRha2VyIDI0IEp1biA5OCAxMDozMDoxOQogICAgLSAoTWFrZWZpbGUuaW4pOiBtYW4tPmh0bWwgbWFrZSBzcGVjaWZpY2F0aW9uLgoKaGFyZGFrZXIgMjQgSnVuIDk4IDEwOjMxOjIyCiAgICAtIChNYWtlZmlsZS5pbiwgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGNyZWF0ZSBzbm1wX3BkdV9hZGRfdmFyaWFibGUoKS4KCmhhcmRha2VyIDI0IEp1biA5OCAxMDo1Njo0NgogICAgLSAoc25tcHNldC5jLCBzbm1wdGVzdC5jLCBzbm1wdHJhcC5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtb3ZlZCBoZXhfdG9fYmluYXJ5LCBhc2NpaV90b19iaW5hcnksIGFuZCBzbm1wX2FkZF92YXIgdG8gc25tcGxpYi4KCmhhcmRha2VyIDI0IEp1biA5OCAxMTowODo0MQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc2h1dGRvd24gdHJhcCBzcGVjaWZpY2F0aW9ucy4KICAgICAgLSBtaXNjIG1pYiBmaXhlcy4KCmhhcmRha2VyIDI0IEp1biA5OCAxMTo0MDo0MAogICAgLSAoc25tcGQuYywgc25tcGQuaCk6CiAgICAgIC0gY3JlYXRlZCAocG9vcmx5KSBzZW5kX3RyYXBfcGR1KCkgZm9yIHNlbmRpbmcgdjIgdHJhcHMgZnJvbSBtaWIgbW9kdWxlcy4KCmhhcmRha2VyIDI2IEp1biA5OCAxMDo0MjozMgogICAgLSAoZGlzay5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgICAtIGZpeCBjYWxjdWxhdGlvbiBvZiB0b3RhbGRpc2sgYnkgZG9pbmcgYmxvY2sgZGl2aXNpb24gZmlyc3QgdG8KICAgICAgICBwcm90ZWN0IGFnYWluc3QgMzIgYml0IG92ZXJmbG93cy4KCmhhcmRha2VyIDI2IEp1biA5OCAxMDo0NToxNQogICAgLSAoc211eC5jLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oKTogUGF0Y2gKICAgICAgZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBGaXggZm9yIG5ldyBkZWZpbmVzIGFuZCBwcm9wZXIgaGVhZGVyIGluY2x1ZGVzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDE1OjAzOjM4CiAgICAtIChnZW5lcmljLmgpOiBwdXQgaW4gYSBjb21tZW50IHRvIGtlZXAgY29tcGlsZXJzIGZyb20gY29tcGxhaW5pbmcgdG9vIG11Y2guCgpoYXJkYWtlciAyOCBKdW4gOTggMDk6MzA6MzQKICAgIC0gKHNubXBfYXBpLmMpOiBmaXggc25tcF9hZGRfdmFyKCkuCgpoYXJkYWtlciAgMSBKdWwgOTggMTE6Mjg6MTcKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgYWdlbnRfcmVhZF9jb25maWcuYywKICAgICAgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBzbm1wZC5jLCBNYWtlZmlsZS5pbiwKICAgICAgc3RydWN0LmgsIHBhc3MuaCwgTWFrZWZpbGUuaW4sIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmgsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLAogICAgICBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSBtb3ZlZCByZWFkX2NvbmZpZyBzdXBwb3J0IGludG8gdGhlIGxpYnJhcnkgYW5kIHVzZSBpdC4KICAgICAgLSBiZWdpbm5pbmdzIG9mIHNubXB0cmFwZCBleHRlbnNpYmlsaXR5LgoKaGFyZGFrZXIgIDEgSnVsIDk4IDE1OjU2OjEyCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzeXN0ZW0uaCk6CiAgICAgIC0gYWRkZWQgREVCVUdQT0lEKG5hbWUsIG5hbWVsZW4pOwogICAgICAtIG1vdmVkIERFQlVHUCBkZWZpbml0aW9uIGludG8gc25tcF9hcGkuaCB3aGVyZSBpdCBiZWxvbmdzLgoKaGFyZGFrZXIgIDEgSnVsIDk4IDE1OjU3OjUzCiAgICAtIChzbm1wdHJhcGQuYywgc25tcHRyYXBkX2hhbmRsZXJzLmMpOgogICAgICAtIGZpeCBleHRlbnNpYmxpdHkgY2hlY2tpbmcgb2Ygb2lkcy4KICAgICAgLSBzZXBlcmF0ZSBydW5uaW5nIG9mIGV4dGVybmFsIGNvbW1hbmQgaW50byBuZXcgZnVuY3Rpb24uCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6MjY6MjUKICAgIC0gKGZyZWVic2QyLmgpOiB1c2UgX1VUTVBfUEFUSCBpZiBhdmFpbGFibGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6MjY6MzQKICAgIC0gKGlyaXguaCk6IGRlZmluZSBfS01FTVVTRVIKCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNzoxMgogICAgLSAod2luMzIub3B0LCBsaWJzbm1wLmRzcCwgbGlic25tcC5wbGcsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5wbGcsCiAgICAgIHNubXBidWxrd2Fsay5kc3AsIHNubXBidWxrd2Fsay5wbGcsIHNubXBnZXQuZHNwLCBzbm1wZ2V0LnBsZywKICAgICAgc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQuZHNwLCBzbm1wc2V0LnBsZywKICAgICAgc25tcHN0YXR1cy5kc3AsIHNubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlLmRzcCwKICAgICAgc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrLmRzcCwgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UKICAgICAgTWFyem90OgogICAgICAtIHdpbjMyIHVwZGF0ZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjozNDoyNgogICAgLSAoc3RydWN0LmgsIHV0aWxfZnVuY3MuYywgdXRpbF9mdW5jcy5oLCBwYXNzLXBlcnNpc3QuYywKICAgICAgcGFzcy1wZXJzaXN0LmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgRG91Z2xhc3M6CiAgICAgIC0gY3JlYXRlIGEgcGFzcy1wZXJzaXN0IG1vZHVsZSB0byBoYW5kbGUgY29udGludW91c2x5IHJ1bm5pbmcgcGFzcyB0aHJvdWdocy4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjo1Njo0NgogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6IHJlbW92ZWQgZnJvbSBhZ2VudCBkaXIuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6NTc6MDYKICAgIC0gKHVjZF9zbm1wLmgpOiBhZGRlZCBwYXNzLXBlcnNpc3QgbW9kdWxlLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEyOjU4OjAzCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIGZpeCAibnVtYmVyIG9mIHJldHJpZXMiIGJ1Zy4KICAgICAgLSByZW1vdmUgb2RkIHRpbWVvdXQgY2FsY3VsYXRpb24gY29kZSBmb3IgcmV0cmllcyA+IDMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDI6MDYKICAgIC0gKGludGVyZmFjZXMuYyk6IG1ha2UgaHBfaW50ZXJmYWNlcyBzdHJ1Y3R1cmUgc3RhdGljLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjAzOjM2CiAgICAtIChzeXN0ZW0uYyk6IGRvbid0IGZyZWUgZW52IHBvaW50ZXJzIHRoYXQgYXJlIGNyZWF0ZWQuCgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDg6MTgKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBmb3IgbWlzc2luZyBvYmplY3QgaWRlbnRpZmllciBsYWJlbHMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6MDQ6MjIKICAgIC0gKE1ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgLmN2c2lnbm9yZSwgTWFrZWZpbGUuaW4sIGRsbW9kX21pYi5jLCBkbG1vZF9taWIuaCwgZXhhbXBsZS5jLAogICAgICBleGFtcGxlLmgsIGRsbW9kLmMsIGRsbW9kLmgsIE1ha2VmaWxlLmluLCBNYWtlZmlsZS5pbiwKICAgICAgRExNT0QtTUlCLnR4dCwgTWFrZWZpbGUuaW4sIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBFdWdlbmUKICAgICAgUG9sb3ZuaWtvdjoKICAgICAgLSBuZXcgZGxtb2Qgc2V0LgogICAgICAtIGZpeCBjb25maWd1cmUgc2NyaXB0LgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjIwOjQyCiAgICAgLSAoZGxtb2QuYyk6IHVzZSBzbm1wZF8gcmVnaXN0ZXJfcmVhZF9jb25maWcoKSB3cmFwcGVycy4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0Mzo1NgogICAgLSAoc25tcF92YXJzLmMpOiBpbmNsdWRlIGZpeGVzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjI1CiAgICAtICh1Y2Rfc25tcC5oKTogcmVtb3ZlZCB1Y2Qtc25tcC9wYXNzX3BlcnNpc3QgZnJvbSBkZWZhdWx0IGluY2x1ZGUgbGlzdC4KCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDozNAogICAgLSAocGFzcy5jKTogaW5jbHVkZSBzeXMvd2FpdC5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDQ6NDEKICAgIC0gKHZlcnNpb25pbmZvLmMpOiBpbmNsdWRlIHN5c3RlbS5oCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDU6MjIKICAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIHNubXBfYXBpLmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NTo0MgogICAgLSAoc25tcF9hcGkuYyk6IGluY2x1ZGUgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTU6MzE6MzYKICAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IC1XYWxsIGZpeGVzLgoKaGFyZGFrZXIgIDggSnVsIDk4IDE1OjMxOjUwCiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wZC5jKTogLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTU6NTE6MjgKICAgIHZlcnNpb24gdGFnICggMy42LnByZTEgKQoKaGFyZGFrZXIgMTAgSnVsIDk4IDA5OjQyOjE2CiAgICAtIChzbm1wZC5jKTogd3JvbmcgcGR1IHBvaW50ZXIgZm9yIHNubXB2MmMgdHJhcHMuCgpoYXJkYWtlciAxNSBKdWwgOTggMTU6NDY6MjgKICAgIC0gKHNlZHNjcmlwdC5pbik6IHVzaW5nX21vZHVsZSBjaGFuZ2VzLgoKaGFyZGFrZXIgMTUgSnVsIDk4IDE1OjQ2OjU1CiAgICAtIChtZW1vcnkuaCk6IE1FTVNXQVBNSU5JTVVNIHdhc24ndCBiZWluZyB1c2VkLgoKaGFyZGFrZXIgMTcgSnVsIDk4IDEzOjExOjEwCiAgICAtIChVQ0QtU05NUC1NSUIuaW5jLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjcmVhdGVkIHNtaWNuZyBpbnB1dCBmaWxlLgogICAgICAtIGZpeGVkIHRoZSBVQ0QtU05NUCBtaWIgdG8gZGVhbCB3aXRoIG1vc3Qgc21pYyBlcnJvcnMuCgpoYXJkYWtlciAyMCBKdWwgOTggMTc6MTQ6MjEKICAgIC0gKHNubXBjaGVjay5kZWYpOiB3b3JrIGFyb3VuZCBmb3IgbmV3IG11bHRpLWRlcHRoIG1pYiB0YWJsZXMuLgoKaGFyZGFrZXIgMjIgSnVsIDk4IDE1OjM1OjA3CiAgICAtIChtaWIuYyk6IGRvbid0IGNoYW5nZSBydW5uaW5nIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoIHN0cnRvay4KCmhhcmRha2VyIDIyIEp1bCA5OCAxNjoyMzo0NQogICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbik6IGZpeCBzZWRzY3JpcHQgaW5jbHVkZXMuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MDI6MjcKICAgIC0gKGludGVyZmFjZXMuYyk6IG1pc3NpbmcgcmV0dXJuIG9uIGlmSW5FcnJvcnMgcmVzdWx0cy4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzozMjo0MwogICAgLSAoc25tcHRyYXBkLmMpOiBhZGQgYSBibGFuayBsaW5lIHRvIHRoZSBlbmQgb2YgdGhlIHRyYXBkIG91dHB1dCBmb3IgcGFyc2luZy4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0MzozMAogICAgLSAoVE9ETyk6IGFkZGVkIHNlY3VyaXR5IGNoZWNrcy4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0NDozOAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBwZXJzaXN0ZW50IGNvbmZpZyBmaWxlIHF1ZXN0aW9uLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ0OjUzCiAgICAtIChNYWtlZmlsZS5pbik6IHR5cG8uCgpoYXJkYWtlciAgMiBTZXAgOTggMTg6NDc6MTUKICAgIC0gKG1pYi5jLCBtaWIuaCwgcmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gcHJlL3Bvc3QgbWliIGxvYWRpbmcgY29uZmlnIGZpbGVzLgogICAgICAtIGNyZWF0ZSBpbml0X3NubXAoKSB0byB3cmFwIG90aGVyIGZ1Y3Rpb25zLgogICAgICAtIG5ldyBzbm1wLmNvbmYgZGlyZWN0aXZlczogbWlicywgbWliZGlycywgbWliZmlsZS4KCmhhcmRha2VyICAyIFNlcCA5OCAxODo0Nzo0OAogICAgLSAoc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IGluaXRfc25tcCgpLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ4OjI1CiAgICAtIChsaWJzbm1wLmRlZik6IGZpbmRfbW9kdWxlLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQ4OjQwCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IHVzZSBpbml0X3NubXAgaW5zdGVhZCBvZiBpbml0X21pYigpLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjUwOjM0CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhZ2VudF9yZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcGQuYywKICAgICAgc25tcGQuaCk6CiAgICAgIC0gc3VwcG9ydCBtaWItbW9kdWxlIHNodXRkb3duIGZ1bmN0aW9ucy4KICAgICAgLSBkbyBhIG1pbmltYWwgcGVyc2lzdGVudCBjYWNoZSBpbXBsZW1lbnRhdGlvbiBhbmQgcmVhZCBpdCBhdCBzdGFydCB1cC4KICAgICAgLSB0ZXN0IHdpdGggYmVnaW5uaW5ncyAod3JvbmcgcGxhY2UpIG9mIGFnZW50Qm9vdHMgdmFyaWFibGUuCgpuYmEgIDMgU2VwIDk4IDE0OjI5OjAzCiAgICAtIChmaXhwcm9jKTogYWRkZWQgY29tbWVudCB0byB0ZXN0IENWUy4KCmhhcmRha2VyICA5IFNlcCA5OCAxNjoxMjozMgogICAgLSAoKik6IE1lcmdlIGludG8gbWFpbiBicmFuY2ggZnJvbSAzLjUuMSBicmFuY2guCgpoYXJkYWtlciAgOSBTZXAgOTggMTY6NTU6MDQKICAgIC0gKHNubXBkLmMpOiBmaXggdHJhcCBzdHVmZiBicm9rZW4gYnkgdGhlIGNvZGUgbWVyZ2UuCgpoYXJkYWtlciAxMSBTZXAgOTggMDk6MjY6NDIKICAgIC0gKCopOiBNZXJnZWQgdGhlIE1UIGNoYW5nZXMgaW50byB0aGUgbWFpbiBicmFuY2guCgpoYXJkYWtlciAxMiBTZXAgOTggMDg6NDY6MDEKICAgIC0gKHNubXBfYXBpLmMpOiBwcm90b3R5cGUgbW92ZSBpbml0X3NubXAoKSBhYm92ZSBpbml0X3NubXBfc2Vzc2lvbi4KCmhhcmRha2VyIDEyIFNlcCA5OCAwODo1MzoyMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBtb3ZlIHVuLWNvbmZpZ3VyZWQgZGVmaW5lcyBhYm92ZSBAVE9QQC4KCmhhcmRha2VyIDEyIFNlcCA5OCAwODo1NDoyNAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBEb24ndCBmb3JjZSBjYyBhbnltb3JlLCBhbGxvdyBnY2MgdG8gZ28gZmlyc3QuCgpoYXJkYWtlciAxMiBTZXAgOTggMDg6NTY6NTEKICAgIC0gKG92L01ha2VmaWxlLmluLCBtaWJzL01ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIGR1cGxpY2F0ZSBzZWN0aW9ucyBhbHJlYWR5IGRlZmluZWQgaW4gTWFrZWZpbGUudG9wLgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA5OjAyOjM3CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gYnVnIGZpeCB0byBjaGVjayBmb3IgTlVMTCBzZXNzaW9uIHBvaW50ZXIgYmVmb3JlIHVzaW5nIGl0LgoKaGFyZGFrZXIgMTIgU2VwIDk4IDA5OjA4OjQ2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IE1vdmUgQ0FOX1VTRV9OTElTVCB0ZXN0cyBiZWxvdyBhcmNoIC5oIGZpbGVzLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDE4OjI0OjAwCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZXhpdCAtPiByZXR1cm4uCgpoYXJkYWtlciAxMyBTZXAgOTggMjA6MTI6MDkKICAgIC0gKHNubXB0YWJsZS5jLCBzbm1wdHJhbnNsYXRlLmMsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgIC0gbWVyZ2UgaW50byBtYWluIGxpbmUgZnJvbSB0aGUgMy02LXByZTEtdHJhbnMgYnJhbmNoLgoKaGFyZGFrZXIgMTMgU2VwIDk4IDIwOjE4OjEwCiAgICAtIChzbm1wX2FwaS5jKTogZGVmaW5lIHVzYWdlIG1pc3BlbGxpbmcgU05NUF9CQURfUEFSU0UgLT4gU05NUEVSUl9CQURfUEFSU0UuCgpoYXJkYWtlciAxMyBTZXAgOTggMjA6MzA6MzgKICAgIC0gKHNubXBfYXBpLmMpOiBwcmV2ZW50IGRvdWJsZSBpbml0X3NubXAoKXMuCgpoYXJkYWtlciAxMyBTZXAgOTggMjE6MDU6MjYKICAgIC0gKFJFQURNRSk6IE5hbWUgYWRkaXRpb24uCgpoYXJkYWtlciAxMyBTZXAgOTggMjE6MDY6NTIKICAgIC0gKG1pYi5jLCByZWFkX2NvbmZpZy5jKTogcmVmaXggdGhlIG5vbi1tYWxsb2NlZCBjb25maWd1cmF0aW9uIHZhcnMuCgpoYXJkYWtlciAxMyBTZXAgOTggMjE6MDk6MzYKICAgIHZlcnNpb24gdXBkYXRlOiAzLjYucHJlMgoKaGFyZGFrZXIgMTQgU2VwIDk4IDEyOjM1OjEwCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGluc3RhbGwgc25tcF9zZXNzX2FwaS4zLgoKaGFyZGFrZXIgMTQgU2VwIDk4IDEyOjQzOjMyCiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgZGxtb2RfbWliLmMsIHV0aWxfZnVuY3MuYywKICAgICAgZHVtbXkuYywgd29tYmF0LmMsIGhyX2RldmljZS5jLCBocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywKICAgICAgaHJfbmV0d29yay5jLCBocl9wYXJ0aXRpb24uYywgaHJfcHJpbnQuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsCiAgICAgIGhyX3N3aW5zdC5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywgYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsCiAgICAgIGlwLmMsIHNubXBfbWliLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCBzbm1wX2JncC5jLAogICAgICBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMsIGhwdXguYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywKICAgICAgcmVnaXN0cnkuYywgYWNsX3ZhcnMuYywgYWxhcm0uYywgY29udGV4dF92YXJzLmMsIGV2ZW50LmMsCiAgICAgIHBhcnR5X3ZhcnMuYywgdmlld192YXJzLmMsIHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYywKICAgICAgc25tcF9hcGkuYywgc25tcF9hcGkuaCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbmFtZSBjb21wYXJlIC0+IHNubXBfb2lkX2NvbXBhcmUoKS4KCmhhcmRha2VyIDE1IFNlcCA5OCAxMzowMjozNAogICAgLSAoaW5ldC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWVtb3J5IHJlbGF0ZWQgZml4ZXMuCgpoYXJkYWtlciAxNSBTZXAgOTggMTM6MDc6MDUKICAgIC0gKG1pYi5jKTogLy8gY29tbWVudCAtPiAvKiAqLyBjb21tZW50LgoKaGFyZGFrZXIgMTUgU2VwIDk4IDEzOjA3OjQ1CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGluaXRfc25tcCBjYWxscyBmcm9tIHNlc3Npb24gcm91dGluZXMuCgpoYXJkYWtlciAxOCBTZXAgOTggMTM6MjA6MTEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBhZGRlZCB0aGUgRmlsZVRhYmxlIHN1Ym1pdHRlZCBieSBKb25hcyBPbHNzb24uCgpoYXJkYWtlciAxOCBTZXAgOTggMTQ6MDE6NTEKICAgIC0gKHVjZF9zbm1wLmgpOiBhZGQgdGhlIGZpbGUgbWliIG1vZHVsZS4KCmhhcmRha2VyIDE4IFNlcCA5OCAxNDowNDo0MwogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IENoYW5nZSBmaWxlIHJldHVybiBjb2RlIGZyb20gVHJ1dGhWYWx1ZSB0bwogICAgICBpbnRlZ2VyIHNpbmNlIDEvMiBkb2VzIG5vdCBmaXQgdGhlIGN1cnJlbnQgMC8xIHJldHVybiBjb2RlIHNjaGVtZS4KCmhhcmRha2VyIDIxIFNlcCA5OCAxMToxMTozOQogICAgLSAoc25tcF92YXJzLmMpOiBmaW5hbGx5IGZpeGVkIHRoZSB3cml0ZV9tZXRob2QncyBmb3IgY3JlYXRpb24gcHJvYmxlbS4KCmhhcmRha2VyIDIzIFNlcCA5OCAxMzowNzowNwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBwYXJzZS5jKTogTmV3IGZsYWc6CiAgICAgIC0gLS1lbmFibGUtZW9sLXRlcm1pbmF0ZWQtY29tbWVudHMuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MDU6NDAKICAgIC0gKHNubXBfYXBpLmMpOiBkb24ndCByZWx5IG9uIHRoZSBnZXRzZXJ2YnluYW1lIHBvaW50ZXIgdG8gc3RheSBhcm91bmQuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MTU6MjIKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAtIFRoZSBDTVUgbGlicmFyeSBoYXMgYW4gb3B0aW1pemF0aW9uIGluIHNubXBfY2xvbmVfcGR1KCkgdGhhdCBkb2VzCiAgICAgICBub3QgY29weSB6ZXJvIGxlbmd0aCBzdHJpbmdzLiAgSSBoYWQgbWVyZ2VkIHRoaXMgaW4gd2l0aCBjaGFuZ2VzCiAgICAgICBtYWRlIGZvciBtdWx0aS10aHJlYWQgc3VwcG9ydC4gIFVuZm9ydHVuYXRlbHksIEkgZGlkIG5vdCBtYWtlIHN1cmUKICAgICAgIHRoZSBjbG9uZWQgUERVIGhhZCBubyBwb2ludGVyIGZvciB0aGlzIGNhc2UuICBPb3BzIQogICAgIC0gQW5vdGhlciBwcm9ibGVtIGluIHNubXBfY2xvbmVfcGR1KCkgd2FzIHRoZSB0ZXN0IGZvciB6ZXJvIGxlbmd0aAogICAgICAgc3RyaW5nIHdhcyBub3QgYmVpbmcgcGVyZm9ybWVkIG9uIHRoZSBmaXJzdCB2YXJiaW5kIGluIHRoZSBjaGFpbi4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzoyNDoxNgogICAgLSAobWliLmMsIG1pYi5oLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbQogICAgICBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGNvbXBpbGVyIHdhcm5pbmdzLCBlcnJvcnMuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MjU6MTAKICAgIC0gKHNubXB0YWJsZS5jKTogcHJvY2VzcyBhcmdzIGRpcmVjdGx5IGluc3RlYWQgb2YgcmVseWluZyBvbiBnZXRfb3B0KCkuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6MzM6MDYKICAgIC0gKGNvbmZpZy5oLCB3aW4zMi5kc3csIGxpYnNubXAuZHNwLCBsaWJzbm1wLmRlZiwgbGlic25tcF9kbGwuZHNwLAogICAgICAgc25tcHRhYmxlLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHN0dXBpZCBPUyB1cGRhdGUuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6NTU6NTAKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gaW5zdGFsbCBtb3JlIGhlYWRlcnMuCgpoYXJkYWtlciAyNSBTZXAgOTggMTc6NTY6NDMKICAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgaW5zdGFsbCBsaWJzbm1wLmguICBJdCdzIGdvaW5nIHRvIGNoYW5nZSB0b28KICAgICAgbXVjaCBpbiB0aGUgZnV0dXJlLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE4OjAzOjI3CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdmVyc2lvbi5oLCBhbmQgc3RyaXAgaW5jbHVkZXMgb3V0IG9mIGNvbmZpZy5oCgpoYXJkYWtlciAyNSBTZXAgOTggMTg6MDQ6MTEKICAgIC0gKHNubXBfYXBpLmMpOiByZW1vdmUgdW5uZWVkZWQgY29tbWVudC1vdXQuCgpoYXJkYWtlciAyNSBTZXAgOTggMTg6MTQ6MjAKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCB1dGlsX2Z1bmNzLmMpOiB1c2UgVVNMRUVQIGlmIGF2YWlsYWJsZSBmb3IKICAgICAgc21hbGwgc2xlZXAgdGltZXMgd2hpbGUgd2FpdGluZyBmb3IgcHJvY2Vzc2VzIHRvIGZpbmlzaC4KCmhhcmRha2VyIDMwIFNlcCA5OCAxNDo1NzoxMQogICAgLSAoQ2hhbmdlTG9nLCBFWEFNUExFLmNvbmYuZGVmLCBORVdTLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICAgaW50ZXJmYWNlcy5jLCBtZW1vcnkuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywgcGFyc2UuYyk6CiAgICAgIC0gbWVyZ2UgMy41LjMgY2hhbmdlcyBpbnRvIG1haW4gdHJ1bmsuCgpoYXJkYWtlciAgNSBPY3QgOTggMTY6NTM6MjMKICAgIC0gKGR1bW15LmMsIGR1bW15LmgpOiB1cGRhdGUgdG8gcmVtb3ZlIGNvbW1vbl9oZWFkZXIuaAoKaGFyZGFrZXIgIDUgT2N0IDk4IDE3OjAzOjM0CiAgICAtIChocl9wcm9jLmMpOiBwb3NzaWJsZSBmaXggZm9yIHNvbGFyaXMncyBwcm9jZXNzIHBlcmNlbnRhZ2UuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MTg6MDMKICAgIC0gKHZhcl9yb3V0ZS5jKTogaGFjayBmaXhlcyBmb3IgaHB1eDEwIGFuZCBydGVudHJ5LgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjE4OjE2CiAgICAtIChocHV4LmgpOiBoYWNrIGZpeGVzIGZvciBocHV4MTAgYW5kIHJ0ZW50cnkuCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6MTg6NTUKICAgIC0gKGNvbmZpZy5oLmluKTogc2V0dXAgZGVmaW5lIGZvciBIQVZFX1VTTEVFUC4KCmhhcmRha2VyICA2IE9jdCA5OCAxNTozNDo1OAogICAgLSAocmVtb3ZlLWZpbGVzKTogdXBkYXRlLgoKaGFyZGFrZXIgIDYgT2N0IDk4IDE1OjM1OjA2CiAgICAtICh2ZXJzaW9udGFnKTogZml4IGZvciBjdnMgMS4xMC4KCmhhcmRha2VyICA2IE9jdCA5OCAxNTozODo0OQogICAgLSAodmVyc2lvbnRhZyk6IHR5cG8uCgpoYXJkYWtlciAgNiBPY3QgOTggMTU6Mzg6NTYKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTMgKQoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjQ5OjExCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHByb3Blcmx5IGxvY2F0ZSB2ZXJzaW9uLmggaW4gJChzcmNkaXIpLgoKaGFyZGFrZXIgIDcgT2N0IDk4IDE2OjQ5OjMwCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBtYWtlIGh0bWwuCgpoYXJkYWtlciAgNyBPY3QgOTggMTY6NTA6MjMKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSByZW1vdmUgdW4tbmVlZGVkIGhlYWRlcnMuCgpoYXJkYWtlciAgNyBPY3QgOTggMTY6NTE6NTYKICAgIC0gKHNubXBfYXBpLmMpOiBmaXggZGVmYXVsdCBwb3J0IHByb2JsZW1zIChhZ2FpbikuCgpoYXJkYWtlciAgNyBPY3QgOTggMTY6NTQ6MzgKICAgIC0gKHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZml4IGV4aXRpbmcgcHJvYmxlbXMgb24gTlQuCgpoYXJkYWtlciAgNyBPY3QgOTggMTc6MDA6NDAKICAgIC0gKGxpYnNubXAuZHNwLCBsaWJzbm1wX2RsbC5kc3ApOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB3aW5OVCBwcm9qZWN0IGZpbGUgdXBkYXRlcy4KCmhhcmRha2VyICA5IE9jdCA5OCAwODowOToxMgogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogdXNlIHpsaWIgd2hlbiB1c2luZyBycG0gbGlicmFyaWVzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDIzOjA4OjE4CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBDaGVjayBmb3IgZnVsbHkgcXVhbGlmaWVkIG9pZCBzdGF0ZW1lbnRzLgoKaGFyZGFrZXIgIDkgT2N0IDk4IDIzOjEyOjAyCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBzdXBwb3J0IGZvciBzdHJpY3QgKGNhc2Ugc2Vuc2l0aXZlKSBvcHRpb24gdG8gdGhlIG1pYiBjb21waWxlci4KCmhhcmRha2VyICA5IE9jdCA5OCAyMzoyMDoyNQogICAgLSAoRkFRKTogRGF2ZSBTaGllbGQgZXhwbGFpbnMgaW4gd29uZGVyb3VzIGRldGFpbCBhbGwgYWJvdXQgdGhlIFZBQ00gbW9kdWxlLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDA5OjE3OjAyCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogY2hhbmdlIHB1YmxpYyBjb21tdW5pdHkgZXhhbXBsZXMgLT4gcHJpdmF0ZS4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOTo0MToxMgogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogY2hlY2sgZm9yIG1hY2hpbmUvdHlwZXMuaC4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOTo0MTozOAogICAgLSAoaG9zdF9yZXMuaCk6IG5ldC9pbl92YXIuaCBmb3IgZnJlZWJzZDMuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NDI6MjAKICAgIC0gKGhyX3N0b3JhZ2UuYyk6IG1hY2hpbmUvdHlwZXMuaCBhbmQgc3lzL3ZtbWV0ZXIuaCBmb3IgZnJlZWJzZDMuCgpoYXJkYWtlciAxNCBPY3QgOTggMDk6NTA6MjYKICAgIC0gKGZyZWVic2QzLmgpOiBkZWZpbmUgZnJlZWJzZDIgYW5kIE1PVU5UX05GUy4KCmhhcmRha2VyIDE0IE9jdCA5OCAwOTo1MTo1OAogICAgLSAoZnJlZWJzZDMuaCk6IG9wcHM6ICBkZWZpbmUgTU9VTlRfTkZTIGFzICJuZnMiLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDE2OjQwOjA1CiAgICAtIChzbm1wZC5jKTogLUE6IGFwcGVuZCB0byBsb2cgZmlsZS4KCmhhcmRha2VyIDE0IE9jdCA5OCAxNjo0MTo1MgogICAgLSAoc25tcGQuYyk6IGRvY3VtZW50IC1BLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDE2OjQyOjEwCiAgICAtIChzbm1wZC4xLmRlZik6IGRvY3VtZW50IC1BLgoKaGFyZGFrZXIgMTQgT2N0IDk4IDE2OjQ5OjAzCiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBmb3IgYnJva2VuIGNvbXBpbGVyIHdhcm5pbmdzIG9uIE5ULgoKaGFyZGFrZXIgMTQgT2N0IDk4IDE2OjUyOjUxCiAgICAtIChtZW1vcnkuYyk6IGZpeCBmb3IgaHB1eDkuCgpoYXJkYWtlciAxNiBPY3QgOTggMDg6Mzg6MzkKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBhaXguaCk6IGFpeCBoZWFkZXIgZmlsZSBmaXhlcy4KCmhhcmRha2VyIDIxIE9jdCA5OCAxMDo1NDo0OQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gRml4IHBhcnNlciB0byBkZWFsIHdpdGggYW5vbnltb3VzIGNoaWxkcmVuIHByb3Blcmx5LgoKaGFyZGFrZXIgMjEgT2N0IDk4IDExOjA4OjU2CiAgICAtIChocl9maWxlc3lzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHdhdGNoIG91dCBmb3IgZW1wdHkgZmlsZSBuYW1lcyBwYXNzZWQgaW4uCgpoYXJkYWtlciAyMSBPY3QgOTggMTc6MDE6MTIKICAgIC0gKC5jdnNpZ25vcmUsIE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZik6CiAgICAgIC0gbmV3IHVucHJvb2ZyZWFkIG1hbnVhbCBvbiB0aGUgcmVhZF9jb25maWcgYXBpIChtb3N0IG9mIGl0KS4KCmhhcmRha2VyIDIzIE9jdCA5OCAwNzo1NzoxNwogICAgLSAoaHJfZmlsZXN5cy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBOVUxMIGNoZWNraW5nIG9uIHRoZSBmaWxlc3lzdGVtIG1vdW50IHBvaW50LgoKaGFyZGFrZXIgMjMgT2N0IDk4IDEzOjU0OjExCiAgICAtIChNYWtlZmlsZS5pbik6IGluc2VydCBAIHNpZ24uCgpoYXJkYWtlciAyMyBPY3QgOTggMTM6NTQ6NDcKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jKTogYnVnIGZpeGVzLCBtaXNzaW5nICNlbmRpZi4KCmhhcmRha2VyIDIzIE9jdCA5OCAxMzo1NjowOQogICAgLSAodGttaWIpOiBlZGl0YWJsZSBvaWQgZmllbGQuCgpoYXJkYWtlciAyMyBPY3QgOTggMTM6NTk6NDQKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwKICAgICAgYWdlbnRfcmVhZF9jb25maWcuYywgYWdlbnRfcmVhZF9jb25maWcuaCwgc25tcGQuYywgd29tYmF0LmgsCiAgICAgIHN5c3RlbS5oLCB2YWNtX3ZhcnMuaCwgZGxtb2QuYywgZGlzay5oLCBleHRlbnNpYmxlLmgsIGZpbGUuaCwKICAgICAgbG9hZGF2ZS5oLCBtZW1vcnkuaCwgbWVtb3J5X2ZyZWVic2QyLmgsIHBhc3MuaCwgcGFzc19wZXJzaXN0LmgsCiAgICAgIHByb2MuaCwgc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwZC5jLCBtaWIuYywgcmVhZF9jb25maWcuYywKICAgICAgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gbmV3IG9wdGlvbiAtSCBvbiBjb21tYW5kIGxpbmUgdG8gcHJpbnQgb3V0IC5jb25mIGZpbGUgZGlyZWN0aXZlcwogICAgICAgIHRoYXQgdGhlIGFwcGxpY2F0aW9uIHVuZGVyc3RhbmRzLgogICAgICAtIGNyZWF0ZWQgYSBuZXcgb3B0aW9uIHRvIHRoZSByZWFkIGNvbmZpZyByZWdpc3RyYXRpb24gdG8gYWxsb3cKICAgICAgICBzcGVjaWZ5aW5nIG9mIGEgaGVscCBsaW5lLgoKaGFyZGFrZXIgIDYgTm92IDk4IDE3OjIzOjQ2CiAgICAtIChzbm1wZC5jKTogZml4IHYyIHRyYXAgZ2VuZXJhdGlvbi4KCmhhcmRha2VyICA2IE5vdiA5OCAxNzo0NDo0MwogICAgLSAoc25tcGQuYyk6IHYyIHRyYXAgc2VuZCBkZWJ1Z2dpbmcuCgpoYXJkYWtlciAxNiBOb3YgOTggMjI6MTA6MDgKICAgIC0gKHRrbWliKTogdG9vIG1hbnkgaW1wcm92ZW1lbnRzIHRvIGNvdW50LgoKaGFyZGFrZXIgMjMgTm92IDk4IDE1OjQyOjUyCiAgICAtIChpbnRlcmZhY2VzLmMsIGlyaXguaCk6IGZpeCBsb2NhdGlvbiBvZiBfS0VSTkVMIGRlZmluZSBmb3IgaXJpeC4KCmhhcmRha2VyIDIzIE5vdiA5OCAxNjozNTo0MAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gbWlzYyBwYXJzaW5nIGJ1ZyBmaXhlcy4KICAgICAgLSAtdyAmIC1XIG9wdGlvbnMgdG8gZGVmYXVsdCBhcHBsaWNhdGlvbiBwYXJzZV9hcmdzLgogICAgICAtIHJ1bnRpbWUgb3B0aW9ucyB0byBjb250cm9sIHVuZGVyc2NvcmUgYW5kIGNvbW1lbnQgcGFyc2luZyBpbiBtaWJzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA3OjQyOjQ0CiAgICAtIChjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIG1pYi5jLCBzbm1wX2FwaS5jKToKICAgICAgLSB1c2Ugc2V0bG9jYWxlKCkgaWYgYXZhaWxhYmxlIHRvIGNvcnJlY3QgaXNwcmludCBwcm9ibGVtcy4KCmhhcmRha2VyIDEzIERlYyA5OCAwNzo0ODo1MwogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IG5ldyBmdW5jdGlvbnM6IHNubXBfbWliX3RvZ2dsZV9vcHRpb25zKCkgYW5kIHVzYWdlLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA3OjQ5OjQzCiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IC1QIGZsYWcgZm9yIHRvZ2dsaW5nIG5ldyBtaWIgcGFyc2luZyBvcHRpb25zLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjA2OjMzCiAgICAtIChORVdTKTogYmVnaW5uaW5nIG5vdGVzIGZvciAzLjYuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6MDc6MjQKICAgIC0gKGRpc2suYyk6IGZpeCBkaXNrIHNpemUgZXJyb3IgZmxhZyByZXBvcnRpbmcgb24gU29sYXJpcy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODoxMjoxMwogICAgLSAocGFyc2UuYyk6IHNwYWNpbmcgaW4gbWliIG9wdGlvbiB1c2FnZSBmaXhlcy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODoxNDo0NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiByZW1vdmUgLXcvLVcgZmxhZyBpbiB1c2FnZS4KCmhhcmRha2VyIDEzIERlYyA5OCAwODoxODowNwogICAgLSAoa2VybmVsX3N1bm9zNS5jKTogcmVtb3ZlIGEgZmV3IGRlZmluZXMgdGhhdCB3ZXJlIG1lc3NpbmcgdXAgc29sYXJpcyA3LgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjQxOjU1CiAgICAtIChocl9maWxlc3lzLmMpOiB3YXRjaCBvdXQgZm9yIE5VTEwgZmlsZSBwb2ludGVycy4KCmhhcmRha2VyIDEzIERlYyA5OCAwODo0MjoyMAogICAgLSAoaW5ldC5jKTogaW5pdCBwb2ludGVyIHRvIE5VTEwuCgpoYXJkYWtlciAxMyBEZWMgOTggMDg6NDg6MzgKICAgIC0gKGhyX3N3aW5zdC5jKTogUGF0Y2ggZnJvbSBKZWZmIEpvaG5zb246CiAgICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG1lbW9yeSBsZWFrcyB3aXRoIHRoZSBSUE0gcGFja2FnZSBpbmZvIGNhbGxzLgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjU3OjUyCiAgICAtIChSRUFETUUpOiBhZGRlZCBKZWZmIEpvaG5zb24gdG8gdGhlIGNvbnRyaWJ1dG9ycyBsaXN0LgoKaGFyZGFrZXIgMTMgRGVjIDk4IDA4OjU5OjE2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU1ICkKCmhhcmRha2VyIDE2IERlYyA5OCAwNzozMToyNgogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHBvaW50ZXIgY2hlY2tzIGJlZm9yZSBmcmVlaW5nIG1lbW9yeS4KCmhhcmRha2VyIDE4IERlYyA5OCAxMTozNjozOQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHR5cG8uCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTA6MjQKICAgIC0gKHBhcnNlLmMsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgpOgogICAgICAtIGZpeGVzIGZyb20gTWljaGFlbCBTbGlmY2FrLgogICAgICAtIG1pc2MgcmVhZF9jb25maWcgZnVuY3Rpb25zIHB1bGxlZCBpbiBmcm9tIHRoZSB2MyB3b3JrLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjExOjAzCiAgICAtIChsaWJzbm1wLmRlZik6IHVwZGF0ZSBmcm9tIE1pY2hhZWwgU2xpZmNhay4KCmhhcmRha2VyIDE4IERlYyA5OCAxODoxMjo1NAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMpOiBpbmNsdWRlIHJlYWRfY29uZmlnLmguCgpoYXJkYWtlciAxOCBEZWMgOTggMTg6MTY6MzMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gc3RvcmUgY29uZmlndXJlIGZsYWdzIHRvIGEgZGVmaW5lLgoKaGFyZGFrZXIgMTggRGVjIDk4IDE4OjE2OjUzCiAgICAtICh2ZXJzaW9uaW5mby5jLCB2ZXJzaW9uaW5mby5oKTogbWliIG9iamVjdCB0byBkaXNwbGF5IGNvbmZpZ3VyZSBvcHRpb25zLgoKaGFyZGFrZXIgMjEgRGVjIDk4IDE4OjE5OjEyCiAgICAtIChmaWxlLmgsIFVDRC1TTk1QLU1JQi50eHQpOiBtb3ZlIHRoZSBmaWxlIG1pYiB0byAuMTUgc28gaXQgZG9lc24ndAogICAgICBjb25mbGljdCB3aXRoIHRoZSBkZW1vIG1pYi4KCmhhcmRha2VyIDIxIERlYyA5OCAxODoyMDoyNQogICAgLSAoc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBXaW4zMiBtZW1vcnkgbGVhayBmaXhlcyBmb3Igb3BlbmRpcigpLCBldGMuCgpoYXJkYWtlciAyMiBEZWMgOTggMDg6NTA6MjkKICAgIC0gKE1ha2VmaWxlLmluKTogZG9uJ3QgY29tcGlsZSBkbG1vZHMKCmhhcmRha2VyIDIyIERlYyA5OCAxNDo1Njo0NAogICAgLSAobWliLmMsIHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggbXkgYnJva2VuIHNldF9sb2NhbGUgc3R1ZmYuCgpoYXJkYWtlciAyNiBEZWMgOTggMTA6MzU6MjMKICAgIC0gKGRsbW9kLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggZGxtb2QgY29tcGlsYXRpb24gaW4gc25tcGRfcmVnaXN0ZXJfY29uZmlnX2hhbmRsZXIoKSBjYWxsLgoKaGFyZGFrZXIgMjkgRGVjIDk4IDE2OjU1OjU0CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHJlbW92ZSBuZXdsaW5lcyBmcm9tIHNwcmludF92YWx1ZSgpIHdoZXJlIGFwcGxpY2FibGUuCgpoYXJkYWtlciAyOSBEZWMgOTggMTc6MDI6MzMKICAgIC0gKHZhY20uYyk6IEVuYWJsZSBtdWx0aXBsZSBzaWRlIGJ5IHNpZGUgdmlld3MgaW4gdGhlIHZpZXcgZmFtaWx5CiAgICAgIHRyZWUuICBUaGUgdmlld3MgYWxyZWFkeSBleGlzdGVkLCBidXQgd2VyZW4ndCBjaGVja2VkIGFuZCBvbmx5IHRoZQogICAgICBmaXJzdCB2aWV3IHdhcyBmb3VuZC4KICAgICAgLSBOb3QgZG9uZSBpbiBhIGNsZWFuIGZhc2hpb24uICBNdWNoIG9mIHRoZSBzdHJ1Y3R1cmUgZGVmaW5pdGlvbnMKICAgICAgICBzaG91bGQgYmUgcmV3cml0dGVuIHdpdGggc3ViLXBpZWNlcyB0byBkbyBpdCBwcm9wZXJseSB3aXRoIGdyZWF0ZXIKICAgICAgICBzcGVlZC4KCmhhcmRha2VyIDMxIERlYyA5OCAxNzo0NjoxMQogICAgLSAoZXZlbnQuYyk6IFBhdGNoIGZyb20gRGF2aWQgVGlsbGVyOgogICAgICAtIG1lbWNtcCdzIHNpemVzIHdlcmUgd3JvbmcuCgpoYXJkYWtlciAzMSBEZWMgOTggMTc6NDg6NTcKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAgLSBuZWVkIHRvIHJlYWRfb2JqaWQoKSB0aGUgY29udGV4dCBvaWQgYmFzZSwgbm90IHRoZSBwYXJ0eSBvaWQgYmFzZQogICAgICAgIGluIG9uZSBsb2NhdGlvbi4KCmhhcmRha2VyIDMxIERlYyA5OCAxNzo0OTo1MQogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmlkIFRpbGxlcjoKICAgICAgLSBvaWRMZW4ncyB3ZXJlIHdyb25nIGZvciBtMm0gb2lkcy4KCmhhcmRha2VyICAyIEphbiA5OSAwODo0ODoyOQogICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogUGF0Y2ggZnJvbSBKYWtvYiBFbGxlcnN0ZWR0OgogICAgICAtIG5ldyBjb21wbGV0ZSBsaXN0IG9mIGlmVHlwZXMuCgpoYXJkYWtlciAgNSBKYW4gOTkgMTA6NDE6NTIKICAgIC0gKHNubXB0YWJsZS5jKTogTWFrZSBmaWVsZCBzZXBhcmF0b3IgdGFrZSBhcmd1bWVudHMgZGlyZWN0bHkgYWZ0ZXIgdGhlIC1mLgoKaGFyZGFrZXIgIDUgSmFuIDk5IDEwOjQ4OjUxCiAgICAtIChzbm1wYnVsa3dhbGsuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgICAgc25tcHRhYmxlLmMsIHNubXB3YWxrLmMpOiBQYXRjaCBmcm9tIG1zbGlmY2FrQGlzcy5uZXQ6CiAgICAgIC0gbWFrZSBtYWluKCkgcmV0dXJuIGFuIGludCBpbnN0ZWFkIG9mIHZvaWQuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6Mjg6MjEKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCB2YWNtLmMpOgogICAgICAtIEltcGxlbWVudCB0aGUgbmV3IHRva2VuIGJhc2VkIGRlYnVnZ2luZyBtZXNzYWdlIHN1cHBvcnQuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6MzA6MTIKICAgIC0gKHNubXB0YWJsZS5jKTogY2hhbmdlIGludGVybmFsIGRlYnVnIHZhcmlhYmxlIHRvIGxvY2FsZGVidWcuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6MzA6NDcKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbWFrZSAtRCByZWdpc3RlciB0aGUgZGVidWdnaW5nIHRva2VucyBzcGVjaWZpZWQuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6NDk6MjkKICAgIC0gKEZBUSwgUkVBRE1FKTogVVJMIGNoYW5nZXMuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6NTA6MTUKICAgIC0gKHNubXB0cmFwZC5jLCBzbm1wdHJhcGRfaGFuZGxlcnMuYyk6IHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6NTA6MjgKICAgIC0gKGlmLmMsIG1haW4uYyk6IHVzZSB0aGUgbmV3IGRlYnVnZ2luZyBmdW5jdGlvbnMuCgpoYXJkYWtlciAgOSBKYW4gOTkgMjA6NTI6MTAKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBERUJVR1BPSUQgcmVwbGFjZW1lbnQ6IERFQlVHTVNHT0lELgoKaGFyZGFrZXIgIDkgSmFuIDk5IDIwOjUyOjIyCiAgICAtIChzbm1wY21kLjEpOiBkaXNjdXNzIC1EIHVzYWdlIGNoYW5nZS4KCmhhcmRha2VyICA5IEphbiA5OSAyMTo1MDoxMwogICAgLSAoYWdlbnQvKi5jKToKICAgICAgLSB1c2UgdGhlIG5ldyBkZWJ1Z2dpbmcgZnVuY3Rpb25zLgogICAgICAtIGltcGxlbWVudCBuZWVkZWQgLUQgZmxhZyBjaGFuZ2VzLgoKaGFyZGFrZXIgMTQgSmFuIDk5IDA5OjAyOjM2CiAgICAtIChtaWIyYyk6IHVwZGF0ZSBmb3IgU05NUC5wbSAxLjguCgpoYXJkYWtlciAxNSBKYW4gOTkgMTE6MTA6MDkKICAgIC0gKHNubXAycC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSB1c2FnZS4KCmhhcmRha2VyIDE1IEphbiA5OSAxMToxMjoyMgogICAgLSAoc25tcGQuYywgc25tcGQuaCk6CiAgICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSB1c2FnZS4KCmhhcmRha2VyIDE1IEphbiA5OSAxNToyNDowMgogICAgLSAoYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgIC0gbWFkZSBhbGwgKG9rLCBzb21lLiAhaG9zdCkgbWliIG1vZHVsZXMgdXNlIHNubXBkX3JlZ2lzdGVyX2NvbmZpZ19oYW5kbGVyKCkuCiAgICAgIC0gbWFkZSBhbGwgKG9rLCBzb21lLiAhaG9zdCkgbWliIG1vZHVsZXMgdXNlIHJlZ2lzdGVyX21pYigpLgoKaGFyZGFrZXIgMTUgSmFuIDk5IDE1OjU4OjIwCiAgICAtIChNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOiBtYWtlZmlsZWluZGVwZW5kLgoKaGFyZGFrZXIgMTUgSmFuIDk5IDE1OjU4OjUwCiAgICAtICh2YWNtLmMpOiBERUJVR01TRyB0eXBvLgoKaGFyZGFrZXIgMTUgSmFuIDk5IDE2OjE3OjA1CiAgICAtIChzbXV4LmMsIHNtdXguaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAgLSBzbXV4IHBhdGNoZXMuCgpoYXJkYWtlciAxNiBKYW4gOTkgMjM6MDQ6MTIKICAgIC0gKHNubXBjbWQuMSk6IHVwZGF0ZWQgLUQgZGVzY3JpcHRpb24uCgpoYXJkYWtlciAxNiBKYW4gOTkgMjM6MTI6MDMKICAgIC0gKHNubXBsaWIvKi5bY2hdKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIGFzbmknaWZ5IGFsbCBmdW5jdGlvbnMuCgpoYXJkYWtlciAxNiBKYW4gOTkgMjM6MTM6MTAKICAgIC0gKHZlcnNpb24uaCBidWctcmVwb3J0IHNlZHNjcmlwdC5pbik6IHZlcnNpb24gdGFnICggMy42LnByZTYgKQoKaGFyZGFrZXIgMTggSmFuIDk5IDEwOjQ3OjM2CiAgICAtIChSRUFETUUsIGFwcHMsIGFnZW50LCBhY2NvbmZpZy5oKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIGFuc2knaWZ5IGV2ZXJ5dGhpbmcuCgpoYXJkYWtlciAxOSBKYW4gOTkgMTk6NTk6NTMKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHJlbW92ZSBfX1AgY2hlY2tpbmcuCgpoYXJkYWtlciAxOSBKYW4gOTkgMjA6MDE6NTkKICAgIC0gKHNubXB0YWJsZS5jLCBtaWIuYywgcGFyc2UuYywgc25tcF9hdXRoLmMsIGxpYnNubXAuZGVmKTogUGF0Y2ggZnJvbQogICAgICBNaWNoYWVsIEouIFNsaWZjYWs6CiAgICAgIC0gYXBwcy9zbm1wdGFibGUuYyAtIHNvbWUgY29tcGlsZXJzIHdhcm4gY29tcGFyaW5nIHBvaW50ZXIgd2l0aCBpbnRlZ2VyCiAgICAgIC0gc25tcGxpYi9taWIuYyAtIGFscmVhZHkgbWVudGlvbmVkIGJlZm9yZTsgaGVyZSBmb3IgY29tcGxldGUtbmVzcwogICAgICAtIHNubXBsaWIvcGFyc2UuYyAtIG1pbm9yIHRvdWNodXAgb2YgaW5jbHVkZXM7IHN5c3RlbS5oIGR1cCByZW1vdmVkCiAgICAgIC0gc25tcGxpYi9zbm1wX2FwaS5oIC0gTVNWaXN1YWwgQysrIGRvZXNuJ3QgaGF2ZSBfX0ZVTkNUSU9OX18KICAgICAgLSBzbm1wbGliL3NubXBfYXV0aC5jIC0gbWlub3IgZml4IG9mIGNvbW1lbnQKICAgICAgLSB3aW4zMi9saWJzbm1wX2RsbC9saWJzbm1wLmRlZiAtIHNubXBfcGFyc2VfYXJncyBuZWVkcyBhIG5ldyBmdW5jdGlvbgoKaGFyZGFrZXIgMjAgSmFuIDk5IDEyOjIwOjA4CiAgICAtIChGQVEpOiBwZXJsLVNOTVAgYW5kIHkyayBxdWVzdGlvbnMgYWRkZWQuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTI6MjE6MzUKICAgIC0gKGFjY29uZmlnLmgpOiB1bm5lZWRlZCBjb21tZW50IHJlbW92ZWQuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTI6MjE6NTcKICAgIC0gKGludGVyZmFjZXMuYyk6IHR5cG8gaW4gYW5zaSBjaGFuZ2VzLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDEyOjI0OjM0CiAgICAtIChhZ2VudF9yZWFkX2NvbmZpZy5jLCBhdXRvX25saXN0LmMsIHNubXBfYWdlbnQuYywgc25tcGQuYywKICAgICAgaG9zdF9yZXMuaCwgbWliaW5jbC5oLCAuY3ZzaWdub3JlLCBzbm1wX3BhcnNlX2FyZ3MuYywgc25tcHRyYXBkLmMsCiAgICAgIHNubXB0cmFwZF9oYW5kbGVycy5jLCBpZi5jLCBNYWtlZmlsZS5pbiwgbWliLmMsIHBhcnNlLmMsCiAgICAgIHJlYWRfY29uZmlnLmMsIHNubXBfYXBpLmMsIHNubXBfYXBpLmgsIHNubXBfZGVidWcuYywgc25tcF9kZWJ1Zy5oLAogICAgICB2YWNtLmMpOiBkZWJ1Z2dpbmcgc3VwcG9ydCBjb2RlIG1vdmVkIHRvIHNubXBfZGVidWcuW2NoXS4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxMTo1OQogICAgLSAoTWFrZWZpbGUuaW4pOiB2ZXJzaW9uIHRhZyBjcmVhdGlvbi4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNDoxMwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBjaGVjayBmb3IgYXNtL3BhZ2UuaCAobGludXgpLgogICAgICAtIGNoZWNrIGZvciBzeXMvc3RyZWFtLmggKFNDTykuCiAgICAgIC0gRml4IHJ0ZW50cnkgdGVzdC4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNDo0MgogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOiBpbmNsdWRlIHN5cy9zdHJlYW0uaCBmb3IgU0NPLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE0OjU4CiAgICAtICh2ZXJzaW9udGFnKTogdmVyc2lvbiB0YWdnaW5nIGFiaWxpdHkgdG8gZG8gbWFueSB0aGluZ3MuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MTY6MzQKICAgIC0gKGF0LmMsIGludGVyZmFjZXMuYywgaXAuYywgcm91dGVfd3JpdGUuYywgdGNwLmMsIHVkcC5jLAogICAgICB2YXJfcm91dGUuYyk6CiAgICAgIC0gc3lzL3N0cmVhbS5oIG5lZWRlZCBieSBTQ08uCiAgICAgIC0gaW50ZXJmYWNlcyBzY2FuIGZpeGVzIGZvciBsaW51eCAyLjAgdnMgMi4xIGNhbiBiZSBjb25maWd1cmVkIGVsc2V3aGVyZSBub3cuCiAgICAgIC0gcHJvdGVjdCBnZXRfYWRkcmVzcyBjYWxscyBhZ2FpbnN0IE5VTEwgcG9pbnRlciByZXR1cm5zLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjE3OjE3CiAgICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgbG9hZGF2ZS5jLCBtZW1vcnkuYyk6CiAgICAgIC0gbGludXggMi4xIGtlcm5lbCBuZWVkcyBhc20vcGFnZS5oIChhbGwgaW5jbHVkZXMgbmVlZCB0byBiZSByZS13cml0dGVuKS4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToxNzo0MQogICAgLSAobGludXguaCk6IGRlZmluZSBMSU5VWF9JTlRFUkZBQ0VfU0NBTl9MSU5FLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjIwOjA0CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdWNkLXNubXAtaW5jbHVkZXMuaC4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToyMjowOAogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDIwIEphbiA5OSAxNToyMjozOAogICAgLSAoRkFRLCBSRUFETUUpOiBhZGRlZCB2ZXJzaW9uIHN0YW1wLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjMwOjU4CiAgICAtIChDT1BZSU5HKTogSXQncyAxOTk5CgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6MzE6MTMKICAgIC0gKFJFQURNRSk6IGhlbHBpbmcgb3V0IGNoYW5nZXMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTU6NDg6NTMKICAgIC0gKHNtdXguYyk6IHR5cG8KCmhhcmRha2VyIDIwIEphbiA5OSAxNTo0OTozMAogICAgLSAoaHJfc3dpbnN0KTogI2lmZGVmIFJQTSBwcm90ZWN0IGEgZnJlZSByb3V0aW5lLgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE1OjUwOjE3CiAgICAtIChNYWtlZmlsZS5pbik6IHJlbW92ZSB1Y2Qgc3BlY2lmaWMgbWliIG1vZHVsZSBtYWtlIHJlcXVpcmVtZW50cy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTo1NDowMgogICAgLSAoc25tcGQuYyk6IGV4cG9ydCBzZGxpc3QgYW5kIHNkbGVuIHZhcmlhYmxlcy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNTo1NDozNgogICAgLSAoc211eC5jKTogZGVidWdnaW5nIGNoYW5nZXMuCgpoYXJkYWtlciAyMCBKYW4gOTkgMTY6NDE6MjAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgbWFpbi5jLCBzbm1wX2FwaS5jKToKICAgICAgUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gYWxsb3cgemVybyBsZW5ndGggKGxlZ2FsKSBjb21tdW5pdHkgc3RyaW5ncy4KCmhhcmRha2VyIDIwIEphbiA5OSAxNzowMjozNwogICAgLSAoY29uZmlnLmguaW4pOiByYW4gYXV0b2hlYWRlcgoKaGFyZGFrZXIgMjAgSmFuIDk5IDE3OjExOjI2CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU3ICkKCmhhcmRha2VyIDIxIEphbiA5OSAwODozOTozNAogICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBNaWNoYWVsIEouIFNsaWZjYWs6CiAgICAgIC0gdHlwbyBvbiBKb2UncyBuYW1lIGZpeGVkLgoKaGFyZGFrZXIgMjEgSmFuIDk5IDA4OjQwOjI2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgc25tcF9hcGkuYywgY29uZmlnLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwKICAgICAgSi4gU2xpZmNhazoKICAgICAgLSBOT19OVUxMX0NPTVVOSVRZIC0+IE5PX1pFUk9MRU5HVEhfQ09NTVVOSVRZLgoKaGFyZGFrZXIgMjEgSmFuIDk5IDA4OjQyOjE3CiAgICAtIChNYWtlZmlsZS5pbik6IHJlbW92ZSB1Y2Qgc3BlY2lmaWMgbW9kdWxlIGRlcGVuZHMuCgpoYXJkYWtlciAyMiBKYW4gOTkgMDc6MjM6MTMKICAgIC0gKHNubXBfYXBpLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBDaGVjayBmb3IgTlVMTCBvbiBzZXNzaW9uIGNsb3Nlcy4KCmhhcmRha2VyIDI1IEphbiA5OSAxMDoyODowOAogICAgLSAoc25tcGRlbHRhLmMsIHNubXBzdGF0dXMuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgICAgc25tcHRyYXBkX2hhbmRsZXJzLmMsIGluZXQuYywgbWFpbi5jKTogUGF0Y2ggZnJvbSBNYXJra3UgTGF1a2thbmVuOgogICAgICAtIG1vcmUgYW5zaSBmaXhlcy4KCmhhcmRha2VyIDI1IEphbiA5OSAxMDoyODoyNgogICAgLSAodmVyc2lvbnRhZyk6IHR5cG8uCgpoYXJkYWtlciAyNSBKYW4gOTkgMTA6Mjg6NDEKICAgIC0gKGxpbnV4LmgpOiAyLjIgZGVmaW5lIHVwZGF0ZS4KCmhhcmRha2VyIDI1IEphbiA5OSAxMDozMzoyNAogICAgLSAoY29udGV4dF9wYXJzZS5jLCBtaWIuYywgcGFyc2UuYywgcmVhZF9jb25maWcuYywgc25tcF9hcGkuYywKICAgICAgc25tcF9jbGllbnQuYywgc3lzdGVtLmMpOiBQYXRjaCBmcm9tIE1hcmtrdSBMYXVra2FuZW46CiAgICAgIC0gYW5zaSBmaXhlcy4KCmhhcmRha2VyIDI1IEphbiA5OSAxMDozNDoxMQogICAgLSAoc3lzdGVtLmMpOiBmaXggc3RyaW5ncy5oIGluY2x1ZGUuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTE6MTE6NDkKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gdGVzdCBpZiBfX0ZVTkNUSU9OX18gaXMgc3VwcG9ydGVkIGJ5IHRoZSBjb21waWxlci4KCmhhcmRha2VyIDI1IEphbiA5OSAxMToxNTo1MwogICAgLSAoYWdlbnRfcmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIGhvc3RfcmVzLmgsIG1pYmluY2wuaCwKICAgICAgZmlsZS5jLCBpbmV0LmMsIHBhcnNlLmMsIHNubXBfZGVidWcuYyk6CiAgICAgIC0gLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAyNSBKYW4gOTkgMTE6MTY6MTYKICAgIC0gKGxpbnV4LmgpOiBjb21tZW50IHR5cG8uCgpoYXJkYWtlciAyNSBKYW4gOTkgMTY6MjU6MzcKICAgIC0gKFJFQURNRSwgUkVBRE1FLm1pYjJjKTogbWliMmMgcmVhZG1lIGZpbGUuCgpoYXJkYWtlciAyNiBKYW4gOTkgMDk6NDU6NDIKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBjaGFuZ2UgcmVmZXJlbmNlIElQIG5ldCBhZGRyZXNzZXMgdG8gMTAuMTAuMTAuMC4KCmhhcmRha2VyICAyIEZlYiA5OSAxMzozMzoyNQogICAgMjAzNiAtPiAyMDM4CgpoYXJkYWtlciAgMiBGZWIgOTkgMTM6MzQ6MzYKICAgIC0gKHNubXBkLmMpOiB0eXBvOiAtTCAtPiAtQSBpbiBoZWxwIHN0cmluZ3MgZG9jcy4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjowMDoxMwogICAgLSAoRkFRKTogbWVudGlvbiBsYWNrIG9mIHNvbGFyaXMgbWVtb3J5IHN1cHBvcnQuCgpoYXJkYWtlciAgMiBGZWIgOTkgMjI6MDE6MDEKICAgIC0gKFRPRE8pOiBSZW1vdmUgdW5zdXBwb3JlZCBtaWIgbm9kZXMgZnJvbSBvdXRwdXQgaW5zdGVhZCBvZiByZXR1cm5pbmcgMCdzLgoKaGFyZGFrZXIgIDIgRmViIDk5IDIyOjAyOjA0CiAgICAtIChocl9wcm9jLmMpOiB1c2UgWzBdIGluZGV4IG9mIGxvYWQgYXZlcmFnZSB0YWJsZS4KCmhhcmRha2VyICAyIEZlYiA5OSAyMjowMjo0MQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gbWVudGlvbiB0aGF0IHRoZSBtZW1vcnkgc2VjdGlvbiBpc24ndCBzdXBwb3J0ZWQgb24gYWxsCiAgICAgICAgYXJjaGl0ZWN0dXJlcy4KCmhhcmRha2VyICA4IEZlYiA5OSAxMjoyMToyNQogICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBKb2huIFBvbHN0cmE6CiAgICAgIC0gY2FsbCBhY2NlcHQoKSB0byBnZXQgdGhlIHNvY2tldCBmaWxlIGRlc2NyaXB0b3IuCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MDg6NTcKICAgIC0gKEZBUSk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIFRrLnBtIG1lbnRpb24uCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MTM6MDEKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB2YXJpYWJsZSByZW5hbWluZyBpbmRleCAtPiBpaW5kZXguCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MTQ6NDIKICAgIC0gKHNubXBkZWx0YS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgcmVuYW1pbmcgdGltZSAtPiBtX3RpbWUuCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MTc6NTAKICAgIC0gKHJvdXRlLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB2YXJpYWJsZSByZW5hbWluZyBpbmRleCAtPiBJZkluZGV4LgoKaGFyZGFrZXIgIDggRmViIDk5IDE1OjE4OjA4CiAgICAtIChpbmV0LmMpOiBwcm9wZXIgYnJhY2tldCBpbmRlbnRhdGlvbi4KCmhhcmRha2VyICA4IEZlYiA5OSAxNToxOToyMgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHVzZSBzaXplX3QgaW5zdGVhZCBvZiAidW5zaWduZWQiIGZvciB4bWFsbG9jLCBldGMuCgpoYXJkYWtlciAgOCBGZWIgOTkgMTU6MjA6NDcKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfYXBpLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBtYWtlIHNubXBfb2lkX2NvbXBhcmUgdXNlIGNvbnN0J3MuCgpoYXJkYWtlciAgOCBGZWIgOTkgMjM6MjI6MzMKICAgIC0gKGFnZW50LyopOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB0eXBlZGVmIGFsbCBvZiB0aGUgdmFyX3h4eCBhbmQgd3JpdGUgbWV0aG9kIGZ1bmN0aW9ucy4KCmhhcmRha2VyICA4IEZlYiA5OSAyMzoyMzo0MQogICAgLSAoa2VybmVsX3N1bm9zNS5jLCBtaWJpbmNsLmgpIFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGluY2x1ZGUgdXBkYXRlcy4KCmhhcmRha2VyICA5IEZlYiA5OSAxNDoxMDozMwogICAgLSAoTWFrZWZpbGUuaW4pOiBtYWtlIEZBUS5odG1sLgoKaGFyZGFrZXIgIDkgRmViIDk5IDE0OjEwOjUyCiAgICAtIChtaWIyYyk6IHR5cG8uCgpoYXJkYWtlciAgOSBGZWIgOTkgMTQ6MzU6NDYKICAgIC0gKG1pYi5jKTogaW5jcmVhc2UgYnVmZmVyIHNpemUgZm9yIG9pZCBwcmludGluZy4KCmhhcmRha2VyIDExIEZlYiA5OSAxNjoxMDozOQogICAgLSAoKik6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGNvbnZlcnQgTUFYX05BTUVfTEVOIC0+IE1BWF9PSURfTEVOLgogICAgICAtIGNvbnZlcnQgdGVtcG9yYXJ5IGNoYXJhY3RlciBzdG9yYWdlIGJ1ZmZlcnMgdG8gU1BSSU5UX01BWF9MRU4uCiAgICAgIC0gbWFrZSB0aGUgbGlicmFyaWVzIHByaW50XyBmdW5jdGlvbnMgdXNlIHRoZSBmcHJpbnRfIGZ1bmN0aW9uCiAgICAgICAgYWxyZWFkeSBkZWZpbmVkIGFuZCBwYXNzIGl0IHN0ZG91dC4KCmhhcmRha2VyIDExIEZlYiA5OSAxNjoyMjowMwogICAgLSAoaG9zdF9yZXMuaCk6IGluY2x1ZGUgc25tcF92YXJzLmggYWhlYWQgb2YgdmFyX3N0cnVjdC5oLgoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjIzOjE2CiAgICAtIChhY2xfcGFyc2UuYywgY29udGV4dF9wYXJzZS5jLCBwYXJ0eV9wYXJzZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wX2FwaS5jKToKICAgICAgLSBNb3JlIGJ1ZiBzaXplIHN0YW5kYXJkaXphdGlvbnMgdGhhdCBNaWNoYWVsIG1pc3NlZC4KICAgICAgLSBBIGZldyBNQVhfTkFNRV9MRU4gLT4gTUFYX09JRF9MRU4gY29udmVyc2lvbnMgdGhhdCBNaWNoYWVsIG1pc3NlZC4KCmhhcmRha2VyIDExIEZlYiA5OSAxNjozNDowMAogICAgLSAodGNwLmMpOiB2YXJfdGNwRW50cnkgd2FzIGNoZWNraW5nIGFnYWluc3QgdGhlIGluY29taW5nIG9pZCB3aXRoIHRoZQogICAgICB3cm9uZyBsZW5ndGggYW5kIGNvdWxkIHN1Y2NlZWQgYXQgdGltZXMgd2hlbiBpdCBzaG91bGRuJ3QgaGF2ZS4KCmhhcmRha2VyIDExIEZlYiA5OSAxNjo0Njo0OAogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCBFeHQtMy02LXByZTggKQoKaGFyZGFrZXIgMTEgRmViIDk5IDE2OjQ4OjA3CiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmU4ICkKCmhhcmRha2VyIDExIEZlYiA5OSAxNjo0ODoyOQogICAgLSAodmVyc2lvbnRhZyk6IHVwZGF0ZS4KCmhhcmRha2VyIDE2IEZlYiA5OSAxNzowNTo0NQogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB1cGRhdGVkIG1pYjJjIHByb2dyYW0uLi4gIHN0aWxsIGluIHByb2dyZXNzLi4uCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTA6MDAKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBMLiBIaXRjaDoKICAgICAgLSBmaXggaWZfbmFtZSB2YXJpYWJsZSBieSBtYWtpbmcgaXQgc3RhdGljLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjEzOjM4CiAgICAtIChzbm1wZC5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcmVtb3ZlIHJldmVyc2VfYnl0ZXMoKSBwcm90b3R5cGUuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTM6NTgKICAgIC0gKHNubXB0cmFuc2xhdGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHVzYWdlIGZpeC4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxNTo1OQogICAgLSAoaWYuYywgaW5ldC5jLCBtYWluLmMsIG5ldHN0YXQuaCwgcm91dGUuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1ha2Ugc25tcG5ldHN0YXQgd2luMzIgY29tcGF0aWJsZS4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxNjoxNwogICAgLSAobWliMmMsIG1pYjJjLmNvbmYpOiB1cGRhdGUgYWdhaW4gZm9yIGJldHRlciBzdGlsbCBvdXRwdXQuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTc6MTMKICAgIC0gKE1ha2VmaWxlLmluKTogc2VwYXJhdGUgdGFyZ2V0IGZvciBnZW5lcmF0ZWQgbWFudWFsIHBhZ2VzLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjE4OjA2CiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB1c2UgYSAnLScgaW5zdGVhZCBvZiBhICcuJyBmb3IgSUVFRTgwMi0xMS4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToxOTowMwogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gY29tbWVudCByZWZvcm1hdHRpbmcuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MTk6NTIKICAgIC0gKGNvbnRleHRfcGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGRvbid0IHVzZSBhIHZhcmlhYmxlIGNhbGxlZCAndGltZScuICBUc2sgdHNrLgoKaGFyZGFrZXIgMTcgRmViIDk5IDE1OjIxOjI1CiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGZpeCBmcHJpbnRfdmFyaWFibGUgdG8gbm90IHJlY3Vyc2UuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTU6MjM6NDQKICAgIC0gKHBhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHNubXBfYXV0aC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gdmFyaWFibGUgbmFtZSBjb25mbGljdCBmaXhlcy4KCmhhcmRha2VyIDE3IEZlYiA5OSAxNToyODo1NAogICAgLSAoY29uZmlnLmgsIHdpbjMyLmRzdywgbGlic25tcC5kc3AsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5kc3AsCiAgICAgIHNubXBuZXRzdGF0LmRzcCwgc25tcHRhYmxlLmRzcCk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIHdpbjMyIHVwZGF0ZXMuCgpoYXJkYWtlciAxNyBGZWIgOTkgMTY6MTM6NDcKICAgIC0gKHNubXBkLmMsIGR1bW15LmMsIHdvbWJhdC5jLCBzeXN0ZW1fbWliLmMsIHZhY21fdmFycy5jLCBkbG1vZC5jLAogICAgICBkaXNrLmMsIGV4dGVuc2libGUuYywgZmlsZS5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLAogICAgICBtZW1vcnlfZnJlZWJzZDIuYywgcGFzcy5jLCBwYXNzX3BlcnNpc3QuYywgcHJvYy5jLCBtaWIuYywKICAgICAgcmVhZF9jb25maWcuYyk6IHdvcmQgLT4gdG9rZW4gKCJ3b3JkIiBpcyByZXNlcnZlZCBpbiBzb21lIGNvbXBpbGVycy4KCmhhcmRha2VyIDIyIEZlYiA5OSAwOToxMTo1MgogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAgLSBUaGUgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBzZWxlY3QgImFsbG93IHVuZGVyc2NvcmUgaW4gTUlCCiAgICAgICAgc3ltYm9scyIgaXMgbWlzc2luZy4KCmhhcmRha2VyIDIyIEZlYiA5OSAwOTo0NDoyMQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIERvbid0IHByaW50ICJjYW4ndCBmaW5kIG1vZHVsZSBYWFgiIG1lc3NhZ2VzIHdpdGhvdXQgd2FybmluZ3MgdHVybmVkIG9uLgoKaGFyZGFrZXIgMjQgRmViIDk5IDE0OjQzOjIxCiAgICAtIChJQU5BaWZUeXBlLU1JQi50eHQpOiB1cGRhdGUuCgpoYXJkYWtlciAyNCBGZWIgOTkgMTc6MTA6MTMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgbGludXguaCk6CiAgICAgIC0gQ2hlY2sgZm9yIGFuZCBoYW5kbGUgMi4yIC9wcm9jL25ldC9kZXYgY2hhbmdlcy4KCmhhcmRha2VyIDI1IEZlYiA5OSAxMDowMzo0MQogICAgLSAoUkVBRE1FLCB1Y2Rfc25tcC5oLCBtZW1vcnlfc29sYXJpczIuYywgbWVtb3J5X3NvbGFyaXMyLmgpOiBQYXRjaAogICAgICBmcm9tIERhdmlkIEYuIE5ld21hbjoKICAgICAgLSBtZW1vcnkgc3VwcG9ydCBmb3Igc29sYXJpczIuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTU6MDI6NTUKICAgIC0gKGxvYWRhdmUuYywgbG9hZGF2ZS5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBpbXBsZW1lbnQgbG9hZCBhdmVyYWdlIHJlcG9ydGluZyBhcyBhIGludGVnZXIgYW5kIGFzIGEgZmxvYXQuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTU6NDI6MzEKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gVW5saW5rZWQgT0lEIC4uLiBjY2l0dCAwIGZpeCBjb3VydGVzeSBvZiBEYXZlIFNoaWVsZC4KICAgICAgLSBDb250aW51ZSBhZnRlciByZXNlcnZlZCB3b3JkIGVycm9yIGZpeCBjb3VydGVzeSBvZiBEYXZlIFNoaWVsZC4KICAgICAgLSBNb2RpZmljYXRpb24gdG8gIzIgY291cnRlc3kgb2YgTmllbHMgQmFnZ2VzZW4uCiAgICAgIC0gTW9kaWZpY2F0aW9uIHRvIHByaW50IHN1Yi1pZGVudGlmaWVyID09IDAKICAgICAgLSB2YXJpYWJsZSByZW5hbWluZy4KICAgICAgLSBJbnN0ZWFkIG9mIHJlLW9yZGVyaW5nIGFsbCBzaW5nbHktbGlua2VkIGxpc3RzLCB1c2UgYSBuZXcgbWVtYmVyCiAgICAgICAgdGhhdCBmbGFncyB3aGVuIGEgcmVwb3J0IGhhcyBiZWd1bi4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjowNjo0OQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IHVwZGF0ZSBhbmQgbWFkZSBiZXR0ZXIgZXhhbXBsZXMuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MTA6MjEKICAgIC0gKE5FV1MpOiB1cGRhdGUgZm9yIDMuNiByZWxlYXNlLgoKaGFyZGFrZXIgMjYgRmViIDk5IDE2OjEwOjQ3CiAgICAtIChzbm1wdHJhcGQuYyk6IHVzYWdlIHVwZGF0ZSwgYW5kIC1IIHN1cHBvcnQuCgpoYXJkYWtlciAyNiBGZWIgOTkgMTY6MTE6NDkKICAgIC0gKE1ha2VmaWxlLmluLCByZWFkX2NvbmZpZy4zLmRlZiwgc25tcC5jb25mLjUuZGVmLCBzbm1wX2NvbmZpZy41LmRlZiwKICAgICAgc25tcGQuY29uZi41LmRlZiwgc25tcHRyYXBkLjgsIHNubXB0cmFwZC5jb25mLjUuZGVmKToKICAgICAgLSBuZXcgZG9jdW1lbnRhdGlvbiBvbiBjb25maWd1cmF0aW9uIGNhcGFiaWxpdGllcy4KCmhhcmRha2VyIDI2IEZlYiA5OSAxNjozMzowOQogICAgLSAodmVyc2lvbi5oIGJ1Zy1yZXBvcnQgc2Vkc2NyaXB0LmluKTogdmVyc2lvbiB0YWcgKCAzLjYucHJlOSApCgpoYXJkYWtlciAgMSBNYXIgOTkgMTA6NDg6MDMKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiB0eXBvOiBmaWxlTWF4IC0+IGZpbGVFcnJvckZsYWcgbmFtZSBjaGFuZ2UuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjc6MTIKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSByZW5hbWluZyBvZiB2YXJpYWJsZXMgYXdheSBmcm9tIHN5c3RlbSBmdW5jdGlvbiBuYW1lcyAoaW5kZXggLT4gbGluZGV4KS4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyNzozMAogICAgLSAoZXJyb3JtaWIuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIHJlbW92ZSBlcnJubyB2YXJpYWJsZS4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyNzo0NQogICAgLSAoaWYuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIGZyZWUgdGhlIGludGVyZmFjZSB0YWJsZS4KCmhhcmRha2VyICAxIE1hciA5OSAxMjoyODoxNwogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWlrZSBTbGlmY2FrOgogICAgICAtIHJlbW92ZSBkdXBsaWNhdGUgY2FzZSBlbnRyaWVzLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDEyOjI5OjA1CiAgICAtIChzbm1wX2FwaS5jKTogcHV0IGEgcHJvcGVyICh2b2lkKSBpbnRvIHRoZSBmdW5jdGlvbiBwcm90b3R5cGUuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTI6Mjk6NDUKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIE1pa2UgU2xpZmNhazoKICAgICAgLSB2YXJpYWJsZSByZW5hbWluZy4KCmhhcmRha2VyICAxIE1hciA5OSAxMjozMDoxOQogICAgLSAoYXNuMS5oKTogUGF0Y2ggZnJvbSBNaWtlIFNsaWZjYWs6CiAgICAgIC0gYWRkZWQgTUlOX09JRF9MRU4gZm9yIGluc3RydWN0aW9uYWwgdXNlIG1vc3RseSAoaXRzIHVudXNlZCkuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTM6MDM6MTUKICAgIC0gKGNvbnRleHRfcGFyc2UuYywgbWliLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSB0eXBlY2FzdGluZyBmb3IgY2VydGFpbiBmdW5jdGlvbnMgdG8gKGNoYXIgKikuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTM6NTk6MTQKICAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCk6IG1ha2UgY29tcGFyZV90cmVlKCkgZ2xvYmFsLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE0OjA0OjA1CiAgICAtIChzbXV4LmMsIHNtdXguaCk6IFBhdGNoIGZyb20gTmljayBBbWF0bzoKICAgICAgLSBjb21wbGV0ZWx5IHJlLXdyaXR0ZW4gc211eCBtb2R1bGVzLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE0OjIwOjExCiAgICAtIChzbXV4LmMsIHNtdXguaCk6IDMuNmlmaWVkLgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE2OjEwOjU3CiAgICAtIChhbGFybS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gQ2FzdCB0byBwb2ludGVyIHRvIGludCBtYXkgb3ZlcmZsb3cgdGhlIHJldHVybiBidWZmZXIuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTY6MTE6NDkKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBEYXZpZCBGLiBOZXdtYW46CiAgICAgIC0gcmVtb3ZlZCBhIHRyYWlsaW5nIGJhY2tzbGFzaCB0aGF0IHdhc24ndCBuZWVkZWQuCgpoYXJkYWtlciAgMSBNYXIgOTkgMTY6MTc6MzYKICAgIC0gKG1pYl9hcGkuMywgcmVhZF9jb25maWcuMy5kZWYsIHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsCiAgICAgIHNubXBkLjEuZGVmLCBzbm1wZC5jb25mLjUuZGVmLCBzbm1wdGVzdC4xLCBzbm1wdHJhcGQuY29uZi41LmRlZiwKICAgICAgdmFyaWFibGVzLjUpOiBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gc3BlbGwgY2hlY2suCgpoYXJkYWtlciAgMSBNYXIgOTkgMTY6MTk6NTYKICAgIC0gKHNubXAuY29uZi41LmRlZiwgc25tcF9jb25maWcuNS5kZWYsIHNubXBkLjEuZGVmLCBzbm1wdHJhcGQuY29uZi41LmRlZik6CiAgICAgIC0gcmVtb3ZlIHJlZmVyZW5jZSB0byBFQ0UgZGVwdC4KCmhhcmRha2VyICAxIE1hciA5OSAxNjoyMjo0MAogICAgLSAoYXNuMS5oKTogcHV0IGJhY2sgaW4gTUFYX05BTUVfTEVOIHRlbXBvcmFyaWx5LgoKaGFyZGFrZXIgIDEgTWFyIDk5IDE3OjQzOjQ5CiAgICAtIChzbXV4LmMpOgogICAgICAtIGFsbG93IG51bGwgbGVuZ3RoIHBhc3N3b3Jkcy4KICAgICAgLSBjbGVhbiB1cCBkZWJ1Z2dpbmcgb3V0cHV0LgoKaGFyZGFrZXIgIDIgTWFyIDk5IDA4OjQ3OjI5CiAgICAtIChhc24xLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIERvbid0IGRlZmluZSBNQVhfTkFNRV9MRU4gaWYgZGVmaW5lZCBzb21ld2hlcmUgZWxzZS4KCmhhcmRha2VyICAyIE1hciA5OSAxMDo0MjozNAogICAgLSAoc3lzdGVtX21pYi5jLCB2YWNtX3ZhcnMuYywgaXBmd2FjYy5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gU3VnZ2VzdGVkIGZpeGVzIHRvIGVsaW1pbmF0ZSBtb3JlIHNoYWRvd2VkIGdsb2JhbCByZWZlcmVuY2VzLgogICAgICAtIGZpeHVwcyBmb3IgcHJvdG90eXBlIFsodm9pZCkgcmVwbGFjaW5nICgpXS4KCmhhcmRha2VyICAyIE1hciA5OSAxMzoyMzo1NwogICAgLSAodmFyX3JvdXRlLmMpOiBkb24ndCByZXR1cm4gYSBwb2ludGVyIHRvIGEgcG9pbnRlci4KCmhhcmRha2VyICAyIE1hciA5OSAxNToxNzo1MwogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wX2RlYnVnLmMsCiAgICAgIHNubXBfZGVidWcuaCk6CiAgICAgIC0gbmV3IGZsYWc6ICAtLWRpc2FibGUtZGVidWdnaW5nIHRvIGNvbXBsZXRlbHkgdHVybiBvZmYgaXRzIHN1cHBvcnQuCiAgICAgIC0gcmVuYW1pbmcgb2YgRE9ERUJVRyB0byBTTk1QX0FMV0FZU19ERUJVRy4KICAgICAgLSBjbGVhbiB1cCBvZiB0aGUgY29uZmlndXJlIHNjcmlwdCBvcHRpb25zIGxpc3RlZCwgaW5jbHVkaW5nIHB1dHRpbmcKICAgICAgICBhIGxpc3Qgb2YgYXZhaWxhYmxlIG1vZHVsZXMgZm9yIGNvbXBpbGF0aW9uIGludG8gdGhlIGFnZW50LgoKaGFyZGFrZXIgIDIgTWFyIDk5IDE1OjE4OjU5CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogdHlwby4KCmhhcmRha2VyICAyIE1hciA5OSAxNToyMTozNAogICAgLSAoc211eC5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gTGludXggY29tcGlsZXMgZGllIGF0IFNPX1JDVlRJTUVPLgogICAgICAtIC1XYWxsIHR5cGUgZml4ZXMuCgpoYXJkYWtlciAgMyBNYXIgOTkgMDg6MjU6MzMKICAgIC0gKFJFQURNRSk6IEFkZGVkIE5pY2suCgpoYXJkYWtlciAgMyBNYXIgOTkgMDg6Mjg6MDUKICAgIC0gKGNvbmZpZ3VyZSk6IHJhbiBhdXRvY29uZi4uLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDExOjQwOjExCiAgICAtIChwcm9jLmMsIHNvbGFyaXMuaCk6IFBhdGNoIGZyb20gQ2hyaXMgSHVnaGVzOgogICAgICAtIFVzZSAvcHJvYyBvbiBzb2xhcmlzLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDE3OjUxOjI2CiAgICAtIChDaGFuZ2VMb2csIEZBUSwgTkVXUywgUE9SVElORywgUkVBRE1FLCBUT0RPLCBidWctcmVwb3J0LCBzbm1wZC5jLAogICAgICBSRUFETUUubWliMmMpOiBlY2UudWNkYXZpcy5lZHUgLT4gdWNkLXNubXAudWNkYXZpcy5lZHUuCgpoYXJkYWtlciAgMyBNYXIgOTkgMTg6MDA6NTEKICAgIC0gKE5FV1MpOiBtZW50aW9uIG5hbWUgY2hhbmdlLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDE4OjAyOjA3CiAgICAtIChORVdTKTogbWVudGlvbiBTTVVYLgoKaGFyZGFrZXIgIDMgTWFyIDk5IDE4OjAyOjIzCiAgICAtICh2ZXJzaW9uLmggYnVnLXJlcG9ydCBzZWRzY3JpcHQuaW4pOiB2ZXJzaW9uIHRhZyAoIDMuNi5wcmUxMCApCgptc2xpZmNhayAgNCBNYXIgOTkgMDQ6MDg6MDEKICAgIAogICAgKHNubXBuZXRzdGF0L2lmLmMpIC0gYWRkIHZvaWQgdG8gZW1wdHkgZm9ybWFsIHBhcmFtZXRlciBsaXN0CgpoYXJkYWtlciAgNCBNYXIgOTkgMDg6MzY6MzkKICAgIC0gKHZlcnNpb250YWcpOiByZXBvc2l0b3J5IG1vdmUuCgpoYXJkYWtlciAgNCBNYXIgOTkgMDg6MzY6NDYKICAgIC0gKFJFQURNRS5zbXV4KTogYWRkIE5pY2suCgpoYXJkYWtlciAgNCBNYXIgOTkgMDk6MDc6MDcKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogZml4IHZvaWQgdGVzdCBmb3IgYW5zaSBjb21waWxlcnMuCgptc2xpZmNhayAgNCBNYXIgOTkgMDk6MjA6MDgKICAgIAogICAgCiAgICAoYWdlbnQvc25tcGQuYywgc25tcGxpYi9zbm1wX2NsaWVudC5jKSA6IHJlbW92ZSBkdXBsaWNhdGUgaW5jbHVkZXMKICAgIAogICAgKGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0QWRkckVudHJ5LmMsIGFnZW50L21pYmdyb3VwL3RhcmdldC9zbm1wVGFyZ2V0UGFyYW1zRW50cnkuYywgYWdlbnQvbWliZ3JvdXAvdWNkLXNubXAvbWVtb3J5X3NvbGFyaXMyLmMsIGFwcHMvc25tcHRyYXBkX2hhbmRsZXJzLmMpIDogY2hhbmdlICIqd29yZCIgdG8gIip0b2tlbiIgdG8gaGVscCBzb21lIGNvbXBpbGVyCgptc2xpZmNhayAgNCBNYXIgOTkgMDk6MjQ6MjYKICAgIAogICAgCiAgICAoTWFrZWZpbGUuaW4pIC0gZmluZCBtaWJkZWZzLmggd2hlbiBub3QgYnVpbGRpbmcgaW4gdGhlIHNvdXJjZSB0cmVlCgpoYXJkYWtlciAgNCBNYXIgOTkgMDk6MzM6MzEKICAgIC0gKGxvYWRhdmUuYyk6IFBhdGNoIGZyb20gQ2hyaXMgSHVnaGVzOgogICAgICAtIGZpeCBsb2FkIGF2ZXJhZ2Ugb24gc29sYXJpcy4KCmhhcmRha2VyICA0IE1hciA5OSAwOTozODoyOAogICAgLSAocmVtb3ZlLWZpbGVzLCBlY2Utc25tcGQuY29uZiwgZml4cHJvYy5jb25mKToKICAgICAgLSByZW1vdmVkIGVjZSBzcGVjaWZpYyBjb25maWcgZmlsZXMgZnJvbSB0aGUgcmVwb3NpdG9yeS4KICAgICAgLSBkb24ndCByZW1vdmUgbG9jYWwvKi5jb25mIGluIHRoZSBmaXJzdCBwbGFjZSBhbnltb3JlLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDA5OjQ2OjM3CiAgICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gbXNsaWZjYWtAaXNzLm5ldDoKICAgICAgLSBXaGVuIHRoZSBhZ2VudCBpcyBjb21waWxlZCB3aXRoIEhBVkVfTElCUlBNIHNldCwgeWV0IG5vIGRhdGFiYXNlCiAgICAgICAgaXMgZm91bmQsIGFnZW50IHdpbGwgY29yZS4uLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDEzOjE4OjQ3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiByZW1vdmVkIHZvaWQgY2hlY2suCgptc2xpZmNhayAgNCBNYXIgOTkgMTU6MTM6MDAKICAgIAogICAgCiAgICAoaHJfcHJvYy5jLCBsb2FkYXZlLmMpIC0gZml4ZWQgY29yZSBvbiBnZXRsb2FkYXZnIGluIGEgZGlmZmVyZW50IHdheQoKbXNsaWZjYWsgIDQgTWFyIDk5IDE1OjI1OjUzCiAgICAKICAgIChkaXNrLmMpIC0gZXhwbGljaXQgYnJhY2VzIHRvIGF2b2lkIGFtYmlndW91cyBgZWxzZScKCm1zbGlmY2FrICA0IE1hciA5OSAxNToyOToyNAogICAgCiAgICAoaHJfZGlzay5jKSAtIGNvbmRpdGlvbmFsbHkgdXNlIGRlZmluZWQgREtDIGRpc2sgdHlwZXMKCmhhcmRha2VyICA0IE1hciA5OSAxNTo0NTowMgogICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgsIGV4YW1wbGUuYywgc3lzT1JUYWJsZS5jLCBpcGZ3YWNjLmMsCiAgICAgIGRpc2suYywgZXh0ZW5zaWJsZS5jLCBmaWxlLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsIHByb2MuYywgdm1zdGF0LmMsCiAgICAgIHZtc3RhdF9mcmVlYnNkMi5jKToKICAgICAgLSBjcmVhdGUgYW5kIHVzZSBoZWFkZXJfc2ltcGxlX3RhYmxlIHRvIHJlcGxhY2UgY2hlY2ttaWIoKS4KCmhhcmRha2VyICA0IE1hciA5OSAxNjoxNDoxNgogICAgLSAoUkVBRE1FLnNtdXgpOiBQYXRjaCBmcm9tIE5pY2sgQW1hdG86CiAgICAgIC0gdXBkYXRlLgoKaGFyZGFrZXIgIDQgTWFyIDk5IDE2OjI2OjI2CiAgICAtIChmcmVlYnNkMi5oKTogUGF0Y2ggZnJvbSBOaWNrIEFtYXRvOgogICAgICAtIGZpeGVzIGZvciBkdXBsaWNhdGUgZGVmaW5lcy4KCmhhcmRha2VyICA0IE1hciA5OSAxNjozMjoxNgogICAgLSAobWliMmMpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyICA0IE1hciA5OSAxNjo1MDoxNgogICAgLSAodXRpbF9mdW5jcy5jLCBkdW1teS5jLCBleGFtcGxlLmMsIHdvbWJhdC5jLCB0Y3AuYywgaHB1eC5jLAogICAgICBtZW1vcnkuYywgYWxhcm0uYywgc25tcF9hcGkuYyk6CiAgICAgIC0gbWlzYyBmaXhlcywgLVdhbGwgbW9zdGx5LgoKbXNsaWZjYWsgIDQgTWFyIDk5IDE3OjAwOjUwCiAgICAKICAgIChzeXNPUlRhYmxlLmMpIC0gcmVtb3ZlIHN0YXRpYyB1X2xvbmcgbG9uZ19yZXR1cm4sIGZvciBjb25zaXN0ZW5jeS4KCm1zbGlmY2FrICA0IE1hciA5OSAxNzowNzoxMAogICAgCiAgICAoc29sYXJpcy5oKSAtIHVuZG8gX1NMQVNIX1BST0NfTUVUSE9EXyA6IGFub3RoZXIgdGltZQoKbXNsaWZjYWsgIDQgTWFyIDk5IDE3OjUwOjI5CiAgICAKICAgIFJlcGxhY2UgdXNlcyBvZiBiemVybyB3aXRoIG1lbXNldCwgYmNvcHkgd2l0aCBtZW1jcHkuCiAgICBGaXggcHJvdG90eXBlcy4KCm1zbGlmY2FrICA0IE1hciA5OSAxODoxMTozNwogICAgCiAgICAoc25tcF9hcGkuYykgLSBleHBvc2Ugc25tcF9mcmVlOyBzbm1wX3BkdV9hZGRfdmFyaWFibGUgcmV0dXJucyBwdHIgdG8gdmFyIGZvcgogICAgZnV0dXJlIGltcHJvdmVkIGVycm9yIHJlY292ZXJ5LgoKbXNsaWZjYWsgIDUgTWFyIDk5IDA5OjQwOjExCiAgICAKICAgIEZpeCBXaW4zMiB2ZXJzaW9uIG9mIGdldHRpbWVvZmRheSA6IHR2X3VzZWMgd2FzIG1pbGxpc2VjcyAsIHJldHVybiBub3cgPSAwCgpoYXJkYWtlciAgNSBNYXIgOTkgMTA6MTE6MjkKICAgIC0gKG1pYjJjLCBtaWIyYy5jb25mKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSB0aGUgdXNlIG9mICdoZWFkZXJfc2ltcGxlX3RhYmxlJyByYXRoZXIgdGhhbiAnY2hlY2ttaWInCiAgICAgIC0gZXhwbGljaXQgY29tcGFyaXNvbiB3aXRoIE1BVENIX0ZBSUxFRAogICAgICAtIGRvbid0IHNldCBkZWZhdWx0cyBmb3IgJ3dyaXRlX21ldGhvZCcgYW5kICd2YXJfbGVuJwogICAgCQkoc2luY2UgYm90aCAnaGVhZGVyX2dlbmVyaWMnIGFuZCAnY2hlY2ttaWInIGRvIHRoaXMgYW55d2F5KQogICAgICAtIFVzZSBkZWZpbmVkIGNvbnN0YW50cyBmb3IgdmFyaWFibGUgaW5pdGlhbGlzYXRpb24gaW4gdGhlCiAgICAJCXdyaXRlIHJvdXRpbmUgKHNpbWlsYXJseSBpbiB0aGUgbWliMmMuY29uZiBwYXRjaCkKICAgICAgICAgIFtUaGlzIGlzIG9uZSBvZiBteSBob2JieS1ob3JzZXMgd2l0aCBvdXIgc3R1ZGVudHMsIHNvIEkgZG9uJ3QKICAgIAkJIHNlZSB3aHkgInByb2Zlc3Npb25hbCIgcHJvZ3JhbW1lcnMgc2hvdWxkIGJlIGV4ZW1wdCFdCiAgICAKICAgICAgLSBNYWtlIHByb3BlciB1c2Ugb2YgdGhlIHRocmVlLXBoYXNlIG5hdHVyZSBvZiBTRVRzCgpoYXJkYWtlciAgNSBNYXIgOTkgMTA6MjE6MjUKICAgIC0gKEZBUSk6IHVwZGF0ZSBmcm9tIERhdmU6IHJlYXJyYW5naW5nIGFuZCBjbGVhbmluZy4KCmhhcmRha2VyICA1IE1hciA5OSAxMDo0Mjo0MAogICAgLSAoc25tcF9hZ2VudC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBzd2l0Y2ggQ09NTUlUIGFuZCBBQ1RJT04gcGhhc2VzLgoKbXNsaWZjYWsgIDUgTWFyIDk5IDExOjAyOjM0CiAgICAKICAgICh0Y3AuYykgLSBicmVhayBvdXQgb2YgaW5maW5pdGUgbG9vcCB3aGVuIGtsb29rdXAgZmFpbHMuCgpoYXJkYWtlciAgNSBNYXIgOTkgMTU6MTM6MDIKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gcmVtb3ZlIHBlcnNpc3RlbnQgc3RvcmFnZSBpbmZvLCBzaW5jZSBpdHMgbm90IHVzZWQgdGhpcyByZWxlYXNlLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE1OjMxOjUyCiAgICAtIChzbm1wX2ltcGwuaCk6IGNyZWF0ZSBVTkRPCgpoYXJkYWtlciAgNSBNYXIgOTkgMTU6Mzg6MzIKICAgIC0gKHRrbWliKTogdXBkYXRlLgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE1OjU3OjM2CiAgICAtIChrZXJuZWxfc3Vub3M1LmMsIHdvbWJhdC5jLCBocl9uZXR3b3JrLmMsIHNubXBfbWliLmgsIHN5c3RlbV9taWIuaCwKICAgICAgZGlzay5oLCBlcnJvcm1pYi5oLCBleHRlbnNpYmxlLmgsIGZpbGUuaCwgbWVtb3J5X3NvbGFyaXMyLmgsIHBhc3MuaCwKICAgICAgcHJvYy5oLCByZWdpc3RyeS5oLCB2ZXJzaW9uaW5mby5oKToKICAgICAgLSAtV2FsbCBmaXhlcywgbW9zdGx5IGluaXRfKCkgcm91dGluZXMgZGVjbGFpcmVkIGluIHRoZSBhcHByb3ByaWF0ZSAuaCBmaWxlcy4KCmhhcmRha2VyICA1IE1hciA5OSAxNjowMjowNgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB1cGRhdGVkIC0taGVscCdzIG1vZHVsZSBsaXN0LgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE2OjEwOjMwCiAgICAtICh2bXN0YXQuaCk6IGRlY2xhaXIgaW5pdF92bXN0YXQoKS4KCmhhcmRha2VyICA1IE1hciA5OSAxNzowODoyMQogICAgLSAoRkFRKTogcmVmZXJlbmNlIEFHRU5UIGRvY3VtZW50LgoKaGFyZGFrZXIgIDUgTWFyIDk5IDE3OjExOjQ4CiAgICAtIChtaWJJSS9zeXN0ZW0uaCk6IHJlbW92ZWQKCmhhcmRha2VyICA1IE1hciA5OSAxNzoxOToxNAogICAgLSAoRkFRLCBORVdTKTogZmluYWwgdXBkYXRlcy4KCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuNS4yIC0+IFYzLjUuMwoKaGFyZGFrZXIgMTIgU2VwIDk4IDA5OjAyOjM3CiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gYnVnIGZpeCB0byBjaGVjayBmb3IgTlVMTCBzZXNzaW9uIHBvaW50ZXIgYmVmb3JlIHVzaW5nIGl0LgoKaGFyZGFrZXIgMjAgU2VwIDk4IDExOjQ3OjE3CiAgICAtIChzbm1wX2FnZW50LmMpOiBpZiBhIG1pYiBtb2R1bGUgcmV0dXJucyBhbiBlcnJvciA+IFNOTVBfR0VOX0VSUiwKICAgICAgdHJhbnNsYXRlIHRoZSBlcnJvciB0byBTTk1QX0dFTl9FUlIgZm9yIHYxIHJlcXVlc3RzLgoKaGFyZGFrZXIgMjEgU2VwIDk4IDExOjEzOjE5CiAgICAtIChzbm1wX3ZhcnMuYyk6IGZpbmFsbHkgZml4ZWQgdGhlIHdyaXRlX21ldGhvZCdzIGZvciBjcmVhdGlvbiBwcm9ibGVtLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE2OjUzOjMxCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogdXBkYXRlLgoKaGFyZGFrZXIgMjUgU2VwIDk4IDE3OjAyOjM5CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHBlcmwgZXEgLT4gdGVzdCA9IChvcHBzKS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzowODoyNQogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGNoZWNrIGZvciBhIG51bGwgbmFtZS4KCmhhcmRha2VyIDI1IFNlcCA5OCAxNzo0MjoxMAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSB1c2UgYSBtZW1zZXQgdG8gemVybyBvdXQgbmV3IHBvaW50ZXJzIGluc3RlYWQgb2YgZG9pbmcgaXQgYnkgaGFuZC4KCmhhcmRha2VyIDI4IFNlcCA5OCAxMzowOTowNgogICAgLSAoaW50ZXJmYWNlcy5jKTogZG9uJ3QgdXNlIGEgJiBvbiBvc2YzIGZvciBhcnBjb20uYWNfZW5hZGRyLgoKaGFyZGFrZXIgMjggU2VwIDk4IDEzOjA5OjQ1CiAgICAtIChzbm1wX2FwaS5jKTogdHlwZWNhc3QgdGhlIGRlZmF1bHQgY29tbXVuaXR5IHN0cmluZyB0byAodV9jaGFyICopLgoKaGFyZGFrZXIgMjggU2VwIDk4IDE1OjQyOjIxCiAgICAtIChtZW1vcnkuYyk6IC9ldGMvc3dhcGluZm8gLT4gL3Vzci9zYmluL3N3YXBpbmZvIGZvciBocHV4MTAuCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzOiBWMy41LjEgLT4gVjMuNS4yCgpoYXJkYWtlciAgOCBTZXAgOTggMDk6MjY6MTMKICAgIC0gKE5FV1MpOiB1cGRhdGUuCgpoYXJkYWtlciAgOCBTZXAgOTggMDk6MzM6MjUKICAgIC0gKENoYW5nZUxvZyk6IHVwZGF0ZSBmb3IgMy41LjEuCgpoYXJkYWtlciAgOCBTZXAgOTggMDk6MzU6NTUKICAgIHZlcnNpb24gdGFnICggMy41LjEgKQoKaGFyZGFrZXIgIDkgU2VwIDk4IDA5OjQ1OjI0CiAgICAtIChNYWtlZmlsZS5pbik6IFB1dCBhbiBAIHNpZ24gaW4gZnJvbnQgb2YgdGhlIGxhc3QgZWNobyBsaW5lLgoKaGFyZGFrZXIgIDkgU2VwIDk4IDA5OjQ2OjM1CiAgICAtIChtZW1vcnkuYywgbWVtb3J5LmgsIG1lbW9yeV9mcmVlYnNkMi5jLCBtZW1vcnlfZnJlZWJzZDIuaCk6CiAgICAgIC0gQ2hhbmdlIGFsbCBpbnN0YW5jZXMgb2YgVVNFRCAtPiBBVkFJTCBzaW5jZSB0aGF0cyByZWFsbHkgd2hhdAogICAgICAgIHdlJ3JlIHJlcG9ydGluZy4KCmhhcmRha2VyICA5IFNlcCA5OCAwOTo1MDoyMgogICAgLSAobWVtb3J5LmMsIG1lbW9yeS5oLCBtZW1vcnlfZnJlZWJzZDIuYywgbWVtb3J5X2ZyZWVic2QyLmgpOgogICAgICAtIGNvcnJlY3Qgd29yayBJIHN0dXBpZGx5IG1hZGUgd2hlbiB0aXJlZC4KCmhhcmRha2VyICA5IFNlcCA5OCAxMTowMDo0NAogICAgLSAoTkVXUyk6IHVwZGF0ZSBmb3IgMy41LjIuCgptYXJ6ICA5IFNlcCA5OCAgMTg6MzE6MDAKICAgIC0gKHNubXB0cmFwLmMsIHNubXB0ZXN0LmMpOiBhZGQgU09DS18gbWFjcm9zIGZvciB3aW4zMiBzdXBwb3J0CgkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJCkNoYW5nZXM6IFYzLjUgLT4gVjMuNS4xCgpoYXJkYWtlciAyMiBKdW4gOTggMDk6MTY6MzIKICAgIC0gKG1haW4uYyk6IFBhdGNoIGZyb20gSmVycnkgRy4gRGVMYXBwOgogICAgICAtIGNvbW1lbnRlZCBvdXQgdHJhaWxpbmcgI2VuZGlmIGNvbW1lbnQuCgpoYXJkYWtlciAyNCBKdW4gOTggMTA6MzA6MTkKICAgIC0gKE1ha2VmaWxlLmluKTogbWFuLT5odG1sIG1ha2Ugc3BlY2lmaWNhdGlvbi4KCmhhcmRha2VyIDI0IEp1biA5OCAxMTowODo0MQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc2h1dGRvd24gdHJhcCBzcGVjaWZpY2F0aW9ucy4KICAgICAgLSBtaXNjIG1pYiBmaXhlcy4KCmhhcmRha2VyIDI2IEp1biA5OCAxMDo0MjozMgogICAgLSAoZGlzay5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIERvdWdsYXNzOgogICAgICAtIGZpeCBjYWxjdWxhdGlvbiBvZiB0b3RhbGRpc2sgYnkgZG9pbmcgYmxvY2sgZGl2aXNpb24gZmlyc3QgdG8KICAgICAgICBwcm90ZWN0IGFnYWluc3QgMzIgYml0IG92ZXJmbG93cy4KCmhhcmRha2VyIDI2IEp1biA5OCAxMDo0NToxNQogICAgLSAoc211eC5jLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oKTogUGF0Y2gKICAgICAgZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBGaXggZm9yIG5ldyBkZWZpbmVzIGFuZCBwcm9wZXIgaGVhZGVyIGluY2x1ZGVzLgoKaGFyZGFrZXIgMjYgSnVuIDk4IDE1OjAzOjM4CiAgICAtIChnZW5lcmljLmgpOiBwdXQgaW4gYSBjb21tZW50IHRvIGtlZXAgY29tcGlsZXJzIGZyb20gY29tcGxhaW5pbmcgdG9vIG11Y2guCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6MjY6MjUKICAgIC0gKGZyZWVic2QyLmgpOiB1c2UgX1VUTVBfUEFUSCBpZiBhdmFpbGFibGUuCgpoYXJkYWtlciAgOCBKdWwgOTggMTI6MjY6MzQKICAgIC0gKGlyaXguaCk6IGRlZmluZSBfS01FTVVTRVIKCmhhcmRha2VyICA4IEp1bCA5OCAxMjoyNzoxMgogICAgLSAod2luMzIub3B0LCBsaWJzbm1wLmRzcCwgbGlic25tcC5wbGcsIGxpYnNubXAuZGVmLCBsaWJzbm1wX2RsbC5wbGcsCiAgICAgIHNubXBidWxrd2Fsay5kc3AsIHNubXBidWxrd2Fsay5wbGcsIHNubXBnZXQuZHNwLCBzbm1wZ2V0LnBsZywKICAgICAgc25tcGdldG5leHQuZHNwLCBzbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQuZHNwLCBzbm1wc2V0LnBsZywKICAgICAgc25tcHN0YXR1cy5kc3AsIHNubXBzdGF0dXMucGxnLCBzbm1wdHJhbnNsYXRlLmRzcCwKICAgICAgc25tcHRyYW5zbGF0ZS5wbGcsIHNubXB3YWxrLmRzcCwgc25tcHdhbGsucGxnKTogUGF0Y2ggZnJvbSBKb2UKICAgICAgTWFyem90OgogICAgICAtIHdpbjMyIHVwZGF0ZS4KCmhhcmRha2VyICA4IEp1bCA5OCAxMjo1ODowMwogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBmaXggIm51bWJlciBvZiByZXRyaWVzIiBidWcuCiAgICAgIC0gcmVtb3ZlIG9kZCB0aW1lb3V0IGNhbGN1bGF0aW9uIGNvZGUgZm9yIHJldHJpZXMgPiAzLgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDI6MDYKICAgIC0gKGludGVyZmFjZXMuYyk6IG1ha2UgaHBfaW50ZXJmYWNlcyBzdHJ1Y3R1cmUgc3RhdGljLgoKaGFyZGFrZXIgIDggSnVsIDk4IDEzOjAzOjM2CiAgICAtIChzeXN0ZW0uYyk6IGRvbid0IGZyZWUgZW52IHBvaW50ZXJzIHRoYXQgYXJlIGNyZWF0ZWQuCgpoYXJkYWtlciAgOCBKdWwgOTggMTM6MDg6MTgKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBmb3IgbWlzc2luZyBvYmplY3QgaWRlbnRpZmllciBsYWJlbHMuCgpoYXJkYWtlciAgOCBKdWwgOTggMTQ6NDM6NTYKICAgIC0gKHNubXBfdmFycy5jKTogaW5jbHVkZSBmaXhlcy4KaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ0OjM0CiAgICAtIChwYXNzLmMpOiBpbmNsdWRlIHN5cy93YWl0LmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NDo0MQogICAgLSAodmVyc2lvbmluZm8uYyk6IGluY2x1ZGUgc3lzdGVtLmgKCmhhcmRha2VyICA4IEp1bCA5OCAxNDo0NToyMgogICAgLSAocGFyc2UuYyk6IGluY2x1ZGUgc25tcF9hcGkuaAoKaGFyZGFrZXIgIDggSnVsIDk4IDE0OjQ1OjQyCiAgICAtIChzbm1wX2FwaS5jKTogaW5jbHVkZSBmaXhlcy4KCmhhcmRha2VyIDE1IEp1bCA5OCAxNTo0NjoyOAogICAgLSAoc2Vkc2NyaXB0LmluKTogdXNpbmdfbW9kdWxlIGNoYW5nZXMuCgpoYXJkYWtlciAxNSBKdWwgOTggMTU6NDY6NTUKICAgIC0gKG1lbW9yeS5oKTogTUVNU1dBUE1JTklNVU0gd2Fzbid0IGJlaW5nIHVzZWQuCgpoYXJkYWtlciAxNyBKdWwgOTggMTM6MTE6MTAKICAgIC0gKFVDRC1TTk1QLU1JQi5pbmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGNyZWF0ZWQgc21pY25nIGlucHV0IGZpbGUuCiAgICAgIC0gZml4ZWQgdGhlIFVDRC1TTk1QIG1pYiB0byBkZWFsIHdpdGggbW9zdCBzbWljIGVycm9ycy4KCmhhcmRha2VyIDE3IEp1bCA5OCAxMzoyMjozMgogICAgLSAoUkZDLTEyMTUudHh0KTogY3JlYXRlZCBhbiBlbXB0eSBtaWIgbW9kdWxlIGZvciBpbXBvcnRpbmcgb2YgVFJBUC1UWVBFLgoKaGFyZGFrZXIgMTcgSnVsIDk4IDE2OjU5OjUxCiAgICAtICgqKTogdXBkYXRlIGZvciAzLjUuMS4KCmhhcmRha2VyIDIwIEp1bCA5OCAxNzoxNDoyMQogICAgLSAoc25tcGNoZWNrLmRlZik6IHdvcmsgYXJvdW5kIGZvciBuZXcgbXVsdGktZGVwdGggbWliIHRhYmxlcy4uCgpoYXJkYWtlciAyMiBKdWwgOTggMTU6MzU6MDcKICAgIC0gKG1pYi5jKTogZG9uJ3QgY2hhbmdlIHJ1bm5pbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpdGggc3RydG9rLgoKaGFyZGFrZXIgMjIgSnVsIDk4IDE2OjIzOjQ1CiAgICAtIChNYWtlZmlsZS5pbiwgc2Vkc2NyaXB0LmluKTogZml4IHNlZHNjcmlwdCBpbmNsdWRlcy4KCmhhcmRha2VyIDI0IEp1bCA5OCAwOToyNTozMwogICAgLSAoZGlzay5jKTogaW5jcmVtZW50IGluZGV4IGJ5IDEgc28gaXQgZG9lc24ndCBzdGFydCBhdCAwLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEwOjAyOjE0CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogdmFyaW91cyBkb2N1bWVuYXRpb24gdXBkYXRlcyBhbmQgbm90ZXMuCgpoYXJkYWtlciAyNCBKdWwgOTggMTA6MDI6MjUKICAgIC0gKHNubXB0cmFuc2xhdGUuMSk6IG5yb2ZmIGVycm9yLgoKaGFyZGFrZXIgMjQgSnVsIDk4IDEwOjI1OjQ0CiAgICAtIChzbm1wdHJhcGQuOCk6IGJyb3VnaHQgdXAgdG8gZGF0ZS4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMjoxMDowNwogICAgLSAoc25tcC5jKTogaW5jbHVkZSBzeXMvc2VsZWN0LmggZm9yIEFJWC4KCmhhcmRha2VyIDI0IEp1bCA5OCAxMjoyNDoyMgogICAgLSAoYWNsLmgsIGFzbjEuaCwgbWQ1LmgsIG1pYi5oLCBwYXJzZS5oLCBzbm1wLmgsIHNubXBfYXBpLmgsCiAgICAgIHNubXBfY2xpZW50LmgsIHNubXBfaW1wbC5oLCB2YWNtLmgsIHZpZXcuaCk6CiAgICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGluY2x1c2lvbnMuCgpoYXJkYWtlciAyOSBKdWwgOTggMTM6NDQ6MjIKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBpbnN0YWxsIHNob3VsZCBkbyBhIHJlYWwgbWFrZSBhbGwgZmlyc3QuCgpoYXJkYWtlciAxMiBBdWcgOTggMTU6NTc6MTgKICAgIC0gKHNubXBfdmFycy5jKTogaWZkZWYgZml4ZXMgZm9yIHYycGFydCBtb2R1bGVzLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE1OjU3OjQyCiAgICAtIChleHRlbnNpYmxlLmMsIHByb2MuYyk6IGZpeGl0IHByb2JsZW1zIHdpdGggYXJyYXkgaW5kZXggd3JvbmcuCgpoYXJkYWtlciAxMiBBdWcgOTggMTU6NTc6NTIKICAgIC0gKGxpYnNubXAuZGVmKTogZmluZF9tb2R1bGUgYWRkZWQuCgpoYXJkYWtlciAxMiBBdWcgOTggMTY6MDU6MjgKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKToKICAgICAgLSBsaWJ3cmFwIGNvbW1hbmQgbGluZSBmaXhlcy4KICAgICAgLSAtLXdpdGgtbGRmbGFncyBjb21tYW5kIGxpbmUgb3B0aW9uIGNyZWF0ZWQuCgpoYXJkYWtlciAxMiBBdWcgOTggMTY6NTU6MzIKICAgIC0gKG1pYl9hcGkuMywgc25tcGQuMS5kZWYsIHZhcmlhYmxlcy41KTogdXBkYXRlcyB0byByZW1vdmUgbWliLnR4dCByZWZlcmVuY2VzLgoKaGFyZGFrZXIgMTIgQXVnIDk4IDE2OjU4OjExCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGRvbid0IGluY2x1ZGUgbGlicmFyaWVzIHRoYXQgYXJlbid0IG5lZWRlZCBpZiBnZXRob3N0YnluYW1lIGlzbid0IGluIG9uZS4KCmhhcmRha2VyIDEyIEF1ZyA5OCAxNjo1OTo1MAogICAgLSAoc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBmaXggdGhlIEVSUk9SX01TRygpIG1hY3JvIHRvIHVzZSBzbm1wX3NldF9kZXRhaWwuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6MjE6NDQKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhbnNsYXRlLmMpOiB1c2FnZSBmaXhlcyBhbmQgLW0vLU0gdG8gc25tcHRyYW5zbGF0ZS4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0Mjo0OQogICAgLSAoYXV0b19ubGlzdC5jKTogZml4IGZvciBzdHVwaWQgYWl4IGtlcm5lbHMuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6MDcKICAgIC0gKHVjZF9zbm1wLmgsIG1lbW9yeV9mcmVlYnNkMi5jLCB2bXN0YXRfZnJlZWJzZDIuYyk6IFBhdGNoIGZyb20gSm9uYXMgT2xzc29uOgogICAgICAtIG1ha2UgdGhlIG1lbW9yeSBhbmQgdm1zdGF0IG1vZHVsZSB3b3JrIHVuZGVyIGZyZWVic2QyLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDA4OjQ0OjA3CiAgICBmaWxlIG1lbW9yeV9mcmVlYnNkMi5jIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDowNwogICAgZmlsZSB2bXN0YXRfZnJlZWJzZDIuYyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6MjkKICAgIC0gKFJFQURNRSk6IEFkZGVkIHR3byBuZXcgbmFtZXMgdG8gdGhlIHRoYW5reW91IGxpc3QuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NDQ6MzcKICAgIC0gKHNlZHNjcmlwdC5pbik6IGNvcnJlY3QgaW5jbHVkZSBmaWxlcy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwODo0NDo1MgogICAgLSAoTWFrZWZpbGUuaW4pOiBDUFAgbmVlZHMgdG8gY2hlY2sgYWdlbnQvbWliZ3JvdXAgZm9yIGhlYWRlcnMuCgpoYXJkYWtlciAxNCBBdWcgOTggMDg6NTI6MzIKICAgIC0gKG1pYi5jLCBwYXJzZS5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBhZG9wdCB1bmtub3duIGNoaWxkcmVuIGludG8gdGhlIGNvcnJlY3QgcGxhY2UgaWYgSU1QT1JUUyBhcmUgc2NyZXdlZCB1cC4KCmhhcmRha2VyIDE0IEF1ZyA5OCAwOTozMjo0NQogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBKYW1lcyBILiBZb3VuZzoKICAgICAgLSB1c2FnZSBvdXRwdXQgY2xlYW4gdXAuCgpoYXJkYWtlciAxNCBBdWcgOTggMTA6MTM6MTMKICAgIC0gKENPUFlJTkcpOiBjb3B5cmlnaHQgY2hhbmdlLgoKaGFyZGFrZXIgMTQgQXVnIDk4IDEwOjE0OjA2CiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBNYWxsb2MgLT4geG1hbGxvYy4KICAgICAgLSBwYXJzZXIgY2hhbmdlcy4KCmhhcmRha2VyIDE0IEF1ZyA5OCAxMDoxNDo1OQogICAgLSAoYXQuYyk6IGZpeGVzIGZvciBsaW51eC4KCmhhcmRha2VyIDMxIEF1ZyA5OCAxMzowMzowMgogICAgLSAoaW50ZXJmYWNlcy5jKTogbWlzc2luZyByZXR1cm4gb24gaWZJbkVycm9ycyByZXN1bHRzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjMyOjQzCiAgICAtIChzbm1wdHJhcGQuYyk6IGFkZCBhIGJsYW5rIGxpbmUgdG8gdGhlIGVuZCBvZiB0aGUgdHJhcGQgb3V0cHV0IGZvciBwYXJzaW5nLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjEwOjI1CiAgICAtIChzbm1wX3ZhcnMuYyk6IGluX2FfdmlldygpOiBjcmVhdGUgbmV3IGZ1bmN0aW9uLCBhbmQgdXNlIGl0LgoKaGFyZGFrZXIgMzEgQXVnIDk4IDE2OjEwOjUwCiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfaW1wbC5oKTogZml4IHJlYWQvd3JpdGUgY2hlY2tzLgoKaGFyZGFrZXIgMzEgQXVnIDk4IDEzOjAzOjAyCiAgICAtIChpbnRlcmZhY2VzLmMpOiBtaXNzaW5nIHJldHVybiBvbiBpZkluRXJyb3JzIHJlc3VsdHMuCgpoYXJkYWtlciAzMSBBdWcgOTggMTM6MzI6NDMKICAgIC0gKHNubXB0cmFwZC5jKTogYWRkIGEgYmxhbmsgbGluZSB0byB0aGUgZW5kIG9mIHRoZSB0cmFwZCBvdXRwdXQgZm9yIHBhcnNpbmcuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6MTA6MjUKICAgIC0gKHNubXBfdmFycy5jKTogaW5fYV92aWV3KCk6IGNyZWF0ZSBuZXcgZnVuY3Rpb24sIGFuZCB1c2UgaXQuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6MTA6NTAKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9pbXBsLmgpOiBmaXggcmVhZC93cml0ZSBjaGVja3MuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6Mzc6MDQKICAgIC0gKENoYW5nZUxvZywgTkVXUyk6IHVwZGF0ZSBmb3IgMy41LjEuCgpoYXJkYWtlciAzMSBBdWcgOTggMTY6Mzc6MTUKICAgIHZlcnNpb24gdGFnICggMy41LjEucHJlMSApCgpoYXJkYWtlciAgMiBTZXAgOTggMTA6NTU6NTIKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCByZWFkX2NvbmZpZy5jLCBzbm1wMnAuYywgc25tcF9hZ2VudC5jLAogICAgICBzbm1wX3ZhcnMuYywgc25tcGQuYywgc25tcGQuaCwgdXRpbF9mdW5jcy5jLCBpbnRlcmZhY2VzLmMsIHN5c3RlbS5oLAogICAgICB0Y3AuYywgc211eC5jLCBzbm1wX2JncC5jLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywgc25tcF9vc3BmLmgsCiAgICAgIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCwgZXh0ZW5zaWJsZS5jLCBsb2FkYXZlLmMsCiAgICAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhcC5jLAogICAgICBzbm1wdHJhcGQuYywgaW5ldC5jLCBtYWluLmMsIG5ldHN0YXQuaCwgbWliX2FwaS4zLCBzbm1wX2FwaS4zLAogICAgICBzbm1wZC4xLmRlZiwgZnJlZWJzZC5oLCBmcmVlYnNkMi5oLCBuZXRic2QuaCwgYXNuMS5oLCBtaWIuYywKICAgICAgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuYywgc25tcF9hcGkuaCwgc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20KICAgICAgTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcHJvdG90eXBlcywgYXMgdXN1YWwgKHdoZW4gaXMgZXZlcnlib2R5IHN0YXJ0aW5nIHRvIHVzZSAtV2FsbAogICAgICAgIC1Xc3RyaWN0LXByb3RvdHlwZXMgLi4uLikKICAgICAgLSBzbm1wZCBzZW5kIGFuIGVudGVycHJpc2Ugc3BlY2lmaWMgdHJhcCB3aGVuIGl0IHRlcm1pbmF0ZXMKICAgICAgLSBwb3NzaWJpbGl0eSBmb3Igc2VuZGluZyB2MmMgdHJhcHMgKG9yIGluZm9ybXMpLCB2aWEgdHJhcDJzaW5rIGRpcmVjdGl2ZQogICAgICAtIGZpeGVzIHRvIHNubXBsaWIgYW5kIHNubXB0cmFwZCBmb3IgYnVncyB1bmNvdmVyZWQgd2hlbiBzbm1wZCBzZW5kcwogICAgICAgIGFuIElORk9STSBpbnN0ZWFkIG9mIGEgVFJBUAogICAgICAtIC1tIGFuZCAtTSBvcHRpb24gZm9yIHNubXB0cmFwZAogICAgICAtIC1EIG9wdGlvbiBmb3Igc25tcHRyYW5zbGF0ZQogICAgICAtIGZpeGVzIHRvIGNvbmZpZ3VyZSB0byBjb3JyZWN0bHkgY2FsbCBBTEwgbW9kdWxlIGluaXQgZnVuY3Rpb25zCiAgICAgIC0gbWFqb3IgcmV3b3JrIG9mIHRjcC5jLCBmb3IgbmV0YnNkLiBJIGhvcGUgdGhpcyBpcyBPSyBub3csIEkgaGF2ZW50IGhhZAogICAgICAgIHRpbWUgdG8gdGVzdCBpdCBvbiBhbGwgcGxhdGZvcm1zIHlldCAtIGJ1dCB0aWxsIGZyaWRheSA6LSkKICAgICAgLSBzbm1wbmV0c3RhdCBwcmludHMgdWRwIHNvY2tldCB0YWJsZQogICAgICAtIHNvbWUgQ01VX0NPTVBBVElCTEUgc3R1ZmYKICAgICAgLSBtYW4gcGFnZSBmaXhlcywgd2l0aCBhbiBpbmNsdWRlIGxpc3QgdGhhdCB3b3JrcyEKCmhhcmRha2VyICAyIFNlcCA5OCAxMDo1ODoxMAogICAgLSAodGNwLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgLSAgQ29tYmluZSB0aGUgdHdvIChhbG1vc3QpIGlkZW50aWNhbCBub24tc29sYXJpcyBjYXNlcwogICAgLSAgQWRkIHN1cHBvcnQgZm9yIHRoZSBtaXNzaW5nIExpbnV4IGVudHJpZXMgKEluRXJycy9PdXRSc3RzKQogICAgLSAgQWRkIHN1cHBvcnQgZm9yIHRoZSBtaXNzaW5nIFNvbGFyaXMgZW50cnkgKE91dFJzdHMpCgpoYXJkYWtlciAgMiBTZXAgOTggMTE6MDM6MzMKICAgIC0gKHRjcC5jKTogcmV2ZXJzZSBEYXZlJ3MgY2hhbmdlcyBzaW5jZSB0aGV5IGNvbmZsaWN0IHdpdGggTmllbHMnLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDEyOjE5OjAzCiAgICAtIChleHRlbnNpYmxlLmMsIHByb2MuYyk6IHVzZSBjb3JyZWN0IG5hbWUgaW5kZXggZm9yIGxvb2t1cHMgb24gd3JpdGVzLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDEyOjE5OjMzCiAgICAtIChzbm1wX2FnZW50LmMpOiBjaGVjayB0byBtYWtlIHN1cmUgb3BlcmF0aW9uIGlzIG5vdCBhIFNFVCB3aGVuCiAgICAgIHJldHVybmluZyBhbiBlcnJvciBjb2RlIHN1Y2ggYXMgbm9TdWNoTmFtZS4KCmhhcmRha2VyICAyIFNlcCA5OCAxNDowNDo0MgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkb24ndCBpbmNsdWRlIG1vZHVsZXMgbm90IHJlcXVlc3RlZCBldmVuCiAgICAgIGlmIHJlcXVpcmVkIGJ5IGFub3RoZXIgbW9kdWxlLgoKaGFyZGFrZXIgIDIgU2VwIDk4IDE0OjEwOjUzCiAgICB2ZXJzaW9uIHRhZyAoIDMuNS4xLnByZTIgKQoKaGFyZGFrZXIgIDIgU2VwIDk4IDE4OjQzOjMwCiAgICAtIChUT0RPKTogYWRkZWQgc2VjdXJpdHkgY2hlY2tzLgoKbmJhICAzIFNlcCA5OCAxNDoyOTowMwogICAgLSAoZml4cHJvYyk6IGFkZGVkIGNvbW1lbnQgdG8gdGVzdCBDVlMuCgpoYXJkYWtlciAgNCBTZXAgOTggMTA6MDk6NDcKICAgIC0gKGludGVyZmFjZXMuYyk6IGZpeCBmb3Igc2dpJ3MuCgpoYXJkYWtlciAgNCBTZXAgOTggMTQ6MTQ6MTkKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbiwgTWFrZWZpbGUuaW4pOgogICAgICAtIGZpeCB0byBhbGxvdyBub24tc291cmNlIGRpcmVjdG9yeSBidWlsZHMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6MTA6MDUKICAgIC0gKGxvYWRhdmUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaWZkZWYgcmUtb3JkZXJpbmcgZml4ZXMgZm9yIGFscGhhL2xpbnV4LgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjQ3OjAwCiAgICAtIChwcm9jLmMpOiBQYXRjaCBmcm9tIE1pY2hhZWwgU2xpZmNhazoKICAgICAgLSBzb2xhcmlzIDIuNiBmaXhlcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMDo0ODowOQogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gQ2F0Y2ggc3ViaWRlbnRpZmllciBjb3JyZWN0bHkuCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NDk6MDgKICAgIC0gKGFzbjEuaCk6IHJlbW92ZSBfX1AoKSBkZWZpbml0aW9uLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjQ5OjUzCiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIG1hbGxvYyBjb3JyZWN0aW9ucyBmb3IgRU5WIHZhcnMuLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjUxOjIyCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gcHJvdGVjdCBhZ2FpbnN0IG11bHRpcGxlIGluaXRfbWliX2ludGVybmFsKCkgY2FsbHMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTA6NTM6MTEKICAgIC0gKHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gZXhpdCAtPiByZXR1cm4gb24gd2luMzIgc3lzdGVtIHJvdXRpbmVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEwOjU1OjUxCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBNaWNoYWVsIFNsaWZjYWs6CiAgICAgIC0gTlVMTCByZXR1cm4gYnkgbWFsbG9jIHByb3RlY3RlZC4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjoxNzozNgogICAgLSAoc25tcGQuY29uZi41LmRlZik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYmV0dGVyIGRlc2NyaXB0aW9uIG9mIHRoZSB2aWV3IG1hc2suCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6Mjc6NDIKICAgIC0gKG1lbW9yeV9mcmVlYnNkMi5oLCB2bXN0YXRfZnJlZWJzZDIuaCk6IGNyZWF0ZWQgZnJvbSBtZW1vcnkuaCBhbmQgdm1zdGF0LmgKCmhhcmRha2VyICA3IFNlcCA5OCAxMjoyNzo0MgogICAgZmlsZSBtZW1vcnlfZnJlZWJzZDIuaCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTI6Mjc6NDIKICAgIGZpbGUgdm1zdGF0X2ZyZWVic2QyLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDEyOjQ3OjM3CiAgICAtIChwYXJzZS5jKTogaW5jbHVkZSBzbm1wX2FwaS5oIGZvciBzbm1wX2dldF9kb19kZWJ1Z2dpbmcoKS4KCmhhcmRha2VyICA3IFNlcCA5OCAxMjo1NDoxNgogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTWljaGFlbCBTbGlmY2FrOgogICAgICAtIGNoZWNrIG1hbGxvYyBjYWxscyBtb3JlIGNhcmVmdWxseS4KICAgICAgLSBtaXNjIGJ1ZyBmaXhlcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxMzoxNToyNgogICAgLSAoTWFrZWZpbGUuaW4pOiBpbnN0YWxsIGNvbmZpZy5oIGFzICQoaW5jbHVkZWRpcikvdWNkLXNubXAtY29uZmlnLmguCgpoYXJkYWtlciAgNyBTZXAgOTggMTM6MjE6MTgKICAgIC0gKG1lbW9yeS5jLCBtZW1vcnkuaCk6CiAgICAgIC0gTUVNVVNFRFJFQUwgLT4gTUVNQVZBSUxSRUFMICh0eXBlZGVmIHJlbmFtaW5nIHRvIG1hdGNoIGZ1bmN0aW9uYWxpdHkpLgoKaGFyZGFrZXIgIDcgU2VwIDk4IDE0OjA2OjIxCiAgICAtICh0Y3AuYyk6IGJhY2sgb3V0IE5pZWxzJyBjaGFuZ2VzIHNpbmNlIHRoZXkgYnJva2Ugb3RoZXIgYXJjaGl0ZWN0dXJlcy4KCmhhcmRha2VyICA3IFNlcCA5OCAxNDoxOToyNAogICAgLSAoTWFrZWZpbGUuaW4ocykpOiBtYWtlIGRlcGVuZHMuCgpoYXJkYWtlciAgNyBTZXAgOTggMTY6Mzk6NTkKICAgIC0gKGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYyk6IDY0Yml0IGxvbmcgcmV0dXJuIGNsZWFuIHVwcy4KCm1hcnogIDcgU2VwIDk4IDE5OjAxOjAxCiAgICB1cGRhdGUgaGVhZGVycyBmb3Igd2luMzIsIGFkZCByZXR1cm4gdG8gbWFpbgoKbWFyeiAgNyBTZXAgOTggMTk6MDI6MDEKICAgIHVwZGF0ZSBoZWFkZXJzIGZvciB3aW4zMiwgYWRkIHJldHVybiB0byBtYWluLGZpeCB3aW4zMiBjb21waWxlIGVycm9yIHcvIG5vbiBpbnRlZ3JhbHN3aXRjaCBjYXNlCgptYXJ6ICA3IFNlcCA5OCAxOTowMzozMwogICAgdXBkYXRlIGhlYWRlcnMgZm9yIHdpbjMyLCBhZGQgcmV0dXJuIHRvIG1haW4sIHJlc29sdmUgY29uZmxpY3Qgdy8gc3RkIGxpYiBsb2cgZnVuY3Rpb24KCm1hcnogIDcgU2VwIDk4IDE5OjMwOjExCiAgICByZW5hbWUgYW5kIHN0YXRpYyBsaW5rIGRlYnVnIHRhcmdldHMsIGRsbCB0byBiaW4gZGlyLCBhZGRlZCBzbm1wdGVzdCwgc25tcHRyYXAsIHNubXBkZWx0YSBwcm9qZWN0cwoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcGRlbHRhLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wZGVsdGEucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXB0ZXN0LmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgZmlsZSBzbm1wdGVzdC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtNS1wYXRjaGVzLgoKbWFyeiAgNyBTZXAgOTggMTk6NDI6MzUKICAgIGZpbGUgc25tcHRyYXAuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIEV4dC0zLTUtcGF0Y2hlcy4KCm1hcnogIDcgU2VwIDk4IDE5OjQyOjM1CiAgICBmaWxlIHNubXB0cmFwLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBFeHQtMy01LXBhdGNoZXMuCgptYXJ6ICA3IFNlcCA5OCAxOTo0MjozNQogICAgcmVuYW1lIGFuZCBzdGF0aWMgbGluayBkZWJ1ZyB0YXJnZXRzLCBkbGwgdG8gYmluIGRpciwgYWRkZWQgc25tcHRlc3QsIHNubXB0cmFwLCBzbm1wZGVsdGEgcHJvamVjdHMKCmhhcmRha2VyICA4IFNlcCA5OCAwOToyNjoxMwogICAgLSAoTkVXUyk6IHVwZGF0ZS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjQgLT4gVjMuNQoKaGFyZGFrZXIgMjQgTWF5IDk4IDE1OjIyOjIxCiAgICAtIChGQVEpOiB1cGRhdGUgdG8gY2hhbmdlIGEgZmV3IHRoaW5ncy4KCmhhcmRha2VyIDI0IE1heSA5OCAxNToyMjozOAogICAgLSAoTkVXUyk6IGNoYW5nZSB2YWNtIG5ld3Mgd29yZGluZy4KCmhhcmRha2VyIDI0IE1heSA5OCAxNToyMjo1NwogICAgLSAoaXAuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IGZvciBuZXRic2QgPCAxLjMuCgpoYXJkYWtlciAyOSBNYXkgOTggMTA6MTQ6MzIKICAgIC0gKGF0LmMpOiBQYXRjaCBmcm9tIENocmlzIFNtaXRoOiBmaXggZm9yIGlyaXguCgpoYXJkYWtlciAyOSBNYXkgOTggMTA6MjQ6NTQKICAgIC0gKHNubXBfYXBpLmMsIHNubXBfaW1wbC5oKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIGZpeCBjb21tdW5pdHkgbmFtZSBsZW5ndGggcHJvYmxlbXMgYW5kIGluY3JlYXNlIHNpemUuCgpoYXJkYWtlciAyOSBNYXkgOTggMTE6MjY6NDcKICAgIC0gKGNvbmZpZ3VyZS5pbik6IHBhdGNoIGZyb20gTmllbHM6IGluY2x1ZGUgc3lzL3NvY2tldCBpbiBpZl9tdHUgdGVzdC4KCmhhcmRha2VyIDI5IE1heSA5OCAxMToyNzo1OQogICAgLSAoY29uZmlndXJlKTogbWFrZSBvZiBjb25maWd1cmUuCgpoYXJkYWtlciAyOSBNYXkgOTggMTE6MzQ6NTMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBNYWtlZmlsZS5pbik6CiAgICAgIC0gQWRkIGEgZGVwZW5kYW5jeSBsaW5lIGZvciBzbm1wX3ZhcnMubyBmb3IgYWxsIHRoZSBtb2R1bGUgaW5jbHVkZXMuCgpoYXJkYWtlciAyOSBNYXkgOTggMTU6MjA6NTMKICAgIC0gKFRPRE8pOiB3aW5TTk1QIG1lbnRpb24uCgpoYXJkYWtlciAyOSBNYXkgOTggMTU6MjE6MTMKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWRkIGFiaWxpdHkgdG8gc3BlY2lmeSBtaWIgaW5mb3JtYXRpb24gb24gdGhlIGNtZCBsaW5lLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDE2OjIxOjA4CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgIC0gbW92ZWQgbW9zdCBtaWJncm91cCBwaWVjZXMgaW50byByZWxldmVudCBzdWItZGlyZWN0b3JpZXMuCiAgICAgICAgLSBjaGFuZ2VkIGFsbCBoZWFkZXIgZmlsZSBhbmQgI2lmZGVmIFVTSU5HXyogbGluZXMgdG8gcmVmbGVjdCB0aGlzLgoKaGFyZGFrZXIgMjkgTWF5IDk4IDE2OjIxOjUxCiAgICAtIChzbm1wX2ltcGwuaCk6IGNoYW5nZSBwZHUgdmVyc2lvbiBmcm9tIGxvbmcgdG8gaW50LgoKaGFyZGFrZXIgMzEgTWF5IDk4IDE3OjU1OjQ1CiAgICAtIChhc24xLmMsIGFzbjEuaCwgaW50NjQuYywgaW50NjQuaCwgbWliLmMsIHNubXAuYywgc25tcF9hcGkuYywKICAgICAgc25tcF9hcGkuaCwgc25tcF9pbXBsLmgpOgogICAgICAtIGltcGxlbWVudCBzcGVjaWFsIGRhdGEgdHlwZXMgdmlhIG9wYXF1ZXM6IGZsb2F0LCBkb3VibGUsIGludDY0LCB1aW50NjRzLgoKaGFyZGFrZXIgMzEgTWF5IDk4IDE3OjU2OjA3CiAgICAtIChzbm1wc2V0LmMpOiBlbmFibGUgc2V0dGluZyBvZiBvcGFxdWUgZmxvYXRzLCBkb3VibGVzLCBpbnQ2NHMsIHVpbnQ2NHMuCgpoYXJkYWtlciAzMSBNYXkgOTggMTc6NTY6NTUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbWFrZSBpdCBwb3NzaWJsZSBub3QgdG8gdXNlIG9wYXF1ZSBzcGVjaWFsIHR5cGVzIHdpdGggbmV3IGNtZCBsaW5lIGZsYWcuCgpoYXJkYWtlciAgMiBKdW4gOTggMTQ6MjM6MTUKICAgIC0gKGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oLCBrZXJuZWwuYywgc25tcF9hZ2VudC5jLCBzbm1wZC5jLAogICAgICBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX25ldHdvcmsuYywgaHJfb3RoZXIuYywKICAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywKICAgICAgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGhyX3V0aWxzLmMsIGF0LmMsIGludGVyZmFjZXMuYywKICAgICAgdmFyX3JvdXRlLmMsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wZGVsdGEuYywgc25tcHRhYmxlLmMsCiAgICAgIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXBkLmMsIGZyZWVic2QyLmgsIGhwdXguaCwgbGludXguaCwgbmV0YnNkLmgsCiAgICAgIHNvbGFyaXMuaCwgc3lzdi5oLCBhc24xLmMsIG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2F1dGguYywKICAgICAgc25tcF9pbXBsLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlbnNlbjoKICAgICAgLSBtYWtlIGhvc3QgcmVzb3VyY2VzIHdvcmsgdW5kZXIgTmV0QlNELCBGcmVlQlNELCBTb2xhcmlzIGFuZCBMaW51eC4KICAgICAgICAtIFN1bk9TNCBhbG1vc3Qgd29ya3MuCiAgICAgIC0gQWRkIC1zLy1TIHRvIGNvbW1hbmQgbGluZSBvcHRpb25zIGZvciBwcmludGluZyBvZiBzaG9ydGVyIG9pZHMuCiAgICAgIC0gbnVtZXJvdXMgYnVnIGZpeGVzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEwOjUxOjEwCiAgICAtIChzbXV4LmMsIHNtdXguaCwgc211eF9nYXRlZC5oLCBzbm1wX2JncC5jLCBzbm1wX2JncC5oLCBzbm1wX29zcGYuYywKICAgICAgc25tcF9vc3BmLmgsIHNubXBfcmlwMi5jLCBzbm1wX3JpcDIuaCwgc211eC5jLCBzbXV4LmgsIHNubXBfYmdwLmMsCiAgICAgIHNubXBfYmdwLmgsIHNubXBfb3NwZi5jLCBzbm1wX29zcGYuaCwgc25tcF9yaXAyLmMsIHNubXBfcmlwMi5oKToKICAgICAgLSBtb3ZlZCBzbXV4IHN0dWZmIGludG8gYSBzbXV4IHN1Yi1kaXJlY3RvcnkuCgpoYXJkYWtlciAgMyBKdW4gOTggMTA6NTg6MTUKICAgIC0gKGlwZndhY2MuYywgaXBmd2FjYy5oLCBJUEZXQUNDLU1JQi50eHQsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIG1vdmVkIGlwZndhY2MgdG8gdWNkYXZpcy4xMyBhbmQgcmVtb3ZlZCBeTXMgYW5kIHNvbWUgYmxhbmsgbGluZXMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTA6NTg6NDQKICAgIC0gKElOU1RBTEwpOiBtZW50aW9uIGlwZndhY2MKCmhhcmRha2VyICAzIEp1biA5OCAxMDo1ODo1OQogICAgLSAoUkVBRE1FKTogbWVudGlvbiBDcmlzdGlhbiBFc3RhbiBpbiB0aGUgY29kZXJzIGxpc3QuCgpoYXJkYWtlciAgMyBKdW4gOTggMTE6MDY6NDcKICAgIC0gKGV4YW1wbGUuYywgZXhhbXBsZS5oLCBkbG1vZC5jLCBkbG1vZC5oKTogUGF0Y2ggZnJvbSBFdWdlbmUgUG9sb3ZuaWtvdjoKICAgICAgLSBpbXBsZW1lbnQgYSBkeW5hbWljIGxvYWRpbmcgbW9kdWxlIGZvciBsb2FkaW5nIHNoYXJlZCBvYmplY3QgbWliIG1vZHVsZXMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTE6MTA6NDgKICAgIC0gKFJFQURNRSwgZXhhbXBsZS5jLCBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCwgZXhhbXBsZS5jLAogICAgICBleGFtcGxlLmgsIHdvbWJhdC5jLCB3b21iYXQuaCk6CiAgICAgIC0gbW92ZWQgd29tYmF0IGFuZCBleGFtcGxlIHRvIGV4YW1wbGVzLyBkaXJlY3RvcnkuCgpoYXJkYWtlciAgMyBKdW4gOTggMTE6Mjc6MjcKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcGQuYyk6IGluY2x1ZGUgbWliSUkvc25tcF9taWIuaC4KCmhhcmRha2VyICAzIEp1biA5OCAxMToyOTowNAogICAgLSAobWliLmMpOiBtaXNzZWQgYSBuZWVkZWQgT1BBUVVFX1NQRUNJQUxfVFlQRVMgaWZkZWYuCgpoYXJkYWtlciAgMyBKdW4gOTggMTI6MTc6MDAKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcF9hcGkuYywgc25tcF9hdXRoLmMsIHNubXBfaW1wbC5oKToKICAgICAgLSBmaXggcGR1LT52ZXJzaW9ucyB0byBiZSBhbGwgaW50cy4KCmhhcmRha2VyICAzIEp1biA5OCAxMzozOToxMgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBOZXcgZmxhZ3M6CiAgICAgIC0gLS13aXRoLWNjPUNDCiAgICAgIC0gLS13aXRoLWNmbGFncz1DRkxBR1MKCmhhcmRha2VyICAzIEp1biA5OCAxMzo0Mzo0NwogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBzbm1wdHJhcGQuYyk6CiAgICAgIC0gY2hlY2sgZm9yIGdldGR0YWJsZXNpemUgYW5kIHVzZSBhIGdlbmVyaWMgaWYgbm90IGF2YWlsYWJsZS4KCmhhcmRha2VyICAzIEp1biA5OCAxMzo1MjoyOAogICAgLSAoY29uZmlnLmguaW4sIGNvbmZpZ3VyZSwgY29uZmlndXJlLmluLCBmcmVlYnNkMi5oKToKICAgICAgLSBtb3ZlIGNvbmZpZ3VyYWJsZSBkZWZpbmVzIHRvIGNvbmZpZ3VyZSByYXRoZXIgdGhhbiBpbiBmcmVlYnNkMi5oLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDEzOjU1OjQwCiAgICAtIChpMzg2LmgsIGk1ODYuaCwgaTY4Ni5oKTogcmVtb3ZlZCB0aGVzZSAodW51c2VkKSBoZWFkZXJzLgoKaGFyZGFrZXIgIDMgSnVuIDk4IDE0OjAyOjM0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGZpeCBuZXcgLS13aXRoLWNjIGFuZCAtLXdpdGgtY2ZsYWdzIGFyZ3VtZW50cy4KCmhhcmRha2VyICAzIEp1biA5OCAxNDoyMToxMAogICAgLSAoaHJfZGlzay5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIHNubXBzZXQuYywgYXNuMS5oLAogICAgICBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYywgc25tcF9hcGkuYyk6CiAgICAgIC0gLVdhbGwgZml4ZXMuCgpoYXJkYWtlciAgMyBKdW4gOTggMTQ6MjM6MTQKICAgIC0gKE1ha2VmaWxlLmluJ3MpOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyICAzIEp1biA5OCAxNDoyNDo1OAogICAgLSAoTWFrZWZpbGUuaW4pOiByZWFkX2NvbmZpZy5vIGlzIG1pYm1vZHVsZSBoZWFkZXIgZGVwZW5kYW50IHRvby4KCmhhcmRha2VyICAzIEp1biA5OCAxNDoyNjoxMAogICAgdmVyc2lvbiB0YWcgKCAzLjUucHJlMSApCgpoYXJkYWtlciAgNSBKdW4gOTggMTA6NTI6MTEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0ZXN0IGZvciBzZXRlbnYuCgpoYXJkYWtlciAgNSBKdW4gOTggMTA6NTI6NDAKICAgIC0gKG1ha2V0YXJnZXQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHN1cHBvcnQgZm9yIGxhcmdlciB0cmVlIGRlcHRocy4KCmhhcmRha2VyICA1IEp1biA5OCAxMDo1NDozMQogICAgLSAoYXNuMS5jLCBtaWIuYywgcGFyc2UuaCwgc3lzdGVtLmMsIHN5c3RlbS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBNSUJfQUNDRVNTIGRlZmluZSBjaGFuZ2VzLgogICAgICAtIHNldGVudiBpbXBsZW1lbnRhdGlvbi4KICAgICAgLSBpZmRlZiB3cmFwcGVycyBmb3IgT1BBUVVFX1NQRUNJQUxfVFlQRVMuCgpoYXJkYWtlciAgOCBKdW4gOTggMTA6NTA6MTIKICAgIC0gKEZBUSk6IHVybCB0eXBlIHNwbGl0dGluZy4KCmhhcmRha2VyICA4IEp1biA5OCAxMjozNDowOQogICAgLSAoTWFrZWZpbGUuaW4pOiBjcmVhdGUgYSAuYyAtPiAubyBydWxlIHRvIG1ha2Ugc3VyZSBhbmQgcGxhY2UgdGhlCiAgICAgIG9iamVjdCBmaWxlcyBpbiB0aGUgYXBwcm9wcmlhdGUgc3ViZGlyZWN0b3JpZXMuCgpoYXJkYWtlciAgOCBKdW4gOTggMTM6NTk6MDgKICAgIC0gKFJFQURNRSk6IEFkZGVkIEV1Z2VuZSdzIG5hbWUuCgpoYXJkYWtlciAgOCBKdW4gOTggMTM6NTk6MjUKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiB1cGRhdGUgcmZjICMgZm9yIHZhY20gcmVmZXJlbmNlLgoKaGFyZGFrZXIgIDggSnVuIDk4IDE0OjEyOjM3CiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSByZW1vdmUgbW9yZSBjb25maWcgY3JlYXRlZCBoZWFkZXJzIG9uIG1ha2UgY29uZmlnY2xlYW4uCgpoYXJkYWtlciAgOCBKdW4gOTggMTQ6MTY6MjYKICAgIC0gKGxpYnNubXAuZGVmKTogUGF0Y2ggZnJvbSBKb2UgTWFyem90OiB3MzIgdXBkYXRlLgoKaGFyZGFrZXIgIDggSnVuIDk4IDE0OjIyOjUwCiAgICAtIChwYXJzZS5jLCBwYXJzZS5oLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oLCBzbm1wX2NsaWVudC5jKTogUGF0Y2gKICAgICBmcm9tIEpvZSBNYXJ6b3Q6CiAgICAgIC0gYXN5bmMgc3R1ZmYgYWRkZWQuCiAgICAgIC0gZ2V0X3RjIGFkZGVkLgogICAgICAtIGJldHRlciBjb21tZW50cyBpbiBzb21lIHBsYWNlcy4KCmhhcmRha2VyICA4IEp1biA5OCAxNDo1NTo1MwogICAgLSAoc25tcF9hcGkuYyk6IHVuZGlkIHJlZG8gb2YgY29tbWVudCBvZiBnZXR0aW1lb2ZkYXkoKS4KCmhhcmRha2VyIDEwIEp1biA5OCAwNzoxMTo0NAogICAgLSAoY29uZmlnLmguaW4pOiBoYXZlX3NldGVudi4KCmhhcmRha2VyIDEwIEp1biA5OCAwODo1Mzo1MwogICAgLSAoTWFrZWZpbGUuaW4sIHNubXAycC5jLCBzbm1wZC5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSAgc3RhcnRzIHRvIHNlcGFyYXRlIG91dCB0aGUgaGlzdG9yaWMgU05NUHYyIHN0dWZmLgogICAgICAtICBkb2VzIGEgYml0IG9mICdjb2RlIHRpZHlpbmcnLgogICAgICAtICBzdGFydHMgdG8gbW92ZSB0b3dhcmRzIHBvcnQtc3BlY2lmaWMgaGFuZGxlcnMuCgpoYXJkYWtlciAxMCBKdW4gOTggMTQ6MTU6NDcKICAgIHZlcnNpb24gdGFnICggMy41LnByZTIgKQoKaGFyZGFrZXIgMTAgSnVuIDk4IDE1OjMwOjU5CiAgICAtIChUT0RPKTogYWRkZWQgRGF2ZSdzIGxpc3QuCgpoYXJkYWtlciAxMCBKdW4gOTggMTU6MzE6MTIKICAgIC0gKE5FV1MpOiB1cGRhdGUuCgpoYXJkYWtlciAxMCBKdW4gOTggMTU6NDc6NTkKICAgIC0gKHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oKTogLVdhbGwgY2xlYW51cHMuCgpoYXJkYWtlciAxMiBKdW4gOTggMDg6NTI6MjgKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYsIEZBUSk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gdXBkYXRlIGZvciBWQUNNIHN0dWZmLgoKaGFyZGFrZXIgMTIgSnVuIDk4IDEwOjEyOjI3CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogc2hvdyB2YWNtIGV4YW1wbGUgZm9yIHB1YmxpYy9wcml2YXRlIGZyb20gYW55d2hlcmUuCgpoYXJkYWtlciAxMiBKdW4gOTggMTA6MTI6NDAKICAgIC0gKE5FV1MpOiBtaW5vciB1cGRhdGUuCgpoYXJkYWtlciAxMiBKdW4gOTggMTM6MTM6MTIKICAgIC0gKHNubXBfYXBpLmMpOiB0cmFwIHR5cGVzIHdlcmUgaW50J3Mgbm90IGxvbmdzIChmYWlsZWQgdW5kZXIgNjRiaXQgYXJjaCkuCgpoYXJkYWtlciAxMiBKdW4gOTggMTM6MTM6MjcKICAgIC0gKHBhcnNlLmMpOiBmdW5jdGlvbiBuYW1lIHR5cG8uCgpoYXJkYWtlciAxMiBKdW4gOTggMTM6MTM6MzkKICAgIC0gKHdpbjMyL2NvbmZpZy5oKTogZG9uJ3QgaGF2ZSBzZXRlbnYuCgpoYXJkYWtlciAxMiBKdW4gOTggMTM6MTM6NTcKICAgIC0gKGxpYnNubXAuZGVmKTogYWRkIHNldGVudiB0byB0aGUgbGlzdC4KCmhhcmRha2VyIDEyIEp1biA5OCAxMzo0Mzo0MQogICAgLSAoTkVXUyk6IDY0Yml0IGZpeCBtZW50aW9uZWQuCgpoYXJkYWtlciAxMiBKdW4gOTggMTM6NDg6MjEKICAgIC0gKGtlcm5lbC5jKTogZG9uJ3QgcHJpbnQga2xyZWFkIGVycm9ycyB1bmxlc3MgaW4gZGVidWdnaW5nIG1vZGUuCgpoYXJkYWtlciAxMiBKdW4gOTggMTU6MTc6NDcKICAgIC0gKGlwZndhY2MuaCwgSVBGV0FDQy1NSUIudHh0LCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBjcmVhdGUgYW5kIHVzZSBhIHVjZEV4cGVyaW1lbnRhbCBzZWN0aW9uIGZvciB0aGUgaXBmd2FjYyBtaWIgdGlsbAogICAgICAgIGl0IHN0YWJpbGl6ZXMuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MDg6MjMKICAgIC0gKHNubXAycC5jLCBzbm1wZC5jLCBzbm1wZC5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBtaXNjIHR5cGUgZml4ZXMuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MDg6NTgKICAgIC0gKHNubXBkZWx0YS5jKTogdXNhZ2UoKSB1cGRhdGUuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MTA6MDIKICAgIC0gKE1ha2VmaWxlLmluLCBzbm1wYnVsa3dhbGsuMSwgc25tcGNtZC4xLCBzbm1wZGVsdGEuMSwgc25tcGdldC4xLAogICAgICBzbm1wZ2V0bmV4dC4xLCBzbm1wc2V0LjEsIHNubXBzdGF0dXMuMSwgc25tcHRhYmxlLjEsIHNubXB0cmFwLjEsCiAgICAgIHNubXB3YWxrLjEpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRvY3VtZW50YXRpb24gY2xlYW51cCBhbmQgY2VudHJhbGl6YXRpb24gb2YgY29tbW9uIG9wdGlvbnMuCgpoYXJkYWtlciAxNyBKdW4gOTggMDg6MTA6NTQKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYmNvcHkgLT4gbWVtY3B5LgoKaGFyZGFrZXIgMTcgSnVuIDk4IDA4OjExOjIyCiAgICAtIChtaWIuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcmVtb3ZlIDJuZCBpbml0X21pYigpIHByb3RvdHlwZS4KCmhhcmRha2VyIDE3IEp1biA5OCAwODoyMTo1MwogICAgLSAoUkVBRE1FLCBBZGRNb2R1bGVGb3JEdW1taWVzLnR4dCwgRFVNTVktTUlCLnR4dCwgZHVtbXkuYywgZHVtbXkuaCk6CiAgICAgIFBhdGNoIGZyb20gSmFrb2IgRWxsZXJzdGVkdDoKICAgICAgLSBtaWIgbW9kdWxlIGRvY3VtZW50YXRpb24gYW5kIGV4YW1wbGUgZm9yIGR1bW1pZXMuCgpoYXJkYWtlciAxNyBKdW4gOTggMTU6Mjc6MTMKICAgIC0gKFJFQURNRSk6IG1lbnRpb24gZHVtbXkgZ3JvdXAuCgpoYXJkYWtlciAxOSBKdW4gOTggMDg6NDE6MDAKICAgIC0gKEZBUSk6IHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkOiBub3QgZm91bmQgbW9kdWxlcyB3aXRoIGNvbmZpZ3VyZT8uCgpoYXJkYWtlciAxOSBKdW4gOTggMDg6NDY6MzEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogd2FybiBCU0RJIHVzZXJzIGFnYWluc3QgL3Vzci91Y2IvY2MuCgpoYXJkYWtlciAxOSBKdW4gOTggMDg6NTg6MDUKICAgIC0gKEVYQU1QTEUuY29uZi5kZWYpOiBQYXRjaCBmcm9tIENyaXN0aWFuIEVzdGFuOgogICAgICAtIGV4YW1wbGUgb3V0cHV0IGNvcnJlY3Rpb25zLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDA4OjU5OjUzCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gQ3Jpc3RpYW4gRXN0YW46CiAgICAgIC0gaW5zdGFsbCBJUEZXQUNDIG1pYi4KCmhhcmRha2VyIDE5IEp1biA5OCAxMjowMzo0OAogICAgLSAoc25tcF92YXJzLmMpOiBmaXggcmVnaXN0ZXJfbWliKCkgdG8gaW5pdCBwb2ludGVycyB0byBudWxsLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEyOjUwOjU1CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBmaXggY2hlY2ttaWIoKSBpbiBjYXNlIHdlIGdldCBjYWxsZWQgb24gYSBnZXQgd2hlbgogICAgICB3ZSByZWFsbHkgc2hvdWxkbid0IChiYWQgYXJ0aWZhY3Qgb2YgbmV3IHRyZWUgc3RydWN0dXJlKS4KCmhhcmRha2VyIDE5IEp1biA5OCAxMjo1MzoyMgogICAgLSAoc25tcF92YXJzLmMpOiBtZW1zZXQgdG8gMCB0aGUgZW50aXJlIHN1YnRyZWUgc3RydWN0LgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEzOjAxOjQ3CiAgICAtIChNYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKaGFyZGFrZXIgMTkgSnVuIDk4IDEzOjEyOjU1CiAgICAtIChORVdTKTogTGFzdCB1cGRhdGUgZm9yIDMuNS4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjMgLT4gVjMuNAoKaGFyZGFrZXIgIDEgRGVjIDk3IDEyOjQ0OjI0CiAgICAtICgqKTogMy4zLjEgYnJhbmNoIG1lcmdlZCBpbnRvIG1haW4gZGV2ZWxvcG1lbnQgYnJhbmNoLgoKaGFyZGFrZXIgIDUgRGVjIDk3IDA4OjQ2OjUwCiAgICAtIChzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBtYWtlIHRyYXAgdmFyaWFibGVzIGxvbmcncyBub3QgaW50cyBmb3IgNjRiaXQgbWFjaGluZXMgdG8gbWF0Y2gKICAgICAgICBhc25fYnVpbGRfaW50IGZ1bmN0aW9ucy4KCmhhcmRha2VyICA1IERlYyA5NyAxMTo1ODo1MgogICAgLSAoYXBwcy8qLmMpOiBzdXBwb3J0IHJhbmRvbSBhY2Nlc3MgcmVxdWVzdHMgb24gYWxsIGFwcHMgdmlhIC1SIHN3aXRjaC4KCmhhcmRha2VyICA1IERlYyA5NyAxNDozMDowNgogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiB3YXJuIGluc3RlYWQgb2YgZXJyb3IgZm9yIGNvbmZpZ19yZXF1aXJlIG1hY3JvJ3MuCgpoYXJkYWtlciAxNSBEZWMgOTcgMTE6MDg6MDEKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbmV3IG1hY3JvIHRvIGNoYW5nZSBkZWZhdWx0IE1JQlMgd2hlbiBtb2R1bGVzIGFyZSBjb21waWxlZDoKICAgICAgICBjb25maWdfYWRkX21pYigpLgoKaGFyZGFrZXIgMTUgRGVjIDk3IDExOjA4OjE5CiAgICAtIChob3N0LmgsIHVjZF9zbm1wLmgsIHYycGFydHkuaCk6CiAgICAgIC0gdXNlIGNvbmZpZ19hZGRfbWliKCkuCgpoYXJkYWtlciAxNSBEZWMgOTcgMTE6MTQ6MTgKICAgIC0gKGF0LmMsIGV4YW1wbGUuYywgaHJfcHJvYy5jLCBocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIGhyX3N5c3RlbS5jLAogICAgICBpY21wLmMsIGludGVyZmFjZXMuYywgaW50ZXJmYWNlcy5oLCBpcC5jLCBsb2FkYXZlLmMsIG1lbW9yeS5jLAogICAgICByb3V0ZV93cml0ZS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB3b21iYXQuYywgY29tbW9uX2hlYWRlci5oKToKICAgICAgLSBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbiB0byBpbXByb3ZlIGlyaXggNi4yIHN1cHBvcnQuCgpoYXJkYWtlciAxNSBEZWMgOTcgMTU6MDc6MjYKICAgIC0gKFVDRC1maWVsZHMsIG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluKTogUGF0Y2ggZnJvbSBUQU5BS0EgVGFrYXNoaToKICAgICAgLSBzdXBwb3J0IG1vcmUgT1MgdHlwZXMgaW4gdGhlIG92LyBkaXJlY3RvcnkgZmlsZXMuCiAgICAgIC0gbWlzdGFrZTogIGJzZGkgd2FzIGdldHRpbmcgZGVmaW5lZCBhcyBpcml4LgogICAgICAtIGRvbid0IGNvcmUgZHVtcCBvbiAtdiB3aXRob3V0IGFueSBhcmd1bWVudHMuCgpoYXJkYWtlciAxNSBEZWMgOTcgMTU6MDc6NTkKICAgIC0gKFVDRC1maWVsZHMsIG9pZF90b19zeW0uaW4sIG9pZF90b190eXBlLmluLCBzbm1wX3BhcnNlX2FyZ3MuYywgYWNjb25maWcuaCk6CiAgICAgIC0gUGF0Y2ggZnJvbSBUQU5BS0EgVGFrYXNoaToKICAgICAgICAtIHN1cHBvcnQgbW9yZSBPUyB0eXBlcyBpbiB0aGUgb3YvIGRpcmVjdG9yeSBmaWxlcy4KICAgICAgICAtIG1pc3Rha2U6ICBic2RpIHdhcyBnZXR0aW5nIGRlZmluZWQgYXMgaXJpeC4KICAgICAgICAtIGRvbid0IGNvcmUgZHVtcCBvbiAtdiB3aXRob3V0IGFueSBhcmd1bWVudHMuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6MjA6MDQKICAgIC0gKGhyX3N3cnVuLmMpOiBDb3JyZWN0IGEgbm9uLWNhc3RlZCBtYWxsb2MuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6MzM6NTkKICAgIC0gKGhyX2ZpbGVzeXMuYyk6IFNvbGFyaXMgc3BlY2lmaWMgZml4ZXMuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6MzU6MjYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4pOiBCU0RJIGRlZmluaXRpb24gZml4ZXMuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDE6NDkKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQyOjI4CiAgICAtIChtaWJncm91cC8qLmMsIGNvbW1vbl9oZWFkZXIuaCk6IFBhdGNoIGZyb20gSm9oYW5uZXMgR3Jvc2VuOgogICAgICAtIGZpeCBub24tZXhpc3RlbnQgbmxpc3QuaCBwcm9ibGVtcyB1bmRlciBsaW51eCByZWRoYXQgNS4wLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDExOjQyOjM5CiAgICAtIChzbm1wdHJhcC5jKTogUGF0Y2ggZnJvbSBKb2hhbm5lcyBHcm9zZW46CiAgICAgIC0gZml4IG5vbi1leGlzdGVudCBubGlzdC5oIHByb2JsZW1zIHVuZGVyIGxpbnV4IHJlZGhhdCA1LjAuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTE6NDI6NTQKICAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiBQYXRjaCBmcm9tIEpvaGFubmVzIEdyb3NlbjoKICAgICAgLSBmaXggbm9uLWV4aXN0ZW50IG5saXN0LmggcHJvYmxlbXMgdW5kZXIgbGludXggcmVkaGF0IDUuMC4KCmhhcmRha2VyIDIzIERlYyA5NyAxMTo0NjowOAogICAgLSAoaHB1eC5jKTogI2lmZGVmJ2VkIG91dCB1bnVzZWQgd3JpdGVIUCBmdW5jdGlvbi4KCmhhcmRha2VyIDIzIERlYyA5NyAxMjozMjoyMQogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIFRlZCBSdWxlOgogICAgICAtIFVzZSBzeXNsb2cgb3B0aW9uIExPR19QSUQgb24gc3RhcnR1cC4KICAgICAgLSBmb3JrIGlmIHN5c2xvZyBlbmFibGVkLgogICAgICAtIEVuYWJsZSBsb2dnaW5nIHRvIG90aGVyIHN5c2xvZyBmYWNpbGl0aWVzLgogICAgICAtIHByaW50IGFsbCB0cmFwIGRhdGEgdG8gYSBzaW5nbGUgc3lzbG9nIGxpbmUuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTI6NDg6MzEKICAgIC0gKHNubXB0cmFwZC5jKToKICAgICAgLSBDaGFuZ2UgLWYgZmxhZyB0byAtbCBhbmQgbWFrZSAtZiBuby1mb3JrLgogICAgICAtIGZpeCBwYXRjaCB3aGljaCBtdW5nZWQgYWJpbGl0eSB0byBnZW5lcmF0ZSBib3RoIC1QIGFuZCAtcyBzaW11bHRhbmVvdXNseS4KCmhhcmRha2VyIDIzIERlYyA5NyAxNDo0MDozNgogICAgLSAoUkVBRE1FKTogQWRkIFRlZCBSdWxlIHRvIGNvZGVycyBsaXN0LgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE0OjQyOjQ3CiAgICAtICgqKTogVHVybiBhbGwgZGVidWdnaW5nIHJvdXRpbmVzIGludG8gbGlicmFyeSBjYWxscyB0aGF0IGNhbiBiZQogICAgICB0dXJuZWQgb24gYW5kIG9mZiBhdCBydW4gdGltZS4KICAgICAgLSBERUJVR1AoKSBpcyBub3cgYSB0eXBpY2FsIHByaW50ZiBzdHlsZSBmdW5jdGlvbiBhbmQgaXMgdXNlZCBldmVyeXdoZXJlLgogICAgICAtIHZvaWQgc25tcF9zZXRfZG9fZGVidWdnaW5nKGludCkuCiAgICAgIC0gaW50IHNubXBfZ2V0X2RvX2RlYnVnZ2luZygpLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE0OjQ0OjM4CiAgICAtIChzbm1wZC4xLmRlZiwgc25tcHRyYXBkLjgpOiBkZWJ1Z2dpbmcgZmxhZyBhZGRpdGlvbnMuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTQ6NDc6MDgKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jKToKICAgICAgLSBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGJyZWFrIHVwIGNvbW1vbl9oZWFkZXIuaC4KCmhhcmRha2VyIDIzIERlYyA5NyAxNToyNzo1NAogICAgLSAoYXQuYywgYXQuaCwgaG9zdF9yZXMuaCwgaWNtcC5oLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuaCwKICAgICAgdGNwLmMsIHRjcC5oLCB1ZHAuYywgdWRwLmgsIHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jKToKICAgICAgLSBjbGVhbiB1cCByZXF1aXJlZCBoZWFkZXJzIGZvciBsaW51eC4KCmhhcmRha2VyIDIzIERlYyA5NyAxNTo1NjoxOAogICAgLSAodmVyc2lvbmluZm8uYywgdmVyc2lvbmluZm8uaCk6IENyZWF0ZSBhIG1pYiB2YXJpYWJsZSB0byBzZXQvcmVwb3J0CiAgICAgIGlmIGRlYnVnZ2luZyBpcyBvbiBvciBvZmYuCgpoYXJkYWtlciAyMyBEZWMgOTcgMTU6NTk6MDMKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBDcmVhdGUgYSBtaWIgdmFyaWFibGUgdG8gc2V0L3JlcG9ydCBpZiBkZWJ1Z2dpbmcKICAgICAgaXMgb24gb3Igb2ZmLgoKaGFyZGFrZXIgMjMgRGVjIDk3IDE2OjMwOjQ3CiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUxICkKCmhhcmRha2VyIDI5IERlYyA5NyAwOTozNzowNgogICAgLSAodGttaWIpOiBGaXJzdCBpbXBsZW1lbnRhdGlvbi4KCmhhcmRha2VyIDMwIERlYyA5NyAxNDowMDowMwogICAgLSAodGttaWIpOgogICAgICAtIG5ldyBjb21tYW5kOiB0YWJsZSB0byBkaXNwbGF5IHNubXB0YWJsZXMgYXMgYSB0YWJsZS4KICAgICAgLSBtaXNjLi4uCgpoYXJkYWtlciAzMCBEZWMgOTcgMTc6MDE6NTcKICAgIC0gKHRrbWliKTogQ3JlYXRlIGEgZ3JhcGhpbmcgd2lkZ2V0LgoKaGFyZGFrZXIgIDUgSmFuIDk4IDEzOjI3OjM4CiAgICAtIChtaWJfYXBpLjMpOiBjaGFuZ2UgImFsbCIgdG8gIkFMTCIuCgpoYXJkYWtlciAgNSBKYW4gOTggMTM6Mjg6MDAKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBwYXJzZS5oKTogYWRkIGEgZmluZF9tb2R1bGUoKSByb3V0aW5lLgoKaGFyZGFrZXIgIDUgSmFuIDk4IDEzOjI4OjIyCiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBwdXQgaW5pdF9taWIgYmFjayBpbiBwbGFjZSAob3BwcykuCgpoYXJkYWtlciAgNSBKYW4gOTggMTM6Mjg6NDIKICAgIC0gKFRPRE8pOiBzbm1wdjMKCmhhcmRha2VyICA1IEphbiA5OCAxNjoyOTozOQogICAgLSAoYXNuMS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBmaXggYXNuMV9idWlsZF9vYmppZC4KCmhhcmRha2VyICA1IEphbiA5OCAxNzozMzowNwogICAgLSAocGFyc2UuYyk6IHN3YXAgYXJncyB0byBtZXJnZV9hbm9uX2NoaWxkcmVuKCkuCgpoYXJkYWtlciAxMiBKYW4gOTggMDk6MTQ6NTQKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgZml4IGFub25fY2hpbGRyZW4gaW52YWxpZCBtZW1vcnkgYWNjZXNzLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjE4OjUwCiAgICAtIChtaWJfYXBpLjMsIHNubXBfYXBpLjMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRvYyB1cGRhdGUgdG8gcmVmbGVjdCBtb3ZlZCBoZWFkZXJzLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjE5OjEwCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46IGxpbmsgZGlyZWN0bHkgdG8gbGliLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjE5OjQ3CiAgICAtIChNYWtlZmlsZS5pbiwgc25tcGJ1bGt3YWxrLmMsIHNubXBkZWx0YS5jLCBzbm1wZ2V0LmMsIHNubXBnZXRuZXh0LmMsCiAgICAgIHNubXBzZXQuYywgc25tcHN0YXR1cy5jLCBzbm1wdGFibGUuYywgc25tcHRlc3QuYywgc25tcHRyYXAuYywKICAgICAgc25tcHRyYXBkLmMsIHNubXB3YWxrLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHJlbW92ZSB1bnVzZWQgaGVhZGVycy4KICAgICAgLSBzbm1wX3BlcnJvciBjaGFuZ2VzLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjIxOjU2CiAgICAtIChhbGFybS5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYywgZXZlbnQuYywgaHJfZGV2aWNlLmMsIGhyX2ZpbGVzeXMuYywKICAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3N0b3JhZ2UuYywgaHJfc3dpbnN0LmMsIGhyX3N3cnVuLmMsIGljbXAuYywKICAgICAgaW50ZXJmYWNlcy5jLCBpcC5jLCBwcm9jLmMsIHN5c3RlbS5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKToKICAgICAgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBGaXggaGVhZGVycyBmb3IgRnJlZUJTRCBhbmQgTmV0QlNELgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjQwOjM2CiAgICAtIChGQVEsIElOU1RBTEwsIE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBEb2N1bWVudGF0aW9uIHVwZGF0ZSB0byBmaXggcGF0aHMgZnJvbSByZWNlbnQgY2hhbmdlcy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOTo0MTozOAogICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGhlYWRlciBmaXhlcy4KICAgICAgLSBzbm1wX3BlcnJvciB1c2FnZS4KCmhhcmRha2VyIDEyIEphbiA5OCAwOTo0NDo1MQogICAgLSAoYXNuMS5jLCBtaWIuYywgc25tcF9hcGkuaCwgc25tcF9pbXBsLmgsIHN5c3RlbS5oKTogUGF0Y2ggZnJvbSBOaWVscwogICAgICBCYWdnZXNlbjoKICAgICAgLSBoZWFkZXIgY2hhbmdlcyBhbmQgYm9vbGVhbiBjaGVjayBjb3JyZWN0aW9ucy4KCmhhcmRha2VyIDEyIEphbiA5OCAwOTo1MToyNwogICAgLSAocGFyc2UuYyk6IFVuZGlkIGFub24tY2hpbGRyZW4gY2hhbmdlLgoKaGFyZGFrZXIgMTIgSmFuIDk4IDA5OjU2OjE0CiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGluY3JlYXNlIGJ1ZmZlciBzaXplIHRvIGluY3JlYXNlIG1heCBpbnRlcmZhY2VzIHJlcG9ydGVkIG9uIFNvbGFyaXMuCgpoYXJkYWtlciAxNiBKYW4gOTggMDk6NDQ6NTYKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIFNoZXNoYWRyaSBZYWdhdGk6CiAgICAgIC0gc2lnbmFsIGEgdHJhcCAoMikgd2hlbiB0aGUgYWdlbnQgaXMgc2h1dCBkb3duLgoKaGFyZGFrZXIgMjEgSmFuIDk4IDExOjA4OjM5CiAgICAtIChDT1BZSU5HKTogdXBkYXRlLgoKaGFyZGFrZXIgMjEgSmFuIDk4IDExOjEyOjAxCiAgICAtICgqL01ha2VmaWxlLmluLCBNYWtlZmlsZS50b3AsIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsCiAgICAgIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gYmVnaW4gc3VwcG9ydCBmb3IgY3JlYXRpbmcgYW5kIHVzaW5nIHNoYXJlZCBsaWJyYXJpZXMuCiAgICAgIC0gYWxsIE1ha2VmaWxlcyBub3cgaW5jbHVkZSBhIE1ha2VmaWxlLnRvcCBmb3IgZWFzaWVyIGZ1dHVyZSBnbG9iYWwgY2hhbmdlcy4KCmhhcmRha2VyIDIxIEphbiA5OCAxMToxMjoyMgogICAgLSAocmVhZF9jb25maWcuYywgc25tcF9hZ2VudC5jLCBzbm1wX3ZhcnMuYywgc25tcGQuYyk6CiAgICAgIC0gaW5jbHVkZSBzdHJ1Y3QuaCBleHBsaWNpdGx5LgoKaGFyZGFrZXIgMjEgSmFuIDk4IDExOjEyOjM0CiAgICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgaW50ZXJmYWNlcy5jLCBsb2FkYXZlLmMsCiAgICAgIG1lbW9yeS5jLCBwYXNzLmMsIHByb2MuYywgc3lzdGVtLmMsIHV0aWxfZnVuY3MuYywgdmFyX3JvdXRlLmMsCiAgICAgIHZlcnNpb25pbmZvLmMpOgogICAgICAtIGluY2x1ZGUgc3RydWN0LmggZXhwbGljaXRseS4KCmhhcmRha2VyIDIxIEphbiA5OCAxNzozMzoyNAogICAgLSAoTWFrZWZpbGUudG9wLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgKi9NYWtlZmlsZS5pbik6CiAgICAgIC0gRG8gYSBiZXR0ZXIgdmVyc2lvbiBvZiBzaGxpYiBzdXBwb3J0LiAgU2hvdWxkIGJlIHVzZWFibGUgbm93IGF0IGxlYXN0LgoKaGFyZGFrZXIgMjEgSmFuIDk4IDIyOjA1OjQ0CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIGNyZWF0ZSBtLyBhbmQgcy8gZGlyZWN0b3JpZXMgYW5kIHVzZSB0aGVtIGZvciBzdXBwbGVtZW50YWwgY29uZmlnCiAgICAgICAgaW5jbHVkZSBmaWxlcyBiYXNlZCBvbiB0aGUgY29uZmlnLmd1ZXNzIG91dHB1dC4KCmhhcmRha2VyIDIzIEphbiA5OCAwODozMDozNQogICAgLSAobWVtb3J5LmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGRvbid0IGNsb3NlIGZpbGUgZGVzY3JpcHRvciBpbiBsaW51eCdzIEZJTEVfVE9fQlVGIG1hY3JvLgoKaGFyZGFrZXIgMjMgSmFuIDk4IDExOjE5OjEyCiAgICAtIChnZW5lcmljLmgsIGkzODYuaCwgaTU4Ni5oLCBpNjg2LmgpOiBtLyouaCBmaWxlIGJlZ2lubmluZ3MuCgpoYXJkYWtlciAyMyBKYW4gOTggMTE6MTk6MzMKICAgIC0gKGJzZC5oLCBnZW5lcmljLmgsIGxpbnV4LmgsIHN5c3YuaCk6IHMvKiBiZWdpbm5pbmdzLgoKaGFyZGFrZXIgMjMgSmFuIDk4IDE2OjEyOjAyCiAgICAtIChyZWFkX2NvbmZpZy5jLCByZWFkX2NvbmZpZy5oLCBzbm1wX3ZhcnMuYywgc25tcF92YXJzLmgsCiAgICAgIGV4dGVuc2libGUuYywgcGFzcy5jKToKICAgICAgLSBjcmVhdGUgbmV3IGZ1bmN0aW9uczoKICAgICAgICAtIHJlZ2lzdGVyX3N1YnRyZWUoKQogICAgICAgIC0gcmVnaXN0ZXJfbWliKCkKICAgICAgICAtIHVucmVnaXN0ZXJfbWliKCkuCiAgICAgIC0gZ2V0IHJpZCBvZiByZWFkX2NvbmZpZyBzcGVjaWFsIHN0dWZmIGZvciBleHRlbnNpYmlsaXR5IGFuZCBwdXQgaXQKICAgICAgICBpbiB0aGVpciBvd24gc3VibW9kdWxlcyB3aGljaCBub3cgY2FsbCByZWdpc3Rlcl9taWIoKS4KCmhhcmRha2VyIDIzIEphbiA5OCAxNjoxNDoyMAogICAgLSAocmVnaXN0cnkuW2NoXSwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gY3JlYXRlIGEgbmV3IHRhYmxlIGF0IHVjZGF2aXMuMTAzIHRvIGRpc3BsYXkgcmVnaXN0ZXJlZCBtaWJzLgoKaGFyZGFrZXIgMjMgSmFuIDk4IDE2OjE1OjA1CiAgICAtIChhdC5jLCBkaXNrLmMsIGhvc3RfcmVzLmgsIGhyX290aGVyLmgsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgICBzbm1wX21pYi5jLCBzeXN0ZW0uYywgdGNwLmMsIHVjZF9zbm1wLmgsIHVkcC5jLCB2ZXJzaW9uaW5mby5jKToKICAgICAgLSAjaW5jbHVkZSAic25tcF9hcGkuaCIKCmhhcmRha2VyIDIzIEphbiA5OCAxNjozNDo0MwogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgdmFyX3N0cnVjdC5oLAogICAgICBleHRlbnNpYmxlLmMsIHBhc3MuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCwgVUNELVNOTVAtTUlCLnR4dCk6CiAgICAgIC0gbWFrZSB0aGUgbWliIHJlZ2lzdHJ5IHJlY29yZCBhbmQgZGlzcGxheSBhIG1pYiBtb2R1bGUgbmFtZSBhcyB3ZWxsLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDA4OjU3OjU0CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHRlc3QgZm9yICdwcyBhdXgnIChyZWRoYXQgNS4wKS4KCmhhcmRha2VyIDMwIEphbiA5OCAwOTowMTowNgogICAgLSAoVUNELVNOTVAtTUlCLnR4dCwgbWVtb3J5LmMsIG1lbW9yeS5oKTogUGF0Y2ggZnJvbSBMdXVrIGRlIEJvZXI6CiAgICAgIC0gcmVwb3J0IGNhY2hlZCwgYnVmZmVyLCBhbmQgc2hhcmVkIHN0YXRpc3RpY3MgZm9yIGxpbnV4LgoKaGFyZGFrZXIgMzAgSmFuIDk4IDA5OjI0OjE5CiAgICAtIChyZWFkX2NvbmZpZy5jLCBzbm1wX3ZhcnMuYywgdmFyX3N0cnVjdC5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBuZXcgc3VidHJlZSBzdHJ1Y3R1cmUgc3lzdGVtLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjQwOjI2CiAgICAtIChwYXNzLmMpOiBwdXQgcGFzc19jb21hcHJlIGhlcmUuCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NDE6NTMKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCwgdmFyX3N0cnVjdC5oKToKICAgICAgLSBtZXJnZSBEYXZlJ3MgY29kZSB3aXRoIG1pbmUuICBTdGlsbCBhIGZldyBidWdzIHRvIHdvcmsgdGhyb3VnaC4KCmhhcmRha2VyIDMwIEphbiA5OCAxMDo0MjoxNwogICAgLSAocmVnaXN0cnkuYywgcmVnaXN0cnkuaCk6IGJlZ2luIG11bmdpbmcgZm9yIG5ldyBoaWVyYXJjaHkuCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NDM6MjgKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2UgbW9kdWxlIGluZGV4aW5nIHRvIHVzZSBvaWQgaW5zdGVhZCBvZiBhIG51bWVyaWMuCgpoYXJkYWtlciAzMCBKYW4gOTggMTA6NDk6NTkKICAgIC0gKGRpc2suYywgaG9zdF9yZXMuaCwgcGFzcy5jLCByZWdpc3RyeS5jLCBzbm1wX21pYi5jLCBzeXN0ZW0uYywKICAgICAgdmVyc2lvbmluZm8uYywgc25tcF9hcGkuaCk6CiAgICAgIC0gaW5jbHVkZSBuZXRpbmV0L2luLmggZm9yIGFkZHJlc3Mgc3RydWN0dXJlLgoKaGFyZGFrZXIgMzAgSmFuIDk4IDEwOjU1OjIwCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmUyICkKCmhhcmRha2VyIDMwIEphbiA5OCAxMzo0OTo1NgogICAgLSAoUkVBRE1FKTogSSBjYW4ndCByZWFsbHkgaGF2ZSBmb3Jnb3R0ZW4gU2ltb24ncyBuYW1lIGluIHRoZSBsaXN0CiAgICAgIGNvdWxkIEk/CgpoYXJkYWtlciAzMCBKYW4gOTggMTM6NTA6MjgKICAgIC0gKGFjbG9jYWwubTQsIGNvbmZpZ3VyZSk6IGRlZmluZSBpZm5ldCBmb3IgbGludXguCgpoYXJkYWtlciAzMCBKYW4gOTggMTQ6MzE6NTgKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBpZl9zcGVlZC4KCmhhcmRha2VyIDMwIEphbiA5OCAxNDozMjoxMwogICAgLSAoaW50ZXJmYWNlcy5jKTogZmluaXNoIGxpbnV4IHByb2JsZW1zIGFuZCB1c2UgaWZfc3BlZWQuCgpoYXJkYWtlciAzMCBKYW4gOTggMTU6MjU6MDIKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcC5jKTogZml4IGRlZmF1bHQgcG9ydCBmb3Igc25tcHRyYXAuCgpoYXJkYWtlciAgMiBGZWIgOTggMDg6NTc6NDEKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogUGF0Y2ggZnJvbSBKb2huIEhhd2tpbnNvbjoKICAgICAgLSBmaXggdHlwbyBpbiBjb25maWd1cmUgZm9yIHNoYXJlZCBsaWJyYXJ5IGV4dGVuc2lvbiB3L28gc2hhcmVkIGxpYnJhcmllcy4KCmhhcmRha2VyICA2IEZlYiA5OCAxMzoyOTo0MAogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYyk6IHByb3RlY3QgYWdhaW5zdCBubGlzdC5oCgpoYXJkYWtlciAgNiBGZWIgOTggMTM6NDQ6NDQKICAgIC0gKGhyX2Rpc2suYyk6IGNsb3NlKCkgZ290IGNhdWdodCBpbnNpZGUgYW4gZWxzZSBpdCBzaG91bGRuJ3QgaGF2ZSBkdWUKICAgICAgdG8gYW4gaWZkZWYgZXJyb3IuCgpoYXJkYWtlciAgNiBGZWIgOTggMTc6MTA6NTMKICAgIC0gKE1ha2VmaWxlLmluLCBhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sCiAgICAgIGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oLCBhdXRvbmxpc3QuaCwga2VybmVsLmMsIHNubXBfdmFycy5jLCBpcC5jKToKICAgICAgLSBjcmVhdGVkIGEgbmV3IGF1dG9fbmxpc3QgZnVuY3Rpb24gYW5kIHVzZSBpdCBpbiBpcC5jLgoKaGFyZGFrZXIgIDYgRmViIDk4IDE3OjExOjI1CiAgICAtIChnZW5lcmljLmgsIGhwdXguaCwgaXJpeC5oLCBsaW51eC5oLCBzb2xhcmlzLmgpOgogICAgICAtIHVwZGF0ZSBmb3IgYXV0b19ubGlzdCBzeW1ib2xzLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjAzOjAyCiAgICAtIChhdC5jLCBkaXNrLmMsIGVycm9ybWliLmMsIGV4dGVuc2libGUuYywgaHB1eC5jLCBocl9wcm9jLmMsCiAgICAgIGhyX3N0b3JhZ2UuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgICBrZXJuZWxfc3Vub3M1LmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jLAogICAgICB2YXJfcm91dGUuYyk6CiAgICAgIC0gdXNlIGF1dG9fbmxpc3QuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDM6MTcKICAgIC0gKGF1dG9fbmxpc3QuaCk6IHByb3RvdHlwZSB3cmFwcGVyLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjAzOjU2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY2hhbmdlZCAtLXdpdGgtc2hhcmVkLWxpYnJhcmllcyB0byAtLWVuYWJsZS1zaGFyZWQgdG8gbWF0Y2ggb3RoZXIgcGtncy4KICAgICAgLSBkaXNwbGF5IGFyZ3VtZW50cyBmb3VuZCBmb3IgLS1lbmFibGUtc2hhcmVkLgoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjA0OjMxCiAgICAtIChic2QuaCwgYnNkaS5oLCBmcmVlYnNkLmgsIGZyZWVic2QzLmgsIGdlbmVyaWMuaCwgaHB1eC5oLCBuZXRic2QuaCwKICAgICAgc29sYXJpcy5oKToKICAgICAgLSBkZWZpbmUgc3ltYm9scyBmb3IgYXV0b19ubGlzdCB0byB1c2UuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MDY6NTMKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBmaXggcHJvdG90eXBlcyBvbiBteSBicm9rZW4gdGFibGUgd2Fsa2luZyByb3V0aW5lcy4KCmhhcmRha2VyICA5IEZlYiA5OCAxMToxNzo1MgogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlMyApCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MTg6NDUKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBpb2N0bHMuaAoKaGFyZGFrZXIgIDkgRmViIDk4IDExOjE4OjU5CiAgICAtIChpbnRlcmZhY2VzLmMpOiAgaW5jbHVkZSBpb2N0bHMuaCBpZiBhdmFpbGFibGUuCgpoYXJkYWtlciAgOSBGZWIgOTggMTE6MjA6MDAKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiBjaGVjayBmb3IgaW9jdGxzLmguCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6MTk6MzMKICAgIC0gKGdlbmVyaWMuaCwgYXV0b19ubGlzdC5jLCBhdC5jLCBocl9wcm9jLmMsIGhyX3N0b3JhZ2UuYywgbWVtb3J5LmMsCiAgICAgIHRjcC5jLCB1ZHAuYywgdmFyX3JvdXRlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGZpeCBhbGwgbXkgdHlwb3MgOy0pLgogICAgICAtIGNyZWF0ZSBhdXRvX25saXN0X3ZhbHVlIHRvIHJldHVybiB0aGUgbG9va2VkLXVwIHZhbHVlLgoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjI4OjA5CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gcHMgYXV4IHNob3VsZCBkZWZpbmUgYXV4IG5vdCAtYXV4LgoKaGFyZGFrZXIgMTEgRmViIDk4IDA5OjI4OjMzCiAgICAtIChob3N0X3Jlcy5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBkb24ndCBpbmNsdWRlIGNvbmZpZy5oCgpoYXJkYWtlciAxMSBGZWIgOTggMDk6Mjg6NDQKICAgIC0gKGhyX25ldHdvcmsuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gc29sYXJpcyBmaXhlcy4KCmhhcmRha2VyIDExIEZlYiA5OCAwOToyOTowNgogICAgLSAoc29sYXJpcy5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSB1bmRlZiBJUF9GT1JXQVJESU5HX1NZTUJPTCBiZWZvcmUgZGVmaW5pbmcgaXQuCgpoYXJkYWtlciAxMSBGZWIgOTggMTY6NDQ6MTMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogc2VkIGRvZXNuJ3QgbGlrZSBbYS16XSsgdHlwZSBleHByZXNzaW9ucy4KCmhhcmRha2VyIDEzIEZlYiA5OCAwOTowNzozMQogICAgLSAoRkFRKTogdHlwbzogYXV0aHRyYXBzZW5hYmxlIC0+IGF1dGh0cmFwZW5hYmxlLgoKaGFyZGFrZXIgMTcgRmViIDk4IDA5OjUwOjQzCiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKToKICAgICAgLSB1c2Ugc25tcF9pcGFkZHIgaW5zdGVhZCBvZiBpcGFkZHIgdG8gYXZvaWQgaHB1eCBjb25mbGljdHMuCgpoYXJkYWtlciAxNyBGZWIgOTggMDk6NTM6MTIKICAgIC0gKGF1dG9fbmxpc3QuYywgYXV0b25saXN0LmgsIHNubXBfdmFycy5jKToKICAgICAgLSB1c2UgYXBwcm9wcmlhdGUgbWFsbG9jcywgYW5kIE5VTEwgaW5pdGlhbGl6YXRpb24gb2YgcG9pbnRlcnMuCiAgICAgIC0gbWFsbG9jIHRoZSBzeW1ib2wgcmF0aGVyIHRoYW4gdXNpbmcgYSBmaXhlZCBsZW5ndGguCiAgICAgIC0gaW5zZXJ0IGRlYnVnZ2luZyBjb2RlLgogICAgICAtIGVuYWJsZSBwcmludGluZyBvZiB0aGUgbmxpc3QgdHJlZSBpZiBURVNUSU5HIGlzIGRlZmluZWQuCgpoYXJkYWtlciAxNyBGZWIgOTggMDk6NTQ6MDEKICAgIC0gKHRjcC5jLCB1ZHAuYyk6CiAgICAgIC0gbmxpc3Qgc3ltYm9sIG5hbWUgZXJyb3JzLgoKaGFyZGFrZXIgMTggRmViIDk4IDA4OjA2OjAwCiAgICAtIChFWEFNUExFLmNvbmYuZGVmLCB2bXN0YXQuYywgdm1zdGF0LmgsIHVjZF9zbm1wLmgsCiAgICAgIFVDRC1TTk1QLU1JQi50eHQpOiBQYXRjaCBmcm9tIEx1dWsgZGUgQm9lcjoKICAgICAgLSBpbXBsbWVudCBhIHZtc3RhdCBtaWIgZ3JvdXAgb24gbGludXguCgpoYXJkYWtlciAxOCBGZWIgOTggMDg6MTU6NTYKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgICAtIGNoZWNrIGZvciBzeXMvc3lzbXAuaC4KCmhhcmRha2VyIDE4IEZlYiA5OCAwODoxNjoyMQogICAgLSAoYXV0b19ubGlzdC5jKTogUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgIC0gZml4IGEgZGVidWdnaW5nIHN0YXRlbWVudCAobWlzc2luZyBhIHZhcmlhYmxlKS4KCmhhcmRha2VyIDE4IEZlYiA5OCAwODoxODowNQogICAgLSAoYXQuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHRjcC5jLCB1ZHAuYywgaXJpeC5oKToKICAgICAgUGF0Y2ggZnJvbSBTaW1vbiBMZWluZW46CiAgICAgIC0gcG9ydCB0byBpcml4LgoKaGFyZGFrZXIgMTggRmViIDk4IDExOjQ1OjIwCiAgICAtIChzZWRzY3JpcHQuaW4pOiBkZWZpbmUgTElCRElSIGFuZCBEQVRBRElSLgoKaGFyZGFrZXIgMTggRmViIDk4IDExOjQ2OjQ4CiAgICAtIChzbm1wZC4xLmRlZiwgc25tcGQuY29uZi41LmRlZik6IGNoYW5nZSB0byBEQVRBRElSIGZyb20gTElCRElSLgoKaGFyZGFrZXIgMTggRmViIDk4IDEzOjMxOjA3CiAgICAtIChkaXNrLmgsIGV4dGVuc2libGUuaCwgbG9hZGF2ZS5oLCBwcm9jLmgsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIHR1cm4gdGhlc2UgbWlicyBpbnRvIHJlYWwgdGFibGVzLiAgUmVxdWlyZWQgY2hhbmdpbmcgdGhlIG1pYiB0aG91Z2guCgpoYXJkYWtlciAxOCBGZWIgOTggMTM6MzQ6NTUKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBhdXRodHJhcHNlbmFibGUgLT4gYXV0aHRyYXBlbmFibGUuCgpoYXJkYWtlciAxOCBGZWIgOTggMTM6NDQ6MTMKICAgIC0gKGF0LmMsIGV4YW1wbGUuYywgaHB1eC5jLCBocl9kZXZpY2UuYywgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsCiAgICAgIGhyX25ldHdvcmsuYywgaHJfcGFydGl0aW9uLmMsIGhyX3ByaW50LmMsIGhyX3Byb2MuYywgaHJfc3RvcmFnZS5jLAogICAgICBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfc3lzdGVtLmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLAogICAgICBwYXNzLmMsIHJlZ2lzdHJ5LmMsIHNtdXguYywgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywKICAgICAgdmFyX3JvdXRlLmMsIHdvbWJhdC5jKToKICAgICAgLSBhbGwgYmNvcHlzIC0+IG1lbWNweS4KICAgICAgLSBpbmNsdWRlIGEgZmV3IGV4dHJhIGhlYWRlcnMgZm9yIERFQlVHUCBzdGF0ZW1lbnRzLgoKaGFyZGFrZXIgMTggRmViIDk4IDE0OjI1OjUzCiAgICAtIChhY2xfdmFycy5jLCBhdC5jLCBjb250ZXh0X3ZhcnMuYywgZGlzay5jLCBob3N0X3Jlcy5oLCBocl9kaXNrLmMsCiAgICAgIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLCBocl9zd2luc3QuYywgaHJfc3dydW4uYywgaHJfdXRpbHMuYywKICAgICAgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGludGVyZmFjZXMuaCwgaXAuYywgbWVtb3J5LmMsIG1pYmluY2wuaCwKICAgICAgcGFydHlfdmFycy5jLCBwYXNzLmMsIHByb2MuYywgcmVnaXN0cnkuYywgc211eC5jLCBzbm1wX21pYi5jLAogICAgICBzeXN0ZW0uYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsCiAgICAgIHZtc3RhdC5jKToKICAgICAgLSBtYXNzaXZlIC1XYWxsIGFuZCAtLXN0cmljdC1wcm90b3R5cGVzIGNoZWNraW5nLgogICAgICAtIGJ6ZXJvIC0+IG1lbXNldC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNDozMjowNQogICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmMpOgogICAgICAtIHByb3RvdHlwaW5nIGFuZCAtLVdhbGwgY2hlY2tzLgoKaGFyZGFrZXIgMTggRmViIDk4IDE0OjMyOjM4CiAgICAtIChzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogcHJvdG90eXBpbmcgY2hlY2tzLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjI4OjUxCiAgICAtIChvcGVuYnNkLmgpOiBjcmVhdGVkLgoKaGFyZGFrZXIgMTggRmViIDk4IDE2OjI5OjU4CiAgICAtIChhY2NvbmZpZy5oLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSByZW1vdmVkIHVubmVlZGVkIHN0dWZmLgogICAgICAtIGFkZGVkIG9wZW5ic2QuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6MzA6NDcKICAgIC0gKGF0LmMsIHByb2MuYywgdGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYywgYnNkLmgsIGJzZGkuaCwgZnJlZWJzZC5oLAogICAgICBnZW5lcmljLmgsIGhwdXguaCwgbmV0YnNkLmgpOgogICAgICAtIHRyaWVkIHRvIG1lcmdlIHNvbWUgdGhpbmdzIGludG8gcy8qLmggZGVmaW5lcyBpbnN0ZWFkLiAgVGhlcmUgaXMgYQogICAgICAgIGxvdCB0byBnbyBzdGlsbC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjozMzoxNAogICAgLSAoY29uZmlnLmguaW4pOiBvcGVuYnNkIGRlZmluZXMuCgpoYXJkYWtlciAxOCBGZWIgOTggMTY6MzM6NDMKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZC4KCmhhcmRha2VyIDE4IEZlYiA5OCAxNjo1MToxOAogICAgdmVyc2lvbiB0YWcgKCAzLjQucHJlNCApCgpoYXJkYWtlciAyMCBGZWIgOTggMDk6MTk6MDAKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gU2ltb24gTGVpbmVuOgogICAgICAtIGZpeCBpbmNsdWRlIGZpbGUgZGVwZW5kYW5jaWVzIG9uIGlyaXggd2l0aCBfS0VSTkVMIGRlZmluZWQuCgpoYXJkYWtlciAyMCBGZWIgOTggMTE6MTU6MTQKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBmaXggbWFrZSBkZXBlbmQgdG8gbG9vayBmb3IgYW5kIHN0cmlwIC91c3IvbGliLyouCgpoYXJkYWtlciAyNSBGZWIgOTggMDc6Mjc6MDkKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCByZWFkX2NvbmZpZyBwYXJzZXIncyBlbmQgb2YgbGluZSBwcm9ibGVtcy4KCmhhcmRha2VyICA0IE1hciA5OCAxNTo0OTozMgogICAgLSAoQ09QWUlORyk6IGRvY3VtZW50YXRpb24gcmVxdWlyZW1lbnQgY2hhbmdlLgoKaGFyZGFrZXIgIDYgTWFyIDk4IDE0OjAxOjUyCiAgICAtIChNYWtlZmlsZS5pbiwga2VybmVsLmMsIHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuYywKICAgICAgc25tcF92YXJzLmMsIHNubXBkLmMsIGFjbF92YXJzLmMsIGFsYXJtLmMsIGNvbnRleHRfdmFycy5jLCBkaXNrLmMsCiAgICAgIGV2ZW50LmMsIGV4dGVuc2libGUuYywgaWNtcC5jLCBpbnRlcmZhY2VzLmMsIGlwLmMsIG1pYmluY2wuaCwKICAgICAgcGFydHlfdmFycy5jLCBwYXNzLmMsIHByb2MuYywgcmVnaXN0cnkuYywgcmVnaXN0cnkuaCwgcm91dGVfd3JpdGUuYywKICAgICAgc25tcF9taWIuYywgc3lzdGVtLmMsIHRjcC5jLCB1ZHAuYywgdmFjbV92YXJzLmMsIHZhY21fdmFycy5oLAogICAgICB2YXJfcm91dGUuYywgdmVyc2lvbmluZm8uYywgdmlld192YXJzLmMsIHNubXBfcGFyc2VfYXJncy5jLAogICAgICBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsIHNubXBzdGF0dXMuYywKICAgICAgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB0cmFuc2xhdGUuYywgc25tcHRyYXAuYywgc25tcHRyYXBkLmMsCiAgICAgIGlmLmMsIGluZXQuYywgcm91dGUuYywgc25tcGQuY29uZi41LmRlZiwgc25tcHRhYmxlLjEsIC5pbmRleCwKICAgICAgTWFrZWZpbGUuaW4sIFNOTVAtRlJBTUVXT1JLLU1JQi50eHQsIFNOTVAtTVBELU1JQi50eHQsCiAgICAgIFNOTVAtTk9USUZJQ0FUSU9OLU1JQi50eHQsIFNOTVAtUFJPWFktTUlCLnR4dCwgU05NUC1UQVJHRVQtTUlCLnR4dCwKICAgICAgU05NUC1VU0VSLUJBU0VELVNNLU1JQi50eHQsIFNOTVAtVklFVy1CQVNFRC1BQ00tTUlCLnR4dCwKICAgICAgTWFrZWZpbGUuaW4sIGFjbC5oLCBhY2xfcGFyc2UuYywgYXNuMS5jLCBjb250ZXh0LmgsIGNvbnRleHRfcGFyc2UuYywKICAgICAgbWliLmMsIHBhcnR5LmgsIHBhcnR5X3BhcnNlLmMsIHNubXAuYywgc25tcC5oLCBzbm1wX2FwaS5jLAogICAgICBzbm1wX2F1dGguYywgc25tcF9jbGllbnQuYywgc25tcF9pbXBsLmgsIHN5c3RlbS5jLCB2YWNtLmMsIHZhY20uaCwKICAgICAgdmlldy5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBJbXBsZW1lbnQgdGhlIFNOTVB2MyBWaWV3IEJhc2VkIEFjY2VzcyBDb250cm9sIE1vZGVsIChSRkMgMjI3NSkuCiAgICAgIC0gaGVhZGVyIGZpeGVzLgogICAgICAtIGJldHRlciBoZWFkZXItZmlsZSAjZGVmaW5lIG5hbWVzIHRvIGluY2x1ZGUgU05NUF8sIEFTTl8sIGV0Yy4gcHJlZml4ZXMuCgpoYXJkYWtlciAgNiBNYXIgOTggMTU6NDc6MDEKICAgIC0gKHV0aWxfZnVuY3MuYyk6CiAgICAgIC0gcmVtb3ZlIEdMT0JBTC1TRUNVUklUWSBjaGVja3MuCgpoYXJkYWtlciAgNiBNYXIgOTggMTU6NDc6MTkKICAgIC0gKG1pYklJLmgpOiBhZGQgdmFjbV92YXJzLgoKaGFyZGFrZXIgIDYgTWFyIDk4IDE1OjQ3OjQwCiAgICAtIChob3N0X3Jlcy5oKTogbW92ZSBzbm1wX2FwaS5oIHVwIGFib3ZlIHNubXBfaW1wbC5oLgoKaGFyZGFrZXIgIDYgTWFyIDk4IDE1OjQ4OjMzCiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4pOgogICAgICAtIHJlbW92ZSBzZWN1cml0eSB0eXBlIHByb21wdHMuCgpoYXJkYWtlciAgOSBNYXIgOTggMTc6NDA6MDQKICAgIC0gKG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYywgc3lzT1JUYWJsZS5oLCBzeXN0ZW0uYywgdjJwYXJ0eS5jLAogICAgICB2YWNtX3ZhcnMuYywgdmFjbV92YXJzLmgpOgogICAgICAtIGltcGxlbWVudCBzeXNPUlRhYmxlLgogICAgICAtIHJlZ2lzdGVyIG1pYnMgdW5kZXIgaXQuCgpoYXJkYWtlciAxMSBNYXIgOTggMDg6MDY6MTcKICAgIC0gKCovKi8qLyopOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZpeCBhdXRvX25saXN0IG9uIHByZWNlZWRpbmcgXyBhcmNoaXRlY3R1cmVzLgogICAgICAtIENoYW5nZSAqYWxsKiBkZWZpbmUgdXNhZ2UgdG8gbmV3IFNOTVBfIGFuZCBBU05fIHByZWZpeGVzLgogICAgICAtIGxlYXZlIG1pYiBhY2Nlc3Mgb3BlbiBpZiBubyBjb20yc2VjIHN0YXRlbWVudHMgd2VyZSBmb3VuZCBpbiBzbm1wZC5jb25mLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDA5OjQwOjQyCiAgICAtIChocHV4LmgsIGhyX2ZpbGVzeXMuaCwgbWVtb3J5LmgsIHNubXBfYmdwLmgsIHNubXBfb3NwZi5oLAogICAgICBzbm1wX3JpcDIuaCwgc3lzT1JUYWJsZS5oLCB2bXN0YXQuaCk6CiAgICAgIC0gZmluaXNoIGNvbnZlcnRpbmcgYSBmZXcgb2YgdGhlIGZpbGVzIHRoYXQgTmllbHMgbWlzc2VkLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDEwOjMwOjUwCiAgICAtIChzeXNPUlRhYmxlLmMsIHN5c09SVGFibGUuaCwgc3lzdGVtLmMsIHN5c3RlbS5oKToKICAgICAgLSBmaXggdGltZSB2YWx1ZXMgYW5kIG1vdmUgc3lzT1JMYXN0Q2hhbmdlZCB0byB0aGUgc3lzdGVtIGdyb3VwLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDEyOjE0OjA5CiAgICAtICgqKTogUGF0Y2ggZnJvbSBDcmFpZyBCZXZpbnMgZm9yIE9wZW5CU0QKCmhhcmRha2VyIDExIE1hciA5OCAxMjoyNzowMQogICAgLSAoaW50ZXJmYWNlcy5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jLCB2YXJfcm91dGUuaCk6IFBhdGNoIGZyb20KICAgICAgQ3JhaWcgQmV2aW5zOgogICAgICAtIHBvcnQgdG8gT3BlbkJTRC4KCmhhcmRha2VyIDExIE1hciA5OCAxMjo0NTo0NgogICAgLSAoKik6IHBhdGNoIGZyb20gR2FycmV0dCBXb2xsbWFuIGZvciBGcmVlQlNELgoKaGFyZGFrZXIgMTEgTWFyIDk4IDEyOjU2OjM3CiAgICAtIChhY2xvY2FsLm00LCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIGljbXAuYywKICAgICAgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMsIHZhcl9yb3V0ZS5jKTogUGF0Y2ggZnJvbSBHYXJyZXR0CiAgICAgIFdvbGxtYW46CiAgICAgIC0gZnJlZWJzZCAzIHN5c2N0bCBpbXBsZW1lbnRhdGlvbnMuCgpoYXJkYWtlciAxMSBNYXIgOTggMTQ6NDE6MTEKICAgIC0gKHJlYWRfY29uZmlnLmMsIHJlYWRfY29uZmlnLmgsIHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMsCiAgICAgIGhvc3RfcmVzLmgsIGhyX2RldmljZS5jLCBocl9kZXZpY2UuaCwgaHJfZGlzay5jLCBocl9kaXNrLmgsCiAgICAgIGhyX2ZpbGVzeXMuYywgaHJfZmlsZXN5cy5oLCBocl9uZXR3b3JrLmMsIGhyX25ldHdvcmsuaCwgaHJfb3RoZXIuYywKICAgICAgaHJfcGFydGl0aW9uLmMsIGhyX3BhcnRpdGlvbi5oLCBocl9wcmludC5jLCBocl9wcmludC5oLCBocl9wcm9jLmMsCiAgICAgIGhyX3Byb2MuaCwgaHJfc3RvcmFnZS5jLCBocl9zdG9yYWdlLmgsIGhyX3N3aW5zdC5jLCBocl9zd2luc3QuaCwKICAgICAgaHJfc3dydW4uYywgaHJfc3dydW4uaCwgaHJfc3lzdGVtLmMsIGhyX3N5c3RlbS5oLCBpbnRlcmZhY2VzLmMsCiAgICAgIGlwLmMsIG1pYklJLmMsIG1pYklJLmgsIHN5c09SVGFibGUuYywgdjJwYXJ0eS5jLCB2MnBhcnR5LmgsCiAgICAgIHZhY21fdmFycy5jLCB2YWNtX3ZhcnMuaCk6CiAgICAgIC0gbWFzc2l2ZSBwcm90b3R5cGluZyBhbmQgLS1XYWxsIGZpeGVzLgogICAgICAtIGZpeGVkIHRoaW5ncyBicm9rZW4gYnkgdGhlIGZyZWVic2QgcGF0Y2ggKG9ubHkgc29tZSBJJ20gc3VyZSkuCgpoYXJkYWtlciAxMSBNYXIgOTggMTU6NDI6MzUKICAgIC0gKGF1dG9fbmxpc3QuYyk6IGJldHRlciBkZWJ1Z2dpbmcgcHJpbnRmcwoKaGFyZGFrZXIgMTEgTWFyIDk4IDE1OjQ1OjIyCiAgICAtIChocHV4LmgpOiBzd2l0Y2ggaW5jb3JyZWN0IGFycHRhYiBzeW1ib2xzLgoKaGFyZGFrZXIgMTEgTWFyIDk4IDE1OjU2OjEzCiAgICAtIChSRUFETUUpOiBuYW1lIHVwZGF0ZS4KCmhhcmRha2VyIDExIE1hciA5OCAxNTo1NzoxNgogICAgLSAoKi9NYWtlZmlsZS5pbik6IGRlcGVuZCB1cGRhdGUuCgpoYXJkYWtlciAxMSBNYXIgOTggMTc6MDU6NDEKICAgIC0gKHN5c3RlbS5jKTogZG9uJ3QgY2hvbXAgbmV3IGxpbmUgb24gcmVhZF9jb25maWcgdXRpbHMuCgpoYXJkYWtlciAxOCBNYXIgOTggMDk6MTc6NDIKICAgIC0gKFJFQURNRSk6IGNoYW5nZWQgT1YgcGF0aCdzIHRvIG5ld2VyIHJlbGVhc2UgcGF0aHMuCgpoYXJkYWtlciAxOCBNYXIgOTggMTM6MTA6MzUKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBzZWRzY3JpcHQuaW4sIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIHJlLW51bWJlcmluZyBvZiB0aGUgbmV3IHRhYmxlIG1vZHVsZXMuCgpoYXJkYWtlciAxOCBNYXIgOTggMTM6MjY6MjIKICAgIC0gKGV4dGVuc2libGUuYywgbWVtb3J5LmMsIHBhc3MuYywgcHJvYy5jLCB1dGlsX2Z1bmNzLmMsIHV0aWxfZnVuY3MuaCk6CiAgICAgIC0gd2FpdCBmb3IgcGlkIGFmdGVyIGdldF9leGVjX291dHB1dCgpIHdpdGggbmV3IHdhaXRfb25fZXhlYygpIGZ1bmN0aW9uLgoKaGFyZGFrZXIgMTggTWFyIDk4IDEzOjU2OjE2CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHJlYWRfY29uZmlnLmMsCiAgICAgIHNubXBkLmMsIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdHJhcGQuYywgbWFpbi5jLCBtaWJfYXBpLjMsCiAgICAgIGNvbmZpZy5oKToKICAgICAgLSBTTk1QTElCUEFUSCAtPiBTTk1QU0hBUkVQQVRICiAgICAgIC0gYSByZWFsIFNOTVBMSUJQQVRICiAgICAgIC0gbWFrZSB0aGUgYWdlbnQgcmVhZCAuY29uZiBmaWxlcyBmcm9tIFNOTVBTSEFSRVBBVEg6U05NUExJQlBBVEguCgpoYXJkYWtlciAxOCBNYXIgOTggMTQ6MDk6MzEKICAgIHZlcnNpb24gdGFnICggMy40LnByZTUgKQoKaGFyZGFrZXIgMjIgTWFyIDk4IDE4OjEzOjQxCiAgICAtIChwYXNzLmMsIHByb2MuYywgdmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgICAtIG1vdmUgc3lzL3R5cGVzLmggdXAgZm9yIHVsdHJpeC4KCmhhcmRha2VyIDI1IE1hciA5OCAwOToxNTo0NQogICAgLSAodGNwLmMpOiBpbmNsdWRlIHRjcGlwLmggZm9yIGRpZ2l0YWwgdW5peC4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDozOToxMwogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCwgc25tcF92YXJzLmMsIHJlZ2lzdHJ5LmMsIHJlZ2lzdHJ5LmgpOgogICAgICAtIGZpeCB0aGUgcmVnaXN0cnkgbWliIHRvIHVzZSB0aGUgbmV3IG1vZHVsZSBzdHJ1Y3R1cmUuCiAgICAgIC0gY3JlYXRlIGEgd29ya2luZyBmaW5kX3N1YnRyZWUoKSBhbmQgZmluZF9zdWJ0cmVlX25leHQoKS4KCmhhcmRha2VyIDI1IE1hciA5OCAxMDozOTo1MAogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBzaW1wbHkgZG9uJ3QgZGVmaW5lIENBTl9VU0VfTkxJU1Qgb24gbGludXguCgpoYXJkYWtlciAyNSBNYXIgOTggMTA6NDQ6MDYKICAgIC0gKHNubXBkLmMsIHNubXBfYXBpLmMpOiBTcGVsbGluZyBlcnJvcnMgZnJvbSB0aGUgQ01VIGNvZGUgZml4ZWQuCgpoYXJkYWtlciAyNSBNYXIgOTggMTA6NDY6MzYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBsaW51eC5oKTogbmV3IGRlZmluZTogRE9OVF9VU0VfTkxJU1QuCgpoYXJkYWtlciAyNSBNYXIgOTggMTA6NTk6MjAKICAgIC0gKGludGVyZmFjZXMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gQWRkIGFuICYgdG8gYXJwY29tLmFjX2VuYWRkciBpbiBtZW1zZXQuCgpoYXJkYWtlciAyNSBNYXIgOTggMTI6NDg6MzAKICAgIC0gKE1ha2VmaWxlLmluLCBpbnQ2NC5jLCBpbnQ2NC5oLCBtaWIuYyk6IENvZGUgZnJvbSBEYXZpZCBULiBQZXJraW5zOgogICAgICAtIGludGVncmF0ZWQgRGF2aWQncyBjb2RlIHRvIHByaW50IGNvdW50ZXI2NHMgYXMgaW50ZWdlcnMgcmF0aGVyIHRoYW4gaGV4LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDEzOjA3OjAwCiAgICAtICh2MnBhcnR5LmMsIG1pYklJLmMsIHZhY21fdmFycy5jKTogZGVjbGFpciByZWdpc3RyYXRpb24gdmFyaWFibGVzIHN0YXRpY2x5LgoKaGFyZGFrZXIgMjUgTWFyIDk4IDE2OjQ5OjU2CiAgICAtIChocHV4LmMpOiBmaXggd3JpdGVfbWV0aG9kIGRlY2xhcmF0aW9uLgoKaGFyZGFrZXIgMjYgTWFyIDk4IDA3OjIyOjMwCiAgICAtICgqLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIG1pc2MgcG9ydGluZyBpbXByb3ZlbWVudHMgKHRoZSBic2QgZ3JvdXBzLCBzdW5vcywgLi4uKS4KICAgICAgLSBzd2l0Y2ggYXV0b19ubGlzdHMgY2FsbGluZyBvcmRlciBvZiBfIHZzIG5vbiBfIGxvb2t1cHMuCiAgICAgIC0gcmV2ZXJzZSBhbGwgc3RyaW5nLmgvc3RyaW5ncy5oIGluY2x1ZGUgcG9zc2liaWxpdGllcy4KCmhhcmRha2VyIDI3IE1hciA5OCAwOToyMDowNAogICAgLSAoc25tcHRyYXBkLmMpOgogICAgICAtIEJldGEgdmVyc2lvbiBvZiBhbiBleHRlbnNpYmxlIHRyYXAgZGVtb24uCiAgICAgICAgLSAtQyAnY29tbWFuZCcgb24gdGhlIGNvbW1hbmQgbGluZSBydW5zIHRoZSBjb21tYW5kIGFuZCBmZWVkcyBpdAogICAgICAgICAgc3RkaW4gaW5mb3JtYXRpb24gYWJvdXQgdGhlIHRyYXAuCiAgICAgICAgLSB2MSB0cmFwcyBhcmUgY29udmVydGVkIHRvIHYyIHRyYXBzIGZvciBjb25zaXN0YW5jeSBvZgogICAgICAgICAgaW5mb3JtYXRpb24gc2VudCB0byB0aGUgc2NyaXB0cy4KCmhhcmRha2VyIDI3IE1hciA5OCAxMToyMDoyMQogICAgLSAocmVhZF9jb25maWcuYywgcmVhZF9jb25maWcuaCk6CiAgICAgIC0gY3JlYXRlIGNvbmZpZ19wd2FybigpIHRoYXQgZG9lc24ndCBpbmNyZWFzZSB0aGUgZXJyb3IgY291bnQgdG8KICAgICAgICBwcmV2ZW50IGV4aXRpbmcuICBVc2VkIGZvciBkaXNrcywgc2luY2Ugc29tZSBtaWdodCBieSBwcm9jZXNzIG9yCiAgICAgICAgbmZzIG1vdW50ZWQuCgpoYXJkYWtlciAyNyBNYXIgOTggMTE6MjA6NTQKICAgIC0gKGRpc2suYyk6IHVzZSBjb25maWdfcHdhcm4oKSBmb3IgbWlzc2luZyBkaXNrcy4KCmhhcmRha2VyIDI3IE1hciA5OCAxMToyMjozNQogICAgLSAoaHJfZGV2aWNlLmMpOiBjaGVjayBkZXZpY2UgaW5kZXggYWdhaW5zdCBtYXhpbXVtIChzZWdmYXVsdCBvbiBIUFVYKS4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjoxMDowNQogICAgLSAoUkVBRE1FLCBjb25maWcuaC5pbiwgY29uZmlndXJlLCBjb25maWd1cmUuaW4sIHNubXBkLmMpOiBQYXRjaCBmcm9tCiAgICAgIEFydGh1ciBIeXVuOgogICAgICAtIHRjcHdyYXBwZXJzIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6MjM6MDMKICAgIC0gKGludGVyZmFjZXMuYyk6IEludGVyZmFjZXNfU2Nhbl9OZXh0IG5lZWRlZCBhIDR0aCAoTlVMTCkgYXJndW1lbnQuCgpoYXJkYWtlciAyNyBNYXIgOTggMTY6MjM6MzMKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbiwgc25tcGQuYyk6CiAgICAgIC0gY29ycmVjdGx5ICNpZmRlZiBvdXQgdGhlIHRjcHdyYXBwZXJzIHBhdGNoLgoKaGFyZGFrZXIgMjcgTWFyIDk4IDE2OjQyOjEzCiAgICAtIChJTlNUQUxMKTogZG9jdW1lbnQgbGlid3JhcC4KCmhhcmRha2VyIDI3IE1hciA5OCAxNjo0MzowNgogICAgLSAoc25tcF92YXJzLmMsIHNubXBfdmFycy5oLCBpbnRlcmZhY2VzLmMsIGlwLmMsIHJlZ2lzdHJ5LmMpOgogICAgICAtIHByb3RvdHlwaW5nIGFuZCAtV2FsbCBmaXhlcy4KCmhhcmRha2VyICAxIEFwciA5OCAwOTo1MjozMgogICAgLSAoc25tcF9jbGllbnQuYyk6IGVudGVycHJpc2VfbGVuZ3RoIGlzIHNpemVvZihvaWQpIGRlcGVuZGVudC4KCmhhcmRha2VyICAxIEFwciA5OCAxMzoyNzowNwogICAgLSAoYXV0b19ubGlzdC5jKToKICAgICAgLSByZW1vdmUgbm8gbG9uZ2VyIG5lZWRlZCBkZWJ1Z2dpbmcgc3RhdGVtZW50cyBvZiB0cmVlIHRyYXZlcnNhbC4KCmhhcmRha2VyICAxIEFwciA5OCAxMzozMToyOQogICAgLSAoTkVXUywgUE9SVElORyk6IHVwZGF0ZXMgZm9yIDMuNC4KCmhhcmRha2VyICAxIEFwciA5OCAxMzo0Nzo1NQogICAgLSAoRkFRLCBSRUFETUUpOiBtb3JlIDMuNCB1cGRhdGVzLgoKaGFyZGFrZXIgIDEgQXByIDk4IDEzOjUzOjI3CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogYWRkZWQgdmFjbSBleGFtcGxlIGNvbmZpZ3VyYXRpb24uCgpoYXJkYWtlciAgMSBBcHIgOTggMTM6NTQ6MTEKICAgIC0gKHNubXBkLmNvbmYuNS5kZWYpOiBtb3ZlZCB0aGUgdmlldyBleGFtcGxlIHNlY3Rpb24gYWJvdmUgdGhlIGFjY2VzcyBzZWN0aW9uLgoKaGFyZGFrZXIgIDEgQXByIDk4IDE0OjEwOjA3CiAgICAtIChUT0RPKTogcmVtb3ZlZCBhIGZldyB0aGluZ3MhCgpoYXJkYWtlciAgMSBBcHIgOTggMTQ6MTE6NDkKICAgIC0gKE1ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAgMSBBcHIgOTggMTQ6NDA6NDQKICAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3ZhcnMuaCk6IG1ha2UgdW5yZWdlc3RlcmluZyBvZiBtaWJzIHdvcmsuCiAgICAgIC0gKGluIG1vc3QgY2FzZXMgOi0/KQoKaGFyZGFrZXIgIDEgQXByIDk4IDE0OjQzOjE0CiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU2ICkKCmhhcmRha2VyICAxIEFwciA5OCAxNjozNTo1OQogICAgLSAoc25tcHRyYXBkLmMpOiBhbHdheXMgc2VuZCBlbnRlcnByaXNlIGFuZCB0cmFwb2lkIHRvIHNjcmlwdHMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTA6MzE6MDgKICAgIC0gKHNubXBkLmMpOiBjaGFuZ2Ugb2lkIGZyb20gdGV4dHVhbCB0byBudW1lcmljIHRvIGFsbG93IG5vdyBtaWJzIHRvCiAgICAgIGJlIGxvYWRlZC4KCmhhcmRha2VyIDIwIEFwciA5OCAxNTo1NDoyOQogICAgLSAoaG9zdF9yZXMuaCwgaHJfZGlzay5jLCBocl9maWxlc3lzLmMsIGhyX3BhcnRpdGlvbi5jLCBocl9zdG9yYWdlLmMpOgogICAgICAtIFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgICAgLSBjb25zb2xpZGF0ZSB0aGUgc3lzdGVtLXNwZWNpZmljIHN0dWZmIGEgYml0IChzaG91bGQgbWFrZSBpdCBlYXNpZXIKICAgICAgICAgIHRvIGZvbGxvdykKICAgICAgICAtIFJlLXN0cnVjdHVyZXMgdGhlIERpc2sgc2VhcmNoaW5nLCBpbiBzdWNoIGEgd2F5IHRoYXQgaXQgY2FuIHNldCB1cAogICAgICAgICAgdmlhIHRoZSBjb25maWcgZmlsZS4gKHdoaWNoIEkgc3RpbGwgbmVlZCB0byBkbykKICAgICAgICAtIFNwZWVkIHVwIGRpc2sgc2VhcmNoaW5nIChieSBjYWNoaW5nIGludmFsaWQgcmVzdWx0cyAtIGEgKm1ham9yKiB3aW4hKQogICAgICAgIC0gSGFuZGxlIHBhcnRpdGlvbnMgc2Vuc2libHkgKGFydGhlciB0aGFuIG9uZSBwZXIgZGlzaykKICAgICAgICAtIEltcHJvdmUgU29sYXJpcyBzdXBwb3J0IGZvciB0aGUgRGV2aWNlIGdyb3VwCgpoYXJkYWtlciAyMCBBcHIgOTggMTU6NTY6NTAKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IGNoZWNrIGZvciBzeXMvZGtpby5oCgpoYXJkYWtlciAyMCBBcHIgOTggMTU6NTk6MTIKICAgIC0gKGhyX2ZpbGVzeXMuYywgaHJfc3dydW4uYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IHNvbWUgaG9zdCByZXNvdXJjZXMgZm9yIHNvbGFyaXMuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDA6MzYKICAgIC0gKHNubXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGFwcHJvcHJpYXRlIHVzZSBvZiBzdHJkdXAgZHVyaW5nIHN0YXJ0dXAgYW5kIGJldHRlciBmbGFnIGNoZWNraW5nLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjAwOjU2CiAgICAtIChpbnRlcmZhY2VzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGhlYWRlciBtb3Zlcy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowMjoxMgogICAgLSAoaXAuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdGVzdCBzeW1ib2wgZGVmaW5lcyBhbmQgY2xlYW51cC4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowMzowMwogICAgLSAoc25tcHRhYmxlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHByb3RvdHlwaW5nIGFuZCBvdGhlciBjbGVhbnVwcy4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowNTowMAogICAgLSAoc25tcHRyYXBkLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGdldGhvc3RieWFkZHIgbW92ZXMgdXAuCiAgICAgIC0gaW5jbHVkZSBzeXMvd2FpdC5oLgogICAgICAtIHN5c2xvZyAlZCAtPiAlbGQgZm9yIGxvbmcgc3BlY2lmaWNfdHlwZS4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowNTozNAogICAgLSAodmFjbV92YXJzLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHR5cGVjYXN0IGEgcG9pbnRlci4KCmhhcmRha2VyIDIwIEFwciA5OCAxNjowNjowMwogICAgLSAodGNwLmMsIHVkcC5jLCB2YXJfcm91dGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gI2lmZGVmIGNoZWNrcyBvbiBzeW1ib2xzIGFuZCBoZWFkZXIgbW92ZW1lbnQuCgpoYXJkYWtlciAyMCBBcHIgOTggMTY6MDY6MjEKICAgIC0gKHNvbGFyaXMuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gdW5kZWZpbmUgYSBidW5jaCBvZiBubGlzdCBzeW1ib2xzLgoKaGFyZGFrZXIgMjAgQXByIDk4IDE2OjA3OjEwCiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBuZWVkZWQgcG9pbnRlciBjb3BpZXMuCgpoYXJkYWtlciAyMiBBcHIgOTggMDc6NDk6MjEKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOiBjaGFuZ2VkIHdvcmRpbmcsIGNsZWFuZWQgdXAgYSBiaXQuCgpoYXJkYWtlciAyMiBBcHIgOTggMDg6MzU6MjkKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHBhcnNlIEJJVFMga2V5d29yZHMuCgpoYXJkYWtlciAyNCBBcHIgOTggMTA6MDA6MDYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogbWliIG9pZCBsb2NhdGlvbiB1cGRhdGVzIGZvciB1Y2Qtc25tcCBtaWIuCgpoYXJkYWtlciAyNCBBcHIgOTggMTA6MDI6MjkKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIHJlbmFtZWQgbGFiZWxzIHRvIGJlIHVuaXF1ZSBmcm9tIHRoZSBvbGQgZGVmaW5pdGlvbnMuCiAgICAgIC0gcmVudW1iZXJlZCBhZ2Fpbi4KICAgICAgLSBjb21tZW50ZWQgb24gdGhlIGRlc2dpbiBvZiB0aGUgbWliIGF0IHRoZSB0b3AuCiAgICAgIC0gQ2hhbmdlZCBiYWNrIHRvIFNNSXYxLgogICAgICAtIHJlbW92ZWQgbG9ja2Qgc2VjdGlvbi4KICAgICAgLSByZW1vdmVkIHZtc3RhdCBzZWN0aW9uIHRpbGwgaXQgZ2V0cyBpbXBsZW1lbnRlZC4KICAgICAgLSByZW1vdmVkIHNlcXVlbmNlcyBvZiBzY2FsZXJzLgoKaGFyZGFrZXIgMjQgQXByIDk4IDEwOjIyOjAwCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogdGhlIHRleHR1YWwgZGVzY3JpcHRpb25zIHdlcmUgdXBkYXRlZCBzb21lLgoKaGFyZGFrZXIgMjQgQXByIDk4IDE0OjAzOjI2CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogbW9yZSBjbGVhbmluZyBhbmQgcmVuYW1pbmcuCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MzI6MTIKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gY2hlY2sgc3RhdHZmcy5oIGZvciBmX2JhdmFpbC4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDozMzowOAogICAgLSAoaHJfZmlsZXN5cy5jKTogaW5jbHVkZSBzeXMvcGFyYW0uaCB0byBkZWZpbmUgTUFYUEFUSExFTi4KCmhhcmRha2VyIDI0IEFwciA5OCAxNDozMzoyNAogICAgLSAoaHJfcGFydGl0aW9uLmMpOiBjbG9zZSBmaWxlIGRlc2NyaXB0b3IganVzdCBvcGVuZWQuCgpoYXJkYWtlciAyNCBBcHIgOTggMTQ6MzM6NTgKICAgIC0gKGRpc2suYyk6IGNhbGN1bGF0ZSB2ZnMgYmxvY2sgc2l6ZSBpZiBwb3NzaWJsZSBhbmQgc2l6ZSA+IDI1NSBieXRlcy4KCmhhcmRha2VyIDI0IEFwciA5OCAxNjozMTozMAogICAgLSAodGNwLmMpOiBpbmNsdWRlIG5ldGluZXQvdGNwaXAuaCBmb3IgRFU0LjAuCgpoYXJkYWtlciAyNCBBcHIgOTggMTY6MzI6MDUKICAgIC0gKGF1dG9fbmxpc3QuYywgYXV0b19ubGlzdC5oKTogbl92YWx1ZSBpcyBhIGxvbmc6CiAgICAgIC0gcmV0dXJuIHRoZSB2YWx1ZSBmcm9tIGF1dG9fbmxpc3RfdmFsdWUgYXMgYW4gdW5zaWduZWQgbG9uZy4KCmhhcmRha2VyIDI0IEFwciA5OCAxNjo0MDo0NQogICAgLSAodmFyX3JvdXRlLmMpOiB3YXRjaCBvdXQgZm9yIHNpbmdsZSByb3V0ZSBsb29wcy4KCmhhcmRha2VyIDI3IEFwciA5OCAxMDo1OToxOQogICAgLSAoTWFrZWZpbGUudG9wKTogcmVtb3ZlZCB1bm5lZWRlZCB2YXJpYWJsZS4KCmhhcmRha2VyIDI3IEFwciA5OCAxMTowMDowOAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBkZWZpbmUgU0hMSUJfTERDT05GSUdfQ01EIGFzICI6IiBmb3IKICAgICAgc3RhdGljIGxpYnJhcnkgY2FzZXMuCgpoYXJkYWtlciAyNyBBcHIgOTggMTE6MDA6NDQKICAgIC0gKHNubXBidWxrd2Fsay5jLCBzbm1wZGVsdGEuYywgc25tcGdldC5jLCBzbm1wZ2V0bmV4dC5jLCBzbm1wc2V0LmMsCiAgICAgIHNubXBzdGF0dXMuYywgc25tcHRhYmxlLmMsIHNubXB0ZXN0LmMsIHNubXB3YWxrLmMpOgogICAgICAtIFB1dCB0aGUgd29yZCAiVGltZW91dDogIiBpbiBmcm9udCBvZiB0aGUgIk5vIFJlc3BvbnNlIiBlcnJvcnMuCgpoYXJkYWtlciAyNyBBcHIgOTggMTM6MzE6MTAKICAgIHZlcnNpb24gdGFnICggMy40LnByZTcgKQoKaGFyZGFrZXIgMjcgQXByIDk4IDE2OjI0OjM0CiAgICAtICh0a21pYik6IGJ1ZyBmaXhlcyBhbmQgbmV3IG1pYiBtZW51IHRvIGxvYWQgbmV3IG1pYnMuCgpoYXJkYWtlciAyNyBBcHIgOTggMTY6NDY6MjgKICAgIC0gKHRrbWliKTogTmV3IG1pYiBtZW51IGNvbW1hbmQ6IGxvYWQgYSBtaWIgbW9kdWxlIGJ5IElEIG5hbWUuCgpoYXJkYWtlciAyNyBBcHIgOTggMTY6NDg6MDIKICAgIC0gKHRrbWliKTogYnVnIGZpeGVzLgoKaGFyZGFrZXIgMjkgQXByIDk4IDA4OjU2OjQ0CiAgICAtIChzbm1wdGFibGUuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZml4IC1IIGhlYWRlciBwcmludGluZy4KCmhhcmRha2VyIDI5IEFwciA5OCAxMDoyNjo1OAogICAgLSAodGNwLmMpOiBkb24ndCB1c2UgVENQU1RBVF9TWU1CT0wgdW5sZXNzIGRlZmluZWQuCgpoYXJkYWtlciAyOSBBcHIgOTggMTA6MzQ6MTIKICAgIC0gKGV4YW1wbGUuYywgcHJvYy5jLCB2YXJfcm91dGUuYywgd29tYmF0LmMpOgogICAgICAtIG5saXN0IGNsZWFudXBzLgoKaGFyZGFrZXIgMjkgQXByIDk4IDEwOjQzOjA0CiAgICAtIChleGFtcGxlLmMsIGV4YW1wbGUuaCwgd29tYmF0LmMsIHdvbWJhdC5oKTogbW9yZSBjbGVhbiB1cHMuCgpoYXJkYWtlciAyOSBBcHIgOTggMTE6MzE6NDMKICAgIC0gKHZtc3RhdC5jLCB2bXN0YXQuaCk6IG1vdmVzLCBjaGFuZ2VzLCByZW1vdmFscywgYW5kIGZpeGVzLgoKaGFyZGFrZXIgMjkgQXByIDk4IDExOjMyOjAxCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogcHV0IHZtc3RhdCBiYWNrIGluIGFuZCByZW5hbWVkIHRvIHN5c3RlbVN0YXRzLgoKaGFyZGFrZXIgMjkgQXByIDk4IDExOjQxOjU4CiAgICAtICh0a21pYik6CiAgICAgIC0gZGlzcGxheSB1bmxvYWRlZCBtb2R1bGUgZXJyb3IuCiAgICAgIC0gZG9uJ3QgdHJ5IHRvIGxvYWQgYSBmaWxlIG9uIGEgY2FuY2VsLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDExOjIyOjU2CiAgICAtIChNYWtlZmlsZS5pbik6IGluc3RhbGwgdGttaWIuCgpoYXJkYWtlciAgNiBNYXkgOTggMTQ6MDY6NTcKICAgIC0gKFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGFkZGVkIGludGVybmFsIHRhYmxlIHNlY3Rpb24uCiAgICAgIC0gbWliIG51bWJlciBjb3JyZWN0aW9ucyB0byBtYXRjaCB0aGUgc291cmNlLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDE0OjU4OjIzCiAgICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGV4YW1wbGUuYywgZXhhbXBsZS5oLCBleHRlbnNpYmxlLmMsIGxvYWRhdmUuYywKICAgICAgbWVtb3J5LmMsIHByb2MuYywgc3lzT1JUYWJsZS5jLCBzeXN0ZW0uYywgdXRpbF9mdW5jcy5jLAogICAgICB1dGlsX2Z1bmNzLmgsIHZlcnNpb25pbmZvLmMsIHZtc3RhdC5jKToKICAgICAgLSByZW1vdmUgdGhlIG5ld25hbWUgcmVxdWlyZW1lbnQgZnJvbSBjaGVja21pYigpLgogICAgICAtIGNyZWF0ZSBoZWFkZXJfZ2VuZXJpYygpIGZvciBzaW1wbGUgc2NhbGFyIHRlc3RzLgogICAgICAtIHVzZSBoZWFkZXJfZ2VuZXJpYygpIGluIGFsbCB1Y2Qgc3BlY2lmaWMgc2NhbGFyIG1pYnMsIGFuZCBleGFtcGxlLltjaF0uCgpoYXJkYWtlciAgNiBNYXkgOTggMjE6MDY6NTkKICAgIC0gKE5FV1MpOiBtaW5vciB3b3JkaW5nIGNoYW5nZS4KCmhhcmRha2VyICA2IE1heSA5OCAyMTowNzoyOAogICAgLSAodXRpbF9mdW5jcy5jLCB1dGlsX2Z1bmNzLmgpOgogICAgICAtIG5ldyBmdW5jdGlvbjogY2FsY3VsYXRlX3RpbWVfZGlmZih0MSwgdDIpLgoKaGFyZGFrZXIgIDYgTWF5IDk4IDIxOjA4OjAwCiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogbWFrZSBib2d1cyBpbmRleCdzIGJlIDAuCgpoYXJkYWtlciAgNiBNYXkgOTggMjE6MDg6MzcKICAgIC0gKG1pYjJjKTogY3JlYXRlZCBhIG1pYjJjIHRlbXBsYXRlIGNyZWF0b3IuCgpoYXJkYWtlciAgNiBNYXkgOTggMjI6Mjg6NDcKICAgIC0gKHdpbjMyL2NvbmZpZy5oKTogdXBkYXRlIGZyb20gSm9lIE1hcnpvdC4KCmhhcmRha2VyICA3IE1heSA5OCAwOTowNTo1NQogICAgLSAoQ09QWUlORyk6IGNvcnJlY3Rpb24gZm9yIGRhdGVzLgoKaGFyZGFrZXIgIDcgTWF5IDk4IDA5OjA3OjA2CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IHN5cy9zdGF0IGluY2x1c2lvbiBpbiBmcyBjaGVja3MuCgpoYXJkYWtlciAgNyBNYXkgOTggMDk6MDc6NDYKICAgIC0gKHJlYWRfY29uZmlnLmMpOiBkZWJ1ZyBpbmZvIGZvciBjb25maWcgZmlsZXMgcmVhZC4KCmhhcmRha2VyICA4IE1heSA5OCAxMDo1Nzo0OQogICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBwa2dsb2NzLmguCgpoYXJkYWtlciAgOCBNYXkgOTggMTE6MDE6MjQKICAgIC0gKGhyX3N3aW5zdC5jLCBocl9kaXNrLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcy4KCmhhcmRha2VyICA4IE1heSA5OCAxNDo1MzozNgogICAgLSAoZGlzay5jKTogd29yZGluZyBjaGFuZ2UuCgpoYXJkYWtlciAxMSBNYXkgOTggMDg6MDg6MzcKICAgIC0gKHV0aWxfZnVuY3MuYyk6IGJsYW5rIGxpbmUgcmVtb3ZhbC4KCmhhcmRha2VyIDExIE1heSA5OCAwODowODo1MwogICAgLSAodGttaWIpOiBvcHRpb25hbCBwb3J0IG51bWJlci4KCmhhcmRha2VyIDExIE1heSA5OCAwODowOTo1OAogICAgLSAobWliMmMpOgogICAgICAtIGNvdW50ZXI2NHMuCiAgICAgIC0gY29uc29sb2RhdGlvbiBvZiB2YXJpYWJsZSBkZWNsYXJhdGlvbnMuCiAgICAgIC0gbW9yZSBlcnJvciBzdGluZ3MgaW4gYWxsIGZpbGVzIGZvciB1bmtub3duIHZhcmlhYmxlIHR5cGVzLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDA4OjEwOjMwCiAgICAtIChwYXJzZS5jKTogb3BhcXVlJ3MgY2FuIGhhdmUgYSBzaXplIHNwZWNpZmllci4KCmhhcmRha2VyIDExIE1heSA5OCAwODoxMDo0NgogICAgLSAoaW50NjQuYyk6IGFkZCBpbmNyQnlVMzIoKS4KCmhhcmRha2VyIDExIE1heSA5OCAxMDoyOToxNgogICAgLSAocmVhZF9jb25maWcuYywgc25tcF92YXJzLmgsIHNubXBkLmMsIHNubXBkLmgsIHZhcl9zdHJ1Y3QuaCk6IFBhdGNoCiAgICAgIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZnJlZSByb3V0aW5lcyBmb3IgdmFjbSAodG8gYWxsb3cgLUhVUCkKICAgICAgLSBmcmVlIHJvdXRpbmVzIGZvciB0aGUgdHJhcHNpbmsgZGlyZWN0aXZlcyBpbiBzbm1wZAoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMwOjAxCiAgICAtIChocl9kaXNrLmMsIGhyX2ZpbGVzeXMuYywgaHJfcGFydGl0aW9uLmMsIHZhY21fdmFycy5jKTogUGF0Y2ggZnJvbQogICAgICBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzb21lIHByb3RvdHlwZXMgZm9yIHRoZSBocl8qLmMgZmlsZXMgKG5lZWRzIERhdmUncyByZWNlbnQgcGF0Y2gpCiAgICAgICAgV2FybmluZzogdGhlIHByb2MgcGFydCBzdGlsbCBkb2VzIG5vdCB3b3JrIHdpdGggU29sYXJpcyEKCmhhcmRha2VyIDExIE1heSA5OCAxMDozMDoxOAogICAgLSAoc25tcHRyYW5zbGF0ZS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUKCmhhcmRha2VyIDExIE1heSA5OCAxMDozMDozNwogICAgLSAoc25tcHRyYW5zbGF0ZS4xKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBpbXBsZW1lbnQgdGhlIGxvbmcgc2luY2UgYW5ub3VuY2VkIC1IIG9wdGlvbiB0byBzbm1wdGFibGUuCgpoYXJkYWtlciAxMSBNYXkgOTggMTA6MzE6MzMKICAgIC0gKFNOTVB2Mi1UQy50eHQpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHRoaXMgbGFzdCBbcGFyc2VyXSBtYXkgZmluZCBlcnJvcnMgaW4gb2xkIE1JQnMgKGluY2x1ZGluZyB0aGUKICAgICAgICB2ZXJzaW9uIG9mIFNOTVB2Mi1UQyB0aGF0IHdlIHNoaXApLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjMyOjI3CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBDb3JyZWN0aW9ucyBvZiBkaXNrIGVudHJ5IGNhcGl0aWxhemF0aW9uIHByb2JsZW1zLgoKaGFyZGFrZXIgMTEgTWF5IDk4IDEwOjM0OjM4CiAgICAtIChtaWIuYywgcGFyc2UuYywgcGFyc2UuaCwgc25tcF9hcGkuaCwgdmFjbS5jLCB2YWNtLmgpOiBQYXRjaCBmcm9tCiAgICAgIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIGZyZWUgcm91dGluZXMgZm9yIHZhY20gKHRvIGFsbG93IC1IVVApCiAgICAgIC0gZml4IHRoZSBwYXJzZXIgdG8gcmVwb3J0IHVubGlua2VkIE9JRHMuIFRoaXMgZGlkIHJldmVhbCBhbiBlcnJvciBpbiBhCiAgICAgICAgQ2lzY28gTUlCIChDSVNDTy1JUE1DQVNULU1JQikgdGhhdCBJIGhhZCBiZWVuIHVzaW5nIChpdCBuZWVkcyBhbgogICAgICAgIElNUE9SVFMgY2lzY29FeHBlcmltZW50IEZST00gQ0lTQ08tU01JKQogICAgICAgIEFjdHVhbGx5IHRoZSBwYXJzZXIgd29ya2VkIG9rLCBleGNlcHQgZm9yIHRoZSBtaXNzaW5nIGVycm9yIG1lc3NhZ2VzLgogICAgICAtIHJld3JpdGUgb2YgdGhlIHBhcnNlcnMgbGV4aWNhbCBhbmFseXNlciwgdG8gY29ycmVjdCB0aGUgZXJyb3JzIHRoYXQKICAgICAgICBEYXZlIFBlcmtpbnMgYW5kIG90aGVycyBoYXZlIHBvaW50ZWQgb3V0IHJlY2VudGx5IChuYW1lOjo9ICwgREVTQ1JJUFRJT04iCiAgICAgICAgYW5kIHByb3BlciBoYW5kbGluZyBvZiAtLSBwYXJ0aWFsIGxpbmUgY29tbWVudHMgLS0pLiBXYXRjaCBvdXQhIHRoaXMgbGFzdAogICAgICAgIG1heSBmaW5kIGVycm9ycyBpbiBvbGQgTUlCcyAoaW5jbHVkaW5nIHRoZSB2ZXJzaW9uIG9mIFNOTVB2Mi1UQyB0aGF0CiAgICAgICAgd2Ugc2hpcCkuIE15IEZvcmUgU3lzdGVtcyBNSUJzIGhhZCBlcnJvcnMgd2l0aCB0aGlzLgogICAgICAtIGltcGxlbWVudCB0aGUgbG9uZyBzaW5jZSBhbm5vdW5jZWQgLUggb3B0aW9uIHRvIHNubXB0YWJsZQoKaGFyZGFrZXIgMTIgTWF5IDk4IDEwOjUyOjE2CiAgICAtIChocl9zd2luc3QuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gbW9yZSBzd2luc3QgZml4ZXMgZm9yIHJwbSBtb2R1bGVzLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDEwOjUyOjU3CiAgICAtIChzbm1wdHJhcGQuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gaW5jbHVkZSBhIGdldGR0YWJsZXNpemUoKSBmdW5jdGlvbiBmb3IgaHB1eDkuCgpoYXJkYWtlciAxMiBNYXkgOTggMTE6MTA6NDIKICAgIC0gKE5FV1MpOiBtb3JlIHVwZGF0ZXMuCgpoYXJkYWtlciAxMiBNYXkgOTggMTE6MTE6MTAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gbXVuZ2UgcnBtIGxpYiBjaGVjayB0byBsaW5rIHdpdGggLWxkYiBhcyB3ZWxsLgoKaGFyZGFrZXIgMTIgTWF5IDk4IDExOjExOjMyCiAgICAtIChkaXNrLmMpOiBOVUxMIC0+IDAuCgpoYXJkYWtlciAxMiBNYXkgOTggMTE6NDU6MjEKICAgIC0gKHZtc3RhdC5jKTogY29ycmVjdCBzdHJpbmdzIGluY2x1c2lvbi4KCmhhcmRha2VyIDEyIE1heSA5OCAxMTo0NTo1MQogICAgLSAoc25tcF9hcGkuYywgc3lzdGVtLmMpOgogICAgICAtIG1vdmUgZGVidWdnaW5nIGNvZGUgZnJvbSBzeXN0ZW0uYyB0byBzbm1wX2FwaS5jLCB3aGVyZSBpdCBzaG91bGQgYmUuCgpoYXJkYWtlciAxMiBNYXkgOTggMTU6MTQ6NDgKICAgIC0gKGRpc2suYywgZXhhbXBsZS5jLCBpbnRlcmZhY2VzLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMsIHBhc3MuYywKICAgICAgcHJvYy5jLCB1dGlsX2Z1bmNzLmgsIHZtc3RhdC5jKToKICAgICAgLSBpbmNsdWRlIHRpbWUuaCBwcm9wZXJseSBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gdXRpbF9mdW5jcy5oIHRvIGRvIGl0LgoKaGFyZGFrZXIgMTIgTWF5IDk4IDE1OjE1OjAxCiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU4ICkKCmhhcmRha2VyIDEzIE1heSA5OCAyMToyMToyMgogICAgLSAoaW50NjQuYywgaW50NjQuaCwgbWliLmMpOiBtYWtlIGludDY0LmMgdXNlIGNvdW50ZXI2NCdzIHN0cnVjdHVyZS4KCmhhcmRha2VyIDEzIE1heSA5OCAyMToyMTo0MgogICAgLSAoc25tcF92YXJzLmMpOiBkb24ndCByZXR1cm4gYSBjb3VudGVyNjQgdG8gYSBzbm1wdjEgcmVxdWVzdC4KCmhhcmRha2VyIDEzIE1heSA5OCAyMToyMjowOQogICAgLSAoaXAuYyk6IGluY2x1ZGUgbmV0L3JvdXRlLmggYW5kIHN5c2xvZy5oIGZvciBic2RpLgoKaGFyZGFrZXIgMTMgTWF5IDk4IDIxOjIyOjE3CiAgICAtIChtZW1vcnkuYyk6IGluY2x1ZGUgc3lzL3BhcmFtLmggZm9yIGJzZGkKCmhhcmRha2VyIDEzIE1heSA5OCAyMToyNTozOQogICAgLSAobWliLmMpOiBzcHJpbnRfYnlfdHlwZSgpIGRpZG4ndCBoYW5kbGUgY291bnRlcjY0J3MuCgpoYXJkYWtlciAxNCBNYXkgOTggMDc6MTc6MzQKICAgIC0gKG1lbW9yeS5jKTogbW92ZSBzeXMvcGFyYW0uaCB1cCBhYm92ZSBmcy5oIGhlYWRlcnMuCgpoYXJkYWtlciAxNCBNYXkgOTggMDg6MjE6NTUKICAgIC0gKEZBUSk6IG5ldyBGQVEgZnJvbSBEYXZlIFNoaWVsZHMuCgpoYXJkYWtlciAxNCBNYXkgOTggMDg6MjI6MDgKICAgIC0gKE5FV1MpOiBtaWIyYyBtZW50aW9uZWQuCgpoYXJkYWtlciAxNCBNYXkgOTggMDg6MjU6NTcKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogdHlwb3MuCgpoYXJkYWtlciAxNSBNYXkgOTggMTA6MTM6MTYKICAgIC0gKHBhcnNlLmMpOiBzaW5nbGUgcXVvdGUgbWlzc2luZyBtb2R1bGUgbmFtZXMuCgpoYXJkYWtlciAxNSBNYXkgOTggMTA6MTc6MzYKICAgIC0gKHJlYWRfY29uZmlnLmMsIGhyX2ZpbGVzeXMuYywgaHJfc3RvcmFnZS5jLCBocl9zd3J1bi5jLCBocl9zeXN0ZW0uYywKICAgICAgaHJfc3lzdGVtLmgsIGhyX3V0aWxzLmMsIHV0aWxfZnVuY3MuYywgdmFyX3JvdXRlLmMsCiAgICAgIHNubXBfcGFyc2VfYXJncy5jLCBzbm1wdGFibGUuYywgc25tcHRyYW5zbGF0ZS5jLCBzbm1wdHJhbnNsYXRlLjEsCiAgICAgIGJzZC5oLCBzb2xhcmlzLmgsIHN1bm9zLmgsIGludDY0LmgsIG1pYi5jLCBtaWIuaCwgcGFyc2UuYywgcGFyc2UuaCk6CiAgICAgIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc25tcHRyYW5zbGF0ZSBzdXBwb3J0cyAtUiBhbmQgLXIuCiAgICAgIC0gbWlzY2VsbGFuZW91cyB3YXJuaW5nIGZpeGVzLgogICAgICAtIG9pZCBzZWFyY2hlciBhbHdheXMgaWdub3JlcyBjYXNlLgogICAgICAtIGZpeGVkIGhyX3N5c3RlbSB0byBjb21waWxlIG9uIFN1bk9TNC4KCmhhcmRha2VyIDE1IE1heSA5OCAxMDoxOTowNQogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIHByb3ZpZGUgYWJpbGl0eSB0byBkbyByYW5kb20gc2VhcmNoZXMgc3BlY2lmeWluZyBhIG1vZHVsZSBuYW1lIHRvIGxvb2sgaW4uCgpoYXJkYWtlciAxNSBNYXkgOTggMTE6MTc6NDQKICAgIC0gKEZBUSwgbWliLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGhhbmRsZSByYW5kb20gbG9va3VwcyB3aXRoIG11bHRpcGxlIG9pZCBzZWdtZW50cy4KCmhhcmRha2VyIDE1IE1heSA5OCAxMToxOToxMAogICAgLSAoY29uZmlnLmgsIHdpbjMyLm9wdCwgbGlic25tcC5kc3AsIGxpYnNubXAucGxnLCBsaWJzbm1wLmRlZiwKICAgICAgbGlic25tcF9kbGwuZHNwLCBsaWJzbm1wX2RsbC5wbGcsIHNubXBidWxrd2Fsay5wbGcsIHNubXBnZXQucGxnLAogICAgICBzbm1wZ2V0bmV4dC5wbGcsIHNubXBzZXQucGxnLCBzbm1wc3RhdHVzLnBsZywgc25tcHRyYW5zbGF0ZS5wbGcsCiAgICAgIHNubXB3YWxrLnBsZyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSB3aW4zMiBmaWxlIHVwZGF0ZXMuCgpoYXJkYWtlciAxOCBNYXkgOTggMTE6MTg6MjEKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gZml4IHJ0ZW50cnkgc3RydWN0dXJlIHRlc3Qgb24gcmUtY29uZmlndXJlcy4KCmhhcmRha2VyIDE4IE1heSA5OCAxMzoxMzoxOAogICAgLSAoaHJfc3dpbnN0LmMpOiBwcm90ZWN0IHVzaW5nIHRoZSBkYXRlIHBvaW50ZXIgYWdhaW5zdCBOVUxMIHNldHRpbmdzLgoKaGFyZGFrZXIgMTggTWF5IDk4IDE1OjM5OjM4CiAgICB2ZXJzaW9uIHRhZyAoIDMuNC5wcmU5ICkKCmhhcmRha2VyIDE4IE1heSA5OCAxODoxNDoxOQogICAgLSAoaW50NjQuYyk6CiAgICAgIC0gaW5jbHVkZSBoZWFkZXIgY2hhbmdlcyBmb3Igd2luMzIuCgpoYXJkYWtlciAxOSBNYXkgOTggMTA6NDE6MTQKICAgIC0gKGF0LmMpOiBzZXQgdG8gZG8gbm90aGluZyB3aGVuIENBTl9VU0VfU1lTQ1RMLgoKaGFyZGFrZXIgMTkgTWF5IDk4IDEwOjQxOjQ5CiAgICAtIChtZW1vcnkuYyk6IGZpeCBzd2FwaW5mbyBvbiBocHV4MTAgc3lzdGVtcy4gKC9ldGMvc3dhcGluZm8gLXIpLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA3OjMzOjAyCiAgICAtIChtaWIuYywgcGFyc2UuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZXh0ZW5kIHJhbmRvbSBsb29rdXBzIGZ1cnRoZXIuCgpoYXJkYWtlciAyMCBNYXkgOTggMDc6MzQ6MzEKICAgIC0gKEZBUSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA3OjM2OjE0CiAgICAtICh1dGlsX2Z1bmNzLmMpOiBtYWtlIGNoZWNtaWIoKSB1c2Ugb2lkIG5vdCBpbnQgZm9yIG5ld25hbWUuCgpoYXJkYWtlciAyMCBNYXkgOTggMDc6Mzc6MzMKICAgIC0gKHNubXBfaW1wbC5oKTogdmVyc2lvbiBzaG91bGQgYmUgYSBsb25nLgoKaGFyZGFrZXIgMjAgTWF5IDk4IDA4OjI1OjQxCiAgICAtIChyZWFkX2NvbmZpZy5jKTogY29uZmlnX3BlcnJvcigpIC0+IGNvbmZpZ19wd2FybigpIGZvciBtaXNzaW5nIHRva2Vucy4KCmhhcmRha2VyIDIwIE1heSA5OCAwODoyNzowNgogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjIgLT4gVjMuMwoKd2hhcmRha2UgMTEgSnVuIDk3IDA0OjUzOjUzCiAgICAtIChtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gbWFrZSBNSUJGSUxFUyBlbnYgdmFyIHdvcmsgY29ycmVjdGx5LgoKd2hhcmRha2UgMTEgSnVuIDk3IDA1OjQ2OjE4CiAgICAtIChDaGFuZ2VMb2cpOiB3aG9vcHMuCgp3aGFyZGFrZSAyMyBKdW4gOTcgMjM6NDA6MjgKICAgIC0gKE1ha2VmaWxlLmluKTogUGF0Y2ggZnJvbSBKb2huIENoYXJsdG9uIHRvIGZpeCBsZWFkaW5nIHNwYWNlcyBpbiBzZWRzY3JpcHQuCgp3aGFyZGFrZSAyMyBKdW4gOTcgMjM6NDE6NTgKICAgIC0gKGNvbmZpZ3VyZSopOiBic2RpMyBuZWVkcyB0byBkZWZpbmUgYnNkaTIsIG5vdCBpdHNlbGYgKGR1aCkuCgp3aGFyZGFrZSAyMyBKdW4gOTcgMjM6NDI6MzYKICAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSk6IG5lZWQgMiBsZWFkaW5nICctJ3Mgb24gLS13aXRoLW1pYi1tb2R1bGVzIGZsYWcuCgp3aGFyZGFrZSAyNiBKdW4gOTcgMjM6Mzk6MzIKICAgIC0gKHNtdXguYyk6IF9fUCBtYWNyb3Mgd2VyZSBjYWxsZWQgd2l0aCB0b28gbWFueSBhcmd1bWVudHMgKG5lZWRlZCAoYXJncykpLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA1OjUzOjU3CiAgICAtIChhZ2VudC9zbm1wX3thZ2VudCx2YXJzfS5jLCBhbGFybS5jLCBldmVudC5jLCBhcHBzLyosCiAgICAgICBzbm1wbGliL3NubXB7LF9hcGksX2F1dGh9LmMpOgogICAgICAgLSBBZGRlZCBiYXNpYyAobW9zdGx5IGNvbmZvcm1pbmc/KSB2MmMgc3VwcG9ydC4KICAgICAgIC0gTWVyZ2VkIGFyZyBwYXJzaW5nIG9mIGFwcHMvKiBjbGllbnRzIGludG8gb25lIGZpbGUuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDU6NTQ6MzYKICAgIC0gKGFnZW50L21pYmdyb3VwL2ludGVyZmFjZXMuYyk6IERvbid0IHB1dCAmIGluIGZyb250IG9mIG9zZjQgYWNfZW5hZGRyLgoKd2hhcmRha2UgMzAgSnVuIDk3IDA2OjMzOjA4CiAgICAtIChzbm1wdGVzdC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBmaXggZ2V0IC0+IGZnZXQgJ1xuJyBwcm9ibGVtLgogICAgICAtIEFsc28gbWFrZXMgc3VyZSBpdCBoYW5kbGVzIHVwIGFuZCBsb3dlciBjYXNlcy4KCndoYXJkYWtlIDMwIEp1biA5NyAwNjozODo0MwogICAgLSAod29tYmF0LmgpOiBiZXR0ZXIgZG9jdW1lbnQgY29uZmlnX2xvYWRfbWliKCkgZXhhbXBsZS4KCndoYXJkYWtlIDMwIEp1biA5NyAwNjo0OTo0NQogICAgLSAoY29uZmlnKiwgbWVtb3J5LmMpOiBQYXRjaCBmcm9tIHZsYWRAbWlzZXJ5LnJvc3ByaW50LnJ1OgogICAgICAtIGltcGxlbWVudCBtZW1vcnkgc2VjdGlvbiBvZiB1Y2QgbWliIG9uIGxpbnV4LgoKd2hhcmRha2UgMzAgSnVuIDk3IDA2OjU4OjQ5CiAgICAtIChtaWJfYXBpLjMsIHBhcnNlLltjaF0pOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIEhhbmRsZSBtaWIgbW9kdWxlIHJlcGxhY2VtZW50cyB0aHJvdWdoIG5ldyBmdW5jdGlvbiBhbmQgcmVwbGFjZW1lbnQgdGFibGUuCgp3aGFyZGFrZSAzMCBKdW4gOTcgMDc6MTk6NTEKICAgIC0gKG1pYi5jLCBwYXJzZS5jLCBzbm1wX2FwaS5jKTogU3VnZ2VzdGlvbnMgZnJvbSBMYXVra2FuZW4gTWFya2t1IE5SQy9Ia2k6CiAgICAgIC0gTWFsbG9jIHR5cGVjYXN0cyBhbmQgb3RoZXIgY29ycmVjdGlvbnMgaW4gY2FzdGluZy4KCndoYXJkYWtlICAxIEp1bCA5NyAwMToxMDowMAogICAgLSAoc211eC5jKTogZml4IHByb3RvdHlwaW5nIGZhaWx1cmVzLgoKd2hhcmRha2UgIDEgSnVsIDk3IDA1OjQxOjU4CiAgICAtIChjb25maWcqLCBjb21tb25faGVhZGVyLmgsIGludGVyZmFjZXMuYywgdmFyX3JvdXRlLmMsIFVDRC1TTk1QLU1JQi50eHQpOgogICAgICAtIGZpeCBmcmVlYnNkMyBzcGVjaWZpYyBwcm9ibGVtcyAoYmFzZWQgb24gc3VnZ2VzdGlvbnMgZnJvbSBCaWxsIEZlbm5lcikuCgp3aGFyZGFrZSAgMSBKdWwgOTcgMDY6MDI6NTcKICAgIC0gKGFwcHMvKi5jKTogQmV0dGVyIHVzYWdlIGluZm9ybWF0aW9uIGFuZCB1c2FnZSgpIHN0YW5kYXJpemF0aW9uLgoKd2hhcmRha2UgIDEgSnVsIDk3IDA2OjQxOjQ0CiAgICAtIChkaXNrLmMsIGVycm9ybWliLmMsIGxvYWRhdmUuYywgbWVtb3J5LmMpOiBic2RpMyBzcGVjaWZpYyBoZWFkZXJzLgoKd2hhcmRha2UgIDEgSnVsIDk3IDA3OjIwOjI1CiAgICAtIChjb25maWcqKTogYnNkaTMgc3BlY2lmaWMgaGVhZGVycy4KCndoYXJkYWtlICAxIEp1bCA5NyAwODozNzo1MQogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMSApCgp3aGFyZGFrZSAgMyBKdWwgOTcgMjM6MzM6MjMKICAgIC0gKHNubXB0cmFuc2xhdGUuYywgbWliLltjaF0sIHBhcnNlLltjaF0pOgogICAgICAtIE5ldyBvcHRpb24gdG8gc25tcHRyYW5zbGF0ZSAoLWEpIHRvIG91dHB1dCBhIGFzY2lpIGR1bXAgb2YgdGhlIG1pYgogICAgICAgIGRhdGFiYXNlIGNhcGFibGUgb2YgYmVpbmcgdXNlZCBieSB0aGUgcGFyc2VyIGZvciBxdWljayBPSUQgdHJhbnNsYXRpb25zLgoKd2hhcmRha2UgIDMgSnVsIDk3IDIzOjM0OjE0CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmUyICkKCndoYXJkYWtlIDI0IEp1bCA5NyAyMzo1MDo0OAogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gRWRkeSBKLiBHdXJuZXk6ICB1bmNvbW1lbnQgZ2V0dGltZW9mZGF5KCkgY2FsbC4KCndoYXJkYWtlICA3IEF1ZyA5NyAwMDoyOToyNAogICAgLSAoVE9ETyk6IGJldHRlciBlcnJvciBtZXNzYWdlcyBieSBhcHBzLgoKd2hhcmRha2UgIDcgQXVnIDk3IDAxOjExOjU0CiAgICAtIChjb25maWcqLCBsb2FkLmMsIGRpc2suYywgcGFyc2UuYywgc25tcC5jKTogUGF0Y2ggZnJvbSBTaW1vbiBCdXJnZToKICAgICAgLSBVbHRyaXggZml4ZXMgZm9yIHN0YXRmcywgbG9hZGF2ZS4KICAgICAgLSBpbXBsZW1lbnQgc3RyZHVwIGlmIG5vdCBmb3VuZCBpbiBzeXN0ZW0uCiAgICAgIC0gdGVzdCBmb3IgdGVzdCBmbGFncyBmb3Iga2VybmVsIGNoZWNraW5nLgogICAgICAtIHdhdGNoIG91dCBmb3IgcHMnZXMgdGhhdCByZXR1cm4gZWdyZXAgd2l0aCB0aGUgcHMgYXJnIG9uIHRoZSBsaW5lLgogICAgICAtIHVwIG1heGltdW0gZGlza3MgdG8gNTAuCgp3aGFyZGFrZSAgNyBBdWcgOTcgMDE6MzM6MzgKICAgIC0gKGtlcm5lbC5jLCBwcm9jLmMpOiBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlOgogICAgICAtIEltcGxlbWVudCByZWFsIHByb2Nlc3MgdGFibGUgd2Fsa3Mgb24gVWx0cml4LgoKd2hhcmRha2UgIDcgQXVnIDk3IDAyOjM0OjQ1CiAgICAtIChjb25maWcqLCBtZW1vcnkuYyk6CiAgICAgLSBmaXggc3dhcCBvbiBIUFVYIDEwLjIwCgp3aGFyZGFrZSAxMyBBdWcgOTcgMDQ6NDc6NDkKICAgIC0gKHNubXBzdGF0dXMuYyk6IG9wdGFyZy9vcHRpbmQgbmVlZCB0byBiZSBkZWNsYWlyZWQgdW5kZXIgdWx0cml4NC4KCndoYXJkYWtlIDEzIEF1ZyA5NyAwODoxMTo0MgogICAgLSAodmVyc2lvbi5oLCBhZ2VudC8qLCBhZ2VudC9taWJncm91cC8qKToKICAgICAgLSBtb3ZlIHZlcnNpb24gc3RyaW5nIHRvIGEgZ2xvYmFsIGhlYWRlci4KICAgICAgLSBpbnNlcnQgVVNJTkdfKl9NT0RVTEUgbWFjcm8ncyBpbiBtYW55IHBsYWNlcyB0byBtYWtlIG1vZHVsZQogICAgICAgIHJlbW92YWwgbW9yZSBwb3NzaWJsZS4gIFlvdSBjYW4gbm93IGNvbXBpbGUgd2l0aCBhbG1vc3Qgbm8gbW9kdWxlcwogICAgICAgIGluc3RhbGxlZC4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwMDo0NjozOAogICAgLSAoc25tcF9wYXJzZV9hcmdzLmMsIHNubXB0cmFwLmMsIHNubXB0cmFwZC5jLCBtYWluLmMpOgogICAgICAtIGFkZCAtViB2ZXJzaW9uIGZsYWdlLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA3OjM4OjE3CiAgICAtIChjb25maWcqLCBGQVEsIFJFQURNRSwgYWdlbnQvbWliZ3JvdXAvKi5jLCBhcHBzLyouYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBEYXZpZCBQYXVsIFppbW1lcm1hbjoKICAgICAgICAtIHBvcnQgdG8gQUlYIDQuMS41LgogICAgICAgIC0gZml4IG1vcmUgdHlwZSBjYXN0aW5nIHByb2JsZW1zLgoKd2hhcmRha2UgMTQgQXVnIDk3IDA4OjE1OjQyCiAgICAtIChjb25maWd1cmUqKToKICAgICAgLSBUeXBvJ3Mgd2hlbiBjb3B5aW5nIGluIGEgYXV0b2NvbmYgdGVzdC4KICAgICAgLSBBZGQgZXJyb3JtaWIgdG8gZGVmYXVsdCBtb2R1bGUgbGlzdCAoc2luY2UgaXRzIG5vIGxvbmdlciByZXF1aXJlZCkuCiAgICAgIC0gYmFja3F1b3RlIGEgLiBpbiBhIHNlZCByZWdleHAgdG8gd2F0Y2ggb3V0IGZvciBtb2R1bGUgbmFtZXMKICAgICAgICBiZWdpbm5pbmcgd2l0aCB0aGUgbGV0dGVyIG8uCgp3aGFyZGFrZSAxNCBBdWcgOTcgMDg6MTY6MTIKICAgIC0gKGFnZW50L21pYmdyb3VwL1JFQURNRSk6IFBvaW50IG91dCB0aGF0IG1pYiBsaXN0IG11c3QgYmUgaW4gZGVzY2VuZGluZyBvcmRlci4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwODoxNjozNwogICAgLSAocHJvYy5jKTogZG9uJ3QgdXNlIHNldGVycm9yc3RhdHVzKCkgaWYgbm90IHVzaW5nIHRoZSBlcnJvcm1pYi4KCndoYXJkYWtlIDE0IEF1ZyA5NyAwODoyMToyNgogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBEYXZpZCBDLiBMYXdyZW5jZSBmb3IgbmV0YnNkICogYnNkL29zIDIuMC4KCndoYXJkYWtlIDE1IEF1ZyA5NyAwMjozMDo1OQogICAgLSAoY29uZmlnKiwgc25tcGQuYywgc25tcF9jbGllbnQuW2NoXSwgc3lzdGVtLltjaF0pOgogICAgICAtIGZpeCBtb3JlIGxvbmcvaW50IHByb2JsZW1zIG9uIDY0IGJpdCBtYWNoaW5lcyB1X2xvbmcgLT4gaW5fYWRkcl90LgogICAgICAtIENoZWNrIGZvciBTSU9DR0lGQUREUiBpbiBzeXMvaW9jdGwuaCBhbmQgdXNlIGl0IGluIGdldF9teWFkZHIoKSBpZgogICAgICAgIGRlZmluZWQuCgp3aGFyZGFrZSAxNSBBdWcgOTcgMDY6NDY6MzkKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTMgKQoKd2hhcmRha2UgMjUgQXVnIDk3IDAwOjIxOjIzCiAgICAtIChtZW1vcnkuYyk6IHR5cG8gaW4gaWZkZWYuCgp3aGFyZGFrZSAyNSBBdWcgOTcgMDA6MjE6NDEKICAgIC0gKHZlcnNpb250YWcpOiBjaGVja2luIHZlcnNpb24uaC4KCndoYXJkYWtlIDI1IEF1ZyA5NyAwMDoyMjoxOAogICAgLSAoaW50ZXJmYWNlcy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgZm9yIG5ldGJzZC4KCmhhcmRha2VyIDE0IE9jdCA5NyAxNToxNToyMwogICAgLSAobWliX2FwaS4zKTogZG9jIGFkZGl0aW9uOiAgYWRkX21pYmRpcigpIHJldHVybiB2YWx1ZS4KCmhhcmRha2VyIDE0IE9jdCA5NyAxNToxNjozNgogICAgLSAocGFyc2UuYyk6IEZyb20gRGF2ZSBTaGllbGRzOgogICAgICAtIHNlbGYgY29udGFpbmVkIG1pYiAudHh0IGZpbGVzIHdpdGggbXVsdGlwbGUgbW9kdWxlcy4KCmhhcmRha2VyIDE0IE9jdCA5NyAxNToxOToxNgogICAgLSAoY29uZmlnKiwgY29tbW9uX2hlYWRlci5oKTogZHluaXggZG9lc24ndCBoYXZlIG5ldC9yb3V0ZS5oLgoKaGFyZGFrZXIgMTQgT2N0IDk3IDE1OjIxOjU3CiAgICAtIChGQVEpOiBGcm9tIERhdmUgU2hpZWxkczogcmVmZXIgcmVhZGVyIHRvIGFub3RoZXIgYW5zd2VyIGFzIHdlbGwuCgpoYXJkYWtlciAxNCBPY3QgOTcgMTU6MzM6MDMKICAgIC0gKGFnZW50L21pYmdyb3VwLyouYyk6IFlNV1JBTUZTRk46CiAgICAgIC0gKHlldCBtb3JlIHdhcm5pbmcgcmVtb3ZhbHMgYW5kIG1lbW9yeSBmdW5jdGlvbiBzdGFuZGFyZGl6YXRpb25zIGZyb20gTmllbHMpLgogICAgICAtIG1pbm9yIGxpbnV4L25ldGJzZC9ic2RpIGNsZWFuIHVwcy4KCmhhcmRha2VyIDE1IE9jdCA5NyAwOTo1MDowOAogICAgLSAodmlld19wYXJzZS5jLCBzbm1wX3ZhcnMuYyk6IEZyb20gTmllbHM6IHdhcm5pbmcgcmVtb3ZhbHMgYW5kIHN0YW5kYXJkaXphdGlvbi4KCmhhcmRha2VyIDE1IE9jdCA5NyAwOTo1ODozNgogICAgLSAoYXBwcy8qLmMsIGFnZW50L3NubXBkLmMsIHNubXBsaWIvKi5jKTogUGF0Y2ggZnJvbSBOaWVsczoKICAgICAgLSB3YXJuaW5nIGZpeGVzLgogICAgICAtIHJlbW92ZSB0aGUgcHJpbnRmJ3MgZnJvbSB0aGUgbGlicmFyeSBhbmQgc2V0IGEgc25tcCAnZXJybm8nIGVxdWl2YWxlbnQuCgpoYXJkYWtlciAxNSBPY3QgOTcgMTI6MTI6MDIKICAgIC0gKGFwcHMvKi5jLCBhZ2VudC9zbm1wZC5jLCBzbm1wbGliLyouYyk6CiAgICAgIC0gY3JlYXRlIGFuZCB1c2UgbmV3IGZ1bmN0aW9uOiAgc25tcF9wZXJyb3IoY2hhciAqKQogICAgICAtIGZyZWUgYWxsb2NhdGVkIHNwYWNlIG9mIHNubXBfZGV0YWlsIHVwb24gdXNhZ2UgYnkgc25tcF9hcGlfZXJyc3RyaW5nKCkuCgpoYXJkYWtlciAxNSBPY3QgOTcgMTg6NDA6MzgKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyKik6IEhvc3QgcmVzb3VyY2VzIG1pYiBmcm9tIERhdmUgU2hpZWxkLgogICAgICAtIG1pbm9yIHBhdGNoZXMgYnkgbWUsIG1vc3RseSBwb2ludGVyIGVycm9ycy4KICAgIC0gKG1lbW9yeS5jKTogZml4ZWQgYSBudWxsIHBvaW50ZXIgcHJvYmxlbSB1bmRlciBsaW51eC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxMTo0NTo1OAogICAgLSAoRkFRKTogQ2hhbmdlcyBmcm9tIERhdmUuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTE6NTE6MzQKICAgIC0gKGNvbmZpZyosIGFnZW50L3NubXAqLCBhZ2VudC9taWJncm91cC8qLltjaF0pOgogICAgICAtIENyZWF0ZWQgYSBuZXcgbWlibW9kdWxlLmggY29uZmlndXJhdGlvbiBtYWNybyBjYWxsZWQKICAgICAgICBjb25maWdfcGFyc2VfZG90X2NvbmYoKSB3aGljaCBjYW4gYmUgY2FsbGVkIHRvIHJlcXVlc3QgcGFyc2luZyBvZgogICAgICAgIHRoZSBzbm1wZC5jb25mIGZpbGUocykgb24gYSBwZXIgbW9kdWxlIGJhc2lzLgogICAgICAtIEFsbCByZWxhdGVkIHBhcnNpbmcgaGFzIGJlZW4gc3RyaXBlZCBmcm9tIHJlYWRfY29uZmlnLmMgYW5kIG1vdmUKICAgICAgICB0byB0aGVpciBjb3JyZWN0IG1vZHVsZSBpbnN0ZWFkLgogICAgICAtIE5ldyBmdW5jdGlvbjogY29uZmlnX3BlcnJvcihjaGFyICopOiBwcmludCBlcnJvciB3aXRoIGZpbGUgJiBsaW5lICMuCiAgICAgIC0gYmFzaWMgLVdhbGwgY2xlYW51cHMgaW4gaHIqIGFzIHdlbGwgKG5vdCBuZWFybHkgZG9uZSB5ZXQpLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE2OjA1OjE0CiAgICAtIChwYXNzLmMpIGRvbid0IG51bGwgbGFzdCBjaGFyIGluIGNvbW1hbmQgbGluZS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNjowNjoxNgogICAgLSAocmVhZF9jb25maWcuYyk6CiAgICAgIC0gZG9uJ3QgcmVwb3J0IGFuIGVycm9yIGlmIHlvdSBjYW4ndCBmaW5kIGEgc25tcGQuY29uZiBmaWxlLgogICAgICAtIGRvbid0IHJlcG9ydCBhbGwgbGluZXMgYXMgYW4gZXJyb3IgKG9wcHMpLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE2OjM4OjMzCiAgICAtIChtaWIuYyk6IEZyb20gRGF2ZTogIHBhdGNoIERFRkFVTFRfTUlCUyB0byB0YWtlICcrJyBpbiBmcm9udC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNjo0NDozNwogICAgLSAobWliLmMpOiBwYXRjaCBhbGwgb3RoZXIgZW52LXZhcnMgdG8gdGFrZSAnKycgaW4gZnJvbnQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTc6MDE6NDgKICAgIC0gKGNvbmZpZyosIGFnZW50L21pYmdyb3VwL2hyXyouYyk6CiAgICAgIC0gQSBtb2R1bGUuYyBmaWxlIGlzIG5vIGxvbmdlciByZXF1aXJlZC4gIE9ubHkgdGhlIC5oIGZpbGUgaXMKICAgICAgICBuZWNlc3NhcnksIGZvciBwZW9wbGUgd2hvIHdhbnQgdG8gaGF2ZSBvbmUgbW9kdWxlIHdyYXAgYSBidW5jaCBvZiBvdGhlcnMuCiAgICAgIC0gcmVtb3ZlZCBob3N0LmMKICAgICAgLSByZW5hbWVkIGFsbCBocl9pbml0IGZ1bmN0aW9ucyB0byBiZSBhdXRvLWNhbGxlZC4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNzoxNTo1MQogICAgLSAoYWdlbnQvbWliZ3JvdXAvUkVBRE1FLCB3b21iYXQuW2NoXSk6CiAgICAgIC0gZG9jdW1lbnRhdGlvbiB1cGRhdGUgdG8gcmVmbGVjdCBjb25maWdfcGFyc2VfZG90X2NvbmYoKSB1c2FnZS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxNzoxNjo1OAogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvaHJfKi5jKToKICAgICAgLSBBIG1vZHVsZS5jIGZpbGUgaXMgbm8gbG9uZ2VyIHJlcXVpcmVkLiAgT25seSB0aGUgLmggZmlsZSBpcwogICAgICAgIG5lY2Vzc2FyeSwgZm9yIHBlb3BsZSB3aG8gd2FudCB0byBoYXZlIG9uZSBtb2R1bGUgd3JhcCBhIGJ1bmNoIG9mIG90aGVycy4KICAgICAgLSByZW1vdmVkIGhvc3QuYwogICAgICAtIHJlbmFtZWQgYWxsIGhyX2luaXQgZnVuY3Rpb25zIHRvIGJlIGF1dG8tY2FsbGVkLgoKaGFyZGFrZXIgMjAgT2N0IDk3IDE4OjAxOjQ2CiAgICAtIChjb25maWcqLCBhZ2VudC9taWJncm91cC92MnBhcnR5LmgsIHVjZF9zbm1wLmgsIHNtdXhfZ2F0ZWQuaCk6CiAgICAgIC0gY3JlYXRlZCBuZXcgd3JhcHBlcnMgZm9yIHRoZSB2YXJpb3VzIG1vZHVsZXMgdG8gbWFrZSB0aGVtIGVhc3kgdG8KICAgICAgICBhZGQgYW5kIHJlbW92ZSBhcyBuZWVkZWQuCgpoYXJkYWtlciAyMCBPY3QgOTcgMTk6NDI6NDYKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogZGVmaW5lIGxpbnV4J3MgT1MgdHlwZS4KCmhhcmRha2VyIDIwIE9jdCA5NyAxOTo0MzoxMwogICAgLSAoc25tcF92YXJzLmMpOiBkZWZpbmUgYXQgbGVhc3QgYmxhbmsgZnVuYyBubGlzdF9pbml0KCkgb24gbGludXguCgpoYXJkYWtlciAyMSBPY3QgOTcgMTA6MTU6NTQKICAgIC0gKFBPUlRJTkcsIFJFQURNRSk6IG1pbm9yIHVwZGF0ZXMuCgpoYXJkYWtlciAyMSBPY3QgOTcgMTA6NDU6NDcKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogYWxsb3cgLXYgMmggYW5kIDJwIGZvciBwYXJ0eSBjb2RlLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDExOjAwOjU3CiAgICAtIChocl9zdG9yYWdlLmMsIGhyX3N3cnVuLmMsIG1lbW9yeS5jKTogY2xvc2Ugb3BlbiBmaWxlcyBvbiBsaW51eC4KCmhhcmRha2VyIDIxIE9jdCA5NyAxMTowMToyNwogICAgLSAoTkVXUyk6IGJlZ2lubmluZ3Mgb2YgTkVXUyB1cGRhdGVzLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDExOjAyOjQ2CiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU0ICkKCmhhcmRha2VyIDIxIE9jdCA5NyAxMjoyNTowMwogICAgLSAoYWdlbnQvcmVhZF9jb25maWcuW2NoXSwgc25tcGQuYywgc25tcF92YXJzLmMsIG1pYmdyb3VwLyopOgogICAgICAtIG1vdmVkIHJlYWRfY29uZmlnLltjaF0gdXAgYSBsZXZlbCB0byBhbHdheXMgYmUgY29tcGlsZWQgaW4uCgpoYXJkYWtlciAyMSBPY3QgOTcgMTI6MzE6NTQKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIG1ha2VmaWxlaW5kZXBlbmQgc2V0dXAuCgpoYXJkYWtlciAyMSBPY3QgOTcgMTI6MzI6MDgKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIG1ha2VmaWxlaW5kZXBlbmQuLgoKaGFyZGFrZXIgMjEgT2N0IDk3IDEyOjM2OjMzCiAgICAtICgqL01ha2VmaWxlLmluKTogZGlkIGEgbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAyMSBPY3QgOTcgMTI6MzY6MzkKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTUgKQoKaGFyZGFrZXIgMjIgT2N0IDk3IDExOjQwOjA2CiAgICAtIChjb21tb25faGVhZGVyLmgsIHJlYWRfY29uZmlnLmMsIGRpc2suYywgc25tcF9wYXJzZV9hcmdzLmMpOgogICAgICAtIFR5cG8ncyBmaXhlZCBieSBOaWVscy4KCmhhcmRha2VyIDI3IE9jdCA5NyAwOTo1NjoyNgogICAgLSAoY29uZmlnKiwgYWdlbnQvbWliZ3JvdXAvKi5oKToKICAgICAgLSBuZXcgY29uZmlnIG1hY3JvOiAgY29uZmlnX2FyY2hfcmVxdWlyZShhcmNoLCBtb2R1bGUpLgogICAgICAtIG1vdmVkIGFyY2ggZGVwZW5kYW50IG1vZHVsZXMgKG1lbW9yeSwgaHB1eCwga2VybmVsX3N1bm9zNSkgbG9hZHMKICAgICAgICBmcm9tIHRoZSBjb25maWd1cmUgaW50byB0aGUgYXBwcm9wcmlhdGUgLmggZmlsZXMuCiAgICAtIChpbnRlcmZhY2VzLmMsIHZhcl9yb3V0ZS5jKToKICAgICAgLSB0eXBlY2FzdCBrbG9va3VwIGNhbGxzIGZvciBmcmVlYnNkMi4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDowMzoxNQogICAgLSAoYWdlbnQvc25tcF9hZ2VudC5jIHNubXBfdmFycy5jKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gdjJoIC0+IHYycCwgdjIgLT4gdjJjLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjA0OjMzCiAgICAtIChhcHBzLyouYyk6CiAgICAgIC0gY2hhbmdlcyBmb3IgV0lOMzIgc3VwcG9ydC4KICAgICAgLSBzdXBwb3J0IGZvciBjb21tYW5kIGxpbmUgZmxhZ3Mgd2l0aG91dCBzcGFjZXMuCiAgICAgIC0gdjJoIC0+IHYycC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxNjo0MgogICAgLSAoc25tcGxpYi8qLltjaF0pOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBjaGFuZ2VzIGZvciBXSU4zMiBzdXBwb3J0LgogICAgICAtIHYyaCAtPiB2MnAuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MTgKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MTgKICAgIGZpbGUgY29uZmlnLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjE4CiAgICBmaWxlIHdpbjMyLmRzdyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MTgKICAgIGZpbGUgd2luMzIub3B0IHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyNQogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyNQogICAgZmlsZSBsaWJzbm1wLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MjUKICAgIGZpbGUgbGlic25tcC5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI4CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI4CiAgICBmaWxlIGxpYnNubXAuZGVmIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOToyOAogICAgZmlsZSBsaWJzbm1wX2RsbC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjI4CiAgICBmaWxlIGxpYnNubXBfZGxsLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzEKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzEKICAgIGZpbGUgc25tcGJ1bGt3YWxrLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzEKICAgIGZpbGUgc25tcGJ1bGt3YWxrLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzQKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6MzQKICAgIGZpbGUgc25tcGdldC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM0CiAgICBmaWxlIHNubXBnZXQucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNwogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTozNwogICAgZmlsZSBzbm1wZ2V0bmV4dC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjM3CiAgICBmaWxlIHNubXBnZXRuZXh0LnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDEKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDEKICAgIGZpbGUgc25tcHNldC5kc3Agd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQxCiAgICBmaWxlIHNubXBzZXQucGxnIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NAogICAgLSAod2luMzIpOiBDaGFuZ2VzIGZyb20gSm9lIE1hcnpvdCBhbmQgRGF2aWQgUGVya2luczoKICAgICAgLSBwcm9qZWN0IGRpciBmb3IgV0lOMzIgc3VwcG9ydC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NAogICAgZmlsZSBzbm1wc3RhdHVzLmRzcCB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NDQKICAgIGZpbGUgc25tcHN0YXR1cy5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ3CiAgICAtICh3aW4zMik6IENoYW5nZXMgZnJvbSBKb2UgTWFyem90IGFuZCBEYXZpZCBQZXJraW5zOgogICAgICAtIHByb2plY3QgZGlyIGZvciBXSU4zMiBzdXBwb3J0LgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE0OjE5OjQ3CiAgICBmaWxlIHNubXB0cmFuc2xhdGUuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo0NwogICAgZmlsZSBzbm1wdHJhbnNsYXRlLnBsZyB3YXMgaW5pdGlhbGx5IGFkZGVkIG9uIGJyYW5jaCBWMkMtV0lOMzItMy0zLXByZTMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NTIKICAgIC0gKHdpbjMyKTogQ2hhbmdlcyBmcm9tIEpvZSBNYXJ6b3QgYW5kIERhdmlkIFBlcmtpbnM6CiAgICAgIC0gcHJvamVjdCBkaXIgZm9yIFdJTjMyIHN1cHBvcnQuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTQ6MTk6NTIKICAgIGZpbGUgc25tcHdhbGsuZHNwIHdhcyBpbml0aWFsbHkgYWRkZWQgb24gYnJhbmNoIFYyQy1XSU4zMi0zLTMtcHJlMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNDoxOTo1MgogICAgZmlsZSBzbm1wd2Fsay5wbGcgd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggVjJDLVdJTjMyLTMtMy1wcmUzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjE3OjExCiAgICAtIChjb25maWcqKSB3aW4zMiBoZWFkZXIgY2hlY2tzLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjE3OjUwCiAgICAtIChhZ2VudC9rZXJuZWwuYywgc25tcF9hZ2VudC5jKToKICAgICAgLSBFUlJPUigpIC0+IEVSUk9SX01TRygpLgogICAgICAtIGZ1bnRpb24gcmVuYW1lcy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToxODoxNgogICAgLSAoYWdlbnQvbWliZ3JvdXAvKi5jKToKICAgICAgLSBFUlJPUigpIC0+IEVSUk9SX01TRygpLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjIxOjUzCiAgICAtIChhcHBzL3NubXBfcGFyc2VfYXJncy5jKToKICAgICAgLSBwdXQgdGFicyBiYWNrIGluIGhlbHAgc3RyaW5nLgogICAgICAtIHB1dCB2ZXJzaW9uIHN0cmluZyByZXF1ZXN0IGJhY2sgaW4uCiAgICAgIC0gbWFrZSBlcnJvciBzdHJpbmdzIGJldHRlciBhbmQgcHV0IGJhY2sgaW4gcGVyaW9kcy4KICAgICAgLSBkb24ndCBib21iIG9uIHVua25vd24gcGFyYW1ldGVycyBmb3IgZnV0dXJlIHVzZS4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNToyMjoyMQogICAgLSAoc25tcGxpYi9zbm1wLmMpOiBwdXQgc3RyZHVwIGRlY2xhaXJhdGlvbiBiYWNrIGluLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE1OjIzOjIwCiAgICAtIChzbm1wbGliL3NubXBfYXV0aC5jKToKICAgICAgLSByZW1vdmUgI2lmZGVmIE9MRCByZXF1aXJlbWVudC4KICAgICAgLSBjaGFuZ2UgYmFjayBpbnQtPmxvbmcgYXJndW1lbnQgY2hhbmdlIGZvciBzbm1wX2NvbXN0cl9idWlsZC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNTozNzo0NgogICAgLSAoc25tcGxpYi9zbm1wLmgpOgogICAgICAtIHNubXAgdmVyc2lvbiAjZGVmaW5lIGNsYWlyaWZpY2F0aW9uIG9uIGZ1dHVyZSBpbXBsZW1lbnRhdGlvbnMuCiAgICAgIC0gbW9yZSBjbGVhcmx5IHN0YXRlIHB1cnBvc2Ugb2YgZnV0dXJlIFNOTVBWMy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNjoyNjo1NwogICAgLSAoKik6IG1lcmdlIG9mIFczMiBwb3J0IGFuZCBtYWluIHZlcnNpb24gYnJhbmNoLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE2OjM0OjQ1CiAgICAtIChzbm1wX2FwaS5bY2hdKTogZml4IHBlcnJvciBsb3NzZXMgZnJvbSBtZXJnZS4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzowNDo1MQogICAgLSAoaHJfKi5jKTogRVJST1IgLT4gRVJST1JfTVNHLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE3OjA1OjEyCiAgICAtIChzbm1wc3RhdHVzLmMpOiByZW1vdmUgZHVwbGljYXRlIGRlY2xhaXJhdGlvbi4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzo0Mjo1NQogICAgLSAoc25tcF92YXJzLmMpOiB0d28gbW9kdWxlcyBmb3IgZXh0ZW5zaWJsZSBjb3VudC4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzo0MzoyMgogICAgLSAoYWdlbnQvbWliZ3JvdXAvaHJfKi5oKTogcHJvcGVyIGluaXRfIHByb3RvdHlwZXMuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTc6NDM6NTAKICAgIC0gKHNubXBfcGFyc2VfYXJncy5jKTogbWlzc2luZyBhIGVsc2Ugc3RhdGVtZW50IChzaWdoKS4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzo0NDoyNwogICAgLSAoc25tcF9hdXRoLmMpOiBtZXJnZSBidWdzLiAgTWlzc2luZyBicmFja2V0cy4KCmhhcmRha2VyIDI3IE9jdCA5NyAxNzo0NzowMAogICAgLSAoc25tcF9hcGkuYyk6IG1lcmdlIGJ1Z3M6IGVsc2UgY2hlY2sgYWdhaW5zdCBwZHUgY29tbWFuZCB0eXBlLgoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjAyOjU2CiAgICB3aW4zMiBmaWxlcwoKaGFyZGFrZXIgMjcgT2N0IDk3IDE4OjA1OjM2CiAgICAtICh3aW4zMik6ICBhZGQgZmlsZXMgb24gbWFpbiBicmFuY2guCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MTg6MzYKICAgIC0gKHNubXB3YWxrLmMpOiByZW1vdmUgZ290cm9vdCB2YXIuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MTg6NTcKICAgIC0gKHNubXBsaWIvKi5jKTogdXNlIHNubXBfc2V0X2RldGFpbCB0byBoYW5kbGUgbWFsbG9jL2ZyZWUgb2Ygc25tcF9kZXRhaWwuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MjY6NDEKICAgIC0gKGNvbmZpZ3VyZS5pbik6IGZpeCBjb25maWdfYXJjaF9yZXF1aXJlIG1hY3JvIHRvIGFjdHVhbGx5IHdvcmsuCgpoYXJkYWtlciAyNyBPY3QgOTcgMTg6MzE6MzQKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTYgKQoKaGFyZGFrZXIgMjggT2N0IDk3IDA5OjU2OjExCiAgICAtIChhY2NvbmZpZy5oLCBzeXN0ZW0uW2NoXSwgc25tcC5jKTogbW92ZSBzdHJkdXAgZGVmIHRvIHN5c3RlbS5bY2hdLgoKaGFyZGFrZXIgMjggT2N0IDk3IDE0OjMwOjU1CiAgICAtIChhY2NvbmZpZy5oLCBtaWIuYyk6IHVzZSAnOydzIGZvciBET1MgZW52IHBhdGhzLgoKaGFyZGFrZXIgMjggT2N0IDk3IDE0OjQyOjIzCiAgICAtIChjb25maWcqKTogZml4IHJ0ZW50cnkgc3RydWN0dXJlIGNoZWNrcyBmb3IgdGhlICpic2QgZ3JvdXBzLgoKaGFyZGFrZXIgMjggT2N0IDk3IDE0OjU0OjI0CiAgICAtICgqLiouKi4qKTogcmVuYW1lIG1hY3JvIF9fUCAtPiBfX1VDRF9QIHRvIHJlZHVjZSBzdHVwaWQgY29uZmxpY3RzLgoKaGFyZGFrZXIgMjggT2N0IDk3IDE1OjUwOjA1CiAgICAtIChjb25maWcqLCByb3V0ZV93cml0ZS5jLCB2YXJfcm91dGUuYyk6CiAgICAgIC0gZml4IHJ0ZW50cnkgcHJvYmxlbXMgb25jZSBhbmQgZm9yIHByb2JhYmx5IG5ldmVyLgoKaGFyZGFrZXIgMjggT2N0IDk3IDE3OjA5OjU3CiAgICAtIChhY2NvbmZpZy5oLCBVQ0QtU05NUC1NSUIudHh0KTogZGVmaW5lIGJzZGkgYWdlbnQgdHlwZS4KCmhhcmRha2VyIDI4IE9jdCA5NyAxNzoxMDo1OAogICAgLSAodXRpbF9mdW5jcy5jKTogUGF0Y2ggZnJvbSBOb2J1b19Pa2FiZUB5b2tvZ2F3YS5jby5qcDoKICAgICAgLSBmaXggdW53cmFwcGVkIGZvcGVuKCkgYnkgYWRkaW5nIHJldHVybiBOVUxMIGNoZWNrLgoKaGFyZGFrZXIgMjggT2N0IDk3IDE3OjEyOjAwCiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU3ICkKCmhhcmRha2VyIDI5IE9jdCA5NyAwOTo0MTo1NAogICAgLSAoc25tcHRyYXAuYyk6IHJlbW92ZSB1bnVzZWQgbmxpc3Qgc3RydWN0LgoKaGFyZGFrZXIgMjkgT2N0IDk3IDA5OjQyOjA3CiAgICAtIChzbm1wX3BhcnNlX2FyZ3MuYyk6IGFkZCBzeXMvc2VsZWN0LmggZm9yIGFpeC4KCmhhcmRha2VyIDI5IE9jdCA5NyAwOTo1Nzo0OAogICAgLSAoZGlzay5bY2hdLCBzdHJ1Y3QuaCwgc2Vkc2NyaXB0LmluLCBzbm1wZC5jb25mLjUuZGVmLCBVQ0QtU05NUC1NSUIudHh0KToKICAgICAgLSBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlIHRvIGFsbG93IGEgbWluaW11bSBwZXJjZW50YWdlIG9uIGRpc2sgc3BhY2UuCiAgICAgICAgLSAod2FzIG9yaWdpbmFsbHkgYSBtYXhpbXVtLCBidXQgSSBjaGFuZ2VkIGl0IHRvIG1pbmltdW0gaW5zdGVhZCkuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTA6MDY6MTEKICAgIC0gKGRpc2suYyk6IGZpeCBwb2ludGVyIHByb2JsZW1zIGZyb20gb2xkIHJlYWRfY29uZmlnIGZvcm0gdG8gbmV3LgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEwOjA2OjM0CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogcmVtb3ZlIHNwYWNlIGJlZm9yZSAlIHNpZ24uCgpoYXJkYWtlciAyOSBPY3QgOTcgMTA6MjU6MzEKICAgIC0gKCovTWFrZWZpbGUuaW4sIG1hbi8qKToKICAgICAgLSBQYXRjaCBmcm9tIFNpbW9uIEJ1cmdlIHRvIGNoYW5nZSBpbnN0YWxsYXRpb24gcGF0aHMuCiAgICAgICAgLSAobW9kaWZpZWQgdG8gcG9pbnQgYWdlbnQgdG8gc2JpbmRpciBpbnN0ZWFkIG9mIGV0Y2RpcikuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTA6NDg6MTgKICAgIC0gKGNvbmZpZyosICovTWFrZWZpbGUuaW4pOgogICAgICAtIE1vdmUgc25tcGxpYnBhdGggdG8gQGRhdGFkaXJAIHdoaWNoIGRlZmF1bHRzIHRvIC91c3IvbG9jYWwvc2hhcmUvc25tcC4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMDo1NDowNwogICAgLSAoYWdlbnQvTWFrZWZpbGUuaW4pOiBvcHBzLCBmb3Jnb3QgdG8gcHV0IGluIEBleGVjX3BhdGhALgoKaGFyZGFrZXIgMjkgT2N0IDk3IDExOjIwOjU0CiAgICAtIChhY2NvbmZpZy5oLCBhc24xLmMsIG1pYi5bY2hdLCBwYXJzZS5oLGFwcHMvKixlcnJvcm1pYi5jLGxvYWRhdmUuYywKICAgICAgIGV4dGVuc2libGUuYywgZGlzay5jLCBzbm1wZGVsdGEqKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSB0aGUgbm93IHdlbGxrbm93biBOZXRCU0QgZml4LAogICAgICAtIFN1bk9TNCBjYyBkb2Vzbid0IGxpa2UgdW5zaWduZWQgbGl0ZXJhbHMgb3Igc3RydG91bCwKICAgICAgLSBhZGRlZCBhIGNoYXIgdmVyc2lvbiBvZiAiOyIsCiAgICAgIC0gYWRkZWQgZnByaW50X3ZhcmlhYmxlLCBmcHJpbnRfb2JqaWQgZXRjCiAgICAgIC0gY2hhbmdlZCB0aGUgYXBwcyB0byBwcmludCBhbGwgZXJyb3IgbWVzc2FnZXMgdG8gc3RkZXJyLAogICAgICAtIGNvbXBsZXRlZCB0aGUgYWNjZXNzIGFuZCBzdGF0dXMgdmFsdWVzIGluIHNubXBsaWIvcGFyc2UuaAogICAgICAtIGFkZGVkIGEgcm91Z2hseSBwYXRjaGVkIHZlcnNpb24gb2Ygc25tcGRlbHRhLgoKaGFyZGFrZXIgMjkgT2N0IDk3IDEyOjIzOjI2CiAgICAtIChwYXJzZS5oKTogU1RBVFVTX0tXX09QVElPTkFMIC0+IFNUQVRVU19PUFRJT05BTAoKaGFyZGFrZXIgMjkgT2N0IDk3IDEyOjQzOjQ0CiAgICAtICgqLiouKik6IF9fVUNEX1AgLT4gX19QLCBhbmQgYSBjb25maWd1cmUgY2hlY2sgdG8gbG9vayBmb3IgaXQuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTI6NTc6NDgKICAgIC0gKGNvbmZpZyopOiBjaGVjayBhbmQgaW5jbHVkZSBzeXMvY2RlZnMuaCBpbiBjb25maWcuaC4KCmhhcmRha2VyIDI5IE9jdCA5NyAxMjo1ODowMQogICAgLSAoaG9zdF9yZXMuaCk6IGRvbid0IGluY2x1ZGUgY29uZmlnLmggdHdpY2UuCgpoYXJkYWtlciAyOSBPY3QgOTcgMTQ6MDA6MzgKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTggKQoKaGFyZGFrZXIgIDQgTm92IDk3IDEyOjQ3OjEyCiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSAjaW5jbHVkZSBtaWJfbW9kdWxlX2NvbmZpZy5oCiAgICAgIC0gVVNJTkdfRVhURU5TSUJMRV9NSUJfTU9EVUxFIC0+IFVTSU5HX0VYVEVOU0lCTEVfTUlCX01PRFVMRQoKaGFyZGFrZXIgIDQgTm92IDk3IDEyOjQ3OjU5CiAgICAtIChjb25maWd1cmUuaW4pOgogICAgICAtIENoZWNrIGZvciAkcHJlZml4IGJlaW5nIGRlZmluZWQgYXMgTk9ORSBmb3Igb3RoZXIgdmFycy4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0Mjo1NwogICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6IHB1dCBzbm1wdHJhcGQgaW4gQHNiaW5kaXJACgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDQ6NTgKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzIGZvciBocHV4MTAgcmUtZGVmaW5pbmcgcHJvYmxlbXMuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NDU6MjMKICAgIC0gKGhyX2Rpc2suYyk6IG5ldyB2ZXJzaW9uIGZvciBocHV4MTAgc3VwcG9ydCBmcm9tIERhdmUgU2hpZWxkLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ2OjE3CiAgICAtIChocl9maWxlc3lzLmMsIGhyX3N3cnVuLmMsIGhyX3V0aWxzLmMpOiBQYXRjaGVzIGZyb20gRGF2ZSBTaGllbGQ6CiAgICAgIC0gYnVnIGZpeGVzIGFuZCBocHV4MTAgc3VwcG9ydC4KCmhhcmRha2VyICA1IE5vdiA5NyAxMzo0Njo0NgogICAgLSAodmFyX3JvdXRlLmMpOiBmcm9tIERhdmUgU2hpZWxkOiBkb24ndCBwcm90b3R5cGUgbWFsbG9jLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjQ4OjA3CiAgICAtICgqKTogbWVyZ2UgZnJvbSBEYXZlJ3MgcHJlNiBwYXRjaGVzLgoKaGFyZGFrZXIgIDUgTm92IDk3IDEzOjUyOjAwCiAgICAtIChzbm1wX2FnZW50LmMsIHNubXBfdmFycy5jLCBzbm1wZC5jLCBkaXNrLmMsIHByb2MuYywgdXRpbF9mdW5jcy5jKToKICAgICAgLSAjaW5jbHVkZSAibWliX21vZHVsZV9jb25maWcuaCIuCgpoYXJkYWtlciAgNSBOb3YgOTcgMTM6NTY6NTgKICAgIC0gKGF0LmMsIGljbXAuYywgaW50ZXJmYWNlcy5jLCBpcC5jLCB0Y3AuYywgdWRwLmMpOgogICAgICAtICNpbmNsdWRlICJtaWJfbW9kdWxlX2NvbmZpZy5oIgoKaGFyZGFrZXIgIDUgTm92IDk3IDE0OjAwOjA5CiAgICAtIChNYWtlZmlsZS5pbiwga2VybmVsX3N1bm9zNS5jLCBtaWIuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gb2N0ZXQgY291bnRlcnMgZm9yIHNvbGFyaXMuCiAgICAgIC0gTWFrZWZpbGUuaW4gcGF0Y2hlcy4KCmhhcmRha2VyICA1IE5vdiA5NyAxNDo0MDowNwogICAgLSAobWVtb3J5LmMpOiBwcm90ZWN0IHZtbWV0ZXIuaCBmcm9tIG11bHRpcGxlIGluY2x1c2lvbnMgb24gbmV0YnNkLgoKaGFyZGFrZXIgIDUgTm92IDk3IDE1OjI5OjUwCiAgICB2ZXJzaW9uIHRhZyAoIDMuMy5wcmU5ICkKCmhhcmRha2VyICA3IE5vdiA5NyAxMjoyNDoyMgogICAgLSAoY29uZmlndXJlLmluKTogY2hlY2sgZm9yIGxpbnV4L2hkcmVnLmgKCmhhcmRha2VyICA3IE5vdiA5NyAxMjoyNTozNQogICAgLSAoaHJfc3dydW4uYyk6IGRvbid0IHByaW50IGEgdmFyaWFibGUgdGhhdCBkb2Vzbid0IGV4aXN0IHVuZGVyIGxpbnV4LgoKaGFyZGFrZXIgIDcgTm92IDk3IDEyOjI4OjAzCiAgICAtIChrZXJuZWxfc3Vub3M1LmMpOiBwYXRjaCBmcm9tIE5pZWxzIGZvciBzb2xhcmlzID4yLjYuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTM6Mzc6MTQKICAgIC0gKHJlYWRfY29uZmlnLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IFVTSU5HLipfTUlCX01PRFVMRSAtPiBVU0lORy4qX01PRFVMRS4KCmhhcmRha2VyICA3IE5vdiA5NyAxMzozNzo0NAogICAgLSAoaHJfbmV0d29yay5jKTogZG9uJ3QgcGFzcyBjaGFyICoqIHRvIGludGVyZmFjZXNfc2Nhbl9uZXh0KCkuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTM6Mzg6MzYKICAgIC0gKHNubXB3YWxrLmMpOiBzdG9wIG9uIG5vIHJlc3BvbnNlIGZyb20gaG9zdC4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToxOToyNAogICAgLSAoYWNjb25maWcuaCk6IHBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBkZWZpbmUgX0NSVElNUCBmb3IgdW5peCBkdWUgdG8gVzMyIGJhZCBPUyBkZXNpZ25zLgoKaGFyZGFrZXIgIDcgTm92IDk3IDE1OjE5OjU5CiAgICAtIChzbm1wZ2V0bmV4dC5oKTogcGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHVzZSBfQ1JUSU1QIGluIGZyb250IG9mIGVycm5vIGRlY2xhcmF0aW9uLgoKaGFyZGFrZXIgIDcgTm92IDk3IDE1OjIwOjU0CiAgICAtIChwYXJzZS5bY2hdLCBzbm1wX2NsaWVudC5jKTogcGF0Y2ggZnJvbSBKb2UgTWFyem90OgogICAgICAtIHVzZSBfQ1JUSU1QIGluIGZyb250IG9mIGVycm5vIGRlY2xhcmF0aW9uLgogICAgICAtIGRlZmluZSBmaW5kX25vZGUgZXh0ZXJuYWxseS4KCmhhcmRha2VyICA3IE5vdiA5NyAxNToyMjowOQogICAgLSAod2luMzIvKik6IHBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSB3aW4zMiBzcGVjaWZpYyBjaGFuZ2VzLgoKaGFyZGFrZXIgIDcgTm92IDk3IDE1OjI4OjU5CiAgICAtICgqKTogbWVyZ2UgdG8gbWFpbiBicmFuY2g6ICBwYXRjaGVzIGZyb20gSm9lIE1hcnpvdC4KCmhhcmRha2VyICA3IE5vdiA5NyAxNjoxNjo1MwogICAgLSAoY29uZmlndXJlLmluKTogd2F0Y2ggb3V0IGZvciAvdXNyL3VjYi9jYyBvbiBzb2xhcmlzIGFuZCBkb24ndCB1c2UgaXQuCgpoYXJkYWtlciAgNyBOb3YgOTcgMTY6Mzc6MDEKICAgIC0gKE5FV1MsIFJFQURNRSwgVE9ETyk6IERvY3VtZW50YXRpb24gdXBkYXRlcy4KCmhhcmRha2VyICA3IE5vdiA5NyAxNjozODo0OQogICAgdmVyc2lvbiB0YWcgKCAzLjMucHJlMTAgKQoKaGFyZGFrZXIgMTIgTm92IDk3IDA3OjQyOjI0CiAgICAtIChzbm1wdHJhbnNsYXRlLmMpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IFczMiBzcGVjaWZpYyBmaXhlcy4KCmhhcmRha2VyIDEyIE5vdiA5NyAwODoyNjo0NQogICAgLSAoc25tcF9jbGllbnQuYyk6IFBhdGNoIGZyb20gSm9lIE1hcnpvdDoKICAgICAgLSBGcmVlIGEgcGR1IGluIGEgc3BvdCB0aGF0IHNob3VsZCB0ZWNobmljYWxseSBuZXZlciBiZSBuZWVkZWQsIGJ1dAogICAgICAgIGlzIG5pY2UgZm9yIHBlb3BsZSByZWFkaW5nIHRoZSBjb2RlLgoKaGFyZGFrZXIgMTIgTm92IDk3IDA5OjE3OjA4CiAgICAtIChGQVEpOiBEb2MgdXBkYXRlIGZyb20gRGF2ZSBTaGllbGQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMDk6MTc6MjgKICAgIC0gKG1pYl9hcGkuMyk6IERvYyB1cGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCmhhcmRha2VyIDEyIE5vdiA5NyAwOToxODowMgogICAgLSAoaHJfc3dydW4uYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgZm9yIGxpbnV4L2hwdXgxMCBwcm9ibGVtcy4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDoyNTozMAogICAgLSAoTkVXUywgVE9ETyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gZG9jIHVwZGF0ZS4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDoyNzowOAogICAgLSAoKi9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYWRkIEBkYXRhZGlyQCB0byBmaWxlcyB0aGF0IG5lZWRlZCBpdC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDoyNzo0NgogICAgLSAoa2VybmVsX3N1bm9zNS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzb2xhcmlzIHBhdGNoZXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6Mjg6MTEKICAgIC0gKHBhcnR5X3ZhcnMuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gaW5jbHVkZSBuZXRpbmV0L2luLmggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgMTIgTm92IDk3IDEwOjI5OjQyCiAgICAtIChNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gYWRkIEBkYXRhZGlyQCB0byBmaWxlcyB0aGF0IG5lZWRlZCBpdC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDozMDo1NwogICAgLSAoYXBwcy8qLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOgogICAgICAtIHZhcmlvdXMgKHJlbW92ZSB1bm5lZWRlZCB2YXJzLCBldGMpLgogICAgICAtIGFkZCBzbm1wdGFibGUuCiAgICAgIC0gbWFrZSBzbm1wdHJhcGQgbXVsdGktbGluZ3VhbC4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDozMjoyMgogICAgLSAoc25tcG5ldHN0YXQvbWFpbi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBzbm1wdjJjIHN1cHBvcnQgYW5kIGFyZ3VtZW50IHBhcnNpbmcgY2hhbmdlcy4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDozMzoyMAogICAgLSAobWFuL3NubXBkZWx0YS4xLHNubXB0YWJsZS4xLHNubXB0cmFwZC44KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkb2N1bWVudGF0aW9uIGNoYW5nZXMgYW5kIGFkZGl0aW9ucy4KCmhhcmRha2VyIDEyIE5vdiA5NyAxMDozODozNgogICAgLSAocGFyc2UuYywgcGFyc2UuaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcGFyc2VyIGltcHJvdmVtZW50cy4KICAgICAgLSBwYXJzZXIgZGlyZWN0b3J5IGNhY2hpbmcuCiAgICAgIC0gc2F2ZV9kZXNjcmlwdGlvbnMvbWliX3dhcm5pbmdzIHNldCBmdW5jdGlvbnMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTA6NDQ6NDcKICAgIC0gKE5FV1MpOiBkb2MgdXBkYXRlLgoKaGFyZGFrZXIgMTIgTm92IDk3IDE1OjEwOjI3CiAgICAtIChzeXN0ZW0uaCk6IERvbid0IGluY2x1ZGUgY29uZmlnLmghCgpoYXJkYWtlciAxMiBOb3YgOTcgMTU6MTY6NDQKICAgIC0gKHBhcnR5X3ZhcnMuYyk6IGluY2x1ZGUgU1REQ19IRUFERVJTIGZvciBBSVguCgpoYXJkYWtlciAxMiBOb3YgOTcgMTU6MjE6NDEKICAgIC0gKHBhcnNlLmMpOiBpbmNsdWRlIFNURENfSEVBREVSUyBmb3IgQUlYLgoKaGFyZGFrZXIgMTIgTm92IDk3IDE1OjQyOjAyCiAgICAtICgqL01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQuCgpoYXJkYWtlciAxMiBOb3YgOTcgMTY6MDU6NDcKICAgIHZlcnNpb24gdGFnICggMy4zLnByZTExICkKCmhhcmRha2VyIDEyIE5vdiA5NyAyMDoyNzoxMQogICAgLSAod2luMzIvbGlic25tcF9kbGwvbGlic25tcC5kZWYpOiBQYXRjaCBmcm9tIEpvZSBNYXJ6b3Q6IGZ1bmN0aW9uIGNoYW5nZXMuCgpoYXJkYWtlciAxMiBOb3YgOTcgMjA6MzU6MDAKICAgIC0gKCk6IFBhdGNoIGZyb20gRGF2aWQgWmltbWVybWFuOgogICAgICAtIEZpeGVzIGZvciBBSVguCgpoYXJkYWtlciAxMiBOb3YgOTcgMjA6MzU6MjcKICAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jLCBzbm1wZGVsdGEuYyk6IFBhdGNoIGZyb20gRGF2aWQgWmltbWVybWFuOgogICAgICAtIEZpeGVzIGZvciBBSVguCgpoYXJkYWtlciAxMiBOb3YgOTcgMjA6NDM6MzMKICAgIC0gKHZhcl9yb3V0ZS5jLCByZWFkX2NvbmZpZy5jKTogZml4IHFzb3J0IHBhcmFtcyBmb3IgU1REQy4KCmhhcmRha2VyIDEyIE5vdiA5NyAyMDo0Nzo0NwogICAgLSAodmFyX3JvdXRlLmMsIHJlYWRfY29uZmlnLmMpOiBTVERDIHR5cG9zLgoKaGFyZGFrZXIgMTQgTm92IDk3IDA4OjMxOjQxCiAgICAtICh3b21iYXQuYyk6IGNvZGUgY29tbWVudHMgZnJvbSBBbGFuIEJhdGllLgoKaGFyZGFrZXIgMTQgTm92IDk3IDA4OjMyOjI2CiAgICAtIChSRUFETUUpOiBjb2RlciBsaXN0IHVwZGF0ZS4KCmhhcmRha2VyIDE0IE5vdiA5NyAxMjoyMToxMAogICAgLSAod29tYmF0LmMpOiBxdWljayBkb2MgY2hhbmdlLgoKaGFyZGFrZXIgMTQgTm92IDk3IDEyOjM1OjE5CiAgICAtIChGQVEsIE5FV1MsIFJFQURNRSk6IGxhc3QgZG9jdW1lbnRhdGlvbiB1cGRhdGVzLgoKCQoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEuMyAtPiBWMy4yCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTI6NDg6MDYKICAgIC0gKHNubXBfdmFycy5jLCBzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMubGludXguaCk6IFBhdGNoIGZyb20gSmVubmlmZXIgQnJheToKICAgICAgLSBHZXQgYWdlbnQgd29ya2luZyBvbiBsaW51eC4KCndoYXJkYWtlIDExIEZlYiA5NyAxMjo1MDo0NgogICAgLSAoc25tcF92YXJzLmxpbnV4LmgpOiBSZW1vdmVkIG5vbi1saW51eCBzcGVjaWZpYyBzdHVmZi4KCndoYXJkYWtlIDExIEZlYiA5NyAxMjo1NDozNgogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgRml4IGhwdXggc3BlY2lmaWMgcHJvYmxlbXMuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTM6MTE6MjEKICAgIC0gKCpNYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gUGhpbGlwIEd1ZW50aGVyOgogICAgICAtIEZpeCBhbGwgTWFrZWZpbGUuaW4ncyB0byBzdXBwb3J0IGEgZGlmZmVyZW50IHNyYyBkaXIuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTM6MTI6MTkKICAgIC0gKFJFQURNRSk6IFVwZGF0ZSBwZW9wbGUgc3VwcGx5aW5nIHBhdGNoZXMgbGlzdC4KCndoYXJkYWtlIDExIEZlYiA5NyAxMzoxOTozNwogICAgLSAoYWxsIC5jIHdpdGggbWFpbigpLCBzbm1wbGliLyopOiBQYXRjaCBmcm9tIFBoaWxpcCBHdWVudGhlcjoKICAgICAgLSBNYWtlIGJldHRlciBzdXBwb3J0IGZvciBzaGFyZWQgbGliIHBvc3NpYmlsaXRpZXMuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTQ6MTA6MTEKICAgIC0gKHNubXBfdmFycy5saW51eC5oKTogRml4ICNpZmRlZi4KCndoYXJkYWtlIDExIEZlYiA5NyAxNDoxMToyNAogICAgLSAoe2xvY2FsLG1hbixvdn0vTWFrZWZpbGUuaW4pOiBSZW1vdmUgc3BhY2VzIGluIGZyb250IG9mIHRhYnMuCgp3aGFyZGFrZSAxMSBGZWIgOTcgMTQ6MTM6MzQKICAgIC0gKHNubXBfYXV0aC5jKTogcmVtb3ZlIG5vbi1zdGF0aWMgbWQ1ZGlnZXN0IHByb3RvdHlwZS4KCndoYXJkYWtlIDExIEZlYiA5NyAxNDoxNDowNQogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUxICkKCndoYXJkYWtlIDExIEZlYiA5NyAxNjo0MjowMgogICAgLSAoYXBwcy9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gU2ltb24gTGVpbmluIHRvIGRlc2NlbmQgd2hlbiBtYWtlIGNsZWFuaW5nLgoKd2hhcmRha2UgMTEgRmViIDk3IDE2OjQ0OjA4CiAgICAtIChtYW4vTWFrZWZpbGUuaW4pOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5pbiB0byBmaXggc3JjZGlyIHByb2JsZW1zLgoKd2hhcmRha2UgMTEgRmViIDk3IDE3OjAwOjI2CiAgICAtIChNYWtlZmlsZS5pbik6IFJlc3Qgb2YgUGhpbGlwJ3MgcGF0Y2ggdG8gZml4IHNyY2RpciBwcm9ibGVtcyAoc2ggdmFycykuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTQ6NDE6MDgKICAgIC0gKGFnZW50L3NubXBfdmFycywgYWdlbnQvbWliZ3JvdXApOiBEYXZlIFNoaWVsZCBzcGxpdCB1cCB0aGUKICAgICAgc25tcF92YXJzLmMgYW5kIHJlbGF0ZWQgZmlsZXMgaW50byBwaWVjZXMgZm9yIGVhc2llciBtYW5hZ2VtZW50LgogICAgICBUaGUgcmVzdWx0cyBvZiBoaXMgd29yayBhcmUgaW4gdGhlIG5ldyBhZ2VudC9taWJncm91cCBkaXJlY3RvcnkuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTQ6NDc6MTMKICAgIC0gKG1pYi5jLCBzbm1wX2FwaS5jLCBzbm1wX2FwaS5oKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCB0byByZW1vdmUKICAgICAgQU5TSSBzcGVjaWZpYyByZXF1aXJlbWVudHMuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTQ6NTM6MjQKICAgIC0gKGFnZW50LypNYWtlZmlsZS5pbik6ICBNYWtlIGRlcGVuZC4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNTozMDowNAogICAgLSAoYWxhcm0uYyk6IHR5cGVkZWYgZm9yIGdldFN0YXRQdHIoKS4KCndoYXJkYWtlIDE3IEZlYiA5NyAxNTozMDozNgogICAgLSAoZXZlbnQuYyk6IFdhcyBwYXNzaW5nIGFuIGludCB0byBiY29weSBpbnN0ZWFkIG9mICZpbnQuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTU6MzE6MjUKICAgIC0gKGljbXAuYyk6IGRvbid0IHVzZSByZXQgdmFyaWFibGUsIHNpbmNlIGl0J3Mgbm90IGRlZmluZWQuCgp3aGFyZGFrZSAxNyBGZWIgOTcgMTU6MzI6MzAKICAgIC0gKGludGVyZmFjZXMuYyk6IFJlbW92ZSBNQVhfTkFNRV9MRU5HVEggcmVxdWlyZW1lbnRzLgoKd2hhcmRha2UgMTcgRmViIDk3IDE2OjExOjA5CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS40LnByZTIgKQoKd2hhcmRha2UgIDQgTWFyIDk3IDE1OjQ2OjMwCiAgICAtIChjb25maWcqLCBtaWJncm91cC9NYWtlZmlsZS5pbik6CiAgICAgIC0gbWliZ3JvdXAgY29tcGlsZSBsaXN0IGlzIGJ1aWxkIGJ5IGNvbmZpZ3VyZSBhbmQgY2FuIGJlIGF1Z21lbnRlZAogICAgICAgIGJ5IHRoZSAtLXdpdGgtbWliLW1vZHVsZXM9Imxpc3Qgb2YgbW9kdWxlcyIgY29tbWFuZCBsaW5lIHRvIGNvbmZpZ3VyZS4KCndoYXJkYWtlICA1IE1hciA5NyAwOTo0OTo1OQogICAgLSAoY29uZmlnKiwgYWdlbnQvKiwgYWdlbnQvbWliZ3JvdXAvKik6CiAgICAgIC0gQWRkZWQgLm8gZmlsZSBsaXN0IHRvIGFnZW50L01ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBjb25maWd1cmUuCiAgICAgIC0gbmV3IGZpbGVzIGdlbmVyYXRlZCBieSBjb25maWd1cmU6CiAgICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2luY2x1ZGVzLmg6ICBBIGxpc3Qgb2YgbWliIC5oIGZpbGVzIGZvciBzbm1wX3ZhcnMuaC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV2ZXJ5IG1vZHVsZSAqbXVzdCogaGF2ZSBhIC5oIGZpbGUpCiAgICAgICAgLSBtaWJncm91cC9taWJfbW9kdWxlX2luaXRzLmg6IEEgbGlzdCBvZiBpbml0X3dvbWJhdCgpIHR5cGUgZnVuY3Rpb25zLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25seSBwcmVzZW50IGlmIGV4aXN0IGluIHdvbWJhdC5jKS4KICAgICAgICAtIG1pYmdyb3VwL21pYl9tb2R1bGVfbG9hZHMuaDogVGhpcyBmaWxlIGlzIGdlbmVyYXRlZCBieSBhIG5ldyBtYWNybyBpbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbWliLmggZmlsZXMgY2FsbGVkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ19sb2FkX21pYigpLCB3aGljaCBzaW1wbGlmaWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBsb2FkaW5nIG9mIHRoZSBtaWIgc2VjdGlvbnMuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTA6MDM6NTgKICAgIC0gKHN5c3RlbS5jKTogcmVtb3ZlZCBzeXN0ZW0gbmxpc3QgKHVudXNlZCkuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6MTc6NDQKICAgIC0gKHNubXBfY2xpZW50LmMpOiBQYXRjaCBmcm9tIEVsd3luIEIgRGF2aWVzOgogICAgICAtIEZpeCBhIFBEVSBjbG9uaW5nIGJ1Zy4KCndoYXJkYWtlICA1IE1hciA5NyAxMToyODoyMAogICAgLSAoKi5jLCAqLmgpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIHRvIHByb3RvdHlwZSAqZXZlcnl0aGluZyouCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mjg6MjMKICAgIGZpbGUga2VybmVsLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtMS00LXByZTItbmllbHMuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6Mjg6NDUKICAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjI4OjQ4CiAgICBmaWxlIHNubXBkLmggd2FzIGluaXRpYWxseSBhZGRlZCBvbiBicmFuY2ggRXh0LTMtMS00LXByZTItbmllbHMuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTE6MzU6MTgKICAgIC0gKCouYywgKi5oKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBwcm90b3R5cGUgKmV2ZXJ5dGhpbmcqLgoKd2hhcmRha2UgIDUgTWFyIDk3IDExOjM3OjM1CiAgICAtIChSRUFETUUpOiBDb250cmlidXRlciBuYW1lIGFkZGl0aW9uLgoKd2hhcmRha2UgIDUgTWFyIDk3IDE1OjA2OjQxCiAgICAtICgqLmMsICouaCk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gdG8gcHJvdG90eXBlICpldmVyeXRoaW5nKi4KCndoYXJkYWtlICA1IE1hciA5NyAxNjoxMzozOAogICAgLSAoYWNsX3ZhcnMuYyk6IGluY29ycmVjdGx5IGZpeGVkIHByb3RvdHlwaW5nIGVycm9ycyBmb3Igd3JpdGVfYWNsKCkuCgp3aGFyZGFrZSAgNSBNYXIgOTcgMTY6MTU6NTQKICAgIC0gKHNubXBfYXBpLmMpOiBmaXhlZCBwcm90b3R5cGluZyBlcnJvcnMgaW4gc25tcF9wYXJzZS4gIFBvc3NpYmx5IHdyb25nLgoKd2hhcmRha2UgIDUgTWFyIDk3IDE2OjI5OjA1CiAgICAtIChzbm1wX2FwaS5jKTogWWVwLiBJdCB3YXMgd3JvbmcuICBUZXN0ZWQgYW5kIHdvcmtzIG5vdy4KCndoYXJkYWtlICA3IE1hciA5NyAwOTowNjozNAogICAgLSAoZXh0ZW5zaWJsZS8qIC0+IG1pYmdyb3VwLyopOiBtb3ZlZCBleHRlbnNpYmxlIHN0dWZmIHRvIG1pYiBtb2R1bGVzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDA5OjA3OjA3CiAgICAtIChzbm1wX3ZhcnMuYyk6IHJlbW92ZWQgbW9yZSBub24tbWliZ3JvdXAgc3BlY2lmaWMgY2FsbHMgYW5kIGhlYWRlcnMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMDk6NTk6MjgKICAgIC0gKHNubXBfdmFycy5oLCBtaWJncm91cC8qKTogc3RyaWN0LXByb3RvdHlwaW5nIGFuZCBjb25maWdfcmVxdWlyZSgpcy4KCndoYXJkYWtlICA3IE1hciA5NyAxMDowNzo1MwogICAgLSAobWlibW9kdWxlL3ZlcnNpb250YWcpOiBtb3ZlZCBpbnRvIHBsYWNlIGZyb20gZXh0ZW5zaWJsZS8KCndoYXJkYWtlICA3IE1hciA5NyAxMDozNDo1MwogICAgLSAoaHB1eC5bY2hdKTogQWRkZWQgaHB1eCBzcGVjaWZpYyBmaWxlcyBmcm9tIGV4dGVuc2libGUgZGlyLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEwOjQzOjA4CiAgICAtIChleHRlbnNpYmxlLyopOiBjdnMgcmVtb3ZpbmcgZmlsZXMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTA6NDk6MDAKICAgIC0gKG1pYmdyb3VwL3N0cnVjdC5oKTogbW92ZWQgdG8gaGVyZS4KCndoYXJkYWtlICA3IE1hciA5NyAxMTo0MzowNQogICAgLSAoY29uZmlnKik6IGdlbmVyYXRlIGEgbWliX21vZHVsZV9jb25maWcuaCB3aXRoIGRlZmluZXMgb2Ygd2hhdHMgYmVpbmcgdXNlZC4KCndoYXJkYWtlICA3IE1hciA5NyAxMzozOToyNAogICAgLSAobWFrZWRlcGVuZC5pbik6IG5ldyBtYWtlIGRlcGVuZCBzY3JpcHQKCndoYXJkYWtlICA3IE1hciA5NyAxMzo0MDo0MAogICAgLSAocmVtb3ZlLWZpbGVzKTogYWRkIG1ha2VkZXBlbmQuaW4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo0NjoxNQogICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbik6IEZpeCBzZWRzY3JpcHQgZ2VuZXJhdGlvbi4gIHNpZ2guCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NDc6NDUKICAgIC0gKGFnZW50L01ha2VmaWxlLmluKTogbWFrZSBkZXBlbmQgYW5kIGV4dGVuc2libGUvIHJlbW92ZXMuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTM6NDg6NTkKICAgIC0gKHNubXBfYWdlbnQuYywgc25tcF92YXJzLmMsIHNubXBkLmMpOiByZW1vdmUgZXh0cHJvdG8uaCBpbmNsdWRlLgoKd2hhcmRha2UgIDcgTWFyIDk3IDEzOjUwOjE1CiAgICAtIChtaWJncm91cC9NYWtlZmlsZS5pbiwgYXBwcy9NYWtlZmlsZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbik6IGRlcGVuZC4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo1MDo1MgogICAgLSAoaHB1eC5jKTogaWZkZWYgYSBmZXcgaGVhZGVycyBmb3IgY29ycmVjdCBtYWtlIGRlcGVuZC4KCndoYXJkYWtlICA3IE1hciA5NyAxMzo1MTozMAogICAgLSAoc25tcGxpYi9zbm1wLmMpOiByZW1vdmUgc2Vjb25kIGN0eXBlLmggaW5jbHVkZS4KCndoYXJkYWtlICA3IE1hciA5NyAxNDowMTo1MQogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmUzICkKCndoYXJkYWtlICA3IE1hciA5NyAxNTowMTowNQogICAgLSAobWliZ3JvdXAvKik6IHJlbW92ZWQge30gcmVxdWlyZW1lbnQgZnJvbSBjb25maWdfbG9hZF9taWIoKSBjYWxscy4KCndoYXJkYWtlICA3IE1hciA5NyAxNTowMjoxOAogICAgLSAoY29uZmlndXJlKTogcmVtb3ZlZCB7fSByZXF1aXJlbWVudCBmcm9tIGNvbmZpZ19sb2FkX21pYigpIGNhbGxzLgoKd2hhcmRha2UgIDcgTWFyIDk3IDE2OjA5OjU4CiAgICAtIChjb25maWcqKTogbWFrZSBuZXcgY29uZmlndXJlIG9wdGlvbnMgcmVzcGVjdCAkKHNyY2RpcikuCgp3aGFyZGFrZSAgNyBNYXIgOTcgMTY6MTE6NTAKICAgIC0gKGNvbW1vbl9oZWFkZXIuaCk6IGNvbW1lbnQgb3V0IGVuZCBvZiAjZW5kaWYuCgp3aGFyZGFrZSAxMCBNYXIgOTcgMTY6NTU6NDYKICAgIC0gKGNvbmZpZ3VyZS5pbik6IE5ldyBjb25maWd1cmUgb3B0aW9uOiAgLS13aXRoLW91dC1taWItbW9kdWxlcz0ibGlzdCIuCgp3aGFyZGFrZSAxMCBNYXIgOTcgMTc6Mjg6MjkKICAgIC0gKGNvbmZpZ3VyZS5pbik6IHNwYWNlIHByb3RlY3QgbW9kdWxlcyB3aGVuIGNoZWNraW5nIGZvciB3aXRoIGdyZXAuCgp3aGFyZGFrZSAxMSBNYXIgOTcgMDk6MDQ6MDMKICAgIC0gKGlwLmMpOiBmcmVlYnNkMiBwYXRjaC4KCndoYXJkYWtlIDExIE1hciA5NyAxNzozOToyMwogICAgLSAobWliZ3JvdXAvKik6CiAgICAgIC0gcmVtb3ZlIHRyYWlsaW5nIDtzIG9uIGJ1bmNoZXMgb2YgZnVuY3Rpb25zLgogICAgICAtIG1ha2UgZXZlcnl0aGluZyBidXQgaW50ZXJmYWNlcy5jIGNvbXBpbGUgb24gaXJpeDYuMy4KICAgIC0gKGNvbmZpZyosc3lzdGVtLmMpOiB1c2UgdW5hbWUgYW5kIGdldGhvc3RuYW1lIGlmIGF2YWlsYWJsZS4KICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogRG9uJ3QgY2hlY2sgX0tFUk5FTCBpZiBpZm5ldC5pZl9tdHUgYWxyZWFkeSB3b3Jrcy4KCndoYXJkYWtlIDEyIE1hciA5NyAwOToyODowNAogICAgLSAobWliZ3JvdXAvc25tcC5baGNdIC0+IG1pYmdyb3VwL3NubXBfbWliLltoY10pOiBNb3ZlZCBkdWUgdG8gbmFtZSBjbGFzaGVzLgoKd2hhcmRha2UgMTIgTWFyIDk3IDE1OjQ3OjAwCiAgICAtIChjb25maWd1cmUuaW4sIHNubXBkLmMsIHNubXBfYWdlbnQuYywgcm91dGVfd3JpdGUuW2NoXSwKICAgICAgdmFyX3JvdXRlLltjaF0sIGlwLltjaF0sIHNubXAuW2NoXSAtPiBzbm1wX21pYi5bY2hdKToKICAgICAgLSBNb3ZlZCBzbm1wIG1pYiBtb2R1bGUgLT4gc25tcF9taWIgZm9yIG5hbWluZyBjb25mbGljdHMgd2l0aCBzbm1wbGliLgogICAgICAtIE1vdmVkIHNubXBfdmFyX3JvdXRlLmMgLT4gbWliZ3JvdXAvdmFyX3JvdXRlLmMKICAgICAgLSBNb3ZlZCB3cml0ZV9yb3V0ZS5jIC0+IG1pYmdyb3VwL3dyaXRlX3JvdXRlLmMKCndoYXJkYWtlIDEyIE1hciA5NyAxNTo0ODozNwogICAgLSAoKi9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kIHVwZGF0ZS4KCndoYXJkYWtlIDEyIE1hciA5NyAxNTo1NToyMAogICAgLSAobWliZ3JvdXAvUkVBRE1FKTogZG9jIHVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMTIgTWFyIDk3IDE3OjE1OjIwCiAgICAtIChzbm1wX2FwaS5jKTogcmV0dXJucyBmcm9tIGluZXRfYWRkciBhcmUgaW5fYWRkcl90ICh1X2ludCkgbm90IHVfbG9uZy4KCndoYXJkYWtlIDEzIE1hciA5NyAwOTozNzozNwogICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBpbl9hZGRyX3QgYW5kIGRlZmluZSBhcyB1X2ludCAoMzIgYml0cykgaWYgbm90IHByZXNlbnQuCiAgICAtIChhcHBzLyouYywgcGFydHlfcGFyc2UuYyk6IHVzZSBpdC4KCndoYXJkYWtlIDEzIE1hciA5NyAxMDoxNDo1OQogICAgLSAoZXh0ZW5zaWJsZV9zdWJ0cmVlcy5oKTogUmVtb3ZlZCBmaWxlLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE0OjM1OjA1CiAgICAtIChhZ2VudC8qLCBtaWJncm91cC8qKTogbW92ZWQgYWxhcm0sIGNvbnRleHQsIHZpZXdzLCBldmVudCwgcGFydHksCiAgICAgIGFuZCBhY2wgdmFyaWFibGUgZ3JvdXBzIHRvIG1pYmdyb3VwLy4KCndoYXJkYWtlIDEzIE1hciA5NyAxNDo0NDo1NQogICAgLSAoa2VybmVsX3N1bm9zNS5bY2hdKTogbW92ZWQgdG8gbWliZ3JvdXAvLgogICAgLSAocm91dGVfd3JpdGUuYywgc25tcF92YXJfcm91dGUuYyk6IGRlbGV0ZSBmcm9tIGFnZW50IGRpci4KCndoYXJkYWtlIDEzIE1hciA5NyAxNTozNToyNgogICAgLSAoaHB1eC5jLCBtZW1vcnkuYywgbWVtb3J5LmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkcyB0byBmaXggbWlub3IgcHJvYmxlbXMuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTU6MzY6MTQKICAgIC0gKHZpZXdfdmFycy5jLCBjb250ZXh0X3ZhcnMuYywgYWNsX3ZhcnMuYyk6IGRvbid0IGluY2x1ZGUgc25tcHYyX3ZhcnMuaC4KCndoYXJkYWtlIDEzIE1hciA5NyAxNTo0NToxNAogICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBzeXN0ZW0gZGVwZW5kZW50IG1vZHVsZXMuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTU6NDY6MTYKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBOZXcgbWFrZSBkZXBlbmQgcnVsZXMgdG8gc2VwZXJhdGUgc3lzdGVtL25vbiBkZXBlbmRlbnQgc3R1ZmYuCgp3aGFyZGFrZSAxMyBNYXIgOTcgMTY6MDc6NTIKICAgIC0gKCovTWFrZWZpbGUuaW4pOiBtYWtlIGRlcGVuZCBhbmQgcnVsZSBmaXhlcyBhcyB3ZWxsLgoKd2hhcmRha2UgMTMgTWFyIDk3IDE2OjEwOjU4CiAgICAtIChjb25maWcqKTogcmVtb3ZlIGR1cGxpY2F0ZSBnZXRob3N0bmFtZSBjaGVjay4KCndoYXJkYWtlIDEzIE1hciA5NyAxNjoxNzo1OQogICAgLSAoYXBwcy8qL01ha2VmaWxlLmluKTogZGVwZW5kIHByb2JsZW1zIGZpeC4KCndoYXJkYWtlIDEzIE1hciA5NyAxNzoxNzozMgogICAgLSAoY29tbW9uX2hlYWRlci5oKTogZml4IHBhdGggdG8gYWxhcm0uaC4KCndoYXJkYWtlIDEzIE1hciA5NyAxNzo0NzozMgogICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2Vuc2VuOgogICAgICAtIEEgbGFyZ2UgbnVtYmVyIG9mIHByb2JsZW1zIHdpdGggdGhlIExpbnV4IHBvcnQKICAgICAgLSBTb21lIHByb2JsZW1zIHdpdGggTmV0QlNEIDEuMkMsIGJ1dCBpdCdzIHN0aWxsIG5vdCBwZXJmZWN0CiAgICAgIC0gTW9yZSAoc3ltYm9saWMpIGRlYnVnIG91dHB1dCBmcm9tIHNubXBkLCB3aGVuIHVzaW5nIC1WLiAtZCBpbXBsaWVzIC1WCiAgICAgICAgU2hvd3MgeW91IHZhcmlhYmxlIHJlcXVlc3RlZCBhbmQgdmFsdWUgcmV0dXJuZWQKICAgICAgLSBSZXR1cm4gaXBSb3V0ZU1hc2sgdW5kZXIgU29sYXJpcwogICAgICAtIHNubXBuZXRzdGF0IC1yIHNob3dzIG5vbi1zdGFuZGFyZCBuZXRtYXNrcwogICAgICAtIHNubXBuZXRzdGF0IC1vIChuZXcpIHNob3dzIGludGVyZmFjZSBvY3RldHMsIHdpdGhvdXQgZW5xdWlyaW5nIGZvciBtdHUKICAgICAgICBhbmQgb3RoZXIgdmFyaWFibGVzIG5vdCBwcmVzZW50IGZvciBhIENpc2NvIEZyYW1lLVJlbGF5IHZpcnR1YWwgY2lyY3VpdAogICAgICAgIGludGVyZmFjZQogICAgICAtIHNubXBuZXRzdGF0IHRjcC91ZHAgcHJpbnQtb3V0IGhhZCBudG9ocy9odG9ucyBpbiB3cm9uZyBwbGFjZXMgZm9yIHBvcnQKICAgICAgICBudW1iZXJzIChzaG93cyB1cCBvbiBsaXR0bGUtZW5kaWFuIGFyY2hpdGVjdHVyZXMpCiAgICAgIC0gYWRkcyBhIG1ha2V0YXJnZXQgc2NyaXB0IHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGEgcGFyYWxsZWwgc3ltbGlua2VkCiAgICAgICAgc291cmNlIGRpcmVjdG9yeS4gVXNlZnVsIGlmIHlvdXIgbWFrZSBkb2VzIG5vdCBzdXBwb3J0IFZQQVRICgp3aGFyZGFrZSAxNCBNYXIgOTcgMDk6Mzk6MTUKICAgIC0gKHVjZC1zbm1wLnR4dCwgbWliLnR4dCwgTWFrZWZpbGUuaW4pOiBEb24ndCBidWlsZCBtaWIgZmlsZXMgYW55bW9yZS4KCndoYXJkYWtlIDE0IE1hciA5NyAwOTo0NjozMQogICAgLSAodWNkLXNubXAudHh0KTogbW92ZWQgdG8gbWlicy8uCgp3aGFyZGFrZSAxNCBNYXIgOTcgMDk6NDc6NDcKICAgIC0gKG1pYi50eHQpOiBzdHJlYW1lZCBkb3duLgoKd2hhcmRha2UgMTQgTWFyIDk3IDA5OjUwOjAzCiAgICAtIChtaWJzL3tyZmMxMjcxLHNubXB2Mix1Y2Qtc25tcH0udHh0KTogTmV3IG1pYnMgZGlyZWN0b3J5IGZvciBzdWItbWlicy4KCndoYXJkYWtlIDE0IE1hciA5NyAxMDo0ODozNQogICAgLSAoTWFrZWZpbGUuaW4sIGNvbmZpZyosIG1pYnMvTWFrZWZpbGUuaW4pOiBlbmFibGUgbWlicy8gbWFrZSBpbnN0YWxsLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEwOjQ5OjAzCiAgICAtICh1Y2Qtc25tcC50eHQpOiByZW1vdmUgdGhlIGxhc3Qgb2YgdGhlIHNlZCBzY3JpcHQgZGVmcy4KCndoYXJkYWtlIDE0IE1hciA5NyAxMTowMToxOQogICAgLSAoc25tcGQuMS5kZWYpOiBVcGRhdGVkIHRvIGluY2x1ZGUgLWMvLUMgYW5kIFNOTVBDT05GUEFUSCBlbnYgdmFyLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjA3OjE2CiAgICAtIChNYWtlZmlsZS5pbik6IEZpeCBzZWRzY3JpcHQgdG8gaW5jbHVkZSBzIyBhcyB3ZWxsIGFzIHMvIGNvbW1hbmRzLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjE3OjA2CiAgICAtIChtYWtlZGVwZW5kLmluKTogcnVuIG9uIHNubXBuZXRzdGF0IGRpciBhbHNvLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjE4OjE3CiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbiwgYXBwcy9zbm1wbmV0c3RhdC9NYWtlZmlsZS5pbik6IG1ha2UgZGVwZW5kLgoKd2hhcmRha2UgMTQgTWFyIDk3IDExOjIwOjM5CiAgICAtIChzbm1wX3ZhcnNfZXZlbnQuaCk6IGF4ZS4KCndoYXJkYWtlIDE0IE1hciA5NyAxMToyMjoyOQogICAgLSAoc25tcF9ncm91cHZhcnMuaCk6IGF4ZS4KCndoYXJkYWtlIDE0IE1hciA5NyAxMzo1MTo1OQogICAgLSAoY29uZmlndXJlLmluLCBhcHBzL01ha2VmaWxlLmluKTogZml4IHRyYXAgYnkgaW5jbHVkaW5nIG9wdGlvbmFsIC5vIGZpbGVzLgoKd2hhcmRha2UgMTQgTWFyIDk3IDEzOjUzOjIyCiAgICAtIChzbm1wZC5jLCBjb250ZXh0X3BhcnNlLmMsIHBhcnR5X3BhcnNlLmMsIHN5c3RlbS5bY2hdKToKICAgICAgLSA2NGJpdCBmaXg6IGdldF9teWFkZHIoKSBzaG91bGQgcmV0dXJuIGludCBub3QgbG9uZy4KCndoYXJkYWtlIDE0IE1hciA5NyAxMzo1NDoyMgogICAgLSAoYWNjb25maWcuaCwgdWNkLXNubXAudHh0KTogcmVjb2duaXplIG5ldyBob3N0cyBmb3Igc3lzT2JqZWN0SWQuCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTM6NTU6NTAKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlNCApCgp3aGFyZGFrZSAxNCBNYXIgOTcgMTY6MTY6NTIKICAgIC0gKG1pYmdyb3VwL1JFQURNRSk6IFVwZGF0ZSBmcm9tIERhdmUgU2hpZWxkLgoKd2hhcmRha2UgMTggTWFyIDk3IDE2OjUyOjM0CiAgICAtIChGQVEpOiBVcGRhdGUgZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDE4IE1hciA5NyAxNjo1MzoyNgogICAgLSAoRkFRKTogc25tcC5jb25mIC0+IHNubXBkLmNvbmYKCndoYXJkYWtlIDI0IE1hciA5NyAwOTo0OTo1NAogICAgLSAobWVtb3J5LmMpOiBwcm90b3R5cGUgd3JpdGUgZnVuY3Rpb24gYmV0dGVyLgoKd2hhcmRha2UgMjQgTWFyIDk3IDA5OjUwOjQ5CiAgICAtIChleGFtcGxlLmMsLmgpOiBOZXcgZXhhbXBsZSBtaWIgbW9kdWxlIGR1cGxpY2F0aW5nIHRoZSBwYXNzdGVzdAogICAgICBzY3JpcHQgaW4gQyBjb2RlLgoKd2hhcmRha2UgMjQgTWFyIDk3IDA5OjUxOjE2CiAgICAtIChNYWtlZmlsZS5pbik6IFdhdGNoIG91dCBmb3IgbXVsdGlwbGUgc3BhY2VzIGluIEMgZGVmcy4KCndoYXJkYWtlIDI0IE1hciA5NyAwOTo1MTozMwogICAgLSAoUkVBRE1FKTogcnVucyBvbiBic2RpIDIuMS4KCndoYXJkYWtlIDI0IE1hciA5NyAxMzo1Njo1MAogICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZC4KCndoYXJkYWtlIDI1IE1hciA5NyAwOTozOTowMQogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IGFkZGVkIHN5c2xvY2F0aW9uIGFuZCBzeXNjb250YWN0IGV4YW1wbGVzLgoKd2hhcmRha2UgMjUgTWFyIDk3IDEzOjMwOjA1CiAgICAtIChJTlNUQUxMKTogbWlub3IgZG9jIHVwZGF0ZSBmb3IgbmV3IGZsYWdzLgoKd2hhcmRha2UgMjYgTWFyIDk3IDE3OjA1OjExCiAgICAtIChtaWJncm91cC9zeXN0ZW0uYyk6IHJlcG9ydCBhZ2VudCB1cHRpbWUgcmF0aGVyIHRoYW4gc3lzdGVtIHVwdGltZS4KCndoYXJkYWtlIDIyIEFwciA5NyAwODo0MjowMQogICAgLSAoRkFRKTogdmFyaW91cyB1cGRhdGVzLgoKd2hhcmRha2UgMjIgQXByIDk3IDE1OjAyOjU2CiAgICAtIChtYW55KTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byBmaXggdmFyaW91cyB0aGluZ3MsIG1vc3RseSBvbiBsaW51eC4KCndoYXJkYWtlIDIyIEFwciA5NyAxNToyMDozMAogICAgLSAoUkVBRE1FLnNtdXgsIHNtdXguYywgc211eC5oLCBzbm1wX2JncC5jLCBzbm1wX29zcGYuYywgc25tcF9yaXAyLmMpOgogICAgICAtIHNtdXggc3VwcG9ydCBmb3IgZ2F0ZWQgZnJvbSBSb2hpdCBEdWJlLgoKd2hhcmRha2UgMjIgQXByIDk3IDE1OjQ3OjA2CiAgICAtIChjb21tb25faGVhZGVyLmgpOiByZW1vdmUgZHVwbGljYXRlICh3YXJuaW5nKSBUQ1AgZGVmaW5lcyBvbiBvc2Y0IHN5c3RlbXMuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTU6NTE6NDQKICAgIC0gKHNubXBfYmdwLltjaF0sIHNubXBfcmlwMi5bY2hdLCBzbm1wX29zcGYuW2NoXSk6CiAgICAgIC0gY29uZm9ybSB0byBuZXcgbW9kdWxlIHN0YW5kYXJkcyBvZiBjb2RpbmcuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTY6NDE6MTAKICAgIC0gKHNubXBfYmdwLmMsIHNubXBfcmlwMi5jLCBzbm1wX29zcGYuYywgc211eC5bY2hdKToKICAgICAgLSBzdGFuZGFyZGl6ZSBoZWFkZXJzIGZvciBhdXRvY29uZi4KICAgICAgLSBzbXV4X2luaXQoKSAtPiBpbml0X3NtdXgoKS4KICAgICAgLSBTTVVYREVCVUcgLT4gRE9ERUJVRyAoLS1lbmFibGUtZGVidWdnaW5nIHR1cm5zIHRoaXMgb24gYXV0b21hdGljYWxseSkuCgp3aGFyZGFrZSAyMiBBcHIgOTcgMTc6NDU6MDkKICAgIC0gKGNvbmZpZyosIHNtdXguYyk6IENoZWNrIGZvciBoZWFkZXJzIGFuZCBkZWZpbmUgRkRfQ09QWSBpZiBub3QgZGVmaW5lZC4KCndoYXJkYWtlIDIyIEFwciA5NyAyMDo0OToxNQogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU1ICkKCndoYXJkYWtlICA5IE1heSA5NyAyMjozODoxNQogICAgLSAobWliLltjaF0sIHBhcnNlLltjaF0sIE1ha2VmaWxlLmluKTogTmV3IHBhcnNlciBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIFJ1bi10aW1lIGNvbnRyb2wgb2YgaW5pdGlhbCBtb2R1bGUgbG9hZGluZwogICAgICAgICAgICAgICh1c2VzIGVudiB2YXJpYWJsZXMgTUlCRElSUywgTUlCUywgYW5kIE1JQkZJTEUpCiAgICAgIC0gRGVmaW5lZCBpbnRlcmZhY2VzIGZvciBsb2FkaW5nIG1vZHVsZXMgYW5kIHJldHJlaXZpbmcgZW50cmllcwogICAgICAtIE1vZHVsZSBzY29waW5nIG5vdyBpbmNsdWRlcyBUZXh0dWFsIENvbnZlbnRpb25zCiAgICAgIC0gVG9rZW5zIGltcGxlbWVudGVkIGludGVybmFsbHkgbm8gbG9uZ2VyIHJlcXVpcmUgaW1wb3J0aW5nIHRoZQogICAgICAgIGNvcnJlc3BvbmRpbmcgbW9kdWxlcwoKd2hhcmRha2UgIDkgTWF5IDk3IDIyOjQ2OjMwCiAgICAtIChzbXV4LmMsIGNvbmZpZyopOgogICAgICAtIGNoZWNrIGZvciBzZ3R0eS5oIGFuZCBwcm90b3R5cGUgYmV0dGVyLgoKd2hhcmRha2UgIDkgTWF5IDk3IDIyOjQ2OjQ2CiAgICAtIChUT0RPKTogVXBkYXRlLgoKd2hhcmRha2UgIDkgTWF5IDk3IDIzOjUyOjQwCiAgICAtIChzbXV4LltjaF0pOiBwYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW46IHByb3RvdHlwaW5nLgoKd2hhcmRha2UgMTAgTWF5IDk3IDAwOjAzOjMyCiAgICAtIChtaWIuYywgcGFyc2UuYyk6IHBhdGNoZXMgZnJvbSBOaWVscyBCYWdnZXNlbjogcHJvdG90eXBpbmcgKG1vc3RseSkuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMDA6Mjg6MjUKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIG5lZ2F0aXZlIG51bWJlcnMgaW4gbWlicy4KCndoYXJkYWtlIDEwIE1heSA5NyAwMDo0Njo0NAogICAgLSAocGFyc2UuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGRzOiAgZGVhbCB3aXRoIGFub255bW91cyBJRHMuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMDA6NTA6MjAKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRlYWwgd2l0aCBhbm9ueW1vdXMgSURzIChldmVuIGJldHRlcikuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMTY6NDE6MjMKICAgIC0gKGJ1Zy1yZXBvcnQpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkczogIGRvbid0IHN1Ym1pdCBibGFuayBidWctcmVwb3J0cy4KCndoYXJkYWtlIDEwIE1heSA5NyAxNjo0NToxNAogICAgLSAoRkFRKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHM6ICB1cGRhdGUuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMTY6NTI6MTEKICAgIC0gKG1pYl9hcGkuMyk6IE5ldyBmaWxlIGZyb20gRGF2ZSBTaGllbGQuCgp3aGFyZGFrZSAxMCBNYXkgOTcgMTc6MjM6MjEKICAgIC0gKHNubXBkLmMsIHJlYWRfY29uZmlnLmMsIHN5c3RlbS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbjoKICAgICAgLSBkZWZhdWx0IHRyYXAgY29tbXVuaXR5LgogICAgICAtIG11bHRpcGxlIHRyYXAgc2lua3MuCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NDM6NTkKICAgIC0gKGNvbmZpZyosIGV4dGVuc2libGUuYyk6ICBCU0RJMyBzcGVjaWZpYyBoZWFkZXJzIGFuZCBkZWZpbmVzLgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjQ0OjE5CiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbik6IHJlbW92ZWQgQ0NIQUNLID8/Py4KCndoYXJkYWtlIDEyIE1heSA5NyAwODo0ODoxMwogICAgLSAoSU5TVEFMTCwgUkVBRE1FLCBUT0RPKTogZG9jdW1lbnRhdGlvbiB1cGRhdGUuCgp3aGFyZGFrZSAxMiBNYXkgOTcgMDg6NDk6MjMKICAgIC0gKG1hbi9NYWtlZmlsZS5pbik6IGluc3RhbGwgbWliX2FwaS4zLgoKd2hhcmRha2UgMTIgTWF5IDk3IDA4OjUyOjQ4CiAgICAtIChtaWJzL3VjZC1zbm1wLnR4dCk6IFBhdGNoIGZyb20gTWFyaW8gRGVGYXppbyB0byBmaXggdHlwb3MuCiAgICAgIC0gY29tcGlsZXMgdW5kZXIgU05NUGMgNC4xZy4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MToyOAogICAgLSAoSUYtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjI5CiAgICAtICh1Y2QudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzEKICAgIC0gKEV0aGVyTGlrZS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzIKICAgIC0gKEhPU1QtUkVTT1VSQ0VTLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozMwogICAgLSAoSUFOQWlmVHlwZS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzUKICAgIC0gKElQLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTozNgogICAgLSAoU05NUHYyLUNPTkYudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzcKICAgIC0gKFNOTVB2Mi1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6MzkKICAgIC0gKFNOTVB2Mi1TTUkudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NDAKICAgIC0gKFNOTVB2Mi1UQy50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0MgogICAgLSAoU05NUHYyLVRNLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQzCiAgICAtIChUQ1AtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQ1CiAgICAtIChVRFAtTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQ2CiAgICAtIChTTk1QdjItUEFSVFktTUlCLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjQ4CiAgICAtIChTTk1QdjItTTJNLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MTo0OQogICAgLSAoUkZDMTI3MS1NSUIudHh0KTogTmV3IG1pYiBmaWxlIGZyb20gTmllbHMgQmFnZ2VzZW4uCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTA6NTE6NTEKICAgIC0gKFJGQzExNTUtU01JLnR4dCk6IE5ldyBtaWIgZmlsZSBmcm9tIE5pZWxzIEJhZ2dlc2VuLgoKd2hhcmRha2UgMTMgTWF5IDk3IDEwOjUxOjUyCiAgICAtIChSRkMxMjEzLU1JQi50eHQpOiBOZXcgbWliIGZpbGUgZnJvbSBOaWVscyBCYWdnZXNlbi4KCndoYXJkYWtlIDEzIE1heSA5NyAxMDo1MjoxMgogICAgLSAodWNkLnR4dCk6IHdob29wcy4gIFJlbW92ZWQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTE6NTc6MTAKICAgIC0gKHJmYzEyNzEudHh0KTogcmVtb3ZlZC4KCndoYXJkYWtlIDEzIE1heSA5NyAxMjowMjoyNgogICAgLSAoc25tcHYyLnR4dCk6IHJlbW92ZWQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTI6MDM6MDQKICAgIC0gKG1pYnMvTWFrZWZpbGUuaW4pOiByZW1vdmVkIHNubXB2Mi50eHQsIHJmYzEyNzEudHh0LgoKd2hhcmRha2UgMTMgTWF5IDk3IDE0OjQ4OjU5CiAgICAtICh1Y2Qtc25tcC50eHQpOiBDaGFuZ2VkIElEIHRvIFVDRC1TTk1QCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6MDU6MjgKICAgIC0gKGNvbmZpZyosIElOU1RBTEwpOiBOZXcgZmxhZ3MgdG8gc2V0IHByb21wdGVkIHZhbHVlcyBpbnN0ZWFkIG9mIHByb21wdGluZy4KCndoYXJkYWtlIDEzIE1heSA5NyAxNTowNTo1MwogICAgLSAoUkVBRE1FKTogYXJjaGl0ZWN0dXJlIGxpc3QgdXBkYXRlLgoKd2hhcmRha2UgMTMgTWF5IDk3IDE1OjM2OjA4CiAgICAtIChVQ0QtU05NUC1NSUIudHh0KTogbW92ZWQgZnJvbSB1Y2Qtc25tcC50eHQuCgp3aGFyZGFrZSAxMyBNYXkgOTcgMTU6MzY6NTEKICAgIC0gKHVjZC1zbm1wLnR4dCk6IG1vdmVkIHRvIFVDRC1TTk1QLU1JQi50eHQKCndoYXJkYWtlIDEzIE1heSA5NyAxNTozODo0NwogICAgLSAobWlicy9NYWtlZmlsZS5pbik6IHVjZC1zbm1wLnR4dCAtPiBVQ0QtU05NUC1NSUIudHh0LgoKd2hhcmRha2UgMTMgTWF5IDk3IDE2OjIyOjEzCiAgICAtIChjb25maWcqLG1pYi5jKTogTmV3IGNvbmZpZ3VyZSBvcHRpb24gLS13aXRoLWRlZmF1bHQtbWlicz0ibGlzdDpsaXN0Ii4KCndoYXJkYWtlIDE0IE1heSA5NyAxMTo0MTowOQogICAgLSAoTWFrZWZpbGUuaW4sIG1pYi50eHQpOiByZW1vdmVkIG1pYi50eHQgZnJvbSBkaXN0cmlidXRpb24uICBObyBsb25nZXIgbmVlZGVkLgoKd2hhcmRha2UgMTQgTWF5IDk3IDEzOjEzOjE5CiAgICAtIChNYWtlZmlsZS5pbik6IHdhcm4gaWYgbWliLnR4dCBpcyBpbnN0YWxsZWQgZnJvbSBhIHByZXZpb3VzIHJlbGVhc2UuCgp3aGFyZGFrZSAxNCBNYXkgOTcgMTM6MTg6MDIKICAgIC0gKE1ha2VmaWxlLmluLCBhZ2VudC9NYWtlZmlsZS5pbik6IFBhdGNoIGZyb20gT2RkYmpvcm4gU3RlZmZlbnNlbjoKICAgICAgLSBQcm90ZWN0IGFnYWluc3QgYmFzaCBuZWVkaW5nICc7J3Mgb24gbXVsdGlwbGUgc3ViZGlyIG1ha2VzLgoKd2hhcmRha2UgMTQgTWF5IDk3IDEzOjQ1OjI0CiAgICAtIChzbm1wZC5jKTogIFR5cGVjYXN0IG1hbGxvYy4KCndoYXJkYWtlIDE0IE1heSA5NyAxNTowMDoyMgogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU2ICkKCndoYXJkYWtlIDE1IE1heSA5NyAxMToyMjoxOAogICAgLSAoaW50ZXJmYWNlcy5jKTogcGF0Y2ggZnJvbSBNYXJ0aW4gSmFjb2Jzc29uIGZvciBGcmVlQlNECgp3aGFyZGFrZSAxNSBNYXkgOTcgMTE6MjM6MjkKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBwdXJlbHkgbnVtZXJpYyBPSURzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjI4OjE1CiAgICAtIChJTlNUQUxMKTogcGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiB0byByZWZlcmVuY2UgdGhlIG1ha2V0YXJnZXQgc2NyaXB0LgoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjI5OjMzCiAgICAtIChtaWJfYXBpLjMpOiBwYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuOiAgTUlCUyB2YXJpYWJsZSBjYW4gYmUgc2V0IHRvIEFMTC4KCndoYXJkYWtlIDE1IE1heSA5NyAxMTozMDowMQogICAgLSAoVUNELVNOTVAtTUlCLnR4dCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBpbXBvcnQgaW5kZW50aWZpZXJzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjMxOjAxCiAgICAtIChTTk1QdjItU01JLnR4dCk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46ICBjY2l0dCAtPiAwLgoKd2hhcmRha2UgMTUgTWF5IDk3IDExOjMyOjU2CiAgICAtIChtaWIuYywgcGFyc2UuYyk6IHBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gcHJvdG90eXBpbmcgYW5kIG51bGwgY2hlY2tpbmcuCiAgICAgIC0gaWYgTUlCUyBpcyBzZXQgdG8gQUxMLCBwYXJzZSBldmVyeXRoaW5nIGZvdW5kLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE0OjM3OjM5CiAgICAtIChwYXJzZS5jKTogcGF0Y2ggZnJvbSBEYXZlIFNoaWVsZDoKICAgICAgLSBkZWFsIHdpdGggbXVsdGlwbGUgbW9kdWxlIElEJ3MgYmVpbmcgcmVmZXJlbmNlZCBvciBub2RlcyBkZWZpbmVkLgogICAgICAtIHN1cHJlc3MgIm5hbWUgY2xhc2giIHdhcm5pbmdzIGZvciBhbm9ueW1vdXMgbm9kZXMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTU6MjI6NTEKICAgIC0gKHBhcnNlLmgpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOiAgQWRkIG5ldyBub2RlIHN0cnVjdHVyZSBlbnRyaWVzLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE2OjAxOjE4CiAgICAtIChjb25maWcqLCBtaWIuYyk6CiAgICAgIC0gQ2hhbmdlZCBlbnYgdmFyaWFibGUgTUlCRklMRSAtPiBNSUJGSUxFUyAoc2luY2UgaXQgaXMgYSBsaXN0IG5vdykuCiAgICAgICAgKHdpbGwgYWNjZXB0IE1JQkZJTEUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5KS4KICAgICAgLSBCeSBkZWZhdWx0LCAqbm8qIGFkZGl0aW9uYWwgbWliZmlsZXMgYXJlIGxvYWRlZCAoaWUsIG1pYi50eHQgaXMgbm8KICAgICAgICBsb25nZXIgbG9hZGVkKSBhbmQgbXVzdCBiZSB0dXJuZWQgb24gdGhyb3VnaCBjb25maWd1cmUgb3IgdGhlIGVudiB2YXIuCiAgICAgIC0gTmV3IGNvbmZpZ3VyZSBvcHRpb25zIHRvIHNldCBkZWZhdWx0IE1JQlMsIE1JQkZJTEVTLCBNSUJESVJTLgoKd2hhcmRha2UgMTUgTWF5IDk3IDE2OjIyOjE5CiAgICAtIChjb25maWd1cmUqLCBJTlNUQUxMKToKICAgICAgLSBEaXNwbGF5IGRlZmF1bHRzIGluIGNvbmZpZ3VyZSAtLWhlbHAgbGluZXMuCgp3aGFyZGFrZSAxNSBNYXkgOTcgMTY6MjY6MTIKICAgIC0gKGNvbmZpZ3VyZSosIElOU1RBTEwpOgogICAgICAtIFdvcmRpbmcgYW5kIG9yZGVyIGNoYW5nZXMgaW4gY29uZmlndXJlIC0taGVscCBsaW5lcy4KCndoYXJkYWtlIDE1IE1heSA5NyAxNjo0MzozNwogICAgLSAodWRwLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzZW46CiAgICAgIC0gRml4IHVkcF9pbnBjYiBzdHJ1Y3R1cmVzLgoKd2hhcmRha2UgMTYgTWF5IDk3IDExOjI1OjMwCiAgICAtIChwYXJzZS5jKTogUHJvdGVjdCBtYWxsb2MgYWdhaW5zdCAwIGV4dGVybmFsIGltcG9ydHMuCgp3aGFyZGFrZSAyMCBNYXkgOTcgMDg6MDM6MzUKICAgIC0gKHVkcC5jKTogT25seSBkbyBNYXJ0aW4gSmFjb2Jzc2VuJ3MgZml4ZXMgZm9yIGZyZWVic2QyLgoKd2hhcmRha2UgMjAgTWF5IDk3IDA4OjE4OjQ5CiAgICAtIChTTk1QdjItVEMudHh0KTogQ29tbWVudCBvdXQgT2JqZWN0U3ludGF4IGltcG9ydC4KCndoYXJkYWtlIDIwIE1heSA5NyAwODoxOToxMgogICAgLSAocGFyc2UuYyk6IHByb3RlY3QgYWdhaW5zdCAwIGltcG9ydCBjYWxscy4KCndoYXJkYWtlIDIwIE1heSA5NyAwODoxOToyOAogICAgLSAobWliLmMsIHNubXBfYXV0aC5jKTogaW5jbHVkZSBzeXMvc2VsZWN0LmggZm9yIEFJWC4KCndoYXJkYWtlIDIwIE1heSA5NyAxMDowODoyNQogICAgdmVyc2lvbiB0YWcgKCAzLjEuNC5wcmU3ICkKCndoYXJkYWtlIDIwIE1heSA5NyAxMToyNDoyNwogICAgLSAodWRwLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb246ICBGaXggbXkgY3BwIHN0dXBpZGl0eS4KCndoYXJkYWtlIDIwIE1heSA5NyAxNjo1MDoxOAogICAgLSAoVE9ETyk6IHNubXBzZXQgc2hvdWxkIGNoZWNrIGFnYWluc3Qgc2l6ZSBkZWZpbmVkIGluIG1pYi4KCndoYXJkYWtlIDIwIE1heSA5NyAxNjo1MDo1NQogICAgLSAocGFyc2UuYyk6IGNvZGUgZnJvbSBEYXZlIFNoaWVsZDogYWRkIGJhY2sgaW4gZmluZF9ub2RlKCkgZm9yIHBlcmwgdXNhZ2UuCgp3aGFyZGFrZSAyMSBNYXkgOTcgMTA6MTM6MzgKICAgIC0gKE5FV1MpOiBVcGRhdGUgZm9yIDMuMi4KCndoYXJkYWtlIDIxIE1heSA5NyAxNTozODozMgogICAgLSAoTkVXUyk6IENoYW5nZXMgZnJvbSBEYXZlLgoKd2hhcmRha2UgMjEgTWF5IDk3IDE1OjQwOjMxCiAgICAtIChGQVEpOiBDaGFuZ2VzIGZyb20gRGF2ZS4KCndoYXJkYWtlIDIyIE1heSA5NyAxMzoxMzo1OQogICAgLSAoU05NUHYyLU0yTS1NSUIudHh0KTogcmVzdG9yZWQuICBHb3QgdHJ1bmNhdGVkLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjM1OjE0CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaC5pbik6IFNldCBkZWZhdWx0IE1JQiBsaXN0LgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjM2OjE3CiAgICAtIChzbm1wZC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggZW5kaWFubmVzIHByb2JsZW1zLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjM3OjAyCiAgICAtIChIT1NULVJFU09VUkNFUy1NSUIudHh0LCBTTk1QdjItVEMudHh0KTogRnJvbSBOaWVsczogY2hhbmdlIGltcG9ydCBjbGF1c2VzLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjM3OjM5CiAgICAtIChzbm1wX2NsaWVudC5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggZW5kaWVubmVzIHByb2JsZW1zLgoKd2hhcmRha2UgMjMgTWF5IDk3IDEzOjM4OjEzCiAgICAtIChzbm1wX2FwaS5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdlc3NlbiB0byBmaXggbXVsdGlwbGUgZnJlZXMgaW4gdjIgcGR1J3MuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTM6NDA6MDkKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZHMgdG8gZml4IFNOTVAgcGVybCBhZ2Fpbi4KCndoYXJkYWtlIDIzIE1heSA5NyAxMzo0MDozMgogICAgLSAoc25tcF9hcGkuaCk6IENoYW5nZSB0cmFwIHR5cGVzIGZyb20gaW50IHRvIGxvbmcuCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTY6MjM6NTYKICAgIHZlcnNpb24gdGFnICggMy4xLjQucHJlOCApCgp3aGFyZGFrZSAyMyBNYXkgOTcgMTY6MzQ6MzMKICAgIC0gKG1pYl9hcGkuMyk6IE1vZGlmaXkgdG8gbm90ZSBkZWZhdWx0IG1pYnMuCgp3aGFyZGFrZSAyNiBNYXkgOTcgMTA6NTA6MjAKICAgIC0gKElOU1RBTEwsIGNvbmZpZ3VyZSk6IGRlZmF1bHQgbWlicyBsaXN0ZWQgY29ycmVjdGx5LgoKd2hhcmRha2UgMjYgTWF5IDk3IDEwOjUyOjEyCiAgICAtIChzbm1wX2FwaS5oKTogdHJhcCBsb25nJ3MgYmFjayB0byBpbnRzLCBiYWQgc29sdXRpb24uCgp3aGFyZGFrZSAyNiBNYXkgOTcgMTA6NTY6MTkKICAgIC0gKHNubXBjaGVjay5kZWYpOiBuZXcgdmFyaWFibGVzIHRvIHNldCB3YWxrL2dldC9zZXQgY29tbWFuZCBsaW5lIHVzYWdlLgoKd2hhcmRha2UgMjYgTWF5IDk3IDExOjM4OjQxCiAgICAtIChwYXJzZS5jKTogUGF0Y2ggZnJvbSBuaWVscyBCYWdnZXNlbiB0bzoKICAgICAgLSBjbG9zZSBtaWJmaWxlcyBmb3IgTUlCUz1BTEwuCiAgICAgIC0gQWxsb3cgU1lOVEFYIERpc3BsYXlTdHJpbmcgKFNJWkUoMS4uMjU1KSkgaW5zaWRlIE9CSkVDVC1UWVBFLgoJCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEuMi4xIC0+IFYzLjEuMwoKd2hhcmRha2UgMTAgSmFuIDk3IDA4OjQzOjQyCiAgICAtIChDT1BZSU5HKTogIFVwZGF0ZSBmb3IgOTcuCgp3aGFyZGFrZSAxMCBKYW4gOTcgMDg6NDY6MDAKICAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3IgL2Rldi9rc3ltcyBmb3Igc29sYXJpcyBrZXJuZWwuCgp3aGFyZGFrZSAxMCBKYW4gOTcgMDg6NDY6MzYKICAgIC0gKHNubXB0cmFwZC5jKTogUmVtb3ZlIGJyb2tlbiBGRF9TRVQgY29kZS4KCndoYXJkYWtlIDE0IEphbiA5NyAxNjo0NTozMwogICAgLSAoUE9SVElORywgUkVBRE1FLCBUT0RPKTogIEFkZGVkIHVjZC1zbm1wLWNvZGVycyBhcyBkZWZhdWx0IG1haWwgYWRkcmVzcy4KCndoYXJkYWtlIDE3IEphbiA5NyAwOToyODo1NgogICAgcGF0Y2ggbmllbHMuMAoKd2hhcmRha2UgMTcgSmFuIDk3IDExOjUxOjQwCiAgICAtIChzbm1wZC5jLCBleHRlbnNpYmxlLmMpOgogICAgICAtIE5ldyBhcmcgLWMgRklMRTogIAkgICBSZWFkIEZJTEUgYXMgYSBjb25maWd1cmF0aW9uIGZpbGUgYXMgd2VsbC4KICAgICAgLSBOZXcgYXJnIC1DOiAgICAgICAJICAgRG9uJ3QgcmVhZCBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gZmlsZXMuCiAgICAgIC0gTmV3IGVudiBTTk1QQ09ORlBBVEg6ICBSZWFkIHNubXBkeywubG9jYWx9LmNvbmYgZmlsZXMgaW4gOiBzZXBlcmF0ZWQgcGF0aC4KCndoYXJkYWtlIDE3IEphbiA5NyAxMTo1ODo0NgogICAgLSAoc25tcGQuYyk6CiAgICAgIC0gVXNhZ2UoKSB1cGRhdGUgYW5kIHZlcnNpb24gcHJpbnRvdXQgdXBkYXRlLgoKd2hhcmRha2UgMTcgSmFuIDk3IDE0OjU1OjI4CiAgICBEYXZlIFNoaWVsZCBwYXRjaGVzCgp3aGFyZGFrZSAyMCBKYW4gOTcgMTE6MTc6NTMKICAgIE5pZWwncyBwYXRjaGVzIGludGVncmF0ZWQKCndoYXJkYWtlIDIwIEphbiA5NyAxNTowOToyNQogICAgLSBQYXRjaGVzIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgLSBpbXBsZW1lbnRlZDogaW50ZXJmYWNlcy5pZlRhYmxlLmlmRW50cnkuaWZTcGVjaWZpYywKICAgICAgICAgIGlwLmlwUm91dGluZ0Rpc2NhcmRzLAogICAgICAgICAgaXAuaXBBZGRyVGFibGUuaXBBZGRyRW50cnkuaXBBZEVudFJlYXNtTWF4U2l6ZSwKICAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZU1hc2sgLAogICAgICAgICAgaXAuaXBSb3V0ZVRhYmxlLmlwUm91dGVFbnRyeS5pcFJvdXRlTWV0cmljNSwKICAgICAgICAgIGlwLmlwUm91dGVUYWJsZS5pcFJvdXRlRW50cnkuaXBSb3V0ZUluZm8sIGlwLmlwTmV0VG9NZWRpYVRhYmxlLAogICAgICAgICAgdWRwLnVkcFRhYmxlLgogICAgIC0gdWRwIGNvbm5lY3Rpb24gdGFibGUuCiAgICAgLSBpcE5ldFRvTWVkaWEuCiAgICAKICAgIC0gUGF0Y2hlcyBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxOaWVscy5CYWdnZXNlbkB1bmktYy5kaz46CiAgICAgLSB1ZHBOb1BvcnQsIHRjcEluRXJycyBmaXhlcyBmb3IgU29sYXJpcy4KICAgICAtIGxpbnV4IGFwcGxpY2F0aW9uIHN1cHBvcnQuCiAgICAgLSBzbm1wIHZhcmlhYmxlIGdyb3VwLgogICAgIC0gc2ltcGxlIGNvbGQgc3RhcnQgdHJhcHMgdmlhIGV4ZWMoJ3NubXB0cmFwJykuCiAgICAgLSBNSUIgcGFyc2VyIGZpeGVzLgogICAgIC0gTWVtb3J5L2ZyZWUgYWxsb2NhdGlvbiBmaXhlcy4KCndoYXJkYWtlIDIwIEphbiA5NyAxNToyMjo1MwogICAgLSBQYXRjaGVzIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgICAtIChzbm1wX2NsaWVudC5jKTogV2FpdCAxMjAgc2Vjb25kcyBiZWZvcmUgcmV0dXJuaW5nLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjM3OjA4CiAgICAtIChjb25maWcqKTogQXV0b2hlYWRlciBpcyBkdW1iOiAgUHV0IG1hY3JvIGRlZmluZXMgYmVsb3dlIEBCT1RUT01AIHN5bWJvbC4KCndoYXJkYWtlIDIwIEphbiA5NyAxNTozODo1OQogICAgLSAoc25tcF92YXJzLmMsIGV4dGVuc2libGUuYywgcmVhZF9jb25maWcuYyk6IFJlbW92ZSBBTlNJIGNwcCAjZWxpZidzLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjUwOjM3CiAgICAtIChzbm1wX3ZhcnMuYyk6IGJzZGkgI2lmZGVmIGZpeGVzLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjU1OjQ1CiAgICAtIChzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbiA8bWFydGluQGV4bWFuZGF0by5zZT46CiAgICAgIC0gYWRkIGJzZGkgdG8gc29tZSAjaWZkZWZzLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE1OjU4OjUxCiAgICAtIChleHRlbnNpYmxlLmMpOiBQYXRjaCBmcm9tIE1hcnRpbiBKYWNvYnNzb24gPG1hcnRpbkBleG1hbmRhdG8uc2U+OgogICAgICAtIHdhdGNoIG91dCBmb3Igc3RyaW5nIGxlbmd0aHMgb24gdmVyc2lvbiBkZXNjIGFuZCBzeXNuYW1lLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE2OjM4OjIwCiAgICBwYXRyaWNlLjEgcGF0Y2gKCndoYXJkYWtlIDIwIEphbiA5NyAxNjo0MzoyNQogICAgLSAoc25tcF9hcGkuYywgc25tcF9jbGllbnQuW2NoXSk6CiAgICAgIC0gUGF0Y2ggZnJvbSBQYXRyaWNlIFZBTkFDS0VSIDx2YW5hY2tlckB3b3JsZG5ldC5mcj46CiAgICAgICAgLSBmaXggcmVxdWVzdCBkZWxldGlvbnMgaW4gc25tcF9yZWFkKCkuCiAgICAgICAgLSBhZGRlZCByZXR1cm4gYXJndW1lbnQgdG8gc25tcF9hZGRfbnVsbF92YXIoKS4KCndoYXJkYWtlIDIwIEphbiA5NyAxNjo1OTowMgogICAgLSAoZXh0ZW5zaWJsZS5jKTogUGF0Y2ggZnJvbSBzeGp6aGFuZ0Bzc3Muc3NpMS5jb206CiAgICAgICAgLSBmaXggZGlzayByZXBvcnRpbmcgb24gc3Vub3MgNC4xLjMgd2l0aCBPRFMgMS4wLgoKd2hhcmRha2UgMjAgSmFuIDk3IDE2OjU5OjU2CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTEgKQoKd2hhcmRha2UgMjEgSmFuIDk3IDA4OjMzOjA0CiAgICAtIChyZWFkX2NvbmZpZy5jKTogUGF0Y2ggZnJvbSBLYXJsIExlaGVuYmF1ZXIgPGthcmxAaGFtbWVyMS5vcHMuTmVvU29mdC5jb20+OgogICAgICAtICNpZiBET0RFQlVHIC0+ICNpZmRlZiBET0RFQlVHLgoKd2hhcmRha2UgMjEgSmFuIDk3IDA4OjMzOjUyCiAgICAtIChzbm1wZC5jKTogcmVtb3ZlIHNlY29uZCBjaGFyIGRlZmluaXRpb24uCgp3aGFyZGFrZSAyMSBKYW4gOTcgMDg6MzQ6MzIKICAgIC0gKHNubXBfY2xpZW50LmgpOiByZW1vdmUgc2Vjb25kICh3cm9uZykgZnVuY3Rpb24gcHJvdG90eXBlLgoKd2hhcmRha2UgMjEgSmFuIDk3IDA5OjE3OjQyCiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6CiAgICAgIC0gUGF0Y2ggZnJvbSBLYXJsIExlaGVuYmF1ZXIgPGthcmxAaGFtbWVyMS5vcHMuTmVvU29mdC5jb20+CiAgICAgICAgLSBoYW5kbGUgbXVsdGlwbGUgaW50ZXJmYWNlIG5hbWVzID4gMTAgcHJvcGVybHkuCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTA6NDc6NDAKICAgIGJ1ZyByZXBvcnRpbmcgc2NyaXB0IGFkZAoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjA3OjAwCiAgICAtIChidWctcmVwb3J0KToKICAgICAtIEFsd2F5cyB1c2UgbXVsdGlwYXJ0OiB2ZXJzaW9uIGluZm8gYW5kIGNvbmZpZy5jYWNoZSBhcmUgb25lLgogICAgIC0gcmUtYXJyYW5nZWQgYSBiaXQuCiAgICAgLSBBZGRlZCBpbnRyb2R1Y3Rpb24uCiAgICAgLSBHdWVzcyBhdCBkb21haW4gbmFtZSBpZiBwb3NzaWJsZS4KCndoYXJkYWtlIDI5IEphbiA5NyAxMjowNzo1OQogICAgLSAoYWNjb25maWcuaCk6CiAgICAgLSBTTk1QQkxPQ0sgPSAhU05NUEJMT0NLCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MDk6MDUKICAgIC0gKGFjbG9jYWwubTQpOiBGaXggY2hlY2tfc3RydWN0X2ZvciB0byBkZWZpbmUgdGhpbmdzIGNvcnJlY3RseS4KCndoYXJkYWtlIDI5IEphbiA5NyAxMjoxMDoyOAogICAgLSAoY29uZmlndXJlLmluKTogTmV3IHBzIG9wdGlvbnMgdG8gY2hlY2sgZm9yLgoKd2hhcmRha2UgMjkgSmFuIDk3IDEyOjExOjA0CiAgICAtIChGQVEpOiByZXZpc2lvbiBvbmUhCgp3aGFyZGFrZSAyOSBKYW4gOTcgMTI6MTE6MjkKICAgIC0gKGNvbmZpZy5oLmluLCBjb25maWd1cmUpOiB1cGRhdGUKCndoYXJkYWtlIDI5IEphbiA5NyAxMjo1ODo0NgogICAgLSAoa2VybmVsLmMsIHNubXBfYWdlbnQuYywgc25tcGQuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gRml4IHZhcmlvdXMgd2FybmluZ3MvZXJyb3JzLgogICAgICAtIEltcGxlbWVudCByZWFsIHRyYXBzLgoKd2hhcmRha2UgMjkgSmFuIDk3IDEzOjAzOjE1CiAgICAtICh2ZXJzaW9udGFnKTogTW9kaWZ5IC4uLy4uL2J1Zy1yZXBvcnQgYXMgd2VsbC4KCndoYXJkYWtlIDI5IEphbiA5NyAxMzowODoxMQogICAgLSAoYnVnLXJlcG9ydCk6CiAgICAgIC0gY2hhbmdlIHRvIGFkZHJlc3MgKGJhY2spIHRvIHVjZC1zbm1wLWNvZGVycy4KICAgICAgLSBBZGQgYSB0cmFwIG9uIHNpZ25hbHMgdG8gcmVtb3ZlIHRtcCBmaWxlcy4KCndoYXJkYWtlIDMxIEphbiA5NyAwOTo1ODoxMAogICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBrc3RhdC5oIGFuZCBpZiBzeXNjdGwgY2FuIHJlYWQgdGhlIGJvb3R0aW1lLgoKd2hhcmRha2UgMzEgSmFuIDk3IDEwOjAxOjU5CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYyk6IFBhdGNoIGZyb20gTWFydGluIEphY29ic3NvbjoKICAgICAgLSBDaGFuZ2Ugc29tZSBzeXN0ZW0gc3BlY2lmaWMgaWZkZWZzIHRvIENBTl9VU0VfU1lTQ1RMLgogICAgICAtIEZpeCBjb21wbGlhdGlvbiBlcnJvcnMgb24gYnNkaTIuCiAgICAgIC0gRml4IHJvdXRpbmcgdGFibGVzIGZvciBzaW1pbGFyLgoKd2hhcmRha2UgMzEgSmFuIDk3IDEwOjQ5OjA3CiAgICAtICh2ZXJzaW9udGFnKTogdWgsIGNvbW1pdCBpdCBhZ2Fpbi4KCndoYXJkYWtlIDMxIEphbiA5NyAxMDo1MDowNAogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBmaXJlIG9mZiBrc2ggaWYgaHB1eCAmJiBzaC4KCndoYXJkYWtlIDMxIEphbiA5NyAxMDo1OTo0MwogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBjaGFuZ2VkIGFyY2ggdG8gaHBwYSBhbmQgbWFrZSBzdXJlIC9iaW4va3NoIGV4aXN0cy4KCndoYXJkYWtlIDMxIEphbiA5NyAxMTowMzoxMQogICAgdmVyc2lvbiB0YWcgdXBkYXRlCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTA6MDI6MTIKICAgIC0gKGJ1Zy1yZXBvcnQpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkOgogICAgICAtIGRvbWFpbiBuYW1lIGZpeCBhbmQgZWRpdG9yIGJvbWIgb3V0LgoKd2hhcmRha2UgIDMgRmViIDk3IDEwOjAzOjEwCiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogY29tbWVudCBvdXQgcG9zc2libGUgc2VjdXJpdHkgcHJvYmxlbSBsaW5lcy4KCndoYXJkYWtlICAzIEZlYiA5NyAxMDo0NjowMgogICAgLSAoY29uZmlndXJlLmluKToKICAgICAgLSBDaGVjayBmb3Igd2hvYW1pLCBsb2duYW1lLgogICAgICAtIERvbid0IHBhc3MgbnVsbCBhcmdzIHRvIGtzaC4KCndoYXJkYWtlICAzIEZlYiA5NyAxMDo0NzowNAogICAgLSAoc25tcF92YXJzLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkCiAgICAgIC0gTWFyayBzdHVmZiBmb3IgbGF0ZXIgY2hhbmdlcy4KCndoYXJkYWtlICAzIEZlYiA5NyAxMDo0ODowNgogICAgLSAoc25tcGxpYi9zeXN0ZW0uYyk6ICBVc2UgQ0FOX1VTRV9TWVNDVEwgaW5zdGVhZCBvZiBic2RsaWtlLgoKd2hhcmRha2UgIDMgRmViIDk3IDExOjUwOjIzCiAgICAtIChjb25maWcqKToKICAgICAgLSBDaGVjayBmb3IgaXJpeCA2LjIgaGVhZGVycy4KICAgICAgLSBDaGVjayBpZiBfS0VSTkVMIG5lZWRzIHRvIGJlIGRlZmluZWQgZm9yIGlyaXggYW5kIGlmbmV0IHVzYWdlLgogICAgICAtIFVzZSB0aGUgZm91bmQgVU5BTUUgcHJvZ3JhbSBpbnN0ZWFkIG9mIGFzc3VtaW5nIHdlIGhhdmUgaXQuCgp3aGFyZGFrZSAgMyBGZWIgOTcgMTI6NDQ6NTEKICAgIC0gKHNubXBsaWIvc3lzdGVtLmMpOiB0eXBvOiAgbmVlZHMgYSBzcGFjZSBiZXR3ZWVuICdzdGF0aWMnIGFuZCAnc3RydWN0Jy4KCndoYXJkYWtlICAzIEZlYiA5NyAxMjo0Nzo1OAogICAgLSAoc25tcF92YXJzLmMpOiBhZGQgc29tZSBpcml4IGFwcHJvcHJpYXRlIGluY2x1ZGVzLgoKd2hhcmRha2UgIDMgRmViIDk3IDEyOjUxOjA0CiAgICAtIChSRUFETUUpOiByZW1vdmUgcHJvamVjdCBoaXN0b3J5LgoKd2hhcmRha2UgIDMgRmViIDk3IDEzOjE1OjExCiAgICAtIChSRUFETUUpOgogICAgICAtIGFkZGVkIEZBUSBwb2ludGVyLgogICAgICAtIERhdmUncyBFbmdsaXNoIHBvaW50ZXJzIChpZSwgaGUgcHJvb2ZlZCBpdCBhbmQgSSwgdWgsIGRvbid0Li4uKS4KICAgICAgLSBzd2l0Y2ggZnRwIG1pcnJvci4KICAgICAgLSBidWctcmVwb3J0IHNjcmlwdCBtZW50aW9uZWQuCiAgICAgIC0gSSAtPiBXZSwgbWUgLT4gdXMuLi4KCndoYXJkYWtlICAzIEZlYiA5NyAxMzozMzoxMQogICAgLSAoUkVBRE1FLCBORVdTLCBUT0RPKTogVXBkYXRlIGZvciAzLjEuMy4KCndoYXJkYWtlICAzIEZlYiA5NyAxMzo1MzowNAogICAgLSAoYnVnLXJlcG9ydCk6IG1vdmUgY29uZmlnLmNhY2hlIHRvIGVuZCBvZiBtZXNzYWdlLgoKd2hhcmRha2UgIDMgRmViIDk3IDEzOjU1OjA1CiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTMgKQoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjM1OjAyCiAgICAtIChGQVEpOiBEYXZlJ3MgbGF0ZXN0IHJldmlzaW9uLgoKd2hhcmRha2UgIDQgRmViIDk3IDA5OjM1OjM3CiAgICAtIChUT0RPKTogQWRkZWQgc3VnZ2VzdGlvbnMgZnJvbSB1Y2Qtc25tcC1jb2RlcnMuCgp3aGFyZGFrZSAgNCBGZWIgOTcgMDk6MzY6NDMKICAgIC0gKGNvbmZpZ3VyZSwgY29uZmlndXJlLmluKTogRml4IGhwdXggcHJvYmxlbXMsICphZ2FpbiouCgp3aGFyZGFrZSAgNCBGZWIgOTcgMDk6Mzc6MjYKICAgIC0gKG1pYi5jKTogUGF0Y2ggZnJvbSBTaW1vbjogY29tbWVudCAjaWZkZWYgZW5kaW5ncyBmb3IgQU5TSSBjb21wbGllcnMuCgp3aGFyZGFrZSAgNCBGZWIgOTcgMDk6NDE6MzkKICAgIC0gKEZBUSk6IEFkZGVkIFRPQyBhbmQgYXV0b3Igbm90ZXMgOy0pLgoKd2hhcmRha2UgIDUgRmViIDk3IDE2OjMzOjAxCiAgICAtIChGQVEpOiBEYXZlIHVwZGF0ZWQgYXJjaGl0ZWN0dXJlIGxpc3RzLgoKd2hhcmRha2UgIDUgRmViIDk3IDE2OjMzOjMyCiAgICAtIChUT0RPKTogbWlzYyByZXF1ZXN0ZWQgYWRkaXRpb25zLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjA3OjI1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6IFB1dCAvZGV2L2tzeW1zIGFoZWFkIG9mIC9rZXJuZWwvdW5peC4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoxMToxNQogICAgLSAobWFueSk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW46CiAgICAgIC0gc25tcCBtaWIgZ3JvdXAgY2xlYW51cHMuCiAgICAgIC0gdHJhcCBnZW5lcmF0aW9uIGNsZWFudXBzLgogICAgICAtIGFkZGVkIG1hbiBlbnRyaWVzIGZvciB0cmFwIGdlbmVyYXRpb24uCiAgICAgIC0gaW1wcm92ZWQgYWdlbnQgZGVidWdnaW5nIG91dHB1dCB3aXRoIGFnZW50J3MgLWQgZmxhZy4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoxMzowOQogICAgLSAoc3lzdGVtLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIHRvIGZpeCBubGlzdCBwcm9ibGVtcy4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoyMDoxMAogICAgLSAoYnVnLXJlcG9ydCk6IENoYW5nZSBzdWJqZWN0IGxpbmUgdG8gc2hvcnRlbiBhbmQgZm9yY2UgYmV0dGVyIGRlc2NyaXB0aW9uLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjIzOjQxCiAgICAtICh0Y2wsIHRrLCBzbm1wdGNsKTogTnVrZWQuCgp3aGFyZGFrZSAgNSBGZWIgOTcgMTc6MjU6MDMKICAgIC0gKE5FV1MpOiByZW1vdmVkIHRjbCBzdHVmZi4KCndoYXJkYWtlICA1IEZlYiA5NyAxNzoyOTo1NAogICAgLSAoTWFrZWZpbGUuaW4sIGNvbmZpZ3VyZS5pbik6IHJlbW92ZWQgdGNsIHN0dWZmLgoKd2hhcmRha2UgIDUgRmViIDk3IDE3OjQxOjUwCiAgICB2ZXJzaW9uIHRhZyAoIDMuMS4zLnByZTQgKQoKd2hhcmRha2UgMTAgRmViIDk3IDA5OjIyOjAzCiAgICAtIChGQVEpOiBEYXZlIFNoaWVsZHMnIGFkZGl0aW9uczogIGZpbmRpbmcgbW9yZSBpbmZvLgoKd2hhcmRha2UgMTAgRmViIDk3IDA5OjIyOjUzCiAgICAtIChzbm1wbmV0c3RhdC9tYWluLmMpOiBSZW1vdmUgbWFsbG9jIHByb3RvdHlwZSwgbm93IGluIHN0ZGxpYi5oLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMS4yIC0+IFYzLjEuMi4xCgp3aGFyZGFrZSAgNSBEZWMgOTYgMDk6MTM6NTYKICAgIC0gKGlmLmMpOiAjaWZuZGVmIC0+ICNpZmRlZiBmb3Igc2lnc2V0LgogCndoYXJkYWtlICA1IERlYyA5NiAwOToxNDo1OQogICAgLSAobWQ1LmMpOiByZW1vdmUgYW5zaSBzcGVjaWZpYyBDIGZlYXR1cmVzICh1bnNpZ25lZCBjb25zdGFudHMpLgogCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEuMSAtPiBWMy4xLjIKCndoYXJkYWtlIDE3IE9jdCA5NiAwNzowMjo1OAogICAgdmVyc2lvbiB0YWcgKCAzLjEuMS5CU0RJICkKCndoYXJkYWtlIDMwIE9jdCA5NiAxMzo0NzoyMQogICAgLSAoUE9SVElORyxSRUFETUUpOiBBZGQgYSBuZXcgUE9SVElORyBmaWxlIHRvIHJlZmVyZW5jZSBhdXRvY29uZiBwbGVlLgoKd2hhcmRha2UgMzAgT2N0IDk2IDEzOjQ5OjA5CiAgICAtIChjb25maWcqLCBlY2UtbWliLmRlZik6CiAgICAgIC0gQ2hhbmdlIGV4dGVuc2libGUgbWliIGxvY2F0aW9uIHRvIHVjZGF2aXMgZW50ZXJwcmlzZSBtaWI6IDIwMjEuCiAgICAgIC0gUmVtb3ZlIGFzc29jaWF0ZWQgcHJvbXB0aW5nIGZyb20gY29uZmlndXJlIHNjcmlwdCBhbmQgZXRjLgoKd2hhcmRha2UgMzEgT2N0IDk2IDE3OjA2OjE2CiAgICAtIChyZWFkX2NvbmZpZy5jKTogbnVtZGlza3Mgd2FzIGJlaW5nIGluY3JlbWVudGVkIGJlZm9yZSBsYXN0IHVzYWdlLgoKd2hhcmRha2UgIDEgTm92IDk2IDA4OjU0OjExCiAgICAtIChhc24xLmMpOiBQYXRjaCBmcm9tIFNpbW9uIExlaW5lbiAgPHNpbW9uQHN3aXRjaC5jaD46CiAgICAgIC0gYXNuX2J1aWxkX3Vuc2lnbmVkX2ludCwgYXNuX2J1aWxkX3Vuc2lnbmVkX2ludDY0OgogICAgICAgIC0gRG9uJ3QgdHJ5IHRvIHN0cmlwIEZGcyBmcm9tIHRoZSBoaWdoIGVuZCBvZiB1bnNpZ25lZCB2YWx1ZXMuCiAgICAgICAgLSBTa2lwIHRoZSBzdHJpcHBpbmcgY29kZSBlbnRpcmVseSBpZiB3ZSBoYXZlIHRvIGFkZCBhIG51bGwgYnl0ZS4KCndoYXJkYWtlICA0IE5vdiA5NiAwOTozMDo0NgogICAgLSAoY29uZmlnKiwgc25tcF92YXJzLmMsIGV4dGVuc2libGUuYyk6ICBNb3JlIGluY2x1ZGUgY2hlY2tzIGZvciBsaW51eC4KCndoYXJkYWtlICA0IE5vdiA5NiAxMDowODo0OQogICAgLSAoY29uZmlnKik6IENoZWNrIGZvciBubGlzdCBpbiAtbG1sZCAoaXJpeCkuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMDk6MTY6NDUKICAgIC0gTmV0QlNEIDMuMS4wLjEgYnJhbmNoIG1lcmdlLgoKd2hhcmRha2UgIDcgTm92IDk2IDA5OjI0OjIzCiAgICAtIE5pZWxzIDMuMS4xIGJyYW5jaCBtZXJnZS4KCndoYXJkYWtlICA3IE5vdiA5NiAwOTozNTo1MgogICAgLSBCU0RpMiAzLjEuMSBicmFuY2ggbWVyZ2UuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMDk6NTc6MTYKICAgIC0gKHZlcnNpb250YWcpOiBPbmx5IHRhZyByZWxlYXNlIHZlcnNpb25zIChFeHQqKS4KCndoYXJkYWtlICA3IE5vdiA5NiAxNDoxNjowMAogICAgLSAoY29uZmlndXJlLmluLCBjb25maWd1cmUpOiBDaGFuZ2VkIGRlZmF1bHQgU05NUFYyQVVUSCB0byBTTk1QVjEuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMTQ6MTY6MzkKICAgIC0gKHNubXBfdmFyX3JvdXRlLmMpOiBpZmRlZidzIGFyb3VuZCBzdHJpbmdzLmguCgp3aGFyZGFrZSAgNyBOb3YgOTYgMTQ6MTc6MTcKICAgIC0gKHNubXBfdmFycy5jKTogaWZkZWYgdHlwb3MuCgp3aGFyZGFrZSAgNyBOb3YgOTYgMTQ6MTk6MzMKICAgIC0gKG1pYi5jKTogdHlwZWNhc3QgZm9yIHNwcmludF9vYmppZCgpLgoKd2hhcmRha2UgIDggTm92IDk2IDE3OjAzOjQ3CiAgICAtIChNYWtlZmlsZS5pbik6IENyZWF0ZWQgYSAndG91Y2hpdCcgdG8gdG91Y2ggY29uZmlnIGZpbGVzIHByb3Blcmx5LgoKd2hhcmRha2UgIDggTm92IDk2IDE3OjA2OjQ2CiAgICAtIChNYWtlZmlsZS5pbik6IEZpeGVkICd0b3VjaGl0Jy4KCndoYXJkYWtlIDE0IE5vdiA5NiAxNToxNDo1MAogICAgLSAoZXh0ZW5zaWJsZS5jKTogVXNlIHN0YXRmcyBpZiBzdGF0dmZzIGlzIHVuYXZhaWxhYmxlLgoKd2hhcmRha2UgMTQgTm92IDk2IDE1OjE2OjIyCiAgICAtIChzbm1wX3ZhcnMuYyk6CiAgICAgIC0gI2lmZGVmIHR5cG8uCiAgICAgIC0gcHJvdG90eXBlIGZvciBJbnRlcmZhY2VfU2Nhbl9Jbml0KCkuCiAgICAgIC0gQ2hlY2sgZm9yIGV4aXN0YW5jZSBvZiB0Y3BzdGF0LnRjcHNfcmN2bWVtZHJvcCBiZWZvcmUgdXNpbmcuCgp3aGFyZGFrZSAxNCBOb3YgOTYgMTU6MTc6MzYKICAgIC0gKGNvbmZpZyopOgogICAgICAtIENoZWNrIGZvciBleGlzdGFuY2Ugb2YgdGNwc3RhdC50Y3BzX3Jjdm1lbWRyb3AuCiAgICAgIC0gQ2hlY2sgZm9yIHN5cy92ZnMuaC4KCndoYXJkYWtlIDE0IE5vdiA5NiAxNToyNDoyNAogICAgLSAoc25tcHRyYXAuYywgaW5ldC5jLCByb3V0ZS5jKTogdHlwZWNhc3Rpbmcgd2FybmluZyBmaXhlcy4KCndoYXJkYWtlIDE1IE5vdiA5NiAxNjo0MzozMwogICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogTWFrZSB1bmFtZSBjYWxscyB3b3JrIGNvcnJlY3RseS4KCndoYXJkYWtlIDE1IE5vdiA5NiAxNjo0NDoxMQogICAgLSAocGFyc2UuYyk6ICBBZGQgYmFjayBpbiAicmVhZGluZyBtaWIuLi4iIGRlYnVnZ2luZyBzdGF0bWVudHMuCgp3aGFyZGFrZSAyMiBOb3YgOTYgMDg6MTg6MjkKICAgIC0gKHNubXBfdmFycy5jKTogVHJhc2ggaW50ZXJmYWNlIGNhY2hpbmcuCgp3aGFyZGFrZSAyMiBOb3YgOTYgMDk6MDY6MTAKICAgIC0gKHNubXBfdmFycy5jKTogTWVyZ2UgZnJvbSBGcmVlQlNEMi0zLTEtMS4KICAgICAgLSBBZGQgY2hlY2tzIGZvciBpZm5ldC5baW9dYnl0ZXMuCgp3aGFyZGFrZSAyMiBOb3YgOTYgMDk6MTQ6MjIKICAgIC0gKGNvbmZpZyopOiBBZGQgY2hlY2tzIGZvciBpZm5ldC5baW9dYnl0ZXMuCgp3aGFyZGFrZSAyMiBOb3YgOTYgMTE6MzU6MjkKICAgIC0gKGFnZW50L2V4dGVuc2libGUvKi5jLCBuZXc6IGV4dHByb3RvLmgpOiAgUmVtb3ZlZCBhbGwgLVdhbGwgd2FybmluZ3MhCgp3aGFyZGFrZSAyMiBOb3YgOTYgMTQ6Mzg6MDUKICAgIC0gKGNvbmZpZyosIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnMpOiBVcGdyYWRlZCB0byBhdXRvY29uZiAyLjExLgoKd2hhcmRha2UgMjIgTm92IDk2IDE1OjEwOjM2CiAgICAtIChleHRlbnNpYmxlLmMsIHJlYWRfY29uZmlnLmMpOiByZW1vdmVkIG1vcmUgLVdhbGwgd2FybmluZ3MuCgp3aGFyZGFrZSAyNCBOb3YgOTYgMTY6MjU6MDcKICAgIC0gKGtlcm5lbC5jLCBjb25maWcqLCBJTlNUQUxMKTogIE5ldyBjb25maWd1cmUgc3dpdGNoOiAgLS13aXRob3V0LXJvb3QtYWNjZXNzLgogICAgICAtIFRoZSBhZ2VudCBkb2Vzbid0IGV4aXQgaWYgaXQgY2FuJ3Qgb3BlbiAvZGV2L2ttZW0uCgp3aGFyZGFrZSAyNCBOb3YgOTYgMTY6NDU6MjcKICAgIHZlcnNpb24gdGFnICggMy4xLjIucHJlMSApCgp3aGFyZGFrZSAyNSBOb3YgOTYgMDg6NDQ6MDMKICAgIC0gKHthZ2VudCxhcHBzfS9NYWtlZmlsZS5pbik6IFB1dCBsaWJzbm1wLmEgaW4gZnJvbnQgb2YgLWwgbGlicy4KCndoYXJkYWtlIDI1IE5vdiA5NiAwOToxNTo1NwogICAgLSAoY29uZmlnKiwgc25tcF9pbXBsLmgpOiBNb3ZlZCB2b2lkIC0+IGNoYXIgZGVmaW5lIHRvIGEgY29uZmlndXJlIHRlc3QuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MDI6MDYKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBDaGFuZ2UgY29tbWVudHMgdG8gcmVmbGVjdCB3aGF0IGl0cyBhY3R1YWxseSBsb29raW5nIGF0LgogICAgICAtIFJlbW92ZSBpZmRlZiBhcm91bmQgaWZuZXQgZGVjbGFyYXRpb25zLgoKd2hhcmRha2UgMjcgTm92IDk2IDA4OjAzOjQ3CiAgICAtIChleHRlbnNpYmxlLmMpOiBQYXRjaCBmcm9tIERhdmUgU2hpZWxkIDxELlQuU2hpZWxkQGNzYy5saXYuYWMudWs+OgogICAgICAtIFJlbW92ZSByZXR1cm4oMCkgb24gdm9pZCBpbml0X2V4dGVuc2libGUoKS4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODowNjowNAogICAgLSAoY29uZmlndXJlLCBjb25maWd1cmUuaW4pOiBEZWZhdWx0IHN5c2xvYyBVQ0RhdmlzIC0+IFVua25vd24uCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MjE6MjAKICAgIC0gKElOU1RBTEwpOiBUeXBvOiAgMy4xLjMgLT4gMy4wLjMuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6MjE6MzQKICAgIC0gKFJFQURNRSk6IFVwZGF0ZS4KCndoYXJkYWtlIDI3IE5vdiA5NiAwODozNDoxMgogICAgLSAoaWYuYyk6IFBhdGNoIGZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gV2F0Y2ggb3V0IGZvciBpbnRlcmZhY2UgbmFtZXMgd2l0aCAnICcgaW4gdGhlbS4KICAgICAgLSBSZXNldCBzaWduYWwgb24gQlNEIHNpZ25hbCBpbXBsZW1lbnRhdGlvbnMuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6NDU6NDYKICAgIC0gKGlmLmMpOiBSZXNldCBzaWduYWwgb24gYWxsIHR5cGVzIG9mIHNpZ25hbCBpbXBsZW1lbnRhdGlvbnMuCgp3aGFyZGFrZSAyNyBOb3YgOTYgMDg6NTY6NDQKICAgIC0gKGNvbmZpZ3VyZS5pbiwgY29uZmlndXJlKTogVHJ1bmNhdGUgc3lzdGVtIG5hbWVzIGJleW9uZCBbLV9dLiouCgp3aGFyZGFrZSAgMiBEZWMgOTYgMDg6NTU6NDkKICAgIC0gKHNubXBfdmFycy5jKTogUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPjoKICAgICAgLSBpZlBoeXNBZGRyIC0gaW4gSW50ZXJmYWNlX0dldF9FdGhlcl9CeV9JbmRleCwgSFAtVVggaGFzIHRoZSBzYW1lCiAgICAgICAgICAgIEV0aGVyQWRkciBzdHJ1Y3VyZSBhcyBNSVBTLgogICAgCiAgICAgIC0gaXBBZEVudElmSW5kZXggLSBpbiB2YXJfaXBBZGRyRW50cnksIHRoZXJlIGlzIGEgZmFsc2UgbWF0Y2ggb24KICAgICAgICAgICAgdGhlIGxvb3BiYWNrIGludGVyZmFjZSwgZ2l2aW5nIHRoZSB3cm9uZyBhbnN3ZXIgb2YgdGhlIGZpcnN0CiAgICAgICAgICAgIGludGVyZmFjZSBpbmRleC4KICAgIAogICAgICAtIHVkcEluRXJyb3JzIC0gaW4gdmFyX3VkcCwgdGhlIGNvdW50IG9mIFVEUCBlcnJvcnMgb21pdHMgZGlzY2FyZGVkCiAgICAgICAgICAgIHBhY2tldHMuICBTb21lIHN5c3RlbXMgKGkuZS4gSFAtVVgpIGhhdmUgZXh0ZW5kZWQgdGhlIHVkcHN0YXQKICAgICAgICAgICAgc3RydWN0dXJlIHRvIGluY2x1ZGUgdGhlc2UuICBJJ3YgdHdlYWtlZCB0aGlzIGFuYWxvZ291cyB0byBhCiAgICAgICAgICAgIHNpbWlsYXIgYWRkaXRpb24gaW4gdGhlIHRjcHN0YXQgc3RydWN0dXJlLgogICAgCiAgICAgIC0gdGNwQ29ublN0YXRlIC0gSFAtVVggaGFzIGFkZGVkIGFuIGV4dHJhIHN0YXRlIGludG8gdGhlIGxpc3QsIHdoaWNoCiAgICAgICAgICAgIHRocm93cyB0aGUgcmVzdCBvZiB0aGVtIG91dC4KCndoYXJkYWtlICAzIERlYyA5NiAxMDowNDowMgogICAgLSAoY29uZmlnKiwgc25tcF92YXJzLmMpOgogICAgICAtIFdyb3RlIEFDX0NIRUNLX1NUUlVDVF9GT1IgYW5kIHVzZSBpdC4KICAgICAgLSBNYWtlIEFDX0NIRUNLX0lGTkVUX0ZPUiB1c2UgYWJvdmUuCiAgICAgIC0gQ2hhbmdlcXVvdGUgJ1tdJyAtPiAnJyBhcm91bmQgc2VkIGV4cHJlc3Npb24gd2l0aCBbXXMgKC1Eb3N0eXBlKS4KCndoYXJkYWtlICAzIERlYyA5NiAxMDowNToxNwogICAgLSAobWQ1LmMpOiBQdXQgJ1UnbnNpZ25lZCBtYXJrZXIgYXQgZW5kIG9mIGNvbnN0YW50cyB0byByZW1vdmUgZ2NjIHdhcm5zLgoKd2hhcmRha2UgIDMgRGVjIDk2IDExOjA0OjMzCiAgICAtIChzbm1wX3ZhcnMuYyk6IEZyb20gRGF2ZSBTaGllbGQgPEQuVC5TaGllbGRAY3NjLmxpdi5hYy51az46CiAgICAgIC0gRml4IGFycCB0YWJsZSBmb3IgaHB1eC4KICAgIC0gKGNvbmZpZyopOiBDaGVjayBmb3IgYXJwaGQuYXRfbmV4dCBhbmQgdXNlIGluIGFib3ZlLgoKd2hhcmRha2UgIDMgRGVjIDk2IDExOjE0OjQzCiAgICAtIChFWEFNUExFLmNvbmYuZGVmLCBwYXNzdGVzdCk6IE1vdmUgcGFzc3Rlc3QgdG8gdWNkYXZpcyBzdWJ0cmVlLgoKd2hhcmRha2UgIDMgRGVjIDk2IDE0OjUxOjI0CiAgICAtIChlY2UtbWliLmRlZik6IFVzZWQgLT4gQXZhaWwgaW4gbWVtb3J5IHNlcXVlbmNlLgoKd2hhcmRha2UgIDQgRGVjIDk2IDA5OjE2OjA5CiAgICAtIChhc24xLmMsIHBhcnNlLmMsIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOgogICAgICAtIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPE5pZWxzLkJhZ2dlc2VuQHVuaS1jLmRrPjoKICAgICAgICAtIFBhcnNlciBmaXhlcyBmb3IgbXVsdGlwbGUgbm9kZXMuCiAgICAgICAgLSBtZW1tb3ZlL2NvcHkgZGVsZXRlcy4KCndoYXJkYWtlICA0IERlYyA5NiAwOTo0OTozOAogICAgLSAoUE9SVElORywgUkVBRE1FKTogIFVwZGF0ZSBmb3IgcmVsZWFzZSAzLjEuMi4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjEuMC4xIC0+IFYzLjEuMQoKd2hhcmRha2UgMTEgU2VwIDk2IDA4OjQ5OjE0CiAgICAtIChyZWFkX2NvbmZpZy5jKTogRml4ZWQgY29tbXVuaXR5IG51bWJlciBjaGVja3MuCgp3aGFyZGFrZSAyNCBTZXAgOTYgMTY6NTQ6NTkKICAgIC0gKGNvbmZpZyosIHNubXBfYXBpLmMsIHNubXBfY2xpZW50LmMpOiBBZGRlZCBzeXMvc2VsZWN0LmggZm9yIEFJWC4KCndoYXJkYWtlIDI0IFNlcCA5NiAxNjo1OToyNgogICAgLSAoc25tcF92YXJfcm91dGUuYywgc25tcF92YXJzLmMpOiB0eXBvcy4KCndoYXJkYWtlIDI0IFNlcCA5NiAxNzowMjo0NwogICAgLSAoc25tcF92YXJzLmMpOiBNb3ZlZCBhIHZhcmlhYmxlIGRlY2xhaXJhdGlvbi4KCndoYXJkYWtlIDI0IFNlcCA5NiAxNzoxNjo1OAogICAgLSAoc25tcF92YXJfcm91dGUuYyk6IHR5cG8gZml4aW5nIGEgdHlwbyAoc2lnaC4uKS4KCndoYXJkYWtlIDI1IFNlcCA5NiAxNDoxNDo1MwogICAgLSAoc25tcF92YXJfcm91dGUuYyk6IGZyZWVic2QyIHR5cGVjYXN0LgoKd2hhcmRha2UgIDEgT2N0IDk2IDE1OjMwOjQ2CiAgICAtIChwYXJzZS5jLCBwYXJzZS5oKTogRnJvbSBKb2UgTWFyem90OgogICAgICAtIGFsbG93cyB0aGUgQ01VIGxpYiB0byByZXRhaW4gdGhlIFRDIGluZm9ybWF0aW9uIGFzc29jaWF0ZWQgd2l0aCBhCiAgICAgICAgcGFydGljdWxhciBvYmplY3QuIEluIHBhcnRpY3VsYXIgdGhpcyBhbGxvd3MgRGlzcGxheVN0cmluZ3MgdG8gYmUKICAgICAgICBkaWZmZXJlbnRpYXRlZCBmcm9tIE9jdGV0U3RyaW5ncyB3aGVuIHRoZXkgYXJlIGxvb2tlZCB1cCBpbiB0aGUKICAgICAgICBNaWIgVHJlZS4KCndoYXJkYWtlICAxIE9jdCA5NiAxNTo1NDoyMgogICAgLSAoZXh0ZW5zaWJsZS5jKTogaW50IC0+IGRvdWJsZSB0byBzdXBwb3J0IGxhcmdlciBkaXNrIHNpemVzLgoKd2hhcmRha2UgIDEgT2N0IDk2IDE2OjI4OjUyCiAgICAtIChjb25maWcqLCByZWFkX2NvbmZpZy5jKToKICAgICAgLSBDaGVjayBmb3IgbW50ZW50LmggYW5kIGluY2x1ZGUgaXQuCiAgICAgIC0gQ2hlY2sgZm9yIC9ldGMvbW50dGFiIG9yIC9ldGMvbXRhYiBhbmQgdXNlIGFwcHJvcHJpYXRlbHkuCiAgICAtIChyZWFkX2NvbmZpZy5jKToKICAgICAgLSBwaWNrIGdldG1udGVudCBvdmVyIGdldGZzZmlsZSBpZiBib3RoIGFyZSBhdmFpbGFibGUuCiAgICAgIC0gZGVidWcgY2xlYW51cCAob2ZpbGUgLT4gc3RkZXJyLCBjaGVjayBmb3IgRE9ERUJVRyBpbnN0ZWFkIG9mIGNvbnN0IHZhcikuCgp3aGFyZGFrZSAgMyBPY3QgOTYgMTY6MDU6NDcKICAgIC0gKHNubXBfYWdlbnQuYyk6CiAgICAgIC0gTWFrZSBhZ2VudCBwcm9wZXJseSBjaGVjayBzbm1wc2V0IGV4aXQgY29kZXMgYW5kIHVzZSB0aGVtIChvbiBDT01NSVQpLgoKd2hhcmRha2UgIDMgT2N0IDk2IDE2OjA4OjU5CiAgICAtIChwYXNzLmMpOgogICAgICAtIENoZWNrIGZvciBwYXNzdGhydSBleGlzdGFuY2UgYmVmb3JlIHJldHVybmluZyBFUlJfTk9FUlJPUiwgZWxzZQogICAgICAgIHJldHVybiBFUlJfTk9TVUNITkFNRS4KICAgICAgLSBDb3JyZWN0bHkgY2hlY2sgZm9yIGFuZCBwYXNzICJub3Qtd3JpdGFibGUiIGFuZCAid3JvbmctdHlwZSIgcGFzcyByZXR1cm5zLgoKd2hhcmRha2UgIDMgT2N0IDk2IDE2OjEwOjM4CiAgICAtIChzbm1wX2ltcGwuaCk6ICBUdXJuIG9uIG9sZCBDTVUgZGVidWdnaW5nIHN0YXRtZW50cyB3aXRoIC0tZW5hYmxlLWRlYnVnZ2luZy4KCndoYXJkYWtlICA0IE9jdCA5NiAwOTo0Mzo0MAogICAgLSAoRVhBTVBMRS5jb25mLmRlZik6IEFkZGVkIHNubXBnZXQvc2V0IHRvIHBhc3MgZXhhbXBsZS4KCndoYXJkYWtlICA0IE9jdCA5NiAwOTo0NDoyNgogICAgLSAoTWFrZWZpbGUuaW4pOiBSZW1vdmUgc3BhY2VzIGZyb20gc2Vkc2NyaXB0IHdoZW4gdXNpbmcgYnJva2VuIGNwcCAoZ2NjKS4KCndoYXJkYWtlICA0IE9jdCA5NiAwOTo0NjowOQogICAgLSAoc25tcGQuY29uZi41LmRlZik6CiAgICAgIC0gQ2xlYW5lZCB1cCBtYW4gcGFnZSBmb3JtYXR0aW5nLgogICAgICAtIEFkZGVkIG5vdGUgYWJvdXQgU05NUHNldCBjb21tdW5pdHkgc3RyaW5ncy4KICAgICAgLSBtaW5vciBwcm9vZi1yZWFkaW5nIChtYWpvciBwcm9vZmluZyBuZWVkZWQgc3RpbGwpLgogICAgICAtIFJlLW9yZ2FuaXplZCBhIGJpdC4KCndoYXJkYWtlICA0IE9jdCA5NiAxMDowMToyMAogICAgLSAoc25tcGQuY29uZi41LmRlZik6IGxpYiAtPiBsaWIvc25tcCBwYXRoIGNvcnJlY3Rpb24gaW4gRklMRVMgc2VjdGlvbi4KICAgIC0gKHNubXBkLjEuZGVmKToKICAgICAgLSBBZGRlZCBhIEZJTEVTIHNlY3Rpb24uCiAgICAgIC0gR2VuZXJhbCBjbGVhbiB1cC4KCndoYXJkYWtlICA3IE9jdCA5NiAwNzo0MTo0MAogICAgLSAocGFyc2UuYyk6ICBOb3cgbG9hZHMgYWxsIG1pYnMgKGZpbGVzKSBpbiB0aGUgZGlyZWN0b3J5IFNOTVBMSUIvbWlicy4KCndoYXJkYWtlICA3IE9jdCA5NiAwNzo0OTo1OQogICAgLSAocGFyc2UuYyk6ICBQcm9wZXIgYXV0b2NvbmYgZGlyZW50IGhlYWRlcnMuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDg6MDE6NDMKICAgIC0gKE1ha2VmaWxlLmluKTogTWliIGluc3RhbGxhdGlvbiBjaGFuZ2VkIHRvIHJlZmxlY3QgbmV3IG1pYiBkaXJlY3RvcnkuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDg6NTM6MDYKICAgIC0gKGNvbmZpZyopOiBjaGVjayBjb3JyZWN0bHkgZm9yIGdldC9zZXRtbnRlbnQuCgp3aGFyZGFrZSAgNyBPY3QgOTYgMDk6MTE6NDMKICAgIC0gKHNubXBfYWdlbnQuYyk6IFJlbW92ZWQgc25tcCB2ZXJzaW9uIGNoZWNrIG9uIGVycm9yIHJldHVybiBmcm9tIHNldC4KCndoYXJkYWtlICA3IE9jdCA5NiAwOToxMjoyMwogICAgLSAocmVhZF9jb25maWcuYyk6IFVzZSBnZXRtbnRlbnQgY29ycmVjdGx5LiAgUGFpbi4KCndoYXJkYWtlICA3IE9jdCA5NiAxMDoyMjo0NwogICAgLSAoTWFrZWZpbGUuaW4pOgogICAgICAtIGFkZGVkIC0tcmVjaGVjayB0byBjb25maWcuc3RhdHVzIGNhbGwgdG8gcmVnZW5lcmF0ZSBzZWxmLgogICAgICAtIENoYW5nZWQgZWNlLW1pYi50eHQgLT4gdWNkLXNubXAudHh0IGFuZCBpbnN0YWxsIChhbmQgZ2VuZXJhdGUpIHByb3Blcmx5LgoKd2hhcmRha2UgIDcgT2N0IDk2IDEwOjIzOjMyCiAgICAtIChleHRlbnNpYmxlLmMpOiBDaG9tcCBuZXdsaW5lIG9uIHVuYW1lIG91dHB1dC4KCndoYXJkYWtlICA3IE9jdCA5NiAxMDoyNDoxMgogICAgLSAocmVhZF9jb25maWcuYyk6IEFkZGVkICdzeXNjb250YWN0JyBhbmQgJ3N5c2xvY2F0aW9uJyBwYXJzaW5nLgoKd2hhcmRha2UgIDcgT2N0IDk2IDExOjAwOjEwCiAgICAtIChjb25maWd1cmUuaW4pOgogICAgICAtIHRpbWVzdGFtcCBzdGFtcC1oIGF0IGVuZC4KICAgICAgLSBlbWFjcyBsb2NhbCB2YXJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDExOjAxOjI1CiAgICAtIChyZWFkX2NvbmZpZy5jKTogUmVtb3ZlIGV4dHJhIGFyZ3MgZnJvbSBzdHJjcHkgKHdhcyBzdHJuY3B5KS4KCndoYXJkYWtlICA3IE9jdCA5NiAxMTowMjo0NgogICAgLSAoY29uZmlndXJlLmluKToKICAgICAgLSB0aW1lc3RhbXAgc3RhbXAtaCBhdCBlbmQuCiAgICAgIC0gZW1hY3MgbG9jYWwgdmFycy4KCndoYXJkYWtlICA3IE9jdCA5NiAxMjoyMzowNQogICAgLSAoc25tcGQuMS5kZWYpOiBDaGFuZ2VkIHRvIHJlZmxlY3QgU05NUExJQi9taWJzLgoKd2hhcmRha2UgIDcgT2N0IDk2IDEyOjIzOjI3CiAgICAtIChzbm1wZC5jb25mLjUuZGVmKTogQWRkZWQgc3lzY29udGFjdCBhbmQgc3lzbG9jYXRpb24uCgp3aGFyZGFrZSAgOSBPY3QgOTYgMDg6MDQ6MTQKICAgIC0gKHBhcnNlLmMpOgogICAgICAtIFBhcnNlIE9CSkVDVC1JREVOVFkgYXMgT0JKRUNULUdST1VQIChzYXZlcyBvbmx5IGRlc2NyaXB0aW9uKS4KICAgICAgLSBDaGFuZ2UgcHJpbnRfZXJyb3IoKSwgcmVhZF9taWIoKSB0byByZWZsZWN0IGZpbGUgYW5kIGNvcnJlY3QgbGluZSBudW1iZXIuCgp3aGFyZGFrZSAgOSBPY3QgOTYgMDg6MzA6MjkKICAgIC0gKHBhcnNlLmMpOgogICAgICAtIHByaW50IGEgbmV3IGxpbmUgaW4gcHJpbnRfZXJyb3IoKSBpZiBkZWJ1Z2dpbmcgaXMgdHVybmVkIG9uLgogICAgICAtIHRvc3NPYmplY3RJZGVudGlmaWVyKCk6IGNhdGNoIG11bHRpcGxlIGJyYWNrZXQgY2xhdXNlcyAoSUUgeyB7MCAwfSB9ICkuCgp3aGFyZGFrZSAgOSBPY3QgOTYgMTQ6MzY6MDMKICAgIC0gKHJlYWRfY29uZmlnLmMpOgogICAgICAtIHN0cm5jbXAgLT4gc3RybmNhc2VjbXAuCiAgICAgIC0gTlVMTCAtPiAwLgoKd2hhcmRha2UgIDkgT2N0IDk2IDE0OjM4OjA1CiAgICAtIChleHRlbnNpYmxlLmMpOgogICAgICAtIHNvcnQgcGFzcyB0aHJ1cyBieSBtaWJvaWQgdG8gcHJldmVudCBwYXNzaW5nIG9mZiB0byB3cm9uZyBvbmUuCiAgICAgIC0gdHlwb3M6ICBleHN0ZW4gLT4gZXh0ZW4uCiAgICAgIC0gaW5pdF9leHRlbnNpYmxlKCkgY2FsbHMgdXBkYXRlX2NvbmZpZygpIHRvIHJlZHVjZSBkdXBsaWNhdGlvbnMuCgp3aGFyZGFrZSAgOSBPY3QgOTYgMTU6MTg6NDIKICAgIC0gKHNubXBfYXBpLmMpOiBGcm9tOiBnYWhAYmVsbGNvcmUuY29tIChHYXJ5IEEuIEhheXdhcmQpCiAgICAgIC0gRnJlZSBwZHUgY29tbXVuaXR5IHRvIHF1ZWxjaCBwdXJpZnkuCgp3aGFyZGFrZSAgOSBPY3QgOTYgMTU6MjI6MjMKICAgIC0gKFJFQURNRSk6IEFkZGVkIHRoYW5rcyBuYW1lLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogVjMuMSAtPiBWMy4xLjAuMQoKd2hhcmRha2UgMjYgQXVnIDk2IDEwOjM2OjA4CiAgICAtIChORVdTKSBUeXBvLCBleHRyYSBxdW90YXRpb24gbWFyay4KCndoYXJkYWtlIDI2IEF1ZyA5NiAxMDozNzowNQogICAgLSAoVE9ETykgRXh0cmEgbWliIHBhcnNpbmcgaWRlYXMgYWRkZWQuCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTA6Mzc6MzYKICAgIC0gKGVjZS1taWIuZGVmKTogIGNvbW1hcyBvdXQgb2YgcGxhY2UuCgp3aGFyZGFrZSAyNiBBdWcgOTYgMTY6NTU6NTEKICAgIC0gKHNubXBfYXBpLmMpOiBGaXhlZCBhIGdjYy9GcmVlQlNEIG9wdGltaXphdGlvbiBidWcgKHN0dXBpZCBjb21waWxlcikKCndoYXJkYWtlIDI2IEF1ZyA5NiAxNjo1ODowMwogICAgLSAoZXZlbnQuYywga2VybmVsLmMsIHJvdXRlX3dyaXRlLmMpOiBGcmVlQlNEIG1vZGlmaWNhdGlvbnMKCndoYXJkYWtlIDI3IEF1ZyA5NiAwODo0Njo0MwogICAgLSAoZXh0ZW5zaWJsZS5jKTogIEZyZWVCU0QgY2hhbmdlcyBhbmQgdXNlIGdldGxvYWRhdmcgaWYgYXZhaWxhYmxlLgoKd2hhcmRha2UgMjcgQXVnIDk2IDA4OjQ3OjU3CiAgICAtIChzbm1wdHJhcGQuYyk6IEZpeCBieXRlIG9yZGVyIHByb2JsZW0gKGNvbnZlcnQgdG8gbmV0d29yayBiZWZvcmUgc2VuZGluZykuCgp3aGFyZGFrZSAyNyBBdWcgOTYgMDk6MDE6MTAKICAgIC0gKHNubXB0cmFwLmMpOgogICAgICAtIEZyZWVCU0Qgc3BlY2lmaWMgY2hhbmdlcy4KICAgICAgLSBtb3JlIGF1dG9jb25mIGNvbXBsZXRlOiBwYXRocyB0byBsaWJyYXJpZXMgYW5kIGtlcm5lbCBsb2NhdGlvbi4KCndoYXJkYWtlIDI3IEF1ZyA5NiAwOTozODozMwogICAgLSAoc25tcF92YXJfcm91dGUuYyk6IEZyZWVCU0Qgc3BlY2lmaWMgY2hhbmdlcy4KCndoYXJkYWtlIDI3IEF1ZyA5NiAxMDowMDoxNQogICAgLSAoc25tcF92YXJzLmMpOiBNb3JlIHdhcnBlZCBGcmVlQlNEIGNoYW5nZXMKCndoYXJkYWtlIDI3IEF1ZyA5NiAxMDowNDo1NgogICAgLSAoYXV0b2NvbmYqKToKICAgICAgLSBGcmVlQlNEIGFkZGl0aW9ucy4KICAgICAgLSBOZXcga2VybmVsIGxvY2F0aW9uOiAgL2tlcm5lbCAoaWNrKS4KICAgICAgLSBMb2cgZmlsZSBkZWZhdWx0IGludGVsbGlnZW50bHkgY2hlY2tzIGZvciAvdmFyL2xvZyBhbmQgL3Vzci9hZG0uCiAgICAgIC0gQ2hlY2tzIGZvciBnZXRsb2FkYXZnKCkuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTQ6NDI6MjAKICAgIC0gKGV4dGVuc2libGUvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIGNsZWFuZWQgdXAgZ2NjIHdhcm5pbmdzLgogICAgICAtIGZpeGVkIGEgc3BlbGxpbmcgZXJyb3IuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTQ6NTk6NTUKICAgIC0gKGFwcHMvKi5jKTogUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIHNldCBleGl0IGNvZGVzIG9mIDAgZm9yIGFsbCBhcHBzLgogICAgICAtIFJlbW92ZWQgU1ZSNCAjaWZkZWZzLgogICAgICAtIEdyZWF0bHkgaW1wcm92ZWQgc25tcHRyYXAuCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6MDM6MTIKICAgIC0gKG1hbi9zbm1wdHJhcC4xKTogIGFkZGVkIGJ5IE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+Cgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6MDY6MjEKICAgIC0gKGFzbjEuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSB1Y2hhcihzKSBjYW4ndCBiZSBsZXNzIHRoYW4gMC4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowNjo1MAogICAgLSAobWliLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gcHJvdG90eXBlcyBmb3IgZ2NjIHdhcm5pbmdzCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6MDc6NTYKICAgIC0gKHBhcnNlLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gc2F2ZSBtaWIgZGVzY3JpcHRpb25zIGZvciBzbm1wdHJhbnNsYXRlIGFuZCBvdGhlciBhcHBzIHRoYXQgbmVlZCBpdC4KCndoYXJkYWtlIDI5IEF1ZyA5NiAxNTowODoyOAogICAgLSAoc25tcF9hcGkuYyk6IFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz4KICAgICAgLSBnY2Mgd2FybmluZ3MgTlVMTCAtPiAwCgp3aGFyZGFrZSAyOSBBdWcgOTYgMTU6NTg6MTAKICAgIC0gKHNubXBzdGF0dXMuYyk6IFBhdGNoIGZyb20gVHJldm9yIEJvdXJnZXQgPHRib3VyZ2V0QHF1YWxjb21tLmNvbT4KICAgICAgLSBtYWxsb2Mgc3lzZGVzYyBpbnN0ZWFkIG9mIGFzc3VtaW5nIDwgMTI4IGJ5dGVzLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE2OjAzOjQ0CiAgICAtIChzbm1wd2Fsay5jKTogUmVtb3ZlZCBTVlI0IGlmZGVmcwoKd2hhcmRha2UgMjkgQXVnIDk2IDE2OjIyOjI1CiAgICAtIChhdXRvY29uZiosIHNubXBfdmFycy5jKTogUmVtb3ZlZCBzb21lIHNvbGFyaXMgaWZkZWZzLgoKd2hhcmRha2UgMjkgQXVnIDk2IDE2OjI5OjEwCiAgICAtIENoYW5nZWQgbXkgZW1haWwgYWRkcmVzcyB0byBteSBuZXcgb25lLgoKd2hhcmRha2UgMzAgQXVnIDk2IDA5OjIzOjA1CiAgICAtIChjb25maWd1cmUsIGNvbmZpZ3VyZS5pbik6CiAgICAgIC0gcmVtb3ZlZCAtWHMgZmxhZyBmb3IgZ2NjIG9uIHNvbGFyaXMuCiAgICAgIC0gbG9nZmlsZSBjaGVja3MgZm9yIGV4aXN0YW5jZSBvZiAvdmFyL2xvZyBhbmQgL3Vzci9hZG0uCgp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MjM6NDIKICAgIC0gKHNubXB0cmFwLmMpOiBwYXRjaCBzY3Jld2VkIHVwLgoKd2hhcmRha2UgMzAgQXVnIDk2IDA5OjI0OjMxCiAgICAtIChhcHBzL01ha2VmaWxlLmluKTogIEFkZGVkIGtlcm5lbF9zdW5vczUubyB0byBzbm1wdHJhcCBmb3IgZ2V0S3N0YXQuCgkKd2hhcmRha2UgMzAgQXVnIDk2IDA5OjM0OjA5CiAgICAtIChORVdTLCBDaGFuZ2VMb2cpOiBVcGRhdGVkIGZvciAzLjEuMC4xCgp3aGFyZGFrZSAzMCBBdWcgOTYgMDk6MzQ6NDgKICAgIHZlcnNpb24gdGFnICggMy4xLjAuMSApCgp3aGFyZGFrZSAzMCBBdWcgOTYgMTA6MTU6MTgKICAgIC0gKFJFQURNRSk6IFVwZGF0ZWQgZm9yIDMuMS4wLjEKCndoYXJkYWtlIDMwIEF1ZyA5NiAxMTo0OTozOAogICAgLSAoc25tcF92YXJzLmMpOiByZW1vdmVkIG1hbGxvYyBwcm90b3R5cGUgZHVlIHRvIGNvbmZsaWN0aW9ucy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6IFYzLjAuNy4yIC0+IFYzLjEKCmhhcmRha2VyICAzIE1heSA5NiAxNDozNDowMwogICAgLSAoYWNjb25maWcuaCwgY29uZmlndXJlLmluLCBzbm1wbGliL01ha2VmaWxlLmluKQogICAgICAtIEFkZGVkIGEgY2hlY2sgZm9yIHZhcmlvdXMgcmFuZG9tIGZ1bmN0aW9ucy4KICAgICAgLSBJbmNsdWRlZCBhbm90aGVyIGlmZGVmIHRvIGVuc3VyZSBubyAjZGVmaW5lIGxvb3BzIG9jY3VyIHdpdGggc3RyL2luZGV4IGZucy4KCmhhcmRha2VyICAzIE1heSA5NiAxNDozNToyNwogICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYyxzbm1wX3ZhcnMuYykKICAgICAgLSBDaGFuZ2VkIHRoZSBpbnRlcmZhY2UgY291bnRlciB0byBhIHNob3J0IGZvciBhbGwgYXJjaGl0ZWN0dXJlcyAoYnVzIGVycikKICAgICAgLSBVbmRlZmVkIGEgZnVuY3Rpb24gdGhhdCBpcyBuZXZlciB1c2VkLgoKaGFyZGFrZXIgIDMgTWF5IDk2IDE0OjM3OjE3CiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYykgU29sYXJpcyBmaXggZm9yIGludGVyZmFjZXMuCiAgICAgIC0gRnJvbSBEYW4gQS4gRGlja2V5IDxkZGlja2V5QHRyYW5zaXRpb24uY29tPgoKaGFyZGFrZXIgIDMgTWF5IDk2IDE0OjQwOjE4CiAgICAtIChhcHBzL3NubXB0cmFwLmMpIEFkZGVkICNpbmNsdWRlPHN5cy9zb2NraW8uaD4KCmhhcmRha2VyICA5IE1heSA5NiAxMzoyNDowMAogICAgLSAoYXBwcy9zbm1wc2V0LmMpIEFkZGVkICcuJyBhcyBhIGRlbGltaXRlciBmb3IgZGVjaW1hbCBlbmNvZGVkIHN0cmluZ3MuCgpoYXJkYWtlciAgOSBNYXkgOTYgMTM6Mjc6NDAKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZ3VyZS5pbiwgc25tcGxpYi9NYWtlZmlsZS5pbikKICAgICAgLSBBZGRlZCBhIGNoZWNrIGZvciB2YXJpb3VzIHJhbmRvbSBmdW5jdGlvbnMuCiAgICAgIC0gSW5jbHVkZWQgYW5vdGhlciBpZmRlZiB0byBlbnN1cmUgbm8gI2RlZmluZSBsb29wcyBvY2N1ciB3aXRoIHN0ci9pbmRleCBmbnMuCgpoYXJkYWtlciAgOSBNYXkgOTYgMTM6MzM6MTIKICAgIC0gKGFjY29uZmlnLmgsYWdlbnQve01ha2VmaWxlLHNubXBfdmFycy5jfSxhZ2VudC9leHRlbnNpYmxlL21hbnkpOgogICAgICAtIEFkZGVkIHN1cHBvcnQgZm9yIHBhc3N0aHJ1IG1pYnMuICBUb3RhbCBjb250cm9sIGlzIGhhbmRlZCB0byBleGVjJ3MuCgpoYXJkYWtlciAgOSBNYXkgOTYgMTY6MTQ6MjgKICAgIC0gKGNvbmZpZ3VyZS5pbik6IFNvbGFyaXMgc3BlY2lmaWMgY3BwIGZsYWdzIGFkZGVkIGZvciBTVU5zcHJvJ3MgY3BwLgogICAgLSAoYWdlbnQve3NubXBfdmFycyxzbm1wZH0uYyxhZ2VudC9leHRlbnNpYmxlL3tleHRlbnNpYmxlLG1pc2MscGFzc30uYywKICAgICAgIHNubXBsaWIve21pYixzbm1wX2NsaWVudH0uYyk6CiAgICAgIC0gQ2xlYW5lZCB1cCBwcm90b3R5cGVzIHRvIG1hdGNoIG1vcmUgY2FyZWZ1bGx5ICh3aXRoIFNvbGFyaXMncyBzcHJvIGNjKS4KCmhhcmRha2VyIDEwIE1heSA5NiAxMDoyNzoxNAogICAgLSAoa2VybmVsX3N1bm9zNS5jKTogQSBwYXRjaCB0byBmaXggYSB2aXJ0dWFsIGludGVyZmFjZSBwcm9ibGVtLgogICAgICAtIHBhdGNoIHN1cHBsaWVkIGJ5ICJEYW4gQS4gRGlja2V5IiA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KCmhhcmRha2VyIDEwIE1heSA5NiAxODoxNjo1NwogICAgLSAobWFueSk6IE1lcmVnZWQgYmFnZ2VzZW4tMy0wLTctMiBicmFuY2ggaW50byBtYWluIHRydW5rLgoKaGFyZGFrZXIgMTMgTWF5IDk2IDE1OjU2OjQ1CiAgICAtIChhZ2VudC9leHRlbnNpYmxlL21pc2MuYyk6IGV4ZWMgTmFtZXMgd2VyZSBnZXR0aW5nIGluY2x1ZGVkIGluIHRoZSBjb21tYW5kLgoKaGFyZGFrZXIgMTMgTWF5IDk2IDE1OjU3OjQzCiAgICAtIChhZ2VudC9leHRlbnNpYmxlL21pc2MuYyk6IGNsb3NlIGZpbGUgZGVzY3JpcHRvcnMgYmVmb3JlIHJlLXN0YXJ0aW5nIGFnZW50LgoKaGFyZGFrZXIgMTMgTWF5IDk2IDE1OjU4OjQ0CiAgICAtIChhZ2VudC9zbm1wX2FnZW50LmMsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyk6CiAgICAgIC0gQnVnIGZpeDogR0xPQkFMU0VDVVJJVFkgYnVnOiAgc2F2ZSByaWdodG1vc3QgdHdvIGJpdHMgaW4gYWNsLgoKaGFyZGFrZXIgMTMgTWF5IDk2IDE1OjU5OjMwCiAgICAtIChzbm1wbGliL3NubXBfaW1wbC5oKTogQ2hhbmdlIFJXUklURSB0byBpbmNsdWRlIFdyaXRlIGZvciBWMiBiaXRzLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA4OjU5OjUxCiAgICAtIChhZ2VudC9leHRlbnNpYmxlL3Bhc3MuYykgUGF0Y2ggZnJvbSBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPgogICAgICAtIEltcGxlbWVudGVkIG1pc3NpbmcgcGFydHMgb2YgaW50ZXJmYWNlIGFkZHJlc3MgYW5kIG5ldHdvcmsgb3V0cHV0ICgtaSkKCmhhcmRha2VyIDE1IE1heSA5NiAwOTowMjoyNAogICAgLSAoYWdlbnQva2VybmVsX3N1bm9zNS5jKSBQYXRjaCBmcm9tICJEYW4gQS4gRGlja2V5IiA8ZGRpY2tleUB0cmFuc2l0aW9uLmNvbT4KICAgICAgLSBCZXR0ZXIgY2FjaGluZyBhbGdvcml0aG0gZm9yIGltcHJvdmVkIHNwZWVkLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjA1OjQ5CiAgICAtICgqLy5jdnNpZ25vcmUpIGlnbm9yZSBmaWxlIHVwZGF0ZS4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTowNjo0OQogICAgLSAoTWFrZWZpbGUuaW4sc2Vkc2NyaXB0LmluKSBBZGRlZCBQUkVGSVggdG8gdGhlIHNlZHNjcmlwdC4KCmhhcmRha2VyIDE1IE1heSA5NiAwOTowNzozNQogICAgLSAoRVhBTVBMRS5jb25mLmRlZiwgbWFuL3NubXBkLmNvbmYuNS5kZWYpOiBkb2N1bWVudGVkIHBhc3MgdGhydSBtaWJzLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjI5OjIxCiAgICAtIChDT1BZSU5HLCBSRUFETUUsIFRPRE8pIFJlbGVhc2UgZG9jcyB1cGRhdGVkLgoKaGFyZGFrZXIgMTUgTWF5IDk2IDA5OjUwOjE1CiAgICAtIChhZ2VudC9rZXJuZWxfc3Vub3M1LmMpIHBhdGNoIG1pc3Rha2UuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6NTE6MTIKICAgIC0gKGFnZW50L2V4dGVuc2libGUvcmVhZF9jb25maWcuYyk6IGFuc2kgc2VtYW50aWMgZml4IGZvciAnPCcuCgpoYXJkYWtlciAxNSBNYXkgOTYgMDk6NTE6MzcKICAgIHZlcnNpb24gdGFnICggMy4xLkExICkKCmhhcmRha2VyIDE1IE1heSA5NiAxMjowMDo1NwogICAgLSAoSU5TVEFMTCkgbWFrZSBpbnN0YWxsIGFzIHJvb3QuCgpoYXJkYWtlciAxNSBNYXkgOTYgMTI6MDM6NTQKICAgIC0gKFJFQURNRSkgQWRkZWQgYSBub3RlIChwb2ludGVyIHRvIGRvY3MpIG9uIHRoZSBhZ2VudCdzIGV4dGVuc2libGl0eS4KCmhhcmRha2VyIDE1IE1heSA5NiAxMjoyMzo0MAogICAgLSAoYXBwcy9zbm1wbmV0c3RhdC9pZi5jKSByZW1vdmVkICYgaW4gZnJvbnQgb2YgYXJyYXkgcGFzc2VkIGFzIGFyZy4KCmhhcmRha2VyIDE1IE1heSA5NiAxMjozNToxNgogICAgLSAoc2Vkc2NyaXB0LmluKSBGaXhlZCBhIGhvcnJpYmxlIHR5cG8uICBQIC0+IFBSRUZJWAoKaGFyZGFrZXIgMjIgTWF5IDk2IDA4OjUwOjI4CiAgICAtIChtYW4vTWFrZWZpbGUuaW4pIFVwZGF0ZWQgdGhlIHdheSBzZWRzY3JpcHQgaXMgdXNlZC4KCmhhcmRha2VyIDIyIE1heSA5NiAwODo1MTowMQogICAgLSAoY29uZmlnLmd1ZXNzLCBjb25maWd1cmUsIGluc3RhbGwtc2gsIG1raW5zdGFsbGRpcnMpOiBBdXRvY29uZi0yLjEwCgpoYXJkYWtlciAyMiBNYXkgOTYgMTI6NTA6MjQKICAgIC0gKGFnZW50L2tlcm5lbF9zdW5vczUuYywgc25tcF92YXJzLmMsCiAgICAgICBhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYyxyZWFkY29uZmlnLmMsc25tcF92YXJzLmMpOgogICAgICAtIFBhdGNoIGZyb20gTmllbHMgQmFnZ2VzZW4gPHJlY25iYUBtZWRpYXRvci51bmktYy5kaz46CiAgICAgICAgLSBmaW5hbGx5IG5haWxlZCB0aGF0IG1pc3NpbmcgaW5pdGlhbGl6YXRpb24gdGhhdCBnYXZlIHByb2JsZW1zCiAgICAgICAgICB3aXRoIHRoZSBBVCBzdWJ0cmVlCiAgICAgICAgLSBJIGFsc28gaW1wbGVtZW50ZWQgdGhlIGRpc2sgcGFydCBvZiB0aGUgZXh0ZW5zaWJpbGl0eSBpbiB0aGUKICAgICAgICAgIGF0dGFjaGVkIHBhdGNoLgoKaGFyZGFrZXIgMjIgTWF5IDk2IDEyOjU1OjMzCiAgICAtIChhcHBzL3NubXBuZXRzdGF0L2lmLmMpOiBQYXRjaCBmcm9tIE5pZWxzIEJhZ2dlc2VuIDxyZWNuYmFAbWVkaWF0b3IudW5pLWMuZGs+CiAgICAgIC0gcmV3b3JrZWQgdGhlIHdheSBzbm1wbmV0c3RhdCAtaSB3b3Jrcy4KCmhhcmRha2VyIDIzIE1heSA5NiAxNDo0Mzo0OQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiBEb24ndCBkZWZpbmUgcmFuZG9tIGlmIGl0IGFscmVhZHkgZXhpc3RzLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE0OjQ0OjE1CiAgICAtIChleHRlbnNpYmxlLmMpOiAgQWRkZWQgYSBkaXNrIHdhcm5pbmcgdG8gc3RkZXJyLgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE0OjQ0OjM5CiAgICAtIChhY2wuYywgcGFydHkuYywgdmlldy5jKTogcmVtb3ZlZCBOVUxMIGRlZmluZXMuCgpoYXJkYWtlciAyMyBNYXkgOTYgMTQ6NTY6NDIKICAgIC0gKGlmLmMpOiB0eXBlIGNhc3RpbmcgYnVncy4KCmhhcmRha2VyIDIzIE1heSA5NiAxNjoyODowOAogICAgLSAoYWNsLmMsIHBhcnR5LmMpOiBpbmNsdWRlIHN0ZGlvLmgKCmhhcmRha2VyIDIzIE1heSA5NiAxNzowOToyNAogICAgLSAoY29uZmlnKiwgZXh0ZW5zaWJsZS5jKTogZml4ZWQgZGlzayBjaGVja3Mgb24gU29sYXJpcyBhbmQgYWxwaGEncwogICAgICAtIHVzZSBzdGF0dmZzIG92ZXIgZnN0YWIgaWYgYm90aCBwcmVzZW50LgoKaGFyZGFrZXIgMjMgTWF5IDk2IDE3OjQ4OjA5CiAgICAtIChjb25maWcqKTogY2hlY2sgZm9yIGdldG1udGVudC4KCmhhcmRha2VyIDI0IE1heSA5NiAxMjoyMzo1MgogICAgLSAoc25tcGxpYi9wYXJzZS5jKTogIHBhcnNpbmcgZml4ZXMgZnJvbSBNaWtlIFBlcmlrIDxtaWtlcEBjcnQuY29tPgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEyOjM5OjUxCiAgICAtIChSRUFETUUpOiBBZGRlZCBhIHRoYW5rcyBzZWN0aW9uLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjA4OjI4CiAgICAtIChFWEFNUExFLmNvbmYuZGVmKTogbWlub3IgZXhhbXBsZSBmaWxlIGNoYW5nZXMuCgpoYXJkYWtlciAyNCBNYXkgOTYgMTM6MDk6MDIKICAgIC0gKGNvbmZpZyopOiAgQ2hlY2sgZm9yIHN5cy9tbnR0YWIuaAoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjA5OjUyCiAgICAtIChyZWFkX2NvbmZpZy5jKTogaWZkZWYgY2xlYW51cAoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjEwOjM0CiAgICAtIChwYXJzZS5jKTogZGVjbGFyYXRpb25zIGNsZWFudXAKCmhhcmRha2VyIDI0IE1heSA5NiAxMzoxMzoyMQogICAgLSAoc25tcGQuY29uZi41LmRlZik6ICBub3RlIG9uIGNyZWF0aW5nIGNvbW1lbnRzIGFkZGVkLgoKaGFyZGFrZXIgMjQgTWF5IDk2IDEzOjM4OjQ2CiAgICAtIChyZWFkX2NvbmZpZy5jKTogI2lmZGVmIHR5cG8KCmhhcmRha2VyIDI0IE1heSA5NiAxMzo1NDoyNQogICAgLSAoYWNjb25maWcuaCwgY29uZmlnLmguaW4pOiAgZGVmaW5lIG1lbW1vdmUgaWYgbm90IGRlZmluZWQgYW5kIG1lbWNweSBpcy4KCmhhcmRha2VyIDI0IE1heSA5NiAxMzo1NToxNAogICAgLSAoaWYuYywgcm91dGUuYyk6IGNhc3QgcmV0dXJucyBmcm9tIGluZGV4IHRvIGNoYXIgKi4KCmhhcmRha2VyIDI0IE1heSA5NiAxNDowMjo1MwogICAgLSAoY29uZmlnKik6IGNoZWNrIGZvciBtZW1tb3ZlIGJlZm9yZSB5b3UgZGVmaW5lIGl0LgoKaGFyZGFrZXIgMjQgTWF5IDk2IDE0OjUzOjIwCiAgICAtIChyZWFkX2NvbmZpZy5jKTogcHJpbnRmIC0+IERPREVCVUcgY2hlY2sKCmhhcmRha2VyIDI0IE1heSA5NiAxNToyODo0MQogICAgLSAoYWNjY29uZmlnLmgsIGNvbmZpZy5oLmluKTogI2lmZGVmIHR5cG9zCgpoYXJkYWtlciAyNCBNYXkgOTYgMTU6Mjk6MTMKICAgIC0gKHNubXBfdmFycy5jKTogcmVtb3ZlZCBzb21lIGlmZGVmIHJlcXVpcmVtZW50cy4KCmhhcmRha2VyIDI0IE1heSA5NiAxNToyOToyOQogICAgLSAoc25tcF92YXJzLmgpOiByZW9yZ2FuaXplZAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogIFYzLjAuNy4xIC0+IFYzLjAuNy4yCgpOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPiAxIE1heSA5NiAxMjozNzozNQogICAgLSAobWFueSkgRml4ZXMgZm9yIFNvbGFyaXMgKDIuNSkgc3VibWl0dGVkIGJ5CiAgICAgICAgICAgICBOaWVscyBCYWdnZXNlbiA8cmVjbmJhQG1lZGlhdG9yLnVuaS1jLmRrPjoKICAgICAgICAiU29tZSBhcmUgbXkgb3duLCBvdGhlcnMgYXJlIGZyb20gWXVyaSBSYWJvdmVyIHdobyBvcmlnaW5hbGx5CiAgICAgICAgIGNyZWF0ZWQgdGhlIHBhdGNoLiBTb21lIG9mIHRoaXMgaXMgdGhlcmUgdG8gZWxpbWluYXRlIHRoZQogICAgICAgICBkZXBlbmRlbmN5IG9uIHRoZSB1Y2JsaWIgY29tcGF0aWJpbGl0eSBzdHVmZiwgc29tZSBpcyAiY29zbWV0aWMiLAogICAgICAgICBidXQgaXQgYWxzbyBmaXhlcyBhIHNlcmlvdXMgcHJvYmxlbSBpbiB0aGUgYWdlbnQsIHdoZXJlIHdhbGtpbmcKICAgICAgICAgdGhlIG1pYiB0cmVlIGNhbiBsb29wIGVuZGxlc3NseSBpZiB5b3UgaGF2ZSBtdWx0aXBsZSBuZXR3b3JrCiAgICAgICAgIGludGVyZmFjZXMuIgoKaGFyZGFrZXIgIDEgTWF5IDk2IDEzOjU0OjE4CiAgICAtIChjb25maWd1cmUqLCBhZ2VudC9leHRlbnNpYmxlL3tyZWFkX2NvbmZpZyxleHRlbmlzYmxlfS5jKToKICAgICAgLSBjb25maWd1cmlmaWVkIChuZXcgd29yZCkgc29tZSBvZiBOaWVscycgY2hhbmdlcyBhbmQgdGhlIGJjb3B5L21lbW1vdmUgc3R1ZmYuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTM6NTU6MTYKICAgIC0gKG1hbi9zbm1wZC4xLmRlZixzbm1wZC5jb25mLjUuZGVmKSAuQyAtPiAuQiwgdG8gaW5jcmVhc2UgbnJvZmYgcG9ydGFiaWxpdHkuCgpoYXJkYWtlciAgMSBNYXkgOTYgMTQ6MzU6MjMKICAgIC0gKGFnZW50L3JvdXRlX3dyaXRlLmMsYWdlbnQvZXh0ZW5zaWJsZS9leHRlbnNpYmxlLmMpOgogICAgICAtIG5ldGJzZDEuMUIgc3BlY2lmaWMgZml4ZXM6IGNsYXNoIHdpdGggc3lzX2Vycmxpc3QgYW5kIHJ0X2RzdCBkZWZpbmVzLgoKaGFyZGFrZXIgIDEgTWF5IDk2IDE0OjM3OjA5CiAgICAtIChsb2NhbC9zbm1wY2hlY2spIFRrLWIxMCBmaXhlcy4KCmhhcmRha2VyICAxIE1heSA5NiAxNDozNzoyNQogICAgLSAoc2Vkc2NyaXB0LmluKSBmb3Jnb3QgTkVUQlNEMUlEIGRlZi4KCmhhcmRha2VyICAxIE1heSA5NiAxNDo1NjoyMQogICAgLSAoYWNjb25maWcuaCxhZ2VudC9leHRlbnNpYmxlL21pYmRlZnMuaCk6IHJlbW92ZWQgY29tZW50cy9zcGFjZXMgZnJvbSBkZWZpbmVzLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogIFYzLjAuNyAtPiBWMy4wLjcuMQoKaGFyZGFrZXIgMjUgQXByIDk2IDEyOjE4OjQzCiAgICAtIChDaGFuZ2VMb2csIGFjY29uZmlnLmgsIGNvbmZpZy5oLmluKSBEZWZpbmVkIERFQlVHUCBpZiBET0RFQlVHIGlzIG5vdCBkZWZpbmVkLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlczogIFYzLjAuNiAtPiBWMy4wLjcKCmhhcmRha2VyICA1IEFwciA5NiAxNjoxMTozOQogICAgLSAobG9jYWwvc25tcGNoZWNrLmRlZikgVGstYjggPT4gVGstYjEwIGNoYW5nZXMKCmhhcmRha2VyICA1IEFwciA5NiAxNjoxMjoyMgogICAgLSAoY29uZmlndXJlKSBhdXRvY29uZi0yLjcgLT4gYXV0b2NvbmYtMi45CgpoYXJkYWtlciAgNSBBcHIgOTYgMTY6MTU6MTEKICAgIC0gKHNubXBsaWIvYXNuMS5jKSByZW1vdmVkIGEgcmVxdWlyZWQgJ3VuaXgnIGRlZmluZSBzdXJyb3VuZGluZyBhIGhlYWRlciBmaWxlLgoKaGFyZGFrZXIgIDUgQXByIDk2IDE2OjE5OjM1CiAgICAtIChtYW4vTWFrZWZpbGUuaW4pIEFkZGVkIGEgJ2NsZWFuJyBkZWZpbml0aW9uIHRvIHRoZSBNYWtlZmlsZS4KCmhhcmRha2VyIDEyIEFwciA5NiAxNDo1MTowOAogICAgLSBDaGFuZ2VkIG5saXN0IHdhcm5pbmdzIHRvIG9ubHkgcHJpbnQgaWYgRE9ERUJVRyBpcyBkZWZpbmVkIGluIGNvbmZpZy5oCgpoYXJkYWtlciAxMiBBcHIgOTYgMTQ6NTE6NDIKICAgIC0gKGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlLmMpCiAgICAgIC0gQ2hhbmdlZCBubGlzdCB3YXJuaW5ncyB0byBvbmx5IHByaW50IGlmIERPREVCVUcgaXMgZGVmaW5lZCBpbiBjb25maWcuaAoKaGFyZGFrZXIgMTIgQXByIDk2IDE2OjQ5OjIzCiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jKQogICAgICAtIENoYW5nZWQgbmxpc3Qgd2FybmluZ3MgdG8gb25seSBwcmludCBpZiBET0RFQlVHIGlzIGRlZmluZWQgaW4gY29uZmlnLmgKICAgIC0gKG1hbnkpIEFkZGVkIHN1cHBvcnQgZm9yIGhwcGExLjEtaHAtaHB1eDEwLjAxCiAgICAgIC0gdG90YWxseSEgcmVkaWQgdGhlIHJvdXRpbmcgdGFibGVzIGZvciBCU0QgNC40IGRlcml2ZWQgc3lzdGVtcwogICAgICAgIChhbHBoYSwgaHB1eDEwLjAxKywgbmV0YnNkKSBzaW5jZSBocHV4MTAgZG9lc24ndCBoYXZlIDQuMyBjb21wYXQgc3RydWN0cy4KICAgIC0gKGVjZS1taWIuZGVmKSBDYXBpdGFsaXphdGlvbiBwcm9ibGVtLgogICAgLSAoY29uZmlndXJlLmluKQogICAgICAtIENsZWFuZWQgdXAga2VybmVsIGNoZWNraW5nCiAgICAgIC0gU3RhcnRlZCB1c2luZyBhIGF1dG9jb25mIDIuOCBmZWF0dXJlIHRvIGNoZWNrIGZvciBjYWNoZSB2YWx1ZXMuCgpoYXJkYWtlciAxNSBBcHIgOTYgMTI6NTM6NDAKICAgIC0gKGNvbmZpZ3VyZSkgTmV3IGNvbW1hbmQgbGluZSBvcHRpb246ICAtLWVuYWJsZS1kZWJ1Z2dpbmcuICBUdXJucyBvbiBkZWJ1Z2dpbmcuCiAgICAtIChjb25maWd1cmUpIEZpeGVzIGZvciB0eXBlIGNoZWNraW5nIG9mIDQuNCBydGVudHJ5IHN0cnVjdHVyZXMgb24gYWxwaGFzLgoKaGFyZGFrZXIgMTUgQXByIDk2IDE0OjExOjM5CiAgICAtIChjb25maWd1cmUpIE5ldyBjb21tYW5kIGxpbmUgb3B0aW9uOiAgLS13aXRoLWRlZmF1bHRzLiAgRG9uJ3QgcHJvbXB0IHRoZSB1c2VyLgogICAgLSAoY29uZmlndXJlKSBidWcgZml4ZXM6ICB3YXNuJ3QgcXVvdGluZyBrZXJuZWwgYW5kIGRtZW0gbG9jYXRpb24uCiAgICAtIChjb25maWd1cmUpIGdjYyBjcHAgcmVxdWlyZXMgLXggYyB0byBhY2NlcHQgLmluIGZpbGUgc3VmZml4LgoKaGFyZGFrZXIgMTUgQXByIDk2IDE0OjM2OjQ4CiAgICAtIChhZ2VudC9zbm1wZC5jKSBGaXhlZCAyIGdldHRpbWVvZmRheSBjYWxscyAtLSBhZGRlZCBhIE5VTEwgdGltZXpvbmUgcHRyLgoKaGFyZGFrZXIgMTYgQXByIDk2IDA5OjQ3OjE4CiAgICAtIChjb25maWd1cmUpIEkgZm9yZ290IERNRU1fTE9DIG5lZWRzIHRvIGJlICN1bmRlZidlZCBpZiBub3QgZm91bmQKCmhhcmRha2VyIDE2IEFwciA5NiAwOTo0ODowNgogICAgLSAoYWdlbnQve3JvdXRlX3dyaXRlLmMsc25tcF92YXJfcm91dGUuY30pIE9TRjMuMiBzcGVjaWZpYyBjaGFuZ2VzLiAgYXJnLgoKaGFyZGFrZXIgMTYgQXByIDk2IDE4OjA4OjI5CiAgICAtIChzbm1wZC5jKSBBZGRlZCBmZmx1c2ggY2FsbHMgYWZ0ZXIgcHJpbnRpbmcgcGFja2V0IGR1bXBzCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6MzY6MDYKICAgIC0gKGNvbmZpZ3VyZS5pbikgTW9yZSBoZWFkZXIgZmlsZSBjaGVja3MgKHZtL3ZtLmggKCsgb3RoZXJzKSBhbmQgdWZzL2Zmcy9mcy5oKQoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjM2OjUwCiAgICAtIChhZ2VudC9leHRlbnNpYmxlL2V4dGVuc2libGUuYykgSW5jbHVkZSB1ZnMvZmZzL2ZzLmggaWYgYXZhaWxhYmxlLgoKaGFyZGFrZXIgMjQgQXByIDk2IDA4OjM3OjEzCiAgICAtIChhZ2VudC9NYWtlZmlsZS5pbikgRm9yZ290IGEgcXVvdGUuICAod2h5IGhhc24ndCB0aGlzIGFwcGVhcmVkIGJlZm9yZT8pCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6Mzg6MTgKICAgIC0gKGFnZW50L2FsYXJtLmMpIEZpeGVkIHNvbWUgZGVmaW5lIG5hbWluZyBjb25mbGljdHMgZm9yIE5ldEJTRCAodGltZXJhZGQoKSkuCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6NDQ6NDUKICAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMsc25tcF92YXJzLmMpIG1vcmUgY29uZmlnIGZpbGVzIGZvciBOZXRCU0QuCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuYykgcmVtb3ZlZCBhcnAgdGFibGVzIGZvciBuZXRic2QuCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6NTQ6MDcKICAgIC0gKGFjY29uZmlnLmgsIGNvbmZpZy5oLmluLCBlY2UtbWliLmRlZiwgb3YvKikgQWRkZWQgTmV0QlNEIHRvIHN5cy1PSUQgcmV0dXJuZWQuCgpoYXJkYWtlciAyNCBBcHIgOTYgMDg6NTQ6MzkKICAgIC0gKG1hbi8uY3ZzaWdub3JlKSBhZGRlZCBzbm1wZC4xCgpoYXJkYWtlciAyNCBBcHIgOTYgMDk6MDA6MjEKICAgIC0gKFJFQURNRSkgdXBkYXRlZAoKaGFyZGFrZXIgMjQgQXByIDk2IDA5OjA3OjQwCiAgICAtIChJTlNUQUxMKSB1cGRhdGVkCgpoYXJkYWtlciAyNCBBcHIgOTYgMTE6NDY6NTIKICAgIC0gKGFnZW50L3NubXBfdmFyX3JvdXRlLmMpIENoZWNrZWQgZm9yIHN5cy9tYnVmIGZvciBkZXRlcm1pbmluZyBydGVudHJ5LnJ0X25leHQKCmhhcmRha2VyIDI0IEFwciA5NiAxMTo1NToxMAogICAgLSAoYWdlbnQvc25tcF92YXJfcm91dGUuYykgQCMkJWluZyBzb2xhcmlzCgpoYXJkYWtlciAyNCBBcHIgOTYgMTM6MjU6NDgKICAgIC0gKGNvbmZpZyosYWdlbnQvc25tcF92YXJfcm91dGUuYykgY29uZmlnIGNoZWNraW5nIGZvciBydGVudHJ5LnJ0X25leHQKCmhhcmRha2VyIDI0IEFwciA5NiAxNDozNzo0NwogICAgLSAobG9jYWwvc25tcGNoZWNrKSBuZXcgcHJlZjogIGRvbid0IHBvcCBmb3J3YXJkIG9uIG5ldyBwcm9ibGVtcy4KCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkNoYW5nZXM6ICBWMy4wLjUgLT4gVjMuMC42CgpoYXJkYWtlciAyNCBKYW4gOTYgMTY6MzE6MjAKICAgIC0gUmV0dXJuaW5nIEVYVEVOU0lCTEVET1RNSUIuQUdFTlRJRCBhcyB0aGUgbmV3IG9iamVjdGlkCgpEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPiAyNCBKYW4gOTYgMTY6MzM6MDgKICAgIC0gUGF0Y2ggZnJvbSBEYXZlIFNoaWVsZCA8RC5ULlNoaWVsZEBjc2MubGl2LmFjLnVrPgogICAgICAtIGZpeGVzIC1wIFBPUlQgY29tbWFuZCBsaW5lIG9wdGlvbiB0byBhY3R1YWxseSB1c2UgdGhlIHJlcXVlc3RlZCBwb3J0LgogICAgICAtIGZpeGVzIHRoZSAtbCBMT0dGSUxFIGNvbW1hbmQgbGluZSBvcHRpb24gdG8gYWN0dWFsbHkgdXNlIGl0LgoKaGFyZGFrZXIgMjQgSmFuIDk2IDE2OjM2OjUxCiAgICAtIChNYWtlZmlsZSwgY29uZmlnLmgsIGVjZS1taWIuKiwgc2Vkc2NyaXB0LmluKQogICAgICAtIGNoYW5nZWQgdGhlIHdheSBtaWIudHh0IGlzIGJ1aWx0CiAgICAgICAgLSBzcGxpdCB0aGUgY29tbWFuZCBpbnRvIHR3byBwYXJ0cyB0byBidWlsZCBhIGVjZS1taWIudHh0IGFzIHdlbGwKICAgICAgLSBhZGRlZCBhIG5ldyBPYmplY3RJRCBhZGRpdGlvbiB0byBlY2UtbWliLnR4dAogICAgICAtIERFRk1BWExPQURBVkUgLT4gRFJFTU9WRU1FRUZNQVhMT0FEQVZFCgpoYXJkYWtlciAyNiBKYW4gOTYgMDg6MjU6MDgKICAgIC0gVGhlIFNvbGFyaXMgMi41IGtlcm5lbCBoYXMgbW92ZWQgdG8gL2tlcm5lbC9nZW51bml4CiAgICAgIC0gVGhhbmtzIGdvZXMgdG8gcG9tbWllckB2b2xuYXkuc3RvcnRlay5jb20gKFZpbmNlbnQgUG9tbWllciAoVG91bG91c2UpKQoKaGFyZGFrZXIgIDkgRmViIDk2IDE3OjA1OjAwCiAgICAtIEJldHRlciBPcGVuVmlldyBzdXBwb3J0CiAgICAgIC0gUmV0dXJucyBkaWZmZXJlbnQgc3lzT2JqZWN0SUQncyBmb3IgZWFjaCBhcmNoaXRlY3R1cmUKICAgICAgLSBBZGRlZCBhICdvdicgZGlyZWN0b3J5IGZvciBPcGVuVmlldyBzdXBwb3J0IGZpbGVzCiAgICAgICAgLSBjdXJyZW50bHkgY29udGFpbnMgbmVjZXNzYXJ5IGZpbGVzIHRvIHN1cHBvcnQgYSBVQ0QgYml0bWFwIGZpbGUKICAgICAgICAgIGZvciBob3N0cyB1c2luZyB0aGUgdWNkLXNubXAgYWdlbnQuICBTZWUgdGhlIG92L1JFQURNRSBmaWxlIGZvciBkZXRhaWxzLgoKaGFyZGFrZXIgMTIgRmViIDk2IDE0OjI4OjI3CiAgICAtIChhY2NvbmZpZy5oLCBjb25maWcuaGluLCBhZ2VudC9leHRlbnNpYmxlL21pc2MuYykKICAgICAgLSBUaGUgYWdlbnQgbm93IHNldHMgYW4gYWxhcm0gdG8gcmVzdGFydCByYXRoZXIgdGhhbiBkb2luZyBhdCB0aGUKICAgICAgICBzbm1wc2V0IHRpbWUgdG8gcmV0dXJuIGEgdmFsdWUgdG8gdGhlIHNubXBzZXQgcmVxdWVzdC4KCmhhcmRha2VyIDE2IEZlYiA5NiAxNjozMjo0MQogICAgLSAoYWNjb25maWcuaCxjb25maWcuaC5pbiwgYWdlbnQvc25tcF9hZ2VudC5jLCBhZ2VudC9leHRlbnNpYmxlL3JlYWRfY29uZmlnLmMpCiAgICAgIC0gLmNvbmYgZmlsZSBhZGRpdGlvbjogICJjb21tdW5pdHkgTiBTVFJJTkciIHRvIGNoYW5nZSBjb21tdW5pdHkgbmFtZXMKCmhhcmRha2VyIDIxIEZlYiA5NiAxNjoxMjozOQogICAgLSAoTWFrZWZpbGUuaW4sIHNlZHNjcmlwdC5pbiwgbWFuL01ha2VmaWxlLmluLCBtYW4vc25tcGQuY29uZi41LmRlZikKICAgICAgLSBBZGRlZCB0aGUgYmVnaW5uaW5ncyBvZiBhIHNubXBkLmNvbmYgbWFudWFsIHBhZ2UuCgpoYXJkYWtlciAyMSBGZWIgOTYgMTY6MTU6MzYKICAgIC0gKGFwcHMvTWFrZWZpbGUuaW4sIGFwcHMvc25tcHRyYXAuYykKICAgICAgLSBBZGRlZCBhcHBzL3NubXB0cmFwCiAgICAgICAgLSBjb2RlIHRha2VuIGZyb20gMi4wLjEgYW5kIHN1Ym1pdHRlZCB0byBtZSBieSBmcmFuY3VzQG1ldHNueS5kZWxwaGkuY29tLgogICAgICAgIC0gSSBoYXZlIHlldCB0byB0ZXN0IGl0LgoKaGFyZGFrZXIgIDYgTWFyIDk2IDA5OjA5OjE1CiAgICAtIChhZ2VudC9zbm1wZC5jKSBBZGRlZCBPX1RSVU5DIHRvIHRoZSBsb2dmaWxlIG9wZW4oKSBjYWxsLgoKaGFyZGFrZXIgIDYgTWFyIDk2IDEwOjA2OjI0CiAgICAtIChhZ2VudC9leHRlbnNpYmxlL3JlYWRfY29uZmlnLmMpIHNtYWxsIGJ1Z3MgZml4ZWQKICAgICAgLSBkaXNrIGVudHJpZXMgd2l0aCBubyBzaXplIHNwZWNpZmllZCBjYXVzZWQgc2VnLWZhdWx0cy4KICAgICAgLSBiZXR0ZXIgdHlwZSBjaGVja2luZyBvbiBNSUIgZm9yICdleGVjIE1JQicgZW50cmllcy4KICAgICAgLSBtb3JlIGVycm9yIG1lc3NhZ2VzIGFkZGVkLgoKaGFyZGFrZXIgIDYgTWFyIDk2IDE2OjM4OjE2CiAgICAtIChlY2UtbWliLmRlZikKICAgICAgLSBDaGFuZ2VkIGNhcGl0YWxpemF0aW9uIHNjaGVtZXMgdG8gYmUgbW9zeSBjb21wbGlhbnQuCiAgICAgIC0gTWFkZSB0aGUgbWVtb3J5IG1pYiBTWU5UQVggcG9pbnQgdG8gdGhlIE1lbW9yeSBzZXF1ZW5jZSBsaWtlIGl0IHNob3VsZC4KCmhhcmRha2VyICA2IE1hciA5NiAxNjo1ODoxMQogICAgLSAoc25tcGxpYi9taWIuYykgcHJpbnRlZCB2YWx1ZXMgZm9yIHRpbWV0aWNrcyBhcmUgbm8gbG9uZ2VyIG5lZ2F0aXZlLgoKaGFyZGFrZXIgIDggTWFyIDk2IDEwOjMxOjM0CiAgICAtIChzbm1wbGliL3NubXBfY2xpZW50LmMpIENoZWNrIGlmIHZhcmlhYmxlIGNvbnRlbnQgaXMgTlVMTCBiZWZvcmUgdXNpbmcuCgpoYXJkYWtlciAgOCBNYXIgOTYgMTY6NTY6MDgKICAgIC0gKGFnZW50L2V4dGVuc2libGUvZXhlYy5jKQogICAgICAgLSByZWxvY2F0YWJsZSBleGVjJ3MgZmFpbGVkIHRvIGNsb3NlIHRoZSBjYWNoZSBmaWxlLgoKaGFyZGFrZXIgMTEgTWFyIDk2IDEzOjM3OjI1CiAgICAtIChzbm1wX3Zhcl9yb3V0ZS5jLCBzbm1wX3ZhcnMuYywgZXh0ZW5zaWJsZS5jKTogY29tbWVudGVkIG91dCBubGlzdCB3YXJuaW5ncy4KCmhhcmRha2VyIDExIE1hciA5NiAxNToxNzoyNgogICAgLSAobWFuL3tNYWtlZmlsZS5pbixzbm1wZC4xLmRlZixzbm1wZC5jb25mLjUuZGVmfSx2ZXJzaW9udGFnLHNlZHNjcmlwdC5pbik6CiAgICAgIC0gY2xlYW5lZCB1cCBkb2N1bWVudGF0aW9uIG1vcmUgYW5kIGFkZGVkIHRoZSB2ZXJzaW9uIG51bWJlciB0byB0aGUgdHJhaWxlcnMuCgpoYXJkYWtlciAxMSBNYXIgOTYgMTU6MTc6NTcKICAgIC0gKFJFQURNRSk6IGNsZWFuZWQgdXAsIHJlLWFycmFuZ2VkLCBzaG9ydGVuZWQgKHNlY3Rpb25zIG1vdmVkIHRvIG1hbi8qIGRvY3MpLgoKaGFyZGFrZXIgMTEgTWFyIDk2IDE1OjQwOjE3CgogICAgLSAoUkVBRE1FKTogbW9yZSBjbGVhbiB1cCBhbmQgYWRkZWQgcmVmZXJlbmNlIHRvIHRoZSB1Y2Qtc25tcCBtYWlsaW5nIGxpc3QuCgpHaW92YW5uaSBTLiBNYXJ6b3QgPGdtYXJ6b3RAYmF5bmV0d29ya3MuY29tPiAxMSBNYXIgOTYgMTU6NTc6MjAKCiAgICAtIChzbm1wbGliL3NubXBfYXBpLmMpOiBmaXhlZCBhIHRpbWVvdXQgYnVnIGNhdXNlZCBieSBhcmNoaXRlY3R1cmVzCiAgICAgIHdpdGggYW4gdW5zaWduZWQgdGltZXZhbC50dl9zZWMgdmFsdWUuCiAgICAgIC0gVGhhbmtzIGdvZXMgdG8gR2lvdmFubmkgUy4gTWFyem90IDxnbWFyem90QGJheW5ldHdvcmtzLmNvbT4gZm9yCgl0aGUgcGF0Y2ghCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuNAoKaGFyZGFrZXIgMTkgSmFuIDk2IDE3OjMxOjE2CiAgICAtIChjb25maWd1cmUqKQogICAgICAtIHVwZGF0ZWQgdG8gYXV0b2NvbmYgdjIuNwogICAgICAtIEhvcGVmdWxseSBub3cgdXNpbmcgY29ycmVjdCAnbWFrZScgZGVmaW5pdGlvbnMKCmhhcmRha2VyIDE5IEphbiA5NiAxNzozMjo1NwogICAgLSAoYWdlbnQvZXh0ZW5zaWJsZS8qLmMpCiAgICAgIC0gRGVjbGFpcmVkIG1vcmUgc3RhdGljIHZhcmlhYmxlcyAobG9uZ19yZXQpIHRvIGZpeCBzdW40cyBleGl0IGNvZGVzIChhZ2FpbikuCgpoYXJkYWtlciAyMiBKYW4gOTYgMTY6Mjc6MzAKICAgIC0gKGFjY29uZmlnLmgsIGFnZW50L3NubXBfdmFycy5jLCBhZ2VudC9leHRlbnNpYmxlLyouYykKICAgICAgLSBBZGRlZCBuZXcgZGVmaW5lcyB0byB0dXJuIG9uL29mZiBzZWN0aW9ucyBvZiB0aGUgZXh0ZW5zaWJsZSBtaWIuCiAgICAgIC0gVGhpcyBhbHNvIGZpeGVzIHRoZSBtaWIudHh0IGZpbGUgZGVmaW5pdGlvbnMgaWYgc29tZXRoaW5nIGlzIHR1cm5lZCBvZmYuCiAgICAtIChNYWtlZmlsZS5pbikgcmVtb3ZlZCAke3NyY2Rpcn0gZnJvbSB0aGUgZnJvbnQgb2Ygc3RhbXAtaC5pbgoKaGFyZGFrZXIgMjIgSmFuIDk2IDE3OjE4OjU4CiAgICAtIChsb2NhbC9NYWtlZmlsZS5pbikgQWRkZWQgYSBjaG1vZCB0byBtYWtlIHRoZSBzbm1wY2hlY2sgc2NyaXB0IGV4ZWN1dGFibGUKCmhhcmRha2VyIDIyIEphbiA5NiAxNzoyMzoxNwogICAgLSAobG9jYWwvc25tcGNoZWNrKQogICAgICAtIGFkZGVkIGFnZW50IGNvbnRyb2xzOiAgcmVzdGFydCwgdXBkYXRlY29uZmlnLCBjbGVhcmNhY2hlLgogICAgICAtIHJlbW92ZWQgYW4gb2xkIGRlYnVnZ2luZyBwcmludGYuCiAgICAgIC0gY3RybC1mID0+IGZpeGFsbC4KICAgICAgLSBBZGRlZCBrZXlib2FyZCBhY2NlbGVyYXRvcnMgdG8gdGhlIGFzc29jaWF0ZWQgbWVudSBpdGVtcy4KICAgICAgLSBNYWRlIGhpZ2hsaWdodFRoaWNrbmVzcyBhIGdsb2JhbCBwYXJhbWV0ZXIgdmlhICR3aW5kb3ctPm9wdGlvbignYWRkJykuCiAgICAgIC0gQWRkZWQgYSBlbnRyeSBib3ggdG8gdGhlIGV4ZWN1dGFibGUgY29tbWFuZHMgd2l0aCB0aGUgY29tbWFuZCB0byBydW4uCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wLjMKCmhhcmRha2VyIDIzIE9jdCA5NSAxNjozNzo0MwogICAgLSAoZXh0ZW5zaWJsZS5jKSBzdG9wcGVkIHJlcG9ydGluZyBhbnl0aGluZyBmb3IgdGhlIGRpc2sgbWliIGlmIG5vCiAgICAgIGRpc2tzIHdlcmUgZGVmaW5lZCBpbiB0aGUgc25tcGQuY29uZiBmaWxlLiAgVGhpcyB3YXMgY2F1c2luZyBhbgogICAgICBlcnJvciBpbiB0aGUgYWdlbnQncyBlcnJvciBtaWIgd2hlbiBubyBkaXNrcyB3ZXJlIGRlZmluZWQgYW5kCiAgICAgIHNvbWVvbmUgd2Fsa3MgdGhlIGRpc2sgbWliLgoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjA0OjQ3CiAgICAtIChSRUFETUUpIEFkZGVkIHBvaW50ZXIgdG8gdGhpcyBmaWxlIHZpYSBmdHAKCmhhcmRha2VyIDIwIE5vdiA5NSAxNjowNToxMgogICAgLSAoVE9ETykgRmluZCBhbmQgZml4IG1lbW9yeSBsZWFrIHNvbWV0aW1lCgpoYXJkYWtlciAyMCBOb3YgOTUgMTY6MDc6NDUKICAgIC0gKGNvbmZpZ3VyZS5pbikgQ2hlY2sgZm9yIC1sZWxmIGZvciBzb2xhcmlzIDIuMyBhbmQgeW91bmdlcgogICAgLSAoY29uZmlndXJlLmluKSBNb3JlIHNvbGFyaXMgc3BlY2lmaWNzOiAgLURTVlI0CiAgICAtIChjb25maWd1cmUuaW4pIENhY2hlcyBpbml0aWFsIHByb21wdCBpbiB0aGUgY29uZmlndXJlIHNjcmlwdCBzbyB5b3UKICAgICAgd29uJ3QgYmUgYnVnZ2VkIHR3aWNlIGJ5IHRoZSBpbml0aWFsIHF1ZXN0aW9uLgoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjA4OjQ5CiAgICAtIChjb25maWcuaC5pbikgQ2hlY2sgZm9yIC1sZWxmIGZvciBzb2xhcmlzIDIuMyBhbmQgeW91bmdlcgoKaGFyZGFrZXIgMjAgTm92IDk1IDE2OjA5OjM3CiAgICAtIChhbGwgYXV0b2NvbmYgYnVpbHQgZmlsZXMpIFVwZGF0ZWQgZXZlcnl0aGluZyB0byBhdXRvY29uZiAyLjUKCmhhcmRha2VyIDIwIE5vdiA5NSAxNjoxMDo0OQogICAgLSAodHJhcG5vdGlmKSBMb2dzIG5vLXJlc3BvbnNlIGVycm9ycy4KICAgIC0gKHRyYXBub3RpZikgQmV0dGVyIHN0cmluZyBjaGVja2luZyAocXVvdGVzIGFsbCB2YXJpYWJsZXMgbm93KQoKaGFyZGFrZXIgIDEgRGVjIDk1IDE2OjIwOjEzCiAgICAtIGxvY2FsL3NubXBjaGVjazogICAgICAgKm5ldyBmZWF0dXJlcyoKICAgICAgLSBoYW5kbGVzIGZhaWxlZCBzbm1wd2Fsay9nZXQvc2V0cyBtdWNoIG1vcmUgZ3JhY2VmdWxseSBub3cKICAgICAgLSBuZXcgcHJlZmVyZW5jZTogIFlvdSBjYW4gcGljayB3aGF0IHR5cGVzIG9mIHByb2JsZW1zIHRvIGNoZWNrIGZvcgogICAgICAgIC0gLWYgb24gdGhlIGNvbW1hbmQgbGluZSBvbmx5IGNoZWNrcyBmb3IgZml4YWJsZSBwcm9ibGVtcwogICAgICAtIG5vIGxvbmdlciBwaW5nOjplY2hvcyBob3N0cyBiZWZvcmUgY2hlY2tpbmcgdGhlbQogICAgICAgIC0gaW5zdGVhZCByZWxpZXMgb24gJ05vIFJlc3BvbnNlJyB0eXBlIHJlcGxpZXMgZnJvbSBzbm1wd2Fsay9nZXQgdG8KICAgICAgICAgIGRldGVybWluZSBpZiBhIGhvc3QgaXMgdXAuCiAgICAgICAgLSBwaW5nIHRoZSBob3N0IGlzIHN0aWxsIGFuIG9wdGlvbiAodGhyb3VnaCB0aGUgY29tbWFuZCBsaW5lIGFuZCBtZW51cykKICAgICAgLSBjb252ZXJ0ZWQgZnJvbSBUay1iNCB0byBUay1iOAogICAgICAtIEFkZGVkIGEgbG9nZ2luZyB3aW5kb3cgZm9yIGRlYnVnZ2luZyBhbmQgdHJhY2tpbmcgb2YgYWN0aW9ucy4KICAgICAgICAtIG5ldyBjb21tYW5kIGxpbmUgb3B0aW9uczogIC1WIE5VTSAgaW5pdGlhbCBsb2cgdmVyYm9zaXR5IGxldmVsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtTCAgICAgIHNob3cgdGhlIGxvZyB3aW5kb3cgYXQgc3RhcnR1cAogICAgICAtIE5vdyB0cmFuc2xhdGVzIG1pYiBudW1iZXJzIGludG8gbW9yZSByZWFzb25hYmxlIG5hbWVzCgpoYXJkYWtlciAgNSBEZWMgOTUgMTQ6NTc6MTQKICAgIC0gKGNvbmZpZ3VyZSopIGFkZGVkIEFDX1RZUEVfUElEX1QgdG8gdGhlIGNvbmZpZ3VyZSBjaGVja3MKCmhhcmRha2VyICA1IERlYyA5NSAxNTowMToxMAogICAgLSAoc25tcGNoZWNrKQogICAgICAtIE5ldyBmbGFnOiAgLWQsIGRvbid0IHN0YXJ0IGNoZWNraW5nIGFueXRoaW5nLiAgSnVzdCBicmluZyB1cCBpbnRlcmZhY2UuCiAgICAgIC0gY2hlY2sgZm9yIGJsYW5rIG91dHB1dCBvZiBzbm1wZ2V0IGJlZm9yZSBwYXJzaW5nIHdpdGggcy8vL2cKICAgICAgICBjb25zdHJ1Y3RzLgoKaGFyZGFrZXIgIDUgRGVjIDk1IDE1OjA1OjIwCiAgICAtIChhZ2VudC9leHRlbnNpYmxlKQogICAgICAtIEJ1ZyBmaXg6ICBhbHBoYXMgYW5kIHN1bm9zZXMgd2VyZSByZXBvcnRpbmcgaW5jb3JyZWN0IGV4dGVuc2libGUKICAgICAgICBleGl0IGNvZGVzLiAgKHlldCBhbm90aGVyIDY0LzMyIGJpdCBidWcgZm91bmQpLgogICAgICAtIEJ1ZyBmaXg6IGFnZW50LXVwZGF0ZSxyZXN0YXJ0LCBhbmQgY2FjaGUgbWliIGZsdXNoIGVudHJpZXMgd2VyZQogICAgICAgIHJldHVybmluZyB2YWx1ZXMgaW5zdGVhZCBvZiBwb2ludGVycyB0byB2YWx1ZXMuCgpoYXJkYWtlciAxMyBEZWMgOTUgMTU6Mjc6MTkKICAgIC0gKGFnZW50L2V4dGVuc2libGUvbWlzYy5jKSBidWcgZml4ZXMgZm9yIGV4ZWMgaXRlbXM6CiAgICAgIC0gYSBzZWNvbmQgc25tcHdhbGsgb2YgdGhlIGV4ZWMgaXRlbSB3b3VsZCByZXR1cm4gdGhlIG9sZCBjYWNoZQogICAgICAgIGZpbGUuICBGaXhlZCBieSByZXNldGluZyB0aGUgbGFzdCBjYWNoZXRpbWUgdG8gMCB0byBhbHdheXMgcmVzY2FuCiAgICAgICAgYWZ0ZXIgZm9yay9waXBlL21lbW9yeS9ldGMgZXJyb3JzLgogICAgICAtIE1hZGUgbGFzdHJlc3VsdCBhIHN0YXRpYyB2YXIuICBXYXMgcmV0dXJuaW5nIHdyb25nIGV4aXQgY29kZXMKICAgICAgICB1bmRlciwgc3RyYW5nZWx5IGVub3VnaCwgb25seSBzdW5vcy00IG1hY2hpbmVzLgoKaGFyZGFrZXIgMjAgRGVjIDk1IDA5OjUzOjEwCiAgICAtIHNubXBfb3BlbiBjYWxscyBnZXRzZXJ2YnluYW1lIG9ubHkgb25jZSBub3csIGF0IHRoZSByZXF1ZXN0IG9mIEdhcnkKICAgICAgSGF5d2FyZCA8Z2FoQGRpcmFjLmJlbGxjb3JlLmNvbT4uCgpoYXJkYWtlciAyMCBEZWMgOTUgMTU6NTY6MTYKICAgIC0gRm91bmQgYW5kIGZpeGVkIGEgbWVtb3J5IGxlYWsgaW4gdGhlIHJvdXRpbmcgdGFibGUgbWliLgoKaGFyZGFrZXIgMjggRGVjIDk1IDEwOjAxOjM1CiAgICAtIEFkZGVkIHNlZHNjcmlwdCB0byB0aGUgLmN2c2lnbm9yZSBmaWxlLgoKaGFyZGFrZXIgMjggRGVjIDk1IDEwOjI0OjM3CiAgICAtIEFkZGVkIGEgc2Vkc2NyaXB0IHdoaWNoIGlzIGJ1aWx0IGZyb20gY29uZmlnLmggYW5kIGFnZW50L2V4dGVuc2libGUvbWliZGVmcy5oCiAgICAgIC0gdXNlZCB0byBkeW5hbWljYWxseSBidWlsZCBtaWIudHh0IGFuZCBsb2NhbC9zbm1wY2hlY2suCgpoYXJkYWtlciAyOCBEZWMgOTUgMTI6MDY6NDkKICAgIC0gQ3JlYXRlZCBhIEVYQU1QTEUuY29uZiBmaWxlIGZvciBleGFtcGxlIHVzYWdlLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wLjIuMQoKaGFyZGFrZXIgMjkgU2VwIDk1IDEzOjQzOjQ5CiAgICAtIHBvcnRlZCB0byBHTlUncyBhdXRvY29uZmlnMi40CiAgICAgIC0gdG8gaW5zdGFsbCwgeW91IG11c3Qgbm93IHJ1biAuL2NvbmZpZ3VyZSBmaXJzdCB0byBnZW5lcmF0ZSB0aGUKICAgICAgICBNYWtlZmlsZXMgYW5kIGNvbmZpZy5oCiAgICAgIC0gYWxtb3N0IGFsbCBvZiB0aGUgY29kZSBpcyBub3cgZHluYW1pY2FsbHkgY2hlY2tlZCBmb3IgcHJvYmxlbXMKICAgICAgICByYXRoZXIgdGhhbiBiZWluZyBkZXBlbmRhbnQgb24gYXJjaGl0ZWN0dXJlIG5hbWVzLgogICAgLSBzeXN0ZW0gbmFtZSBub3cgZHluYW1pY2FsbHkgZGV0ZXJtaW5lZCBhdCBydW4gdGltZSAoZnJvbSB1bmFtZSAtbikKICAgIC0gY3JlYXRlZCBhICdtYWtlIGRlcGVuZCcgY2FsbCAoZmluYWxseSkuCiAgICAtIChhZ2VudC9zbm1wX3ZhcnMuaCkgY2hhbmdlZCBTWVNOQU1FIGRlZmluZSB0byBTWVNURU1OQU1FIGRlZmluZSB0bwogICAgICBhdm9pZCBhIGNvbmZsaWN0IHdpdGggYSBzb2xhcmlzIGhlYWRlciBmaWxlLgogICAgLSBwcm90ZWN0aW5nIGJldHRlciBhZ2FpbnN0IGluY2x1ZGUgaGVhZGVyIGZpbGVzIHR3aWNlLgogICAgLSBNb3N0IG9mIHBvcnQgdG8gU29sYXJpcyAyLjQgZmluaXNoZWQuICBUaGUga2VybmVsIHJlYWRzIHN0aWxsIG5lZWQgd29yay4KCmhhcmRha2VyIDI5IFNlcCA5NSAxMzo0Njo0MwogICAgLSAoTkVXUykgdXBkYXRlZCB0aGUgbmV3cyBmaWxlLgoKaGFyZGFrZXIgIDMgT2N0IDk1IDA5OjI0OjAwCiAgICAoYWNjb25maWcuaCkgTWlub3IgYnVnOiAgcmVjdXJzaXZlIGNvbW1lbnRzIG5vdCBjb3JyZWN0IGZvciBjb21waWxlcnMgKEFJWCkKCmhhcmRha2VyICAzIE9jdCA5NSAwOTo0Mzo1NAogICAgKHZlcnNpb25pbmZvLmMpIEFkZGVkIDMtMC0zLUExIHRhZwoKaGFyZGFrZXIgIDQgT2N0IDk1IDE2OjUzOjM5CiAgICB2ZXJzaW9uIHRhZyBvZiB2ZXJzaW9uaW5mby5jCgpoYXJkYWtlciAgNSBPY3QgOTUgMTU6MjM6MDUKICAgIC0gTW9yZSBTb2xhcmlzIHBvcnRpbmcuCiAgICAgIC0gTW9zdCBtaWJJSSBlbnRyaWVzIG5vdyB3b3JrLgogICAgICAgICAtIEhhdmVuJ3QgY2hlY2tlZCByZXR1cm5lZCBpbmZvcm1hdGlvbiBmb3IgYWNjdXJhY3kKICAgICAgLSBzeXNVcFRpbWUgc3RpbGwgZmFpbHMuCiAgICAgIC0gY2MgYW5kIGdjYyBib3RoIGNvbXBpbGUgZXZlcnl0aGluZyBub3cuCgpoYXJkYWtlciAgNSBPY3QgOTUgMTU6NDg6MjMKICAgIHZlcnNpb24gdGFnIG9mIHZlcnNpb25pbmZvLmMKCmhhcmRha2VyICA2IE9jdCA5NSAxMTozNzowMAogICAgLSAoUkVBRE1FKSBNb3ZlZCBJTlNUQUxMQVRJT04gaW5zdHJ1Y3Rpb25zIHRvIElOU1RBTEwKICAgICAgICAgICAgICAgQ2hhbmdlZCBsaXN0aW5nIG9mIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzCiAgICAgICAgICAgICAgIFVwZGF0ZWQgQVZBSUxBQklMSVRZIHNlY3Rpb24KCmhhcmRha2VyICA2IE9jdCA5NSAxNjoyODo0OAogICAgdmVyc2lvbiB0YWcgb2YgdmVyc2lvbmluZm8uYwoKaGFyZGFrZXIgIDYgT2N0IDk1IDE2OjMyOjA0CiAgICAtIChzbm1wZC5jKSBBZGRlZCB0d28gbmV3IGZsYWdzOgogICAgICAtaCBmb3IgaGVscAogICAgICAtdiBmb3IgdmVyc2lvbiBpbmZvcm1hdGlvbgoKaGFyZGFrZXIgIDYgT2N0IDk1IDE2OjMyOjQzCiAgICAtIChwYXJzZS5jLCBzbm1wLmMpIGFkZGVkIGNvbmZpZy5oIHRvIHRoZSBsaXN0IG9mIGluY2x1ZGVzLgoKaGFyZGFrZXIgIDYgT2N0IDk1IDE2OjQwOjM4CiAgICAtIChzbm1wZC5jKSBVc2FnZSBvZiAtLWhlbHAgYW5kIC0tdmVyc2lvbiBzaG91bGQgd29yayBub3cuLi4gIEdOVSBzdGFuZGFyZC4KCmhhcmRha2VyICA2IE9jdCA5NSAxNjo0MToxOAogICAgLSAoTkVXUy8tVE9ETykgLWgvLS1oZWxwLCAtdi8tLXZlcnNpb24gY29tbWFuZCBsaW5lIG9wdGlvbnMKCmhhcmRha2VyIDExIE9jdCA5NSAxNzozMzoyNgogICAgLSBUaGUgY29uZmlndXJlIHNjcmlwdCBub3cgcHJvbXB0cyBmb3IgaW1wb3J0YW50IHZhbHVlcyB0byBiZSBwdXQgaW4KICAgICAgY29uZmlnLmguICBTb21lIHRoaW5ncyBuZWVkIHRvIHVzZSAkKHByZWZpeCkgaW5zdGVhZCBob3dldmVyLgogICAgLSAoTWFrZWZpbGUuaW4sIGFnZW50L01ha2VmaWxlLmluLCBhcHBzL01ha2VmaWxlLmluKQogICAgICArIGxpbmtpbmcgdG8gLi4vc25tcGxpYi9saWJzbm1wLmEgaW5zdGVhZCBvZiAuLi9saWIvbGlic25tcC5hIHRvCiAgICAgICAgcmVtb3ZlIGluc3RhbGwgcmVxdWlyZW1lbnQuCiAgICAgICsgIHB1dCAuLi9saWIvbGlic25tcC5hIGluIGFwcGxpY2F0aW9uCgpoYXJkYWtlciAxMyBPY3QgOTUgMTU6NDU6MjgKICAgIC0gKHNubXBkLmMpIEFkZGVkIC1wIHBvcnQgdG8gLS1oZWxwIG91dHB1dAogICAgLSAoY29uZmlnKSBTZXR1cCB0byB1c2UgLS1wcmVmaXggdG8gbG9vayBmb3IgY29uZmlnIGZpbGVzLgoKaGFyZGFrZXIgMTYgT2N0IDk1IDEzOjAxOjM5CiAgICAtIChNYWtlZmlsZXMpIEZhaXJseSBkZWNlbnQgJ21ha2UgaW5zdGFsbCcgbm93IHBvc3NpYmxlLiAgSW5zdGFsbHMKICAgICAgaW50byB0aGUgZGlyZWN0b3J5IHNwZWNpZmllZCBieSAtLXByZWZpeCBmb3IgdGhlIC4vY29uZmlndXJlIHNjcmlwdC4KICAgIC0gKGV4dGVuc2libGUuYykgY29uZmlnIGZpbGUgcmUtbG9jYXRpb246IG5vdyB1c2VzIHRoZSBTTk1QTElCUEFUSAogICAgICBkZWZpbmVkIGxvb3NlbHkgYXMgJChwcmVmaXgpL2xpYi9zbm1wLy4KCmhhcmRha2VyIDE2IE9jdCA5NSAxNTowMjowMQogICAgLSAoTWFrZWZpbGVzKSBtYWtlIGluc3RhbGwgZWNob3Mgd2hhdCBpdHMgZG9pbmcgaW4gYSBtb3JlIGNsZWFyIGZhc2hpb24KICAgIC0gKElOU1RBTEwpIGFkZGVkIGJldHRlciBpbnN0cnVjdGlvbnMgdG8gdGhlIElOU1RBTEwgZmlsZS4KICAgIC0gKFJFQURNRSkgbWlub3Igd29yZGluZyBjaGFuZ2VzCgpoYXJkYWtlciAxNiBPY3QgOTUgMTY6MjE6NDMKICAgIC0gKHNubXBkLmMpIHdhcyBzdGlsbCBsb29raW5nIGluIC9ldGMgZm9yIHR3byAuY29uZiBmaWxlcy4KCmhhcmRha2VyIDE2IE9jdCA5NSAxNjo0MzoxMgogICAgLSAoYXBwcykgYWxsIGFwcHMgd2VyZSBzdGlsbCBsb29raW5nIGluIC9ldGMvIGZvciAuY29uZiBmaWxlcwoKaGFyZGFrZXIgMTcgT2N0IDk1IDE2OjU4OjMyCiAgICB2ZXJzaW9uIHRhZyAoIDMuMC4zICkgb2YgdmVyc2lvbmluZm8uYwoKaGFyZGFrZXIgMTcgT2N0IDk1IDE3OjAwOjIyCiAgICAtIENoYW5nZUxvZyB1cGRhdGUKCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIFYzLjAuMgoKaGFyZGFrZXIgMjEgU2VwIDk1IDA5OjI3OjE4CiAgICAoc25tcGxpYi9tZDUuYykgRm9yZ290IHRvIGluY2x1ZGUgc3lzL3R5cGVzLmggZm9yIHVfbG9uZyBkZWZpbml0aW9uLgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wLjEKCmhhcmRha2VyIDI2IEp1bCA5NSAxNjozMTo0MQogICAgLSBBZGRlZCBhIG5ldyAjZGVmaW5lOiBFWElUX09OX0JBRF9LTFJFQUQgdG8gY29uZmlnLmgKICAgICAgSWYgZGVmaW5lZCwgYW5kIGFuIGVycm9yIG9jY3VycyB3aGlsZSByZWFkaW5nIHRoZSBrZXJuZWwgY29udGVudHMsCiAgICAgIHRoZSBhZ2VudCB3aWxsIGV4aXQuICBUaGlzIHdhcyB0aGUgZGVmYXVsdC4gIEkgd2FudGVkIGl0IHRvCiAgICAgIGNvbnRpbnVlLgogICAgCiAgICAtIFBvcnQgdG8gZGVjLWFscGhhL09TRiAzLjEKICAgICAgLSBhbHBoYSdzIGxvbmcgaXMgOCBieXRlcywgbm90IDQuCiAgICAgIC0gc2hvdWxkIGJlIChtb3N0bHkpIDY0IGJpdCBjbGVhbiBub3cuCiAgICAgIC0gY2xlYW5lZCB1cCBhIExPVCBvZiBidWdzIENNVSBjb2RlIGluIHRoZSBwcm9jZXNzLgoKaGFyZGFrZXIgMjggSnVsIDk1IDE0OjIzOjQxCiAgICBZZXQgbW9yZSBwcm9ibGVtcyBmaXhlZCBpbiB0aGUgYWxwaGEgcG9ydC4KICAgICAgLS0gbW9yZSBpbnQgLT4gbG9uZyBjaGVja2luZy4KCmhhcmRha2VyIDMxIEp1bCA5NSAxNjoyNzo0NwogICAgLSBzbm1wY2hlY2sgY2hhbmdlczoKICAgICAgLSB0ZXJtaW5hbCAoYXNjaWkpIGJhc2VkIHN1cHBvcnRlZCBmaXhlZC4KICAgICAgICAtIERldGVjdHMgcHJlc2VuY2Ugb2YgYSBESVNQTEFZIHZhcmlhYmxlLgogICAgICAgIC0gTm93IHJlcXVpcmVzIHRoZSBUZXJtOjpSZWFka2V5IHBhY2thZ2UuCiAgICAgICAgLSBhc2tzIHVzZXJzIHdlYXRoZXIgdG8gZml4IHByb2JsZW1zCiAgICAgIC0gcmFpc2VzIGFuZCBkZWljb25pZmllcyB3aGVuIG5ldyBwcm9ibGVtcyBhcmUgZm91bmQKICAgICAgLSBzZXRzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIG9mIG5ldyBwcm9ibGVtcyB0byBwaW5raXNoCiAgICAgIC0gbmV3IHByZWZlcmVuY2U6ICBwaW5nIGhvc3Q/CiAgICAgIC0gZ2xvYmFsIGtleSBiaW5kaW5nczoKICAgICAgICAgIGN0cmwtcSA9IHF1aXQ7IGN0cmwtaCA9IGhpZGU7IGN0cmwtcyA9IHNlZW4gYWxsCgpoYXJkYWtlciAgMSBTZXAgOTUgMTE6NTc6NTIKICAgIC0gRml4ZWQgYWxwaGEncyBrZXJuZWwgbG9va3VwczoKICAgICAgKiBDTVUgY29kZSB3YXMgcGFzc2luZyBpbnRzIGludG8gbHNlZWsgKG5lZWRzIGxvbmcpLgoKaGFyZGFrZXIgMTggU2VwIDk1IDE2OjA5OjI1CiAgICBNaW5vciBtb2RzIHRvIFJFQURNRSBmaWxlLgoKaGFyZGFrZXIgMTggU2VwIDk1IDE2OjEzOjQ5CiAgICBNaW5vciBidWc6CiAgICAgIChzaF9jb3VudF9wcm9jcykgY2hlY2sgaWYgcmV0dXJuZWQgZmlsZSBkZXNjcmlwdG9yID4gMCBiZWZvcmUgY29udGludWluZwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQ2hhbmdlcyBzaW5jZSBWMy4wCgpoYXJkYWtlciAxNiBKdW4gOTUgMTA6MTM6NTMKICAgIFJlbW92ZWQgJ2dtYWtlJyAtPiAnbWFrZScgaW4gYWdlbnQvTWFrZWZpbGUKCmhhcmRha2VyIDE2IEp1biA5NSAxMDoxNTo0MgogICAgSG91c2UgY2xlYW5pbmcKICAgICAgLSBDb21waWxlcyBjbGVhbmx5IG9uIGhwdXgvZ2NjCiAgICAJKGV4Y2VwdCBvbmUgaW5jbHVkZSBmaWxlIGVycm9yIEkgZG9uJ3QgaGF2ZSBjb250cm9sIG92ZXIuKQogICAgICAtIENoYW5nZSBWRVJTSU9OX0lEIC0+IFZFUlNJT05JRCB0byBhdm9pZCBjb25mbGljdHMgd2l0aCBIUCdzIGluY2x1ZGVzLgoKaGFyZGFrZXIgMTYgSnVuIDk1IDE0OjEzOjUzCiAgICBIb3VzZSBDbGVhbmluZzoKICAgICAgVG9vayBvdXQgZ2NjL2Fuc2kgcmVxdWlyZW1lbnQgZm9yIHRoZSBhZ2VudC4KICAgICAgcGVycm9yKCkgaXMgY2FsbGVkIG1vcmUgZnJlcXVlbnRseSBmb3IgbG9nIGFyY2hpdmFsCiAgICAKICAgIE5ldyBCdWcvSGF2ZW4ndCBzb2x2ZWQ6CiAgICAgIEhQLVVYOiAgaWYgYWdlbnQvKi5jIGFuZCBhZ2VudC9leHRlbnNpYmxlLyouYyBhcmUgYnVpbHQgd2l0aCBnY2MsCiAgICAJICBEaXNwbGF5U3RyaW5ncyByZXR1cm4gZ2FyYmFnZS4gIE5vIGNsdWUgYXMgdG8gd2h5LgoKaGFyZGFrZXIgMTYgSnVuIDk1IDE0OjIwOjQ4CiAgICBIb3VzZSBDbGVhbmluZzoKICAgICAgTWlzc2VkIGEgVkVSU0lPTl9JRAoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjExOjI3CiAgICBDaGFuZ2VkIGFub3RoZXIgImVtcHR5IiBlcnJvciBtZXNzYWdlIGluIHRoZSBDTVUgY29kZSB0byBhIHJlYWwgd2FybmluZy4KCmhhcmRha2VyIDIxIEp1biA5NSAwOToxNTozMQogICAgQnVnIEZpeDoKICAgICAgU3RvcHBlZCByZXR1cm5pbmcgYSBwb2ludGVyIHRvIGEgbm9uLXN0YXRpYyBjaGFyIGFycmF5Li4uICAoLT4gc3RhdGljIGNoYXIpCiAgICAgIFBhc3Npbmcgd3JvbmcgcG9pbnRlciB0byBzZXRlcnJvcnN0YXR1cygpIGluIHNldFBlcnJvcnN0YXR1cygpCiAgICAKICAgIEZlYXR1cmU6CiAgICAgIEFkZGVkIGEgc2V0YWJsZSBtaWIgZW50cnkgdG8gdGhlIHZlcnNpb24gbWliIHRvIHJlLXJlYWQgdGhlIGNvbmZpZyBmaWxlKHMpLgoKaGFyZGFrZXIgMjEgSnVuIDk1IDA5OjE4OjM3CiAgICBlY2UtbWliLmRlZjoKICAgIEJ1ZyBGaXg6CiAgICAgIExvYWRhdmUgbWliOiAgSW50ZWdlciAtPiBEaXNwbGF5U3RyaW5nCiAgICAgIHZlcnNpb25DbGVhckNhY2hlOiAgLT4gcmVhZC13cml0ZSAod2FzIHJlYWQtb25seSkKICAgIAogICAgRmVhdHVyZToKICAgICAgQWRkZWQgYSBzZXRhYmxlIG1pYiBlbnRyeSB0byB0aGUgdmVyc2lvbiBtaWIgdG8gcmUtcmVhZCB0aGUgY29uZmlnIGZpbGUocykuCgpoYXJkYWtlciAyMSBKdW4gOTUgMDk6MTk6MTcKICAgIENoYW5nZWQgZGVmYXVsdCBDQyB0byBjYyBhZ2Fpbi4KCmhhcmRha2VyIDIxIEp1biA5NSAwOToyMDoyMwogICAgc25tcGxpYjoKICAgICAgQnVnIGZpeDogIGZkc2V0IC0+IChpbnQgKikgZmRzZXQgaW4gc2VsZWN0IGNhbGwuCgpoYXJkYWtlciAxMCBKdWwgOTUgMTE6Mjc6MDAKICAgIFR3byBuZXcgY29tbWFuZCBsaW5lIG9wdGlvbnM6CiAgICAgIC1sIExPR0ZJTEUgICAgICAgT3V0cHV0cyBzdGRlcnIvb3V0IHRvIExPR0ZJTEUgKG92ZXJyaWRlcyBjb25maWcuaCBkZWYpCiAgICAgIC1MICAgICAgICAgICAgICAgRG8gTk9UIHdyaXRlIHRvIGEgbG9nIGZpbGUgKG92ZXJyaWRlcyBjb25maWcuaCkKCmhhcmRha2VyIDEwIEp1bCA5NSAxMjoyOTozMgogICAgLSBNb3JlIHBlcnJvcigpcyBjb252ZXJ0ZWQgdG8gc2V0IHRoZSBzbm1wIGVycm9yIHN0YXR1cyBmbGFnIG9uIHRoZSBhZ2VudC4KICAgIC0gZXJyb3Igc3RhdHVzIGZsYWcgaXMgbm93IHByaW9yaXRpemVkLiAgcGVycm9ycyBnZXQgdGhlIGhpZ2hlc3Qgc28KICAgICAgb3RoZXIgZXJyb3JzIHdvbid0IG92ZXJyaWRlIHRoZW0gaWYgdGhleSBoYXBwZW4gYXQgYSBsYXRlciB0aW1lLgogICAgLSBBZGRlZCB0aGUgYmVnaW5uaW5ncyBvZiBhIHJlc3RhcnQgbWliIHRvIHRoZSB2ZXJzaW9uIG1pYiBvZiB0aGUKICAgICAgYWdlbnQuICBTZXR0aW5nIHRoaXMgd3JpdGFibGUgbWliIHRvIG9uZSB3aWxsIGNhdXNlIGl0IHRvIGV4ZWMKICAgICAgaXRzZWxmIGFnYWluIChmb3IgcmVtb3RlIHJlc3RhcnQvdXBkYXRlcykuCgpoYXJkYWtlciAxMCBKdWwgOTUgMTI6MzA6MTkKICAgIE1pbm9yIGNvbW1lbnQgY2hhbmdlIGluIGNvbmZpZy5oCgpoYXJkYWtlciAxNCBKdWwgOTUgMTU6MTI6NDAKICAgIC0gRmluaXNoZWQgdGhlIHJlc3RhcnQgbWliLiAgVGhpcyBpcyBhIHNldGFibGUgc3ViLW1pYiBvZiB0aGUgdmVyc2lvbgogICAgICBtaWIsIGRlZmF1bHQgdG8gVkVSU0lPTi4xMiguMSkuICBJZiBzbm1wLXNldCB0byAnMScsIGl0IHdpbGwgcmVzdGFydAogICAgICB0aGUgYWdlbnQuCiAgICAKICAgICAgKiAgQSBzaWRlIGVmZmVjdCBvZiB0aGlzIGlzIHRoYXQgaXQgcmVzdGFydHMgMyB0aW1lcyBvciBzbywgc2luY2UgaXQKICAgICAgICAgbmV2ZXIgcmV0dXJucyBhIHJlc3BvbmNlIHRvIHRoZSBwcm9ncmFtIGdlbmVyYXRpbmcgdGhlIHJlcXVlc3QuCiAgICAgICAgIElmIHNhaWQgcHJvZ3JhbSB0cmllcyB0byByZXNlbmQgdGhlIHJlcXVlc3QgKHdoaWNoIG1vc3QgZG8pLCBpdAogICAgICAgICB3aWxsIEFHQUlOIHJlc3RhcnQgdGhlIGFnZW50Li4uICBvaCB3ZWxsLgoKaGFyZGFrZXIgMTQgSnVsIDk1IDE1OjE1OjMxCiAgICAtIHNubXBjaGVjayAodGstcGVybC1iNCBzY3JpcHQpIGlzIHByZXR0eSBzdGFibGUgYXQgdGhpcyBwb2ludC4gIEkKICAgICAgbG9zdCBjdXJzZXMgc3VwcG9ydCwgYW5kIG5lZWQgdG8gcmUtYWRkIGl0IHN0aWxsLCBzbyBpdCBpcyBzdGlsbAogICAgICBiZXRhLiAgSXQgZG9lcyBleHBlY3QgYSBsb2cgZmlsZSBvZiBwcm9ibGVtcyB0byBleGlzdCAocG9pbnQgaXQgdG8KICAgICAgL2Rldi9udWxsKSwgYW5kIG5lZWRzIHRvIGtub3cgdGhlIGxvY2F0aW9ucyBvZiB0aGUgbWlicyB0byBjaGVjawogICAgICAod2hpY2ggYXJlbid0IGNvbmZpZ3VyZWQgYnkgJ21ha2UnKSwgc28gaXQgbmVlZHMgc29tZSB3b3JrLgogICAgICBIb3dldmVyLCBpdCB3aWxsIHF1ZXJ5IGFuIGFnZW50LCBjaGVjayBpdHMgcHJvYmxlbXMgYmFzZWQgb24gdGhlCiAgICAgIHN0YXR1cyBvZiB0aGUgZXJyb3IgZmxhZyAob3IgcmV0dXJuIGNvZGUpIGJlaW5nID4xIGFuZCByZXBvcnQgdGhlbQogICAgICB3aXRoIG5lYXQgR1VJLWJ1dHRvbnMgYW5kIHN0dWZmIChvaCB3b3cpLiAgTm8gZG9jdW1lbnRhdGlvbiBvbiBpdCB0aG91Z2guCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpDaGFuZ2VzIHNpbmNlIDMtMEExOgoKaGFyZGFrZXIgIDIgSnVuIDk1IDE2OjIzOjQ2CiAgICAtIHZlcnNpb24gdXBkYXRlCgpoYXJkYWtlciAgNSBKdW4gOTUgMTI6NDQ6NDYKICAgIC0gYWdlbnQvZXh0ZW5zaWJsZS9NYWtlZmlsZToKICAgICAgICAtLSAgbm8gbG9uZ2VyIHJlcXVpcmVzIEdOVSBtYWtlCiAgICAgICAgLS0gIGV0YWdzIG5vIGxvbmdlciBydW4gYnkgZGVmYXVsdAogICAgCiAgICAtIFN1bk9TIGFkZGl0aW9uczoKICAgICAgICAtLSBsb2FkYXZlcmFnZSBjaGVja2luZyBNSUIgZW5hYmxlZAogICAgICAgIC0tIGRpc2sgY2hlY2tpbmcgTUlCIGVuYWJsZWQKCmhhcmRha2VyICA5IEp1biA5NSAxMDoyMTowNwogICAgLSBBZGRlZCBhIFNOTVBCTE9DSyBvcHRpb24gdG8gdGhlIGNvbmZpZy5oIGZpbGUuICBTdXBwb3NlZGlseSBzZXR0aW5nCiAgICAgIHRoaXMgdG8gemVybyAobm93IHRoZSBkZWZhdWx0KSB3aWxsIGFsbG93IHNubXAgcmVxdWVzdHMgdG8gdGltZSBvdXQuCiAgICAgIEhhdmVuJ3QgdGVzdGVkIGl0IHRocm91Z2hseS4KICAgICAgICAtLSBDb250cmlidXRlZCBieSBTYW5qYWkgTmFyYWluIDxuYXJhaW5AdGh1bXBlci5iZWxsY29yZS5jb20+CgpoYXJkYWtlciAgOSBKdW4gOTUgMTA6MjE6NTEKICAgIC0gQ29ycmVjdGx5IG9yZGVyZWQgdGhlIG1pYiB0YWJsZSBsaXN0LgogICAgICAtLSAgTmVlZCB0byB3cml0ZSBhIGR5bmFtaWMgY2hlY2tlci9yZS1vcmRlcmVyLgoKaGFyZGFrZXIgIDkgSnVuIDk1IDEwOjIzOjM1CiAgICAtIENvcnJlY3QgdXNhZ2UgZm9yIHNubXB3YWxrIGlzIG5vdyBwb3NzaWJsZS4gIElFLCBzbm1wd2FsayB0YXJnZXQKICAgICAgLjEuMy42LjEgd2lsbCBub3cgYnJvd3NlIHRoZSBlbnRpcmUgdHJlZS4KICAgICAgLS0gU3RpbGwgZmFpbHMgb24gcmVsb2NhdGFibGUgZXh0ZW5zaWJsZSBtaWJzIGFuZCB3aWxsIHVudGlsIEkKICAgICAgICAgd3JpdGUgYSBkeW5hbWljIHRyZWUgYnVpbGRlci4KCmhhcmRha2VyICA5IEp1biA5NSAxNDowODoxNQogICAgLSBDaGFuZ2VkIHRlc3QgLXggdG8gdGVzdCAtZiBpbiBzbm1wbGliL01ha2VmaWxlLiAgTm90IGFsbCBPU2VzCiAgICAgIChpZSB1bHRyaXgpIGhhbmRsZSB0aGlzLgoKaGFyZGFrZXIgMTIgSnVuIDk1IDEwOjM1OjM4CiAgICAtIGxvY2FsL3RyYXBub3RpZjoKICAgICAgLS0gdXNlcyBzbm1wdjIgbm93IChjb3JyZWN0bHkpCgpoYXJkYWtlciAxMiBKdW4gOTUgMTA6Mzc6NDYKICAgIC0gUmVwb3J0cyBhbGwgZXJyb3JzIHRocm91Z2ggdGhlIGVycm9yIG1pYiBub3cgaW5zdGVhZCBvZiB0aHJvdWdoIHBlcnJvcigpLgogICAgLSBDbGVhbmVkIHVwIGVycm9yIGhhbmRsaW5nLiAgU2hvdWxkbid0IGhhbmRsZSBlcnJvcnMgbmljZWx5IGlmIHN5c3RlbQogICAgICBlcnJvcnMgb2NjdXIgd2hlbiBzY2FubmluZyBhbiBleHRlbnNpYmxlIG1pYi4KCmhhcmRha2VyIDE0IEp1biA5NSAxMToyNDoyMAogICAgYWdlbnQ6CiAgICAtIE1pYiB0YWJsZSBpcyBub3cgcXNvcnRlZCBhdCBydW4gdGltZSBhbmQgdGhlIGV4dGVuc2libGUgdmFyaWFibGVzIGFyZQogICAgICBzb3J0ZWQgaW4gYXQgdGhpcyB0aW1lLiAgVGhpcyBicmluZ3MgdGhlIGFnZW50IHVwIHRvIGNvcnJlY3QKICAgICAgU05NUHdhbGsvZ2V0bmV4dCBwcm90b2NvbHMuICBZb3UgY2FuIG5vdyB3YWxrIHRoZSBlbnRpcmUgdHJlZQogICAgICBpbmNsdWRpbmcgdGhlIGV4dGVuc2libGUgc2VjdGlvbnMgYW5kIGl0IHdvbid0IHN0b3AuCiAgICAgICogVGhpcyBoYXMgYW4gYWRkZWQgYm9udXMgb2YgY2hlY2tpbmcgdGhlIG1pYiB0YWJsZQogICAgICAgIChhZ2VudC9zbm1wX3ZhcnMuYykgZm9yIGNvcnJlY3Qgb3JkZXIuICBJIGhhdmUgYWRkZWQgdGhpbmdzIHRvIHRoZQogICAgICAgIHdyb25nIGxvY2F0aW9uIHRvbyBtYW55IHRpbWVzIGFuZCBjYXVzZWQgdGhlIGFnZW50IHRvIGZ1bmN0aW9uCiAgICAgICAgaW5jb3JyZWN0bHkuICBNYWpvciB3aW4uCgpoYXJkYWtlciAxNCBKdW4gOTUgMTI6NTY6NDkKICAgIC0gQ2xlYW5lZCB1cC9BZGRlZCBtb3JlIGRvY3VtZW50YXRpb24gdG8gY29uZmlnLmgKICAgIC0gR0xPQkFMU0VDVVJJVFkgbm93IHVzZXMgdGhlIGxlZnQgbW9zdCBmb3VyIGJpdHMgaW4gdGhlIE1JQiBhY2wuCiAgICAgIFRoaXMgaXMgbW9yZSBjb21wYXRpYmxlIHdpdGggdGhlIENNVSBjb2RlIHRoYW4gdXNpbmcgdGhlIGxlZnQgbW9zdAogICAgICAyLCB3aGljaCB3YXMgZG9uZSBwcmV2aW91c2x5LgoKCmhhcmRha2VyIDE0IEp1biA5NSAxMzo0MzozOAogICAgLSBBZGRlZCBtb3JlIGRvY3VtZW50YXRpb24gdG8gdGhlIFJFQURNRSBmaWxlLgogICAgLSBDcmVhdGVkIGEgbWFpbGluZyBsaXN0IHRvIGhhbmRsZSBhbm5vdW5jZW1lbnRzCiAgICAgICh1Y2Qtc25tcC1hbm5vdW5jZUB1Y2Qtc25tcC51Y2RhdmlzLmVkdSkKCgojIGdlbmVyYXRlZCB1c2luZzoKIyAgY3ZzMmNsIC1iIC1yIC1mIENoYW5nZUxvZy5hZGQgLUYgVjQtMi1wYXRjaGVzIC0tbm8td3JhcCAtUwojICBwZXJsIGRpc3QvY2hhbmdlbG9nZml4IDwgQ2hhbmdlTG9nLmFkZCA+IENoYW5nZUxvZy5yZWFsbHlhZGQK